Whamcloud - gitweb
Land b1_2_smallfix onto b1_2 (20040723_1622)
authoradilger <adilger>
Fri, 23 Jul 2004 20:48:21 +0000 (20:48 +0000)
committeradilger <adilger>
Fri, 23 Jul 2004 20:48:21 +0000 (20:48 +0000)
r=nic
- don't close LustreDB during write_conf until it is done (3860)
- fix typo in lconf for_each_profile (3821)
- allow dumping logs from multiple threads at one time (3820)
- don't allow multiple threads in OSC recovery(3812)
- fix debug_size parameters (3864)
- fix mds_postrecov to initialize import for llog ctxt (3121)
- free recovery state on server during a forced cleanup (3571)
- unregister_reply for resent reqs (3063)
- loop back devices mounting and status check on 2.6 (3563)
- fix resource-creation race that can provoke i_size == 0 (3513)
- don't try to use bad inodes returned from MDS/OST fs lookup (3688)
- more debugging for page-accounting assertion (3746)
- return -ENOENT instead of asserting if ost getattr+unlink race (3558)
- avoid deadlock after precreation failure (3758)
- fix race and lock order deadlock in orphan handling (3450, 3750)
- add /proc/.../recovery_status to obdfilter (3428)
- lightweight CDEBUG infrastructure, debug daemon (3668)
- change default OSC RPC parameters to be better on small clusters
- turn off OST read cache for files smaller than 32MB
- install man pages and include them in rpms (3100)
- add new init script for (un)mounting lustre filesystems (2593)
- run chkconfig in %post for init scripts (3701)
- drop scimac NAL (unmaintained)
- tune the read pipeline (3236)
- provide read-ahead stats and refine rpc in flight stats (3328)

176 files changed:
lnet/archdep.m4
lnet/build.m4
lnet/include/linux/kp30.h
lnet/include/linux/libcfs.h
lnet/klnds/Makefile.in
lnet/klnds/autoMakefile.am
lnet/klnds/scimaclnd/Makefile.in [deleted file]
lnet/klnds/scimaclnd/README.scimacnal [deleted file]
lnet/klnds/scimaclnd/autoMakefile.am [deleted file]
lnet/klnds/scimaclnd/scimac.conf [deleted file]
lnet/klnds/scimaclnd/scimacnal.c [deleted file]
lnet/klnds/scimaclnd/scimacnal.h [deleted file]
lnet/klnds/scimaclnd/scimacnal_cb.c [deleted file]
lnet/libcfs/Makefile.in
lnet/libcfs/Makefile.mk
lnet/libcfs/autoMakefile.am
lnet/libcfs/debug.c
lnet/libcfs/module.c
lnet/libcfs/proc.c
lnet/libcfs/tracefile.c [new file with mode: 0644]
lnet/libcfs/tracefile.h [new file with mode: 0644]
lnet/utils/debug.c
lnet/utils/debugctl.c
lustre/ChangeLog
lustre/autoMakefile.am
lustre/conf/Makefile.am
lustre/conf/lustre.dtd
lustre/conf/slapd-lustre.conf
lustre/configure.in
lustre/doc/Makefile.am
lustre/doc/lmc.lyx
lustre/include/linux/lprocfs_status.h
lustre/include/linux/lustre_compat25.h
lustre/include/linux/lustre_idl.h
lustre/include/linux/lustre_lib.h
lustre/include/linux/lustre_mds.h
lustre/include/linux/obd.h
lustre/include/linux/obd_support.h
lustre/include/lustre/lustre_user.h
lustre/kernel_patches/kernel_configs/kernel-2.4.20-rh-2.4-i686-smp.config [moved from lustre/kernel_patches/kernel_configs/kernel-2.4.20-rh-2.4-i586-smp.config with 98% similarity]
lustre/kernel_patches/kernel_configs/kernel-2.4.20-rh-2.4-i686.config
lustre/kernel_patches/kernel_configs/kernel-2.4.21-rhel-2.4-i686-smp.config [moved from lustre/kernel_patches/kernel_configs/kernel-2.4.20-rh-2.4-i586.config with 91% similarity]
lustre/kernel_patches/kernel_configs/kernel-2.4.21-rhel-2.4-i686.config [new file with mode: 0644]
lustre/kernel_patches/patches/configurable-x86-stack-2.4.21-chaos.patch
lustre/kernel_patches/patches/iopen-2.6-vanilla.patch
lustre/kernel_patches/patches/lookup_bdev_init_intent.patch [new file with mode: 0644]
lustre/kernel_patches/patches/nfs-cifs-intent-2.6-vanilla.patch [new file with mode: 0644]
lustre/kernel_patches/patches/qlogic-suse-2.4.21-2.patch [new file with mode: 0644]
lustre/kernel_patches/patches/removepage-2.6-suse.patch [deleted file]
lustre/kernel_patches/patches/removepage-2.6-vanilla.patch [deleted file]
lustre/kernel_patches/patches/uml-2.6.7-01-bb2.patch [moved from lustre/kernel_patches/patches/uml-vanilla-2.6.6-p1.patch with 85% similarity]
lustre/kernel_patches/patches/uml-vanilla-2.6.6-p2.patch [deleted file]
lustre/kernel_patches/patches/vfs_intent-2.6-suse.patch
lustre/kernel_patches/patches/vfs_intent-2.6-vanilla.patch
lustre/kernel_patches/patches/vfs_nointent-2.6-vanilla.patch
lustre/kernel_patches/patches/vfs_races-2.6-vanilla.patch [new file with mode: 0644]
lustre/kernel_patches/patches/x86-fpu-crash.patch [new file with mode: 0644]
lustre/kernel_patches/series/2.6-suse.series
lustre/kernel_patches/series/2.6-vanilla.series
lustre/kernel_patches/series/rh-2.4.20
lustre/kernel_patches/series/suse-2.4.21-2
lustre/kernel_patches/targets/rh-2.4.target
lustre/kernel_patches/targets/rhel-2.4.target [new file with mode: 0644]
lustre/kernel_patches/targets/suse-2.4.21-2.target
lustre/ldlm/ldlm_lib.c
lustre/ldlm/ldlm_lockd.c
lustre/ldlm/ldlm_resource.c
lustre/liblustre/Makefile.am
lustre/liblustre/tests/Makefile.am
lustre/llite/dcache.c
lustre/llite/dir.c
lustre/llite/file.c
lustre/llite/llite_internal.h
lustre/llite/llite_lib.c
lustre/llite/llite_nfs.c
lustre/llite/lproc_llite.c
lustre/llite/namei.c
lustre/llite/rw.c
lustre/llite/rw26.c
lustre/llite/super.c
lustre/lvfs/fsfilt_ext3.c
lustre/mdc/mdc_reint.c
lustre/mdc/mdc_request.c
lustre/mds/handler.c
lustre/mds/lproc_mds.c
lustre/mds/mds_fs.c
lustre/mds/mds_internal.h
lustre/mds/mds_lib.c
lustre/mds/mds_lov.c
lustre/mds/mds_open.c
lustre/mds/mds_reint.c
lustre/mds/mds_unlink_open.c
lustre/obdclass/genops.c
lustre/obdclass/llog_ioctl.c
lustre/obdclass/llog_test.c
lustre/obdclass/lprocfs_status.c
lustre/obdclass/sysctl.c
lustre/obdecho/.cvsignore
lustre/obdfilter/filter.c
lustre/obdfilter/filter_internal.h
lustre/obdfilter/filter_io_24.c
lustre/obdfilter/filter_io_26.c
lustre/obdfilter/filter_log.c
lustre/obdfilter/filter_lvb.c
lustre/obdfilter/lproc_obdfilter.c
lustre/osc/lproc_osc.c
lustre/osc/osc_create.c
lustre/osc/osc_internal.h
lustre/osc/osc_request.c
lustre/ost/ost_handler.c
lustre/portals/archdep.m4
lustre/portals/build.m4
lustre/portals/include/linux/kp30.h
lustre/portals/include/linux/libcfs.h
lustre/portals/knals/Makefile.in
lustre/portals/knals/autoMakefile.am
lustre/portals/knals/scimacnal/Makefile.in [deleted file]
lustre/portals/knals/scimacnal/README.scimacnal [deleted file]
lustre/portals/knals/scimacnal/autoMakefile.am [deleted file]
lustre/portals/knals/scimacnal/scimac.conf [deleted file]
lustre/portals/knals/scimacnal/scimacnal.c [deleted file]
lustre/portals/knals/scimacnal/scimacnal.h [deleted file]
lustre/portals/knals/scimacnal/scimacnal_cb.c [deleted file]
lustre/portals/libcfs/Makefile.in
lustre/portals/libcfs/Makefile.mk
lustre/portals/libcfs/autoMakefile.am
lustre/portals/libcfs/debug.c
lustre/portals/libcfs/module.c
lustre/portals/libcfs/proc.c
lustre/portals/libcfs/tracefile.c [new file with mode: 0644]
lustre/portals/libcfs/tracefile.h [new file with mode: 0644]
lustre/portals/utils/debug.c
lustre/portals/utils/debugctl.c
lustre/ptlrpc/Makefile.in
lustre/ptlrpc/autoMakefile.am
lustre/ptlrpc/client.c
lustre/ptlrpc/events.c
lustre/ptlrpc/import.c
lustre/ptlrpc/llog_client.c
lustre/ptlrpc/lproc_ptlrpc.c
lustre/ptlrpc/ptlrpc_internal.h
lustre/ptlrpc/recov_thread.c
lustre/ptlrpc/service.c
lustre/scripts/Makefile.am
lustre/scripts/cvsdiffclient
lustre/scripts/land1.sh
lustre/scripts/lustre-kernel-2.4.spec.in
lustre/scripts/lustre.spec.in
lustre/scripts/lustrefs [new file with mode: 0644]
lustre/scripts/merge1.sh
lustre/tests/.cvsignore
lustre/tests/Makefile.am
lustre/tests/acceptance-small.sh
lustre/tests/compile.sh
lustre/tests/llmount.sh
lustre/tests/llmountcleanup.sh
lustre/tests/memhog.c
lustre/tests/multiop.c
lustre/tests/oos.sh
lustre/tests/oos2.sh
lustre/tests/recovery-small.sh
lustre/tests/rename_many.c
lustre/tests/replay-dual.sh
lustre/tests/replay-single.sh
lustre/tests/run-llog.sh
lustre/tests/runas.c
lustre/tests/runregression-brw.sh
lustre/tests/runregression-mds.sh
lustre/tests/runregression-net.sh
lustre/tests/runtests
lustre/tests/sanity.sh
lustre/tests/sanityN.sh
lustre/tests/test-framework.sh
lustre/utils/lconf
lustre/utils/lctl.c
lustre/utils/lmc

index c705006..531a5bd 100644 (file)
@@ -258,10 +258,12 @@ if test x$enable_modules != xno ; then
        AC_SUBST(LINUXRELEASE)
 
        moduledir='$(libdir)/modules/'$LINUXRELEASE/kernel
-       AC_SUBST(moduledir)
-
        modulefsdir='$(moduledir)/fs/$(PACKAGE)'
+        modulenetdir='$(moduledir)/net/$(PACKAGE)'
+
+       AC_SUBST(moduledir)
        AC_SUBST(modulefsdir)
+        AC_SUBST(modulenetdir)
 
        # ------------ RELEASE --------------------------------
        AC_MSG_CHECKING([for Lustre release])
@@ -402,38 +404,6 @@ if test x$enable_modules != xno ; then
        AC_SUBST(IBNAL)
        AC_SUBST(IBCPPFLAGS)
 
-       def_scamac=/opt/scali/include
-       AC_MSG_CHECKING([if ScaMAC support was requested])
-       AC_ARG_WITH([scamac],
-               AC_HELP_STRING([--with-scamac=yes/no/path],
-                              [Path to ScaMAC includes (default=/opt/scali/include)]),
-               [
-                       case $with_scamac in
-                               yes)
-                                       AC_MSG_RESULT([yes])
-                                       SCIMACCPPFLAGS="-I/opt/scali/include"
-                                       SCIMACNAL="scimacnal"
-                                       ;;
-                               no)
-                                       AC_MSG_RESULT([no])
-                                       SCIMACCPPFLAGS=""
-                                       SCIMACNAL=""
-                                       ;;
-                               *)
-                                       AC_MSG_RESULT([yes])
-                                       SCIMACCPPFLAGS="-I$with_scamac -I$with_scamac/icm"
-                                       SCIMACNAL="scimacnal"
-                                       ;;
-                       esac
-               ],[
-                       AC_MSG_RESULT([no])
-                       SCIMACCPPFLAGS=""
-                       SCIMACNAL=""
-               ])
-       AC_SUBST(SCIMACCPPFLAGS)
-       AC_SUBST(SCIMACNAL)
-       # if test "$with_scamac" != no -a -f ${with_scamac}/scamac.h; then
-
        # ---------- Red Hat 2.4.18 has iobuf->dovary --------------
        # But other kernels don't
 
@@ -530,6 +500,7 @@ if test x$enable_modules != xno ; then
                ],[
                        AC_MSG_RESULT([no])
                ])
+
        AC_MSG_CHECKING([if kernel defines cpumask_t])
        LUSTRE_MODULE_TRY_COMPILE(
                [
@@ -543,6 +514,40 @@ if test x$enable_modules != xno ; then
                        AC_MSG_RESULT([no])
                ])
 
+       # ---------- RHEL kernels define page_count in mm_inline.h
+       AC_MSG_CHECKING([if kernel has mm_inline.h header])
+       LUSTRE_MODULE_TRY_COMPILE(
+               [
+                       #include <linux/mm_inline.h>
+               ],[
+                       #ifndef page_count
+                       #error mm_inline.h does not define page_count
+                       #endif
+               ],[
+                       AC_MSG_RESULT([yes])
+                       AC_DEFINE(HAVE_MM_INLINE, 1, [mm_inline found])
+               ],[
+                       AC_MSG_RESULT([no])
+               ])
+
+       # ---------- inode->i_alloc_sem --------------
+       AC_MSG_CHECKING([if struct inode has i_alloc_sem])
+       LUSTRE_MODULE_TRY_COMPILE(
+               [
+                       #include <linux/fs.h>
+                       #include <linux/version.h>
+               ],[
+                       #if defined(CONFIG_X86_64) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,24))
+                       #error "x86_64 down_read_trylock broken before 2.4.24"
+                       #endif
+                       struct inode i;
+                       return (char *)&i.i_alloc_sem - (char *)&i;
+               ],[
+                       AC_MSG_RESULT([yes])
+                       AC_DEFINE(HAVE_I_ALLOC_SEM, 1, [struct inode has i_alloc_sem])
+               ],[
+                       AC_MSG_RESULT([no])
+               ])
 
        # ---------- modules? ------------------------
        AC_MSG_CHECKING([for module support])
@@ -645,7 +650,6 @@ if test x$enable_modules != xno ; then
        esac # $BACKINGFS
 fi
 
-AM_CONDITIONAL(BUILD_SCIMACNAL, test x$SCIMACNAL = "xscimacnal")
 AM_CONDITIONAL(BUILD_IBNAL, test x$IBNAL = "xibnal")
 AM_CONDITIONAL(BUILD_GMNAL, test x$GMNAL = "xgmnal")
 AM_CONDITIONAL(BUILD_QSWNAL, test x$QSWNAL = "xqswnal")
index 93a370f..114478c 100644 (file)
@@ -15,29 +15,20 @@ if test $ac_cv_sizeof_unsigned_long_long != 8 ; then
 fi
 
 # directories for binaries
-ac_default_prefix=
-bindir='${exec_prefix}/usr/bin'
-sbindir='${exec_prefix}/usr/sbin'
-includedir='${prefix}/usr/include'
+ac_default_prefix=/usr
 
-rootsbindir='${exec_prefix}/sbin'
+# mount.lustre
+rootsbindir='/sbin'
 AC_SUBST(rootsbindir)
-
 # Directories for documentation and demos.
-docdir='${prefix}/usr/share/doc/$(PACKAGE)'
+docdir='${datadir}/doc/$(PACKAGE)'
 AC_SUBST(docdir)
 demodir='$(docdir)/demo'
 AC_SUBST(demodir)
-pkgexampledir='${prefix}/usr/lib/$(PACKAGE)/examples'
+pkgexampledir='${pkglibdir}/examples'
 AC_SUBST(pkgexampledir)
-pymoddir='${prefix}/usr/lib/${PACKAGE}/python/Lustre'
+pymoddir='${pkglibdir}/python/Lustre'
 AC_SUBST(pymoddir)
-# for substitution in lconf
-PYMOD_DIR="/usr/lib/$PACKAGE/python"
-AC_SUBST(PYMOD_DIR)
-modulenetdir='$(moduledir)/net/$(PACKAGE)'
-AC_SUBST(modulenetdir)
-
 
 # ----------  BAD gcc? ------------
 AC_PROG_RANLIB
index 8f572de..69246b2 100644 (file)
@@ -620,14 +620,14 @@ static inline int portal_ioctl_getdata(char *buf, char *end, void *arg)
 #define IOC_PORTAL_MIN_NR                 30
 
 #define IOC_PORTAL_PING                    _IOWR('e', 30, long)
-#define IOC_PORTAL_GET_DEBUG               _IOWR('e', 31, long)
+
 #define IOC_PORTAL_CLEAR_DEBUG             _IOWR('e', 32, long)
 #define IOC_PORTAL_MARK_DEBUG              _IOWR('e', 33, long)
 #define IOC_PORTAL_PANIC                   _IOWR('e', 34, long)
 #define IOC_PORTAL_NAL_CMD                 _IOWR('e', 35, long)
 #define IOC_PORTAL_GET_NID                 _IOWR('e', 36, long)
 #define IOC_PORTAL_FAIL_NID                _IOWR('e', 37, long)
-#define IOC_PORTAL_SET_DAEMON              _IOWR('e', 38, long)
+
 #define IOC_PORTAL_LWT_CONTROL             _IOWR('e', 39, long)
 #define IOC_PORTAL_LWT_SNAPSHOT            _IOWR('e', 40, long)
 #define IOC_PORTAL_LWT_LOOKUP_STRING       _IOWR('e', 41, long)
index 6772e82..acf4045 100644 (file)
@@ -20,6 +20,24 @@ extern unsigned int portal_stack;
 extern unsigned int portal_debug;
 extern unsigned int portal_printk;
 extern unsigned int portal_cerror;
+
+#include <asm/types.h>
+struct ptldebug_header {
+        __u32 ph_len;
+        __u32 ph_flags;
+        __u32 ph_subsys;
+        __u32 ph_mask;
+        __u32 ph_cpu_id;
+        __u32 ph_sec;
+        __u64 ph_usec;
+        __u32 ph_stack;
+        __u32 ph_pid;
+        __u32 ph_extern_pid;
+        __u32 ph_line_num;
+} __attribute__((packed));
+
+#define PH_FLAG_FIRST_RECORD 1
+
 /* Debugging subsystems (32 bits, non-overlapping) */
 #define S_UNDEFINED   0x00000001
 #define S_MDC         0x00000002
index 12f0c24..b5ed168 100644 (file)
@@ -1,7 +1,6 @@
 @BUILD_GMNAL_TRUE@subdir-m += gmnal
 @BUILD_IBNAL_TRUE@subdir-m += ibnal
 @BUILD_QSWNAL_TRUE@subdir-m += qswnal
-@BUILD_SCIMACNAL_TRUE@subdir-m += scimacnal
 subdir-m += socknal
 
 @INCLUDE_RULES@
index 60318ee..9d04a46 100644 (file)
@@ -3,4 +3,4 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
-SUBDIRS = gmnal ibnal qswnal scimacnal socknal
+SUBDIRS = gmnal ibnal qswnal socknal
diff --git a/lnet/klnds/scimaclnd/Makefile.in b/lnet/klnds/scimaclnd/Makefile.in
deleted file mode 100644 (file)
index c7eb4ac..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-MODULES := kscimacnal
-kscimacnal-objs := scimacnal.o scimacnal_cb.o
-
-EXTRA_PRE_CFLAGS += @SCIMACCPPFLAGS@
-
-@INCLUDE_RULES@
diff --git a/lnet/klnds/scimaclnd/README.scimacnal b/lnet/klnds/scimaclnd/README.scimacnal
deleted file mode 100644 (file)
index e1ee3b5..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-
-scimacnal - A NAL for the Scali ScaMAC midlayer.
-
-The ScaMAC midlayer is a simplified API to the SCI high performance
-interconnect (http://www.scali.com/, http://www.dolphinics.com/).
-
-In order to use this NAL you'll need to tune scimac to use larger buffers.
-See scimac.conf in this directory for an example.
-
-You'll also need to edit portals/include/portals/lib-types.h and reduce
-the MTU to 64kB (the limit of scimac), this diff should help:
-
-----------------------8<----------------------------------
---- portals/include/portals/lib-types.h 27 Jul 2003 02:05:47 -0000      1.1.2.5
-+++ portals/include/portals/lib-types.h 14 Aug 2003 08:32:14 -0000
-@@ -137,8 +137,8 @@
- } lib_counters_t;
- /* temporary expedient: limit number of entries in discontiguous MDs */
--# define PTL_MTU        (512<<10)
--# define PTL_MD_MAX_IOV 128
-+# define PTL_MTU        (64<<10)
-+# define PTL_MD_MAX_IOV 16
- struct lib_msg_t {
-         struct list_head  msg_list;
-----------------------8<----------------------------------
-
-The NAL itself seems quite stable, though scimac has recovery bugs when
-rebooting nodes at times (confirmed by the fact that the IP driver that
-also uses scimac loses connectivity when scimacnal does).  This is
-solved by unloading lustre and reloading the scimac driver on the
-affected nodes.
-
-Performance isn't great when it comes to latency, scimac seems to have
-problems with per packet latencies (confirmed with the IP driver which
-has similar behaviour). Bandwidth using large packets is pretty OK
-(probably due to the fact that it hides the latency issues).
-
-TODO:
-Routing isn't yet implemented.
-Need some way to inform portals about our MTU.
diff --git a/lnet/klnds/scimaclnd/autoMakefile.am b/lnet/klnds/scimaclnd/autoMakefile.am
deleted file mode 100644 (file)
index 47433cd..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-# This code is issued under the GNU General Public License.
-# See the file COPYING in this distribution
-
-if MODULES
-if !CRAY_PORTALS
-if BUILD_SCIMACNAL
-modulenet_DATA = kscimacnal$(KMODEXT)
-endif
-endif
-endif
-
-MOSTLYCLEANFILES = *.o *.ko *.mod.c
-DIST_SOURCES = $(ksimacnal-objs:%.o=%.c) scimacnal.h
diff --git a/lnet/klnds/scimaclnd/scimac.conf b/lnet/klnds/scimaclnd/scimac.conf
deleted file mode 100644 (file)
index bfb6d02..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#  Configuration file for the scimac driver - lustre friendly settings
-#
-
-#  The maximal number of message headers to use in the system.
-scimac_max_no_hdrs = 32
-
-#  The maximal number of eager buffers to use in the system.
-scimac_max_no_ebufs = 8
-
-#  The maximal size in bytes of each eager buffer.
-scimac_max_ebuf_size = 65536
-
-#  Enable use of a kernel thread to defer reception of packets.
-#  Default is to use a tasklet (sw interrupt).
-scimac_use_ulevel_recv = 1
-
-#  The maximal number of packets queued for transfer per path at any one time. 
-scimac_max_send_queuelen = 2000
-
-#  The packet retransmit time in milliseconds.
-#  The time elapsed since a packet was attempted sent until the packet is resent.
-scimac_pkt_rexmit_time = 200
-
-#  The packet's maximal retransmit time in milliseconds.
-#  The total time that a packet will be attempted sent before it is dropped.
-scimac_max_rexmit_time = 5000
-
-#  The lowest valid node identifier in the system.
-scimac_min_nodeid_number = 0x100
-
-#  The largest valid node identifier in the system.
-scimac_max_nodeid_number = 0xff00
-
-#  The incremental nodeid step in the system.
-scimac_nodeid_increment = 0x100
diff --git a/lnet/klnds/scimaclnd/scimacnal.c b/lnet/klnds/scimaclnd/scimacnal.c
deleted file mode 100644 (file)
index 5ffba31..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:cindent:
- *
- * Copyright (C) 2003 High Performance Computing Center North (HPC2N)
- *   Author: Niklas Edmundsson <nikke@hpc2n.umu.se>
-
- * Based on gmnal, which is based on ksocknal and qswnal
- *
- * This file is part of Portals, http://www.sf.net/projects/lustre/
- *
- * Portals is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * Portals 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 Portals; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-
-#include "scimacnal.h"
-
-ptl_handle_ni_t kscimacnal_ni;
-nal_t  kscimacnal_api;
-
-kscimacnal_data_t kscimacnal_data;
-
-kpr_nal_interface_t kscimacnal_router_interface = {
-        kprni_nalid:    SCIMACNAL,
-        kprni_arg:      NULL,
-        kprni_fwd:      kscimacnal_fwd_packet,
-};
-
-
-int kscimacnal_cmd (struct portal_ioctl_data *data, void *private)
-{
-        LASSERT (data != NULL);
-
-        switch (data->ioc_nal_cmd) {
-                case NAL_CMD_REGISTER_MYNID:
-                        if(kscimacnal_lib.ni.nid == data->ioc_nid) {
-                                break;
-                        }
-                        CDEBUG (D_IOCTL, "Can't change NID from "LPX64" to "LPX64")\n", kscimacnal_lib.ni.nid, data->ioc_nid);
-                        return(-EINVAL);
-                default:
-                        return(-EINVAL);
-        }
-
-        return(0);
-}
-
-static int kscimacnal_forward(nal_t   *nal,
-                          int     id,
-                          void    *args,  size_t args_len,
-                          void    *ret,   size_t ret_len)
-{
-        kscimacnal_data_t *ksci = nal->nal_data;
-        nal_cb_t      *nal_cb = ksci->ksci_cb;
-
-        LASSERT (nal == &kscimacnal_api);
-        LASSERT (ksci == &kscimacnal_data);
-        LASSERT (nal_cb == &kscimacnal_lib);
-
-        lib_dispatch(nal_cb, ksci, id, args, ret); /* nal needs ksci */
-        return PTL_OK;
-}
-
-
-static void kscimacnal_lock(nal_t *nal, unsigned long *flags)
-{
-        kscimacnal_data_t *ksci = nal->nal_data;
-        nal_cb_t      *nal_cb = ksci->ksci_cb;
-
-
-        LASSERT (nal == &kscimacnal_api);
-        LASSERT (ksci == &kscimacnal_data);
-        LASSERT (nal_cb == &kscimacnal_lib);
-
-        nal_cb->cb_cli(nal_cb,flags);
-}
-
-
-static void kscimacnal_unlock(nal_t *nal, unsigned long *flags)
-{
-        kscimacnal_data_t *ksci = nal->nal_data;
-        nal_cb_t      *nal_cb = ksci->ksci_cb;
-
-
-        LASSERT (nal == &kscimacnal_api);
-        LASSERT (ksci == &kscimacnal_data);
-        LASSERT (nal_cb == &kscimacnal_lib);
-
-        nal_cb->cb_sti(nal_cb,flags);
-}
-
-
-static int kscimacnal_shutdown(nal_t *nal, int ni)
-{
-        LASSERT (nal == &kscimacnal_api);
-        return 0;
-}
-
-
-static void kscimacnal_yield( nal_t *nal )
-{
-        LASSERT (nal == &kscimacnal_api);
-
-        if (current->need_resched) 
-                schedule();
-        return;
-}
-
-
-static nal_t *kscimacnal_init(int interface, ptl_pt_index_t  ptl_size,
-                ptl_ac_index_t  ac_size, ptl_pid_t requested_pid)
-{
-        int     nnids = 512; /* FIXME: Need ScaMac funktion to get #nodes */
-
-        CDEBUG(D_NET, "calling lib_init with nid "LPX64" nnids %d\n", kscimacnal_data.ksci_nid, nnids);
-        lib_init(&kscimacnal_lib, kscimacnal_data.ksci_nid, 0, nnids,ptl_size, ac_size); 
-        return &kscimacnal_api;
-}
-
-
-/* Called by kernel at module unload time */
-static void /*__exit*/ 
-kscimacnal_finalize(void)
-{
-        /* FIXME: How should the shutdown procedure really look? */
-        kscimacnal_data.ksci_shuttingdown=1;
-
-        PORTAL_SYMBOL_UNREGISTER(kscimacnal_ni);
-
-        PtlNIFini(kscimacnal_ni);
-        lib_fini(&kscimacnal_lib);
-
-        mac_finish(kscimacnal_data.ksci_machandle);
-
-        CDEBUG (D_MALLOC, "done kmem %d\n", atomic_read (&portal_kmemory));
-
-        return;
-}
-
-
-/* Called by kernel at module insertion time */
-static int __init
-kscimacnal_initialize(void)
-{
-        int rc;
-        unsigned long     nid=0;
-        mac_handle_t    *machandle = NULL;
-
-
-        CDEBUG (D_MALLOC, "start kmem %d\n", atomic_read (&portal_kmemory));
-
-        kscimacnal_api.forward = kscimacnal_forward;
-        kscimacnal_api.shutdown = kscimacnal_shutdown;
-        kscimacnal_api.yield = kscimacnal_yield;
-        kscimacnal_api.validate = NULL;         /* our api validate is a NOOP */
-        kscimacnal_api.lock= kscimacnal_lock;
-        kscimacnal_api.unlock= kscimacnal_unlock;
-        kscimacnal_api.nal_data = &kscimacnal_data;
-
-        kscimacnal_lib.nal_data = &kscimacnal_data;
-
-        memset(&kscimacnal_data, 0, sizeof(kscimacnal_data));
-
-        kscimacnal_data.ksci_cb = &kscimacnal_lib;
-
-        /* We're not using this, but cli/sti callbacks does... ??? */
-        spin_lock_init(&kscimacnal_data.ksci_dispatch_lock);
-
-        /* FIXME: We only support one adapter for now */
-        machandle = mac_init(0, MAC_SAPID_LUSTRE, kscimacnal_rx,
-                        &kscimacnal_data);
-
-        if(!machandle) {
-                CERROR("mac_init() failed\n");
-                return -1;
-        }
-
-        kscimacnal_data.ksci_machandle = machandle;
-
-        /* Make sure the scimac MTU is tuned */
-        if(mac_get_mtusize(machandle) < SCIMACNAL_MTU) {
-                CERROR("scimac mtu of %ld smaller than SCIMACNAL MTU of %d\n",
-                                mac_get_mtusize(machandle), SCIMACNAL_MTU);
-                CERROR("Consult README.scimacnal for more information\n");
-                mac_finish(machandle);
-                return -1;
-        }
-
-        /* Get the node ID */
-        /* mac_get_physaddrlen() is a function instead of define, sigh */
-        LASSERT(mac_get_physaddrlen(machandle) <= sizeof(nid));
-        if(mac_get_physaddr(machandle, (mac_physaddr_t *) &nid)) {
-                CERROR("mac_get_physaddr() failed\n");
-                mac_finish(machandle);
-                return -1;
-        }
-        nid = ntohl(nid);
-        kscimacnal_data.ksci_nid = nid;
-
-
-        /* Initialize Network Interface */
-        /* FIXME: What do the magic numbers mean? Documentation anyone? */
-        rc = PtlNIInit(kscimacnal_init, 32, 4, 0, &kscimacnal_ni);
-        if (rc) {
-                CERROR("PtlNIInit failed %d\n", rc);
-                mac_finish(machandle);
-                return (-ENOMEM);
-        }
-
-        /* Init command interface */
-        rc = kportal_nal_register (SCIMACNAL, &kscimacnal_cmd, NULL);
-        if (rc != 0) {
-                CERROR ("Can't initialise command interface (rc = %d)\n", rc);
-                PtlNIFini(kscimacnal_ni);
-                mac_finish(machandle);
-                return (rc);
-        }
-
-
-        PORTAL_SYMBOL_REGISTER(kscimacnal_ni);
-
-        /* We're done now, it's OK for the RX callback to do stuff */
-        kscimacnal_data.ksci_init = 1;
-
-        return 0;
-}
-
-
-MODULE_AUTHOR("Niklas Edmundsson <nikke@hpc2n.umu.se>");
-MODULE_DESCRIPTION("Kernel Scali ScaMAC SCI NAL v0.1");
-MODULE_LICENSE("GPL");
-
-module_init (kscimacnal_initialize);
-module_exit (kscimacnal_finalize);
-
-EXPORT_SYMBOL(kscimacnal_ni);
diff --git a/lnet/klnds/scimaclnd/scimacnal.h b/lnet/klnds/scimaclnd/scimacnal.h
deleted file mode 100644 (file)
index f132769..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:cindent:
- *
- * Copyright (C) 2003 High Performance Computing Center North (HPC2N)
- *   Author: Niklas Edmundsson <nikke@hpc2n.umu.se>
- */
-
-
-#ifndef _SCIMACNAL_H
-#define _SCIMACNAL_H
-
-#include <linux/config.h>
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/mm.h>
-#include <linux/string.h>
-#include <linux/stat.h>
-#include <linux/errno.h>
-#include <linux/locks.h>
-#include <linux/unistd.h>
-#include <linux/init.h>
-
-#include <asm/system.h>
-#include <asm/uaccess.h>
-
-#include <linux/fs.h>
-#include <linux/file.h>
-#include <linux/stat.h>
-#include <linux/list.h>
-#include <asm/uaccess.h>
-#include <asm/segment.h>
-#include <asm/page.h>            /* For PAGE_SIZE */
-
-#define DEBUG_SUBSYSTEM S_UNDEFINED
-
-#include <linux/kp30.h>
-#include <linux/kpr.h>
-#include <portals/p30.h>
-#include <portals/lib-p30.h>
-
-#include <scamac.h>
-
-#ifndef MAC_SAPID_LUSTRE
-#define MAC_SAPID_LUSTRE MAC_SAPID_TEST1
-#endif /* MAC_SAPID_LUSTRE */
-
-/* scimac has an annoying MTU limit of 64k */
-#define SCIMACNAL_MTU 65536
-#if PTL_MTU > SCIMACNAL_MTU
-#error Max MTU of ScaMAC is 64k, PTL_MTU is bigger.
-#endif
-
-typedef struct {
-        mac_handle_t    *handle;
-        mac_mblk_t      *msg;
-        mac_msg_type_t   type;
-        void            *userdata;
-}  kscimacnal_rx_t;
-
-
-typedef struct {
-        nal_cb_t        *ktx_nal;
-        void            *ktx_private;
-        lib_msg_t       *ktx_cookie;
-        ptl_hdr_t       ktx_hdr;
-        /* To be able to kunmap() kmap():ed pages */
-        struct page     *ktx_kpages[PTL_MD_MAX_IOV];
-        int              ktx_nmapped;
-}  kscimacnal_tx_t;
-
-
-typedef struct {
-        char              ksci_init;
-        char              ksci_shuttingdown;
-        ptl_nid_t         ksci_nid;
-        nal_cb_t         *ksci_cb;
-        spinlock_t        ksci_dispatch_lock;
-        mac_handle_t     *ksci_machandle;
-}  kscimacnal_data_t;
-
-extern kscimacnal_data_t   kscimacnal_data;
-extern nal_t            kscimacnal_api;
-extern nal_cb_t         kscimacnal_lib;
-
-void kscimacnal_fwd_packet (void *arg, kpr_fwd_desc_t *fwd);
-void kscimacnal_rx(mac_handle_t *handle, mac_mblk_t *msg, mac_msg_type_t type, void *userdata);
-
-
-#endif  /* _SCIMACNAL_H */
diff --git a/lnet/klnds/scimaclnd/scimacnal_cb.c b/lnet/klnds/scimaclnd/scimacnal_cb.c
deleted file mode 100644 (file)
index 52afb98..0000000
+++ /dev/null
@@ -1,601 +0,0 @@
-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:cindent:
- *
- * Copyright (C) 2003 High Performance Computing Center North (HPC2N)
- *   Author: Niklas Edmundsson <nikke@hpc2n.umu.se>
-
- *
- * This file is part of Portals, http://www.sf.net/projects/lustre/
- *
- * Portals is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * Portals 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 Portals; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-#include "scimacnal.h"
-
-static int 
-kscimacnal_read (nal_cb_t *nal, void *private,
-                void *dst_addr, user_ptr src_addr, size_t len)
-{
-        CDEBUG(D_NET, "0x%Lx: reading %ld bytes from %p -> %p\n",
-               nal->ni.nid, (long)len, src_addr, dst_addr );
-        memcpy( dst_addr, src_addr, len );
-        return 0;
-}
-
-
-static int 
-kscimacnal_write(nal_cb_t *nal, void *private,
-                user_ptr dst_addr, void *src_addr, size_t len)
-{
-        CDEBUG(D_NET, "0x%Lx: writing %ld bytes from %p -> %p\n",
-               nal->ni.nid, (long)len, src_addr, dst_addr );
-        memcpy( dst_addr, src_addr, len );
-        return 0;
-}
-
-
-static void *
-kscimacnal_malloc(nal_cb_t *nal, size_t len)
-{
-        void *buf;
-
-        PORTAL_ALLOC(buf, len);
-        return buf;
-}
-
-
-static void 
-kscimacnal_free(nal_cb_t *nal, void *buf, size_t len)
-{
-        PORTAL_FREE(buf, len);
-}
-
-
-static void 
-kscimacnal_printf(nal_cb_t *nal, const char *fmt, ...)
-{
-        va_list         ap;
-        char msg[256]; 
-
-        if (portal_debug & D_NET) {
-                va_start( ap, fmt );
-                vsnprintf( msg, sizeof(msg), fmt, ap );
-                va_end( ap );
-
-                printk("Lustre: CPUId: %d %s",smp_processor_id(), msg);
-        }
-}
-
-
-static void 
-kscimacnal_cli(nal_cb_t *nal, unsigned long *flags)
-{
-        kscimacnal_data_t *data= nal->nal_data;
-
-        spin_lock_irqsave(&data->ksci_dispatch_lock,*flags);
-}
-
-
-static void 
-kscimacnal_sti(nal_cb_t *nal, unsigned long *flags)
-{
-        kscimacnal_data_t *data= nal->nal_data; 
-
-        spin_unlock_irqrestore(&data->ksci_dispatch_lock,*flags);
-}
-
-
-static int 
-kscimacnal_dist(nal_cb_t *nal, ptl_nid_t nid, unsigned long *dist)
-{
-        /* FIXME: Network distance has a meaning, but is there no easy
-         * way to figure it out (depends on routing) */
-
-        if ( nal->ni.nid == nid ) {
-                *dist = 0;
-        } else {
-                *dist = 1;
-        }
-
-        return 0;
-}
-
-
-static
-char * get_mac_error(mac_status_t status) 
-{
-        switch(status) {
-                case MAC_MSG_STAT_OK:
-                        return "MAC_MSG_STAT_OK";
-                case MAC_MSG_STAT_FREED:
-                        return "MAC_MSG_STAT_FREED";
-                case MAC_MSG_STAT_ABORTED:
-                        return "MAC_MSG_STAT_ABORTED";
-                case MAC_MSG_STAT_TIMEDOUT:
-                        return "MAC_MSG_STAT_TIMEDOUT";
-                case MAC_MSG_STAT_NODEUNREACH:
-                        return "MAC_MSG_STAT_NODEUNREACH";
-                case MAC_MSG_STAT_NETDOWN:
-                        return "MAC_MSG_STAT_NETDOWN";
-                case MAC_MSG_STAT_RESET:
-                        return "MAC_MSG_STAT_RESET";
-                case MAC_MSG_STAT_INITFAILED:
-                        return "MAC_MSG_STAT_INITFAILED";
-                case MAC_MSG_STAT_SYNCFAILED:
-                        return "MAC_MSG_STAT_SYNCFAILED";
-                case MAC_MSG_STAT_BADPROTO:
-                        return "MAC_MSG_STAT_BADPROTO";
-                case MAC_MSG_STAT_NOBUFSPACE:
-                        return "MAC_MSG_STAT_NOBUFSPACE";
-                case MAC_MSG_STAT_CONGESTION:
-                        return "MAC_MSG_STAT_CONGESTION";
-                case MAC_MSG_STAT_OTHER:
-                        return "MAC_MSG_STAT_OTHER";
-                default:
-                        return "Unknown error";
-        }
-}
-
-
-/* FIXME add routing code here ? */
-
-/* Called by ScaMac when transmission is complete  (ie. message is released) */
-static void 
-kscimacnal_txrelease(mac_mblk_t *msg, mac_msg_status_t status, void *context)
-{
-        kscimacnal_tx_t *ktx = (kscimacnal_tx_t *)context;
-        int err=0, i;
-        
-        LASSERT (ktx != NULL);
-        /* Unmap any mapped pages */
-        for(i=0; i<ktx->ktx_nmapped; i++) {
-                kunmap(ktx->ktx_kpages[i]);
-        }
-
-        CDEBUG(D_NET, "kunmapped %d pages\n", ktx->ktx_nmapped);
-
-        /* Euh, there is no feedback when transmission fails?! */
-        switch(status) {
-                case MAC_MSG_STAT_OK:        /* normal */
-                        break;
-                default:
-                        CERROR("%s (%d):\n", get_mac_error(status), status);
-                        err = -EIO;
-                        break;
-        }
-
-        lib_finalize(ktx->ktx_nal, ktx->ktx_private, ktx->ktx_cookie,
-                     (err == 0) ? PTL_OK : PTL_FAIL);
-
-        PORTAL_FREE(ktx, (sizeof(kscimacnal_tx_t)));
-}
-
-
-/* Called by portals when it wants to send a message.
- * Since ScaMAC has it's own TX thread we don't bother setting up our own. */
-
-/* FIXME: Read comments in qswnal_cb.c for _sendmsg and fix return-on-error
- *        issues */
-static inline int 
-kscimacnal_sendmsg(nal_cb_t        *nal,
-                   void            *private,
-                   lib_msg_t       *cookie,
-                   ptl_hdr_t       *hdr,
-                   int              type, 
-                   ptl_nid_t        nid,
-                   ptl_pid_t        pid,
-                   unsigned int     payload_niov,
-                   struct iovec    *payload_iov,
-                   ptl_kiov_t      *payload_kiov,
-                   size_t           payload_len)
-{
-        kscimacnal_tx_t    *ktx=NULL;
-        kscimacnal_data_t  *ksci = nal->nal_data;
-        int              rc=0;
-        int              buf_len = sizeof(ptl_hdr_t) + payload_len;
-        mac_mblk_t      *msg=NULL, *lastblk, *newblk;
-        unsigned long   physaddr;
-        
-
-        CDEBUG(D_NET, "sending %d bytes from %p/%p to nid "LPX64" niov: %d\n",
-               payload_len, payload_iov, payload_kiov, nid, payload_niov);
-
-        /* Basic sanity checks */
-        LASSERT(ksci != NULL);
-        LASSERT(hdr != NULL);
-        LASSERT (payload_len == 0 || payload_niov > 0);
-        LASSERT (payload_niov <= PTL_MD_MAX_IOV);
-        /* It must be OK to kmap() if required */
-        LASSERT (payload_kiov == NULL || !in_interrupt ());
-        /* payload is either all vaddrs or all pages */
-        LASSERT (!(payload_kiov != NULL && payload_iov != NULL));
-
-        /* Do real check if we can send this */
-        if (buf_len > mac_get_mtusize(ksci->ksci_machandle)) {
-                CERROR("kscimacnal:request exceeds TX MTU size (%ld).\n",
-                                mac_get_mtusize(ksci->ksci_machandle));
-                return PTL_FAIL;
-        }
-
-
-        /* save transaction info for later finalize and cleanup */
-        PORTAL_ALLOC(ktx, (sizeof(kscimacnal_tx_t)));
-        if (!ktx) {
-                return PTL_NOSPACE;
-        }
-
-        ktx->ktx_nmapped = 0; /* Start with no mapped pages :) */
-
-        /* *SIGH* hdr is a stack variable in the calling function, so we
-         * need to copy it to a buffer. Zerocopy magic (or is it just
-         * deferred memcpy?) is annoying sometimes.  */
-        memcpy(&ktx->ktx_hdr, hdr, sizeof(ptl_hdr_t));
-
-        /* First, put the header in the main message mblk */
-        msg = mac_alloc_mblk(&ktx->ktx_hdr, sizeof(ptl_hdr_t),
-                        kscimacnal_txrelease, ktx);
-        if (!msg) {
-                PORTAL_FREE(ktx, (sizeof(kscimacnal_tx_t)));
-                return PTL_NOSPACE;
-        }
-        mac_put_mblk(msg, sizeof(ptl_hdr_t));
-        lastblk=msg;
-
-        /* Allocate additional mblks for each iov as needed.
-         * Essentially lib_copy_(k)iov2buf with a twist or two */
-        while (payload_len > 0)
-        {
-                ptl_size_t       nob;
-                char            *addr;
-
-                LASSERT (payload_niov > 0);
-
-                if(payload_iov != NULL) {
-                        nob = MIN (payload_iov->iov_len, payload_len);
-                        addr = payload_iov->iov_base;
-                }
-                else {
-                        nob = MIN (payload_kiov->kiov_len, payload_len);
-                        /* Bollocks. We need to handle paged IO for things to
-                         * work but there is no good way to do this. We
-                         * do it by kmap():ing all pages and keep them
-                         * mapped until scimac is done with them. */
-                        /* FIXME: kunmap() on error */
-                        addr = kmap(payload_kiov->kiov_page);
-                        ktx->ktx_kpages[ktx->ktx_nmapped++] = 
-                                payload_kiov->kiov_page;
-                }
-                /* We don't need a callback on the additional mblks,
-                 * since all release callbacks seems to be called when
-                 * the entire message has been sent */
-                newblk=mac_alloc_mblk(addr, nob, NULL, NULL);
-
-                if(!newblk) {
-                        mac_free_msg(msg);
-                        PORTAL_FREE(ktx, (sizeof(kscimacnal_tx_t)));
-                        return PTL_NOSPACE;
-                }
-                mac_put_mblk(newblk, nob);
-                mac_link_mblk(lastblk, newblk);
-                lastblk=newblk;
-
-                payload_len -= nob;
-                payload_niov--;
-                if(payload_iov != NULL) {
-                        payload_iov++;
-                }
-                else {
-                        payload_kiov++;
-                }
-        }
-
-        CDEBUG(D_NET, "kmapped %d pages\n", ktx->ktx_nmapped);
-
-        ktx->ktx_nal = nal;
-        ktx->ktx_private = private;
-        ktx->ktx_cookie = cookie;
-
-        CDEBUG(D_NET, "mac_send %d bytes to nid: 0x%Lx\n", buf_len, nid);
-
-        physaddr = htonl(nid);
-
-        if((rc=mac_send(ksci->ksci_machandle, msg,
-                                        (mac_physaddr_t *) &physaddr))) {
-                CERROR("kscimacnal: mac_send() failed, rc=%d\n", rc);
-                mac_free_msg(msg);
-                PORTAL_FREE(ktx, (sizeof(kscimacnal_tx_t)));
-                return PTL_FAIL;
-        }
-
-        return PTL_OK;
-}
-
-
-static int
-kscimacnal_send (nal_cb_t     *nal,
-                 void         *private,
-                 lib_msg_t    *cookie,
-                 ptl_hdr_t    *hdr,
-                 int           type,
-                 ptl_nid_t     nid,
-                 ptl_pid_t     pid,
-                 unsigned int  payload_niov,
-                 struct iovec *payload_iov,
-                 size_t        payload_nob)
-{
-        return (kscimacnal_sendmsg (nal, private, cookie, hdr, type, nid, pid,
-                                payload_niov, payload_iov, NULL, payload_nob));
-}
-
-static int
-kscimacnal_send_pages (nal_cb_t     *nal,
-                       void         *private,
-                       lib_msg_t    *cookie,
-                       ptl_hdr_t    *hdr,
-                       int           type,
-                       ptl_nid_t     nid,
-                       ptl_pid_t     pid,
-                       unsigned int  payload_niov,
-                       ptl_kiov_t   *payload_kiov,
-                       size_t        payload_nob)
-{
-        return (kscimacnal_sendmsg (nal, private, cookie, hdr, type, nid, pid,
-                                payload_niov, NULL, payload_kiov, payload_nob));
-}
-
-
-void
-kscimacnal_fwd_packet (void *arg, kpr_fwd_desc_t *fwd)
-{
-        CERROR ("forwarding not implemented\n");
-}
-
-
-/* Process a received portals packet */
-/* Called by the ScaMac RX thread when a packet is received */
-void
-kscimacnal_rx(mac_handle_t *handle, mac_mblk_t *msg, mac_msg_type_t type,
-                void *userdata)
-{
-        ptl_hdr_t       *hdr = NULL;
-        kscimacnal_rx_t     krx; 
-        mac_size_t       size;
-        kscimacnal_data_t  *ksci = userdata;
-
-        LASSERT(ksci != NULL);
-
-        if ( !ksci->ksci_init || ksci->ksci_shuttingdown || 
-                    type == MAC_MSG_TYPE_CTRL || type == MAC_MSG_TYPE_OTHER ) {
-                /* We're not interested in messages not for us, ignore */
-                mac_free_msg(msg);
-                return;
-        }
-
-        size = mac_msg_size(msg);
-
-        CDEBUG(D_NET,"msg %p type %d, size %ld bytes (%ld mblks)\n", 
-                        msg, type, size, mac_msg_mblks(msg));
-
-        if( size < sizeof( ptl_hdr_t ) ) {
-                /* XXX what's this for? */
-                if (ksci->ksci_shuttingdown)
-                        return;
-                CERROR("kscimacnal: did not receive complete portal header,"
-                                "size= %ld\n", size);
-                /* Free the message before exiting */
-                mac_free_msg(msg);
-                return;
-        }
-
-        /* Provide everything we know */
-        krx.handle = handle;
-        krx.msg = msg;
-        krx.type = type;
-        krx.userdata = userdata;
-
-        /* mac_msg_next returns the next mblk with unread data */
-        hdr = mac_get_mblk(mac_msg_next(msg), sizeof(ptl_hdr_t) );
-
-        if(!hdr) {
-                CERROR("kscimacnal: no data block in message %p\n", msg);
-                mac_free_msg(msg);
-                return;
-        }
-
-        if ( hdr->dest_nid == kscimacnal_lib.ni.nid ) {
-                PROF_START(lib_parse);
-                /* sets wanted_len, iovs etc and calls our callback */
-                lib_parse(&kscimacnal_lib, hdr, &krx);
-                PROF_FINISH(lib_parse);
-#if 0 /* FIXME: Is it possible to detect this? */
-        } else if (kgmnal_ispeer(hdr->dest_nid)) {
-                /* should have gone direct to peer */
-                CERROR("dropping packet from 0x%llx to 0x%llx:"
-                                "target is a  peer\n",
-                                hdr->src_nid, hdr->dest_nid);
-                kgmnal_requeue_rx(&krx);
-#endif /* if 0 FIXME */
-        } else {
-                /* forward to gateway */
-                CERROR("forwarding not implemented, mynid=0x%llx dest=0x%llx\n",
-                                kscimacnal_lib.ni.nid, hdr->dest_nid);
-        }
-
-        mac_free_msg(msg);
-
-        CDEBUG(D_NET, "msg %p: Done\n", msg);
-}
-
-
-/* Called by portals to process a recieved packet */
-inline static int 
-kscimacnal_recvmsg(nal_cb_t     *nal, 
-                   void         *private, 
-                   lib_msg_t    *cookie, 
-                   unsigned int  niov, 
-                   struct iovec *iov, 
-                   ptl_kiov_t   *kiov,
-                   size_t        mlen, 
-                   size_t        rlen)
-{
-        kscimacnal_rx_t    *krx = private;
-        mac_mblk_t      *mblk;
-        void            *src;
-        mac_size_t       pkt_len;
-        ptl_size_t       iovused=0;
-        char            *base=NULL;
-
-        LASSERT (krx != NULL);
-        LASSERT (krx->msg != NULL);
-
-        CDEBUG(D_NET,"msg %p: mlen=%d, rlen=%d, niov=%d\n",
-                        krx->msg, mlen, rlen, niov);
-
-        /* What was actually received must be >= what sender claims to have
-         * sent. */
-        LASSERT (mlen <= rlen); /* something is wrong if this isn't true */
-        if (mac_msg_size(krx->msg) < sizeof(ptl_hdr_t)+mlen) {
-                /* We didn't receive everything lib thinks we did */
-                CERROR("Bad message size: have %d, need %d + %d\n",
-                       mac_msg_size(krx->msg), sizeof(ptl_hdr_t), mlen);
-                return (PTL_FAIL);
-        }
-
-        /* It must be OK to kmap() if required */
-        LASSERT (kiov == NULL || !in_interrupt ());
-        /* Either all pages or all vaddrs */
-        LASSERT (!(kiov != NULL && iov != NULL));
-
-        PROF_START(memcpy);
-
-        /* mac_msg_next returns next mblk with unread data (ie. can
-         * be same mblk */
-        while (mlen != 0 && (mblk = mac_msg_next(krx->msg))) {
-                pkt_len = mac_mblk_len(mblk);
-                src = mac_get_mblk(mblk, pkt_len); /* Next unread block */
-
-                CDEBUG(D_NET,"msg %p: mblk: %p pkt_len: %ld  src: %p\n",
-                                krx->msg, mblk, pkt_len, src);
-
-                LASSERT(src != NULL);
-
-                /* Essentially lib_copy_buf2(k)iov but with continuation
-                 * support, we "gracefully" thrash the argument vars ;) */
-                while (pkt_len > 0) {
-                        ptl_size_t  nob, len;
-
-                        LASSERT (niov > 0);
-
-                        if(iov != NULL) {
-                                LASSERT(iovused < iov->iov_len);
-                                len = iov->iov_len;
-                                base = iov->iov_base;
-                        }
-                        else {
-                                LASSERT(iovused < kiov->kiov_len);
-                                len = kiov->kiov_len;
-                                if(base==NULL) {
-                                        /* New page */
-                                        base = kmap(kiov->kiov_page);
-                                }
-                        }
-
-                        nob = MIN (len-iovused, pkt_len);
-                        CDEBUG(D_NET, "base: %p len: %d src: %p  nob: %d "
-                                        "iovused: %d\n",
-                                        base, len, src, nob, iovused);
-
-                        memcpy (base+iovused, src, nob);
-                        pkt_len -= nob;
-                        src += nob;
-
-                        if(nob+iovused < len) {
-                                /* We didn't use all of the iov */
-                                iovused+=nob;
-                        }
-                        else {
-                                niov--;
-                                iovused=0;
-                                if(iov != NULL) {
-                                        iov++;
-                                }
-                                else {
-                                        kunmap(kiov->kiov_page);
-                                        base=NULL;
-                                        kiov++;
-                                }
-                        }
-                }
-        }
-        /* Just to make sure the last page is unmapped */
-        if(kiov!=NULL && base!=NULL) {
-                kunmap(kiov->kiov_page);
-                base=NULL;
-        }
-        PROF_FINISH(memcpy);
-
-        CDEBUG(D_NET, "Calling lib_finalize.\n");
-
-        PROF_START(lib_finalize);
-        lib_finalize(nal, private, cookie, PTL_OK);
-        PROF_FINISH(lib_finalize);
-
-        CDEBUG(D_NET, "Done.\n");
-
-        return PTL_OK;
-}
-
-
-static int
-kscimacnal_recv(nal_cb_t     *nal,
-             void         *private,
-             lib_msg_t    *cookie,
-             unsigned int  niov,
-             struct iovec *iov,
-             size_t        mlen,
-             size_t        rlen)
-{
-        return (kscimacnal_recvmsg (nal, private, cookie, niov, iov, NULL, mlen, rlen));
-}
-
-
-static int
-kscimacnal_recv_pages (nal_cb_t     *nal,
-                    void         *private,
-                    lib_msg_t    *cookie,
-                    unsigned int  niov,
-                    ptl_kiov_t   *kiov,
-                    size_t        mlen,
-                    size_t        rlen)
-{
-        return (kscimacnal_recvmsg (nal, private, cookie, niov, NULL, kiov, mlen, rlen));
-}
-
-
-nal_cb_t kscimacnal_lib = {
-        nal_data:       &kscimacnal_data,               /* NAL private data */
-        cb_send:         kscimacnal_send,
-        cb_send_pages:   kscimacnal_send_pages,
-        cb_recv:         kscimacnal_recv,
-        cb_recv_pages:   kscimacnal_recv_pages,
-        cb_read:         kscimacnal_read,
-        cb_write:        kscimacnal_write,
-        cb_malloc:       kscimacnal_malloc,
-        cb_free:         kscimacnal_free,
-        cb_printf:       kscimacnal_printf,
-        cb_cli:          kscimacnal_cli,
-        cb_sti:          kscimacnal_sti,
-        cb_dist:         kscimacnal_dist
-};
index 5d2688e..598adc1 100644 (file)
@@ -1,5 +1,5 @@
 MODULES = portals
-libcfs-objs := debug.o lwt.o module.o proc.o
+libcfs-objs := debug.o lwt.o module.o proc.o tracefile.o
 
 api-sources := $(wildcard @LUSTRE@/portals/portals/api-*.c)
 lib-sources := $(wildcard @LUSTRE@/portals/portals/lib-*.c)
index c201429..8ecf3c9 100644 (file)
@@ -6,4 +6,4 @@
 include fs/lustre/portals/Kernelenv
 
 obj-y += libcfs.o
-libcfs-objs    := module.o proc.o debug.o lwt.o
+libcfs-objs    := module.o proc.o debug.o lwt.o tracefile.o
index ac83541..cacd769 100644 (file)
@@ -17,4 +17,4 @@ sources:
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 CLEANFILES = sources lib-*.c api-*.c
-DIST_SOURCES = $(libcfs-objs:%.o=%.c)
+DIST_SOURCES = $(libcfs-objs:%.o=%.c) *.h
index 04a7496..01fbe35 100644 (file)
@@ -53,6 +53,8 @@
 #include <linux/portals_compat25.h>
 #include <linux/libcfs.h>
 
+#include "tracefile.h"
+
 #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
 #include <linux/kallsyms.h>
 #endif
@@ -79,368 +81,32 @@ atomic_t portal_kmemory = ATOMIC_INIT(0);
 EXPORT_SYMBOL(portal_kmemory);
 #endif
 
-#define DEBUG_OVERFLOW 1024
-static char *debug_buf = NULL;
-static unsigned long debug_size = 0;
-static atomic_t debug_off_a = ATOMIC_INIT(0);
-static int debug_wrapped;
 static DECLARE_WAIT_QUEUE_HEAD(debug_ctlwq);
-#define DAEMON_SND_SIZE      (64 << 10)
-
-/*
- * used by the daemon to keep track the offset into debug_buffer for the next
- * write to the file.  Usually, the daemon is to write out buffer
- * from debug_daemon_next_write upto debug_off
- *  variable usage
- *      Reader - portals_debug_msg()
- *      Writer - portals_debug_daemon()
- *               portals_debug_daemon_start() during daemon init time
- *               portals_debug_daemon_continue() to reset to debug_off
- *               portals_debug_clear_buffer() reset to debug_off for clear
- *      Note that *_start(), *_continue() & *clear_buffer() should serialized;
- */
-static atomic_t   debug_daemon_next_write;
-
-/*
- * A debug_daemon can be in following states
- *      stopped - stopped state means there is no debug_daemon running.
- *                accordingly, it must be in paused state
- *                a daemon is in !stopped && !paused state after
- *                "lctl debug_daemon start" creates debug_daemon successfully
- *                Variable Usage
- *                      Reader - portals_debug_daemon()
- *                               portals_debug_set_daemon() routines
- *                      Writer - portals_debug_set_daemon() routines
- *                              portals_debug_daemon() on IO error
- *      paused -  a debug_daemon state is changed from !paused into paused
- *                when "lctl debug_daemon paused" is issued
- *                "lctl debug_daemon continue" gets a daemon into !paused mode
- *                      Reader - portals_debug_set_daemon() routines
- *                               portals_debug_msg()
- *                      Writer - portals_debug_set_daemon() on init
- *                               portals_debug_daemon()
- *
- *        Daemon  state diagram.
- *                      (stopped, paused)
- *                              |  <-- debug_daemon start
- *                              V
- *                      (!stopped, !paused)
- *                              |  <-- debug_daemon pause
- *                              V
- *                      (!stopped, paused)
- *                              |  <-- debug_daemon continue
- *                              V
- *                      (!stopped, !paused)
- *                              |  <-- debug_daemon stop
- *                              V
- *                      (stopped, paused)
- *      Overlapped - this is a state when CDEBUG is too fast for the daemon to
- *                   write out the debug_bufferr.  That is, debug_off is to
- *                   overlap debug_daemon_next_write;
- *                     Reader - portals_debug_msg()
- *                     Writer - portals_debug_msg()
- */
-
-/*
- * Description on Trace Daemon Synchronization
- *
- * Three categories of code are synchronizing between each other
- * 1.   lctl, portals_debug_set_daemon(), the user debug control code, 
- *      as well as portals_debug_clear_buffer()
- * 2.   CDEBUG, portals_debug_msg(), the debug put messages routine
- * 3.   Daemon, portals_debug_daemon(), to write out debug log file
- *
- *
- * Three different controls for synchronizations
- *
- * 1.   debug_daemon_semaphore
- *      The usage of this semaphore is to serialize multiple lctl controls 
- *      in manipulating debug daemon state.  The semaphore serves as the 
- *      gatekeeper to allow only one user control thread, at any giving time, 
- *      to access debug daemon state and keeps the other user control requests 
- *      in wait state until the current control request is serviced.
- *
- * 2.   wait_queue_head_t lctl (paired with lctl_event flag)
- *      Lctl event is the event between portals_debug_set_daemon() and 
- *      portals_debug_daemon().  Lctl is an indicator for portals_debug_daemon()
- *      to flush data out to file.  portals_debug_daemon() is to use lctl event
- *      as signal channel to wakeup portals_debug_set_daemon() upon flush 
- *      operation is done.
- *
- *      Producer :
- *              portals_debug_daemon() uses to wake up 
- *              portals_debug_set_daemon(), pause and stop, routines
- *      Consumer :
- *              portals_debug_set_daemon(), stop and pause operations, 
- *              wait and sleep on the event
- *
- * 3.   wait_queue_head_t daemon (paired with daemon_event flag)
- *      This is an event channel to wakeup portals_debug_daemon.  Daemon 
- *      wakes up to run whenever there is an event posted.   Daemon handles 
- *      2 types of operations . 1. Writes data out to debug file, 2. Flushes 
- *      file and terminates base on lctl event. 
- *      File operation -
- *              Daemon is normally in a sleep state.  
- *              Daemon is woken up through daemon event whenever CDEBUG is 
- *              putting data over any 64K boundary. 
- *      File flush and termination -
- *              On portals_debug_daemon_stop/pause() operations, lctl control 
- *              is to wake up daemon through daemon event.
- *
- *      We can't use sleep_on() and wake_up() to replace daemon event because 
- *      portals_debug_daemon() must catch the wakeup operation posted by 
- *      portals_debug_daemon_stop/pause().  Otherwise, stop and pause may 
- *      stuck in lctl wait event.
- *
- *      Producer :
- *           a. portals_debug_daemon_pause() and portals_debug_daemon_stop() 
- *              uses the event to wake up portals_debug_daemon()
- *           b. portals_debug_msg() uses the event to wake up 
- *              portals_debug_daemon() whenever the data output is acrossing 
- *              a 64K bytes boundary.
- *      Consumer :
- *              portals_debug_daemon() wakes up upon daemon event.
- *
- * Sequence for portals_debug_daemon_stop() operation
- *
- * _Portals_debug_daemon_stop()_          _Daemon_
- *                                      Wait_event(daemon) or running
- *      Paused = 1;
- *      Wakeup_event (daemon)
- *      Wait_event(lctl)
- *                                      Set force_flush flag if lctlevnt
- *                                      Flush data
- *                                      Wakeup_event (lctl)
- *                                      Wait_event(daemon)
- *      Stopped = 1;
- *      Wakeup_event (daemon)
- *      Wait_event(lctl)
- *                                      Exit daemon loop if (Stopped)
- *                                      Wakeup_event (lctl)
- *                                      Exit
- *      Return to user application
- *
- *
- * _Portals_debug_msg()_                  _Daemon_
- *                                      Wait_event(daemon) or running
- *      If (WriteStart<64K<WriteEnd)
- *         Wakeup_event(daemon)
- *                                      Do file IO
- *                                      Wait_event(daemon)
- */
-struct debug_daemon_state {
-        unsigned long overlapped;
-        unsigned long stopped;
-        atomic_t paused;
-        unsigned long   lctl_event;     /* event for lctl */
-        wait_queue_head_t lctl;
-        unsigned long   daemon_event;   /* event for daemon */
-        wait_queue_head_t daemon;
-};
-static struct debug_daemon_state debug_daemon_state;
-static DECLARE_MUTEX(debug_daemon_semaphore);
 
-static loff_t daemon_file_size_limit;
-char debug_daemon_file_path[1024] = "";
-
-spinlock_t portals_debug_lock = SPIN_LOCK_UNLOCKED;
 char debug_file_path[1024] = "/tmp/lustre-log";
-char debug_file_name[1024];
-int handled_panic; /* to avoid recursive calls to notifiers */
+static char debug_file_name[1024];
+static int handled_panic; /* to avoid recursive calls to notifiers */
 char portals_upcall[1024] = "/usr/lib/lustre/portals_upcall";
 
-
 int portals_do_debug_dumplog(void *arg)
 {
-        struct file *file;
         void *journal_info;
-        int rc;
-        mm_segment_t oldfs;
-        unsigned long debug_off;
 
         kportal_daemonize("");
 
         reparent_to_init();
         journal_info = current->journal_info;
         current->journal_info = NULL;
-        sprintf(debug_file_name, "%s.%ld", debug_file_path, CURRENT_SECONDS);
-        file = filp_open(debug_file_name, O_CREAT|O_EXCL|O_RDWR, 0644);
 
-        if (!file || IS_ERR(file)) {
-                CERROR("cannot open %s for dumping: %ld\n", debug_file_name,
-                       PTR_ERR(file));
-                GOTO(out, PTR_ERR(file));
-        } else {
-                printk(KERN_ALERT "LustreError: dumping log to %s ...\n",
-                       debug_file_name);
-        }
+        snprintf(debug_file_name, sizeof(debug_file_path) - 1,
+                 "%s.%ld.%ld", debug_file_path, CURRENT_SECONDS, (long)arg);
+        tracefile_dump_all_pages(debug_file_name);
 
-        debug_off = atomic_read(&debug_off_a);
-        oldfs = get_fs();
-        set_fs(get_ds());
-        if (debug_wrapped) {
-                rc = file->f_op->write(file, debug_buf + debug_off + 1,
-                                       debug_size-debug_off-1, &file->f_pos);
-                rc += file->f_op->write(file, debug_buf, debug_off + 1,
-                                        &file->f_pos);
-        } else {
-                rc = file->f_op->write(file, debug_buf, debug_off,&file->f_pos);
-        }
-        printk("LustreError: wrote %d bytes\n", rc);
-        set_fs(oldfs);
-
-        rc = file->f_op->fsync(file, file->f_dentry, 1);
-        if (rc)
-                CERROR("sync returns %d\n", rc);
-        filp_close(file, 0);
-out:
         current->journal_info = journal_info;
         wake_up(&debug_ctlwq);
         return 0;
 }
 
-int portals_debug_daemon(void *arg)
-{
-        struct file *file;
-        void *journal_info;
-        mm_segment_t oldfs;
-        unsigned long force_flush = 0;
-        unsigned long size, off, flags;
-        int rc;
-
-        kportal_daemonize("ldebug_daemon");
-        reparent_to_init();
-        journal_info = current->journal_info;
-        current->journal_info = NULL;
-
-        file = filp_open(debug_daemon_file_path,
-                         O_CREAT|O_TRUNC|O_RDWR|O_LARGEFILE, 0644);
-
-        if (!file || IS_ERR(file)) {
-                CERROR("cannot open %s for logging", debug_daemon_file_path);
-                GOTO(out1, PTR_ERR(file));
-        }
-        printk(KERN_INFO "daemon dumping log to %s\n", debug_daemon_file_path);
-
-        debug_daemon_state.overlapped = 0;
-        debug_daemon_state.stopped = 0;
-
-        spin_lock_irqsave(&portals_debug_lock, flags);
-        off = atomic_read(&debug_off_a) + 1;
-        if (debug_wrapped)
-                off = (off >= debug_size)? 0 : off;
-        else
-                off = 0;
-        atomic_set(&debug_daemon_next_write, off);
-        atomic_set(&debug_daemon_state.paused, 0);
-        spin_unlock_irqrestore(&portals_debug_lock, flags);
-
-        oldfs = get_fs();
-        set_fs(KERNEL_DS);
-        while (1) {
-                unsigned long ending;
-                unsigned long start, tail;
-                long delta;
-
-                debug_daemon_state.daemon_event = 0;
-
-                ending = atomic_read(&debug_off_a);
-                start = atomic_read(&debug_daemon_next_write);
-
-                /* check if paused is imposed by lctl ? */
-                force_flush = !debug_daemon_state.lctl_event;
-
-                delta = ending - start;
-                tail = debug_size - start;
-                size = (delta >= 0) ? delta : tail;
-                while (size && (force_flush || (delta < 0) ||
-                                (size >= DAEMON_SND_SIZE))) {
-                        if (daemon_file_size_limit) {
-                               int ssize = daemon_file_size_limit - file->f_pos;
-                               if (size > ssize)
-                                        size = ssize;
-                        }
-
-                        rc = file->f_op->write(file, debug_buf+start,
-                                               size, &file->f_pos);
-                        if (rc < 0) {
-                                printk(KERN_ALERT "LustreError: Debug_daemon "
-                                       "write error %d\n", rc);
-                                goto out;
-                        }
-                        start += rc;
-                        delta = ending - start;
-                        tail = debug_size - start;
-                        if (tail == 0)
-                                start = 0;
-                        if (delta >= 0)
-                                size = delta;
-                        else
-                                size = (tail == 0) ? ending : tail;
-                        if (daemon_file_size_limit == file->f_pos) {
-                                // file wrapped around
-                                file->f_pos = 0;
-                        }
-                }
-                atomic_set(&debug_daemon_next_write, start);
-                if (force_flush) {
-                        rc = file->f_op->fsync(file, file->f_dentry, 1);
-                        if (rc < 0) {
-                                printk(KERN_ALERT "LustreError: Debug_daemon "
-                                       "sync error %d\n", rc);
-                                goto out;
-                        }
-                        if (debug_daemon_state.stopped)
-                               break;
-                        debug_daemon_state.lctl_event = 1;
-                        wake_up(&debug_daemon_state.lctl);
-                }
-                wait_event(debug_daemon_state.daemon,
-                           debug_daemon_state.daemon_event);
-                }
-out:
-        atomic_set(&debug_daemon_state.paused, 1);
-        debug_daemon_state.stopped = 1;
-        set_fs(oldfs);
-        filp_close(file, 0);
-        current->journal_info = journal_info;
-out1:
-        debug_daemon_state.lctl_event = 1;
-        wake_up(&debug_daemon_state.lctl);
-        return 0;
-}
-
-void portals_debug_print(void)
-{
-        unsigned long dumplen = 64 * 1024;
-        char *start1, *start2;
-        char *end1, *end2;
-        unsigned long debug_off = atomic_read(&debug_off_a);
-
-        start1 = debug_buf + debug_off - dumplen;
-        if (start1 < debug_buf) {
-                start1 += debug_size;
-                end1 = debug_buf + debug_size - 1;
-                start2 = debug_buf;
-                end2 = debug_buf + debug_off;
-        } else {
-                end1 = debug_buf + debug_off;
-                start2 = debug_buf + debug_off;
-                end2 = debug_buf + debug_off;
-        }
-
-        while (start1 < end1) {
-                int count = MIN(1024, end1 - start1);
-                printk("LustreError: %*s", count, start1);
-                start1 += 1024;
-        }
-        while (start2 < end2) {
-                int count = MIN(1024, end2 - start2);
-                printk("LustreError: %*s", count, start2);
-                start2 += 1024;
-        }
-}
-
 void portals_debug_dumplog(void)
 {
         int rc;
@@ -453,8 +119,8 @@ void portals_debug_dumplog(void)
         set_current_state(TASK_INTERRUPTIBLE);
         add_wait_queue(&debug_ctlwq, &wait);
 
-        rc = kernel_thread(portals_do_debug_dumplog,
-                           NULL, CLONE_VM | CLONE_FS | CLONE_FILES);
+        rc = kernel_thread(portals_do_debug_dumplog, (void *)(long)current->pid,
+                           CLONE_VM | CLONE_FS | CLONE_FILES);
         if (rc < 0)
                 printk(KERN_ERR "LustreError: cannot start log dump thread: "
                        "%d\n", rc);
@@ -466,108 +132,6 @@ void portals_debug_dumplog(void)
         set_current_state(TASK_RUNNING);
 }
 
-int portals_debug_daemon_start(char *file, unsigned int size)
-{
-        int rc;
-
-        if (!debug_daemon_state.stopped)
-                return -EALREADY;
-
-        if (file != NULL)
-                strncpy(debug_daemon_file_path, file, 1024);
-
-        init_waitqueue_head(&debug_daemon_state.lctl);
-        init_waitqueue_head(&debug_daemon_state.daemon);
-
-        daemon_file_size_limit = size << 20;
-
-        debug_daemon_state.lctl_event = 0;
-        rc = kernel_thread(portals_debug_daemon, NULL, 0);
-        if (rc < 0) {
-                printk(KERN_ERR "LustreError: cannot start debug daemon thread\n");
-                strncpy(debug_daemon_file_path, "\0", 1);
-                return rc;
-        }
-        wait_event(debug_daemon_state.lctl, debug_daemon_state.lctl_event);
-        return 0;
-}
-
-int portals_debug_daemon_pause(void)
-{
-        if (atomic_read(&debug_daemon_state.paused))
-                return -EALREADY;
-
-        atomic_set(&debug_daemon_state.paused, 1);
-        debug_daemon_state.lctl_event = 0;
-        debug_daemon_state.daemon_event = 1;
-        wake_up(&debug_daemon_state.daemon);
-        wait_event(debug_daemon_state.lctl, debug_daemon_state.lctl_event);
-        return 0;
-}
-
-int portals_debug_daemon_continue(void)
-{
-        if (!atomic_read(&debug_daemon_state.paused))
-                return -EINVAL;
-        if (debug_daemon_state.stopped)
-                return -EINVAL;
-
-        debug_daemon_state.overlapped = 0;
-        atomic_set(&debug_daemon_next_write, atomic_read(&debug_off_a));
-        atomic_set(&debug_daemon_state.paused, 0);
-        return 0;
-}
-
-int portals_debug_daemon_stop(void)
-{
-        if (debug_daemon_state.stopped)
-                return -EALREADY;
-
-        if (!atomic_read(&debug_daemon_state.paused))
-                portals_debug_daemon_pause();
-
-        debug_daemon_state.lctl_event = 0;
-        debug_daemon_state.stopped = 1;
-
-        debug_daemon_state.daemon_event = 1;
-        wake_up(&debug_daemon_state.daemon);
-        wait_event(debug_daemon_state.lctl, debug_daemon_state.lctl_event);
-
-        debug_daemon_file_path[0] = '\0';
-        return 0;
-}
-
-int portals_debug_set_daemon(unsigned int cmd, unsigned int length,
-                             char *filename, unsigned int size)
-{
-        int rc = -EINVAL;
-
-        down(&debug_daemon_semaphore);
-        switch (cmd) {
-                case DEBUG_DAEMON_START:
-                        if (length && (filename[length -1] != '\0')) {
-                                CERROR("Invalid filename for debug_daemon\n");
-                                rc = -EINVAL;
-                                break;
-                        }
-                        rc = portals_debug_daemon_start(filename, size);
-                        break;
-                case DEBUG_DAEMON_STOP:
-                        rc = portals_debug_daemon_stop();
-                        break;
-                case DEBUG_DAEMON_PAUSE:
-                        rc = portals_debug_daemon_pause();
-                        break;
-                case DEBUG_DAEMON_CONTINUE:
-                        rc = portals_debug_daemon_continue();
-                        break;
-                default:
-                        CERROR("unknown set_daemon cmd\n");
-        }
-        up(&debug_daemon_semaphore);
-        return rc;
-}
-
 static int panic_dumplog(struct notifier_block *self, unsigned long unused1,
                          void *unused2)
 {
@@ -577,7 +141,7 @@ static int panic_dumplog(struct notifier_block *self, unsigned long unused1,
                 handled_panic = 1;
 
         if (in_interrupt()) {
-                portals_debug_print();
+                trace_debug_print();
                 return 0;
         }
 
@@ -595,80 +159,29 @@ static struct notifier_block lustre_panic_notifier = {
 
 int portals_debug_init(unsigned long bufsize)
 {
-        unsigned long debug_off = atomic_read(&debug_off_a);
-        if (debug_buf != NULL)
-                return -EALREADY;
-
-        atomic_set(&debug_daemon_state.paused, 1);
-        debug_daemon_state.stopped = 1;
-
-        debug_buf = vmalloc(bufsize + DEBUG_OVERFLOW);
-        if (debug_buf == NULL)
-                return -ENOMEM;
-        memset(debug_buf, 0, bufsize + DEBUG_OVERFLOW);
-        debug_wrapped = 0;
-
-        //printk(KERN_INFO "Portals: allocated %lu byte debug buffer at %p.\n",
-               //bufsize, debug_buf);
-        atomic_set(&debug_off_a, debug_off);
         notifier_chain_register(&panic_notifier_list, &lustre_panic_notifier);
-        debug_size = bufsize;
-
-        return 0;
+        return tracefile_init();
 }
 
 int portals_debug_cleanup(void)
 {
+        tracefile_exit();
         notifier_chain_unregister(&panic_notifier_list, &lustre_panic_notifier);
-        if (debug_buf == NULL)
-                return -EINVAL;
-
-        down(&debug_daemon_semaphore);
-        portals_debug_daemon_stop();
-
-        vfree(debug_buf);
-        atomic_set(&debug_off_a, 0);
-        up(&debug_daemon_semaphore);
-
         return 0;
 }
 
 int portals_debug_clear_buffer(void)
 {
-        unsigned long flags;
-        unsigned long state;
-
-        if (debug_buf == NULL)
-                return -EINVAL;
-
-        down(&debug_daemon_semaphore);
-        state = atomic_read(&debug_daemon_state.paused);
-        if (!state)
-                portals_debug_daemon_pause();
-        spin_lock_irqsave(&portals_debug_lock, flags);
-        atomic_set(&debug_off_a, 0);
-        debug_wrapped = 0;
-        atomic_set(&debug_daemon_next_write, 0);
-        debug_daemon_state.overlapped = 0;
-        spin_unlock_irqrestore(&portals_debug_lock, flags);
-
-        if (!state)
-                atomic_set(&debug_daemon_state.paused, 0);
-        up(&debug_daemon_semaphore);
-
+        trace_flush_pages();
         return 0;
 }
 
 /* Debug markers, although printed by S_PORTALS
- * should not be be marked as such.
- */
+ * should not be be marked as such. */
 #undef DEBUG_SUBSYSTEM
 #define DEBUG_SUBSYSTEM S_UNDEFINED
 int portals_debug_mark_buffer(char *text)
 {
-        if (debug_buf == NULL)
-                return -EINVAL;
-
         CDEBUG(D_TRACE,"***************************************************\n");
         CWARN("DEBUG MARKER: %s\n", text);
         CDEBUG(D_TRACE,"***************************************************\n");
@@ -678,228 +191,6 @@ int portals_debug_mark_buffer(char *text)
 #undef DEBUG_SUBSYSTEM
 #define DEBUG_SUBSYSTEM S_PORTALS
 
-/* this copies a snapshot of the debug buffer into an array of pages
- * before doing the potentially blocking copy into userspace. it could
- * be warning userspace if things wrap heavily while its off copying. */
-__s32 portals_debug_copy_to_user(char *buf, unsigned long len)
-{
-        int rc;
-        unsigned long total, debug_off, i, off, copied;
-        unsigned long flags;
-        struct page *page;
-        LIST_HEAD(my_pages);
-        struct list_head *pos, *n;
-
-        if (len < debug_size)
-                return -ENOSPC;
-
-        for (i = 0 ; i < debug_size; i += PAGE_SIZE) {
-                page = alloc_page(GFP_NOFS);
-                if (page == NULL) {
-                        rc = -ENOMEM;
-                        goto cleanup;
-                }
-                list_add(&PAGE_LIST(page), &my_pages);
-        }
-
-        spin_lock_irqsave(&portals_debug_lock, flags);
-        debug_off = atomic_read(&debug_off_a);
-
-        /* Sigh. If the buffer is empty, then skip to the end. */
-        if (debug_off == 0 && !debug_wrapped) {
-                spin_unlock_irqrestore(&portals_debug_lock, flags);
-                rc = 0;
-                goto cleanup;
-        }
-
-        if (debug_wrapped) {
-                off = debug_off + 1;
-                total = debug_size;
-        } else {
-                off = 0;
-                total = debug_off;
-        }
-        copied = 0;
-        list_for_each(pos, &my_pages) {
-                unsigned long to_copy;
-                void *addr;
-
-                page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
-                to_copy = min(total - off, PAGE_SIZE);
-                if (to_copy == 0) {
-                        off = 0;
-                        to_copy = min(debug_size - off, PAGE_SIZE);
-                }
-finish_partial:
-                addr = kmap_atomic(page, KM_USER0);
-                memcpy(addr, debug_buf + off, to_copy);
-                kunmap_atomic(addr, KM_USER0);
-                copied += to_copy;
-                if (copied >= total)
-                        break;
-
-                off += to_copy;
-                if (off >= debug_size) {
-                        off = 0;
-                        if (to_copy != PAGE_SIZE) {
-                                to_copy = PAGE_SIZE - to_copy;
-                                goto finish_partial;
-                        }
-                }
-        }
-
-        spin_unlock_irqrestore(&portals_debug_lock, flags);
-
-        off = 0;
-        list_for_each(pos, &my_pages) {
-                unsigned long to_copy;
-                page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
-
-                to_copy = min(copied - off, PAGE_SIZE);
-                rc = copy_to_user(buf + off, kmap(page), to_copy);
-                kunmap(page);
-                if (rc) {
-                        rc = -EFAULT;
-                        goto cleanup;
-                }
-                off += to_copy;
-                if (off >= copied)
-                        break;
-        }
-        rc = copied;
-
-cleanup:
-        list_for_each_safe(pos, n, &my_pages) {
-                page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
-                list_del(&PAGE_LIST(page));
-                __free_page(page);
-        }
-        return rc;
-}
-
-/* FIXME: I'm not very smart; someone smarter should make this better. */
-void
-portals_debug_msg(int subsys, int mask, char *file, const char *fn,
-                  const int line, unsigned long stack, char *format, ...)
-{
-        va_list       ap;
-        unsigned long flags;
-        int           max_nob;
-        int           prefix_nob;
-        int           msg_nob;
-        struct timeval tv;
-        unsigned long base_offset;
-        unsigned long debug_off;
-
-        if (debug_buf == NULL) {
-                printk("LustreError: portals_debug_msg: debug_buf is NULL!\n");
-                return;
-        }
-
-        spin_lock_irqsave(&portals_debug_lock, flags);
-        debug_off = atomic_read(&debug_off_a);
-        if (!atomic_read(&debug_daemon_state.paused)) {
-                unsigned long available;
-                long delta;
-                long v = atomic_read(&debug_daemon_next_write);
-
-                delta = debug_off - v;
-                available = (delta>=0) ? debug_size-delta : -delta;
-                // Check if we still have enough debug buffer for CDEBUG
-                if (available < DAEMON_SND_SIZE) {
-                        /* Drop CDEBUG packets until enough debug_buffer is
-                         * available */
-                        if (debug_daemon_state.overlapped)
-                                 goto out;
-                        /* If this is the first time, leave a marker in the
-                         * output */
-                        debug_daemon_state.overlapped = 1;
-                        format = "DEBUG MARKER: Debug buffer overlapped\n";
-                        printk(KERN_ERR "LustreError: debug daemon buffer "
-                               "overlapped\n");
-                } else  /* More space just became available */
-                        debug_daemon_state.overlapped = 0;
-        }
-
-        max_nob = debug_size - debug_off + DEBUG_OVERFLOW;
-        if (max_nob <= 0) {
-                spin_unlock_irqrestore(&portals_debug_lock, flags);
-                printk("LustreError: logic error in portals_debug_msg: "
-                       "< 0 bytes to write\n");
-                return;
-        }
-
-        /* NB since we pass a non-zero sized buffer (at least) on the first
-         * print, we can be assured that by the end of all the snprinting,
-         * we _do_ have a terminated buffer, even if our message got truncated.
-         */
-
-        do_gettimeofday(&tv);
-
-        prefix_nob = snprintf(debug_buf + debug_off, max_nob,
-                              "%06x:%06x:%d:%lu.%06lu:%lu:%d:",
-                              subsys, mask, smp_processor_id(),
-                              tv.tv_sec, tv.tv_usec, stack, current->pid);
-        max_nob -= prefix_nob;
-
-        if(*(format + strlen(format) - 1) != '\n')
-                printk(KERN_INFO "format at %s:%d:%s doesn't end in newline\n",
-                       file, line, fn);
-
-#if defined(__arch_um__) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,20))
-        msg_nob = snprintf(debug_buf + debug_off + prefix_nob, max_nob,
-                           "%d:(%s:%d:%s()) ",
-                           current->thread.extern_pid, file, line, fn);
-#elif defined(__arch_um__) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
-        msg_nob = snprintf(debug_buf + debug_off + prefix_nob, max_nob,
-                           "%d:(%s:%d:%s()) ",
-                           current->thread.mode.tt.extern_pid, file, line, fn);
-#else
-        msg_nob = snprintf(debug_buf + debug_off + prefix_nob, max_nob,
-                           "%d:(%s:%d:%s()) ",
-                           current->pid, file, line, fn);
-#endif
-
-        va_start(ap, format);
-        msg_nob += vsnprintf(debug_buf + debug_off + prefix_nob + msg_nob,
-                             max_nob, format, ap);
-        max_nob -= msg_nob;
-        va_end(ap);
-
-        /* Print to console, while msg is contiguous in debug_buf */
-        /* NB safely terminated see above */
-        if ((mask & D_EMERG) != 0)
-                printk(KERN_EMERG "LustreError: %s",
-                       debug_buf + debug_off + prefix_nob);
-        else if ((mask & D_ERROR) != 0)
-                printk(KERN_ERR "LustreError: %s",
-                       debug_buf + debug_off + prefix_nob);
-        else if ((mask & D_WARNING) != 0)
-                printk(KERN_WARNING "Lustre: %s",
-                       debug_buf + debug_off + prefix_nob);
-        else if (portal_printk)
-                printk("<%d>Lustre: %s", portal_printk,
-                       debug_buf+debug_off+prefix_nob);
-        base_offset = debug_off & 0xFFFF;
-
-        debug_off += prefix_nob + msg_nob;
-        if (debug_off > debug_size) {
-                memcpy(debug_buf, debug_buf + debug_size,
-                       debug_off - debug_size + 1);
-                debug_off -= debug_size;
-                debug_wrapped = 1;
-        }
-
-        atomic_set(&debug_off_a, debug_off);
-        if (!atomic_read(&debug_daemon_state.paused) &&
-            ((base_offset+prefix_nob+msg_nob) >= DAEMON_SND_SIZE)) {
-                debug_daemon_state.daemon_event = 1;
-                wake_up(&debug_daemon_state.daemon);
-        }
-out:
-        spin_unlock_irqrestore(&portals_debug_lock, flags);
-}
-
 void portals_debug_set_level(unsigned int debug_level)
 {
         printk("Lustre: Setting portals debug level to %08x\n", debug_level);
@@ -1079,7 +370,6 @@ EXPORT_SYMBOL(portals_current);
 #endif /* __KERNEL__ */
 
 EXPORT_SYMBOL(portals_debug_dumplog);
-EXPORT_SYMBOL(portals_debug_msg);
 EXPORT_SYMBOL(portals_debug_set_level);
 EXPORT_SYMBOL(portals_run_upcall);
 EXPORT_SYMBOL(portals_run_lbug_upcall);
index f46c855..c510aa4 100644 (file)
@@ -526,23 +526,6 @@ static int kportal_ioctl(struct inode *inode, struct file *file,
         data = (struct portal_ioctl_data *)buf;
 
         switch (cmd) {
-        case IOC_PORTAL_SET_DAEMON: 
-                RETURN (portals_debug_set_daemon ( 
-                                        (unsigned int) data->ioc_count,
-                                        (unsigned int) data->ioc_inllen1,
-                                        (char *) data->ioc_inlbuf1,
-                                        (unsigned int) data->ioc_misc)); 
-        case IOC_PORTAL_GET_DEBUG: {
-                __s32 size = portals_debug_copy_to_user(data->ioc_pbuf1,
-                                                        data->ioc_plen1);
-
-                if (size < 0)
-                        RETURN(size);
-
-                data->ioc_size = size;
-                err = copy_to_user((char *)arg, data, sizeof(*data));
-                RETURN(err);
-        }
         case IOC_PORTAL_CLEAR_DEBUG:
                 portals_debug_clear_buffer();
                 RETURN(0);
@@ -767,7 +750,6 @@ static void exit_kportals_module(void)
         CDEBUG(D_MALLOC, "before Portals cleanup: kmem %d\n",
                atomic_read(&portal_kmemory));
 
-
         rc = misc_deregister(&portal_dev);
         if (rc)
                 CERROR("misc_deregister error %d\n", rc);
index c1b2aec..8565939 100644 (file)
 
 #include <linux/kp30.h>
 #include <asm/div64.h>
+#include "tracefile.h"
 
 static struct ctl_table_header *portals_table_header = NULL;
 extern char debug_file_path[1024];
-extern char debug_daemon_file_path[1024];
 extern char portals_upcall[1024];
 
 #define PSDEV_PORTALS  (0x100)
@@ -82,9 +82,6 @@ static struct ctl_table portals_table[PORTALS_PRIMARY_CTLCNT + 1] = {
          &proc_dointvec},
         {PSDEV_DEBUG_PATH, "debug_path", debug_file_path,
          sizeof(debug_file_path), 0644, NULL, &proc_dostring, &sysctl_string},
-        {PSDEV_DEBUG_DUMP_PATH, "debug_daemon_path", debug_daemon_file_path,
-         sizeof(debug_daemon_file_path), 0644, NULL, &proc_dostring,
-         &sysctl_string},
         {PSDEV_PORTALS_UPCALL, "upcall", portals_upcall,
          sizeof(portals_upcall), 0644, NULL, &proc_dostring,
          &sysctl_string},
@@ -234,9 +231,9 @@ static unsigned char basedir[]="net/portals";
 
 int insert_proc(void)
 {
+        struct proc_dir_entry *ent;
 #if PORTALS_PROFILING
         unsigned char dir[128];
-        struct proc_dir_entry *ent;
 
         if (ARRAY_SIZE(prof_ents) != MAX_PROFS) {
                 CERROR("profiling enum and array are out of sync.\n");
@@ -266,6 +263,29 @@ int insert_proc(void)
                 portals_table_header = register_sysctl_table(top_table, 0);
 #endif
 
+        ent = create_proc_entry("sys/portals/dump_kernel", 0, NULL);
+        if (ent == NULL) {
+                CERROR("couldn't register dump_kernel\n");
+                return -1;
+        }
+        ent->write_proc = trace_dk;
+
+        ent = create_proc_entry("sys/portals/daemon_file", 0, NULL);
+        if (ent == NULL) {
+                CERROR("couldn't register daemon_file\n");
+                return -1;
+        }
+        ent->write_proc = trace_write_daemon_file;
+        ent->read_proc = trace_read_daemon_file;
+
+        ent = create_proc_entry("sys/portals/debug_size", 0, NULL);
+        if (ent == NULL) {
+                CERROR("couldn't register debug_size\n");
+                return -1;
+        }
+        ent->write_proc = trace_write_debug_size;
+        ent->read_proc = trace_read_debug_size;
+
         return 0;
 }
 
@@ -281,12 +301,16 @@ void remove_proc(void)
         end = strlen(dir);
 
         strcat(dir, "/cycles");
-        remove_proc_entry(dir,0);
+        remove_proc_entry(dir, 0);
 
         dir[end] = '\0';
-        remove_proc_entry(dir,0);
+        remove_proc_entry(dir, 0);
 #endif /* PORTALS_PROFILING */
 
+        remove_proc_entry("sys/portals/dump_kernel", NULL);
+        remove_proc_entry("sys/portals/daemon_file", NULL);
+        remove_proc_entry("sys/portals/debug_size", NULL);
+
 #ifdef CONFIG_SYSCTL
         if (portals_table_header)
                 unregister_sysctl_table(portals_table_header);
diff --git a/lnet/libcfs/tracefile.c b/lnet/libcfs/tracefile.c
new file mode 100644 (file)
index 0000000..7d79635
--- /dev/null
@@ -0,0 +1,862 @@
+/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
+ * vim:expandtab:shiftwidth=8:tabstop=8:
+ *
+ * Copyright (C) 2004 Cluster File Systems, Inc.
+ *   Author: Zach Brown <zab@clusterfs.com>
+ *   Author: Phil Schwan <phil@clusterfs.com>
+ *
+ *   This file is part of Lustre, http://www.lustre.org.
+ *
+ *   Lustre is free software; you can redistribute it and/or
+ *   modify it under the terms of version 2 of the GNU General Public
+ *   License as published by the Free Software Foundation.
+ *
+ *   Lustre 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 Lustre; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/rwsem.h>
+#include <linux/proc_fs.h>
+#include <linux/file.h>
+#include <linux/smp.h>
+#include <linux/ctype.h>
+#include <asm/uaccess.h>
+#ifdef HAVE_MM_INLINE
+#include <linux/mm_inline.h>
+#endif
+
+#define DEBUG_SUBSYSTEM S_PORTALS
+
+#include <linux/kp30.h>
+#include <linux/portals_compat25.h>
+#include <linux/libcfs.h>
+
+#define TCD_MAX_PAGES 1280
+
+/* XXX move things up to the top, comment */
+
+static union {
+        struct trace_cpu_data {
+                struct list_head        tcd_pages;
+                unsigned long           tcd_cur_pages;
+
+                struct list_head        tcd_daemon_pages;
+                unsigned long           tcd_cur_daemon_pages;
+
+                unsigned long           tcd_max_pages;
+                int                     tcd_shutting_down;
+        } tcd;
+        char __pad[SMP_CACHE_BYTES];
+} trace_data[NR_CPUS] __cacheline_aligned;
+
+struct page_collection {
+        struct list_head        pc_pages;
+        spinlock_t              pc_lock;
+        int                     pc_want_daemon_pages;
+};
+
+struct tracefiled_ctl {
+        struct completion        tctl_start;
+        struct completion        tctl_stop;
+        wait_queue_head_t        tctl_waitq;
+        pid_t                    tctl_pid;
+        atomic_t                 tctl_shutdown;
+};
+
+static DECLARE_RWSEM(tracefile_sem);
+static char *tracefile = NULL;
+static struct tracefiled_ctl trace_tctl;
+static DECLARE_MUTEX(trace_thread_sem);
+static int thread_running = 0;
+
+#ifndef get_cpu
+#define get_cpu() smp_processor_id()
+#define put_cpu() do { } while (0)
+#endif
+
+#define trace_get_tcd(FLAGS) ({                 \
+        struct trace_cpu_data *__ret;           \
+        int __cpu = get_cpu();                  \
+        local_irq_save(FLAGS);                  \
+        __ret = &trace_data[__cpu].tcd;         \
+        __ret;                                  \
+})
+
+#define trace_put_tcd(TCD, FLAGS) do {          \
+        local_irq_restore(FLAGS);               \
+        put_cpu();                              \
+} while (0)
+
+static void put_pages_on_daemon_list_on_cpu(void *info);
+
+/* return a page that has 'len' bytes left at the end */
+static struct page *trace_get_page(struct trace_cpu_data *tcd,
+                                   unsigned long len)
+{
+        struct page *page = NULL;
+
+        if (len > PAGE_SIZE) {
+                printk(KERN_ERR "cowardly refusing to write %lu bytes in a "
+                       "page\n", len);
+                return NULL;
+        }
+
+        if (!list_empty(&tcd->tcd_pages)) {
+                page = list_entry(tcd->tcd_pages.prev, struct page,
+                                  PAGE_LIST_ENTRY);
+                if (page->index + len <= PAGE_SIZE)
+                        return page;
+        }
+
+        if (tcd->tcd_cur_pages < tcd->tcd_max_pages) {
+                page = alloc_page(GFP_ATOMIC);
+                if (page == NULL) {
+                        /* the kernel should print a message for us.  fall back
+                         * to using the last page in the ring buffer. */
+                        goto ring_buffer;
+                        return NULL;
+                }
+                page->index = 0;
+                page->mapping = (void *)smp_processor_id();
+                list_add_tail(&PAGE_LIST(page), &tcd->tcd_pages);
+                tcd->tcd_cur_pages++;
+
+                if (tcd->tcd_cur_pages > 8 && thread_running) {
+                        struct tracefiled_ctl *tctl = &trace_tctl;
+                        wake_up(&tctl->tctl_waitq);
+                }
+                return page;
+        }
+
+ ring_buffer:
+        if (thread_running) {
+                int pgcount = tcd->tcd_cur_pages / 10;
+                struct page_collection pc;
+                struct list_head *pos, *tmp;
+                printk(KERN_WARNING "debug daemon buffer overflowed; discarding"
+                       " 10%% of pages (%d)\n", pgcount + 1);
+
+                INIT_LIST_HEAD(&pc.pc_pages);
+                spin_lock_init(&pc.pc_lock);
+
+                list_for_each_safe(pos, tmp, &tcd->tcd_pages) {
+                        struct page *page;
+
+                        if (pgcount-- == 0)
+                                break;
+
+                        page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
+                        list_del(&PAGE_LIST(page));
+                        list_add_tail(&PAGE_LIST(page), &pc.pc_pages);
+                        tcd->tcd_cur_pages--;
+                }
+                put_pages_on_daemon_list_on_cpu(&pc);
+        }
+        LASSERT(!list_empty(&tcd->tcd_pages));
+
+        page = list_entry(tcd->tcd_pages.next, struct page, PAGE_LIST_ENTRY);
+        page->index = 0;
+
+        list_del(&PAGE_LIST(page));
+        list_add_tail(&PAGE_LIST(page), &tcd->tcd_pages);
+        return page;
+}
+
+static void print_to_console(struct ptldebug_header *hdr, int mask, char *buf,
+                             int len, char *file, const char *fn)
+{
+        char *prefix = NULL, *ptype = NULL;
+
+        if ((mask & D_EMERG) != 0) {
+                prefix = "LustreError";
+                ptype = KERN_EMERG;
+        } else if ((mask & D_ERROR) != 0) {
+                prefix = "LustreError";
+                ptype = KERN_ERR;
+        } else if ((mask & D_WARNING) != 0) {
+                prefix = "Lustre";
+                ptype = KERN_WARNING;
+        } else if (portal_printk) {
+                prefix = "Lustre";
+                ptype = KERN_INFO;
+        }
+
+        printk("%s%s: %d:%d:(%s:%d:%s()) %*s", ptype, prefix, hdr->ph_pid,
+               hdr->ph_extern_pid, file, hdr->ph_line_num, fn, len, buf);
+}
+
+void portals_debug_msg(int subsys, int mask, char *file, const char *fn,
+                       const int line, unsigned long stack, char *format, ...)
+{
+        struct trace_cpu_data *tcd;
+        struct ptldebug_header header;
+        struct page *page;
+        char *debug_buf;
+        int known_size, needed, max_nob;
+        va_list       ap;
+        unsigned long flags;
+        struct timeval tv;
+
+        if (*(format + strlen(format) - 1) != '\n')
+                printk(KERN_INFO "format at %s:%d:%s doesn't end in newline\n",
+                       file, line, fn);
+
+        tcd = trace_get_tcd(flags);
+        if (tcd->tcd_shutting_down)
+                goto out;
+
+        do_gettimeofday(&tv);
+
+        header.ph_subsys = subsys;
+        header.ph_mask = mask;
+        header.ph_cpu_id = smp_processor_id();
+        header.ph_sec = (__u32)tv.tv_sec;
+        header.ph_usec = tv.tv_usec;
+        header.ph_stack = stack;
+        header.ph_pid = current->pid;
+        header.ph_line_num = line;
+
+#if defined(__arch_um__) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,20))
+        header.ph_extern_pid = current->thread.extern_pid;
+#elif defined(__arch_um__) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
+        header.ph_extern_pid = current->thread.mode.tt.extern_pid;
+#else
+        header.ph_extern_pid = 0;
+#endif
+
+        known_size = sizeof(header) + strlen(file) + strlen(fn) + 2; // nulls
+
+        page = trace_get_page(tcd, known_size + 40); /* slop */
+ retry:
+        if (page == NULL)
+                goto out;
+
+        debug_buf = page_address(page) + page->index + known_size;
+
+        va_start(ap, format);
+        max_nob = PAGE_SIZE - page->index - known_size;
+        LASSERT(max_nob > 0);
+        needed = vsnprintf(debug_buf, max_nob, format, ap);
+        va_end(ap);
+
+        if (needed > max_nob) {
+                /* overflow.  oh poop. */
+                page = trace_get_page(tcd, needed + known_size);
+                goto retry;
+        }
+
+        header.ph_len = known_size + needed;
+        debug_buf = page_address(page) + page->index;
+
+        memcpy(debug_buf, &header, sizeof(header));
+        page->index += sizeof(header);
+        debug_buf += sizeof(header);
+
+        strcpy(debug_buf, file);
+        page->index += strlen(file) + 1;
+        debug_buf += strlen(file) + 1;
+
+        strcpy(debug_buf, fn);
+        page->index += strlen(fn) + 1;
+        debug_buf += strlen(fn) + 1;
+
+        page->index += needed;
+        if (page->index > PAGE_SIZE)
+                printk(KERN_EMERG "page->index == %lu in portals_debug_msg\n",
+                       page->index);
+
+        if ((mask & (D_EMERG | D_ERROR | D_WARNING)) || portal_printk)
+                print_to_console(&header, mask, debug_buf, needed, file, fn);
+
+ out:
+        trace_put_tcd(tcd, flags);
+}
+EXPORT_SYMBOL(portals_debug_msg);
+
+static void collect_pages_on_cpu(void *info)
+{
+        struct trace_cpu_data *tcd;
+        unsigned long flags;
+        struct page_collection *pc = info;
+
+        tcd = trace_get_tcd(flags);
+
+        spin_lock(&pc->pc_lock);
+        list_splice(&tcd->tcd_pages, &pc->pc_pages);
+        INIT_LIST_HEAD(&tcd->tcd_pages);
+        tcd->tcd_cur_pages = 0;
+        if (pc->pc_want_daemon_pages) {
+                list_splice(&tcd->tcd_daemon_pages, &pc->pc_pages);
+                INIT_LIST_HEAD(&tcd->tcd_daemon_pages);
+                tcd->tcd_cur_daemon_pages = 0;
+        }
+        spin_unlock(&pc->pc_lock);
+
+        trace_put_tcd(tcd, flags);
+}
+
+static void collect_pages(struct page_collection *pc)
+{
+        /* needs to be fixed up for preempt */
+        INIT_LIST_HEAD(&pc->pc_pages);
+        collect_pages_on_cpu(pc);
+        smp_call_function(collect_pages_on_cpu, pc, 0, 1);
+}
+
+static void put_pages_back_on_cpu(void *info)
+{
+        struct page_collection *pc = info;
+        struct trace_cpu_data *tcd;
+        struct list_head *pos, *tmp, *cur_head;
+        unsigned long flags;
+
+        tcd = trace_get_tcd(flags);
+
+        cur_head = tcd->tcd_pages.next;
+
+        spin_lock(&pc->pc_lock);
+        list_for_each_safe(pos, tmp, &pc->pc_pages) {
+                struct page *page;
+
+                page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
+                LASSERT(page->index <= PAGE_SIZE);
+                LASSERT(page_count(page) > 0);
+
+                if ((unsigned long)page->mapping != smp_processor_id())
+                        continue;
+
+                list_del(&PAGE_LIST(page));
+                list_add_tail(&PAGE_LIST(page), cur_head);
+                tcd->tcd_cur_pages++;
+        }
+        spin_unlock(&pc->pc_lock);
+
+        trace_put_tcd(tcd, flags);
+}
+
+static void put_pages_back(struct page_collection *pc)
+{
+        /* needs to be fixed up for preempt */
+        put_pages_back_on_cpu(pc);
+        smp_call_function(put_pages_back_on_cpu, pc, 0, 1);
+}
+
+/* Add pages to a per-cpu debug daemon ringbuffer.  This buffer makes sure that
+ * we have a good amount of data at all times for dumping during an LBUG, even
+ * if we have been steadily writing (and otherwise discarding) pages via the
+ * debug daemon. */
+static void put_pages_on_daemon_list_on_cpu(void *info)
+{
+        struct page_collection *pc = info;
+        struct trace_cpu_data *tcd;
+        struct list_head *pos, *tmp;
+        unsigned long flags;
+
+        tcd = trace_get_tcd(flags);
+
+        spin_lock(&pc->pc_lock);
+        list_for_each_safe(pos, tmp, &pc->pc_pages) {
+                struct page *page;
+
+                page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
+                LASSERT(page->index <= PAGE_SIZE);
+                LASSERT(page_count(page) > 0);
+                if ((unsigned long)page->mapping != smp_processor_id())
+                        continue;
+
+                list_del(&PAGE_LIST(page));
+                list_add_tail(&PAGE_LIST(page), &tcd->tcd_daemon_pages);
+                tcd->tcd_cur_daemon_pages++;
+
+                if (tcd->tcd_cur_daemon_pages > tcd->tcd_max_pages) {
+                        LASSERT(!list_empty(&tcd->tcd_daemon_pages));
+                        page = list_entry(tcd->tcd_daemon_pages.next,
+                                          struct page, PAGE_LIST_ENTRY);
+
+                        LASSERT(page->index <= PAGE_SIZE);
+                        LASSERT(page_count(page) > 0);
+
+                        page->index = 0;
+                        list_del(&PAGE_LIST(page));
+                        page->mapping = NULL;
+                        __free_page(page);
+                        tcd->tcd_cur_daemon_pages--;
+                }
+        }
+        spin_unlock(&pc->pc_lock);
+
+        trace_put_tcd(tcd, flags);
+}
+
+static void put_pages_on_daemon_list(struct page_collection *pc)
+{
+        put_pages_on_daemon_list_on_cpu(pc);
+        smp_call_function(put_pages_on_daemon_list_on_cpu, pc, 0, 1);
+}
+
+void trace_debug_print(void)
+{
+        struct page_collection pc;
+        struct list_head *pos, *tmp;
+
+        spin_lock_init(&pc.pc_lock);
+
+        collect_pages(&pc);
+        list_for_each_safe(pos, tmp, &pc.pc_pages) {
+                struct page *page;
+                char *p, *file, *fn;
+
+                page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
+                LASSERT(page->index <= PAGE_SIZE);
+                LASSERT(page_count(page) > 0);
+
+                p = page_address(page);
+                while (p < ((char *)page_address(page) + PAGE_SIZE)) {
+                        struct ptldebug_header *hdr;
+                        int len;
+                        hdr = (void *)p;
+                        p += sizeof(*hdr);
+                        file = p;
+                        p += strlen(file) + 1;
+                        fn = p;
+                        p += strlen(fn) + 1;
+                        len = hdr->ph_len - (p - (char *)hdr);
+
+                        print_to_console(hdr, D_EMERG, p, len, file, fn);
+                }
+
+                list_del(&PAGE_LIST(page));
+                page->mapping = NULL;
+                __free_page(page);
+        }
+}
+
+int tracefile_dump_all_pages(char *filename)
+{
+        struct page_collection pc;
+        struct file *filp;
+        struct list_head *pos, *tmp;
+        mm_segment_t oldfs;
+        int rc;
+
+        down_write(&tracefile_sem);
+
+        filp = filp_open(filename, O_CREAT|O_EXCL|O_WRONLY, 0600);
+        if (IS_ERR(filp)) {
+                rc = PTR_ERR(filp);
+                printk(KERN_ERR "couldn't open %s: %d\n", filename, rc);
+                goto out;
+        }
+
+        spin_lock_init(&pc.pc_lock);
+        pc.pc_want_daemon_pages = 1;
+        collect_pages(&pc);
+        if (list_empty(&pc.pc_pages)) {
+                rc = 0;
+                goto close;
+        }
+
+        /* ok, for now, just write the pages.  in the future we'll be building
+         * iobufs with the pages and calling generic_direct_IO */
+        oldfs = get_fs();
+        set_fs(get_ds());
+        list_for_each_safe(pos, tmp, &pc.pc_pages) {
+                struct page *page;
+
+                page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
+                LASSERT(page->index <= PAGE_SIZE);
+                LASSERT(page_count(page) > 0);
+
+                rc = filp->f_op->write(filp, page_address(page), page->index,
+                                       &filp->f_pos);
+                if (rc != page->index) {
+                        printk(KERN_WARNING "wanted to write %lu but wrote "
+                               "%d\n", page->index, rc);
+                        put_pages_back(&pc);
+                        break;
+                }
+                list_del(&PAGE_LIST(page));
+                page->mapping = NULL;
+                __free_page(page);
+        }
+        set_fs(oldfs);
+        rc = filp->f_op->fsync(filp, filp->f_dentry, 1);
+        if (rc)
+                printk(KERN_ERR "sync returns %d\n", rc);
+ close:
+        filp_close(filp, 0);
+ out:
+        up_write(&tracefile_sem);
+        return rc;
+}
+
+void trace_flush_pages(void)
+{
+        struct page_collection pc;
+        struct list_head *pos, *tmp;
+
+        spin_lock_init(&pc.pc_lock);
+
+        collect_pages(&pc);
+        list_for_each_safe(pos, tmp, &pc.pc_pages) {
+                struct page *page;
+
+                page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
+                LASSERT(page->index <= PAGE_SIZE);
+                LASSERT(page_count(page) > 0);
+
+                list_del(&PAGE_LIST(page));
+                page->mapping = NULL;
+                __free_page(page);
+        }
+}
+
+int trace_dk(struct file *file, const char *buffer, unsigned long count,
+             void *data)
+{
+        char *name;
+        unsigned long off;
+        int rc;
+
+        name = kmalloc(count + 1, GFP_KERNEL);
+        if (name == NULL)
+                return -ENOMEM;
+
+        if (copy_from_user(name, buffer, count)) {
+                rc = -EFAULT;
+                goto out;
+        }
+
+        if (name[0] != '/') {
+                rc = -EINVAL;
+                goto out;
+        }
+
+        /* be nice and strip out trailing '\n' */
+        for (off = count ; off > 2 && isspace(name[off - 1]); off--)
+                ;
+
+        name[off] = '\0';
+        rc = tracefile_dump_all_pages(name);
+out:
+        if (name)
+                kfree(name);
+        return count;
+}
+EXPORT_SYMBOL(trace_dk);
+
+static int tracefiled(void *arg)
+{
+        struct page_collection pc;
+        struct tracefiled_ctl *tctl = arg;
+        struct list_head *pos, *tmp;
+        struct ptldebug_header *hdr;
+        struct file *filp;
+        struct page *page;
+        mm_segment_t oldfs;
+        int rc;
+
+        /* we're started late enough that we pick up init's fs context */
+        /* this is so broken in uml?  what on earth is going on? */
+        kportal_daemonize("ktracefiled");
+        reparent_to_init();
+
+        spin_lock_init(&pc.pc_lock);
+        complete(&tctl->tctl_start);
+
+        while (1) {
+                wait_queue_t __wait;
+
+                init_waitqueue_entry(&__wait, current);
+                add_wait_queue(&tctl->tctl_waitq, &__wait);
+                set_current_state(TASK_INTERRUPTIBLE);
+                schedule_timeout(HZ);
+                remove_wait_queue(&tctl->tctl_waitq, &__wait);
+
+                if (atomic_read(&tctl->tctl_shutdown))
+                        break;
+
+                pc.pc_want_daemon_pages = 0;
+                collect_pages(&pc);
+                if (list_empty(&pc.pc_pages))
+                        continue;
+
+                filp = NULL;
+                down_read(&tracefile_sem);
+                if (tracefile != NULL) {
+                        filp = filp_open(tracefile, O_CREAT|O_RDWR|O_APPEND,
+                                        0600);
+                        if (IS_ERR(filp)) {
+                                printk("couldn't open %s: %ld\n", tracefile,
+                                       PTR_ERR(filp));
+                                filp = NULL;
+                        }
+                }
+                up_read(&tracefile_sem);
+                if (filp == NULL) {
+                        put_pages_on_daemon_list(&pc);
+                        continue;
+                }
+
+                oldfs = get_fs();
+                set_fs(get_ds());
+
+                /* mark the first header, so we can sort in chunks */
+                page = list_entry(pc.pc_pages.next, struct page,
+                                  PAGE_LIST_ENTRY);
+                LASSERT(page->index <= PAGE_SIZE);
+                LASSERT(page_count(page) > 0);
+
+                hdr = page_address(page);
+                hdr->ph_flags |= PH_FLAG_FIRST_RECORD;
+
+                list_for_each_safe(pos, tmp, &pc.pc_pages) {
+                        page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
+                        LASSERT(page->index <= PAGE_SIZE);
+                        LASSERT(page_count(page) > 0);
+
+                        rc = filp->f_op->write(filp, page_address(page),
+                                        page->index, &filp->f_pos);
+                        if (rc != page->index) {
+                                printk(KERN_WARNING "wanted to write %lu but "
+                                       "wrote %d\n", page->index, rc);
+                                put_pages_back(&pc);
+                        }
+                }
+                set_fs(oldfs);
+                filp_close(filp, 0);
+
+                put_pages_on_daemon_list(&pc);
+        }
+        complete(&tctl->tctl_stop);
+        return 0;
+}
+
+int trace_start_thread(void)
+{
+        struct tracefiled_ctl *tctl = &trace_tctl;
+        int rc = 0;
+
+        down(&trace_thread_sem);
+        if (thread_running)
+                goto out;
+
+        init_completion(&tctl->tctl_start);
+        init_completion(&tctl->tctl_stop);
+        init_waitqueue_head(&tctl->tctl_waitq);
+        atomic_set(&tctl->tctl_shutdown, 0);
+
+        if (kernel_thread(tracefiled, tctl, 0) < 0) {
+                rc = -ECHILD;
+                goto out;
+        }
+
+        wait_for_completion(&tctl->tctl_start);
+        thread_running = 1;
+out:
+        up(&trace_thread_sem);
+        return rc;
+}
+
+void trace_stop_thread(void)
+{
+        struct tracefiled_ctl *tctl = &trace_tctl;
+
+        down(&trace_thread_sem);
+        if (thread_running) {
+                printk(KERN_INFO "Shutting down debug daemon thread...\n");
+                atomic_set(&tctl->tctl_shutdown, 1);
+                wait_for_completion(&tctl->tctl_stop);
+                thread_running = 0;
+        }
+        up(&trace_thread_sem);
+}
+
+int trace_write_daemon_file(struct file *file, const char *buffer,
+                            unsigned long count, void *data)
+{
+        char *name;
+        unsigned long off;
+        int rc;
+
+        name = kmalloc(count + 1, GFP_KERNEL);
+        if (name == NULL)
+                return -ENOMEM;
+
+        if (copy_from_user(name, buffer, count)) {
+                rc = -EFAULT;
+                goto out;
+        }
+
+        /* be nice and strip out trailing '\n' */
+        for (off = count ; off > 2 && isspace(name[off - 1]); off--)
+                ;
+
+        name[off] = '\0';
+
+        down_write(&tracefile_sem);
+        if (strcmp(name, "stop") == 0) {
+                tracefile = NULL;
+                trace_stop_thread();
+                goto out_sem;
+        }
+
+        if (name[0] != '/') {
+                rc = -EINVAL;
+                goto out_sem;
+        }
+
+        if (tracefile != NULL)
+                kfree(tracefile);
+
+        tracefile = name;
+        name = NULL;
+
+        printk(KERN_INFO "Lustre: debug daemon will attempt to start writing "
+               "to %s\n", name);
+
+        trace_start_thread();
+
+ out_sem:
+        up_write(&tracefile_sem);
+
+ out:
+        if (name)
+                kfree(name);
+        return count;
+}
+
+int trace_read_daemon_file(char *page, char **start, off_t off, int count,
+                           int *eof, void *data)
+{
+        int rc;
+
+        down_read(&tracefile_sem);
+        rc = snprintf(page, count, "%s", tracefile);
+        up_read(&tracefile_sem);
+
+        return rc;
+}
+
+int trace_write_debug_size(struct file *file, const char *buffer,
+                           unsigned long count, void *data)
+{
+        char *string;
+        int rc, i;
+        unsigned max;
+
+        string = kmalloc(count + 1, GFP_KERNEL);
+        if (string == NULL)
+                return -ENOMEM;
+
+        if (copy_from_user(string, buffer, count)) {
+                rc = -EFAULT;
+                goto out;
+        }
+
+        max = simple_strtoul(string, NULL, 0);
+        if (max == 0) {
+                rc = -EINVAL;
+                goto out;
+        }
+        max /= smp_num_cpus;
+
+        if (max > num_physpages / 5 * 4) {
+                printk(KERN_ERR "Lustre: Refusing to set debug buffer size to "
+                       "%d pages, which is more than 80%% of physical pages "
+                       "(%lu).\n", max * smp_num_cpus, num_physpages / 5 * 4);
+                return count;
+        }
+
+        for (i = 0; i < NR_CPUS; i++) {
+                struct trace_cpu_data *tcd;
+                tcd = &trace_data[i].tcd;
+                tcd->tcd_max_pages = max;
+        }
+ out:
+        kfree(string);
+        return count;
+}
+
+int trace_read_debug_size(char *page, char **start, off_t off, int count,
+                          int *eof, void *data)
+{
+        struct trace_cpu_data *tcd;
+        unsigned long flags;
+        int rc;
+
+        tcd = trace_get_tcd(flags);
+        rc = snprintf(page, count, "%lu\n", tcd->tcd_max_pages * smp_num_cpus);
+        trace_put_tcd(tcd, flags);
+
+        return rc;
+}
+
+int tracefile_init(void)
+{
+        struct trace_cpu_data *tcd;
+        int i;
+
+        for (i = 0; i < NR_CPUS; i++) {
+                tcd = &trace_data[i].tcd;
+                INIT_LIST_HEAD(&tcd->tcd_pages);
+                INIT_LIST_HEAD(&tcd->tcd_daemon_pages);
+                tcd->tcd_cur_pages = 0;
+                tcd->tcd_cur_daemon_pages = 0;
+                tcd->tcd_max_pages = TCD_MAX_PAGES;
+                tcd->tcd_shutting_down = 0;
+        }
+        return 0;
+}
+
+static void trace_cleanup_on_cpu(void *info)
+{
+        struct trace_cpu_data *tcd;
+        struct list_head *pos, *tmp;
+        unsigned long flags;
+
+        tcd = trace_get_tcd(flags);
+
+        tcd->tcd_shutting_down = 1;
+
+        list_for_each_safe(pos, tmp, &tcd->tcd_pages) {
+                struct page *page;
+
+                page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
+                LASSERT(page->index <= PAGE_SIZE);
+                LASSERT(page_count(page) > 0);
+
+                list_del(&PAGE_LIST(page));
+                page->mapping = NULL;
+                __free_page(page);
+        }
+        tcd->tcd_cur_pages = 0;
+
+        trace_put_tcd(tcd, flags);
+}
+
+static void trace_cleanup(void)
+{
+        struct page_collection pc;
+
+        INIT_LIST_HEAD(&pc.pc_pages);
+        spin_lock_init(&pc.pc_lock);
+
+        trace_cleanup_on_cpu(&pc);
+        smp_call_function(trace_cleanup_on_cpu, &pc, 0, 1);
+}
+
+void tracefile_exit(void)
+{
+        trace_stop_thread();
+        trace_cleanup();
+}
diff --git a/lnet/libcfs/tracefile.h b/lnet/libcfs/tracefile.h
new file mode 100644 (file)
index 0000000..1b6e7a0
--- /dev/null
@@ -0,0 +1,22 @@
+#ifndef __PORTALS_TRACEFILE_H
+#define __PORTALS_TRACEFILE_H
+
+int tracefile_dump_all_pages(char *filename);
+void trace_debug_print(void);
+void trace_flush_pages(void);
+int trace_start_thread(void);
+void trace_stop_thread(void);
+int tracefile_init(void);
+void tracefile_exit(void);
+int trace_write_daemon_file(struct file *file, const char *buffer,
+                           unsigned long count, void *data);
+int trace_read_daemon_file(char *page, char **start, off_t off, int count,
+                          int *eof, void *data);
+int trace_write_debug_size(struct file *file, const char *buffer,
+                           unsigned long count, void *data);
+int trace_read_debug_size(char *page, char **start, off_t off, int count,
+                          int *eof, void *data);
+int trace_dk(struct file *file, const char *buffer, unsigned long count,
+             void *data);
+
+#endif /* __PORTALS_TRACEFILE_H */
index 69880ea..d460919 100644 (file)
@@ -25,6 +25,8 @@
 
 #define __USE_FILE_OFFSET64
 
+#include <portals/list.h>
+
 #include <stdio.h>
 #include <netdb.h>
 #include <stdlib.h>
@@ -82,8 +84,6 @@ struct debug_daemon_cmd {
 static const struct debug_daemon_cmd portal_debug_daemon_cmd[] = {
         {"start", DEBUG_DAEMON_START},
         {"stop", DEBUG_DAEMON_STOP},
-        {"pause", DEBUG_DAEMON_PAUSE},
-        {"continue", DEBUG_DAEMON_CONTINUE},
         {0, 0}
 };
 
@@ -230,108 +230,230 @@ int jt_dbg_list(int argc, char **argv)
         return 0;
 }
 
-/* if 'raw' is true, don't strip the debug information from the front of the
- * lines */
-static void dump_buffer(FILE *fd, char *buf, int size, int raw)
+/* all strings nul-terminated; only the struct and hdr need to be freed */
+struct dbg_line {
+        struct ptldebug_header *hdr;
+        char *file;
+        char *fn;
+        char *text;
+        struct list_head chain;
+};
+
+/* nurr. */
+static void list_add_ordered(struct dbg_line *new, struct list_head *head)
+{
+        struct list_head *pos;
+        struct dbg_line *curr, *next;
+
+        list_for_each(pos, head) {
+                curr = list_entry(pos, struct dbg_line, chain);
+
+                if (curr->hdr->ph_sec < new->hdr->ph_sec)
+                        continue;
+                if (curr->hdr->ph_sec == new->hdr->ph_sec &&
+                    curr->hdr->ph_usec < new->hdr->ph_usec)
+                        continue;
+
+                list_add(&new->chain, pos->prev);
+                return;
+        }
+        list_add_tail(&new->chain, head);
+}
+
+static void print_saved_records(struct list_head *list, FILE *out)
 {
-        char *p, *z;
-        unsigned long subsystem, debug, dropped = 0, kept = 0;
+        struct list_head *pos, *tmp;
+
+        list_for_each_safe(pos, tmp, list) {
+                struct dbg_line *line;
+                struct ptldebug_header *hdr;
+
+                line = list_entry(pos, struct dbg_line, chain);
+                list_del(&line->chain);
+
+                hdr = line->hdr;
+                fprintf(out, "%06x:%06x:%u:%u.%06Lu:%u:%u:%u:(%s:%u:%s()) %s",
+                        hdr->ph_subsys, hdr->ph_mask, hdr->ph_cpu_id,
+                        hdr->ph_sec, (unsigned long long)hdr->ph_usec,
+                        hdr->ph_stack, hdr->ph_pid, hdr->ph_extern_pid,
+                        line->file, hdr->ph_line_num, line->fn, line->text);
+                free(line->hdr);
+                free(line);
+        }
+}
 
-        while (size) {
-                p = memchr(buf, '\n', size);
-                if (!p)
+static int parse_buffer(FILE *in, FILE *out)
+{
+        struct dbg_line *line;
+        struct ptldebug_header *hdr;
+        char buf[4097], *p;
+        int rc;
+        unsigned long dropped = 0, kept = 0;
+        struct list_head chunk_list, *pos;
+
+        INIT_LIST_HEAD(&chunk_list);
+
+        while (1) {
+                rc = fread(buf, sizeof(hdr->ph_len), 1, in);
+                if (rc <= 0)
                         break;
-                subsystem = strtoul(buf, &z, 16);
-                debug = strtoul(z + 1, &z, 16);
-
-                z++;
-                /* for some reason %*s isn't working. */
-                *p = '\0';
-                if ((subsystem_mask & subsystem) &&
-                    (!debug || (debug_mask & debug))) {
-                        if (raw)
-                                fprintf(fd, "%s\n", buf);
-                        else
-                                fprintf(fd, "%s\n", z);
-                        //printf("%s\n", buf);
-                        kept++;
-                } else {
-                        //fprintf(stderr, "dropping line (%lx:%lx): %s\n", subsystem, debug, buf);
+
+                hdr = (void *)buf;
+                if (hdr->ph_len == 0)
+                        break;
+                if (hdr->ph_len > 4094) {
+                        fprintf(stderr, "unexpected large record: %d bytes.  "
+                                "aborting.\n",
+                                hdr->ph_len);
+                        break;
+                }
+
+                if (hdr->ph_flags & PH_FLAG_FIRST_RECORD) {
+                        print_saved_records(&chunk_list, out);
+                        assert(list_empty(&chunk_list));
+                }
+
+                rc = fread(buf + sizeof(hdr->ph_len), 1,
+                           hdr->ph_len - sizeof(hdr->ph_len), in);
+                if (rc <= 0)
+                        break;
+
+                if (hdr->ph_mask &&
+                    (!(subsystem_mask & hdr->ph_subsys) ||
+                     (!(debug_mask & hdr->ph_mask)))) {
                         dropped++;
+                        continue;
                 }
-                *p = '\n';
-                p++;
-                size -= (p - buf);
-                buf = p;
+
+                line = malloc(sizeof(*line));
+                if (line == NULL) {
+                        fprintf(stderr, "malloc failed; printing accumulated "
+                                "records and exiting.\n");
+                        break;
+                }
+
+                line->hdr = malloc(hdr->ph_len + 1);
+                if (line->hdr == NULL) {
+                        fprintf(stderr, "malloc failed; printing accumulated "
+                                "records and exiting.\n");
+                        break;
+                }
+
+                p = (void *)line->hdr;
+                memcpy(line->hdr, buf, hdr->ph_len);
+                p[hdr->ph_len] = '\0';
+
+                p += sizeof(*hdr);
+                line->file = p;
+                p += strlen(line->file) + 1;
+                line->fn = p;
+                p += strlen(line->fn) + 1;
+                line->text = p;
+
+                list_add_ordered(line, &chunk_list);
+                kept++;
         }
 
+        print_saved_records(&chunk_list, out);
+
         printf("Debug log: %lu lines, %lu kept, %lu dropped.\n",
                 dropped + kept, kept, dropped);
+        return 0;
 }
 
 int jt_dbg_debug_kernel(int argc, char **argv)
 {
-        int rc, raw = 1;
-        FILE *fd = stdout;
-        const int databuf_size = (6 << 20);
-        struct portal_ioctl_data data, *newdata;
-        char *databuf = NULL;
+        char filename[4096];
+        int rc, raw = 0, fd;
+        FILE *in, *out = stdout;
 
         if (argc > 3) {
                 fprintf(stderr, "usage: %s [file] [raw]\n", argv[0]);
                 return 0;
         }
+        sprintf(filename, "%s-%ld.tmp", argv[1], random);
+        if (argc > 2)
+                raw = atoi(argv[2]);
+        unlink(filename);
+
+        fd = open("/proc/sys/portals/dump_kernel", O_WRONLY);
+        if (fd < 0) {
+                fprintf(stderr, "open(dump_kernel) failed: %s\n",
+                        strerror(errno));
+                return 1;
+        }
+
+        rc = write(fd, filename, strlen(filename));
+        if (rc != strlen(filename)) {
+                fprintf(stderr, "write(%s) failed: %s\n", filename,
+                        strerror(errno));
+                close(fd);
+                return 1;
+        }
+        close(fd);
 
+        if (raw)
+                return 0;
+
+        in = fopen(filename, "r");
+        if (in == NULL) {
+                fprintf(stderr, "fopen(%s) failed: %s\n", filename,
+                        strerror(errno));
+                return 1;
+        }
         if (argc > 1) {
-                fd = fopen(argv[1], "w");
-                if (fd == NULL) {
+                out = fopen(argv[1], "w");
+                if (out == NULL) {
                         fprintf(stderr, "fopen(%s) failed: %s\n", argv[1],
                                 strerror(errno));
-                        return -1;
+                        return 1;
                 }
         }
-        if (argc > 2)
-                raw = atoi(argv[2]);
 
-        databuf = malloc(databuf_size);
-        if (!databuf) {
-                fprintf(stderr, "No memory for buffer.\n");
-                goto out;
+        rc = parse_buffer(in, out);
+        if (rc) {
+                fprintf(stderr, "parse_buffer failed; leaving tmp file %s "
+                        "behind.\n", filename);
+        } else {
+                rc = unlink(filename);
+                if (rc)
+                        fprintf(stderr, "dumped successfully, but couldn't "
+                                "unlink tmp file %s: %s\n", filename,
+                                strerror(errno));
         }
+        return rc;
+}
 
-        memset(&data, 0, sizeof(data));
-        data.ioc_plen1 = databuf_size;
-        data.ioc_pbuf1 = databuf;
-
-        if (portal_ioctl_pack(&data, &buf, max) != 0) {
-                fprintf(stderr, "portal_ioctl_pack failed.\n");
-                goto out;
+int jt_dbg_debug_file(int argc, char **argv)
+{
+        FILE *in, *out = stdout;
+        if (argc > 3 || argc < 2) {
+                fprintf(stderr, "usage: %s <input> [output]\n", argv[0]);
+                return 0;
         }
 
-        rc = l_ioctl(PORTALS_DEV_ID, IOC_PORTAL_GET_DEBUG, buf);
-        if (rc) {
-                fprintf(stderr, "IOC_PORTAL_GET_DEBUG failed: %s\n",
+        in = fopen(argv[1], "r");
+        if (in == NULL) {
+                fprintf(stderr, "fopen(%s) failed: %s\n", argv[1],
                         strerror(errno));
-                goto out;
+                return 1;
+        }
+        if (argc > 2) {
+                out = fopen(argv[2], "w");
+                if (out == NULL) {
+                        fprintf(stderr, "fopen(%s) failed: %s\n", argv[2],
+                                strerror(errno));
+                        return 1;
+                }
         }
 
-        newdata = (struct portal_ioctl_data *)buf;
-        if (newdata->ioc_size > 0)
-                dump_buffer(fd, databuf, newdata->ioc_size, raw);
-
- out:
-        if (databuf)
-                free(databuf);
-        if (fd != stdout)
-                fclose(fd);
-        return 0;
+        return parse_buffer(in, out);
 }
 
 int jt_dbg_debug_daemon(int argc, char **argv)
 {
-        int i, rc;
+        int i, rc, fd;
         unsigned int cmd = 0;
-        FILE *fd = stdout;
         struct portal_ioctl_data data;
 
         if (argc <= 1) {
@@ -339,120 +461,42 @@ int jt_dbg_debug_daemon(int argc, char **argv)
                         "continue]\n", argv[0]);
                 return 0;
         }
-        for (i = 0; portal_debug_daemon_cmd[i].cmd != NULL; i++) {
-                if (strcasecmp(argv[1], portal_debug_daemon_cmd[i].cmd) == 0) {
-                        cmd = portal_debug_daemon_cmd[i].cmdv;
-                        break;
-                }
-        }
-        if (portal_debug_daemon_cmd[i].cmd == NULL) {
-                fprintf(stderr, "usage: %s [start file <#MB>|stop|pause|"
-                        "continue]\n", argv[0]);
-                return 0;
-        }
-        memset(&data, 0, sizeof(data));
-        if (cmd == DEBUG_DAEMON_START) {
-                if (argc < 3) {
-                        fprintf(stderr, "usage: %s [start file <#MB>|stop|"
-                                "pause|continue]\n", argv[0]);
-                        return 0;
-                }
-                if (access(argv[2], F_OK) != 0) {
-                        fd = fopen(argv[2], "w");
-                        if (fd != NULL) {
-                                fclose(fd);
-                                remove(argv[2]);
-                                goto ok;
-                        }
-                }
-                if (access(argv[2], W_OK) == 0)
-                        goto ok;
-                fprintf(stderr, "fopen(%s) failed: %s\n", argv[2],
-                        strerror(errno));
-                return -1;
-ok:
-                data.ioc_inllen1 = strlen(argv[2]) + 1;
-                data.ioc_inlbuf1 = argv[2];
-                data.ioc_misc = 0;
-                if (argc == 4) {
-                        unsigned long size;
-                        errno = 0;
-                        size = strtoul(argv[3], NULL, 0);
-                        if (errno) {
-                                fprintf(stderr, "file size(%s): error %s\n",
-                                        argv[3], strerror(errno));
-                                return -1;
-                        }
-                        data.ioc_misc = size;
-                }
-        }
-        data.ioc_count = cmd;
-        if (portal_ioctl_pack(&data, &buf, max) != 0) {
-                fprintf(stderr, "portal_ioctl_pack failed.\n");
-                return -1;
-        }
-        rc = l_ioctl(PORTALS_DEV_ID, IOC_PORTAL_SET_DAEMON, buf);
-        if (rc < 0) {
-                fprintf(stderr, "IOC_PORTAL_SET_DEMON failed: %s\n",
-                                strerror(errno));
-                return rc;
-        }
-        return 0;
-}
-
-int jt_dbg_debug_file(int argc, char **argv)
-{
-        int rc, fd = -1, raw = 1;
-        FILE *output = stdout;
-        char *databuf = NULL;
-        struct stat statbuf;
-
-        if (argc > 4 || argc < 2) {
-                fprintf(stderr, "usage: %s <input> [output] [raw]\n", argv[0]);
-                return 0;
-        }
 
-        fd = open(argv[1], O_RDONLY);
+        fd = open("/proc/sys/portals/daemon_file", O_WRONLY);
         if (fd < 0) {
-                fprintf(stderr, "fopen(%s) failed: %s\n", argv[1],
+                fprintf(stderr, "open(daemon_file) failed: %s\n",
                         strerror(errno));
-                return -1;
+                return 1;
         }
 
-        rc = fstat(fd, &statbuf);
-        if (rc < 0) {
-                fprintf(stderr, "fstat failed: %s\n", strerror(errno));
-                goto out;
-        }
+        if (strcasecmp(argv[1], "start") == 0) {
+                if (argc != 3) {
+                        fprintf(stderr, "usage: %s [start file|stop]\n",
+                                argv[0]);
+                        return 1;
+                }
 
-        if (argc >= 3) {
-                output = fopen(argv[2], "w");
-                if (output == NULL) {
-                        fprintf(stderr, "fopen(%s) failed: %s\n", argv[2],
+                rc = write(fd, argv[2], strlen(argv[2]));
+                if (rc != strlen(argv[2])) {
+                        fprintf(stderr, "write(%s) failed: %s\n", argv[2],
                                 strerror(errno));
-                        goto out;
+                        close(fd);
+                        return 1;
                 }
+        } else if (strcasecmp(argv[1], "stop") == 0) {
+                rc = write(fd, "stop", 4);
+                if (rc != 4) {
+                        fprintf(stderr, "write(stop) failed: %s\n",
+                                strerror(errno));
+                        close(fd);
+                        return 1;
+                }
+        } else {
+                fprintf(stderr, "usage: %s [start file|stop]\n", argv[0]);
+                return 1;
         }
 
-        if (argc == 4)
-                raw = atoi(argv[3]);
-
-        databuf = mmap(NULL, statbuf.st_size, PROT_READ | PROT_WRITE,
-                       MAP_PRIVATE, fd, 0);
-        if (databuf == NULL) {
-                fprintf(stderr, "mmap failed: %s\n", strerror(errno));
-                goto out;
-        }
-
-        dump_buffer(output, databuf, statbuf.st_size, raw);
-
- out:
-        if (databuf)
-                munmap(databuf, statbuf.st_size);
-        if (output != stdout)
-                fclose(output);
-        if (fd > 0)
-                close(fd);
+        close(fd);
         return 0;
 }
 
index 02cb9b4..1b6cd96 100644 (file)
@@ -32,7 +32,7 @@
 
 command_t list[] = {
         {"debug_kernel", jt_dbg_debug_kernel, 0, "usage: debug_kernel [file] [raw], get debug buffer and print it [to a file]"},
-        {"debug_daemon", jt_dbg_debug_daemon, 0, "usage: debug_daemon [start file [#MB]|stop|pause|continue], control debug daemon to dump debug buffer to a file"}, 
+        {"debug_daemon", jt_dbg_debug_daemon, 0, "usage: debug_daemon [start file|stop], control debug daemon to dump debug buffer to a file"}, 
         {"debug_file", jt_dbg_debug_file, 0, "usage: debug_file <input> [output] [raw], read debug buffer from input and print it [to output]"},
         {"clear", jt_dbg_clear_debug_buf, 0, "clear kernel debug buffer"},
         {"mark", jt_dbg_mark_debug_buf, 0, "insert a marker into the kernel debug buffer (args: [marker text])"},
index 84f8545..1b1fbde 100644 (file)
@@ -1,4 +1,14 @@
-tbd  Cluster File Systems, Inc. <info@clusterfs.com>
+tbd         Cluster File Systems, Inc. <info@clusterfs.com>
+       * version 1.2.5
+       * bug fixes
+       - don't close LustreDB during write_conf until it is done (3860)
+       - fix typo in lconf for_each_profile (3821)
+       - allow dumping logs from multiple threads at one time (3820)
+       - don't allow multiple threads in OSC recovery(3812)
+       - fix debug_size parameters (3864)
+       - fix mds_postrecov to initialize import for llog ctxt (3121)
+
+2004-07-14  Cluster File Systems, Inc. <info@clusterfs.com>
        * version 1.2.4
        * bug fixes
        - don't cleanup request in ll_file_open() on failed MDS open (3430)
@@ -6,7 +16,24 @@ tbd  Cluster File Systems, Inc. <info@clusterfs.com>
        - if default stripe count is 0, use OST count for inode size (3636)
        - update parent mtime/ctime on client for create/unlink (2611)
        - drop dentry ref in ext3_add_link from open_connect_dentry (3266)
+       - free recovery state on server during a forced cleanup (3571)
+       - unregister_reply for resent reqs (3063)
+       - loop back devices mounting and status check on 2.6 (3563)
+       - fix resource-creation race that can provoke i_size == 0 (3513)
+       - don't try to use bad inodes returned from MDS/OST fs lookup (3688)
+       - more debugging for page-accounting assertion (3746)
+       - return -ENOENT instead of asserting if ost getattr+unlink race (3558)
+       - avoid deadlock after precreation failure (3758)
+       - fix race and lock order deadlock in orphan handling (3450, 3750)
        * miscellania
+       - add /proc/.../recovery_status to obdfilter (3428)
+       - lightweight CDEBUG infrastructure, debug daemon (3668)
+       - change default OSC RPC parameters to be better on small clusters
+       - turn off OST read cache for files smaller than 32MB
+       - install man pages and include them in rpms (3100)
+       - add new init script for (un)mounting lustre filesystems (2593)
+       - run chkconfig in %post for init scripts (3701)
+       - drop scimac NAL (unmaintained)
 
 2004-06-17  Cluster File Systems, Inc. <info@clusterfs.com>
        * version 1.2.3
@@ -61,7 +88,9 @@ tbd  Cluster File Systems, Inc. <info@clusterfs.com>
        - don't crash in mdc_close for bad permissions on open (3285)
        - zero i_rdev for non-device files (3147)
        - clear page->private before handing to FS, better assertion (3119)
+       - tune the read pipeline (3236)
        - fix incorrect decref of invalidated dentry (2350)
+       - provide read-ahead stats and refine rpc in flight stats (3328)
        - don't hold journal transaction open across create RPC (3313)
        - update atime on MDS at close time (3265)
        - close LDAP connection when recovering to avoid server load (3315)
index 43293c1..7cfb68e 100644 (file)
@@ -42,6 +42,8 @@ dep: .depend
 
 .depend: $(LDISKFS) lvfs-sources libcfs-sources
        $(MAKE) $(ARCH_UM) -C $(LINUX) -f $(PWD)/kernel-tests/Makefile LUSTRE_LINUX_CONFIG=$(LINUX_CONFIG) -o scripts -o include/config/MARKER _sfdep_$(PWD) _FASTDEP_ALL_SUB_DIRS="$(PWD)"
+
+CLEANFILES = .depend
 endif
 
 if LDISKFS
index 627f2a2..a7550c3 100644 (file)
@@ -6,7 +6,6 @@
 EXTRA_DIST = lustre.dtd lustre.schema slapd-lustre.conf lustre2ldif.xsl top.ldif
 ldapconfdir = $(sysconfdir)/openldap
 ldapschemadir = $(sysconfdir)/openldap/schema
-pkglibdir = '${exec_prefix}/usr/lib/$(PACKAGE)'
 
 if UTILS
 ldapconf_SCRIPTS = slapd-lustre.conf
index 96fdc8e..8fd57d8 100644 (file)
                
 <!ELEMENT network (nid | port | route_tbl | sendmem | recvmem)*>
 <!ATTLIST network %object.attr;
-                  nettype (tcp | elan | gm | scimac) 'tcp'>
+                  nettype (tcp | elan | gm) 'tcp'>
 
 <!ELEMENT routetbl (route)*>
 <!ATTLIST routetbl %object.attr;>
 <!ELEMENT route %object.content;>
-<!ATTLIST route type (elan | tcp | gm | scimac) #REQUIRED
+<!ATTLIST route type (elan | tcp | gm) #REQUIRED
                 gw CDATA #REQUIRED
                 lo CDATA #REQUIRED
                 hi CDATA #IMPLIED >
index 8558f64..b93b411 100644 (file)
@@ -8,4 +8,4 @@ rootdn          "cn=Manager,fs=lustre"
 include                /etc/openldap/schema/lustre.schema
 rootpw         secret
 directory      /var/lib/ldap/lustre
-index           objectClass eq, uuid eq
+index           objectClass,uuid       eq
index eabc50c..df41107 100644 (file)
@@ -5,7 +5,7 @@
 
 AC_INIT
 AC_CANONICAL_SYSTEM
-AM_INIT_AUTOMAKE(lustre, 1.2.3.2)
+AM_INIT_AUTOMAKE(lustre, 1.2.4.1)
 # AM_MAINTAINER_MODE
 
 # Four main targets: lustre kernel modules, utilities, tests, and liblustre
@@ -229,8 +229,6 @@ portals/knals/ibnal/Makefile
 portals/knals/ibnal/autoMakefile
 portals/knals/qswnal/Makefile
 portals/knals/qswnal/autoMakefile
-portals/knals/scimacnal/Makefile
-portals/knals/scimacnal/autoMakefile
 portals/knals/socknal/Makefile
 portals/knals/socknal/autoMakefile
 portals/libcfs/Makefile
index a47d5e7..c165d4c 100644 (file)
@@ -20,6 +20,10 @@ else
   DOCS =
 endif
 
+if UTILS
+man_MANS = lfs.1 lmc.1 lwizard.1 lconf.8 lctl.8
+endif
+
 IMAGES := $(patsubst %.fig,%.eps,$(wildcard *.fig))
 LYXFILES= $(filter-out $(patsubst %.lin,%.lyx,$(wildcard *.lin)),\
        $(wildcard *.lin *.lyx))
@@ -29,7 +33,8 @@ CLEANFILES = *.aux *.tex doc.old/*.aux doc.old/*.tex *.eps *.log *.pdf
 VERSIONED = lustre.lyx doc.old/lustre.lyx
 GENERATED = $(VERSIONED) lustre-full.tex lustre-chbar.tex
 
-EXTRA_DIST = chbar.sh postbar tex2pdf $(DOCS) $(IMAGES) $(LYXFILES) lustre.bib
+EXTRA_DIST = chbar.sh postbar tex2pdf $(DOCS) $(man_MANS) $(IMAGES)    \
+       $(LYXFILES) lustre.bib lfs.1 lmc.1 lwizard.1 lconf.8 lctl.8     
 
 all:
 docs: $(DOCS)
index fb14d0e..bb6ca2b 100644 (file)
@@ -197,7 +197,7 @@ The arguments required are:
 --nettype\SpecialChar ~
 <type> This can be 
 \series bold 
-tcp, elan, gm, scimac.
+tcp, elan, gm.
 \layout Description
 
 --nid\SpecialChar ~
index b79b574..47f6d6e 100644 (file)
@@ -264,6 +264,10 @@ extern int lprocfs_counter_read(char *page, char **start, off_t off,
                                 int count, int *eof, void *data);
 extern int lprocfs_counter_write(struct file *file, const char *buffer,
                                  unsigned long count, void *data);
+
+/* lprocfs_status.c: recovery status */
+int lprocfs_obd_rd_recovery_status(char *page, char **start, off_t off,
+                                   int count, int *eof, void *data);
 #else
 /* LPROCFS is not defined */
 static inline void lprocfs_counter_add(struct lprocfs_stats *stats,
index b9a295e..b661662 100644 (file)
@@ -100,6 +100,19 @@ static inline int cleanup_group_info(void)
         return 0;
 }
 
+#define __set_page_ll_data(page, llap) \
+        do {       \
+                page_cache_get(page); \
+                SetPagePrivate(page); \
+                page->private = (unsigned long)llap; \
+        } while (0)
+#define __clear_page_ll_data(page) \
+        do {       \
+                ClearPagePrivate(page); \
+                page_cache_release(page); \
+                page->private = 0; \
+        } while(0)
+
 #define smp_num_cpus    NR_CPUS
 
 #include <linux/proc_fs.h>
@@ -194,6 +207,11 @@ static inline void cond_resched(void)
 #define PDE(ii)         ((ii)->u.generic_ip)
 #endif
 
+#define __set_page_ll_data(page, llap) page->private = (unsigned long)llap
+#define __clear_page_ll_data(page) page->private = 0
+#define PageWriteback(page) 0
+#define end_page_writeback(page)
+
 #endif /* end of 2.4 compat macros */
 
 #ifdef HAVE_PAGE_LIST
@@ -233,5 +251,37 @@ static inline int mapping_has_pages(struct address_space *mapping)
 }
 #endif
 
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,7))
+#define ll_set_dflags(dentry, flags) do { dentry->d_vfs_flags |= flags; } while(0)
+#define ll_vfs_symlink(dir, dentry, path, mode) vfs_symlink(dir, dentry, path)
+#else
+#define ll_set_dflags(dentry, flags) do { \
+                spin_lock(&dentry->d_lock); \
+                dentry->d_flags |= flags; \
+                spin_unlock(&dentry->d_lock); \
+        } while(0)
+#define ll_vfs_symlink(dir, dentry, path, mode) vfs_symlink(dir, dentry, path, mode)
+#endif
+
+#ifdef HAVE_I_ALLOC_SEM
+#define UP_WRITE_I_ALLOC_SEM(i) do { up_write(&(i)->i_alloc_sem); } while (0)
+#define DOWN_WRITE_I_ALLOC_SEM(i) do { down_write(&(i)->i_alloc_sem); } while(0)
+#define LASSERT_MDS_ORPHAN_WRITE_LOCKED(i) LASSERT(down_read_trylock(&(i)->i_alloc_sem) == 0)
+
+#define UP_READ_I_ALLOC_SEM(i) do { up_read(&(i)->i_alloc_sem); } while (0)
+#define DOWN_READ_I_ALLOC_SEM(i) do { down_read(&(i)->i_alloc_sem); } while (0)
+#define LASSERT_MDS_ORPHAN_READ_LOCKED(i) LASSERT(down_write_trylock(&(i)->i_alloc_sem) == 0)
+#define MDS_PACK_MD_LOCK 1
+#else
+#define UP_READ_I_ALLOC_SEM(i) do { up(&(i)->i_sem); } while (0)
+#define DOWN_READ_I_ALLOC_SEM(i) do { down(&(i)->i_sem); } while (0)
+#define LASSERT_MDS_ORPHAN_READ_LOCKED(i) LASSERT(down_trylock(&(i)->i_sem) != 0)
+
+#define UP_WRITE_I_ALLOC_SEM(i) do { up(&(i)->i_sem); } while (0)
+#define DOWN_WRITE_I_ALLOC_SEM(i) do { down(&(i)->i_sem); } while (0)
+#define LASSERT_MDS_ORPHAN_WRITE_LOCKED(i) LASSERT(down_trylock(&(i)->i_sem) != 0)
+#define MDS_PACK_MD_LOCK 0
+#endif
+
 #endif /* __KERNEL__ */
 #endif /* _COMPAT25_H */
index ef7b3af..523e6e5 100644 (file)
@@ -472,28 +472,29 @@ typedef enum {
         MDS_DONE_WRITING = 45,
         MDS_LAST_OPC
 } mds_cmd_t;
+
 #define MDS_FIRST_OPC    MDS_GETATTR
 
 /*
  * Do not exceed 63
  */
 
-#define REINT_SETATTR  1
-#define REINT_CREATE   2
-#define REINT_LINK     3
-#define REINT_UNLINK   4
-#define REINT_RENAME   5
-#define REINT_OPEN     6
-#define REINT_MAX      6
+#define REINT_SETATTR    1
+#define REINT_CREATE     2
+#define REINT_LINK       3
+#define REINT_UNLINK     4
+#define REINT_RENAME     5
+#define REINT_OPEN       6
+#define REINT_MAX        6
 
 /* the disposition of the intent outlines what was executed */
-#define DISP_IT_EXECD   1
-#define DISP_LOOKUP_EXECD  (1 << 1)
-#define DISP_LOOKUP_NEG     (1 << 2)
-#define DISP_LOOKUP_POS     (1 << 3)
-#define DISP_OPEN_CREATE  (1 << 4)
-#define DISP_OPEN_OPEN    (1 << 5)
-#define DISP_ENQ_COMPLETE (1<<6)
+#define DISP_IT_EXECD     0x01
+#define DISP_LOOKUP_EXECD 0x02
+#define DISP_LOOKUP_NEG   0x04
+#define DISP_LOOKUP_POS   0x08
+#define DISP_OPEN_CREATE  0x10
+#define DISP_OPEN_OPEN    0x20
+#define DISP_ENQ_COMPLETE 0x40
 
 struct ll_fid {
         __u64 id;
@@ -545,12 +546,6 @@ struct mds_body {
 extern void lustre_swab_mds_body (struct mds_body *b);
 
 
-/* MDS update records */
-
-//struct mds_update_record_hdr {
-//        __u32 ur_opcode;
-//};
-
 struct mds_rec_setattr {
         __u32           sa_opcode;
         __u32           sa_fsuid;
@@ -954,7 +949,7 @@ struct llog_log_hdr {
         __u32                   llh_size;
         __u32                   llh_flags;
         __u32                   llh_cat_idx;
-        /* for a catlog the first plain slot is next to it */
+        /* for a catalog the first plain slot is next to it */
         struct obd_uuid         llh_tgtuuid;
         __u32                   llh_reserved[LLOG_HEADER_SIZE/sizeof(__u32) - 23];
         __u32                   llh_bitmap[LLOG_BITMAP_BYTES/sizeof(__u32)];
index c55e5ff..fd32e83 100644 (file)
@@ -86,6 +86,7 @@ void target_cancel_recovery_timer(struct obd_device *obd);
 #define OBD_RECOVERY_TIMEOUT (obd_timeout * 5 * HZ / 2) /* *waves hands* */
 void target_start_recovery_timer(struct obd_device *obd, svc_handler_t handler);
 void target_abort_recovery(void *data);
+void target_cleanup_recovery(struct obd_device *obd);
 int target_queue_recovery_request(struct ptlrpc_request *req,
                                   struct obd_device *obd);
 int target_queue_final_reply(struct ptlrpc_request *req, int rc);
index 05f736e..b78978d 100644 (file)
@@ -98,24 +98,6 @@ struct mds_update_record {
 #define ur_suppgid2 ur_uc.ouc_suppgid2
 #define ur_umask    ur_uc.ouc_umask
 
-/* i_attr_flags holds the open count in the inode in 2.4 */
-//XXX Alex implement on 2.4 with i_attr_flags and find soln for 2.5 please
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0))
-# define mds_inode_oatomic(inode)    ((atomic_t *)&(inode)->i_cindex)
-#else
-# define mds_inode_oatomic(inode)    ((atomic_t *)&(inode)->i_attr_flags)
-#endif
-
-# define mds_open_orphan_count(inode)                          \
-  atomic_read(mds_inode_oatomic(inode))
-# define mds_open_orphan_inc(inode)                            \
-  atomic_inc(mds_inode_oatomic(inode))
-# define mds_open_orphan_dec_test(inode)                       \
-  atomic_dec_and_test(mds_inode_oatomic(inode))
-
-#define mds_inode_is_orphan(inode)  ((inode)->i_flags & 0x4000000)
-#define mds_inode_set_orphan(inode) (inode)->i_flags |= 0x4000000
-
 #define MDS_LR_SERVER_SIZE    512
 
 #define MDS_LR_CLIENT_START  8192
index 879a56b..c3eb266 100644 (file)
@@ -58,7 +58,7 @@ struct lov_oinfo {                 /* per-stripe data structure */
         struct list_head loi_write_item;
         struct list_head loi_read_item;
 
-        int loi_kms_valid:1;
+        unsigned loi_kms_valid:1;
         __u64 loi_kms;             /* known minimum size */
         __u64 loi_rss;             /* recently seen size */
         __u64 loi_mtime;           /* recently seen mtime */
@@ -212,10 +212,10 @@ struct filter_obd {
 
 struct mds_server_data;
 
-#define OSC_MAX_RIF_DEFAULT       4
-#define OSC_MAX_RIF_MAX          32
-#define OSC_MAX_DIRTY_DEFAULT     4
-#define OSC_MAX_DIRTY_MB_MAX    256     /* totally arbitrary */
+#define OSC_MAX_RIF_DEFAULT       8
+#define OSC_MAX_RIF_MAX          64
+#define OSC_MAX_DIRTY_DEFAULT     8
+#define OSC_MAX_DIRTY_MB_MAX    512     /* totally arbitrary */
 
 struct mdc_rpc_lock;
 struct client_obd {
@@ -247,7 +247,8 @@ struct client_obd {
         struct list_head         cl_loi_ready_list;
         struct list_head         cl_loi_write_list;
         struct list_head         cl_loi_read_list;
-        int                      cl_brw_in_flight;
+        int                      cl_r_in_flight;
+        int                      cl_w_in_flight;
         /* just a sum of the loi/lop pending numbers to be exported by /proc */
         int                      cl_pending_w_pages;
         int                      cl_pending_r_pages;
@@ -508,6 +509,8 @@ struct obd_device {
         struct timer_list                obd_recovery_timer;
         struct list_head                 obd_recovery_queue;
         struct list_head                 obd_delayed_reply_queue;
+        time_t                           obd_recovery_start;
+        time_t                           obd_recovery_end;
 
         union {
                 struct filter_obd filter;
index f73e97f..3647c55 100644 (file)
@@ -106,6 +106,8 @@ extern wait_queue_head_t obd_race_waitq;
 #define OBD_FAIL_OST_ALL_REQUESTS_NET    0x212
 #define OBD_FAIL_OST_LDLM_REPLY_NET      0x213
 #define OBD_FAIL_OST_BRW_PAUSE_BULK      0x214
+#define OBD_FAIL_OST_ENOSPC              0x215
+#define OBD_FAIL_OST_EROFS               0x216
 
 #define OBD_FAIL_LDLM                    0x300
 #define OBD_FAIL_LDLM_NAMESPACE_NEW      0x301
@@ -117,6 +119,7 @@ extern wait_queue_head_t obd_race_waitq;
 #define OBD_FAIL_LDLM_GL_CALLBACK        0x307
 #define OBD_FAIL_LDLM_ENQUEUE_EXTENT_ERR 0x308
 #define OBD_FAIL_LDLM_ENQUEUE_INTENT_ERR 0x309
+#define OBD_FAIL_LDLM_CREATE_RESOURCE    0x30a
 
 #define OBD_FAIL_OSC                     0x400
 #define OBD_FAIL_OSC_BRW_READ_BULK       0x401
@@ -173,7 +176,7 @@ do {                                                                         \
 #define OBD_FAIL_TIMEOUT(id, secs)                                           \
 do {                                                                         \
         if  (OBD_FAIL_CHECK_ONCE(id)) {                                      \
-                CERROR("obd_fail_timeout id %x sleeping for %d secs\n",     \
+                CERROR("obd_fail_timeout id %x sleeping for %d secs\n",      \
                        (id), (secs));                                        \
                 set_current_state(TASK_UNINTERRUPTIBLE);                     \
                 schedule_timeout((secs) * HZ);                               \
index f0a839a..795de30 100644 (file)
@@ -30,6 +30,9 @@
 #include <string.h>
 #endif
 
+/* for statfs() */
+#define LL_SUPER_MAGIC 0x0BD00BD0
+
 #define LL_IOC_GETFLAGS                 _IOR ('f', 151, long)
 #define LL_IOC_SETFLAGS                 _IOW ('f', 152, long)
 #define LL_IOC_CLRFLAGS                 _IOW ('f', 153, long)
@@ -86,12 +89,12 @@ struct obd_uuid {
 
 static inline int obd_uuid_equals(struct obd_uuid *u1, struct obd_uuid *u2)
 {
-        return strcmp(u1->uuid, u2->uuid) == 0;
+        return strcmp((char *)u1->uuid, (char *)u2->uuid) == 0;
 }
 
 static inline void obd_str2uuid(struct obd_uuid *uuid, char *tmp)
 {
-        strncpy(uuid->uuid, tmp, sizeof(*uuid));
+        strncpy((char *)uuid->uuid, tmp, sizeof(*uuid));
         uuid->uuid[sizeof(*uuid) - 1] = '\0';
 }
 
@@ -20,13 +20,13 @@ CONFIG_KMOD=y
 #
 # Processor type and features
 #
-# CONFIG_LOLAT is not set
+CONFIG_LOLAT=y
 # CONFIG_M386 is not set
 # CONFIG_M486 is not set
-CONFIG_M586=y
+# CONFIG_M586 is not set
 # CONFIG_M586TSC is not set
 # CONFIG_M586MMX is not set
-# CONFIG_M686 is not set
+CONFIG_M686=y
 # CONFIG_MPENTIUMIII is not set
 # CONFIG_MPENTIUM4 is not set
 # CONFIG_MK6 is not set
@@ -45,11 +45,13 @@ CONFIG_X86_BSWAP=y
 CONFIG_X86_POPAD_OK=y
 # CONFIG_RWSEM_GENERIC_SPINLOCK is not set
 CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-CONFIG_X86_L1_CACHE_SHIFT=5
-CONFIG_X86_USE_STRING_486=y
-CONFIG_X86_ALIGNMENT_16=y
+CONFIG_X86_L1_CACHE_SHIFT=7
+CONFIG_X86_HAS_TSC=y
+CONFIG_X86_GOOD_APIC=y
+CONFIG_X86_PGE=y
+CONFIG_X86_USE_PPRO_CHECKSUM=y
 CONFIG_X86_PPRO_FENCE=y
-# CONFIG_X86_F00F_WORKS_OK is not set
+CONFIG_X86_F00F_WORKS_OK=y
 CONFIG_X86_MCE=y
 
 #
@@ -74,6 +76,7 @@ CONFIG_MTRR=y
 CONFIG_SMP=y
 # CONFIG_X86_NUMA is not set
 # CONFIG_X86_TSC_DISABLE is not set
+CONFIG_X86_TSC=y
 CONFIG_HAVE_DEC_LOCK=y
 # CONFIG_NOBIGSTACK is not set
 CONFIG_STACK_SIZE_16KB=y
@@ -518,15 +521,15 @@ CONFIG_SCSI_AHA1542=m
 CONFIG_SCSI_AHA1740=m
 CONFIG_SCSI_AACRAID=m
 CONFIG_SCSI_AIC7XXX=m
-CONFIG_AIC7XXX_CMDS_PER_DEVICE=253
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
 CONFIG_AIC7XXX_RESET_DELAY_MS=15000
 # CONFIG_AIC7XXX_PROBE_EISA_VL is not set
 # CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
 CONFIG_SCSI_AIC79XX=m
-CONFIG_AIC79XX_CMDS_PER_DEVICE=253
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
 CONFIG_AIC79XX_RESET_DELAY_MS=15000
 # CONFIG_AIC79XX_BUILD_FIRMWARE is not set
-CONFIG_AIC79XX_ENABLE_RD_STRM=y
+# CONFIG_AIC79XX_ENABLE_RD_STRM is not set
 # CONFIG_AIC79XX_DEBUG_ENABLE is not set
 CONFIG_AIC79XX_DEBUG_MASK=0
 CONFIG_SCSI_AIC7XXX_OLD=m
@@ -1413,11 +1416,11 @@ CONFIG_HFS_FS=m
 CONFIG_BEFS_FS=m
 # CONFIG_BEFS_DEBUG is not set
 CONFIG_BFS_FS=m
-CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS=m
 CONFIG_EXT3_FS_XATTR=y
 CONFIG_EXT3_FS_XATTR_SHARING=y
 CONFIG_EXT3_FS_XATTR_USER=y
-CONFIG_JBD=y
+CONFIG_JBD=m
 # CONFIG_JBD_DEBUG is not set
 CONFIG_FAT_FS=m
 CONFIG_MSDOS_FS=m
@@ -1450,8 +1453,8 @@ CONFIG_DEVPTS_FS=y
 CONFIG_ROMFS_FS=m
 CONFIG_EXT2_FS=y
 CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_XATTR_SHARING=y
-CONFIG_EXT2_FS_XATTR_USER=y
+# CONFIG_EXT2_FS_XATTR_SHARING is not set
+# CONFIG_EXT2_FS_XATTR_USER is not set
 CONFIG_SYSV_FS=m
 CONFIG_UDF_FS=m
 CONFIG_UDF_RW=y
@@ -1847,7 +1850,7 @@ CONFIG_OPROFILE=m
 # Kernel hacking
 #
 CONFIG_DEBUG_KERNEL=y
-# CONFIG_DEBUG_STACKOVERFLOW is not set
+CONFIG_DEBUG_STACKOVERFLOW=y
 # CONFIG_DEBUG_HIGHMEM is not set
 # CONFIG_DEBUG_SLAB is not set
 # CONFIG_DEBUG_IOVIRT is not set
index 2a5d8da..94f370e 100644 (file)
@@ -20,13 +20,13 @@ CONFIG_KMOD=y
 #
 # Processor type and features
 #
-# CONFIG_LOLAT is not set
+CONFIG_LOLAT=y
 # CONFIG_M386 is not set
 # CONFIG_M486 is not set
-CONFIG_M586=y
+# CONFIG_M586 is not set
 # CONFIG_M586TSC is not set
 # CONFIG_M586MMX is not set
-# CONFIG_M686 is not set
+CONFIG_M686=y
 # CONFIG_MPENTIUMIII is not set
 # CONFIG_MPENTIUM4 is not set
 # CONFIG_MK6 is not set
@@ -45,11 +45,13 @@ CONFIG_X86_BSWAP=y
 CONFIG_X86_POPAD_OK=y
 # CONFIG_RWSEM_GENERIC_SPINLOCK is not set
 CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-CONFIG_X86_L1_CACHE_SHIFT=5
-CONFIG_X86_USE_STRING_486=y
-CONFIG_X86_ALIGNMENT_16=y
+CONFIG_X86_L1_CACHE_SHIFT=7
+CONFIG_X86_HAS_TSC=y
+CONFIG_X86_GOOD_APIC=y
+CONFIG_X86_PGE=y
+CONFIG_X86_USE_PPRO_CHECKSUM=y
 CONFIG_X86_PPRO_FENCE=y
-# CONFIG_X86_F00F_WORKS_OK is not set
+CONFIG_X86_F00F_WORKS_OK=y
 CONFIG_X86_MCE=y
 
 #
@@ -74,6 +76,7 @@ CONFIG_MTRR=y
 CONFIG_SMP=y
 # CONFIG_X86_NUMA is not set
 # CONFIG_X86_TSC_DISABLE is not set
+CONFIG_X86_TSC=y
 CONFIG_HAVE_DEC_LOCK=y
 # CONFIG_NOBIGSTACK is not set
 CONFIG_STACK_SIZE_16KB=y
@@ -518,15 +521,15 @@ CONFIG_SCSI_AHA1542=m
 CONFIG_SCSI_AHA1740=m
 CONFIG_SCSI_AACRAID=m
 CONFIG_SCSI_AIC7XXX=m
-CONFIG_AIC7XXX_CMDS_PER_DEVICE=253
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
 CONFIG_AIC7XXX_RESET_DELAY_MS=15000
 # CONFIG_AIC7XXX_PROBE_EISA_VL is not set
 # CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
 CONFIG_SCSI_AIC79XX=m
-CONFIG_AIC79XX_CMDS_PER_DEVICE=253
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
 CONFIG_AIC79XX_RESET_DELAY_MS=15000
 # CONFIG_AIC79XX_BUILD_FIRMWARE is not set
-CONFIG_AIC79XX_ENABLE_RD_STRM=y
+# CONFIG_AIC79XX_ENABLE_RD_STRM is not set
 # CONFIG_AIC79XX_DEBUG_ENABLE is not set
 CONFIG_AIC79XX_DEBUG_MASK=0
 CONFIG_SCSI_AIC7XXX_OLD=m
@@ -1413,11 +1416,11 @@ CONFIG_HFS_FS=m
 CONFIG_BEFS_FS=m
 # CONFIG_BEFS_DEBUG is not set
 CONFIG_BFS_FS=m
-CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS=m
 CONFIG_EXT3_FS_XATTR=y
 CONFIG_EXT3_FS_XATTR_SHARING=y
 CONFIG_EXT3_FS_XATTR_USER=y
-CONFIG_JBD=y
+CONFIG_JBD=m
 # CONFIG_JBD_DEBUG is not set
 CONFIG_FAT_FS=m
 CONFIG_MSDOS_FS=m
@@ -1450,8 +1453,8 @@ CONFIG_DEVPTS_FS=y
 CONFIG_ROMFS_FS=m
 CONFIG_EXT2_FS=y
 CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_XATTR_SHARING=y
-CONFIG_EXT2_FS_XATTR_USER=y
+# CONFIG_EXT2_FS_XATTR_SHARING is not set
+# CONFIG_EXT2_FS_XATTR_USER is not set
 CONFIG_SYSV_FS=m
 CONFIG_UDF_FS=m
 CONFIG_UDF_RW=y
@@ -1847,7 +1850,7 @@ CONFIG_OPROFILE=m
 # Kernel hacking
 #
 CONFIG_DEBUG_KERNEL=y
-# CONFIG_DEBUG_STACKOVERFLOW is not set
+CONFIG_DEBUG_STACKOVERFLOW=y
 # CONFIG_DEBUG_HIGHMEM is not set
 # CONFIG_DEBUG_SLAB is not set
 # CONFIG_DEBUG_IOVIRT is not set
@@ -20,23 +20,24 @@ CONFIG_KMOD=y
 #
 # Processor type and features
 #
-# CONFIG_LOLAT is not set
 # CONFIG_M386 is not set
 # CONFIG_M486 is not set
-CONFIG_M586=y
+# CONFIG_M586 is not set
 # CONFIG_M586TSC is not set
 # CONFIG_M586MMX is not set
-# CONFIG_M686 is not set
+CONFIG_M686=y
 # CONFIG_MPENTIUMIII is not set
 # CONFIG_MPENTIUM4 is not set
 # CONFIG_MK6 is not set
 # CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
 # CONFIG_MELAN is not set
 # CONFIG_MCRUSOE is not set
 # CONFIG_MWINCHIPC6 is not set
 # CONFIG_MWINCHIP2 is not set
 # CONFIG_MWINCHIP3D is not set
 # CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
 CONFIG_X86_WP_WORKS_OK=y
 CONFIG_X86_INVLPG=y
 CONFIG_X86_CMPXCHG=y
@@ -45,11 +46,13 @@ CONFIG_X86_BSWAP=y
 CONFIG_X86_POPAD_OK=y
 # CONFIG_RWSEM_GENERIC_SPINLOCK is not set
 CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-CONFIG_X86_L1_CACHE_SHIFT=5
-CONFIG_X86_USE_STRING_486=y
-CONFIG_X86_ALIGNMENT_16=y
+CONFIG_X86_L1_CACHE_SHIFT=7
+CONFIG_X86_HAS_TSC=y
+CONFIG_X86_GOOD_APIC=y
+CONFIG_X86_PGE=y
+CONFIG_X86_USE_PPRO_CHECKSUM=y
 CONFIG_X86_PPRO_FENCE=y
-# CONFIG_X86_F00F_WORKS_OK is not set
+CONFIG_X86_F00F_WORKS_OK=y
 CONFIG_X86_MCE=y
 
 #
@@ -64,22 +67,34 @@ CONFIG_X86_CPUID=m
 # CONFIG_E820_PROC is not set
 CONFIG_EDD=m
 # CONFIG_NOHIGHMEM is not set
-CONFIG_HIGHMEM4G=y
-# CONFIG_HIGHMEM64G is not set
+# CONFIG_HIGHMEM4G is not set
+CONFIG_HIGHMEM64G=y
 CONFIG_HIGHMEM=y
 CONFIG_HIGHPTE=y
+CONFIG_X86_PAE=y
 CONFIG_HIGHIO=y
+# CONFIG_X86_4G is not set
+CONFIG_3GB=y
+# CONFIG_2GB is not set
+# CONFIG_1GB is not set
 # CONFIG_MATH_EMULATION is not set
 CONFIG_MTRR=y
 CONFIG_SMP=y
-# CONFIG_X86_NUMA is not set
-# CONFIG_X86_TSC_DISABLE is not set
-CONFIG_HAVE_DEC_LOCK=y
+# CONFIG_NR_SIBLINGS_0 is not set
+CONFIG_NR_SIBLINGS_2=y
+CONFIG_SHARE_RUNQUEUE=y
+CONFIG_MAX_NR_SIBLINGS=2
+CONFIG_X86_CLUSTERED_APIC=y
+CONFIG_X86_NUMA=y
+# CONFIG_X86_NUMAQ is not set
+CONFIG_X86_SUMMIT=y
+CONFIG_X86_CLUSTERED_APIC=y
 # CONFIG_NOBIGSTACK is not set
 CONFIG_STACK_SIZE_16KB=y
 # CONFIG_STACK_SIZE_32KB is not set
 # CONFIG_STACK_SIZE_64KB is not set
 CONFIG_STACK_SIZE_SHIFT=2
+CONFIG_HAVE_DEC_LOCK=y
 
 #
 # General setup
@@ -94,6 +109,7 @@ CONFIG_PCI_GOANY=y
 CONFIG_PCI_BIOS=y
 CONFIG_PCI_DIRECT=y
 CONFIG_ISA=y
+# CONFIG_SCx200 is not set
 CONFIG_PCI_NAMES=y
 CONFIG_EISA=y
 # CONFIG_MCA is not set
@@ -112,11 +128,10 @@ CONFIG_I82365=y
 # PCI Hotplug Support
 #
 CONFIG_HOTPLUG_PCI=y
-# CONFIG_HOTPLUG_PCI_ACPI is not set
 CONFIG_HOTPLUG_PCI_COMPAQ=m
 # CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
 CONFIG_HOTPLUG_PCI_IBM=m
-# CONFIG_HOTPLUG_PCI_H2999 is not set
+# CONFIG_HOTPLUG_PCI_ACPI is not set
 CONFIG_SYSVIPC=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_SYSCTL=y
@@ -125,8 +140,9 @@ CONFIG_KCORE_ELF=y
 CONFIG_BINFMT_AOUT=m
 CONFIG_BINFMT_ELF=y
 CONFIG_BINFMT_MISC=m
+# CONFIG_IKCONFIG is not set
+CONFIG_AUDIT=m
 CONFIG_PM=y
-# CONFIG_ACPI is not set
 CONFIG_APM=y
 # CONFIG_APM_IGNORE_USER_SUSPEND is not set
 # CONFIG_APM_DO_ENABLE is not set
@@ -164,12 +180,13 @@ CONFIG_PARPORT_1284=y
 #
 CONFIG_PNP=y
 CONFIG_ISAPNP=y
+# CONFIG_PNPBIOS is not set
 
 #
 # Block devices
 #
-CONFIG_BLK_DEV_FD=y
-CONFIG_BLK_DEV_XD=m
+CONFIG_BLK_DEV_FD=m
+# CONFIG_BLK_DEV_XD is not set
 CONFIG_PARIDE=m
 CONFIG_PARIDE_PARPORT=m
 CONFIG_PARIDE_PD=m
@@ -196,12 +213,13 @@ CONFIG_PARIDE_ON26=m
 CONFIG_BLK_CPQ_DA=m
 CONFIG_BLK_CPQ_CISS_DA=m
 CONFIG_CISS_SCSI_TAPE=y
+# CONFIG_CISS_MONITOR_THREAD is not set
 CONFIG_BLK_DEV_DAC960=m
 CONFIG_BLK_DEV_UMEM=m
 CONFIG_BLK_DEV_LOOP=m
 CONFIG_BLK_DEV_NBD=m
 CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_BLK_DEV_RAM_SIZE=8192
 CONFIG_BLK_DEV_INITRD=y
 CONFIG_BLK_STATS=y
 
@@ -218,16 +236,6 @@ CONFIG_MD_MULTIPATH=m
 CONFIG_BLK_DEV_LVM=m
 
 #
-# Cryptography support (CryptoAPI)
-#
-CONFIG_CRYPTO=m
-CONFIG_CIPHERS=m
-CONFIG_CIPHER_AES=m
-CONFIG_CIPHER_IDENTITY=m
-CONFIG_CRYPTODEV=m
-CONFIG_CRYPTOLOOP=m
-
-#
 # Networking options
 #
 CONFIG_PACKET=y
@@ -237,6 +245,7 @@ CONFIG_NETFILTER=y
 # CONFIG_NETFILTER_DEBUG is not set
 CONFIG_FILTER=y
 CONFIG_UNIX=y
+CONFIG_NET_KEY=m
 CONFIG_INET=y
 CONFIG_TUX=m
 CONFIG_TUX_EXTCGI=y
@@ -250,7 +259,6 @@ CONFIG_IP_ROUTE_NAT=y
 CONFIG_IP_ROUTE_MULTIPATH=y
 CONFIG_IP_ROUTE_TOS=y
 CONFIG_IP_ROUTE_VERBOSE=y
-CONFIG_IP_ROUTE_LARGE_TABLES=y
 # CONFIG_IP_PNP is not set
 CONFIG_NET_IPIP=m
 CONFIG_NET_IPGRE=m
@@ -261,6 +269,9 @@ CONFIG_IP_PIMSM_V2=y
 # CONFIG_ARPD is not set
 # CONFIG_INET_ECN is not set
 CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
 
 #
 #   IP: Netfilter Configuration
@@ -278,6 +289,7 @@ CONFIG_IP_NF_MATCH_PKTTYPE=m
 CONFIG_IP_NF_MATCH_MARK=m
 CONFIG_IP_NF_MATCH_MULTIPORT=m
 CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_RECENT=m
 CONFIG_IP_NF_MATCH_ECN=m
 CONFIG_IP_NF_MATCH_DSCP=m
 CONFIG_IP_NF_MATCH_AH_ESP=m
@@ -312,11 +324,29 @@ CONFIG_IP_NF_TARGET_ULOG=m
 CONFIG_IP_NF_TARGET_TCPMSS=m
 CONFIG_IP_NF_ARPTABLES=m
 CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
 CONFIG_IP_NF_COMPAT_IPCHAINS=m
 CONFIG_IP_NF_NAT_NEEDED=y
 CONFIG_IP_NF_COMPAT_IPFWADM=m
 CONFIG_IP_NF_NAT_NEEDED=y
+
+#
+#   IP: Virtual Server Configuration
+#
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=16
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_FTP=m
 CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
 
 #
 #   IPv6: Netfilter Configuration
@@ -340,6 +370,12 @@ CONFIG_IP6_NF_FILTER=m
 CONFIG_IP6_NF_TARGET_LOG=m
 CONFIG_IP6_NF_MANGLE=m
 CONFIG_IP6_NF_TARGET_MARK=m
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_TUNNEL=m
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=y
 # CONFIG_KHTTPD is not set
 CONFIG_ATM=y
 CONFIG_ATM_CLIP=y
@@ -370,6 +406,7 @@ CONFIG_DECNET_ROUTER=y
 CONFIG_DECNET_ROUTE_FWMARK=y
 CONFIG_BRIDGE=m
 # CONFIG_X25 is not set
+CONFIG_EDP2=m
 # CONFIG_LAPB is not set
 # CONFIG_LLC is not set
 CONFIG_NET_DIVERT=y
@@ -495,7 +532,7 @@ CONFIG_BLK_DEV_ATARAID_SII=m
 #
 CONFIG_SCSI=m
 CONFIG_BLK_DEV_SD=m
-CONFIG_SD_EXTRA_DEVS=40
+CONFIG_SD_EXTRA_DEVS=256
 CONFIG_CHR_DEV_ST=m
 CONFIG_CHR_DEV_OSST=m
 CONFIG_BLK_DEV_SR=m
@@ -518,17 +555,21 @@ CONFIG_SCSI_AHA1542=m
 CONFIG_SCSI_AHA1740=m
 CONFIG_SCSI_AACRAID=m
 CONFIG_SCSI_AIC7XXX=m
-CONFIG_AIC7XXX_CMDS_PER_DEVICE=253
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
 CONFIG_AIC7XXX_RESET_DELAY_MS=15000
 # CONFIG_AIC7XXX_PROBE_EISA_VL is not set
 # CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set
 CONFIG_SCSI_AIC79XX=m
-CONFIG_AIC79XX_CMDS_PER_DEVICE=253
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
 CONFIG_AIC79XX_RESET_DELAY_MS=15000
 # CONFIG_AIC79XX_BUILD_FIRMWARE is not set
-CONFIG_AIC79XX_ENABLE_RD_STRM=y
+# CONFIG_AIC79XX_ENABLE_RD_STRM is not set
 # CONFIG_AIC79XX_DEBUG_ENABLE is not set
 CONFIG_AIC79XX_DEBUG_MASK=0
+# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
 CONFIG_SCSI_AIC7XXX_OLD=m
 CONFIG_AIC7XXX_OLD_TCQ_ON_BY_DEFAULT=y
 CONFIG_AIC7XXX_OLD_CMDS_PER_DEVICE=32
@@ -538,6 +579,13 @@ CONFIG_SCSI_ADVANSYS=m
 CONFIG_SCSI_IN2000=m
 CONFIG_SCSI_AM53C974=m
 CONFIG_SCSI_MEGARAID=m
+CONFIG_SCSI_MEGARAID2=m
+CONFIG_SCSI_SATA=y
+# CONFIG_SCSI_SATA_SVW is not set
+CONFIG_SCSI_ATA_PIIX=m
+# CONFIG_SCSI_SATA_PROMISE is not set
+# CONFIG_SCSI_SATA_SIL is not set
+# CONFIG_SCSI_SATA_VIA is not set
 CONFIG_SCSI_BUSLOGIC=m
 # CONFIG_SCSI_OMIT_FLASHPOINT is not set
 CONFIG_SCSI_CPQFCTS=m
@@ -590,7 +638,6 @@ CONFIG_SCSI_QLOGIC_ISP=m
 CONFIG_SCSI_QLOGIC_FC=m
 # CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set
 CONFIG_SCSI_QLOGIC_1280=m
-CONFIG_SCSI_NEWISP=m
 CONFIG_SCSI_SEAGATE=m
 CONFIG_SCSI_SIM710=m
 CONFIG_SCSI_SYM53C416=m
@@ -716,6 +763,7 @@ CONFIG_AMD8111_ETH=m
 CONFIG_ADAPTEC_STARFIRE=m
 CONFIG_AC3200=m
 CONFIG_APRICOT=m
+CONFIG_B44=m
 CONFIG_CS89x0=m
 CONFIG_TULIP=m
 # CONFIG_TULIP_MWI is not set
@@ -759,6 +807,7 @@ CONFIG_ACENIC=m
 # CONFIG_ACENIC_OMIT_TIGON_I is not set
 CONFIG_DL2K=m
 CONFIG_E1000=m
+CONFIG_E1000_NAPI=y
 # CONFIG_MYRI_SBUS is not set
 CONFIG_NS83820=m
 CONFIG_HAMACHI=m
@@ -777,9 +826,9 @@ CONFIG_PPP_MULTILINK=y
 CONFIG_PPP_FILTER=y
 CONFIG_PPP_ASYNC=m
 CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
+# CONFIG_PPP_DEFLATE is not set
 # CONFIG_PPP_BSDCOMP is not set
-CONFIG_PPPOE=m
+# CONFIG_PPPOE is not set
 CONFIG_PPPOATM=m
 CONFIG_SLIP=m
 CONFIG_SLIP_COMPRESSED=y
@@ -819,13 +868,13 @@ CONFIG_IBMLS=m
 CONFIG_3C359=m
 CONFIG_TMS380TR=m
 CONFIG_TMSPCI=m
-CONFIG_TMSISA=m
+# CONFIG_TMSISA is not set
 CONFIG_ABYSS=m
 # CONFIG_MADGEMC is not set
 CONFIG_SMCTR=m
 CONFIG_NET_FC=y
 CONFIG_IPHASE5526=m
-CONFIG_RCPCI=m
+# CONFIG_RCPCI is not set
 CONFIG_SHAPER=m
 
 #
@@ -1111,7 +1160,8 @@ CONFIG_SERIAL_SHARE_IRQ=y
 CONFIG_SERIAL_MULTIPORT=y
 # CONFIG_HUB6 is not set
 CONFIG_SERIAL_NONSTANDARD=y
-CONFIG_COMPUTONE=m
+CONFIG_ATI_CD1865=m
+# CONFIG_COMPUTONE is not set
 CONFIG_ROCKETPORT=m
 CONFIG_CYCLADES=m
 # CONFIG_CYZ_INTR is not set
@@ -1120,6 +1170,7 @@ CONFIG_ESPSERIAL=m
 CONFIG_MOXA_INTELLIO=m
 CONFIG_MOXA_SMARTIO=m
 CONFIG_ISI=m
+# CONFIG_ICOM is not set
 CONFIG_SYNCLINK=m
 # CONFIG_SYNCLINKMP is not set
 CONFIG_N_HDLC=m
@@ -1157,7 +1208,7 @@ CONFIG_I2C_HYDRA=m
 CONFIG_I2C_AMD756=m
 # CONFIG_I2C_TSUNAMI is not set
 CONFIG_I2C_I801=m
-# CONFIG_I2C_I810 is not set
+CONFIG_I2C_I810=m
 CONFIG_I2C_PIIX4=m
 CONFIG_I2C_SIS5595=m
 CONFIG_I2C_VIA=m
@@ -1260,6 +1311,7 @@ CONFIG_WATCHDOG=y
 # CONFIG_WATCHDOG_NOWAYOUT is not set
 CONFIG_ACQUIRE_WDT=m
 CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
 CONFIG_ALIM7101_WDT=m
 CONFIG_SC520_WDT=m
 CONFIG_PCWATCHDOG=m
@@ -1278,16 +1330,18 @@ CONFIG_WDTPCI=m
 # CONFIG_WDT_501 is not set
 CONFIG_MACHZ_WDT=m
 CONFIG_AMD7XX_TCO=m
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_HANGCHECK_DELAY=m
 # CONFIG_SCx200_GPIO is not set
 CONFIG_AMD_RNG=m
 CONFIG_INTEL_RNG=m
 CONFIG_AMD_PM768=m
-CONFIG_NVRAM=m
+# CONFIG_NVRAM is not set
 CONFIG_RTC=y
 CONFIG_DTLK=m
 CONFIG_R3964=m
 # CONFIG_APPLICOM is not set
-CONFIG_SONYPI=m
+# CONFIG_SONYPI is not set
 
 #
 # Ftape, the floppy tape device driver
@@ -1318,17 +1372,19 @@ CONFIG_AGP_AMD_8151=y
 CONFIG_AGP_SIS=y
 CONFIG_AGP_ALI=y
 CONFIG_AGP_SWORKS=y
+CONFIG_AGP_NVIDIA=y
 CONFIG_DRM=y
 # CONFIG_DRM_OLD is not set
 CONFIG_DRM_NEW=y
 CONFIG_DRM_TDFX=m
+CONFIG_DRM_GAMMA=m
 CONFIG_DRM_R128=m
 CONFIG_DRM_RADEON=m
 CONFIG_DRM_I810=m
 # CONFIG_DRM_I810_XFREE_41 is not set
 CONFIG_DRM_I830=m
 CONFIG_DRM_MGA=m
-# CONFIG_DRM_SIS is not set
+CONFIG_DRM_SIS=m
 
 #
 # PCMCIA character devices
@@ -1336,7 +1392,6 @@ CONFIG_DRM_MGA=m
 CONFIG_PCMCIA_SERIAL_CS=m
 CONFIG_SYNCLINK_CS=m
 CONFIG_MWAVE=m
-CONFIG_BATTERY_GERICOM=m
 
 #
 # Multimedia devices
@@ -1364,7 +1419,7 @@ CONFIG_VIDEO_ZORAN_BUZ=m
 CONFIG_VIDEO_ZORAN_DC10=m
 CONFIG_VIDEO_ZORAN_LML33=m
 CONFIG_VIDEO_ZR36120=m
-CONFIG_VIDEO_MEYE=m
+# CONFIG_VIDEO_MEYE is not set
 
 #
 # Radio Adapters
@@ -1388,12 +1443,6 @@ CONFIG_RADIO_TYPHOON_PROC_FS=y
 CONFIG_RADIO_ZOLTRIX=m
 
 #
-# Crypto Hardware support
-#
-CONFIG_CRYPTO=m
-CONFIG_CRYPTO_BROADCOM=m
-
-#
 # File systems
 #
 CONFIG_QUOTA=y
@@ -1406,18 +1455,20 @@ CONFIG_REISERFS_FS=m
 # CONFIG_REISERFS_CHECK is not set
 CONFIG_REISERFS_PROC_INFO=y
 # CONFIG_ADFS_FS is not set
-CONFIG_AFS_FS=m
 # CONFIG_ADFS_FS_RW is not set
 # CONFIG_AFFS_FS is not set
 CONFIG_HFS_FS=m
 CONFIG_BEFS_FS=m
 # CONFIG_BEFS_DEBUG is not set
-CONFIG_BFS_FS=m
-CONFIG_EXT3_FS=y
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BFS_FS is not set
+CONFIG_EXT3_FS=m
 CONFIG_EXT3_FS_XATTR=y
 CONFIG_EXT3_FS_XATTR_SHARING=y
 CONFIG_EXT3_FS_XATTR_USER=y
-CONFIG_JBD=y
+CONFIG_EXT3_FS_XATTR_TRUSTED=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_JBD=m
 # CONFIG_JBD_DEBUG is not set
 CONFIG_FAT_FS=m
 CONFIG_MSDOS_FS=m
@@ -1426,6 +1477,8 @@ CONFIG_VFAT_FS=m
 # CONFIG_EFS_FS is not set
 # CONFIG_JFFS_FS is not set
 # CONFIG_JFFS2_FS is not set
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
 CONFIG_CRAMFS=m
 CONFIG_TMPFS=y
 CONFIG_RAMFS=y
@@ -1433,7 +1486,8 @@ CONFIG_ISO9660_FS=y
 CONFIG_JOLIET=y
 CONFIG_ZISOFS=y
 CONFIG_JFS_FS=m
-# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_DEBUG=y
 # CONFIG_JFS_STATISTICS is not set
 CONFIG_MINIX_FS=m
 CONFIG_VXFS_FS=m
@@ -1450,8 +1504,8 @@ CONFIG_DEVPTS_FS=y
 CONFIG_ROMFS_FS=m
 CONFIG_EXT2_FS=y
 CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_XATTR_SHARING=y
-CONFIG_EXT2_FS_XATTR_USER=y
+# CONFIG_EXT2_FS_XATTR_SHARING is not set
+# CONFIG_EXT2_FS_XATTR_USER is not set
 CONFIG_SYSV_FS=m
 CONFIG_UDF_FS=m
 CONFIG_UDF_RW=y
@@ -1462,13 +1516,16 @@ CONFIG_UFS_FS=m
 # Network File Systems
 #
 CONFIG_CODA_FS=m
-CONFIG_INTERMEZZO_FS=m
+# CONFIG_INTERMEZZO_FS is not set
 CONFIG_NFS_FS=m
 CONFIG_NFS_V3=y
+CONFIG_NFS_DIRECTIO=y
+CONFIG_NFS_ACL=y
 # CONFIG_ROOT_NFS is not set
 CONFIG_NFSD=m
 CONFIG_NFSD_V3=y
-# CONFIG_NFSD_TCP is not set
+CONFIG_NFSD_ACL=y
+CONFIG_NFSD_TCP=y
 CONFIG_SUNRPC=m
 CONFIG_LOCKD=m
 CONFIG_LOCKD_V4=y
@@ -1485,6 +1542,8 @@ CONFIG_NCPFS_NLS=y
 CONFIG_NCPFS_EXTRAS=y
 CONFIG_ZISOFS_FS=y
 CONFIG_FS_MBCACHE=y
+CONFIG_FS_POSIX_ACL=y
+CONFIG_FS_MBCACHE=y
 
 #
 # Partition Types
@@ -1577,8 +1636,7 @@ CONFIG_VIDEO_SELECT=y
 CONFIG_FB_MATROX=m
 CONFIG_FB_MATROX_MILLENIUM=y
 CONFIG_FB_MATROX_MYSTIQUE=y
-# CONFIG_FB_MATROX_G450 is not set
-CONFIG_FB_MATROX_G100A=y
+CONFIG_FB_MATROX_G450=y
 CONFIG_FB_MATROX_G100=y
 CONFIG_FB_MATROX_I2C=m
 CONFIG_FB_MATROX_MAVEN=m
@@ -1590,6 +1648,7 @@ CONFIG_FB_ATY_CT=y
 CONFIG_FB_ATY_CT_VAIO_LCD=y
 CONFIG_FB_RADEON=m
 CONFIG_FB_ATY128=m
+CONFIG_FB_INTEL=m
 CONFIG_FB_SIS=m
 CONFIG_FB_SIS_300=y
 CONFIG_FB_SIS_315=y
@@ -1751,6 +1810,7 @@ CONFIG_USB_PEGASUS=m
 CONFIG_USB_RTL8150=m
 CONFIG_USB_KAWETH=m
 CONFIG_USB_CATC=m
+# CONFIG_USB_AX8817X is not set
 CONFIG_USB_CDCETHER=m
 CONFIG_USB_USBNET=m
 CONFIG_USB_USS720=m
@@ -1774,7 +1834,7 @@ CONFIG_USB_SERIAL_EDGEPORT_TI=m
 CONFIG_USB_SERIAL_KEYSPAN_PDA=m
 CONFIG_USB_SERIAL_KEYSPAN=m
 # CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
 CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
 CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
 # CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
@@ -1804,10 +1864,13 @@ CONFIG_USB_LCD=m
 CONFIG_NET_BROADCOM=m
 CONFIG_CIPE=m
 CONFIG_CRYPTO_AEP=m
+CONFIG_CRYPTO_BROADCOM=m
 CONFIG_MEGARAC=m
+CONFIG_FC_QLA2100=m
 CONFIG_FC_QLA2200=m
 CONFIG_FC_QLA2300=m
 CONFIG_SCSI_ISCSI=m
+# CONFIG_SCSI_IPR is not set
 
 #
 # Bluetooth support
@@ -1847,17 +1910,41 @@ CONFIG_OPROFILE=m
 # Kernel hacking
 #
 CONFIG_DEBUG_KERNEL=y
-# CONFIG_DEBUG_STACKOVERFLOW is not set
-# CONFIG_DEBUG_HIGHMEM is not set
+CONFIG_DEBUG_STACKOVERFLOW=y
+CONFIG_FRAME_POINTER=y
+CONFIG_DEBUG_HIGHMEM=y
 # CONFIG_DEBUG_SLAB is not set
 # CONFIG_DEBUG_IOVIRT is not set
 CONFIG_MAGIC_SYSRQ=y
+CONFIG_PANIC_MORSE=y
 # CONFIG_DEBUG_SPINLOCK is not set
-CONFIG_FRAME_POINTER=y
-# CONFIG_MCL_COREDUMP is not set
+# CONFIG_SMALL is not set
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_TEST=m
 
 #
 # Library routines
 #
+CONFIG_CRC32=m
 CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=m
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_QSORT=y
diff --git a/lustre/kernel_patches/kernel_configs/kernel-2.4.21-rhel-2.4-i686.config b/lustre/kernel_patches/kernel_configs/kernel-2.4.21-rhel-2.4-i686.config
new file mode 100644 (file)
index 0000000..bbf82e5
--- /dev/null
@@ -0,0 +1,1950 @@
+#
+# Automatically generated by make menuconfig: don't edit
+#
+CONFIG_X86=y
+# CONFIG_SBUS is not set
+CONFIG_UID16=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODVERSIONS=y
+CONFIG_KMOD=y
+
+#
+# Processor type and features
+#
+# CONFIG_M386 is not set
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+CONFIG_M686=y
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MELAN is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP2 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_INVLPG=y
+CONFIG_X86_CMPXCHG=y
+CONFIG_X86_XADD=y
+CONFIG_X86_BSWAP=y
+CONFIG_X86_POPAD_OK=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_X86_L1_CACHE_SHIFT=7
+CONFIG_X86_HAS_TSC=y
+CONFIG_X86_GOOD_APIC=y
+CONFIG_X86_PGE=y
+CONFIG_X86_USE_PPRO_CHECKSUM=y
+CONFIG_X86_PPRO_FENCE=y
+CONFIG_X86_F00F_WORKS_OK=y
+CONFIG_X86_MCE=y
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+CONFIG_TOSHIBA=m
+CONFIG_I8K=m
+CONFIG_MICROCODE=m
+CONFIG_X86_MSR=m
+CONFIG_X86_CPUID=m
+# CONFIG_E820_PROC is not set
+CONFIG_EDD=m
+# CONFIG_NOHIGHMEM is not set
+# CONFIG_HIGHMEM4G is not set
+CONFIG_HIGHMEM64G=y
+CONFIG_HIGHMEM=y
+CONFIG_HIGHPTE=y
+CONFIG_X86_PAE=y
+CONFIG_HIGHIO=y
+# CONFIG_X86_4G is not set
+CONFIG_3GB=y
+# CONFIG_2GB is not set
+# CONFIG_1GB is not set
+# CONFIG_MATH_EMULATION is not set
+CONFIG_MTRR=y
+CONFIG_SMP=y
+# CONFIG_NR_SIBLINGS_0 is not set
+CONFIG_NR_SIBLINGS_2=y
+CONFIG_SHARE_RUNQUEUE=y
+CONFIG_MAX_NR_SIBLINGS=2
+CONFIG_X86_CLUSTERED_APIC=y
+CONFIG_X86_NUMA=y
+# CONFIG_X86_NUMAQ is not set
+CONFIG_X86_SUMMIT=y
+CONFIG_X86_CLUSTERED_APIC=y
+# CONFIG_NOBIGSTACK is not set
+CONFIG_STACK_SIZE_16KB=y
+# CONFIG_STACK_SIZE_32KB is not set
+# CONFIG_STACK_SIZE_64KB is not set
+CONFIG_STACK_SIZE_SHIFT=2
+CONFIG_HAVE_DEC_LOCK=y
+
+#
+# General setup
+#
+CONFIG_NET=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_PCI=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GODIRECT is not set
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_DIRECT=y
+CONFIG_ISA=y
+# CONFIG_SCx200 is not set
+CONFIG_PCI_NAMES=y
+CONFIG_EISA=y
+# CONFIG_MCA is not set
+CONFIG_HOTPLUG=y
+
+#
+# PCMCIA/CardBus support
+#
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+CONFIG_TCIC=y
+CONFIG_I82092=y
+CONFIG_I82365=y
+
+#
+# PCI Hotplug Support
+#
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_COMPAQ=m
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+CONFIG_HOTPLUG_PCI_IBM=m
+# CONFIG_HOTPLUG_PCI_ACPI is not set
+CONFIG_SYSVIPC=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+CONFIG_BINFMT_AOUT=m
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_MISC=m
+# CONFIG_IKCONFIG is not set
+CONFIG_AUDIT=m
+CONFIG_PM=y
+CONFIG_APM=y
+# CONFIG_APM_IGNORE_USER_SUSPEND is not set
+# CONFIG_APM_DO_ENABLE is not set
+CONFIG_APM_CPU_IDLE=y
+# CONFIG_APM_DISPLAY_BLANK is not set
+CONFIG_APM_RTC_IS_GMT=y
+# CONFIG_APM_ALLOW_INTS is not set
+# CONFIG_APM_REAL_MODE_POWER_OFF is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_PC_CML1=m
+CONFIG_PARPORT_SERIAL=m
+# CONFIG_PARPORT_PC_FIFO is not set
+# CONFIG_PARPORT_PC_SUPERIO is not set
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_AMIGA is not set
+# CONFIG_PARPORT_MFC3 is not set
+# CONFIG_PARPORT_ATARI is not set
+# CONFIG_PARPORT_GSC is not set
+# CONFIG_PARPORT_SUNBPP is not set
+# CONFIG_PARPORT_OTHER is not set
+CONFIG_PARPORT_1284=y
+
+#
+# Plug and Play configuration
+#
+CONFIG_PNP=y
+CONFIG_ISAPNP=y
+# CONFIG_PNPBIOS is not set
+
+#
+# Block devices
+#
+CONFIG_BLK_DEV_FD=m
+# CONFIG_BLK_DEV_XD is not set
+CONFIG_PARIDE=m
+CONFIG_PARIDE_PARPORT=m
+CONFIG_PARIDE_PD=m
+CONFIG_PARIDE_PCD=m
+CONFIG_PARIDE_PF=m
+CONFIG_PARIDE_PT=m
+CONFIG_PARIDE_PG=m
+CONFIG_PARIDE_ATEN=m
+CONFIG_PARIDE_BPCK=m
+CONFIG_PARIDE_BPCK6=m
+CONFIG_PARIDE_COMM=m
+CONFIG_PARIDE_DSTR=m
+CONFIG_PARIDE_FIT2=m
+CONFIG_PARIDE_FIT3=m
+CONFIG_PARIDE_EPAT=m
+CONFIG_PARIDE_EPATC8=y
+CONFIG_PARIDE_EPIA=m
+CONFIG_PARIDE_FRIQ=m
+CONFIG_PARIDE_FRPW=m
+CONFIG_PARIDE_KBIC=m
+CONFIG_PARIDE_KTTI=m
+CONFIG_PARIDE_ON20=m
+CONFIG_PARIDE_ON26=m
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+CONFIG_CISS_SCSI_TAPE=y
+# CONFIG_CISS_MONITOR_THREAD is not set
+CONFIG_BLK_DEV_DAC960=m
+CONFIG_BLK_DEV_UMEM=m
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_BLK_STATS=y
+
+#
+# Multi-device support (RAID and LVM)
+#
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=y
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID5=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_BLK_DEV_LVM=m
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_NETLINK_DEV=y
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_FILTER=y
+CONFIG_UNIX=y
+CONFIG_NET_KEY=m
+CONFIG_INET=y
+CONFIG_TUX=m
+CONFIG_TUX_EXTCGI=y
+# CONFIG_TUX_EXTENDED_LOG is not set
+# CONFIG_TUX_DEBUG is not set
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_FWMARK=y
+CONFIG_IP_ROUTE_NAT=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_TOS=y
+CONFIG_IP_ROUTE_VERBOSE=y
+# CONFIG_IP_PNP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_ARPD is not set
+# CONFIG_INET_ECN is not set
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+
+#
+#   IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_AMANDA=m
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_IRC=m
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_LIMIT=m
+CONFIG_IP_NF_MATCH_MAC=m
+CONFIG_IP_NF_MATCH_PKTTYPE=m
+CONFIG_IP_NF_MATCH_MARK=m
+CONFIG_IP_NF_MATCH_MULTIPORT=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_DSCP=m
+CONFIG_IP_NF_MATCH_AH_ESP=m
+CONFIG_IP_NF_MATCH_LENGTH=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_TCPMSS=m
+CONFIG_IP_NF_MATCH_HELPER=m
+CONFIG_IP_NF_MATCH_STATE=m
+CONFIG_IP_NF_MATCH_CONNTRACK=m
+CONFIG_IP_NF_MATCH_UNCLEAN=m
+CONFIG_IP_NF_MATCH_OWNER=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_MIRROR=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_NAT_AMANDA=m
+CONFIG_IP_NF_NAT_LOCAL=y
+CONFIG_IP_NF_NAT_SNMP_BASIC=m
+CONFIG_IP_NF_NAT_IRC=m
+CONFIG_IP_NF_NAT_FTP=m
+CONFIG_IP_NF_NAT_TFTP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_DSCP=m
+CONFIG_IP_NF_TARGET_MARK=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+CONFIG_IP_NF_COMPAT_IPCHAINS=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_COMPAT_IPFWADM=m
+CONFIG_IP_NF_NAT_NEEDED=y
+
+#
+#   IP: Virtual Server Configuration
+#
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=16
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_FTP=m
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+
+#
+#   IPv6: Netfilter Configuration
+#
+# CONFIG_IP6_NF_QUEUE is not set
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_LIMIT=m
+CONFIG_IP6_NF_MATCH_MAC=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_MULTIPORT=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_MARK=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AHESP=m
+CONFIG_IP6_NF_MATCH_LENGTH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_MARK=m
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_TUNNEL=m
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=y
+# CONFIG_KHTTPD is not set
+CONFIG_ATM=y
+CONFIG_ATM_CLIP=y
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+CONFIG_ATM_BR2684_IPFILTER=y
+CONFIG_VLAN_8021Q=m
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+CONFIG_ATALK=m
+
+#
+# Appletalk devices
+#
+CONFIG_DEV_APPLETALK=y
+CONFIG_LTPC=m
+CONFIG_COPS=m
+CONFIG_COPS_DAYNA=y
+CONFIG_COPS_TANGENT=y
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP_DECAP=y
+CONFIG_DECNET=m
+CONFIG_DECNET_SIOCGIFCONF=y
+CONFIG_DECNET_ROUTER=y
+CONFIG_DECNET_ROUTE_FWMARK=y
+CONFIG_BRIDGE=m
+# CONFIG_X25 is not set
+CONFIG_EDP2=m
+# CONFIG_LAPB is not set
+# CONFIG_LLC is not set
+CONFIG_NET_DIVERT=y
+# CONFIG_ECONET is not set
+CONFIG_WAN_ROUTER=m
+# CONFIG_NET_FASTROUTE is not set
+# CONFIG_NET_HW_FLOWCONTROL is not set
+
+#
+# QoS and/or fair queueing
+#
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_CSZ=m
+# CONFIG_NET_SCH_ATM is not set
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_QOS=y
+CONFIG_NET_ESTIMATOR=y
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_POLICE=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+
+#
+# Telephony Support
+#
+CONFIG_PHONE=m
+CONFIG_PHONE_IXJ=m
+CONFIG_PHONE_IXJ_PCMCIA=m
+
+#
+# ATA/IDE/MFM/RLL support
+#
+CONFIG_IDE=y
+
+#
+# IDE, ATA and ATAPI Block devices
+#
+CONFIG_BLK_DEV_IDE=y
+# CONFIG_BLK_DEV_HD_IDE is not set
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_IDEDISK=y
+CONFIG_IDEDISK_MULTI_MODE=y
+# CONFIG_IDEDISK_STROKE is not set
+CONFIG_BLK_DEV_IDECS=m
+CONFIG_BLK_DEV_IDECD=m
+CONFIG_BLK_DEV_IDETAPE=m
+CONFIG_BLK_DEV_IDEFLOPPY=y
+CONFIG_BLK_DEV_IDESCSI=m
+# CONFIG_IDE_TASK_IOCTL is not set
+CONFIG_BLK_DEV_CMD640=y
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+CONFIG_BLK_DEV_ISAPNP=y
+CONFIG_BLK_DEV_IDEPCI=y
+CONFIG_BLK_DEV_GENERIC=y
+CONFIG_IDEPCI_SHARE_IRQ=y
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+# CONFIG_IDEDMA_ONLYDISK is not set
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_PCI_WIP is not set
+CONFIG_BLK_DEV_ADMA100=y
+CONFIG_BLK_DEV_AEC62XX=y
+CONFIG_BLK_DEV_ALI15X3=y
+# CONFIG_WDC_ALI15X3 is not set
+CONFIG_BLK_DEV_AMD74XX=y
+# CONFIG_AMD74XX_OVERRIDE is not set
+CONFIG_BLK_DEV_CMD64X=y
+CONFIG_BLK_DEV_TRIFLEX=y
+CONFIG_BLK_DEV_CY82C693=y
+CONFIG_BLK_DEV_CS5530=y
+CONFIG_BLK_DEV_HPT34X=y
+# CONFIG_HPT34X_AUTODMA is not set
+CONFIG_BLK_DEV_HPT366=y
+CONFIG_BLK_DEV_PIIX=y
+# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_OPTI621 is not set
+CONFIG_BLK_DEV_PDC202XX_OLD=y
+# CONFIG_PDC202XX_BURST is not set
+CONFIG_BLK_DEV_PDC202XX_NEW=y
+CONFIG_PDC202XX_FORCE=y
+CONFIG_BLK_DEV_RZ1000=y
+# CONFIG_BLK_DEV_SC1200 is not set
+CONFIG_BLK_DEV_SVWKS=y
+CONFIG_BLK_DEV_SIIMAGE=y
+CONFIG_BLK_DEV_SIS5513=y
+CONFIG_BLK_DEV_SLC90E66=y
+# CONFIG_BLK_DEV_TRM290 is not set
+CONFIG_BLK_DEV_VIA82CXXX=y
+# CONFIG_IDE_CHIPSETS is not set
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_IDEDMA_IVB is not set
+# CONFIG_DMA_NONPCI is not set
+CONFIG_BLK_DEV_PDC202XX=y
+CONFIG_BLK_DEV_IDE_MODES=y
+CONFIG_BLK_DEV_ATARAID=m
+CONFIG_BLK_DEV_ATARAID_PDC=m
+CONFIG_BLK_DEV_ATARAID_HPT=m
+CONFIG_BLK_DEV_ATARAID_SII=m
+
+#
+# SCSI support
+#
+CONFIG_SCSI=m
+CONFIG_BLK_DEV_SD=m
+CONFIG_SD_EXTRA_DEVS=256
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_SR_EXTRA_DEVS=4
+CONFIG_CHR_DEV_SG=m
+# CONFIG_SCSI_DEBUG_QUEUES is not set
+# CONFIG_SCSI_MULTI_LUN is not set
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+
+#
+# SCSI low-level drivers
+#
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_7000FASST=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AHA152X=m
+CONFIG_SCSI_AHA1542=m
+CONFIG_SCSI_AHA1740=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+# CONFIG_AIC7XXX_PROBE_EISA_VL is not set
+# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_BUILD_FIRMWARE is not set
+# CONFIG_AIC79XX_ENABLE_RD_STRM is not set
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
+CONFIG_SCSI_AIC7XXX_OLD=m
+CONFIG_AIC7XXX_OLD_TCQ_ON_BY_DEFAULT=y
+CONFIG_AIC7XXX_OLD_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_OLD_PROC_STATS=y
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_IN2000=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_MEGARAID=m
+CONFIG_SCSI_MEGARAID2=m
+CONFIG_SCSI_SATA=y
+# CONFIG_SCSI_SATA_SVW is not set
+CONFIG_SCSI_ATA_PIIX=m
+# CONFIG_SCSI_SATA_PROMISE is not set
+# CONFIG_SCSI_SATA_SIL is not set
+# CONFIG_SCSI_SATA_VIA is not set
+CONFIG_SCSI_BUSLOGIC=m
+# CONFIG_SCSI_OMIT_FLASHPOINT is not set
+CONFIG_SCSI_CPQFCTS=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_DTC3280=m
+CONFIG_SCSI_EATA=m
+CONFIG_SCSI_EATA_TAGGED_QUEUE=y
+# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_EATA_DMA=m
+CONFIG_SCSI_EATA_PIO=m
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_GENERIC_NCR5380=m
+# CONFIG_SCSI_GENERIC_NCR53C400 is not set
+CONFIG_SCSI_G_NCR5380_PORT=y
+# CONFIG_SCSI_G_NCR5380_MEM is not set
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_NCR53C406A=m
+CONFIG_SCSI_NCR53C7xx=m
+# CONFIG_SCSI_NCR53C7xx_sync is not set
+CONFIG_SCSI_NCR53C7xx_FAST=y
+CONFIG_SCSI_NCR53C7xx_DISCONNECT=y
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
+CONFIG_SCSI_NCR53C8XX=m
+CONFIG_SCSI_SYM53C8XX=m
+CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8
+CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
+CONFIG_SCSI_NCR53C8XX_SYNC=40
+# CONFIG_SCSI_NCR53C8XX_PROFILE is not set
+# CONFIG_SCSI_NCR53C8XX_IOMAPPED is not set
+# CONFIG_SCSI_NCR53C8XX_PQS_PDS is not set
+# CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT is not set
+CONFIG_SCSI_PAS16=m
+CONFIG_SCSI_PCI2000=m
+CONFIG_SCSI_PCI2220I=m
+CONFIG_SCSI_PSI240I=m
+CONFIG_SCSI_QLOGIC_FAS=m
+CONFIG_SCSI_QLOGIC_ISP=m
+CONFIG_SCSI_QLOGIC_FC=m
+# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_SEAGATE=m
+CONFIG_SCSI_SIM710=m
+CONFIG_SCSI_SYM53C416=m
+CONFIG_SCSI_DC390T=m
+# CONFIG_SCSI_DC390T_NOGENSUPP is not set
+CONFIG_SCSI_T128=m
+CONFIG_SCSI_U14_34F=m
+# CONFIG_SCSI_U14_34F_LINKED_COMMANDS is not set
+CONFIG_SCSI_U14_34F_MAX_TAGS=8
+CONFIG_SCSI_ULTRASTOR=m
+CONFIG_SCSI_NSP32=m
+CONFIG_SCSI_DEBUG=m
+
+#
+# PCMCIA SCSI adapter support
+#
+CONFIG_SCSI_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_QLOGIC=m
+
+#
+# Fusion MPT device support
+#
+CONFIG_FUSION=m
+# CONFIG_FUSION_BOOT is not set
+CONFIG_FUSION_MAX_SGE=40
+# CONFIG_FUSION_ISENSE is not set
+CONFIG_FUSION_CTL=m
+CONFIG_FUSION_LAN=m
+CONFIG_NET_FC=y
+
+#
+# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+#
+CONFIG_IEEE1394=m
+# CONFIG_IEEE1394_PCILYNX is not set
+CONFIG_IEEE1394_OHCI1394=m
+CONFIG_IEEE1394_VIDEO1394=m
+CONFIG_IEEE1394_SBP2=m
+CONFIG_IEEE1394_SBP2_PHYS_DMA=y
+CONFIG_IEEE1394_ETH1394=m
+CONFIG_IEEE1394_DV1394=m
+CONFIG_IEEE1394_RAWIO=m
+CONFIG_IEEE1394_CMP=m
+CONFIG_IEEE1394_AMDTP=m
+# CONFIG_IEEE1394_VERBOSEDEBUG is not set
+
+#
+# I2O device support
+#
+CONFIG_I2O=m
+CONFIG_I2O_PCI=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_LAN=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+CONFIG_ETHERTAP=m
+CONFIG_NET_SB1000=m
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+# CONFIG_SUNLANCE is not set
+CONFIG_HAPPYMEAL=m
+# CONFIG_SUNBMAC is not set
+# CONFIG_SUNQE is not set
+CONFIG_SUNGEM=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL1=m
+CONFIG_EL2=m
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_EL3=m
+CONFIG_3C515=m
+# CONFIG_ELMC is not set
+# CONFIG_ELMC_II is not set
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_LANCE=m
+CONFIG_NET_VENDOR_SMC=y
+CONFIG_WD80x3=m
+# CONFIG_ULTRAMCA is not set
+CONFIG_ULTRA=m
+CONFIG_ULTRA32=m
+CONFIG_SMC9194=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NI5010=m
+CONFIG_NI52=m
+CONFIG_NI65=m
+CONFIG_AT1700=m
+CONFIG_DEPCA=m
+CONFIG_HP100=m
+CONFIG_NET_ISA=y
+CONFIG_E2100=m
+# CONFIG_EWRK3 is not set
+CONFIG_EEXPRESS=m
+CONFIG_EEXPRESS_PRO=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_LP486E=m
+CONFIG_ETH16I=m
+CONFIG_NE2000=m
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_AC3200=m
+CONFIG_APRICOT=m
+CONFIG_B44=m
+CONFIG_CS89x0=m
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+CONFIG_TULIP_MMIO=y
+CONFIG_DE4X5=m
+CONFIG_DGRS=m
+CONFIG_DM9102=m
+CONFIG_EEPRO100=m
+# CONFIG_EEPRO100_PIO is not set
+CONFIG_E100=m
+CONFIG_LNE390=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_NE3210=m
+CONFIG_ES3210=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_TC35815=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_WINBOND_840=m
+CONFIG_NET_POCKET=y
+CONFIG_ATP=m
+CONFIG_DE600=m
+CONFIG_DE620=m
+
+#
+# Ethernet (1000 Mbit)
+#
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_DL2K=m
+CONFIG_E1000=m
+CONFIG_E1000_NAPI=y
+# CONFIG_MYRI_SBUS is not set
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+CONFIG_SK98LIN=m
+CONFIG_TIGON3=m
+CONFIG_FDDI=y
+CONFIG_DEFXX=m
+CONFIG_SKFP=m
+CONFIG_NETCONSOLE=m
+# CONFIG_HIPPI is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+# CONFIG_PPP_DEFLATE is not set
+# CONFIG_PPP_BSDCOMP is not set
+# CONFIG_PPPOE is not set
+CONFIG_PPPOATM=m
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+CONFIG_STRIP=m
+CONFIG_WAVELAN=m
+CONFIG_ARLAN=m
+CONFIG_AIRONET4500=m
+CONFIG_AIRONET4500_NONCS=m
+CONFIG_AIRONET4500_PNP=y
+CONFIG_AIRONET4500_PCI=y
+CONFIG_AIRONET4500_ISA=y
+CONFIG_AIRONET4500_I365=y
+CONFIG_AIRONET4500_PROC=m
+CONFIG_AIRO=m
+CONFIG_HERMES=m
+CONFIG_PLX_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_AIRO_CS=m
+CONFIG_NET_WIRELESS=y
+CONFIG_PCMCIA_HERMES_OLD=m
+
+#
+# Token Ring devices
+#
+CONFIG_TR=y
+CONFIG_IBMTR=m
+CONFIG_IBMOL=m
+CONFIG_IBMLS=m
+CONFIG_3C359=m
+CONFIG_TMS380TR=m
+CONFIG_TMSPCI=m
+# CONFIG_TMSISA is not set
+CONFIG_ABYSS=m
+# CONFIG_MADGEMC is not set
+CONFIG_SMCTR=m
+CONFIG_NET_FC=y
+CONFIG_IPHASE5526=m
+# CONFIG_RCPCI is not set
+CONFIG_SHAPER=m
+
+#
+# Wan interfaces
+#
+CONFIG_WAN=y
+CONFIG_HOSTESS_SV11=m
+CONFIG_COSA=m
+# CONFIG_COMX is not set
+# CONFIG_DSCC4 is not set
+# CONFIG_LANMEDIA is not set
+CONFIG_ATI_XX20=m
+CONFIG_SEALEVEL_4021=m
+# CONFIG_SYNCLINK_SYNCPPP is not set
+# CONFIG_HDLC is not set
+CONFIG_DLCI=m
+CONFIG_DLCI_COUNT=24
+CONFIG_DLCI_MAX=8
+CONFIG_SDLA=m
+CONFIG_WAN_ROUTER_DRIVERS=y
+CONFIG_VENDOR_SANGOMA=m
+CONFIG_WANPIPE_CHDLC=y
+CONFIG_WANPIPE_FR=y
+CONFIG_WANPIPE_X25=y
+CONFIG_WANPIPE_PPP=y
+CONFIG_WANPIPE_MULTPPP=y
+CONFIG_CYCLADES_SYNC=m
+CONFIG_CYCLOMX_X25=y
+# CONFIG_LAPBETHER is not set
+# CONFIG_X25_ASY is not set
+CONFIG_SBNI=m
+CONFIG_SBNI_MULTILINE=y
+
+#
+# PCMCIA network device support
+#
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+# CONFIG_ARCNET_COM20020_CS is not set
+CONFIG_PCMCIA_IBMTR=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_PCMCIA_XIRTULIP=m
+CONFIG_NET_PCMCIA_RADIO=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_PCMCIA_NETWAVE=m
+CONFIG_PCMCIA_WAVELAN=m
+CONFIG_PCMCIA_WVLAN=m
+CONFIG_AIRONET4500_CS=m
+
+#
+# ATM drivers
+#
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_ZATM_EXACT_TS=y
+CONFIG_ATM_NICSTAR=m
+CONFIG_ATM_NICSTAR_USE_SUNI=y
+CONFIG_ATM_NICSTAR_USE_IDT77105=y
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E_MAYBE=m
+CONFIG_ATM_FORE200E_PCA=y
+CONFIG_ATM_FORE200E_PCA_DEFAULT_FW=y
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_FORE200E=m
+
+#
+# Amateur Radio support
+#
+CONFIG_HAMRADIO=y
+CONFIG_AX25=m
+# CONFIG_AX25_DAMA_SLAVE is not set
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+
+#
+# AX.25 network device drivers
+#
+# CONFIG_MKISS is not set
+# CONFIG_6PACK is not set
+# CONFIG_BPQETHER is not set
+# CONFIG_DMASCC is not set
+# CONFIG_SCC is not set
+# CONFIG_BAYCOM_SER_FDX is not set
+# CONFIG_BAYCOM_SER_HDX is not set
+# CONFIG_BAYCOM_PAR is not set
+# CONFIG_BAYCOM_EPP is not set
+CONFIG_SOUNDMODEM=m
+CONFIG_SOUNDMODEM_SBC=y
+CONFIG_SOUNDMODEM_WSS=y
+CONFIG_SOUNDMODEM_AFSK1200=y
+CONFIG_SOUNDMODEM_AFSK2400_7=y
+CONFIG_SOUNDMODEM_AFSK2400_8=y
+CONFIG_SOUNDMODEM_AFSK2666=y
+CONFIG_SOUNDMODEM_HAPN4800=y
+CONFIG_SOUNDMODEM_PSK4800=y
+CONFIG_SOUNDMODEM_FSK9600=y
+# CONFIG_YAM is not set
+
+#
+# IrDA (infrared) support
+#
+CONFIG_IRDA=m
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_ULTRA=y
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_FAST_RR=y
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+CONFIG_IRTTY_SIR=m
+CONFIG_IRPORT_SIR=m
+CONFIG_DONGLE=y
+CONFIG_ESI_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_LITELINK_DONGLE=m
+CONFIG_MCP2120_DONGLE=m
+CONFIG_OLD_BELKIN_DONGLE=m
+CONFIG_ACT200L_DONGLE=m
+CONFIG_MA600_DONGLE=m
+CONFIG_USB_IRDA=m
+CONFIG_NSC_FIR=m
+CONFIG_WINBOND_FIR=m
+CONFIG_TOSHIBA_OLD=m
+CONFIG_TOSHIBA_FIR=m
+CONFIG_SMC_IRCC_FIR=m
+CONFIG_ALI_FIR=m
+CONFIG_VLSI_FIR=m
+
+#
+# ISDN subsystem
+#
+CONFIG_ISDN=m
+CONFIG_ISDN_BOOL=y
+CONFIG_ISDN_PPP=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+CONFIG_ISDN_AUDIO=y
+CONFIG_ISDN_TTY_FAX=y
+
+#
+# ISDN feature submodules
+#
+CONFIG_ISDN_DRV_LOOP=m
+# CONFIG_ISDN_DIVERSION is not set
+
+#
+# Passive ISDN cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+CONFIG_ISDN_HISAX=y
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+# CONFIG_HISAX_NO_SENDCOMPLETE is not set
+# CONFIG_HISAX_NO_LLC is not set
+# CONFIG_HISAX_NO_KEYPAD is not set
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+CONFIG_HISAX_16_0=y
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_AVM_A1=y
+CONFIG_HISAX_IX1MICROR2=y
+CONFIG_HISAX_ASUSCOM=y
+CONFIG_HISAX_TELEINT=y
+CONFIG_HISAX_HFCS=y
+CONFIG_HISAX_SPORTSTER=y
+CONFIG_HISAX_MIC=y
+CONFIG_HISAX_ISURF=y
+CONFIG_HISAX_HSTSAPHIR=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+CONFIG_HISAX_DEBUG=y
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+CONFIG_HISAX_AVM_A1_CS=m
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+CONFIG_USB_AUERISDN=m
+
+#
+# Active ISDN cards
+#
+CONFIG_ISDN_DRV_ICN=m
+CONFIG_ISDN_DRV_PCBIT=m
+# CONFIG_ISDN_DRV_SC is not set
+# CONFIG_ISDN_DRV_ACT2000 is not set
+CONFIG_ISDN_DRV_EICON=y
+CONFIG_ISDN_DRV_EICON_DIVAS=m
+# CONFIG_ISDN_DRV_EICON_OLD is not set
+CONFIG_ISDN_DRV_TPAM=m
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
+CONFIG_ISDN_CAPI_CAPIFS=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+CONFIG_ISDN_DRV_AVMB1_B1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_T1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_KALLSYMS=y
+
+#
+# Old CD-ROM drivers (not SCSI, not IDE)
+#
+# CONFIG_CD_NO_IDESCSI is not set
+
+#
+# Input core support
+#
+CONFIG_INPUT=m
+CONFIG_INPUT_KEYBDEV=m
+CONFIG_INPUT_MOUSEDEV=m
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=m
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_ECC=m
+CONFIG_VT_CONSOLE=y
+CONFIG_SERIAL=y
+CONFIG_SERIAL_CONSOLE=y
+CONFIG_SERIAL_EXTENDED=y
+CONFIG_SERIAL_MANY_PORTS=y
+CONFIG_SERIAL_SHARE_IRQ=y
+# CONFIG_SERIAL_DETECT_IRQ is not set
+CONFIG_SERIAL_MULTIPORT=y
+# CONFIG_HUB6 is not set
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_ATI_CD1865=m
+# CONFIG_COMPUTONE is not set
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+CONFIG_DIGIEPCA=m
+CONFIG_ESPSERIAL=m
+CONFIG_MOXA_INTELLIO=m
+CONFIG_MOXA_SMARTIO=m
+CONFIG_ISI=m
+# CONFIG_ICOM is not set
+CONFIG_SYNCLINK=m
+# CONFIG_SYNCLINKMP is not set
+CONFIG_N_HDLC=m
+CONFIG_RISCOM8=m
+CONFIG_SPECIALIX=m
+CONFIG_SPECIALIX_RTSCTS=y
+CONFIG_SX=m
+# CONFIG_RIO is not set
+CONFIG_STALDRV=y
+CONFIG_STALLION=m
+CONFIG_ISTALLION=m
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX98_PTY_COUNT=2048
+CONFIG_PRINTER=m
+CONFIG_LP_CONSOLE=y
+CONFIG_PPDEV=m
+CONFIG_TIPAR=m
+
+#
+# I2C support
+#
+CONFIG_I2C=m
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_PHILIPSPAR=m
+CONFIG_I2C_ELV=m
+CONFIG_I2C_VELLEMAN=m
+# CONFIG_SCx200_I2C is not set
+# CONFIG_SCx200_ACB is not set
+CONFIG_I2C_ALGOPCF=m
+CONFIG_I2C_ELEKTOR=m
+CONFIG_I2C_MAINBOARD=y
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_HYDRA=m
+CONFIG_I2C_AMD756=m
+# CONFIG_I2C_TSUNAMI is not set
+CONFIG_I2C_I801=m
+CONFIG_I2C_I810=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_VOODOO3=m
+CONFIG_I2C_ISA=m
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_PROC=m
+
+#
+# Hardware sensors support
+#
+CONFIG_SENSORS=y
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1024=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_FSCPOS=m
+CONFIG_SENSORS_FSCSCY=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_MAXILIFE=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_MTP008=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_OTHER=y
+CONFIG_SENSORS_BT869=m
+CONFIG_SENSORS_DDCMON=m
+CONFIG_SENSORS_EEPROM=m
+CONFIG_SENSORS_MATORB=m
+CONFIG_SENSORS_PCF8574=m
+CONFIG_SENSORS_PCF8591=m
+
+#
+# Mice
+#
+CONFIG_BUSMOUSE=m
+CONFIG_ATIXL_BUSMOUSE=m
+CONFIG_LOGIBUSMOUSE=m
+CONFIG_MS_BUSMOUSE=m
+CONFIG_MOUSE=y
+CONFIG_PSMOUSE=y
+CONFIG_82C710_MOUSE=m
+CONFIG_PC110_PAD=m
+CONFIG_MK712_MOUSE=m
+
+#
+# Joysticks
+#
+CONFIG_INPUT_GAMEPORT=m
+CONFIG_INPUT_NS558=m
+CONFIG_INPUT_LIGHTNING=m
+CONFIG_INPUT_PCIGAME=m
+CONFIG_INPUT_CS461X=m
+CONFIG_INPUT_EMU10K1=m
+CONFIG_INPUT_SERIO=m
+CONFIG_INPUT_SERPORT=m
+CONFIG_INPUT_ANALOG=m
+CONFIG_INPUT_A3D=m
+CONFIG_INPUT_ADI=m
+CONFIG_INPUT_COBRA=m
+CONFIG_INPUT_GF2K=m
+CONFIG_INPUT_GRIP=m
+CONFIG_INPUT_INTERACT=m
+CONFIG_INPUT_TMDC=m
+CONFIG_INPUT_SIDEWINDER=m
+CONFIG_INPUT_IFORCE_USB=m
+CONFIG_INPUT_IFORCE_232=m
+CONFIG_INPUT_WARRIOR=m
+CONFIG_INPUT_MAGELLAN=m
+CONFIG_INPUT_SPACEORB=m
+CONFIG_INPUT_SPACEBALL=m
+CONFIG_INPUT_STINGER=m
+CONFIG_INPUT_DB9=m
+CONFIG_INPUT_GAMECON=m
+CONFIG_INPUT_TURBOGRAFX=m
+# CONFIG_QIC02_TAPE is not set
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_KCS=m
+CONFIG_IPMI_WATCHDOG=m
+
+#
+# Watchdog Cards
+#
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_SC520_WDT=m
+CONFIG_PCWATCHDOG=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_IB700_WDT=m
+CONFIG_WAFER_WDT=m
+CONFIG_I810_TCO=m
+# CONFIG_MIXCOMWD is not set
+# CONFIG_60XX_WDT is not set
+CONFIG_SC1200_WDT=m
+# CONFIG_SCx200_WDT is not set
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_W83877F_WDT=m
+CONFIG_WDT=m
+CONFIG_WDTPCI=m
+# CONFIG_WDT_501 is not set
+CONFIG_MACHZ_WDT=m
+CONFIG_AMD7XX_TCO=m
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_HANGCHECK_DELAY=m
+# CONFIG_SCx200_GPIO is not set
+CONFIG_AMD_RNG=m
+CONFIG_INTEL_RNG=m
+CONFIG_AMD_PM768=m
+# CONFIG_NVRAM is not set
+CONFIG_RTC=y
+CONFIG_DTLK=m
+CONFIG_R3964=m
+# CONFIG_APPLICOM is not set
+# CONFIG_SONYPI is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+CONFIG_FTAPE=m
+CONFIG_ZFTAPE=m
+CONFIG_ZFT_DFLT_BLK_SZ=10240
+CONFIG_ZFT_COMPRESSOR=m
+CONFIG_FT_NR_BUFFERS=3
+# CONFIG_FT_PROC_FS is not set
+CONFIG_FT_NORMAL_DEBUG=y
+# CONFIG_FT_FULL_DEBUG is not set
+# CONFIG_FT_NO_TRACE is not set
+# CONFIG_FT_NO_TRACE_AT_ALL is not set
+CONFIG_FT_STD_FDC=y
+# CONFIG_FT_MACH2 is not set
+# CONFIG_FT_PROBE_FC10 is not set
+# CONFIG_FT_ALT_FDC is not set
+CONFIG_FT_FDC_THR=8
+CONFIG_FT_FDC_MAX_RATE=2000
+CONFIG_FT_ALPHA_CLOCK=0
+CONFIG_AGP=m
+CONFIG_AGP_INTEL=y
+CONFIG_AGP_I810=y
+CONFIG_AGP_VIA=y
+CONFIG_AGP_AMD=y
+CONFIG_AGP_AMD_8151=y
+CONFIG_AGP_SIS=y
+CONFIG_AGP_ALI=y
+CONFIG_AGP_SWORKS=y
+CONFIG_AGP_NVIDIA=y
+CONFIG_DRM=y
+# CONFIG_DRM_OLD is not set
+CONFIG_DRM_NEW=y
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_GAMMA=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_I810=m
+# CONFIG_DRM_I810_XFREE_41 is not set
+CONFIG_DRM_I830=m
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+
+#
+# PCMCIA character devices
+#
+CONFIG_PCMCIA_SERIAL_CS=m
+CONFIG_SYNCLINK_CS=m
+CONFIG_MWAVE=m
+
+#
+# Multimedia devices
+#
+CONFIG_VIDEO_DEV=m
+
+#
+# Video For Linux
+#
+CONFIG_VIDEO_PROC_FS=y
+CONFIG_I2C_PARPORT=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_PMS=m
+CONFIG_VIDEO_BWQCAM=m
+CONFIG_VIDEO_CQCAM=m
+CONFIG_VIDEO_W9966=m
+CONFIG_VIDEO_CPIA=m
+CONFIG_VIDEO_CPIA_PP=m
+CONFIG_VIDEO_CPIA_USB=m
+CONFIG_VIDEO_SAA5249=m
+CONFIG_TUNER_3036=m
+CONFIG_VIDEO_STRADIS=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZR36120=m
+# CONFIG_VIDEO_MEYE is not set
+
+#
+# Radio Adapters
+#
+CONFIG_RADIO_CADET=m
+CONFIG_RADIO_RTRACK=m
+CONFIG_RADIO_RTRACK2=m
+CONFIG_RADIO_AZTECH=m
+CONFIG_RADIO_GEMTEK=m
+CONFIG_RADIO_GEMTEK_PCI=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_MAESTRO=m
+CONFIG_RADIO_MIROPCM20=m
+CONFIG_RADIO_MIROPCM20_RDS=m
+CONFIG_RADIO_SF16FMI=m
+CONFIG_RADIO_SF16FMR2=m
+CONFIG_RADIO_TERRATEC=m
+CONFIG_RADIO_TRUST=m
+CONFIG_RADIO_TYPHOON=m
+CONFIG_RADIO_TYPHOON_PROC_FS=y
+CONFIG_RADIO_ZOLTRIX=m
+
+#
+# File systems
+#
+CONFIG_QUOTA=y
+# CONFIG_QFMT_V1 is not set
+CONFIG_QFMT_V2=y
+# CONFIG_QIFACE_COMPAT is not set
+CONFIG_AUTOFS_FS=m
+CONFIG_AUTOFS4_FS=m
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+# CONFIG_ADFS_FS is not set
+# CONFIG_ADFS_FS_RW is not set
+# CONFIG_AFFS_FS is not set
+CONFIG_HFS_FS=m
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BFS_FS is not set
+CONFIG_EXT3_FS=m
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_XATTR_SHARING=y
+CONFIG_EXT3_FS_XATTR_USER=y
+CONFIG_EXT3_FS_XATTR_TRUSTED=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_UMSDOS_FS=m
+CONFIG_VFAT_FS=m
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_CRAMFS=m
+CONFIG_TMPFS=y
+CONFIG_RAMFS=y
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_DEBUG=y
+# CONFIG_JFS_STATISTICS is not set
+CONFIG_MINIX_FS=m
+CONFIG_VXFS_FS=m
+# CONFIG_NTFS_FS is not set
+# CONFIG_NTFS_RW is not set
+# CONFIG_HPFS_FS is not set
+CONFIG_PROC_FS=y
+# CONFIG_DEVFS_FS is not set
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+CONFIG_DEVPTS_FS=y
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX4FS_RW is not set
+CONFIG_ROMFS_FS=m
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+# CONFIG_EXT2_FS_XATTR_SHARING is not set
+# CONFIG_EXT2_FS_XATTR_USER is not set
+CONFIG_SYSV_FS=m
+CONFIG_UDF_FS=m
+CONFIG_UDF_RW=y
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+
+#
+# Network File Systems
+#
+CONFIG_CODA_FS=m
+# CONFIG_INTERMEZZO_FS is not set
+CONFIG_NFS_FS=m
+CONFIG_NFS_V3=y
+CONFIG_NFS_DIRECTIO=y
+CONFIG_NFS_ACL=y
+# CONFIG_ROOT_NFS is not set
+CONFIG_NFSD=m
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_ACL=y
+CONFIG_NFSD_TCP=y
+CONFIG_SUNRPC=m
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_NCP_FS=m
+CONFIG_NCPFS_PACKET_SIGNING=y
+CONFIG_NCPFS_IOCTL_LOCKING=y
+CONFIG_NCPFS_STRONG=y
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_SMALLDOS=y
+CONFIG_NCPFS_NLS=y
+CONFIG_NCPFS_EXTRAS=y
+CONFIG_ZISOFS_FS=y
+CONFIG_FS_MBCACHE=y
+CONFIG_FS_POSIX_ACL=y
+CONFIG_FS_MBCACHE=y
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+CONFIG_OSF_PARTITION=y
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+# CONFIG_LDM_PARTITION is not set
+CONFIG_SGI_PARTITION=y
+# CONFIG_ULTRIX_PARTITION is not set
+CONFIG_SUN_PARTITION=y
+# CONFIG_EFI_PARTITION is not set
+CONFIG_SMB_NLS=y
+CONFIG_NLS=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+
+#
+# Console drivers
+#
+CONFIG_VGA_CONSOLE=y
+CONFIG_VIDEO_SELECT=y
+# CONFIG_VIDEO_IGNORE_BAD_MODE is not set
+CONFIG_MDA_CONSOLE=m
+
+#
+# Frame-buffer support
+#
+CONFIG_FB=y
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FB_RIVA=m
+CONFIG_FB_CLGEN=m
+CONFIG_FB_PM2=m
+# CONFIG_FB_PM2_FIFO_DISCONNECT is not set
+CONFIG_FB_PM2_PCI=y
+CONFIG_FB_PM3=m
+# CONFIG_FB_CYBER2000 is not set
+CONFIG_FB_VESA=y
+CONFIG_FB_VGA16=m
+CONFIG_FB_HGA=m
+CONFIG_VIDEO_SELECT=y
+CONFIG_FB_MATROX=m
+CONFIG_FB_MATROX_MILLENIUM=y
+CONFIG_FB_MATROX_MYSTIQUE=y
+CONFIG_FB_MATROX_G450=y
+CONFIG_FB_MATROX_G100=y
+CONFIG_FB_MATROX_I2C=m
+CONFIG_FB_MATROX_MAVEN=m
+# CONFIG_FB_MATROX_PROC is not set
+CONFIG_FB_MATROX_MULTIHEAD=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_ATY_CT_VAIO_LCD=y
+CONFIG_FB_RADEON=m
+CONFIG_FB_ATY128=m
+CONFIG_FB_INTEL=m
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_3DFX=m
+CONFIG_FB_VOODOO1=m
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FBCON_ADVANCED is not set
+CONFIG_FBCON_MFB=m
+CONFIG_FBCON_CFB8=y
+CONFIG_FBCON_CFB16=y
+CONFIG_FBCON_CFB24=y
+CONFIG_FBCON_CFB32=y
+CONFIG_FBCON_VGA_PLANES=m
+CONFIG_FBCON_HGA=m
+# CONFIG_FBCON_FONTWIDTH8_ONLY is not set
+# CONFIG_FBCON_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+
+#
+# Sound
+#
+CONFIG_SOUND=m
+CONFIG_SOUND_ALI5455=m
+CONFIG_SOUND_BT878=m
+CONFIG_SOUND_CMPCI=m
+CONFIG_SOUND_CMPCI_FM=y
+CONFIG_SOUND_CMPCI_FMIO=388
+CONFIG_SOUND_CMPCI_FMIO=388
+CONFIG_SOUND_CMPCI_MIDI=y
+CONFIG_SOUND_CMPCI_MPUIO=330
+CONFIG_SOUND_CMPCI_JOYSTICK=y
+CONFIG_SOUND_CMPCI_CM8738=y
+# CONFIG_SOUND_CMPCI_SPDIFINVERSE is not set
+CONFIG_SOUND_CMPCI_SPDIFLOOP=y
+CONFIG_SOUND_CMPCI_SPEAKERS=2
+CONFIG_SOUND_EMU10K1=m
+CONFIG_MIDI_EMU10K1=y
+CONFIG_SOUND_AUDIGY=m
+CONFIG_SOUND_FUSION=m
+CONFIG_SOUND_CS4281=m
+CONFIG_SOUND_ES1370=m
+CONFIG_SOUND_ES1371=m
+CONFIG_SOUND_ESSSOLO1=m
+CONFIG_SOUND_MAESTRO=m
+CONFIG_SOUND_MAESTRO3=m
+CONFIG_SOUND_FORTE=m
+CONFIG_SOUND_ICH=m
+CONFIG_SOUND_RME96XX=m
+CONFIG_SOUND_SONICVIBES=m
+CONFIG_SOUND_TRIDENT=m
+CONFIG_SOUND_MSNDCLAS=m
+# CONFIG_MSNDCLAS_HAVE_BOOT is not set
+CONFIG_MSNDCLAS_INIT_FILE="/etc/sound/msndinit.bin"
+CONFIG_MSNDCLAS_PERM_FILE="/etc/sound/msndperm.bin"
+CONFIG_SOUND_MSNDPIN=m
+# CONFIG_MSNDPIN_HAVE_BOOT is not set
+CONFIG_MSNDPIN_INIT_FILE="/etc/sound/pndspini.bin"
+CONFIG_MSNDPIN_PERM_FILE="/etc/sound/pndsperm.bin"
+CONFIG_SOUND_VIA82CXXX=m
+CONFIG_MIDI_VIA82CXXX=y
+CONFIG_SOUND_OSS=m
+# CONFIG_SOUND_TRACEINIT is not set
+CONFIG_SOUND_DMAP=y
+CONFIG_SOUND_AD1816=m
+CONFIG_SOUND_AD1889=m
+CONFIG_SOUND_SGALAXY=m
+CONFIG_SOUND_ADLIB=m
+CONFIG_SOUND_ACI_MIXER=m
+CONFIG_SOUND_CS4232=m
+CONFIG_SOUND_SSCAPE=m
+CONFIG_SOUND_GUS=m
+CONFIG_SOUND_GUS16=y
+CONFIG_SOUND_GUSMAX=y
+CONFIG_SOUND_VMIDI=m
+CONFIG_SOUND_TRIX=m
+CONFIG_SOUND_MSS=m
+CONFIG_SOUND_MPU401=m
+CONFIG_SOUND_NM256=m
+CONFIG_SOUND_MAD16=m
+CONFIG_MAD16_OLDCARD=y
+CONFIG_SOUND_PAS=m
+# CONFIG_PAS_JOYSTICK is not set
+CONFIG_SOUND_PSS=m
+# CONFIG_PSS_MIXER is not set
+# CONFIG_PSS_HAVE_BOOT is not set
+CONFIG_SOUND_SB=m
+CONFIG_SOUND_AWE32_SYNTH=m
+CONFIG_SOUND_KAHLUA=m
+CONFIG_SOUND_WAVEFRONT=m
+CONFIG_SOUND_MAUI=m
+CONFIG_SOUND_YM3812=m
+CONFIG_SOUND_OPL3SA1=m
+CONFIG_SOUND_OPL3SA2=m
+CONFIG_SOUND_YMFPCI=m
+CONFIG_SOUND_YMFPCI_LEGACY=y
+CONFIG_SOUND_UART6850=m
+CONFIG_SOUND_AEDSP16=m
+CONFIG_SC6600=y
+CONFIG_SC6600_JOY=y
+CONFIG_SC6600_CDROM=4
+CONFIG_SC6600_CDROMBASE=0
+CONFIG_AEDSP16_SBPRO=y
+CONFIG_AEDSP16_MPU401=y
+CONFIG_SOUND_TVMIXER=m
+
+#
+# USB support
+#
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_BANDWIDTH is not set
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_UHCI=m
+CONFIG_USB_UHCI_ALT=m
+CONFIG_USB_OHCI=m
+CONFIG_USB_AUDIO=m
+# CONFIG_USB_EMI26 is not set
+CONFIG_USB_MIDI=m
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_DATAFAB=y
+CONFIG_USB_STORAGE_FREECOM=y
+CONFIG_USB_STORAGE_ISD200=y
+CONFIG_USB_STORAGE_DPCM=y
+CONFIG_USB_STORAGE_HP8200e=y
+CONFIG_USB_STORAGE_SDDR09=y
+CONFIG_USB_STORAGE_SDDR55=y
+CONFIG_USB_STORAGE_JUMPSHOT=y
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_HID=m
+CONFIG_USB_HIDINPUT=y
+CONFIG_USB_HIDDEV=y
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+CONFIG_USB_AIPTEK=m
+CONFIG_USB_WACOM=m
+CONFIG_USB_KBTAB=m
+CONFIG_USB_POWERMATE=m
+# CONFIG_USB_DC2XX is not set
+CONFIG_USB_MDC800=m
+CONFIG_USB_SCANNER=m
+CONFIG_USB_MICROTEK=m
+CONFIG_USB_HPUSBSCSI=m
+CONFIG_USB_IBMCAM=m
+CONFIG_USB_KONICAWC=m
+CONFIG_USB_OV511=m
+CONFIG_USB_PWC=m
+CONFIG_USB_SE401=m
+CONFIG_USB_STV680=m
+CONFIG_USB_VICAM=m
+CONFIG_USB_DSBR=m
+CONFIG_USB_DABUSB=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_CATC=m
+# CONFIG_USB_AX8817X is not set
+CONFIG_USB_CDCETHER=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_USS720=m
+
+#
+# USB Serial Converter support
+#
+CONFIG_USB_SERIAL=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_AUERSWALD=m
+CONFIG_USB_TIGL=m
+CONFIG_USB_BRLVGER=m
+CONFIG_USB_LCD=m
+
+#
+# Additional device driver support
+#
+CONFIG_NET_BROADCOM=m
+CONFIG_CIPE=m
+CONFIG_CRYPTO_AEP=m
+CONFIG_CRYPTO_BROADCOM=m
+CONFIG_MEGARAC=m
+CONFIG_FC_QLA2100=m
+CONFIG_FC_QLA2200=m
+CONFIG_FC_QLA2300=m
+CONFIG_SCSI_ISCSI=m
+# CONFIG_SCSI_IPR is not set
+
+#
+# Bluetooth support
+#
+CONFIG_BLUEZ=m
+CONFIG_BLUEZ_L2CAP=m
+CONFIG_BLUEZ_SCO=m
+CONFIG_BLUEZ_RFCOMM=m
+CONFIG_BLUEZ_RFCOMM_TTY=y
+CONFIG_BLUEZ_BNEP=m
+CONFIG_BLUEZ_BNEP_MC_FILTER=y
+CONFIG_BLUEZ_BNEP_PROTO_FILTER=y
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BLUEZ_HCIUSB=m
+CONFIG_BLUEZ_USB_SCO=y
+CONFIG_BLUEZ_USB_ZERO_PACKET=y
+CONFIG_BLUEZ_HCIUART=m
+CONFIG_BLUEZ_HCIUART_H4=y
+CONFIG_BLUEZ_HCIUART_BCSP=y
+CONFIG_BLUEZ_HCIUART_BCSP_TXCRC=y
+CONFIG_BLUEZ_HCIDTL1=m
+CONFIG_BLUEZ_HCIBT3C=m
+CONFIG_BLUEZ_HCIBLUECARD=m
+CONFIG_BLUEZ_HCIBTUART=m
+CONFIG_BLUEZ_HCIVHCI=m
+
+#
+# Profiling support
+#
+CONFIG_PROFILING=y
+CONFIG_OPROFILE=m
+
+#
+# Kernel hacking
+#
+CONFIG_DEBUG_KERNEL=y
+CONFIG_DEBUG_STACKOVERFLOW=y
+CONFIG_FRAME_POINTER=y
+CONFIG_DEBUG_HIGHMEM=y
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_IOVIRT is not set
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_PANIC_MORSE=y
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_SMALL is not set
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_TEST=m
+
+#
+# Library routines
+#
+CONFIG_CRC32=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_QSORT=y
index 53d846a..5be430e 100644 (file)
@@ -1,7 +1,7 @@
-Index: linux-p4smp/arch/i386/kernel/entry.S
+Index: linux-2.4.21/arch/i386/kernel/entry.S
 ===================================================================
---- linux-p4smp.orig/arch/i386/kernel/entry.S  2004-06-14 13:13:07.000000000 -0700
-+++ linux-p4smp/arch/i386/kernel/entry.S       2004-06-14 13:14:19.000000000 -0700
+--- linux-2.4.21.orig/arch/i386/kernel/entry.S 2004-07-09 19:15:11.000000000 -0400
++++ linux-2.4.21/arch/i386/kernel/entry.S      2004-07-16 18:00:14.000000000 -0400
 @@ -46,6 +46,7 @@
  #include <asm/segment.h>
  #include <asm/page.h>
@@ -10,7 +10,7 @@ Index: linux-p4smp/arch/i386/kernel/entry.S
  #include <asm/unistd.h>
        
  EBX           = 0x00
-@@ -94,10 +95,6 @@ pt_sys_exit = 8
+@@ -94,10 +95,6 @@
  
  ENOSYS = 38
  
@@ -21,7 +21,7 @@ Index: linux-p4smp/arch/i386/kernel/entry.S
  #if CONFIG_X86_HIGH_ENTRY
  
  #define call_SYMBOL_NAME_ABS(X) movl $X, %ebp; call *%ebp
-@@ -193,7 +190,7 @@ ENOSYS = 38
+@@ -193,7 +190,7 @@
        GET_CURRENT(%ebx);                              \
        movl real_stack(%ebx), %edx;                    \
        movl %esp, %ebx;                                \
@@ -30,7 +30,7 @@ Index: linux-p4smp/arch/i386/kernel/entry.S
        orl %ebx, %edx;                                 \
        movl %edx, %esp;
  
-@@ -228,7 +225,7 @@ ENOSYS = 38
+@@ -228,7 +225,7 @@
  return_path_start_marker:                             \
        nop;                                            \
        movl %esp, %ebx;                                \
@@ -39,11 +39,11 @@ Index: linux-p4smp/arch/i386/kernel/entry.S
        orl %ebx, %edx;                                 \
        movl %esp, %eax;                                \
        movl %edx, %esp;                                \
-Index: linux-p4smp/arch/i386/kernel/smpboot.c
+Index: linux-2.4.21/arch/i386/kernel/smpboot.c
 ===================================================================
---- linux-p4smp.orig/arch/i386/kernel/smpboot.c        2004-06-14 13:13:07.000000000 -0700
-+++ linux-p4smp/arch/i386/kernel/smpboot.c     2004-06-14 13:14:19.000000000 -0700
-@@ -814,7 +814,7 @@ static void __init do_boot_cpu (int apic
+--- linux-2.4.21.orig/arch/i386/kernel/smpboot.c       2004-07-09 19:14:40.000000000 -0400
++++ linux-2.4.21/arch/i386/kernel/smpboot.c    2004-07-16 18:00:14.000000000 -0400
+@@ -814,7 +814,7 @@
  
        /* So we see what's up   */
        printk("Booting processor %d/%d eip %lx\n", cpu, apicid, start_eip);
@@ -52,7 +52,7 @@ Index: linux-p4smp/arch/i386/kernel/smpboot.c
  
        /*
         * This grunge runs the startup process for
-@@ -887,7 +887,7 @@ static void __init do_boot_cpu (int apic
+@@ -887,7 +887,7 @@
                        Dprintk("CPU has booted.\n");
                } else {
                        boot_error= 1;
@@ -61,7 +61,7 @@ Index: linux-p4smp/arch/i386/kernel/smpboot.c
                                        == 0xA5)
                                /* trampoline started but...? */
                                printk("Stuck ??\n");
-@@ -910,7 +910,7 @@ static void __init do_boot_cpu (int apic
+@@ -910,7 +910,7 @@
        }
  
        /* mark "stuck" area as not stuck */
@@ -70,11 +70,11 @@ Index: linux-p4smp/arch/i386/kernel/smpboot.c
  
        if(clustered_apic_mode == CLUSTERED_APIC_NUMAQ) {
                printk("Restoring NMI vector\n");
-Index: linux-p4smp/arch/i386/kernel/traps.c
+Index: linux-2.4.21/arch/i386/kernel/traps.c
 ===================================================================
---- linux-p4smp.orig/arch/i386/kernel/traps.c  2004-06-14 13:13:07.000000000 -0700
-+++ linux-p4smp/arch/i386/kernel/traps.c       2004-06-14 13:14:19.000000000 -0700
-@@ -273,7 +273,7 @@ void show_trace_task(struct task_struct 
+--- linux-2.4.21.orig/arch/i386/kernel/traps.c 2004-07-09 19:14:54.000000000 -0400
++++ linux-2.4.21/arch/i386/kernel/traps.c      2004-07-16 18:00:14.000000000 -0400
+@@ -180,7 +180,7 @@
        unsigned long esp = tsk->thread.esp;
  
        /* User space on another CPU? */
@@ -83,10 +83,10 @@ Index: linux-p4smp/arch/i386/kernel/traps.c
                return;
        show_trace((unsigned long *)esp);
  }
-Index: linux-p4smp/arch/i386/kernel/head.S
+Index: linux-2.4.21/arch/i386/kernel/head.S
 ===================================================================
---- linux-p4smp.orig/arch/i386/kernel/head.S   2004-06-14 13:13:07.000000000 -0700
-+++ linux-p4smp/arch/i386/kernel/head.S        2004-06-14 13:14:19.000000000 -0700
+--- linux-2.4.21.orig/arch/i386/kernel/head.S  2004-07-09 19:14:45.000000000 -0400
++++ linux-2.4.21/arch/i386/kernel/head.S       2004-07-16 18:00:14.000000000 -0400
 @@ -15,6 +15,7 @@
  #include <asm/page.h>
  #include <asm/pgtable.h>
@@ -95,7 +95,7 @@ Index: linux-p4smp/arch/i386/kernel/head.S
  
  #define OLD_CL_MAGIC_ADDR     0x90020
  #define OLD_CL_MAGIC          0xA33F
-@@ -328,7 +329,7 @@ rp_sidt:
+@@ -315,7 +316,7 @@
        ret
  
  ENTRY(stack_start)
@@ -104,10 +104,10 @@ Index: linux-p4smp/arch/i386/kernel/head.S
        .long __KERNEL_DS
  
  /* This is the default interrupt "handler" :-) */
-Index: linux-p4smp/arch/i386/kernel/irq.c
+Index: linux-2.4.21/arch/i386/kernel/irq.c
 ===================================================================
---- linux-p4smp.orig/arch/i386/kernel/irq.c    2004-06-14 13:13:07.000000000 -0700
-+++ linux-p4smp/arch/i386/kernel/irq.c 2004-06-14 13:14:19.000000000 -0700
+--- linux-2.4.21.orig/arch/i386/kernel/irq.c   2004-07-09 19:14:59.000000000 -0400
++++ linux-2.4.21/arch/i386/kernel/irq.c        2004-07-16 18:00:14.000000000 -0400
 @@ -45,6 +45,7 @@
  #include <asm/delay.h>
  #include <asm/desc.h>
@@ -116,7 +116,7 @@ Index: linux-p4smp/arch/i386/kernel/irq.c
  
  
  
-@@ -585,7 +586,7 @@ asmlinkage unsigned int do_IRQ(struct pt
+@@ -585,7 +586,7 @@
        long esp;
  
        /* Debugging check for stack overflow: is there less than 1KB free? */
@@ -125,10 +125,10 @@ Index: linux-p4smp/arch/i386/kernel/irq.c
        if (unlikely(esp < (sizeof(struct task_struct) + 1024))) {
                extern void show_stack(unsigned long *);
  
-Index: linux-p4smp/arch/i386/lib/getuser.S
+Index: linux-2.4.21/arch/i386/lib/getuser.S
 ===================================================================
---- linux-p4smp.orig/arch/i386/lib/getuser.S   2004-06-14 13:13:07.000000000 -0700
-+++ linux-p4smp/arch/i386/lib/getuser.S        2004-06-14 13:14:19.000000000 -0700
+--- linux-2.4.21.orig/arch/i386/lib/getuser.S  1998-01-12 16:42:52.000000000 -0500
++++ linux-2.4.21/arch/i386/lib/getuser.S       2004-07-16 18:00:14.000000000 -0400
 @@ -21,6 +21,10 @@
   * as they get called from within inline assembly.
   */
@@ -140,7 +140,7 @@ Index: linux-p4smp/arch/i386/lib/getuser.S
  addr_limit = 12
  
  .text
-@@ -28,7 +32,7 @@ addr_limit = 12
+@@ -28,7 +32,7 @@
  .globl __get_user_1
  __get_user_1:
        movl %esp,%edx
@@ -149,7 +149,7 @@ Index: linux-p4smp/arch/i386/lib/getuser.S
        cmpl addr_limit(%edx),%eax
        jae bad_get_user
  1:    movzbl (%eax),%edx
-@@ -41,7 +45,7 @@ __get_user_2:
+@@ -41,7 +45,7 @@
        addl $1,%eax
        movl %esp,%edx
        jc bad_get_user
@@ -158,7 +158,7 @@ Index: linux-p4smp/arch/i386/lib/getuser.S
        cmpl addr_limit(%edx),%eax
        jae bad_get_user
  2:    movzwl -1(%eax),%edx
-@@ -54,7 +58,7 @@ __get_user_4:
+@@ -54,7 +58,7 @@
        addl $3,%eax
        movl %esp,%edx
        jc bad_get_user
@@ -167,12 +167,12 @@ Index: linux-p4smp/arch/i386/lib/getuser.S
        cmpl addr_limit(%edx),%eax
        jae bad_get_user
  3:    movl -3(%eax),%edx
-Index: linux-p4smp/arch/i386/config.in
+Index: linux-2.4.21/arch/i386/config.in
 ===================================================================
---- linux-p4smp.orig/arch/i386/config.in       2004-06-14 13:13:07.000000000 -0700
-+++ linux-p4smp/arch/i386/config.in    2004-06-14 13:14:05.000000000 -0700
-@@ -310,6 +310,28 @@ if [ "$CONFIG_SMP" = "y" -a "$CONFIG_X86
-    define_bool CONFIG_HAVE_DEC_LOCK y
+--- linux-2.4.21.orig/arch/i386/config.in      2004-07-09 19:15:12.000000000 -0400
++++ linux-2.4.21/arch/i386/config.in   2004-07-16 18:00:14.000000000 -0400
+@@ -306,6 +306,28 @@
+    fi
  fi
  
 +choice 'Bigger Stack Size Support' \
@@ -200,10 +200,36 @@ Index: linux-p4smp/arch/i386/config.in
  if [ "$CONFIG_SMP" = "y" -a "$CONFIG_X86_CMPXCHG" = "y" ]; then
     define_bool CONFIG_HAVE_DEC_LOCK y
  fi
-Index: linux-p4smp/include/asm-i386/current.h
+Index: linux-2.4.21/arch/i386/vmlinux.lds
+===================================================================
+--- linux-2.4.21.orig/arch/i386/vmlinux.lds    2004-07-09 19:14:43.000000000 -0400
++++ linux-2.4.21/arch/i386/vmlinux.lds 2004-07-16 18:00:14.000000000 -0400
+@@ -38,7 +38,7 @@
+   _edata = .;                 /* End of data section */
+-  . = ALIGN(8192);            /* init_task */
++  . = ALIGN(16384);           /* init_task */
+   .data.init_task : { *(.data.init_task) }
+   . = ALIGN(4096);            /* Init code and data */
+Index: linux-2.4.21/arch/i386/vmlinux.lds.in
+===================================================================
+--- linux-2.4.21.orig/arch/i386/vmlinux.lds.in 2004-07-09 19:14:45.000000000 -0400
++++ linux-2.4.21/arch/i386/vmlinux.lds.in      2004-07-16 18:00:49.000000000 -0400
+@@ -51,7 +51,7 @@
+   _edata = .;                 /* End of data section */
+-  . = ALIGN(8192);            /* init_task */
++  . = ALIGN(16384);           /* init_task */
+   .data.init_task : { *(.data.init_task) }
+   entry_tramp_start = .;
+Index: linux-2.4.21/include/asm-i386/current.h
 ===================================================================
---- linux-p4smp.orig/include/asm-i386/current.h        2004-06-14 13:13:07.000000000 -0700
-+++ linux-p4smp/include/asm-i386/current.h     2004-06-14 13:41:19.000000000 -0700
+--- linux-2.4.21.orig/include/asm-i386/current.h       1998-08-14 19:35:22.000000000 -0400
++++ linux-2.4.21/include/asm-i386/current.h    2004-07-16 18:00:14.000000000 -0400
 @@ -1,15 +1,64 @@
  #ifndef _I386_CURRENT_H
  #define _I386_CURRENT_H
@@ -270,11 +296,11 @@ Index: linux-p4smp/include/asm-i386/current.h
 +#endif /* __ASSEMBLY__ */
 +
  #endif /* !(_I386_CURRENT_H) */
-Index: linux-p4smp/include/asm-i386/hw_irq.h
+Index: linux-2.4.21/include/asm-i386/hw_irq.h
 ===================================================================
---- linux-p4smp.orig/include/asm-i386/hw_irq.h 2004-06-14 13:13:07.000000000 -0700
-+++ linux-p4smp/include/asm-i386/hw_irq.h      2004-06-14 13:14:19.000000000 -0700
-@@ -136,21 +136,17 @@ extern char _stext, _etext;
+--- linux-2.4.21.orig/include/asm-i386/hw_irq.h        2004-07-09 19:14:45.000000000 -0400
++++ linux-2.4.21/include/asm-i386/hw_irq.h     2004-07-16 18:00:14.000000000 -0400
+@@ -135,21 +135,17 @@
        "                                                               \
        /* load the real stack - keep the offset */                     \
                                                                        \
@@ -298,10 +324,10 @@ Index: linux-p4smp/include/asm-i386/hw_irq.h
  /*
   *    SMP has a few special interrupts for IPI messages
   */
-Index: linux-p4smp/include/asm-i386/processor.h
+Index: linux-2.4.21/include/asm-i386/processor.h
 ===================================================================
---- linux-p4smp.orig/include/asm-i386/processor.h      2004-06-14 13:13:07.000000000 -0700
-+++ linux-p4smp/include/asm-i386/processor.h   2004-06-14 13:14:19.000000000 -0700
+--- linux-2.4.21.orig/include/asm-i386/processor.h     2004-07-09 19:15:12.000000000 -0400
++++ linux-2.4.21/include/asm-i386/processor.h  2004-07-16 18:00:14.000000000 -0400
 @@ -14,6 +14,7 @@
  #include <asm/types.h>
  #include <asm/sigcontext.h>
@@ -310,7 +336,7 @@ Index: linux-p4smp/include/asm-i386/processor.h
  #include <linux/cache.h>
  #include <linux/config.h>
  #include <linux/threads.h>
-@@ -498,10 +499,6 @@ unsigned long get_wchan(struct task_stru
+@@ -494,10 +495,6 @@
  #define KSTK_EIP(tsk) (((unsigned long *)(4096+(unsigned long)(tsk)))[1019])
  #define KSTK_ESP(tsk) (((unsigned long *)(4096+(unsigned long)(tsk)))[1022])
  
index fb75fef..fe70c18 100644 (file)
@@ -45,7 +45,7 @@ Index: linux-stage/fs/ext3/iopen.c
 ===================================================================
 --- linux-stage.orig/fs/ext3/iopen.c   1969-12-31 19:00:00.000000000 -0500
 +++ linux-stage/fs/ext3/iopen.c        2004-06-22 21:13:20.000000000 -0400
-@@ -0,0 +1,272 @@
+@@ -0,0 +1,274 @@
 +/*
 + * linux/fs/ext3/iopen.c
 + *
@@ -146,7 +146,9 @@ Index: linux-stage/fs/ext3/iopen.c
 +              alternate = list_entry(inode->i_dentry.next,
 +                                     struct dentry, d_alias);
 +              dget_locked(alternate);
-+              alternate->d_vfs_flags |= DCACHE_REFERENCED;
++              spin_lock(&alternate->d_lock);
++              alternate->d_flags |= DCACHE_REFERENCED;
++              spin_unlock(&alternate->d_lock);
 +              iput(inode);
 +              spin_unlock(&dcache_lock);
 +              return alternate;
@@ -171,7 +173,7 @@ Index: linux-stage/fs/ext3/iopen.c
 +{
 +      const unsigned char *old_name, *new_name;
 +
-+      memcpy(dentry->d_iname, target->d_iname, DNAME_INLINE_LEN);
++      memcpy(dentry->d_iname, target->d_iname, DNAME_INLINE_LEN_MIN);
 +      old_name = target->d_name.name;
 +      new_name = dentry->d_name.name;
 +      if (old_name == target->d_iname)
diff --git a/lustre/kernel_patches/patches/lookup_bdev_init_intent.patch b/lustre/kernel_patches/patches/lookup_bdev_init_intent.patch
new file mode 100644 (file)
index 0000000..06f7939
--- /dev/null
@@ -0,0 +1,11 @@
+diff -rupN linux-2.6.6.old/fs/block_dev.c linux-2.6.6.new/fs/block_dev.c
+--- linux-2.6.6.old/fs/block_dev.c     Mon May 10 05:33:22 2004
++++ linux-2.6.6.new/fs/block_dev.c     Thu Jun 24 20:34:45 2004
+@@ -834,6 +834,7 @@ struct block_device *lookup_bdev(const c
+       if (!path || !*path)
+               return ERR_PTR(-EINVAL);
++      intent_init(&nd.intent, IT_LOOKUP);
+       error = path_lookup(path, LOOKUP_FOLLOW, &nd);
+       if (error)
+               return ERR_PTR(error);
diff --git a/lustre/kernel_patches/patches/nfs-cifs-intent-2.6-vanilla.patch b/lustre/kernel_patches/patches/nfs-cifs-intent-2.6-vanilla.patch
new file mode 100644 (file)
index 0000000..0c4f64b
--- /dev/null
@@ -0,0 +1,117 @@
+Index: linux-2.6.7-vanilla/fs/nfs/dir.c
+===================================================================
+--- linux-2.6.7-vanilla.orig/fs/nfs/dir.c      2004-07-01 12:24:53.588555336 +0300
++++ linux-2.6.7-vanilla/fs/nfs/dir.c   2004-07-01 12:37:42.595648488 +0300
+@@ -778,7 +778,7 @@
+       if (nd->flags & LOOKUP_DIRECTORY)
+               return 0;
+       /* Are we trying to write to a read only partition? */
+-      if (IS_RDONLY(dir) && (nd->intent.open.flags & (O_CREAT|O_TRUNC|FMODE_WRITE)))
++      if (IS_RDONLY(dir) && (nd->intent.it_flags & (O_CREAT|O_TRUNC|FMODE_WRITE)))
+               return 0;
+       return 1;
+ }
+@@ -799,7 +799,7 @@
+       dentry->d_op = NFS_PROTO(dir)->dentry_ops;
+       /* Let vfs_create() deal with O_EXCL */
+-      if (nd->intent.open.flags & O_EXCL)
++      if (nd->intent.it_flags & O_EXCL)
+               goto no_entry;
+       /* Open the file on the server */
+@@ -807,7 +807,7 @@
+       /* Revalidate parent directory attribute cache */
+       nfs_revalidate_inode(NFS_SERVER(dir), dir);
+-      if (nd->intent.open.flags & O_CREAT) {
++      if (nd->intent.it_flags & O_CREAT) {
+               nfs_begin_data_update(dir);
+               inode = nfs4_atomic_open(dir, dentry, nd);
+               nfs_end_data_update(dir);
+@@ -823,7 +823,7 @@
+                               break;
+                       /* This turned out not to be a regular file */
+                       case -ELOOP:
+-                              if (!(nd->intent.open.flags & O_NOFOLLOW))
++                              if (!(nd->intent.it_flags & O_NOFOLLOW))
+                                       goto no_open;
+                       /* case -EISDIR: */
+                       /* case -EINVAL: */
+@@ -857,7 +857,7 @@
+       dir = parent->d_inode;
+       if (!is_atomic_open(dir, nd))
+               goto no_open;
+-      openflags = nd->intent.open.flags;
++      openflags = nd->intent.it_flags;
+       if (openflags & O_CREAT) {
+               /* If this is a negative dentry, just drop it */
+               if (!inode)
+Index: linux-2.6.7-vanilla/fs/nfs/nfs4proc.c
+===================================================================
+--- linux-2.6.7-vanilla.orig/fs/nfs/nfs4proc.c 2004-07-01 12:09:22.000000000 +0300
++++ linux-2.6.7-vanilla/fs/nfs/nfs4proc.c      2004-07-01 12:37:42.598648032 +0300
+@@ -475,17 +475,17 @@
+       struct nfs4_state *state;
+       if (nd->flags & LOOKUP_CREATE) {
+-              attr.ia_mode = nd->intent.open.create_mode;
++              attr.ia_mode = nd->intent.it_create_mode;
+               attr.ia_valid = ATTR_MODE;
+               if (!IS_POSIXACL(dir))
+                       attr.ia_mode &= ~current->fs->umask;
+       } else {
+               attr.ia_valid = 0;
+-              BUG_ON(nd->intent.open.flags & O_CREAT);
++              BUG_ON(nd->intent.it_flags & O_CREAT);
+       }
+       cred = rpcauth_lookupcred(NFS_SERVER(dir)->client->cl_auth, 0);
+-      state = nfs4_do_open(dir, &dentry->d_name, nd->intent.open.flags, &attr, cred);
++      state = nfs4_do_open(dir, &dentry->d_name, nd->intent.it_flags, &attr, cred);
+       put_rpccred(cred);
+       if (IS_ERR(state))
+               return (struct inode *)state;
+Index: linux-2.6.7-vanilla/fs/cifs/dir.c
+===================================================================
+--- linux-2.6.7-vanilla.orig/fs/cifs/dir.c     2004-07-01 12:09:20.000000000 +0300
++++ linux-2.6.7-vanilla/fs/cifs/dir.c  2004-07-01 12:38:17.695312528 +0300
+@@ -175,23 +175,23 @@
+       }
+       if(nd) {
+-              if ((nd->intent.open.flags & O_ACCMODE) == O_RDONLY)
++              if ((nd->intent.it_flags & O_ACCMODE) == O_RDONLY)
+                       desiredAccess = GENERIC_READ;
+-              else if ((nd->intent.open.flags & O_ACCMODE) == O_WRONLY) {
++              else if ((nd->intent.it_flags & O_ACCMODE) == O_WRONLY) {
+                       desiredAccess = GENERIC_WRITE;
+                       write_only = TRUE;
+-              } else if ((nd->intent.open.flags & O_ACCMODE) == O_RDWR) {
++              } else if ((nd->intent.it_flags & O_ACCMODE) == O_RDWR) {
+                       /* GENERIC_ALL is too much permission to request */
+                       /* can cause unnecessary access denied on create */
+                       /* desiredAccess = GENERIC_ALL; */
+                       desiredAccess = GENERIC_READ | GENERIC_WRITE;
+               }
+-              if((nd->intent.open.flags & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL))
++              if((nd->intent.it_flags & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL))
+                       disposition = FILE_CREATE;
+-              else if((nd->intent.open.flags & (O_CREAT | O_TRUNC)) == (O_CREAT | O_TRUNC))
++              else if((nd->intent.it_flags & (O_CREAT | O_TRUNC)) == (O_CREAT | O_TRUNC))
+                       disposition = FILE_OVERWRITE_IF;
+-              else if((nd->intent.open.flags & O_CREAT) == O_CREAT)
++              else if((nd->intent.it_flags & O_CREAT) == O_CREAT)
+                       disposition = FILE_OPEN_IF;
+               else {
+                       cFYI(1,("Create flag not set in create function"));
+@@ -361,7 +361,7 @@
+             parent_dir_inode, direntry->d_name.name, direntry));
+       if(nd) {  /* BB removeme */
+-              cFYI(1,("In lookup nd flags 0x%x open intent flags 0x%x",nd->flags,nd->intent.open.flags));
++              cFYI(1,("In lookup nd flags 0x%x open intent flags 0x%x",nd->flags,nd->intent.it_flags));
+       } /* BB removeme BB */
+       /* BB Add check of incoming data - e.g. frame not longer than maximum SMB - let server check the namelen BB */
diff --git a/lustre/kernel_patches/patches/qlogic-suse-2.4.21-2.patch b/lustre/kernel_patches/patches/qlogic-suse-2.4.21-2.patch
new file mode 100644 (file)
index 0000000..b082a07
--- /dev/null
@@ -0,0 +1,75673 @@
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/BUILD_KERNEL.txt linux-2.4.21-x86_64/drivers/scsi/qla2xxx/BUILD_KERNEL.txt
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/BUILD_KERNEL.txt     1969-12-31 16:00:00.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/BUILD_KERNEL.txt  2004-04-22 19:42:21.000000000 -0700
+@@ -0,0 +1,216 @@
++      Build a Custom kernel with  QLogic Fibre Channel Driver
++      
++1.0  Building a Custom Kernel to Load the Driver
++-------------------------------------------------
++
++Since it is not feasible to construct a single set of kernel build
++instructions for every possible hardware or software configuration,
++the following instructions are provided as an example of how to compile
++the driver into the Linux kernel.  The user may be required to make
++some adjustments in the procedure for their particular system hardware
++or software configuration. The kernel source tree is referenced below
++as /usr/src/linux.
++
++
++This process is only supported on RedHat 7.1/7.2 and SuSE 7.3/
++Enterprise 7.  The kernel source tree is referenced below 
++as /usr/src/linux.  Under the RedHat distribution, the normal
++directory path is /usr/src/linux-2.4.  For SuSE distributions,
++the kernel source is usually located in /usr/src/linux.
++
++Prerequisites:
++
++      a) Verify that both kernel-headers and kernel-source 
++              RPMS are already installed.
++
++              # rpm -qa | grep kernel
++
++         If the kernel-headers and kernel-source RPMs are 
++         not installed, install from the distribution's CD
++         with the following commands:
++
++              # rpm -i kernel-sources*
++              # rpm -i kernel-headers*
++
++1. Make a special QLogic Directory under kernel source tree
++
++      # mkdir /usr/src/linux/drivers/scsi/qla2xxx/
++      # cd /usr/src/linux/drivers/scsi/qla2xxx/
++      # tar xvzf qla2x00src-v6.0.X.tgz
++      # rm -f makefile
++      # cp -f Makefile.kernel Makefile
++
++2. Edit the Makefile under the kernel scsi directory
++
++      # cd /usr/src/linux/drivers/scsi
++      # vi Makefile
++
++      Look for the following line:
++
++              subdir-$(CONFIG_SCSI_AIC7XXX)   += aic7xxx
++
++      And add the following lines: 
++
++              subdir-$(CONFIG_SCSI_QLOGIC_QLA2XXX)   += qla2xxx               
++              ifeq ($(CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2200),y)
++                      SUB_DIRS += qla2xxx
++                      MOD_IN_SUB_DIRS += qla2xxx
++              else
++                      ifeq ($(CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2200),m)
++                              MOD_IN_SUB_DIRS += qla2xxx
++                      endif
++              endif
++              ifeq ($(CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2300),y)
++                      SUB_DIRS += qla2xxx
++                      MOD_IN_SUB_DIRS += qla2xxx
++              else
++                      ifeq ($(CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2300),m)
++                              MOD_IN_SUB_DIRS += qla2xxx
++                      endif
++              endif
++
++      The edited lines should read as:
++
++              subdir-$(CONFIG_SCSI_AIC7XXX)   += aic7xxx
++              subdir-$(CONFIG_SCSI_QLOGIC_QLA2XXX)   += qla2xxx
++              ifeq ($(CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2200),y)
++                      SUB_DIRS += qla2xxx
++                      MOD_IN_SUB_DIRS += qla2xxx
++              else
++                      ifeq ($(CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2200),m)
++                              MOD_IN_SUB_DIRS += qla2xxx
++                      endif
++              endif
++              ifeq ($(CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2300),y)
++                      SUB_DIRS += qla2xxx
++                      MOD_IN_SUB_DIRS += qla2xxx
++              else
++                      ifeq ($(CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2300),m)
++                              MOD_IN_SUB_DIRS += qla2xxx
++                      endif
++              endif
++
++      NOTE: For Redhat Distributions (7.1 and 7.2) :-
++
++      Locate the following line: 
++
++              obj-$(CONFIG_SCSI_QLOGIC_QLA2100) += qla2x00.o
++
++      Add the following lines below that:
++      
++              obj-$(CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2200) += qla2xxx/qla2200.o
++                obj-$(CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2300) += qla2xxx/qla2300.o
++
++      Append the following lines to the end of the Makefile:
++
++              qla2xxx/qla2200.o:
++                      cd qla2xxx; make qla2200.o
++
++              qla2xxx/qla2300.o:
++                      cd qla2xxx; make qla2300.o
++
++      NOTE: For SuSE Distributions (7.2 and 7.3) :-
++
++      Locate the following line: 
++
++              obj-$(CONFIG_SCSI_QLOGIC_QLA2200) += qla2200.o
++              obj-$(CONFIG_SCSI_QLOGIC_QLA2300) += qla2300.o
++
++      Add the following lines below that:
++      
++              obj-$(CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2200) += qla2xxx/qla2200.o
++                obj-$(CONFIG_SCSI_QLOGIC_QLA2XXX_QLA2300) += qla2xxx/qla2300.o
++      
++      Append the following lines to the end of the Makefile:
++
++              qla2xxx/qla2200.o:
++                      cd qla2xxx; make qla2200.o
++
++              qla2xxx/qla2300.o:
++                      cd qla2xxx; make qla2300.o
++
++4. Edit the Config.in file under the kernel scsi directory
++
++      # cd /usr/src/linux/drivers/scsi
++      # vi Config.in
++
++      NOTE: For Redhat Distributions (7.1 and 7.2) :-
++
++      Locate the following lines:
++
++              dep_tristate 'Qlogic QLA 2100 FC SCSI support' CONFIG_SCSI_QLOGIC_QLA2100 $CONFIG_SCSI
++              dep_tristate 'Qlogic QLA 2200 FC SCSI support' CONFIG_SCSI_QLOGIC_QLA2200 $CONFIG_SCSI
++
++      Add the following line below that:
++
++              source drivers/scsi/qla2xxx/Config.in
++
++      NOTE: For SuSE Distributions (7.2 and 7.3) :-
++
++      Locate the following lines:
++
++              dep_tristate 'Qlogic QLA2200 SCSI support' CONFIG_SCSI_QLOGIC_QLA2200 $CONFIG_SCSI
++              dep_tristate 'Qlogic QLA2300 SCSI support' CONFIG_SCSI_QLOGIC_QLA2300 $CONFIG_SCSI
++
++      Add the following lines below that:
++
++              source drivers/scsi/qla2xxx/Config.in
++      
++5. Remove any reference to older QLogic FC drivers
++
++      NOTE: To ensure that the older driver binary included in the original
++            distribution does not interfere with the updated version, please
++            rename the old driver binary as follows:
++
++      For Redhat Distributions (7.2 with 2.4.9-21 or above) :-
++
++              # cd /usr/src/linux/drivers/addon/qla2200
++              # mv qla2200.o qla2200_rh.o
++              # mv qla2300.o qla2300_rh.o
++              # cd /lib/modules/<kernel_version>/kernel/drivers/addon/qla2200
++              # mv qla2200.o qla2200_rh.o
++              # mv qla2300.o qla2300_rh.o
++
++      For SuSE Distributions (Enterprise 7 and above, 7.3 and above) :-
++
++              # cd /usr/src/linux/drivers/scsi
++              # mv qla2200.o qla2200_su.o
++              # mv qla2300.o qla2300_su.o
++              # cd /lib/modules/<kernel_version>/kernel/drivers/scsi
++              # mv qla2200.o qla2200_su.o
++              # mv qla2300.o qla2300_su.o
++
++6. Configure the kernel to load the new QLogic driver.
++
++      # cd /usr/src/linux
++      # make menuconfig
++
++      - Select "SCSI Support" <Enter>
++
++      - Select "SCSI Generic Support" <Space bar> <Space bar>
++
++      - Select "SCSI low-level drivers" <Enter>
++      
++      - Select "Qlogic QLA 2XXX v6 FC SCSI support" <Enter>
++
++      - Select "Qlogic QLA 2200 v6 FC SCSI support" <Space bar> <Space bar>
++
++      OR
++
++      - Select "Qlogic QLA 2300 v6 FC SCSI support" <Space bar> <Space bar>
++      
++      - Select Exit to go back to the SCSI Support menu.
++
++      - Select Exit to go back to the Main Menu.
++
++      - Select Exit to exit the Main Menu.
++
++      The system prompts: "Do you wish to save your new kernel 
++      configuration?"  Select "Yes." The system saves a new config 
++      file called ".config" in the current directory.
++
++7. Build Kernel 
++
++       # make dep bzImage modules modules_install
++
++
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/drvrinstall linux-2.4.21-x86_64/drivers/scsi/qla2xxx/drvrinstall
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/drvrinstall  1969-12-31 16:00:00.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/drvrinstall       2004-04-22 19:42:21.000000000 -0700
+@@ -0,0 +1,9 @@
++#!/bin/bash
++
++# Install QLA2X00 driver.
++
++echo "Extracting QLogic driver source..."
++
++tar xfz ./qla2x00src-*.tgz
++
++echo "Done."
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/exioct.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/exioct.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/exioct.h     2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/exioct.h  2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+@@ -195,6 +195,8 @@
+  *        EXT_SC_GET_BEACON_STATE,EXT_SC_SET_BEACON_STATE for the
+  *        led blinking feature.
+  *
++ * Rev. 5.30     July 21, 2003
++ * RL - Added new statistics fields in HBA_PORT_STAT struct.
+  */
+ #ifndef       _EXIOCT_H
+@@ -651,6 +653,7 @@ typedef struct _EXT_DEST_ADDR {
+ #define       EXT_DEF_DESTTYPE_SCSI                   5
+ /* Statistic */
++#if defined(linux)                                    /* Linux */
+ typedef struct _EXT_HBA_PORT_STAT {
+       UINT32    ControllerErrorCount;         /* 4 */
+       UINT32    DeviceErrorCount;             /* 4 */
+@@ -664,8 +667,35 @@ typedef struct _EXT_HBA_PORT_STAT {
+       UINT32    PrimitiveSeqProtocolErrorCount;/* 4 */
+       UINT32    InvalidTransmissionWordCount; /* 4 */
+       UINT32    InvalidCRCCount;              /* 4 */
+-      UINT32    Reserved[16];                 /* 64 */
++      uint64_t  InputRequestCount;            /* 8 */
++      uint64_t  OutputRequestCount;           /* 8 */
++      uint64_t  ControlRequestCount;          /* 8 */
++      uint64_t  InputMBytes;                  /* 8 */
++      uint64_t  OutputMBytes;                 /* 8 */
++      UINT32    Reserved[6];                  /* 24 */
+ } EXT_HBA_PORT_STAT, *PEXT_HBA_PORT_STAT;     /* 112 */
++#else
++typedef struct _EXT_HBA_PORT_STAT {
++      UINT32    ControllerErrorCount;         /* 4 */
++      UINT32    DeviceErrorCount;             /* 4 */
++      UINT32    TotalIoCount;                 /* 4 */
++      UINT32    TotalMBytes;                  /* 4; MB of data processed */
++      UINT32    TotalLipResets;               /* 4; Total no. of LIP Reset */
++      UINT32    Reserved2;                    /* 4 */
++      UINT32    TotalLinkFailures;            /* 4 */
++      UINT32    TotalLossOfSync;              /* 4 */
++      UINT32    TotalLossOfSignals;           /* 4 */
++      UINT32    PrimitiveSeqProtocolErrorCount;/* 4 */
++      UINT32    InvalidTransmissionWordCount; /* 4 */
++      UINT32    InvalidCRCCount;              /* 4 */
++      UINT64    InputRequestCount;            /* 8 */
++      UINT64    OutputRequestCount;           /* 8 */
++      UINT64    ControlRequestCount;          /* 8 */
++      UINT64    InputMBytes;                  /* 8 */
++      UINT64    OutputMBytes;                 /* 8 */
++      UINT32    Reserved[6];                  /* 24 */
++} EXT_HBA_PORT_STAT, *PEXT_HBA_PORT_STAT;     /* 112 */
++#endif
+ /* Driver property */
+@@ -757,7 +787,8 @@ typedef struct _EXT_SCSI_PASSTHRU {
+       UINT8           Direction;
+       UINT8           CdbLength;
+       UINT8           Cdb[EXT_DEF_SCSI_PASSTHRU_CDB_LENGTH];
+-        UINT32          Reserved[14];
++        UINT32          Timeout;
++        UINT32          Reserved[13];
+         UINT16          Reserved2;
+         UINT16          SenseLength;
+       UINT8           SenseData[256];
+@@ -769,7 +800,8 @@ typedef struct _EXT_FC_SCSI_PASSTHRU {
+       UINT8           Direction;
+       UINT8           CdbLength;
+       UINT8           Cdb[EXT_DEF_SCSI_PASSTHRU_CDB_LENGTH];
+-        UINT32          Reserved[14];
++        UINT32          Timeout;
++        UINT32          Reserved[13];
+         UINT16          Reserved2;
+         UINT16          SenseLength;
+       UINT8           SenseData[256];
+@@ -821,6 +853,7 @@ typedef struct _EXT_ASYNC_EVENT {
+ #define       EXT_DEF_GET_HIDDEN_DEVICE       0x4
+ #define       EXT_DEF_GET_FABRIC_DEVICE       0x8
+ #define       EXT_DEF_GET_LOOP_DEVICE         0x10
++#define EXT_DEF_GET_TRUE_NN_DEVICE    0x1000
+ /* Each entry in device database */
+ typedef struct _EXT_DEVICEDATAENTRY
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/exioctln.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/exioctln.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/exioctln.h   2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/exioctln.h        2004-04-22 19:42:21.000000000 -0700
+@@ -149,7 +149,7 @@ typedef struct  track_instance {
+     _IOWR(QLMULTIPATH_MAGIC, idx, sizeof(EXT_IOCTL))
+ #ifndef APILIB
+-  #if CONFIG_PPC64
++  #if defined(QLA_CONFIG_COMPAT)
+   #define     QL_IOCTL_CMD(idx)       (QL_IOCTL_BASE(idx) - 0x40000)
+   #else
+   #define     QL_IOCTL_CMD(idx)       QL_IOCTL_BASE(idx)
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/inioct.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/inioct.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/inioct.h     2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/inioct.h  2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/libinstall linux-2.4.21-x86_64/drivers/scsi/qla2xxx/libinstall
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/libinstall   1969-12-31 16:00:00.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/libinstall        2004-04-22 19:42:21.000000000 -0700
+@@ -0,0 +1,77 @@
++#!/bin/sh
++
++# Install QLSDM library. Check /etc/hba.conf
++
++echo "Setting up QLogic HBA API library..."
++echo "Please make sure the /usr/lib/libqlsdm.so file is not in use."
++
++APIDIR=ApiPkg
++
++mkdir -p ${APIDIR}
++cd ${APIDIR}
++
++tar xfz ../qlapi*rel.tgz
++
++# Make sure we install with correct permission
++
++chmod 500 ./lib/*
++
++# First, some clean up.
++MAIN_QLLIB_COPY=./lib/libqlsdm.so
++rm -f $MAIN_QLLIB_COPY
++rm -f /usr/lib/libqlsdm.a
++
++# Right now we only support/check for IA32 and IA64 bit platforms.
++# Later need to add support for PPC64
++
++if [ $HOSTTYPE == ia64 ]
++then
++        ln ./lib/libqlsdm-ia64.so $MAIN_QLLIB_COPY
++else
++      ln ./lib/libqlsdm-ia32.so $MAIN_QLLIB_COPY
++fi
++
++cp --suffix=.bak --backup=simple $MAIN_QLLIB_COPY /usr/lib
++
++# Now check the hba.conf file
++
++if [ -s /etc/hba.conf ]
++then
++
++    if [ -r /etc/hba.conf ] && [ -w /etc/hba.conf ]
++    then
++        grep -v qla2x00 /etc/hba.conf > ./tmp.conf
++
++        if [ -s ./tmp.conf ]
++        then
++            rm -f /etc/hba.conf.bak
++            mv /etc/hba.conf /etc/hba.conf.bak
++            sed '$r ./hba.conf' ./tmp.conf > /etc/hba.conf
++        fi
++
++        rm ./tmp.conf
++    else
++        echo "Cannot update /etc/hba.conf. Permission denied."
++        exit
++    fi
++
++else
++    cp ./hba.conf /etc
++fi
++
++# Now check the library data file
++
++if [ -s /tmp/qlsdm.dat ]
++then
++    if [ -r /tmp/qlsdm.dat ] && [ -w /tmp/qlsdm.dat ]
++    then
++      rm -f /tmp/qlsdm.dat
++    else
++        echo "Cannot delete /tmp/qlsdm.dat. Permission denied."
++        exit
++    fi
++fi
++
++echo "Done."
++
++
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/libremove linux-2.4.21-x86_64/drivers/scsi/qla2xxx/libremove
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/libremove    1969-12-31 16:00:00.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/libremove 2004-04-22 19:42:21.000000000 -0700
+@@ -0,0 +1,13 @@
++#!/bin/bash
++
++# Remove QLSDM library. Edit /etc/hba.conf
++
++echo "Removing QLogic HBA API library..."
++
++rm -rf /usr/lib/libqlsdm.so
++grep -v qla2x00 /etc/hba.conf > /tmp/tmp.conf
++cp --suffix=.bak --backup=simple /tmp/tmp.conf /etc/hba.conf
++rm /tmp/tmp.conf
++rm -f /tmp/qlsdm.dat
++
++echo "Done."
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/listops.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/listops.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/listops.h    2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/listops.h 2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+@@ -31,6 +31,47 @@
+               pos = n, n = pos->next )
+ #endif
++
++#if !defined(list_for_each_entry)
++#define list_for_each_entry(pos, head, member)                          \
++      for (pos = list_entry((head)->next, typeof(*pos), member);      \
++          &pos->member != (head);                                    \
++          pos = list_entry(pos->member.next, typeof(*pos), member))
++
++#endif
++#if !defined(list_for_each_entry_safe)
++#define list_for_each_entry_safe(pos, n, head, member)                        \
++      for (pos = list_entry((head)->next, typeof(*pos), member),      \
++          n = list_entry(pos->member.next, typeof(*pos), member);     \
++          &pos->member != (head);                                     \
++          pos = n, n = list_entry(n->member.next, typeof(*n), member))
++#endif
++
++/* Non-standard definitions. */
++static inline void __qla_list_splice(struct list_head *list,
++    struct list_head *head)
++{
++      struct list_head        *first = list->next;
++      struct  list_head       *last = list->prev;
++      struct  list_head       *at = head->next;
++
++      first->prev = head;
++      head->next = first;
++
++      last->next = at;
++      at->prev = last;
++
++}
++
++static inline void qla_list_splice_init(struct list_head *list,
++    struct list_head *head)
++{
++      if (!list_empty(list)) {
++              __qla_list_splice(list, head);
++              INIT_LIST_HEAD(list);
++      }
++}
++
+ /* __add_to_done_queue()
+  * 
+  * Place SRB command on done queue.
+@@ -96,7 +137,6 @@ __add_to_retry_queue(struct scsi_qla_hos
+         list_add_tail(&sp->list,&ha->retry_queue);
+         ha->retry_q_cnt++;
+         sp->flags |= SRB_WATCHDOG;
+-        ha->flags.watchdog_enabled = TRUE;
+         sp->state = SRB_RETRY_STATE;
+       sp->ha = ha;
+ }
+@@ -177,8 +217,6 @@ __del_from_retry_queue(struct scsi_qla_h
+ {
+         list_del_init(&sp->list);
+-        if (list_empty(&ha->retry_queue))
+-                ha->flags.watchdog_enabled = FALSE;
+         sp->flags &= ~(SRB_WATCHDOG | SRB_BUSY);
+         sp->state = SRB_NO_QUEUE_STATE;
+         ha->retry_q_cnt--;
+@@ -309,15 +347,20 @@ __add_to_pending_queue_head(struct scsi_
+       sp->state = SRB_PENDING_STATE;
+ }
+-static inline void
++/* returns 1 if the queue was empty before the add */
++static inline int
+ add_to_pending_queue(struct scsi_qla_host *ha, srb_t *sp)
+ {
+       unsigned long flags;
+-
++      int ret;
++      
+       spin_lock_irqsave(&ha->list_lock, flags);
++      ret = list_empty(&ha->pending_queue);   
+       __add_to_pending_queue(ha, sp);
+       spin_unlock_irqrestore(&ha->list_lock, flags);
++      return ret;
+ }
++
+ static inline void
+ add_to_pending_queue_head(struct scsi_qla_host *ha, srb_t *sp)
+ {
+@@ -394,4 +437,4 @@ del_from_pending_queue(struct scsi_qla_h
+         spin_unlock_irqrestore(&ha->list_lock, flags);
+ }
+-
++ 
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/Makefile linux-2.4.21-x86_64/drivers/scsi/qla2xxx/Makefile
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/Makefile     2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/Makefile  2004-04-22 19:42:21.000000000 -0700
+@@ -16,6 +16,52 @@ ifeq ($(CONFIG_SMP),y)
+       QLA_FLAGS += -D__SMP__ -DCONFIG_SMP
+ endif
++SHT_FLAGS := $(CFLAGS)
++check_sht = $(shell \
++      echo "\#include <linux/config.h>" > check_sht.c ; \
++      echo "\#include <linux/version.h>" >> check_sht.c ; \
++      echo "\#include <linux/types.h>" >> check_sht.c ; \
++      echo "\#include <linux/init.h>" >> check_sht.c ; \
++      echo "\#include <linux/blk.h>" >> check_sht.c ; \
++      echo "\#include \"sd.h\"" >> check_sht.c ; \
++      echo "\#include \"scsi.h\"" >> check_sht.c ; \
++      echo "\#include \"hosts.h\"" >> check_sht.c ; \
++      echo "struct SHT test_sht;" >> check_sht.c ; \
++      echo "void test_func(void) { test_sht.$(1) = 1; }" >> check_sht.c ; \
++      if $(CC) $(SHT_FLAGS) -o /dev/null -c check_sht.c > /dev/null 2>&1 ; \
++      then \
++              echo "$(2)" ; \
++      fi ; \
++      rm check_sht*)
++
++QLA_FLAGS += $(call check_sht,highmem_io,-DSHT_HAS_HIGHMEM_IO)
++QLA_FLAGS += $(call check_sht,can_dma_32,-DSHT_HAS_CAN_DMA_32)
++QLA_FLAGS += $(call check_sht,single_sg_ok,-DSHT_HAS_SINGLE_SG_OK)
++QLA_FLAGS += $(call check_sht,can_do_varyio,-DSHT_HAS_CAN_DO_VARYIO)
++QLA_FLAGS += $(call check_sht,vary_io,-DSHT_HAS_VARY_IO)
++QLA_FLAGS += $(call check_sht,need_plug_timer,-DSHT_HAS_NEED_PLUG_TIMER)
++
++SH_FLAGS := $(CFLAGS)
++check_sh = $(shell \
++      echo "\#include <linux/config.h>" > check_sh.c ; \
++      echo "\#include <linux/version.h>" >> check_sh.c ; \
++      echo "\#include <linux/types.h>" >> check_sh.c ; \
++      echo "\#include <linux/init.h>" >> check_sh.c ; \
++      echo "\#include <linux/blk.h>" >> check_sh.c ; \
++      echo "\#include \"sd.h\"" >> check_sh.c ; \
++      echo "\#include \"scsi.h\"" >> check_sh.c ; \
++      echo "\#include \"hosts.h\"" >> check_sh.c ; \
++      echo "struct Scsi_Host test_sh;" >> check_sh.c ; \
++      echo "void test_func(void) { test_sh.$(1) = 0; }" >> check_sh.c ; \
++      if $(CC) $(SH_FLAGS) -o /dev/null -c check_sh.c > /dev/null 2>&1 ; \
++      then \
++              echo "$(2)" ; \
++      fi ; \
++      rm check_sh*)
++
++QLA_FLAGS += $(call check_sh,host_lock,-DSH_HAS_HOST_LOCK)
++QLA_FLAGS += $(call check_sh,can_queue_mask,-DSH_HAS_CAN_QUEUE_MASK)
++
+ qla2100.o: $(SRC_FILES) 
+       $(CC) $(CFLAGS) $(QLA_FLAGS) -DISP2100 -c qla2100.c -o $@
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/ql2100_fw.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/ql2100_fw.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/ql2100_fw.h  2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/ql2100_fw.h       2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/ql2200_fw.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/ql2200_fw.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/ql2200_fw.h  2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/ql2200_fw.h       2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+@@ -25,7 +25,7 @@
+  *                                                                    *
+  ************************************************************************/
+ /*
+- *    Firmware Version 2.02.04 (08:24 Feb 28, 2003)
++ *    Firmware Version 2.02.06 (08:46 Jun 26, 2003)
+  */
+ #ifdef UNIQUE_FW_NAME
+@@ -35,15 +35,15 @@ unsigned short risc_code_version = 2*102
+ #endif
+ #ifdef UNIQUE_FW_NAME
+-unsigned char fw2200tp_version_str[] = {2,2,4};
++unsigned char fw2200tp_version_str[] = {2,2,6};
+ #else
+-unsigned char firmware_version[] = {2,2,4};
++unsigned char firmware_version[] = {2,2,6};
+ #endif
+ #ifdef UNIQUE_FW_NAME
+-#define fw2200tp_VERSION_STRING "2.02.04"
++#define fw2200tp_VERSION_STRING "2.02.06"
+ #else
+-#define FW_VERSION_STRING "2.02.04"
++#define FW_VERSION_STRING "2.02.06"
+ #endif
+ #ifdef UNIQUE_FW_NAME
+@@ -57,17 +57,17 @@ unsigned short fw2200tp_code01[] = { 
+ #else
+ unsigned short risc_code01[] = { 
+ #endif
+-      0x0470, 0x0000, 0x0000, 0xa463, 0x0000, 0x0002, 0x0002, 0x0004,
++      0x0470, 0x0000, 0x0000, 0xa46f, 0x0000, 0x0002, 0x0002, 0x0006,
+       0x0017, 0x2043, 0x4f50, 0x5952, 0x4947, 0x4854, 0x2032, 0x3030,
+       0x3120, 0x514c, 0x4f47, 0x4943, 0x2043, 0x4f52, 0x504f, 0x5241,
+       0x5449, 0x4f4e, 0x2049, 0x5350, 0x3232, 0x3030, 0x2046, 0x6972,
+       0x6d77, 0x6172, 0x6520, 0x2056, 0x6572, 0x7369, 0x6f6e, 0x2030,
+-      0x322e, 0x3032, 0x2e30, 0x3420, 0x2020, 0x2020, 0x2400, 0x20c1,
++      0x322e, 0x3032, 0x2e30, 0x3620, 0x2020, 0x2020, 0x2400, 0x20c1,
+       0x0005, 0x2001, 0x017f, 0x2003, 0x0000, 0x20c9, 0xbaff, 0x2091,
+       0x2000, 0x2059, 0x0000, 0x2b78, 0x7823, 0x0004, 0x2089, 0x296a,
+       0x2051, 0xb500, 0x2a70, 0x2029, 0xed00, 0x2031, 0xffff, 0x2039,
+-      0xece9, 0x2021, 0x0200, 0x0804, 0x1468, 0x20a1, 0xb463, 0xa00e,
+-      0x20a9, 0x089d, 0x41a4, 0x3400, 0x7562, 0x7666, 0x775e, 0x746a,
++      0xece9, 0x2021, 0x0200, 0x0804, 0x1468, 0x20a1, 0xb46f, 0xa00e,
++      0x20a9, 0x0891, 0x41a4, 0x3400, 0x7562, 0x7666, 0x775e, 0x746a,
+       0x746e, 0x20a1, 0xbd00, 0x7164, 0x810d, 0x810d, 0x810d, 0x810d,
+       0xa18c, 0x000f, 0x2001, 0x000b, 0xa112, 0xa00e, 0x21a8, 0x41a4,
+       0x3400, 0x8211, 0x1dd8, 0x7164, 0x3400, 0xa102, 0x0120, 0x0218,
+@@ -76,65 +76,65 @@ unsigned short risc_code01[] = { 
+       0xa112, 0x20a1, 0x1000, 0xa00e, 0x21a8, 0x41a4, 0x8211, 0x1de0,
+       0x2009, 0xb500, 0x3400, 0xa102, 0x0120, 0x0218, 0x20a8, 0xa00e,
+       0x41a4, 0x080c, 0x1411, 0x080c, 0x1632, 0x080c, 0x17cf, 0x080c,
+-      0x1fa2, 0x080c, 0x4c00, 0x080c, 0x85b9, 0x080c, 0x15bb, 0x080c,
+-      0x2ec4, 0x080c, 0x5d8b, 0x080c, 0x5342, 0x080c, 0x68cf, 0x080c,
+-      0x2510, 0x080c, 0x6b62, 0x080c, 0x63bc, 0x080c, 0x23ca, 0x080c,
++      0x1fa2, 0x080c, 0x4bff, 0x080c, 0x85bf, 0x080c, 0x15bb, 0x080c,
++      0x2ec4, 0x080c, 0x5d8a, 0x080c, 0x5341, 0x080c, 0x68ce, 0x080c,
++      0x2510, 0x080c, 0x6b61, 0x080c, 0x63bb, 0x080c, 0x23ca, 0x080c,
+       0x24de, 0x2091, 0x3009, 0x7823, 0x0000, 0x1004, 0x10c5, 0x7820,
+       0xa086, 0x0002, 0x1150, 0x7823, 0x4000, 0x0e04, 0x10bd, 0x781b,
+       0x0001, 0x2091, 0x5000, 0x2091, 0x4080, 0x2a70, 0x7003, 0x0000,
+-      0x2a70, 0x7000, 0xa08e, 0x0003, 0x1158, 0x080c, 0x3f09, 0x080c,
+-      0x2eeb, 0x080c, 0x5dd9, 0x080c, 0x54f1, 0x080c, 0x68fa, 0x0c80,
++      0x2a70, 0x7000, 0xa08e, 0x0003, 0x1158, 0x080c, 0x3f08, 0x080c,
++      0x2eeb, 0x080c, 0x5dd8, 0x080c, 0x54f0, 0x080c, 0x68f9, 0x0c80,
+       0x000b, 0x0c98, 0x10e4, 0x10e5, 0x1210, 0x10e2, 0x12dd, 0x140e,
+       0x140f, 0x1410, 0x080c, 0x1515, 0x0005, 0x0126, 0x00f6, 0x2091,
+       0x8000, 0x7000, 0xa086, 0x0001, 0x1904, 0x11ed, 0x080c, 0x1588,
+-      0x080c, 0x5ad0, 0x0150, 0x080c, 0x5af6, 0x15c0, 0x2079, 0x0100,
+-      0x7828, 0xa085, 0x1800, 0x782a, 0x0488, 0x080c, 0x5a08, 0x7000,
++      0x080c, 0x5acf, 0x0150, 0x080c, 0x5af5, 0x15c0, 0x2079, 0x0100,
++      0x7828, 0xa085, 0x1800, 0x782a, 0x0488, 0x080c, 0x5a07, 0x7000,
+       0xa086, 0x0001, 0x1904, 0x11ed, 0x708c, 0xa086, 0x0028, 0x1904,
+       0x11ed, 0x2001, 0x0161, 0x2003, 0x0001, 0x2079, 0x0100, 0x7827,
+-      0xffff, 0x7a28, 0xa295, 0x1e2f, 0x7a2a, 0x2011, 0x59a3, 0x080c,
+-      0x699d, 0x2011, 0x5996, 0x080c, 0x6a5d, 0x2011, 0x59e5, 0x080c,
+-      0x699d, 0x2011, 0x4add, 0x080c, 0x699d, 0x2011, 0x8030, 0x2019,
+-      0x0000, 0x708b, 0x0000, 0x080c, 0x1de9, 0x00e8, 0x080c, 0x4490,
+-      0x2079, 0x0100, 0x7844, 0xa005, 0x1904, 0x11ed, 0x2011, 0x4add,
+-      0x080c, 0x699d, 0x2011, 0x59e5, 0x080c, 0x699d, 0x080c, 0x1de9,
++      0xffff, 0x7a28, 0xa295, 0x1e2f, 0x7a2a, 0x2011, 0x59a2, 0x080c,
++      0x699c, 0x2011, 0x5995, 0x080c, 0x6a5c, 0x2011, 0x59e4, 0x080c,
++      0x699c, 0x2011, 0x4adc, 0x080c, 0x699c, 0x2011, 0x8030, 0x2019,
++      0x0000, 0x708b, 0x0000, 0x080c, 0x1de9, 0x00e8, 0x080c, 0x448f,
++      0x2079, 0x0100, 0x7844, 0xa005, 0x1904, 0x11ed, 0x2011, 0x4adc,
++      0x080c, 0x699c, 0x2011, 0x59e4, 0x080c, 0x699c, 0x080c, 0x1de9,
+       0x2001, 0xb78d, 0x2004, 0x780e, 0x7840, 0xa084, 0xfffb, 0x7842,
+-      0x2011, 0x8010, 0x73cc, 0x080c, 0x3ecd, 0x723c, 0xc284, 0x723e,
+-      0x2001, 0xb50c, 0x200c, 0xc1ac, 0x2102, 0x080c, 0x7f36, 0x2011,
+-      0x0004, 0x080c, 0x9c5a, 0x080c, 0x524e, 0x080c, 0x5ad0, 0x0158,
+-      0x080c, 0x4be9, 0x0140, 0x708b, 0x0001, 0x70c7, 0x0000, 0x080c,
+-      0x462d, 0x0804, 0x11ed, 0x080c, 0x530a, 0x0120, 0x7a0c, 0xc2b4,
+-      0x7a0e, 0x0060, 0x7073, 0x0000, 0x080c, 0xa002, 0x70d4, 0xd09c,
+-      0x1128, 0x70a0, 0xa005, 0x0110, 0x080c, 0x4bc7, 0x70df, 0x0000,
+-      0x70db, 0x0000, 0x72d4, 0x080c, 0x5ad0, 0x1178, 0x2011, 0x0000,
++      0x2011, 0x8010, 0x73cc, 0x080c, 0x3ecc, 0x723c, 0xc284, 0x723e,
++      0x2001, 0xb50c, 0x200c, 0xc1ac, 0x2102, 0x080c, 0x7f35, 0x2011,
++      0x0004, 0x080c, 0x9c60, 0x080c, 0x524d, 0x080c, 0x5acf, 0x0158,
++      0x080c, 0x4be8, 0x0140, 0x708b, 0x0001, 0x70c7, 0x0000, 0x080c,
++      0x462c, 0x0804, 0x11ed, 0x080c, 0x5309, 0x0120, 0x7a0c, 0xc2b4,
++      0x7a0e, 0x0060, 0x7073, 0x0000, 0x080c, 0xa008, 0x70d4, 0xd09c,
++      0x1128, 0x70a0, 0xa005, 0x0110, 0x080c, 0x4bc6, 0x70df, 0x0000,
++      0x70db, 0x0000, 0x72d4, 0x080c, 0x5acf, 0x1178, 0x2011, 0x0000,
+       0x0016, 0x080c, 0x28eb, 0x2019, 0xb78f, 0x211a, 0x001e, 0x7053,
+       0xffff, 0x7057, 0x00ef, 0x7077, 0x0000, 0x2079, 0xb552, 0x7804,
+-      0xd0ac, 0x0108, 0xc295, 0x72d6, 0x080c, 0x5ad0, 0x0118, 0xa296,
+-      0x0004, 0x0548, 0x2011, 0x0001, 0x080c, 0x9c5a, 0x709b, 0x0000,
++      0xd0ac, 0x0108, 0xc295, 0x72d6, 0x080c, 0x5acf, 0x0118, 0xa296,
++      0x0004, 0x0548, 0x2011, 0x0001, 0x080c, 0x9c60, 0x709b, 0x0000,
+       0x709f, 0xffff, 0x7003, 0x0002, 0x2079, 0x0100, 0x7827, 0x0003,
+       0x7828, 0xa085, 0x0003, 0x782a, 0x00fe, 0x080c, 0x2ab8, 0x2011,
+-      0x0005, 0x080c, 0x8076, 0x080c, 0x7174, 0x080c, 0x5ad0, 0x0148,
++      0x0005, 0x080c, 0x8075, 0x080c, 0x7173, 0x080c, 0x5acf, 0x0148,
+       0x00c6, 0x2061, 0x0100, 0x0016, 0x080c, 0x28eb, 0x61e2, 0x001e,
+       0x00ce, 0x012e, 0x0420, 0x709b, 0x0000, 0x709f, 0xffff, 0x7003,
+       0x0002, 0x00f6, 0x2079, 0x0100, 0x7827, 0x0003, 0x7828, 0xa085,
+-      0x0003, 0x782a, 0x00fe, 0x2011, 0x0005, 0x080c, 0x8076, 0x080c,
+-      0x7174, 0x080c, 0x5ad0, 0x0148, 0x00c6, 0x2061, 0x0100, 0x0016,
++      0x0003, 0x782a, 0x00fe, 0x2011, 0x0005, 0x080c, 0x8075, 0x080c,
++      0x7173, 0x080c, 0x5acf, 0x0148, 0x00c6, 0x2061, 0x0100, 0x0016,
+       0x080c, 0x28eb, 0x61e2, 0x001e, 0x00ce, 0x00fe, 0x012e, 0x0005,
+-      0x00c6, 0x080c, 0x5ad0, 0x1118, 0x20a9, 0x0100, 0x0010, 0x20a9,
+-      0x0082, 0x080c, 0x5ad0, 0x1118, 0x2009, 0x0000, 0x0010, 0x2009,
++      0x00c6, 0x080c, 0x5acf, 0x1118, 0x20a9, 0x0100, 0x0010, 0x20a9,
++      0x0082, 0x080c, 0x5acf, 0x1118, 0x2009, 0x0000, 0x0010, 0x2009,
+       0x007e, 0x080c, 0x2d97, 0x8108, 0x1f04, 0x1201, 0x00ce, 0x7073,
+       0x0000, 0x7074, 0xa084, 0x00ff, 0x7076, 0x70a3, 0x0000, 0x0005,
+       0x0126, 0x2091, 0x8000, 0x7000, 0xa086, 0x0002, 0x1904, 0x12db,
+-      0x709c, 0xa086, 0xffff, 0x0130, 0x080c, 0x2ab8, 0x080c, 0x7174,
++      0x709c, 0xa086, 0xffff, 0x0130, 0x080c, 0x2ab8, 0x080c, 0x7173,
+       0x0804, 0x12db, 0x70d4, 0xd0ac, 0x1110, 0xd09c, 0x0540, 0xd084,
+       0x0530, 0x0006, 0x0016, 0x2001, 0x0103, 0x2009, 0xb78d, 0x210c,
+       0x2102, 0x001e, 0x000e, 0xd08c, 0x01d0, 0x70d8, 0xa086, 0xffff,
+-      0x0190, 0x080c, 0x2c17, 0x080c, 0x7174, 0x70d4, 0xd094, 0x1904,
++      0x0190, 0x080c, 0x2c17, 0x080c, 0x7173, 0x70d4, 0xd094, 0x1904,
+       0x12db, 0x2011, 0x0001, 0x2019, 0x0000, 0x080c, 0x2c4f, 0x080c,
+-      0x7174, 0x0804, 0x12db, 0x70dc, 0xa005, 0x1904, 0x12db, 0x7098,
++      0x7173, 0x0804, 0x12db, 0x70dc, 0xa005, 0x1904, 0x12db, 0x7098,
+       0xa005, 0x1904, 0x12db, 0x70d4, 0xd0a4, 0x0118, 0xd0b4, 0x0904,
+-      0x12db, 0x080c, 0x530a, 0x1904, 0x12db, 0x2001, 0xb553, 0x2004,
++      0x12db, 0x080c, 0x5309, 0x1904, 0x12db, 0x2001, 0xb553, 0x2004,
+       0xd0ac, 0x01c8, 0x0156, 0x00c6, 0x20a9, 0x007f, 0x2009, 0x0000,
+-      0x0016, 0x080c, 0x4faa, 0x1118, 0x6000, 0xd0ec, 0x1138, 0x001e,
++      0x0016, 0x080c, 0x4fa9, 0x1118, 0x6000, 0xd0ec, 0x1138, 0x001e,
+       0x8108, 0x1f04, 0x1268, 0x00ce, 0x015e, 0x0028, 0x001e, 0x00ce,
+       0x015e, 0x0804, 0x12db, 0x0006, 0x0016, 0x2001, 0x0103, 0x2009,
+       0xb78d, 0x210c, 0x2102, 0x001e, 0x000e, 0x71a8, 0x81ff, 0x11b0,
+@@ -143,55 +143,55 @@ unsigned short risc_code01[] = { 
+       0x8007, 0x7174, 0x810f, 0x20a9, 0x0002, 0x40a1, 0x20a1, 0xb7d2,
+       0x2009, 0x0000, 0x080c, 0x14fb, 0x2001, 0x0000, 0x810f, 0x20a9,
+       0x0002, 0x40a1, 0x7030, 0xc08c, 0x7032, 0x7003, 0x0003, 0x709f,
+-      0xffff, 0x080c, 0x1581, 0xa006, 0x080c, 0x27c3, 0x080c, 0x3f3f,
+-      0x00f6, 0x2079, 0x0100, 0x080c, 0x5af6, 0x0150, 0x080c, 0x5ad0,
++      0xffff, 0x080c, 0x1581, 0xa006, 0x080c, 0x27c3, 0x080c, 0x3f3e,
++      0x00f6, 0x2079, 0x0100, 0x080c, 0x5af5, 0x0150, 0x080c, 0x5acf,
+       0x7828, 0x0118, 0xa084, 0xe1ff, 0x0010, 0xa084, 0xffdf, 0x782a,
+       0x00fe, 0x2001, 0xb7e1, 0x2004, 0xa086, 0x0005, 0x1120, 0x2011,
+-      0x0000, 0x080c, 0x8076, 0x2011, 0x0000, 0x080c, 0x8080, 0x080c,
+-      0x7174, 0x080c, 0x7231, 0x012e, 0x0005, 0x0016, 0x0046, 0x00f6,
++      0x0000, 0x080c, 0x8075, 0x2011, 0x0000, 0x080c, 0x807f, 0x080c,
++      0x7173, 0x080c, 0x7230, 0x012e, 0x0005, 0x0016, 0x0046, 0x00f6,
+       0x0126, 0x2091, 0x8000, 0x2079, 0x0100, 0x2009, 0xb534, 0x2104,
+-      0xa005, 0x1110, 0x080c, 0x2917, 0x2009, 0x00f7, 0x080c, 0x4bb0,
++      0xa005, 0x1110, 0x080c, 0x2917, 0x2009, 0x00f7, 0x080c, 0x4baf,
+       0x7940, 0xa18c, 0x0010, 0x7942, 0x7924, 0xd1b4, 0x0110, 0x7827,
+       0x0040, 0xd19c, 0x0110, 0x7827, 0x0008, 0x0006, 0x0036, 0x0156,
+-      0x7954, 0xd1ac, 0x1904, 0x134b, 0x080c, 0x5ae2, 0x0158, 0x080c,
+-      0x5af6, 0x1128, 0x2001, 0xb79e, 0x2003, 0x0000, 0x0070, 0x080c,
+-      0x5ad8, 0x0dc0, 0x2001, 0xb79e, 0x2003, 0xaaaa, 0x2001, 0xb79f,
+-      0x2003, 0x0001, 0x080c, 0x5a08, 0x0058, 0x080c, 0x5ad0, 0x0140,
+-      0x2009, 0x00f8, 0x080c, 0x4bb0, 0x7843, 0x0090, 0x7843, 0x0010,
+-      0x20a9, 0x09c4, 0x7820, 0xd09c, 0x1138, 0x080c, 0x5ad0, 0x0138,
++      0x7954, 0xd1ac, 0x1904, 0x134b, 0x080c, 0x5ae1, 0x0158, 0x080c,
++      0x5af5, 0x1128, 0x2001, 0xb79e, 0x2003, 0x0000, 0x0070, 0x080c,
++      0x5ad7, 0x0dc0, 0x2001, 0xb79e, 0x2003, 0xaaaa, 0x2001, 0xb79f,
++      0x2003, 0x0001, 0x080c, 0x5a07, 0x0058, 0x080c, 0x5acf, 0x0140,
++      0x2009, 0x00f8, 0x080c, 0x4baf, 0x7843, 0x0090, 0x7843, 0x0010,
++      0x20a9, 0x09c4, 0x7820, 0xd09c, 0x1138, 0x080c, 0x5acf, 0x0138,
+       0x7824, 0xd0ac, 0x1904, 0x13f5, 0x1f04, 0x132a, 0x0070, 0x7824,
+-      0x080c, 0x5aec, 0x0118, 0xd0ac, 0x1904, 0x13f5, 0xa084, 0x1800,
++      0x080c, 0x5aeb, 0x0118, 0xd0ac, 0x1904, 0x13f5, 0xa084, 0x1800,
+       0x0d98, 0x7003, 0x0001, 0x0804, 0x13f5, 0x2001, 0x0001, 0x080c,
+       0x27c3, 0x0804, 0x1404, 0x7850, 0xa084, 0x0180, 0x7852, 0x782f,
+-      0x0020, 0x20a9, 0x0046, 0x1d04, 0x1353, 0x080c, 0x6a45, 0x1f04,
++      0x0020, 0x20a9, 0x0046, 0x1d04, 0x1353, 0x080c, 0x6a44, 0x1f04,
+       0x1353, 0x7850, 0xa084, 0x0180, 0xa085, 0x0400, 0x7852, 0x782f,
+-      0x0000, 0x080c, 0x5ae2, 0x0158, 0x080c, 0x5af6, 0x1128, 0x2001,
+-      0xb79e, 0x2003, 0x0000, 0x0070, 0x080c, 0x5ad8, 0x0dc0, 0x2001,
++      0x0000, 0x080c, 0x5ae1, 0x0158, 0x080c, 0x5af5, 0x1128, 0x2001,
++      0xb79e, 0x2003, 0x0000, 0x0070, 0x080c, 0x5ad7, 0x0dc0, 0x2001,
+       0xb79e, 0x2003, 0xaaaa, 0x2001, 0xb79f, 0x2003, 0x0001, 0x080c,
+-      0x5a08, 0x0020, 0x2009, 0x00f8, 0x080c, 0x4bb0, 0x20a9, 0x000e,
++      0x5a07, 0x0020, 0x2009, 0x00f8, 0x080c, 0x4baf, 0x20a9, 0x000e,
+       0xe000, 0x1f04, 0x1380, 0x7850, 0xa084, 0x0180, 0xa085, 0x1400,
+-      0x7852, 0x080c, 0x5ad0, 0x0120, 0x7843, 0x0090, 0x7843, 0x0010,
++      0x7852, 0x080c, 0x5acf, 0x0120, 0x7843, 0x0090, 0x7843, 0x0010,
+       0x2021, 0xe678, 0x2019, 0xea60, 0x7820, 0xd09c, 0x1558, 0x080c,
+-      0x5ad0, 0x05d8, 0x7824, 0xd0ac, 0x1904, 0x13f5, 0x080c, 0x5af6,
++      0x5acf, 0x05d8, 0x7824, 0xd0ac, 0x1904, 0x13f5, 0x080c, 0x5af5,
+       0x1508, 0x0046, 0x2021, 0x0190, 0x8421, 0x1df0, 0x004e, 0x8421,
+       0x11c8, 0x7827, 0x0048, 0x20a9, 0x01f4, 0x1d04, 0x13ad, 0x080c,
+-      0x6a45, 0x1f04, 0x13ad, 0x7824, 0xa084, 0x0068, 0x15c8, 0x2001,
++      0x6a44, 0x1f04, 0x13ad, 0x7824, 0xa084, 0x0068, 0x15c8, 0x2001,
+       0xb79e, 0x2003, 0xaaaa, 0x2001, 0xb79f, 0x2003, 0x0001, 0x7003,
+-      0x0001, 0x0498, 0x1d04, 0x13c6, 0x080c, 0x6a45, 0x8319, 0x1960,
++      0x0001, 0x0498, 0x1d04, 0x13c6, 0x080c, 0x6a44, 0x8319, 0x1960,
+       0x2009, 0xb534, 0x2104, 0x8000, 0x200a, 0xa084, 0xfff0, 0x0120,
+-      0x200b, 0x0000, 0x080c, 0x2917, 0x00d8, 0x080c, 0x5ae2, 0x1140,
+-      0xa4a2, 0x0064, 0x1128, 0x080c, 0x5aa7, 0x7003, 0x0001, 0x00a8,
+-      0x7827, 0x1800, 0xe000, 0xe000, 0x7824, 0x080c, 0x5aec, 0x0110,
++      0x200b, 0x0000, 0x080c, 0x2917, 0x00d8, 0x080c, 0x5ae1, 0x1140,
++      0xa4a2, 0x0064, 0x1128, 0x080c, 0x5aa6, 0x7003, 0x0001, 0x00a8,
++      0x7827, 0x1800, 0xe000, 0xe000, 0x7824, 0x080c, 0x5aeb, 0x0110,
+       0xd0ac, 0x1158, 0xa084, 0x1800, 0x09a8, 0x7003, 0x0001, 0x0028,
+       0x2001, 0x0001, 0x080c, 0x27c3, 0x0048, 0x2001, 0xb534, 0x2003,
+       0x0000, 0x7827, 0x0048, 0x7828, 0xc09d, 0x782a, 0x7850, 0xa084,
+       0x0180, 0xa085, 0x0400, 0x7852, 0x015e, 0x003e, 0x000e, 0x080c,
+       0x1558, 0x012e, 0x00fe, 0x004e, 0x001e, 0x0005, 0x0005, 0x0005,
+       0x0005, 0x2a70, 0x2061, 0xb7c1, 0x2063, 0x0002, 0x6007, 0x0002,
+-      0x600b, 0x0004, 0x600f, 0x0017, 0x2001, 0xb79e, 0x2003, 0x0000,
++      0x600b, 0x0006, 0x600f, 0x0017, 0x2001, 0xb79e, 0x2003, 0x0000,
+       0x708b, 0x0000, 0x2009, 0x0100, 0x2104, 0xa082, 0x0002, 0x0218,
+       0x7053, 0xffff, 0x0010, 0x7053, 0x0000, 0x705b, 0xffff, 0x7073,
+-      0x0000, 0x7077, 0x0000, 0x080c, 0xa002, 0x2061, 0xb78e, 0x6003,
++      0x0000, 0x7077, 0x0000, 0x080c, 0xa008, 0x2061, 0xb78e, 0x6003,
+       0x0909, 0x6007, 0x0000, 0x600b, 0x8800, 0x600f, 0x0200, 0x6013,
+       0x00ff, 0x6017, 0x000f, 0x601b, 0x0000, 0x601f, 0x07d0, 0x2061,
+       0xb796, 0x6003, 0x8000, 0x6007, 0x0000, 0x600b, 0x0000, 0x600f,
+@@ -216,7 +216,7 @@ unsigned short risc_code01[] = { 
+       0xe000, 0xe000, 0x2c1c, 0x2061, 0x7fff, 0x2c04, 0x2061, 0xffff,
+       0x2262, 0xa306, 0x1110, 0xc195, 0x0008, 0xc19d, 0x2011, 0x0001,
+       0x2019, 0x14f3, 0x0010, 0x0804, 0x1469, 0x3800, 0xa084, 0xfffc,
+-      0xa205, 0x20c0, 0x0837, 0x2011, 0x0000, 0x080c, 0x4faa, 0x1178,
++      0xa205, 0x20c0, 0x0837, 0x2011, 0x0000, 0x080c, 0x4fa9, 0x1178,
+       0x6004, 0xa0c4, 0x00ff, 0xa8c6, 0x0006, 0x0128, 0xa0c4, 0xff00,
+       0xa8c6, 0x0600, 0x1120, 0xa186, 0x0080, 0x0108, 0x8210, 0x8108,
+       0xa186, 0x0100, 0x1d50, 0x2208, 0x0005, 0x2091, 0x8000, 0x0e04,
+@@ -303,10 +303,10 @@ unsigned short risc_code01[] = { 
+       0x000d, 0x20a0, 0x2099, 0x0014, 0x7803, 0x0040, 0x20a9, 0x0020,
+       0x53a5, 0x2001, 0xb5fa, 0x2004, 0xd0bc, 0x0148, 0x2001, 0xb603,
+       0x2004, 0xa080, 0x000d, 0x20a0, 0x20a9, 0x0020, 0x53a5, 0x015e,
+-      0x014e, 0x013e, 0x7007, 0x0000, 0x080c, 0x5e70, 0x080c, 0x166c,
+-      0x0005, 0x2011, 0x8003, 0x080c, 0x3ecd, 0x0cf8, 0xa18c, 0x0700,
++      0x014e, 0x013e, 0x7007, 0x0000, 0x080c, 0x5e6f, 0x080c, 0x166c,
++      0x0005, 0x2011, 0x8003, 0x080c, 0x3ecc, 0x0cf8, 0xa18c, 0x0700,
+       0x1148, 0x2001, 0xb628, 0x2003, 0x0100, 0x7007, 0x0000, 0x080c,
+-      0x166c, 0x0005, 0x2011, 0x8004, 0x080c, 0x3ecd, 0x0cf8, 0x0126,
++      0x166c, 0x0005, 0x2011, 0x8004, 0x080c, 0x3ecc, 0x0cf8, 0x0126,
+       0x2091, 0x2200, 0x2079, 0x0030, 0x2071, 0xb823, 0x7003, 0x0000,
+       0x700f, 0xb82f, 0x7013, 0xb82f, 0x780f, 0x00f6, 0x7803, 0x0004,
+       0x012e, 0x0005, 0x6934, 0xa184, 0x0007, 0x0002, 0x17ee, 0x182c,
+@@ -345,7 +345,7 @@ unsigned short risc_code01[] = { 
+       0x2001, 0x0207, 0x2004, 0xd09c, 0x1d48, 0x7804, 0xa084, 0x6000,
+       0x0120, 0xa086, 0x6000, 0x0108, 0x0c08, 0x7818, 0x6812, 0x781c,
+       0x6816, 0x7803, 0x0004, 0x7003, 0x0000, 0x7004, 0x2060, 0x6100,
+-      0xa18e, 0x0004, 0x1904, 0x1949, 0x2009, 0x0048, 0x080c, 0x8646,
++      0xa18e, 0x0004, 0x1904, 0x1949, 0x2009, 0x0048, 0x080c, 0x864c,
+       0x0804, 0x1949, 0x6808, 0xa005, 0x05a0, 0x7000, 0xa005, 0x0588,
+       0x700c, 0x7110, 0xa106, 0x1118, 0x7004, 0xa406, 0x1550, 0x2001,
+       0x0005, 0x2004, 0xd08c, 0x0160, 0x0046, 0x080c, 0x1b06, 0x004e,
+@@ -354,7 +354,7 @@ unsigned short risc_code01[] = { 
+       0xd08c, 0x1d50, 0x7804, 0xa084, 0x6000, 0x0118, 0xa086, 0x6000,
+       0x19f0, 0x7818, 0x6812, 0x781c, 0x6816, 0x7803, 0x0004, 0x7003,
+       0x0000, 0x6100, 0xa18e, 0x0004, 0x1120, 0x2009, 0x0048, 0x080c,
+-      0x8646, 0x00ce, 0x00de, 0x012e, 0x0005, 0x00f6, 0x00e6, 0x0026,
++      0x864c, 0x00ce, 0x00de, 0x012e, 0x0005, 0x00f6, 0x00e6, 0x0026,
+       0x0036, 0x0046, 0x0056, 0x2071, 0xb823, 0x7000, 0xa086, 0x0000,
+       0x0904, 0x19b3, 0x7004, 0xac06, 0x1904, 0x19a5, 0x2079, 0x0030,
+       0x7000, 0xa086, 0x0003, 0x0904, 0x19a5, 0x7804, 0xd0fc, 0x15c8,
+@@ -363,7 +363,7 @@ unsigned short risc_code01[] = { 
+       0x1540, 0x080c, 0x1e6e, 0x0026, 0x0056, 0x7803, 0x0004, 0x7804,
+       0xd0ac, 0x1de8, 0x7803, 0x0002, 0x7803, 0x0009, 0x7003, 0x0003,
+       0x7007, 0x0000, 0x005e, 0x002e, 0x2001, 0x015d, 0x2003, 0x0000,
+-      0x080c, 0x5ad0, 0x1138, 0x0066, 0x2031, 0x0001, 0x080c, 0x5b52,
++      0x080c, 0x5acf, 0x1138, 0x0066, 0x2031, 0x0001, 0x080c, 0x5b51,
+       0x006e, 0x0058, 0x2001, 0x0160, 0x2502, 0x2001, 0x0138, 0x2202,
+       0x0020, 0x080c, 0x1b06, 0x0804, 0x1955, 0x0156, 0x20a9, 0x0009,
+       0x2009, 0xb82f, 0x2104, 0xac06, 0x1108, 0x200a, 0xa188, 0x0003,
+@@ -382,7 +382,7 @@ unsigned short risc_code01[] = { 
+       0xd0f4, 0x11e0, 0xd0d4, 0x01b8, 0x6038, 0xa402, 0x6034, 0xa303,
+       0x0108, 0x1288, 0x643a, 0x6336, 0x6c2a, 0x6b2e, 0x0046, 0x0036,
+       0x2400, 0x6c7c, 0xa402, 0x6812, 0x2300, 0x6b80, 0xa303, 0x6816,
+-      0x003e, 0x004e, 0x0018, 0x080c, 0x9f94, 0x09e0, 0x601c, 0xa08e,
++      0x003e, 0x004e, 0x0018, 0x080c, 0x9f9a, 0x09e0, 0x601c, 0xa08e,
+       0x0008, 0x0904, 0x19e0, 0xa08e, 0x000a, 0x0904, 0x19e0, 0x2001,
+       0xb574, 0x2004, 0xd0b4, 0x1140, 0x6018, 0x2004, 0xd0bc, 0x1120,
+       0x6817, 0x7fff, 0x6813, 0xffff, 0x080c, 0x2305, 0x1918, 0x0804,
+@@ -406,10 +406,10 @@ unsigned short risc_code01[] = { 
+       0x6800, 0xa506, 0x1160, 0x6804, 0xa406, 0x1148, 0x6808, 0xa706,
+       0x1130, 0x680c, 0xa606, 0x0018, 0xc9fc, 0x080c, 0x22a7, 0x2168,
+       0x0005, 0x080c, 0x1515, 0x080c, 0x1f55, 0x7004, 0x2060, 0x00d6,
+-      0x6010, 0x2068, 0x7003, 0x0000, 0x080c, 0x1dfe, 0x080c, 0x9c54,
++      0x6010, 0x2068, 0x7003, 0x0000, 0x080c, 0x1dfe, 0x080c, 0x9c5a,
+       0x0170, 0x6808, 0x8001, 0x680a, 0x697c, 0x6912, 0x6980, 0x6916,
+       0x682b, 0xffff, 0x682f, 0xffff, 0x6850, 0xc0bd, 0x6852, 0x00de,
+-      0x080c, 0x9924, 0x0804, 0x1d2b, 0x080c, 0x1515, 0x0126, 0x2091,
++      0x080c, 0x992a, 0x0804, 0x1d2b, 0x080c, 0x1515, 0x0126, 0x2091,
+       0x2200, 0x0006, 0x0016, 0x2b68, 0x6818, 0x2060, 0x7904, 0x7803,
+       0x0002, 0xa184, 0x0700, 0x1978, 0xa184, 0x0003, 0xa086, 0x0003,
+       0x0d58, 0x7000, 0x0002, 0x1b23, 0x1b29, 0x1c3a, 0x1d06, 0x1d1a,
+@@ -427,10 +427,10 @@ unsigned short risc_code01[] = { 
+       0x2500, 0xa405, 0x0128, 0x080c, 0x22bd, 0x6850, 0xc0fd, 0x6852,
+       0x2a00, 0x6826, 0x2c00, 0x681a, 0x2800, 0x6832, 0x6808, 0x8001,
+       0x680a, 0x1148, 0x684c, 0xd0e4, 0x0130, 0x7004, 0x2060, 0x2009,
+-      0x0048, 0x080c, 0x8646, 0x7000, 0xa086, 0x0004, 0x0904, 0x1d2b,
++      0x0048, 0x080c, 0x864c, 0x7000, 0xa086, 0x0004, 0x0904, 0x1d2b,
+       0x7003, 0x0000, 0x080c, 0x19ba, 0x0804, 0x1d2b, 0x0056, 0x7d0c,
+-      0xd5bc, 0x1110, 0x080c, 0xb3fb, 0x005e, 0x080c, 0x1dfe, 0x00f6,
+-      0x7004, 0x2078, 0x080c, 0x5306, 0x0118, 0x7820, 0xc0f5, 0x7822,
++      0xd5bc, 0x1110, 0x080c, 0xb407, 0x005e, 0x080c, 0x1dfe, 0x00f6,
++      0x7004, 0x2078, 0x080c, 0x5305, 0x0118, 0x7820, 0xc0f5, 0x7822,
+       0x00fe, 0x682b, 0xffff, 0x682f, 0xffff, 0x6808, 0x8001, 0x680a,
+       0x697c, 0x791a, 0x6980, 0x791e, 0x0804, 0x1d2b, 0x7004, 0x00c6,
+       0x2060, 0x6020, 0x00ce, 0xd0f4, 0x0120, 0x6808, 0x8001, 0x680a,
+@@ -441,13 +441,13 @@ unsigned short risc_code01[] = { 
+       0x2060, 0x601c, 0xa086, 0x000a, 0x11a0, 0x0156, 0x20a9, 0x0009,
+       0x2009, 0xb82f, 0x2104, 0xac06, 0x1108, 0x200a, 0xa188, 0x0003,
+       0x1f04, 0x1bf2, 0x015e, 0x7004, 0x2060, 0x2009, 0x0048, 0x080c,
+-      0x8646, 0x080c, 0x19ba, 0x0804, 0x1d2b, 0x7818, 0x6812, 0x781c,
++      0x864c, 0x080c, 0x19ba, 0x0804, 0x1d2b, 0x7818, 0x6812, 0x781c,
+       0x6816, 0x7814, 0x7908, 0xa18c, 0x0fff, 0xa192, 0x0841, 0x1a04,
+       0x1ae3, 0xa188, 0x0007, 0x8114, 0x8214, 0x8214, 0xa10a, 0x8104,
+       0x8004, 0x8004, 0xa20a, 0x810b, 0x810b, 0x810b, 0x080c, 0x1e99,
+       0x7803, 0x0004, 0x780f, 0xffff, 0x7803, 0x0001, 0x7804, 0xd0fc,
+       0x0de8, 0x7803, 0x0002, 0x7803, 0x0004, 0x780f, 0x00f6, 0x7004,
+-      0x7007, 0x0000, 0x2060, 0x2009, 0x0048, 0x080c, 0x8646, 0x080c,
++      0x7007, 0x0000, 0x2060, 0x2009, 0x0048, 0x080c, 0x864c, 0x080c,
+       0x1eef, 0x0838, 0x8001, 0x7002, 0xd194, 0x01b0, 0x7804, 0xd0fc,
+       0x1904, 0x1cd6, 0xd09c, 0x0138, 0x7804, 0xd0fc, 0x1904, 0x1cd6,
+       0xd09c, 0x1904, 0x1cda, 0x8aff, 0x0904, 0x1d2b, 0x2009, 0x0001,
+@@ -464,8 +464,8 @@ unsigned short risc_code01[] = { 
+       0x0020, 0x6810, 0xa31a, 0x6814, 0xa213, 0x00de, 0xd194, 0x0904,
+       0x1b63, 0x2a00, 0x6826, 0x2c00, 0x681a, 0x2800, 0x6832, 0x6808,
+       0x8001, 0x680a, 0x6b2a, 0x6a2e, 0x003e, 0x002e, 0x0804, 0x1c01,
+-      0x0056, 0x7d0c, 0x080c, 0xb3fb, 0x005e, 0x080c, 0x1dfe, 0x00f6,
+-      0x7004, 0x2078, 0x080c, 0x5306, 0x0118, 0x7820, 0xc0f5, 0x7822,
++      0x0056, 0x7d0c, 0x080c, 0xb407, 0x005e, 0x080c, 0x1dfe, 0x00f6,
++      0x7004, 0x2078, 0x080c, 0x5305, 0x0118, 0x7820, 0xc0f5, 0x7822,
+       0x00fe, 0x682b, 0xffff, 0x682f, 0xffff, 0x6808, 0x8001, 0x680a,
+       0x697c, 0x791a, 0x6980, 0x791e, 0x0804, 0x1d2b, 0x7804, 0xd09c,
+       0x0904, 0x1b0e, 0x7c20, 0x7824, 0xa405, 0x1904, 0x1b0e, 0x7818,
+@@ -475,7 +475,7 @@ unsigned short risc_code01[] = { 
+       0x7834, 0xa406, 0x1138, 0x7838, 0xa706, 0x1120, 0x783c, 0xa606,
+       0x0904, 0x1b0e, 0x7803, 0x0002, 0x0804, 0x1c67, 0x7803, 0x0004,
+       0x7003, 0x0000, 0x7004, 0xa00d, 0x0150, 0x6808, 0x8001, 0x680a,
+-      0x1130, 0x7004, 0x2060, 0x2009, 0x0048, 0x080c, 0x8646, 0x080c,
++      0x1130, 0x7004, 0x2060, 0x2009, 0x0048, 0x080c, 0x864c, 0x080c,
+       0x19ba, 0x0088, 0x7803, 0x0004, 0x7003, 0x0000, 0x7004, 0x2060,
+       0x6010, 0xa005, 0x0da0, 0x2068, 0x6808, 0x8000, 0x680a, 0x6c28,
+       0x6b2c, 0x080c, 0x19d5, 0x001e, 0x000e, 0x012e, 0x0005, 0x700c,
+@@ -505,9 +505,9 @@ unsigned short risc_code01[] = { 
+       0x0005, 0x0126, 0x2091, 0x2200, 0x7000, 0xa086, 0x0003, 0x1160,
+       0x700c, 0x7110, 0xa106, 0x0140, 0x080c, 0x295c, 0x20e1, 0x9028,
+       0x700f, 0xb82f, 0x7013, 0xb82f, 0x012e, 0x0005, 0x00c6, 0x080c,
+-      0x5ad0, 0x11b8, 0x2001, 0x0160, 0x2003, 0x0000, 0x2001, 0x0138,
++      0x5acf, 0x11b8, 0x2001, 0x0160, 0x2003, 0x0000, 0x2001, 0x0138,
+       0x2003, 0x0000, 0x2011, 0x00c8, 0xe000, 0xe000, 0x8211, 0x1de0,
+-      0x04b1, 0x0066, 0x2031, 0x0000, 0x080c, 0x5b52, 0x006e, 0x00ce,
++      0x04b1, 0x0066, 0x2031, 0x0000, 0x080c, 0x5b51, 0x006e, 0x00ce,
+       0x0005, 0x080c, 0x1e6e, 0x080c, 0x295c, 0x20e1, 0x9028, 0x700c,
+       0x7110, 0xa106, 0x01c0, 0x2104, 0xa005, 0x0130, 0x2060, 0x6010,
+       0x2060, 0x6008, 0x8001, 0x600a, 0xa188, 0x0003, 0xa182, 0xb84a,
+@@ -520,7 +520,7 @@ unsigned short risc_code01[] = { 
+       0x600a, 0xa188, 0x0003, 0xa182, 0xb84a, 0x0210, 0x2009, 0xb82f,
+       0x7112, 0x0c50, 0x001e, 0x00ce, 0x00ee, 0x0005, 0x2001, 0x0138,
+       0x2014, 0x2003, 0x0000, 0x2001, 0x0160, 0x202c, 0x2003, 0x0000,
+-      0x080c, 0x5ad0, 0x1148, 0x2021, 0x0002, 0x1d04, 0x1e7d, 0x2091,
++      0x080c, 0x5acf, 0x1148, 0x2021, 0x0002, 0x1d04, 0x1e7d, 0x2091,
+       0x6000, 0x8421, 0x1dd0, 0x0005, 0x2021, 0xb015, 0x2001, 0x0141,
+       0x201c, 0xd3dc, 0x1168, 0x2001, 0x0109, 0x201c, 0xa39c, 0x0048,
+       0x1138, 0x2001, 0x0111, 0x201c, 0x83ff, 0x1110, 0x8421, 0x1d70,
+@@ -557,7 +557,7 @@ unsigned short risc_code01[] = { 
+       0x2079, 0x0010, 0x000e, 0x783e, 0x000e, 0x783a, 0x000e, 0x7836,
+       0x000e, 0x7832, 0x000e, 0x7822, 0x000e, 0x7802, 0x00fe, 0x00ee,
+       0x0030, 0x00fe, 0x00ee, 0x7804, 0xd0ac, 0x190c, 0x1515, 0x080c,
+-      0x7231, 0x0005, 0x00e6, 0x2071, 0xb84a, 0x7003, 0x0000, 0x00ee,
++      0x7230, 0x0005, 0x00e6, 0x2071, 0xb84a, 0x7003, 0x0000, 0x00ee,
+       0x0005, 0x00d6, 0xa280, 0x0004, 0x206c, 0x694c, 0xd1dc, 0x1904,
+       0x201f, 0x6934, 0xa184, 0x0007, 0x0002, 0x1fbd, 0x200a, 0x1fbd,
+       0x1fbd, 0x1fbd, 0x1ff1, 0x1fd0, 0x1fbf, 0x080c, 0x1515, 0x684c,
+@@ -604,12 +604,12 @@ unsigned short risc_code01[] = { 
+       0x002e, 0x003e, 0x004e, 0x005e, 0x006e, 0x007e, 0x0005, 0x080c,
+       0x1515, 0x0026, 0x2001, 0x0105, 0x2003, 0x0010, 0x20e1, 0x9040,
+       0x7803, 0x0004, 0x7003, 0x0000, 0x7004, 0x2060, 0x00d6, 0x6010,
+-      0x2068, 0x080c, 0x9c54, 0x0118, 0x6850, 0xc0bd, 0x6852, 0x601c,
++      0x2068, 0x080c, 0x9c5a, 0x0118, 0x6850, 0xc0bd, 0x6852, 0x601c,
+       0xa086, 0x0006, 0x1180, 0x2061, 0x0100, 0x62c8, 0x2001, 0x00fa,
+       0x8001, 0x1df0, 0x60c8, 0xa206, 0x1dc0, 0x60c4, 0x686a, 0x60c8,
+-      0x6866, 0x7004, 0x2060, 0x00de, 0x00c6, 0x080c, 0x9924, 0x00ce,
++      0x6866, 0x7004, 0x2060, 0x00de, 0x00c6, 0x080c, 0x992a, 0x00ce,
+       0x2001, 0xb7ef, 0x2004, 0xac06, 0x1150, 0x20e1, 0x9040, 0x080c,
+-      0x8257, 0x2011, 0x0000, 0x080c, 0x8080, 0x080c, 0x7231, 0x002e,
++      0x825d, 0x2011, 0x0000, 0x080c, 0x807f, 0x080c, 0x7230, 0x002e,
+       0x0804, 0x2204, 0x0126, 0x2091, 0x2400, 0x0006, 0x0016, 0x00f6,
+       0x00e6, 0x00d6, 0x00c6, 0x2079, 0x0020, 0x2071, 0xb84a, 0x2b68,
+       0x6818, 0x2060, 0x7904, 0x7803, 0x0002, 0xa184, 0x0700, 0x1904,
+@@ -637,7 +637,7 @@ unsigned short risc_code01[] = { 
+       0x001e, 0x000e, 0x012e, 0x0005, 0x00f6, 0x00e6, 0x2071, 0xb84a,
+       0x7000, 0xa086, 0x0000, 0x05d0, 0x2079, 0x0020, 0x0016, 0x2009,
+       0x0207, 0x210c, 0xd194, 0x0198, 0x2009, 0x020c, 0x210c, 0xa184,
+-      0x0003, 0x0168, 0x080c, 0xb444, 0x2001, 0x0133, 0x2004, 0xa005,
++      0x0003, 0x0168, 0x080c, 0xb450, 0x2001, 0x0133, 0x2004, 0xa005,
+       0x090c, 0x1515, 0x20e1, 0x9040, 0x2001, 0x020c, 0x2102, 0x2009,
+       0x0206, 0x2104, 0x2009, 0x0203, 0x210c, 0xa106, 0x1110, 0x20e1,
+       0x9040, 0x7804, 0xd0fc, 0x09d8, 0x080c, 0x214a, 0x7000, 0xa086,
+@@ -645,11 +645,11 @@ unsigned short risc_code01[] = { 
+       0x20e1, 0x9040, 0x7803, 0x0002, 0x7003, 0x0000, 0x00ee, 0x00fe,
+       0x0005, 0x0026, 0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x2071, 0xb84a,
+       0x2079, 0x0020, 0x7000, 0xa086, 0x0000, 0x0540, 0x7004, 0x2060,
+-      0x6010, 0x2068, 0x080c, 0x9c54, 0x0158, 0x6850, 0xc0b5, 0x6852,
++      0x6010, 0x2068, 0x080c, 0x9c5a, 0x0158, 0x6850, 0xc0b5, 0x6852,
+       0x680c, 0x7a1c, 0xa206, 0x1120, 0x6808, 0x7a18, 0xa206, 0x01e0,
+       0x2001, 0x0105, 0x2003, 0x0010, 0x20e1, 0x9040, 0x7803, 0x0004,
+-      0x7003, 0x0000, 0x7004, 0x2060, 0x080c, 0x9924, 0x20e1, 0x9040,
+-      0x080c, 0x8257, 0x2011, 0x0000, 0x080c, 0x8080, 0x00fe, 0x00ee,
++      0x7003, 0x0000, 0x7004, 0x2060, 0x080c, 0x992a, 0x20e1, 0x9040,
++      0x080c, 0x825d, 0x2011, 0x0000, 0x080c, 0x807f, 0x00fe, 0x00ee,
+       0x00de, 0x00ce, 0x002e, 0x0005, 0x6810, 0x6a14, 0xa205, 0x1d00,
+       0x684c, 0xc0dc, 0x684e, 0x2c10, 0x080c, 0x1fa9, 0x2001, 0x0105,
+       0x2003, 0x0010, 0x20e1, 0x9040, 0x7803, 0x0004, 0x7003, 0x0000,
+@@ -697,17 +697,17 @@ unsigned short risc_code01[] = { 
+       0x1f04, 0x23e6, 0x20e1, 0x9080, 0x783b, 0x001f, 0x20e1, 0x8700,
+       0x012e, 0x0005, 0x0126, 0x2091, 0x2600, 0x781c, 0xd0a4, 0x190c,
+       0x24ad, 0xa084, 0x0007, 0x0002, 0x2416, 0x2404, 0x2407, 0x240a,
+-      0x240f, 0x2411, 0x2413, 0x2415, 0x080c, 0x63c5, 0x0078, 0x080c,
+-      0x6404, 0x0060, 0x080c, 0x63c5, 0x080c, 0x6404, 0x0038, 0x0041,
++      0x240f, 0x2411, 0x2413, 0x2415, 0x080c, 0x63c4, 0x0078, 0x080c,
++      0x6403, 0x0060, 0x080c, 0x63c4, 0x080c, 0x6403, 0x0038, 0x0041,
+       0x0028, 0x0031, 0x0018, 0x0021, 0x0008, 0x0011, 0x012e, 0x0005,
+-      0x0006, 0x0016, 0x0026, 0x080c, 0xb444, 0x7930, 0xa184, 0x0003,
++      0x0006, 0x0016, 0x0026, 0x080c, 0xb450, 0x7930, 0xa184, 0x0003,
+       0x01b0, 0x2001, 0xb7ef, 0x2004, 0xa005, 0x0170, 0x2001, 0x0133,
+       0x2004, 0xa005, 0x090c, 0x1515, 0x00c6, 0x2001, 0xb7ef, 0x2064,
+-      0x080c, 0x9924, 0x00ce, 0x04b8, 0x20e1, 0x9040, 0x04a0, 0xa184,
++      0x080c, 0x992a, 0x00ce, 0x04b8, 0x20e1, 0x9040, 0x04a0, 0xa184,
+       0x0030, 0x01e0, 0x6a00, 0xa286, 0x0003, 0x1108, 0x00a0, 0x080c,
+-      0x5ad0, 0x1178, 0x2001, 0xb79f, 0x2003, 0x0001, 0x2001, 0xb500,
+-      0x2003, 0x0001, 0xa085, 0x0001, 0x080c, 0x5b14, 0x080c, 0x5a08,
+-      0x0010, 0x080c, 0x4b20, 0x080c, 0x24b0, 0x00a8, 0xa184, 0x00c0,
++      0x5acf, 0x1178, 0x2001, 0xb79f, 0x2003, 0x0001, 0x2001, 0xb500,
++      0x2003, 0x0001, 0xa085, 0x0001, 0x080c, 0x5b13, 0x080c, 0x5a07,
++      0x0010, 0x080c, 0x4b1f, 0x080c, 0x24b0, 0x00a8, 0xa184, 0x00c0,
+       0x0168, 0x00e6, 0x0036, 0x0046, 0x0056, 0x2071, 0xb823, 0x080c,
+       0x1dfe, 0x005e, 0x004e, 0x003e, 0x00ee, 0x0028, 0xa184, 0x0300,
+       0x0110, 0x20e1, 0x9020, 0x7932, 0x002e, 0x001e, 0x000e, 0x0005,
+@@ -735,93 +735,93 @@ unsigned short risc_code01[] = { 
+       0x0005, 0x0126, 0x2091, 0x2800, 0x0006, 0x0016, 0x0026, 0x6124,
+       0xa184, 0x1e2c, 0x1118, 0xa184, 0x0007, 0x002a, 0xa195, 0x0004,
+       0xa284, 0x0007, 0x0002, 0x254d, 0x2533, 0x2536, 0x2539, 0x253e,
+-      0x2540, 0x2544, 0x2548, 0x080c, 0x6b75, 0x00b8, 0x080c, 0x6c50,
+-      0x00a0, 0x080c, 0x6c50, 0x080c, 0x6b75, 0x0078, 0x0099, 0x0068,
+-      0x080c, 0x6b75, 0x0079, 0x0048, 0x080c, 0x6c50, 0x0059, 0x0028,
+-      0x080c, 0x6c50, 0x080c, 0x6b75, 0x0029, 0x002e, 0x001e, 0x000e,
++      0x2540, 0x2544, 0x2548, 0x080c, 0x6b74, 0x00b8, 0x080c, 0x6c4f,
++      0x00a0, 0x080c, 0x6c4f, 0x080c, 0x6b74, 0x0078, 0x0099, 0x0068,
++      0x080c, 0x6b74, 0x0079, 0x0048, 0x080c, 0x6c4f, 0x0059, 0x0028,
++      0x080c, 0x6c4f, 0x080c, 0x6b74, 0x0029, 0x002e, 0x001e, 0x000e,
+       0x012e, 0x0005, 0x6124, 0x6028, 0xd09c, 0x0118, 0xd19c, 0x1904,
+-      0x2766, 0x080c, 0x5ad0, 0x0578, 0x7000, 0xa086, 0x0003, 0x0198,
+-      0x6024, 0xa084, 0x1800, 0x0178, 0x080c, 0x5af6, 0x0118, 0x080c,
+-      0x5ae2, 0x1148, 0x6027, 0x0020, 0x6043, 0x0000, 0x2001, 0xb79e,
+-      0x2003, 0xaaaa, 0x0458, 0x080c, 0x5af6, 0x15d0, 0x6024, 0xa084,
++      0x2766, 0x080c, 0x5acf, 0x0578, 0x7000, 0xa086, 0x0003, 0x0198,
++      0x6024, 0xa084, 0x1800, 0x0178, 0x080c, 0x5af5, 0x0118, 0x080c,
++      0x5ae1, 0x1148, 0x6027, 0x0020, 0x6043, 0x0000, 0x2001, 0xb79e,
++      0x2003, 0xaaaa, 0x0458, 0x080c, 0x5af5, 0x15d0, 0x6024, 0xa084,
+       0x1800, 0x1108, 0x04a8, 0x2001, 0xb79e, 0x2003, 0xaaaa, 0x2001,
+       0xb79f, 0x2003, 0x0001, 0x2001, 0xb500, 0x2003, 0x0001, 0x080c,
+-      0x5a08, 0x0804, 0x2766, 0xd1ac, 0x1518, 0x6024, 0xd0dc, 0x1170,
++      0x5a07, 0x0804, 0x2766, 0xd1ac, 0x1518, 0x6024, 0xd0dc, 0x1170,
+       0xd0e4, 0x1188, 0xd0d4, 0x11a0, 0xd0cc, 0x0130, 0x708c, 0xa086,
+-      0x0028, 0x1110, 0x080c, 0x5c5f, 0x0804, 0x2766, 0x2001, 0xb79f,
++      0x0028, 0x1110, 0x080c, 0x5c5e, 0x0804, 0x2766, 0x2001, 0xb79f,
+       0x2003, 0x0000, 0x0048, 0x2001, 0xb79f, 0x2003, 0x0002, 0x0020,
+-      0x080c, 0x5bd2, 0x0804, 0x2766, 0x080c, 0x5d04, 0x0804, 0x2766,
+-      0xd1ac, 0x0904, 0x26ae, 0x080c, 0x5ad0, 0x11d8, 0x6027, 0x0020,
+-      0x0006, 0x0026, 0x0036, 0x080c, 0x5aec, 0x1170, 0x2001, 0xb79f,
+-      0x2003, 0x0001, 0x2001, 0xb500, 0x2003, 0x0001, 0x080c, 0x5a08,
++      0x080c, 0x5bd1, 0x0804, 0x2766, 0x080c, 0x5d03, 0x0804, 0x2766,
++      0xd1ac, 0x0904, 0x26ae, 0x080c, 0x5acf, 0x11d8, 0x6027, 0x0020,
++      0x0006, 0x0026, 0x0036, 0x080c, 0x5aeb, 0x1170, 0x2001, 0xb79f,
++      0x2003, 0x0001, 0x2001, 0xb500, 0x2003, 0x0001, 0x080c, 0x5a07,
+       0x003e, 0x002e, 0x000e, 0x0005, 0x003e, 0x002e, 0x000e, 0x080c,
+-      0x5aa7, 0x0016, 0x0046, 0x00c6, 0x644c, 0xa486, 0xf0f0, 0x1138,
++      0x5aa6, 0x0016, 0x0046, 0x00c6, 0x644c, 0xa486, 0xf0f0, 0x1138,
+       0x2061, 0x0100, 0x644a, 0x6043, 0x0090, 0x6043, 0x0010, 0x74ce,
+       0xa48c, 0xff00, 0x7034, 0xd084, 0x0178, 0xa186, 0xf800, 0x1160,
+       0x703c, 0xd084, 0x1148, 0xc085, 0x703e, 0x0036, 0x2418, 0x2011,
+-      0x8016, 0x080c, 0x3ecd, 0x003e, 0xa196, 0xff00, 0x05b8, 0x7054,
++      0x8016, 0x080c, 0x3ecc, 0x003e, 0xa196, 0xff00, 0x05b8, 0x7054,
+       0xa084, 0x00ff, 0x810f, 0xa116, 0x0588, 0x7130, 0xd184, 0x1570,
+       0x2011, 0xb553, 0x2214, 0xd2ec, 0x0138, 0xc18d, 0x7132, 0x2011,
+       0xb553, 0x2214, 0xd2ac, 0x1510, 0x6240, 0xa294, 0x0010, 0x0130,
+       0x6248, 0xa294, 0xff00, 0xa296, 0xff00, 0x01c0, 0x7030, 0xd08c,
+       0x0904, 0x267b, 0x7034, 0xd08c, 0x1140, 0x2001, 0xb50c, 0x200c,
+       0xd1ac, 0x1904, 0x267b, 0xc1ad, 0x2102, 0x0036, 0x73cc, 0x2011,
+-      0x8013, 0x080c, 0x3ecd, 0x003e, 0x0804, 0x267b, 0x7034, 0xd08c,
++      0x8013, 0x080c, 0x3ecc, 0x003e, 0x0804, 0x267b, 0x7034, 0xd08c,
+       0x1140, 0x2001, 0xb50c, 0x200c, 0xd1ac, 0x1904, 0x267b, 0xc1ad,
+-      0x2102, 0x0036, 0x73cc, 0x2011, 0x8013, 0x080c, 0x3ecd, 0x003e,
++      0x2102, 0x0036, 0x73cc, 0x2011, 0x8013, 0x080c, 0x3ecc, 0x003e,
+       0x7130, 0xc185, 0x7132, 0x2011, 0xb553, 0x220c, 0xd1a4, 0x01d0,
+-      0x0016, 0x2009, 0x0001, 0x2011, 0x0100, 0x080c, 0x6b1b, 0x2019,
+-      0x000e, 0x080c, 0xb059, 0xa484, 0x00ff, 0xa080, 0x2dc4, 0x200d,
++      0x0016, 0x2009, 0x0001, 0x2011, 0x0100, 0x080c, 0x6b1a, 0x2019,
++      0x000e, 0x080c, 0xb065, 0xa484, 0x00ff, 0xa080, 0x2dc4, 0x200d,
+       0xa18c, 0xff00, 0x810f, 0x8127, 0xa006, 0x2009, 0x000e, 0x080c,
+-      0xb0dc, 0x001e, 0xd1ac, 0x1148, 0x0016, 0x2009, 0x0000, 0x2019,
++      0xb0e8, 0x001e, 0xd1ac, 0x1148, 0x0016, 0x2009, 0x0000, 0x2019,
+       0x0004, 0x080c, 0x2c6f, 0x001e, 0x0070, 0x0156, 0x20a9, 0x007f,
+-      0x2009, 0x0000, 0x080c, 0x4faa, 0x1110, 0x080c, 0x4c0c, 0x8108,
++      0x2009, 0x0000, 0x080c, 0x4fa9, 0x1110, 0x080c, 0x4c0b, 0x8108,
+       0x1f04, 0x2672, 0x015e, 0x00ce, 0x004e, 0x2011, 0x0003, 0x080c,
+-      0x8076, 0x2011, 0x0002, 0x080c, 0x8080, 0x080c, 0x7f5a, 0x0036,
+-      0x2019, 0x0000, 0x080c, 0x7fe5, 0x003e, 0x60e3, 0x0000, 0x001e,
++      0x8075, 0x2011, 0x0002, 0x080c, 0x807f, 0x080c, 0x7f59, 0x0036,
++      0x2019, 0x0000, 0x080c, 0x7fe4, 0x003e, 0x60e3, 0x0000, 0x001e,
+       0x2001, 0xb500, 0x2014, 0xa296, 0x0004, 0x1128, 0xd19c, 0x11b0,
+       0x6228, 0xc29d, 0x622a, 0x2003, 0x0001, 0x2001, 0xb523, 0x2003,
+-      0x0000, 0x6027, 0x0020, 0x080c, 0x5af6, 0x1140, 0x0016, 0x2009,
+-      0x07d0, 0x2011, 0x59e5, 0x080c, 0x6a23, 0x001e, 0xd194, 0x0904,
+-      0x2766, 0x0016, 0x6220, 0xd2b4, 0x0904, 0x2717, 0x080c, 0x6a11,
+-      0x080c, 0x7d7b, 0x6027, 0x0004, 0x00f6, 0x2019, 0xb7e9, 0x2304,
++      0x0000, 0x6027, 0x0020, 0x080c, 0x5af5, 0x1140, 0x0016, 0x2009,
++      0x07d0, 0x2011, 0x59e4, 0x080c, 0x6a22, 0x001e, 0xd194, 0x0904,
++      0x2766, 0x0016, 0x6220, 0xd2b4, 0x0904, 0x2717, 0x080c, 0x6a10,
++      0x080c, 0x7d7a, 0x6027, 0x0004, 0x00f6, 0x2019, 0xb7e9, 0x2304,
+       0xa07d, 0x0570, 0x7804, 0xa086, 0x0032, 0x1550, 0x00d6, 0x00c6,
+       0x00e6, 0x2069, 0x0140, 0x618c, 0x6288, 0x7818, 0x608e, 0x7808,
+       0x608a, 0x6043, 0x0002, 0x2001, 0x0003, 0x8001, 0x1df0, 0x6043,
+       0x0000, 0x6803, 0x1000, 0x6803, 0x0000, 0x618e, 0x628a, 0x080c,
+-      0x7091, 0x080c, 0x7174, 0x7810, 0x2070, 0x7037, 0x0103, 0x2f60,
+-      0x080c, 0x8617, 0x00ee, 0x00ce, 0x00de, 0x00fe, 0x001e, 0x0005,
++      0x7090, 0x080c, 0x7173, 0x7810, 0x2070, 0x7037, 0x0103, 0x2f60,
++      0x080c, 0x861d, 0x00ee, 0x00ce, 0x00de, 0x00fe, 0x001e, 0x0005,
+       0x00fe, 0x00d6, 0x2069, 0x0140, 0x6804, 0xa084, 0x4000, 0x0120,
+       0x6803, 0x1000, 0x6803, 0x0000, 0x00de, 0x00c6, 0x2061, 0xb7e0,
+       0x6028, 0xa09a, 0x00c8, 0x1238, 0x8000, 0x602a, 0x00ce, 0x080c,
+-      0x7d6e, 0x0804, 0x2765, 0x2019, 0xb7e9, 0x2304, 0xa065, 0x0120,
+-      0x2009, 0x0027, 0x080c, 0x8646, 0x00ce, 0x0804, 0x2765, 0xd2bc,
+-      0x0904, 0x2765, 0x080c, 0x6a1e, 0x6014, 0xa084, 0x0184, 0xa085,
++      0x7d6d, 0x0804, 0x2765, 0x2019, 0xb7e9, 0x2304, 0xa065, 0x0120,
++      0x2009, 0x0027, 0x080c, 0x864c, 0x00ce, 0x0804, 0x2765, 0xd2bc,
++      0x0904, 0x2765, 0x080c, 0x6a1d, 0x6014, 0xa084, 0x0184, 0xa085,
+       0x0010, 0x6016, 0x6027, 0x0004, 0x00d6, 0x2069, 0x0140, 0x6804,
+       0xa084, 0x4000, 0x0120, 0x6803, 0x1000, 0x6803, 0x0000, 0x00de,
+       0x00c6, 0x2061, 0xb7e0, 0x6044, 0xa09a, 0x00c8, 0x12f0, 0x8000,
+       0x6046, 0x603c, 0x00ce, 0xa005, 0x0540, 0x2009, 0x07d0, 0x080c,
+-      0x6a16, 0xa080, 0x0007, 0x2004, 0xa086, 0x0006, 0x1138, 0x6114,
++      0x6a15, 0xa080, 0x0007, 0x2004, 0xa086, 0x0006, 0x1138, 0x6114,
+       0xa18c, 0x0184, 0xa18d, 0x0012, 0x6116, 0x00b8, 0x6114, 0xa18c,
+       0x0184, 0xa18d, 0x0016, 0x6116, 0x0080, 0x0036, 0x2019, 0x0001,
+-      0x080c, 0x7fe5, 0x003e, 0x2019, 0xb7ef, 0x2304, 0xa065, 0x0120,
+-      0x2009, 0x004f, 0x080c, 0x8646, 0x00ce, 0x001e, 0xd19c, 0x0904,
++      0x080c, 0x7fe4, 0x003e, 0x2019, 0xb7ef, 0x2304, 0xa065, 0x0120,
++      0x2009, 0x004f, 0x080c, 0x864c, 0x00ce, 0x001e, 0xd19c, 0x0904,
+       0x27bf, 0x7034, 0xd0ac, 0x1560, 0x0016, 0x0156, 0x6027, 0x0008,
+       0x602f, 0x0020, 0x20a9, 0x0006, 0x1d04, 0x2774, 0x2091, 0x6000,
+       0x1f04, 0x2774, 0x602f, 0x0000, 0x6150, 0xa185, 0x1400, 0x6052,
+       0x20a9, 0x0366, 0x1d04, 0x2782, 0x2091, 0x6000, 0x6020, 0xd09c,
+       0x1130, 0x015e, 0x6152, 0x001e, 0x6027, 0x0008, 0x0480, 0x080c,
+       0x2907, 0x1f04, 0x2782, 0x015e, 0x6152, 0x001e, 0x6027, 0x0008,
+-      0x0016, 0x6028, 0xc09c, 0x602a, 0x2011, 0x0003, 0x080c, 0x8076,
+-      0x2011, 0x0002, 0x080c, 0x8080, 0x080c, 0x7f5a, 0x0036, 0x2019,
+-      0x0000, 0x080c, 0x7fe5, 0x003e, 0x60e3, 0x0000, 0x080c, 0xb423,
+-      0x080c, 0xb43e, 0xa085, 0x0001, 0x080c, 0x5b14, 0x2001, 0xb500,
++      0x0016, 0x6028, 0xc09c, 0x602a, 0x2011, 0x0003, 0x080c, 0x8075,
++      0x2011, 0x0002, 0x080c, 0x807f, 0x080c, 0x7f59, 0x0036, 0x2019,
++      0x0000, 0x080c, 0x7fe4, 0x003e, 0x60e3, 0x0000, 0x080c, 0xb42f,
++      0x080c, 0xb44a, 0xa085, 0x0001, 0x080c, 0x5b13, 0x2001, 0xb500,
+       0x2003, 0x0004, 0x6027, 0x0008, 0x080c, 0x12dd, 0x001e, 0xa18c,
+       0xffd0, 0x6126, 0x0005, 0x0006, 0x0016, 0x0026, 0x00e6, 0x00f6,
+       0x0126, 0x2091, 0x8000, 0x2071, 0xb500, 0x71c4, 0x70c6, 0xa116,
+-      0x0500, 0x81ff, 0x0128, 0x2011, 0x8011, 0x080c, 0x3ecd, 0x00c8,
+-      0x2011, 0x8012, 0x080c, 0x3ecd, 0x2001, 0xb572, 0x2004, 0xd0fc,
+-      0x1180, 0x0036, 0x00c6, 0x080c, 0x2892, 0x080c, 0x7f36, 0x2061,
++      0x0500, 0x81ff, 0x0128, 0x2011, 0x8011, 0x080c, 0x3ecc, 0x00c8,
++      0x2011, 0x8012, 0x080c, 0x3ecc, 0x2001, 0xb572, 0x2004, 0xd0fc,
++      0x1180, 0x0036, 0x00c6, 0x080c, 0x2892, 0x080c, 0x7f35, 0x2061,
+       0x0100, 0x2019, 0x0028, 0x2009, 0x0000, 0x080c, 0x2c6f, 0x00ce,
+       0x003e, 0x012e, 0x00fe, 0x00ee, 0x002e, 0x001e, 0x000e, 0x0005,
+       0x00c6, 0x00f6, 0x0006, 0x0026, 0x2061, 0x0100, 0xa190, 0x280b,
+@@ -829,14 +829,14 @@ unsigned short risc_code01[] = { 
+       0x00fe, 0x00ce, 0x0005, 0x0840, 0x0840, 0x0840, 0x0580, 0x0420,
+       0x0348, 0x02c0, 0x0258, 0x0210, 0x01a8, 0x01a8, 0x01a8, 0x01a8,
+       0x0140, 0x00f8, 0x00d0, 0x00b0, 0x00a0, 0x2028, 0xa18c, 0x00ff,
+-      0x2130, 0xa094, 0xff00, 0x1110, 0x81ff, 0x0118, 0x080c, 0x66b2,
++      0x2130, 0xa094, 0xff00, 0x1110, 0x81ff, 0x0118, 0x080c, 0x66b1,
+       0x0038, 0xa080, 0x2dc4, 0x200d, 0xa18c, 0xff00, 0x810f, 0xa006,
+       0x0005, 0xa080, 0x2dc4, 0x200d, 0xa18c, 0x00ff, 0x0005, 0x00d6,
+       0x2069, 0x0140, 0x2001, 0xb515, 0x2003, 0x00ef, 0x20a9, 0x0010,
+       0xa006, 0x6852, 0x6856, 0x1f04, 0x2842, 0x00de, 0x0005, 0x0006,
+       0x00d6, 0x0026, 0x2069, 0x0140, 0x2001, 0xb515, 0x2102, 0x8114,
+       0x8214, 0x8214, 0x8214, 0x20a9, 0x0010, 0x6853, 0x0000, 0xa006,
+-      0x82ff, 0x1128, 0xa184, 0x000f, 0xa080, 0xb452, 0x2005, 0x6856,
++      0x82ff, 0x1128, 0xa184, 0x000f, 0xa080, 0xb45e, 0x2005, 0x6856,
+       0x8211, 0x1f04, 0x2857, 0x002e, 0x00de, 0x000e, 0x0005, 0x00c6,
+       0x2061, 0xb500, 0x6030, 0x0110, 0xc09d, 0x0008, 0xc09c, 0x6032,
+       0x00ce, 0x0005, 0x0156, 0x00d6, 0x0026, 0x0016, 0x0006, 0x2069,
+@@ -844,13 +844,13 @@ unsigned short risc_code01[] = { 
+       0x22a8, 0x2001, 0x0402, 0x0018, 0x22a8, 0x2001, 0x0404, 0x680e,
+       0x1f04, 0x2887, 0x680f, 0x0000, 0x000e, 0x001e, 0x002e, 0x00de,
+       0x015e, 0x0005, 0x2001, 0xb553, 0x2004, 0xd0c4, 0x0150, 0xd0a4,
+-      0x0140, 0xa006, 0x0046, 0x2020, 0x2009, 0x002e, 0x080c, 0xb0dc,
++      0x0140, 0xa006, 0x0046, 0x2020, 0x2009, 0x002e, 0x080c, 0xb0e8,
+       0x004e, 0x0005, 0x00f6, 0x0016, 0x0026, 0x2079, 0x0140, 0x78c4,
+       0xd0dc, 0x0548, 0xa084, 0x0700, 0xa08e, 0x0300, 0x1520, 0x2011,
+       0x0000, 0x2009, 0x0002, 0x2300, 0xa080, 0x0020, 0x2018, 0x2300,
+-      0x080c, 0x6b41, 0x2011, 0x0030, 0x2200, 0x8007, 0xa085, 0x004c,
++      0x080c, 0x6b40, 0x2011, 0x0030, 0x2200, 0x8007, 0xa085, 0x004c,
+       0x78c2, 0x2009, 0x0204, 0x210c, 0x2200, 0xa100, 0x2009, 0x0138,
+-      0x200a, 0x080c, 0x5ad0, 0x1118, 0x2009, 0xb78f, 0x200a, 0x002e,
++      0x200a, 0x080c, 0x5acf, 0x1118, 0x2009, 0xb78f, 0x200a, 0x002e,
+       0x001e, 0x00fe, 0x0005, 0x78c3, 0x0000, 0x0cc8, 0x0126, 0x2091,
+       0x2800, 0x0006, 0x0016, 0x0026, 0x2001, 0x0170, 0x200c, 0x8000,
+       0x2014, 0xa184, 0x0003, 0x0110, 0x0804, 0x1b04, 0x002e, 0x001e,
+@@ -912,10 +912,10 @@ unsigned short risc_code01[] = { 
+       0x23f2, 0x0098, 0x0106, 0x0006, 0x080c, 0x28d6, 0x080c, 0x2519,
+       0x080c, 0x239c, 0x080c, 0x23f2, 0x0040, 0x20d1, 0x0000, 0x20d1,
+       0x0001, 0x20d1, 0x0000, 0x080c, 0x1515, 0x000e, 0x010e, 0x000d,
+-      0x00c6, 0x0026, 0x0046, 0x2021, 0x0000, 0x080c, 0x530a, 0x1904,
++      0x00c6, 0x0026, 0x0046, 0x2021, 0x0000, 0x080c, 0x5309, 0x1904,
+       0x2b95, 0x72d4, 0x2001, 0xb79e, 0x2004, 0xa005, 0x1110, 0xd29c,
+       0x0148, 0xd284, 0x1138, 0xd2bc, 0x1904, 0x2b95, 0x080c, 0x2b99,
+-      0x0804, 0x2b95, 0xd2cc, 0x1904, 0x2b95, 0x080c, 0x5ad0, 0x1120,
++      0x0804, 0x2b95, 0xd2cc, 0x1904, 0x2b95, 0x080c, 0x5acf, 0x1120,
+       0x709f, 0xffff, 0x0804, 0x2b95, 0xd294, 0x0120, 0x709f, 0xffff,
+       0x0804, 0x2b95, 0x2001, 0xb515, 0x203c, 0x7288, 0xd284, 0x0904,
+       0x2b37, 0xd28c, 0x1904, 0x2b37, 0x0036, 0x739c, 0xa38e, 0xffff,
+@@ -923,7 +923,7 @@ unsigned short risc_code01[] = { 
+       0x0001, 0x0120, 0xa084, 0xff00, 0x8007, 0x0010, 0xa084, 0x00ff,
+       0xa70e, 0x0560, 0xa08e, 0x0000, 0x0548, 0xa08e, 0x00ff, 0x1150,
+       0x7230, 0xd284, 0x1538, 0x7288, 0xc28d, 0x728a, 0x709f, 0xffff,
+-      0x003e, 0x0428, 0x2009, 0x0000, 0x080c, 0x281d, 0x080c, 0x4f4e,
++      0x003e, 0x0428, 0x2009, 0x0000, 0x080c, 0x281d, 0x080c, 0x4f4d,
+       0x11b8, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x1150, 0x7030,
+       0xd08c, 0x0118, 0x6000, 0xd0bc, 0x0120, 0x080c, 0x2bac, 0x0140,
+       0x0028, 0x080c, 0x2cdd, 0x080c, 0x2bda, 0x0110, 0x8318, 0x0818,
+@@ -932,51 +932,51 @@ unsigned short risc_code01[] = { 
+       0xa096, 0xffff, 0x1120, 0x2009, 0x0000, 0x28a8, 0x0050, 0xa812,
+       0x0220, 0x2008, 0xa802, 0x20a8, 0x0020, 0x709f, 0xffff, 0x0804,
+       0x2b95, 0x2700, 0x0156, 0x0016, 0xa106, 0x05a0, 0xc484, 0x080c,
+-      0x4faa, 0x0120, 0x080c, 0x4f4e, 0x15a8, 0x0008, 0xc485, 0x6004,
++      0x4fa9, 0x0120, 0x080c, 0x4f4d, 0x15a8, 0x0008, 0xc485, 0x6004,
+       0xa084, 0x00ff, 0xa086, 0x0006, 0x1130, 0x7030, 0xd08c, 0x01e8,
+       0x6000, 0xd0bc, 0x11d0, 0x7288, 0xd28c, 0x0188, 0x6004, 0xa084,
+-      0x00ff, 0xa082, 0x0006, 0x02b0, 0xd484, 0x1118, 0x080c, 0x4f6d,
++      0x00ff, 0xa082, 0x0006, 0x02b0, 0xd484, 0x1118, 0x080c, 0x4f6c,
+       0x0028, 0x080c, 0x2d6a, 0x0170, 0x080c, 0x2d97, 0x0058, 0x080c,
+       0x2cdd, 0x080c, 0x2bda, 0x0170, 0x0028, 0x080c, 0x2d6a, 0x0110,
+       0x0419, 0x0140, 0x001e, 0x8108, 0x015e, 0x1f04, 0x2b51, 0x709f,
+       0xffff, 0x0018, 0x001e, 0x015e, 0x719e, 0x004e, 0x002e, 0x00ce,
+       0x0005, 0x00c6, 0x0016, 0x709f, 0x0001, 0x2009, 0x007e, 0x080c,
+-      0x4f4e, 0x1138, 0x080c, 0x2cdd, 0x04a9, 0x0118, 0x70d4, 0xc0bd,
++      0x4f4d, 0x1138, 0x080c, 0x2cdd, 0x04a9, 0x0118, 0x70d4, 0xc0bd,
+       0x70d6, 0x001e, 0x00ce, 0x0005, 0x0016, 0x0076, 0x00d6, 0x00c6,
+       0x2c68, 0x2001, 0xb557, 0x2004, 0xa084, 0x00ff, 0x6842, 0x080c,
+-      0x9ed0, 0x01d8, 0x2d00, 0x601a, 0x080c, 0xa021, 0x601f, 0x0001,
+-      0x2001, 0x0000, 0x080c, 0x4eec, 0x2001, 0x0000, 0x080c, 0x4efe,
++      0x9ed6, 0x01d8, 0x2d00, 0x601a, 0x080c, 0xa027, 0x601f, 0x0001,
++      0x2001, 0x0000, 0x080c, 0x4eeb, 0x2001, 0x0000, 0x080c, 0x4efd,
+       0x0126, 0x2091, 0x8000, 0x7098, 0x8000, 0x709a, 0x012e, 0x2009,
+-      0x0004, 0x080c, 0x8646, 0xa085, 0x0001, 0x00ce, 0x00de, 0x007e,
++      0x0004, 0x080c, 0x864c, 0xa085, 0x0001, 0x00ce, 0x00de, 0x007e,
+       0x001e, 0x0005, 0x0016, 0x0076, 0x00d6, 0x00c6, 0x2c68, 0x2001,
+-      0xb557, 0x2004, 0xa084, 0x00ff, 0x6842, 0x080c, 0x9ed0, 0x0550,
++      0xb557, 0x2004, 0xa084, 0x00ff, 0x6842, 0x080c, 0x9ed6, 0x0550,
+       0x2d00, 0x601a, 0x6800, 0xc0c4, 0x6802, 0x68a0, 0xa086, 0x007e,
+       0x0140, 0x6804, 0xa084, 0x00ff, 0xa086, 0x0006, 0x1110, 0x080c,
+-      0x2c9c, 0x080c, 0xa021, 0x601f, 0x0001, 0x2001, 0x0000, 0x080c,
+-      0x4eec, 0x2001, 0x0002, 0x080c, 0x4efe, 0x0126, 0x2091, 0x8000,
+-      0x7098, 0x8000, 0x709a, 0x012e, 0x2009, 0x0002, 0x080c, 0x8646,
++      0x2c9c, 0x080c, 0xa027, 0x601f, 0x0001, 0x2001, 0x0000, 0x080c,
++      0x4eeb, 0x2001, 0x0002, 0x080c, 0x4efd, 0x0126, 0x2091, 0x8000,
++      0x7098, 0x8000, 0x709a, 0x012e, 0x2009, 0x0002, 0x080c, 0x864c,
+       0xa085, 0x0001, 0x00ce, 0x00de, 0x007e, 0x001e, 0x0005, 0x00c6,
+-      0x0026, 0x2009, 0x0080, 0x080c, 0x4f4e, 0x1120, 0x0031, 0x0110,
++      0x0026, 0x2009, 0x0080, 0x080c, 0x4f4d, 0x1120, 0x0031, 0x0110,
+       0x70db, 0xffff, 0x002e, 0x00ce, 0x0005, 0x0016, 0x0076, 0x00d6,
+-      0x00c6, 0x2c68, 0x080c, 0x85c1, 0x01e8, 0x2d00, 0x601a, 0x080c,
+-      0xa021, 0x601f, 0x0001, 0x2001, 0x0000, 0x080c, 0x4eec, 0x2001,
+-      0x0002, 0x080c, 0x4efe, 0x0126, 0x2091, 0x8000, 0x080c, 0x2c9c,
+-      0x70dc, 0x8000, 0x70de, 0x012e, 0x2009, 0x0002, 0x080c, 0x8646,
++      0x00c6, 0x2c68, 0x080c, 0x85c7, 0x01e8, 0x2d00, 0x601a, 0x080c,
++      0xa027, 0x601f, 0x0001, 0x2001, 0x0000, 0x080c, 0x4eeb, 0x2001,
++      0x0002, 0x080c, 0x4efd, 0x0126, 0x2091, 0x8000, 0x080c, 0x2c9c,
++      0x70dc, 0x8000, 0x70de, 0x012e, 0x2009, 0x0002, 0x080c, 0x864c,
+       0xa085, 0x0001, 0x00ce, 0x00de, 0x007e, 0x001e, 0x0005, 0x00c6,
+-      0x00d6, 0x0126, 0x2091, 0x8000, 0x2009, 0x007f, 0x080c, 0x4f4e,
+-      0x1190, 0x2c68, 0x080c, 0x85c1, 0x0170, 0x2d00, 0x601a, 0x6312,
+-      0x601f, 0x0001, 0x620a, 0x080c, 0xa021, 0x2009, 0x0022, 0x080c,
+-      0x8646, 0xa085, 0x0001, 0x012e, 0x00de, 0x00ce, 0x0005, 0x00e6,
+-      0x00c6, 0x0066, 0x0036, 0x0026, 0x080c, 0x6e02, 0x080c, 0x6da5,
+-      0x080c, 0x9069, 0x2130, 0x81ff, 0x0128, 0x20a9, 0x007e, 0x2009,
++      0x00d6, 0x0126, 0x2091, 0x8000, 0x2009, 0x007f, 0x080c, 0x4f4d,
++      0x1190, 0x2c68, 0x080c, 0x85c7, 0x0170, 0x2d00, 0x601a, 0x6312,
++      0x601f, 0x0001, 0x620a, 0x080c, 0xa027, 0x2009, 0x0022, 0x080c,
++      0x864c, 0xa085, 0x0001, 0x012e, 0x00de, 0x00ce, 0x0005, 0x00e6,
++      0x00c6, 0x0066, 0x0036, 0x0026, 0x080c, 0x6e01, 0x080c, 0x6da4,
++      0x080c, 0x906f, 0x2130, 0x81ff, 0x0128, 0x20a9, 0x007e, 0x2009,
+       0x0000, 0x0020, 0x20a9, 0x007f, 0x2009, 0x0000, 0x0016, 0x080c,
+-      0x4faa, 0x1120, 0x080c, 0x51ab, 0x080c, 0x4c0c, 0x001e, 0x8108,
++      0x4fa9, 0x1120, 0x080c, 0x51aa, 0x080c, 0x4c0b, 0x001e, 0x8108,
+       0x1f04, 0x2c86, 0x86ff, 0x1110, 0x080c, 0x11f0, 0x002e, 0x003e,
+       0x006e, 0x00ce, 0x00ee, 0x0005, 0x00e6, 0x00c6, 0x0036, 0x0026,
+       0x0016, 0x6218, 0x2270, 0x72a0, 0x0026, 0x2019, 0x0029, 0x080c,
+-      0x6df6, 0x0076, 0x2039, 0x0000, 0x080c, 0x6d03, 0x2c08, 0x080c,
+-      0xae76, 0x007e, 0x001e, 0x2e60, 0x080c, 0x51ab, 0x6210, 0x6314,
+-      0x080c, 0x4c0c, 0x6212, 0x6316, 0x001e, 0x002e, 0x003e, 0x00ce,
++      0x6df5, 0x0076, 0x2039, 0x0000, 0x080c, 0x6d02, 0x2c08, 0x080c,
++      0xae82, 0x007e, 0x001e, 0x2e60, 0x080c, 0x51aa, 0x6210, 0x6314,
++      0x080c, 0x4c0b, 0x6212, 0x6316, 0x001e, 0x002e, 0x003e, 0x00ce,
+       0x00ee, 0x0005, 0x00e6, 0x0006, 0x6018, 0xa080, 0x0028, 0x2004,
+       0xa086, 0x0080, 0x0150, 0x2071, 0xb500, 0x7098, 0xa005, 0x0110,
+       0x8001, 0x709a, 0x000e, 0x00ee, 0x0005, 0x2071, 0xb500, 0x70dc,
+@@ -984,20 +984,20 @@ unsigned short risc_code01[] = { 
+       0x0005, 0x00f6, 0x00e6, 0x00c6, 0x0036, 0x0026, 0x0016, 0x0156,
+       0x2178, 0x81ff, 0x1118, 0x20a9, 0x0001, 0x0098, 0x2001, 0xb553,
+       0x2004, 0xd0c4, 0x0150, 0xd0a4, 0x0140, 0xa006, 0x0046, 0x2020,
+-      0x2009, 0x002d, 0x080c, 0xb0dc, 0x004e, 0x20a9, 0x00ff, 0x2011,
++      0x2009, 0x002d, 0x080c, 0xb0e8, 0x004e, 0x20a9, 0x00ff, 0x2011,
+       0x0000, 0x0026, 0xa28e, 0x007e, 0x0904, 0x2d49, 0xa28e, 0x007f,
+       0x0904, 0x2d49, 0xa28e, 0x0080, 0x05e0, 0xa288, 0xb635, 0x210c,
+       0x81ff, 0x05b8, 0x8fff, 0x1148, 0x2001, 0xb7be, 0x0006, 0x2003,
+       0x0001, 0x04d9, 0x000e, 0x2003, 0x0000, 0x00c6, 0x2160, 0x2001,
+-      0x0001, 0x080c, 0x5314, 0x00ce, 0x2019, 0x0029, 0x080c, 0x6df6,
+-      0x0076, 0x2039, 0x0000, 0x080c, 0x6d03, 0x00c6, 0x0026, 0x2160,
++      0x0001, 0x080c, 0x5313, 0x00ce, 0x2019, 0x0029, 0x080c, 0x6df5,
++      0x0076, 0x2039, 0x0000, 0x080c, 0x6d02, 0x00c6, 0x0026, 0x2160,
+       0x6204, 0xa294, 0x00ff, 0xa286, 0x0006, 0x1118, 0x6007, 0x0404,
+       0x0028, 0x2001, 0x0004, 0x8007, 0xa215, 0x6206, 0x002e, 0x00ce,
+-      0x0016, 0x2c08, 0x080c, 0xae76, 0x001e, 0x007e, 0x2160, 0x080c,
+-      0x51ab, 0x002e, 0x8210, 0x1f04, 0x2d01, 0x015e, 0x001e, 0x002e,
++      0x0016, 0x2c08, 0x080c, 0xae82, 0x001e, 0x007e, 0x2160, 0x080c,
++      0x51aa, 0x002e, 0x8210, 0x1f04, 0x2d01, 0x015e, 0x001e, 0x002e,
+       0x003e, 0x00ce, 0x00ee, 0x00fe, 0x0005, 0x0046, 0x0026, 0x0016,
+       0x2001, 0xb553, 0x2004, 0xd0c4, 0x0148, 0xd0a4, 0x0138, 0xa006,
+-      0x2220, 0x8427, 0x2009, 0x0029, 0x080c, 0xb0dc, 0x001e, 0x002e,
++      0x2220, 0x8427, 0x2009, 0x0029, 0x080c, 0xb0e8, 0x001e, 0x002e,
+       0x004e, 0x0005, 0x0016, 0x0026, 0x0036, 0x00c6, 0x7288, 0x82ff,
+       0x01f8, 0x2011, 0xb553, 0x2214, 0xd2ac, 0x11d0, 0x2100, 0x080c,
+       0x2831, 0x81ff, 0x01b8, 0x2019, 0x0001, 0x8314, 0xa2e0, 0xbcc0,
+@@ -1005,10 +1005,10 @@ unsigned short risc_code01[] = { 
+       0x00ff, 0xa116, 0x0138, 0xa096, 0x00ff, 0x0110, 0x8318, 0x0c68,
+       0xa085, 0x0001, 0x00ce, 0x003e, 0x002e, 0x001e, 0x0005, 0x0016,
+       0x00c6, 0x0126, 0x2091, 0x8000, 0x0016, 0x0026, 0x0036, 0x2110,
+-      0x0026, 0x2019, 0x0029, 0x080c, 0x8293, 0x002e, 0x080c, 0xb381,
++      0x0026, 0x2019, 0x0029, 0x080c, 0x8299, 0x002e, 0x080c, 0xb38d,
+       0x003e, 0x002e, 0x001e, 0xa180, 0xb635, 0x2004, 0xa065, 0x0158,
+       0x0016, 0x00c6, 0x2061, 0xb8f4, 0x001e, 0x611a, 0x080c, 0x2c9c,
+-      0x001e, 0x080c, 0x4f6d, 0x012e, 0x00ce, 0x001e, 0x0005, 0x2001,
++      0x001e, 0x080c, 0x4f6c, 0x012e, 0x00ce, 0x001e, 0x0005, 0x2001,
+       0xb535, 0x2004, 0xd0cc, 0x0005, 0x7eef, 0x7de8, 0x7ce4, 0x80e2,
+       0x7be1, 0x80e0, 0x80dc, 0x80da, 0x7ad9, 0x80d6, 0x80d5, 0x80d4,
+       0x80d3, 0x80d2, 0x80d1, 0x79ce, 0x78cd, 0x80cc, 0x80cb, 0x80ca,
+@@ -1063,89 +1063,89 @@ unsigned short risc_code01[] = { 
+       0x2fc6, 0x2fc6, 0x3282, 0x2fc6, 0x2fc6, 0x2fc6, 0x2fc6, 0x2fc6,
+       0x3294, 0x329e, 0x2fc6, 0x2fc6, 0x2fc6, 0x2fc6, 0x2fc6, 0x2fc6,
+       0x0002, 0x32c8, 0x331c, 0x3377, 0x3391, 0x2fc6, 0x33c2, 0x37f5,
+-      0x4234, 0x2fc6, 0x2fc6, 0x2fc6, 0x2fc6, 0x2fc6, 0x2fc6, 0x2fc6,
+-      0x2fc6, 0x300c, 0x300f, 0x37f7, 0x2fc6, 0x3804, 0x42cd, 0x4328,
+-      0x438c, 0x2fc6, 0x43ef, 0x4419, 0x4438, 0x446a, 0x2fc6, 0x2fc6,
++      0x4233, 0x2fc6, 0x2fc6, 0x2fc6, 0x2fc6, 0x2fc6, 0x2fc6, 0x2fc6,
++      0x2fc6, 0x300c, 0x300f, 0x37f7, 0x2fc6, 0x3804, 0x42cc, 0x4327,
++      0x438b, 0x2fc6, 0x43ee, 0x4418, 0x4437, 0x4469, 0x2fc6, 0x2fc6,
+       0x2fc6, 0x3808, 0x39ad, 0x39c7, 0x39e5, 0x3a46, 0x3aa6, 0x3ab1,
+-      0x3ae9, 0x3af8, 0x3b07, 0x3b0a, 0x3b2d, 0x3b77, 0x3bed, 0x3bfa,
+-      0x3cfb, 0x3e24, 0x3e4d, 0x3f4b, 0x3f6d, 0x3f79, 0x3fb2, 0x4076,
+-      0x2fc6, 0x2fc6, 0x2fc6, 0x2fc6, 0x40de, 0x40f9, 0x416b, 0x421d,
+-      0x713c, 0x0000, 0x2021, 0x4000, 0x080c, 0x3eaa, 0x0126, 0x2091,
++      0x3ae9, 0x3af8, 0x3b07, 0x3b0a, 0x3b2d, 0x3b79, 0x3bef, 0x3bfc,
++      0x3cfd, 0x3e23, 0x3e4c, 0x3f4a, 0x3f6c, 0x3f78, 0x3fb1, 0x4075,
++      0x2fc6, 0x2fc6, 0x2fc6, 0x2fc6, 0x40dd, 0x40f8, 0x416a, 0x421c,
++      0x713c, 0x0000, 0x2021, 0x4000, 0x080c, 0x3ea9, 0x0126, 0x2091,
+       0x8000, 0x0e04, 0x2fb6, 0x7818, 0xd084, 0x0110, 0x012e, 0x0cb0,
+       0x7c22, 0x7926, 0x7a2a, 0x7b2e, 0x781b, 0x0001, 0x2091, 0x4080,
+       0x7007, 0x0001, 0x2091, 0x5000, 0x012e, 0x0005, 0x2021, 0x4001,
+       0x0c18, 0x2021, 0x4002, 0x0c00, 0x2021, 0x4003, 0x08e8, 0x2021,
+       0x4005, 0x08d0, 0x2021, 0x4006, 0x08b8, 0xa02e, 0x2520, 0x7b28,
+-      0x7a2c, 0x7824, 0x7930, 0x0804, 0x3eb7, 0x7823, 0x0004, 0x7824,
++      0x7a2c, 0x7824, 0x7930, 0x0804, 0x3eb6, 0x7823, 0x0004, 0x7824,
+       0x0807, 0xa02e, 0x2520, 0x7b28, 0x7a2c, 0x7824, 0x7930, 0x0804,
+-      0x3eba, 0x7924, 0x7828, 0x2114, 0x200a, 0x0804, 0x2faa, 0x7924,
++      0x3eb9, 0x7924, 0x7828, 0x2114, 0x200a, 0x0804, 0x2faa, 0x7924,
+       0x2114, 0x0804, 0x2faa, 0x2099, 0x0009, 0x20a1, 0x0009, 0x20a9,
+       0x0007, 0x53a3, 0x7924, 0x7a28, 0x7b2c, 0x0804, 0x2faa, 0x7824,
+-      0x2060, 0x0090, 0x2009, 0x0002, 0x2011, 0x0002, 0x2019, 0x0004,
++      0x2060, 0x0090, 0x2009, 0x0002, 0x2011, 0x0002, 0x2019, 0x0006,
+       0x783b, 0x0017, 0x0804, 0x2faa, 0x7d38, 0x7c3c, 0x0840, 0x7d38,
+       0x7c3c, 0x0888, 0x2061, 0x1000, 0xe10c, 0xa006, 0x2c15, 0xa200,
+       0x8c60, 0x8109, 0x1dd8, 0x2010, 0xa005, 0x0904, 0x2faa, 0x0804,
+       0x2fcc, 0x2069, 0xb552, 0x7824, 0x7930, 0xa11a, 0x1a04, 0x2fd2,
+       0x8019, 0x0904, 0x2fd2, 0x684a, 0x6942, 0x782c, 0x6852, 0x7828,
+-      0x6856, 0xa006, 0x685a, 0x685e, 0x080c, 0x5da6, 0x0804, 0x2faa,
++      0x6856, 0xa006, 0x685a, 0x685e, 0x080c, 0x5da5, 0x0804, 0x2faa,
+       0x2069, 0xb552, 0x7824, 0x7934, 0xa11a, 0x1a04, 0x2fd2, 0x8019,
+       0x0904, 0x2fd2, 0x684e, 0x6946, 0x782c, 0x6862, 0x7828, 0x6866,
+-      0xa006, 0x686a, 0x686e, 0x080c, 0x53d6, 0x0804, 0x2faa, 0xa02e,
++      0xa006, 0x686a, 0x686e, 0x080c, 0x53d5, 0x0804, 0x2faa, 0xa02e,
+       0x2520, 0x81ff, 0x1904, 0x2fcf, 0x7924, 0x7b28, 0x7a2c, 0x20a9,
+-      0x0005, 0x20a1, 0xb589, 0x41a1, 0x080c, 0x3e76, 0x0904, 0x2fcf,
+-      0x2009, 0x0020, 0x080c, 0x3eb7, 0x701b, 0x3067, 0x0005, 0x6834,
++      0x0005, 0x20a1, 0xb589, 0x41a1, 0x080c, 0x3e75, 0x0904, 0x2fcf,
++      0x2009, 0x0020, 0x080c, 0x3eb6, 0x701b, 0x3067, 0x0005, 0x6834,
+       0x2008, 0xa084, 0x00ff, 0xa096, 0x0011, 0x0138, 0xa096, 0x0019,
+       0x0120, 0xa096, 0x0015, 0x1904, 0x2fcf, 0x810f, 0xa18c, 0x00ff,
+       0x0904, 0x2fcf, 0x710e, 0x700c, 0x8001, 0x0528, 0x700e, 0x080c,
+-      0x3e76, 0x0904, 0x2fcf, 0x2009, 0x0020, 0x2061, 0xb5d2, 0x6224,
++      0x3e75, 0x0904, 0x2fcf, 0x2009, 0x0020, 0x2061, 0xb5d2, 0x6224,
+       0x6328, 0x642c, 0x6530, 0xa290, 0x0040, 0xa399, 0x0000, 0xa4a1,
+-      0x0000, 0xa5a9, 0x0000, 0x080c, 0x3eb7, 0x701b, 0x3098, 0x0005,
++      0x0000, 0xa5a9, 0x0000, 0x080c, 0x3eb6, 0x701b, 0x3098, 0x0005,
+       0x6834, 0xa084, 0x00ff, 0xa096, 0x0002, 0x0120, 0xa096, 0x000a,
+       0x1904, 0x2fcf, 0x08c0, 0x7010, 0x2068, 0x6838, 0xc0fd, 0x683a,
+-      0x080c, 0x4e4a, 0x1128, 0x7007, 0x0003, 0x701b, 0x30b2, 0x0005,
+-      0x080c, 0x54dc, 0x0126, 0x2091, 0x8000, 0x20a9, 0x0005, 0x2099,
++      0x080c, 0x4e49, 0x1128, 0x7007, 0x0003, 0x701b, 0x30b2, 0x0005,
++      0x080c, 0x54db, 0x0126, 0x2091, 0x8000, 0x20a9, 0x0005, 0x2099,
+       0xb589, 0x530a, 0x2100, 0xa210, 0xa399, 0x0000, 0xa4a1, 0x0000,
+       0xa5a9, 0x0000, 0xad80, 0x000d, 0x2009, 0x0020, 0x012e, 0x0804,
+-      0x3eba, 0x61ac, 0x7824, 0x60ae, 0x0804, 0x2faa, 0x2091, 0x8000,
++      0x3eb9, 0x61ac, 0x7824, 0x60ae, 0x0804, 0x2faa, 0x2091, 0x8000,
+       0x7823, 0x4000, 0x7827, 0x4953, 0x782b, 0x5020, 0x782f, 0x2020,
+       0x2009, 0x017f, 0x2104, 0x7832, 0x3f00, 0x7836, 0x2061, 0x0100,
+       0x6200, 0x2061, 0x0200, 0x603c, 0x8007, 0xa205, 0x783a, 0x2009,
+       0x04fd, 0x2104, 0x783e, 0x781b, 0x0001, 0x2091, 0x5000, 0x2091,
+       0x4080, 0x2071, 0x0010, 0x20c1, 0x00f0, 0x0804, 0x0427, 0x81ff,
+-      0x1904, 0x2fcf, 0x7924, 0x810f, 0xa18c, 0x00ff, 0x080c, 0x4faa,
++      0x1904, 0x2fcf, 0x7924, 0x810f, 0xa18c, 0x00ff, 0x080c, 0x4fa9,
+       0x1904, 0x2fd2, 0x7e38, 0xa684, 0x3fff, 0xa082, 0x4000, 0x0210,
+-      0x0804, 0x2fd2, 0x7c28, 0x7d2c, 0x080c, 0x5172, 0xd28c, 0x1118,
+-      0x080c, 0x511b, 0x0010, 0x080c, 0x514b, 0x1518, 0x2061, 0xbd00,
++      0x0804, 0x2fd2, 0x7c28, 0x7d2c, 0x080c, 0x5171, 0xd28c, 0x1118,
++      0x080c, 0x511a, 0x0010, 0x080c, 0x514a, 0x1518, 0x2061, 0xbd00,
+       0x0126, 0x2091, 0x8000, 0x6000, 0xa086, 0x0000, 0x0148, 0x6010,
+       0xa06d, 0x0130, 0x683c, 0xa406, 0x1118, 0x6840, 0xa506, 0x0150,
+       0x012e, 0xace0, 0x0018, 0x2001, 0xb517, 0x2004, 0xac02, 0x1a04,
+-      0x2fcf, 0x0c30, 0x080c, 0x9924, 0x012e, 0x0904, 0x2fcf, 0x0804,
+-      0x2faa, 0xa00e, 0x2001, 0x0005, 0x080c, 0x54dc, 0x0126, 0x2091,
+-      0x8000, 0x080c, 0x9ecc, 0x080c, 0x5409, 0x012e, 0x0804, 0x2faa,
+-      0x81ff, 0x1904, 0x2fcf, 0x080c, 0x3e8b, 0x0904, 0x2fd2, 0x080c,
+-      0x5070, 0x0904, 0x2fcf, 0x080c, 0x517e, 0x0904, 0x2fcf, 0x0804,
+-      0x2faa, 0x81ff, 0x1904, 0x2fcf, 0x080c, 0x3e9b, 0x0904, 0x2fd2,
+-      0x080c, 0x51ea, 0x0904, 0x2fcf, 0x2019, 0x0005, 0x7924, 0x080c,
+-      0x5199, 0x0904, 0x2fcf, 0x7828, 0xa08a, 0x1000, 0x1a04, 0x2fd2,
+-      0x8003, 0x800b, 0x810b, 0xa108, 0x080c, 0x69a9, 0x0804, 0x2faa,
++      0x2fcf, 0x0c30, 0x080c, 0x992a, 0x012e, 0x0904, 0x2fcf, 0x0804,
++      0x2faa, 0xa00e, 0x2001, 0x0005, 0x080c, 0x54db, 0x0126, 0x2091,
++      0x8000, 0x080c, 0x9ed2, 0x080c, 0x5408, 0x012e, 0x0804, 0x2faa,
++      0x81ff, 0x1904, 0x2fcf, 0x080c, 0x3e8a, 0x0904, 0x2fd2, 0x080c,
++      0x506f, 0x0904, 0x2fcf, 0x080c, 0x517d, 0x0904, 0x2fcf, 0x0804,
++      0x2faa, 0x81ff, 0x1904, 0x2fcf, 0x080c, 0x3e9a, 0x0904, 0x2fd2,
++      0x080c, 0x51e9, 0x0904, 0x2fcf, 0x2019, 0x0005, 0x7924, 0x080c,
++      0x5198, 0x0904, 0x2fcf, 0x7828, 0xa08a, 0x1000, 0x1a04, 0x2fd2,
++      0x8003, 0x800b, 0x810b, 0xa108, 0x080c, 0x69a8, 0x0804, 0x2faa,
+       0x0126, 0x2091, 0x8000, 0x81ff, 0x0118, 0x2009, 0x0001, 0x0450,
+       0x2029, 0x00ff, 0x6450, 0x2400, 0xa506, 0x01f8, 0x2508, 0x080c,
+-      0x4faa, 0x11d8, 0x080c, 0x51ea, 0x1128, 0x2009, 0x0002, 0x62b4,
+-      0x2518, 0x00c0, 0x2019, 0x0004, 0xa00e, 0x080c, 0x5199, 0x1118,
++      0x4fa9, 0x11d8, 0x080c, 0x51e9, 0x1128, 0x2009, 0x0002, 0x62b4,
++      0x2518, 0x00c0, 0x2019, 0x0004, 0xa00e, 0x080c, 0x5198, 0x1118,
+       0x2009, 0x0006, 0x0078, 0x7824, 0xa08a, 0x1000, 0x1270, 0x8003,
+-      0x800b, 0x810b, 0xa108, 0x080c, 0x69a9, 0x8529, 0x1ae0, 0x012e,
++      0x800b, 0x810b, 0xa108, 0x080c, 0x69a8, 0x8529, 0x1ae0, 0x012e,
+       0x0804, 0x2faa, 0x012e, 0x0804, 0x2fcf, 0x012e, 0x0804, 0x2fd2,
+-      0x080c, 0x3e8b, 0x0904, 0x2fd2, 0x080c, 0x50d6, 0x080c, 0x5172,
+-      0x0804, 0x2faa, 0x81ff, 0x1904, 0x2fcf, 0x080c, 0x3e8b, 0x0904,
+-      0x2fd2, 0x080c, 0x50c7, 0x080c, 0x5172, 0x0804, 0x2faa, 0x81ff,
+-      0x1904, 0x2fcf, 0x080c, 0x3e8b, 0x0904, 0x2fd2, 0x080c, 0x514d,
+-      0x0904, 0x2fcf, 0x080c, 0x4e8e, 0x080c, 0x5114, 0x080c, 0x5172,
+-      0x0804, 0x2faa, 0x080c, 0x3e8b, 0x0904, 0x2fd2, 0x080c, 0x5070,
+-      0x0904, 0x2fcf, 0x62a0, 0x2019, 0x0005, 0x00c6, 0x080c, 0x51ab,
+-      0x2061, 0x0000, 0x080c, 0x6df6, 0x0076, 0x2039, 0x0000, 0x080c,
+-      0x6d03, 0x2009, 0x0000, 0x080c, 0xae76, 0x007e, 0x00ce, 0x080c,
+-      0x5172, 0x0804, 0x2faa, 0x080c, 0x3e8b, 0x0904, 0x2fd2, 0x080c,
+-      0x5172, 0x2208, 0x0804, 0x2faa, 0x0156, 0x00d6, 0x00e6, 0x2069,
++      0x080c, 0x3e8a, 0x0904, 0x2fd2, 0x080c, 0x50d5, 0x080c, 0x5171,
++      0x0804, 0x2faa, 0x81ff, 0x1904, 0x2fcf, 0x080c, 0x3e8a, 0x0904,
++      0x2fd2, 0x080c, 0x50c6, 0x080c, 0x5171, 0x0804, 0x2faa, 0x81ff,
++      0x1904, 0x2fcf, 0x080c, 0x3e8a, 0x0904, 0x2fd2, 0x080c, 0x514c,
++      0x0904, 0x2fcf, 0x080c, 0x4e8d, 0x080c, 0x5113, 0x080c, 0x5171,
++      0x0804, 0x2faa, 0x080c, 0x3e8a, 0x0904, 0x2fd2, 0x080c, 0x506f,
++      0x0904, 0x2fcf, 0x62a0, 0x2019, 0x0005, 0x00c6, 0x080c, 0x51aa,
++      0x2061, 0x0000, 0x080c, 0x6df5, 0x0076, 0x2039, 0x0000, 0x080c,
++      0x6d02, 0x2009, 0x0000, 0x080c, 0xae82, 0x007e, 0x00ce, 0x080c,
++      0x5171, 0x0804, 0x2faa, 0x080c, 0x3e8a, 0x0904, 0x2fd2, 0x080c,
++      0x5171, 0x2208, 0x0804, 0x2faa, 0x0156, 0x00d6, 0x00e6, 0x2069,
+       0xb614, 0x6810, 0x6914, 0xa10a, 0x1210, 0x2009, 0x0000, 0x6816,
+       0x2011, 0x0000, 0x2019, 0x0000, 0x20a9, 0x007e, 0x2069, 0xb635,
+       0x2d04, 0xa075, 0x0130, 0x704c, 0x0071, 0xa210, 0x7080, 0x0059,
+@@ -1156,18 +1156,18 @@ unsigned short risc_code01[] = { 
+       0x81ff, 0x1904, 0x2fcf, 0x6150, 0xa190, 0x2dc4, 0x2215, 0xa294,
+       0x00ff, 0x6370, 0x83ff, 0x0108, 0x6274, 0x67d4, 0xd79c, 0x0118,
+       0x2031, 0x0001, 0x0090, 0xd7ac, 0x0118, 0x2031, 0x0003, 0x0068,
+-      0xd7a4, 0x0118, 0x2031, 0x0002, 0x0040, 0x080c, 0x5ad0, 0x1118,
++      0xd7a4, 0x0118, 0x2031, 0x0002, 0x0040, 0x080c, 0x5acf, 0x1118,
+       0x2031, 0x0004, 0x0010, 0x2031, 0x0000, 0x7e3a, 0x7f3e, 0x0804,
+       0x2faa, 0x6140, 0x6244, 0x2019, 0xb7b6, 0x231c, 0x0804, 0x2faa,
+       0x0126, 0x2091, 0x8000, 0x6134, 0xa006, 0x2010, 0x6338, 0x012e,
+-      0x0804, 0x2faa, 0x080c, 0x3e9b, 0x0904, 0x2fd2, 0x6244, 0x6338,
++      0x0804, 0x2faa, 0x080c, 0x3e9a, 0x0904, 0x2fd2, 0x6244, 0x6338,
+       0x0804, 0x2faa, 0x6140, 0x6244, 0x7824, 0x6042, 0x7b28, 0x6346,
+       0x2069, 0xb552, 0x831f, 0xa305, 0x6816, 0x782c, 0x2069, 0xb7b6,
+       0x2d1c, 0x206a, 0x0804, 0x2faa, 0x0126, 0x2091, 0x8000, 0x7824,
+       0x6036, 0x782c, 0x603a, 0x012e, 0x0804, 0x2faa, 0x7838, 0xa005,
+       0x01a8, 0x7828, 0xa025, 0x0904, 0x2fd2, 0x782c, 0xa02d, 0x0904,
+-      0x2fd2, 0xa00e, 0x080c, 0x4faa, 0x1120, 0x6244, 0x6338, 0x6446,
+-      0x653a, 0xa186, 0x00ff, 0x0190, 0x8108, 0x0ca0, 0x080c, 0x3e9b,
++      0x2fd2, 0xa00e, 0x080c, 0x4fa9, 0x1120, 0x6244, 0x6338, 0x6446,
++      0x653a, 0xa186, 0x00ff, 0x0190, 0x8108, 0x0ca0, 0x080c, 0x3e9a,
+       0x0904, 0x2fd2, 0x7828, 0xa00d, 0x0904, 0x2fd2, 0x782c, 0xa005,
+       0x0904, 0x2fd2, 0x6244, 0x6146, 0x6338, 0x603a, 0x0804, 0x2faa,
+       0x2001, 0xb500, 0x2004, 0xa086, 0x0003, 0x1904, 0x2fcf, 0x00c6,
+@@ -1175,32 +1175,32 @@ unsigned short risc_code01[] = { 
+       0x1130, 0x2001, 0xb515, 0x2004, 0xa085, 0xff00, 0x0078, 0xa182,
+       0x007f, 0x16a0, 0xa188, 0x2dc4, 0x210d, 0xa18c, 0x00ff, 0x2001,
+       0xb515, 0x2004, 0xa116, 0x0550, 0x810f, 0xa105, 0x0126, 0x2091,
+-      0x8000, 0x0006, 0x080c, 0x85c1, 0x000e, 0x01e0, 0x601a, 0x600b,
+-      0xbc09, 0x601f, 0x0001, 0x080c, 0x3e76, 0x01d8, 0x6837, 0x0000,
++      0x8000, 0x0006, 0x080c, 0x85c7, 0x000e, 0x01e0, 0x601a, 0x600b,
++      0xbc09, 0x601f, 0x0001, 0x080c, 0x3e75, 0x01d8, 0x6837, 0x0000,
+       0x7007, 0x0003, 0x6833, 0x0000, 0x6838, 0xc0fd, 0x683a, 0x701b,
+-      0x3370, 0x2d00, 0x6012, 0x2009, 0x0032, 0x080c, 0x8646, 0x012e,
++      0x3370, 0x2d00, 0x6012, 0x2009, 0x0032, 0x080c, 0x864c, 0x012e,
+       0x00ce, 0x0005, 0x012e, 0x00ce, 0x0804, 0x2fcf, 0x00ce, 0x0804,
+-      0x2fd2, 0x080c, 0x8617, 0x0cb0, 0x2001, 0xb500, 0x2004, 0xa086,
++      0x2fd2, 0x080c, 0x861d, 0x0cb0, 0x2001, 0xb500, 0x2004, 0xa086,
+       0x0003, 0x1904, 0x2fcf, 0x00c6, 0x2061, 0x0100, 0x7924, 0x810f,
+       0xa18c, 0x00ff, 0xa196, 0x00ff, 0x1130, 0x2001, 0xb515, 0x2004,
+       0xa085, 0xff00, 0x0078, 0xa182, 0x007f, 0x16a0, 0xa188, 0x2dc4,
+       0x210d, 0xa18c, 0x00ff, 0x2001, 0xb515, 0x2004, 0xa116, 0x0550,
+-      0x810f, 0xa105, 0x0126, 0x2091, 0x8000, 0x0006, 0x080c, 0x85c1,
++      0x810f, 0xa105, 0x0126, 0x2091, 0x8000, 0x0006, 0x080c, 0x85c7,
+       0x000e, 0x01e0, 0x601a, 0x600b, 0xbc05, 0x601f, 0x0001, 0x080c,
+-      0x3e76, 0x01d8, 0x6837, 0x0000, 0x7007, 0x0003, 0x6833, 0x0000,
++      0x3e75, 0x01d8, 0x6837, 0x0000, 0x7007, 0x0003, 0x6833, 0x0000,
+       0x6838, 0xc0fd, 0x683a, 0x701b, 0x3370, 0x2d00, 0x6012, 0x2009,
+-      0x0032, 0x080c, 0x8646, 0x012e, 0x00ce, 0x0005, 0x012e, 0x00ce,
+-      0x0804, 0x2fcf, 0x00ce, 0x0804, 0x2fd2, 0x080c, 0x8617, 0x0cb0,
++      0x0032, 0x080c, 0x864c, 0x012e, 0x00ce, 0x0005, 0x012e, 0x00ce,
++      0x0804, 0x2fcf, 0x00ce, 0x0804, 0x2fd2, 0x080c, 0x861d, 0x0cb0,
+       0x6830, 0xa086, 0x0100, 0x0904, 0x2fcf, 0x0804, 0x2faa, 0x2061,
+       0xb874, 0x0126, 0x2091, 0x8000, 0x6000, 0xd084, 0x0178, 0x6104,
+       0x6208, 0x2a60, 0x6068, 0x783a, 0x60b4, 0x783e, 0x60b0, 0x2019,
+       0x0072, 0x201a, 0x6348, 0x012e, 0x0804, 0x2faa, 0xa00e, 0x2110,
+-      0x0c80, 0x81ff, 0x1904, 0x2fcf, 0x080c, 0x5ad0, 0x0904, 0x2fcf,
++      0x0c80, 0x81ff, 0x1904, 0x2fcf, 0x080c, 0x5acf, 0x0904, 0x2fcf,
+       0x0126, 0x2091, 0x8000, 0x6248, 0x6068, 0xa202, 0x0248, 0xa085,
+-      0x0001, 0x080c, 0x2867, 0x080c, 0x462d, 0x012e, 0x0804, 0x2faa,
++      0x0001, 0x080c, 0x2867, 0x080c, 0x462c, 0x012e, 0x0804, 0x2faa,
+       0x012e, 0x0804, 0x2fd2, 0x0006, 0x0016, 0x00c6, 0x00e6, 0x2001,
+       0xb7bf, 0x2070, 0x2061, 0xb552, 0x6008, 0x2072, 0x2009, 0x0000,
+-      0x2011, 0x1000, 0x080c, 0x6b41, 0x7206, 0x00ee, 0x00ce, 0x001e,
++      0x2011, 0x1000, 0x080c, 0x6b40, 0x7206, 0x00ee, 0x00ce, 0x001e,
+       0x000e, 0x0005, 0x0126, 0x2091, 0x8000, 0x7824, 0xa084, 0x0007,
+       0x0002, 0x33d4, 0x33dd, 0x33e4, 0x33d1, 0x33d1, 0x33d1, 0x33d1,
+       0x33d1, 0x012e, 0x0804, 0x2fd2, 0x2009, 0x0114, 0x2104, 0xa085,
+@@ -1308,10 +1308,10 @@ unsigned short risc_code01[] = { 
+       0x00c6, 0x2061, 0x0200, 0x2001, 0xb7c0, 0x2004, 0x601a, 0x2061,
+       0x0100, 0x2001, 0xb7bf, 0x2004, 0x60ce, 0x6004, 0xc0ac, 0xa085,
+       0x0200, 0x6006, 0x2001, 0x0074, 0x2004, 0xa005, 0x01f8, 0x2038,
+-      0x2001, 0x0076, 0x2024, 0x2001, 0x0077, 0x201c, 0x080c, 0x3e76,
++      0x2001, 0x0076, 0x2024, 0x2001, 0x0077, 0x201c, 0x080c, 0x3e75,
+       0x6833, 0x000d, 0x6f26, 0x2d00, 0x681a, 0xa78a, 0x0007, 0x0220,
+       0x2138, 0x2009, 0x0007, 0x0010, 0x2708, 0xa03e, 0x6818, 0xa080,
+-      0x000d, 0x04b1, 0x1d90, 0x2d00, 0x681a, 0x0088, 0x080c, 0x3e76,
++      0x000d, 0x04b1, 0x1d90, 0x2d00, 0x681a, 0x0088, 0x080c, 0x3e75,
+       0x6833, 0x000d, 0x2070, 0x6827, 0x0001, 0x2d00, 0x681a, 0x2001,
+       0x0076, 0x2004, 0x2072, 0x2001, 0x0077, 0x2004, 0x7006, 0x2061,
+       0x0020, 0x2079, 0x0100, 0x2001, 0xb7bf, 0x2004, 0x6012, 0x20e1,
+@@ -1322,14 +1322,14 @@ unsigned short risc_code01[] = { 
+       0x7432, 0x7336, 0xa006, 0x703a, 0x703e, 0x810b, 0x810b, 0x21a8,
+       0x810b, 0x7122, 0x7003, 0x0041, 0x7004, 0xd0fc, 0x0de8, 0x7003,
+       0x0002, 0x7003, 0x0040, 0x53a5, 0x7430, 0x7334, 0x87ff, 0x0180,
+-      0x00c6, 0x00d6, 0x2d60, 0x00c6, 0x080c, 0x3e76, 0x00ce, 0x6018,
++      0x00c6, 0x00d6, 0x2d60, 0x00c6, 0x080c, 0x3e75, 0x00ce, 0x6018,
+       0x2070, 0x2d00, 0x7006, 0x601a, 0x00de, 0x00ce, 0xa085, 0x0001,
+       0x00ee, 0x0005, 0x00e6, 0x2001, 0x0075, 0x2004, 0xa005, 0x0508,
+       0x2038, 0x2001, 0x0078, 0x2024, 0x2001, 0x0079, 0x201c, 0x080c,
+-      0x3e76, 0x2d60, 0x6833, 0x000d, 0x6f26, 0x2d00, 0x681a, 0xa78a,
++      0x3e75, 0x2d60, 0x6833, 0x000d, 0x6f26, 0x2d00, 0x681a, 0xa78a,
+       0x0007, 0x0220, 0x2138, 0x2009, 0x0007, 0x0010, 0x2708, 0xa03e,
+       0x6818, 0xa080, 0x000d, 0x080c, 0x3768, 0x1d88, 0x2d00, 0x681a,
+-      0x00e0, 0x080c, 0x3e76, 0x2d60, 0x6033, 0x000d, 0x2070, 0x6027,
++      0x00e0, 0x080c, 0x3e75, 0x2d60, 0x6033, 0x000d, 0x2070, 0x6027,
+       0x0001, 0x2c00, 0x601a, 0x2001, 0x0078, 0x2004, 0x2072, 0x2001,
+       0x0079, 0x2004, 0x7006, 0x2001, 0x0072, 0x2004, 0xa084, 0xfff8,
+       0x700a, 0x2001, 0x0073, 0x2004, 0x700e, 0x2001, 0x0030, 0x2003,
+@@ -1338,9 +1338,9 @@ unsigned short risc_code01[] = { 
+       0x0030, 0x2003, 0x0009, 0x00ee, 0x0005, 0x0804, 0x2faa, 0x0126,
+       0x2091, 0x8000, 0x20a9, 0x0012, 0x2001, 0xb540, 0x20a0, 0xa006,
+       0x40a4, 0x012e, 0x0804, 0x2faa, 0x7d38, 0x7c3c, 0x0804, 0x3051,
+-      0x080c, 0x3e76, 0x0904, 0x2fcf, 0x080c, 0x5ad0, 0x0110, 0x080c,
+-      0x4bf1, 0x2009, 0x001c, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x080c,
+-      0x3eb7, 0x701b, 0x381c, 0x0005, 0xade8, 0x000d, 0x6800, 0xa005,
++      0x080c, 0x3e75, 0x0904, 0x2fcf, 0x080c, 0x5acf, 0x0110, 0x080c,
++      0x4bf0, 0x2009, 0x001c, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x080c,
++      0x3eb6, 0x701b, 0x381c, 0x0005, 0xade8, 0x000d, 0x6800, 0xa005,
+       0x0904, 0x2fd2, 0x6804, 0xd0ac, 0x0118, 0xd0a4, 0x0904, 0x2fd2,
+       0xd094, 0x00c6, 0x2061, 0x0100, 0x6104, 0x0138, 0x6200, 0xa292,
+       0x0005, 0x0218, 0xa18c, 0xffdf, 0x0010, 0xa18d, 0x0020, 0x6106,
+@@ -1354,9 +1354,9 @@ unsigned short risc_code01[] = { 
+       0x0904, 0x2fd2, 0x6810, 0xa005, 0x0904, 0x2fd2, 0x6848, 0x6940,
+       0xa10a, 0x1a04, 0x2fd2, 0x8001, 0x0904, 0x2fd2, 0x684c, 0x6944,
+       0xa10a, 0x1a04, 0x2fd2, 0x8001, 0x0904, 0x2fd2, 0x6804, 0xd0fc,
+-      0x0560, 0x080c, 0x3e76, 0x0904, 0x2fcf, 0x2009, 0x0014, 0x7a2c,
++      0x0560, 0x080c, 0x3e75, 0x0904, 0x2fcf, 0x2009, 0x0014, 0x7a2c,
+       0x7b28, 0x7c3c, 0x7d38, 0xa290, 0x0038, 0xa399, 0x0000, 0x080c,
+-      0x3eb7, 0x701b, 0x389c, 0x0005, 0xade8, 0x000d, 0x20a9, 0x0014,
++      0x3eb6, 0x701b, 0x389c, 0x0005, 0xade8, 0x000d, 0x20a9, 0x0014,
+       0x2d98, 0x2069, 0xb56e, 0x2da0, 0x53a3, 0x7010, 0xa0e8, 0x000d,
+       0x2001, 0xb572, 0x200c, 0xd1e4, 0x0140, 0x00c6, 0x2061, 0x0100,
+       0x6004, 0xa085, 0x0b00, 0x6006, 0x00ce, 0x2009, 0xb7b1, 0x200b,
+@@ -1364,7 +1364,7 @@ unsigned short risc_code01[] = { 
+       0x2009, 0x017f, 0x200a, 0x3200, 0xa084, 0x003f, 0xa085, 0x3020,
+       0x2090, 0x20a9, 0x001c, 0x2d98, 0x2069, 0xb552, 0x2da0, 0x53a3,
+       0x6814, 0xa08c, 0x00ff, 0x6142, 0x8007, 0xa084, 0x00ff, 0x6046,
+-      0x080c, 0x5da6, 0x080c, 0x536d, 0x080c, 0x53d6, 0x6000, 0xa086,
++      0x080c, 0x5da5, 0x080c, 0x536c, 0x080c, 0x53d5, 0x6000, 0xa086,
+       0x0000, 0x1904, 0x3997, 0x6808, 0x602a, 0x080c, 0x2470, 0x0006,
+       0x2001, 0x0100, 0x2004, 0xa082, 0x0005, 0x000e, 0x0268, 0x2009,
+       0x0170, 0x200b, 0x0080, 0xe000, 0xe000, 0x200b, 0x0000, 0x0036,
+@@ -1373,3955 +1373,3956 @@ unsigned short risc_code01[] = { 
+       0x6c04, 0xd4f4, 0x0148, 0x6830, 0x6934, 0x6a38, 0x6b3c, 0x8007,
+       0x810f, 0x8217, 0x831f, 0x0010, 0xa084, 0xf0ff, 0x6006, 0x610a,
+       0x620e, 0x6312, 0x8007, 0x810f, 0x8217, 0x831f, 0x20a9, 0x0004,
+-      0x20a1, 0xb7c6, 0x40a1, 0x080c, 0x6a69, 0x6904, 0xd1fc, 0x0520,
++      0x20a1, 0xb7c6, 0x40a1, 0x080c, 0x6a68, 0x6904, 0xd1fc, 0x0520,
+       0x00c6, 0x2009, 0x0000, 0x20a9, 0x0001, 0x6b70, 0xd384, 0x01c8,
+-      0x0020, 0x839d, 0x12b0, 0x3508, 0x8109, 0x080c, 0x635d, 0x6878,
++      0x0020, 0x839d, 0x12b0, 0x3508, 0x8109, 0x080c, 0x635c, 0x6878,
+       0x6016, 0x6874, 0x2008, 0xa084, 0xff00, 0x8007, 0x600a, 0xa184,
+       0x00ff, 0x6006, 0x8108, 0x1118, 0x6003, 0x0003, 0x0010, 0x6003,
+       0x0001, 0x1f04, 0x3931, 0x00ce, 0x2069, 0xb552, 0x2001, 0xb79e,
+       0x6a80, 0xa294, 0x0030, 0xa28e, 0x0000, 0x0170, 0xa28e, 0x0010,
+       0x0118, 0xa28e, 0x0020, 0x0140, 0x2003, 0xaaaa, 0x080c, 0x28eb,
+       0x2001, 0xb78f, 0x2102, 0x0008, 0x2102, 0x00c6, 0x2061, 0x0100,
+-      0x602f, 0x0040, 0x602f, 0x0000, 0x00ce, 0x080c, 0x5ad0, 0x0128,
+-      0x080c, 0x40d0, 0x0110, 0x080c, 0x2867, 0x60c8, 0xa005, 0x01d0,
+-      0x6003, 0x0001, 0x2009, 0x397d, 0x00e0, 0x080c, 0x5ad0, 0x1178,
+-      0x2011, 0x59a3, 0x080c, 0x699d, 0x2011, 0x5996, 0x080c, 0x6a5d,
+-      0x2001, 0xb79f, 0x2003, 0x0000, 0x080c, 0x5a08, 0x0040, 0x080c,
+-      0x4b20, 0x0028, 0x6003, 0x0004, 0x2009, 0x3997, 0x0010, 0x0804,
++      0x602f, 0x0040, 0x602f, 0x0000, 0x00ce, 0x080c, 0x5acf, 0x0128,
++      0x080c, 0x40cf, 0x0110, 0x080c, 0x2867, 0x60c8, 0xa005, 0x01d0,
++      0x6003, 0x0001, 0x2009, 0x397d, 0x00e0, 0x080c, 0x5acf, 0x1178,
++      0x2011, 0x59a2, 0x080c, 0x699c, 0x2011, 0x5995, 0x080c, 0x6a5c,
++      0x2001, 0xb79f, 0x2003, 0x0000, 0x080c, 0x5a07, 0x0040, 0x080c,
++      0x4b1f, 0x0028, 0x6003, 0x0004, 0x2009, 0x3997, 0x0010, 0x0804,
+       0x2faa, 0x2001, 0x0100, 0x2004, 0xa082, 0x0005, 0x0258, 0x2001,
+       0x0170, 0x2004, 0xa084, 0x00ff, 0xa086, 0x004c, 0x1118, 0x2091,
+       0x309d, 0x0817, 0x2091, 0x301d, 0x0817, 0x6000, 0xa086, 0x0000,
+       0x0904, 0x2fcf, 0x2069, 0xb552, 0x7830, 0x6842, 0x7834, 0x6846,
+       0x6804, 0xd0fc, 0x0118, 0x2009, 0x0030, 0x0010, 0x2009, 0x001c,
+-      0x2d00, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x0804, 0x3eba, 0xa006,
+-      0x080c, 0x2867, 0x81ff, 0x1904, 0x2fcf, 0x080c, 0x5ad0, 0x1178,
++      0x2d00, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x0804, 0x3eb9, 0xa006,
++      0x080c, 0x2867, 0x81ff, 0x1904, 0x2fcf, 0x080c, 0x5acf, 0x1178,
+       0x2001, 0xb79f, 0x2003, 0x0001, 0x2001, 0xb500, 0x2003, 0x0001,
+-      0xa085, 0x0001, 0x080c, 0x5b14, 0x080c, 0x5a08, 0x0020, 0x080c,
+-      0x4bf1, 0x080c, 0x4b20, 0x0804, 0x2faa, 0x81ff, 0x1904, 0x2fcf,
+-      0x080c, 0x5ad0, 0x1110, 0x0804, 0x2fcf, 0x6188, 0x81ff, 0x0198,
++      0xa085, 0x0001, 0x080c, 0x5b13, 0x080c, 0x5a07, 0x0020, 0x080c,
++      0x4bf0, 0x080c, 0x4b1f, 0x0804, 0x2faa, 0x81ff, 0x1904, 0x2fcf,
++      0x080c, 0x5acf, 0x1110, 0x0804, 0x2fcf, 0x6188, 0x81ff, 0x0198,
+       0x703f, 0x0000, 0x2001, 0xbcc0, 0x2009, 0x0040, 0x7a2c, 0x7b28,
+-      0x7c3c, 0x7d38, 0x0126, 0x2091, 0x8000, 0x080c, 0x3eba, 0x701b,
++      0x7c3c, 0x7d38, 0x0126, 0x2091, 0x8000, 0x080c, 0x3eb9, 0x701b,
+       0x2fa8, 0x012e, 0x0005, 0x703f, 0x0001, 0x00d6, 0x2069, 0xbcc0,
+       0x20a9, 0x0040, 0x20a1, 0xbcc0, 0x2019, 0xffff, 0x43a4, 0x6550,
+       0xa588, 0x2dc4, 0x210d, 0xa18c, 0x00ff, 0x216a, 0xa00e, 0x2011,
+-      0x0002, 0x2100, 0xa506, 0x01a8, 0x080c, 0x4faa, 0x1190, 0x6014,
++      0x0002, 0x2100, 0xa506, 0x01a8, 0x080c, 0x4fa9, 0x1190, 0x6014,
+       0x821c, 0x0238, 0xa398, 0xbcc0, 0xa085, 0xff00, 0x8007, 0x201a,
+       0x0038, 0xa398, 0xbcc0, 0x2324, 0xa4a4, 0xff00, 0xa405, 0x201a,
+       0x8210, 0x8108, 0xa182, 0x0080, 0x1208, 0x0c18, 0x8201, 0x8007,
+       0x2d0c, 0xa105, 0x206a, 0x00de, 0x20a9, 0x0040, 0x20a1, 0xbcc0,
+-      0x2099, 0xbcc0, 0x080c, 0x4b90, 0x0804, 0x39f2, 0x080c, 0x3e9b,
+-      0x0904, 0x2fd2, 0x00c6, 0x080c, 0x3e76, 0x00ce, 0x1120, 0x2009,
++      0x2099, 0xbcc0, 0x080c, 0x4b8f, 0x0804, 0x39f2, 0x080c, 0x3e9a,
++      0x0904, 0x2fd2, 0x00c6, 0x080c, 0x3e75, 0x00ce, 0x1120, 0x2009,
+       0x0002, 0x0804, 0x2fcf, 0x2001, 0xb553, 0x2004, 0xd0b4, 0x0550,
+       0x7824, 0xa084, 0xff00, 0xa08e, 0x7e00, 0x0520, 0xa08e, 0x7f00,
+       0x0508, 0xa08e, 0x8000, 0x01f0, 0x6000, 0xd08c, 0x11d8, 0x6004,
+       0xa084, 0x00ff, 0xa086, 0x0006, 0x11a8, 0x6837, 0x0000, 0x6838,
+-      0xc0fd, 0x683a, 0x080c, 0x9dd4, 0x1120, 0x2009, 0x0003, 0x0804,
+-      0x2fcf, 0x7007, 0x0003, 0x701b, 0x3a7e, 0x0005, 0x080c, 0x3e9b,
++      0xc0fd, 0x683a, 0x080c, 0x9dda, 0x1120, 0x2009, 0x0003, 0x0804,
++      0x2fcf, 0x7007, 0x0003, 0x701b, 0x3a7e, 0x0005, 0x080c, 0x3e9a,
+       0x0904, 0x2fd2, 0x20a9, 0x002b, 0x2c98, 0xade8, 0x0002, 0x2da0,
+       0x53a3, 0x20a9, 0x0004, 0xac80, 0x0006, 0x2098, 0xad80, 0x0006,
+-      0x20a0, 0x080c, 0x4b90, 0x20a9, 0x0004, 0xac80, 0x000a, 0x2098,
+-      0xad80, 0x000a, 0x20a0, 0x080c, 0x4b90, 0x2d00, 0x2009, 0x002b,
+-      0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x0804, 0x3eba, 0x81ff, 0x1904,
+-      0x2fcf, 0x080c, 0x3e8b, 0x0904, 0x2fd2, 0x080c, 0x5187, 0x0804,
++      0x20a0, 0x080c, 0x4b8f, 0x20a9, 0x0004, 0xac80, 0x000a, 0x2098,
++      0xad80, 0x000a, 0x20a0, 0x080c, 0x4b8f, 0x2d00, 0x2009, 0x002b,
++      0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x0804, 0x3eb9, 0x81ff, 0x1904,
++      0x2fcf, 0x080c, 0x3e8a, 0x0904, 0x2fd2, 0x080c, 0x5186, 0x0804,
+       0x2faa, 0x81ff, 0x1904, 0x2fcf, 0x7828, 0xa08a, 0x1000, 0x1a04,
+-      0x2fd2, 0x080c, 0x3e9b, 0x0904, 0x2fd2, 0x080c, 0x51ea, 0x0904,
+-      0x2fcf, 0x2019, 0x0004, 0xa00e, 0x080c, 0x5199, 0x7924, 0x810f,
++      0x2fd2, 0x080c, 0x3e9a, 0x0904, 0x2fd2, 0x080c, 0x51e9, 0x0904,
++      0x2fcf, 0x2019, 0x0004, 0xa00e, 0x080c, 0x5198, 0x7924, 0x810f,
+       0x7a28, 0x0011, 0x0804, 0x2faa, 0xa186, 0x00ff, 0x0110, 0x0071,
+       0x0060, 0x2029, 0x007e, 0x2061, 0xb500, 0x6450, 0x2400, 0xa506,
+-      0x0110, 0x2508, 0x0019, 0x8529, 0x1ec8, 0x0005, 0x080c, 0x4faa,
+-      0x1138, 0x2200, 0x8003, 0x800b, 0x810b, 0xa108, 0x080c, 0x69a9,
+-      0x0005, 0x81ff, 0x1904, 0x2fcf, 0x080c, 0x3e8b, 0x0904, 0x2fd2,
+-      0x080c, 0x5070, 0x0904, 0x2fcf, 0x080c, 0x5190, 0x0804, 0x2faa,
+-      0x81ff, 0x1904, 0x2fcf, 0x080c, 0x3e8b, 0x0904, 0x2fd2, 0x080c,
+-      0x5070, 0x0904, 0x2fcf, 0x080c, 0x517e, 0x0804, 0x2faa, 0x6100,
+-      0x0804, 0x2faa, 0x080c, 0x3e9b, 0x0904, 0x2fd2, 0x2001, 0xb500,
++      0x0110, 0x2508, 0x0019, 0x8529, 0x1ec8, 0x0005, 0x080c, 0x4fa9,
++      0x1138, 0x2200, 0x8003, 0x800b, 0x810b, 0xa108, 0x080c, 0x69a8,
++      0x0005, 0x81ff, 0x1904, 0x2fcf, 0x080c, 0x3e8a, 0x0904, 0x2fd2,
++      0x080c, 0x506f, 0x0904, 0x2fcf, 0x080c, 0x518f, 0x0804, 0x2faa,
++      0x81ff, 0x1904, 0x2fcf, 0x080c, 0x3e8a, 0x0904, 0x2fd2, 0x080c,
++      0x506f, 0x0904, 0x2fcf, 0x080c, 0x517d, 0x0804, 0x2faa, 0x6100,
++      0x0804, 0x2faa, 0x080c, 0x3e9a, 0x0904, 0x2fd2, 0x2001, 0xb500,
+       0x2004, 0xa086, 0x0003, 0x1904, 0x2fcf, 0x00d6, 0xace8, 0x000a,
+       0x7924, 0xd184, 0x0110, 0xace8, 0x0006, 0x680c, 0x8007, 0x783e,
+       0x6808, 0x8007, 0x783a, 0x6b04, 0x831f, 0x6a00, 0x8217, 0x00de,
+-      0x6100, 0xa18c, 0x0200, 0x0804, 0x2faa, 0x7824, 0xa09c, 0x00ff,
+-      0xa39a, 0x0003, 0x1a04, 0x2fcf, 0x6250, 0xa294, 0x00ff, 0xa084,
+-      0xff00, 0x8007, 0xa206, 0x1150, 0x2001, 0xb540, 0x2009, 0x000c,
+-      0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x0804, 0x3eba, 0x81ff, 0x1904,
+-      0x2fcf, 0x080c, 0x3e9b, 0x0904, 0x2fd2, 0x6004, 0xa084, 0x00ff,
+-      0xa086, 0x0006, 0x1904, 0x2fcf, 0x00c6, 0x080c, 0x3e76, 0x00ce,
+-      0x0904, 0x2fcf, 0x6837, 0x0000, 0x6838, 0xc0fd, 0x683a, 0x080c,
+-      0x9d80, 0x0904, 0x2fcf, 0x7007, 0x0003, 0x701b, 0x3b68, 0x0005,
+-      0x6830, 0xa086, 0x0100, 0x0904, 0x2fcf, 0xad80, 0x000e, 0x2009,
+-      0x000c, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x0804, 0x3eba, 0xa006,
+-      0x080c, 0x2867, 0x7824, 0xa084, 0x00ff, 0xa086, 0x00ff, 0x0118,
+-      0x81ff, 0x1904, 0x2fcf, 0x080c, 0x5ad0, 0x0110, 0x080c, 0x4bf1,
+-      0x7828, 0xa08a, 0x1000, 0x1a04, 0x2fd2, 0x7924, 0xa18c, 0xff00,
+-      0x810f, 0xa186, 0x00ff, 0x0138, 0xa182, 0x007f, 0x1a04, 0x2fd2,
+-      0x2100, 0x080c, 0x2831, 0x0026, 0x00c6, 0x0126, 0x2091, 0x8000,
+-      0x2061, 0xb7f3, 0x601b, 0x0000, 0x601f, 0x0000, 0x080c, 0x5ad0,
+-      0x1178, 0x2001, 0xb79f, 0x2003, 0x0001, 0x2001, 0xb500, 0x2003,
+-      0x0001, 0xa085, 0x0001, 0x080c, 0x5b14, 0x080c, 0x5a08, 0x0420,
+-      0x2011, 0x0003, 0x080c, 0x8076, 0x2011, 0x0002, 0x080c, 0x8080,
+-      0x080c, 0x7f5a, 0x0036, 0x2019, 0x0000, 0x080c, 0x7fe5, 0x003e,
+-      0x2061, 0x0100, 0x2001, 0xb515, 0x2004, 0xa084, 0x00ff, 0x810f,
+-      0xa105, 0x604a, 0x6043, 0x0090, 0x6043, 0x0010, 0x2009, 0x002d,
+-      0x2011, 0x4b55, 0x080c, 0x6a23, 0x7924, 0xa18c, 0xff00, 0x810f,
+-      0x080c, 0x5ad0, 0x1110, 0x2009, 0x00ff, 0x7a28, 0x080c, 0x3acc,
+-      0x012e, 0x00ce, 0x002e, 0x0804, 0x2faa, 0x7924, 0xa18c, 0xff00,
+-      0x810f, 0x00c6, 0x080c, 0x4f4e, 0x2c08, 0x00ce, 0x1904, 0x2fd2,
+-      0x0804, 0x2faa, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x2fcf,
+-      0x60d4, 0xd0ac, 0x1130, 0xd09c, 0x1120, 0x2009, 0x0005, 0x0804,
+-      0x2fcf, 0x080c, 0x3e76, 0x1120, 0x2009, 0x0002, 0x0804, 0x2fcf,
+-      0x7924, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x080c, 0x3eb7, 0x701b,
+-      0x3c1a, 0x0005, 0x2009, 0x0080, 0x080c, 0x4faa, 0x1130, 0x6004,
+-      0xa084, 0x00ff, 0xa086, 0x0006, 0x0120, 0x2021, 0x400a, 0x0804,
+-      0x2fac, 0x00d6, 0xade8, 0x000d, 0x6900, 0x6a08, 0x6b0c, 0x6c10,
+-      0x6d14, 0x6e18, 0x6820, 0xa0be, 0x0100, 0x0904, 0x3c91, 0xa0be,
+-      0x0112, 0x0904, 0x3c91, 0xa0be, 0x0113, 0x0904, 0x3c91, 0xa0be,
+-      0x0114, 0x0904, 0x3c91, 0xa0be, 0x0117, 0x0904, 0x3c91, 0xa0be,
+-      0x011a, 0x0904, 0x3c91, 0xa0be, 0x011c, 0x0904, 0x3c91, 0xa0be,
+-      0x0121, 0x05b0, 0xa0be, 0x0131, 0x0598, 0xa0be, 0x0171, 0x05c8,
+-      0xa0be, 0x0173, 0x05b0, 0xa0be, 0x01a1, 0x1120, 0x6830, 0x8007,
+-      0x6832, 0x04a8, 0xa0be, 0x0212, 0x0540, 0xa0be, 0x0213, 0x0528,
+-      0xa0be, 0x0214, 0x01b0, 0xa0be, 0x0217, 0x0168, 0xa0be, 0x021a,
+-      0x1120, 0x6838, 0x8007, 0x683a, 0x00e0, 0xa0be, 0x0300, 0x01c8,
+-      0x00de, 0x0804, 0x2fd2, 0xad80, 0x0010, 0x20a9, 0x0007, 0x080c,
+-      0x3cd7, 0xad80, 0x000e, 0x20a9, 0x0001, 0x080c, 0x3cd7, 0x0048,
+-      0xad80, 0x000c, 0x080c, 0x3ce5, 0x0050, 0xad80, 0x000e, 0x080c,
+-      0x3ce5, 0xad80, 0x000c, 0x20a9, 0x0001, 0x080c, 0x3cd7, 0x00c6,
+-      0x080c, 0x3e76, 0x0568, 0x6838, 0xc0fd, 0x683a, 0x6837, 0x0119,
+-      0x6853, 0x0000, 0x684f, 0x0020, 0x685b, 0x0001, 0x810b, 0x697e,
+-      0x6883, 0x0000, 0x6a86, 0x6b8a, 0x6c8e, 0x6d92, 0x6996, 0x689b,
+-      0x0000, 0x00ce, 0x00de, 0x6837, 0x0000, 0x6838, 0xc0fd, 0x683a,
+-      0x6823, 0x0000, 0x6804, 0x2068, 0x080c, 0x9d9c, 0x1120, 0x2009,
+-      0x0003, 0x0804, 0x2fcf, 0x7007, 0x0003, 0x701b, 0x3cce, 0x0005,
+-      0x00ce, 0x00de, 0x2009, 0x0002, 0x0804, 0x2fcf, 0x6820, 0xa086,
+-      0x8001, 0x1904, 0x2faa, 0x2009, 0x0004, 0x0804, 0x2fcf, 0x0016,
+-      0x2008, 0x2044, 0x8000, 0x204c, 0x8000, 0x290a, 0x8108, 0x280a,
+-      0x8108, 0x1f04, 0x3cd9, 0x001e, 0x0005, 0x0016, 0x00a6, 0x00b6,
+-      0x2008, 0x2044, 0x8000, 0x204c, 0x8000, 0x2054, 0x8000, 0x205c,
+-      0x2b0a, 0x8108, 0x2a0a, 0x8108, 0x290a, 0x8108, 0x280a, 0x00be,
+-      0x00ae, 0x001e, 0x0005, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804,
+-      0x2fcf, 0x60d4, 0xd0ac, 0x1130, 0xd09c, 0x1120, 0x2009, 0x0005,
+-      0x0804, 0x2fcf, 0x7924, 0x2140, 0xa18c, 0xff00, 0x810f, 0x60d4,
+-      0xd0ac, 0x1120, 0xa182, 0x0080, 0x0a04, 0x2fd2, 0xa182, 0x00ff,
+-      0x1a04, 0x2fd2, 0x7a2c, 0x7b28, 0x6070, 0xa306, 0x1140, 0x6074,
+-      0xa24e, 0x0904, 0x2fd2, 0xa9cc, 0xff00, 0x0904, 0x2fd2, 0x00c6,
+-      0x080c, 0x3dc4, 0x2c68, 0x00ce, 0x0538, 0xa0c6, 0x4000, 0x1180,
+-      0x00c6, 0x0006, 0x2d60, 0x2009, 0x0000, 0x080c, 0x524b, 0x1108,
+-      0xc185, 0x6000, 0xd0bc, 0x0108, 0xc18d, 0x000e, 0x00ce, 0x0088,
+-      0xa0c6, 0x4007, 0x1110, 0x2408, 0x0060, 0xa0c6, 0x4008, 0x1118,
+-      0x2708, 0x2610, 0x0030, 0xa0c6, 0x4009, 0x1108, 0x0010, 0x2001,
+-      0x4006, 0x2020, 0x0804, 0x2fac, 0x2d00, 0x7022, 0x0016, 0x00b6,
+-      0x00c6, 0x00e6, 0x2c70, 0x080c, 0x85c1, 0x05d8, 0x2d00, 0x601a,
+-      0x080c, 0xa021, 0x2e58, 0x00ee, 0x00e6, 0x00c6, 0x080c, 0x3e76,
+-      0x00ce, 0x2b70, 0x1150, 0x080c, 0x8617, 0x00ee, 0x00ce, 0x00be,
+-      0x001e, 0x2009, 0x0002, 0x0804, 0x2fcf, 0x6837, 0x0000, 0x683b,
+-      0x0000, 0x2d00, 0x6012, 0x6833, 0x0000, 0x6838, 0xc0fd, 0xd88c,
+-      0x0108, 0xc0f5, 0x683a, 0x0126, 0x2091, 0x8000, 0x080c, 0x2c9c,
+-      0x012e, 0x601f, 0x0001, 0x2001, 0x0000, 0x080c, 0x4eec, 0x2001,
+-      0x0002, 0x080c, 0x4efe, 0x2009, 0x0002, 0x080c, 0x8646, 0xa085,
+-      0x0001, 0x00ee, 0x00ce, 0x00be, 0x001e, 0x1120, 0x2009, 0x0003,
+-      0x0804, 0x2fcf, 0x7007, 0x0003, 0x701b, 0x3da7, 0x0005, 0x6830,
+-      0xa086, 0x0100, 0x7020, 0x2060, 0x1138, 0x2009, 0x0004, 0x6204,
+-      0xa294, 0x00ff, 0x0804, 0x2fcf, 0x2009, 0x0000, 0x6838, 0xd0f4,
+-      0x1904, 0x2faa, 0x080c, 0x524b, 0x1108, 0xc185, 0x6000, 0xd0bc,
+-      0x0108, 0xc18d, 0x0804, 0x2faa, 0x00e6, 0x00d6, 0x2029, 0x0000,
+-      0x2001, 0xb535, 0x2004, 0xd0ac, 0x0138, 0x2021, 0x0000, 0x20a9,
+-      0x00ff, 0x2071, 0xb635, 0x0030, 0x2021, 0x0080, 0x20a9, 0x007f,
+-      0x2071, 0xb6b5, 0x2e04, 0xa005, 0x1130, 0x2100, 0xa406, 0x1570,
+-      0x2428, 0xc5fd, 0x0458, 0x2068, 0x6f10, 0x2700, 0xa306, 0x11b0,
+-      0x6e14, 0x2600, 0xa206, 0x1190, 0x2400, 0xa106, 0x1160, 0x2d60,
+-      0xd884, 0x0568, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x1538,
+-      0x2001, 0x4000, 0x0428, 0x2001, 0x4007, 0x0410, 0x2400, 0xa106,
+-      0x1168, 0x6e14, 0x87ff, 0x1138, 0x86ff, 0x09d0, 0x2001, 0xb535,
+-      0x2004, 0xd0ac, 0x19a8, 0x2001, 0x4008, 0x0090, 0x8420, 0x8e70,
+-      0x1f04, 0x3dda, 0x85ff, 0x1130, 0x2001, 0x4009, 0x0048, 0x2001,
+-      0x0001, 0x0030, 0x080c, 0x4f4e, 0x1dd0, 0x6312, 0x6216, 0xa006,
+-      0xa005, 0x00de, 0x00ee, 0x0005, 0x81ff, 0x1904, 0x2fcf, 0x080c,
+-      0x3e76, 0x0904, 0x2fcf, 0x6837, 0x0000, 0x6838, 0xc0fd, 0x683a,
+-      0x7824, 0xa005, 0x0904, 0x2fd2, 0xa096, 0x00ff, 0x0120, 0xa092,
+-      0x0004, 0x1a04, 0x2fd2, 0x2010, 0x2d18, 0x080c, 0x2c4f, 0x0904,
+-      0x2fcf, 0x7007, 0x0003, 0x701b, 0x3e46, 0x0005, 0x6830, 0xa086,
+-      0x0100, 0x0904, 0x2fcf, 0x0804, 0x2faa, 0x7924, 0xa18c, 0xff00,
++      0x6100, 0xa18c, 0x0200, 0x0804, 0x2faa, 0x7824, 0xa09c, 0x0003,
++      0xd0b4, 0x1160, 0xa39a, 0x0003, 0x1a04, 0x2fcf, 0x6250, 0xa294,
++      0x00ff, 0xa084, 0xff00, 0x8007, 0xa206, 0x1150, 0x2001, 0xb540,
++      0x2009, 0x000c, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x0804, 0x3eb9,
++      0x81ff, 0x1904, 0x2fcf, 0x080c, 0x3e9a, 0x0904, 0x2fd2, 0x6004,
++      0xa084, 0x00ff, 0xa086, 0x0006, 0x1904, 0x2fcf, 0x00c6, 0x080c,
++      0x3e75, 0x00ce, 0x0904, 0x2fcf, 0x6837, 0x0000, 0x6838, 0xc0fd,
++      0x683a, 0x080c, 0x9d86, 0x0904, 0x2fcf, 0x7007, 0x0003, 0x701b,
++      0x3b6a, 0x0005, 0x6830, 0xa086, 0x0100, 0x0904, 0x2fcf, 0xad80,
++      0x000e, 0x2009, 0x000c, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x0804,
++      0x3eb9, 0xa006, 0x080c, 0x2867, 0x7824, 0xa084, 0x00ff, 0xa086,
++      0x00ff, 0x0118, 0x81ff, 0x1904, 0x2fcf, 0x080c, 0x5acf, 0x0110,
++      0x080c, 0x4bf0, 0x7828, 0xa08a, 0x1000, 0x1a04, 0x2fd2, 0x7924,
++      0xa18c, 0xff00, 0x810f, 0xa186, 0x00ff, 0x0138, 0xa182, 0x007f,
++      0x1a04, 0x2fd2, 0x2100, 0x080c, 0x2831, 0x0026, 0x00c6, 0x0126,
++      0x2091, 0x8000, 0x2061, 0xb7f3, 0x601b, 0x0000, 0x601f, 0x0000,
++      0x080c, 0x5acf, 0x1178, 0x2001, 0xb79f, 0x2003, 0x0001, 0x2001,
++      0xb500, 0x2003, 0x0001, 0xa085, 0x0001, 0x080c, 0x5b13, 0x080c,
++      0x5a07, 0x0420, 0x2011, 0x0003, 0x080c, 0x8075, 0x2011, 0x0002,
++      0x080c, 0x807f, 0x080c, 0x7f59, 0x0036, 0x2019, 0x0000, 0x080c,
++      0x7fe4, 0x003e, 0x2061, 0x0100, 0x2001, 0xb515, 0x2004, 0xa084,
++      0x00ff, 0x810f, 0xa105, 0x604a, 0x6043, 0x0090, 0x6043, 0x0010,
++      0x2009, 0x002d, 0x2011, 0x4b54, 0x080c, 0x6a22, 0x7924, 0xa18c,
++      0xff00, 0x810f, 0x080c, 0x5acf, 0x1110, 0x2009, 0x00ff, 0x7a28,
++      0x080c, 0x3acc, 0x012e, 0x00ce, 0x002e, 0x0804, 0x2faa, 0x7924,
++      0xa18c, 0xff00, 0x810f, 0x00c6, 0x080c, 0x4f4d, 0x2c08, 0x00ce,
++      0x1904, 0x2fd2, 0x0804, 0x2faa, 0x81ff, 0x0120, 0x2009, 0x0001,
++      0x0804, 0x2fcf, 0x60d4, 0xd0ac, 0x1130, 0xd09c, 0x1120, 0x2009,
++      0x0005, 0x0804, 0x2fcf, 0x080c, 0x3e75, 0x1120, 0x2009, 0x0002,
++      0x0804, 0x2fcf, 0x7924, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x080c,
++      0x3eb6, 0x701b, 0x3c1c, 0x0005, 0x2009, 0x0080, 0x080c, 0x4fa9,
++      0x1130, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x0120, 0x2021,
++      0x400a, 0x0804, 0x2fac, 0x00d6, 0xade8, 0x000d, 0x6900, 0x6a08,
++      0x6b0c, 0x6c10, 0x6d14, 0x6e18, 0x6820, 0xa0be, 0x0100, 0x0904,
++      0x3c93, 0xa0be, 0x0112, 0x0904, 0x3c93, 0xa0be, 0x0113, 0x0904,
++      0x3c93, 0xa0be, 0x0114, 0x0904, 0x3c93, 0xa0be, 0x0117, 0x0904,
++      0x3c93, 0xa0be, 0x011a, 0x0904, 0x3c93, 0xa0be, 0x011c, 0x0904,
++      0x3c93, 0xa0be, 0x0121, 0x05b0, 0xa0be, 0x0131, 0x0598, 0xa0be,
++      0x0171, 0x05c8, 0xa0be, 0x0173, 0x05b0, 0xa0be, 0x01a1, 0x1120,
++      0x6830, 0x8007, 0x6832, 0x04a8, 0xa0be, 0x0212, 0x0540, 0xa0be,
++      0x0213, 0x0528, 0xa0be, 0x0214, 0x01b0, 0xa0be, 0x0217, 0x0168,
++      0xa0be, 0x021a, 0x1120, 0x6838, 0x8007, 0x683a, 0x00e0, 0xa0be,
++      0x0300, 0x01c8, 0x00de, 0x0804, 0x2fd2, 0xad80, 0x0010, 0x20a9,
++      0x0007, 0x080c, 0x3cd9, 0xad80, 0x000e, 0x20a9, 0x0001, 0x080c,
++      0x3cd9, 0x0048, 0xad80, 0x000c, 0x080c, 0x3ce7, 0x0050, 0xad80,
++      0x000e, 0x080c, 0x3ce7, 0xad80, 0x000c, 0x20a9, 0x0001, 0x080c,
++      0x3cd9, 0x00c6, 0x080c, 0x3e75, 0x0568, 0x6838, 0xc0fd, 0x683a,
++      0x6837, 0x0119, 0x6853, 0x0000, 0x684f, 0x0020, 0x685b, 0x0001,
++      0x810b, 0x697e, 0x6883, 0x0000, 0x6a86, 0x6b8a, 0x6c8e, 0x6d92,
++      0x6996, 0x689b, 0x0000, 0x00ce, 0x00de, 0x6837, 0x0000, 0x6838,
++      0xc0fd, 0x683a, 0x6823, 0x0000, 0x6804, 0x2068, 0x080c, 0x9da2,
++      0x1120, 0x2009, 0x0003, 0x0804, 0x2fcf, 0x7007, 0x0003, 0x701b,
++      0x3cd0, 0x0005, 0x00ce, 0x00de, 0x2009, 0x0002, 0x0804, 0x2fcf,
++      0x6820, 0xa086, 0x8001, 0x1904, 0x2faa, 0x2009, 0x0004, 0x0804,
++      0x2fcf, 0x0016, 0x2008, 0x2044, 0x8000, 0x204c, 0x8000, 0x290a,
++      0x8108, 0x280a, 0x8108, 0x1f04, 0x3cdb, 0x001e, 0x0005, 0x0016,
++      0x00a6, 0x00b6, 0x2008, 0x2044, 0x8000, 0x204c, 0x8000, 0x2054,
++      0x8000, 0x205c, 0x2b0a, 0x8108, 0x2a0a, 0x8108, 0x290a, 0x8108,
++      0x280a, 0x00be, 0x00ae, 0x001e, 0x0005, 0x81ff, 0x0120, 0x2009,
++      0x0001, 0x0804, 0x2fcf, 0x60d4, 0xd0ac, 0x1130, 0xd09c, 0x1120,
++      0x2009, 0x0005, 0x0804, 0x2fcf, 0x7924, 0x2140, 0xa18c, 0xff00,
+       0x810f, 0x60d4, 0xd0ac, 0x1120, 0xa182, 0x0080, 0x0a04, 0x2fd2,
+-      0xa182, 0x00ff, 0x1a04, 0x2fd2, 0x0126, 0x2091, 0x8000, 0x080c,
+-      0x9c84, 0x1188, 0xa190, 0xb635, 0x2204, 0xa065, 0x0160, 0x080c,
+-      0x4c0c, 0x2001, 0xb535, 0x2004, 0xd0ac, 0x0110, 0x6017, 0x0000,
+-      0x012e, 0x0804, 0x2faa, 0x012e, 0x0804, 0x2fcf, 0x080c, 0x15f8,
+-      0x0188, 0xa006, 0x6802, 0x7010, 0xa005, 0x1120, 0x2d00, 0x7012,
+-      0x7016, 0x0030, 0x7014, 0x6802, 0x2060, 0x2d00, 0x6006, 0x7016,
+-      0xad80, 0x000d, 0x0005, 0x7924, 0x810f, 0xa18c, 0x00ff, 0x080c,
+-      0x4faa, 0x1130, 0x7e28, 0xa684, 0x3fff, 0xa082, 0x4000, 0x0208,
+-      0xa066, 0x8cff, 0x0005, 0x7e24, 0x860f, 0xa18c, 0x00ff, 0x080c,
+-      0x4faa, 0x1128, 0xa6b4, 0x00ff, 0xa682, 0x4000, 0x0208, 0xa066,
+-      0x8cff, 0x0005, 0x0016, 0x7110, 0x81ff, 0x0128, 0x2168, 0x6904,
+-      0x080c, 0x160f, 0x0cc8, 0x7112, 0x7116, 0x001e, 0x0005, 0x2031,
+-      0x0001, 0x0010, 0x2031, 0x0000, 0x2061, 0xb5d2, 0x6606, 0x6112,
+-      0x600e, 0x6226, 0x632a, 0x642e, 0x6532, 0x2c10, 0x080c, 0x1643,
+-      0x7007, 0x0002, 0x701b, 0x2faa, 0x0005, 0x00f6, 0x0126, 0x2091,
+-      0x8000, 0x2079, 0x0000, 0x2001, 0xb590, 0x2004, 0xa005, 0x1168,
+-      0x0e04, 0x3ee5, 0x7818, 0xd084, 0x1140, 0x7a22, 0x7b26, 0x7c2a,
+-      0x781b, 0x0001, 0x2091, 0x4080, 0x0408, 0x0016, 0x00c6, 0x00e6,
+-      0x2071, 0xb582, 0x7138, 0xa182, 0x0010, 0x0218, 0x7030, 0x2060,
+-      0x0078, 0x7030, 0xa0e0, 0x0004, 0xac82, 0xb5d2, 0x0210, 0x2061,
+-      0xb592, 0x2c00, 0x7032, 0x81ff, 0x1108, 0x7036, 0x8108, 0x713a,
+-      0x2262, 0x6306, 0x640a, 0x00ee, 0x00ce, 0x001e, 0x012e, 0x00fe,
+-      0x0005, 0x00e6, 0x2071, 0xb582, 0x7038, 0xa005, 0x0570, 0x0126,
+-      0x2091, 0x8000, 0x0e04, 0x3f3c, 0x00f6, 0x2079, 0x0000, 0x7818,
+-      0xd084, 0x1508, 0x00c6, 0x7034, 0x2060, 0x2c04, 0x7822, 0x6004,
+-      0x7826, 0x6008, 0x782a, 0x781b, 0x0001, 0x2091, 0x4080, 0x7038,
+-      0x8001, 0x703a, 0xa005, 0x1130, 0x7033, 0xb592, 0x7037, 0xb592,
+-      0x00ce, 0x0048, 0xac80, 0x0004, 0xa0fa, 0xb5d2, 0x0210, 0x2001,
+-      0xb592, 0x7036, 0x00ce, 0x00fe, 0x012e, 0x00ee, 0x0005, 0x0026,
+-      0x2001, 0xb553, 0x2004, 0xd0c4, 0x0120, 0x2011, 0x8014, 0x080c,
+-      0x3ecd, 0x002e, 0x0005, 0x81ff, 0x1904, 0x2fcf, 0x0126, 0x2091,
+-      0x8000, 0x6030, 0xc08d, 0xc085, 0xc0ac, 0x6032, 0x080c, 0x5ad0,
+-      0x1178, 0x2001, 0xb79f, 0x2003, 0x0001, 0x2001, 0xb500, 0x2003,
+-      0x0001, 0xa085, 0x0001, 0x080c, 0x5b14, 0x080c, 0x5a08, 0x0010,
+-      0x080c, 0x4b20, 0x012e, 0x0804, 0x2faa, 0x7824, 0x2008, 0xa18c,
+-      0xfffd, 0x1128, 0x61e0, 0xa10d, 0x61e2, 0x0804, 0x2faa, 0x0804,
+-      0x2fd2, 0x81ff, 0x1904, 0x2fcf, 0x6000, 0xa086, 0x0003, 0x1904,
+-      0x2fcf, 0x2001, 0xb553, 0x2004, 0xd0ac, 0x1904, 0x2fcf, 0x080c,
+-      0x3e9b, 0x0904, 0x2fd2, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006,
+-      0x1120, 0x7828, 0xa005, 0x0904, 0x2faa, 0x00c6, 0x080c, 0x3e76,
+-      0x00ce, 0x0904, 0x2fcf, 0x6837, 0x0000, 0x6833, 0x0000, 0x6838,
+-      0xc0fd, 0x683a, 0x080c, 0x9e65, 0x0904, 0x2fcf, 0x7007, 0x0003,
+-      0x701b, 0x3fab, 0x0005, 0x6830, 0xa086, 0x0100, 0x0904, 0x2fcf,
+-      0x0804, 0x2faa, 0x2001, 0xb500, 0x2004, 0xa086, 0x0003, 0x1904,
+-      0x2fcf, 0x7f24, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x080c, 0x3e76,
+-      0x0904, 0x2fcf, 0x2009, 0x0000, 0x2031, 0x0000, 0x7023, 0x0000,
+-      0x702f, 0x0000, 0xad80, 0x0005, 0x7026, 0x20a0, 0x080c, 0x4faa,
+-      0x1904, 0x4025, 0x6004, 0xa0c4, 0x00ff, 0xa8c6, 0x0006, 0x0130,
+-      0xa0c4, 0xff00, 0xa8c6, 0x0600, 0x1904, 0x4025, 0x2001, 0xb553,
+-      0x2004, 0xd0ac, 0x1128, 0x080c, 0x524b, 0x1110, 0xd79c, 0x05e8,
+-      0xd794, 0x1110, 0xd784, 0x0158, 0xac80, 0x0006, 0x2098, 0x3400,
+-      0x20a9, 0x0004, 0x53a3, 0x080c, 0x3ce5, 0xd794, 0x0148, 0xac80,
+-      0x000a, 0x2098, 0x3400, 0x20a9, 0x0004, 0x53a3, 0x080c, 0x3ce5,
+-      0x21a2, 0xd794, 0x01d8, 0xac80, 0x0000, 0x2098, 0x94a0, 0x20a9,
+-      0x0002, 0x53a3, 0xac80, 0x0003, 0x20a6, 0x94a0, 0xac80, 0x0004,
+-      0x2098, 0x3400, 0x20a9, 0x0002, 0x53a3, 0x080c, 0x3cd7, 0xac80,
+-      0x0026, 0x2098, 0x20a9, 0x0002, 0x53a3, 0x0008, 0x94a0, 0xd794,
+-      0x0110, 0xa6b0, 0x000b, 0xa6b0, 0x0005, 0x8108, 0x2001, 0xb535,
+-      0x2004, 0xd0ac, 0x0118, 0xa186, 0x0100, 0x0040, 0xd78c, 0x0120,
+-      0xa186, 0x0100, 0x0170, 0x0018, 0xa186, 0x007e, 0x0150, 0xd794,
+-      0x0118, 0xa686, 0x0020, 0x0010, 0xa686, 0x0028, 0x0150, 0x0804,
+-      0x3fce, 0x86ff, 0x1120, 0x7120, 0x810b, 0x0804, 0x2faa, 0x702f,
+-      0x0001, 0x711e, 0x7020, 0xa600, 0x7022, 0x772a, 0x2061, 0xb5d2,
+-      0x6007, 0x0000, 0x6612, 0x7024, 0x600e, 0x6226, 0x632a, 0x642e,
+-      0x6532, 0x2c10, 0x080c, 0x1643, 0x7007, 0x0002, 0x701b, 0x4061,
+-      0x0005, 0x702c, 0xa005, 0x1170, 0x711c, 0x7024, 0x20a0, 0x7728,
+-      0x2031, 0x0000, 0x2061, 0xb5d2, 0x6224, 0x6328, 0x642c, 0x6530,
+-      0x0804, 0x3fce, 0x7120, 0x810b, 0x0804, 0x2faa, 0x2029, 0x007e,
+-      0x7924, 0x7a28, 0x7b2c, 0x7c38, 0xa184, 0xff00, 0x8007, 0xa0e2,
+-      0x0020, 0x0a04, 0x2fd2, 0xa502, 0x0a04, 0x2fd2, 0xa184, 0x00ff,
+-      0xa0e2, 0x0020, 0x0a04, 0x2fd2, 0xa502, 0x0a04, 0x2fd2, 0xa284,
+-      0xff00, 0x8007, 0xa0e2, 0x0020, 0x0a04, 0x2fd2, 0xa502, 0x0a04,
+-      0x2fd2, 0xa284, 0x00ff, 0xa0e2, 0x0020, 0x0a04, 0x2fd2, 0xa502,
+-      0x0a04, 0x2fd2, 0xa384, 0xff00, 0x8007, 0xa0e2, 0x0020, 0x0a04,
+-      0x2fd2, 0xa502, 0x0a04, 0x2fd2, 0xa384, 0x00ff, 0xa0e2, 0x0020,
+-      0x0a04, 0x2fd2, 0xa502, 0x0a04, 0x2fd2, 0xa484, 0xff00, 0x8007,
+-      0xa0e2, 0x0020, 0x0a04, 0x2fd2, 0xa502, 0x0a04, 0x2fd2, 0xa484,
+-      0x00ff, 0xa0e2, 0x0020, 0x0a04, 0x2fd2, 0xa502, 0x0a04, 0x2fd2,
+-      0x2061, 0xb7b9, 0x6102, 0x6206, 0x630a, 0x640e, 0x0804, 0x2faa,
+-      0x0006, 0x2001, 0xb553, 0x2004, 0xd0cc, 0x000e, 0x0005, 0x0006,
+-      0x2001, 0xb572, 0x2004, 0xd0bc, 0x000e, 0x0005, 0x6168, 0x7a24,
+-      0x6300, 0x82ff, 0x1118, 0x7926, 0x0804, 0x2faa, 0x83ff, 0x1904,
+-      0x2fd2, 0x2001, 0xfff0, 0xa200, 0x1a04, 0x2fd2, 0x2019, 0xffff,
+-      0x606c, 0xa302, 0xa200, 0x0a04, 0x2fd2, 0x7926, 0x626a, 0x0804,
+-      0x2faa, 0x2001, 0xb500, 0x2004, 0xa086, 0x0003, 0x1904, 0x2fcf,
+-      0x7c28, 0x7d24, 0x7e38, 0x7f2c, 0x080c, 0x3e76, 0x0904, 0x2fcf,
+-      0x2009, 0x0000, 0x2019, 0x0000, 0x7023, 0x0000, 0x702f, 0x0000,
+-      0xad80, 0x0003, 0x7026, 0x20a0, 0xa1e0, 0xb635, 0x2c64, 0x8cff,
+-      0x01b8, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x0130, 0x6004,
+-      0xa084, 0xff00, 0xa086, 0x0600, 0x1158, 0x6014, 0x20a2, 0x94a0,
+-      0x6010, 0x8007, 0xa105, 0x8007, 0x20a2, 0x94a0, 0xa398, 0x0002,
+-      0x8108, 0xa182, 0x00ff, 0x0120, 0xa386, 0x002a, 0x0148, 0x08e0,
+-      0x83ff, 0x1120, 0x7120, 0x810c, 0x0804, 0x2faa, 0x702f, 0x0001,
+-      0x711e, 0x7020, 0xa300, 0x7022, 0x2061, 0xb5d2, 0x6007, 0x0000,
+-      0x6312, 0x7024, 0x600e, 0x6426, 0x652a, 0x662e, 0x6732, 0x2c10,
+-      0x080c, 0x1643, 0x7007, 0x0002, 0x701b, 0x4157, 0x0005, 0x702c,
+-      0xa005, 0x1168, 0x711c, 0x7024, 0x20a0, 0x2019, 0x0000, 0x2061,
+-      0xb5d2, 0x6424, 0x6528, 0x662c, 0x6730, 0x0804, 0x4114, 0x7120,
+-      0x810c, 0x0804, 0x2faa, 0x81ff, 0x1904, 0x2fcf, 0x60d4, 0xd0ac,
+-      0x1118, 0xd09c, 0x0904, 0x2fcf, 0x080c, 0x3e76, 0x0904, 0x2fcf,
+-      0x7924, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x080c, 0x3eb7, 0x701b,
+-      0x4182, 0x0005, 0x00d6, 0xade8, 0x000d, 0x6828, 0xa0be, 0x7000,
+-      0x0148, 0xa0be, 0x7100, 0x0130, 0xa0be, 0x7200, 0x0118, 0x00de,
+-      0x0804, 0x2fd2, 0x6820, 0x6924, 0x080c, 0x281d, 0x1510, 0x080c,
+-      0x4f4e, 0x11f8, 0x7122, 0x6612, 0x6516, 0x6e18, 0x00c6, 0x080c,
+-      0x3e76, 0x01b8, 0x080c, 0x3e76, 0x01a0, 0x00ce, 0x00de, 0x6837,
+-      0x0000, 0x6838, 0xc0fd, 0x683a, 0x6823, 0x0000, 0x6804, 0x2068,
+-      0x080c, 0x9db8, 0x0904, 0x2fcf, 0x7007, 0x0003, 0x701b, 0x41bc,
+-      0x0005, 0x00de, 0x0804, 0x2fcf, 0x7120, 0x080c, 0x2d97, 0x6820,
+-      0xa086, 0x8001, 0x0904, 0x2fcf, 0x2d00, 0x701e, 0x6804, 0xa080,
+-      0x0002, 0x0006, 0x20a9, 0x002a, 0x2098, 0x20a0, 0x080c, 0x4b90,
+-      0x000e, 0xade8, 0x000d, 0x6a08, 0x6b0c, 0x6c10, 0x6d14, 0x2061,
+-      0xb5d2, 0x6007, 0x0000, 0x6e00, 0x6f28, 0xa7c6, 0x7000, 0x1108,
+-      0x0018, 0xa7c6, 0x7100, 0x1140, 0xa6c2, 0x0004, 0x0a04, 0x2fd2,
+-      0x2009, 0x0004, 0x0804, 0x3eba, 0xa7c6, 0x7200, 0x1904, 0x2fd2,
+-      0xa6c2, 0x0054, 0x0a04, 0x2fd2, 0x600e, 0x6013, 0x002a, 0x6226,
+-      0x632a, 0x642e, 0x6532, 0x2c10, 0x080c, 0x1643, 0x7007, 0x0002,
+-      0x701b, 0x4203, 0x0005, 0x701c, 0x2068, 0x6804, 0xa080, 0x0001,
+-      0x2004, 0xa080, 0x0002, 0x0006, 0x20a9, 0x002a, 0x2098, 0x20a0,
+-      0x080c, 0x4b90, 0x000e, 0x2009, 0x002a, 0x2061, 0xb5d2, 0x6224,
+-      0x6328, 0x642c, 0x6530, 0x0804, 0x3eba, 0x81ff, 0x1904, 0x2fcf,
+-      0x792c, 0x2001, 0xb7a0, 0x2102, 0x080c, 0x3e8b, 0x0904, 0x2fd2,
+-      0x080c, 0x5070, 0x0904, 0x2fcf, 0x0126, 0x2091, 0x8000, 0x080c,
+-      0x51a2, 0x012e, 0x0804, 0x2faa, 0x7824, 0xd08c, 0x1118, 0xd084,
+-      0x0904, 0x3a46, 0x080c, 0x3e9b, 0x0904, 0x2fd2, 0x00c6, 0x080c,
+-      0x3e76, 0x00ce, 0x1120, 0x2009, 0x0002, 0x0804, 0x2fcf, 0x6004,
+-      0xa084, 0x00ff, 0xa086, 0x0006, 0x0128, 0xa08e, 0x0004, 0x0110,
+-      0xa08e, 0x0005, 0x15b8, 0x7824, 0xd08c, 0x0120, 0x6000, 0xc08c,
+-      0x6002, 0x0030, 0x2001, 0xb553, 0x2004, 0xd0b4, 0x0904, 0x3a82,
+-      0x7824, 0xa084, 0xff00, 0xa08e, 0x7e00, 0x0904, 0x3a82, 0xa08e,
+-      0x7f00, 0x0904, 0x3a82, 0xa08e, 0x8000, 0x0904, 0x3a82, 0x6000,
+-      0xd08c, 0x1904, 0x3a82, 0x6837, 0x0000, 0x6838, 0xc0fd, 0x683a,
+-      0x080c, 0x9dd4, 0x1120, 0x2009, 0x0003, 0x0804, 0x2fcf, 0x7007,
+-      0x0003, 0x701b, 0x4284, 0x0005, 0x080c, 0x3e9b, 0x0904, 0x2fd2,
+-      0x0804, 0x3a82, 0x2009, 0xb531, 0x210c, 0x81ff, 0x0120, 0x2009,
+-      0x0001, 0x0804, 0x2fcf, 0x2001, 0xb500, 0x2004, 0xa086, 0x0003,
+-      0x0120, 0x2009, 0x0007, 0x0804, 0x2fcf, 0x2001, 0xb553, 0x2004,
+-      0xd0ac, 0x0120, 0x2009, 0x0008, 0x0804, 0x2fcf, 0x609c, 0xd0a4,
+-      0x1118, 0xd0ac, 0x1904, 0x3a82, 0x6837, 0x0000, 0x6833, 0x0000,
+-      0x6838, 0xc0fd, 0x683a, 0x080c, 0x9e65, 0x1120, 0x2009, 0x0003,
+-      0x0804, 0x2fcf, 0x7007, 0x0003, 0x701b, 0x42bf, 0x0005, 0x6830,
+-      0xa086, 0x0100, 0x1120, 0x2009, 0x0004, 0x0804, 0x2fcf, 0x080c,
+-      0x3e9b, 0x0904, 0x2fd2, 0x0804, 0x4253, 0x81ff, 0x2009, 0x0001,
+-      0x1904, 0x2fcf, 0x6000, 0xa086, 0x0003, 0x2009, 0x0007, 0x1904,
+-      0x2fcf, 0x2001, 0xb553, 0x2004, 0xd0ac, 0x2009, 0x0008, 0x1904,
+-      0x2fcf, 0x080c, 0x3e9b, 0x0904, 0x2fd2, 0x6004, 0xa084, 0x00ff,
+-      0xa086, 0x0006, 0x2009, 0x0009, 0x1904, 0x2fcf, 0x00c6, 0x080c,
+-      0x3e76, 0x00ce, 0x2009, 0x0002, 0x0904, 0x2fcf, 0x6837, 0x0000,
+-      0x6833, 0x0000, 0x6838, 0xc0fd, 0x683a, 0x7928, 0xa194, 0xff00,
+-      0xa18c, 0x00ff, 0xa006, 0x82ff, 0x1128, 0xc0ed, 0x6952, 0x792c,
+-      0x6956, 0x0048, 0xa28e, 0x0100, 0x1904, 0x2fd2, 0xc0e5, 0x6853,
+-      0x0000, 0x6857, 0x0000, 0x683e, 0x080c, 0xa022, 0x2009, 0x0003,
+-      0x0904, 0x2fcf, 0x7007, 0x0003, 0x701b, 0x431f, 0x0005, 0x6830,
+-      0xa086, 0x0100, 0x2009, 0x0004, 0x0904, 0x2fcf, 0x0804, 0x2faa,
+-      0x81ff, 0x2009, 0x0001, 0x1904, 0x2fcf, 0x6000, 0xa086, 0x0003,
+-      0x2009, 0x0007, 0x1904, 0x2fcf, 0x080c, 0x3e9b, 0x0904, 0x2fd2,
+-      0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x2009, 0x0009, 0x1904,
+-      0x2fcf, 0x00c6, 0x080c, 0x3e76, 0x00ce, 0x2009, 0x0002, 0x0904,
+-      0x2fcf, 0xad80, 0x000f, 0x2009, 0x0008, 0x7a2c, 0x7b28, 0x7c3c,
+-      0x7d38, 0x080c, 0x3eb7, 0x701b, 0x4356, 0x0005, 0x00d6, 0xade8,
+-      0x000f, 0x6800, 0xa086, 0x0500, 0x1140, 0x6804, 0xa005, 0x1128,
+-      0x6808, 0xa084, 0xff00, 0x1108, 0x0018, 0x00de, 0x1904, 0x2fd2,
+-      0x00de, 0x6837, 0x0000, 0x6833, 0x0000, 0x6838, 0xc0fd, 0x683a,
+-      0x00c6, 0x080c, 0x3e9b, 0x1118, 0x00ce, 0x0804, 0x2fd2, 0x080c,
+-      0xa071, 0x2009, 0x0003, 0x00ce, 0x0904, 0x2fcf, 0x7007, 0x0003,
+-      0x701b, 0x4383, 0x0005, 0x6830, 0xa086, 0x0100, 0x2009, 0x0004,
+-      0x0904, 0x2fcf, 0x0804, 0x2faa, 0x81ff, 0x0120, 0x2009, 0x0001,
+-      0x0804, 0x2fcf, 0x6000, 0xa086, 0x0003, 0x0120, 0x2009, 0x0007,
+-      0x0804, 0x2fcf, 0x7e24, 0x860f, 0xa18c, 0x00ff, 0xa6b4, 0x00ff,
+-      0x080c, 0x4faa, 0x1904, 0x2fd2, 0xa186, 0x007f, 0x0150, 0x6004,
+-      0xa084, 0x00ff, 0xa086, 0x0006, 0x0120, 0x2009, 0x0009, 0x0804,
+-      0x2fcf, 0x00c6, 0x080c, 0x3e76, 0x00ce, 0x1120, 0x2009, 0x0002,
+-      0x0804, 0x2fcf, 0x6837, 0x0000, 0x6838, 0xc0fd, 0x683a, 0x2001,
+-      0x0100, 0x8007, 0x680a, 0x080c, 0x9def, 0x1120, 0x2009, 0x0003,
+-      0x0804, 0x2fcf, 0x7007, 0x0003, 0x701b, 0x43cf, 0x0005, 0x6808,
+-      0x8007, 0xa086, 0x0100, 0x1120, 0x2009, 0x0004, 0x0804, 0x2fcf,
+-      0x68b0, 0x6836, 0x6810, 0x8007, 0xa084, 0x00ff, 0x800c, 0x6814,
+-      0x8007, 0xa084, 0x00ff, 0x8004, 0xa080, 0x0002, 0xa108, 0xad80,
+-      0x0004, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x0804, 0x3eba, 0x080c,
+-      0x3e76, 0x1120, 0x2009, 0x0002, 0x0804, 0x2fcf, 0x7924, 0xa194,
+-      0xff00, 0xa18c, 0x00ff, 0x8217, 0x82ff, 0x0110, 0x0804, 0x2fd2,
+-      0x2009, 0x001a, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x080c, 0x3eb7,
+-      0x701b, 0x440b, 0x0005, 0x2001, 0xb52a, 0x2003, 0x0001, 0xad80,
+-      0x000d, 0x2098, 0x20a9, 0x001a, 0x20a1, 0xb7c6, 0x53a3, 0x0804,
+-      0x2faa, 0x080c, 0x3e76, 0x1120, 0x2009, 0x0002, 0x0804, 0x2fcf,
+-      0x7924, 0xa194, 0xff00, 0xa18c, 0x00ff, 0x8217, 0x82ff, 0x0110,
+-      0x0804, 0x2fd2, 0x2099, 0xb7c6, 0x20a0, 0x20a9, 0x001a, 0x53a3,
+-      0x2009, 0x001a, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x0804, 0x3eba,
+-      0x7824, 0xa08a, 0x1000, 0x1a04, 0x2fd2, 0x0126, 0x2091, 0x8000,
+-      0x8003, 0x800b, 0x810b, 0xa108, 0x00c6, 0x2061, 0xb7f3, 0x6142,
+-      0x00ce, 0x012e, 0x0804, 0x2faa, 0x00c6, 0x080c, 0x5ad0, 0x1188,
++      0xa182, 0x00ff, 0x1a04, 0x2fd2, 0x7a2c, 0x7b28, 0x6070, 0xa306,
++      0x1140, 0x6074, 0xa24e, 0x0904, 0x2fd2, 0xa9cc, 0xff00, 0x0904,
++      0x2fd2, 0x00c6, 0x080c, 0x3dc5, 0x2c68, 0x00ce, 0x0530, 0xa0c6,
++      0x4000, 0x1178, 0x00c6, 0x0006, 0x2d60, 0xa00e, 0x080c, 0x524a,
++      0x1108, 0xc185, 0x6000, 0xd0bc, 0x0108, 0xc18d, 0x000e, 0x00ce,
++      0x0088, 0xa0c6, 0x4007, 0x1110, 0x2408, 0x0060, 0xa0c6, 0x4008,
++      0x1118, 0x2708, 0x2610, 0x0030, 0xa0c6, 0x4009, 0x1108, 0x0010,
++      0x2001, 0x4006, 0x2020, 0x0804, 0x2fac, 0x2d00, 0x7022, 0x0016,
++      0x00b6, 0x00c6, 0x00e6, 0x2c70, 0x080c, 0x85c7, 0x05d8, 0x2d00,
++      0x601a, 0x080c, 0xa027, 0x2e58, 0x00ee, 0x00e6, 0x00c6, 0x080c,
++      0x3e75, 0x00ce, 0x2b70, 0x1150, 0x080c, 0x861d, 0x00ee, 0x00ce,
++      0x00be, 0x001e, 0x2009, 0x0002, 0x0804, 0x2fcf, 0x6837, 0x0000,
++      0x683b, 0x0000, 0x2d00, 0x6012, 0x6833, 0x0000, 0x6838, 0xc0fd,
++      0xd88c, 0x0108, 0xc0f5, 0x683a, 0x0126, 0x2091, 0x8000, 0x080c,
++      0x2c9c, 0x012e, 0x601f, 0x0001, 0x2001, 0x0000, 0x080c, 0x4eeb,
++      0x2001, 0x0002, 0x080c, 0x4efd, 0x2009, 0x0002, 0x080c, 0x864c,
++      0xa085, 0x0001, 0x00ee, 0x00ce, 0x00be, 0x001e, 0x1120, 0x2009,
++      0x0003, 0x0804, 0x2fcf, 0x7007, 0x0003, 0x701b, 0x3da8, 0x0005,
++      0x6830, 0xa086, 0x0100, 0x7020, 0x2060, 0x1138, 0x2009, 0x0004,
++      0x6204, 0xa294, 0x00ff, 0x0804, 0x2fcf, 0x2009, 0x0000, 0x6838,
++      0xd0f4, 0x1904, 0x2faa, 0x080c, 0x524a, 0x1108, 0xc185, 0x6000,
++      0xd0bc, 0x0108, 0xc18d, 0x0804, 0x2faa, 0x00e6, 0x00d6, 0xa02e,
++      0x2001, 0xb535, 0x2004, 0xd0ac, 0x0130, 0xa026, 0x20a9, 0x00ff,
++      0x2071, 0xb635, 0x0030, 0x2021, 0x0080, 0x20a9, 0x007f, 0x2071,
++      0xb6b5, 0x2e04, 0xa005, 0x1130, 0x2100, 0xa406, 0x1570, 0x2428,
++      0xc5fd, 0x0458, 0x2068, 0x6f10, 0x2700, 0xa306, 0x11b0, 0x6e14,
++      0x2600, 0xa206, 0x1190, 0x2400, 0xa106, 0x1160, 0x2d60, 0xd884,
++      0x0568, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x1538, 0x2001,
++      0x4000, 0x0428, 0x2001, 0x4007, 0x0410, 0x2400, 0xa106, 0x1168,
++      0x6e14, 0x87ff, 0x1138, 0x86ff, 0x09d0, 0x2001, 0xb535, 0x2004,
++      0xd0ac, 0x19a8, 0x2001, 0x4008, 0x0090, 0x8420, 0x8e70, 0x1f04,
++      0x3dd9, 0x85ff, 0x1130, 0x2001, 0x4009, 0x0048, 0x2001, 0x0001,
++      0x0030, 0x080c, 0x4f4d, 0x1dd0, 0x6312, 0x6216, 0xa006, 0xa005,
++      0x00de, 0x00ee, 0x0005, 0x81ff, 0x1904, 0x2fcf, 0x080c, 0x3e75,
++      0x0904, 0x2fcf, 0x6837, 0x0000, 0x6838, 0xc0fd, 0x683a, 0x7824,
++      0xa005, 0x0904, 0x2fd2, 0xa096, 0x00ff, 0x0120, 0xa092, 0x0004,
++      0x1a04, 0x2fd2, 0x2010, 0x2d18, 0x080c, 0x2c4f, 0x0904, 0x2fcf,
++      0x7007, 0x0003, 0x701b, 0x3e45, 0x0005, 0x6830, 0xa086, 0x0100,
++      0x0904, 0x2fcf, 0x0804, 0x2faa, 0x7924, 0xa18c, 0xff00, 0x810f,
++      0x60d4, 0xd0ac, 0x1120, 0xa182, 0x0080, 0x0a04, 0x2fd2, 0xa182,
++      0x00ff, 0x1a04, 0x2fd2, 0x0126, 0x2091, 0x8000, 0x080c, 0x9c8a,
++      0x1188, 0xa190, 0xb635, 0x2204, 0xa065, 0x0160, 0x080c, 0x4c0b,
++      0x2001, 0xb535, 0x2004, 0xd0ac, 0x0110, 0x6017, 0x0000, 0x012e,
++      0x0804, 0x2faa, 0x012e, 0x0804, 0x2fcf, 0x080c, 0x15f8, 0x0188,
++      0xa006, 0x6802, 0x7010, 0xa005, 0x1120, 0x2d00, 0x7012, 0x7016,
++      0x0030, 0x7014, 0x6802, 0x2060, 0x2d00, 0x6006, 0x7016, 0xad80,
++      0x000d, 0x0005, 0x7924, 0x810f, 0xa18c, 0x00ff, 0x080c, 0x4fa9,
++      0x1130, 0x7e28, 0xa684, 0x3fff, 0xa082, 0x4000, 0x0208, 0xa066,
++      0x8cff, 0x0005, 0x7e24, 0x860f, 0xa18c, 0x00ff, 0x080c, 0x4fa9,
++      0x1128, 0xa6b4, 0x00ff, 0xa682, 0x4000, 0x0208, 0xa066, 0x8cff,
++      0x0005, 0x0016, 0x7110, 0x81ff, 0x0128, 0x2168, 0x6904, 0x080c,
++      0x160f, 0x0cc8, 0x7112, 0x7116, 0x001e, 0x0005, 0x2031, 0x0001,
++      0x0010, 0x2031, 0x0000, 0x2061, 0xb5d2, 0x6606, 0x6112, 0x600e,
++      0x6226, 0x632a, 0x642e, 0x6532, 0x2c10, 0x080c, 0x1643, 0x7007,
++      0x0002, 0x701b, 0x2faa, 0x0005, 0x00f6, 0x0126, 0x2091, 0x8000,
++      0x2079, 0x0000, 0x2001, 0xb590, 0x2004, 0xa005, 0x1168, 0x0e04,
++      0x3ee4, 0x7818, 0xd084, 0x1140, 0x7a22, 0x7b26, 0x7c2a, 0x781b,
++      0x0001, 0x2091, 0x4080, 0x0408, 0x0016, 0x00c6, 0x00e6, 0x2071,
++      0xb582, 0x7138, 0xa182, 0x0010, 0x0218, 0x7030, 0x2060, 0x0078,
++      0x7030, 0xa0e0, 0x0004, 0xac82, 0xb5d2, 0x0210, 0x2061, 0xb592,
++      0x2c00, 0x7032, 0x81ff, 0x1108, 0x7036, 0x8108, 0x713a, 0x2262,
++      0x6306, 0x640a, 0x00ee, 0x00ce, 0x001e, 0x012e, 0x00fe, 0x0005,
++      0x00e6, 0x2071, 0xb582, 0x7038, 0xa005, 0x0570, 0x0126, 0x2091,
++      0x8000, 0x0e04, 0x3f3b, 0x00f6, 0x2079, 0x0000, 0x7818, 0xd084,
++      0x1508, 0x00c6, 0x7034, 0x2060, 0x2c04, 0x7822, 0x6004, 0x7826,
++      0x6008, 0x782a, 0x781b, 0x0001, 0x2091, 0x4080, 0x7038, 0x8001,
++      0x703a, 0xa005, 0x1130, 0x7033, 0xb592, 0x7037, 0xb592, 0x00ce,
++      0x0048, 0xac80, 0x0004, 0xa0fa, 0xb5d2, 0x0210, 0x2001, 0xb592,
++      0x7036, 0x00ce, 0x00fe, 0x012e, 0x00ee, 0x0005, 0x0026, 0x2001,
++      0xb553, 0x2004, 0xd0c4, 0x0120, 0x2011, 0x8014, 0x080c, 0x3ecc,
++      0x002e, 0x0005, 0x81ff, 0x1904, 0x2fcf, 0x0126, 0x2091, 0x8000,
++      0x6030, 0xc08d, 0xc085, 0xc0ac, 0x6032, 0x080c, 0x5acf, 0x1178,
+       0x2001, 0xb79f, 0x2003, 0x0001, 0x2001, 0xb500, 0x2003, 0x0001,
+-      0xa085, 0x0001, 0x080c, 0x5b14, 0x080c, 0x5a08, 0x080c, 0x1515,
+-      0x0038, 0x2061, 0xb500, 0x6030, 0xc09d, 0x6032, 0x080c, 0x4b20,
+-      0x00ce, 0x0005, 0x0126, 0x2091, 0x8000, 0x00c6, 0x2061, 0xb7f3,
+-      0x7924, 0x6152, 0x614e, 0x6057, 0x0000, 0x604b, 0x0009, 0x7838,
+-      0x606a, 0x783c, 0x6066, 0x7828, 0x6062, 0x782c, 0x605e, 0x2061,
+-      0xb7a1, 0x2001, 0xb808, 0x600e, 0x6013, 0x0001, 0x6017, 0x0002,
+-      0x6007, 0x0000, 0x6037, 0x0000, 0x00ce, 0x012e, 0x0804, 0x2faa,
+-      0x0126, 0x00c6, 0x00e6, 0x2061, 0x0100, 0x2071, 0xb500, 0x6044,
+-      0xd0a4, 0x11b0, 0xd084, 0x0118, 0x080c, 0x4607, 0x0068, 0xd08c,
+-      0x0118, 0x080c, 0x4528, 0x0040, 0xd094, 0x0118, 0x080c, 0x44f9,
+-      0x0018, 0xd09c, 0x0108, 0x0061, 0x00ee, 0x00ce, 0x012e, 0x0005,
+-      0x0016, 0x6128, 0xd19c, 0x1110, 0xc19d, 0x612a, 0x001e, 0x0ca0,
+-      0x624c, 0xa286, 0xf0f0, 0x1150, 0x6048, 0xa086, 0xf0f0, 0x0130,
+-      0x624a, 0x6043, 0x0090, 0x6043, 0x0010, 0x0490, 0xa294, 0xff00,
+-      0xa296, 0xf700, 0x0178, 0x7134, 0xd1a4, 0x1160, 0x6240, 0xa295,
+-      0x0100, 0x6242, 0xa294, 0x0010, 0x0128, 0x2009, 0x00f7, 0x080c,
+-      0x4bb0, 0x00f0, 0x6040, 0xa084, 0x0010, 0xa085, 0x0140, 0x6042,
+-      0x6043, 0x0000, 0x707b, 0x0000, 0x7097, 0x0001, 0x70bb, 0x0000,
+-      0x70d7, 0x0000, 0x2009, 0xbcc0, 0x200b, 0x0000, 0x708b, 0x0000,
+-      0x707f, 0x000a, 0x2009, 0x000a, 0x2011, 0x4ad6, 0x080c, 0x6a23,
+-      0x0005, 0x0156, 0x2001, 0xb574, 0x2004, 0xd08c, 0x0110, 0x7053,
+-      0xffff, 0x707c, 0xa005, 0x1510, 0x2011, 0x4ad6, 0x080c, 0x699d,
+-      0x6040, 0xa094, 0x0010, 0xa285, 0x0020, 0x6042, 0x20a9, 0x00c8,
+-      0x6044, 0xd08c, 0x1168, 0x1f04, 0x4510, 0x6242, 0x708f, 0x0000,
+-      0x6040, 0xa094, 0x0010, 0xa285, 0x0080, 0x6042, 0x6242, 0x0030,
+-      0x6242, 0x708f, 0x0000, 0x7083, 0x0000, 0x0000, 0x015e, 0x0005,
+-      0x7080, 0xa08a, 0x0003, 0x1210, 0x0023, 0x0010, 0x080c, 0x1515,
+-      0x0005, 0x4534, 0x4584, 0x4606, 0x00f6, 0x7083, 0x0001, 0x20e1,
+-      0xa000, 0xe000, 0x20e1, 0x8700, 0x080c, 0x2470, 0x20e1, 0x9080,
+-      0x20e1, 0x4000, 0x2079, 0xbb00, 0x207b, 0x2200, 0x7807, 0x00ef,
+-      0x780b, 0x0000, 0x780f, 0x00ef, 0x7813, 0x0138, 0x7817, 0x0000,
+-      0x781b, 0x0000, 0x781f, 0x0000, 0x7823, 0xffff, 0x7827, 0xffff,
+-      0x782b, 0x0000, 0x782f, 0x0000, 0x2079, 0xbb0c, 0x207b, 0x1101,
+-      0x7807, 0x0000, 0x2099, 0xb505, 0x20a1, 0xbb0e, 0x20a9, 0x0004,
+-      0x53a3, 0x2079, 0xbb12, 0x207b, 0x0000, 0x7807, 0x0000, 0x2099,
+-      0xbb00, 0x20a1, 0x020b, 0x20a9, 0x0014, 0x53a6, 0x60c3, 0x000c,
+-      0x600f, 0x0000, 0x080c, 0x4b07, 0x00fe, 0x7087, 0x0000, 0x6043,
+-      0x0008, 0x6043, 0x0000, 0x0005, 0x00d6, 0x7084, 0x7087, 0x0000,
+-      0xa025, 0x0904, 0x45ee, 0x6020, 0xd0b4, 0x1904, 0x45ec, 0x7194,
+-      0x81ff, 0x0904, 0x45dc, 0xa486, 0x000c, 0x1904, 0x45e7, 0xa480,
+-      0x0018, 0x8004, 0x20a8, 0x2011, 0xbb80, 0x2019, 0xbb00, 0x220c,
+-      0x2304, 0xa106, 0x11b8, 0x8210, 0x8318, 0x1f04, 0x459f, 0x6043,
+-      0x0004, 0x608b, 0xbc94, 0x608f, 0xf0f0, 0x6043, 0x0006, 0x7083,
+-      0x0002, 0x708f, 0x0002, 0x2009, 0x07d0, 0x2011, 0x4add, 0x080c,
+-      0x6a23, 0x0490, 0x2069, 0xbb80, 0x6930, 0xa18e, 0x1101, 0x1538,
+-      0x6834, 0xa005, 0x1520, 0x6900, 0xa18c, 0x00ff, 0x1118, 0x6804,
+-      0xa005, 0x0190, 0x2011, 0xbb8e, 0x2019, 0xb505, 0x20a9, 0x0004,
+-      0x220c, 0x2304, 0xa102, 0x0230, 0x1190, 0x8210, 0x8318, 0x1f04,
+-      0x45d0, 0x0068, 0x7097, 0x0000, 0x20e1, 0x9080, 0x20e1, 0x4000,
+-      0x2099, 0xbb80, 0x20a1, 0x020b, 0x20a9, 0x0014, 0x53a6, 0x6043,
+-      0x0008, 0x6043, 0x0000, 0x0010, 0x00de, 0x0005, 0x6040, 0xa085,
+-      0x0100, 0x6042, 0x6020, 0xd0b4, 0x1db8, 0x60c3, 0x000c, 0x2011,
+-      0xb7ea, 0x2013, 0x0000, 0x7087, 0x0000, 0x20e1, 0x9080, 0x60a3,
+-      0x0056, 0x60a7, 0x9575, 0x080c, 0x7d72, 0x0c30, 0x0005, 0x708c,
+-      0xa08a, 0x001d, 0x1210, 0x0023, 0x0010, 0x080c, 0x1515, 0x0005,
+-      0x463a, 0x4649, 0x4671, 0x468a, 0x46ae, 0x46d6, 0x46fa, 0x472b,
+-      0x474f, 0x4777, 0x47ae, 0x47d6, 0x47f2, 0x4808, 0x4828, 0x483b,
+-      0x4843, 0x4873, 0x4897, 0x48bf, 0x48e3, 0x4914, 0x4951, 0x4980,
+-      0x499c, 0x49db, 0x49fb, 0x4a14, 0x4a15, 0x00c6, 0x2061, 0xb500,
+-      0x6003, 0x0007, 0x2061, 0x0100, 0x6004, 0xa084, 0xfff9, 0x6006,
+-      0x00ce, 0x0005, 0x608b, 0xbc94, 0x608f, 0xf0f0, 0x6043, 0x0002,
+-      0x708f, 0x0001, 0x2009, 0x07d0, 0x2011, 0x4add, 0x080c, 0x6a23,
+-      0x0005, 0x00f6, 0x7084, 0xa086, 0x0014, 0x1508, 0x6043, 0x0000,
+-      0x6020, 0xd0b4, 0x11e0, 0x2079, 0xbb80, 0x7a30, 0xa296, 0x1102,
+-      0x11a0, 0x7834, 0xa005, 0x1188, 0x7a38, 0xd2fc, 0x0128, 0x70b8,
+-      0xa005, 0x1110, 0x70bb, 0x0001, 0x2011, 0x4add, 0x080c, 0x699d,
+-      0x708f, 0x0010, 0x080c, 0x4843, 0x0010, 0x080c, 0x4b20, 0x00fe,
+-      0x0005, 0x708f, 0x0003, 0x6043, 0x0004, 0x2011, 0x4add, 0x080c,
+-      0x699d, 0x080c, 0x4b98, 0x20a3, 0x1102, 0x20a3, 0x0000, 0x20a9,
+-      0x000a, 0x20a3, 0x0000, 0x1f04, 0x4681, 0x60c3, 0x0014, 0x080c,
+-      0x4b07, 0x0005, 0x00f6, 0x7084, 0xa005, 0x01f0, 0x2011, 0x4add,
+-      0x080c, 0x699d, 0xa086, 0x0014, 0x11a8, 0x2079, 0xbb80, 0x7a30,
+-      0xa296, 0x1102, 0x1178, 0x7834, 0xa005, 0x1160, 0x7a38, 0xd2fc,
+-      0x0128, 0x70b8, 0xa005, 0x1110, 0x70bb, 0x0001, 0x708f, 0x0004,
+-      0x0029, 0x0010, 0x080c, 0x4b20, 0x00fe, 0x0005, 0x708f, 0x0005,
+-      0x080c, 0x4b98, 0x20a3, 0x1103, 0x20a3, 0x0000, 0x3430, 0x2011,
+-      0xbb8e, 0x080c, 0x4be9, 0x1160, 0x7078, 0xa005, 0x1148, 0x7150,
+-      0xa186, 0xffff, 0x0128, 0x080c, 0x4aa1, 0x0110, 0x080c, 0x4bc7,
++      0xa085, 0x0001, 0x080c, 0x5b13, 0x080c, 0x5a07, 0x0010, 0x080c,
++      0x4b1f, 0x012e, 0x0804, 0x2faa, 0x7824, 0x2008, 0xa18c, 0xfffd,
++      0x1128, 0x61e0, 0xa10d, 0x61e2, 0x0804, 0x2faa, 0x0804, 0x2fd2,
++      0x81ff, 0x1904, 0x2fcf, 0x6000, 0xa086, 0x0003, 0x1904, 0x2fcf,
++      0x2001, 0xb553, 0x2004, 0xd0ac, 0x1904, 0x2fcf, 0x080c, 0x3e9a,
++      0x0904, 0x2fd2, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x1120,
++      0x7828, 0xa005, 0x0904, 0x2faa, 0x00c6, 0x080c, 0x3e75, 0x00ce,
++      0x0904, 0x2fcf, 0x6837, 0x0000, 0x6833, 0x0000, 0x6838, 0xc0fd,
++      0x683a, 0x080c, 0x9e6b, 0x0904, 0x2fcf, 0x7007, 0x0003, 0x701b,
++      0x3faa, 0x0005, 0x6830, 0xa086, 0x0100, 0x0904, 0x2fcf, 0x0804,
++      0x2faa, 0x2001, 0xb500, 0x2004, 0xa086, 0x0003, 0x1904, 0x2fcf,
++      0x7f24, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x080c, 0x3e75, 0x0904,
++      0x2fcf, 0x2009, 0x0000, 0x2031, 0x0000, 0x7023, 0x0000, 0x702f,
++      0x0000, 0xad80, 0x0005, 0x7026, 0x20a0, 0x080c, 0x4fa9, 0x1904,
++      0x4024, 0x6004, 0xa0c4, 0x00ff, 0xa8c6, 0x0006, 0x0130, 0xa0c4,
++      0xff00, 0xa8c6, 0x0600, 0x1904, 0x4024, 0x2001, 0xb553, 0x2004,
++      0xd0ac, 0x1128, 0x080c, 0x524a, 0x1110, 0xd79c, 0x05e8, 0xd794,
++      0x1110, 0xd784, 0x0158, 0xac80, 0x0006, 0x2098, 0x3400, 0x20a9,
++      0x0004, 0x53a3, 0x080c, 0x3ce7, 0xd794, 0x0148, 0xac80, 0x000a,
++      0x2098, 0x3400, 0x20a9, 0x0004, 0x53a3, 0x080c, 0x3ce7, 0x21a2,
++      0xd794, 0x01d8, 0xac80, 0x0000, 0x2098, 0x94a0, 0x20a9, 0x0002,
++      0x53a3, 0xac80, 0x0003, 0x20a6, 0x94a0, 0xac80, 0x0004, 0x2098,
++      0x3400, 0x20a9, 0x0002, 0x53a3, 0x080c, 0x3cd9, 0xac80, 0x0026,
++      0x2098, 0x20a9, 0x0002, 0x53a3, 0x0008, 0x94a0, 0xd794, 0x0110,
++      0xa6b0, 0x000b, 0xa6b0, 0x0005, 0x8108, 0x2001, 0xb535, 0x2004,
++      0xd0ac, 0x0118, 0xa186, 0x0100, 0x0040, 0xd78c, 0x0120, 0xa186,
++      0x0100, 0x0170, 0x0018, 0xa186, 0x007e, 0x0150, 0xd794, 0x0118,
++      0xa686, 0x0020, 0x0010, 0xa686, 0x0028, 0x0150, 0x0804, 0x3fcd,
++      0x86ff, 0x1120, 0x7120, 0x810b, 0x0804, 0x2faa, 0x702f, 0x0001,
++      0x711e, 0x7020, 0xa600, 0x7022, 0x772a, 0x2061, 0xb5d2, 0x6007,
++      0x0000, 0x6612, 0x7024, 0x600e, 0x6226, 0x632a, 0x642e, 0x6532,
++      0x2c10, 0x080c, 0x1643, 0x7007, 0x0002, 0x701b, 0x4060, 0x0005,
++      0x702c, 0xa005, 0x1170, 0x711c, 0x7024, 0x20a0, 0x7728, 0x2031,
++      0x0000, 0x2061, 0xb5d2, 0x6224, 0x6328, 0x642c, 0x6530, 0x0804,
++      0x3fcd, 0x7120, 0x810b, 0x0804, 0x2faa, 0x2029, 0x007e, 0x7924,
++      0x7a28, 0x7b2c, 0x7c38, 0xa184, 0xff00, 0x8007, 0xa0e2, 0x0020,
++      0x0a04, 0x2fd2, 0xa502, 0x0a04, 0x2fd2, 0xa184, 0x00ff, 0xa0e2,
++      0x0020, 0x0a04, 0x2fd2, 0xa502, 0x0a04, 0x2fd2, 0xa284, 0xff00,
++      0x8007, 0xa0e2, 0x0020, 0x0a04, 0x2fd2, 0xa502, 0x0a04, 0x2fd2,
++      0xa284, 0x00ff, 0xa0e2, 0x0020, 0x0a04, 0x2fd2, 0xa502, 0x0a04,
++      0x2fd2, 0xa384, 0xff00, 0x8007, 0xa0e2, 0x0020, 0x0a04, 0x2fd2,
++      0xa502, 0x0a04, 0x2fd2, 0xa384, 0x00ff, 0xa0e2, 0x0020, 0x0a04,
++      0x2fd2, 0xa502, 0x0a04, 0x2fd2, 0xa484, 0xff00, 0x8007, 0xa0e2,
++      0x0020, 0x0a04, 0x2fd2, 0xa502, 0x0a04, 0x2fd2, 0xa484, 0x00ff,
++      0xa0e2, 0x0020, 0x0a04, 0x2fd2, 0xa502, 0x0a04, 0x2fd2, 0x2061,
++      0xb7b9, 0x6102, 0x6206, 0x630a, 0x640e, 0x0804, 0x2faa, 0x0006,
++      0x2001, 0xb553, 0x2004, 0xd0cc, 0x000e, 0x0005, 0x0006, 0x2001,
++      0xb572, 0x2004, 0xd0bc, 0x000e, 0x0005, 0x6168, 0x7a24, 0x6300,
++      0x82ff, 0x1118, 0x7926, 0x0804, 0x2faa, 0x83ff, 0x1904, 0x2fd2,
++      0x2001, 0xfff0, 0xa200, 0x1a04, 0x2fd2, 0x2019, 0xffff, 0x606c,
++      0xa302, 0xa200, 0x0a04, 0x2fd2, 0x7926, 0x626a, 0x0804, 0x2faa,
++      0x2001, 0xb500, 0x2004, 0xa086, 0x0003, 0x1904, 0x2fcf, 0x7c28,
++      0x7d24, 0x7e38, 0x7f2c, 0x080c, 0x3e75, 0x0904, 0x2fcf, 0x2009,
++      0x0000, 0x2019, 0x0000, 0x7023, 0x0000, 0x702f, 0x0000, 0xad80,
++      0x0003, 0x7026, 0x20a0, 0xa1e0, 0xb635, 0x2c64, 0x8cff, 0x01b8,
++      0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x0130, 0x6004, 0xa084,
++      0xff00, 0xa086, 0x0600, 0x1158, 0x6014, 0x20a2, 0x94a0, 0x6010,
++      0x8007, 0xa105, 0x8007, 0x20a2, 0x94a0, 0xa398, 0x0002, 0x8108,
++      0xa182, 0x00ff, 0x0120, 0xa386, 0x002a, 0x0148, 0x08e0, 0x83ff,
++      0x1120, 0x7120, 0x810c, 0x0804, 0x2faa, 0x702f, 0x0001, 0x711e,
++      0x7020, 0xa300, 0x7022, 0x2061, 0xb5d2, 0x6007, 0x0000, 0x6312,
++      0x7024, 0x600e, 0x6426, 0x652a, 0x662e, 0x6732, 0x2c10, 0x080c,
++      0x1643, 0x7007, 0x0002, 0x701b, 0x4156, 0x0005, 0x702c, 0xa005,
++      0x1168, 0x711c, 0x7024, 0x20a0, 0x2019, 0x0000, 0x2061, 0xb5d2,
++      0x6424, 0x6528, 0x662c, 0x6730, 0x0804, 0x4113, 0x7120, 0x810c,
++      0x0804, 0x2faa, 0x81ff, 0x1904, 0x2fcf, 0x60d4, 0xd0ac, 0x1118,
++      0xd09c, 0x0904, 0x2fcf, 0x080c, 0x3e75, 0x0904, 0x2fcf, 0x7924,
++      0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x080c, 0x3eb6, 0x701b, 0x4181,
++      0x0005, 0x00d6, 0xade8, 0x000d, 0x6828, 0xa0be, 0x7000, 0x0148,
++      0xa0be, 0x7100, 0x0130, 0xa0be, 0x7200, 0x0118, 0x00de, 0x0804,
++      0x2fd2, 0x6820, 0x6924, 0x080c, 0x281d, 0x1510, 0x080c, 0x4f4d,
++      0x11f8, 0x7122, 0x6612, 0x6516, 0x6e18, 0x00c6, 0x080c, 0x3e75,
++      0x01b8, 0x080c, 0x3e75, 0x01a0, 0x00ce, 0x00de, 0x6837, 0x0000,
++      0x6838, 0xc0fd, 0x683a, 0x6823, 0x0000, 0x6804, 0x2068, 0x080c,
++      0x9dbe, 0x0904, 0x2fcf, 0x7007, 0x0003, 0x701b, 0x41bb, 0x0005,
++      0x00de, 0x0804, 0x2fcf, 0x7120, 0x080c, 0x2d97, 0x6820, 0xa086,
++      0x8001, 0x0904, 0x2fcf, 0x2d00, 0x701e, 0x6804, 0xa080, 0x0002,
++      0x0006, 0x20a9, 0x002a, 0x2098, 0x20a0, 0x080c, 0x4b8f, 0x000e,
++      0xade8, 0x000d, 0x6a08, 0x6b0c, 0x6c10, 0x6d14, 0x2061, 0xb5d2,
++      0x6007, 0x0000, 0x6e00, 0x6f28, 0xa7c6, 0x7000, 0x1108, 0x0018,
++      0xa7c6, 0x7100, 0x1140, 0xa6c2, 0x0004, 0x0a04, 0x2fd2, 0x2009,
++      0x0004, 0x0804, 0x3eb9, 0xa7c6, 0x7200, 0x1904, 0x2fd2, 0xa6c2,
++      0x0054, 0x0a04, 0x2fd2, 0x600e, 0x6013, 0x002a, 0x6226, 0x632a,
++      0x642e, 0x6532, 0x2c10, 0x080c, 0x1643, 0x7007, 0x0002, 0x701b,
++      0x4202, 0x0005, 0x701c, 0x2068, 0x6804, 0xa080, 0x0001, 0x2004,
++      0xa080, 0x0002, 0x0006, 0x20a9, 0x002a, 0x2098, 0x20a0, 0x080c,
++      0x4b8f, 0x000e, 0x2009, 0x002a, 0x2061, 0xb5d2, 0x6224, 0x6328,
++      0x642c, 0x6530, 0x0804, 0x3eb9, 0x81ff, 0x1904, 0x2fcf, 0x792c,
++      0x2001, 0xb7a0, 0x2102, 0x080c, 0x3e8a, 0x0904, 0x2fd2, 0x080c,
++      0x506f, 0x0904, 0x2fcf, 0x0126, 0x2091, 0x8000, 0x080c, 0x51a1,
++      0x012e, 0x0804, 0x2faa, 0x7824, 0xd08c, 0x1118, 0xd084, 0x0904,
++      0x3a46, 0x080c, 0x3e9a, 0x0904, 0x2fd2, 0x00c6, 0x080c, 0x3e75,
++      0x00ce, 0x1120, 0x2009, 0x0002, 0x0804, 0x2fcf, 0x6004, 0xa084,
++      0x00ff, 0xa086, 0x0006, 0x0128, 0xa08e, 0x0004, 0x0110, 0xa08e,
++      0x0005, 0x15b8, 0x7824, 0xd08c, 0x0120, 0x6000, 0xc08c, 0x6002,
++      0x0030, 0x2001, 0xb553, 0x2004, 0xd0b4, 0x0904, 0x3a82, 0x7824,
++      0xa084, 0xff00, 0xa08e, 0x7e00, 0x0904, 0x3a82, 0xa08e, 0x7f00,
++      0x0904, 0x3a82, 0xa08e, 0x8000, 0x0904, 0x3a82, 0x6000, 0xd08c,
++      0x1904, 0x3a82, 0x6837, 0x0000, 0x6838, 0xc0fd, 0x683a, 0x080c,
++      0x9dda, 0x1120, 0x2009, 0x0003, 0x0804, 0x2fcf, 0x7007, 0x0003,
++      0x701b, 0x4283, 0x0005, 0x080c, 0x3e9a, 0x0904, 0x2fd2, 0x0804,
++      0x3a82, 0x2009, 0xb531, 0x210c, 0x81ff, 0x0120, 0x2009, 0x0001,
++      0x0804, 0x2fcf, 0x2001, 0xb500, 0x2004, 0xa086, 0x0003, 0x0120,
++      0x2009, 0x0007, 0x0804, 0x2fcf, 0x2001, 0xb553, 0x2004, 0xd0ac,
++      0x0120, 0x2009, 0x0008, 0x0804, 0x2fcf, 0x609c, 0xd0a4, 0x1118,
++      0xd0ac, 0x1904, 0x3a82, 0x6837, 0x0000, 0x6833, 0x0000, 0x6838,
++      0xc0fd, 0x683a, 0x080c, 0x9e6b, 0x1120, 0x2009, 0x0003, 0x0804,
++      0x2fcf, 0x7007, 0x0003, 0x701b, 0x42be, 0x0005, 0x6830, 0xa086,
++      0x0100, 0x1120, 0x2009, 0x0004, 0x0804, 0x2fcf, 0x080c, 0x3e9a,
++      0x0904, 0x2fd2, 0x0804, 0x4252, 0x81ff, 0x2009, 0x0001, 0x1904,
++      0x2fcf, 0x6000, 0xa086, 0x0003, 0x2009, 0x0007, 0x1904, 0x2fcf,
++      0x2001, 0xb553, 0x2004, 0xd0ac, 0x2009, 0x0008, 0x1904, 0x2fcf,
++      0x080c, 0x3e9a, 0x0904, 0x2fd2, 0x6004, 0xa084, 0x00ff, 0xa086,
++      0x0006, 0x2009, 0x0009, 0x1904, 0x2fcf, 0x00c6, 0x080c, 0x3e75,
++      0x00ce, 0x2009, 0x0002, 0x0904, 0x2fcf, 0x6837, 0x0000, 0x6833,
++      0x0000, 0x6838, 0xc0fd, 0x683a, 0x7928, 0xa194, 0xff00, 0xa18c,
++      0x00ff, 0xa006, 0x82ff, 0x1128, 0xc0ed, 0x6952, 0x792c, 0x6956,
++      0x0048, 0xa28e, 0x0100, 0x1904, 0x2fd2, 0xc0e5, 0x6853, 0x0000,
++      0x6857, 0x0000, 0x683e, 0x080c, 0xa028, 0x2009, 0x0003, 0x0904,
++      0x2fcf, 0x7007, 0x0003, 0x701b, 0x431e, 0x0005, 0x6830, 0xa086,
++      0x0100, 0x2009, 0x0004, 0x0904, 0x2fcf, 0x0804, 0x2faa, 0x81ff,
++      0x2009, 0x0001, 0x1904, 0x2fcf, 0x6000, 0xa086, 0x0003, 0x2009,
++      0x0007, 0x1904, 0x2fcf, 0x080c, 0x3e9a, 0x0904, 0x2fd2, 0x6004,
++      0xa084, 0x00ff, 0xa086, 0x0006, 0x2009, 0x0009, 0x1904, 0x2fcf,
++      0x00c6, 0x080c, 0x3e75, 0x00ce, 0x2009, 0x0002, 0x0904, 0x2fcf,
++      0xad80, 0x000f, 0x2009, 0x0008, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38,
++      0x080c, 0x3eb6, 0x701b, 0x4355, 0x0005, 0x00d6, 0xade8, 0x000f,
++      0x6800, 0xa086, 0x0500, 0x1140, 0x6804, 0xa005, 0x1128, 0x6808,
++      0xa084, 0xff00, 0x1108, 0x0018, 0x00de, 0x1904, 0x2fd2, 0x00de,
++      0x6837, 0x0000, 0x6833, 0x0000, 0x6838, 0xc0fd, 0x683a, 0x00c6,
++      0x080c, 0x3e9a, 0x1118, 0x00ce, 0x0804, 0x2fd2, 0x080c, 0xa077,
++      0x2009, 0x0003, 0x00ce, 0x0904, 0x2fcf, 0x7007, 0x0003, 0x701b,
++      0x4382, 0x0005, 0x6830, 0xa086, 0x0100, 0x2009, 0x0004, 0x0904,
++      0x2fcf, 0x0804, 0x2faa, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804,
++      0x2fcf, 0x6000, 0xa086, 0x0003, 0x0120, 0x2009, 0x0007, 0x0804,
++      0x2fcf, 0x7e24, 0x860f, 0xa18c, 0x00ff, 0xa6b4, 0x00ff, 0x080c,
++      0x4fa9, 0x1904, 0x2fd2, 0xa186, 0x007f, 0x0150, 0x6004, 0xa084,
++      0x00ff, 0xa086, 0x0006, 0x0120, 0x2009, 0x0009, 0x0804, 0x2fcf,
++      0x00c6, 0x080c, 0x3e75, 0x00ce, 0x1120, 0x2009, 0x0002, 0x0804,
++      0x2fcf, 0x6837, 0x0000, 0x6838, 0xc0fd, 0x683a, 0x2001, 0x0100,
++      0x8007, 0x680a, 0x080c, 0x9df5, 0x1120, 0x2009, 0x0003, 0x0804,
++      0x2fcf, 0x7007, 0x0003, 0x701b, 0x43ce, 0x0005, 0x6808, 0x8007,
++      0xa086, 0x0100, 0x1120, 0x2009, 0x0004, 0x0804, 0x2fcf, 0x68b0,
++      0x6836, 0x6810, 0x8007, 0xa084, 0x00ff, 0x800c, 0x6814, 0x8007,
++      0xa084, 0x00ff, 0x8004, 0xa080, 0x0002, 0xa108, 0xad80, 0x0004,
++      0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x0804, 0x3eb9, 0x080c, 0x3e75,
++      0x1120, 0x2009, 0x0002, 0x0804, 0x2fcf, 0x7924, 0xa194, 0xff00,
++      0xa18c, 0x00ff, 0x8217, 0x82ff, 0x0110, 0x0804, 0x2fd2, 0x2009,
++      0x001a, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x080c, 0x3eb6, 0x701b,
++      0x440a, 0x0005, 0x2001, 0xb52a, 0x2003, 0x0001, 0xad80, 0x000d,
++      0x2098, 0x20a9, 0x001a, 0x20a1, 0xb7c6, 0x53a3, 0x0804, 0x2faa,
++      0x080c, 0x3e75, 0x1120, 0x2009, 0x0002, 0x0804, 0x2fcf, 0x7924,
++      0xa194, 0xff00, 0xa18c, 0x00ff, 0x8217, 0x82ff, 0x0110, 0x0804,
++      0x2fd2, 0x2099, 0xb7c6, 0x20a0, 0x20a9, 0x001a, 0x53a3, 0x2009,
++      0x001a, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x0804, 0x3eb9, 0x7824,
++      0xa08a, 0x1000, 0x1a04, 0x2fd2, 0x0126, 0x2091, 0x8000, 0x8003,
++      0x800b, 0x810b, 0xa108, 0x00c6, 0x2061, 0xb7f3, 0x6142, 0x00ce,
++      0x012e, 0x0804, 0x2faa, 0x00c6, 0x080c, 0x5acf, 0x1188, 0x2001,
++      0xb79f, 0x2003, 0x0001, 0x2001, 0xb500, 0x2003, 0x0001, 0xa085,
++      0x0001, 0x080c, 0x5b13, 0x080c, 0x5a07, 0x080c, 0x1515, 0x0038,
++      0x2061, 0xb500, 0x6030, 0xc09d, 0x6032, 0x080c, 0x4b1f, 0x00ce,
++      0x0005, 0x0126, 0x2091, 0x8000, 0x00c6, 0x2061, 0xb7f3, 0x7924,
++      0x6152, 0x614e, 0x6057, 0x0000, 0x604b, 0x0009, 0x7838, 0x606a,
++      0x783c, 0x6066, 0x7828, 0x6062, 0x782c, 0x605e, 0x2061, 0xb7a1,
++      0x2001, 0xb808, 0x600e, 0x6013, 0x0001, 0x6017, 0x0002, 0x6007,
++      0x0000, 0x6037, 0x0000, 0x00ce, 0x012e, 0x0804, 0x2faa, 0x0126,
++      0x00c6, 0x00e6, 0x2061, 0x0100, 0x2071, 0xb500, 0x6044, 0xd0a4,
++      0x11b0, 0xd084, 0x0118, 0x080c, 0x4606, 0x0068, 0xd08c, 0x0118,
++      0x080c, 0x4527, 0x0040, 0xd094, 0x0118, 0x080c, 0x44f8, 0x0018,
++      0xd09c, 0x0108, 0x0061, 0x00ee, 0x00ce, 0x012e, 0x0005, 0x0016,
++      0x6128, 0xd19c, 0x1110, 0xc19d, 0x612a, 0x001e, 0x0ca0, 0x624c,
++      0xa286, 0xf0f0, 0x1150, 0x6048, 0xa086, 0xf0f0, 0x0130, 0x624a,
++      0x6043, 0x0090, 0x6043, 0x0010, 0x0490, 0xa294, 0xff00, 0xa296,
++      0xf700, 0x0178, 0x7134, 0xd1a4, 0x1160, 0x6240, 0xa295, 0x0100,
++      0x6242, 0xa294, 0x0010, 0x0128, 0x2009, 0x00f7, 0x080c, 0x4baf,
++      0x00f0, 0x6040, 0xa084, 0x0010, 0xa085, 0x0140, 0x6042, 0x6043,
++      0x0000, 0x707b, 0x0000, 0x7097, 0x0001, 0x70bb, 0x0000, 0x70d7,
++      0x0000, 0x2009, 0xbcc0, 0x200b, 0x0000, 0x708b, 0x0000, 0x707f,
++      0x000a, 0x2009, 0x000a, 0x2011, 0x4ad5, 0x080c, 0x6a22, 0x0005,
++      0x0156, 0x2001, 0xb574, 0x2004, 0xd08c, 0x0110, 0x7053, 0xffff,
++      0x707c, 0xa005, 0x1510, 0x2011, 0x4ad5, 0x080c, 0x699c, 0x6040,
++      0xa094, 0x0010, 0xa285, 0x0020, 0x6042, 0x20a9, 0x00c8, 0x6044,
++      0xd08c, 0x1168, 0x1f04, 0x450f, 0x6242, 0x708f, 0x0000, 0x6040,
++      0xa094, 0x0010, 0xa285, 0x0080, 0x6042, 0x6242, 0x0030, 0x6242,
++      0x708f, 0x0000, 0x7083, 0x0000, 0x0000, 0x015e, 0x0005, 0x7080,
++      0xa08a, 0x0003, 0x1210, 0x0023, 0x0010, 0x080c, 0x1515, 0x0005,
++      0x4533, 0x4583, 0x4605, 0x00f6, 0x7083, 0x0001, 0x20e1, 0xa000,
++      0xe000, 0x20e1, 0x8700, 0x080c, 0x2470, 0x20e1, 0x9080, 0x20e1,
++      0x4000, 0x2079, 0xbb00, 0x207b, 0x2200, 0x7807, 0x00ef, 0x780b,
++      0x0000, 0x780f, 0x00ef, 0x7813, 0x0138, 0x7817, 0x0000, 0x781b,
++      0x0000, 0x781f, 0x0000, 0x7823, 0xffff, 0x7827, 0xffff, 0x782b,
++      0x0000, 0x782f, 0x0000, 0x2079, 0xbb0c, 0x207b, 0x1101, 0x7807,
++      0x0000, 0x2099, 0xb505, 0x20a1, 0xbb0e, 0x20a9, 0x0004, 0x53a3,
++      0x2079, 0xbb12, 0x207b, 0x0000, 0x7807, 0x0000, 0x2099, 0xbb00,
++      0x20a1, 0x020b, 0x20a9, 0x0014, 0x53a6, 0x60c3, 0x000c, 0x600f,
++      0x0000, 0x080c, 0x4b06, 0x00fe, 0x7087, 0x0000, 0x6043, 0x0008,
++      0x6043, 0x0000, 0x0005, 0x00d6, 0x7084, 0x7087, 0x0000, 0xa025,
++      0x0904, 0x45ed, 0x6020, 0xd0b4, 0x1904, 0x45eb, 0x7194, 0x81ff,
++      0x0904, 0x45db, 0xa486, 0x000c, 0x1904, 0x45e6, 0xa480, 0x0018,
++      0x8004, 0x20a8, 0x2011, 0xbb80, 0x2019, 0xbb00, 0x220c, 0x2304,
++      0xa106, 0x11b8, 0x8210, 0x8318, 0x1f04, 0x459e, 0x6043, 0x0004,
++      0x608b, 0xbc94, 0x608f, 0xf0f0, 0x6043, 0x0006, 0x7083, 0x0002,
++      0x708f, 0x0002, 0x2009, 0x07d0, 0x2011, 0x4adc, 0x080c, 0x6a22,
++      0x0490, 0x2069, 0xbb80, 0x6930, 0xa18e, 0x1101, 0x1538, 0x6834,
++      0xa005, 0x1520, 0x6900, 0xa18c, 0x00ff, 0x1118, 0x6804, 0xa005,
++      0x0190, 0x2011, 0xbb8e, 0x2019, 0xb505, 0x20a9, 0x0004, 0x220c,
++      0x2304, 0xa102, 0x0230, 0x1190, 0x8210, 0x8318, 0x1f04, 0x45cf,
++      0x0068, 0x7097, 0x0000, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x2099,
++      0xbb80, 0x20a1, 0x020b, 0x20a9, 0x0014, 0x53a6, 0x6043, 0x0008,
++      0x6043, 0x0000, 0x0010, 0x00de, 0x0005, 0x6040, 0xa085, 0x0100,
++      0x6042, 0x6020, 0xd0b4, 0x1db8, 0x60c3, 0x000c, 0x2011, 0xb7ea,
++      0x2013, 0x0000, 0x7087, 0x0000, 0x20e1, 0x9080, 0x60a3, 0x0056,
++      0x60a7, 0x9575, 0x080c, 0x7d71, 0x0c30, 0x0005, 0x708c, 0xa08a,
++      0x001d, 0x1210, 0x0023, 0x0010, 0x080c, 0x1515, 0x0005, 0x4639,
++      0x4648, 0x4670, 0x4689, 0x46ad, 0x46d5, 0x46f9, 0x472a, 0x474e,
++      0x4776, 0x47ad, 0x47d5, 0x47f1, 0x4807, 0x4827, 0x483a, 0x4842,
++      0x4872, 0x4896, 0x48be, 0x48e2, 0x4913, 0x4950, 0x497f, 0x499b,
++      0x49da, 0x49fa, 0x4a13, 0x4a14, 0x00c6, 0x2061, 0xb500, 0x6003,
++      0x0007, 0x2061, 0x0100, 0x6004, 0xa084, 0xfff9, 0x6006, 0x00ce,
++      0x0005, 0x608b, 0xbc94, 0x608f, 0xf0f0, 0x6043, 0x0002, 0x708f,
++      0x0001, 0x2009, 0x07d0, 0x2011, 0x4adc, 0x080c, 0x6a22, 0x0005,
++      0x00f6, 0x7084, 0xa086, 0x0014, 0x1508, 0x6043, 0x0000, 0x6020,
++      0xd0b4, 0x11e0, 0x2079, 0xbb80, 0x7a30, 0xa296, 0x1102, 0x11a0,
++      0x7834, 0xa005, 0x1188, 0x7a38, 0xd2fc, 0x0128, 0x70b8, 0xa005,
++      0x1110, 0x70bb, 0x0001, 0x2011, 0x4adc, 0x080c, 0x699c, 0x708f,
++      0x0010, 0x080c, 0x4842, 0x0010, 0x080c, 0x4b1f, 0x00fe, 0x0005,
++      0x708f, 0x0003, 0x6043, 0x0004, 0x2011, 0x4adc, 0x080c, 0x699c,
++      0x080c, 0x4b97, 0x20a3, 0x1102, 0x20a3, 0x0000, 0x20a9, 0x000a,
++      0x20a3, 0x0000, 0x1f04, 0x4680, 0x60c3, 0x0014, 0x080c, 0x4b06,
++      0x0005, 0x00f6, 0x7084, 0xa005, 0x01f0, 0x2011, 0x4adc, 0x080c,
++      0x699c, 0xa086, 0x0014, 0x11a8, 0x2079, 0xbb80, 0x7a30, 0xa296,
++      0x1102, 0x1178, 0x7834, 0xa005, 0x1160, 0x7a38, 0xd2fc, 0x0128,
++      0x70b8, 0xa005, 0x1110, 0x70bb, 0x0001, 0x708f, 0x0004, 0x0029,
++      0x0010, 0x080c, 0x4b1f, 0x00fe, 0x0005, 0x708f, 0x0005, 0x080c,
++      0x4b97, 0x20a3, 0x1103, 0x20a3, 0x0000, 0x3430, 0x2011, 0xbb8e,
++      0x080c, 0x4be8, 0x1160, 0x7078, 0xa005, 0x1148, 0x7150, 0xa186,
++      0xffff, 0x0128, 0x080c, 0x4aa0, 0x0110, 0x080c, 0x4bc6, 0x20a9,
++      0x0008, 0x2298, 0x26a0, 0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000,
++      0x60c3, 0x0014, 0x080c, 0x4b06, 0x0005, 0x00f6, 0x7084, 0xa005,
++      0x01f0, 0x2011, 0x4adc, 0x080c, 0x699c, 0xa086, 0x0014, 0x11a8,
++      0x2079, 0xbb80, 0x7a30, 0xa296, 0x1103, 0x1178, 0x7834, 0xa005,
++      0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70b8, 0xa005, 0x1110, 0x70bb,
++      0x0001, 0x708f, 0x0006, 0x0029, 0x0010, 0x080c, 0x4b1f, 0x00fe,
++      0x0005, 0x708f, 0x0007, 0x080c, 0x4b97, 0x20a3, 0x1104, 0x20a3,
++      0x0000, 0x3430, 0x2011, 0xbb8e, 0x080c, 0x4be8, 0x11a8, 0x7078,
++      0xa005, 0x1190, 0x7158, 0xa186, 0xffff, 0x0170, 0xa180, 0x2dc4,
++      0x200d, 0xa18c, 0xff00, 0x810f, 0x080c, 0x4aa0, 0x0128, 0x080c,
++      0x40d6, 0x0110, 0x080c, 0x2867, 0x20a9, 0x0008, 0x2298, 0x26a0,
++      0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0014, 0x080c,
++      0x4b06, 0x0005, 0x00f6, 0x7084, 0xa005, 0x01f0, 0x2011, 0x4adc,
++      0x080c, 0x699c, 0xa086, 0x0014, 0x11a8, 0x2079, 0xbb80, 0x7a30,
++      0xa296, 0x1104, 0x1178, 0x7834, 0xa005, 0x1160, 0x7a38, 0xd2fc,
++      0x0128, 0x70b8, 0xa005, 0x1110, 0x70bb, 0x0001, 0x708f, 0x0008,
++      0x0029, 0x0010, 0x080c, 0x4b1f, 0x00fe, 0x0005, 0x708f, 0x0009,
++      0x080c, 0x4b97, 0x20a3, 0x1105, 0x20a3, 0x0100, 0x3430, 0x080c,
++      0x4be8, 0x1150, 0x7078, 0xa005, 0x1138, 0x080c, 0x4a15, 0x1170,
++      0xa085, 0x0001, 0x080c, 0x2867, 0x20a9, 0x0008, 0x2099, 0xbb8e,
++      0x26a0, 0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0014,
++      0x080c, 0x4b06, 0x0010, 0x080c, 0x462c, 0x0005, 0x00f6, 0x7084,
++      0xa005, 0x0588, 0x2011, 0x4adc, 0x080c, 0x699c, 0xa086, 0x0014,
++      0x1540, 0x2079, 0xbb80, 0x7a30, 0xa296, 0x1105, 0x1510, 0x7834,
++      0x2011, 0x0100, 0xa21e, 0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70b8,
++      0xa005, 0x1110, 0x70bb, 0x0001, 0x708f, 0x000a, 0x00b1, 0x0098,
++      0xa005, 0x1178, 0x7a38, 0xd2fc, 0x0128, 0x70b8, 0xa005, 0x1110,
++      0x70bb, 0x0001, 0x708b, 0x0000, 0x708f, 0x000e, 0x080c, 0x4827,
++      0x0010, 0x080c, 0x4b1f, 0x00fe, 0x0005, 0x708f, 0x000b, 0x2011,
++      0xbb0e, 0x22a0, 0x20a9, 0x0040, 0x2019, 0xffff, 0x43a4, 0x20a9,
++      0x0002, 0x2009, 0x0000, 0x41a4, 0x080c, 0x4b97, 0x20a3, 0x1106,
++      0x20a3, 0x0000, 0x080c, 0x4be8, 0x0118, 0x2013, 0x0000, 0x0020,
++      0x7054, 0xa085, 0x0100, 0x2012, 0x2298, 0x20a9, 0x0042, 0x53a6,
++      0x60c3, 0x0084, 0x080c, 0x4b06, 0x0005, 0x00f6, 0x7084, 0xa005,
++      0x01b0, 0x2011, 0x4adc, 0x080c, 0x699c, 0xa086, 0x0084, 0x1168,
++      0x2079, 0xbb80, 0x7a30, 0xa296, 0x1106, 0x1138, 0x7834, 0xa005,
++      0x1120, 0x708f, 0x000c, 0x0029, 0x0010, 0x080c, 0x4b1f, 0x00fe,
++      0x0005, 0x708f, 0x000d, 0x080c, 0x4b97, 0x20a3, 0x1107, 0x20a3,
++      0x0000, 0x2099, 0xbb8e, 0x20a9, 0x0040, 0x53a6, 0x20a3, 0x0000,
++      0x20a3, 0x0000, 0x60c3, 0x0084, 0x080c, 0x4b06, 0x0005, 0x00f6,
++      0x7084, 0xa005, 0x01d0, 0x2011, 0x4adc, 0x080c, 0x699c, 0xa086,
++      0x0084, 0x1188, 0x2079, 0xbb80, 0x7a30, 0xa296, 0x1107, 0x1158,
++      0x7834, 0xa005, 0x1140, 0x708b, 0x0001, 0x080c, 0x4b89, 0x708f,
++      0x000e, 0x0029, 0x0010, 0x080c, 0x4b1f, 0x00fe, 0x0005, 0x708f,
++      0x000f, 0x7087, 0x0000, 0x608b, 0xbc85, 0x608f, 0xb5b5, 0x6043,
++      0x0005, 0x6043, 0x0004, 0x2009, 0x07d0, 0x2011, 0x4adc, 0x080c,
++      0x6990, 0x0005, 0x7084, 0xa005, 0x0120, 0x2011, 0x4adc, 0x080c,
++      0x699c, 0x0005, 0x708f, 0x0011, 0x080c, 0x4be8, 0x11a0, 0x7170,
++      0x81ff, 0x0188, 0x2009, 0x0000, 0x7074, 0xa084, 0x00ff, 0x080c,
++      0x281d, 0xa186, 0x007e, 0x0138, 0xa186, 0x0080, 0x0120, 0x2011,
++      0xbb8e, 0x080c, 0x4aa0, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x2099,
++      0xbb80, 0x20a1, 0x020b, 0x7484, 0xa480, 0x0018, 0xa080, 0x0007,
++      0xa084, 0x03f8, 0x8004, 0x20a8, 0x53a6, 0x60c3, 0x0014, 0x080c,
++      0x4b06, 0x0005, 0x00f6, 0x7084, 0xa005, 0x01f0, 0x2011, 0x4adc,
++      0x080c, 0x699c, 0xa086, 0x0014, 0x11a8, 0x2079, 0xbb80, 0x7a30,
++      0xa296, 0x1103, 0x1178, 0x7834, 0xa005, 0x1160, 0x7a38, 0xd2fc,
++      0x0128, 0x70b8, 0xa005, 0x1110, 0x70bb, 0x0001, 0x708f, 0x0012,
++      0x0029, 0x0010, 0x080c, 0x4b1f, 0x00fe, 0x0005, 0x708f, 0x0013,
++      0x080c, 0x4ba3, 0x20a3, 0x1103, 0x20a3, 0x0000, 0x3430, 0x2011,
++      0xbb8e, 0x080c, 0x4be8, 0x1160, 0x7078, 0xa005, 0x1148, 0x7150,
++      0xa186, 0xffff, 0x0128, 0x080c, 0x4aa0, 0x0110, 0x080c, 0x4bc6,
+       0x20a9, 0x0008, 0x2298, 0x26a0, 0x53a6, 0x20a3, 0x0000, 0x20a3,
+-      0x0000, 0x60c3, 0x0014, 0x080c, 0x4b07, 0x0005, 0x00f6, 0x7084,
+-      0xa005, 0x01f0, 0x2011, 0x4add, 0x080c, 0x699d, 0xa086, 0x0014,
+-      0x11a8, 0x2079, 0xbb80, 0x7a30, 0xa296, 0x1103, 0x1178, 0x7834,
++      0x0000, 0x60c3, 0x0014, 0x080c, 0x4b06, 0x0005, 0x00f6, 0x7084,
++      0xa005, 0x01f0, 0x2011, 0x4adc, 0x080c, 0x699c, 0xa086, 0x0014,
++      0x11a8, 0x2079, 0xbb80, 0x7a30, 0xa296, 0x1104, 0x1178, 0x7834,
+       0xa005, 0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70b8, 0xa005, 0x1110,
+-      0x70bb, 0x0001, 0x708f, 0x0006, 0x0029, 0x0010, 0x080c, 0x4b20,
+-      0x00fe, 0x0005, 0x708f, 0x0007, 0x080c, 0x4b98, 0x20a3, 0x1104,
+-      0x20a3, 0x0000, 0x3430, 0x2011, 0xbb8e, 0x080c, 0x4be9, 0x11a8,
++      0x70bb, 0x0001, 0x708f, 0x0014, 0x0029, 0x0010, 0x080c, 0x4b1f,
++      0x00fe, 0x0005, 0x708f, 0x0015, 0x080c, 0x4ba3, 0x20a3, 0x1104,
++      0x20a3, 0x0000, 0x3430, 0x2011, 0xbb8e, 0x080c, 0x4be8, 0x11a8,
+       0x7078, 0xa005, 0x1190, 0x7158, 0xa186, 0xffff, 0x0170, 0xa180,
+-      0x2dc4, 0x200d, 0xa18c, 0xff00, 0x810f, 0x080c, 0x4aa1, 0x0128,
+-      0x080c, 0x40d7, 0x0110, 0x080c, 0x2867, 0x20a9, 0x0008, 0x2298,
++      0x2dc4, 0x200d, 0xa18c, 0xff00, 0x810f, 0x080c, 0x4aa0, 0x0128,
++      0x080c, 0x40d6, 0x0110, 0x080c, 0x2867, 0x20a9, 0x0008, 0x2298,
+       0x26a0, 0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0014,
+-      0x080c, 0x4b07, 0x0005, 0x00f6, 0x7084, 0xa005, 0x01f0, 0x2011,
+-      0x4add, 0x080c, 0x699d, 0xa086, 0x0014, 0x11a8, 0x2079, 0xbb80,
+-      0x7a30, 0xa296, 0x1104, 0x1178, 0x7834, 0xa005, 0x1160, 0x7a38,
+-      0xd2fc, 0x0128, 0x70b8, 0xa005, 0x1110, 0x70bb, 0x0001, 0x708f,
+-      0x0008, 0x0029, 0x0010, 0x080c, 0x4b20, 0x00fe, 0x0005, 0x708f,
+-      0x0009, 0x080c, 0x4b98, 0x20a3, 0x1105, 0x20a3, 0x0100, 0x3430,
+-      0x080c, 0x4be9, 0x1150, 0x7078, 0xa005, 0x1138, 0x080c, 0x4a16,
++      0x080c, 0x4b06, 0x0005, 0x00f6, 0x7084, 0xa005, 0x05b8, 0x2011,
++      0x4adc, 0x080c, 0x699c, 0xa086, 0x0014, 0x1570, 0x2079, 0xbb80,
++      0x7a30, 0xa296, 0x1105, 0x1540, 0x7834, 0x2011, 0x0100, 0xa21e,
++      0x1148, 0x7a38, 0xd2fc, 0x0128, 0x70b8, 0xa005, 0x1110, 0x70bb,
++      0x0001, 0x0060, 0xa005, 0x11c0, 0x7a38, 0xd2fc, 0x0128, 0x70b8,
++      0xa005, 0x1110, 0x70bb, 0x0001, 0x708b, 0x0000, 0x7a38, 0xd2f4,
++      0x0138, 0x2001, 0xb574, 0x2004, 0xd0a4, 0x1110, 0x70d7, 0x0008,
++      0x708f, 0x0016, 0x0029, 0x0010, 0x080c, 0x4b1f, 0x00fe, 0x0005,
++      0x20e1, 0x9080, 0x20e1, 0x4000, 0x2099, 0xbb80, 0x20a1, 0x020b,
++      0x20a9, 0x000e, 0x53a6, 0x3430, 0x2011, 0xbb8e, 0x708f, 0x0017,
++      0x080c, 0x4be8, 0x1150, 0x7078, 0xa005, 0x1138, 0x080c, 0x4a15,
+       0x1170, 0xa085, 0x0001, 0x080c, 0x2867, 0x20a9, 0x0008, 0x2099,
+       0xbb8e, 0x26a0, 0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3,
+-      0x0014, 0x080c, 0x4b07, 0x0010, 0x080c, 0x462d, 0x0005, 0x00f6,
+-      0x7084, 0xa005, 0x0588, 0x2011, 0x4add, 0x080c, 0x699d, 0xa086,
+-      0x0014, 0x1540, 0x2079, 0xbb80, 0x7a30, 0xa296, 0x1105, 0x1510,
+-      0x7834, 0x2011, 0x0100, 0xa21e, 0x1160, 0x7a38, 0xd2fc, 0x0128,
+-      0x70b8, 0xa005, 0x1110, 0x70bb, 0x0001, 0x708f, 0x000a, 0x00b1,
+-      0x0098, 0xa005, 0x1178, 0x7a38, 0xd2fc, 0x0128, 0x70b8, 0xa005,
+-      0x1110, 0x70bb, 0x0001, 0x708b, 0x0000, 0x708f, 0x000e, 0x080c,
+-      0x4828, 0x0010, 0x080c, 0x4b20, 0x00fe, 0x0005, 0x708f, 0x000b,
+-      0x2011, 0xbb0e, 0x22a0, 0x20a9, 0x0040, 0x2019, 0xffff, 0x43a4,
+-      0x20a9, 0x0002, 0x2009, 0x0000, 0x41a4, 0x080c, 0x4b98, 0x20a3,
+-      0x1106, 0x20a3, 0x0000, 0x080c, 0x4be9, 0x0118, 0x2013, 0x0000,
+-      0x0020, 0x7054, 0xa085, 0x0100, 0x2012, 0x2298, 0x20a9, 0x0042,
+-      0x53a6, 0x60c3, 0x0084, 0x080c, 0x4b07, 0x0005, 0x00f6, 0x7084,
+-      0xa005, 0x01b0, 0x2011, 0x4add, 0x080c, 0x699d, 0xa086, 0x0084,
+-      0x1168, 0x2079, 0xbb80, 0x7a30, 0xa296, 0x1106, 0x1138, 0x7834,
+-      0xa005, 0x1120, 0x708f, 0x000c, 0x0029, 0x0010, 0x080c, 0x4b20,
+-      0x00fe, 0x0005, 0x708f, 0x000d, 0x080c, 0x4b98, 0x20a3, 0x1107,
+-      0x20a3, 0x0000, 0x2099, 0xbb8e, 0x20a9, 0x0040, 0x53a6, 0x20a3,
+-      0x0000, 0x20a3, 0x0000, 0x60c3, 0x0084, 0x080c, 0x4b07, 0x0005,
+-      0x00f6, 0x7084, 0xa005, 0x01d0, 0x2011, 0x4add, 0x080c, 0x699d,
+-      0xa086, 0x0084, 0x1188, 0x2079, 0xbb80, 0x7a30, 0xa296, 0x1107,
+-      0x1158, 0x7834, 0xa005, 0x1140, 0x708b, 0x0001, 0x080c, 0x4b8a,
+-      0x708f, 0x000e, 0x0029, 0x0010, 0x080c, 0x4b20, 0x00fe, 0x0005,
+-      0x708f, 0x000f, 0x7087, 0x0000, 0x608b, 0xbc85, 0x608f, 0xb5b5,
+-      0x6043, 0x0005, 0x6043, 0x0004, 0x2009, 0x07d0, 0x2011, 0x4add,
+-      0x080c, 0x6991, 0x0005, 0x7084, 0xa005, 0x0120, 0x2011, 0x4add,
+-      0x080c, 0x699d, 0x0005, 0x708f, 0x0011, 0x080c, 0x4be9, 0x11a0,
+-      0x7170, 0x81ff, 0x0188, 0x2009, 0x0000, 0x7074, 0xa084, 0x00ff,
+-      0x080c, 0x281d, 0xa186, 0x007e, 0x0138, 0xa186, 0x0080, 0x0120,
+-      0x2011, 0xbb8e, 0x080c, 0x4aa1, 0x20e1, 0x9080, 0x20e1, 0x4000,
++      0x0014, 0x080c, 0x4b06, 0x0010, 0x080c, 0x462c, 0x0005, 0x00f6,
++      0x7084, 0xa005, 0x01b0, 0x2011, 0x4adc, 0x080c, 0x699c, 0xa086,
++      0x0084, 0x1168, 0x2079, 0xbb80, 0x7a30, 0xa296, 0x1106, 0x1138,
++      0x7834, 0xa005, 0x1120, 0x708f, 0x0018, 0x0029, 0x0010, 0x080c,
++      0x4b1f, 0x00fe, 0x0005, 0x708f, 0x0019, 0x080c, 0x4ba3, 0x20a3,
++      0x1106, 0x20a3, 0x0000, 0x3430, 0x2099, 0xbb8e, 0x2039, 0xbb0e,
++      0x27a0, 0x20a9, 0x0040, 0x53a3, 0x080c, 0x4be8, 0x11e8, 0x2728,
++      0x2514, 0x8207, 0xa084, 0x00ff, 0x8000, 0x2018, 0xa294, 0x00ff,
++      0x8007, 0xa205, 0x202a, 0x7054, 0x2310, 0x8214, 0xa2a0, 0xbb0e,
++      0x2414, 0xa38c, 0x0001, 0x0118, 0xa294, 0xff00, 0x0018, 0xa294,
++      0x00ff, 0x8007, 0xa215, 0x2222, 0x2798, 0x26a0, 0x20a9, 0x0040,
++      0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0084, 0x080c,
++      0x4b06, 0x0005, 0x00f6, 0x7084, 0xa005, 0x01d0, 0x2011, 0x4adc,
++      0x080c, 0x699c, 0xa086, 0x0084, 0x1188, 0x2079, 0xbb80, 0x7a30,
++      0xa296, 0x1107, 0x1158, 0x7834, 0xa005, 0x1140, 0x708b, 0x0001,
++      0x080c, 0x4b89, 0x708f, 0x001a, 0x0029, 0x0010, 0x080c, 0x4b1f,
++      0x00fe, 0x0005, 0x708f, 0x001b, 0x20e1, 0x9080, 0x20e1, 0x4000,
+       0x2099, 0xbb80, 0x20a1, 0x020b, 0x7484, 0xa480, 0x0018, 0xa080,
+-      0x0007, 0xa084, 0x03f8, 0x8004, 0x20a8, 0x53a6, 0x60c3, 0x0014,
+-      0x080c, 0x4b07, 0x0005, 0x00f6, 0x7084, 0xa005, 0x01f0, 0x2011,
+-      0x4add, 0x080c, 0x699d, 0xa086, 0x0014, 0x11a8, 0x2079, 0xbb80,
+-      0x7a30, 0xa296, 0x1103, 0x1178, 0x7834, 0xa005, 0x1160, 0x7a38,
+-      0xd2fc, 0x0128, 0x70b8, 0xa005, 0x1110, 0x70bb, 0x0001, 0x708f,
+-      0x0012, 0x0029, 0x0010, 0x080c, 0x4b20, 0x00fe, 0x0005, 0x708f,
+-      0x0013, 0x080c, 0x4ba4, 0x20a3, 0x1103, 0x20a3, 0x0000, 0x3430,
+-      0x2011, 0xbb8e, 0x080c, 0x4be9, 0x1160, 0x7078, 0xa005, 0x1148,
+-      0x7150, 0xa186, 0xffff, 0x0128, 0x080c, 0x4aa1, 0x0110, 0x080c,
+-      0x4bc7, 0x20a9, 0x0008, 0x2298, 0x26a0, 0x53a6, 0x20a3, 0x0000,
+-      0x20a3, 0x0000, 0x60c3, 0x0014, 0x080c, 0x4b07, 0x0005, 0x00f6,
+-      0x7084, 0xa005, 0x01f0, 0x2011, 0x4add, 0x080c, 0x699d, 0xa086,
+-      0x0014, 0x11a8, 0x2079, 0xbb80, 0x7a30, 0xa296, 0x1104, 0x1178,
+-      0x7834, 0xa005, 0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70b8, 0xa005,
+-      0x1110, 0x70bb, 0x0001, 0x708f, 0x0014, 0x0029, 0x0010, 0x080c,
+-      0x4b20, 0x00fe, 0x0005, 0x708f, 0x0015, 0x080c, 0x4ba4, 0x20a3,
+-      0x1104, 0x20a3, 0x0000, 0x3430, 0x2011, 0xbb8e, 0x080c, 0x4be9,
+-      0x11a8, 0x7078, 0xa005, 0x1190, 0x7158, 0xa186, 0xffff, 0x0170,
+-      0xa180, 0x2dc4, 0x200d, 0xa18c, 0xff00, 0x810f, 0x080c, 0x4aa1,
+-      0x0128, 0x080c, 0x40d7, 0x0110, 0x080c, 0x2867, 0x20a9, 0x0008,
+-      0x2298, 0x26a0, 0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3,
+-      0x0014, 0x080c, 0x4b07, 0x0005, 0x00f6, 0x7084, 0xa005, 0x05b8,
+-      0x2011, 0x4add, 0x080c, 0x699d, 0xa086, 0x0014, 0x1570, 0x2079,
+-      0xbb80, 0x7a30, 0xa296, 0x1105, 0x1540, 0x7834, 0x2011, 0x0100,
+-      0xa21e, 0x1148, 0x7a38, 0xd2fc, 0x0128, 0x70b8, 0xa005, 0x1110,
+-      0x70bb, 0x0001, 0x0060, 0xa005, 0x11c0, 0x7a38, 0xd2fc, 0x0128,
+-      0x70b8, 0xa005, 0x1110, 0x70bb, 0x0001, 0x708b, 0x0000, 0x7a38,
+-      0xd2f4, 0x0138, 0x2001, 0xb574, 0x2004, 0xd0a4, 0x1110, 0x70d7,
+-      0x0008, 0x708f, 0x0016, 0x0029, 0x0010, 0x080c, 0x4b20, 0x00fe,
+-      0x0005, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x2099, 0xbb80, 0x20a1,
+-      0x020b, 0x20a9, 0x000e, 0x53a6, 0x3430, 0x2011, 0xbb8e, 0x708f,
+-      0x0017, 0x080c, 0x4be9, 0x1150, 0x7078, 0xa005, 0x1138, 0x080c,
+-      0x4a16, 0x1170, 0xa085, 0x0001, 0x080c, 0x2867, 0x20a9, 0x0008,
+-      0x2099, 0xbb8e, 0x26a0, 0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000,
+-      0x60c3, 0x0014, 0x080c, 0x4b07, 0x0010, 0x080c, 0x462d, 0x0005,
+-      0x00f6, 0x7084, 0xa005, 0x01b0, 0x2011, 0x4add, 0x080c, 0x699d,
+-      0xa086, 0x0084, 0x1168, 0x2079, 0xbb80, 0x7a30, 0xa296, 0x1106,
+-      0x1138, 0x7834, 0xa005, 0x1120, 0x708f, 0x0018, 0x0029, 0x0010,
+-      0x080c, 0x4b20, 0x00fe, 0x0005, 0x708f, 0x0019, 0x080c, 0x4ba4,
+-      0x20a3, 0x1106, 0x20a3, 0x0000, 0x3430, 0x2099, 0xbb8e, 0x2039,
+-      0xbb0e, 0x27a0, 0x20a9, 0x0040, 0x53a3, 0x080c, 0x4be9, 0x11e8,
+-      0x2728, 0x2514, 0x8207, 0xa084, 0x00ff, 0x8000, 0x2018, 0xa294,
+-      0x00ff, 0x8007, 0xa205, 0x202a, 0x7054, 0x2310, 0x8214, 0xa2a0,
+-      0xbb0e, 0x2414, 0xa38c, 0x0001, 0x0118, 0xa294, 0xff00, 0x0018,
+-      0xa294, 0x00ff, 0x8007, 0xa215, 0x2222, 0x2798, 0x26a0, 0x20a9,
+-      0x0040, 0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0084,
+-      0x080c, 0x4b07, 0x0005, 0x00f6, 0x7084, 0xa005, 0x01d0, 0x2011,
+-      0x4add, 0x080c, 0x699d, 0xa086, 0x0084, 0x1188, 0x2079, 0xbb80,
+-      0x7a30, 0xa296, 0x1107, 0x1158, 0x7834, 0xa005, 0x1140, 0x708b,
+-      0x0001, 0x080c, 0x4b8a, 0x708f, 0x001a, 0x0029, 0x0010, 0x080c,
+-      0x4b20, 0x00fe, 0x0005, 0x708f, 0x001b, 0x20e1, 0x9080, 0x20e1,
+-      0x4000, 0x2099, 0xbb80, 0x20a1, 0x020b, 0x7484, 0xa480, 0x0018,
+-      0xa080, 0x0007, 0xa084, 0x03f8, 0x8004, 0x20a8, 0x53a6, 0x60c3,
+-      0x0084, 0x080c, 0x4b07, 0x0005, 0x0005, 0x0005, 0x0086, 0x0096,
+-      0x2029, 0xb553, 0x252c, 0x20a9, 0x0008, 0x2041, 0xbb0e, 0x28a0,
+-      0x2099, 0xbb8e, 0x53a3, 0x20a9, 0x0008, 0x2011, 0x0007, 0xd5d4,
+-      0x0110, 0x2011, 0x0000, 0x2800, 0xa200, 0x200c, 0xa1a6, 0xffff,
+-      0x1148, 0xd5d4, 0x0110, 0x8210, 0x0008, 0x8211, 0x1f04, 0x4a2b,
+-      0x0804, 0x4a99, 0x82ff, 0x1160, 0xd5d4, 0x0120, 0xa1a6, 0x3fff,
+-      0x0d90, 0x0020, 0xa1a6, 0x3fff, 0x0904, 0x4a99, 0xa18d, 0xc000,
+-      0x20a9, 0x0010, 0x2019, 0x0001, 0xd5d4, 0x0110, 0x2019, 0x0010,
+-      0x2120, 0xd5d4, 0x0110, 0x8423, 0x0008, 0x8424, 0x1240, 0xd5d4,
+-      0x0110, 0x8319, 0x0008, 0x8318, 0x1f04, 0x4a51, 0x04d0, 0x23a8,
+-      0x2021, 0x0001, 0x8426, 0x8425, 0x1f04, 0x4a63, 0x2328, 0x8529,
+-      0xa2be, 0x0007, 0x0158, 0x0006, 0x2039, 0x0007, 0x2200, 0xa73a,
+-      0x000e, 0x27a8, 0xa5a8, 0x0010, 0x1f04, 0x4a72, 0x7552, 0xa5c8,
+-      0x2dc4, 0x292d, 0xa5ac, 0x00ff, 0x7576, 0x6532, 0x6536, 0x0016,
+-      0x2508, 0x080c, 0x2847, 0x001e, 0x60e7, 0x0000, 0x65ea, 0x2018,
+-      0x2304, 0xa405, 0x201a, 0x707b, 0x0001, 0x26a0, 0x2898, 0x20a9,
+-      0x0008, 0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000, 0xa085, 0x0001,
+-      0x0028, 0xa006, 0x0018, 0xa006, 0x080c, 0x1515, 0x009e, 0x008e,
+-      0x0005, 0x2118, 0x2021, 0x0000, 0x2001, 0x0007, 0xa39a, 0x0010,
+-      0x0218, 0x8420, 0x8001, 0x0cd0, 0x2118, 0x84ff, 0x0120, 0xa39a,
+-      0x0010, 0x8421, 0x1de0, 0x2021, 0x0001, 0x83ff, 0x0118, 0x8423,
+-      0x8319, 0x1de8, 0xa238, 0x2704, 0xa42c, 0x11b8, 0xa405, 0x203a,
+-      0x7152, 0xa1a0, 0x2dc4, 0x242d, 0xa5ac, 0x00ff, 0x7576, 0x6532,
+-      0x6536, 0x0016, 0x2508, 0x080c, 0x2847, 0x001e, 0x60e7, 0x0000,
+-      0x65ea, 0x707b, 0x0001, 0xa084, 0x0000, 0x0005, 0x00e6, 0x2071,
+-      0xb500, 0x707f, 0x0000, 0x00ee, 0x0005, 0x00e6, 0x00f6, 0x2079,
+-      0x0100, 0x2071, 0x0140, 0x080c, 0x7d7b, 0x7004, 0xa084, 0x4000,
+-      0x0120, 0x7003, 0x1000, 0x7003, 0x0000, 0x0126, 0x2091, 0x8000,
+-      0x2071, 0xb523, 0x2073, 0x0000, 0x7840, 0x0026, 0x0016, 0x2009,
+-      0x00f7, 0x080c, 0x4bb0, 0x001e, 0xa094, 0x0010, 0xa285, 0x0080,
+-      0x7842, 0x7a42, 0x002e, 0x012e, 0x00fe, 0x00ee, 0x0005, 0x0126,
+-      0x2091, 0x8000, 0x2011, 0xb7ea, 0x2013, 0x0000, 0x7087, 0x0000,
+-      0x012e, 0x20e1, 0x9080, 0x60a3, 0x0056, 0x60a7, 0x9575, 0x080c,
+-      0x7d72, 0x2009, 0x07d0, 0x2011, 0x4add, 0x080c, 0x6a23, 0x0005,
+-      0x0016, 0x0026, 0x00c6, 0x0126, 0x2091, 0x8000, 0x2011, 0x0003,
+-      0x080c, 0x8076, 0x2011, 0x0002, 0x080c, 0x8080, 0x080c, 0x7f5a,
+-      0x0036, 0x2019, 0x0000, 0x080c, 0x7fe5, 0x003e, 0x2009, 0x00f7,
+-      0x080c, 0x4bb0, 0x2061, 0xb7f3, 0x601b, 0x0000, 0x601f, 0x0000,
+-      0x2061, 0xb500, 0x6003, 0x0001, 0x2061, 0x0100, 0x6043, 0x0090,
+-      0x6043, 0x0010, 0x2009, 0x002d, 0x2011, 0x4b55, 0x080c, 0x6991,
+-      0x012e, 0x00ce, 0x002e, 0x001e, 0x0005, 0x00e6, 0x0006, 0x0126,
+-      0x2091, 0x8000, 0x2071, 0x0100, 0x080c, 0x7d7b, 0x2071, 0x0140,
+-      0x7004, 0xa084, 0x4000, 0x0120, 0x7003, 0x1000, 0x7003, 0x0000,
+-      0x080c, 0x5ad8, 0x01a8, 0x080c, 0x5af6, 0x1190, 0x2001, 0xb79e,
+-      0x2003, 0xaaaa, 0x0016, 0x080c, 0x28eb, 0x2001, 0xb78f, 0x2102,
+-      0x001e, 0x2001, 0xb79f, 0x2003, 0x0000, 0x080c, 0x5a08, 0x0030,
+-      0x2001, 0x0001, 0x080c, 0x27c3, 0x080c, 0x4b20, 0x012e, 0x000e,
+-      0x00ee, 0x0005, 0x20a9, 0x0040, 0x20a1, 0xbcc0, 0x2099, 0xbb8e,
+-      0x3304, 0x8007, 0x20a2, 0x9398, 0x94a0, 0x1f04, 0x4b90, 0x0005,
+-      0x20e1, 0x9080, 0x20e1, 0x4000, 0x2099, 0xbb00, 0x20a1, 0x020b,
+-      0x20a9, 0x000c, 0x53a6, 0x0005, 0x20e1, 0x9080, 0x20e1, 0x4000,
+-      0x2099, 0xbb80, 0x20a1, 0x020b, 0x20a9, 0x000c, 0x53a6, 0x0005,
+-      0x00c6, 0x0006, 0x2061, 0x0100, 0x810f, 0x2001, 0xb531, 0x2004,
+-      0xa005, 0x1138, 0x2001, 0xb515, 0x2004, 0xa084, 0x00ff, 0xa105,
+-      0x0010, 0xa185, 0x00f7, 0x604a, 0x000e, 0x00ce, 0x0005, 0x0016,
+-      0x0046, 0x2001, 0xb553, 0x2004, 0xd0a4, 0x0158, 0xa006, 0x2020,
+-      0x2009, 0x002a, 0x080c, 0xb0dc, 0x2001, 0xb50c, 0x200c, 0xc195,
+-      0x2102, 0x2019, 0x002a, 0x2009, 0x0000, 0x080c, 0x2c6f, 0x004e,
+-      0x001e, 0x0005, 0x080c, 0x4b20, 0x708f, 0x0000, 0x7087, 0x0000,
+-      0x0005, 0x0006, 0x2001, 0xb50c, 0x2004, 0xd09c, 0x0100, 0x000e,
+-      0x0005, 0x0006, 0x0016, 0x0126, 0x2091, 0x8000, 0x2001, 0x0101,
+-      0x200c, 0xa18d, 0x0006, 0x2102, 0x012e, 0x001e, 0x000e, 0x0005,
+-      0x0156, 0x20a9, 0x00ff, 0x2009, 0xb635, 0xa006, 0x200a, 0x8108,
+-      0x1f04, 0x4c06, 0x015e, 0x0005, 0x00d6, 0x0036, 0x0156, 0x0136,
+-      0x0146, 0x2069, 0xb552, 0xa006, 0x6002, 0x6007, 0x0707, 0x600a,
+-      0x600e, 0x6012, 0xa198, 0x2dc4, 0x231d, 0xa39c, 0x00ff, 0x6316,
+-      0x20a9, 0x0004, 0xac98, 0x0006, 0x23a0, 0x40a4, 0x20a9, 0x0004,
+-      0xac98, 0x000a, 0x23a0, 0x40a4, 0x603e, 0x6042, 0x604e, 0x6052,
+-      0x6056, 0x605a, 0x605e, 0x6062, 0x6066, 0x606a, 0x606e, 0x6072,
+-      0x6076, 0x607a, 0x607e, 0x6082, 0x6086, 0x608a, 0x608e, 0x6092,
+-      0x6096, 0x609a, 0x609e, 0x60ae, 0x61a2, 0x00d6, 0x60a4, 0xa06d,
+-      0x0110, 0x080c, 0x160f, 0x60a7, 0x0000, 0x60a8, 0xa06d, 0x0110,
+-      0x080c, 0x160f, 0x60ab, 0x0000, 0x00de, 0xa006, 0x604a, 0x6810,
+-      0x603a, 0x680c, 0x6046, 0x6814, 0xa084, 0x00ff, 0x6042, 0x014e,
+-      0x013e, 0x015e, 0x003e, 0x00de, 0x0005, 0x0126, 0x2091, 0x8000,
+-      0x6944, 0x6e48, 0xa684, 0x3fff, 0xa082, 0x4000, 0x1a04, 0x4d1b,
+-      0xa18c, 0xff00, 0x810f, 0xa182, 0x00ff, 0x1a04, 0x4d20, 0x2001,
+-      0xb50c, 0x2004, 0xa084, 0x0003, 0x01c0, 0x2001, 0xb50c, 0x2004,
+-      0xd084, 0x1904, 0x4d03, 0xa188, 0xb635, 0x2104, 0xa065, 0x0904,
+-      0x4d03, 0x6004, 0xa084, 0x00ff, 0xa08e, 0x0006, 0x1904, 0x4d03,
+-      0x6000, 0xd0c4, 0x0904, 0x4d03, 0x0068, 0xa188, 0xb635, 0x2104,
+-      0xa065, 0x0904, 0x4ce7, 0x6004, 0xa084, 0x00ff, 0xa08e, 0x0006,
+-      0x1904, 0x4cec, 0x60a4, 0xa00d, 0x0118, 0x080c, 0x51d5, 0x05d0,
+-      0x60a8, 0xa00d, 0x0188, 0x080c, 0x5220, 0x1170, 0x694c, 0xd1fc,
+-      0x1118, 0x080c, 0x4edf, 0x0448, 0x080c, 0x4e8e, 0x694c, 0xd1ec,
+-      0x1520, 0x080c, 0x50c7, 0x0408, 0x694c, 0xa184, 0xa000, 0x0178,
+-      0xd1ec, 0x0140, 0xd1fc, 0x0118, 0x080c, 0x50d6, 0x0028, 0x080c,
+-      0x50d6, 0x0028, 0xd1fc, 0x0118, 0x080c, 0x4e8e, 0x0070, 0x6050,
+-      0xa00d, 0x0130, 0x2d00, 0x200a, 0x6803, 0x0000, 0x6052, 0x0028,
+-      0x2d00, 0x6052, 0x604e, 0x6803, 0x0000, 0x080c, 0x6cab, 0xa006,
+-      0x012e, 0x0005, 0x2001, 0x0005, 0x2009, 0x0000, 0x04e8, 0x2001,
+-      0x0028, 0x2009, 0x0000, 0x04c0, 0xa082, 0x0006, 0x12a0, 0x2001,
+-      0xb535, 0x2004, 0xd0ac, 0x1160, 0x60a0, 0xd0bc, 0x1148, 0x6100,
+-      0xd1fc, 0x0904, 0x4ca2, 0x2001, 0x0029, 0x2009, 0x1000, 0x0420,
+-      0x2001, 0x0028, 0x00a8, 0x2009, 0xb50c, 0x210c, 0xd18c, 0x0118,
+-      0x2001, 0x0004, 0x0068, 0xd184, 0x0118, 0x2001, 0x0004, 0x0040,
+-      0x2001, 0x0029, 0x6100, 0xd1fc, 0x0118, 0x2009, 0x1000, 0x0060,
+-      0x2009, 0x0000, 0x0048, 0x2001, 0x0029, 0x2009, 0x0000, 0x0020,
+-      0x2001, 0x0029, 0x2009, 0x0000, 0xa005, 0x012e, 0x0005, 0x00e6,
+-      0x0126, 0x2091, 0x8000, 0x6844, 0x8007, 0xa084, 0x00ff, 0x2008,
+-      0xa182, 0x00ff, 0x1a04, 0x4d7a, 0xa188, 0xb635, 0x2104, 0xa065,
+-      0x01c0, 0x6004, 0xa084, 0x00ff, 0xa08e, 0x0006, 0x11a8, 0x2c70,
+-      0x080c, 0x85c1, 0x05e8, 0x2e00, 0x601a, 0x2d00, 0x6012, 0x600b,
+-      0xffff, 0x601f, 0x000a, 0x2009, 0x0003, 0x080c, 0x8646, 0xa006,
+-      0x0460, 0x2001, 0x0028, 0x0440, 0xa082, 0x0006, 0x1298, 0x2001,
+-      0xb535, 0x2004, 0xd0ac, 0x1158, 0x60a0, 0xd0bc, 0x1140, 0x6100,
+-      0xd1fc, 0x09e8, 0x2001, 0x0029, 0x2009, 0x1000, 0x00a8, 0x2001,
+-      0x0028, 0x0090, 0x2009, 0xb50c, 0x210c, 0xd18c, 0x0118, 0x2001,
+-      0x0004, 0x0050, 0xd184, 0x0118, 0x2001, 0x0004, 0x0028, 0x2001,
+-      0x0029, 0x0010, 0x2001, 0x0029, 0xa005, 0x012e, 0x00ee, 0x0005,
+-      0x2001, 0x002c, 0x0cc8, 0x00f6, 0x00e6, 0x0126, 0x2091, 0x8000,
+-      0x2011, 0x0000, 0x2079, 0xb500, 0x6944, 0xa18c, 0xff00, 0x810f,
+-      0xa182, 0x00ff, 0x1a04, 0x4e45, 0x080c, 0x4faa, 0x11a0, 0x6004,
+-      0xa084, 0x00ff, 0xa082, 0x0006, 0x1270, 0x6864, 0xa0c6, 0x006f,
+-      0x0150, 0x2001, 0xb535, 0x2004, 0xd0ac, 0x1904, 0x4e2e, 0x60a0,
+-      0xd0bc, 0x1904, 0x4e2e, 0x6864, 0xa0c6, 0x006f, 0x0118, 0x2008,
+-      0x0804, 0x4df7, 0x6968, 0x2140, 0xa18c, 0xff00, 0x810f, 0x78d4,
+-      0xd0ac, 0x1118, 0xa182, 0x0080, 0x06d0, 0xa182, 0x00ff, 0x16b8,
+-      0x6a70, 0x6b6c, 0x7870, 0xa306, 0x1160, 0x7874, 0xa24e, 0x1118,
+-      0x2208, 0x2310, 0x0460, 0xa9cc, 0xff00, 0x1118, 0x2208, 0x2310,
+-      0x0430, 0x080c, 0x3dc4, 0x2c70, 0x0550, 0x2009, 0x0000, 0x2011,
+-      0x0000, 0xa0c6, 0x4000, 0x1160, 0x0006, 0x2e60, 0x080c, 0x524b,
+-      0x1108, 0xc185, 0x7000, 0xd0bc, 0x0108, 0xc18d, 0x000e, 0x0088,
+-      0xa0c6, 0x4007, 0x1110, 0x2408, 0x0060, 0xa0c6, 0x4008, 0x1118,
+-      0x2708, 0x2610, 0x0030, 0xa0c6, 0x4009, 0x1108, 0x0010, 0x2001,
+-      0x4006, 0x6866, 0x696a, 0x6a6e, 0x2001, 0x0030, 0x0450, 0x080c,
+-      0x85c1, 0x1138, 0x2001, 0x4005, 0x2009, 0x0003, 0x2011, 0x0000,
+-      0x0c80, 0x2e00, 0x601a, 0x080c, 0xa021, 0x2d00, 0x6012, 0x601f,
+-      0x0001, 0x6838, 0xd88c, 0x0108, 0xc0f5, 0x683a, 0x0126, 0x2091,
+-      0x8000, 0x080c, 0x2c9c, 0x012e, 0x2001, 0x0000, 0x080c, 0x4eec,
+-      0x2001, 0x0002, 0x080c, 0x4efe, 0x2009, 0x0002, 0x080c, 0x8646,
+-      0xa006, 0xa005, 0x012e, 0x00ee, 0x00fe, 0x0005, 0x2001, 0x0028,
+-      0x2009, 0x0000, 0x0cb0, 0x2009, 0xb50c, 0x210c, 0xd18c, 0x0118,
+-      0x2001, 0x0004, 0x0038, 0xd184, 0x0118, 0x2001, 0x0004, 0x0010,
+-      0x2001, 0x0029, 0x2009, 0x0000, 0x0c20, 0x2001, 0x0029, 0x2009,
+-      0x0000, 0x08f8, 0x6944, 0x6e48, 0xa684, 0x3fff, 0xa082, 0x4000,
+-      0x16b8, 0xa18c, 0xff00, 0x810f, 0xa182, 0x00ff, 0x12e0, 0xa188,
+-      0xb635, 0x2104, 0xa065, 0x01b8, 0x6004, 0xa084, 0x00ff, 0xa08e,
+-      0x0006, 0x11b0, 0x684c, 0xd0ec, 0x0120, 0x080c, 0x50d6, 0x0431,
+-      0x0030, 0x0421, 0x684c, 0xd0fc, 0x0110, 0x080c, 0x50c7, 0x080c,
+-      0x5114, 0xa006, 0x00c8, 0x2001, 0x0028, 0x2009, 0x0000, 0x00a0,
+-      0xa082, 0x0006, 0x1240, 0x6100, 0xd1fc, 0x0d20, 0x2001, 0x0029,
+-      0x2009, 0x1000, 0x0048, 0x2001, 0x0029, 0x2009, 0x0000, 0x0020,
+-      0x2001, 0x0029, 0x2009, 0x0000, 0xa005, 0x0005, 0x0126, 0x2091,
+-      0x8000, 0x6050, 0xa00d, 0x0138, 0x2d00, 0x200a, 0x6803, 0x0000,
+-      0x6052, 0x012e, 0x0005, 0x2d00, 0x6052, 0x604e, 0x6803, 0x0000,
+-      0x0cc0, 0x0126, 0x2091, 0x8000, 0x604c, 0xa005, 0x0170, 0x00e6,
+-      0x2071, 0xb7e0, 0x7004, 0xa086, 0x0002, 0x0168, 0x00ee, 0x604c,
+-      0x6802, 0x2d00, 0x604e, 0x012e, 0x0005, 0x2d00, 0x6052, 0x604e,
+-      0x6803, 0x0000, 0x0cc0, 0x701c, 0xac06, 0x1d80, 0x604c, 0x2070,
+-      0x7000, 0x6802, 0x2d00, 0x7002, 0x00ee, 0x012e, 0x0005, 0x0126,
+-      0x2091, 0x8000, 0x604c, 0xa06d, 0x0130, 0x6800, 0xa005, 0x1108,
+-      0x6052, 0x604e, 0xad05, 0x012e, 0x0005, 0x604c, 0xa06d, 0x0130,
+-      0x6800, 0xa005, 0x1108, 0x6052, 0x604e, 0xad05, 0x0005, 0x6803,
+-      0x0000, 0x6084, 0xa00d, 0x0120, 0x2d00, 0x200a, 0x6086, 0x0005,
+-      0x2d00, 0x6086, 0x6082, 0x0cd8, 0x0126, 0x00c6, 0x0026, 0x2091,
+-      0x8000, 0x6218, 0x2260, 0x6200, 0xa005, 0x0110, 0xc285, 0x0008,
+-      0xc284, 0x6202, 0x002e, 0x00ce, 0x012e, 0x0005, 0x0126, 0x00c6,
+-      0x2091, 0x8000, 0x6218, 0x2260, 0x6204, 0x0006, 0xa086, 0x0006,
+-      0x1180, 0x609c, 0xd0ac, 0x0168, 0x2001, 0xb553, 0x2004, 0xd0a4,
+-      0x0140, 0xa284, 0xff00, 0x8007, 0xa086, 0x0007, 0x1110, 0x2011,
+-      0x0600, 0x000e, 0xa294, 0xff00, 0xa215, 0x6206, 0x0006, 0xa086,
+-      0x0006, 0x1128, 0x6290, 0x82ff, 0x1110, 0x080c, 0x1515, 0x000e,
+-      0x00ce, 0x012e, 0x0005, 0x0126, 0x00c6, 0x2091, 0x8000, 0x6218,
+-      0x2260, 0x6204, 0x0006, 0xa086, 0x0006, 0x1178, 0x609c, 0xd0a4,
+-      0x0160, 0x2001, 0xb553, 0x2004, 0xd0ac, 0x1138, 0xa284, 0x00ff,
+-      0xa086, 0x0007, 0x1110, 0x2011, 0x0006, 0x000e, 0xa294, 0x00ff,
+-      0x8007, 0xa215, 0x6206, 0x00ce, 0x012e, 0x0005, 0x0026, 0xa182,
+-      0x00ff, 0x0218, 0xa085, 0x0001, 0x00b0, 0xa190, 0xb635, 0x2204,
+-      0xa065, 0x1180, 0x0016, 0x00d6, 0x080c, 0x15df, 0x2d60, 0x00de,
+-      0x001e, 0x0d80, 0x2c00, 0x2012, 0x60a7, 0x0000, 0x60ab, 0x0000,
+-      0x080c, 0x4c0c, 0xa006, 0x002e, 0x0005, 0x0126, 0x2091, 0x8000,
+-      0x0026, 0xa182, 0x00ff, 0x0218, 0xa085, 0x0001, 0x0480, 0x00d6,
+-      0xa190, 0xb635, 0x2204, 0xa06d, 0x0540, 0x2013, 0x0000, 0x00d6,
+-      0x00c6, 0x2d60, 0x60a4, 0xa06d, 0x0110, 0x080c, 0x160f, 0x60a8,
+-      0xa06d, 0x0110, 0x080c, 0x160f, 0x00ce, 0x00de, 0x00d6, 0x00c6,
+-      0x68ac, 0x2060, 0x8cff, 0x0168, 0x600c, 0x0006, 0x6010, 0x2068,
+-      0x080c, 0x9c54, 0x0110, 0x080c, 0x161f, 0x080c, 0x8617, 0x00ce,
+-      0x0c88, 0x00ce, 0x00de, 0x080c, 0x160f, 0x00de, 0xa006, 0x002e,
+-      0x012e, 0x0005, 0x0016, 0xa182, 0x00ff, 0x0218, 0xa085, 0x0001,
+-      0x0030, 0xa188, 0xb635, 0x2104, 0xa065, 0x0dc0, 0xa006, 0x001e,
+-      0x0005, 0x00d6, 0x0156, 0x0136, 0x0146, 0x600b, 0x0000, 0x600f,
+-      0x0000, 0x6000, 0xc08c, 0x6002, 0x080c, 0x5ad0, 0x1558, 0x60a0,
+-      0xa086, 0x007e, 0x2069, 0xbb90, 0x0130, 0x2001, 0xb535, 0x2004,
+-      0xd0ac, 0x1500, 0x0098, 0x2d04, 0xd0e4, 0x01e0, 0x00d6, 0x2069,
+-      0xbb8e, 0x00c6, 0x2061, 0xb7b2, 0x6810, 0x2062, 0x6814, 0x6006,
+-      0x6818, 0x600a, 0x681c, 0x600e, 0x00ce, 0x00de, 0x8d69, 0x2d04,
+-      0x2069, 0x0140, 0xa005, 0x1110, 0x2001, 0x0001, 0x6886, 0x2069,
+-      0xb500, 0x68a6, 0x2069, 0xbb8e, 0x6808, 0x605e, 0x6810, 0x6062,
+-      0x6138, 0xa10a, 0x0208, 0x603a, 0x6814, 0x6066, 0x2099, 0xbb96,
+-      0xac88, 0x000a, 0x21a0, 0x20a9, 0x0004, 0x53a3, 0x2099, 0xbb9a,
+-      0xac88, 0x0006, 0x21a0, 0x20a9, 0x0004, 0x53a3, 0x2069, 0xbbae,
+-      0x6808, 0x606a, 0x690c, 0x616e, 0x6810, 0x6072, 0x6818, 0x6076,
+-      0x60a0, 0xa086, 0x007e, 0x1120, 0x2069, 0xbb8e, 0x690c, 0x616e,
+-      0xa182, 0x0211, 0x1218, 0x2009, 0x0008, 0x0400, 0xa182, 0x0259,
+-      0x1218, 0x2009, 0x0007, 0x00d0, 0xa182, 0x02c1, 0x1218, 0x2009,
+-      0x0006, 0x00a0, 0xa182, 0x0349, 0x1218, 0x2009, 0x0005, 0x0070,
+-      0xa182, 0x0421, 0x1218, 0x2009, 0x0004, 0x0040, 0xa182, 0x0581,
+-      0x1218, 0x2009, 0x0003, 0x0010, 0x2009, 0x0002, 0x6192, 0x014e,
+-      0x013e, 0x015e, 0x00de, 0x0005, 0x0016, 0x0026, 0x00e6, 0x2071,
+-      0xbb8d, 0x2e04, 0x6896, 0x2071, 0xbb8e, 0x7004, 0x689a, 0x701c,
+-      0x689e, 0x6a00, 0x2009, 0xb572, 0x210c, 0xd0bc, 0x0120, 0xd1ec,
+-      0x0110, 0xc2ad, 0x0008, 0xc2ac, 0xd0c4, 0x0120, 0xd1e4, 0x0110,
+-      0xc2bd, 0x0008, 0xc2bc, 0x6a02, 0x00ee, 0x002e, 0x001e, 0x0005,
+-      0x00d6, 0x0126, 0x2091, 0x8000, 0x60a4, 0xa06d, 0x01c0, 0x6900,
+-      0x81ff, 0x1540, 0x6a04, 0xa282, 0x0010, 0x1648, 0xad88, 0x0004,
+-      0x20a9, 0x0010, 0x2104, 0xa086, 0xffff, 0x0128, 0x8108, 0x1f04,
+-      0x5082, 0x080c, 0x1515, 0x260a, 0x8210, 0x6a06, 0x0098, 0x080c,
+-      0x15f8, 0x01a8, 0x2d00, 0x60a6, 0x6803, 0x0000, 0xad88, 0x0004,
+-      0x20a9, 0x0010, 0x200b, 0xffff, 0x8108, 0x1f04, 0x509a, 0x6807,
+-      0x0001, 0x6e12, 0xa085, 0x0001, 0x012e, 0x00de, 0x0005, 0xa006,
+-      0x0cd8, 0x0126, 0x2091, 0x8000, 0x00d6, 0x60a4, 0xa00d, 0x01a0,
+-      0x2168, 0x6800, 0xa005, 0x1160, 0x080c, 0x51d5, 0x1168, 0x200b,
+-      0xffff, 0x6804, 0xa08a, 0x0002, 0x0218, 0x8001, 0x6806, 0x0020,
+-      0x080c, 0x160f, 0x60a7, 0x0000, 0x00de, 0x012e, 0x0005, 0x0126,
+-      0x2091, 0x8000, 0x080c, 0x5233, 0x0010, 0x080c, 0x4e8e, 0x080c,
+-      0x514d, 0x1dd8, 0x080c, 0x5114, 0x012e, 0x0005, 0x00d6, 0x0126,
+-      0x2091, 0x8000, 0x60a8, 0xa06d, 0x01c0, 0x6950, 0x81ff, 0x1540,
+-      0x6a54, 0xa282, 0x0010, 0x1670, 0xad88, 0x0018, 0x20a9, 0x0010,
+-      0x2104, 0xa086, 0xffff, 0x0128, 0x8108, 0x1f04, 0x50e8, 0x080c,
+-      0x1515, 0x260a, 0x8210, 0x6a56, 0x0098, 0x080c, 0x15f8, 0x01d0,
+-      0x2d00, 0x60aa, 0x6853, 0x0000, 0xad88, 0x0018, 0x20a9, 0x0010,
+-      0x200b, 0xffff, 0x8108, 0x1f04, 0x5100, 0x6857, 0x0001, 0x6e62,
+-      0x0010, 0x080c, 0x4edf, 0x0089, 0x1de0, 0xa085, 0x0001, 0x012e,
+-      0x00de, 0x0005, 0xa006, 0x0cd8, 0x0126, 0x2091, 0x8000, 0x080c,
+-      0x6cab, 0x012e, 0x0005, 0xa01e, 0x0010, 0x2019, 0x0001, 0xa00e,
+-      0x0126, 0x2091, 0x8000, 0x604c, 0x2068, 0x6000, 0xd0dc, 0x1170,
+-      0x8dff, 0x01f8, 0x83ff, 0x0120, 0x6848, 0xa606, 0x0158, 0x0030,
+-      0x683c, 0xa406, 0x1118, 0x6840, 0xa506, 0x0120, 0x2d08, 0x6800,
+-      0x2068, 0x0c70, 0x080c, 0x811f, 0x6a00, 0x604c, 0xad06, 0x1110,
+-      0x624e, 0x0018, 0xa180, 0x0000, 0x2202, 0x82ff, 0x1110, 0x6152,
+-      0x8dff, 0x012e, 0x0005, 0xa01e, 0x0010, 0x2019, 0x0001, 0xa00e,
+-      0x6080, 0x2068, 0x8dff, 0x01e8, 0x83ff, 0x0120, 0x6848, 0xa606,
+-      0x0158, 0x0030, 0x683c, 0xa406, 0x1118, 0x6840, 0xa506, 0x0120,
+-      0x2d08, 0x6800, 0x2068, 0x0c70, 0x6a00, 0x6080, 0xad06, 0x1110,
+-      0x6282, 0x0018, 0xa180, 0x0000, 0x2202, 0x82ff, 0x1110, 0x6186,
+-      0x8dff, 0x0005, 0xa016, 0x080c, 0x51cf, 0x1110, 0x2011, 0x0001,
+-      0x080c, 0x521a, 0x1110, 0xa295, 0x0002, 0x0005, 0x080c, 0x524b,
+-      0x0118, 0x080c, 0x9d09, 0x0010, 0xa085, 0x0001, 0x0005, 0x080c,
+-      0x524b, 0x0118, 0x080c, 0x9c99, 0x0010, 0xa085, 0x0001, 0x0005,
+-      0x080c, 0x524b, 0x0118, 0x080c, 0x9cec, 0x0010, 0xa085, 0x0001,
+-      0x0005, 0x080c, 0x524b, 0x0118, 0x080c, 0x9cb5, 0x0010, 0xa085,
+-      0x0001, 0x0005, 0x080c, 0x524b, 0x0118, 0x080c, 0x9d25, 0x0010,
+-      0xa085, 0x0001, 0x0005, 0x0126, 0x0006, 0x00d6, 0x2091, 0x8000,
+-      0x6080, 0xa06d, 0x01a0, 0x6800, 0x0006, 0x6837, 0x0103, 0x6b4a,
+-      0x6847, 0x0000, 0x080c, 0x9ec6, 0x0006, 0x6000, 0xd0fc, 0x0110,
+-      0x080c, 0xb37d, 0x000e, 0x080c, 0x5409, 0x000e, 0x0c50, 0x6083,
+-      0x0000, 0x6087, 0x0000, 0x00de, 0x000e, 0x012e, 0x0005, 0x60a4,
+-      0xa00d, 0x1118, 0xa085, 0x0001, 0x0005, 0x00e6, 0x2170, 0x7000,
+-      0xa005, 0x1168, 0x20a9, 0x0010, 0xae88, 0x0004, 0x2104, 0xa606,
+-      0x0130, 0x8108, 0x1f04, 0x51de, 0xa085, 0x0001, 0x0008, 0xa006,
+-      0x00ee, 0x0005, 0x00d6, 0x0126, 0x2091, 0x8000, 0x60a4, 0xa06d,
+-      0x1128, 0x080c, 0x15f8, 0x01a0, 0x2d00, 0x60a6, 0x6803, 0x0001,
+-      0x6807, 0x0000, 0xad88, 0x0004, 0x20a9, 0x0010, 0x200b, 0xffff,
+-      0x8108, 0x1f04, 0x51fe, 0xa085, 0x0001, 0x012e, 0x00de, 0x0005,
+-      0xa006, 0x0cd8, 0x00d6, 0x0126, 0x2091, 0x8000, 0x60a4, 0xa06d,
+-      0x0130, 0x60a7, 0x0000, 0x080c, 0x160f, 0xa085, 0x0001, 0x012e,
+-      0x00de, 0x0005, 0x60a8, 0xa00d, 0x1118, 0xa085, 0x0001, 0x0005,
+-      0x00e6, 0x2170, 0x7050, 0xa005, 0x1160, 0x20a9, 0x0010, 0xae88,
+-      0x0018, 0x2104, 0xa606, 0x0128, 0x8108, 0x1f04, 0x5229, 0xa085,
+-      0x0001, 0x00ee, 0x0005, 0x0126, 0x2091, 0x8000, 0x0c19, 0x1188,
+-      0x200b, 0xffff, 0x00d6, 0x60a8, 0x2068, 0x6854, 0xa08a, 0x0002,
+-      0x0218, 0x8001, 0x6856, 0x0020, 0x080c, 0x160f, 0x60ab, 0x0000,
+-      0x00de, 0x012e, 0x0005, 0x609c, 0xd0a4, 0x0005, 0x00f6, 0x080c,
+-      0x5ad0, 0x01b0, 0x71b8, 0x81ff, 0x1198, 0x71d4, 0xd19c, 0x0180,
+-      0x2001, 0x007e, 0xa080, 0xb635, 0x2004, 0xa07d, 0x0148, 0x7804,
+-      0xa084, 0x00ff, 0xa086, 0x0006, 0x1118, 0x7800, 0xc0ed, 0x7802,
+-      0x2079, 0xb552, 0x7804, 0xd0a4, 0x01e8, 0x0156, 0x00c6, 0x20a9,
+-      0x007f, 0x2009, 0x0000, 0x0016, 0x080c, 0x4faa, 0x1168, 0x6004,
+-      0xa084, 0xff00, 0x8007, 0xa096, 0x0004, 0x0118, 0xa086, 0x0006,
+-      0x1118, 0x6000, 0xc0ed, 0x6002, 0x001e, 0x8108, 0x1f04, 0x5273,
+-      0x00ce, 0x015e, 0x080c, 0x530a, 0x0120, 0x2001, 0xb7b5, 0x200c,
+-      0x0038, 0x2079, 0xb552, 0x7804, 0xd0a4, 0x0130, 0x2009, 0x07d0,
+-      0x2011, 0x529e, 0x080c, 0x6a23, 0x00fe, 0x0005, 0x2011, 0x529e,
+-      0x080c, 0x699d, 0x080c, 0x530a, 0x01f0, 0x2001, 0xb6b3, 0x2004,
+-      0xa080, 0x0000, 0x200c, 0xc1ec, 0x2102, 0x2001, 0xb553, 0x2004,
+-      0xd0a4, 0x0130, 0x2009, 0x07d0, 0x2011, 0x529e, 0x080c, 0x6a23,
+-      0x00e6, 0x2071, 0xb500, 0x7073, 0x0000, 0x7077, 0x0000, 0x080c,
+-      0x2ab8, 0x00ee, 0x04b0, 0x0156, 0x00c6, 0x20a9, 0x007f, 0x2009,
+-      0x0000, 0x0016, 0x080c, 0x4faa, 0x1530, 0x6000, 0xd0ec, 0x0518,
+-      0x0046, 0x62a0, 0xa294, 0x00ff, 0x8227, 0xa006, 0x2009, 0x0029,
+-      0x080c, 0xb0dc, 0x6000, 0xc0e5, 0xc0ec, 0x6002, 0x6004, 0xa084,
+-      0x00ff, 0xa085, 0x0700, 0x6006, 0x2019, 0x0029, 0x080c, 0x6df6,
+-      0x0076, 0x2039, 0x0000, 0x080c, 0x6d03, 0x2009, 0x0000, 0x080c,
+-      0xae76, 0x007e, 0x004e, 0x001e, 0x8108, 0x1f04, 0x52c9, 0x00ce,
+-      0x015e, 0x0005, 0x00c6, 0x6018, 0x2060, 0x6000, 0xc0ec, 0x6002,
+-      0x00ce, 0x0005, 0x7818, 0x2004, 0xd0ac, 0x0005, 0x7818, 0x2004,
+-      0xd0bc, 0x0005, 0x00f6, 0x2001, 0xb6b3, 0x2004, 0xa07d, 0x0110,
+-      0x7800, 0xd0ec, 0x00fe, 0x0005, 0x0126, 0x0026, 0x2091, 0x8000,
+-      0x0006, 0x62a0, 0xa290, 0xb635, 0x2204, 0xac06, 0x190c, 0x1515,
+-      0x000e, 0x6200, 0xa005, 0x0110, 0xc2fd, 0x0008, 0xc2fc, 0x6202,
+-      0x002e, 0x012e, 0x0005, 0x2011, 0xb535, 0x2204, 0xd0cc, 0x0138,
+-      0x2001, 0xb7b3, 0x200c, 0x2011, 0x5338, 0x080c, 0x6a23, 0x0005,
+-      0x2011, 0x5338, 0x080c, 0x699d, 0x2011, 0xb535, 0x2204, 0xc0cc,
+-      0x2012, 0x0005, 0x2071, 0xb614, 0x7003, 0x0001, 0x7007, 0x0000,
+-      0x7013, 0x0000, 0x7017, 0x0000, 0x701b, 0x0000, 0x701f, 0x0000,
+-      0x700b, 0x0000, 0x704b, 0x0001, 0x704f, 0x0000, 0x705b, 0x0020,
+-      0x705f, 0x0040, 0x707f, 0x0000, 0x2071, 0xb77d, 0x7003, 0xb614,
+-      0x7007, 0x0000, 0x700b, 0x0000, 0x700f, 0xb75d, 0x7013, 0x0020,
+-      0x7017, 0x0040, 0x7037, 0x0000, 0x0005, 0x0016, 0x00e6, 0x2071,
+-      0xb735, 0xa00e, 0x7186, 0x718a, 0x7097, 0x0001, 0x2001, 0xb553,
+-      0x2004, 0xd0fc, 0x1150, 0x2001, 0xb553, 0x2004, 0xa00e, 0xd09c,
+-      0x0108, 0x8108, 0x7102, 0x0804, 0x53d3, 0x2001, 0xb572, 0x200c,
+-      0xa184, 0x000f, 0x2009, 0xb573, 0x210c, 0x0002, 0x537b, 0x53ae,
+-      0x53b5, 0x53bf, 0x53c4, 0x537b, 0x537b, 0x537b, 0x539e, 0x537b,
+-      0x537b, 0x537b, 0x537b, 0x537b, 0x537b, 0x537b, 0x7003, 0x0004,
+-      0x0136, 0x0146, 0x0156, 0x2099, 0xb576, 0x20a1, 0xb786, 0x20a9,
+-      0x0004, 0x53a3, 0x015e, 0x014e, 0x013e, 0x0428, 0x708f, 0x0005,
+-      0x7007, 0x0122, 0x2001, 0x0002, 0x0030, 0x708f, 0x0002, 0x7007,
+-      0x0121, 0x2001, 0x0003, 0x7002, 0x7097, 0x0001, 0x0088, 0x7007,
+-      0x0122, 0x2001, 0x0002, 0x0020, 0x7007, 0x0121, 0x2001, 0x0003,
+-      0x7002, 0xa006, 0x7096, 0x708e, 0xa184, 0xff00, 0x8007, 0x709a,
+-      0xa184, 0x00ff, 0x7092, 0x00ee, 0x001e, 0x0005, 0x00e6, 0x2071,
+-      0xb614, 0x684c, 0xa005, 0x1130, 0x7028, 0xc085, 0x702a, 0xa085,
+-      0x0001, 0x0428, 0x6a60, 0x7236, 0x6b64, 0x733a, 0x6868, 0x703e,
+-      0x7076, 0x686c, 0x7042, 0x707a, 0x684c, 0x702e, 0x6844, 0x7032,
+-      0x2009, 0x000d, 0x200a, 0x700b, 0x0000, 0x8007, 0x8006, 0x8006,
+-      0xa08c, 0x003f, 0xa084, 0xffc0, 0xa210, 0x2100, 0xa319, 0x726e,
+-      0x7372, 0x7028, 0xc084, 0x702a, 0x7007, 0x0001, 0xa006, 0x00ee,
+-      0x0005, 0x0156, 0x00e6, 0x0026, 0x6838, 0xd0fc, 0x1904, 0x5462,
+-      0x6804, 0xa00d, 0x0188, 0x00d6, 0x2071, 0xb500, 0xa016, 0x702c,
+-      0x2168, 0x6904, 0x206a, 0x8210, 0x2d00, 0x81ff, 0x1dc8, 0x702e,
+-      0x70b4, 0xa200, 0x70b6, 0x00de, 0x2071, 0xb614, 0x701c, 0xa005,
+-      0x1904, 0x5472, 0x20a9, 0x0032, 0x0f04, 0x5470, 0x0e04, 0x542c,
+-      0x2071, 0xb735, 0x7200, 0x82ff, 0x05d8, 0x6934, 0xa186, 0x0103,
+-      0x1904, 0x5480, 0x6948, 0x6844, 0xa105, 0x1540, 0x2009, 0x8020,
+-      0x2200, 0x0002, 0x5470, 0x5447, 0x5498, 0x54a4, 0x5470, 0x2071,
+-      0x0000, 0x20a9, 0x0032, 0x0f04, 0x5470, 0x7018, 0xd084, 0x1dd8,
+-      0x7122, 0x683c, 0x7026, 0x6840, 0x702a, 0x701b, 0x0001, 0x2091,
+-      0x4080, 0x2071, 0xb500, 0x702c, 0x206a, 0x2d00, 0x702e, 0x70b4,
+-      0x8000, 0x70b6, 0x002e, 0x00ee, 0x015e, 0x0005, 0x6844, 0xa086,
+-      0x0100, 0x1130, 0x6868, 0xa005, 0x1118, 0x2009, 0x8020, 0x0880,
+-      0x2071, 0xb614, 0x2d08, 0x206b, 0x0000, 0x7010, 0x8000, 0x7012,
+-      0x7018, 0xa06d, 0x711a, 0x0110, 0x6902, 0x0008, 0x711e, 0x0c10,
+-      0xa18c, 0x00ff, 0xa186, 0x0017, 0x0130, 0xa186, 0x001e, 0x0118,
+-      0xa18e, 0x001f, 0x1d28, 0x684c, 0xd0cc, 0x0d10, 0x6850, 0xa084,
+-      0x00ff, 0xa086, 0x0001, 0x19e0, 0x2009, 0x8021, 0x0804, 0x5440,
+-      0x7084, 0x8008, 0xa092, 0x001e, 0x1a98, 0x7186, 0xae90, 0x0003,
+-      0xa210, 0x683c, 0x2012, 0x0078, 0x7084, 0x8008, 0xa092, 0x000f,
+-      0x1a38, 0x7186, 0xae90, 0x0003, 0x8003, 0xa210, 0x683c, 0x2012,
+-      0x8210, 0x6840, 0x2012, 0x7088, 0xa10a, 0x0a04, 0x5459, 0x718c,
+-      0x7084, 0xa10a, 0x0a04, 0x5459, 0x2071, 0x0000, 0x7018, 0xd084,
+-      0x1904, 0x5459, 0x2071, 0xb735, 0x7000, 0xa086, 0x0002, 0x1150,
+-      0x080c, 0x5723, 0x2071, 0x0000, 0x701b, 0x0001, 0x2091, 0x4080,
+-      0x0804, 0x5459, 0x080c, 0x574d, 0x2071, 0x0000, 0x701b, 0x0001,
+-      0x2091, 0x4080, 0x0804, 0x5459, 0x0006, 0x684c, 0x0006, 0x6837,
+-      0x0103, 0x20a9, 0x001c, 0xad80, 0x0011, 0x20a0, 0x2001, 0x0000,
+-      0x40a4, 0x000e, 0xa084, 0x00ff, 0x684e, 0x000e, 0x684a, 0x6952,
+-      0x0005, 0x2071, 0xb614, 0x7004, 0x0002, 0x54ff, 0x5510, 0x570e,
+-      0x570f, 0x571c, 0x5722, 0x5500, 0x56ff, 0x5695, 0x56eb, 0x0005,
+-      0x0126, 0x2091, 0x8000, 0x0e04, 0x550f, 0x2009, 0x000d, 0x7030,
+-      0x200a, 0x2091, 0x4080, 0x7007, 0x0001, 0x700b, 0x0000, 0x012e,
+-      0x2069, 0xb7f3, 0x683c, 0xa005, 0x03f8, 0x11f0, 0x0126, 0x2091,
+-      0x8000, 0x2069, 0x0000, 0x6934, 0x2001, 0xb620, 0x2004, 0xa10a,
+-      0x0170, 0x0e04, 0x5533, 0x2069, 0x0000, 0x6818, 0xd084, 0x1158,
+-      0x2009, 0x8040, 0x6922, 0x681b, 0x0001, 0x2091, 0x4080, 0x2069,
+-      0xb7f3, 0x683f, 0xffff, 0x012e, 0x2069, 0xb500, 0x6848, 0x6968,
+-      0xa102, 0x2069, 0xb735, 0x688a, 0x6984, 0x701c, 0xa06d, 0x0120,
+-      0x81ff, 0x0904, 0x5589, 0x00a0, 0x81ff, 0x0904, 0x564f, 0x2071,
+-      0xb735, 0x7184, 0x7088, 0xa10a, 0x1258, 0x7190, 0x2071, 0xb7f3,
+-      0x7038, 0xa005, 0x0128, 0x1b04, 0x564f, 0x713a, 0x0804, 0x564f,
+-      0x2071, 0xb735, 0x718c, 0x0126, 0x2091, 0x8000, 0x7084, 0xa10a,
+-      0x0a04, 0x566a, 0x0e04, 0x560b, 0x2071, 0x0000, 0x7018, 0xd084,
+-      0x1904, 0x560b, 0x2001, 0xffff, 0x2071, 0xb7f3, 0x703a, 0x2071,
+-      0xb735, 0x7000, 0xa086, 0x0002, 0x1150, 0x080c, 0x5723, 0x2071,
+-      0x0000, 0x701b, 0x0001, 0x2091, 0x4080, 0x0804, 0x560b, 0x080c,
+-      0x574d, 0x2071, 0x0000, 0x701b, 0x0001, 0x2091, 0x4080, 0x0804,
+-      0x560b, 0x2071, 0xb735, 0x7000, 0xa005, 0x0904, 0x5631, 0x6934,
+-      0xa186, 0x0103, 0x1904, 0x560e, 0x684c, 0xd0bc, 0x1904, 0x5631,
+-      0x6948, 0x6844, 0xa105, 0x1904, 0x5626, 0x2009, 0x8020, 0x2071,
+-      0xb735, 0x7000, 0x0002, 0x5631, 0x55f1, 0x55c9, 0x55db, 0x55a8,
+-      0x0136, 0x0146, 0x0156, 0x2099, 0xb576, 0x20a1, 0xb786, 0x20a9,
+-      0x0004, 0x53a3, 0x015e, 0x014e, 0x013e, 0x2071, 0xb77d, 0xad80,
+-      0x000f, 0x700e, 0x7013, 0x0002, 0x7007, 0x0002, 0x700b, 0x0000,
+-      0x2e10, 0x080c, 0x1643, 0x2071, 0xb614, 0x7007, 0x0009, 0x0804,
+-      0x564f, 0x7084, 0x8008, 0xa092, 0x001e, 0x1a04, 0x564f, 0xae90,
+-      0x0003, 0xa210, 0x683c, 0x2012, 0x7186, 0x2071, 0xb614, 0x080c,
+-      0x57a4, 0x0804, 0x564f, 0x7084, 0x8008, 0xa092, 0x000f, 0x1a04,
+-      0x564f, 0xae90, 0x0003, 0x8003, 0xa210, 0x683c, 0x2012, 0x8210,
+-      0x6840, 0x2012, 0x7186, 0x2071, 0xb614, 0x080c, 0x57a4, 0x0804,
+-      0x564f, 0x0126, 0x2091, 0x8000, 0x0e04, 0x560b, 0x2071, 0x0000,
+-      0x7018, 0xd084, 0x1180, 0x7122, 0x683c, 0x7026, 0x6840, 0x702a,
+-      0x701b, 0x0001, 0x2091, 0x4080, 0x012e, 0x2071, 0xb614, 0x080c,
+-      0x57a4, 0x0804, 0x564f, 0x012e, 0x0804, 0x564f, 0xa18c, 0x00ff,
+-      0xa186, 0x0017, 0x0130, 0xa186, 0x001e, 0x0118, 0xa18e, 0x001f,
+-      0x11c0, 0x684c, 0xd0cc, 0x01a8, 0x6850, 0xa084, 0x00ff, 0xa086,
+-      0x0001, 0x1178, 0x2009, 0x8021, 0x0804, 0x559f, 0x6844, 0xa086,
+-      0x0100, 0x1138, 0x6868, 0xa005, 0x1120, 0x2009, 0x8020, 0x0804,
+-      0x559f, 0x2071, 0xb614, 0x080c, 0x57b6, 0x01c8, 0x2071, 0xb614,
+-      0x700f, 0x0001, 0x6934, 0xa184, 0x00ff, 0xa086, 0x0003, 0x1130,
+-      0x810f, 0xa18c, 0x00ff, 0x8101, 0x0108, 0x710e, 0x7007, 0x0003,
+-      0x080c, 0x57cf, 0x7050, 0xa086, 0x0100, 0x0904, 0x570f, 0x0126,
+-      0x2091, 0x8000, 0x2071, 0xb614, 0x7008, 0xa086, 0x0001, 0x1180,
+-      0x0e04, 0x5668, 0x2009, 0x000d, 0x7030, 0x200a, 0x2091, 0x4080,
+-      0x700b, 0x0000, 0x7004, 0xa086, 0x0006, 0x1110, 0x7007, 0x0001,
+-      0x012e, 0x0005, 0x2071, 0xb614, 0x080c, 0x57b6, 0x0518, 0x2071,
+-      0xb735, 0x7084, 0x700a, 0x20a9, 0x0020, 0x2099, 0xb736, 0x20a1,
+-      0xb75d, 0x53a3, 0x7087, 0x0000, 0x2071, 0xb614, 0x2069, 0xb77d,
+-      0x706c, 0x6826, 0x7070, 0x682a, 0x7074, 0x682e, 0x7078, 0x6832,
+-      0x2d10, 0x080c, 0x1643, 0x7007, 0x0008, 0x2001, 0xffff, 0x2071,
+-      0xb7f3, 0x703a, 0x012e, 0x0804, 0x564f, 0x2069, 0xb77d, 0x6808,
+-      0xa08e, 0x0000, 0x0904, 0x56ea, 0xa08e, 0x0200, 0x0904, 0x56e8,
+-      0xa08e, 0x0100, 0x1904, 0x56ea, 0x0126, 0x2091, 0x8000, 0x0e04,
+-      0x56e6, 0x2069, 0x0000, 0x6818, 0xd084, 0x15c0, 0x702c, 0x7130,
+-      0x8108, 0xa102, 0x0230, 0xa00e, 0x7034, 0x706e, 0x7038, 0x7072,
+-      0x0048, 0x706c, 0xa080, 0x0040, 0x706e, 0x1220, 0x7070, 0xa081,
+-      0x0000, 0x7072, 0x7132, 0x6936, 0x700b, 0x0000, 0x2001, 0xb75a,
+-      0x2004, 0xa005, 0x1190, 0x6934, 0x2069, 0xb735, 0x689c, 0x699e,
+-      0x2069, 0xb7f3, 0xa102, 0x1118, 0x683c, 0xa005, 0x1368, 0x2001,
+-      0xb75b, 0x200c, 0x810d, 0x693e, 0x0038, 0x2009, 0x8040, 0x6922,
+-      0x681b, 0x0001, 0x2091, 0x4080, 0x7007, 0x0001, 0x012e, 0x0010,
+-      0x7007, 0x0005, 0x0005, 0x2001, 0xb77f, 0x2004, 0xa08e, 0x0100,
+-      0x1128, 0x7007, 0x0001, 0x080c, 0x57a4, 0x0005, 0xa08e, 0x0000,
+-      0x0de0, 0xa08e, 0x0200, 0x1dc8, 0x7007, 0x0005, 0x0005, 0x701c,
+-      0xa06d, 0x0158, 0x080c, 0x57b6, 0x0140, 0x7007, 0x0003, 0x080c,
+-      0x57cf, 0x7050, 0xa086, 0x0100, 0x0110, 0x0005, 0x0005, 0x7050,
+-      0xa09e, 0x0100, 0x1118, 0x7007, 0x0004, 0x0030, 0xa086, 0x0200,
+-      0x1110, 0x7007, 0x0005, 0x0005, 0x080c, 0x5772, 0x7006, 0x080c,
+-      0x57a4, 0x0005, 0x0005, 0x00e6, 0x0156, 0x2071, 0xb735, 0x7184,
+-      0x81ff, 0x0500, 0xa006, 0x7086, 0xae80, 0x0003, 0x2071, 0x0000,
+-      0x21a8, 0x2014, 0x7226, 0x8000, 0x0f04, 0x5747, 0x2014, 0x722a,
+-      0x8000, 0x0f04, 0x5747, 0x2014, 0x722e, 0x8000, 0x0f04, 0x5747,
+-      0x2014, 0x723a, 0x8000, 0x0f04, 0x5747, 0x2014, 0x723e, 0xa180,
+-      0x8030, 0x7022, 0x015e, 0x00ee, 0x0005, 0x00e6, 0x0156, 0x2071,
+-      0xb735, 0x7184, 0x81ff, 0x01d8, 0xa006, 0x7086, 0xae80, 0x0003,
+-      0x2071, 0x0000, 0x21a8, 0x2014, 0x7226, 0x8000, 0x2014, 0x722a,
+-      0x8000, 0x0f04, 0x5769, 0x2014, 0x723a, 0x8000, 0x2014, 0x723e,
+-      0x0018, 0x2001, 0x8020, 0x0010, 0x2001, 0x8042, 0x7022, 0x015e,
+-      0x00ee, 0x0005, 0x702c, 0x7130, 0x8108, 0xa102, 0x0230, 0xa00e,
+-      0x7034, 0x706e, 0x7038, 0x7072, 0x0048, 0x706c, 0xa080, 0x0040,
+-      0x706e, 0x1220, 0x7070, 0xa081, 0x0000, 0x7072, 0x7132, 0x700c,
+-      0x8001, 0x700e, 0x1180, 0x0126, 0x2091, 0x8000, 0x0e04, 0x579e,
+-      0x2001, 0x000d, 0x2102, 0x2091, 0x4080, 0x2001, 0x0001, 0x700b,
+-      0x0000, 0x012e, 0x0005, 0x2001, 0x0007, 0x0005, 0x2001, 0x0006,
+-      0x700b, 0x0001, 0x012e, 0x0005, 0x701c, 0xa06d, 0x0170, 0x0126,
+-      0x2091, 0x8000, 0x7010, 0x8001, 0x7012, 0x2d04, 0x701e, 0xa005,
+-      0x1108, 0x701a, 0x012e, 0x080c, 0x160f, 0x0005, 0x2019, 0x000d,
+-      0x2304, 0x230c, 0xa10e, 0x0130, 0x2304, 0x230c, 0xa10e, 0x0110,
+-      0xa006, 0x0060, 0x732c, 0x8319, 0x7130, 0xa102, 0x1118, 0x2300,
+-      0xa005, 0x0020, 0x0210, 0xa302, 0x0008, 0x8002, 0x0005, 0x2d00,
+-      0x7026, 0xa080, 0x000d, 0x7056, 0x7053, 0x0000, 0x0126, 0x2091,
+-      0x8000, 0x2009, 0xb812, 0x2104, 0xc08d, 0x200a, 0x012e, 0x080c,
+-      0x165f, 0x0005, 0x708c, 0xa08a, 0x0029, 0x1220, 0xa082, 0x001d,
+-      0x0033, 0x0010, 0x080c, 0x1515, 0x6027, 0x1e00, 0x0005, 0x58dd,
+-      0x5858, 0x5870, 0x58ad, 0x58ce, 0x5908, 0x591a, 0x5870, 0x58f4,
+-      0x57fc, 0x582a, 0x57fb, 0x0005, 0x00d6, 0x2069, 0x0200, 0x6804,
+-      0xa005, 0x1180, 0x6808, 0xa005, 0x1518, 0x708f, 0x0028, 0x2069,
+-      0xb7c5, 0x2d04, 0x7002, 0x080c, 0x5bd2, 0x6028, 0xa085, 0x0600,
+-      0x602a, 0x00b0, 0x708f, 0x0028, 0x2069, 0xb7c5, 0x2d04, 0x7002,
+-      0x6028, 0xa085, 0x0600, 0x602a, 0x00e6, 0x0036, 0x0046, 0x0056,
+-      0x2071, 0xb823, 0x080c, 0x1dfe, 0x005e, 0x004e, 0x003e, 0x00ee,
+-      0x00de, 0x0005, 0x00d6, 0x2069, 0x0200, 0x6804, 0xa005, 0x1180,
+-      0x6808, 0xa005, 0x1518, 0x708f, 0x0028, 0x2069, 0xb7c5, 0x2d04,
+-      0x7002, 0x080c, 0x5c5f, 0x6028, 0xa085, 0x0600, 0x602a, 0x00b0,
+-      0x708f, 0x0028, 0x2069, 0xb7c5, 0x2d04, 0x7002, 0x6028, 0xa085,
+-      0x0600, 0x602a, 0x00e6, 0x0036, 0x0046, 0x0056, 0x2071, 0xb823,
+-      0x080c, 0x1dfe, 0x005e, 0x004e, 0x003e, 0x00ee, 0x00de, 0x0005,
+-      0x6803, 0x0090, 0x6124, 0xd1e4, 0x1190, 0x080c, 0x5985, 0xd1d4,
+-      0x1160, 0xd1dc, 0x1138, 0xd1cc, 0x0150, 0x708f, 0x0020, 0x080c,
+-      0x5985, 0x0028, 0x708f, 0x001d, 0x0010, 0x708f, 0x001f, 0x0005,
+-      0x6803, 0x0088, 0x6124, 0xd1cc, 0x1590, 0xd1dc, 0x1568, 0xd1e4,
+-      0x1540, 0xa184, 0x1e00, 0x1580, 0x60e3, 0x0001, 0x600c, 0xc0b4,
+-      0x600e, 0x080c, 0x5b00, 0x080c, 0x24b0, 0x0156, 0x6803, 0x0100,
+-      0x20a9, 0x0014, 0x6804, 0xd0dc, 0x1118, 0x1f04, 0x588a, 0x0048,
+-      0x20a9, 0x0014, 0x6803, 0x0080, 0x6804, 0xd0d4, 0x1130, 0x1f04,
+-      0x5894, 0x080c, 0x5b21, 0x015e, 0x0078, 0x015e, 0x708f, 0x0028,
+-      0x0058, 0x708f, 0x001e, 0x0040, 0x708f, 0x001d, 0x0028, 0x708f,
+-      0x0020, 0x0010, 0x708f, 0x001f, 0x0005, 0x60e3, 0x0001, 0x600c,
+-      0xc0b4, 0x600e, 0x080c, 0x5b00, 0x080c, 0x24b0, 0x6803, 0x0080,
+-      0x6124, 0xd1d4, 0x1180, 0xd1dc, 0x1158, 0xd1e4, 0x1130, 0xa184,
+-      0x1e00, 0x1158, 0x708f, 0x0028, 0x0040, 0x708f, 0x001e, 0x0028,
+-      0x708f, 0x001d, 0x0010, 0x708f, 0x001f, 0x0005, 0x6803, 0x00a0,
+-      0x6124, 0xd1dc, 0x1138, 0xd1e4, 0x0138, 0x080c, 0x1e47, 0x708f,
+-      0x001e, 0x0010, 0x708f, 0x001d, 0x0005, 0x080c, 0x59f7, 0x6124,
+-      0xd1dc, 0x1188, 0x080c, 0x5985, 0x0016, 0x080c, 0x1e47, 0x001e,
+-      0xd1d4, 0x1128, 0xd1e4, 0x0138, 0x708f, 0x001e, 0x0020, 0x708f,
+-      0x001f, 0x080c, 0x5985, 0x0005, 0x6803, 0x00a0, 0x6124, 0xd1d4,
+-      0x1160, 0xd1cc, 0x1150, 0xd1dc, 0x1128, 0xd1e4, 0x0140, 0x708f,
+-      0x001e, 0x0028, 0x708f, 0x001d, 0x0010, 0x708f, 0x0021, 0x0005,
+-      0x080c, 0x59f7, 0x6124, 0xd1d4, 0x1150, 0xd1dc, 0x1128, 0xd1e4,
+-      0x0140, 0x708f, 0x001e, 0x0028, 0x708f, 0x001d, 0x0010, 0x708f,
+-      0x001f, 0x0005, 0x6803, 0x0090, 0x6124, 0xd1d4, 0x1178, 0xd1cc,
+-      0x1150, 0xd1dc, 0x1128, 0xd1e4, 0x0158, 0x708f, 0x001e, 0x0040,
+-      0x708f, 0x001d, 0x0028, 0x708f, 0x0020, 0x0010, 0x708f, 0x001f,
+-      0x0005, 0x0016, 0x00c6, 0x00d6, 0x00e6, 0x0126, 0x2061, 0x0100,
+-      0x2069, 0x0140, 0x2071, 0xb500, 0x2091, 0x8000, 0x080c, 0x5ad0,
+-      0x11e8, 0x2001, 0xb50c, 0x200c, 0xd1b4, 0x01c0, 0xc1b4, 0x2102,
+-      0x6027, 0x0200, 0xe000, 0xe000, 0x6024, 0xd0cc, 0x0158, 0x6803,
+-      0x00a0, 0x2001, 0xb79f, 0x2003, 0x0001, 0x2001, 0xb500, 0x2003,
+-      0x0001, 0x0428, 0x6028, 0xc0cd, 0x602a, 0x0408, 0x080c, 0x5aec,
+-      0x0150, 0x080c, 0x5ae2, 0x1138, 0x2001, 0x0001, 0x080c, 0x27c3,
+-      0x080c, 0x5aa7, 0x00a0, 0x080c, 0x59f4, 0x0178, 0x2001, 0x0001,
+-      0x080c, 0x27c3, 0x708c, 0xa086, 0x001e, 0x0120, 0x708c, 0xa086,
+-      0x0022, 0x1118, 0x708f, 0x0025, 0x0010, 0x708f, 0x0021, 0x012e,
+-      0x00ee, 0x00de, 0x00ce, 0x001e, 0x0005, 0x0026, 0x2011, 0x5996,
+-      0x080c, 0x6a5d, 0x002e, 0x0016, 0x0026, 0x2009, 0x0064, 0x2011,
+-      0x5996, 0x080c, 0x6a54, 0x002e, 0x001e, 0x0005, 0x00e6, 0x00f6,
+-      0x0016, 0x080c, 0x7d7b, 0x2071, 0xb500, 0x080c, 0x5931, 0x001e,
+-      0x00fe, 0x00ee, 0x0005, 0x0016, 0x0026, 0x0036, 0x00c6, 0x00d6,
+-      0x00e6, 0x00f6, 0x0126, 0x080c, 0x7d7b, 0x2061, 0x0100, 0x2069,
+-      0x0140, 0x2071, 0xb500, 0x2091, 0x8000, 0x6028, 0xc09c, 0x602a,
+-      0x2011, 0x0003, 0x080c, 0x8076, 0x2011, 0x0002, 0x080c, 0x8080,
+-      0x080c, 0x7f5a, 0x080c, 0x6a11, 0x0036, 0x2019, 0x0000, 0x080c,
+-      0x7fe5, 0x003e, 0x60e3, 0x0000, 0x080c, 0xb423, 0x080c, 0xb43e,
+-      0x2001, 0xb500, 0x2003, 0x0004, 0x6027, 0x0008, 0x080c, 0x12dd,
+-      0x2001, 0x0001, 0x080c, 0x27c3, 0x012e, 0x00fe, 0x00ee, 0x00de,
+-      0x00ce, 0x003e, 0x002e, 0x001e, 0x0005, 0x2001, 0xb500, 0x2004,
+-      0xa086, 0x0004, 0x0140, 0x2001, 0xb79e, 0x2003, 0xaaaa, 0x2001,
+-      0xb79f, 0x2003, 0x0000, 0x0005, 0x6020, 0xd09c, 0x0005, 0x6800,
+-      0xa086, 0x00c0, 0x0160, 0x6803, 0x00c0, 0x0156, 0x20a9, 0x002d,
+-      0x1d04, 0x5a00, 0x2091, 0x6000, 0x1f04, 0x5a00, 0x015e, 0x0005,
+-      0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100, 0x2069, 0x0140, 0x2071,
+-      0xb500, 0x2001, 0xb79f, 0x200c, 0xa186, 0x0000, 0x0158, 0xa186,
+-      0x0001, 0x0158, 0xa186, 0x0002, 0x0158, 0xa186, 0x0003, 0x0158,
+-      0x0804, 0x5a95, 0x708f, 0x0022, 0x0040, 0x708f, 0x0021, 0x0028,
+-      0x708f, 0x0023, 0x0020, 0x708f, 0x0024, 0x6043, 0x0000, 0x60e3,
+-      0x0000, 0x6887, 0x0001, 0x2001, 0x0001, 0x080c, 0x2872, 0x0026,
+-      0x2011, 0x0003, 0x080c, 0x8076, 0x2011, 0x0002, 0x080c, 0x8080,
+-      0x080c, 0x7f5a, 0x0036, 0x2019, 0x0000, 0x080c, 0x7fe5, 0x003e,
+-      0x002e, 0x7000, 0xa08e, 0x0004, 0x0118, 0x602b, 0x0028, 0x0010,
+-      0x602b, 0x0020, 0x0156, 0x0126, 0x2091, 0x8000, 0x20a9, 0x0005,
+-      0x6024, 0xd0ac, 0x0120, 0x012e, 0x015e, 0x0804, 0x5aa3, 0x6800,
+-      0xa084, 0x00a0, 0xc0bd, 0x6802, 0x6904, 0xd1d4, 0x1130, 0x6803,
+-      0x0100, 0x1f04, 0x5a58, 0x080c, 0x5b21, 0x012e, 0x015e, 0x080c,
+-      0x5ae2, 0x01a8, 0x6044, 0xa005, 0x0168, 0x6050, 0x0006, 0xa085,
+-      0x0020, 0x6052, 0x080c, 0x5b21, 0xa006, 0x8001, 0x1df0, 0x000e,
+-      0x6052, 0x0028, 0x6804, 0xd0d4, 0x1110, 0x080c, 0x5b21, 0x0016,
+-      0x0026, 0x2009, 0x00c8, 0x2011, 0x59a3, 0x080c, 0x6a23, 0x002e,
+-      0x001e, 0x2001, 0xb79f, 0x2003, 0x0004, 0x080c, 0x57e2, 0x080c,
+-      0x5ae2, 0x0148, 0x6804, 0xd0d4, 0x1130, 0xd0dc, 0x1100, 0x2001,
+-      0xb79f, 0x2003, 0x0000, 0x00ee, 0x00de, 0x00ce, 0x0005, 0x00c6,
++      0x0007, 0xa084, 0x03f8, 0x8004, 0x20a8, 0x53a6, 0x60c3, 0x0084,
++      0x080c, 0x4b06, 0x0005, 0x0005, 0x0005, 0x0086, 0x0096, 0x2029,
++      0xb553, 0x252c, 0x20a9, 0x0008, 0x2041, 0xbb0e, 0x28a0, 0x2099,
++      0xbb8e, 0x53a3, 0x20a9, 0x0008, 0x2011, 0x0007, 0xd5d4, 0x0110,
++      0x2011, 0x0000, 0x2800, 0xa200, 0x200c, 0xa1a6, 0xffff, 0x1148,
++      0xd5d4, 0x0110, 0x8210, 0x0008, 0x8211, 0x1f04, 0x4a2a, 0x0804,
++      0x4a98, 0x82ff, 0x1160, 0xd5d4, 0x0120, 0xa1a6, 0x3fff, 0x0d90,
++      0x0020, 0xa1a6, 0x3fff, 0x0904, 0x4a98, 0xa18d, 0xc000, 0x20a9,
++      0x0010, 0x2019, 0x0001, 0xd5d4, 0x0110, 0x2019, 0x0010, 0x2120,
++      0xd5d4, 0x0110, 0x8423, 0x0008, 0x8424, 0x1240, 0xd5d4, 0x0110,
++      0x8319, 0x0008, 0x8318, 0x1f04, 0x4a50, 0x04d0, 0x23a8, 0x2021,
++      0x0001, 0x8426, 0x8425, 0x1f04, 0x4a62, 0x2328, 0x8529, 0xa2be,
++      0x0007, 0x0158, 0x0006, 0x2039, 0x0007, 0x2200, 0xa73a, 0x000e,
++      0x27a8, 0xa5a8, 0x0010, 0x1f04, 0x4a71, 0x7552, 0xa5c8, 0x2dc4,
++      0x292d, 0xa5ac, 0x00ff, 0x7576, 0x6532, 0x6536, 0x0016, 0x2508,
++      0x080c, 0x2847, 0x001e, 0x60e7, 0x0000, 0x65ea, 0x2018, 0x2304,
++      0xa405, 0x201a, 0x707b, 0x0001, 0x26a0, 0x2898, 0x20a9, 0x0008,
++      0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000, 0xa085, 0x0001, 0x0028,
++      0xa006, 0x0018, 0xa006, 0x080c, 0x1515, 0x009e, 0x008e, 0x0005,
++      0x2118, 0x2021, 0x0000, 0x2001, 0x0007, 0xa39a, 0x0010, 0x0218,
++      0x8420, 0x8001, 0x0cd0, 0x2118, 0x84ff, 0x0120, 0xa39a, 0x0010,
++      0x8421, 0x1de0, 0x2021, 0x0001, 0x83ff, 0x0118, 0x8423, 0x8319,
++      0x1de8, 0xa238, 0x2704, 0xa42c, 0x11b8, 0xa405, 0x203a, 0x7152,
++      0xa1a0, 0x2dc4, 0x242d, 0xa5ac, 0x00ff, 0x7576, 0x6532, 0x6536,
++      0x0016, 0x2508, 0x080c, 0x2847, 0x001e, 0x60e7, 0x0000, 0x65ea,
++      0x707b, 0x0001, 0xa084, 0x0000, 0x0005, 0x00e6, 0x2071, 0xb500,
++      0x707f, 0x0000, 0x00ee, 0x0005, 0x00e6, 0x00f6, 0x2079, 0x0100,
++      0x2071, 0x0140, 0x080c, 0x7d7a, 0x7004, 0xa084, 0x4000, 0x0120,
++      0x7003, 0x1000, 0x7003, 0x0000, 0x0126, 0x2091, 0x8000, 0x2071,
++      0xb523, 0x2073, 0x0000, 0x7840, 0x0026, 0x0016, 0x2009, 0x00f7,
++      0x080c, 0x4baf, 0x001e, 0xa094, 0x0010, 0xa285, 0x0080, 0x7842,
++      0x7a42, 0x002e, 0x012e, 0x00fe, 0x00ee, 0x0005, 0x0126, 0x2091,
++      0x8000, 0x2011, 0xb7ea, 0x2013, 0x0000, 0x7087, 0x0000, 0x012e,
++      0x20e1, 0x9080, 0x60a3, 0x0056, 0x60a7, 0x9575, 0x080c, 0x7d71,
++      0x2009, 0x07d0, 0x2011, 0x4adc, 0x080c, 0x6a22, 0x0005, 0x0016,
++      0x0026, 0x00c6, 0x0126, 0x2091, 0x8000, 0x2011, 0x0003, 0x080c,
++      0x8075, 0x2011, 0x0002, 0x080c, 0x807f, 0x080c, 0x7f59, 0x0036,
++      0x2019, 0x0000, 0x080c, 0x7fe4, 0x003e, 0x2009, 0x00f7, 0x080c,
++      0x4baf, 0x2061, 0xb7f3, 0x601b, 0x0000, 0x601f, 0x0000, 0x2061,
++      0xb500, 0x6003, 0x0001, 0x2061, 0x0100, 0x6043, 0x0090, 0x6043,
++      0x0010, 0x2009, 0x002d, 0x2011, 0x4b54, 0x080c, 0x6990, 0x012e,
++      0x00ce, 0x002e, 0x001e, 0x0005, 0x00e6, 0x0006, 0x0126, 0x2091,
++      0x8000, 0x2071, 0x0100, 0x080c, 0x7d7a, 0x2071, 0x0140, 0x7004,
++      0xa084, 0x4000, 0x0120, 0x7003, 0x1000, 0x7003, 0x0000, 0x080c,
++      0x5ad7, 0x01a8, 0x080c, 0x5af5, 0x1190, 0x2001, 0xb79e, 0x2003,
++      0xaaaa, 0x0016, 0x080c, 0x28eb, 0x2001, 0xb78f, 0x2102, 0x001e,
++      0x2001, 0xb79f, 0x2003, 0x0000, 0x080c, 0x5a07, 0x0030, 0x2001,
++      0x0001, 0x080c, 0x27c3, 0x080c, 0x4b1f, 0x012e, 0x000e, 0x00ee,
++      0x0005, 0x20a9, 0x0040, 0x20a1, 0xbcc0, 0x2099, 0xbb8e, 0x3304,
++      0x8007, 0x20a2, 0x9398, 0x94a0, 0x1f04, 0x4b8f, 0x0005, 0x20e1,
++      0x9080, 0x20e1, 0x4000, 0x2099, 0xbb00, 0x20a1, 0x020b, 0x20a9,
++      0x000c, 0x53a6, 0x0005, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x2099,
++      0xbb80, 0x20a1, 0x020b, 0x20a9, 0x000c, 0x53a6, 0x0005, 0x00c6,
++      0x0006, 0x2061, 0x0100, 0x810f, 0x2001, 0xb531, 0x2004, 0xa005,
++      0x1138, 0x2001, 0xb515, 0x2004, 0xa084, 0x00ff, 0xa105, 0x0010,
++      0xa185, 0x00f7, 0x604a, 0x000e, 0x00ce, 0x0005, 0x0016, 0x0046,
++      0x2001, 0xb553, 0x2004, 0xd0a4, 0x0158, 0xa006, 0x2020, 0x2009,
++      0x002a, 0x080c, 0xb0e8, 0x2001, 0xb50c, 0x200c, 0xc195, 0x2102,
++      0x2019, 0x002a, 0x2009, 0x0000, 0x080c, 0x2c6f, 0x004e, 0x001e,
++      0x0005, 0x080c, 0x4b1f, 0x708f, 0x0000, 0x7087, 0x0000, 0x0005,
++      0x0006, 0x2001, 0xb50c, 0x2004, 0xd09c, 0x0100, 0x000e, 0x0005,
++      0x0006, 0x0016, 0x0126, 0x2091, 0x8000, 0x2001, 0x0101, 0x200c,
++      0xa18d, 0x0006, 0x2102, 0x012e, 0x001e, 0x000e, 0x0005, 0x0156,
++      0x20a9, 0x00ff, 0x2009, 0xb635, 0xa006, 0x200a, 0x8108, 0x1f04,
++      0x4c05, 0x015e, 0x0005, 0x00d6, 0x0036, 0x0156, 0x0136, 0x0146,
++      0x2069, 0xb552, 0xa006, 0x6002, 0x6007, 0x0707, 0x600a, 0x600e,
++      0x6012, 0xa198, 0x2dc4, 0x231d, 0xa39c, 0x00ff, 0x6316, 0x20a9,
++      0x0004, 0xac98, 0x0006, 0x23a0, 0x40a4, 0x20a9, 0x0004, 0xac98,
++      0x000a, 0x23a0, 0x40a4, 0x603e, 0x6042, 0x604e, 0x6052, 0x6056,
++      0x605a, 0x605e, 0x6062, 0x6066, 0x606a, 0x606e, 0x6072, 0x6076,
++      0x607a, 0x607e, 0x6082, 0x6086, 0x608a, 0x608e, 0x6092, 0x6096,
++      0x609a, 0x609e, 0x60ae, 0x61a2, 0x00d6, 0x60a4, 0xa06d, 0x0110,
++      0x080c, 0x160f, 0x60a7, 0x0000, 0x60a8, 0xa06d, 0x0110, 0x080c,
++      0x160f, 0x60ab, 0x0000, 0x00de, 0xa006, 0x604a, 0x6810, 0x603a,
++      0x680c, 0x6046, 0x6814, 0xa084, 0x00ff, 0x6042, 0x014e, 0x013e,
++      0x015e, 0x003e, 0x00de, 0x0005, 0x0126, 0x2091, 0x8000, 0x6944,
++      0x6e48, 0xa684, 0x3fff, 0xa082, 0x4000, 0x1a04, 0x4d1a, 0xa18c,
++      0xff00, 0x810f, 0xa182, 0x00ff, 0x1a04, 0x4d1f, 0x2001, 0xb50c,
++      0x2004, 0xa084, 0x0003, 0x01c0, 0x2001, 0xb50c, 0x2004, 0xd084,
++      0x1904, 0x4d02, 0xa188, 0xb635, 0x2104, 0xa065, 0x0904, 0x4d02,
++      0x6004, 0xa084, 0x00ff, 0xa08e, 0x0006, 0x1904, 0x4d02, 0x6000,
++      0xd0c4, 0x0904, 0x4d02, 0x0068, 0xa188, 0xb635, 0x2104, 0xa065,
++      0x0904, 0x4ce6, 0x6004, 0xa084, 0x00ff, 0xa08e, 0x0006, 0x1904,
++      0x4ceb, 0x60a4, 0xa00d, 0x0118, 0x080c, 0x51d4, 0x05d0, 0x60a8,
++      0xa00d, 0x0188, 0x080c, 0x521f, 0x1170, 0x694c, 0xd1fc, 0x1118,
++      0x080c, 0x4ede, 0x0448, 0x080c, 0x4e8d, 0x694c, 0xd1ec, 0x1520,
++      0x080c, 0x50c6, 0x0408, 0x694c, 0xa184, 0xa000, 0x0178, 0xd1ec,
++      0x0140, 0xd1fc, 0x0118, 0x080c, 0x50d5, 0x0028, 0x080c, 0x50d5,
++      0x0028, 0xd1fc, 0x0118, 0x080c, 0x4e8d, 0x0070, 0x6050, 0xa00d,
++      0x0130, 0x2d00, 0x200a, 0x6803, 0x0000, 0x6052, 0x0028, 0x2d00,
++      0x6052, 0x604e, 0x6803, 0x0000, 0x080c, 0x6caa, 0xa006, 0x012e,
++      0x0005, 0x2001, 0x0005, 0x2009, 0x0000, 0x04e8, 0x2001, 0x0028,
++      0x2009, 0x0000, 0x04c0, 0xa082, 0x0006, 0x12a0, 0x2001, 0xb535,
++      0x2004, 0xd0ac, 0x1160, 0x60a0, 0xd0bc, 0x1148, 0x6100, 0xd1fc,
++      0x0904, 0x4ca1, 0x2001, 0x0029, 0x2009, 0x1000, 0x0420, 0x2001,
++      0x0028, 0x00a8, 0x2009, 0xb50c, 0x210c, 0xd18c, 0x0118, 0x2001,
++      0x0004, 0x0068, 0xd184, 0x0118, 0x2001, 0x0004, 0x0040, 0x2001,
++      0x0029, 0x6100, 0xd1fc, 0x0118, 0x2009, 0x1000, 0x0060, 0x2009,
++      0x0000, 0x0048, 0x2001, 0x0029, 0x2009, 0x0000, 0x0020, 0x2001,
++      0x0029, 0x2009, 0x0000, 0xa005, 0x012e, 0x0005, 0x00e6, 0x0126,
++      0x2091, 0x8000, 0x6844, 0x8007, 0xa084, 0x00ff, 0x2008, 0xa182,
++      0x00ff, 0x1a04, 0x4d79, 0xa188, 0xb635, 0x2104, 0xa065, 0x01c0,
++      0x6004, 0xa084, 0x00ff, 0xa08e, 0x0006, 0x11a8, 0x2c70, 0x080c,
++      0x85c7, 0x05e8, 0x2e00, 0x601a, 0x2d00, 0x6012, 0x600b, 0xffff,
++      0x601f, 0x000a, 0x2009, 0x0003, 0x080c, 0x864c, 0xa006, 0x0460,
++      0x2001, 0x0028, 0x0440, 0xa082, 0x0006, 0x1298, 0x2001, 0xb535,
++      0x2004, 0xd0ac, 0x1158, 0x60a0, 0xd0bc, 0x1140, 0x6100, 0xd1fc,
++      0x09e8, 0x2001, 0x0029, 0x2009, 0x1000, 0x00a8, 0x2001, 0x0028,
++      0x0090, 0x2009, 0xb50c, 0x210c, 0xd18c, 0x0118, 0x2001, 0x0004,
++      0x0050, 0xd184, 0x0118, 0x2001, 0x0004, 0x0028, 0x2001, 0x0029,
++      0x0010, 0x2001, 0x0029, 0xa005, 0x012e, 0x00ee, 0x0005, 0x2001,
++      0x002c, 0x0cc8, 0x00f6, 0x00e6, 0x0126, 0x2091, 0x8000, 0x2011,
++      0x0000, 0x2079, 0xb500, 0x6944, 0xa18c, 0xff00, 0x810f, 0xa182,
++      0x00ff, 0x1a04, 0x4e44, 0x080c, 0x4fa9, 0x11a0, 0x6004, 0xa084,
++      0x00ff, 0xa082, 0x0006, 0x1270, 0x6864, 0xa0c6, 0x006f, 0x0150,
++      0x2001, 0xb535, 0x2004, 0xd0ac, 0x1904, 0x4e2d, 0x60a0, 0xd0bc,
++      0x1904, 0x4e2d, 0x6864, 0xa0c6, 0x006f, 0x0118, 0x2008, 0x0804,
++      0x4df6, 0x6968, 0x2140, 0xa18c, 0xff00, 0x810f, 0x78d4, 0xd0ac,
++      0x1118, 0xa182, 0x0080, 0x06d0, 0xa182, 0x00ff, 0x16b8, 0x6a70,
++      0x6b6c, 0x7870, 0xa306, 0x1160, 0x7874, 0xa24e, 0x1118, 0x2208,
++      0x2310, 0x0460, 0xa9cc, 0xff00, 0x1118, 0x2208, 0x2310, 0x0430,
++      0x080c, 0x3dc5, 0x2c70, 0x0550, 0x2009, 0x0000, 0x2011, 0x0000,
++      0xa0c6, 0x4000, 0x1160, 0x0006, 0x2e60, 0x080c, 0x524a, 0x1108,
++      0xc185, 0x7000, 0xd0bc, 0x0108, 0xc18d, 0x000e, 0x0088, 0xa0c6,
++      0x4007, 0x1110, 0x2408, 0x0060, 0xa0c6, 0x4008, 0x1118, 0x2708,
++      0x2610, 0x0030, 0xa0c6, 0x4009, 0x1108, 0x0010, 0x2001, 0x4006,
++      0x6866, 0x696a, 0x6a6e, 0x2001, 0x0030, 0x0450, 0x080c, 0x85c7,
++      0x1138, 0x2001, 0x4005, 0x2009, 0x0003, 0x2011, 0x0000, 0x0c80,
++      0x2e00, 0x601a, 0x080c, 0xa027, 0x2d00, 0x6012, 0x601f, 0x0001,
++      0x6838, 0xd88c, 0x0108, 0xc0f5, 0x683a, 0x0126, 0x2091, 0x8000,
++      0x080c, 0x2c9c, 0x012e, 0x2001, 0x0000, 0x080c, 0x4eeb, 0x2001,
++      0x0002, 0x080c, 0x4efd, 0x2009, 0x0002, 0x080c, 0x864c, 0xa006,
++      0xa005, 0x012e, 0x00ee, 0x00fe, 0x0005, 0x2001, 0x0028, 0x2009,
++      0x0000, 0x0cb0, 0x2009, 0xb50c, 0x210c, 0xd18c, 0x0118, 0x2001,
++      0x0004, 0x0038, 0xd184, 0x0118, 0x2001, 0x0004, 0x0010, 0x2001,
++      0x0029, 0x2009, 0x0000, 0x0c20, 0x2001, 0x0029, 0x2009, 0x0000,
++      0x08f8, 0x6944, 0x6e48, 0xa684, 0x3fff, 0xa082, 0x4000, 0x16b8,
++      0xa18c, 0xff00, 0x810f, 0xa182, 0x00ff, 0x12e0, 0xa188, 0xb635,
++      0x2104, 0xa065, 0x01b8, 0x6004, 0xa084, 0x00ff, 0xa08e, 0x0006,
++      0x11b0, 0x684c, 0xd0ec, 0x0120, 0x080c, 0x50d5, 0x0431, 0x0030,
++      0x0421, 0x684c, 0xd0fc, 0x0110, 0x080c, 0x50c6, 0x080c, 0x5113,
++      0xa006, 0x00c8, 0x2001, 0x0028, 0x2009, 0x0000, 0x00a0, 0xa082,
++      0x0006, 0x1240, 0x6100, 0xd1fc, 0x0d20, 0x2001, 0x0029, 0x2009,
++      0x1000, 0x0048, 0x2001, 0x0029, 0x2009, 0x0000, 0x0020, 0x2001,
++      0x0029, 0x2009, 0x0000, 0xa005, 0x0005, 0x0126, 0x2091, 0x8000,
++      0x6050, 0xa00d, 0x0138, 0x2d00, 0x200a, 0x6803, 0x0000, 0x6052,
++      0x012e, 0x0005, 0x2d00, 0x6052, 0x604e, 0x6803, 0x0000, 0x0cc0,
++      0x0126, 0x2091, 0x8000, 0x604c, 0xa005, 0x0170, 0x00e6, 0x2071,
++      0xb7e0, 0x7004, 0xa086, 0x0002, 0x0168, 0x00ee, 0x604c, 0x6802,
++      0x2d00, 0x604e, 0x012e, 0x0005, 0x2d00, 0x6052, 0x604e, 0x6803,
++      0x0000, 0x0cc0, 0x701c, 0xac06, 0x1d80, 0x604c, 0x2070, 0x7000,
++      0x6802, 0x2d00, 0x7002, 0x00ee, 0x012e, 0x0005, 0x0126, 0x2091,
++      0x8000, 0x604c, 0xa06d, 0x0130, 0x6800, 0xa005, 0x1108, 0x6052,
++      0x604e, 0xad05, 0x012e, 0x0005, 0x604c, 0xa06d, 0x0130, 0x6800,
++      0xa005, 0x1108, 0x6052, 0x604e, 0xad05, 0x0005, 0x6803, 0x0000,
++      0x6084, 0xa00d, 0x0120, 0x2d00, 0x200a, 0x6086, 0x0005, 0x2d00,
++      0x6086, 0x6082, 0x0cd8, 0x0126, 0x00c6, 0x0026, 0x2091, 0x8000,
++      0x6218, 0x2260, 0x6200, 0xa005, 0x0110, 0xc285, 0x0008, 0xc284,
++      0x6202, 0x002e, 0x00ce, 0x012e, 0x0005, 0x0126, 0x00c6, 0x2091,
++      0x8000, 0x6218, 0x2260, 0x6204, 0x0006, 0xa086, 0x0006, 0x1180,
++      0x609c, 0xd0ac, 0x0168, 0x2001, 0xb553, 0x2004, 0xd0a4, 0x0140,
++      0xa284, 0xff00, 0x8007, 0xa086, 0x0007, 0x1110, 0x2011, 0x0600,
++      0x000e, 0xa294, 0xff00, 0xa215, 0x6206, 0x0006, 0xa086, 0x0006,
++      0x1128, 0x6290, 0x82ff, 0x1110, 0x080c, 0x1515, 0x000e, 0x00ce,
++      0x012e, 0x0005, 0x0126, 0x00c6, 0x2091, 0x8000, 0x6218, 0x2260,
++      0x6204, 0x0006, 0xa086, 0x0006, 0x1178, 0x609c, 0xd0a4, 0x0160,
++      0x2001, 0xb553, 0x2004, 0xd0ac, 0x1138, 0xa284, 0x00ff, 0xa086,
++      0x0007, 0x1110, 0x2011, 0x0006, 0x000e, 0xa294, 0x00ff, 0x8007,
++      0xa215, 0x6206, 0x00ce, 0x012e, 0x0005, 0x0026, 0xa182, 0x00ff,
++      0x0218, 0xa085, 0x0001, 0x00b0, 0xa190, 0xb635, 0x2204, 0xa065,
++      0x1180, 0x0016, 0x00d6, 0x080c, 0x15df, 0x2d60, 0x00de, 0x001e,
++      0x0d80, 0x2c00, 0x2012, 0x60a7, 0x0000, 0x60ab, 0x0000, 0x080c,
++      0x4c0b, 0xa006, 0x002e, 0x0005, 0x0126, 0x2091, 0x8000, 0x0026,
++      0xa182, 0x00ff, 0x0218, 0xa085, 0x0001, 0x0480, 0x00d6, 0xa190,
++      0xb635, 0x2204, 0xa06d, 0x0540, 0x2013, 0x0000, 0x00d6, 0x00c6,
++      0x2d60, 0x60a4, 0xa06d, 0x0110, 0x080c, 0x160f, 0x60a8, 0xa06d,
++      0x0110, 0x080c, 0x160f, 0x00ce, 0x00de, 0x00d6, 0x00c6, 0x68ac,
++      0x2060, 0x8cff, 0x0168, 0x600c, 0x0006, 0x6010, 0x2068, 0x080c,
++      0x9c5a, 0x0110, 0x080c, 0x161f, 0x080c, 0x861d, 0x00ce, 0x0c88,
++      0x00ce, 0x00de, 0x080c, 0x160f, 0x00de, 0xa006, 0x002e, 0x012e,
++      0x0005, 0x0016, 0xa182, 0x00ff, 0x0218, 0xa085, 0x0001, 0x0030,
++      0xa188, 0xb635, 0x2104, 0xa065, 0x0dc0, 0xa006, 0x001e, 0x0005,
++      0x00d6, 0x0156, 0x0136, 0x0146, 0x600b, 0x0000, 0x600f, 0x0000,
++      0x6000, 0xc08c, 0x6002, 0x080c, 0x5acf, 0x1558, 0x60a0, 0xa086,
++      0x007e, 0x2069, 0xbb90, 0x0130, 0x2001, 0xb535, 0x2004, 0xd0ac,
++      0x1500, 0x0098, 0x2d04, 0xd0e4, 0x01e0, 0x00d6, 0x2069, 0xbb8e,
++      0x00c6, 0x2061, 0xb7b2, 0x6810, 0x2062, 0x6814, 0x6006, 0x6818,
++      0x600a, 0x681c, 0x600e, 0x00ce, 0x00de, 0x8d69, 0x2d04, 0x2069,
++      0x0140, 0xa005, 0x1110, 0x2001, 0x0001, 0x6886, 0x2069, 0xb500,
++      0x68a6, 0x2069, 0xbb8e, 0x6808, 0x605e, 0x6810, 0x6062, 0x6138,
++      0xa10a, 0x0208, 0x603a, 0x6814, 0x6066, 0x2099, 0xbb96, 0xac88,
++      0x000a, 0x21a0, 0x20a9, 0x0004, 0x53a3, 0x2099, 0xbb9a, 0xac88,
++      0x0006, 0x21a0, 0x20a9, 0x0004, 0x53a3, 0x2069, 0xbbae, 0x6808,
++      0x606a, 0x690c, 0x616e, 0x6810, 0x6072, 0x6818, 0x6076, 0x60a0,
++      0xa086, 0x007e, 0x1120, 0x2069, 0xbb8e, 0x690c, 0x616e, 0xa182,
++      0x0211, 0x1218, 0x2009, 0x0008, 0x0400, 0xa182, 0x0259, 0x1218,
++      0x2009, 0x0007, 0x00d0, 0xa182, 0x02c1, 0x1218, 0x2009, 0x0006,
++      0x00a0, 0xa182, 0x0349, 0x1218, 0x2009, 0x0005, 0x0070, 0xa182,
++      0x0421, 0x1218, 0x2009, 0x0004, 0x0040, 0xa182, 0x0581, 0x1218,
++      0x2009, 0x0003, 0x0010, 0x2009, 0x0002, 0x6192, 0x014e, 0x013e,
++      0x015e, 0x00de, 0x0005, 0x0016, 0x0026, 0x00e6, 0x2071, 0xbb8d,
++      0x2e04, 0x6896, 0x2071, 0xbb8e, 0x7004, 0x689a, 0x701c, 0x689e,
++      0x6a00, 0x2009, 0xb572, 0x210c, 0xd0bc, 0x0120, 0xd1ec, 0x0110,
++      0xc2ad, 0x0008, 0xc2ac, 0xd0c4, 0x0120, 0xd1e4, 0x0110, 0xc2bd,
++      0x0008, 0xc2bc, 0x6a02, 0x00ee, 0x002e, 0x001e, 0x0005, 0x00d6,
++      0x0126, 0x2091, 0x8000, 0x60a4, 0xa06d, 0x01c0, 0x6900, 0x81ff,
++      0x1540, 0x6a04, 0xa282, 0x0010, 0x1648, 0xad88, 0x0004, 0x20a9,
++      0x0010, 0x2104, 0xa086, 0xffff, 0x0128, 0x8108, 0x1f04, 0x5081,
++      0x080c, 0x1515, 0x260a, 0x8210, 0x6a06, 0x0098, 0x080c, 0x15f8,
++      0x01a8, 0x2d00, 0x60a6, 0x6803, 0x0000, 0xad88, 0x0004, 0x20a9,
++      0x0010, 0x200b, 0xffff, 0x8108, 0x1f04, 0x5099, 0x6807, 0x0001,
++      0x6e12, 0xa085, 0x0001, 0x012e, 0x00de, 0x0005, 0xa006, 0x0cd8,
++      0x0126, 0x2091, 0x8000, 0x00d6, 0x60a4, 0xa00d, 0x01a0, 0x2168,
++      0x6800, 0xa005, 0x1160, 0x080c, 0x51d4, 0x1168, 0x200b, 0xffff,
++      0x6804, 0xa08a, 0x0002, 0x0218, 0x8001, 0x6806, 0x0020, 0x080c,
++      0x160f, 0x60a7, 0x0000, 0x00de, 0x012e, 0x0005, 0x0126, 0x2091,
++      0x8000, 0x080c, 0x5232, 0x0010, 0x080c, 0x4e8d, 0x080c, 0x514c,
++      0x1dd8, 0x080c, 0x5113, 0x012e, 0x0005, 0x00d6, 0x0126, 0x2091,
++      0x8000, 0x60a8, 0xa06d, 0x01c0, 0x6950, 0x81ff, 0x1540, 0x6a54,
++      0xa282, 0x0010, 0x1670, 0xad88, 0x0018, 0x20a9, 0x0010, 0x2104,
++      0xa086, 0xffff, 0x0128, 0x8108, 0x1f04, 0x50e7, 0x080c, 0x1515,
++      0x260a, 0x8210, 0x6a56, 0x0098, 0x080c, 0x15f8, 0x01d0, 0x2d00,
++      0x60aa, 0x6853, 0x0000, 0xad88, 0x0018, 0x20a9, 0x0010, 0x200b,
++      0xffff, 0x8108, 0x1f04, 0x50ff, 0x6857, 0x0001, 0x6e62, 0x0010,
++      0x080c, 0x4ede, 0x0089, 0x1de0, 0xa085, 0x0001, 0x012e, 0x00de,
++      0x0005, 0xa006, 0x0cd8, 0x0126, 0x2091, 0x8000, 0x080c, 0x6caa,
++      0x012e, 0x0005, 0xa01e, 0x0010, 0x2019, 0x0001, 0xa00e, 0x0126,
++      0x2091, 0x8000, 0x604c, 0x2068, 0x6000, 0xd0dc, 0x1170, 0x8dff,
++      0x01f8, 0x83ff, 0x0120, 0x6848, 0xa606, 0x0158, 0x0030, 0x683c,
++      0xa406, 0x1118, 0x6840, 0xa506, 0x0120, 0x2d08, 0x6800, 0x2068,
++      0x0c70, 0x080c, 0x811e, 0x6a00, 0x604c, 0xad06, 0x1110, 0x624e,
++      0x0018, 0xa180, 0x0000, 0x2202, 0x82ff, 0x1110, 0x6152, 0x8dff,
++      0x012e, 0x0005, 0xa01e, 0x0010, 0x2019, 0x0001, 0xa00e, 0x6080,
++      0x2068, 0x8dff, 0x01e8, 0x83ff, 0x0120, 0x6848, 0xa606, 0x0158,
++      0x0030, 0x683c, 0xa406, 0x1118, 0x6840, 0xa506, 0x0120, 0x2d08,
++      0x6800, 0x2068, 0x0c70, 0x6a00, 0x6080, 0xad06, 0x1110, 0x6282,
++      0x0018, 0xa180, 0x0000, 0x2202, 0x82ff, 0x1110, 0x6186, 0x8dff,
++      0x0005, 0xa016, 0x080c, 0x51ce, 0x1110, 0x2011, 0x0001, 0x080c,
++      0x5219, 0x1110, 0xa295, 0x0002, 0x0005, 0x080c, 0x524a, 0x0118,
++      0x080c, 0x9d0f, 0x0010, 0xa085, 0x0001, 0x0005, 0x080c, 0x524a,
++      0x0118, 0x080c, 0x9c9f, 0x0010, 0xa085, 0x0001, 0x0005, 0x080c,
++      0x524a, 0x0118, 0x080c, 0x9cf2, 0x0010, 0xa085, 0x0001, 0x0005,
++      0x080c, 0x524a, 0x0118, 0x080c, 0x9cbb, 0x0010, 0xa085, 0x0001,
++      0x0005, 0x080c, 0x524a, 0x0118, 0x080c, 0x9d2b, 0x0010, 0xa085,
++      0x0001, 0x0005, 0x0126, 0x0006, 0x00d6, 0x2091, 0x8000, 0x6080,
++      0xa06d, 0x01a0, 0x6800, 0x0006, 0x6837, 0x0103, 0x6b4a, 0x6847,
++      0x0000, 0x080c, 0x9ecc, 0x0006, 0x6000, 0xd0fc, 0x0110, 0x080c,
++      0xb389, 0x000e, 0x080c, 0x5408, 0x000e, 0x0c50, 0x6083, 0x0000,
++      0x6087, 0x0000, 0x00de, 0x000e, 0x012e, 0x0005, 0x60a4, 0xa00d,
++      0x1118, 0xa085, 0x0001, 0x0005, 0x00e6, 0x2170, 0x7000, 0xa005,
++      0x1168, 0x20a9, 0x0010, 0xae88, 0x0004, 0x2104, 0xa606, 0x0130,
++      0x8108, 0x1f04, 0x51dd, 0xa085, 0x0001, 0x0008, 0xa006, 0x00ee,
++      0x0005, 0x00d6, 0x0126, 0x2091, 0x8000, 0x60a4, 0xa06d, 0x1128,
++      0x080c, 0x15f8, 0x01a0, 0x2d00, 0x60a6, 0x6803, 0x0001, 0x6807,
++      0x0000, 0xad88, 0x0004, 0x20a9, 0x0010, 0x200b, 0xffff, 0x8108,
++      0x1f04, 0x51fd, 0xa085, 0x0001, 0x012e, 0x00de, 0x0005, 0xa006,
++      0x0cd8, 0x00d6, 0x0126, 0x2091, 0x8000, 0x60a4, 0xa06d, 0x0130,
++      0x60a7, 0x0000, 0x080c, 0x160f, 0xa085, 0x0001, 0x012e, 0x00de,
++      0x0005, 0x60a8, 0xa00d, 0x1118, 0xa085, 0x0001, 0x0005, 0x00e6,
++      0x2170, 0x7050, 0xa005, 0x1160, 0x20a9, 0x0010, 0xae88, 0x0018,
++      0x2104, 0xa606, 0x0128, 0x8108, 0x1f04, 0x5228, 0xa085, 0x0001,
++      0x00ee, 0x0005, 0x0126, 0x2091, 0x8000, 0x0c19, 0x1188, 0x200b,
++      0xffff, 0x00d6, 0x60a8, 0x2068, 0x6854, 0xa08a, 0x0002, 0x0218,
++      0x8001, 0x6856, 0x0020, 0x080c, 0x160f, 0x60ab, 0x0000, 0x00de,
++      0x012e, 0x0005, 0x609c, 0xd0a4, 0x0005, 0x00f6, 0x080c, 0x5acf,
++      0x01b0, 0x71b8, 0x81ff, 0x1198, 0x71d4, 0xd19c, 0x0180, 0x2001,
++      0x007e, 0xa080, 0xb635, 0x2004, 0xa07d, 0x0148, 0x7804, 0xa084,
++      0x00ff, 0xa086, 0x0006, 0x1118, 0x7800, 0xc0ed, 0x7802, 0x2079,
++      0xb552, 0x7804, 0xd0a4, 0x01e8, 0x0156, 0x00c6, 0x20a9, 0x007f,
++      0x2009, 0x0000, 0x0016, 0x080c, 0x4fa9, 0x1168, 0x6004, 0xa084,
++      0xff00, 0x8007, 0xa096, 0x0004, 0x0118, 0xa086, 0x0006, 0x1118,
++      0x6000, 0xc0ed, 0x6002, 0x001e, 0x8108, 0x1f04, 0x5272, 0x00ce,
++      0x015e, 0x080c, 0x5309, 0x0120, 0x2001, 0xb7b5, 0x200c, 0x0038,
++      0x2079, 0xb552, 0x7804, 0xd0a4, 0x0130, 0x2009, 0x07d0, 0x2011,
++      0x529d, 0x080c, 0x6a22, 0x00fe, 0x0005, 0x2011, 0x529d, 0x080c,
++      0x699c, 0x080c, 0x5309, 0x01f0, 0x2001, 0xb6b3, 0x2004, 0xa080,
++      0x0000, 0x200c, 0xc1ec, 0x2102, 0x2001, 0xb553, 0x2004, 0xd0a4,
++      0x0130, 0x2009, 0x07d0, 0x2011, 0x529d, 0x080c, 0x6a22, 0x00e6,
++      0x2071, 0xb500, 0x7073, 0x0000, 0x7077, 0x0000, 0x080c, 0x2ab8,
++      0x00ee, 0x04b0, 0x0156, 0x00c6, 0x20a9, 0x007f, 0x2009, 0x0000,
++      0x0016, 0x080c, 0x4fa9, 0x1530, 0x6000, 0xd0ec, 0x0518, 0x0046,
++      0x62a0, 0xa294, 0x00ff, 0x8227, 0xa006, 0x2009, 0x0029, 0x080c,
++      0xb0e8, 0x6000, 0xc0e5, 0xc0ec, 0x6002, 0x6004, 0xa084, 0x00ff,
++      0xa085, 0x0700, 0x6006, 0x2019, 0x0029, 0x080c, 0x6df5, 0x0076,
++      0x2039, 0x0000, 0x080c, 0x6d02, 0x2009, 0x0000, 0x080c, 0xae82,
++      0x007e, 0x004e, 0x001e, 0x8108, 0x1f04, 0x52c8, 0x00ce, 0x015e,
++      0x0005, 0x00c6, 0x6018, 0x2060, 0x6000, 0xc0ec, 0x6002, 0x00ce,
++      0x0005, 0x7818, 0x2004, 0xd0ac, 0x0005, 0x7818, 0x2004, 0xd0bc,
++      0x0005, 0x00f6, 0x2001, 0xb6b3, 0x2004, 0xa07d, 0x0110, 0x7800,
++      0xd0ec, 0x00fe, 0x0005, 0x0126, 0x0026, 0x2091, 0x8000, 0x0006,
++      0x62a0, 0xa290, 0xb635, 0x2204, 0xac06, 0x190c, 0x1515, 0x000e,
++      0x6200, 0xa005, 0x0110, 0xc2fd, 0x0008, 0xc2fc, 0x6202, 0x002e,
++      0x012e, 0x0005, 0x2011, 0xb535, 0x2204, 0xd0cc, 0x0138, 0x2001,
++      0xb7b3, 0x200c, 0x2011, 0x5337, 0x080c, 0x6a22, 0x0005, 0x2011,
++      0x5337, 0x080c, 0x699c, 0x2011, 0xb535, 0x2204, 0xc0cc, 0x2012,
++      0x0005, 0x2071, 0xb614, 0x7003, 0x0001, 0x7007, 0x0000, 0x7013,
++      0x0000, 0x7017, 0x0000, 0x701b, 0x0000, 0x701f, 0x0000, 0x700b,
++      0x0000, 0x704b, 0x0001, 0x704f, 0x0000, 0x705b, 0x0020, 0x705f,
++      0x0040, 0x707f, 0x0000, 0x2071, 0xb77d, 0x7003, 0xb614, 0x7007,
++      0x0000, 0x700b, 0x0000, 0x700f, 0xb75d, 0x7013, 0x0020, 0x7017,
++      0x0040, 0x7037, 0x0000, 0x0005, 0x0016, 0x00e6, 0x2071, 0xb735,
++      0xa00e, 0x7186, 0x718a, 0x7097, 0x0001, 0x2001, 0xb553, 0x2004,
++      0xd0fc, 0x1150, 0x2001, 0xb553, 0x2004, 0xa00e, 0xd09c, 0x0108,
++      0x8108, 0x7102, 0x0804, 0x53d2, 0x2001, 0xb572, 0x200c, 0xa184,
++      0x000f, 0x2009, 0xb573, 0x210c, 0x0002, 0x537a, 0x53ad, 0x53b4,
++      0x53be, 0x53c3, 0x537a, 0x537a, 0x537a, 0x539d, 0x537a, 0x537a,
++      0x537a, 0x537a, 0x537a, 0x537a, 0x537a, 0x7003, 0x0004, 0x0136,
++      0x0146, 0x0156, 0x2099, 0xb576, 0x20a1, 0xb786, 0x20a9, 0x0004,
++      0x53a3, 0x015e, 0x014e, 0x013e, 0x0428, 0x708f, 0x0005, 0x7007,
++      0x0122, 0x2001, 0x0002, 0x0030, 0x708f, 0x0002, 0x7007, 0x0121,
++      0x2001, 0x0003, 0x7002, 0x7097, 0x0001, 0x0088, 0x7007, 0x0122,
++      0x2001, 0x0002, 0x0020, 0x7007, 0x0121, 0x2001, 0x0003, 0x7002,
++      0xa006, 0x7096, 0x708e, 0xa184, 0xff00, 0x8007, 0x709a, 0xa184,
++      0x00ff, 0x7092, 0x00ee, 0x001e, 0x0005, 0x00e6, 0x2071, 0xb614,
++      0x684c, 0xa005, 0x1130, 0x7028, 0xc085, 0x702a, 0xa085, 0x0001,
++      0x0428, 0x6a60, 0x7236, 0x6b64, 0x733a, 0x6868, 0x703e, 0x7076,
++      0x686c, 0x7042, 0x707a, 0x684c, 0x702e, 0x6844, 0x7032, 0x2009,
++      0x000d, 0x200a, 0x700b, 0x0000, 0x8007, 0x8006, 0x8006, 0xa08c,
++      0x003f, 0xa084, 0xffc0, 0xa210, 0x2100, 0xa319, 0x726e, 0x7372,
++      0x7028, 0xc084, 0x702a, 0x7007, 0x0001, 0xa006, 0x00ee, 0x0005,
++      0x0156, 0x00e6, 0x0026, 0x6838, 0xd0fc, 0x1904, 0x5461, 0x6804,
++      0xa00d, 0x0188, 0x00d6, 0x2071, 0xb500, 0xa016, 0x702c, 0x2168,
++      0x6904, 0x206a, 0x8210, 0x2d00, 0x81ff, 0x1dc8, 0x702e, 0x70b4,
++      0xa200, 0x70b6, 0x00de, 0x2071, 0xb614, 0x701c, 0xa005, 0x1904,
++      0x5471, 0x20a9, 0x0032, 0x0f04, 0x546f, 0x0e04, 0x542b, 0x2071,
++      0xb735, 0x7200, 0x82ff, 0x05d8, 0x6934, 0xa186, 0x0103, 0x1904,
++      0x547f, 0x6948, 0x6844, 0xa105, 0x1540, 0x2009, 0x8020, 0x2200,
++      0x0002, 0x546f, 0x5446, 0x5497, 0x54a3, 0x546f, 0x2071, 0x0000,
++      0x20a9, 0x0032, 0x0f04, 0x546f, 0x7018, 0xd084, 0x1dd8, 0x7122,
++      0x683c, 0x7026, 0x6840, 0x702a, 0x701b, 0x0001, 0x2091, 0x4080,
++      0x2071, 0xb500, 0x702c, 0x206a, 0x2d00, 0x702e, 0x70b4, 0x8000,
++      0x70b6, 0x002e, 0x00ee, 0x015e, 0x0005, 0x6844, 0xa086, 0x0100,
++      0x1130, 0x6868, 0xa005, 0x1118, 0x2009, 0x8020, 0x0880, 0x2071,
++      0xb614, 0x2d08, 0x206b, 0x0000, 0x7010, 0x8000, 0x7012, 0x7018,
++      0xa06d, 0x711a, 0x0110, 0x6902, 0x0008, 0x711e, 0x0c10, 0xa18c,
++      0x00ff, 0xa186, 0x0017, 0x0130, 0xa186, 0x001e, 0x0118, 0xa18e,
++      0x001f, 0x1d28, 0x684c, 0xd0cc, 0x0d10, 0x6850, 0xa084, 0x00ff,
++      0xa086, 0x0001, 0x19e0, 0x2009, 0x8021, 0x0804, 0x543f, 0x7084,
++      0x8008, 0xa092, 0x001e, 0x1a98, 0x7186, 0xae90, 0x0003, 0xa210,
++      0x683c, 0x2012, 0x0078, 0x7084, 0x8008, 0xa092, 0x000f, 0x1a38,
++      0x7186, 0xae90, 0x0003, 0x8003, 0xa210, 0x683c, 0x2012, 0x8210,
++      0x6840, 0x2012, 0x7088, 0xa10a, 0x0a04, 0x5458, 0x718c, 0x7084,
++      0xa10a, 0x0a04, 0x5458, 0x2071, 0x0000, 0x7018, 0xd084, 0x1904,
++      0x5458, 0x2071, 0xb735, 0x7000, 0xa086, 0x0002, 0x1150, 0x080c,
++      0x5722, 0x2071, 0x0000, 0x701b, 0x0001, 0x2091, 0x4080, 0x0804,
++      0x5458, 0x080c, 0x574c, 0x2071, 0x0000, 0x701b, 0x0001, 0x2091,
++      0x4080, 0x0804, 0x5458, 0x0006, 0x684c, 0x0006, 0x6837, 0x0103,
++      0x20a9, 0x001c, 0xad80, 0x0011, 0x20a0, 0x2001, 0x0000, 0x40a4,
++      0x000e, 0xa084, 0x00ff, 0x684e, 0x000e, 0x684a, 0x6952, 0x0005,
++      0x2071, 0xb614, 0x7004, 0x0002, 0x54fe, 0x550f, 0x570d, 0x570e,
++      0x571b, 0x5721, 0x54ff, 0x56fe, 0x5694, 0x56ea, 0x0005, 0x0126,
++      0x2091, 0x8000, 0x0e04, 0x550e, 0x2009, 0x000d, 0x7030, 0x200a,
++      0x2091, 0x4080, 0x7007, 0x0001, 0x700b, 0x0000, 0x012e, 0x2069,
++      0xb7f3, 0x683c, 0xa005, 0x03f8, 0x11f0, 0x0126, 0x2091, 0x8000,
++      0x2069, 0x0000, 0x6934, 0x2001, 0xb620, 0x2004, 0xa10a, 0x0170,
++      0x0e04, 0x5532, 0x2069, 0x0000, 0x6818, 0xd084, 0x1158, 0x2009,
++      0x8040, 0x6922, 0x681b, 0x0001, 0x2091, 0x4080, 0x2069, 0xb7f3,
++      0x683f, 0xffff, 0x012e, 0x2069, 0xb500, 0x6848, 0x6968, 0xa102,
++      0x2069, 0xb735, 0x688a, 0x6984, 0x701c, 0xa06d, 0x0120, 0x81ff,
++      0x0904, 0x5588, 0x00a0, 0x81ff, 0x0904, 0x564e, 0x2071, 0xb735,
++      0x7184, 0x7088, 0xa10a, 0x1258, 0x7190, 0x2071, 0xb7f3, 0x7038,
++      0xa005, 0x0128, 0x1b04, 0x564e, 0x713a, 0x0804, 0x564e, 0x2071,
++      0xb735, 0x718c, 0x0126, 0x2091, 0x8000, 0x7084, 0xa10a, 0x0a04,
++      0x5669, 0x0e04, 0x560a, 0x2071, 0x0000, 0x7018, 0xd084, 0x1904,
++      0x560a, 0x2001, 0xffff, 0x2071, 0xb7f3, 0x703a, 0x2071, 0xb735,
++      0x7000, 0xa086, 0x0002, 0x1150, 0x080c, 0x5722, 0x2071, 0x0000,
++      0x701b, 0x0001, 0x2091, 0x4080, 0x0804, 0x560a, 0x080c, 0x574c,
++      0x2071, 0x0000, 0x701b, 0x0001, 0x2091, 0x4080, 0x0804, 0x560a,
++      0x2071, 0xb735, 0x7000, 0xa005, 0x0904, 0x5630, 0x6934, 0xa186,
++      0x0103, 0x1904, 0x560d, 0x684c, 0xd0bc, 0x1904, 0x5630, 0x6948,
++      0x6844, 0xa105, 0x1904, 0x5625, 0x2009, 0x8020, 0x2071, 0xb735,
++      0x7000, 0x0002, 0x5630, 0x55f0, 0x55c8, 0x55da, 0x55a7, 0x0136,
++      0x0146, 0x0156, 0x2099, 0xb576, 0x20a1, 0xb786, 0x20a9, 0x0004,
++      0x53a3, 0x015e, 0x014e, 0x013e, 0x2071, 0xb77d, 0xad80, 0x000f,
++      0x700e, 0x7013, 0x0002, 0x7007, 0x0002, 0x700b, 0x0000, 0x2e10,
++      0x080c, 0x1643, 0x2071, 0xb614, 0x7007, 0x0009, 0x0804, 0x564e,
++      0x7084, 0x8008, 0xa092, 0x001e, 0x1a04, 0x564e, 0xae90, 0x0003,
++      0xa210, 0x683c, 0x2012, 0x7186, 0x2071, 0xb614, 0x080c, 0x57a3,
++      0x0804, 0x564e, 0x7084, 0x8008, 0xa092, 0x000f, 0x1a04, 0x564e,
++      0xae90, 0x0003, 0x8003, 0xa210, 0x683c, 0x2012, 0x8210, 0x6840,
++      0x2012, 0x7186, 0x2071, 0xb614, 0x080c, 0x57a3, 0x0804, 0x564e,
++      0x0126, 0x2091, 0x8000, 0x0e04, 0x560a, 0x2071, 0x0000, 0x7018,
++      0xd084, 0x1180, 0x7122, 0x683c, 0x7026, 0x6840, 0x702a, 0x701b,
++      0x0001, 0x2091, 0x4080, 0x012e, 0x2071, 0xb614, 0x080c, 0x57a3,
++      0x0804, 0x564e, 0x012e, 0x0804, 0x564e, 0xa18c, 0x00ff, 0xa186,
++      0x0017, 0x0130, 0xa186, 0x001e, 0x0118, 0xa18e, 0x001f, 0x11c0,
++      0x684c, 0xd0cc, 0x01a8, 0x6850, 0xa084, 0x00ff, 0xa086, 0x0001,
++      0x1178, 0x2009, 0x8021, 0x0804, 0x559e, 0x6844, 0xa086, 0x0100,
++      0x1138, 0x6868, 0xa005, 0x1120, 0x2009, 0x8020, 0x0804, 0x559e,
++      0x2071, 0xb614, 0x080c, 0x57b5, 0x01c8, 0x2071, 0xb614, 0x700f,
++      0x0001, 0x6934, 0xa184, 0x00ff, 0xa086, 0x0003, 0x1130, 0x810f,
++      0xa18c, 0x00ff, 0x8101, 0x0108, 0x710e, 0x7007, 0x0003, 0x080c,
++      0x57ce, 0x7050, 0xa086, 0x0100, 0x0904, 0x570e, 0x0126, 0x2091,
++      0x8000, 0x2071, 0xb614, 0x7008, 0xa086, 0x0001, 0x1180, 0x0e04,
++      0x5667, 0x2009, 0x000d, 0x7030, 0x200a, 0x2091, 0x4080, 0x700b,
++      0x0000, 0x7004, 0xa086, 0x0006, 0x1110, 0x7007, 0x0001, 0x012e,
++      0x0005, 0x2071, 0xb614, 0x080c, 0x57b5, 0x0518, 0x2071, 0xb735,
++      0x7084, 0x700a, 0x20a9, 0x0020, 0x2099, 0xb736, 0x20a1, 0xb75d,
++      0x53a3, 0x7087, 0x0000, 0x2071, 0xb614, 0x2069, 0xb77d, 0x706c,
++      0x6826, 0x7070, 0x682a, 0x7074, 0x682e, 0x7078, 0x6832, 0x2d10,
++      0x080c, 0x1643, 0x7007, 0x0008, 0x2001, 0xffff, 0x2071, 0xb7f3,
++      0x703a, 0x012e, 0x0804, 0x564e, 0x2069, 0xb77d, 0x6808, 0xa08e,
++      0x0000, 0x0904, 0x56e9, 0xa08e, 0x0200, 0x0904, 0x56e7, 0xa08e,
++      0x0100, 0x1904, 0x56e9, 0x0126, 0x2091, 0x8000, 0x0e04, 0x56e5,
++      0x2069, 0x0000, 0x6818, 0xd084, 0x15c0, 0x702c, 0x7130, 0x8108,
++      0xa102, 0x0230, 0xa00e, 0x7034, 0x706e, 0x7038, 0x7072, 0x0048,
++      0x706c, 0xa080, 0x0040, 0x706e, 0x1220, 0x7070, 0xa081, 0x0000,
++      0x7072, 0x7132, 0x6936, 0x700b, 0x0000, 0x2001, 0xb75a, 0x2004,
++      0xa005, 0x1190, 0x6934, 0x2069, 0xb735, 0x689c, 0x699e, 0x2069,
++      0xb7f3, 0xa102, 0x1118, 0x683c, 0xa005, 0x1368, 0x2001, 0xb75b,
++      0x200c, 0x810d, 0x693e, 0x0038, 0x2009, 0x8040, 0x6922, 0x681b,
++      0x0001, 0x2091, 0x4080, 0x7007, 0x0001, 0x012e, 0x0010, 0x7007,
++      0x0005, 0x0005, 0x2001, 0xb77f, 0x2004, 0xa08e, 0x0100, 0x1128,
++      0x7007, 0x0001, 0x080c, 0x57a3, 0x0005, 0xa08e, 0x0000, 0x0de0,
++      0xa08e, 0x0200, 0x1dc8, 0x7007, 0x0005, 0x0005, 0x701c, 0xa06d,
++      0x0158, 0x080c, 0x57b5, 0x0140, 0x7007, 0x0003, 0x080c, 0x57ce,
++      0x7050, 0xa086, 0x0100, 0x0110, 0x0005, 0x0005, 0x7050, 0xa09e,
++      0x0100, 0x1118, 0x7007, 0x0004, 0x0030, 0xa086, 0x0200, 0x1110,
++      0x7007, 0x0005, 0x0005, 0x080c, 0x5771, 0x7006, 0x080c, 0x57a3,
++      0x0005, 0x0005, 0x00e6, 0x0156, 0x2071, 0xb735, 0x7184, 0x81ff,
++      0x0500, 0xa006, 0x7086, 0xae80, 0x0003, 0x2071, 0x0000, 0x21a8,
++      0x2014, 0x7226, 0x8000, 0x0f04, 0x5746, 0x2014, 0x722a, 0x8000,
++      0x0f04, 0x5746, 0x2014, 0x722e, 0x8000, 0x0f04, 0x5746, 0x2014,
++      0x723a, 0x8000, 0x0f04, 0x5746, 0x2014, 0x723e, 0xa180, 0x8030,
++      0x7022, 0x015e, 0x00ee, 0x0005, 0x00e6, 0x0156, 0x2071, 0xb735,
++      0x7184, 0x81ff, 0x01d8, 0xa006, 0x7086, 0xae80, 0x0003, 0x2071,
++      0x0000, 0x21a8, 0x2014, 0x7226, 0x8000, 0x2014, 0x722a, 0x8000,
++      0x0f04, 0x5768, 0x2014, 0x723a, 0x8000, 0x2014, 0x723e, 0x0018,
++      0x2001, 0x8020, 0x0010, 0x2001, 0x8042, 0x7022, 0x015e, 0x00ee,
++      0x0005, 0x702c, 0x7130, 0x8108, 0xa102, 0x0230, 0xa00e, 0x7034,
++      0x706e, 0x7038, 0x7072, 0x0048, 0x706c, 0xa080, 0x0040, 0x706e,
++      0x1220, 0x7070, 0xa081, 0x0000, 0x7072, 0x7132, 0x700c, 0x8001,
++      0x700e, 0x1180, 0x0126, 0x2091, 0x8000, 0x0e04, 0x579d, 0x2001,
++      0x000d, 0x2102, 0x2091, 0x4080, 0x2001, 0x0001, 0x700b, 0x0000,
++      0x012e, 0x0005, 0x2001, 0x0007, 0x0005, 0x2001, 0x0006, 0x700b,
++      0x0001, 0x012e, 0x0005, 0x701c, 0xa06d, 0x0170, 0x0126, 0x2091,
++      0x8000, 0x7010, 0x8001, 0x7012, 0x2d04, 0x701e, 0xa005, 0x1108,
++      0x701a, 0x012e, 0x080c, 0x160f, 0x0005, 0x2019, 0x000d, 0x2304,
++      0x230c, 0xa10e, 0x0130, 0x2304, 0x230c, 0xa10e, 0x0110, 0xa006,
++      0x0060, 0x732c, 0x8319, 0x7130, 0xa102, 0x1118, 0x2300, 0xa005,
++      0x0020, 0x0210, 0xa302, 0x0008, 0x8002, 0x0005, 0x2d00, 0x7026,
++      0xa080, 0x000d, 0x7056, 0x7053, 0x0000, 0x0126, 0x2091, 0x8000,
++      0x2009, 0xb812, 0x2104, 0xc08d, 0x200a, 0x012e, 0x080c, 0x165f,
++      0x0005, 0x708c, 0xa08a, 0x0029, 0x1220, 0xa082, 0x001d, 0x0033,
++      0x0010, 0x080c, 0x1515, 0x6027, 0x1e00, 0x0005, 0x58dc, 0x5857,
++      0x586f, 0x58ac, 0x58cd, 0x5907, 0x5919, 0x586f, 0x58f3, 0x57fb,
++      0x5829, 0x57fa, 0x0005, 0x00d6, 0x2069, 0x0200, 0x6804, 0xa005,
++      0x1180, 0x6808, 0xa005, 0x1518, 0x708f, 0x0028, 0x2069, 0xb7c5,
++      0x2d04, 0x7002, 0x080c, 0x5bd1, 0x6028, 0xa085, 0x0600, 0x602a,
++      0x00b0, 0x708f, 0x0028, 0x2069, 0xb7c5, 0x2d04, 0x7002, 0x6028,
++      0xa085, 0x0600, 0x602a, 0x00e6, 0x0036, 0x0046, 0x0056, 0x2071,
++      0xb823, 0x080c, 0x1dfe, 0x005e, 0x004e, 0x003e, 0x00ee, 0x00de,
++      0x0005, 0x00d6, 0x2069, 0x0200, 0x6804, 0xa005, 0x1180, 0x6808,
++      0xa005, 0x1518, 0x708f, 0x0028, 0x2069, 0xb7c5, 0x2d04, 0x7002,
++      0x080c, 0x5c5e, 0x6028, 0xa085, 0x0600, 0x602a, 0x00b0, 0x708f,
++      0x0028, 0x2069, 0xb7c5, 0x2d04, 0x7002, 0x6028, 0xa085, 0x0600,
++      0x602a, 0x00e6, 0x0036, 0x0046, 0x0056, 0x2071, 0xb823, 0x080c,
++      0x1dfe, 0x005e, 0x004e, 0x003e, 0x00ee, 0x00de, 0x0005, 0x6803,
++      0x0090, 0x6124, 0xd1e4, 0x1190, 0x080c, 0x5984, 0xd1d4, 0x1160,
++      0xd1dc, 0x1138, 0xd1cc, 0x0150, 0x708f, 0x0020, 0x080c, 0x5984,
++      0x0028, 0x708f, 0x001d, 0x0010, 0x708f, 0x001f, 0x0005, 0x6803,
++      0x0088, 0x6124, 0xd1cc, 0x1590, 0xd1dc, 0x1568, 0xd1e4, 0x1540,
++      0xa184, 0x1e00, 0x1580, 0x60e3, 0x0001, 0x600c, 0xc0b4, 0x600e,
++      0x080c, 0x5aff, 0x080c, 0x24b0, 0x0156, 0x6803, 0x0100, 0x20a9,
++      0x0014, 0x6804, 0xd0dc, 0x1118, 0x1f04, 0x5889, 0x0048, 0x20a9,
++      0x0014, 0x6803, 0x0080, 0x6804, 0xd0d4, 0x1130, 0x1f04, 0x5893,
++      0x080c, 0x5b20, 0x015e, 0x0078, 0x015e, 0x708f, 0x0028, 0x0058,
++      0x708f, 0x001e, 0x0040, 0x708f, 0x001d, 0x0028, 0x708f, 0x0020,
++      0x0010, 0x708f, 0x001f, 0x0005, 0x60e3, 0x0001, 0x600c, 0xc0b4,
++      0x600e, 0x080c, 0x5aff, 0x080c, 0x24b0, 0x6803, 0x0080, 0x6124,
++      0xd1d4, 0x1180, 0xd1dc, 0x1158, 0xd1e4, 0x1130, 0xa184, 0x1e00,
++      0x1158, 0x708f, 0x0028, 0x0040, 0x708f, 0x001e, 0x0028, 0x708f,
++      0x001d, 0x0010, 0x708f, 0x001f, 0x0005, 0x6803, 0x00a0, 0x6124,
++      0xd1dc, 0x1138, 0xd1e4, 0x0138, 0x080c, 0x1e47, 0x708f, 0x001e,
++      0x0010, 0x708f, 0x001d, 0x0005, 0x080c, 0x59f6, 0x6124, 0xd1dc,
++      0x1188, 0x080c, 0x5984, 0x0016, 0x080c, 0x1e47, 0x001e, 0xd1d4,
++      0x1128, 0xd1e4, 0x0138, 0x708f, 0x001e, 0x0020, 0x708f, 0x001f,
++      0x080c, 0x5984, 0x0005, 0x6803, 0x00a0, 0x6124, 0xd1d4, 0x1160,
++      0xd1cc, 0x1150, 0xd1dc, 0x1128, 0xd1e4, 0x0140, 0x708f, 0x001e,
++      0x0028, 0x708f, 0x001d, 0x0010, 0x708f, 0x0021, 0x0005, 0x080c,
++      0x59f6, 0x6124, 0xd1d4, 0x1150, 0xd1dc, 0x1128, 0xd1e4, 0x0140,
++      0x708f, 0x001e, 0x0028, 0x708f, 0x001d, 0x0010, 0x708f, 0x001f,
++      0x0005, 0x6803, 0x0090, 0x6124, 0xd1d4, 0x1178, 0xd1cc, 0x1150,
++      0xd1dc, 0x1128, 0xd1e4, 0x0158, 0x708f, 0x001e, 0x0040, 0x708f,
++      0x001d, 0x0028, 0x708f, 0x0020, 0x0010, 0x708f, 0x001f, 0x0005,
++      0x0016, 0x00c6, 0x00d6, 0x00e6, 0x0126, 0x2061, 0x0100, 0x2069,
++      0x0140, 0x2071, 0xb500, 0x2091, 0x8000, 0x080c, 0x5acf, 0x11e8,
++      0x2001, 0xb50c, 0x200c, 0xd1b4, 0x01c0, 0xc1b4, 0x2102, 0x6027,
++      0x0200, 0xe000, 0xe000, 0x6024, 0xd0cc, 0x0158, 0x6803, 0x00a0,
++      0x2001, 0xb79f, 0x2003, 0x0001, 0x2001, 0xb500, 0x2003, 0x0001,
++      0x0428, 0x6028, 0xc0cd, 0x602a, 0x0408, 0x080c, 0x5aeb, 0x0150,
++      0x080c, 0x5ae1, 0x1138, 0x2001, 0x0001, 0x080c, 0x27c3, 0x080c,
++      0x5aa6, 0x00a0, 0x080c, 0x59f3, 0x0178, 0x2001, 0x0001, 0x080c,
++      0x27c3, 0x708c, 0xa086, 0x001e, 0x0120, 0x708c, 0xa086, 0x0022,
++      0x1118, 0x708f, 0x0025, 0x0010, 0x708f, 0x0021, 0x012e, 0x00ee,
++      0x00de, 0x00ce, 0x001e, 0x0005, 0x0026, 0x2011, 0x5995, 0x080c,
++      0x6a5c, 0x002e, 0x0016, 0x0026, 0x2009, 0x0064, 0x2011, 0x5995,
++      0x080c, 0x6a53, 0x002e, 0x001e, 0x0005, 0x00e6, 0x00f6, 0x0016,
++      0x080c, 0x7d7a, 0x2071, 0xb500, 0x080c, 0x5930, 0x001e, 0x00fe,
++      0x00ee, 0x0005, 0x0016, 0x0026, 0x0036, 0x00c6, 0x00d6, 0x00e6,
++      0x00f6, 0x0126, 0x080c, 0x7d7a, 0x2061, 0x0100, 0x2069, 0x0140,
++      0x2071, 0xb500, 0x2091, 0x8000, 0x6028, 0xc09c, 0x602a, 0x2011,
++      0x0003, 0x080c, 0x8075, 0x2011, 0x0002, 0x080c, 0x807f, 0x080c,
++      0x7f59, 0x080c, 0x6a10, 0x0036, 0x2019, 0x0000, 0x080c, 0x7fe4,
++      0x003e, 0x60e3, 0x0000, 0x080c, 0xb42f, 0x080c, 0xb44a, 0x2001,
++      0xb500, 0x2003, 0x0004, 0x6027, 0x0008, 0x080c, 0x12dd, 0x2001,
++      0x0001, 0x080c, 0x27c3, 0x012e, 0x00fe, 0x00ee, 0x00de, 0x00ce,
++      0x003e, 0x002e, 0x001e, 0x0005, 0x2001, 0xb500, 0x2004, 0xa086,
++      0x0004, 0x0140, 0x2001, 0xb79e, 0x2003, 0xaaaa, 0x2001, 0xb79f,
++      0x2003, 0x0000, 0x0005, 0x6020, 0xd09c, 0x0005, 0x6800, 0xa086,
++      0x00c0, 0x0160, 0x6803, 0x00c0, 0x0156, 0x20a9, 0x002d, 0x1d04,
++      0x59ff, 0x2091, 0x6000, 0x1f04, 0x59ff, 0x015e, 0x0005, 0x00c6,
+       0x00d6, 0x00e6, 0x2061, 0x0100, 0x2069, 0x0140, 0x2071, 0xb500,
+-      0x2001, 0xb79e, 0x2003, 0x0000, 0x2001, 0xb78f, 0x2003, 0x0000,
+-      0x708f, 0x0000, 0x60e3, 0x0000, 0x6887, 0x0000, 0x2001, 0x0000,
+-      0x080c, 0x2872, 0x6803, 0x0000, 0x6043, 0x0090, 0x6043, 0x0010,
+-      0x6027, 0xffff, 0x602b, 0x182f, 0x00ee, 0x00de, 0x00ce, 0x0005,
+-      0x0006, 0x2001, 0xb79e, 0x2004, 0xa086, 0xaaaa, 0x000e, 0x0005,
+-      0x0006, 0x2001, 0xb572, 0x2004, 0xa084, 0x0030, 0xa086, 0x0000,
+-      0x000e, 0x0005, 0x0006, 0x2001, 0xb572, 0x2004, 0xa084, 0x0030,
+-      0xa086, 0x0030, 0x000e, 0x0005, 0x0006, 0x2001, 0xb572, 0x2004,
+-      0xa084, 0x0030, 0xa086, 0x0010, 0x000e, 0x0005, 0x0006, 0x2001,
+-      0xb572, 0x2004, 0xa084, 0x0030, 0xa086, 0x0020, 0x000e, 0x0005,
+-      0x2001, 0xb50c, 0x2004, 0xd0a4, 0x0170, 0x080c, 0x2892, 0x0036,
+-      0x0016, 0x2009, 0x0000, 0x2019, 0x0028, 0x080c, 0x2c6f, 0x001e,
+-      0x003e, 0xa006, 0x0009, 0x0005, 0x00e6, 0x2071, 0xb50c, 0x2e04,
+-      0x0118, 0xa085, 0x0010, 0x0010, 0xa084, 0xffef, 0x2072, 0x00ee,
+-      0x0005, 0x6050, 0x0006, 0x60f0, 0x0006, 0x60ec, 0x0006, 0x600c,
+-      0x0006, 0x6004, 0x0006, 0x6028, 0x0006, 0x602f, 0x0100, 0x602f,
+-      0x0000, 0x602f, 0x0040, 0x602f, 0x0000, 0x000e, 0x602a, 0x000e,
+-      0x6006, 0x000e, 0x600e, 0x000e, 0x60ee, 0x000e, 0x60f2, 0x60e3,
+-      0x0000, 0x6887, 0x0001, 0x2001, 0x0001, 0x080c, 0x2872, 0x6800,
+-      0xa084, 0x00a0, 0xc0bd, 0x6802, 0x6803, 0x00a0, 0x000e, 0x6052,
+-      0x6050, 0x0005, 0x0156, 0x0016, 0x0026, 0x0036, 0x00c6, 0x00d6,
+-      0x00e6, 0x2061, 0x0100, 0x2069, 0x0140, 0x2071, 0xb500, 0x6020,
+-      0xa084, 0x0080, 0x0138, 0x2001, 0xb50c, 0x200c, 0xc1bd, 0x2102,
+-      0x0804, 0x5bca, 0x2001, 0xb50c, 0x200c, 0xc1bc, 0x2102, 0x6028,
+-      0xa084, 0xe1ff, 0x602a, 0x6027, 0x0200, 0x6803, 0x0090, 0x20a9,
+-      0x0384, 0x6024, 0xd0cc, 0x1508, 0x1d04, 0x5b79, 0x2091, 0x6000,
+-      0x1f04, 0x5b79, 0x2011, 0x0003, 0x080c, 0x8076, 0x2011, 0x0002,
+-      0x080c, 0x8080, 0x080c, 0x7f5a, 0x2019, 0x0000, 0x080c, 0x7fe5,
+-      0x6803, 0x00a0, 0x2001, 0xb79f, 0x2003, 0x0001, 0x2001, 0xb500,
+-      0x2003, 0x0001, 0xa085, 0x0001, 0x0468, 0x86ff, 0x1110, 0x080c,
+-      0x1e47, 0x60e3, 0x0000, 0x2001, 0xb78f, 0x2004, 0x080c, 0x2872,
+-      0x60e2, 0x080c, 0x24b0, 0x6803, 0x0080, 0x20a9, 0x0384, 0x6027,
+-      0x1e00, 0x2009, 0x1e00, 0xe000, 0x6024, 0xa10c, 0x0138, 0x1d04,
+-      0x5baf, 0x2091, 0x6000, 0x1f04, 0x5baf, 0x0820, 0x6028, 0xa085,
+-      0x1e00, 0x602a, 0x70a4, 0xa005, 0x1118, 0x6887, 0x0001, 0x0008,
+-      0x6886, 0xa006, 0x00ee, 0x00de, 0x00ce, 0x003e, 0x002e, 0x001e,
+-      0x015e, 0x0005, 0x0156, 0x0016, 0x0026, 0x0036, 0x00c6, 0x00d6,
+-      0x00e6, 0x2061, 0x0100, 0x2071, 0xb500, 0x2069, 0x0140, 0x6020,
+-      0xa084, 0x00c0, 0x0120, 0x6884, 0xa005, 0x1904, 0x5c26, 0x6803,
+-      0x0088, 0x60e3, 0x0000, 0x6887, 0x0000, 0x2001, 0x0000, 0x080c,
+-      0x2872, 0x2069, 0x0200, 0x6804, 0xa005, 0x1118, 0x6808, 0xa005,
+-      0x01c0, 0x6028, 0xa084, 0xfbff, 0x602a, 0x6027, 0x0400, 0x2069,
+-      0xb7c5, 0x7000, 0x206a, 0x708f, 0x0026, 0x7003, 0x0001, 0x20a9,
+-      0x0002, 0x1d04, 0x5c09, 0x2091, 0x6000, 0x1f04, 0x5c09, 0x0804,
+-      0x5c57, 0x2069, 0x0140, 0x20a9, 0x0384, 0x6027, 0x1e00, 0x2009,
+-      0x1e00, 0xe000, 0x6024, 0xa10c, 0x0520, 0xa084, 0x1a00, 0x1508,
+-      0x1d04, 0x5c15, 0x2091, 0x6000, 0x1f04, 0x5c15, 0x2011, 0x0003,
+-      0x080c, 0x8076, 0x2011, 0x0002, 0x080c, 0x8080, 0x080c, 0x7f5a,
+-      0x2019, 0x0000, 0x080c, 0x7fe5, 0x6803, 0x00a0, 0x2001, 0xb79f,
+-      0x2003, 0x0001, 0x2001, 0xb500, 0x2003, 0x0001, 0xa085, 0x0001,
+-      0x00b0, 0x080c, 0x24b0, 0x6803, 0x0080, 0x2069, 0x0140, 0x60e3,
++      0x2001, 0xb79f, 0x200c, 0xa186, 0x0000, 0x0158, 0xa186, 0x0001,
++      0x0158, 0xa186, 0x0002, 0x0158, 0xa186, 0x0003, 0x0158, 0x0804,
++      0x5a94, 0x708f, 0x0022, 0x0040, 0x708f, 0x0021, 0x0028, 0x708f,
++      0x0023, 0x0020, 0x708f, 0x0024, 0x6043, 0x0000, 0x60e3, 0x0000,
++      0x6887, 0x0001, 0x2001, 0x0001, 0x080c, 0x2872, 0x0026, 0x2011,
++      0x0003, 0x080c, 0x8075, 0x2011, 0x0002, 0x080c, 0x807f, 0x080c,
++      0x7f59, 0x0036, 0x2019, 0x0000, 0x080c, 0x7fe4, 0x003e, 0x002e,
++      0x7000, 0xa08e, 0x0004, 0x0118, 0x602b, 0x0028, 0x0010, 0x602b,
++      0x0020, 0x0156, 0x0126, 0x2091, 0x8000, 0x20a9, 0x0005, 0x6024,
++      0xd0ac, 0x0120, 0x012e, 0x015e, 0x0804, 0x5aa2, 0x6800, 0xa084,
++      0x00a0, 0xc0bd, 0x6802, 0x6904, 0xd1d4, 0x1130, 0x6803, 0x0100,
++      0x1f04, 0x5a57, 0x080c, 0x5b20, 0x012e, 0x015e, 0x080c, 0x5ae1,
++      0x01a8, 0x6044, 0xa005, 0x0168, 0x6050, 0x0006, 0xa085, 0x0020,
++      0x6052, 0x080c, 0x5b20, 0xa006, 0x8001, 0x1df0, 0x000e, 0x6052,
++      0x0028, 0x6804, 0xd0d4, 0x1110, 0x080c, 0x5b20, 0x0016, 0x0026,
++      0x2009, 0x00c8, 0x2011, 0x59a2, 0x080c, 0x6a22, 0x002e, 0x001e,
++      0x2001, 0xb79f, 0x2003, 0x0004, 0x080c, 0x57e1, 0x080c, 0x5ae1,
++      0x0148, 0x6804, 0xd0d4, 0x1130, 0xd0dc, 0x1100, 0x2001, 0xb79f,
++      0x2003, 0x0000, 0x00ee, 0x00de, 0x00ce, 0x0005, 0x00c6, 0x00d6,
++      0x00e6, 0x2061, 0x0100, 0x2069, 0x0140, 0x2071, 0xb500, 0x2001,
++      0xb79e, 0x2003, 0x0000, 0x2001, 0xb78f, 0x2003, 0x0000, 0x708f,
++      0x0000, 0x60e3, 0x0000, 0x6887, 0x0000, 0x2001, 0x0000, 0x080c,
++      0x2872, 0x6803, 0x0000, 0x6043, 0x0090, 0x6043, 0x0010, 0x6027,
++      0xffff, 0x602b, 0x182f, 0x00ee, 0x00de, 0x00ce, 0x0005, 0x0006,
++      0x2001, 0xb79e, 0x2004, 0xa086, 0xaaaa, 0x000e, 0x0005, 0x0006,
++      0x2001, 0xb572, 0x2004, 0xa084, 0x0030, 0xa086, 0x0000, 0x000e,
++      0x0005, 0x0006, 0x2001, 0xb572, 0x2004, 0xa084, 0x0030, 0xa086,
++      0x0030, 0x000e, 0x0005, 0x0006, 0x2001, 0xb572, 0x2004, 0xa084,
++      0x0030, 0xa086, 0x0010, 0x000e, 0x0005, 0x0006, 0x2001, 0xb572,
++      0x2004, 0xa084, 0x0030, 0xa086, 0x0020, 0x000e, 0x0005, 0x2001,
++      0xb50c, 0x2004, 0xd0a4, 0x0170, 0x080c, 0x2892, 0x0036, 0x0016,
++      0x2009, 0x0000, 0x2019, 0x0028, 0x080c, 0x2c6f, 0x001e, 0x003e,
++      0xa006, 0x0009, 0x0005, 0x00e6, 0x2071, 0xb50c, 0x2e04, 0x0118,
++      0xa085, 0x0010, 0x0010, 0xa084, 0xffef, 0x2072, 0x00ee, 0x0005,
++      0x6050, 0x0006, 0x60f0, 0x0006, 0x60ec, 0x0006, 0x600c, 0x0006,
++      0x6004, 0x0006, 0x6028, 0x0006, 0x602f, 0x0100, 0x602f, 0x0000,
++      0x602f, 0x0040, 0x602f, 0x0000, 0x000e, 0x602a, 0x000e, 0x6006,
++      0x000e, 0x600e, 0x000e, 0x60ee, 0x000e, 0x60f2, 0x60e3, 0x0000,
++      0x6887, 0x0001, 0x2001, 0x0001, 0x080c, 0x2872, 0x6800, 0xa084,
++      0x00a0, 0xc0bd, 0x6802, 0x6803, 0x00a0, 0x000e, 0x6052, 0x6050,
++      0x0005, 0x0156, 0x0016, 0x0026, 0x0036, 0x00c6, 0x00d6, 0x00e6,
++      0x2061, 0x0100, 0x2069, 0x0140, 0x2071, 0xb500, 0x6020, 0xa084,
++      0x0080, 0x0138, 0x2001, 0xb50c, 0x200c, 0xc1bd, 0x2102, 0x0804,
++      0x5bc9, 0x2001, 0xb50c, 0x200c, 0xc1bc, 0x2102, 0x6028, 0xa084,
++      0xe1ff, 0x602a, 0x6027, 0x0200, 0x6803, 0x0090, 0x20a9, 0x0384,
++      0x6024, 0xd0cc, 0x1508, 0x1d04, 0x5b78, 0x2091, 0x6000, 0x1f04,
++      0x5b78, 0x2011, 0x0003, 0x080c, 0x8075, 0x2011, 0x0002, 0x080c,
++      0x807f, 0x080c, 0x7f59, 0x2019, 0x0000, 0x080c, 0x7fe4, 0x6803,
++      0x00a0, 0x2001, 0xb79f, 0x2003, 0x0001, 0x2001, 0xb500, 0x2003,
++      0x0001, 0xa085, 0x0001, 0x0468, 0x86ff, 0x1120, 0x080c, 0x1e47,
++      0x080c, 0x24b0, 0x60e3, 0x0000, 0x2001, 0xb78f, 0x2004, 0x080c,
++      0x2872, 0x60e2, 0x6803, 0x0080, 0x20a9, 0x0384, 0x6027, 0x1e00,
++      0x2009, 0x1e00, 0xe000, 0x6024, 0xa10c, 0x0138, 0x1d04, 0x5bae,
++      0x2091, 0x6000, 0x1f04, 0x5bae, 0x0820, 0x6028, 0xa085, 0x1e00,
++      0x602a, 0x70a4, 0xa005, 0x1118, 0x6887, 0x0001, 0x0008, 0x6886,
++      0xa006, 0x00ee, 0x00de, 0x00ce, 0x003e, 0x002e, 0x001e, 0x015e,
++      0x0005, 0x0156, 0x0016, 0x0026, 0x0036, 0x00c6, 0x00d6, 0x00e6,
++      0x2061, 0x0100, 0x2071, 0xb500, 0x2069, 0x0140, 0x6020, 0xa084,
++      0x00c0, 0x0120, 0x6884, 0xa005, 0x1904, 0x5c25, 0x6803, 0x0088,
++      0x60e3, 0x0000, 0x6887, 0x0000, 0x2001, 0x0000, 0x080c, 0x2872,
++      0x2069, 0x0200, 0x6804, 0xa005, 0x1118, 0x6808, 0xa005, 0x01c0,
++      0x6028, 0xa084, 0xfbff, 0x602a, 0x6027, 0x0400, 0x2069, 0xb7c5,
++      0x7000, 0x206a, 0x708f, 0x0026, 0x7003, 0x0001, 0x20a9, 0x0002,
++      0x1d04, 0x5c08, 0x2091, 0x6000, 0x1f04, 0x5c08, 0x0804, 0x5c56,
++      0x2069, 0x0140, 0x20a9, 0x0384, 0x6027, 0x1e00, 0x2009, 0x1e00,
++      0xe000, 0x6024, 0xa10c, 0x0520, 0xa084, 0x1a00, 0x1508, 0x1d04,
++      0x5c14, 0x2091, 0x6000, 0x1f04, 0x5c14, 0x2011, 0x0003, 0x080c,
++      0x8075, 0x2011, 0x0002, 0x080c, 0x807f, 0x080c, 0x7f59, 0x2019,
++      0x0000, 0x080c, 0x7fe4, 0x6803, 0x00a0, 0x2001, 0xb79f, 0x2003,
++      0x0001, 0x2001, 0xb500, 0x2003, 0x0001, 0xa085, 0x0001, 0x00b0,
++      0x080c, 0x24b0, 0x6803, 0x0080, 0x2069, 0x0140, 0x60e3, 0x0000,
++      0x70a4, 0xa005, 0x1118, 0x6887, 0x0001, 0x0008, 0x6886, 0x2001,
++      0xb78f, 0x2004, 0x080c, 0x2872, 0x60e2, 0xa006, 0x00ee, 0x00de,
++      0x00ce, 0x003e, 0x002e, 0x001e, 0x015e, 0x0005, 0x0156, 0x0016,
++      0x0026, 0x0036, 0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100, 0x2071,
++      0xb500, 0x6020, 0xa084, 0x00c0, 0x01e0, 0x2011, 0x0003, 0x080c,
++      0x8075, 0x2011, 0x0002, 0x080c, 0x807f, 0x080c, 0x7f59, 0x2019,
++      0x0000, 0x080c, 0x7fe4, 0x2069, 0x0140, 0x6803, 0x00a0, 0x2001,
++      0xb79f, 0x2003, 0x0001, 0x2001, 0xb500, 0x2003, 0x0001, 0x0804,
++      0x5cfb, 0x2001, 0xb50c, 0x200c, 0xd1b4, 0x1160, 0xc1b5, 0x2102,
++      0x080c, 0x598a, 0x2069, 0x0140, 0x080c, 0x24b0, 0x6803, 0x0080,
++      0x60e3, 0x0000, 0x2069, 0x0200, 0x6804, 0xa005, 0x1118, 0x6808,
++      0xa005, 0x01c0, 0x6028, 0xa084, 0xfdff, 0x602a, 0x6027, 0x0200,
++      0x2069, 0xb7c5, 0x7000, 0x206a, 0x708f, 0x0027, 0x7003, 0x0001,
++      0x20a9, 0x0002, 0x1d04, 0x5cb2, 0x2091, 0x6000, 0x1f04, 0x5cb2,
++      0x0804, 0x5cfb, 0x6027, 0x1e00, 0x2009, 0x1e00, 0xe000, 0x6024,
++      0xa10c, 0x01c8, 0xa084, 0x1c00, 0x11b0, 0x1d04, 0x5cba, 0x0006,
++      0x0016, 0x00c6, 0x00d6, 0x00e6, 0x080c, 0x68f9, 0x00ee, 0x00de,
++      0x00ce, 0x001e, 0x000e, 0x00e6, 0x2071, 0xb7f3, 0x7018, 0x00ee,
++      0xa005, 0x1d00, 0x0500, 0x0026, 0x2011, 0x59a2, 0x080c, 0x699c,
++      0x2011, 0x5995, 0x080c, 0x6a5c, 0x002e, 0x2069, 0x0140, 0x60e3,
+       0x0000, 0x70a4, 0xa005, 0x1118, 0x6887, 0x0001, 0x0008, 0x6886,
+-      0x2001, 0xb78f, 0x2004, 0x080c, 0x2872, 0x60e2, 0xa006, 0x00ee,
+-      0x00de, 0x00ce, 0x003e, 0x002e, 0x001e, 0x015e, 0x0005, 0x0156,
+-      0x0016, 0x0026, 0x0036, 0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100,
+-      0x2071, 0xb500, 0x6020, 0xa084, 0x00c0, 0x01e0, 0x2011, 0x0003,
+-      0x080c, 0x8076, 0x2011, 0x0002, 0x080c, 0x8080, 0x080c, 0x7f5a,
+-      0x2019, 0x0000, 0x080c, 0x7fe5, 0x2069, 0x0140, 0x6803, 0x00a0,
+-      0x2001, 0xb79f, 0x2003, 0x0001, 0x2001, 0xb500, 0x2003, 0x0001,
+-      0x0804, 0x5cfc, 0x2001, 0xb50c, 0x200c, 0xd1b4, 0x1160, 0xc1b5,
+-      0x2102, 0x080c, 0x598b, 0x2069, 0x0140, 0x080c, 0x24b0, 0x6803,
+-      0x0080, 0x60e3, 0x0000, 0x2069, 0x0200, 0x6804, 0xa005, 0x1118,
+-      0x6808, 0xa005, 0x01c0, 0x6028, 0xa084, 0xfdff, 0x602a, 0x6027,
+-      0x0200, 0x2069, 0xb7c5, 0x7000, 0x206a, 0x708f, 0x0027, 0x7003,
+-      0x0001, 0x20a9, 0x0002, 0x1d04, 0x5cb3, 0x2091, 0x6000, 0x1f04,
+-      0x5cb3, 0x0804, 0x5cfc, 0x6027, 0x1e00, 0x2009, 0x1e00, 0xe000,
+-      0x6024, 0xa10c, 0x01c8, 0xa084, 0x1c00, 0x11b0, 0x1d04, 0x5cbb,
+-      0x0006, 0x0016, 0x00c6, 0x00d6, 0x00e6, 0x080c, 0x68fa, 0x00ee,
+-      0x00de, 0x00ce, 0x001e, 0x000e, 0x00e6, 0x2071, 0xb7f3, 0x7018,
+-      0x00ee, 0xa005, 0x1d00, 0x0500, 0x0026, 0x2011, 0x59a3, 0x080c,
+-      0x699d, 0x2011, 0x5996, 0x080c, 0x6a5d, 0x002e, 0x2069, 0x0140,
+-      0x60e3, 0x0000, 0x70a4, 0xa005, 0x1118, 0x6887, 0x0001, 0x0008,
+-      0x6886, 0x2001, 0xb78f, 0x2004, 0x080c, 0x2872, 0x60e2, 0x2001,
+-      0xb50c, 0x200c, 0xc1b4, 0x2102, 0x00ee, 0x00de, 0x00ce, 0x003e,
+-      0x002e, 0x001e, 0x015e, 0x0005, 0x0156, 0x0016, 0x0026, 0x0036,
+-      0x0046, 0x00c6, 0x00e6, 0x2061, 0x0100, 0x2071, 0xb500, 0x7130,
+-      0xd184, 0x1180, 0x2011, 0xb553, 0x2214, 0xd2ec, 0x0138, 0xc18d,
+-      0x7132, 0x2011, 0xb553, 0x2214, 0xd2ac, 0x1120, 0x7030, 0xd08c,
+-      0x0904, 0x5d69, 0x7130, 0xc185, 0x7132, 0x2011, 0xb553, 0x220c,
+-      0xd1a4, 0x0530, 0x0016, 0x2019, 0x000e, 0x080c, 0xb059, 0x0156,
+-      0x20a9, 0x007f, 0x2009, 0x0000, 0xa186, 0x007e, 0x01a0, 0xa186,
+-      0x0080, 0x0188, 0x080c, 0x4faa, 0x1170, 0x8127, 0xa006, 0x0016,
+-      0x2009, 0x000e, 0x080c, 0xb0dc, 0x2009, 0x0001, 0x2011, 0x0100,
+-      0x080c, 0x6b1b, 0x001e, 0x8108, 0x1f04, 0x5d34, 0x015e, 0x001e,
+-      0xd1ac, 0x1148, 0x0016, 0x2009, 0x0000, 0x2019, 0x0004, 0x080c,
+-      0x2c6f, 0x001e, 0x0070, 0x0156, 0x20a9, 0x007f, 0x2009, 0x0000,
+-      0x080c, 0x4faa, 0x1110, 0x080c, 0x4c0c, 0x8108, 0x1f04, 0x5d60,
+-      0x015e, 0x080c, 0x1e47, 0x2011, 0x0003, 0x080c, 0x8076, 0x2011,
+-      0x0002, 0x080c, 0x8080, 0x080c, 0x7f5a, 0x0036, 0x2019, 0x0000,
+-      0x080c, 0x7fe5, 0x003e, 0x60e3, 0x0000, 0x2001, 0xb500, 0x2003,
+-      0x0001, 0x080c, 0x5a08, 0x00ee, 0x00ce, 0x004e, 0x003e, 0x002e,
+-      0x001e, 0x015e, 0x0005, 0x2071, 0xb5e2, 0x7003, 0x0000, 0x7007,
+-      0x0000, 0x700f, 0x0000, 0x702b, 0x0001, 0x704f, 0x0000, 0x7053,
+-      0x0001, 0x705f, 0x0020, 0x7063, 0x0040, 0x7083, 0x0000, 0x708b,
+-      0x0000, 0x708f, 0x0001, 0x70bf, 0x0000, 0x0005, 0x00e6, 0x2071,
+-      0xb5e2, 0x6848, 0xa005, 0x1130, 0x7028, 0xc085, 0x702a, 0xa085,
+-      0x0001, 0x0428, 0x6a50, 0x7236, 0x6b54, 0x733a, 0x6858, 0x703e,
+-      0x707a, 0x685c, 0x7042, 0x707e, 0x6848, 0x702e, 0x6840, 0x7032,
+-      0x2009, 0x000c, 0x200a, 0x8007, 0x8006, 0x8006, 0xa08c, 0x003f,
+-      0xa084, 0xffc0, 0xa210, 0x2100, 0xa319, 0x7272, 0x7376, 0x7028,
+-      0xc084, 0x702a, 0x7007, 0x0001, 0x700f, 0x0000, 0xa006, 0x00ee,
+-      0x0005, 0x2b78, 0x2071, 0xb5e2, 0x7004, 0x0043, 0x700c, 0x0002,
+-      0x5de5, 0x5ddc, 0x5ddc, 0x5ddc, 0x5ddc, 0x0005, 0x5e3b, 0x5e3c,
+-      0x5e6e, 0x5e6f, 0x5e39, 0x5ebd, 0x5ec2, 0x5ef3, 0x5ef4, 0x5f0f,
+-      0x5f10, 0x5f11, 0x5f12, 0x5f13, 0x5f14, 0x5fca, 0x5ff1, 0x700c,
+-      0x0002, 0x5dfe, 0x5e39, 0x5e39, 0x5e3a, 0x5e3a, 0x7830, 0x7930,
+-      0xa106, 0x0120, 0x7830, 0x7930, 0xa106, 0x1510, 0x7030, 0xa10a,
+-      0x01f8, 0x1210, 0x712c, 0xa10a, 0xa18a, 0x0002, 0x12d0, 0x080c,
+-      0x15df, 0x01b0, 0x2d00, 0x705a, 0x7063, 0x0040, 0x2001, 0x0003,
+-      0x7057, 0x0000, 0x0126, 0x0006, 0x2091, 0x8000, 0x2009, 0xb812,
+-      0x2104, 0xc085, 0x200a, 0x000e, 0x700e, 0x012e, 0x080c, 0x165f,
+-      0x0005, 0x080c, 0x15df, 0x0de0, 0x2d00, 0x705a, 0x080c, 0x15df,
+-      0x1108, 0x0c10, 0x2d00, 0x7086, 0x7063, 0x0080, 0x2001, 0x0004,
+-      0x08f8, 0x0005, 0x0005, 0x0005, 0x700c, 0x0002, 0x5e43, 0x5e46,
+-      0x5e54, 0x5e6d, 0x5e6d, 0x080c, 0x5df7, 0x0005, 0x0126, 0x8001,
+-      0x700e, 0x7058, 0x0006, 0x080c, 0x6344, 0x0120, 0x2091, 0x8000,
+-      0x080c, 0x5df7, 0x00de, 0x0048, 0x0126, 0x8001, 0x700e, 0x080c,
+-      0x6344, 0x7058, 0x2068, 0x7084, 0x705a, 0x6803, 0x0000, 0x6807,
+-      0x0000, 0x6834, 0xa084, 0x00ff, 0xa08a, 0x003a, 0x1218, 0x00db,
+-      0x012e, 0x0005, 0x012e, 0x080c, 0x5f15, 0x0005, 0x0005, 0x0005,
+-      0x00e6, 0x2071, 0xb5e2, 0x700c, 0x0002, 0x5e7a, 0x5e7a, 0x5e7a,
+-      0x5e7c, 0x5e7f, 0x00ee, 0x0005, 0x700f, 0x0001, 0x0010, 0x700f,
+-      0x0002, 0x00ee, 0x0005, 0x5f15, 0x5f15, 0x5f31, 0x5f15, 0x60ae,
+-      0x5f15, 0x5f15, 0x5f15, 0x5f15, 0x5f15, 0x5f31, 0x60f0, 0x6133,
+-      0x617c, 0x6190, 0x5f15, 0x5f15, 0x5f4d, 0x5f31, 0x5f15, 0x5f15,
+-      0x5fa7, 0x623c, 0x6257, 0x5f15, 0x5f4d, 0x5f15, 0x5f15, 0x5f15,
+-      0x5f15, 0x5f9d, 0x6257, 0x5f15, 0x5f15, 0x5f15, 0x5f15, 0x5f15,
+-      0x5f15, 0x5f15, 0x5f15, 0x5f15, 0x5f61, 0x5f15, 0x5f15, 0x5f15,
+-      0x5f15, 0x5f15, 0x5f15, 0x5f15, 0x5f15, 0x5f15, 0x6362, 0x5f15,
+-      0x5f15, 0x5f15, 0x5f15, 0x5f15, 0x5f76, 0x7020, 0x2068, 0x080c,
+-      0x160f, 0x0005, 0x700c, 0x0002, 0x5ec9, 0x5ecc, 0x5eda, 0x5ef2,
+-      0x5ef2, 0x080c, 0x5df7, 0x0005, 0x0126, 0x8001, 0x700e, 0x7058,
+-      0x0006, 0x080c, 0x6344, 0x0120, 0x2091, 0x8000, 0x080c, 0x5df7,
+-      0x00de, 0x0048, 0x0126, 0x8001, 0x700e, 0x080c, 0x6344, 0x7058,
+-      0x2068, 0x7084, 0x705a, 0x6803, 0x0000, 0x6807, 0x0000, 0x6834,
+-      0xa084, 0x00ff, 0xa08a, 0x001a, 0x1218, 0x003b, 0x012e, 0x0005,
+-      0x012e, 0x0419, 0x0005, 0x0005, 0x0005, 0x5f15, 0x5f31, 0x609a,
+-      0x5f15, 0x5f31, 0x5f15, 0x5f31, 0x5f31, 0x5f15, 0x5f31, 0x609a,
+-      0x5f31, 0x5f31, 0x5f31, 0x5f31, 0x5f31, 0x5f15, 0x5f31, 0x609a,
+-      0x5f15, 0x5f15, 0x5f31, 0x5f15, 0x5f15, 0x5f15, 0x5f31, 0x0005,
+-      0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x7007, 0x0001, 0x6838,
+-      0xa084, 0x00ff, 0xc0d5, 0x683a, 0x0126, 0x2091, 0x8000, 0x080c,
+-      0x5409, 0x012e, 0x0005, 0x7007, 0x0001, 0x6838, 0xa084, 0x00ff,
+-      0xc0e5, 0x683a, 0x0126, 0x2091, 0x8000, 0x080c, 0x5409, 0x012e,
+-      0x0005, 0x7007, 0x0001, 0x6838, 0xa084, 0x00ff, 0xc0ed, 0x683a,
+-      0x0126, 0x2091, 0x8000, 0x080c, 0x5409, 0x012e, 0x0005, 0x7007,
+-      0x0001, 0x6838, 0xa084, 0x00ff, 0xc0dd, 0x683a, 0x0126, 0x2091,
+-      0x8000, 0x080c, 0x5409, 0x012e, 0x0005, 0x6834, 0x8007, 0xa084,
+-      0x00ff, 0x0988, 0x8001, 0x1120, 0x7007, 0x0001, 0x0804, 0x605a,
+-      0x7007, 0x0006, 0x7012, 0x2d00, 0x7016, 0x701a, 0x704b, 0x605a,
+-      0x0005, 0x6834, 0x8007, 0xa084, 0x00ff, 0x0904, 0x5f23, 0x8001,
+-      0x1120, 0x7007, 0x0001, 0x0804, 0x6077, 0x7007, 0x0006, 0x7012,
+-      0x2d00, 0x7016, 0x701a, 0x704b, 0x6077, 0x0005, 0x6834, 0x8007,
+-      0xa084, 0x00ff, 0xa086, 0x0001, 0x1904, 0x5f23, 0x7007, 0x0001,
+-      0x2009, 0xb531, 0x210c, 0x81ff, 0x11a8, 0x6838, 0xa084, 0x00ff,
+-      0x683a, 0x6853, 0x0000, 0x080c, 0x4d83, 0x1108, 0x0005, 0x0126,
+-      0x2091, 0x8000, 0x6837, 0x0139, 0x684a, 0x6952, 0x080c, 0x5409,
+-      0x012e, 0x0ca0, 0x2001, 0x0028, 0x0c90, 0x684c, 0xa084, 0x00c0,
+-      0xa086, 0x00c0, 0x1120, 0x7007, 0x0001, 0x0804, 0x626f, 0x2d00,
+-      0x7016, 0x701a, 0x20a9, 0x0004, 0xa080, 0x0024, 0x2098, 0x20a1,
+-      0xb60d, 0x53a3, 0x6858, 0x7012, 0xa082, 0x0401, 0x1a04, 0x5f3f,
+-      0x6a84, 0xa28a, 0x0002, 0x1a04, 0x5f3f, 0x82ff, 0x1138, 0x6888,
+-      0x698c, 0xa105, 0x0118, 0x2001, 0x602d, 0x0018, 0xa280, 0x6023,
+-      0x2005, 0x70c6, 0x7010, 0xa015, 0x0904, 0x600f, 0x080c, 0x15df,
+-      0x1118, 0x7007, 0x000f, 0x0005, 0x2d00, 0x7022, 0x70c4, 0x2060,
+-      0x2c05, 0x6836, 0xe004, 0xad00, 0x7096, 0xe008, 0xa20a, 0x1210,
+-      0xa00e, 0x2200, 0x7112, 0xe20c, 0x8003, 0x800b, 0xa296, 0x0004,
+-      0x0108, 0xa108, 0x719a, 0x810b, 0x719e, 0xae90, 0x0022, 0x080c,
+-      0x1643, 0x7090, 0xa08e, 0x0100, 0x0170, 0xa086, 0x0200, 0x0118,
+-      0x7007, 0x0010, 0x0005, 0x7020, 0x2068, 0x080c, 0x160f, 0x7014,
+-      0x2068, 0x0804, 0x5f3f, 0x7020, 0x2068, 0x7018, 0x6802, 0x6807,
+-      0x0000, 0x2d08, 0x2068, 0x6906, 0x711a, 0x0804, 0x5fca, 0x7014,
+-      0x2068, 0x7007, 0x0001, 0x6884, 0xa005, 0x1128, 0x6888, 0x698c,
+-      0xa105, 0x0108, 0x00b1, 0x6834, 0xa084, 0x00ff, 0xa086, 0x001e,
+-      0x0904, 0x626f, 0x04b8, 0x6025, 0x6029, 0x0002, 0x0011, 0x0007,
+-      0x0004, 0x000a, 0x000f, 0x0005, 0x0006, 0x000a, 0x0011, 0x0005,
+-      0x0004, 0x00f6, 0x00e6, 0x00c6, 0x0076, 0x0066, 0x6f88, 0x6e8c,
+-      0x6804, 0x2060, 0xacf0, 0x0021, 0xacf8, 0x0027, 0x2009, 0x0005,
+-      0x700c, 0x7816, 0x7008, 0x7812, 0x7004, 0x7806, 0x7000, 0x7802,
+-      0x7e0e, 0x7f0a, 0x8109, 0x0128, 0xaef2, 0x0004, 0xaffa, 0x0006,
+-      0x0c78, 0x6004, 0xa065, 0x1d30, 0x006e, 0x007e, 0x00ce, 0x00ee,
+-      0x00fe, 0x0005, 0x2009, 0xb531, 0x210c, 0x81ff, 0x1198, 0x6838,
+-      0xa084, 0x00ff, 0x683a, 0x080c, 0x4c65, 0x1108, 0x0005, 0x080c,
+-      0x54dc, 0x0126, 0x2091, 0x8000, 0x080c, 0x9ec6, 0x080c, 0x5409,
+-      0x012e, 0x0ca0, 0x2001, 0x0028, 0x2009, 0x0000, 0x0c80, 0x2009,
+-      0xb531, 0x210c, 0x81ff, 0x11b0, 0x6858, 0xa005, 0x01c0, 0x6838,
+-      0xa084, 0x00ff, 0x683a, 0x6853, 0x0000, 0x080c, 0x4d27, 0x1108,
+-      0x0005, 0x0126, 0x2091, 0x8000, 0x684a, 0x6952, 0x080c, 0x5409,
+-      0x012e, 0x0cb0, 0x2001, 0x0028, 0x2009, 0x0000, 0x0c90, 0x2001,
+-      0x0000, 0x0c78, 0x7018, 0x6802, 0x2d08, 0x2068, 0x6906, 0x711a,
+-      0x7010, 0x8001, 0x7012, 0x0118, 0x7007, 0x0006, 0x0030, 0x7014,
+-      0x2068, 0x7007, 0x0001, 0x7048, 0x080f, 0x0005, 0x7007, 0x0001,
+-      0x6944, 0x810f, 0xa18c, 0x00ff, 0x6848, 0xa084, 0x00ff, 0x20a9,
+-      0x0001, 0xa096, 0x0001, 0x01b0, 0x2009, 0x0000, 0x20a9, 0x00ff,
+-      0xa096, 0x0002, 0x0178, 0xa005, 0x11f0, 0x6944, 0x810f, 0xa18c,
+-      0x00ff, 0x080c, 0x4faa, 0x11b8, 0x0066, 0x6e50, 0x080c, 0x50a9,
+-      0x006e, 0x0088, 0x0046, 0x2011, 0xb50c, 0x2224, 0xc484, 0x2412,
+-      0x004e, 0x00c6, 0x080c, 0x4faa, 0x1110, 0x080c, 0x520a, 0x8108,
+-      0x1f04, 0x60da, 0x00ce, 0x684c, 0xd084, 0x1118, 0x080c, 0x160f,
+-      0x0005, 0x0126, 0x2091, 0x8000, 0x080c, 0x5409, 0x012e, 0x0005,
+-      0x0126, 0x2091, 0x8000, 0x7007, 0x0001, 0x2001, 0xb553, 0x2004,
+-      0xd0a4, 0x0580, 0x2061, 0xb874, 0x6100, 0xd184, 0x0178, 0x6858,
+-      0xa084, 0x00ff, 0x1550, 0x6000, 0xd084, 0x0520, 0x6004, 0xa005,
+-      0x1538, 0x6003, 0x0000, 0x600b, 0x0000, 0x00c8, 0x2011, 0x0001,
+-      0x6860, 0xa005, 0x1110, 0x2001, 0x001e, 0x8000, 0x6016, 0x6858,
+-      0xa084, 0x00ff, 0x0178, 0x6006, 0x6858, 0x8007, 0xa084, 0x00ff,
+-      0x0148, 0x600a, 0x6858, 0x8000, 0x1108, 0xc28d, 0x6202, 0x012e,
+-      0x0804, 0x6333, 0x012e, 0x0804, 0x632d, 0x012e, 0x0804, 0x6327,
+-      0x012e, 0x0804, 0x632a, 0x0126, 0x2091, 0x8000, 0x7007, 0x0001,
+-      0x2001, 0xb553, 0x2004, 0xd0a4, 0x05e0, 0x2061, 0xb874, 0x6000,
+-      0xd084, 0x05b8, 0x6204, 0x6308, 0xd08c, 0x1530, 0x6c48, 0xa484,
+-      0x0003, 0x0170, 0x6958, 0xa18c, 0x00ff, 0x8001, 0x1120, 0x2100,
+-      0xa210, 0x0620, 0x0028, 0x8001, 0x1508, 0x2100, 0xa212, 0x02f0,
+-      0xa484, 0x000c, 0x0188, 0x6958, 0x810f, 0xa18c, 0x00ff, 0xa082,
+-      0x0004, 0x1120, 0x2100, 0xa318, 0x0288, 0x0030, 0xa082, 0x0004,
+-      0x1168, 0x2100, 0xa31a, 0x0250, 0x6860, 0xa005, 0x0110, 0x8000,
+-      0x6016, 0x6206, 0x630a, 0x012e, 0x0804, 0x6333, 0x012e, 0x0804,
+-      0x6330, 0x012e, 0x0804, 0x632d, 0x0126, 0x2091, 0x8000, 0x7007,
+-      0x0001, 0x2061, 0xb874, 0x6300, 0xd38c, 0x1120, 0x6308, 0x8318,
+-      0x0220, 0x630a, 0x012e, 0x0804, 0x6341, 0x012e, 0x0804, 0x6330,
+-      0x0126, 0x00c6, 0x2091, 0x8000, 0x7007, 0x0001, 0x684c, 0xd0ac,
+-      0x0148, 0x00c6, 0x2061, 0xb874, 0x6000, 0xa084, 0xfcff, 0x6002,
+-      0x00ce, 0x0448, 0x6858, 0xa005, 0x05d0, 0x685c, 0xa065, 0x0598,
+-      0x2001, 0xb531, 0x2004, 0xa005, 0x0118, 0x080c, 0x9e17, 0x0068,
+-      0x6013, 0x0400, 0x6057, 0x0000, 0x694c, 0xd1a4, 0x0110, 0x6950,
+-      0x6156, 0x2009, 0x0041, 0x080c, 0x8646, 0x6958, 0xa18c, 0xff00,
+-      0xa186, 0x2000, 0x1140, 0x0026, 0x2009, 0x0000, 0x2011, 0xfdff,
+-      0x080c, 0x6b1b, 0x002e, 0x684c, 0xd0c4, 0x0148, 0x2061, 0xb874,
+-      0x6000, 0xd08c, 0x1120, 0x6008, 0x8000, 0x0208, 0x600a, 0x00ce,
+-      0x012e, 0x0804, 0x6333, 0x00ce, 0x012e, 0x0804, 0x632d, 0x6954,
+-      0xa186, 0x002e, 0x0d40, 0xa186, 0x002d, 0x0d28, 0xa186, 0x0045,
+-      0x0528, 0xa186, 0x002a, 0x1130, 0x2001, 0xb50c, 0x200c, 0xc194,
+-      0x2102, 0x08c8, 0xa186, 0x0020, 0x0170, 0xa186, 0x0029, 0x1d18,
+-      0x6944, 0xa18c, 0xff00, 0x810f, 0x080c, 0x4faa, 0x1960, 0x6000,
+-      0xc0e4, 0x6002, 0x0840, 0x685c, 0xa065, 0x09a8, 0x6007, 0x0024,
+-      0x2001, 0xb7b6, 0x2004, 0x6016, 0x0804, 0x61cb, 0x685c, 0xa065,
+-      0x0950, 0x00e6, 0x6860, 0xa075, 0x2001, 0xb531, 0x2004, 0xa005,
+-      0x0150, 0x080c, 0x9e17, 0x8eff, 0x0118, 0x2e60, 0x080c, 0x9e17,
+-      0x00ee, 0x0804, 0x61cb, 0x6020, 0xc0dc, 0xc0d5, 0x6022, 0x2e60,
+-      0x6007, 0x003a, 0x6870, 0xa005, 0x0130, 0x6007, 0x003b, 0x6874,
+-      0x602a, 0x6878, 0x6012, 0x6003, 0x0001, 0x080c, 0x6c8e, 0x080c,
+-      0x7174, 0x00ee, 0x0804, 0x61cb, 0x2061, 0xb874, 0x6000, 0xd084,
+-      0x0190, 0xd08c, 0x1904, 0x6341, 0x0126, 0x2091, 0x8000, 0x6204,
+-      0x8210, 0x0220, 0x6206, 0x012e, 0x0804, 0x6341, 0x012e, 0x6853,
+-      0x0016, 0x0804, 0x633a, 0x6853, 0x0007, 0x0804, 0x633a, 0x6834,
+-      0x8007, 0xa084, 0x00ff, 0x1118, 0x080c, 0x5f23, 0x0078, 0x2030,
+-      0x8001, 0x1120, 0x7007, 0x0001, 0x0051, 0x0040, 0x7007, 0x0006,
+-      0x7012, 0x2d00, 0x7016, 0x701a, 0x704b, 0x626f, 0x0005, 0x00e6,
+-      0x0126, 0x2091, 0x8000, 0xa03e, 0x2009, 0xb531, 0x210c, 0x81ff,
+-      0x1904, 0x62ed, 0x2009, 0xb50c, 0x210c, 0xd194, 0x1904, 0x6317,
+-      0x6848, 0x2070, 0xae82, 0xbd00, 0x0a04, 0x62e1, 0x2001, 0xb517,
+-      0x2004, 0xae02, 0x1a04, 0x62e1, 0x711c, 0xa186, 0x0006, 0x1904,
+-      0x62d0, 0x7018, 0xa005, 0x0904, 0x62ed, 0x2004, 0xd0e4, 0x1904,
+-      0x6312, 0x2061, 0xb874, 0x6100, 0xa184, 0x0301, 0xa086, 0x0001,
+-      0x1550, 0x7020, 0xd0dc, 0x1904, 0x631a, 0x6853, 0x0000, 0x6803,
+-      0x0000, 0x2d08, 0x7010, 0xa005, 0x1158, 0x7112, 0x684c, 0xd0f4,
+-      0x1904, 0x631d, 0x2e60, 0x080c, 0x6a77, 0x012e, 0x00ee, 0x0005,
+-      0x2068, 0x6800, 0xa005, 0x1de0, 0x6902, 0x2168, 0x684c, 0xd0f4,
+-      0x1904, 0x631d, 0x012e, 0x00ee, 0x0005, 0x012e, 0x00ee, 0x6853,
+-      0x0006, 0x0804, 0x633a, 0xd184, 0x0dc0, 0xd1c4, 0x11a8, 0x00b8,
+-      0x6944, 0xa18c, 0xff00, 0x810f, 0x080c, 0x4faa, 0x15d8, 0x6000,
+-      0xd0e4, 0x15c0, 0x711c, 0xa186, 0x0007, 0x1118, 0x6853, 0x0002,
+-      0x0498, 0x6853, 0x0008, 0x0480, 0x6853, 0x000e, 0x0468, 0x6853,
+-      0x0017, 0x0450, 0x6853, 0x0035, 0x0438, 0x2001, 0xb572, 0x2004,
+-      0xd0fc, 0x01e8, 0x6848, 0x2070, 0xae82, 0xbd00, 0x02c0, 0x605c,
+-      0xae02, 0x12a8, 0x711c, 0xa186, 0x0006, 0x1188, 0x7018, 0xa005,
+-      0x0170, 0x2004, 0xd0bc, 0x0158, 0x2039, 0x0001, 0x7000, 0xa086,
+-      0x0007, 0x1904, 0x627a, 0x7003, 0x0002, 0x0804, 0x627a, 0x6853,
+-      0x0028, 0x0010, 0x6853, 0x0029, 0x012e, 0x00ee, 0x0418, 0x6853,
+-      0x002a, 0x0cd0, 0x6853, 0x0045, 0x0cb8, 0x2e60, 0x2019, 0x0002,
+-      0x6017, 0x0014, 0x080c, 0xacd4, 0x012e, 0x00ee, 0x0005, 0x2009,
+-      0x003e, 0x0058, 0x2009, 0x0004, 0x0040, 0x2009, 0x0006, 0x0028,
+-      0x2009, 0x0016, 0x0010, 0x2009, 0x0001, 0x6854, 0xa084, 0xff00,
+-      0xa105, 0x6856, 0x0126, 0x2091, 0x8000, 0x080c, 0x5409, 0x012e,
+-      0x0005, 0x080c, 0x160f, 0x0005, 0x702c, 0x7130, 0x8108, 0xa102,
+-      0x0230, 0xa00e, 0x7034, 0x7072, 0x7038, 0x7076, 0x0058, 0x7070,
+-      0xa080, 0x0040, 0x7072, 0x1230, 0x7074, 0xa081, 0x0000, 0x7076,
+-      0xa085, 0x0001, 0x7932, 0x7132, 0x0005, 0x00d6, 0x080c, 0x6a6e,
+-      0x00de, 0x0005, 0x00d6, 0x00c6, 0x0036, 0x0026, 0x0016, 0x7007,
+-      0x0001, 0x6a44, 0xa282, 0x0004, 0x1a04, 0x63ad, 0xd284, 0x0170,
+-      0x6a4c, 0xa290, 0xb635, 0x2204, 0xa065, 0x6004, 0x05e0, 0x8007,
+-      0xa084, 0x00ff, 0xa084, 0x0006, 0x1108, 0x04a8, 0x2c10, 0x080c,
+-      0x85c1, 0x1118, 0x080c, 0x9ed0, 0x05a0, 0x621a, 0x6844, 0x0002,
+-      0x638c, 0x6391, 0x6394, 0x639a, 0x2019, 0x0002, 0x080c, 0xb059,
+-      0x0060, 0x080c, 0xaff0, 0x0048, 0x2019, 0x0002, 0x6950, 0x080c,
+-      0xb00b, 0x0018, 0x6950, 0x080c, 0xaff0, 0x080c, 0x8617, 0x6857,
+-      0x0000, 0x0126, 0x2091, 0x8000, 0x080c, 0x5409, 0x012e, 0x001e,
+-      0x002e, 0x003e, 0x00ce, 0x00de, 0x0005, 0x6857, 0x0006, 0x0c88,
+-      0x6857, 0x0002, 0x0c70, 0x6857, 0x0005, 0x0c58, 0x6857, 0x0004,
+-      0x0c40, 0x6857, 0x0007, 0x0c28, 0x00d6, 0x2011, 0x0004, 0x2204,
+-      0xa085, 0x8002, 0x2012, 0x00de, 0x0005, 0x20e1, 0x0002, 0x3d08,
+-      0x20e1, 0x2000, 0x3d00, 0xa084, 0x7000, 0x0118, 0xa086, 0x1000,
+-      0x1570, 0x20e1, 0x0000, 0x3d00, 0xa094, 0xff00, 0x8217, 0xa084,
+-      0xf000, 0xa086, 0x3000, 0x1160, 0xa184, 0xff00, 0x8007, 0xa086,
+-      0x0008, 0x11e8, 0x080c, 0x2dbf, 0x11d0, 0x080c, 0x6604, 0x0098,
+-      0x20e1, 0x0004, 0x3d60, 0xd1bc, 0x1108, 0x3e60, 0xac84, 0x0007,
+-      0x1170, 0xac82, 0xbd00, 0x0258, 0x685c, 0xac02, 0x1240, 0x2009,
+-      0x0047, 0x080c, 0x8646, 0x7a1c, 0xd284, 0x1938, 0x0005, 0xa016,
+-      0x080c, 0x185e, 0x0cc0, 0x0cd8, 0x781c, 0xd08c, 0x0500, 0x0156,
+-      0x0136, 0x0146, 0x20e1, 0x3000, 0x3d20, 0x3e28, 0xa584, 0x0076,
+-      0x1538, 0xa484, 0x7000, 0xa086, 0x1000, 0x11a8, 0x080c, 0x647f,
+-      0x01f8, 0x20e1, 0x3000, 0x7828, 0x7828, 0x080c, 0x649b, 0x014e,
+-      0x013e, 0x015e, 0x2009, 0xb7e8, 0x2104, 0xa005, 0x1108, 0x0005,
+-      0x080c, 0x7174, 0x0ce0, 0xa484, 0x7000, 0x1548, 0x080c, 0x647f,
+-      0x01d8, 0x7000, 0xa084, 0xff00, 0xa086, 0x8100, 0x0d10, 0x00a0,
+-      0xd5a4, 0x0178, 0x0056, 0x0046, 0x080c, 0x1e6e, 0x080c, 0x24b0,
+-      0x2001, 0x0160, 0x2502, 0x2001, 0x0138, 0x2202, 0x004e, 0x005e,
+-      0x0048, 0x04a9, 0x6887, 0x0000, 0x080c, 0xb3d3, 0x20e1, 0x3000,
+-      0x7828, 0x7828, 0x00b9, 0x014e, 0x013e, 0x015e, 0x0880, 0x0439,
+-      0x1130, 0x7000, 0xa084, 0xff00, 0xa086, 0x8100, 0x1d68, 0x080c,
+-      0xb3d3, 0x20e1, 0x3000, 0x7828, 0x7828, 0x0056, 0x080c, 0x6875,
+-      0x005e, 0x0c40, 0x2001, 0xb50e, 0x2004, 0xd08c, 0x0178, 0x2001,
+-      0xb500, 0x2004, 0xa086, 0x0003, 0x1148, 0x0026, 0x0036, 0x2011,
+-      0x8048, 0x2518, 0x080c, 0x3ecd, 0x003e, 0x002e, 0x0005, 0xa484,
+-      0x01ff, 0x6886, 0xa005, 0x0160, 0xa080, 0x001f, 0xa084, 0x03f8,
+-      0x80ac, 0x20e1, 0x1000, 0x2ea0, 0x2099, 0x020a, 0x53a5, 0x0005,
+-      0x20a9, 0x000c, 0x20e1, 0x1000, 0x2ea0, 0x2099, 0x020a, 0x53a5,
+-      0xa085, 0x0001, 0x0ca0, 0x7000, 0xa084, 0xff00, 0xa08c, 0xf000,
+-      0x8007, 0xa196, 0x0000, 0x1118, 0x0804, 0x6709, 0x0005, 0xa196,
+-      0x2000, 0x1148, 0x6900, 0xa18e, 0x0001, 0x1118, 0x080c, 0x4490,
+-      0x0ca8, 0x0039, 0x0c98, 0xa196, 0x8000, 0x1d80, 0x080c, 0x67b5,
+-      0x0c68, 0x00c6, 0x6a84, 0x82ff, 0x0904, 0x65fe, 0x7110, 0xa18c,
+-      0xff00, 0x810f, 0xa196, 0x0001, 0x0120, 0xa196, 0x0023, 0x1904,
+-      0x65fe, 0xa08e, 0x0023, 0x1570, 0x080c, 0x6850, 0x0904, 0x65fe,
+-      0x7124, 0x610a, 0x7030, 0xa08e, 0x0200, 0x1150, 0x7034, 0xa005,
+-      0x1904, 0x65fe, 0x2009, 0x0015, 0x080c, 0x8646, 0x0804, 0x65fe,
+-      0xa08e, 0x0214, 0x0118, 0xa08e, 0x0210, 0x1130, 0x2009, 0x0015,
+-      0x080c, 0x8646, 0x0804, 0x65fe, 0xa08e, 0x0100, 0x1904, 0x65fe,
+-      0x7034, 0xa005, 0x1904, 0x65fe, 0x2009, 0x0016, 0x080c, 0x8646,
+-      0x0804, 0x65fe, 0xa08e, 0x0022, 0x1904, 0x65fe, 0x7030, 0xa08e,
+-      0x0300, 0x1580, 0x68d4, 0xd0a4, 0x0528, 0xc0b5, 0x68d6, 0x7100,
+-      0xa18c, 0x00ff, 0x6972, 0x7004, 0x6876, 0x00f6, 0x2079, 0x0100,
+-      0x79e6, 0x78ea, 0x0006, 0xa084, 0x00ff, 0x0016, 0x2008, 0x080c,
+-      0x2847, 0x7932, 0x7936, 0x001e, 0x000e, 0x00fe, 0x080c, 0x281d,
+-      0x6952, 0x703c, 0x00e6, 0x2071, 0x0140, 0x7086, 0x2071, 0xb500,
+-      0x70a6, 0x00ee, 0x7034, 0xa005, 0x1904, 0x65fe, 0x2009, 0x0017,
+-      0x0804, 0x65c4, 0xa08e, 0x0400, 0x1158, 0x7034, 0xa005, 0x1904,
+-      0x65fe, 0x68d4, 0xc0a5, 0x68d6, 0x2009, 0x0030, 0x0804, 0x65c4,
+-      0xa08e, 0x0500, 0x1140, 0x7034, 0xa005, 0x1904, 0x65fe, 0x2009,
+-      0x0018, 0x0804, 0x65c4, 0xa08e, 0x2010, 0x1120, 0x2009, 0x0019,
+-      0x0804, 0x65c4, 0xa08e, 0x2110, 0x1120, 0x2009, 0x001a, 0x0804,
+-      0x65c4, 0xa08e, 0x5200, 0x1140, 0x7034, 0xa005, 0x1904, 0x65fe,
+-      0x2009, 0x001b, 0x0804, 0x65c4, 0xa08e, 0x5000, 0x1140, 0x7034,
+-      0xa005, 0x1904, 0x65fe, 0x2009, 0x001c, 0x0804, 0x65c4, 0xa08e,
+-      0x1300, 0x1120, 0x2009, 0x0034, 0x0804, 0x65c4, 0xa08e, 0x1200,
+-      0x1140, 0x7034, 0xa005, 0x1904, 0x65fe, 0x2009, 0x0024, 0x0804,
+-      0x65c4, 0xa08c, 0xff00, 0xa18e, 0x2400, 0x1118, 0x2009, 0x002d,
+-      0x04d8, 0xa08c, 0xff00, 0xa18e, 0x5300, 0x1118, 0x2009, 0x002a,
+-      0x0498, 0xa08e, 0x0f00, 0x1118, 0x2009, 0x0020, 0x0468, 0xa08e,
+-      0x5300, 0x1108, 0x00d8, 0xa08e, 0x6104, 0x11c0, 0x2011, 0xbb8d,
+-      0x8208, 0x2204, 0xa082, 0x0004, 0x20a8, 0x95ac, 0x95ac, 0x2011,
+-      0x8015, 0x211c, 0x8108, 0x0046, 0x2124, 0x080c, 0x3ecd, 0x004e,
+-      0x8108, 0x1f04, 0x65a7, 0x2009, 0x0023, 0x0070, 0xa08e, 0x6000,
+-      0x1118, 0x2009, 0x003f, 0x0040, 0xa08e, 0x7800, 0x1118, 0x2009,
+-      0x0045, 0x0010, 0x2009, 0x001d, 0x0016, 0x2011, 0xbb83, 0x2204,
+-      0x8211, 0x220c, 0x080c, 0x281d, 0x1598, 0x080c, 0x4f4e, 0x1580,
+-      0x6612, 0x6516, 0x86ff, 0x01e8, 0x001e, 0x0016, 0xa186, 0x0017,
+-      0x1158, 0x6870, 0xa606, 0x11a8, 0x6874, 0xa506, 0xa084, 0xff00,
+-      0x1180, 0x6000, 0xc0f5, 0x6002, 0xa186, 0x0046, 0x1150, 0x6870,
+-      0xa606, 0x1138, 0x6874, 0xa506, 0xa084, 0xff00, 0x1110, 0x001e,
+-      0x0068, 0x00c6, 0x080c, 0x85c1, 0x0168, 0x001e, 0x611a, 0x601f,
+-      0x0004, 0x7120, 0x610a, 0x001e, 0x080c, 0x8646, 0x00ce, 0x0005,
+-      0x001e, 0x0ce0, 0x00ce, 0x0ce0, 0x00c6, 0x0046, 0x080c, 0x6658,
+-      0x1904, 0x6655, 0xa28e, 0x0033, 0x11e8, 0x080c, 0x6850, 0x0904,
+-      0x6655, 0x7124, 0x610a, 0x7030, 0xa08e, 0x0200, 0x1140, 0x7034,
+-      0xa005, 0x15d8, 0x2009, 0x0015, 0x080c, 0x8646, 0x04b0, 0xa08e,
+-      0x0100, 0x1598, 0x7034, 0xa005, 0x1580, 0x2009, 0x0016, 0x080c,
+-      0x8646, 0x0458, 0xa28e, 0x0032, 0x1540, 0x7030, 0xa08e, 0x1400,
+-      0x1520, 0x2009, 0x0038, 0x0016, 0x2011, 0xbb83, 0x2204, 0x8211,
+-      0x220c, 0x080c, 0x281d, 0x11c0, 0x080c, 0x4f4e, 0x11a8, 0x6612,
+-      0x6516, 0x00c6, 0x080c, 0x85c1, 0x0170, 0x001e, 0x611a, 0x080c,
+-      0xa021, 0x601f, 0x0004, 0x7120, 0x610a, 0x001e, 0x080c, 0x8646,
+-      0x080c, 0x7174, 0x0010, 0x00ce, 0x001e, 0x004e, 0x00ce, 0x0005,
+-      0x00f6, 0x00d6, 0x0026, 0x0016, 0x0136, 0x0146, 0x0156, 0x3c00,
+-      0x0006, 0x2079, 0x0030, 0x2069, 0x0200, 0x080c, 0x1f2d, 0x1590,
+-      0x080c, 0x1dd2, 0x05e0, 0x04f1, 0x1130, 0x7908, 0xa18c, 0x1fff,
+-      0xa182, 0x0011, 0x1688, 0x20a9, 0x000c, 0x20e1, 0x0000, 0x2ea0,
+-      0x2099, 0x020a, 0x53a5, 0x20e1, 0x2000, 0x2001, 0x020a, 0x2004,
+-      0x7a0c, 0x7808, 0xa080, 0x0007, 0xa084, 0x1ff8, 0x0419, 0x1120,
+-      0xa08a, 0x0140, 0x1a0c, 0x1515, 0x80ac, 0x20e1, 0x6000, 0x2099,
+-      0x020a, 0x53a5, 0x20e1, 0x7000, 0x6828, 0x6828, 0x7803, 0x0004,
+-      0xa294, 0x0070, 0x000e, 0x20e0, 0x015e, 0x014e, 0x013e, 0x001e,
+-      0x002e, 0x00de, 0x00fe, 0x0005, 0xa016, 0x080c, 0x185e, 0xa085,
+-      0x0001, 0x0c80, 0x0006, 0x2001, 0x0111, 0x2004, 0xa084, 0x0003,
+-      0x000e, 0x0005, 0x0046, 0x00e6, 0x00d6, 0x2028, 0x2130, 0xa696,
+-      0x00ff, 0x1198, 0xa596, 0xfffd, 0x1120, 0x2009, 0x007f, 0x0804,
+-      0x6704, 0xa596, 0xfffe, 0x1118, 0x2009, 0x007e, 0x04e8, 0xa596,
+-      0xfffc, 0x1118, 0x2009, 0x0080, 0x04b8, 0x2011, 0x0000, 0x2019,
+-      0xb535, 0x231c, 0xd3ac, 0x0138, 0x2021, 0x0000, 0x20a9, 0x00ff,
+-      0x2071, 0xb635, 0x0030, 0x2021, 0x0081, 0x20a9, 0x007e, 0x2071,
+-      0xb6b6, 0x2e1c, 0x83ff, 0x1128, 0x82ff, 0x1198, 0x2410, 0xc2fd,
+-      0x0080, 0x2368, 0x6f10, 0x0006, 0x2100, 0xa706, 0x000e, 0x6b14,
+-      0x1120, 0xa346, 0x1110, 0x2408, 0x0078, 0x87ff, 0x1110, 0x83ff,
+-      0x0d58, 0x8420, 0x8e70, 0x1f04, 0x66e1, 0x82ff, 0x1118, 0xa085,
+-      0x0001, 0x0018, 0xc2fc, 0x2208, 0xa006, 0x00de, 0x00ee, 0x004e,
+-      0x0005, 0xa084, 0x0007, 0x000a, 0x0005, 0x6715, 0x6715, 0x6715,
+-      0x6862, 0x6715, 0x6716, 0x672b, 0x67a0, 0x0005, 0x7110, 0xd1bc,
+-      0x0188, 0x7120, 0x2160, 0xac8c, 0x0007, 0x1160, 0xac8a, 0xbd00,
+-      0x0248, 0x685c, 0xac02, 0x1230, 0x7124, 0x610a, 0x2009, 0x0046,
+-      0x080c, 0x8646, 0x0005, 0x00c6, 0xa484, 0x01ff, 0x0904, 0x677e,
+-      0x7110, 0xd1bc, 0x1904, 0x677e, 0x2011, 0xbb83, 0x2204, 0x8211,
+-      0x220c, 0x080c, 0x281d, 0x1904, 0x677e, 0x080c, 0x4f4e, 0x15f0,
+-      0x6612, 0x6516, 0x6000, 0xd0ec, 0x15c8, 0x6204, 0xa294, 0xff00,
+-      0x8217, 0xa286, 0x0006, 0x0148, 0x6204, 0xa294, 0x00ff, 0xa286,
+-      0x0006, 0x11a0, 0xa295, 0x0600, 0x6206, 0x00c6, 0x080c, 0x85c1,
+-      0x001e, 0x0530, 0x611a, 0x601f, 0x0006, 0x7120, 0x610a, 0x7130,
+-      0x6152, 0x2009, 0x0044, 0x080c, 0x8646, 0x00c0, 0x00c6, 0x080c,
+-      0x85c1, 0x001e, 0x0198, 0x611a, 0x601f, 0x0004, 0x7120, 0x610a,
+-      0xa286, 0x0004, 0x1118, 0x6007, 0x0005, 0x0010, 0x6007, 0x0001,
+-      0x6003, 0x0001, 0x080c, 0x6cd4, 0x080c, 0x7174, 0x00ce, 0x0005,
+-      0x2001, 0xb50d, 0x2004, 0xd0ec, 0x0120, 0x2011, 0x8049, 0x080c,
+-      0x3ecd, 0x00c6, 0x080c, 0x9ed0, 0x001e, 0x0d80, 0x611a, 0x601f,
+-      0x0006, 0x7120, 0x610a, 0x7130, 0x6152, 0x6013, 0x0300, 0x6003,
+-      0x0001, 0x6007, 0x0041, 0x080c, 0x6c8e, 0x080c, 0x7174, 0x08f0,
+-      0x7110, 0xd1bc, 0x0188, 0x7020, 0x2060, 0xac84, 0x0007, 0x1160,
+-      0xac82, 0xbd00, 0x0248, 0x685c, 0xac02, 0x1230, 0x7124, 0x610a,
+-      0x2009, 0x0045, 0x080c, 0x8646, 0x0005, 0x0006, 0x080c, 0x2dbf,
+-      0x000e, 0x1168, 0x7110, 0xa18c, 0xff00, 0x810f, 0xa18e, 0x0000,
+-      0x1130, 0xa084, 0x000f, 0xa08a, 0x0006, 0x1208, 0x000b, 0x0005,
+-      0x67ce, 0x67cf, 0x67ce, 0x67ce, 0x6838, 0x6844, 0x0005, 0x7110,
+-      0xd1bc, 0x0120, 0x702c, 0xd084, 0x0904, 0x6837, 0x700c, 0x7108,
+-      0x080c, 0x281d, 0x1904, 0x6837, 0x080c, 0x4f4e, 0x1904, 0x6837,
+-      0x6612, 0x6516, 0x6204, 0x7110, 0xd1bc, 0x01f8, 0xa28c, 0x00ff,
+-      0xa186, 0x0004, 0x0118, 0xa186, 0x0006, 0x15c8, 0x00c6, 0x080c,
+-      0x6850, 0x00ce, 0x0904, 0x6837, 0x00c6, 0x080c, 0x85c1, 0x001e,
+-      0x05f0, 0x611a, 0x080c, 0xa021, 0x601f, 0x0002, 0x7120, 0x610a,
+-      0x2009, 0x0088, 0x080c, 0x8646, 0x0490, 0xa28c, 0x00ff, 0xa186,
+-      0x0006, 0x0160, 0xa186, 0x0004, 0x0148, 0xa294, 0xff00, 0x8217,
+-      0xa286, 0x0004, 0x0118, 0xa286, 0x0006, 0x1188, 0x00c6, 0x080c,
+-      0x85c1, 0x001e, 0x01e0, 0x611a, 0x080c, 0xa021, 0x601f, 0x0005,
+-      0x7120, 0x610a, 0x2009, 0x0088, 0x080c, 0x8646, 0x0080, 0x00c6,
+-      0x080c, 0x85c1, 0x001e, 0x0158, 0x611a, 0x080c, 0xa021, 0x601f,
+-      0x0004, 0x7120, 0x610a, 0x2009, 0x0001, 0x080c, 0x8646, 0x0005,
+-      0x7110, 0xd1bc, 0x0140, 0x00a1, 0x0130, 0x7124, 0x610a, 0x2009,
+-      0x0089, 0x080c, 0x8646, 0x0005, 0x7110, 0xd1bc, 0x0140, 0x0041,
+-      0x0130, 0x7124, 0x610a, 0x2009, 0x008a, 0x080c, 0x8646, 0x0005,
+-      0x7020, 0x2060, 0xac84, 0x0007, 0x1158, 0xac82, 0xbd00, 0x0240,
+-      0x2001, 0xb517, 0x2004, 0xac02, 0x1218, 0xa085, 0x0001, 0x0005,
+-      0xa006, 0x0ce8, 0x7110, 0xd1bc, 0x1178, 0x7024, 0x2060, 0xac84,
+-      0x0007, 0x1150, 0xac82, 0xbd00, 0x0238, 0x685c, 0xac02, 0x1220,
+-      0x2009, 0x0051, 0x080c, 0x8646, 0x0005, 0x2031, 0x0105, 0x0069,
+-      0x0005, 0x2031, 0x0206, 0x0049, 0x0005, 0x2031, 0x0207, 0x0029,
+-      0x0005, 0x2031, 0x0213, 0x0009, 0x0005, 0x00c6, 0x00d6, 0x00f6,
+-      0x7000, 0xa084, 0xf000, 0xa086, 0xc000, 0x05b0, 0x080c, 0x85c1,
+-      0x0598, 0x0066, 0x00c6, 0x0046, 0x2011, 0xbb83, 0x2204, 0x8211,
+-      0x220c, 0x080c, 0x281d, 0x1580, 0x080c, 0x4f4e, 0x1568, 0x6612,
+-      0x6516, 0x2c00, 0x004e, 0x00ce, 0x601a, 0x080c, 0xa021, 0x080c,
+-      0x15f8, 0x01f0, 0x2d00, 0x6056, 0x6803, 0x0000, 0x6837, 0x0000,
+-      0x6c3a, 0xadf8, 0x000f, 0x20a9, 0x000e, 0x2fa0, 0x2e98, 0x53a3,
+-      0x006e, 0x6612, 0x6007, 0x003e, 0x601f, 0x0001, 0x6003, 0x0001,
+-      0x080c, 0x6cd4, 0x080c, 0x7174, 0x00fe, 0x00de, 0x00ce, 0x0005,
+-      0x080c, 0x8617, 0x006e, 0x0cc0, 0x004e, 0x00ce, 0x0cc8, 0x2071,
+-      0xb7f3, 0x7003, 0x0003, 0x700f, 0x0361, 0xa006, 0x701a, 0x7076,
+-      0x7012, 0x7017, 0xbd00, 0x7007, 0x0000, 0x7026, 0x702b, 0x7d92,
+-      0x7032, 0x7037, 0x7df2, 0x703b, 0xffff, 0x703f, 0xffff, 0x7042,
+-      0x7047, 0x444c, 0x704a, 0x705b, 0x6a2c, 0x2001, 0xb7a1, 0x2003,
+-      0x0003, 0x2001, 0xb7a3, 0x2003, 0x0100, 0x3a00, 0xa084, 0x0005,
+-      0x706e, 0x0005, 0x2071, 0xb7f3, 0x1d04, 0x698c, 0x2091, 0x6000,
+-      0x700c, 0x8001, 0x700e, 0x1518, 0x700f, 0x0361, 0x7007, 0x0001,
+-      0x0126, 0x2091, 0x8000, 0x7040, 0xa00d, 0x0128, 0x8109, 0x7142,
+-      0x1110, 0x7044, 0x080f, 0x00c6, 0x2061, 0xb500, 0x6034, 0x00ce,
+-      0xd0cc, 0x0180, 0x3a00, 0xa084, 0x0005, 0x726c, 0xa216, 0x0150,
+-      0x706e, 0x2011, 0x8043, 0x2018, 0x080c, 0x3ecd, 0x0018, 0x0126,
+-      0x2091, 0x8000, 0x7024, 0xa00d, 0x0188, 0x7020, 0x8001, 0x7022,
+-      0x1168, 0x7023, 0x0009, 0x8109, 0x7126, 0xa186, 0x03e8, 0x1110,
+-      0x7028, 0x080f, 0x81ff, 0x1110, 0x7028, 0x080f, 0x7030, 0xa00d,
+-      0x0180, 0x702c, 0x8001, 0x702e, 0x1160, 0x702f, 0x0009, 0x8109,
+-      0x7132, 0x0128, 0xa184, 0x007f, 0x090c, 0x7e37, 0x0010, 0x7034,
+-      0x080f, 0x7038, 0xa005, 0x0118, 0x0310, 0x8001, 0x703a, 0x703c,
+-      0xa005, 0x0118, 0x0310, 0x8001, 0x703e, 0x704c, 0xa00d, 0x0168,
+-      0x7048, 0x8001, 0x704a, 0x1148, 0x704b, 0x0009, 0x8109, 0x714e,
+-      0x1120, 0x7150, 0x714e, 0x7058, 0x080f, 0x7018, 0xa00d, 0x01d8,
+-      0x0016, 0x7074, 0xa00d, 0x0158, 0x7070, 0x8001, 0x7072, 0x1138,
+-      0x7073, 0x0009, 0x8109, 0x7176, 0x1110, 0x7078, 0x080f, 0x001e,
+-      0x7008, 0x8001, 0x700a, 0x1138, 0x700b, 0x0009, 0x8109, 0x711a,
+-      0x1110, 0x701c, 0x080f, 0x012e, 0x7004, 0x0002, 0x69b2, 0x69b3,
+-      0x69cb, 0x00e6, 0x2071, 0xb7f3, 0x7018, 0xa005, 0x1120, 0x711a,
+-      0x721e, 0x700b, 0x0009, 0x00ee, 0x0005, 0x00e6, 0x0006, 0x2071,
+-      0xb7f3, 0x701c, 0xa206, 0x1110, 0x701a, 0x701e, 0x000e, 0x00ee,
+-      0x0005, 0x00e6, 0x2071, 0xb7f3, 0x6088, 0xa102, 0x0208, 0x618a,
+-      0x00ee, 0x0005, 0x0005, 0x7110, 0x080c, 0x4faa, 0x1158, 0x6088,
+-      0x8001, 0x0240, 0x608a, 0x1130, 0x0126, 0x2091, 0x8000, 0x080c,
+-      0x7174, 0x012e, 0x8108, 0xa182, 0x00ff, 0x0218, 0xa00e, 0x7007,
+-      0x0002, 0x7112, 0x0005, 0x7014, 0x2060, 0x0126, 0x2091, 0x8000,
+-      0x603c, 0xa005, 0x0128, 0x8001, 0x603e, 0x1110, 0x080c, 0x9f0f,
+-      0x6014, 0xa005, 0x0500, 0x8001, 0x6016, 0x11e8, 0x611c, 0xa186,
+-      0x0003, 0x0118, 0xa186, 0x0006, 0x11a0, 0x6010, 0x2068, 0x6854,
+-      0xa08a, 0x199a, 0x0270, 0xa082, 0x1999, 0x6856, 0xa08a, 0x199a,
+-      0x0210, 0x2001, 0x1999, 0x8003, 0x800b, 0x810b, 0xa108, 0x6116,
+-      0x0010, 0x080c, 0x99df, 0x012e, 0xac88, 0x0018, 0x7116, 0x2001,
+-      0xed00, 0xa102, 0x0220, 0x7017, 0xbd00, 0x7007, 0x0000, 0x0005,
+-      0x00e6, 0x2071, 0xb7f3, 0x7027, 0x07d0, 0x7023, 0x0009, 0x00ee,
+-      0x0005, 0x2001, 0xb7fc, 0x2003, 0x0000, 0x0005, 0x00e6, 0x2071,
+-      0xb7f3, 0x7132, 0x702f, 0x0009, 0x00ee, 0x0005, 0x2011, 0xb7ff,
+-      0x2013, 0x0000, 0x0005, 0x00e6, 0x2071, 0xb7f3, 0x711a, 0x721e,
+-      0x700b, 0x0009, 0x00ee, 0x0005, 0x00c6, 0x0026, 0x7054, 0x8000,
+-      0x7056, 0x2061, 0xb7a1, 0x6008, 0xa086, 0x0000, 0x0158, 0x7068,
+-      0x6032, 0x7064, 0x602e, 0x7060, 0x602a, 0x705c, 0x6026, 0x2c10,
+-      0x080c, 0x1643, 0x002e, 0x00ce, 0x0005, 0x0006, 0x0016, 0x00c6,
+-      0x00d6, 0x00e6, 0x00f6, 0x080c, 0x68fa, 0x00fe, 0x00ee, 0x00de,
+-      0x00ce, 0x001e, 0x000e, 0x0005, 0x00e6, 0x2071, 0xb7f3, 0x7176,
+-      0x727a, 0x7073, 0x0009, 0x00ee, 0x0005, 0x00e6, 0x0006, 0x2071,
+-      0xb7f3, 0x7078, 0xa206, 0x1110, 0x7076, 0x707a, 0x000e, 0x00ee,
+-      0x0005, 0x00c6, 0x2061, 0xb874, 0x00ce, 0x0005, 0xa184, 0x000f,
+-      0x8003, 0x8003, 0x8003, 0xa080, 0xb874, 0x2060, 0x0005, 0x6854,
+-      0xa08a, 0x199a, 0x0210, 0x2001, 0x1999, 0xa005, 0x1150, 0x00c6,
+-      0x2061, 0xb874, 0x6014, 0x00ce, 0xa005, 0x1138, 0x2001, 0x001e,
+-      0x0020, 0xa08e, 0xffff, 0x1108, 0xa006, 0x8003, 0x800b, 0x810b,
+-      0xa108, 0x6116, 0x684c, 0xa08c, 0x00c0, 0xa18e, 0x00c0, 0x05e8,
+-      0xd0b4, 0x1138, 0xd0bc, 0x1550, 0x2009, 0x0006, 0x080c, 0x6af2,
+-      0x0005, 0xd0fc, 0x0138, 0xa084, 0x0003, 0x0120, 0xa086, 0x0003,
+-      0x1904, 0x6aec, 0x6020, 0xd0d4, 0x0130, 0xc0d4, 0x6022, 0x6860,
+-      0x602a, 0x685c, 0x602e, 0x2009, 0xb574, 0x2104, 0xd084, 0x0138,
+-      0x87ff, 0x1120, 0x2009, 0x0042, 0x080c, 0x8646, 0x0005, 0x87ff,
+-      0x1120, 0x2009, 0x0043, 0x080c, 0x8646, 0x0005, 0xd0fc, 0x0130,
+-      0xa084, 0x0003, 0x0118, 0xa086, 0x0003, 0x11f0, 0x87ff, 0x1120,
+-      0x2009, 0x0042, 0x080c, 0x8646, 0x0005, 0xd0fc, 0x0160, 0xa084,
+-      0x0003, 0xa08e, 0x0002, 0x0148, 0x87ff, 0x1120, 0x2009, 0x0041,
+-      0x080c, 0x8646, 0x0005, 0x0061, 0x0ce8, 0x87ff, 0x1dd8, 0x2009,
+-      0x0043, 0x080c, 0x8646, 0x0cb0, 0x2009, 0x0004, 0x0019, 0x0005,
+-      0x2009, 0x0001, 0x00d6, 0x6010, 0xa0ec, 0xf000, 0x0510, 0x2068,
+-      0x6952, 0x6800, 0x6012, 0xa186, 0x0001, 0x1188, 0x694c, 0xa18c,
+-      0x8100, 0xa18e, 0x8100, 0x1158, 0x00c6, 0x2061, 0xb874, 0x6200,
+-      0xd28c, 0x1120, 0x6204, 0x8210, 0x0208, 0x6206, 0x00ce, 0x080c,
+-      0x5409, 0x6010, 0xa06d, 0x0076, 0x2039, 0x0000, 0x190c, 0x6a77,
+-      0x007e, 0x00de, 0x0005, 0x0156, 0x00c6, 0x2061, 0xb874, 0x6000,
+-      0x81ff, 0x0110, 0xa205, 0x0008, 0xa204, 0x6002, 0x00ce, 0x015e,
+-      0x0005, 0x6800, 0xd08c, 0x1138, 0x6808, 0xa005, 0x0120, 0x8001,
+-      0x680a, 0xa085, 0x0001, 0x0005, 0x20a9, 0x0010, 0xa006, 0x8004,
+-      0x8086, 0x818e, 0x1208, 0xa200, 0x1f04, 0x6b38, 0x8086, 0x818e,
+-      0x0005, 0x0156, 0x20a9, 0x0010, 0xa005, 0x01b8, 0xa11a, 0x12a8,
+-      0x8213, 0x818d, 0x0228, 0xa11a, 0x1220, 0x1f04, 0x6b48, 0x0028,
+-      0xa11a, 0x2308, 0x8210, 0x1f04, 0x6b48, 0x0006, 0x3200, 0xa084,
+-      0xefff, 0x2080, 0x000e, 0x015e, 0x0005, 0x0006, 0x3200, 0xa085,
+-      0x1000, 0x0cb8, 0x0126, 0x2091, 0x2800, 0x2079, 0xb7e0, 0x012e,
+-      0x00d6, 0x2069, 0xb7e0, 0x6803, 0x0005, 0x2069, 0x0004, 0x2d04,
+-      0xa085, 0x8001, 0x206a, 0x00de, 0x0005, 0x00c6, 0x6027, 0x0001,
+-      0x7804, 0xa084, 0x0007, 0x0002, 0x6b86, 0x6ba7, 0x6bfa, 0x6b8c,
+-      0x6ba7, 0x6b86, 0x6b84, 0x6b84, 0x080c, 0x1515, 0x080c, 0x6a11,
+-      0x080c, 0x7174, 0x00ce, 0x0005, 0x62c0, 0x82ff, 0x1110, 0x00ce,
+-      0x0005, 0x2011, 0x4add, 0x080c, 0x699d, 0x7828, 0xa092, 0x00c8,
+-      0x1228, 0x8000, 0x782a, 0x080c, 0x4b17, 0x0c88, 0x080c, 0x4add,
+-      0x7807, 0x0003, 0x7827, 0x0000, 0x782b, 0x0000, 0x0c40, 0x080c,
+-      0x6a11, 0x3c00, 0x0006, 0x2011, 0x0209, 0x20e1, 0x4000, 0x2214,
+-      0x000e, 0x20e0, 0x82ff, 0x0178, 0x62c0, 0x82ff, 0x1160, 0x782b,
+-      0x0000, 0x7824, 0xa065, 0x090c, 0x1515, 0x2009, 0x0013, 0x080c,
+-      0x8646, 0x00ce, 0x0005, 0x3900, 0xa082, 0xb92c, 0x1210, 0x080c,
+-      0x832c, 0x00c6, 0x7824, 0xa065, 0x090c, 0x1515, 0x7804, 0xa086,
+-      0x0004, 0x0904, 0x6c3a, 0x7828, 0xa092, 0x2710, 0x1230, 0x8000,
+-      0x782a, 0x00ce, 0x080c, 0x7d6e, 0x0c20, 0x6104, 0xa186, 0x0003,
+-      0x1188, 0x00e6, 0x2071, 0xb500, 0x70e0, 0x00ee, 0xd08c, 0x0150,
+-      0x00c6, 0x00e6, 0x2061, 0x0100, 0x2071, 0xb500, 0x080c, 0x4b20,
+-      0x00ee, 0x00ce, 0x080c, 0xb438, 0x2009, 0x0014, 0x080c, 0x8646,
+-      0x00ce, 0x0838, 0x2001, 0xb7fc, 0x2003, 0x0000, 0x62c0, 0x82ff,
+-      0x1160, 0x782b, 0x0000, 0x7824, 0xa065, 0x090c, 0x1515, 0x2009,
+-      0x0013, 0x080c, 0x869a, 0x00ce, 0x0005, 0x00c6, 0x00d6, 0x3900,
+-      0xa082, 0xb92c, 0x1210, 0x080c, 0x832c, 0x7824, 0xa005, 0x090c,
+-      0x1515, 0x781c, 0xa06d, 0x090c, 0x1515, 0x6800, 0xc0dc, 0x6802,
+-      0x7924, 0x2160, 0x080c, 0x8617, 0x693c, 0x81ff, 0x090c, 0x1515,
+-      0x8109, 0x693e, 0x6854, 0xa015, 0x0110, 0x7a1e, 0x0010, 0x7918,
+-      0x791e, 0x7807, 0x0000, 0x7827, 0x0000, 0x00de, 0x00ce, 0x080c,
+-      0x7174, 0x0888, 0x6104, 0xa186, 0x0002, 0x0128, 0xa186, 0x0004,
+-      0x0110, 0x0804, 0x6bd3, 0x7808, 0xac06, 0x0904, 0x6bd3, 0x080c,
+-      0x7091, 0x080c, 0x6cd4, 0x00ce, 0x080c, 0x7174, 0x0804, 0x6bc1,
+-      0x00c6, 0x6027, 0x0002, 0x62c8, 0x60c4, 0xa205, 0x1178, 0x793c,
+-      0xa1e5, 0x0000, 0x0130, 0x2009, 0x0049, 0x080c, 0x8646, 0x00ce,
+-      0x0005, 0x2011, 0xb7ff, 0x2013, 0x0000, 0x0cc8, 0x3908, 0xa192,
+-      0xb92c, 0x1210, 0x080c, 0x832c, 0x793c, 0x81ff, 0x0d90, 0x7944,
+-      0xa192, 0x7530, 0x12b8, 0x8108, 0x7946, 0x793c, 0xa188, 0x0007,
+-      0x210c, 0xa18e, 0x0006, 0x1138, 0x6014, 0xa084, 0x0184, 0xa085,
+-      0x0012, 0x6016, 0x08e0, 0x6014, 0xa084, 0x0184, 0xa085, 0x0016,
+-      0x6016, 0x08a8, 0x7848, 0xc085, 0x784a, 0x0888, 0x0006, 0x0016,
+-      0x00c6, 0x0126, 0x2091, 0x8000, 0x600f, 0x0000, 0x2c08, 0x2061,
+-      0xb7e0, 0x6020, 0x8000, 0x6022, 0x6010, 0xa005, 0x0148, 0xa080,
+-      0x0003, 0x2102, 0x6112, 0x012e, 0x00ce, 0x001e, 0x000e, 0x0005,
+-      0x6116, 0x6112, 0x0cc0, 0x00d6, 0x2069, 0xb7e0, 0x6000, 0xd0d4,
+-      0x0168, 0x6820, 0x8000, 0x6822, 0xa086, 0x0001, 0x1110, 0x2c00,
+-      0x681e, 0x6804, 0xa084, 0x0007, 0x0804, 0x717a, 0xc0d5, 0x6002,
+-      0x6818, 0xa005, 0x0158, 0x6056, 0x605b, 0x0000, 0x0006, 0x2c00,
+-      0x681a, 0x00de, 0x685a, 0x2069, 0xb7e0, 0x0c18, 0x6056, 0x605a,
+-      0x2c00, 0x681a, 0x681e, 0x08e8, 0x0006, 0x0016, 0x00c6, 0x0126,
+-      0x2091, 0x8000, 0x600f, 0x0000, 0x2c08, 0x2061, 0xb7e0, 0x6020,
+-      0x8000, 0x6022, 0x6008, 0xa005, 0x0148, 0xa080, 0x0003, 0x2102,
+-      0x610a, 0x012e, 0x00ce, 0x001e, 0x000e, 0x0005, 0x610e, 0x610a,
+-      0x0cc0, 0x00c6, 0x600f, 0x0000, 0x2c08, 0x2061, 0xb7e0, 0x6034,
+-      0xa005, 0x0130, 0xa080, 0x0003, 0x2102, 0x6136, 0x00ce, 0x0005,
+-      0x613a, 0x6136, 0x0cd8, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0076,
+-      0x0066, 0x0056, 0x0036, 0x0026, 0x0016, 0x0006, 0x0126, 0xa02e,
+-      0x2071, 0xb7e0, 0x7638, 0x2660, 0x2678, 0x2091, 0x8000, 0x8cff,
+-      0x0904, 0x6d7c, 0x6018, 0xa080, 0x0028, 0x2004, 0xa206, 0x1904,
+-      0x6d77, 0x87ff, 0x0120, 0x6050, 0xa106, 0x1904, 0x6d77, 0x703c,
+-      0xac06, 0x1190, 0x0036, 0x2019, 0x0001, 0x080c, 0x7fe5, 0x7033,
+-      0x0000, 0x703f, 0x0000, 0x7043, 0x0000, 0x7047, 0x0000, 0x704b,
+-      0x0000, 0x003e, 0x2029, 0x0001, 0x7038, 0xac36, 0x1110, 0x660c,
+-      0x763a, 0x7034, 0xac36, 0x1140, 0x2c00, 0xaf36, 0x0118, 0x2f00,
+-      0x7036, 0x0010, 0x7037, 0x0000, 0x660c, 0x0066, 0x2c00, 0xaf06,
+-      0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f, 0x0000, 0x080c, 0x9c54,
+-      0x01c8, 0x6010, 0x2068, 0x601c, 0xa086, 0x0003, 0x1580, 0x6837,
+-      0x0103, 0x6b4a, 0x6847, 0x0000, 0x0016, 0x0036, 0x0076, 0x080c,
+-      0x9ec6, 0x080c, 0xb374, 0x080c, 0x5409, 0x007e, 0x003e, 0x001e,
+-      0x080c, 0x9e0b, 0x080c, 0x9e17, 0x00ce, 0x0804, 0x6d17, 0x2c78,
+-      0x600c, 0x2060, 0x0804, 0x6d17, 0x85ff, 0x0120, 0x0036, 0x080c,
+-      0x7231, 0x003e, 0x012e, 0x000e, 0x001e, 0x002e, 0x003e, 0x005e,
+-      0x006e, 0x007e, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x0005, 0x601c,
+-      0xa086, 0x0006, 0x1158, 0x0016, 0x0036, 0x0076, 0x080c, 0xb374,
+-      0x080c, 0xb08d, 0x007e, 0x003e, 0x001e, 0x08a0, 0x601c, 0xa086,
+-      0x000a, 0x0904, 0x6d61, 0x0804, 0x6d5f, 0x0006, 0x0066, 0x00c6,
+-      0x00d6, 0x00f6, 0x2031, 0x0000, 0x0126, 0x2091, 0x8000, 0x2079,
+-      0xb7e0, 0x7838, 0xa065, 0x0568, 0x600c, 0x0006, 0x600f, 0x0000,
+-      0x783c, 0xac06, 0x1180, 0x0036, 0x2019, 0x0001, 0x080c, 0x7fe5,
+-      0x7833, 0x0000, 0x783f, 0x0000, 0x7843, 0x0000, 0x7847, 0x0000,
+-      0x784b, 0x0000, 0x003e, 0x080c, 0x9c54, 0x0178, 0x6010, 0x2068,
+-      0x601c, 0xa086, 0x0003, 0x11b0, 0x6837, 0x0103, 0x6b4a, 0x6847,
+-      0x0000, 0x080c, 0x5409, 0x080c, 0x9e0b, 0x080c, 0x9e17, 0x000e,
+-      0x0888, 0x7e3a, 0x7e36, 0x012e, 0x00fe, 0x00de, 0x00ce, 0x006e,
+-      0x000e, 0x0005, 0x601c, 0xa086, 0x0006, 0x1118, 0x080c, 0xb08d,
+-      0x0c60, 0x601c, 0xa086, 0x000a, 0x0d08, 0x08f0, 0x0016, 0x0026,
+-      0x0086, 0x2041, 0x0000, 0x0099, 0x080c, 0x6ec4, 0x008e, 0x002e,
+-      0x001e, 0x0005, 0x00f6, 0x0126, 0x2079, 0xb7e0, 0x2091, 0x8000,
+-      0x080c, 0x6f51, 0x080c, 0x6fc3, 0x012e, 0x00fe, 0x0005, 0x00f6,
+-      0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0016, 0x0006, 0x0126, 0x2091,
+-      0x8000, 0x2071, 0xb7e0, 0x7614, 0x2660, 0x2678, 0x8cff, 0x0904,
+-      0x6e9a, 0x6018, 0xa080, 0x0028, 0x2004, 0xa206, 0x1904, 0x6e95,
+-      0x88ff, 0x0120, 0x6050, 0xa106, 0x1904, 0x6e95, 0x7024, 0xac06,
+-      0x1538, 0x2069, 0x0100, 0x68c0, 0xa005, 0x01f0, 0x080c, 0x6a11,
+-      0x080c, 0x7d7b, 0x68c3, 0x0000, 0x080c, 0x8247, 0x7027, 0x0000,
++      0x2001, 0xb78f, 0x2004, 0x080c, 0x2872, 0x60e2, 0x2001, 0xb50c,
++      0x200c, 0xc1b4, 0x2102, 0x00ee, 0x00de, 0x00ce, 0x003e, 0x002e,
++      0x001e, 0x015e, 0x0005, 0x0156, 0x0016, 0x0026, 0x0036, 0x0046,
++      0x00c6, 0x00e6, 0x2061, 0x0100, 0x2071, 0xb500, 0x7130, 0xd184,
++      0x1180, 0x2011, 0xb553, 0x2214, 0xd2ec, 0x0138, 0xc18d, 0x7132,
++      0x2011, 0xb553, 0x2214, 0xd2ac, 0x1120, 0x7030, 0xd08c, 0x0904,
++      0x5d68, 0x7130, 0xc185, 0x7132, 0x2011, 0xb553, 0x220c, 0xd1a4,
++      0x0530, 0x0016, 0x2019, 0x000e, 0x080c, 0xb065, 0x0156, 0x20a9,
++      0x007f, 0x2009, 0x0000, 0xa186, 0x007e, 0x01a0, 0xa186, 0x0080,
++      0x0188, 0x080c, 0x4fa9, 0x1170, 0x8127, 0xa006, 0x0016, 0x2009,
++      0x000e, 0x080c, 0xb0e8, 0x2009, 0x0001, 0x2011, 0x0100, 0x080c,
++      0x6b1a, 0x001e, 0x8108, 0x1f04, 0x5d33, 0x015e, 0x001e, 0xd1ac,
++      0x1148, 0x0016, 0x2009, 0x0000, 0x2019, 0x0004, 0x080c, 0x2c6f,
++      0x001e, 0x0070, 0x0156, 0x20a9, 0x007f, 0x2009, 0x0000, 0x080c,
++      0x4fa9, 0x1110, 0x080c, 0x4c0b, 0x8108, 0x1f04, 0x5d5f, 0x015e,
++      0x080c, 0x1e47, 0x2011, 0x0003, 0x080c, 0x8075, 0x2011, 0x0002,
++      0x080c, 0x807f, 0x080c, 0x7f59, 0x0036, 0x2019, 0x0000, 0x080c,
++      0x7fe4, 0x003e, 0x60e3, 0x0000, 0x2001, 0xb500, 0x2003, 0x0001,
++      0x080c, 0x5a07, 0x00ee, 0x00ce, 0x004e, 0x003e, 0x002e, 0x001e,
++      0x015e, 0x0005, 0x2071, 0xb5e2, 0x7003, 0x0000, 0x7007, 0x0000,
++      0x700f, 0x0000, 0x702b, 0x0001, 0x704f, 0x0000, 0x7053, 0x0001,
++      0x705f, 0x0020, 0x7063, 0x0040, 0x7083, 0x0000, 0x708b, 0x0000,
++      0x708f, 0x0001, 0x70bf, 0x0000, 0x0005, 0x00e6, 0x2071, 0xb5e2,
++      0x6848, 0xa005, 0x1130, 0x7028, 0xc085, 0x702a, 0xa085, 0x0001,
++      0x0428, 0x6a50, 0x7236, 0x6b54, 0x733a, 0x6858, 0x703e, 0x707a,
++      0x685c, 0x7042, 0x707e, 0x6848, 0x702e, 0x6840, 0x7032, 0x2009,
++      0x000c, 0x200a, 0x8007, 0x8006, 0x8006, 0xa08c, 0x003f, 0xa084,
++      0xffc0, 0xa210, 0x2100, 0xa319, 0x7272, 0x7376, 0x7028, 0xc084,
++      0x702a, 0x7007, 0x0001, 0x700f, 0x0000, 0xa006, 0x00ee, 0x0005,
++      0x2b78, 0x2071, 0xb5e2, 0x7004, 0x0043, 0x700c, 0x0002, 0x5de4,
++      0x5ddb, 0x5ddb, 0x5ddb, 0x5ddb, 0x0005, 0x5e3a, 0x5e3b, 0x5e6d,
++      0x5e6e, 0x5e38, 0x5ebc, 0x5ec1, 0x5ef2, 0x5ef3, 0x5f0e, 0x5f0f,
++      0x5f10, 0x5f11, 0x5f12, 0x5f13, 0x5fc9, 0x5ff0, 0x700c, 0x0002,
++      0x5dfd, 0x5e38, 0x5e38, 0x5e39, 0x5e39, 0x7830, 0x7930, 0xa106,
++      0x0120, 0x7830, 0x7930, 0xa106, 0x1510, 0x7030, 0xa10a, 0x01f8,
++      0x1210, 0x712c, 0xa10a, 0xa18a, 0x0002, 0x12d0, 0x080c, 0x15df,
++      0x01b0, 0x2d00, 0x705a, 0x7063, 0x0040, 0x2001, 0x0003, 0x7057,
++      0x0000, 0x0126, 0x0006, 0x2091, 0x8000, 0x2009, 0xb812, 0x2104,
++      0xc085, 0x200a, 0x000e, 0x700e, 0x012e, 0x080c, 0x165f, 0x0005,
++      0x080c, 0x15df, 0x0de0, 0x2d00, 0x705a, 0x080c, 0x15df, 0x1108,
++      0x0c10, 0x2d00, 0x7086, 0x7063, 0x0080, 0x2001, 0x0004, 0x08f8,
++      0x0005, 0x0005, 0x0005, 0x700c, 0x0002, 0x5e42, 0x5e45, 0x5e53,
++      0x5e6c, 0x5e6c, 0x080c, 0x5df6, 0x0005, 0x0126, 0x8001, 0x700e,
++      0x7058, 0x0006, 0x080c, 0x6343, 0x0120, 0x2091, 0x8000, 0x080c,
++      0x5df6, 0x00de, 0x0048, 0x0126, 0x8001, 0x700e, 0x080c, 0x6343,
++      0x7058, 0x2068, 0x7084, 0x705a, 0x6803, 0x0000, 0x6807, 0x0000,
++      0x6834, 0xa084, 0x00ff, 0xa08a, 0x003a, 0x1218, 0x00db, 0x012e,
++      0x0005, 0x012e, 0x080c, 0x5f14, 0x0005, 0x0005, 0x0005, 0x00e6,
++      0x2071, 0xb5e2, 0x700c, 0x0002, 0x5e79, 0x5e79, 0x5e79, 0x5e7b,
++      0x5e7e, 0x00ee, 0x0005, 0x700f, 0x0001, 0x0010, 0x700f, 0x0002,
++      0x00ee, 0x0005, 0x5f14, 0x5f14, 0x5f30, 0x5f14, 0x60ad, 0x5f14,
++      0x5f14, 0x5f14, 0x5f14, 0x5f14, 0x5f30, 0x60ef, 0x6132, 0x617b,
++      0x618f, 0x5f14, 0x5f14, 0x5f4c, 0x5f30, 0x5f14, 0x5f14, 0x5fa6,
++      0x623b, 0x6256, 0x5f14, 0x5f4c, 0x5f14, 0x5f14, 0x5f14, 0x5f14,
++      0x5f9c, 0x6256, 0x5f14, 0x5f14, 0x5f14, 0x5f14, 0x5f14, 0x5f14,
++      0x5f14, 0x5f14, 0x5f14, 0x5f60, 0x5f14, 0x5f14, 0x5f14, 0x5f14,
++      0x5f14, 0x5f14, 0x5f14, 0x5f14, 0x5f14, 0x6361, 0x5f14, 0x5f14,
++      0x5f14, 0x5f14, 0x5f14, 0x5f75, 0x7020, 0x2068, 0x080c, 0x160f,
++      0x0005, 0x700c, 0x0002, 0x5ec8, 0x5ecb, 0x5ed9, 0x5ef1, 0x5ef1,
++      0x080c, 0x5df6, 0x0005, 0x0126, 0x8001, 0x700e, 0x7058, 0x0006,
++      0x080c, 0x6343, 0x0120, 0x2091, 0x8000, 0x080c, 0x5df6, 0x00de,
++      0x0048, 0x0126, 0x8001, 0x700e, 0x080c, 0x6343, 0x7058, 0x2068,
++      0x7084, 0x705a, 0x6803, 0x0000, 0x6807, 0x0000, 0x6834, 0xa084,
++      0x00ff, 0xa08a, 0x001a, 0x1218, 0x003b, 0x012e, 0x0005, 0x012e,
++      0x0419, 0x0005, 0x0005, 0x0005, 0x5f14, 0x5f30, 0x6099, 0x5f14,
++      0x5f30, 0x5f14, 0x5f30, 0x5f30, 0x5f14, 0x5f30, 0x6099, 0x5f30,
++      0x5f30, 0x5f30, 0x5f30, 0x5f30, 0x5f14, 0x5f30, 0x6099, 0x5f14,
++      0x5f14, 0x5f30, 0x5f14, 0x5f14, 0x5f14, 0x5f30, 0x0005, 0x0005,
++      0x0005, 0x0005, 0x0005, 0x0005, 0x7007, 0x0001, 0x6838, 0xa084,
++      0x00ff, 0xc0d5, 0x683a, 0x0126, 0x2091, 0x8000, 0x080c, 0x5408,
++      0x012e, 0x0005, 0x7007, 0x0001, 0x6838, 0xa084, 0x00ff, 0xc0e5,
++      0x683a, 0x0126, 0x2091, 0x8000, 0x080c, 0x5408, 0x012e, 0x0005,
++      0x7007, 0x0001, 0x6838, 0xa084, 0x00ff, 0xc0ed, 0x683a, 0x0126,
++      0x2091, 0x8000, 0x080c, 0x5408, 0x012e, 0x0005, 0x7007, 0x0001,
++      0x6838, 0xa084, 0x00ff, 0xc0dd, 0x683a, 0x0126, 0x2091, 0x8000,
++      0x080c, 0x5408, 0x012e, 0x0005, 0x6834, 0x8007, 0xa084, 0x00ff,
++      0x0988, 0x8001, 0x1120, 0x7007, 0x0001, 0x0804, 0x6059, 0x7007,
++      0x0006, 0x7012, 0x2d00, 0x7016, 0x701a, 0x704b, 0x6059, 0x0005,
++      0x6834, 0x8007, 0xa084, 0x00ff, 0x0904, 0x5f22, 0x8001, 0x1120,
++      0x7007, 0x0001, 0x0804, 0x6076, 0x7007, 0x0006, 0x7012, 0x2d00,
++      0x7016, 0x701a, 0x704b, 0x6076, 0x0005, 0x6834, 0x8007, 0xa084,
++      0x00ff, 0xa086, 0x0001, 0x1904, 0x5f22, 0x7007, 0x0001, 0x2009,
++      0xb531, 0x210c, 0x81ff, 0x11a8, 0x6838, 0xa084, 0x00ff, 0x683a,
++      0x6853, 0x0000, 0x080c, 0x4d82, 0x1108, 0x0005, 0x0126, 0x2091,
++      0x8000, 0x6837, 0x0139, 0x684a, 0x6952, 0x080c, 0x5408, 0x012e,
++      0x0ca0, 0x2001, 0x0028, 0x0c90, 0x684c, 0xa084, 0x00c0, 0xa086,
++      0x00c0, 0x1120, 0x7007, 0x0001, 0x0804, 0x626e, 0x2d00, 0x7016,
++      0x701a, 0x20a9, 0x0004, 0xa080, 0x0024, 0x2098, 0x20a1, 0xb60d,
++      0x53a3, 0x6858, 0x7012, 0xa082, 0x0401, 0x1a04, 0x5f3e, 0x6a84,
++      0xa28a, 0x0002, 0x1a04, 0x5f3e, 0x82ff, 0x1138, 0x6888, 0x698c,
++      0xa105, 0x0118, 0x2001, 0x602c, 0x0018, 0xa280, 0x6022, 0x2005,
++      0x70c6, 0x7010, 0xa015, 0x0904, 0x600e, 0x080c, 0x15df, 0x1118,
++      0x7007, 0x000f, 0x0005, 0x2d00, 0x7022, 0x70c4, 0x2060, 0x2c05,
++      0x6836, 0xe004, 0xad00, 0x7096, 0xe008, 0xa20a, 0x1210, 0xa00e,
++      0x2200, 0x7112, 0xe20c, 0x8003, 0x800b, 0xa296, 0x0004, 0x0108,
++      0xa108, 0x719a, 0x810b, 0x719e, 0xae90, 0x0022, 0x080c, 0x1643,
++      0x7090, 0xa08e, 0x0100, 0x0170, 0xa086, 0x0200, 0x0118, 0x7007,
++      0x0010, 0x0005, 0x7020, 0x2068, 0x080c, 0x160f, 0x7014, 0x2068,
++      0x0804, 0x5f3e, 0x7020, 0x2068, 0x7018, 0x6802, 0x6807, 0x0000,
++      0x2d08, 0x2068, 0x6906, 0x711a, 0x0804, 0x5fc9, 0x7014, 0x2068,
++      0x7007, 0x0001, 0x6884, 0xa005, 0x1128, 0x6888, 0x698c, 0xa105,
++      0x0108, 0x00b1, 0x6834, 0xa084, 0x00ff, 0xa086, 0x001e, 0x0904,
++      0x626e, 0x04b8, 0x6024, 0x6028, 0x0002, 0x0011, 0x0007, 0x0004,
++      0x000a, 0x000f, 0x0005, 0x0006, 0x000a, 0x0011, 0x0005, 0x0004,
++      0x00f6, 0x00e6, 0x00c6, 0x0076, 0x0066, 0x6f88, 0x6e8c, 0x6804,
++      0x2060, 0xacf0, 0x0021, 0xacf8, 0x0027, 0x2009, 0x0005, 0x700c,
++      0x7816, 0x7008, 0x7812, 0x7004, 0x7806, 0x7000, 0x7802, 0x7e0e,
++      0x7f0a, 0x8109, 0x0128, 0xaef2, 0x0004, 0xaffa, 0x0006, 0x0c78,
++      0x6004, 0xa065, 0x1d30, 0x006e, 0x007e, 0x00ce, 0x00ee, 0x00fe,
++      0x0005, 0x2009, 0xb531, 0x210c, 0x81ff, 0x1198, 0x6838, 0xa084,
++      0x00ff, 0x683a, 0x080c, 0x4c64, 0x1108, 0x0005, 0x080c, 0x54db,
++      0x0126, 0x2091, 0x8000, 0x080c, 0x9ecc, 0x080c, 0x5408, 0x012e,
++      0x0ca0, 0x2001, 0x0028, 0x2009, 0x0000, 0x0c80, 0x2009, 0xb531,
++      0x210c, 0x81ff, 0x11b0, 0x6858, 0xa005, 0x01c0, 0x6838, 0xa084,
++      0x00ff, 0x683a, 0x6853, 0x0000, 0x080c, 0x4d26, 0x1108, 0x0005,
++      0x0126, 0x2091, 0x8000, 0x684a, 0x6952, 0x080c, 0x5408, 0x012e,
++      0x0cb0, 0x2001, 0x0028, 0x2009, 0x0000, 0x0c90, 0x2001, 0x0000,
++      0x0c78, 0x7018, 0x6802, 0x2d08, 0x2068, 0x6906, 0x711a, 0x7010,
++      0x8001, 0x7012, 0x0118, 0x7007, 0x0006, 0x0030, 0x7014, 0x2068,
++      0x7007, 0x0001, 0x7048, 0x080f, 0x0005, 0x7007, 0x0001, 0x6944,
++      0x810f, 0xa18c, 0x00ff, 0x6848, 0xa084, 0x00ff, 0x20a9, 0x0001,
++      0xa096, 0x0001, 0x01b0, 0x2009, 0x0000, 0x20a9, 0x00ff, 0xa096,
++      0x0002, 0x0178, 0xa005, 0x11f0, 0x6944, 0x810f, 0xa18c, 0x00ff,
++      0x080c, 0x4fa9, 0x11b8, 0x0066, 0x6e50, 0x080c, 0x50a8, 0x006e,
++      0x0088, 0x0046, 0x2011, 0xb50c, 0x2224, 0xc484, 0x2412, 0x004e,
++      0x00c6, 0x080c, 0x4fa9, 0x1110, 0x080c, 0x5209, 0x8108, 0x1f04,
++      0x60d9, 0x00ce, 0x684c, 0xd084, 0x1118, 0x080c, 0x160f, 0x0005,
++      0x0126, 0x2091, 0x8000, 0x080c, 0x5408, 0x012e, 0x0005, 0x0126,
++      0x2091, 0x8000, 0x7007, 0x0001, 0x2001, 0xb553, 0x2004, 0xd0a4,
++      0x0580, 0x2061, 0xb874, 0x6100, 0xd184, 0x0178, 0x6858, 0xa084,
++      0x00ff, 0x1550, 0x6000, 0xd084, 0x0520, 0x6004, 0xa005, 0x1538,
++      0x6003, 0x0000, 0x600b, 0x0000, 0x00c8, 0x2011, 0x0001, 0x6860,
++      0xa005, 0x1110, 0x2001, 0x001e, 0x8000, 0x6016, 0x6858, 0xa084,
++      0x00ff, 0x0178, 0x6006, 0x6858, 0x8007, 0xa084, 0x00ff, 0x0148,
++      0x600a, 0x6858, 0x8000, 0x1108, 0xc28d, 0x6202, 0x012e, 0x0804,
++      0x6332, 0x012e, 0x0804, 0x632c, 0x012e, 0x0804, 0x6326, 0x012e,
++      0x0804, 0x6329, 0x0126, 0x2091, 0x8000, 0x7007, 0x0001, 0x2001,
++      0xb553, 0x2004, 0xd0a4, 0x05e0, 0x2061, 0xb874, 0x6000, 0xd084,
++      0x05b8, 0x6204, 0x6308, 0xd08c, 0x1530, 0x6c48, 0xa484, 0x0003,
++      0x0170, 0x6958, 0xa18c, 0x00ff, 0x8001, 0x1120, 0x2100, 0xa210,
++      0x0620, 0x0028, 0x8001, 0x1508, 0x2100, 0xa212, 0x02f0, 0xa484,
++      0x000c, 0x0188, 0x6958, 0x810f, 0xa18c, 0x00ff, 0xa082, 0x0004,
++      0x1120, 0x2100, 0xa318, 0x0288, 0x0030, 0xa082, 0x0004, 0x1168,
++      0x2100, 0xa31a, 0x0250, 0x6860, 0xa005, 0x0110, 0x8000, 0x6016,
++      0x6206, 0x630a, 0x012e, 0x0804, 0x6332, 0x012e, 0x0804, 0x632f,
++      0x012e, 0x0804, 0x632c, 0x0126, 0x2091, 0x8000, 0x7007, 0x0001,
++      0x2061, 0xb874, 0x6300, 0xd38c, 0x1120, 0x6308, 0x8318, 0x0220,
++      0x630a, 0x012e, 0x0804, 0x6340, 0x012e, 0x0804, 0x632f, 0x0126,
++      0x00c6, 0x2091, 0x8000, 0x7007, 0x0001, 0x684c, 0xd0ac, 0x0148,
++      0x00c6, 0x2061, 0xb874, 0x6000, 0xa084, 0xfcff, 0x6002, 0x00ce,
++      0x0448, 0x6858, 0xa005, 0x05d0, 0x685c, 0xa065, 0x0598, 0x2001,
++      0xb531, 0x2004, 0xa005, 0x0118, 0x080c, 0x9e1d, 0x0068, 0x6013,
++      0x0400, 0x6057, 0x0000, 0x694c, 0xd1a4, 0x0110, 0x6950, 0x6156,
++      0x2009, 0x0041, 0x080c, 0x864c, 0x6958, 0xa18c, 0xff00, 0xa186,
++      0x2000, 0x1140, 0x0026, 0x2009, 0x0000, 0x2011, 0xfdff, 0x080c,
++      0x6b1a, 0x002e, 0x684c, 0xd0c4, 0x0148, 0x2061, 0xb874, 0x6000,
++      0xd08c, 0x1120, 0x6008, 0x8000, 0x0208, 0x600a, 0x00ce, 0x012e,
++      0x0804, 0x6332, 0x00ce, 0x012e, 0x0804, 0x632c, 0x6954, 0xa186,
++      0x002e, 0x0d40, 0xa186, 0x002d, 0x0d28, 0xa186, 0x0045, 0x0528,
++      0xa186, 0x002a, 0x1130, 0x2001, 0xb50c, 0x200c, 0xc194, 0x2102,
++      0x08c8, 0xa186, 0x0020, 0x0170, 0xa186, 0x0029, 0x1d18, 0x6944,
++      0xa18c, 0xff00, 0x810f, 0x080c, 0x4fa9, 0x1960, 0x6000, 0xc0e4,
++      0x6002, 0x0840, 0x685c, 0xa065, 0x09a8, 0x6007, 0x0024, 0x2001,
++      0xb7b6, 0x2004, 0x6016, 0x0804, 0x61ca, 0x685c, 0xa065, 0x0950,
++      0x00e6, 0x6860, 0xa075, 0x2001, 0xb531, 0x2004, 0xa005, 0x0150,
++      0x080c, 0x9e1d, 0x8eff, 0x0118, 0x2e60, 0x080c, 0x9e1d, 0x00ee,
++      0x0804, 0x61ca, 0x6020, 0xc0dc, 0xc0d5, 0x6022, 0x2e60, 0x6007,
++      0x003a, 0x6870, 0xa005, 0x0130, 0x6007, 0x003b, 0x6874, 0x602a,
++      0x6878, 0x6012, 0x6003, 0x0001, 0x080c, 0x6c8d, 0x080c, 0x7173,
++      0x00ee, 0x0804, 0x61ca, 0x2061, 0xb874, 0x6000, 0xd084, 0x0190,
++      0xd08c, 0x1904, 0x6340, 0x0126, 0x2091, 0x8000, 0x6204, 0x8210,
++      0x0220, 0x6206, 0x012e, 0x0804, 0x6340, 0x012e, 0x6853, 0x0016,
++      0x0804, 0x6339, 0x6853, 0x0007, 0x0804, 0x6339, 0x6834, 0x8007,
++      0xa084, 0x00ff, 0x1118, 0x080c, 0x5f22, 0x0078, 0x2030, 0x8001,
++      0x1120, 0x7007, 0x0001, 0x0051, 0x0040, 0x7007, 0x0006, 0x7012,
++      0x2d00, 0x7016, 0x701a, 0x704b, 0x626e, 0x0005, 0x00e6, 0x0126,
++      0x2091, 0x8000, 0xa03e, 0x2009, 0xb531, 0x210c, 0x81ff, 0x1904,
++      0x62ec, 0x2009, 0xb50c, 0x210c, 0xd194, 0x1904, 0x6316, 0x6848,
++      0x2070, 0xae82, 0xbd00, 0x0a04, 0x62e0, 0x2001, 0xb517, 0x2004,
++      0xae02, 0x1a04, 0x62e0, 0x711c, 0xa186, 0x0006, 0x1904, 0x62cf,
++      0x7018, 0xa005, 0x0904, 0x62ec, 0x2004, 0xd0e4, 0x1904, 0x6311,
++      0x2061, 0xb874, 0x6100, 0xa184, 0x0301, 0xa086, 0x0001, 0x1550,
++      0x7020, 0xd0dc, 0x1904, 0x6319, 0x6853, 0x0000, 0x6803, 0x0000,
++      0x2d08, 0x7010, 0xa005, 0x1158, 0x7112, 0x684c, 0xd0f4, 0x1904,
++      0x631c, 0x2e60, 0x080c, 0x6a76, 0x012e, 0x00ee, 0x0005, 0x2068,
++      0x6800, 0xa005, 0x1de0, 0x6902, 0x2168, 0x684c, 0xd0f4, 0x1904,
++      0x631c, 0x012e, 0x00ee, 0x0005, 0x012e, 0x00ee, 0x6853, 0x0006,
++      0x0804, 0x6339, 0xd184, 0x0dc0, 0xd1c4, 0x11a8, 0x00b8, 0x6944,
++      0xa18c, 0xff00, 0x810f, 0x080c, 0x4fa9, 0x15d8, 0x6000, 0xd0e4,
++      0x15c0, 0x711c, 0xa186, 0x0007, 0x1118, 0x6853, 0x0002, 0x0498,
++      0x6853, 0x0008, 0x0480, 0x6853, 0x000e, 0x0468, 0x6853, 0x0017,
++      0x0450, 0x6853, 0x0035, 0x0438, 0x2001, 0xb572, 0x2004, 0xd0fc,
++      0x01e8, 0x6848, 0x2070, 0xae82, 0xbd00, 0x02c0, 0x605c, 0xae02,
++      0x12a8, 0x711c, 0xa186, 0x0006, 0x1188, 0x7018, 0xa005, 0x0170,
++      0x2004, 0xd0bc, 0x0158, 0x2039, 0x0001, 0x7000, 0xa086, 0x0007,
++      0x1904, 0x6279, 0x7003, 0x0002, 0x0804, 0x6279, 0x6853, 0x0028,
++      0x0010, 0x6853, 0x0029, 0x012e, 0x00ee, 0x0418, 0x6853, 0x002a,
++      0x0cd0, 0x6853, 0x0045, 0x0cb8, 0x2e60, 0x2019, 0x0002, 0x6017,
++      0x0014, 0x080c, 0xace0, 0x012e, 0x00ee, 0x0005, 0x2009, 0x003e,
++      0x0058, 0x2009, 0x0004, 0x0040, 0x2009, 0x0006, 0x0028, 0x2009,
++      0x0016, 0x0010, 0x2009, 0x0001, 0x6854, 0xa084, 0xff00, 0xa105,
++      0x6856, 0x0126, 0x2091, 0x8000, 0x080c, 0x5408, 0x012e, 0x0005,
++      0x080c, 0x160f, 0x0005, 0x702c, 0x7130, 0x8108, 0xa102, 0x0230,
++      0xa00e, 0x7034, 0x7072, 0x7038, 0x7076, 0x0058, 0x7070, 0xa080,
++      0x0040, 0x7072, 0x1230, 0x7074, 0xa081, 0x0000, 0x7076, 0xa085,
++      0x0001, 0x7932, 0x7132, 0x0005, 0x00d6, 0x080c, 0x6a6d, 0x00de,
++      0x0005, 0x00d6, 0x00c6, 0x0036, 0x0026, 0x0016, 0x7007, 0x0001,
++      0x6a44, 0xa282, 0x0004, 0x1a04, 0x63ac, 0xd284, 0x0170, 0x6a4c,
++      0xa290, 0xb635, 0x2204, 0xa065, 0x6004, 0x05e0, 0x8007, 0xa084,
++      0x00ff, 0xa084, 0x0006, 0x1108, 0x04a8, 0x2c10, 0x080c, 0x85c7,
++      0x1118, 0x080c, 0x9ed6, 0x05a0, 0x621a, 0x6844, 0x0002, 0x638b,
++      0x6390, 0x6393, 0x6399, 0x2019, 0x0002, 0x080c, 0xb065, 0x0060,
++      0x080c, 0xaffc, 0x0048, 0x2019, 0x0002, 0x6950, 0x080c, 0xb017,
++      0x0018, 0x6950, 0x080c, 0xaffc, 0x080c, 0x861d, 0x6857, 0x0000,
++      0x0126, 0x2091, 0x8000, 0x080c, 0x5408, 0x012e, 0x001e, 0x002e,
++      0x003e, 0x00ce, 0x00de, 0x0005, 0x6857, 0x0006, 0x0c88, 0x6857,
++      0x0002, 0x0c70, 0x6857, 0x0005, 0x0c58, 0x6857, 0x0004, 0x0c40,
++      0x6857, 0x0007, 0x0c28, 0x00d6, 0x2011, 0x0004, 0x2204, 0xa085,
++      0x8002, 0x2012, 0x00de, 0x0005, 0x20e1, 0x0002, 0x3d08, 0x20e1,
++      0x2000, 0x3d00, 0xa084, 0x7000, 0x0118, 0xa086, 0x1000, 0x1570,
++      0x20e1, 0x0000, 0x3d00, 0xa094, 0xff00, 0x8217, 0xa084, 0xf000,
++      0xa086, 0x3000, 0x1160, 0xa184, 0xff00, 0x8007, 0xa086, 0x0008,
++      0x11e8, 0x080c, 0x2dbf, 0x11d0, 0x080c, 0x6603, 0x0098, 0x20e1,
++      0x0004, 0x3d60, 0xd1bc, 0x1108, 0x3e60, 0xac84, 0x0007, 0x1170,
++      0xac82, 0xbd00, 0x0258, 0x685c, 0xac02, 0x1240, 0x2009, 0x0047,
++      0x080c, 0x864c, 0x7a1c, 0xd284, 0x1938, 0x0005, 0xa016, 0x080c,
++      0x185e, 0x0cc0, 0x0cd8, 0x781c, 0xd08c, 0x0500, 0x0156, 0x0136,
++      0x0146, 0x20e1, 0x3000, 0x3d20, 0x3e28, 0xa584, 0x0076, 0x1538,
++      0xa484, 0x7000, 0xa086, 0x1000, 0x11a8, 0x080c, 0x647e, 0x01f8,
++      0x20e1, 0x3000, 0x7828, 0x7828, 0x080c, 0x649a, 0x014e, 0x013e,
++      0x015e, 0x2009, 0xb7e8, 0x2104, 0xa005, 0x1108, 0x0005, 0x080c,
++      0x7173, 0x0ce0, 0xa484, 0x7000, 0x1548, 0x080c, 0x647e, 0x01d8,
++      0x7000, 0xa084, 0xff00, 0xa086, 0x8100, 0x0d10, 0x00a0, 0xd5a4,
++      0x0178, 0x0056, 0x0046, 0x080c, 0x1e6e, 0x080c, 0x24b0, 0x2001,
++      0x0160, 0x2502, 0x2001, 0x0138, 0x2202, 0x004e, 0x005e, 0x0048,
++      0x04a9, 0x6887, 0x0000, 0x080c, 0xb3df, 0x20e1, 0x3000, 0x7828,
++      0x7828, 0x00b9, 0x014e, 0x013e, 0x015e, 0x0880, 0x0439, 0x1130,
++      0x7000, 0xa084, 0xff00, 0xa086, 0x8100, 0x1d68, 0x080c, 0xb3df,
++      0x20e1, 0x3000, 0x7828, 0x7828, 0x0056, 0x080c, 0x6874, 0x005e,
++      0x0c40, 0x2001, 0xb50e, 0x2004, 0xd08c, 0x0178, 0x2001, 0xb500,
++      0x2004, 0xa086, 0x0003, 0x1148, 0x0026, 0x0036, 0x2011, 0x8048,
++      0x2518, 0x080c, 0x3ecc, 0x003e, 0x002e, 0x0005, 0xa484, 0x01ff,
++      0x6886, 0xa005, 0x0160, 0xa080, 0x001f, 0xa084, 0x03f8, 0x80ac,
++      0x20e1, 0x1000, 0x2ea0, 0x2099, 0x020a, 0x53a5, 0x0005, 0x20a9,
++      0x000c, 0x20e1, 0x1000, 0x2ea0, 0x2099, 0x020a, 0x53a5, 0xa085,
++      0x0001, 0x0ca0, 0x7000, 0xa084, 0xff00, 0xa08c, 0xf000, 0x8007,
++      0xa196, 0x0000, 0x1118, 0x0804, 0x6708, 0x0005, 0xa196, 0x2000,
++      0x1148, 0x6900, 0xa18e, 0x0001, 0x1118, 0x080c, 0x448f, 0x0ca8,
++      0x0039, 0x0c98, 0xa196, 0x8000, 0x1d80, 0x080c, 0x67b4, 0x0c68,
++      0x00c6, 0x6a84, 0x82ff, 0x0904, 0x65fd, 0x7110, 0xa18c, 0xff00,
++      0x810f, 0xa196, 0x0001, 0x0120, 0xa196, 0x0023, 0x1904, 0x65fd,
++      0xa08e, 0x0023, 0x1570, 0x080c, 0x684f, 0x0904, 0x65fd, 0x7124,
++      0x610a, 0x7030, 0xa08e, 0x0200, 0x1150, 0x7034, 0xa005, 0x1904,
++      0x65fd, 0x2009, 0x0015, 0x080c, 0x864c, 0x0804, 0x65fd, 0xa08e,
++      0x0214, 0x0118, 0xa08e, 0x0210, 0x1130, 0x2009, 0x0015, 0x080c,
++      0x864c, 0x0804, 0x65fd, 0xa08e, 0x0100, 0x1904, 0x65fd, 0x7034,
++      0xa005, 0x1904, 0x65fd, 0x2009, 0x0016, 0x080c, 0x864c, 0x0804,
++      0x65fd, 0xa08e, 0x0022, 0x1904, 0x65fd, 0x7030, 0xa08e, 0x0300,
++      0x1580, 0x68d4, 0xd0a4, 0x0528, 0xc0b5, 0x68d6, 0x7100, 0xa18c,
++      0x00ff, 0x6972, 0x7004, 0x6876, 0x00f6, 0x2079, 0x0100, 0x79e6,
++      0x78ea, 0x0006, 0xa084, 0x00ff, 0x0016, 0x2008, 0x080c, 0x2847,
++      0x7932, 0x7936, 0x001e, 0x000e, 0x00fe, 0x080c, 0x281d, 0x6952,
++      0x703c, 0x00e6, 0x2071, 0x0140, 0x7086, 0x2071, 0xb500, 0x70a6,
++      0x00ee, 0x7034, 0xa005, 0x1904, 0x65fd, 0x2009, 0x0017, 0x0804,
++      0x65c3, 0xa08e, 0x0400, 0x1158, 0x7034, 0xa005, 0x1904, 0x65fd,
++      0x68d4, 0xc0a5, 0x68d6, 0x2009, 0x0030, 0x0804, 0x65c3, 0xa08e,
++      0x0500, 0x1140, 0x7034, 0xa005, 0x1904, 0x65fd, 0x2009, 0x0018,
++      0x0804, 0x65c3, 0xa08e, 0x2010, 0x1120, 0x2009, 0x0019, 0x0804,
++      0x65c3, 0xa08e, 0x2110, 0x1120, 0x2009, 0x001a, 0x0804, 0x65c3,
++      0xa08e, 0x5200, 0x1140, 0x7034, 0xa005, 0x1904, 0x65fd, 0x2009,
++      0x001b, 0x0804, 0x65c3, 0xa08e, 0x5000, 0x1140, 0x7034, 0xa005,
++      0x1904, 0x65fd, 0x2009, 0x001c, 0x0804, 0x65c3, 0xa08e, 0x1300,
++      0x1120, 0x2009, 0x0034, 0x0804, 0x65c3, 0xa08e, 0x1200, 0x1140,
++      0x7034, 0xa005, 0x1904, 0x65fd, 0x2009, 0x0024, 0x0804, 0x65c3,
++      0xa08c, 0xff00, 0xa18e, 0x2400, 0x1118, 0x2009, 0x002d, 0x04d8,
++      0xa08c, 0xff00, 0xa18e, 0x5300, 0x1118, 0x2009, 0x002a, 0x0498,
++      0xa08e, 0x0f00, 0x1118, 0x2009, 0x0020, 0x0468, 0xa08e, 0x5300,
++      0x1108, 0x00d8, 0xa08e, 0x6104, 0x11c0, 0x2011, 0xbb8d, 0x8208,
++      0x2204, 0xa082, 0x0004, 0x20a8, 0x95ac, 0x95ac, 0x2011, 0x8015,
++      0x211c, 0x8108, 0x0046, 0x2124, 0x080c, 0x3ecc, 0x004e, 0x8108,
++      0x1f04, 0x65a6, 0x2009, 0x0023, 0x0070, 0xa08e, 0x6000, 0x1118,
++      0x2009, 0x003f, 0x0040, 0xa08e, 0x7800, 0x1118, 0x2009, 0x0045,
++      0x0010, 0x2009, 0x001d, 0x0016, 0x2011, 0xbb83, 0x2204, 0x8211,
++      0x220c, 0x080c, 0x281d, 0x1598, 0x080c, 0x4f4d, 0x1580, 0x6612,
++      0x6516, 0x86ff, 0x01e8, 0x001e, 0x0016, 0xa186, 0x0017, 0x1158,
++      0x6870, 0xa606, 0x11a8, 0x6874, 0xa506, 0xa084, 0xff00, 0x1180,
++      0x6000, 0xc0f5, 0x6002, 0xa186, 0x0046, 0x1150, 0x6870, 0xa606,
++      0x1138, 0x6874, 0xa506, 0xa084, 0xff00, 0x1110, 0x001e, 0x0068,
++      0x00c6, 0x080c, 0x85c7, 0x0168, 0x001e, 0x611a, 0x601f, 0x0004,
++      0x7120, 0x610a, 0x001e, 0x080c, 0x864c, 0x00ce, 0x0005, 0x001e,
++      0x0ce0, 0x00ce, 0x0ce0, 0x00c6, 0x0046, 0x080c, 0x6657, 0x1904,
++      0x6654, 0xa28e, 0x0033, 0x11e8, 0x080c, 0x684f, 0x0904, 0x6654,
++      0x7124, 0x610a, 0x7030, 0xa08e, 0x0200, 0x1140, 0x7034, 0xa005,
++      0x15d8, 0x2009, 0x0015, 0x080c, 0x864c, 0x04b0, 0xa08e, 0x0100,
++      0x1598, 0x7034, 0xa005, 0x1580, 0x2009, 0x0016, 0x080c, 0x864c,
++      0x0458, 0xa28e, 0x0032, 0x1540, 0x7030, 0xa08e, 0x1400, 0x1520,
++      0x2009, 0x0038, 0x0016, 0x2011, 0xbb83, 0x2204, 0x8211, 0x220c,
++      0x080c, 0x281d, 0x11c0, 0x080c, 0x4f4d, 0x11a8, 0x6612, 0x6516,
++      0x00c6, 0x080c, 0x85c7, 0x0170, 0x001e, 0x611a, 0x080c, 0xa027,
++      0x601f, 0x0004, 0x7120, 0x610a, 0x001e, 0x080c, 0x864c, 0x080c,
++      0x7173, 0x0010, 0x00ce, 0x001e, 0x004e, 0x00ce, 0x0005, 0x00f6,
++      0x00d6, 0x0026, 0x0016, 0x0136, 0x0146, 0x0156, 0x3c00, 0x0006,
++      0x2079, 0x0030, 0x2069, 0x0200, 0x080c, 0x1f2d, 0x1590, 0x080c,
++      0x1dd2, 0x05e0, 0x04f1, 0x1130, 0x7908, 0xa18c, 0x1fff, 0xa182,
++      0x0011, 0x1688, 0x20a9, 0x000c, 0x20e1, 0x0000, 0x2ea0, 0x2099,
++      0x020a, 0x53a5, 0x20e1, 0x2000, 0x2001, 0x020a, 0x2004, 0x7a0c,
++      0x7808, 0xa080, 0x0007, 0xa084, 0x1ff8, 0x0419, 0x1120, 0xa08a,
++      0x0140, 0x1a0c, 0x1515, 0x80ac, 0x20e1, 0x6000, 0x2099, 0x020a,
++      0x53a5, 0x20e1, 0x7000, 0x6828, 0x6828, 0x7803, 0x0004, 0xa294,
++      0x0070, 0x000e, 0x20e0, 0x015e, 0x014e, 0x013e, 0x001e, 0x002e,
++      0x00de, 0x00fe, 0x0005, 0xa016, 0x080c, 0x185e, 0xa085, 0x0001,
++      0x0c80, 0x0006, 0x2001, 0x0111, 0x2004, 0xa084, 0x0003, 0x000e,
++      0x0005, 0x0046, 0x00e6, 0x00d6, 0x2028, 0x2130, 0xa696, 0x00ff,
++      0x1198, 0xa596, 0xfffd, 0x1120, 0x2009, 0x007f, 0x0804, 0x6703,
++      0xa596, 0xfffe, 0x1118, 0x2009, 0x007e, 0x04e8, 0xa596, 0xfffc,
++      0x1118, 0x2009, 0x0080, 0x04b8, 0x2011, 0x0000, 0x2019, 0xb535,
++      0x231c, 0xd3ac, 0x0138, 0x2021, 0x0000, 0x20a9, 0x00ff, 0x2071,
++      0xb635, 0x0030, 0x2021, 0x0081, 0x20a9, 0x007e, 0x2071, 0xb6b6,
++      0x2e1c, 0x83ff, 0x1128, 0x82ff, 0x1198, 0x2410, 0xc2fd, 0x0080,
++      0x2368, 0x6f10, 0x0006, 0x2100, 0xa706, 0x000e, 0x6b14, 0x1120,
++      0xa346, 0x1110, 0x2408, 0x0078, 0x87ff, 0x1110, 0x83ff, 0x0d58,
++      0x8420, 0x8e70, 0x1f04, 0x66e0, 0x82ff, 0x1118, 0xa085, 0x0001,
++      0x0018, 0xc2fc, 0x2208, 0xa006, 0x00de, 0x00ee, 0x004e, 0x0005,
++      0xa084, 0x0007, 0x000a, 0x0005, 0x6714, 0x6714, 0x6714, 0x6861,
++      0x6714, 0x6715, 0x672a, 0x679f, 0x0005, 0x7110, 0xd1bc, 0x0188,
++      0x7120, 0x2160, 0xac8c, 0x0007, 0x1160, 0xac8a, 0xbd00, 0x0248,
++      0x685c, 0xac02, 0x1230, 0x7124, 0x610a, 0x2009, 0x0046, 0x080c,
++      0x864c, 0x0005, 0x00c6, 0xa484, 0x01ff, 0x0904, 0x677d, 0x7110,
++      0xd1bc, 0x1904, 0x677d, 0x2011, 0xbb83, 0x2204, 0x8211, 0x220c,
++      0x080c, 0x281d, 0x1904, 0x677d, 0x080c, 0x4f4d, 0x15f0, 0x6612,
++      0x6516, 0x6000, 0xd0ec, 0x15c8, 0x6204, 0xa294, 0xff00, 0x8217,
++      0xa286, 0x0006, 0x0148, 0x6204, 0xa294, 0x00ff, 0xa286, 0x0006,
++      0x11a0, 0xa295, 0x0600, 0x6206, 0x00c6, 0x080c, 0x85c7, 0x001e,
++      0x0530, 0x611a, 0x601f, 0x0006, 0x7120, 0x610a, 0x7130, 0x6152,
++      0x2009, 0x0044, 0x080c, 0x864c, 0x00c0, 0x00c6, 0x080c, 0x85c7,
++      0x001e, 0x0198, 0x611a, 0x601f, 0x0004, 0x7120, 0x610a, 0xa286,
++      0x0004, 0x1118, 0x6007, 0x0005, 0x0010, 0x6007, 0x0001, 0x6003,
++      0x0001, 0x080c, 0x6cd3, 0x080c, 0x7173, 0x00ce, 0x0005, 0x2001,
++      0xb50d, 0x2004, 0xd0ec, 0x0120, 0x2011, 0x8049, 0x080c, 0x3ecc,
++      0x00c6, 0x080c, 0x9ed6, 0x001e, 0x0d80, 0x611a, 0x601f, 0x0006,
++      0x7120, 0x610a, 0x7130, 0x6152, 0x6013, 0x0300, 0x6003, 0x0001,
++      0x6007, 0x0041, 0x080c, 0x6c8d, 0x080c, 0x7173, 0x08f0, 0x7110,
++      0xd1bc, 0x0188, 0x7020, 0x2060, 0xac84, 0x0007, 0x1160, 0xac82,
++      0xbd00, 0x0248, 0x685c, 0xac02, 0x1230, 0x7124, 0x610a, 0x2009,
++      0x0045, 0x080c, 0x864c, 0x0005, 0x0006, 0x080c, 0x2dbf, 0x000e,
++      0x1168, 0x7110, 0xa18c, 0xff00, 0x810f, 0xa18e, 0x0000, 0x1130,
++      0xa084, 0x000f, 0xa08a, 0x0006, 0x1208, 0x000b, 0x0005, 0x67cd,
++      0x67ce, 0x67cd, 0x67cd, 0x6837, 0x6843, 0x0005, 0x7110, 0xd1bc,
++      0x0120, 0x702c, 0xd084, 0x0904, 0x6836, 0x700c, 0x7108, 0x080c,
++      0x281d, 0x1904, 0x6836, 0x080c, 0x4f4d, 0x1904, 0x6836, 0x6612,
++      0x6516, 0x6204, 0x7110, 0xd1bc, 0x01f8, 0xa28c, 0x00ff, 0xa186,
++      0x0004, 0x0118, 0xa186, 0x0006, 0x15c8, 0x00c6, 0x080c, 0x684f,
++      0x00ce, 0x0904, 0x6836, 0x00c6, 0x080c, 0x85c7, 0x001e, 0x05f0,
++      0x611a, 0x080c, 0xa027, 0x601f, 0x0002, 0x7120, 0x610a, 0x2009,
++      0x0088, 0x080c, 0x864c, 0x0490, 0xa28c, 0x00ff, 0xa186, 0x0006,
++      0x0160, 0xa186, 0x0004, 0x0148, 0xa294, 0xff00, 0x8217, 0xa286,
++      0x0004, 0x0118, 0xa286, 0x0006, 0x1188, 0x00c6, 0x080c, 0x85c7,
++      0x001e, 0x01e0, 0x611a, 0x080c, 0xa027, 0x601f, 0x0005, 0x7120,
++      0x610a, 0x2009, 0x0088, 0x080c, 0x864c, 0x0080, 0x00c6, 0x080c,
++      0x85c7, 0x001e, 0x0158, 0x611a, 0x080c, 0xa027, 0x601f, 0x0004,
++      0x7120, 0x610a, 0x2009, 0x0001, 0x080c, 0x864c, 0x0005, 0x7110,
++      0xd1bc, 0x0140, 0x00a1, 0x0130, 0x7124, 0x610a, 0x2009, 0x0089,
++      0x080c, 0x864c, 0x0005, 0x7110, 0xd1bc, 0x0140, 0x0041, 0x0130,
++      0x7124, 0x610a, 0x2009, 0x008a, 0x080c, 0x864c, 0x0005, 0x7020,
++      0x2060, 0xac84, 0x0007, 0x1158, 0xac82, 0xbd00, 0x0240, 0x2001,
++      0xb517, 0x2004, 0xac02, 0x1218, 0xa085, 0x0001, 0x0005, 0xa006,
++      0x0ce8, 0x7110, 0xd1bc, 0x1178, 0x7024, 0x2060, 0xac84, 0x0007,
++      0x1150, 0xac82, 0xbd00, 0x0238, 0x685c, 0xac02, 0x1220, 0x2009,
++      0x0051, 0x080c, 0x864c, 0x0005, 0x2031, 0x0105, 0x0069, 0x0005,
++      0x2031, 0x0206, 0x0049, 0x0005, 0x2031, 0x0207, 0x0029, 0x0005,
++      0x2031, 0x0213, 0x0009, 0x0005, 0x00c6, 0x00d6, 0x00f6, 0x7000,
++      0xa084, 0xf000, 0xa086, 0xc000, 0x05b0, 0x080c, 0x85c7, 0x0598,
++      0x0066, 0x00c6, 0x0046, 0x2011, 0xbb83, 0x2204, 0x8211, 0x220c,
++      0x080c, 0x281d, 0x1580, 0x080c, 0x4f4d, 0x1568, 0x6612, 0x6516,
++      0x2c00, 0x004e, 0x00ce, 0x601a, 0x080c, 0xa027, 0x080c, 0x15f8,
++      0x01f0, 0x2d00, 0x6056, 0x6803, 0x0000, 0x6837, 0x0000, 0x6c3a,
++      0xadf8, 0x000f, 0x20a9, 0x000e, 0x2fa0, 0x2e98, 0x53a3, 0x006e,
++      0x6612, 0x6007, 0x003e, 0x601f, 0x0001, 0x6003, 0x0001, 0x080c,
++      0x6cd3, 0x080c, 0x7173, 0x00fe, 0x00de, 0x00ce, 0x0005, 0x080c,
++      0x861d, 0x006e, 0x0cc0, 0x004e, 0x00ce, 0x0cc8, 0x2071, 0xb7f3,
++      0x7003, 0x0003, 0x700f, 0x0361, 0xa006, 0x701a, 0x7076, 0x7012,
++      0x7017, 0xbd00, 0x7007, 0x0000, 0x7026, 0x702b, 0x7d91, 0x7032,
++      0x7037, 0x7df1, 0x703b, 0xffff, 0x703f, 0xffff, 0x7042, 0x7047,
++      0x444b, 0x704a, 0x705b, 0x6a2b, 0x2001, 0xb7a1, 0x2003, 0x0003,
++      0x2001, 0xb7a3, 0x2003, 0x0100, 0x3a00, 0xa084, 0x0005, 0x706e,
++      0x0005, 0x2071, 0xb7f3, 0x1d04, 0x698b, 0x2091, 0x6000, 0x700c,
++      0x8001, 0x700e, 0x1518, 0x700f, 0x0361, 0x7007, 0x0001, 0x0126,
++      0x2091, 0x8000, 0x7040, 0xa00d, 0x0128, 0x8109, 0x7142, 0x1110,
++      0x7044, 0x080f, 0x00c6, 0x2061, 0xb500, 0x6034, 0x00ce, 0xd0cc,
++      0x0180, 0x3a00, 0xa084, 0x0005, 0x726c, 0xa216, 0x0150, 0x706e,
++      0x2011, 0x8043, 0x2018, 0x080c, 0x3ecc, 0x0018, 0x0126, 0x2091,
++      0x8000, 0x7024, 0xa00d, 0x0188, 0x7020, 0x8001, 0x7022, 0x1168,
++      0x7023, 0x0009, 0x8109, 0x7126, 0xa186, 0x03e8, 0x1110, 0x7028,
++      0x080f, 0x81ff, 0x1110, 0x7028, 0x080f, 0x7030, 0xa00d, 0x0180,
++      0x702c, 0x8001, 0x702e, 0x1160, 0x702f, 0x0009, 0x8109, 0x7132,
++      0x0128, 0xa184, 0x007f, 0x090c, 0x7e36, 0x0010, 0x7034, 0x080f,
++      0x7038, 0xa005, 0x0118, 0x0310, 0x8001, 0x703a, 0x703c, 0xa005,
++      0x0118, 0x0310, 0x8001, 0x703e, 0x704c, 0xa00d, 0x0168, 0x7048,
++      0x8001, 0x704a, 0x1148, 0x704b, 0x0009, 0x8109, 0x714e, 0x1120,
++      0x7150, 0x714e, 0x7058, 0x080f, 0x7018, 0xa00d, 0x01d8, 0x0016,
++      0x7074, 0xa00d, 0x0158, 0x7070, 0x8001, 0x7072, 0x1138, 0x7073,
++      0x0009, 0x8109, 0x7176, 0x1110, 0x7078, 0x080f, 0x001e, 0x7008,
++      0x8001, 0x700a, 0x1138, 0x700b, 0x0009, 0x8109, 0x711a, 0x1110,
++      0x701c, 0x080f, 0x012e, 0x7004, 0x0002, 0x69b1, 0x69b2, 0x69ca,
++      0x00e6, 0x2071, 0xb7f3, 0x7018, 0xa005, 0x1120, 0x711a, 0x721e,
++      0x700b, 0x0009, 0x00ee, 0x0005, 0x00e6, 0x0006, 0x2071, 0xb7f3,
++      0x701c, 0xa206, 0x1110, 0x701a, 0x701e, 0x000e, 0x00ee, 0x0005,
++      0x00e6, 0x2071, 0xb7f3, 0x6088, 0xa102, 0x0208, 0x618a, 0x00ee,
++      0x0005, 0x0005, 0x7110, 0x080c, 0x4fa9, 0x1158, 0x6088, 0x8001,
++      0x0240, 0x608a, 0x1130, 0x0126, 0x2091, 0x8000, 0x080c, 0x7173,
++      0x012e, 0x8108, 0xa182, 0x00ff, 0x0218, 0xa00e, 0x7007, 0x0002,
++      0x7112, 0x0005, 0x7014, 0x2060, 0x0126, 0x2091, 0x8000, 0x603c,
++      0xa005, 0x0128, 0x8001, 0x603e, 0x1110, 0x080c, 0x9f15, 0x6014,
++      0xa005, 0x0500, 0x8001, 0x6016, 0x11e8, 0x611c, 0xa186, 0x0003,
++      0x0118, 0xa186, 0x0006, 0x11a0, 0x6010, 0x2068, 0x6854, 0xa08a,
++      0x199a, 0x0270, 0xa082, 0x1999, 0x6856, 0xa08a, 0x199a, 0x0210,
++      0x2001, 0x1999, 0x8003, 0x800b, 0x810b, 0xa108, 0x6116, 0x0010,
++      0x080c, 0x99e5, 0x012e, 0xac88, 0x0018, 0x7116, 0x2001, 0xed00,
++      0xa102, 0x0220, 0x7017, 0xbd00, 0x7007, 0x0000, 0x0005, 0x00e6,
++      0x2071, 0xb7f3, 0x7027, 0x07d0, 0x7023, 0x0009, 0x00ee, 0x0005,
++      0x2001, 0xb7fc, 0x2003, 0x0000, 0x0005, 0x00e6, 0x2071, 0xb7f3,
++      0x7132, 0x702f, 0x0009, 0x00ee, 0x0005, 0x2011, 0xb7ff, 0x2013,
++      0x0000, 0x0005, 0x00e6, 0x2071, 0xb7f3, 0x711a, 0x721e, 0x700b,
++      0x0009, 0x00ee, 0x0005, 0x00c6, 0x0026, 0x7054, 0x8000, 0x7056,
++      0x2061, 0xb7a1, 0x6008, 0xa086, 0x0000, 0x0158, 0x7068, 0x6032,
++      0x7064, 0x602e, 0x7060, 0x602a, 0x705c, 0x6026, 0x2c10, 0x080c,
++      0x1643, 0x002e, 0x00ce, 0x0005, 0x0006, 0x0016, 0x00c6, 0x00d6,
++      0x00e6, 0x00f6, 0x080c, 0x68f9, 0x00fe, 0x00ee, 0x00de, 0x00ce,
++      0x001e, 0x000e, 0x0005, 0x00e6, 0x2071, 0xb7f3, 0x7176, 0x727a,
++      0x7073, 0x0009, 0x00ee, 0x0005, 0x00e6, 0x0006, 0x2071, 0xb7f3,
++      0x7078, 0xa206, 0x1110, 0x7076, 0x707a, 0x000e, 0x00ee, 0x0005,
++      0x00c6, 0x2061, 0xb874, 0x00ce, 0x0005, 0xa184, 0x000f, 0x8003,
++      0x8003, 0x8003, 0xa080, 0xb874, 0x2060, 0x0005, 0x6854, 0xa08a,
++      0x199a, 0x0210, 0x2001, 0x1999, 0xa005, 0x1150, 0x00c6, 0x2061,
++      0xb874, 0x6014, 0x00ce, 0xa005, 0x1138, 0x2001, 0x001e, 0x0020,
++      0xa08e, 0xffff, 0x1108, 0xa006, 0x8003, 0x800b, 0x810b, 0xa108,
++      0x6116, 0x684c, 0xa08c, 0x00c0, 0xa18e, 0x00c0, 0x05e8, 0xd0b4,
++      0x1138, 0xd0bc, 0x1550, 0x2009, 0x0006, 0x080c, 0x6af1, 0x0005,
++      0xd0fc, 0x0138, 0xa084, 0x0003, 0x0120, 0xa086, 0x0003, 0x1904,
++      0x6aeb, 0x6020, 0xd0d4, 0x0130, 0xc0d4, 0x6022, 0x6860, 0x602a,
++      0x685c, 0x602e, 0x2009, 0xb574, 0x2104, 0xd084, 0x0138, 0x87ff,
++      0x1120, 0x2009, 0x0042, 0x080c, 0x864c, 0x0005, 0x87ff, 0x1120,
++      0x2009, 0x0043, 0x080c, 0x864c, 0x0005, 0xd0fc, 0x0130, 0xa084,
++      0x0003, 0x0118, 0xa086, 0x0003, 0x11f0, 0x87ff, 0x1120, 0x2009,
++      0x0042, 0x080c, 0x864c, 0x0005, 0xd0fc, 0x0160, 0xa084, 0x0003,
++      0xa08e, 0x0002, 0x0148, 0x87ff, 0x1120, 0x2009, 0x0041, 0x080c,
++      0x864c, 0x0005, 0x0061, 0x0ce8, 0x87ff, 0x1dd8, 0x2009, 0x0043,
++      0x080c, 0x864c, 0x0cb0, 0x2009, 0x0004, 0x0019, 0x0005, 0x2009,
++      0x0001, 0x00d6, 0x6010, 0xa0ec, 0xf000, 0x0510, 0x2068, 0x6952,
++      0x6800, 0x6012, 0xa186, 0x0001, 0x1188, 0x694c, 0xa18c, 0x8100,
++      0xa18e, 0x8100, 0x1158, 0x00c6, 0x2061, 0xb874, 0x6200, 0xd28c,
++      0x1120, 0x6204, 0x8210, 0x0208, 0x6206, 0x00ce, 0x080c, 0x5408,
++      0x6010, 0xa06d, 0x0076, 0x2039, 0x0000, 0x190c, 0x6a76, 0x007e,
++      0x00de, 0x0005, 0x0156, 0x00c6, 0x2061, 0xb874, 0x6000, 0x81ff,
++      0x0110, 0xa205, 0x0008, 0xa204, 0x6002, 0x00ce, 0x015e, 0x0005,
++      0x6800, 0xd08c, 0x1138, 0x6808, 0xa005, 0x0120, 0x8001, 0x680a,
++      0xa085, 0x0001, 0x0005, 0x20a9, 0x0010, 0xa006, 0x8004, 0x8086,
++      0x818e, 0x1208, 0xa200, 0x1f04, 0x6b37, 0x8086, 0x818e, 0x0005,
++      0x0156, 0x20a9, 0x0010, 0xa005, 0x01b8, 0xa11a, 0x12a8, 0x8213,
++      0x818d, 0x0228, 0xa11a, 0x1220, 0x1f04, 0x6b47, 0x0028, 0xa11a,
++      0x2308, 0x8210, 0x1f04, 0x6b47, 0x0006, 0x3200, 0xa084, 0xefff,
++      0x2080, 0x000e, 0x015e, 0x0005, 0x0006, 0x3200, 0xa085, 0x1000,
++      0x0cb8, 0x0126, 0x2091, 0x2800, 0x2079, 0xb7e0, 0x012e, 0x00d6,
++      0x2069, 0xb7e0, 0x6803, 0x0005, 0x2069, 0x0004, 0x2d04, 0xa085,
++      0x8001, 0x206a, 0x00de, 0x0005, 0x00c6, 0x6027, 0x0001, 0x7804,
++      0xa084, 0x0007, 0x0002, 0x6b85, 0x6ba6, 0x6bf9, 0x6b8b, 0x6ba6,
++      0x6b85, 0x6b83, 0x6b83, 0x080c, 0x1515, 0x080c, 0x6a10, 0x080c,
++      0x7173, 0x00ce, 0x0005, 0x62c0, 0x82ff, 0x1110, 0x00ce, 0x0005,
++      0x2011, 0x4adc, 0x080c, 0x699c, 0x7828, 0xa092, 0x00c8, 0x1228,
++      0x8000, 0x782a, 0x080c, 0x4b16, 0x0c88, 0x080c, 0x4adc, 0x7807,
++      0x0003, 0x7827, 0x0000, 0x782b, 0x0000, 0x0c40, 0x080c, 0x6a10,
++      0x3c00, 0x0006, 0x2011, 0x0209, 0x20e1, 0x4000, 0x2214, 0x000e,
++      0x20e0, 0x82ff, 0x0178, 0x62c0, 0x82ff, 0x1160, 0x782b, 0x0000,
++      0x7824, 0xa065, 0x090c, 0x1515, 0x2009, 0x0013, 0x080c, 0x864c,
++      0x00ce, 0x0005, 0x3900, 0xa082, 0xb92c, 0x1210, 0x080c, 0x8332,
++      0x00c6, 0x7824, 0xa065, 0x090c, 0x1515, 0x7804, 0xa086, 0x0004,
++      0x0904, 0x6c39, 0x7828, 0xa092, 0x2710, 0x1230, 0x8000, 0x782a,
++      0x00ce, 0x080c, 0x7d6d, 0x0c20, 0x6104, 0xa186, 0x0003, 0x1188,
++      0x00e6, 0x2071, 0xb500, 0x70e0, 0x00ee, 0xd08c, 0x0150, 0x00c6,
++      0x00e6, 0x2061, 0x0100, 0x2071, 0xb500, 0x080c, 0x4b1f, 0x00ee,
++      0x00ce, 0x080c, 0xb444, 0x2009, 0x0014, 0x080c, 0x864c, 0x00ce,
++      0x0838, 0x2001, 0xb7fc, 0x2003, 0x0000, 0x62c0, 0x82ff, 0x1160,
++      0x782b, 0x0000, 0x7824, 0xa065, 0x090c, 0x1515, 0x2009, 0x0013,
++      0x080c, 0x86a0, 0x00ce, 0x0005, 0x00c6, 0x00d6, 0x3900, 0xa082,
++      0xb92c, 0x1210, 0x080c, 0x8332, 0x7824, 0xa005, 0x090c, 0x1515,
++      0x781c, 0xa06d, 0x090c, 0x1515, 0x6800, 0xc0dc, 0x6802, 0x7924,
++      0x2160, 0x080c, 0x861d, 0x693c, 0x81ff, 0x090c, 0x1515, 0x8109,
++      0x693e, 0x6854, 0xa015, 0x0110, 0x7a1e, 0x0010, 0x7918, 0x791e,
++      0x7807, 0x0000, 0x7827, 0x0000, 0x00de, 0x00ce, 0x080c, 0x7173,
++      0x0888, 0x6104, 0xa186, 0x0002, 0x0128, 0xa186, 0x0004, 0x0110,
++      0x0804, 0x6bd2, 0x7808, 0xac06, 0x0904, 0x6bd2, 0x080c, 0x7090,
++      0x080c, 0x6cd3, 0x00ce, 0x080c, 0x7173, 0x0804, 0x6bc0, 0x00c6,
++      0x6027, 0x0002, 0x62c8, 0x60c4, 0xa205, 0x1178, 0x793c, 0xa1e5,
++      0x0000, 0x0130, 0x2009, 0x0049, 0x080c, 0x864c, 0x00ce, 0x0005,
++      0x2011, 0xb7ff, 0x2013, 0x0000, 0x0cc8, 0x3908, 0xa192, 0xb92c,
++      0x1210, 0x080c, 0x8332, 0x793c, 0x81ff, 0x0d90, 0x7944, 0xa192,
++      0x7530, 0x12b8, 0x8108, 0x7946, 0x793c, 0xa188, 0x0007, 0x210c,
++      0xa18e, 0x0006, 0x1138, 0x6014, 0xa084, 0x0184, 0xa085, 0x0012,
++      0x6016, 0x08e0, 0x6014, 0xa084, 0x0184, 0xa085, 0x0016, 0x6016,
++      0x08a8, 0x7848, 0xc085, 0x784a, 0x0888, 0x0006, 0x0016, 0x00c6,
++      0x0126, 0x2091, 0x8000, 0x600f, 0x0000, 0x2c08, 0x2061, 0xb7e0,
++      0x6020, 0x8000, 0x6022, 0x6010, 0xa005, 0x0148, 0xa080, 0x0003,
++      0x2102, 0x6112, 0x012e, 0x00ce, 0x001e, 0x000e, 0x0005, 0x6116,
++      0x6112, 0x0cc0, 0x00d6, 0x2069, 0xb7e0, 0x6000, 0xd0d4, 0x0168,
++      0x6820, 0x8000, 0x6822, 0xa086, 0x0001, 0x1110, 0x2c00, 0x681e,
++      0x6804, 0xa084, 0x0007, 0x0804, 0x7179, 0xc0d5, 0x6002, 0x6818,
++      0xa005, 0x0158, 0x6056, 0x605b, 0x0000, 0x0006, 0x2c00, 0x681a,
++      0x00de, 0x685a, 0x2069, 0xb7e0, 0x0c18, 0x6056, 0x605a, 0x2c00,
++      0x681a, 0x681e, 0x08e8, 0x0006, 0x0016, 0x00c6, 0x0126, 0x2091,
++      0x8000, 0x600f, 0x0000, 0x2c08, 0x2061, 0xb7e0, 0x6020, 0x8000,
++      0x6022, 0x6008, 0xa005, 0x0148, 0xa080, 0x0003, 0x2102, 0x610a,
++      0x012e, 0x00ce, 0x001e, 0x000e, 0x0005, 0x610e, 0x610a, 0x0cc0,
++      0x00c6, 0x600f, 0x0000, 0x2c08, 0x2061, 0xb7e0, 0x6034, 0xa005,
++      0x0130, 0xa080, 0x0003, 0x2102, 0x6136, 0x00ce, 0x0005, 0x613a,
++      0x6136, 0x0cd8, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0076, 0x0066,
++      0x0056, 0x0036, 0x0026, 0x0016, 0x0006, 0x0126, 0xa02e, 0x2071,
++      0xb7e0, 0x7638, 0x2660, 0x2678, 0x2091, 0x8000, 0x8cff, 0x0904,
++      0x6d7b, 0x6018, 0xa080, 0x0028, 0x2004, 0xa206, 0x1904, 0x6d76,
++      0x87ff, 0x0120, 0x6050, 0xa106, 0x1904, 0x6d76, 0x703c, 0xac06,
++      0x1190, 0x0036, 0x2019, 0x0001, 0x080c, 0x7fe4, 0x7033, 0x0000,
++      0x703f, 0x0000, 0x7043, 0x0000, 0x7047, 0x0000, 0x704b, 0x0000,
++      0x003e, 0x2029, 0x0001, 0x7038, 0xac36, 0x1110, 0x660c, 0x763a,
++      0x7034, 0xac36, 0x1140, 0x2c00, 0xaf36, 0x0118, 0x2f00, 0x7036,
++      0x0010, 0x7037, 0x0000, 0x660c, 0x0066, 0x2c00, 0xaf06, 0x0110,
++      0x7e0e, 0x0008, 0x2678, 0x600f, 0x0000, 0x080c, 0x9c5a, 0x01c8,
++      0x6010, 0x2068, 0x601c, 0xa086, 0x0003, 0x1580, 0x6837, 0x0103,
++      0x6b4a, 0x6847, 0x0000, 0x0016, 0x0036, 0x0076, 0x080c, 0x9ecc,
++      0x080c, 0xb380, 0x080c, 0x5408, 0x007e, 0x003e, 0x001e, 0x080c,
++      0x9e11, 0x080c, 0x9e1d, 0x00ce, 0x0804, 0x6d16, 0x2c78, 0x600c,
++      0x2060, 0x0804, 0x6d16, 0x85ff, 0x0120, 0x0036, 0x080c, 0x7230,
++      0x003e, 0x012e, 0x000e, 0x001e, 0x002e, 0x003e, 0x005e, 0x006e,
++      0x007e, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x0005, 0x601c, 0xa086,
++      0x0006, 0x1158, 0x0016, 0x0036, 0x0076, 0x080c, 0xb380, 0x080c,
++      0xb099, 0x007e, 0x003e, 0x001e, 0x08a0, 0x601c, 0xa086, 0x000a,
++      0x0904, 0x6d60, 0x0804, 0x6d5e, 0x0006, 0x0066, 0x00c6, 0x00d6,
++      0x00f6, 0x2031, 0x0000, 0x0126, 0x2091, 0x8000, 0x2079, 0xb7e0,
++      0x7838, 0xa065, 0x0568, 0x600c, 0x0006, 0x600f, 0x0000, 0x783c,
++      0xac06, 0x1180, 0x0036, 0x2019, 0x0001, 0x080c, 0x7fe4, 0x7833,
++      0x0000, 0x783f, 0x0000, 0x7843, 0x0000, 0x7847, 0x0000, 0x784b,
++      0x0000, 0x003e, 0x080c, 0x9c5a, 0x0178, 0x6010, 0x2068, 0x601c,
++      0xa086, 0x0003, 0x11b0, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000,
++      0x080c, 0x5408, 0x080c, 0x9e11, 0x080c, 0x9e1d, 0x000e, 0x0888,
++      0x7e3a, 0x7e36, 0x012e, 0x00fe, 0x00de, 0x00ce, 0x006e, 0x000e,
++      0x0005, 0x601c, 0xa086, 0x0006, 0x1118, 0x080c, 0xb099, 0x0c60,
++      0x601c, 0xa086, 0x000a, 0x0d08, 0x08f0, 0x0016, 0x0026, 0x0086,
++      0x2041, 0x0000, 0x0099, 0x080c, 0x6ec3, 0x008e, 0x002e, 0x001e,
++      0x0005, 0x00f6, 0x0126, 0x2079, 0xb7e0, 0x2091, 0x8000, 0x080c,
++      0x6f50, 0x080c, 0x6fc2, 0x012e, 0x00fe, 0x0005, 0x00f6, 0x00e6,
++      0x00d6, 0x00c6, 0x0066, 0x0016, 0x0006, 0x0126, 0x2091, 0x8000,
++      0x2071, 0xb7e0, 0x7614, 0x2660, 0x2678, 0x8cff, 0x0904, 0x6e99,
++      0x6018, 0xa080, 0x0028, 0x2004, 0xa206, 0x1904, 0x6e94, 0x88ff,
++      0x0120, 0x6050, 0xa106, 0x1904, 0x6e94, 0x7024, 0xac06, 0x1538,
++      0x2069, 0x0100, 0x68c0, 0xa005, 0x01f0, 0x080c, 0x6a10, 0x080c,
++      0x7d7a, 0x68c3, 0x0000, 0x080c, 0x824d, 0x7027, 0x0000, 0x0036,
++      0x2069, 0x0140, 0x6b04, 0xa384, 0x1000, 0x0120, 0x6803, 0x0100,
++      0x6803, 0x0000, 0x2069, 0x0100, 0x6824, 0xd084, 0x0110, 0x6827,
++      0x0001, 0x003e, 0x0020, 0x6003, 0x0009, 0x630a, 0x04e8, 0x7014,
++      0xac36, 0x1110, 0x660c, 0x7616, 0x7010, 0xac36, 0x1140, 0x2c00,
++      0xaf36, 0x0118, 0x2f00, 0x7012, 0x0010, 0x7013, 0x0000, 0x660c,
++      0x0066, 0x2c00, 0xaf06, 0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f,
++      0x0000, 0x6010, 0x2068, 0x080c, 0x9c5a, 0x01b8, 0x601c, 0xa086,
++      0x0003, 0x1540, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000, 0x0016,
++      0x0036, 0x0086, 0x080c, 0x9ecc, 0x080c, 0xb380, 0x080c, 0x5408,
++      0x008e, 0x003e, 0x001e, 0x080c, 0x9e11, 0x080c, 0x9e1d, 0x080c,
++      0x811e, 0x00ce, 0x0804, 0x6e1d, 0x2c78, 0x600c, 0x2060, 0x0804,
++      0x6e1d, 0x012e, 0x000e, 0x001e, 0x006e, 0x00ce, 0x00de, 0x00ee,
++      0x00fe, 0x0005, 0x601c, 0xa086, 0x0006, 0x1158, 0x0016, 0x0036,
++      0x0086, 0x080c, 0xb380, 0x080c, 0xb099, 0x008e, 0x003e, 0x001e,
++      0x08e0, 0x601c, 0xa086, 0x0002, 0x1128, 0x6004, 0xa086, 0x0085,
++      0x0908, 0x0898, 0x601c, 0xa086, 0x0005, 0x1978, 0x6004, 0xa086,
++      0x0085, 0x0d20, 0x0850, 0x00c6, 0x0006, 0x0126, 0x2091, 0x8000,
++      0xa280, 0xb635, 0x2004, 0xa065, 0x0904, 0x6f4c, 0x00f6, 0x00e6,
++      0x00d6, 0x0066, 0x2071, 0xb7e0, 0x6654, 0x7018, 0xac06, 0x1108,
++      0x761a, 0x701c, 0xac06, 0x1130, 0x86ff, 0x1118, 0x7018, 0x701e,
++      0x0008, 0x761e, 0x6058, 0xa07d, 0x0108, 0x7e56, 0xa6ed, 0x0000,
++      0x0110, 0x2f00, 0x685a, 0x6057, 0x0000, 0x605b, 0x0000, 0x6000,
++      0xc0d4, 0xc0dc, 0x6002, 0x080c, 0x4ed4, 0x0904, 0x6f48, 0x7624,
++      0x86ff, 0x05e8, 0xa680, 0x0004, 0x2004, 0xad06, 0x15c0, 0x00d6,
++      0x2069, 0x0100, 0x68c0, 0xa005, 0x0548, 0x080c, 0x6a10, 0x080c,
++      0x7d7a, 0x68c3, 0x0000, 0x080c, 0x824d, 0x7027, 0x0000, 0x0036,
++      0x2069, 0x0140, 0x6b04, 0xa384, 0x1000, 0x0120, 0x6803, 0x0100,
++      0x6803, 0x0000, 0x2069, 0x0100, 0x6824, 0xd084, 0x0110, 0x6827,
++      0x0001, 0x003e, 0x00de, 0x00c6, 0x603c, 0xa005, 0x0110, 0x8001,
++      0x603e, 0x2660, 0x080c, 0x9e1d, 0x00ce, 0x0048, 0x00de, 0x00c6,
++      0x2660, 0x6003, 0x0009, 0x630a, 0x00ce, 0x0804, 0x6ef3, 0x8dff,
++      0x0158, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000, 0x080c, 0x9ecc,
++      0x080c, 0xb380, 0x080c, 0x5408, 0x080c, 0x811e, 0x0804, 0x6ef3,
++      0x006e, 0x00de, 0x00ee, 0x00fe, 0x012e, 0x000e, 0x00ce, 0x0005,
++      0x0006, 0x0066, 0x00c6, 0x00d6, 0x2031, 0x0000, 0x7814, 0xa065,
++      0x0904, 0x6fa2, 0x600c, 0x0006, 0x600f, 0x0000, 0x7824, 0xac06,
++      0x1540, 0x2069, 0x0100, 0x68c0, 0xa005, 0x01f0, 0x080c, 0x6a10,
++      0x080c, 0x7d7a, 0x68c3, 0x0000, 0x080c, 0x824d, 0x7827, 0x0000,
+       0x0036, 0x2069, 0x0140, 0x6b04, 0xa384, 0x1000, 0x0120, 0x6803,
+       0x0100, 0x6803, 0x0000, 0x2069, 0x0100, 0x6824, 0xd084, 0x0110,
+-      0x6827, 0x0001, 0x003e, 0x0020, 0x6003, 0x0009, 0x630a, 0x04e8,
+-      0x7014, 0xac36, 0x1110, 0x660c, 0x7616, 0x7010, 0xac36, 0x1140,
+-      0x2c00, 0xaf36, 0x0118, 0x2f00, 0x7012, 0x0010, 0x7013, 0x0000,
+-      0x660c, 0x0066, 0x2c00, 0xaf06, 0x0110, 0x7e0e, 0x0008, 0x2678,
+-      0x600f, 0x0000, 0x6010, 0x2068, 0x080c, 0x9c54, 0x01b8, 0x601c,
+-      0xa086, 0x0003, 0x1540, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000,
+-      0x0016, 0x0036, 0x0086, 0x080c, 0x9ec6, 0x080c, 0xb374, 0x080c,
+-      0x5409, 0x008e, 0x003e, 0x001e, 0x080c, 0x9e0b, 0x080c, 0x9e17,
+-      0x080c, 0x811f, 0x00ce, 0x0804, 0x6e1e, 0x2c78, 0x600c, 0x2060,
+-      0x0804, 0x6e1e, 0x012e, 0x000e, 0x001e, 0x006e, 0x00ce, 0x00de,
+-      0x00ee, 0x00fe, 0x0005, 0x601c, 0xa086, 0x0006, 0x1158, 0x0016,
+-      0x0036, 0x0086, 0x080c, 0xb374, 0x080c, 0xb08d, 0x008e, 0x003e,
+-      0x001e, 0x08e0, 0x601c, 0xa086, 0x0002, 0x1128, 0x6004, 0xa086,
+-      0x0085, 0x0908, 0x0898, 0x601c, 0xa086, 0x0005, 0x1978, 0x6004,
+-      0xa086, 0x0085, 0x0d20, 0x0850, 0x00c6, 0x0006, 0x0126, 0x2091,
+-      0x8000, 0xa280, 0xb635, 0x2004, 0xa065, 0x0904, 0x6f4d, 0x00f6,
+-      0x00e6, 0x00d6, 0x0066, 0x2071, 0xb7e0, 0x6654, 0x7018, 0xac06,
+-      0x1108, 0x761a, 0x701c, 0xac06, 0x1130, 0x86ff, 0x1118, 0x7018,
+-      0x701e, 0x0008, 0x761e, 0x6058, 0xa07d, 0x0108, 0x7e56, 0xa6ed,
+-      0x0000, 0x0110, 0x2f00, 0x685a, 0x6057, 0x0000, 0x605b, 0x0000,
+-      0x6000, 0xc0d4, 0xc0dc, 0x6002, 0x080c, 0x4ed5, 0x0904, 0x6f49,
+-      0x7624, 0x86ff, 0x05e8, 0xa680, 0x0004, 0x2004, 0xad06, 0x15c0,
+-      0x00d6, 0x2069, 0x0100, 0x68c0, 0xa005, 0x0548, 0x080c, 0x6a11,
+-      0x080c, 0x7d7b, 0x68c3, 0x0000, 0x080c, 0x8247, 0x7027, 0x0000,
++      0x6827, 0x0001, 0x003e, 0x0028, 0x6003, 0x0009, 0x630a, 0x2c30,
++      0x00b0, 0x6010, 0x2068, 0x080c, 0x9c5a, 0x0168, 0x601c, 0xa086,
++      0x0003, 0x11b8, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000, 0x080c,
++      0x5408, 0x080c, 0x9e11, 0x080c, 0x9e1d, 0x080c, 0x811e, 0x000e,
++      0x0804, 0x6f57, 0x7e16, 0x7e12, 0x00de, 0x00ce, 0x006e, 0x000e,
++      0x0005, 0x601c, 0xa086, 0x0006, 0x1118, 0x080c, 0xb099, 0x0c58,
++      0x601c, 0xa086, 0x0002, 0x1128, 0x6004, 0xa086, 0x0085, 0x09d0,
++      0x0c10, 0x601c, 0xa086, 0x0005, 0x19f0, 0x6004, 0xa086, 0x0085,
++      0x0d60, 0x08c8, 0x0006, 0x0066, 0x00c6, 0x00d6, 0x7818, 0xa065,
++      0x0904, 0x7028, 0x6054, 0x0006, 0x6057, 0x0000, 0x605b, 0x0000,
++      0x6000, 0xc0d4, 0xc0dc, 0x6002, 0x080c, 0x4ed4, 0x0904, 0x7025,
++      0x7e24, 0x86ff, 0x05e8, 0xa680, 0x0004, 0x2004, 0xad06, 0x15c0,
++      0x00d6, 0x2069, 0x0100, 0x68c0, 0xa005, 0x0548, 0x080c, 0x6a10,
++      0x080c, 0x7d7a, 0x68c3, 0x0000, 0x080c, 0x824d, 0x7827, 0x0000,
+       0x0036, 0x2069, 0x0140, 0x6b04, 0xa384, 0x1000, 0x0120, 0x6803,
+       0x0100, 0x6803, 0x0000, 0x2069, 0x0100, 0x6824, 0xd084, 0x0110,
+       0x6827, 0x0001, 0x003e, 0x00de, 0x00c6, 0x603c, 0xa005, 0x0110,
+-      0x8001, 0x603e, 0x2660, 0x080c, 0x9e17, 0x00ce, 0x0048, 0x00de,
+-      0x00c6, 0x2660, 0x6003, 0x0009, 0x630a, 0x00ce, 0x0804, 0x6ef4,
+-      0x8dff, 0x0158, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000, 0x080c,
+-      0x9ec6, 0x080c, 0xb374, 0x080c, 0x5409, 0x080c, 0x811f, 0x0804,
+-      0x6ef4, 0x006e, 0x00de, 0x00ee, 0x00fe, 0x012e, 0x000e, 0x00ce,
+-      0x0005, 0x0006, 0x0066, 0x00c6, 0x00d6, 0x2031, 0x0000, 0x7814,
+-      0xa065, 0x0904, 0x6fa3, 0x600c, 0x0006, 0x600f, 0x0000, 0x7824,
+-      0xac06, 0x1540, 0x2069, 0x0100, 0x68c0, 0xa005, 0x01f0, 0x080c,
+-      0x6a11, 0x080c, 0x7d7b, 0x68c3, 0x0000, 0x080c, 0x8247, 0x7827,
+-      0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0xa384, 0x1000, 0x0120,
+-      0x6803, 0x0100, 0x6803, 0x0000, 0x2069, 0x0100, 0x6824, 0xd084,
+-      0x0110, 0x6827, 0x0001, 0x003e, 0x0028, 0x6003, 0x0009, 0x630a,
+-      0x2c30, 0x00b0, 0x6010, 0x2068, 0x080c, 0x9c54, 0x0168, 0x601c,
+-      0xa086, 0x0003, 0x11b8, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000,
+-      0x080c, 0x5409, 0x080c, 0x9e0b, 0x080c, 0x9e17, 0x080c, 0x811f,
+-      0x000e, 0x0804, 0x6f58, 0x7e16, 0x7e12, 0x00de, 0x00ce, 0x006e,
+-      0x000e, 0x0005, 0x601c, 0xa086, 0x0006, 0x1118, 0x080c, 0xb08d,
+-      0x0c58, 0x601c, 0xa086, 0x0002, 0x1128, 0x6004, 0xa086, 0x0085,
+-      0x09d0, 0x0c10, 0x601c, 0xa086, 0x0005, 0x19f0, 0x6004, 0xa086,
+-      0x0085, 0x0d60, 0x08c8, 0x0006, 0x0066, 0x00c6, 0x00d6, 0x7818,
+-      0xa065, 0x0904, 0x7029, 0x6054, 0x0006, 0x6057, 0x0000, 0x605b,
+-      0x0000, 0x6000, 0xc0d4, 0xc0dc, 0x6002, 0x080c, 0x4ed5, 0x0904,
+-      0x7026, 0x7e24, 0x86ff, 0x05e8, 0xa680, 0x0004, 0x2004, 0xad06,
+-      0x15c0, 0x00d6, 0x2069, 0x0100, 0x68c0, 0xa005, 0x0548, 0x080c,
+-      0x6a11, 0x080c, 0x7d7b, 0x68c3, 0x0000, 0x080c, 0x8247, 0x7827,
+-      0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0xa384, 0x1000, 0x0120,
+-      0x6803, 0x0100, 0x6803, 0x0000, 0x2069, 0x0100, 0x6824, 0xd084,
+-      0x0110, 0x6827, 0x0001, 0x003e, 0x00de, 0x00c6, 0x603c, 0xa005,
+-      0x0110, 0x8001, 0x603e, 0x2660, 0x080c, 0x9e17, 0x00ce, 0x0048,
+-      0x00de, 0x00c6, 0x2660, 0x6003, 0x0009, 0x630a, 0x00ce, 0x0804,
+-      0x6fd5, 0x8dff, 0x0138, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000,
+-      0x080c, 0x5409, 0x080c, 0x811f, 0x0804, 0x6fd5, 0x000e, 0x0804,
+-      0x6fc8, 0x781e, 0x781a, 0x00de, 0x00ce, 0x006e, 0x000e, 0x0005,
+-      0x00e6, 0x00d6, 0x0066, 0x6000, 0xd0dc, 0x01a0, 0x604c, 0xa06d,
+-      0x0188, 0x6848, 0xa606, 0x1170, 0x2071, 0xb7e0, 0x7024, 0xa035,
+-      0x0148, 0xa080, 0x0004, 0x2004, 0xad06, 0x1120, 0x6000, 0xc0dc,
+-      0x6002, 0x0021, 0x006e, 0x00de, 0x00ee, 0x0005, 0x00f6, 0x2079,
+-      0x0100, 0x78c0, 0xa005, 0x1138, 0x00c6, 0x2660, 0x6003, 0x0009,
+-      0x630a, 0x00ce, 0x04a0, 0x080c, 0x7d7b, 0x78c3, 0x0000, 0x080c,
+-      0x8247, 0x7027, 0x0000, 0x0036, 0x2079, 0x0140, 0x7b04, 0xa384,
+-      0x1000, 0x0120, 0x7803, 0x0100, 0x7803, 0x0000, 0x2079, 0x0100,
+-      0x7824, 0xd084, 0x0110, 0x7827, 0x0001, 0x080c, 0x8247, 0x003e,
+-      0x080c, 0x4ed5, 0x00c6, 0x603c, 0xa005, 0x0110, 0x8001, 0x603e,
+-      0x2660, 0x080c, 0x8617, 0x00ce, 0x6837, 0x0103, 0x6b4a, 0x6847,
+-      0x0000, 0x080c, 0x9ec6, 0x080c, 0x5409, 0x080c, 0x811f, 0x00fe,
+-      0x0005, 0x00e6, 0x00c6, 0x2071, 0xb7e0, 0x7004, 0xa084, 0x0007,
+-      0x0002, 0x70a3, 0x70a6, 0x70bc, 0x70d5, 0x7112, 0x70a3, 0x70a1,
+-      0x70a1, 0x080c, 0x1515, 0x00ce, 0x00ee, 0x0005, 0x7024, 0xa065,
+-      0x0148, 0x7020, 0x8001, 0x7022, 0x600c, 0xa015, 0x0150, 0x7216,
+-      0x600f, 0x0000, 0x7007, 0x0000, 0x7027, 0x0000, 0x00ce, 0x00ee,
+-      0x0005, 0x7216, 0x7212, 0x0cb0, 0x6018, 0x2060, 0x080c, 0x4ed5,
+-      0x6000, 0xc0dc, 0x6002, 0x7020, 0x8001, 0x7022, 0x0120, 0x6054,
+-      0xa015, 0x0140, 0x721e, 0x7007, 0x0000, 0x7027, 0x0000, 0x00ce,
+-      0x00ee, 0x0005, 0x7218, 0x721e, 0x0cb0, 0x7024, 0xa065, 0x05b8,
+-      0x700c, 0xac06, 0x1160, 0x080c, 0x811f, 0x600c, 0xa015, 0x0120,
+-      0x720e, 0x600f, 0x0000, 0x0448, 0x720e, 0x720a, 0x0430, 0x7014,
+-      0xac06, 0x1160, 0x080c, 0x811f, 0x600c, 0xa015, 0x0120, 0x7216,
+-      0x600f, 0x0000, 0x00d0, 0x7216, 0x7212, 0x00b8, 0x601c, 0xa086,
+-      0x0003, 0x1198, 0x6018, 0x2060, 0x080c, 0x4ed5, 0x6000, 0xc0dc,
+-      0x6002, 0x080c, 0x811f, 0x701c, 0xa065, 0x0138, 0x6054, 0xa015,
+-      0x0110, 0x721e, 0x0010, 0x7218, 0x721e, 0x7027, 0x0000, 0x00ce,
+-      0x00ee, 0x0005, 0x7024, 0xa065, 0x0140, 0x080c, 0x811f, 0x600c,
+-      0xa015, 0x0150, 0x720e, 0x600f, 0x0000, 0x080c, 0x8247, 0x7027,
+-      0x0000, 0x00ce, 0x00ee, 0x0005, 0x720e, 0x720a, 0x0cb0, 0x00d6,
+-      0x2069, 0xb7e0, 0x6830, 0xa084, 0x0003, 0x0002, 0x7134, 0x7136,
+-      0x715a, 0x7132, 0x080c, 0x1515, 0x00de, 0x0005, 0x00c6, 0x6840,
+-      0xa086, 0x0001, 0x01b8, 0x683c, 0xa065, 0x0130, 0x600c, 0xa015,
+-      0x0170, 0x6a3a, 0x600f, 0x0000, 0x6833, 0x0000, 0x683f, 0x0000,
+-      0x2011, 0xb7ff, 0x2013, 0x0000, 0x00ce, 0x00de, 0x0005, 0x683a,
+-      0x6836, 0x0c90, 0x6843, 0x0000, 0x6838, 0xa065, 0x0d68, 0x6003,
+-      0x0003, 0x0c50, 0x00c6, 0x6843, 0x0000, 0x6847, 0x0000, 0x684b,
+-      0x0000, 0x683c, 0xa065, 0x0168, 0x600c, 0xa015, 0x0130, 0x6a3a,
+-      0x600f, 0x0000, 0x683f, 0x0000, 0x0020, 0x683f, 0x0000, 0x683a,
+-      0x6836, 0x00ce, 0x00de, 0x0005, 0x00d6, 0x2069, 0xb7e0, 0x6804,
+-      0xa084, 0x0007, 0x0002, 0x7185, 0x7221, 0x7221, 0x7221, 0x7221,
+-      0x7223, 0x7183, 0x7183, 0x080c, 0x1515, 0x6820, 0xa005, 0x1110,
+-      0x00de, 0x0005, 0x00c6, 0x680c, 0xa065, 0x0150, 0x6807, 0x0004,
+-      0x6826, 0x682b, 0x0000, 0x080c, 0x7273, 0x00ce, 0x00de, 0x0005,
+-      0x6814, 0xa065, 0x0150, 0x6807, 0x0001, 0x6826, 0x682b, 0x0000,
+-      0x080c, 0x7273, 0x00ce, 0x00de, 0x0005, 0x00e6, 0x0036, 0x6a1c,
+-      0xa2f5, 0x0000, 0x0904, 0x721d, 0x704c, 0xa00d, 0x0118, 0x7088,
+-      0xa005, 0x01a0, 0x7054, 0xa075, 0x0120, 0xa20e, 0x0904, 0x721d,
+-      0x0028, 0x6818, 0xa20e, 0x0904, 0x721d, 0x2070, 0x704c, 0xa00d,
+-      0x0d88, 0x7088, 0xa005, 0x1d70, 0x2e00, 0x681e, 0x733c, 0x7038,
+-      0xa302, 0x1e40, 0x080c, 0x85ee, 0x0904, 0x721d, 0x8318, 0x733e,
+-      0x6112, 0x2e10, 0x621a, 0xa180, 0x0014, 0x2004, 0xa084, 0x00ff,
+-      0x605a, 0xa180, 0x0014, 0x2003, 0x0000, 0xa180, 0x0015, 0x2004,
+-      0xa08a, 0x199a, 0x0210, 0x2001, 0x1999, 0x8003, 0x801b, 0x831b,
+-      0xa318, 0x6316, 0x003e, 0x00f6, 0x2c78, 0x71a0, 0x2001, 0xb535,
+-      0x2004, 0xd0ac, 0x1110, 0xd1bc, 0x0150, 0x7100, 0xd1f4, 0x0120,
+-      0x7114, 0xa18c, 0x00ff, 0x0040, 0x2009, 0x0000, 0x0028, 0xa1e0,
+-      0x2dc4, 0x2c0d, 0xa18c, 0x00ff, 0x2061, 0x0100, 0x619a, 0x080c,
+-      0x78a3, 0x7300, 0xc3dd, 0x7302, 0x6807, 0x0002, 0x2f18, 0x6b26,
+-      0x682b, 0x0000, 0x781f, 0x0003, 0x7803, 0x0001, 0x7807, 0x0040,
+-      0x00fe, 0x00ee, 0x00ce, 0x00de, 0x0005, 0x003e, 0x00ee, 0x00ce,
+-      0x0cd0, 0x00de, 0x0005, 0x00c6, 0x680c, 0xa065, 0x0138, 0x6807,
+-      0x0004, 0x6826, 0x682b, 0x0000, 0x080c, 0x7273, 0x00ce, 0x00de,
+-      0x0005, 0x00f6, 0x00d6, 0x2069, 0xb7e0, 0x6830, 0xa086, 0x0000,
+-      0x11d0, 0x2001, 0xb50c, 0x200c, 0xd1bc, 0x1560, 0x6838, 0xa07d,
+-      0x0190, 0x6833, 0x0001, 0x683e, 0x6847, 0x0000, 0x684b, 0x0000,
+-      0x0126, 0x00f6, 0x2091, 0x2400, 0x002e, 0x080c, 0x2021, 0x1130,
+-      0x012e, 0x080c, 0x7bec, 0x00de, 0x00fe, 0x0005, 0x012e, 0xe000,
+-      0x6843, 0x0000, 0x7803, 0x0002, 0x780c, 0xa015, 0x0140, 0x6a3a,
+-      0x780f, 0x0000, 0x6833, 0x0000, 0x683f, 0x0000, 0x0c60, 0x683a,
+-      0x6836, 0x0cc0, 0xc1bc, 0x2102, 0x0066, 0x2031, 0x0001, 0x080c,
+-      0x5b52, 0x006e, 0x0858, 0x601c, 0xa084, 0x000f, 0x000b, 0x0005,
+-      0x7281, 0x7286, 0x7744, 0x7860, 0x7286, 0x7744, 0x7860, 0x7281,
+-      0x7286, 0x080c, 0x7091, 0x080c, 0x7174, 0x0005, 0x0156, 0x0136,
+-      0x0146, 0x00c6, 0x00f6, 0x6004, 0xa08a, 0x0080, 0x1a0c, 0x1515,
+-      0x6118, 0x2178, 0x79a0, 0x2011, 0xb535, 0x2214, 0xd2ac, 0x1110,
+-      0xd1bc, 0x0150, 0x7900, 0xd1f4, 0x0120, 0x7914, 0xa18c, 0x00ff,
+-      0x0040, 0x2009, 0x0000, 0x0028, 0xa1f8, 0x2dc4, 0x2f0d, 0xa18c,
+-      0x00ff, 0x2c78, 0x2061, 0x0100, 0x619a, 0xa08a, 0x0040, 0x1a04,
+-      0x72fa, 0x0033, 0x00fe, 0x00ce, 0x014e, 0x013e, 0x015e, 0x0005,
+-      0x73a9, 0x73f4, 0x7421, 0x74ee, 0x751c, 0x7524, 0x754a, 0x755b,
+-      0x756c, 0x7574, 0x758a, 0x7574, 0x75eb, 0x755b, 0x760c, 0x7614,
+-      0x756c, 0x7614, 0x7625, 0x72f8, 0x72f8, 0x72f8, 0x72f8, 0x72f8,
+-      0x72f8, 0x72f8, 0x72f8, 0x72f8, 0x72f8, 0x72f8, 0x7e86, 0x7eab,
+-      0x7ec0, 0x7ee3, 0x7f04, 0x754a, 0x72f8, 0x754a, 0x7574, 0x72f8,
+-      0x7421, 0x74ee, 0x72f8, 0x8349, 0x7574, 0x72f8, 0x8369, 0x7574,
+-      0x72f8, 0x756c, 0x73a2, 0x730d, 0x72f8, 0x838e, 0x8403, 0x84da,
+-      0x72f8, 0x84eb, 0x7545, 0x8507, 0x72f8, 0x7f19, 0x8562, 0x72f8,
+-      0x080c, 0x1515, 0x2100, 0x0033, 0x00fe, 0x00ce, 0x014e, 0x013e,
+-      0x015e, 0x0005, 0x730b, 0x730b, 0x730b, 0x7341, 0x735f, 0x7375,
+-      0x730b, 0x730b, 0x730b, 0x080c, 0x1515, 0x00d6, 0x20a1, 0x020b,
+-      0x080c, 0x7642, 0x7810, 0x2068, 0x20a3, 0x2414, 0x20a3, 0x0018,
+-      0x20a3, 0x0800, 0x683c, 0x20a2, 0x20a3, 0x0000, 0x20a3, 0x0000,
+-      0x20a3, 0x0000, 0x20a3, 0x0000, 0x6850, 0x20a2, 0x6854, 0x20a2,
+-      0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0018, 0x080c, 0x7d68,
+-      0x00de, 0x0005, 0x00d6, 0x7818, 0x2068, 0x68a0, 0x2069, 0xb500,
+-      0x6ad4, 0xd2ac, 0x1110, 0xd0bc, 0x0110, 0xa085, 0x0001, 0x00de,
+-      0x0005, 0x00d6, 0x20a1, 0x020b, 0x080c, 0x7642, 0x20a3, 0x0500,
+-      0x20a3, 0x0000, 0x7810, 0xa0e8, 0x000f, 0x6808, 0x20a2, 0x680c,
+-      0x20a2, 0x6810, 0x20a2, 0x6814, 0x20a2, 0x6818, 0x20a2, 0x681c,
+-      0x20a2, 0x60c3, 0x0010, 0x080c, 0x7d68, 0x00de, 0x0005, 0x0156,
+-      0x0146, 0x20a1, 0x020b, 0x080c, 0x7642, 0x20a3, 0x7800, 0x20a3,
+-      0x0000, 0x7808, 0x8007, 0x20a2, 0x20a3, 0x0000, 0x60c3, 0x0008,
+-      0x080c, 0x7d68, 0x014e, 0x015e, 0x0005, 0x0156, 0x0146, 0x20a1,
+-      0x020b, 0x080c, 0x76de, 0x20a3, 0x0200, 0x20a3, 0x0000, 0x20a3,
+-      0xdf10, 0x20a3, 0x0034, 0x2099, 0xb505, 0x20a9, 0x0004, 0x53a6,
+-      0x2099, 0xb501, 0x20a9, 0x0004, 0x53a6, 0x2099, 0xb7c6, 0x20a9,
+-      0x001a, 0x3304, 0x8007, 0x20a2, 0x9398, 0x1f04, 0x7391, 0x20a3,
+-      0x0000, 0x20a3, 0x0000, 0x60c3, 0x004c, 0x080c, 0x7d68, 0x014e,
+-      0x015e, 0x0005, 0x2001, 0xb515, 0x2004, 0x609a, 0x080c, 0x7d68,
+-      0x0005, 0x20a1, 0x020b, 0x080c, 0x7642, 0x20a3, 0x5200, 0x20a3,
+-      0x0000, 0x00d6, 0x2069, 0xb552, 0x6804, 0xd084, 0x0150, 0x6828,
+-      0x20a3, 0x0000, 0x0016, 0x080c, 0x2831, 0x21a2, 0x001e, 0x00de,
+-      0x0028, 0x00de, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a9, 0x0004,
+-      0x2099, 0xb505, 0x53a6, 0x20a9, 0x0004, 0x2099, 0xb501, 0x53a6,
+-      0x2001, 0xb535, 0x2004, 0xd0ac, 0x1138, 0x7818, 0xa080, 0x0028,
+-      0x2004, 0xa082, 0x007f, 0x0238, 0x2001, 0xb51c, 0x20a6, 0x2001,
+-      0xb51d, 0x20a6, 0x0040, 0x20a3, 0x0000, 0x2001, 0xb515, 0x2004,
+-      0xa084, 0x00ff, 0x20a2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3,
+-      0x001c, 0x080c, 0x7d68, 0x0005, 0x20a1, 0x020b, 0x080c, 0x7642,
+-      0x20a3, 0x0500, 0x20a3, 0x0000, 0x2001, 0xb535, 0x2004, 0xd0ac,
+-      0x1138, 0x7818, 0xa080, 0x0028, 0x2004, 0xa082, 0x007f, 0x0238,
+-      0x2001, 0xb51c, 0x20a6, 0x2001, 0xb51d, 0x20a6, 0x0040, 0x20a3,
+-      0x0000, 0x2001, 0xb515, 0x2004, 0xa084, 0x00ff, 0x20a2, 0x20a9,
+-      0x0004, 0x2099, 0xb505, 0x53a6, 0x60c3, 0x0010, 0x080c, 0x7d68,
+-      0x0005, 0x20a1, 0x020b, 0x080c, 0x7642, 0x00c6, 0x7818, 0x2060,
+-      0x2001, 0x0000, 0x080c, 0x5314, 0x00ce, 0x7818, 0xa080, 0x0028,
+-      0x2004, 0xa086, 0x007e, 0x1130, 0x20a3, 0x0400, 0x620c, 0xc2b4,
+-      0x620e, 0x0010, 0x20a3, 0x0300, 0x20a3, 0x0000, 0x7818, 0xa080,
+-      0x0028, 0x2004, 0xa086, 0x007e, 0x1904, 0x74b0, 0x2001, 0xb535,
+-      0x2004, 0xd0a4, 0x01c8, 0x2099, 0xb78e, 0x33a6, 0x9398, 0x20a3,
+-      0x0000, 0x9398, 0x3304, 0xa084, 0x2000, 0x20a2, 0x9398, 0x33a6,
+-      0x9398, 0x20a3, 0x0000, 0x9398, 0x2001, 0x2710, 0x20a2, 0x9398,
+-      0x33a6, 0x9398, 0x33a6, 0x00d0, 0x2099, 0xb78e, 0x33a6, 0x9398,
+-      0x33a6, 0x9398, 0x3304, 0x080c, 0x5ad0, 0x1118, 0xa084, 0x37ff,
+-      0x0010, 0xa084, 0x3fff, 0x20a2, 0x9398, 0x33a6, 0x20a3, 0x0000,
+-      0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a9, 0x0004,
+-      0x2099, 0xb505, 0x53a6, 0x20a9, 0x0004, 0x2099, 0xb501, 0x53a6,
+-      0x20a9, 0x0008, 0x20a3, 0x0000, 0x1f04, 0x748a, 0x20a9, 0x0008,
+-      0x20a3, 0x0000, 0x1f04, 0x7490, 0x2099, 0xb796, 0x3304, 0xc0dd,
+-      0x20a2, 0x2001, 0xb572, 0x2004, 0xd0e4, 0x0158, 0x20a3, 0x0000,
+-      0x20a3, 0x0000, 0x9398, 0x9398, 0x9398, 0x33a6, 0x20a9, 0x0004,
+-      0x0010, 0x20a9, 0x0007, 0x20a3, 0x0000, 0x1f04, 0x74ab, 0x0468,
+-      0x2001, 0xb535, 0x2004, 0xd0a4, 0x0140, 0x2001, 0xb78f, 0x2004,
+-      0x60e3, 0x0000, 0x080c, 0x2872, 0x60e2, 0x2099, 0xb78e, 0x20a9,
+-      0x0008, 0x53a6, 0x20a9, 0x0004, 0x2099, 0xb505, 0x53a6, 0x20a9,
+-      0x0004, 0x2099, 0xb501, 0x53a6, 0x20a9, 0x0008, 0x20a3, 0x0000,
+-      0x1f04, 0x74ce, 0x20a9, 0x0008, 0x20a3, 0x0000, 0x1f04, 0x74d4,
+-      0x2099, 0xb796, 0x20a9, 0x0008, 0x53a6, 0x20a9, 0x0008, 0x20a3,
+-      0x0000, 0x1f04, 0x74df, 0x20a9, 0x000a, 0x20a3, 0x0000, 0x1f04,
+-      0x74e5, 0x60c3, 0x0074, 0x080c, 0x7d68, 0x0005, 0x20a1, 0x020b,
+-      0x080c, 0x7642, 0x20a3, 0x2010, 0x20a3, 0x0014, 0x20a3, 0x0800,
+-      0x20a3, 0x2000, 0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a2,
+-      0x00f6, 0x2079, 0xb552, 0x7904, 0x00fe, 0xd1ac, 0x1110, 0xa085,
+-      0x0020, 0xd1a4, 0x0110, 0xa085, 0x0010, 0xa085, 0x0002, 0x00d6,
+-      0x0804, 0x75cd, 0x20a2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3,
+-      0x0014, 0x080c, 0x7d68, 0x0005, 0x20a1, 0x020b, 0x080c, 0x7642,
+-      0x20a3, 0x5000, 0x0804, 0x743c, 0x20a1, 0x020b, 0x080c, 0x7642,
+-      0x20a3, 0x2110, 0x20a3, 0x0014, 0x20a3, 0x0000, 0x20a3, 0x0000,
+-      0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000,
+-      0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000,
+-      0x60c3, 0x0014, 0x080c, 0x7d68, 0x0005, 0x20a1, 0x020b, 0x080c,
+-      0x76d6, 0x0020, 0x20a1, 0x020b, 0x080c, 0x76de, 0x20a3, 0x0200,
+-      0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0004,
+-      0x080c, 0x7d68, 0x0005, 0x20a1, 0x020b, 0x080c, 0x76de, 0x20a3,
+-      0x0100, 0x20a3, 0x0000, 0x20a3, 0x0003, 0x20a3, 0x2a00, 0x60c3,
+-      0x0008, 0x080c, 0x7d68, 0x0005, 0x20a1, 0x020b, 0x080c, 0x76de,
+-      0x20a3, 0x0200, 0x0804, 0x743c, 0x20a1, 0x020b, 0x080c, 0x76de,
+-      0x20a3, 0x0100, 0x20a3, 0x0000, 0x7828, 0xa005, 0x0110, 0x20a2,
+-      0x0010, 0x20a3, 0x0003, 0x7810, 0x20a2, 0x60c3, 0x0008, 0x080c,
+-      0x7d68, 0x0005, 0x00d6, 0x20a1, 0x020b, 0x080c, 0x76de, 0x20a3,
+-      0x0210, 0x20a3, 0x0014, 0x20a3, 0x0800, 0x7818, 0x2068, 0x6894,
+-      0xa086, 0x0014, 0x1198, 0x699c, 0xa184, 0x0030, 0x0190, 0x6998,
+-      0xa184, 0xc000, 0x1140, 0xd1ec, 0x0118, 0x20a3, 0x2100, 0x0058,
+-      0x20a3, 0x0100, 0x0040, 0x20a3, 0x0400, 0x0028, 0x20a3, 0x0700,
+-      0x0010, 0x700f, 0x0800, 0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2,
+-      0x20a2, 0x00f6, 0x2079, 0xb552, 0x7904, 0x00fe, 0xd1ac, 0x1110,
+-      0xa085, 0x0020, 0xd1a4, 0x0110, 0xa085, 0x0010, 0x2009, 0xb574,
+-      0x210c, 0xd184, 0x1110, 0xa085, 0x0002, 0x0026, 0x2009, 0xb572,
+-      0x210c, 0xd1e4, 0x0130, 0xc0c5, 0xa094, 0x0030, 0xa296, 0x0010,
+-      0x0140, 0xd1ec, 0x0130, 0xa094, 0x0030, 0xa296, 0x0010, 0x0108,
+-      0xc0bd, 0x002e, 0x20a2, 0x20a2, 0x20a2, 0x60c3, 0x0014, 0x080c,
+-      0x7d68, 0x00de, 0x0005, 0x20a1, 0x020b, 0x080c, 0x76de, 0x20a3,
+-      0x0210, 0x20a3, 0x0014, 0x20a3, 0x0000, 0x20a3, 0x0100, 0x20a3,
+-      0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3,
+-      0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3,
+-      0x0014, 0x080c, 0x7d68, 0x0005, 0x20a1, 0x020b, 0x080c, 0x76de,
+-      0x20a3, 0x0200, 0x0804, 0x73af, 0x20a1, 0x020b, 0x080c, 0x76de,
+-      0x20a3, 0x0100, 0x20a3, 0x0000, 0x20a3, 0x0003, 0x20a3, 0x2a00,
+-      0x60c3, 0x0008, 0x080c, 0x7d68, 0x0005, 0x20e1, 0x9080, 0x20e1,
+-      0x4000, 0x20a1, 0x020b, 0x080c, 0x76de, 0x20a3, 0x0100, 0x20a3,
+-      0x0000, 0x20a3, 0x000b, 0x20a3, 0x0000, 0x60c3, 0x0008, 0x080c,
+-      0x7d68, 0x0005, 0x0026, 0x0036, 0x0046, 0x2019, 0x3200, 0x2021,
+-      0x0800, 0x0038, 0x0026, 0x0036, 0x0046, 0x2019, 0x2200, 0x2021,
+-      0x0100, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7818, 0xa080, 0x0028,
+-      0x2014, 0xa286, 0x007e, 0x11a0, 0xa385, 0x00ff, 0x20a2, 0x20a3,
+-      0xfffe, 0x20a3, 0x0000, 0x2011, 0xb515, 0x2214, 0x2001, 0xb79e,
+-      0x2004, 0xa005, 0x0118, 0x2011, 0xb51d, 0x2214, 0x22a2, 0x04d0,
+-      0xa286, 0x007f, 0x1138, 0x00d6, 0xa385, 0x00ff, 0x20a2, 0x20a3,
+-      0xfffd, 0x00c8, 0x2001, 0xb535, 0x2004, 0xd0ac, 0x1110, 0xd2bc,
+-      0x01c8, 0xa286, 0x0080, 0x00d6, 0x1130, 0xa385, 0x00ff, 0x20a2,
+-      0x20a3, 0xfffc, 0x0040, 0xa2e8, 0xb635, 0x2d6c, 0x6810, 0xa305,
+-      0x20a2, 0x6814, 0x20a2, 0x2069, 0xb51c, 0x2da6, 0x8d68, 0x2da6,
+-      0x00de, 0x0080, 0x00d6, 0xa2e8, 0xb635, 0x2d6c, 0x6810, 0xa305,
+-      0x20a2, 0x6814, 0x20a2, 0x00de, 0x20a3, 0x0000, 0x2011, 0xb515,
+-      0x2214, 0x22a2, 0xa485, 0x0029, 0x20a2, 0x004e, 0x003e, 0x20a3,
+-      0x0000, 0x080c, 0x7d57, 0x22a2, 0x20a3, 0x0000, 0x2fa2, 0x20a3,
+-      0xffff, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x002e, 0x0005, 0x0026,
+-      0x20e1, 0x9080, 0x20e1, 0x4000, 0x20a3, 0x02ff, 0x2011, 0xfffc,
+-      0x22a2, 0x00d6, 0x2069, 0xb51c, 0x2da6, 0x8d68, 0x2da6, 0x00de,
+-      0x20a3, 0x2029, 0x20a3, 0x0000, 0x08e0, 0x20a3, 0x0100, 0x20a3,
+-      0x0000, 0x20a3, 0xfc02, 0x20a3, 0x0000, 0x0005, 0x0026, 0x0036,
+-      0x0046, 0x2019, 0x3300, 0x2021, 0x0800, 0x0038, 0x0026, 0x0036,
+-      0x0046, 0x2019, 0x2300, 0x2021, 0x0100, 0x20e1, 0x9080, 0x20e1,
+-      0x4000, 0x7818, 0xa080, 0x0028, 0x2004, 0x2011, 0xb535, 0x2214,
+-      0xd2ac, 0x1118, 0xa092, 0x007e, 0x02d8, 0x00d6, 0xa0e8, 0xb635,
+-      0x2d6c, 0x6810, 0xa305, 0x20a2, 0x6814, 0x20a2, 0x6810, 0xa005,
+-      0x1140, 0x6814, 0xa005, 0x1128, 0x20a3, 0x00ff, 0x20a3, 0xfffe,
+-      0x0028, 0x2069, 0xb51c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0080,
+-      0x00d6, 0xa0e8, 0xb635, 0x2d6c, 0x6810, 0xa305, 0x20a2, 0x6814,
+-      0x20a2, 0x00de, 0x20a3, 0x0000, 0x2011, 0xb515, 0x2214, 0x22a2,
+-      0xa485, 0x0098, 0x20a2, 0x20a3, 0x0000, 0x004e, 0x003e, 0x080c,
+-      0x7d57, 0x22a2, 0x20a3, 0x0000, 0x7a08, 0x22a2, 0x2fa2, 0x20a3,
+-      0x0000, 0x20a3, 0x0000, 0x002e, 0x0005, 0x080c, 0x7d57, 0x22a2,
+-      0x20a3, 0x0000, 0x7a08, 0x22a2, 0x7810, 0x20a2, 0x20a3, 0x0000,
+-      0x20a3, 0x0000, 0x002e, 0x0005, 0x00c6, 0x00f6, 0x6004, 0xa08a,
+-      0x0085, 0x0a0c, 0x1515, 0xa08a, 0x008c, 0x1a0c, 0x1515, 0x6118,
++      0x8001, 0x603e, 0x2660, 0x080c, 0x9e1d, 0x00ce, 0x0048, 0x00de,
++      0x00c6, 0x2660, 0x6003, 0x0009, 0x630a, 0x00ce, 0x0804, 0x6fd4,
++      0x8dff, 0x0138, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000, 0x080c,
++      0x5408, 0x080c, 0x811e, 0x0804, 0x6fd4, 0x000e, 0x0804, 0x6fc7,
++      0x781e, 0x781a, 0x00de, 0x00ce, 0x006e, 0x000e, 0x0005, 0x00e6,
++      0x00d6, 0x0066, 0x6000, 0xd0dc, 0x01a0, 0x604c, 0xa06d, 0x0188,
++      0x6848, 0xa606, 0x1170, 0x2071, 0xb7e0, 0x7024, 0xa035, 0x0148,
++      0xa080, 0x0004, 0x2004, 0xad06, 0x1120, 0x6000, 0xc0dc, 0x6002,
++      0x0021, 0x006e, 0x00de, 0x00ee, 0x0005, 0x00f6, 0x2079, 0x0100,
++      0x78c0, 0xa005, 0x1138, 0x00c6, 0x2660, 0x6003, 0x0009, 0x630a,
++      0x00ce, 0x04a0, 0x080c, 0x7d7a, 0x78c3, 0x0000, 0x080c, 0x824d,
++      0x7027, 0x0000, 0x0036, 0x2079, 0x0140, 0x7b04, 0xa384, 0x1000,
++      0x0120, 0x7803, 0x0100, 0x7803, 0x0000, 0x2079, 0x0100, 0x7824,
++      0xd084, 0x0110, 0x7827, 0x0001, 0x080c, 0x824d, 0x003e, 0x080c,
++      0x4ed4, 0x00c6, 0x603c, 0xa005, 0x0110, 0x8001, 0x603e, 0x2660,
++      0x080c, 0x861d, 0x00ce, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000,
++      0x080c, 0x9ecc, 0x080c, 0x5408, 0x080c, 0x811e, 0x00fe, 0x0005,
++      0x00e6, 0x00c6, 0x2071, 0xb7e0, 0x7004, 0xa084, 0x0007, 0x0002,
++      0x70a2, 0x70a5, 0x70bb, 0x70d4, 0x7111, 0x70a2, 0x70a0, 0x70a0,
++      0x080c, 0x1515, 0x00ce, 0x00ee, 0x0005, 0x7024, 0xa065, 0x0148,
++      0x7020, 0x8001, 0x7022, 0x600c, 0xa015, 0x0150, 0x7216, 0x600f,
++      0x0000, 0x7007, 0x0000, 0x7027, 0x0000, 0x00ce, 0x00ee, 0x0005,
++      0x7216, 0x7212, 0x0cb0, 0x6018, 0x2060, 0x080c, 0x4ed4, 0x6000,
++      0xc0dc, 0x6002, 0x7020, 0x8001, 0x7022, 0x0120, 0x6054, 0xa015,
++      0x0140, 0x721e, 0x7007, 0x0000, 0x7027, 0x0000, 0x00ce, 0x00ee,
++      0x0005, 0x7218, 0x721e, 0x0cb0, 0x7024, 0xa065, 0x05b8, 0x700c,
++      0xac06, 0x1160, 0x080c, 0x811e, 0x600c, 0xa015, 0x0120, 0x720e,
++      0x600f, 0x0000, 0x0448, 0x720e, 0x720a, 0x0430, 0x7014, 0xac06,
++      0x1160, 0x080c, 0x811e, 0x600c, 0xa015, 0x0120, 0x7216, 0x600f,
++      0x0000, 0x00d0, 0x7216, 0x7212, 0x00b8, 0x601c, 0xa086, 0x0003,
++      0x1198, 0x6018, 0x2060, 0x080c, 0x4ed4, 0x6000, 0xc0dc, 0x6002,
++      0x080c, 0x811e, 0x701c, 0xa065, 0x0138, 0x6054, 0xa015, 0x0110,
++      0x721e, 0x0010, 0x7218, 0x721e, 0x7027, 0x0000, 0x00ce, 0x00ee,
++      0x0005, 0x7024, 0xa065, 0x0140, 0x080c, 0x811e, 0x600c, 0xa015,
++      0x0150, 0x720e, 0x600f, 0x0000, 0x080c, 0x824d, 0x7027, 0x0000,
++      0x00ce, 0x00ee, 0x0005, 0x720e, 0x720a, 0x0cb0, 0x00d6, 0x2069,
++      0xb7e0, 0x6830, 0xa084, 0x0003, 0x0002, 0x7133, 0x7135, 0x7159,
++      0x7131, 0x080c, 0x1515, 0x00de, 0x0005, 0x00c6, 0x6840, 0xa086,
++      0x0001, 0x01b8, 0x683c, 0xa065, 0x0130, 0x600c, 0xa015, 0x0170,
++      0x6a3a, 0x600f, 0x0000, 0x6833, 0x0000, 0x683f, 0x0000, 0x2011,
++      0xb7ff, 0x2013, 0x0000, 0x00ce, 0x00de, 0x0005, 0x683a, 0x6836,
++      0x0c90, 0x6843, 0x0000, 0x6838, 0xa065, 0x0d68, 0x6003, 0x0003,
++      0x0c50, 0x00c6, 0x6843, 0x0000, 0x6847, 0x0000, 0x684b, 0x0000,
++      0x683c, 0xa065, 0x0168, 0x600c, 0xa015, 0x0130, 0x6a3a, 0x600f,
++      0x0000, 0x683f, 0x0000, 0x0020, 0x683f, 0x0000, 0x683a, 0x6836,
++      0x00ce, 0x00de, 0x0005, 0x00d6, 0x2069, 0xb7e0, 0x6804, 0xa084,
++      0x0007, 0x0002, 0x7184, 0x7220, 0x7220, 0x7220, 0x7220, 0x7222,
++      0x7182, 0x7182, 0x080c, 0x1515, 0x6820, 0xa005, 0x1110, 0x00de,
++      0x0005, 0x00c6, 0x680c, 0xa065, 0x0150, 0x6807, 0x0004, 0x6826,
++      0x682b, 0x0000, 0x080c, 0x7272, 0x00ce, 0x00de, 0x0005, 0x6814,
++      0xa065, 0x0150, 0x6807, 0x0001, 0x6826, 0x682b, 0x0000, 0x080c,
++      0x7272, 0x00ce, 0x00de, 0x0005, 0x00e6, 0x0036, 0x6a1c, 0xa2f5,
++      0x0000, 0x0904, 0x721c, 0x704c, 0xa00d, 0x0118, 0x7088, 0xa005,
++      0x01a0, 0x7054, 0xa075, 0x0120, 0xa20e, 0x0904, 0x721c, 0x0028,
++      0x6818, 0xa20e, 0x0904, 0x721c, 0x2070, 0x704c, 0xa00d, 0x0d88,
++      0x7088, 0xa005, 0x1d70, 0x2e00, 0x681e, 0x733c, 0x7038, 0xa302,
++      0x1e40, 0x080c, 0x85f4, 0x0904, 0x721c, 0x8318, 0x733e, 0x6112,
++      0x2e10, 0x621a, 0xa180, 0x0014, 0x2004, 0xa084, 0x00ff, 0x605a,
++      0xa180, 0x0014, 0x2003, 0x0000, 0xa180, 0x0015, 0x2004, 0xa08a,
++      0x199a, 0x0210, 0x2001, 0x1999, 0x8003, 0x801b, 0x831b, 0xa318,
++      0x6316, 0x003e, 0x00f6, 0x2c78, 0x71a0, 0x2001, 0xb535, 0x2004,
++      0xd0ac, 0x1110, 0xd1bc, 0x0150, 0x7100, 0xd1f4, 0x0120, 0x7114,
++      0xa18c, 0x00ff, 0x0040, 0x2009, 0x0000, 0x0028, 0xa1e0, 0x2dc4,
++      0x2c0d, 0xa18c, 0x00ff, 0x2061, 0x0100, 0x619a, 0x080c, 0x78a2,
++      0x7300, 0xc3dd, 0x7302, 0x6807, 0x0002, 0x2f18, 0x6b26, 0x682b,
++      0x0000, 0x781f, 0x0003, 0x7803, 0x0001, 0x7807, 0x0040, 0x00fe,
++      0x00ee, 0x00ce, 0x00de, 0x0005, 0x003e, 0x00ee, 0x00ce, 0x0cd0,
++      0x00de, 0x0005, 0x00c6, 0x680c, 0xa065, 0x0138, 0x6807, 0x0004,
++      0x6826, 0x682b, 0x0000, 0x080c, 0x7272, 0x00ce, 0x00de, 0x0005,
++      0x00f6, 0x00d6, 0x2069, 0xb7e0, 0x6830, 0xa086, 0x0000, 0x11d0,
++      0x2001, 0xb50c, 0x200c, 0xd1bc, 0x1560, 0x6838, 0xa07d, 0x0190,
++      0x6833, 0x0001, 0x683e, 0x6847, 0x0000, 0x684b, 0x0000, 0x0126,
++      0x00f6, 0x2091, 0x2400, 0x002e, 0x080c, 0x2021, 0x1130, 0x012e,
++      0x080c, 0x7beb, 0x00de, 0x00fe, 0x0005, 0x012e, 0xe000, 0x6843,
++      0x0000, 0x7803, 0x0002, 0x780c, 0xa015, 0x0140, 0x6a3a, 0x780f,
++      0x0000, 0x6833, 0x0000, 0x683f, 0x0000, 0x0c60, 0x683a, 0x6836,
++      0x0cc0, 0xc1bc, 0x2102, 0x0066, 0x2031, 0x0001, 0x080c, 0x5b51,
++      0x006e, 0x0858, 0x601c, 0xa084, 0x000f, 0x000b, 0x0005, 0x7280,
++      0x7285, 0x7743, 0x785f, 0x7285, 0x7743, 0x785f, 0x7280, 0x7285,
++      0x080c, 0x7090, 0x080c, 0x7173, 0x0005, 0x0156, 0x0136, 0x0146,
++      0x00c6, 0x00f6, 0x6004, 0xa08a, 0x0080, 0x1a0c, 0x1515, 0x6118,
+       0x2178, 0x79a0, 0x2011, 0xb535, 0x2214, 0xd2ac, 0x1110, 0xd1bc,
+       0x0150, 0x7900, 0xd1f4, 0x0120, 0x7914, 0xa18c, 0x00ff, 0x0040,
+       0x2009, 0x0000, 0x0028, 0xa1f8, 0x2dc4, 0x2f0d, 0xa18c, 0x00ff,
+-      0x2c78, 0x2061, 0x0100, 0x619a, 0xa082, 0x0085, 0x001b, 0x00fe,
+-      0x00ce, 0x0005, 0x777b, 0x7785, 0x77a0, 0x7779, 0x7779, 0x7779,
+-      0x777b, 0x080c, 0x1515, 0x0146, 0x20a1, 0x020b, 0x04a1, 0x60c3,
+-      0x0000, 0x080c, 0x7d68, 0x014e, 0x0005, 0x0146, 0x20a1, 0x020b,
+-      0x080c, 0x77ec, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x7808, 0x20a2,
+-      0x7810, 0x20a2, 0x20a3, 0x0000, 0x20a3, 0xffff, 0x20a3, 0x0000,
+-      0x20a3, 0x0000, 0x60c3, 0x000c, 0x080c, 0x7d68, 0x014e, 0x0005,
+-      0x0146, 0x20a1, 0x020b, 0x080c, 0x7826, 0x20a3, 0x0003, 0x20a3,
+-      0x0300, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0004, 0x080c,
+-      0x7d68, 0x014e, 0x0005, 0x0026, 0x20e1, 0x9080, 0x20e1, 0x4000,
++      0x2c78, 0x2061, 0x0100, 0x619a, 0xa08a, 0x0040, 0x1a04, 0x72f9,
++      0x0033, 0x00fe, 0x00ce, 0x014e, 0x013e, 0x015e, 0x0005, 0x73a8,
++      0x73f3, 0x7420, 0x74ed, 0x751b, 0x7523, 0x7549, 0x755a, 0x756b,
++      0x7573, 0x7589, 0x7573, 0x75ea, 0x755a, 0x760b, 0x7613, 0x756b,
++      0x7613, 0x7624, 0x72f7, 0x72f7, 0x72f7, 0x72f7, 0x72f7, 0x72f7,
++      0x72f7, 0x72f7, 0x72f7, 0x72f7, 0x72f7, 0x7e85, 0x7eaa, 0x7ebf,
++      0x7ee2, 0x7f03, 0x7549, 0x72f7, 0x7549, 0x7573, 0x72f7, 0x7420,
++      0x74ed, 0x72f7, 0x834f, 0x7573, 0x72f7, 0x836f, 0x7573, 0x72f7,
++      0x756b, 0x73a1, 0x730c, 0x72f7, 0x8394, 0x8409, 0x84e0, 0x72f7,
++      0x84f1, 0x7544, 0x850d, 0x72f7, 0x7f18, 0x8568, 0x72f7, 0x080c,
++      0x1515, 0x2100, 0x0033, 0x00fe, 0x00ce, 0x014e, 0x013e, 0x015e,
++      0x0005, 0x730a, 0x730a, 0x730a, 0x7340, 0x735e, 0x7374, 0x730a,
++      0x730a, 0x730a, 0x080c, 0x1515, 0x00d6, 0x20a1, 0x020b, 0x080c,
++      0x7641, 0x7810, 0x2068, 0x20a3, 0x2414, 0x20a3, 0x0018, 0x20a3,
++      0x0800, 0x683c, 0x20a2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3,
++      0x0000, 0x20a3, 0x0000, 0x6850, 0x20a2, 0x6854, 0x20a2, 0x20a3,
++      0x0000, 0x20a3, 0x0000, 0x60c3, 0x0018, 0x080c, 0x7d67, 0x00de,
++      0x0005, 0x00d6, 0x7818, 0x2068, 0x68a0, 0x2069, 0xb500, 0x6ad4,
++      0xd2ac, 0x1110, 0xd0bc, 0x0110, 0xa085, 0x0001, 0x00de, 0x0005,
++      0x00d6, 0x20a1, 0x020b, 0x080c, 0x7641, 0x20a3, 0x0500, 0x20a3,
++      0x0000, 0x7810, 0xa0e8, 0x000f, 0x6808, 0x20a2, 0x680c, 0x20a2,
++      0x6810, 0x20a2, 0x6814, 0x20a2, 0x6818, 0x20a2, 0x681c, 0x20a2,
++      0x60c3, 0x0010, 0x080c, 0x7d67, 0x00de, 0x0005, 0x0156, 0x0146,
++      0x20a1, 0x020b, 0x080c, 0x7641, 0x20a3, 0x7800, 0x20a3, 0x0000,
++      0x7808, 0x8007, 0x20a2, 0x20a3, 0x0000, 0x60c3, 0x0008, 0x080c,
++      0x7d67, 0x014e, 0x015e, 0x0005, 0x0156, 0x0146, 0x20a1, 0x020b,
++      0x080c, 0x76dd, 0x20a3, 0x0200, 0x20a3, 0x0000, 0x20a3, 0xdf10,
++      0x20a3, 0x0034, 0x2099, 0xb505, 0x20a9, 0x0004, 0x53a6, 0x2099,
++      0xb501, 0x20a9, 0x0004, 0x53a6, 0x2099, 0xb7c6, 0x20a9, 0x001a,
++      0x3304, 0x8007, 0x20a2, 0x9398, 0x1f04, 0x7390, 0x20a3, 0x0000,
++      0x20a3, 0x0000, 0x60c3, 0x004c, 0x080c, 0x7d67, 0x014e, 0x015e,
++      0x0005, 0x2001, 0xb515, 0x2004, 0x609a, 0x080c, 0x7d67, 0x0005,
++      0x20a1, 0x020b, 0x080c, 0x7641, 0x20a3, 0x5200, 0x20a3, 0x0000,
++      0x00d6, 0x2069, 0xb552, 0x6804, 0xd084, 0x0150, 0x6828, 0x20a3,
++      0x0000, 0x0016, 0x080c, 0x2831, 0x21a2, 0x001e, 0x00de, 0x0028,
++      0x00de, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a9, 0x0004, 0x2099,
++      0xb505, 0x53a6, 0x20a9, 0x0004, 0x2099, 0xb501, 0x53a6, 0x2001,
++      0xb535, 0x2004, 0xd0ac, 0x1138, 0x7818, 0xa080, 0x0028, 0x2004,
++      0xa082, 0x007f, 0x0238, 0x2001, 0xb51c, 0x20a6, 0x2001, 0xb51d,
++      0x20a6, 0x0040, 0x20a3, 0x0000, 0x2001, 0xb515, 0x2004, 0xa084,
++      0x00ff, 0x20a2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x001c,
++      0x080c, 0x7d67, 0x0005, 0x20a1, 0x020b, 0x080c, 0x7641, 0x20a3,
++      0x0500, 0x20a3, 0x0000, 0x2001, 0xb535, 0x2004, 0xd0ac, 0x1138,
++      0x7818, 0xa080, 0x0028, 0x2004, 0xa082, 0x007f, 0x0238, 0x2001,
++      0xb51c, 0x20a6, 0x2001, 0xb51d, 0x20a6, 0x0040, 0x20a3, 0x0000,
++      0x2001, 0xb515, 0x2004, 0xa084, 0x00ff, 0x20a2, 0x20a9, 0x0004,
++      0x2099, 0xb505, 0x53a6, 0x60c3, 0x0010, 0x080c, 0x7d67, 0x0005,
++      0x20a1, 0x020b, 0x080c, 0x7641, 0x00c6, 0x7818, 0x2060, 0x2001,
++      0x0000, 0x080c, 0x5313, 0x00ce, 0x7818, 0xa080, 0x0028, 0x2004,
++      0xa086, 0x007e, 0x1130, 0x20a3, 0x0400, 0x620c, 0xc2b4, 0x620e,
++      0x0010, 0x20a3, 0x0300, 0x20a3, 0x0000, 0x7818, 0xa080, 0x0028,
++      0x2004, 0xa086, 0x007e, 0x1904, 0x74af, 0x2001, 0xb535, 0x2004,
++      0xd0a4, 0x01c8, 0x2099, 0xb78e, 0x33a6, 0x9398, 0x20a3, 0x0000,
++      0x9398, 0x3304, 0xa084, 0x2000, 0x20a2, 0x9398, 0x33a6, 0x9398,
++      0x20a3, 0x0000, 0x9398, 0x2001, 0x2710, 0x20a2, 0x9398, 0x33a6,
++      0x9398, 0x33a6, 0x00d0, 0x2099, 0xb78e, 0x33a6, 0x9398, 0x33a6,
++      0x9398, 0x3304, 0x080c, 0x5acf, 0x1118, 0xa084, 0x37ff, 0x0010,
++      0xa084, 0x3fff, 0x20a2, 0x9398, 0x33a6, 0x20a3, 0x0000, 0x20a3,
++      0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a9, 0x0004, 0x2099,
++      0xb505, 0x53a6, 0x20a9, 0x0004, 0x2099, 0xb501, 0x53a6, 0x20a9,
++      0x0008, 0x20a3, 0x0000, 0x1f04, 0x7489, 0x20a9, 0x0008, 0x20a3,
++      0x0000, 0x1f04, 0x748f, 0x2099, 0xb796, 0x3304, 0xc0dd, 0x20a2,
++      0x2001, 0xb572, 0x2004, 0xd0e4, 0x0158, 0x20a3, 0x0000, 0x20a3,
++      0x0000, 0x9398, 0x9398, 0x9398, 0x33a6, 0x20a9, 0x0004, 0x0010,
++      0x20a9, 0x0007, 0x20a3, 0x0000, 0x1f04, 0x74aa, 0x0468, 0x2001,
++      0xb535, 0x2004, 0xd0a4, 0x0140, 0x2001, 0xb78f, 0x2004, 0x60e3,
++      0x0000, 0x080c, 0x2872, 0x60e2, 0x2099, 0xb78e, 0x20a9, 0x0008,
++      0x53a6, 0x20a9, 0x0004, 0x2099, 0xb505, 0x53a6, 0x20a9, 0x0004,
++      0x2099, 0xb501, 0x53a6, 0x20a9, 0x0008, 0x20a3, 0x0000, 0x1f04,
++      0x74cd, 0x20a9, 0x0008, 0x20a3, 0x0000, 0x1f04, 0x74d3, 0x2099,
++      0xb796, 0x20a9, 0x0008, 0x53a6, 0x20a9, 0x0008, 0x20a3, 0x0000,
++      0x1f04, 0x74de, 0x20a9, 0x000a, 0x20a3, 0x0000, 0x1f04, 0x74e4,
++      0x60c3, 0x0074, 0x080c, 0x7d67, 0x0005, 0x20a1, 0x020b, 0x080c,
++      0x7641, 0x20a3, 0x2010, 0x20a3, 0x0014, 0x20a3, 0x0800, 0x20a3,
++      0x2000, 0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x00f6,
++      0x2079, 0xb552, 0x7904, 0x00fe, 0xd1ac, 0x1110, 0xa085, 0x0020,
++      0xd1a4, 0x0110, 0xa085, 0x0010, 0xa085, 0x0002, 0x00d6, 0x0804,
++      0x75cc, 0x20a2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0014,
++      0x080c, 0x7d67, 0x0005, 0x20a1, 0x020b, 0x080c, 0x7641, 0x20a3,
++      0x5000, 0x0804, 0x743b, 0x20a1, 0x020b, 0x080c, 0x7641, 0x20a3,
++      0x2110, 0x20a3, 0x0014, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3,
++      0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3,
++      0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3,
++      0x0014, 0x080c, 0x7d67, 0x0005, 0x20a1, 0x020b, 0x080c, 0x76d5,
++      0x0020, 0x20a1, 0x020b, 0x080c, 0x76dd, 0x20a3, 0x0200, 0x20a3,
++      0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0004, 0x080c,
++      0x7d67, 0x0005, 0x20a1, 0x020b, 0x080c, 0x76dd, 0x20a3, 0x0100,
++      0x20a3, 0x0000, 0x20a3, 0x0003, 0x20a3, 0x2a00, 0x60c3, 0x0008,
++      0x080c, 0x7d67, 0x0005, 0x20a1, 0x020b, 0x080c, 0x76dd, 0x20a3,
++      0x0200, 0x0804, 0x743b, 0x20a1, 0x020b, 0x080c, 0x76dd, 0x20a3,
++      0x0100, 0x20a3, 0x0000, 0x7828, 0xa005, 0x0110, 0x20a2, 0x0010,
++      0x20a3, 0x0003, 0x7810, 0x20a2, 0x60c3, 0x0008, 0x080c, 0x7d67,
++      0x0005, 0x00d6, 0x20a1, 0x020b, 0x080c, 0x76dd, 0x20a3, 0x0210,
++      0x20a3, 0x0014, 0x20a3, 0x0800, 0x7818, 0x2068, 0x6894, 0xa086,
++      0x0014, 0x1198, 0x699c, 0xa184, 0x0030, 0x0190, 0x6998, 0xa184,
++      0xc000, 0x1140, 0xd1ec, 0x0118, 0x20a3, 0x2100, 0x0058, 0x20a3,
++      0x0100, 0x0040, 0x20a3, 0x0400, 0x0028, 0x20a3, 0x0700, 0x0010,
++      0x700f, 0x0800, 0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a2,
++      0x00f6, 0x2079, 0xb552, 0x7904, 0x00fe, 0xd1ac, 0x1110, 0xa085,
++      0x0020, 0xd1a4, 0x0110, 0xa085, 0x0010, 0x2009, 0xb574, 0x210c,
++      0xd184, 0x1110, 0xa085, 0x0002, 0x0026, 0x2009, 0xb572, 0x210c,
++      0xd1e4, 0x0130, 0xc0c5, 0xa094, 0x0030, 0xa296, 0x0010, 0x0140,
++      0xd1ec, 0x0130, 0xa094, 0x0030, 0xa296, 0x0010, 0x0108, 0xc0bd,
++      0x002e, 0x20a2, 0x20a2, 0x20a2, 0x60c3, 0x0014, 0x080c, 0x7d67,
++      0x00de, 0x0005, 0x20a1, 0x020b, 0x080c, 0x76dd, 0x20a3, 0x0210,
++      0x20a3, 0x0014, 0x20a3, 0x0000, 0x20a3, 0x0100, 0x20a3, 0x0000,
++      0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000,
++      0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0014,
++      0x080c, 0x7d67, 0x0005, 0x20a1, 0x020b, 0x080c, 0x76dd, 0x20a3,
++      0x0200, 0x0804, 0x73ae, 0x20a1, 0x020b, 0x080c, 0x76dd, 0x20a3,
++      0x0100, 0x20a3, 0x0000, 0x20a3, 0x0003, 0x20a3, 0x2a00, 0x60c3,
++      0x0008, 0x080c, 0x7d67, 0x0005, 0x20e1, 0x9080, 0x20e1, 0x4000,
++      0x20a1, 0x020b, 0x080c, 0x76dd, 0x20a3, 0x0100, 0x20a3, 0x0000,
++      0x20a3, 0x000b, 0x20a3, 0x0000, 0x60c3, 0x0008, 0x080c, 0x7d67,
++      0x0005, 0x0026, 0x0036, 0x0046, 0x2019, 0x3200, 0x2021, 0x0800,
++      0x0038, 0x0026, 0x0036, 0x0046, 0x2019, 0x2200, 0x2021, 0x0100,
++      0x20e1, 0x9080, 0x20e1, 0x4000, 0x7818, 0xa080, 0x0028, 0x2014,
++      0xa286, 0x007e, 0x11a0, 0xa385, 0x00ff, 0x20a2, 0x20a3, 0xfffe,
++      0x20a3, 0x0000, 0x2011, 0xb515, 0x2214, 0x2001, 0xb79e, 0x2004,
++      0xa005, 0x0118, 0x2011, 0xb51d, 0x2214, 0x22a2, 0x04d0, 0xa286,
++      0x007f, 0x1138, 0x00d6, 0xa385, 0x00ff, 0x20a2, 0x20a3, 0xfffd,
++      0x00c8, 0x2001, 0xb535, 0x2004, 0xd0ac, 0x1110, 0xd2bc, 0x01c8,
++      0xa286, 0x0080, 0x00d6, 0x1130, 0xa385, 0x00ff, 0x20a2, 0x20a3,
++      0xfffc, 0x0040, 0xa2e8, 0xb635, 0x2d6c, 0x6810, 0xa305, 0x20a2,
++      0x6814, 0x20a2, 0x2069, 0xb51c, 0x2da6, 0x8d68, 0x2da6, 0x00de,
++      0x0080, 0x00d6, 0xa2e8, 0xb635, 0x2d6c, 0x6810, 0xa305, 0x20a2,
++      0x6814, 0x20a2, 0x00de, 0x20a3, 0x0000, 0x2011, 0xb515, 0x2214,
++      0x22a2, 0xa485, 0x0029, 0x20a2, 0x004e, 0x003e, 0x20a3, 0x0000,
++      0x080c, 0x7d56, 0x22a2, 0x20a3, 0x0000, 0x2fa2, 0x20a3, 0xffff,
++      0x20a3, 0x0000, 0x20a3, 0x0000, 0x002e, 0x0005, 0x0026, 0x20e1,
++      0x9080, 0x20e1, 0x4000, 0x20a3, 0x02ff, 0x2011, 0xfffc, 0x22a2,
++      0x00d6, 0x2069, 0xb51c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x20a3,
++      0x2029, 0x20a3, 0x0000, 0x08e0, 0x20a3, 0x0100, 0x20a3, 0x0000,
++      0x20a3, 0xfc02, 0x20a3, 0x0000, 0x0005, 0x0026, 0x0036, 0x0046,
++      0x2019, 0x3300, 0x2021, 0x0800, 0x0038, 0x0026, 0x0036, 0x0046,
++      0x2019, 0x2300, 0x2021, 0x0100, 0x20e1, 0x9080, 0x20e1, 0x4000,
++      0x7818, 0xa080, 0x0028, 0x2004, 0x2011, 0xb535, 0x2214, 0xd2ac,
++      0x1118, 0xa092, 0x007e, 0x02d8, 0x00d6, 0xa0e8, 0xb635, 0x2d6c,
++      0x6810, 0xa305, 0x20a2, 0x6814, 0x20a2, 0x6810, 0xa005, 0x1140,
++      0x6814, 0xa005, 0x1128, 0x20a3, 0x00ff, 0x20a3, 0xfffe, 0x0028,
++      0x2069, 0xb51c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0080, 0x00d6,
++      0xa0e8, 0xb635, 0x2d6c, 0x6810, 0xa305, 0x20a2, 0x6814, 0x20a2,
++      0x00de, 0x20a3, 0x0000, 0x2011, 0xb515, 0x2214, 0x22a2, 0xa485,
++      0x0098, 0x20a2, 0x20a3, 0x0000, 0x004e, 0x003e, 0x080c, 0x7d56,
++      0x22a2, 0x20a3, 0x0000, 0x7a08, 0x22a2, 0x2fa2, 0x20a3, 0x0000,
++      0x20a3, 0x0000, 0x002e, 0x0005, 0x080c, 0x7d56, 0x22a2, 0x20a3,
++      0x0000, 0x7a08, 0x22a2, 0x7810, 0x20a2, 0x20a3, 0x0000, 0x20a3,
++      0x0000, 0x002e, 0x0005, 0x00c6, 0x00f6, 0x6004, 0xa08a, 0x0085,
++      0x0a0c, 0x1515, 0xa08a, 0x008c, 0x1a0c, 0x1515, 0x6118, 0x2178,
++      0x79a0, 0x2011, 0xb535, 0x2214, 0xd2ac, 0x1110, 0xd1bc, 0x0150,
++      0x7900, 0xd1f4, 0x0120, 0x7914, 0xa18c, 0x00ff, 0x0040, 0x2009,
++      0x0000, 0x0028, 0xa1f8, 0x2dc4, 0x2f0d, 0xa18c, 0x00ff, 0x2c78,
++      0x2061, 0x0100, 0x619a, 0xa082, 0x0085, 0x001b, 0x00fe, 0x00ce,
++      0x0005, 0x777a, 0x7784, 0x779f, 0x7778, 0x7778, 0x7778, 0x777a,
++      0x080c, 0x1515, 0x0146, 0x20a1, 0x020b, 0x04a1, 0x60c3, 0x0000,
++      0x080c, 0x7d67, 0x014e, 0x0005, 0x0146, 0x20a1, 0x020b, 0x080c,
++      0x77eb, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x7808, 0x20a2, 0x7810,
++      0x20a2, 0x20a3, 0x0000, 0x20a3, 0xffff, 0x20a3, 0x0000, 0x20a3,
++      0x0000, 0x60c3, 0x000c, 0x080c, 0x7d67, 0x014e, 0x0005, 0x0146,
++      0x20a1, 0x020b, 0x080c, 0x7825, 0x20a3, 0x0003, 0x20a3, 0x0300,
++      0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0004, 0x080c, 0x7d67,
++      0x014e, 0x0005, 0x0026, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7818,
++      0xa080, 0x0028, 0x2004, 0x2011, 0xb535, 0x2214, 0xd2ac, 0x1118,
++      0xa092, 0x007e, 0x0288, 0x00d6, 0xa0e8, 0xb635, 0x2d6c, 0x6810,
++      0xa085, 0x8100, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xb51c, 0x2da6,
++      0x8d68, 0x2da6, 0x00de, 0x0088, 0x00d6, 0xa0e8, 0xb635, 0x2d6c,
++      0x6810, 0xa085, 0x8100, 0x20a2, 0x6814, 0x20a2, 0x00de, 0x20a3,
++      0x0000, 0x2011, 0xb515, 0x2214, 0x22a2, 0x20a3, 0x0009, 0x20a3,
++      0x0000, 0x0804, 0x76a8, 0x0026, 0x20e1, 0x9080, 0x20e1, 0x4000,
+       0x7818, 0xa080, 0x0028, 0x2004, 0x2011, 0xb535, 0x2214, 0xd2ac,
+       0x1118, 0xa092, 0x007e, 0x0288, 0x00d6, 0xa0e8, 0xb635, 0x2d6c,
+-      0x6810, 0xa085, 0x8100, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xb51c,
++      0x6810, 0xa085, 0x8400, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xb51c,
+       0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0088, 0x00d6, 0xa0e8, 0xb635,
+-      0x2d6c, 0x6810, 0xa085, 0x8100, 0x20a2, 0x6814, 0x20a2, 0x00de,
+-      0x20a3, 0x0000, 0x2011, 0xb515, 0x2214, 0x22a2, 0x20a3, 0x0009,
+-      0x20a3, 0x0000, 0x0804, 0x76a9, 0x0026, 0x20e1, 0x9080, 0x20e1,
+-      0x4000, 0x7818, 0xa080, 0x0028, 0x2004, 0x2011, 0xb535, 0x2214,
+-      0xd2ac, 0x1118, 0xa092, 0x007e, 0x0288, 0x00d6, 0xa0e8, 0xb635,
+-      0x2d6c, 0x6810, 0xa085, 0x8400, 0x20a2, 0x6814, 0x20a2, 0x2069,
+-      0xb51c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0088, 0x00d6, 0xa0e8,
+-      0xb635, 0x2d6c, 0x6810, 0xa085, 0x8400, 0x20a2, 0x6814, 0x20a2,
+-      0x00de, 0x20a3, 0x0000, 0x2011, 0xb515, 0x2214, 0x22a2, 0x2001,
+-      0x0099, 0x20a2, 0x20a3, 0x0000, 0x0804, 0x7735, 0x0026, 0x20e1,
+-      0x9080, 0x20e1, 0x4000, 0x7818, 0xa080, 0x0028, 0x2004, 0x2011,
+-      0xb535, 0x2214, 0xd2ac, 0x1118, 0xa092, 0x007e, 0x0288, 0x00d6,
++      0x2d6c, 0x6810, 0xa085, 0x8400, 0x20a2, 0x6814, 0x20a2, 0x00de,
++      0x20a3, 0x0000, 0x2011, 0xb515, 0x2214, 0x22a2, 0x2001, 0x0099,
++      0x20a2, 0x20a3, 0x0000, 0x0804, 0x7734, 0x0026, 0x20e1, 0x9080,
++      0x20e1, 0x4000, 0x7818, 0xa080, 0x0028, 0x2004, 0x2011, 0xb535,
++      0x2214, 0xd2ac, 0x1118, 0xa092, 0x007e, 0x0288, 0x00d6, 0xa0e8,
++      0xb635, 0x2d6c, 0x6810, 0xa085, 0x8500, 0x20a2, 0x6814, 0x20a2,
++      0x2069, 0xb51c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0088, 0x00d6,
+       0xa0e8, 0xb635, 0x2d6c, 0x6810, 0xa085, 0x8500, 0x20a2, 0x6814,
+-      0x20a2, 0x2069, 0xb51c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0088,
+-      0x00d6, 0xa0e8, 0xb635, 0x2d6c, 0x6810, 0xa085, 0x8500, 0x20a2,
+-      0x6814, 0x20a2, 0x00de, 0x20a3, 0x0000, 0x2011, 0xb515, 0x2214,
+-      0x22a2, 0x2001, 0x0099, 0x20a2, 0x20a3, 0x0000, 0x0804, 0x7735,
+-      0x00c6, 0x00f6, 0x2c78, 0x7804, 0xa08a, 0x0040, 0x0a0c, 0x1515,
+-      0xa08a, 0x0053, 0x1a0c, 0x1515, 0x7918, 0x2160, 0x61a0, 0x2011,
+-      0xb535, 0x2214, 0xd2ac, 0x1110, 0xd1bc, 0x0150, 0x6100, 0xd1f4,
+-      0x0120, 0x6114, 0xa18c, 0x00ff, 0x0040, 0x2009, 0x0000, 0x0028,
+-      0xa1e0, 0x2dc4, 0x2c0d, 0xa18c, 0x00ff, 0x2061, 0x0100, 0x619a,
+-      0xa082, 0x0040, 0x001b, 0x00fe, 0x00ce, 0x0005, 0x78a3, 0x79af,
+-      0x794c, 0x7b61, 0x78a1, 0x78a1, 0x78a1, 0x78a1, 0x78a1, 0x78a1,
+-      0x78a1, 0x80d8, 0x80e8, 0x80f8, 0x8108, 0x78a1, 0x8518, 0x78a1,
+-      0x80c7, 0x080c, 0x1515, 0x00d6, 0x0156, 0x0146, 0x780b, 0xffff,
+-      0x20a1, 0x020b, 0x080c, 0x7903, 0x7910, 0x2168, 0x6948, 0x7952,
+-      0x21a2, 0xa016, 0x22a2, 0x22a2, 0x22a2, 0x694c, 0xa184, 0x000f,
+-      0x1118, 0x2001, 0x0005, 0x0040, 0xd184, 0x0118, 0x2001, 0x0004,
+-      0x0018, 0xa084, 0x0006, 0x8004, 0x0016, 0x2008, 0x7858, 0xa084,
+-      0x00ff, 0x8007, 0xa105, 0x001e, 0x20a2, 0xd1ac, 0x0118, 0x20a3,
+-      0x0002, 0x0048, 0xd1b4, 0x0118, 0x20a3, 0x0001, 0x0020, 0x20a3,
+-      0x0000, 0x2230, 0x0010, 0x6a80, 0x6e7c, 0x20a9, 0x0008, 0x0136,
+-      0xad88, 0x0017, 0x2198, 0x20a1, 0x021b, 0x53a6, 0x013e, 0x20a1,
+-      0x020b, 0x22a2, 0x26a2, 0x60c3, 0x0020, 0x20e1, 0x9080, 0x6014,
+-      0xa084, 0x0004, 0xa085, 0x0009, 0x6016, 0x2001, 0xb7fc, 0x2003,
+-      0x07d0, 0x2001, 0xb7fb, 0x2003, 0x0009, 0x080c, 0x17e2, 0x014e,
+-      0x015e, 0x00de, 0x0005, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7a18,
+-      0xa280, 0x0023, 0x2014, 0x8210, 0xa294, 0x00ff, 0x2202, 0x8217,
+-      0x7818, 0xa080, 0x0028, 0x2004, 0x2019, 0xb535, 0x231c, 0xd3ac,
+-      0x1110, 0xd0bc, 0x0188, 0x00d6, 0xa0e8, 0xb635, 0x2d6c, 0x6810,
+-      0xa085, 0x0600, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xb51c, 0x2da6,
+-      0x8d68, 0x2da6, 0x00de, 0x0088, 0x00d6, 0xa0e8, 0xb635, 0x2d6c,
+-      0x6810, 0xa085, 0x0600, 0x20a2, 0x6814, 0x20a2, 0x00de, 0x20a3,
+-      0x0000, 0x2009, 0xb515, 0x210c, 0x21a2, 0x20a3, 0x0829, 0x20a3,
+-      0x0000, 0x22a2, 0x20a3, 0x0000, 0x2fa2, 0x20a3, 0xffff, 0x20a3,
+-      0x0000, 0x20a3, 0x0000, 0x0005, 0x00d6, 0x0156, 0x0136, 0x0146,
+-      0x20a1, 0x020b, 0x00c1, 0x7810, 0x2068, 0x6860, 0x20a2, 0x685c,
+-      0x20a2, 0x6880, 0x20a2, 0x687c, 0x20a2, 0xa006, 0x20a2, 0x20a2,
+-      0x20a2, 0x20a2, 0x60c3, 0x000c, 0x080c, 0x7d68, 0x014e, 0x013e,
+-      0x015e, 0x00de, 0x0005, 0x0026, 0x20e1, 0x9080, 0x20e1, 0x4000,
+-      0x7818, 0xa080, 0x0028, 0x2004, 0x2011, 0xb535, 0x2214, 0xd2ac,
+-      0x1110, 0xd0bc, 0x0188, 0x00d6, 0xa0e8, 0xb635, 0x2d6c, 0x6810,
+-      0xa085, 0x0500, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xb51c, 0x2da6,
+-      0x8d68, 0x2da6, 0x00de, 0x0088, 0x00d6, 0xa0e8, 0xb635, 0x2d6c,
+-      0x6810, 0xa085, 0x0500, 0x20a2, 0x6814, 0x20a2, 0x00de, 0x20a3,
+-      0x0000, 0x2011, 0xb515, 0x2214, 0x22a2, 0x20a3, 0x0889, 0x20a3,
+-      0x0000, 0x080c, 0x7d57, 0x22a2, 0x20a3, 0x0000, 0x7a08, 0x22a2,
+-      0x2fa2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x002e, 0x0005, 0x00d6,
+-      0x0156, 0x0136, 0x0146, 0x7810, 0xa0ec, 0xf000, 0x0168, 0xa06d,
+-      0x080c, 0x5302, 0x0148, 0x684c, 0xa084, 0x2020, 0xa086, 0x2020,
+-      0x1118, 0x7820, 0xc0cd, 0x7822, 0x20a1, 0x020b, 0x080c, 0x7b17,
+-      0xa016, 0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x7810, 0xa084,
+-      0xf000, 0x1130, 0x7810, 0xa084, 0x0700, 0x8007, 0x0043, 0x0010,
+-      0xa006, 0x002b, 0x014e, 0x013e, 0x015e, 0x00de, 0x0005, 0x79e9,
+-      0x7a7e, 0x7a8e, 0x7ac0, 0x7ad3, 0x7aee, 0x7af7, 0x79e7, 0x080c,
+-      0x1515, 0x0016, 0x0036, 0x694c, 0xa18c, 0x0003, 0x0118, 0xa186,
+-      0x0003, 0x1170, 0x6b78, 0x7820, 0xd0cc, 0x0108, 0xc3e5, 0x23a2,
+-      0x6868, 0x20a2, 0x6864, 0x20a2, 0x003e, 0x001e, 0x0804, 0x7aca,
+-      0xa186, 0x0001, 0x190c, 0x1515, 0x6b78, 0x7820, 0xd0cc, 0x0108,
+-      0xc3e5, 0x23a2, 0x6868, 0x20a2, 0x6864, 0x20a2, 0x22a2, 0x6874,
+-      0x20a2, 0x22a2, 0x687c, 0x20a2, 0x2009, 0x0018, 0xa384, 0x0300,
+-      0x0904, 0x7a78, 0xd3c4, 0x0110, 0x687c, 0xa108, 0xd3cc, 0x0110,
+-      0x6874, 0xa108, 0x0156, 0x20a9, 0x000d, 0xad80, 0x0020, 0x201c,
+-      0x831f, 0x23a2, 0x8000, 0x1f04, 0x7a27, 0x015e, 0x22a2, 0x22a2,
+-      0x22a2, 0xa184, 0x0003, 0x0904, 0x7a78, 0x20a1, 0x020b, 0x20e1,
+-      0x9080, 0x20e1, 0x4000, 0x0006, 0x7818, 0xa080, 0x0028, 0x2004,
+-      0x2011, 0xb535, 0x2214, 0xd2ac, 0x1110, 0xd0bc, 0x0188, 0x00d6,
++      0x20a2, 0x00de, 0x20a3, 0x0000, 0x2011, 0xb515, 0x2214, 0x22a2,
++      0x2001, 0x0099, 0x20a2, 0x20a3, 0x0000, 0x0804, 0x7734, 0x00c6,
++      0x00f6, 0x2c78, 0x7804, 0xa08a, 0x0040, 0x0a0c, 0x1515, 0xa08a,
++      0x0053, 0x1a0c, 0x1515, 0x7918, 0x2160, 0x61a0, 0x2011, 0xb535,
++      0x2214, 0xd2ac, 0x1110, 0xd1bc, 0x0150, 0x6100, 0xd1f4, 0x0120,
++      0x6114, 0xa18c, 0x00ff, 0x0040, 0x2009, 0x0000, 0x0028, 0xa1e0,
++      0x2dc4, 0x2c0d, 0xa18c, 0x00ff, 0x2061, 0x0100, 0x619a, 0xa082,
++      0x0040, 0x001b, 0x00fe, 0x00ce, 0x0005, 0x78a2, 0x79ae, 0x794b,
++      0x7b60, 0x78a0, 0x78a0, 0x78a0, 0x78a0, 0x78a0, 0x78a0, 0x78a0,
++      0x80d7, 0x80e7, 0x80f7, 0x8107, 0x78a0, 0x851e, 0x78a0, 0x80c6,
++      0x080c, 0x1515, 0x00d6, 0x0156, 0x0146, 0x780b, 0xffff, 0x20a1,
++      0x020b, 0x080c, 0x7902, 0x7910, 0x2168, 0x6948, 0x7952, 0x21a2,
++      0xa016, 0x22a2, 0x22a2, 0x22a2, 0x694c, 0xa184, 0x000f, 0x1118,
++      0x2001, 0x0005, 0x0040, 0xd184, 0x0118, 0x2001, 0x0004, 0x0018,
++      0xa084, 0x0006, 0x8004, 0x0016, 0x2008, 0x7858, 0xa084, 0x00ff,
++      0x8007, 0xa105, 0x001e, 0x20a2, 0xd1ac, 0x0118, 0x20a3, 0x0002,
++      0x0048, 0xd1b4, 0x0118, 0x20a3, 0x0001, 0x0020, 0x20a3, 0x0000,
++      0x2230, 0x0010, 0x6a80, 0x6e7c, 0x20a9, 0x0008, 0x0136, 0xad88,
++      0x0017, 0x2198, 0x20a1, 0x021b, 0x53a6, 0x013e, 0x20a1, 0x020b,
++      0x22a2, 0x26a2, 0x60c3, 0x0020, 0x20e1, 0x9080, 0x6014, 0xa084,
++      0x0004, 0xa085, 0x0009, 0x6016, 0x2001, 0xb7fc, 0x2003, 0x07d0,
++      0x2001, 0xb7fb, 0x2003, 0x0009, 0x080c, 0x17e2, 0x014e, 0x015e,
++      0x00de, 0x0005, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7a18, 0xa280,
++      0x0023, 0x2014, 0x8210, 0xa294, 0x00ff, 0x2202, 0x8217, 0x7818,
++      0xa080, 0x0028, 0x2004, 0x2019, 0xb535, 0x231c, 0xd3ac, 0x1110,
++      0xd0bc, 0x0188, 0x00d6, 0xa0e8, 0xb635, 0x2d6c, 0x6810, 0xa085,
++      0x0600, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xb51c, 0x2da6, 0x8d68,
++      0x2da6, 0x00de, 0x0088, 0x00d6, 0xa0e8, 0xb635, 0x2d6c, 0x6810,
++      0xa085, 0x0600, 0x20a2, 0x6814, 0x20a2, 0x00de, 0x20a3, 0x0000,
++      0x2009, 0xb515, 0x210c, 0x21a2, 0x20a3, 0x0829, 0x20a3, 0x0000,
++      0x22a2, 0x20a3, 0x0000, 0x2fa2, 0x20a3, 0xffff, 0x20a3, 0x0000,
++      0x20a3, 0x0000, 0x0005, 0x00d6, 0x0156, 0x0136, 0x0146, 0x20a1,
++      0x020b, 0x00c1, 0x7810, 0x2068, 0x6860, 0x20a2, 0x685c, 0x20a2,
++      0x6880, 0x20a2, 0x687c, 0x20a2, 0xa006, 0x20a2, 0x20a2, 0x20a2,
++      0x20a2, 0x60c3, 0x000c, 0x080c, 0x7d67, 0x014e, 0x013e, 0x015e,
++      0x00de, 0x0005, 0x0026, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7818,
++      0xa080, 0x0028, 0x2004, 0x2011, 0xb535, 0x2214, 0xd2ac, 0x1110,
++      0xd0bc, 0x0188, 0x00d6, 0xa0e8, 0xb635, 0x2d6c, 0x6810, 0xa085,
++      0x0500, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xb51c, 0x2da6, 0x8d68,
++      0x2da6, 0x00de, 0x0088, 0x00d6, 0xa0e8, 0xb635, 0x2d6c, 0x6810,
++      0xa085, 0x0500, 0x20a2, 0x6814, 0x20a2, 0x00de, 0x20a3, 0x0000,
++      0x2011, 0xb515, 0x2214, 0x22a2, 0x20a3, 0x0889, 0x20a3, 0x0000,
++      0x080c, 0x7d56, 0x22a2, 0x20a3, 0x0000, 0x7a08, 0x22a2, 0x2fa2,
++      0x20a3, 0x0000, 0x20a3, 0x0000, 0x002e, 0x0005, 0x00d6, 0x0156,
++      0x0136, 0x0146, 0x7810, 0xa0ec, 0xf000, 0x0168, 0xa06d, 0x080c,
++      0x5301, 0x0148, 0x684c, 0xa084, 0x2020, 0xa086, 0x2020, 0x1118,
++      0x7820, 0xc0cd, 0x7822, 0x20a1, 0x020b, 0x080c, 0x7b16, 0xa016,
++      0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x7810, 0xa084, 0xf000,
++      0x1130, 0x7810, 0xa084, 0x0700, 0x8007, 0x0043, 0x0010, 0xa006,
++      0x002b, 0x014e, 0x013e, 0x015e, 0x00de, 0x0005, 0x79e8, 0x7a7d,
++      0x7a8d, 0x7abf, 0x7ad2, 0x7aed, 0x7af6, 0x79e6, 0x080c, 0x1515,
++      0x0016, 0x0036, 0x694c, 0xa18c, 0x0003, 0x0118, 0xa186, 0x0003,
++      0x1170, 0x6b78, 0x7820, 0xd0cc, 0x0108, 0xc3e5, 0x23a2, 0x6868,
++      0x20a2, 0x6864, 0x20a2, 0x003e, 0x001e, 0x0804, 0x7ac9, 0xa186,
++      0x0001, 0x190c, 0x1515, 0x6b78, 0x7820, 0xd0cc, 0x0108, 0xc3e5,
++      0x23a2, 0x6868, 0x20a2, 0x6864, 0x20a2, 0x22a2, 0x6874, 0x20a2,
++      0x22a2, 0x687c, 0x20a2, 0x2009, 0x0018, 0xa384, 0x0300, 0x0904,
++      0x7a77, 0xd3c4, 0x0110, 0x687c, 0xa108, 0xd3cc, 0x0110, 0x6874,
++      0xa108, 0x0156, 0x20a9, 0x000d, 0xad80, 0x0020, 0x201c, 0x831f,
++      0x23a2, 0x8000, 0x1f04, 0x7a26, 0x015e, 0x22a2, 0x22a2, 0x22a2,
++      0xa184, 0x0003, 0x0904, 0x7a77, 0x20a1, 0x020b, 0x20e1, 0x9080,
++      0x20e1, 0x4000, 0x0006, 0x7818, 0xa080, 0x0028, 0x2004, 0x2011,
++      0xb535, 0x2214, 0xd2ac, 0x1110, 0xd0bc, 0x0188, 0x00d6, 0xa0e8,
++      0xb635, 0x2d6c, 0x6810, 0xa085, 0x0700, 0x20a2, 0x6814, 0x20a2,
++      0x2069, 0xb51c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0088, 0x00d6,
+       0xa0e8, 0xb635, 0x2d6c, 0x6810, 0xa085, 0x0700, 0x20a2, 0x6814,
+-      0x20a2, 0x2069, 0xb51c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0088,
+-      0x00d6, 0xa0e8, 0xb635, 0x2d6c, 0x6810, 0xa085, 0x0700, 0x20a2,
+-      0x6814, 0x20a2, 0x00de, 0x20a3, 0x0000, 0x2011, 0xb515, 0x2214,
+-      0x22a2, 0x000e, 0x7b20, 0xd3cc, 0x0118, 0x20a3, 0x0889, 0x0010,
+-      0x20a3, 0x0898, 0x20a2, 0x080c, 0x7d57, 0x22a2, 0x20a3, 0x0000,
+-      0x61c2, 0x003e, 0x001e, 0x080c, 0x7d68, 0x0005, 0x2011, 0x0008,
+-      0x2001, 0xb50d, 0x2004, 0xd0f4, 0x0110, 0x2011, 0x0028, 0x7820,
+-      0xd0cc, 0x0108, 0xc2e5, 0x22a2, 0xa016, 0x04d0, 0x2011, 0x0302,
+-      0x0016, 0x0036, 0x7828, 0x792c, 0xa11d, 0x0108, 0xc2dd, 0x7b20,
+-      0xd3cc, 0x0108, 0xc2e5, 0x22a2, 0x20a2, 0x21a2, 0x003e, 0x001e,
+-      0xa016, 0x22a2, 0x20a3, 0x0012, 0x22a2, 0x20a3, 0x0008, 0x22a2,
+-      0x22a2, 0x22a2, 0x22a2, 0x20a3, 0x7000, 0x20a3, 0x0500, 0x22a2,
+-      0x20a3, 0x000a, 0x22a2, 0x22a2, 0x20a3, 0x2500, 0x22a2, 0x22a2,
+-      0x22a2, 0x22a2, 0x22a2, 0x60c3, 0x0032, 0x080c, 0x7d68, 0x0005,
+-      0x2011, 0x0028, 0x7820, 0xd0cc, 0x0108, 0xc2e5, 0x22a2, 0xa016,
+-      0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x60c3, 0x0018,
+-      0x080c, 0x7d68, 0x0005, 0x2011, 0x0100, 0x7820, 0xd0cc, 0x0108,
+-      0xc2e5, 0x22a2, 0xa016, 0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x22a2,
+-      0x20a3, 0x0008, 0x22a2, 0x7854, 0xa084, 0x00ff, 0x20a2, 0x22a2,
+-      0x22a2, 0x60c3, 0x0020, 0x080c, 0x7d68, 0x0005, 0x2011, 0x0008,
+-      0x7820, 0xd0cc, 0x0108, 0xc2e5, 0x22a2, 0xa016, 0x0888, 0x0036,
+-      0x7b10, 0xa384, 0xff00, 0x7812, 0xa384, 0x00ff, 0x8001, 0x1138,
+-      0x7820, 0xd0cc, 0x0108, 0xc2e5, 0x22a2, 0x003e, 0x0808, 0x0046,
+-      0x2021, 0x0800, 0x0006, 0x7820, 0xd0cc, 0x000e, 0x0108, 0xc4e5,
+-      0x24a2, 0x004e, 0x22a2, 0x20a2, 0x003e, 0x0804, 0x7aca, 0x0026,
+-      0x20e1, 0x9080, 0x20e1, 0x4000, 0x7818, 0xa080, 0x0028, 0x2004,
+-      0x2011, 0xb535, 0x2214, 0xd2ac, 0x1110, 0xd0bc, 0x0188, 0x00d6,
++      0x20a2, 0x00de, 0x20a3, 0x0000, 0x2011, 0xb515, 0x2214, 0x22a2,
++      0x000e, 0x7b20, 0xd3cc, 0x0118, 0x20a3, 0x0889, 0x0010, 0x20a3,
++      0x0898, 0x20a2, 0x080c, 0x7d56, 0x22a2, 0x20a3, 0x0000, 0x61c2,
++      0x003e, 0x001e, 0x080c, 0x7d67, 0x0005, 0x2011, 0x0008, 0x2001,
++      0xb50d, 0x2004, 0xd0f4, 0x0110, 0x2011, 0x0028, 0x7820, 0xd0cc,
++      0x0108, 0xc2e5, 0x22a2, 0xa016, 0x04d0, 0x2011, 0x0302, 0x0016,
++      0x0036, 0x7828, 0x792c, 0xa11d, 0x0108, 0xc2dd, 0x7b20, 0xd3cc,
++      0x0108, 0xc2e5, 0x22a2, 0x20a2, 0x21a2, 0x003e, 0x001e, 0xa016,
++      0x22a2, 0x20a3, 0x0012, 0x22a2, 0x20a3, 0x0008, 0x22a2, 0x22a2,
++      0x22a2, 0x22a2, 0x20a3, 0x7000, 0x20a3, 0x0500, 0x22a2, 0x20a3,
++      0x000a, 0x22a2, 0x22a2, 0x20a3, 0x2500, 0x22a2, 0x22a2, 0x22a2,
++      0x22a2, 0x22a2, 0x60c3, 0x0032, 0x080c, 0x7d67, 0x0005, 0x2011,
++      0x0028, 0x7820, 0xd0cc, 0x0108, 0xc2e5, 0x22a2, 0xa016, 0x22a2,
++      0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x60c3, 0x0018, 0x080c,
++      0x7d67, 0x0005, 0x2011, 0x0100, 0x7820, 0xd0cc, 0x0108, 0xc2e5,
++      0x22a2, 0xa016, 0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x20a3,
++      0x0008, 0x22a2, 0x7854, 0xa084, 0x00ff, 0x20a2, 0x22a2, 0x22a2,
++      0x60c3, 0x0020, 0x080c, 0x7d67, 0x0005, 0x2011, 0x0008, 0x7820,
++      0xd0cc, 0x0108, 0xc2e5, 0x22a2, 0xa016, 0x0888, 0x0036, 0x7b10,
++      0xa384, 0xff00, 0x7812, 0xa384, 0x00ff, 0x8001, 0x1138, 0x7820,
++      0xd0cc, 0x0108, 0xc2e5, 0x22a2, 0x003e, 0x0808, 0x0046, 0x2021,
++      0x0800, 0x0006, 0x7820, 0xd0cc, 0x000e, 0x0108, 0xc4e5, 0x24a2,
++      0x004e, 0x22a2, 0x20a2, 0x003e, 0x0804, 0x7ac9, 0x0026, 0x20e1,
++      0x9080, 0x20e1, 0x4000, 0x7818, 0xa080, 0x0028, 0x2004, 0x2011,
++      0xb535, 0x2214, 0xd2ac, 0x1110, 0xd0bc, 0x0188, 0x00d6, 0xa0e8,
++      0xb635, 0x2d6c, 0x6810, 0xa085, 0x0700, 0x20a2, 0x6814, 0x20a2,
++      0x2069, 0xb51c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0088, 0x00d6,
+       0xa0e8, 0xb635, 0x2d6c, 0x6810, 0xa085, 0x0700, 0x20a2, 0x6814,
+-      0x20a2, 0x2069, 0xb51c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0088,
+-      0x00d6, 0xa0e8, 0xb635, 0x2d6c, 0x6810, 0xa085, 0x0700, 0x20a2,
+-      0x6814, 0x20a2, 0x00de, 0x20a3, 0x0000, 0x2011, 0xb515, 0x2214,
+-      0x22a2, 0x7820, 0xd0cc, 0x0118, 0x20a3, 0x0889, 0x0010, 0x20a3,
+-      0x0898, 0x20a3, 0x0000, 0x080c, 0x7d57, 0x22a2, 0x20a3, 0x0000,
+-      0x7a08, 0x22a2, 0x2fa2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x002e,
+-      0x0005, 0x00d6, 0x0156, 0x0136, 0x0146, 0x0016, 0x0036, 0x7810,
+-      0xa084, 0x0700, 0x8007, 0x003b, 0x003e, 0x001e, 0x014e, 0x013e,
+-      0x015e, 0x00de, 0x0005, 0x7b7b, 0x7b7b, 0x7b7d, 0x7b7b, 0x7b7b,
+-      0x7b7b, 0x7b9f, 0x7b7b, 0x080c, 0x1515, 0x7910, 0xa18c, 0xf8ff,
+-      0xa18d, 0x0600, 0x7912, 0x20a1, 0x020b, 0x2009, 0x0003, 0x00f9,
+-      0x00d6, 0x2069, 0xb552, 0x6804, 0xd0bc, 0x0130, 0x682c, 0xa084,
+-      0x00ff, 0x8007, 0x20a2, 0x0010, 0x20a3, 0x3f00, 0x00de, 0x22a2,
+-      0x22a2, 0x22a2, 0x60c3, 0x0001, 0x080c, 0x7d68, 0x0005, 0x20a1,
+-      0x020b, 0x2009, 0x0003, 0x0019, 0x20a3, 0x7f00, 0x0c80, 0x0026,
++      0x20a2, 0x00de, 0x20a3, 0x0000, 0x2011, 0xb515, 0x2214, 0x22a2,
++      0x7820, 0xd0cc, 0x0118, 0x20a3, 0x0889, 0x0010, 0x20a3, 0x0898,
++      0x20a3, 0x0000, 0x080c, 0x7d56, 0x22a2, 0x20a3, 0x0000, 0x7a08,
++      0x22a2, 0x2fa2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x002e, 0x0005,
++      0x00d6, 0x0156, 0x0136, 0x0146, 0x0016, 0x0036, 0x7810, 0xa084,
++      0x0700, 0x8007, 0x003b, 0x003e, 0x001e, 0x014e, 0x013e, 0x015e,
++      0x00de, 0x0005, 0x7b7a, 0x7b7a, 0x7b7c, 0x7b7a, 0x7b7a, 0x7b7a,
++      0x7b9e, 0x7b7a, 0x080c, 0x1515, 0x7910, 0xa18c, 0xf8ff, 0xa18d,
++      0x0600, 0x7912, 0x20a1, 0x020b, 0x2009, 0x0003, 0x00f9, 0x00d6,
++      0x2069, 0xb552, 0x6804, 0xd0bc, 0x0130, 0x682c, 0xa084, 0x00ff,
++      0x8007, 0x20a2, 0x0010, 0x20a3, 0x3f00, 0x00de, 0x22a2, 0x22a2,
++      0x22a2, 0x60c3, 0x0001, 0x080c, 0x7d67, 0x0005, 0x20a1, 0x020b,
++      0x2009, 0x0003, 0x0019, 0x20a3, 0x7f00, 0x0c80, 0x0026, 0x20e1,
++      0x9080, 0x20e1, 0x4000, 0x7818, 0xa080, 0x0028, 0x2004, 0x2011,
++      0xb535, 0x2214, 0xd2ac, 0x1110, 0xd0bc, 0x0188, 0x00d6, 0xa0e8,
++      0xb635, 0x2d6c, 0x6810, 0xa085, 0x0100, 0x20a2, 0x6814, 0x20a2,
++      0x2069, 0xb51c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0088, 0x00d6,
++      0xa0e8, 0xb635, 0x2d6c, 0x6810, 0xa085, 0x0100, 0x20a2, 0x6814,
++      0x20a2, 0x00de, 0x20a3, 0x0000, 0x2011, 0xb515, 0x2214, 0x22a2,
++      0x20a3, 0x0888, 0xa18d, 0x0008, 0x21a2, 0x080c, 0x7d56, 0x22a2,
++      0x20a3, 0x0000, 0x7a08, 0x22a2, 0x2fa2, 0x20a3, 0x0000, 0x20a3,
++      0x0000, 0x002e, 0x0005, 0x00e6, 0x00d6, 0x00c6, 0x0056, 0x0046,
++      0x0036, 0x2061, 0x0100, 0x2071, 0xb500, 0x7154, 0x7818, 0x2068,
++      0x68a0, 0x2028, 0x76d4, 0xd6ac, 0x1130, 0xd0bc, 0x1120, 0x6910,
++      0x6a14, 0x7454, 0x0020, 0x6910, 0x6a14, 0x7370, 0x7474, 0x781c,
++      0xa0be, 0x0006, 0x0904, 0x7ca1, 0xa0be, 0x000a, 0x15e8, 0xa185,
++      0x0200, 0x6062, 0x6266, 0x636a, 0x646e, 0x6073, 0x2029, 0x6077,
++      0x0000, 0x688c, 0x8000, 0xa084, 0x00ff, 0x688e, 0x8007, 0x607a,
++      0x607f, 0x0000, 0x2f00, 0x6082, 0x7808, 0x6086, 0x7810, 0x2070,
++      0x7014, 0x608a, 0x7010, 0x608e, 0x700c, 0x60c6, 0x7008, 0x60ca,
++      0x686c, 0x60ce, 0x60af, 0x95d5, 0x60d7, 0x0000, 0x609f, 0x0000,
++      0x080c, 0x85b9, 0x2009, 0x07d0, 0x60c4, 0xa084, 0xfff0, 0xa005,
++      0x0110, 0x2009, 0x1b58, 0x080c, 0x6a15, 0x003e, 0x004e, 0x005e,
++      0x00ce, 0x00de, 0x00ee, 0x0005, 0x70d4, 0xd0ac, 0x1110, 0xd5bc,
++      0x0138, 0xa185, 0x0100, 0x6062, 0x6266, 0x636a, 0x646e, 0x0038,
++      0xa185, 0x0100, 0x6062, 0x6266, 0x606b, 0x0000, 0x646e, 0x6073,
++      0x0809, 0x6077, 0x0008, 0x688c, 0x8000, 0xa084, 0x00ff, 0x688e,
++      0x8007, 0x607a, 0x607f, 0x0000, 0x2f00, 0x6082, 0x7808, 0x6086,
++      0x7810, 0x2070, 0x7014, 0x608a, 0x7010, 0x608e, 0x700c, 0x60c6,
++      0x7008, 0x60ca, 0x686c, 0x60ce, 0x60af, 0x95d5, 0x60d7, 0x0000,
++      0xa582, 0x0080, 0x0248, 0x6a00, 0xd2f4, 0x0120, 0x6a14, 0xa294,
++      0x00ff, 0x0010, 0x2011, 0x0000, 0x629e, 0x080c, 0x85b9, 0x2009,
++      0x07d0, 0x60c4, 0xa084, 0xfff0, 0xa005, 0x0110, 0x2009, 0x1b58,
++      0x080c, 0x6a15, 0x003e, 0x004e, 0x005e, 0x00ce, 0x00de, 0x00ee,
++      0x0005, 0x7810, 0x2070, 0x704c, 0xa084, 0x0003, 0xa086, 0x0002,
++      0x0904, 0x7cf7, 0x2001, 0xb535, 0x2004, 0xd0ac, 0x1110, 0xd5bc,
++      0x0138, 0xa185, 0x0100, 0x6062, 0x6266, 0x636a, 0x646e, 0x0038,
++      0xa185, 0x0100, 0x6062, 0x6266, 0x606b, 0x0000, 0x646e, 0x6073,
++      0x0880, 0x6077, 0x0008, 0x688c, 0x8000, 0xa084, 0x00ff, 0x688e,
++      0x8007, 0x607a, 0x7834, 0x607e, 0x2f00, 0x6086, 0x7808, 0x6082,
++      0x7060, 0x608a, 0x705c, 0x608e, 0x7080, 0x60c6, 0x707c, 0x60ca,
++      0x707c, 0x792c, 0xa108, 0x792e, 0x7080, 0x7928, 0xa109, 0x792a,
++      0x686c, 0x60ce, 0x60af, 0x95d5, 0x60d7, 0x0000, 0xa582, 0x0080,
++      0x0248, 0x6a00, 0xd2f4, 0x0120, 0x6a14, 0xa294, 0x00ff, 0x0010,
++      0x2011, 0x0000, 0x629e, 0x080c, 0x85b6, 0x0804, 0x7c8f, 0x2001,
++      0xb535, 0x2004, 0xd0ac, 0x1110, 0xd5bc, 0x0138, 0xa185, 0x0700,
++      0x6062, 0x6266, 0x636a, 0x646e, 0x0038, 0xa185, 0x0700, 0x6062,
++      0x6266, 0x606b, 0x0000, 0x646e, 0x080c, 0x5301, 0x0180, 0x00d6,
++      0x7810, 0xa06d, 0x684c, 0x00de, 0xa084, 0x2020, 0xa086, 0x2020,
++      0x1130, 0x7820, 0xc0cd, 0x7822, 0x6073, 0x0889, 0x0010, 0x6073,
++      0x0898, 0x6077, 0x0000, 0x688c, 0x8000, 0xa084, 0x00ff, 0x688e,
++      0x8007, 0x607a, 0x607f, 0x0000, 0x2f00, 0x6086, 0x7808, 0x6082,
++      0x7014, 0x608a, 0x7010, 0x608e, 0x700c, 0x60c6, 0x7008, 0x60ca,
++      0x686c, 0x60ce, 0x60af, 0x95d5, 0x60d7, 0x0000, 0xa582, 0x0080,
++      0x0248, 0x6a00, 0xd2f4, 0x0120, 0x6a14, 0xa294, 0x00ff, 0x0010,
++      0x2011, 0x0000, 0x629e, 0x7820, 0xd0cc, 0x0120, 0x080c, 0x85b9,
++      0x0804, 0x7c8f, 0x080c, 0x85b6, 0x0804, 0x7c8f, 0x7a18, 0xa280,
++      0x0023, 0x2014, 0x8210, 0xa294, 0x00ff, 0x2202, 0x8217, 0x0005,
++      0x00d6, 0x2069, 0xb7e0, 0x6843, 0x0001, 0x00de, 0x0005, 0x20e1,
++      0x9080, 0x60a3, 0x0056, 0x60a7, 0x9575, 0x0019, 0x080c, 0x6a07,
++      0x0005, 0x0006, 0x6014, 0xa084, 0x0004, 0xa085, 0x0009, 0x6016,
++      0x000e, 0x0005, 0x0016, 0x00c6, 0x0006, 0x2061, 0x0100, 0x61a4,
++      0x60a7, 0x95f5, 0x6014, 0xa084, 0x0004, 0xa085, 0x0008, 0x6016,
++      0x000e, 0xe000, 0xe000, 0xe000, 0xe000, 0x61a6, 0x00ce, 0x001e,
++      0x0005, 0x00c6, 0x00d6, 0x0016, 0x0026, 0x2061, 0x0100, 0x2069,
++      0x0140, 0x080c, 0x5acf, 0x1198, 0x2001, 0xb7fc, 0x2004, 0xa005,
++      0x15b8, 0x0066, 0x2031, 0x0001, 0x080c, 0x5b51, 0x006e, 0x1118,
++      0x080c, 0x6a07, 0x0468, 0x00c6, 0x2061, 0xb7e0, 0x00d8, 0x6904,
++      0xa194, 0x4000, 0x0550, 0x0831, 0x6803, 0x1000, 0x6803, 0x0000,
++      0x00c6, 0x2061, 0xb7e0, 0x6128, 0xa192, 0x00c8, 0x1258, 0x8108,
++      0x612a, 0x6124, 0x00ce, 0x81ff, 0x0198, 0x080c, 0x6a07, 0x080c,
++      0x7d71, 0x0070, 0x6124, 0xa1e5, 0x0000, 0x0140, 0x080c, 0xb444,
++      0x080c, 0x6a10, 0x2009, 0x0014, 0x080c, 0x864c, 0x00ce, 0x0000,
++      0x002e, 0x001e, 0x00de, 0x00ce, 0x0005, 0x2001, 0xb7fc, 0x2004,
++      0xa005, 0x1db0, 0x00c6, 0x2061, 0xb7e0, 0x6128, 0xa192, 0x0003,
++      0x1e08, 0x8108, 0x612a, 0x00ce, 0x080c, 0x6a07, 0x080c, 0x4b1f,
++      0x0c38, 0x00c6, 0x00d6, 0x00e6, 0x0016, 0x0026, 0x080c, 0x6a1d,
++      0x2071, 0xb7e0, 0x713c, 0x81ff, 0x0590, 0x2061, 0x0100, 0x2069,
++      0x0140, 0x080c, 0x5acf, 0x11a8, 0x0036, 0x2019, 0x0002, 0x080c,
++      0x7fe4, 0x003e, 0x713c, 0x2160, 0x080c, 0xb444, 0x2009, 0x004a,
++      0x080c, 0x864c, 0x0066, 0x2031, 0x0001, 0x080c, 0x5b51, 0x006e,
++      0x00b0, 0x6904, 0xa194, 0x4000, 0x01c0, 0x6803, 0x1000, 0x6803,
++      0x0000, 0x0036, 0x2019, 0x0001, 0x080c, 0x7fe4, 0x003e, 0x713c,
++      0x2160, 0x080c, 0xb444, 0x2009, 0x004a, 0x080c, 0x864c, 0x002e,
++      0x001e, 0x00ee, 0x00de, 0x00ce, 0x0005, 0x0c58, 0x0026, 0x00e6,
++      0x2071, 0xb7e0, 0x7048, 0xd084, 0x01c0, 0x713c, 0x81ff, 0x01a8,
++      0x2071, 0x0100, 0xa188, 0x0007, 0x2114, 0xa28e, 0x0006, 0x1138,
++      0x7014, 0xa084, 0x0184, 0xa085, 0x0012, 0x7016, 0x0030, 0x7014,
++      0xa084, 0x0184, 0xa085, 0x0016, 0x7016, 0x00ee, 0x002e, 0x0005,
++      0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0056, 0x0046, 0x0006, 0x0126,
++      0x2091, 0x8000, 0x6018, 0x2068, 0x6ca0, 0x2071, 0xb7e0, 0x7018,
++      0x2068, 0x8dff, 0x0188, 0x68a0, 0xa406, 0x0118, 0x6854, 0x2068,
++      0x0cc0, 0x6010, 0x2060, 0x643c, 0x6540, 0x6648, 0x2d60, 0x080c,
++      0x511a, 0x0110, 0xa085, 0x0001, 0x012e, 0x000e, 0x004e, 0x005e,
++      0x006e, 0x00ce, 0x00de, 0x00ee, 0x0005, 0x20a1, 0x020b, 0x080c,
++      0x7641, 0x20a3, 0x1200, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x781c,
++      0xa086, 0x0004, 0x1110, 0x6098, 0x0018, 0x2001, 0xb515, 0x2004,
++      0x20a2, 0x7834, 0x20a2, 0x7838, 0x20a2, 0x20a9, 0x0010, 0xa006,
++      0x20a2, 0x1f04, 0x7ea0, 0x20a2, 0x20a2, 0x60c3, 0x002c, 0x080c,
++      0x7d67, 0x0005, 0x0156, 0x0146, 0x20a1, 0x020b, 0x080c, 0x7641,
++      0x20a3, 0x0f00, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x7808, 0x20a2,
++      0x60c3, 0x0008, 0x080c, 0x7d67, 0x014e, 0x015e, 0x0005, 0x0156,
++      0x0146, 0x20a1, 0x020b, 0x080c, 0x76dd, 0x20a3, 0x0200, 0x20a3,
++      0x0000, 0x20a9, 0x0006, 0x2011, 0xb540, 0x2019, 0xb541, 0x23a6,
++      0x22a6, 0xa398, 0x0002, 0xa290, 0x0002, 0x1f04, 0x7ecf, 0x20a3,
++      0x0000, 0x20a3, 0x0000, 0x60c3, 0x001c, 0x080c, 0x7d67, 0x014e,
++      0x015e, 0x0005, 0x0156, 0x0146, 0x0016, 0x0026, 0x20a1, 0x020b,
++      0x080c, 0x76b6, 0x080c, 0x76cc, 0x7810, 0xa080, 0x0000, 0x2004,
++      0xa080, 0x0015, 0x2098, 0x7808, 0xa088, 0x0002, 0x21a8, 0x53a6,
++      0xa080, 0x0004, 0x8003, 0x60c2, 0x080c, 0x7d67, 0x002e, 0x001e,
++      0x014e, 0x015e, 0x0005, 0x0156, 0x0146, 0x20a1, 0x020b, 0x080c,
++      0x7641, 0x20a3, 0x6200, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x7808,
++      0x20a2, 0x60c3, 0x0008, 0x080c, 0x7d67, 0x014e, 0x015e, 0x0005,
++      0x0156, 0x0146, 0x0016, 0x0026, 0x20a1, 0x020b, 0x080c, 0x7641,
++      0x7810, 0xa080, 0x0000, 0x2004, 0xa080, 0x0017, 0x2098, 0x7808,
++      0xa088, 0x0002, 0x21a8, 0x53a6, 0x8003, 0x60c2, 0x080c, 0x7d67,
++      0x002e, 0x001e, 0x014e, 0x015e, 0x0005, 0x00e6, 0x00c6, 0x0006,
++      0x0126, 0x2091, 0x8000, 0x2071, 0xb7e0, 0x700c, 0x2060, 0x8cff,
++      0x0178, 0x080c, 0x9e58, 0x1110, 0x080c, 0x8c19, 0x600c, 0x0006,
++      0x080c, 0xa01f, 0x080c, 0x861d, 0x080c, 0x811e, 0x00ce, 0x0c78,
++      0x700f, 0x0000, 0x700b, 0x0000, 0x012e, 0x000e, 0x00ce, 0x00ee,
++      0x0005, 0x0126, 0x0156, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0026,
++      0x0016, 0x0006, 0x2091, 0x8000, 0x2069, 0x0100, 0x2079, 0x0140,
++      0x2071, 0xb7e0, 0x7024, 0x2060, 0x8cff, 0x05a0, 0x080c, 0x7d7a,
++      0x68c3, 0x0000, 0x080c, 0x6a10, 0x2009, 0x0013, 0x080c, 0x864c,
++      0x20a9, 0x01f4, 0x6824, 0xd094, 0x0158, 0x6827, 0x0004, 0x7804,
++      0xa084, 0x4000, 0x01a0, 0x7803, 0x1000, 0x7803, 0x0000, 0x0078,
++      0xd084, 0x0118, 0x6827, 0x0001, 0x0010, 0x1f04, 0x7f7a, 0x7804,
++      0xa084, 0x1000, 0x0120, 0x7803, 0x0100, 0x7803, 0x0000, 0x6824,
++      0x000e, 0x001e, 0x002e, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x015e,
++      0x012e, 0x0005, 0x2001, 0xb500, 0x2004, 0xa096, 0x0001, 0x0590,
++      0xa096, 0x0004, 0x0578, 0x080c, 0x6a10, 0x6814, 0xa084, 0x0001,
++      0x0110, 0x68a7, 0x95f5, 0x6817, 0x0008, 0x68c3, 0x0000, 0x2011,
++      0x4adc, 0x080c, 0x699c, 0x20a9, 0x01f4, 0x6824, 0xd094, 0x0158,
++      0x6827, 0x0004, 0x7804, 0xa084, 0x4000, 0x01a0, 0x7803, 0x1000,
++      0x7803, 0x0000, 0x0078, 0xd084, 0x0118, 0x6827, 0x0001, 0x0010,
++      0x1f04, 0x7fbd, 0x7804, 0xa084, 0x1000, 0x0120, 0x7803, 0x0100,
++      0x7803, 0x0000, 0x000e, 0x001e, 0x002e, 0x00ce, 0x00de, 0x00ee,
++      0x00fe, 0x015e, 0x012e, 0x0005, 0x0126, 0x0156, 0x00f6, 0x00e6,
++      0x00d6, 0x00c6, 0x0026, 0x0016, 0x0006, 0x2091, 0x8000, 0x2069,
++      0x0100, 0x2079, 0x0140, 0x2071, 0xb7e0, 0x703c, 0x2060, 0x8cff,
++      0x0904, 0x806b, 0xa386, 0x0002, 0x1128, 0x6814, 0xa084, 0x0002,
++      0x0904, 0x806b, 0x68af, 0x95f5, 0x6817, 0x0010, 0x2009, 0x00fa,
++      0x8109, 0x1df0, 0x68c7, 0x0000, 0x68cb, 0x0008, 0x080c, 0x6a1d,
++      0x080c, 0x220c, 0x0046, 0x2009, 0x017f, 0x200b, 0x00a5, 0x2021,
++      0x0169, 0x2404, 0xa084, 0x000f, 0xa086, 0x0004, 0x1500, 0x68af,
++      0x95f5, 0x68c7, 0x0000, 0x68cb, 0x0008, 0x00e6, 0x00f6, 0x2079,
++      0x0020, 0x2071, 0xb84a, 0x6814, 0xa084, 0x0184, 0xa085, 0x0012,
++      0x6816, 0x7803, 0x0008, 0x7003, 0x0000, 0x00fe, 0x00ee, 0xa386,
++      0x0002, 0x1128, 0x7884, 0xa005, 0x1110, 0x7887, 0x0001, 0x2001,
++      0xb7b1, 0x2004, 0x200a, 0x004e, 0xa39d, 0x0000, 0x1120, 0x2009,
++      0x0049, 0x080c, 0x864c, 0x20a9, 0x03e8, 0x6824, 0xd094, 0x0158,
++      0x6827, 0x0004, 0x7804, 0xa084, 0x4000, 0x01a0, 0x7803, 0x1000,
++      0x7803, 0x0000, 0x0078, 0xd08c, 0x0118, 0x6827, 0x0002, 0x0010,
++      0x1f04, 0x804d, 0x7804, 0xa084, 0x1000, 0x0120, 0x7803, 0x0100,
++      0x7803, 0x0000, 0x6824, 0x000e, 0x001e, 0x002e, 0x00ce, 0x00de,
++      0x00ee, 0x00fe, 0x015e, 0x012e, 0x0005, 0x00d6, 0x0126, 0x2091,
++      0x8000, 0x2069, 0xb7e0, 0x6a06, 0x012e, 0x00de, 0x0005, 0x00d6,
++      0x0126, 0x2091, 0x8000, 0x2069, 0xb7e0, 0x6a32, 0x012e, 0x00de,
++      0x0005, 0x00f6, 0x00e6, 0x00c6, 0x0066, 0x0006, 0x0126, 0x2071,
++      0xb7e0, 0x7614, 0x2660, 0x2678, 0x2091, 0x8000, 0x8cff, 0x0538,
++      0x601c, 0xa206, 0x1500, 0x7014, 0xac36, 0x1110, 0x660c, 0x7616,
++      0x7010, 0xac36, 0x1140, 0x2c00, 0xaf36, 0x0118, 0x2f00, 0x7012,
++      0x0010, 0x7013, 0x0000, 0x660c, 0x0066, 0x2c00, 0xaf06, 0x0110,
++      0x7e0e, 0x0008, 0x2678, 0x600f, 0x0000, 0x080c, 0x9e1d, 0x080c,
++      0x811e, 0x00ce, 0x08d8, 0x2c78, 0x600c, 0x2060, 0x08b8, 0x012e,
++      0x000e, 0x006e, 0x00ce, 0x00ee, 0x00fe, 0x0005, 0x0156, 0x0146,
++      0x20a1, 0x020b, 0x080c, 0x7902, 0x7810, 0x20a2, 0xa006, 0x20a2,
++      0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x1000, 0x0804, 0x8116, 0x0156,
++      0x0146, 0x20a1, 0x020b, 0x080c, 0x7902, 0x7810, 0x20a2, 0xa006,
++      0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x4000, 0x0478, 0x0156,
++      0x0146, 0x20a1, 0x020b, 0x080c, 0x7902, 0x7810, 0x20a2, 0xa006,
++      0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x2000, 0x00f8, 0x0156,
++      0x0146, 0x20a1, 0x020b, 0x080c, 0x7902, 0x7810, 0x20a2, 0xa006,
++      0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x0400, 0x0078, 0x0156,
++      0x0146, 0x20a1, 0x020b, 0x080c, 0x7902, 0x7810, 0x20a2, 0xa006,
++      0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x0200, 0x0089, 0x60c3,
++      0x0020, 0x080c, 0x7d67, 0x014e, 0x015e, 0x0005, 0x00e6, 0x2071,
++      0xb7e0, 0x7020, 0xa005, 0x0110, 0x8001, 0x7022, 0x00ee, 0x0005,
++      0x20a9, 0x0008, 0x20a2, 0x1f04, 0x812a, 0x20a2, 0x20a2, 0x0005,
++      0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0076, 0x0066, 0x0006, 0x0126,
++      0x2091, 0x8000, 0x2071, 0xb7e0, 0x7614, 0x2660, 0x2678, 0x2039,
++      0x0001, 0x87ff, 0x0904, 0x81c6, 0x8cff, 0x0904, 0x81c6, 0x601c,
++      0xa086, 0x0006, 0x1904, 0x81c1, 0x88ff, 0x0138, 0x2800, 0xac06,
++      0x1904, 0x81c1, 0x2039, 0x0000, 0x0050, 0x6018, 0xa206, 0x1904,
++      0x81c1, 0x85ff, 0x0120, 0x6050, 0xa106, 0x1904, 0x81c1, 0x7024,
++      0xac06, 0x1598, 0x2069, 0x0100, 0x68c0, 0xa005, 0x1160, 0x6824,
++      0xd084, 0x0148, 0x6827, 0x0001, 0x080c, 0x6a10, 0x080c, 0x824d,
++      0x7027, 0x0000, 0x0410, 0x080c, 0x6a10, 0x6820, 0xd0b4, 0x0110,
++      0x68a7, 0x95f5, 0x6817, 0x0008, 0x68c3, 0x0000, 0x080c, 0x824d,
++      0x7027, 0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0xa384, 0x1000,
++      0x0120, 0x6803, 0x0100, 0x6803, 0x0000, 0x2069, 0x0100, 0x6824,
++      0xd084, 0x0110, 0x6827, 0x0001, 0x003e, 0x7014, 0xac36, 0x1110,
++      0x660c, 0x7616, 0x7010, 0xac36, 0x1140, 0x2c00, 0xaf36, 0x0118,
++      0x2f00, 0x7012, 0x0010, 0x7013, 0x0000, 0x660c, 0x0066, 0x2c00,
++      0xaf06, 0x0110, 0x7e0e, 0x0008, 0x2678, 0x89ff, 0x1158, 0x600f,
++      0x0000, 0x6010, 0x2068, 0x080c, 0x9c5a, 0x0110, 0x080c, 0xb099,
++      0x080c, 0x9e1d, 0x080c, 0x811e, 0x88ff, 0x1190, 0x00ce, 0x0804,
++      0x8141, 0x2c78, 0x600c, 0x2060, 0x0804, 0x8141, 0xa006, 0x012e,
++      0x000e, 0x006e, 0x007e, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x0005,
++      0x6017, 0x0000, 0x00ce, 0xa8c5, 0x0001, 0x0c88, 0x00f6, 0x00e6,
++      0x00d6, 0x00c6, 0x0066, 0x0026, 0x0006, 0x0126, 0x2091, 0x8000,
++      0x2071, 0xb7e0, 0x7638, 0x2660, 0x2678, 0x8cff, 0x0904, 0x823d,
++      0x601c, 0xa086, 0x0006, 0x1904, 0x8238, 0x87ff, 0x0128, 0x2700,
++      0xac06, 0x1904, 0x8238, 0x0048, 0x6018, 0xa206, 0x1904, 0x8238,
++      0x85ff, 0x0118, 0x6050, 0xa106, 0x15d8, 0x703c, 0xac06, 0x1180,
++      0x0036, 0x2019, 0x0001, 0x080c, 0x7fe4, 0x7033, 0x0000, 0x703f,
++      0x0000, 0x7043, 0x0000, 0x7047, 0x0000, 0x704b, 0x0000, 0x003e,
++      0x7038, 0xac36, 0x1110, 0x660c, 0x763a, 0x7034, 0xac36, 0x1140,
++      0x2c00, 0xaf36, 0x0118, 0x2f00, 0x7036, 0x0010, 0x7037, 0x0000,
++      0x660c, 0x0066, 0x2c00, 0xaf06, 0x0110, 0x7e0e, 0x0008, 0x2678,
++      0x600f, 0x0000, 0x6010, 0x2068, 0x080c, 0x9c5a, 0x0110, 0x080c,
++      0xb099, 0x080c, 0x9e1d, 0x87ff, 0x1190, 0x00ce, 0x0804, 0x81e5,
++      0x2c78, 0x600c, 0x2060, 0x0804, 0x81e5, 0xa006, 0x012e, 0x000e,
++      0x002e, 0x006e, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x0005, 0x6017,
++      0x0000, 0x00ce, 0xa7bd, 0x0001, 0x0c88, 0x00e6, 0x2071, 0xb7e0,
++      0x2001, 0xb500, 0x2004, 0xa086, 0x0002, 0x1118, 0x7007, 0x0005,
++      0x0010, 0x7007, 0x0000, 0x00ee, 0x0005, 0x00f6, 0x00e6, 0x00c6,
++      0x0066, 0x0026, 0x0006, 0x0126, 0x2091, 0x8000, 0x2071, 0xb7e0,
++      0x2c10, 0x7638, 0x2660, 0x2678, 0x8cff, 0x0518, 0x2200, 0xac06,
++      0x11e0, 0x7038, 0xac36, 0x1110, 0x660c, 0x763a, 0x7034, 0xac36,
++      0x1140, 0x2c00, 0xaf36, 0x0118, 0x2f00, 0x7036, 0x0010, 0x7037,
++      0x0000, 0x660c, 0x2c00, 0xaf06, 0x0110, 0x7e0e, 0x0008, 0x2678,
++      0x600f, 0x0000, 0xa085, 0x0001, 0x0020, 0x2c78, 0x600c, 0x2060,
++      0x08d8, 0x012e, 0x000e, 0x002e, 0x006e, 0x00ce, 0x00ee, 0x00fe,
++      0x0005, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0006, 0x0126,
++      0x2091, 0x8000, 0x2071, 0xb7e0, 0x760c, 0x2660, 0x2678, 0x8cff,
++      0x0904, 0x8323, 0x6018, 0xa080, 0x0028, 0x2004, 0xa206, 0x1904,
++      0x831e, 0x7024, 0xac06, 0x1508, 0x2069, 0x0100, 0x68c0, 0xa005,
++      0x0904, 0x82fa, 0x080c, 0x7d7a, 0x68c3, 0x0000, 0x080c, 0x824d,
++      0x7027, 0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0xa384, 0x1000,
++      0x0120, 0x6803, 0x0100, 0x6803, 0x0000, 0x2069, 0x0100, 0x6824,
++      0xd084, 0x0110, 0x6827, 0x0001, 0x003e, 0x700c, 0xac36, 0x1110,
++      0x660c, 0x760e, 0x7008, 0xac36, 0x1140, 0x2c00, 0xaf36, 0x0118,
++      0x2f00, 0x700a, 0x0010, 0x700b, 0x0000, 0x660c, 0x0066, 0x2c00,
++      0xaf06, 0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f, 0x0000, 0x080c,
++      0x9e47, 0x1158, 0x080c, 0x2cc2, 0x080c, 0x9e58, 0x11f0, 0x080c,
++      0x8c19, 0x00d8, 0x080c, 0x824d, 0x08c0, 0x080c, 0x9e58, 0x1118,
++      0x080c, 0x8c19, 0x0090, 0x6010, 0x2068, 0x080c, 0x9c5a, 0x0168,
++      0x601c, 0xa086, 0x0003, 0x11f8, 0x6837, 0x0103, 0x6b4a, 0x6847,
++      0x0000, 0x080c, 0x5408, 0x080c, 0x9e11, 0x080c, 0xa01f, 0x080c,
++      0x9e1d, 0x080c, 0x811e, 0x00ce, 0x0804, 0x82a7, 0x2c78, 0x600c,
++      0x2060, 0x0804, 0x82a7, 0x012e, 0x000e, 0x006e, 0x00ce, 0x00de,
++      0x00ee, 0x00fe, 0x0005, 0x601c, 0xa086, 0x0006, 0x1d30, 0x080c,
++      0xb099, 0x0c18, 0x0036, 0x0156, 0x0136, 0x0146, 0x3908, 0xa006,
++      0xa190, 0x0020, 0x221c, 0xa39e, 0x2ab7, 0x1118, 0x8210, 0x8000,
++      0x0cc8, 0xa005, 0x0138, 0x20a9, 0x0020, 0x2198, 0xa110, 0x22a0,
++      0x22c8, 0x53a3, 0x014e, 0x013e, 0x015e, 0x003e, 0x0005, 0x00d6,
++      0x20a1, 0x020b, 0x080c, 0x76dd, 0x20a3, 0x0200, 0x20a3, 0x0014,
++      0x60c3, 0x0014, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x2099, 0xb7b9,
++      0x20a9, 0x0004, 0x53a6, 0x20a3, 0x0004, 0x20a3, 0x7878, 0x20a3,
++      0x0000, 0x20a3, 0x0000, 0x080c, 0x7d67, 0x00de, 0x0005, 0x20a1,
++      0x020b, 0x080c, 0x76dd, 0x20a3, 0x0214, 0x20a3, 0x0018, 0x20a3,
++      0x0800, 0x7810, 0xa084, 0xff00, 0x20a2, 0x20a3, 0x0000, 0x20a3,
++      0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x7810, 0xa084, 0x00ff,
++      0x20a2, 0x7828, 0x20a2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3,
++      0x0018, 0x080c, 0x7d67, 0x0005, 0x00d6, 0x0016, 0x2f68, 0x2009,
++      0x0035, 0x080c, 0xa10a, 0x1904, 0x8402, 0x20a1, 0x020b, 0x080c,
++      0x7641, 0x20a3, 0x1300, 0x20a3, 0x0000, 0x7828, 0x2068, 0x681c,
++      0xa086, 0x0003, 0x0580, 0x7818, 0xa080, 0x0028, 0x2014, 0x2001,
++      0xb535, 0x2004, 0xd0ac, 0x11d0, 0xa286, 0x007e, 0x1128, 0x20a3,
++      0x00ff, 0x20a3, 0xfffe, 0x04b8, 0xa286, 0x007f, 0x1128, 0x20a3,
++      0x00ff, 0x20a3, 0xfffd, 0x0478, 0xd2bc, 0x0180, 0xa286, 0x0080,
++      0x1128, 0x20a3, 0x00ff, 0x20a3, 0xfffc, 0x0428, 0xa2e8, 0xb635,
++      0x2d6c, 0x6810, 0x20a2, 0x6814, 0x20a2, 0x00e8, 0x20a3, 0x0000,
++      0x6098, 0x20a2, 0x00c0, 0x2001, 0xb535, 0x2004, 0xd0ac, 0x1138,
++      0x7818, 0xa080, 0x0028, 0x2004, 0xa082, 0x007e, 0x0240, 0x00d6,
++      0x2069, 0xb51c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0020, 0x20a3,
++      0x0000, 0x6034, 0x20a2, 0x7834, 0x20a2, 0x7838, 0x20a2, 0x20a3,
++      0x0000, 0x20a3, 0x0000, 0x60c3, 0x000c, 0x080c, 0x7d67, 0x001e,
++      0x00de, 0x0005, 0x7817, 0x0001, 0x7803, 0x0006, 0x001e, 0x00de,
++      0x0005, 0x00d6, 0x0026, 0x7928, 0x2168, 0x691c, 0xa186, 0x0006,
++      0x01c0, 0xa186, 0x0003, 0x0904, 0x8478, 0xa186, 0x0005, 0x0904,
++      0x8461, 0xa186, 0x0004, 0x05b8, 0xa186, 0x0008, 0x0904, 0x8469,
++      0x7807, 0x0037, 0x7813, 0x1700, 0x080c, 0x84e0, 0x002e, 0x00de,
++      0x0005, 0x080c, 0x849c, 0x2009, 0x4000, 0x6800, 0x0002, 0x8442,
++      0x844d, 0x8444, 0x844d, 0x8449, 0x8442, 0x8442, 0x844d, 0x844d,
++      0x844d, 0x844d, 0x8442, 0x8442, 0x8442, 0x8442, 0x8442, 0x844d,
++      0x8442, 0x844d, 0x080c, 0x1515, 0x6820, 0xd0e4, 0x0110, 0xd0cc,
++      0x0110, 0xa00e, 0x0010, 0x2009, 0x2000, 0x6828, 0x20a2, 0x682c,
++      0x20a2, 0x0804, 0x8492, 0x080c, 0x849c, 0x20a3, 0x0000, 0x20a3,
++      0x0000, 0x2009, 0x4000, 0x6a00, 0xa286, 0x0002, 0x1108, 0xa00e,
++      0x0488, 0x04d1, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x2009, 0x4000,
++      0x0448, 0x0491, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x2009, 0x4000,
++      0xa286, 0x0005, 0x0118, 0xa286, 0x0002, 0x1108, 0xa00e, 0x00d0,
++      0x0419, 0x6810, 0x2068, 0x697c, 0x6810, 0xa112, 0x6980, 0x6814,
++      0xa103, 0x20a2, 0x22a2, 0x7928, 0xa180, 0x0000, 0x2004, 0xa08e,
++      0x0002, 0x0130, 0xa08e, 0x0004, 0x0118, 0x2009, 0x4000, 0x0010,
++      0x2009, 0x0000, 0x21a2, 0x20a3, 0x0000, 0x60c3, 0x0018, 0x080c,
++      0x7d67, 0x002e, 0x00de, 0x0005, 0x0036, 0x0046, 0x0056, 0x0066,
++      0x20a1, 0x020b, 0x080c, 0x76dd, 0xa006, 0x20a3, 0x0200, 0x20a2,
++      0x7934, 0x21a2, 0x7938, 0x21a2, 0x7818, 0xa080, 0x0028, 0x2004,
++      0x2011, 0xb535, 0x2214, 0xd2ac, 0x1118, 0xa092, 0x007e, 0x0268,
++      0x00d6, 0x2069, 0xb51c, 0x2d2c, 0x8d68, 0x2d34, 0xa0e8, 0xb635,
++      0x2d6c, 0x6b10, 0x6c14, 0x00de, 0x0030, 0x2019, 0x0000, 0x6498,
++      0x2029, 0x0000, 0x6634, 0x7828, 0xa080, 0x0007, 0x2004, 0xa086,
++      0x0003, 0x1128, 0x25a2, 0x26a2, 0x23a2, 0x24a2, 0x0020, 0x23a2,
++      0x24a2, 0x25a2, 0x26a2, 0x006e, 0x005e, 0x004e, 0x003e, 0x0005,
++      0x20a1, 0x020b, 0x080c, 0x76dd, 0x20a3, 0x0100, 0x20a3, 0x0000,
++      0x20a3, 0x0009, 0x7810, 0x20a2, 0x60c3, 0x0008, 0x080c, 0x7d67,
++      0x0005, 0x20a1, 0x020b, 0x080c, 0x7639, 0x20a3, 0x1400, 0x20a3,
++      0x0000, 0x7834, 0x20a2, 0x7838, 0x20a2, 0x7828, 0x20a2, 0x782c,
++      0x20a2, 0x7830, 0xa084, 0x00ff, 0x8007, 0x20a2, 0x20a3, 0x0000,
++      0x60c3, 0x0010, 0x080c, 0x7d67, 0x0005, 0x20a1, 0x020b, 0x080c,
++      0x76d5, 0x20a3, 0x0100, 0x20a3, 0x0000, 0x7828, 0x20a2, 0x7810,
++      0x20a2, 0x60c3, 0x0008, 0x080c, 0x7d67, 0x0005, 0x0146, 0x20a1,
++      0x020b, 0x0031, 0x60c3, 0x0000, 0x080c, 0x7d67, 0x014e, 0x0005,
+       0x20e1, 0x9080, 0x20e1, 0x4000, 0x7818, 0xa080, 0x0028, 0x2004,
+       0x2011, 0xb535, 0x2214, 0xd2ac, 0x1110, 0xd0bc, 0x0188, 0x00d6,
+-      0xa0e8, 0xb635, 0x2d6c, 0x6810, 0xa085, 0x0100, 0x20a2, 0x6814,
+-      0x20a2, 0x2069, 0xb51c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0088,
+-      0x00d6, 0xa0e8, 0xb635, 0x2d6c, 0x6810, 0xa085, 0x0100, 0x20a2,
+-      0x6814, 0x20a2, 0x00de, 0x20a3, 0x0000, 0x2011, 0xb515, 0x2214,
+-      0x22a2, 0x20a3, 0x0888, 0xa18d, 0x0008, 0x21a2, 0x080c, 0x7d57,
+-      0x22a2, 0x20a3, 0x0000, 0x7a08, 0x22a2, 0x2fa2, 0x20a3, 0x0000,
+-      0x20a3, 0x0000, 0x002e, 0x0005, 0x00e6, 0x00d6, 0x00c6, 0x0056,
+-      0x0046, 0x0036, 0x2061, 0x0100, 0x2071, 0xb500, 0x7154, 0x7818,
+-      0x2068, 0x68a0, 0x2028, 0x76d4, 0xd6ac, 0x1130, 0xd0bc, 0x1120,
+-      0x6910, 0x6a14, 0x7454, 0x0020, 0x6910, 0x6a14, 0x7370, 0x7474,
+-      0x781c, 0xa0be, 0x0006, 0x0904, 0x7ca2, 0xa0be, 0x000a, 0x15e8,
+-      0xa185, 0x0200, 0x6062, 0x6266, 0x636a, 0x646e, 0x6073, 0x2029,
+-      0x6077, 0x0000, 0x688c, 0x8000, 0xa084, 0x00ff, 0x688e, 0x8007,
+-      0x607a, 0x607f, 0x0000, 0x2f00, 0x6082, 0x7808, 0x6086, 0x7810,
+-      0x2070, 0x7014, 0x608a, 0x7010, 0x608e, 0x700c, 0x60c6, 0x7008,
+-      0x60ca, 0x686c, 0x60ce, 0x60af, 0x95d5, 0x60d7, 0x0000, 0x609f,
+-      0x0000, 0x080c, 0x85b3, 0x2009, 0x07d0, 0x60c4, 0xa084, 0xfff0,
+-      0xa005, 0x0110, 0x2009, 0x1b58, 0x080c, 0x6a16, 0x003e, 0x004e,
+-      0x005e, 0x00ce, 0x00de, 0x00ee, 0x0005, 0x70d4, 0xd0ac, 0x1110,
+-      0xd5bc, 0x0138, 0xa185, 0x0100, 0x6062, 0x6266, 0x636a, 0x646e,
+-      0x0038, 0xa185, 0x0100, 0x6062, 0x6266, 0x606b, 0x0000, 0x646e,
+-      0x6073, 0x0809, 0x6077, 0x0008, 0x688c, 0x8000, 0xa084, 0x00ff,
+-      0x688e, 0x8007, 0x607a, 0x607f, 0x0000, 0x2f00, 0x6082, 0x7808,
+-      0x6086, 0x7810, 0x2070, 0x7014, 0x608a, 0x7010, 0x608e, 0x700c,
+-      0x60c6, 0x7008, 0x60ca, 0x686c, 0x60ce, 0x60af, 0x95d5, 0x60d7,
+-      0x0000, 0xa582, 0x0080, 0x0248, 0x6a00, 0xd2f4, 0x0120, 0x6a14,
+-      0xa294, 0x00ff, 0x0010, 0x2011, 0x0000, 0x629e, 0x080c, 0x85b3,
+-      0x2009, 0x07d0, 0x60c4, 0xa084, 0xfff0, 0xa005, 0x0110, 0x2009,
+-      0x1b58, 0x080c, 0x6a16, 0x003e, 0x004e, 0x005e, 0x00ce, 0x00de,
+-      0x00ee, 0x0005, 0x7810, 0x2070, 0x704c, 0xa084, 0x0003, 0xa086,
+-      0x0002, 0x0904, 0x7cf8, 0x2001, 0xb535, 0x2004, 0xd0ac, 0x1110,
+-      0xd5bc, 0x0138, 0xa185, 0x0100, 0x6062, 0x6266, 0x636a, 0x646e,
+-      0x0038, 0xa185, 0x0100, 0x6062, 0x6266, 0x606b, 0x0000, 0x646e,
+-      0x6073, 0x0880, 0x6077, 0x0008, 0x688c, 0x8000, 0xa084, 0x00ff,
+-      0x688e, 0x8007, 0x607a, 0x7834, 0x607e, 0x2f00, 0x6086, 0x7808,
+-      0x6082, 0x7060, 0x608a, 0x705c, 0x608e, 0x7080, 0x60c6, 0x707c,
+-      0x60ca, 0x707c, 0x792c, 0xa108, 0x792e, 0x7080, 0x7928, 0xa109,
+-      0x792a, 0x686c, 0x60ce, 0x60af, 0x95d5, 0x60d7, 0x0000, 0xa582,
+-      0x0080, 0x0248, 0x6a00, 0xd2f4, 0x0120, 0x6a14, 0xa294, 0x00ff,
+-      0x0010, 0x2011, 0x0000, 0x629e, 0x080c, 0x85b0, 0x0804, 0x7c90,
+-      0x2001, 0xb535, 0x2004, 0xd0ac, 0x1110, 0xd5bc, 0x0138, 0xa185,
+-      0x0700, 0x6062, 0x6266, 0x636a, 0x646e, 0x0038, 0xa185, 0x0700,
+-      0x6062, 0x6266, 0x606b, 0x0000, 0x646e, 0x080c, 0x5302, 0x0180,
+-      0x00d6, 0x7810, 0xa06d, 0x684c, 0x00de, 0xa084, 0x2020, 0xa086,
+-      0x2020, 0x1130, 0x7820, 0xc0cd, 0x7822, 0x6073, 0x0889, 0x0010,
+-      0x6073, 0x0898, 0x6077, 0x0000, 0x688c, 0x8000, 0xa084, 0x00ff,
+-      0x688e, 0x8007, 0x607a, 0x607f, 0x0000, 0x2f00, 0x6086, 0x7808,
+-      0x6082, 0x7014, 0x608a, 0x7010, 0x608e, 0x700c, 0x60c6, 0x7008,
+-      0x60ca, 0x686c, 0x60ce, 0x60af, 0x95d5, 0x60d7, 0x0000, 0xa582,
+-      0x0080, 0x0248, 0x6a00, 0xd2f4, 0x0120, 0x6a14, 0xa294, 0x00ff,
+-      0x0010, 0x2011, 0x0000, 0x629e, 0x7820, 0xd0cc, 0x0120, 0x080c,
+-      0x85b3, 0x0804, 0x7c90, 0x080c, 0x85b0, 0x0804, 0x7c90, 0x7a18,
+-      0xa280, 0x0023, 0x2014, 0x8210, 0xa294, 0x00ff, 0x2202, 0x8217,
+-      0x0005, 0x00d6, 0x2069, 0xb7e0, 0x6843, 0x0001, 0x00de, 0x0005,
+-      0x20e1, 0x9080, 0x60a3, 0x0056, 0x60a7, 0x9575, 0x0019, 0x080c,
+-      0x6a08, 0x0005, 0x0006, 0x6014, 0xa084, 0x0004, 0xa085, 0x0009,
+-      0x6016, 0x000e, 0x0005, 0x0016, 0x00c6, 0x0006, 0x2061, 0x0100,
+-      0x61a4, 0x60a7, 0x95f5, 0x6014, 0xa084, 0x0004, 0xa085, 0x0008,
+-      0x6016, 0x000e, 0xe000, 0xe000, 0xe000, 0xe000, 0x61a6, 0x00ce,
+-      0x001e, 0x0005, 0x00c6, 0x00d6, 0x0016, 0x0026, 0x2061, 0x0100,
+-      0x2069, 0x0140, 0x080c, 0x5ad0, 0x1198, 0x2001, 0xb7fc, 0x2004,
+-      0xa005, 0x15b8, 0x0066, 0x2031, 0x0001, 0x080c, 0x5b52, 0x006e,
+-      0x1118, 0x080c, 0x6a08, 0x0468, 0x00c6, 0x2061, 0xb7e0, 0x00d8,
+-      0x6904, 0xa194, 0x4000, 0x0550, 0x0831, 0x6803, 0x1000, 0x6803,
+-      0x0000, 0x00c6, 0x2061, 0xb7e0, 0x6128, 0xa192, 0x00c8, 0x1258,
+-      0x8108, 0x612a, 0x6124, 0x00ce, 0x81ff, 0x0198, 0x080c, 0x6a08,
+-      0x080c, 0x7d72, 0x0070, 0x6124, 0xa1e5, 0x0000, 0x0140, 0x080c,
+-      0xb438, 0x080c, 0x6a11, 0x2009, 0x0014, 0x080c, 0x8646, 0x00ce,
+-      0x0000, 0x002e, 0x001e, 0x00de, 0x00ce, 0x0005, 0x2001, 0xb7fc,
+-      0x2004, 0xa005, 0x1db0, 0x00c6, 0x2061, 0xb7e0, 0x6128, 0xa192,
+-      0x0003, 0x1e08, 0x8108, 0x612a, 0x00ce, 0x080c, 0x6a08, 0x080c,
+-      0x4b20, 0x0c38, 0x00c6, 0x00d6, 0x00e6, 0x0016, 0x0026, 0x080c,
+-      0x6a1e, 0x2071, 0xb7e0, 0x713c, 0x81ff, 0x0590, 0x2061, 0x0100,
+-      0x2069, 0x0140, 0x080c, 0x5ad0, 0x11a8, 0x0036, 0x2019, 0x0002,
+-      0x080c, 0x7fe5, 0x003e, 0x713c, 0x2160, 0x080c, 0xb438, 0x2009,
+-      0x004a, 0x080c, 0x8646, 0x0066, 0x2031, 0x0001, 0x080c, 0x5b52,
+-      0x006e, 0x00b0, 0x6904, 0xa194, 0x4000, 0x01c0, 0x6803, 0x1000,
+-      0x6803, 0x0000, 0x0036, 0x2019, 0x0001, 0x080c, 0x7fe5, 0x003e,
+-      0x713c, 0x2160, 0x080c, 0xb438, 0x2009, 0x004a, 0x080c, 0x8646,
+-      0x002e, 0x001e, 0x00ee, 0x00de, 0x00ce, 0x0005, 0x0c58, 0x0026,
+-      0x00e6, 0x2071, 0xb7e0, 0x7048, 0xd084, 0x01c0, 0x713c, 0x81ff,
+-      0x01a8, 0x2071, 0x0100, 0xa188, 0x0007, 0x2114, 0xa28e, 0x0006,
+-      0x1138, 0x7014, 0xa084, 0x0184, 0xa085, 0x0012, 0x7016, 0x0030,
+-      0x7014, 0xa084, 0x0184, 0xa085, 0x0016, 0x7016, 0x00ee, 0x002e,
+-      0x0005, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0056, 0x0046, 0x0006,
+-      0x0126, 0x2091, 0x8000, 0x6018, 0x2068, 0x6ca0, 0x2071, 0xb7e0,
+-      0x7018, 0x2068, 0x8dff, 0x0188, 0x68a0, 0xa406, 0x0118, 0x6854,
+-      0x2068, 0x0cc0, 0x6010, 0x2060, 0x643c, 0x6540, 0x6648, 0x2d60,
+-      0x080c, 0x511b, 0x0110, 0xa085, 0x0001, 0x012e, 0x000e, 0x004e,
+-      0x005e, 0x006e, 0x00ce, 0x00de, 0x00ee, 0x0005, 0x20a1, 0x020b,
+-      0x080c, 0x7642, 0x20a3, 0x1200, 0x20a3, 0x0000, 0x20a3, 0x0000,
+-      0x781c, 0xa086, 0x0004, 0x1110, 0x6098, 0x0018, 0x2001, 0xb515,
+-      0x2004, 0x20a2, 0x7834, 0x20a2, 0x7838, 0x20a2, 0x20a9, 0x0010,
+-      0xa006, 0x20a2, 0x1f04, 0x7ea1, 0x20a2, 0x20a2, 0x60c3, 0x002c,
+-      0x080c, 0x7d68, 0x0005, 0x0156, 0x0146, 0x20a1, 0x020b, 0x080c,
+-      0x7642, 0x20a3, 0x0f00, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x7808,
+-      0x20a2, 0x60c3, 0x0008, 0x080c, 0x7d68, 0x014e, 0x015e, 0x0005,
+-      0x0156, 0x0146, 0x20a1, 0x020b, 0x080c, 0x76de, 0x20a3, 0x0200,
+-      0x20a3, 0x0000, 0x20a9, 0x0006, 0x2011, 0xb540, 0x2019, 0xb541,
+-      0x23a6, 0x22a6, 0xa398, 0x0002, 0xa290, 0x0002, 0x1f04, 0x7ed0,
+-      0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x001c, 0x080c, 0x7d68,
+-      0x014e, 0x015e, 0x0005, 0x0156, 0x0146, 0x0016, 0x0026, 0x20a1,
+-      0x020b, 0x080c, 0x76b7, 0x080c, 0x76cd, 0x7810, 0xa080, 0x0000,
+-      0x2004, 0xa080, 0x0015, 0x2098, 0x7808, 0xa088, 0x0002, 0x21a8,
+-      0x53a6, 0xa080, 0x0004, 0x8003, 0x60c2, 0x080c, 0x7d68, 0x002e,
+-      0x001e, 0x014e, 0x015e, 0x0005, 0x0156, 0x0146, 0x20a1, 0x020b,
+-      0x080c, 0x7642, 0x20a3, 0x6200, 0x20a3, 0x0000, 0x20a3, 0x0000,
+-      0x7808, 0x20a2, 0x60c3, 0x0008, 0x080c, 0x7d68, 0x014e, 0x015e,
+-      0x0005, 0x0156, 0x0146, 0x0016, 0x0026, 0x20a1, 0x020b, 0x080c,
+-      0x7642, 0x7810, 0xa080, 0x0000, 0x2004, 0xa080, 0x0017, 0x2098,
+-      0x7808, 0xa088, 0x0002, 0x21a8, 0x53a6, 0x8003, 0x60c2, 0x080c,
+-      0x7d68, 0x002e, 0x001e, 0x014e, 0x015e, 0x0005, 0x00e6, 0x00c6,
+-      0x0006, 0x0126, 0x2091, 0x8000, 0x2071, 0xb7e0, 0x700c, 0x2060,
+-      0x8cff, 0x0178, 0x080c, 0x9e52, 0x1110, 0x080c, 0x8c13, 0x600c,
+-      0x0006, 0x080c, 0xa019, 0x080c, 0x8617, 0x080c, 0x811f, 0x00ce,
+-      0x0c78, 0x700f, 0x0000, 0x700b, 0x0000, 0x012e, 0x000e, 0x00ce,
+-      0x00ee, 0x0005, 0x0126, 0x0156, 0x00f6, 0x00e6, 0x00d6, 0x00c6,
+-      0x0026, 0x0016, 0x0006, 0x2091, 0x8000, 0x2069, 0x0100, 0x2079,
+-      0x0140, 0x2071, 0xb7e0, 0x7024, 0x2060, 0x8cff, 0x05a0, 0x080c,
+-      0x7d7b, 0x68c3, 0x0000, 0x080c, 0x6a11, 0x2009, 0x0013, 0x080c,
+-      0x8646, 0x20a9, 0x01f4, 0x6824, 0xd094, 0x0158, 0x6827, 0x0004,
+-      0x7804, 0xa084, 0x4000, 0x01a0, 0x7803, 0x1000, 0x7803, 0x0000,
+-      0x0078, 0xd084, 0x0118, 0x6827, 0x0001, 0x0010, 0x1f04, 0x7f7b,
+-      0x7804, 0xa084, 0x1000, 0x0120, 0x7803, 0x0100, 0x7803, 0x0000,
+-      0x6824, 0x000e, 0x001e, 0x002e, 0x00ce, 0x00de, 0x00ee, 0x00fe,
+-      0x015e, 0x012e, 0x0005, 0x2001, 0xb500, 0x2004, 0xa096, 0x0001,
+-      0x0590, 0xa096, 0x0004, 0x0578, 0x080c, 0x6a11, 0x6814, 0xa084,
+-      0x0001, 0x0110, 0x68a7, 0x95f5, 0x6817, 0x0008, 0x68c3, 0x0000,
+-      0x2011, 0x4add, 0x080c, 0x699d, 0x20a9, 0x01f4, 0x6824, 0xd094,
+-      0x0158, 0x6827, 0x0004, 0x7804, 0xa084, 0x4000, 0x01a0, 0x7803,
+-      0x1000, 0x7803, 0x0000, 0x0078, 0xd084, 0x0118, 0x6827, 0x0001,
+-      0x0010, 0x1f04, 0x7fbe, 0x7804, 0xa084, 0x1000, 0x0120, 0x7803,
+-      0x0100, 0x7803, 0x0000, 0x000e, 0x001e, 0x002e, 0x00ce, 0x00de,
+-      0x00ee, 0x00fe, 0x015e, 0x012e, 0x0005, 0x0126, 0x0156, 0x00f6,
+-      0x00e6, 0x00d6, 0x00c6, 0x0026, 0x0016, 0x0006, 0x2091, 0x8000,
+-      0x2069, 0x0100, 0x2079, 0x0140, 0x2071, 0xb7e0, 0x703c, 0x2060,
+-      0x8cff, 0x0904, 0x806c, 0xa386, 0x0002, 0x1128, 0x6814, 0xa084,
+-      0x0002, 0x0904, 0x806c, 0x68af, 0x95f5, 0x6817, 0x0010, 0x2009,
+-      0x00fa, 0x8109, 0x1df0, 0x68c7, 0x0000, 0x68cb, 0x0008, 0x080c,
+-      0x6a1e, 0x080c, 0x220c, 0x0046, 0x2009, 0x017f, 0x200b, 0x00a5,
+-      0x2021, 0x0169, 0x2404, 0xa084, 0x000f, 0xa086, 0x0004, 0x1500,
+-      0x68af, 0x95f5, 0x68c7, 0x0000, 0x68cb, 0x0008, 0x00e6, 0x00f6,
+-      0x2079, 0x0020, 0x2071, 0xb84a, 0x6814, 0xa084, 0x0184, 0xa085,
+-      0x0012, 0x6816, 0x7803, 0x0008, 0x7003, 0x0000, 0x00fe, 0x00ee,
+-      0xa386, 0x0002, 0x1128, 0x7884, 0xa005, 0x1110, 0x7887, 0x0001,
+-      0x2001, 0xb7b1, 0x2004, 0x200a, 0x004e, 0xa39d, 0x0000, 0x1120,
+-      0x2009, 0x0049, 0x080c, 0x8646, 0x20a9, 0x03e8, 0x6824, 0xd094,
+-      0x0158, 0x6827, 0x0004, 0x7804, 0xa084, 0x4000, 0x01a0, 0x7803,
+-      0x1000, 0x7803, 0x0000, 0x0078, 0xd08c, 0x0118, 0x6827, 0x0002,
+-      0x0010, 0x1f04, 0x804e, 0x7804, 0xa084, 0x1000, 0x0120, 0x7803,
+-      0x0100, 0x7803, 0x0000, 0x6824, 0x000e, 0x001e, 0x002e, 0x00ce,
+-      0x00de, 0x00ee, 0x00fe, 0x015e, 0x012e, 0x0005, 0x00d6, 0x0126,
+-      0x2091, 0x8000, 0x2069, 0xb7e0, 0x6a06, 0x012e, 0x00de, 0x0005,
+-      0x00d6, 0x0126, 0x2091, 0x8000, 0x2069, 0xb7e0, 0x6a32, 0x012e,
+-      0x00de, 0x0005, 0x00f6, 0x00e6, 0x00c6, 0x0066, 0x0006, 0x0126,
+-      0x2071, 0xb7e0, 0x7614, 0x2660, 0x2678, 0x2091, 0x8000, 0x8cff,
+-      0x0538, 0x601c, 0xa206, 0x1500, 0x7014, 0xac36, 0x1110, 0x660c,
+-      0x7616, 0x7010, 0xac36, 0x1140, 0x2c00, 0xaf36, 0x0118, 0x2f00,
+-      0x7012, 0x0010, 0x7013, 0x0000, 0x660c, 0x0066, 0x2c00, 0xaf06,
+-      0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f, 0x0000, 0x080c, 0x9e17,
+-      0x080c, 0x811f, 0x00ce, 0x08d8, 0x2c78, 0x600c, 0x2060, 0x08b8,
+-      0x012e, 0x000e, 0x006e, 0x00ce, 0x00ee, 0x00fe, 0x0005, 0x0156,
+-      0x0146, 0x20a1, 0x020b, 0x080c, 0x7903, 0x7810, 0x20a2, 0xa006,
+-      0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x1000, 0x0804, 0x8117,
+-      0x0156, 0x0146, 0x20a1, 0x020b, 0x080c, 0x7903, 0x7810, 0x20a2,
+-      0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x4000, 0x0478,
+-      0x0156, 0x0146, 0x20a1, 0x020b, 0x080c, 0x7903, 0x7810, 0x20a2,
+-      0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x2000, 0x00f8,
+-      0x0156, 0x0146, 0x20a1, 0x020b, 0x080c, 0x7903, 0x7810, 0x20a2,
+-      0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x0400, 0x0078,
+-      0x0156, 0x0146, 0x20a1, 0x020b, 0x080c, 0x7903, 0x7810, 0x20a2,
+-      0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x0200, 0x0089,
+-      0x60c3, 0x0020, 0x080c, 0x7d68, 0x014e, 0x015e, 0x0005, 0x00e6,
+-      0x2071, 0xb7e0, 0x7020, 0xa005, 0x0110, 0x8001, 0x7022, 0x00ee,
+-      0x0005, 0x20a9, 0x0008, 0x20a2, 0x1f04, 0x812b, 0x20a2, 0x20a2,
+-      0x0005, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0076, 0x0066, 0x0006,
+-      0x0126, 0x2091, 0x8000, 0x2071, 0xb7e0, 0x7614, 0x2660, 0x2678,
+-      0x2039, 0x0001, 0x87ff, 0x0904, 0x81c0, 0x8cff, 0x0904, 0x81c0,
+-      0x601c, 0xa086, 0x0006, 0x1904, 0x81bb, 0x88ff, 0x0138, 0x2800,
+-      0xac06, 0x1904, 0x81bb, 0x2039, 0x0000, 0x0050, 0x6018, 0xa206,
+-      0x1904, 0x81bb, 0x85ff, 0x0120, 0x6050, 0xa106, 0x1904, 0x81bb,
+-      0x7024, 0xac06, 0x1560, 0x2069, 0x0100, 0x68c0, 0xa005, 0x0518,
+-      0x080c, 0x6a11, 0x6820, 0xd0b4, 0x0110, 0x68a7, 0x95f5, 0x6817,
+-      0x0008, 0x68c3, 0x0000, 0x080c, 0x8247, 0x7027, 0x0000, 0x0036,
+-      0x2069, 0x0140, 0x6b04, 0xa384, 0x1000, 0x0120, 0x6803, 0x0100,
+-      0x6803, 0x0000, 0x2069, 0x0100, 0x6824, 0xd084, 0x0110, 0x6827,
+-      0x0001, 0x003e, 0x0020, 0x6003, 0x0009, 0x630a, 0x0460, 0x7014,
+-      0xac36, 0x1110, 0x660c, 0x7616, 0x7010, 0xac36, 0x1140, 0x2c00,
+-      0xaf36, 0x0118, 0x2f00, 0x7012, 0x0010, 0x7013, 0x0000, 0x660c,
+-      0x0066, 0x2c00, 0xaf06, 0x0110, 0x7e0e, 0x0008, 0x2678, 0x89ff,
+-      0x1158, 0x600f, 0x0000, 0x6010, 0x2068, 0x080c, 0x9c54, 0x0110,
+-      0x080c, 0xb08d, 0x080c, 0x9e17, 0x080c, 0x811f, 0x88ff, 0x1190,
+-      0x00ce, 0x0804, 0x8142, 0x2c78, 0x600c, 0x2060, 0x0804, 0x8142,
+-      0xa006, 0x012e, 0x000e, 0x006e, 0x007e, 0x00ce, 0x00de, 0x00ee,
+-      0x00fe, 0x0005, 0x6017, 0x0000, 0x00ce, 0xa8c5, 0x0001, 0x0c88,
+-      0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0026, 0x0006, 0x0126,
+-      0x2091, 0x8000, 0x2071, 0xb7e0, 0x7638, 0x2660, 0x2678, 0x8cff,
+-      0x0904, 0x8237, 0x601c, 0xa086, 0x0006, 0x1904, 0x8232, 0x87ff,
+-      0x0128, 0x2700, 0xac06, 0x1904, 0x8232, 0x0048, 0x6018, 0xa206,
+-      0x1904, 0x8232, 0x85ff, 0x0118, 0x6050, 0xa106, 0x15d8, 0x703c,
+-      0xac06, 0x1180, 0x0036, 0x2019, 0x0001, 0x080c, 0x7fe5, 0x7033,
+-      0x0000, 0x703f, 0x0000, 0x7043, 0x0000, 0x7047, 0x0000, 0x704b,
+-      0x0000, 0x003e, 0x7038, 0xac36, 0x1110, 0x660c, 0x763a, 0x7034,
+-      0xac36, 0x1140, 0x2c00, 0xaf36, 0x0118, 0x2f00, 0x7036, 0x0010,
+-      0x7037, 0x0000, 0x660c, 0x0066, 0x2c00, 0xaf06, 0x0110, 0x7e0e,
+-      0x0008, 0x2678, 0x600f, 0x0000, 0x6010, 0x2068, 0x080c, 0x9c54,
+-      0x0110, 0x080c, 0xb08d, 0x080c, 0x9e17, 0x87ff, 0x1190, 0x00ce,
+-      0x0804, 0x81df, 0x2c78, 0x600c, 0x2060, 0x0804, 0x81df, 0xa006,
+-      0x012e, 0x000e, 0x002e, 0x006e, 0x00ce, 0x00de, 0x00ee, 0x00fe,
+-      0x0005, 0x6017, 0x0000, 0x00ce, 0xa7bd, 0x0001, 0x0c88, 0x00e6,
+-      0x2071, 0xb7e0, 0x2001, 0xb500, 0x2004, 0xa086, 0x0002, 0x1118,
+-      0x7007, 0x0005, 0x0010, 0x7007, 0x0000, 0x00ee, 0x0005, 0x00f6,
+-      0x00e6, 0x00c6, 0x0066, 0x0026, 0x0006, 0x0126, 0x2091, 0x8000,
+-      0x2071, 0xb7e0, 0x2c10, 0x7638, 0x2660, 0x2678, 0x8cff, 0x0518,
+-      0x2200, 0xac06, 0x11e0, 0x7038, 0xac36, 0x1110, 0x660c, 0x763a,
+-      0x7034, 0xac36, 0x1140, 0x2c00, 0xaf36, 0x0118, 0x2f00, 0x7036,
+-      0x0010, 0x7037, 0x0000, 0x660c, 0x2c00, 0xaf06, 0x0110, 0x7e0e,
+-      0x0008, 0x2678, 0x600f, 0x0000, 0xa085, 0x0001, 0x0020, 0x2c78,
+-      0x600c, 0x2060, 0x08d8, 0x012e, 0x000e, 0x002e, 0x006e, 0x00ce,
+-      0x00ee, 0x00fe, 0x0005, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0066,
+-      0x0006, 0x0126, 0x2091, 0x8000, 0x2071, 0xb7e0, 0x760c, 0x2660,
+-      0x2678, 0x8cff, 0x0904, 0x831d, 0x6018, 0xa080, 0x0028, 0x2004,
+-      0xa206, 0x1904, 0x8318, 0x7024, 0xac06, 0x1508, 0x2069, 0x0100,
+-      0x68c0, 0xa005, 0x0904, 0x82f4, 0x080c, 0x7d7b, 0x68c3, 0x0000,
+-      0x080c, 0x8247, 0x7027, 0x0000, 0x0036, 0x2069, 0x0140, 0x6b04,
+-      0xa384, 0x1000, 0x0120, 0x6803, 0x0100, 0x6803, 0x0000, 0x2069,
+-      0x0100, 0x6824, 0xd084, 0x0110, 0x6827, 0x0001, 0x003e, 0x700c,
+-      0xac36, 0x1110, 0x660c, 0x760e, 0x7008, 0xac36, 0x1140, 0x2c00,
+-      0xaf36, 0x0118, 0x2f00, 0x700a, 0x0010, 0x700b, 0x0000, 0x660c,
+-      0x0066, 0x2c00, 0xaf06, 0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f,
+-      0x0000, 0x080c, 0x9e41, 0x1158, 0x080c, 0x2cc2, 0x080c, 0x9e52,
+-      0x11f0, 0x080c, 0x8c13, 0x00d8, 0x080c, 0x8247, 0x08c0, 0x080c,
+-      0x9e52, 0x1118, 0x080c, 0x8c13, 0x0090, 0x6010, 0x2068, 0x080c,
+-      0x9c54, 0x0168, 0x601c, 0xa086, 0x0003, 0x11f8, 0x6837, 0x0103,
+-      0x6b4a, 0x6847, 0x0000, 0x080c, 0x5409, 0x080c, 0x9e0b, 0x080c,
+-      0xa019, 0x080c, 0x9e17, 0x080c, 0x811f, 0x00ce, 0x0804, 0x82a1,
+-      0x2c78, 0x600c, 0x2060, 0x0804, 0x82a1, 0x012e, 0x000e, 0x006e,
+-      0x00ce, 0x00de, 0x00ee, 0x00fe, 0x0005, 0x601c, 0xa086, 0x0006,
+-      0x1d30, 0x080c, 0xb08d, 0x0c18, 0x0036, 0x0156, 0x0136, 0x0146,
+-      0x3908, 0xa006, 0xa190, 0x0020, 0x221c, 0xa39e, 0x2ab7, 0x1118,
+-      0x8210, 0x8000, 0x0cc8, 0xa005, 0x0138, 0x20a9, 0x0020, 0x2198,
+-      0xa110, 0x22a0, 0x22c8, 0x53a3, 0x014e, 0x013e, 0x015e, 0x003e,
+-      0x0005, 0x00d6, 0x20a1, 0x020b, 0x080c, 0x76de, 0x20a3, 0x0200,
+-      0x20a3, 0x0014, 0x60c3, 0x0014, 0x20a3, 0x0000, 0x20a3, 0x0000,
+-      0x2099, 0xb7b9, 0x20a9, 0x0004, 0x53a6, 0x20a3, 0x0004, 0x20a3,
+-      0x7878, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x080c, 0x7d68, 0x00de,
+-      0x0005, 0x20a1, 0x020b, 0x080c, 0x76de, 0x20a3, 0x0214, 0x20a3,
+-      0x0018, 0x20a3, 0x0800, 0x7810, 0xa084, 0xff00, 0x20a2, 0x20a3,
+-      0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x7810,
+-      0xa084, 0x00ff, 0x20a2, 0x7828, 0x20a2, 0x20a3, 0x0000, 0x20a3,
+-      0x0000, 0x60c3, 0x0018, 0x080c, 0x7d68, 0x0005, 0x00d6, 0x0016,
+-      0x2f68, 0x2009, 0x0035, 0x080c, 0xa104, 0x1904, 0x83fc, 0x20a1,
+-      0x020b, 0x080c, 0x7642, 0x20a3, 0x1300, 0x20a3, 0x0000, 0x7828,
+-      0x2068, 0x681c, 0xa086, 0x0003, 0x0580, 0x7818, 0xa080, 0x0028,
+-      0x2014, 0x2001, 0xb535, 0x2004, 0xd0ac, 0x11d0, 0xa286, 0x007e,
+-      0x1128, 0x20a3, 0x00ff, 0x20a3, 0xfffe, 0x04b8, 0xa286, 0x007f,
+-      0x1128, 0x20a3, 0x00ff, 0x20a3, 0xfffd, 0x0478, 0xd2bc, 0x0180,
+-      0xa286, 0x0080, 0x1128, 0x20a3, 0x00ff, 0x20a3, 0xfffc, 0x0428,
+-      0xa2e8, 0xb635, 0x2d6c, 0x6810, 0x20a2, 0x6814, 0x20a2, 0x00e8,
+-      0x20a3, 0x0000, 0x6098, 0x20a2, 0x00c0, 0x2001, 0xb535, 0x2004,
+-      0xd0ac, 0x1138, 0x7818, 0xa080, 0x0028, 0x2004, 0xa082, 0x007e,
+-      0x0240, 0x00d6, 0x2069, 0xb51c, 0x2da6, 0x8d68, 0x2da6, 0x00de,
+-      0x0020, 0x20a3, 0x0000, 0x6034, 0x20a2, 0x7834, 0x20a2, 0x7838,
+-      0x20a2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x000c, 0x080c,
+-      0x7d68, 0x001e, 0x00de, 0x0005, 0x7817, 0x0001, 0x7803, 0x0006,
+-      0x001e, 0x00de, 0x0005, 0x00d6, 0x0026, 0x7928, 0x2168, 0x691c,
+-      0xa186, 0x0006, 0x01c0, 0xa186, 0x0003, 0x0904, 0x8472, 0xa186,
+-      0x0005, 0x0904, 0x845b, 0xa186, 0x0004, 0x05b8, 0xa186, 0x0008,
+-      0x0904, 0x8463, 0x7807, 0x0037, 0x7813, 0x1700, 0x080c, 0x84da,
+-      0x002e, 0x00de, 0x0005, 0x080c, 0x8496, 0x2009, 0x4000, 0x6800,
+-      0x0002, 0x843c, 0x8447, 0x843e, 0x8447, 0x8443, 0x843c, 0x843c,
+-      0x8447, 0x8447, 0x8447, 0x8447, 0x843c, 0x843c, 0x843c, 0x843c,
+-      0x843c, 0x8447, 0x843c, 0x8447, 0x080c, 0x1515, 0x6820, 0xd0e4,
+-      0x0110, 0xd0cc, 0x0110, 0xa00e, 0x0010, 0x2009, 0x2000, 0x6828,
+-      0x20a2, 0x682c, 0x20a2, 0x0804, 0x848c, 0x080c, 0x8496, 0x20a3,
+-      0x0000, 0x20a3, 0x0000, 0x2009, 0x4000, 0x6a00, 0xa286, 0x0002,
+-      0x1108, 0xa00e, 0x0488, 0x04d1, 0x20a3, 0x0000, 0x20a3, 0x0000,
+-      0x2009, 0x4000, 0x0448, 0x0491, 0x20a3, 0x0000, 0x20a3, 0x0000,
+-      0x2009, 0x4000, 0xa286, 0x0005, 0x0118, 0xa286, 0x0002, 0x1108,
+-      0xa00e, 0x00d0, 0x0419, 0x6810, 0x2068, 0x697c, 0x6810, 0xa112,
+-      0x6980, 0x6814, 0xa103, 0x20a2, 0x22a2, 0x7928, 0xa180, 0x0000,
+-      0x2004, 0xa08e, 0x0002, 0x0130, 0xa08e, 0x0004, 0x0118, 0x2009,
+-      0x4000, 0x0010, 0x2009, 0x0000, 0x21a2, 0x20a3, 0x0000, 0x60c3,
+-      0x0018, 0x080c, 0x7d68, 0x002e, 0x00de, 0x0005, 0x0036, 0x0046,
+-      0x0056, 0x0066, 0x20a1, 0x020b, 0x080c, 0x76de, 0xa006, 0x20a3,
+-      0x0200, 0x20a2, 0x7934, 0x21a2, 0x7938, 0x21a2, 0x7818, 0xa080,
+-      0x0028, 0x2004, 0x2011, 0xb535, 0x2214, 0xd2ac, 0x1118, 0xa092,
+-      0x007e, 0x0268, 0x00d6, 0x2069, 0xb51c, 0x2d2c, 0x8d68, 0x2d34,
+-      0xa0e8, 0xb635, 0x2d6c, 0x6b10, 0x6c14, 0x00de, 0x0030, 0x2019,
+-      0x0000, 0x6498, 0x2029, 0x0000, 0x6634, 0x7828, 0xa080, 0x0007,
+-      0x2004, 0xa086, 0x0003, 0x1128, 0x25a2, 0x26a2, 0x23a2, 0x24a2,
+-      0x0020, 0x23a2, 0x24a2, 0x25a2, 0x26a2, 0x006e, 0x005e, 0x004e,
+-      0x003e, 0x0005, 0x20a1, 0x020b, 0x080c, 0x76de, 0x20a3, 0x0100,
+-      0x20a3, 0x0000, 0x20a3, 0x0009, 0x7810, 0x20a2, 0x60c3, 0x0008,
+-      0x080c, 0x7d68, 0x0005, 0x20a1, 0x020b, 0x080c, 0x763a, 0x20a3,
+-      0x1400, 0x20a3, 0x0000, 0x7834, 0x20a2, 0x7838, 0x20a2, 0x7828,
+-      0x20a2, 0x782c, 0x20a2, 0x7830, 0xa084, 0x00ff, 0x8007, 0x20a2,
+-      0x20a3, 0x0000, 0x60c3, 0x0010, 0x080c, 0x7d68, 0x0005, 0x20a1,
+-      0x020b, 0x080c, 0x76d6, 0x20a3, 0x0100, 0x20a3, 0x0000, 0x7828,
+-      0x20a2, 0x7810, 0x20a2, 0x60c3, 0x0008, 0x080c, 0x7d68, 0x0005,
+-      0x0146, 0x20a1, 0x020b, 0x0031, 0x60c3, 0x0000, 0x080c, 0x7d68,
+-      0x014e, 0x0005, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7818, 0xa080,
+-      0x0028, 0x2004, 0x2011, 0xb535, 0x2214, 0xd2ac, 0x1110, 0xd0bc,
+-      0x0188, 0x00d6, 0xa0e8, 0xb635, 0x2d6c, 0x6810, 0xa085, 0x0300,
+-      0x20a2, 0x6814, 0x20a2, 0x2069, 0xb51c, 0x2da6, 0x8d68, 0x2da6,
+-      0x00de, 0x0078, 0x00d6, 0xa0e8, 0xb635, 0x2d6c, 0x6810, 0xa085,
+-      0x0300, 0x20a2, 0x6814, 0x20a2, 0x00de, 0x20a3, 0x0000, 0x6234,
+-      0x22a2, 0x20a3, 0x0819, 0x20a3, 0x0000, 0x080c, 0x7d57, 0x22a2,
+-      0x20a3, 0x0000, 0x2fa2, 0x7a08, 0x22a2, 0x20a3, 0x0000, 0x20a3,
+-      0x0000, 0x0005, 0x20a1, 0x020b, 0x0079, 0x7910, 0x21a2, 0x20a3,
+-      0x0000, 0x60c3, 0x0000, 0x20e1, 0x9080, 0x60a7, 0x9575, 0x080c,
+-      0x7d72, 0x080c, 0x6a08, 0x0005, 0x0156, 0x0136, 0x0036, 0x00d6,
+-      0x00e6, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7854, 0x2068, 0xadf0,
+-      0x000f, 0x7210, 0xa296, 0x00c0, 0xa294, 0xfffd, 0x7212, 0x7214,
+-      0xa294, 0x0300, 0x7216, 0x7100, 0xa194, 0x00ff, 0x7308, 0xa384,
+-      0x00ff, 0xa08d, 0xc200, 0x7102, 0xa384, 0xff00, 0xa215, 0x720a,
+-      0x7004, 0x720c, 0x700e, 0x7206, 0x20a9, 0x000a, 0x2e98, 0x53a6,
+-      0x60a3, 0x0035, 0x6a38, 0xa294, 0x7000, 0xa286, 0x3000, 0x0110,
+-      0x60a3, 0x0037, 0x00ee, 0x00de, 0x003e, 0x013e, 0x015e, 0x0005,
+-      0x2009, 0x0092, 0x0010, 0x2009, 0x0096, 0x60ab, 0x0036, 0x6116,
+-      0x0005, 0x2061, 0xbd00, 0x2a70, 0x7068, 0x704a, 0x704f, 0xbd00,
+-      0x0005, 0x00e6, 0x0126, 0x2071, 0xb500, 0x2091, 0x8000, 0x7548,
+-      0xa582, 0x0010, 0x0608, 0x704c, 0x2060, 0x6000, 0xa086, 0x0000,
++      0xa0e8, 0xb635, 0x2d6c, 0x6810, 0xa085, 0x0300, 0x20a2, 0x6814,
++      0x20a2, 0x2069, 0xb51c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0078,
++      0x00d6, 0xa0e8, 0xb635, 0x2d6c, 0x6810, 0xa085, 0x0300, 0x20a2,
++      0x6814, 0x20a2, 0x00de, 0x20a3, 0x0000, 0x6234, 0x22a2, 0x20a3,
++      0x0819, 0x20a3, 0x0000, 0x080c, 0x7d56, 0x22a2, 0x20a3, 0x0000,
++      0x2fa2, 0x7a08, 0x22a2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x0005,
++      0x20a1, 0x020b, 0x0079, 0x7910, 0x21a2, 0x20a3, 0x0000, 0x60c3,
++      0x0000, 0x20e1, 0x9080, 0x60a7, 0x9575, 0x080c, 0x7d71, 0x080c,
++      0x6a07, 0x0005, 0x0156, 0x0136, 0x0036, 0x00d6, 0x00e6, 0x20e1,
++      0x9080, 0x20e1, 0x4000, 0x7854, 0x2068, 0xadf0, 0x000f, 0x7210,
++      0xa296, 0x00c0, 0xa294, 0xfffd, 0x7212, 0x7214, 0xa294, 0x0300,
++      0x7216, 0x7100, 0xa194, 0x00ff, 0x7308, 0xa384, 0x00ff, 0xa08d,
++      0xc200, 0x7102, 0xa384, 0xff00, 0xa215, 0x720a, 0x7004, 0x720c,
++      0x700e, 0x7206, 0x20a9, 0x000a, 0x2e98, 0x53a6, 0x60a3, 0x0035,
++      0x6a38, 0xa294, 0x7000, 0xa286, 0x3000, 0x0110, 0x60a3, 0x0037,
++      0x00ee, 0x00de, 0x003e, 0x013e, 0x015e, 0x0005, 0x2009, 0x0092,
++      0x0010, 0x2009, 0x0096, 0x60ab, 0x0036, 0x6116, 0x0005, 0x2061,
++      0xbd00, 0x2a70, 0x7068, 0x704a, 0x704f, 0xbd00, 0x0005, 0x00e6,
++      0x0126, 0x2071, 0xb500, 0x2091, 0x8000, 0x7548, 0xa582, 0x0010,
++      0x0608, 0x704c, 0x2060, 0x6000, 0xa086, 0x0000, 0x0148, 0xace0,
++      0x0018, 0x705c, 0xac02, 0x1208, 0x0cb0, 0x2061, 0xbd00, 0x0c98,
++      0x6003, 0x0008, 0x8529, 0x754a, 0xaca8, 0x0018, 0x705c, 0xa502,
++      0x1230, 0x754e, 0xa085, 0x0001, 0x012e, 0x00ee, 0x0005, 0x704f,
++      0xbd00, 0x0cc0, 0xa006, 0x0cc0, 0x00e6, 0x2071, 0xb500, 0x7548,
++      0xa582, 0x0010, 0x0600, 0x704c, 0x2060, 0x6000, 0xa086, 0x0000,
+       0x0148, 0xace0, 0x0018, 0x705c, 0xac02, 0x1208, 0x0cb0, 0x2061,
+       0xbd00, 0x0c98, 0x6003, 0x0008, 0x8529, 0x754a, 0xaca8, 0x0018,
+-      0x705c, 0xa502, 0x1230, 0x754e, 0xa085, 0x0001, 0x012e, 0x00ee,
+-      0x0005, 0x704f, 0xbd00, 0x0cc0, 0xa006, 0x0cc0, 0x00e6, 0x2071,
+-      0xb500, 0x7548, 0xa582, 0x0010, 0x0600, 0x704c, 0x2060, 0x6000,
+-      0xa086, 0x0000, 0x0148, 0xace0, 0x0018, 0x705c, 0xac02, 0x1208,
+-      0x0cb0, 0x2061, 0xbd00, 0x0c98, 0x6003, 0x0008, 0x8529, 0x754a,
+-      0xaca8, 0x0018, 0x705c, 0xa502, 0x1228, 0x754e, 0xa085, 0x0001,
+-      0x00ee, 0x0005, 0x704f, 0xbd00, 0x0cc8, 0xa006, 0x0cc8, 0xac82,
+-      0xbd00, 0x0a0c, 0x1515, 0x2001, 0xb517, 0x2004, 0xac02, 0x1a0c,
+-      0x1515, 0xa006, 0x6006, 0x600a, 0x600e, 0x6012, 0x6016, 0x601a,
+-      0x601f, 0x0000, 0x6003, 0x0000, 0x6052, 0x6056, 0x6022, 0x6026,
+-      0x602a, 0x602e, 0x6032, 0x6036, 0x603a, 0x603e, 0x2061, 0xb500,
+-      0x6048, 0x8000, 0x604a, 0xa086, 0x0001, 0x0108, 0x0005, 0x0126,
+-      0x2091, 0x8000, 0x080c, 0x7174, 0x012e, 0x0cc0, 0x601c, 0xa084,
+-      0x000f, 0x0002, 0x8655, 0x8664, 0x867f, 0x869a, 0xa148, 0xa163,
+-      0xa17e, 0x8655, 0x8664, 0x8655, 0x86b5, 0xa186, 0x0013, 0x1128,
+-      0x080c, 0x7091, 0x080c, 0x7174, 0x0005, 0xa18e, 0x0047, 0x1118,
+-      0xa016, 0x080c, 0x185e, 0x0005, 0x0066, 0x6000, 0xa0b2, 0x0010,
+-      0x1a0c, 0x1515, 0x0013, 0x006e, 0x0005, 0x867d, 0x8a95, 0x8c4d,
+-      0x867d, 0x8cc2, 0x8773, 0x867d, 0x867d, 0x8a27, 0x90e9, 0x867d,
+-      0x867d, 0x867d, 0x867d, 0x867d, 0x867d, 0x080c, 0x1515, 0x0066,
+-      0x6000, 0xa0b2, 0x0010, 0x1a0c, 0x1515, 0x0013, 0x006e, 0x0005,
+-      0x8698, 0x971c, 0x8698, 0x8698, 0x8698, 0x8698, 0x8698, 0x8698,
+-      0x96c7, 0x9888, 0x8698, 0x9749, 0x97c0, 0x9749, 0x97c0, 0x8698,
+-      0x080c, 0x1515, 0x0066, 0x6000, 0xa0b2, 0x0010, 0x1a0c, 0x1515,
+-      0x0013, 0x006e, 0x0005, 0x86b3, 0x912a, 0x91f4, 0x932f, 0x948b,
+-      0x86b3, 0x86b3, 0x86b3, 0x9104, 0x9677, 0x967a, 0x86b3, 0x86b3,
+-      0x86b3, 0x86b3, 0x96a4, 0x080c, 0x1515, 0x0066, 0x6000, 0xa0b2,
+-      0x0010, 0x1a0c, 0x1515, 0x0013, 0x006e, 0x0005, 0x86ce, 0x86ce,
+-      0x86ce, 0x86fc, 0x8749, 0x86ce, 0x86ce, 0x86ce, 0x86d0, 0x86ce,
+-      0x86ce, 0x86ce, 0x86ce, 0x86ce, 0x86ce, 0x86ce, 0x080c, 0x1515,
+-      0xa186, 0x0003, 0x190c, 0x1515, 0x00d6, 0x6003, 0x0003, 0x6106,
+-      0x6010, 0x2068, 0x684f, 0x0040, 0x687c, 0x680a, 0x6880, 0x680e,
+-      0x6813, 0x0000, 0x6817, 0x0000, 0x6854, 0xa092, 0x199a, 0x0210,
+-      0x2001, 0x1999, 0x8003, 0x8013, 0x8213, 0xa210, 0x6216, 0x00de,
+-      0x2c10, 0x080c, 0x1fa9, 0x080c, 0x6cf1, 0x0126, 0x2091, 0x8000,
+-      0x080c, 0x7231, 0x012e, 0x0005, 0xa182, 0x0047, 0x0002, 0x8708,
+-      0x8708, 0x870a, 0x8723, 0x8708, 0x8708, 0x8708, 0x8708, 0x8735,
+-      0x080c, 0x1515, 0x00d6, 0x0016, 0x080c, 0x7127, 0x080c, 0x7231,
+-      0x6003, 0x0004, 0x6110, 0x2168, 0x684f, 0x0020, 0x685c, 0x685a,
+-      0x6874, 0x687e, 0x6878, 0x6882, 0x6897, 0x0000, 0x689b, 0x0000,
+-      0x001e, 0x00de, 0x0005, 0x080c, 0x7127, 0x00d6, 0x6110, 0x2168,
+-      0x080c, 0x9c54, 0x0120, 0x684b, 0x0006, 0x080c, 0x5409, 0x00de,
+-      0x080c, 0x8617, 0x080c, 0x7231, 0x0005, 0x080c, 0x7127, 0x080c,
+-      0x2c9c, 0x00d6, 0x6110, 0x2168, 0x080c, 0x9c54, 0x0120, 0x684b,
+-      0x0029, 0x080c, 0x5409, 0x00de, 0x080c, 0x8617, 0x080c, 0x7231,
+-      0x0005, 0xa182, 0x0047, 0x0002, 0x8757, 0x8766, 0x8755, 0x8755,
+-      0x8755, 0x8755, 0x8755, 0x8755, 0x8755, 0x080c, 0x1515, 0x00d6,
+-      0x6010, 0x2068, 0x684c, 0xc0f4, 0x684e, 0x00de, 0x20e1, 0x0005,
+-      0x3d18, 0x3e20, 0x2c10, 0x080c, 0x185e, 0x0005, 0x00d6, 0x6110,
+-      0x2168, 0x684b, 0x0000, 0x6853, 0x0000, 0x080c, 0x5409, 0x00de,
+-      0x080c, 0x8617, 0x0005, 0xa1b6, 0x0015, 0x1118, 0x080c, 0x8617,
+-      0x0030, 0xa1b6, 0x0016, 0x190c, 0x1515, 0x080c, 0x8617, 0x0005,
+-      0x20a9, 0x000e, 0x2e98, 0x6010, 0x20a0, 0x53a3, 0x20a9, 0x0006,
+-      0x3310, 0x3420, 0x9398, 0x94a0, 0x3318, 0x3428, 0x222e, 0x2326,
+-      0xa290, 0x0002, 0xa5a8, 0x0002, 0xa398, 0x0002, 0xa4a0, 0x0002,
+-      0x1f04, 0x878e, 0x00e6, 0x080c, 0x9c54, 0x0130, 0x6010, 0x2070,
+-      0x7007, 0x0000, 0x7037, 0x0103, 0x00ee, 0x080c, 0x8617, 0x0005,
+-      0x00d6, 0x0036, 0x7330, 0xa386, 0x0200, 0x1130, 0x6018, 0x2068,
+-      0x6813, 0x00ff, 0x6817, 0xfffd, 0x6010, 0xa005, 0x0130, 0x2068,
+-      0x6807, 0x0000, 0x6837, 0x0103, 0x6b32, 0x080c, 0x8617, 0x003e,
+-      0x00de, 0x0005, 0x0016, 0x20a9, 0x002a, 0xae80, 0x000c, 0x2098,
+-      0x6010, 0xa080, 0x0002, 0x20a0, 0x53a3, 0x20a9, 0x002a, 0x6010,
+-      0xa080, 0x0001, 0x2004, 0xa080, 0x0002, 0x20a0, 0x53a3, 0x00e6,
+-      0x6010, 0x2004, 0x2070, 0x7037, 0x0103, 0x00ee, 0x080c, 0x8617,
+-      0x001e, 0x0005, 0x0016, 0x2009, 0x0000, 0x7030, 0xa086, 0x0100,
+-      0x0140, 0x7038, 0xa084, 0x00ff, 0x800c, 0x703c, 0xa084, 0x00ff,
+-      0x8004, 0xa080, 0x0004, 0xa108, 0x21a8, 0xae80, 0x000c, 0x2098,
+-      0x6010, 0xa080, 0x0002, 0x20a0, 0x080c, 0x4b90, 0x00e6, 0x080c,
+-      0x9c54, 0x0140, 0x6010, 0x2070, 0x7007, 0x0000, 0x7034, 0x70b2,
+-      0x7037, 0x0103, 0x00ee, 0x080c, 0x8617, 0x001e, 0x0005, 0x00e6,
+-      0x00d6, 0x603f, 0x0000, 0x2c68, 0x0016, 0x2009, 0x0035, 0x080c,
+-      0xa104, 0x001e, 0x1168, 0x0026, 0x6228, 0x2268, 0x002e, 0x2071,
+-      0xbb8c, 0x6b1c, 0xa386, 0x0003, 0x0130, 0xa386, 0x0006, 0x0128,
+-      0x080c, 0x8617, 0x0020, 0x0031, 0x0010, 0x080c, 0x88f0, 0x00de,
+-      0x00ee, 0x0005, 0x00f6, 0x6810, 0x2078, 0xa186, 0x0015, 0x0904,
+-      0x88d7, 0xa18e, 0x0016, 0x1904, 0x88ee, 0x700c, 0xa08c, 0xff00,
+-      0xa186, 0x1700, 0x0120, 0xa186, 0x0300, 0x1904, 0x88b6, 0x8fff,
+-      0x1138, 0x6800, 0xa086, 0x000f, 0x0904, 0x889a, 0x0804, 0x88ec,
+-      0x6808, 0xa086, 0xffff, 0x1904, 0x88d9, 0x784c, 0xa084, 0x0060,
+-      0xa086, 0x0020, 0x1150, 0x797c, 0x7810, 0xa106, 0x1904, 0x88d9,
+-      0x7980, 0x7814, 0xa106, 0x1904, 0x88d9, 0x080c, 0x9e0b, 0x6858,
+-      0x7852, 0x784c, 0xc0dc, 0xc0f4, 0xc0d4, 0x784e, 0x0026, 0xa00e,
+-      0x6a14, 0x2001, 0x000a, 0x080c, 0x6b41, 0x7854, 0xa20a, 0x0208,
+-      0x8011, 0x7a56, 0x82ff, 0x002e, 0x1138, 0x00c6, 0x2d60, 0x080c,
+-      0x9a03, 0x00ce, 0x0804, 0x88ec, 0x00c6, 0x00d6, 0x2f68, 0x6838,
+-      0xd0fc, 0x1118, 0x080c, 0x4c65, 0x0010, 0x080c, 0x4e4a, 0x00de,
+-      0x00ce, 0x1904, 0x88d9, 0x00c6, 0x2d60, 0x080c, 0x8617, 0x00ce,
+-      0x0804, 0x88ec, 0x00c6, 0x080c, 0x9ed0, 0x0190, 0x6013, 0x0000,
+-      0x6818, 0x601a, 0x080c, 0xa021, 0x601f, 0x0003, 0x6904, 0x00c6,
+-      0x2d60, 0x080c, 0x8617, 0x00ce, 0x080c, 0x8646, 0x00ce, 0x04e0,
+-      0x2001, 0xb7b8, 0x2004, 0x683e, 0x00ce, 0x04b0, 0x7008, 0xa086,
+-      0x000b, 0x11a0, 0x6018, 0x200c, 0xc1bc, 0x2102, 0x00c6, 0x2d60,
+-      0x7853, 0x0003, 0x6007, 0x0085, 0x6003, 0x000b, 0x601f, 0x0002,
+-      0x080c, 0x6c8e, 0x080c, 0x7174, 0x00ce, 0x00f0, 0x700c, 0xa086,
+-      0x2a00, 0x1138, 0x2001, 0xb7b8, 0x2004, 0x683e, 0x00a8, 0x0481,
+-      0x00a8, 0x8fff, 0x090c, 0x1515, 0x00c6, 0x00d6, 0x2d60, 0x2f68,
+-      0x6837, 0x0103, 0x684b, 0x0003, 0x080c, 0x98f7, 0x080c, 0x9e0b,
+-      0x080c, 0x9e17, 0x00de, 0x00ce, 0x080c, 0x8617, 0x00fe, 0x0005,
+-      0xa186, 0x0015, 0x1128, 0x2001, 0xb7b8, 0x2004, 0x683e, 0x0068,
+-      0xa18e, 0x0016, 0x1160, 0x00c6, 0x2d00, 0x2060, 0x080c, 0xb32e,
+-      0x080c, 0x6af0, 0x080c, 0x8617, 0x00ce, 0x080c, 0x8617, 0x0005,
+-      0x0026, 0x0036, 0x0046, 0x7228, 0x7c80, 0x7b7c, 0xd2f4, 0x0130,
+-      0x2001, 0xb7b8, 0x2004, 0x683e, 0x0804, 0x896a, 0x00c6, 0x2d60,
+-      0x080c, 0x9917, 0x00ce, 0x6804, 0xa086, 0x0050, 0x1168, 0x00c6,
+-      0x2d00, 0x2060, 0x6003, 0x0001, 0x6007, 0x0050, 0x080c, 0x6c8e,
+-      0x080c, 0x7174, 0x00ce, 0x04f0, 0x6800, 0xa086, 0x000f, 0x01c8,
+-      0x8fff, 0x090c, 0x1515, 0x6820, 0xd0dc, 0x1198, 0x6800, 0xa086,
+-      0x0004, 0x1198, 0x784c, 0xd0ac, 0x0180, 0x784c, 0xc0dc, 0xc0f4,
+-      0x784e, 0x7850, 0xc0f4, 0xc0fc, 0x7852, 0x2001, 0x0001, 0x682e,
+-      0x00e0, 0x2001, 0x0007, 0x682e, 0x00c0, 0x784c, 0xd0b4, 0x1130,
+-      0xd0ac, 0x0db8, 0x784c, 0xd0f4, 0x1da0, 0x0c38, 0xd2ec, 0x1d88,
+-      0x7024, 0xa306, 0x1118, 0x7020, 0xa406, 0x0d58, 0x7020, 0x6836,
+-      0x7024, 0x683a, 0x2001, 0x0005, 0x682e, 0x080c, 0x9f5d, 0x080c,
+-      0x7174, 0x0010, 0x080c, 0x8617, 0x004e, 0x003e, 0x002e, 0x0005,
+-      0x00e6, 0x00d6, 0x0026, 0x6034, 0x2068, 0x6a1c, 0xa286, 0x0007,
+-      0x0904, 0x89ce, 0xa286, 0x0002, 0x0904, 0x89ce, 0xa286, 0x0000,
+-      0x0904, 0x89ce, 0x6808, 0x6338, 0xa306, 0x1904, 0x89ce, 0x2071,
+-      0xbb8c, 0xa186, 0x0015, 0x05e0, 0xa18e, 0x0016, 0x1190, 0x6030,
+-      0xa084, 0x00ff, 0xa086, 0x0001, 0x1160, 0x700c, 0xa086, 0x2a00,
+-      0x1140, 0x6034, 0xa080, 0x0008, 0x200c, 0xc1dd, 0xc1f5, 0x2102,
+-      0x0438, 0x00c6, 0x6034, 0x2060, 0x6104, 0xa186, 0x004b, 0x01a0,
+-      0xa186, 0x004c, 0x0188, 0xa186, 0x004d, 0x0170, 0xa186, 0x004e,
+-      0x0158, 0xa186, 0x0052, 0x0140, 0x6010, 0x2068, 0x080c, 0x9c54,
+-      0x090c, 0x1515, 0x6853, 0x0003, 0x6007, 0x0085, 0x6003, 0x000b,
+-      0x601f, 0x0002, 0x080c, 0x6c8e, 0x080c, 0x7174, 0x00ce, 0x0030,
+-      0x6034, 0x2070, 0x2001, 0xb7b8, 0x2004, 0x703e, 0x080c, 0x8617,
+-      0x002e, 0x00de, 0x00ee, 0x0005, 0x00d6, 0x20a9, 0x000e, 0x2e98,
+-      0x6010, 0x20a0, 0x53a3, 0xa1b6, 0x0015, 0x1558, 0x6018, 0x2068,
+-      0x0156, 0x0036, 0x0026, 0xae90, 0x000c, 0xa290, 0x0004, 0x20a9,
+-      0x0004, 0xad98, 0x000a, 0x080c, 0x90d4, 0x002e, 0x003e, 0x015e,
+-      0x11d8, 0x0156, 0x0036, 0x0026, 0xae90, 0x000c, 0xa290, 0x0008,
+-      0x20a9, 0x0004, 0xad98, 0x0006, 0x080c, 0x90d4, 0x002e, 0x003e,
+-      0x015e, 0x1150, 0x7038, 0x680a, 0x703c, 0x680e, 0x6800, 0xc08d,
+-      0x6802, 0x00de, 0x0804, 0x879a, 0x080c, 0x2c9c, 0x00c6, 0x080c,
+-      0x85c1, 0x2f00, 0x601a, 0x6013, 0x0000, 0x601f, 0x0001, 0x6007,
+-      0x0001, 0x6003, 0x0001, 0x2001, 0x0007, 0x080c, 0x4efe, 0x080c,
+-      0x4f2b, 0x080c, 0x6cd4, 0x080c, 0x7174, 0x00ce, 0x0c10, 0x2100,
+-      0xa1b2, 0x0080, 0x1a0c, 0x1515, 0xa1b2, 0x0040, 0x1a04, 0x8a8b,
+-      0x0002, 0x8a7f, 0x8a73, 0x8a7f, 0x8a7f, 0x8a7f, 0x8a7f, 0x8a71,
+-      0x8a71, 0x8a71, 0x8a71, 0x8a71, 0x8a71, 0x8a71, 0x8a71, 0x8a71,
+-      0x8a71, 0x8a71, 0x8a71, 0x8a71, 0x8a71, 0x8a71, 0x8a71, 0x8a71,
+-      0x8a71, 0x8a71, 0x8a71, 0x8a71, 0x8a71, 0x8a71, 0x8a71, 0x8a71,
+-      0x8a7f, 0x8a71, 0x8a7f, 0x8a7f, 0x8a71, 0x8a71, 0x8a71, 0x8a71,
+-      0x8a71, 0x8a7f, 0x8a71, 0x8a71, 0x8a71, 0x8a71, 0x8a71, 0x8a71,
+-      0x8a71, 0x8a71, 0x8a71, 0x8a7f, 0x8a7f, 0x8a71, 0x8a71, 0x8a71,
+-      0x8a71, 0x8a71, 0x8a71, 0x8a71, 0x8a71, 0x8a71, 0x8a7f, 0x8a71,
+-      0x8a71, 0x080c, 0x1515, 0x6003, 0x0001, 0x6106, 0x080c, 0x6cd4,
+-      0x0126, 0x2091, 0x8000, 0x080c, 0x7174, 0x012e, 0x0005, 0x6003,
+-      0x0001, 0x6106, 0x080c, 0x6cd4, 0x0126, 0x2091, 0x8000, 0x080c,
+-      0x7174, 0x012e, 0x0005, 0x2600, 0x0002, 0x8a7f, 0x8a7f, 0x8a93,
+-      0x8a7f, 0x8a7f, 0x8a93, 0x080c, 0x1515, 0x6004, 0xa0b2, 0x0080,
+-      0x1a0c, 0x1515, 0xa1b6, 0x0013, 0x0904, 0x8b45, 0xa1b6, 0x0027,
+-      0x1904, 0x8b0b, 0x080c, 0x7091, 0x6004, 0x080c, 0x9e41, 0x0190,
+-      0x080c, 0x9e52, 0x0904, 0x8b05, 0xa08e, 0x0021, 0x0904, 0x8b08,
+-      0xa08e, 0x0022, 0x0904, 0x8b05, 0xa08e, 0x003d, 0x0904, 0x8b08,
+-      0x0804, 0x8afe, 0x080c, 0x2cc2, 0x2001, 0x0007, 0x080c, 0x4efe,
+-      0x6018, 0xa080, 0x0028, 0x200c, 0x080c, 0x8c13, 0xa186, 0x007e,
+-      0x1148, 0x2001, 0xb535, 0x2014, 0xc285, 0x080c, 0x5ad0, 0x1108,
+-      0xc2ad, 0x2202, 0x0016, 0x0026, 0x0036, 0x2110, 0x0026, 0x2019,
+-      0x0028, 0x080c, 0x8293, 0x002e, 0x080c, 0xb381, 0x003e, 0x002e,
+-      0x001e, 0x0016, 0x0026, 0x0036, 0x2110, 0x2019, 0x0028, 0x080c,
+-      0x6df6, 0x0076, 0x2039, 0x0000, 0x080c, 0x6d03, 0x00c6, 0x6018,
+-      0xa065, 0x0110, 0x080c, 0x51ab, 0x00ce, 0x2c08, 0x080c, 0xae76,
+-      0x007e, 0x003e, 0x002e, 0x001e, 0x080c, 0x4f6d, 0x080c, 0xa019,
+-      0x080c, 0x8617, 0x080c, 0x7174, 0x0005, 0x080c, 0x8c13, 0x0cb0,
+-      0x080c, 0x8c41, 0x0c98, 0xa186, 0x0014, 0x1db0, 0x080c, 0x7091,
+-      0x080c, 0x2c9c, 0x080c, 0x9e41, 0x1188, 0x080c, 0x2cc2, 0x6018,
+-      0xa080, 0x0028, 0x200c, 0x080c, 0x8c13, 0xa186, 0x007e, 0x1128,
+-      0x2001, 0xb535, 0x200c, 0xc185, 0x2102, 0x08c0, 0x080c, 0x9e52,
+-      0x1118, 0x080c, 0x8c13, 0x0890, 0x6004, 0xa08e, 0x0032, 0x1158,
+-      0x00e6, 0x00f6, 0x2071, 0xb582, 0x2079, 0x0000, 0x080c, 0x2fcf,
+-      0x00fe, 0x00ee, 0x0818, 0x6004, 0xa08e, 0x0021, 0x0d50, 0xa08e,
+-      0x0022, 0x090c, 0x8c13, 0x0804, 0x8afe, 0xa0b2, 0x0040, 0x1a04,
+-      0x8c08, 0x2008, 0x0002, 0x8b8d, 0x8b8e, 0x8b91, 0x8b94, 0x8b97,
+-      0x8b9a, 0x8b8b, 0x8b8b, 0x8b8b, 0x8b8b, 0x8b8b, 0x8b8b, 0x8b8b,
+-      0x8b8b, 0x8b8b, 0x8b8b, 0x8b8b, 0x8b8b, 0x8b8b, 0x8b8b, 0x8b8b,
+-      0x8b8b, 0x8b8b, 0x8b8b, 0x8b8b, 0x8b8b, 0x8b8b, 0x8b8b, 0x8b8b,
+-      0x8b8b, 0x8b9d, 0x8bac, 0x8b8b, 0x8bae, 0x8bac, 0x8b8b, 0x8b8b,
+-      0x8b8b, 0x8b8b, 0x8b8b, 0x8bac, 0x8bac, 0x8b8b, 0x8b8b, 0x8b8b,
+-      0x8b8b, 0x8b8b, 0x8b8b, 0x8b8b, 0x8b8b, 0x8be8, 0x8bac, 0x8b8b,
+-      0x8ba8, 0x8b8b, 0x8b8b, 0x8b8b, 0x8ba9, 0x8b8b, 0x8b8b, 0x8b8b,
+-      0x8bac, 0x8bdf, 0x8b8b, 0x080c, 0x1515, 0x00f0, 0x2001, 0x000b,
+-      0x0460, 0x2001, 0x0003, 0x0448, 0x2001, 0x0005, 0x0430, 0x2001,
+-      0x0001, 0x0418, 0x2001, 0x0009, 0x0400, 0x080c, 0x7091, 0x6003,
+-      0x0005, 0x2001, 0xb7b8, 0x2004, 0x603e, 0x080c, 0x7174, 0x00a0,
+-      0x0018, 0x0010, 0x080c, 0x4efe, 0x0804, 0x8bf9, 0x080c, 0x7091,
+-      0x2001, 0xb7b6, 0x2004, 0x6016, 0x2001, 0xb7b8, 0x2004, 0x603e,
+-      0x6003, 0x0004, 0x080c, 0x7174, 0x0005, 0x080c, 0x4efe, 0x080c,
+-      0x7091, 0x6003, 0x0002, 0x2001, 0xb7b8, 0x2004, 0x603e, 0x0036,
+-      0x2019, 0xb55d, 0x2304, 0xa084, 0xff00, 0x1120, 0x2001, 0xb7b6,
+-      0x201c, 0x0040, 0x8007, 0xa09a, 0x0004, 0x0ec0, 0x8003, 0x801b,
+-      0x831b, 0xa318, 0x6316, 0x003e, 0x080c, 0x7174, 0x08e8, 0x080c,
+-      0x7091, 0x080c, 0xa019, 0x080c, 0x8617, 0x080c, 0x7174, 0x08a0,
+-      0x00e6, 0x00f6, 0x2071, 0xb582, 0x2079, 0x0000, 0x080c, 0x2fcf,
+-      0x00fe, 0x00ee, 0x080c, 0x7091, 0x080c, 0x8617, 0x080c, 0x7174,
+-      0x0818, 0x080c, 0x7091, 0x2001, 0xb7b8, 0x2004, 0x603e, 0x6003,
+-      0x0002, 0x2001, 0xb7b6, 0x2004, 0x6016, 0x080c, 0x7174, 0x0005,
+-      0x2600, 0x2008, 0x0002, 0x8c11, 0x8c11, 0x8c11, 0x8bf9, 0x8bf9,
+-      0x8c11, 0x080c, 0x1515, 0x00e6, 0x0026, 0x0016, 0x080c, 0x9c54,
+-      0x0508, 0x6010, 0x2070, 0x7034, 0xa086, 0x0139, 0x1148, 0x2001,
+-      0x0030, 0x2009, 0x0000, 0x2011, 0x4005, 0x080c, 0xa0d0, 0x0090,
+-      0x7038, 0xd0fc, 0x0178, 0x7007, 0x0000, 0x0016, 0x6004, 0xa08e,
+-      0x0021, 0x0160, 0xa08e, 0x003d, 0x0148, 0x001e, 0x7037, 0x0103,
+-      0x7033, 0x0100, 0x001e, 0x002e, 0x00ee, 0x0005, 0x001e, 0x0009,
+-      0x0cc8, 0x00e6, 0xacf0, 0x0004, 0x2e74, 0x7000, 0x2070, 0x7037,
+-      0x0103, 0x7023, 0x8001, 0x00ee, 0x0005, 0x00d6, 0x6618, 0x2668,
+-      0x6804, 0xa084, 0x00ff, 0x00de, 0xa0b2, 0x000c, 0x1a0c, 0x1515,
+-      0x6604, 0xa6b6, 0x0043, 0x1120, 0x080c, 0xa08c, 0x0804, 0x8cb2,
+-      0x6604, 0xa6b6, 0x0033, 0x1120, 0x080c, 0xa03c, 0x0804, 0x8cb2,
+-      0x6604, 0xa6b6, 0x0028, 0x1120, 0x080c, 0x9e82, 0x0804, 0x8cb2,
+-      0x6604, 0xa6b6, 0x0029, 0x1118, 0x080c, 0x9e99, 0x04d8, 0x6604,
+-      0xa6b6, 0x001f, 0x1118, 0x080c, 0x8780, 0x04a0, 0x6604, 0xa6b6,
+-      0x0000, 0x1118, 0x080c, 0x89d4, 0x0468, 0x6604, 0xa6b6, 0x0022,
+-      0x1118, 0x080c, 0x87a8, 0x0430, 0x6604, 0xa6b6, 0x0035, 0x1118,
+-      0x080c, 0x880f, 0x00f8, 0x6604, 0xa6b6, 0x0039, 0x1118, 0x080c,
+-      0x8970, 0x00c0, 0x6604, 0xa6b6, 0x003d, 0x1118, 0x080c, 0x87c2,
+-      0x0088, 0x6604, 0xa6b6, 0x0044, 0x1118, 0x080c, 0x87e2, 0x0050,
+-      0xa1b6, 0x0015, 0x1110, 0x0053, 0x0028, 0xa1b6, 0x0016, 0x1118,
+-      0x0804, 0x8e76, 0x0005, 0x080c, 0x865d, 0x0ce0, 0x8cd9, 0x8cdc,
+-      0x8cd9, 0x8d1e, 0x8cd9, 0x8e03, 0x8e84, 0x8cd9, 0x8cd9, 0x8e52,
+-      0x8cd9, 0x8e66, 0xa1b6, 0x0048, 0x0140, 0x20e1, 0x0005, 0x3d18,
+-      0x3e20, 0x2c10, 0x080c, 0x185e, 0x0005, 0x00e6, 0xacf0, 0x0004,
+-      0x2e74, 0x7000, 0x2070, 0x7037, 0x0103, 0x00ee, 0x080c, 0x8617,
+-      0x0005, 0xe000, 0xe000, 0x0005, 0x00e6, 0x2071, 0xb500, 0x7084,
+-      0xa086, 0x0074, 0x1530, 0x080c, 0xae4d, 0x11b0, 0x00d6, 0x6018,
+-      0x2068, 0x7030, 0xd08c, 0x0128, 0x6800, 0xd0bc, 0x0110, 0xc0c5,
+-      0x6802, 0x00d9, 0x00de, 0x2001, 0x0006, 0x080c, 0x4efe, 0x080c,
+-      0x2cc2, 0x080c, 0x8617, 0x0078, 0x2001, 0x000a, 0x080c, 0x4efe,
+-      0x080c, 0x2cc2, 0x6003, 0x0001, 0x6007, 0x0001, 0x080c, 0x6cd4,
+-      0x0010, 0x080c, 0x8df0, 0x00ee, 0x0005, 0x6800, 0xd084, 0x0168,
+-      0x2001, 0x0000, 0x080c, 0x4eec, 0x2069, 0xb552, 0x6804, 0xd0a4,
+-      0x0120, 0x2001, 0x0006, 0x080c, 0x4f2b, 0x0005, 0x00d6, 0x2011,
+-      0xb521, 0x2204, 0xa086, 0x0074, 0x1904, 0x8ded, 0x6018, 0x2068,
+-      0x6aa0, 0xa286, 0x007e, 0x1120, 0x080c, 0x8f9c, 0x0804, 0x8d8c,
+-      0x080c, 0x8f92, 0x6018, 0x2068, 0xa080, 0x0028, 0x2014, 0xa286,
+-      0x0080, 0x11c0, 0x6813, 0x00ff, 0x6817, 0xfffc, 0x6010, 0xa005,
+-      0x0138, 0x2068, 0x6807, 0x0000, 0x6837, 0x0103, 0x6833, 0x0200,
+-      0x2001, 0x0006, 0x080c, 0x4efe, 0x080c, 0x2cc2, 0x080c, 0x8617,
+-      0x0804, 0x8dee, 0x00e6, 0x2071, 0xb535, 0x2e04, 0xd09c, 0x0188,
+-      0x2071, 0xbb80, 0x7108, 0x720c, 0xa18c, 0x00ff, 0x1118, 0xa284,
+-      0xff00, 0x0138, 0x6018, 0x2070, 0x70a0, 0xd0bc, 0x1110, 0x7112,
+-      0x7216, 0x00ee, 0x6010, 0xa005, 0x0198, 0x2068, 0x6838, 0xd0f4,
+-      0x0178, 0x6834, 0xa084, 0x00ff, 0xa086, 0x0039, 0x1958, 0x2001,
+-      0x0000, 0x2009, 0x0000, 0x2011, 0x4000, 0x080c, 0xa0d0, 0x0840,
+-      0x2001, 0x0004, 0x080c, 0x4efe, 0x6003, 0x0001, 0x6007, 0x0003,
+-      0x080c, 0x6cd4, 0x0804, 0x8dee, 0x685c, 0xd0e4, 0x01d8, 0x080c,
+-      0x9fcc, 0x080c, 0x5ad0, 0x0118, 0xd0dc, 0x1904, 0x8d48, 0x2011,
+-      0xb535, 0x2204, 0xc0ad, 0x2012, 0x2001, 0xb78f, 0x2004, 0x00f6,
+-      0x2079, 0x0100, 0x78e3, 0x0000, 0x080c, 0x2872, 0x78e2, 0x00fe,
+-      0x0804, 0x8d48, 0x080c, 0xa002, 0x2011, 0xb535, 0x2204, 0xc0a5,
+-      0x2012, 0x0006, 0x080c, 0xaf6f, 0x000e, 0x1904, 0x8d48, 0xc0b5,
+-      0x2012, 0x2001, 0x0006, 0x080c, 0x4efe, 0x2001, 0x0000, 0x080c,
+-      0x4eec, 0x00c6, 0x2009, 0x00ef, 0x00f6, 0x2079, 0x0100, 0x79ea,
+-      0x7932, 0x7936, 0x00fe, 0x080c, 0x2847, 0x00f6, 0x2079, 0xb500,
+-      0x7976, 0x2100, 0x2009, 0x0000, 0x080c, 0x281d, 0x7952, 0x00fe,
+-      0x8108, 0x080c, 0x4f4e, 0x2c00, 0x00ce, 0x1904, 0x8d48, 0x601a,
+-      0x2001, 0x0002, 0x080c, 0x4efe, 0x601f, 0x0001, 0x6003, 0x0001,
+-      0x6007, 0x0002, 0x080c, 0x6cd4, 0x0008, 0x0011, 0x00de, 0x0005,
+-      0x2001, 0x0007, 0x080c, 0x4efe, 0x2001, 0xb500, 0x2004, 0xa086,
+-      0x0003, 0x1120, 0x2001, 0x0007, 0x080c, 0x4f2b, 0x080c, 0x2cc2,
+-      0x080c, 0x8617, 0x0005, 0x00e6, 0x0026, 0x0016, 0x2071, 0xb500,
+-      0x7084, 0xa086, 0x0014, 0x15f0, 0x7000, 0xa086, 0x0003, 0x1128,
+-      0x6010, 0xa005, 0x1110, 0x080c, 0x3f3f, 0x00d6, 0x6018, 0x2068,
+-      0x080c, 0x504c, 0x080c, 0x8d0d, 0x00de, 0x080c, 0x904b, 0x1550,
+-      0x00d6, 0x6018, 0x2068, 0x6890, 0x00de, 0xa005, 0x0518, 0x2001,
+-      0x0006, 0x080c, 0x4efe, 0x00e6, 0x6010, 0xa075, 0x01a8, 0x7034,
+-      0xa084, 0x00ff, 0xa086, 0x0039, 0x1148, 0x2001, 0x0000, 0x2009,
+-      0x0000, 0x2011, 0x4000, 0x080c, 0xa0d0, 0x0030, 0x7007, 0x0000,
+-      0x7037, 0x0103, 0x7033, 0x0200, 0x00ee, 0x080c, 0x2cc2, 0x080c,
+-      0x8617, 0x0020, 0x080c, 0x8c13, 0x080c, 0x8df0, 0x001e, 0x002e,
+-      0x00ee, 0x0005, 0x2011, 0xb521, 0x2204, 0xa086, 0x0014, 0x1158,
+-      0x2001, 0x0002, 0x080c, 0x4efe, 0x6003, 0x0001, 0x6007, 0x0001,
+-      0x080c, 0x6cd4, 0x0010, 0x080c, 0x8df0, 0x0005, 0x2011, 0xb521,
+-      0x2204, 0xa086, 0x0004, 0x1138, 0x2001, 0x0007, 0x080c, 0x4efe,
+-      0x080c, 0x8617, 0x0010, 0x080c, 0x8df0, 0x0005, 0x000b, 0x0005,
+-      0x8cd9, 0x8e8f, 0x8cd9, 0x8ec3, 0x8cd9, 0x8f4e, 0x8e84, 0x8cd9,
+-      0x8cd9, 0x8f61, 0x8cd9, 0x8f71, 0x6604, 0xa686, 0x0003, 0x0904,
+-      0x8e03, 0xa6b6, 0x001e, 0x1110, 0x080c, 0x8617, 0x0005, 0x00d6,
+-      0x00c6, 0x080c, 0x8f81, 0x1178, 0x2001, 0x0000, 0x080c, 0x4eec,
+-      0x2001, 0x0002, 0x080c, 0x4efe, 0x6003, 0x0001, 0x6007, 0x0002,
+-      0x080c, 0x6cd4, 0x00e8, 0x2009, 0xbb8e, 0x2104, 0xa086, 0x0009,
+-      0x1160, 0x6018, 0x2068, 0x6840, 0xa084, 0x00ff, 0xa005, 0x0170,
+-      0x8001, 0x6842, 0x6017, 0x000a, 0x0058, 0x2009, 0xbb8f, 0x2104,
+-      0xa084, 0xff00, 0xa086, 0x1900, 0x1108, 0x08d0, 0x080c, 0x8df0,
+-      0x00ce, 0x00de, 0x0005, 0x0026, 0x2011, 0x0000, 0x080c, 0x8f8f,
+-      0x00d6, 0x2069, 0xb79e, 0x2d04, 0xa005, 0x0168, 0x6018, 0x2068,
+-      0x68a0, 0xa086, 0x007e, 0x1138, 0x2069, 0xb51d, 0x2d04, 0x8000,
+-      0x206a, 0x00de, 0x0010, 0x00de, 0x0078, 0x2001, 0x0000, 0x080c,
+-      0x4eec, 0x2001, 0x0002, 0x080c, 0x4efe, 0x6003, 0x0001, 0x6007,
+-      0x0002, 0x080c, 0x6cd4, 0x0480, 0x00d6, 0x6010, 0x2068, 0x080c,
+-      0x9c54, 0x00de, 0x0108, 0x6a34, 0x080c, 0x8c13, 0x2009, 0xbb8e,
+-      0x2134, 0xa6b4, 0x00ff, 0xa686, 0x0005, 0x0500, 0xa686, 0x000b,
+-      0x01c8, 0x2009, 0xbb8f, 0x2104, 0xa084, 0xff00, 0x1118, 0xa686,
+-      0x0009, 0x01a0, 0xa086, 0x1900, 0x1168, 0xa686, 0x0009, 0x0170,
+-      0x2001, 0x0004, 0x080c, 0x4efe, 0x2001, 0x0028, 0x6016, 0x6007,
+-      0x004b, 0x0010, 0x080c, 0x8df0, 0x002e, 0x0005, 0x00d6, 0xa286,
+-      0x0139, 0x0160, 0x6010, 0x2068, 0x080c, 0x9c54, 0x0148, 0x6834,
+-      0xa086, 0x0139, 0x0118, 0x6838, 0xd0fc, 0x0110, 0x00de, 0x0c50,
+-      0x6018, 0x2068, 0x6840, 0xa084, 0x00ff, 0xa005, 0x0140, 0x8001,
+-      0x6842, 0x6017, 0x000a, 0x6007, 0x0016, 0x00de, 0x08e8, 0x68a0,
+-      0xa086, 0x007e, 0x1138, 0x00e6, 0x2071, 0xb500, 0x080c, 0x4bc7,
+-      0x00ee, 0x0010, 0x080c, 0x2c9c, 0x00de, 0x0860, 0x080c, 0x8f8f,
+-      0x1158, 0x2001, 0x0004, 0x080c, 0x4efe, 0x6003, 0x0001, 0x6007,
+-      0x0003, 0x080c, 0x6cd4, 0x0020, 0x080c, 0x8c13, 0x080c, 0x8df0,
+-      0x0005, 0x0469, 0x1158, 0x2001, 0x0008, 0x080c, 0x4efe, 0x6003,
+-      0x0001, 0x6007, 0x0005, 0x080c, 0x6cd4, 0x0010, 0x080c, 0x8df0,
+-      0x0005, 0x00e9, 0x1158, 0x2001, 0x000a, 0x080c, 0x4efe, 0x6003,
+-      0x0001, 0x6007, 0x0001, 0x080c, 0x6cd4, 0x0010, 0x080c, 0x8df0,
+-      0x0005, 0x2009, 0xbb8e, 0x2104, 0xa086, 0x0003, 0x1138, 0x2009,
+-      0xbb8f, 0x2104, 0xa084, 0xff00, 0xa086, 0x2a00, 0x0005, 0xa085,
+-      0x0001, 0x0005, 0x00c6, 0x0016, 0xac88, 0x0006, 0x2164, 0x080c,
+-      0x4fb9, 0x001e, 0x00ce, 0x0005, 0x00f6, 0x00e6, 0x00d6, 0x0036,
+-      0x0016, 0x6018, 0x2068, 0x2071, 0xb535, 0x2e04, 0xa085, 0x0003,
+-      0x2072, 0x080c, 0x9020, 0x0560, 0x2009, 0xb535, 0x2104, 0xc0cd,
+-      0x200a, 0x2001, 0xb553, 0x2004, 0xd0a4, 0x0158, 0xa006, 0x2020,
+-      0x2009, 0x002a, 0x080c, 0xb0dc, 0x2001, 0xb50c, 0x200c, 0xc195,
+-      0x2102, 0x2019, 0x002a, 0x2009, 0x0001, 0x080c, 0x2c6f, 0x2071,
+-      0xb500, 0x080c, 0x2ab8, 0x00c6, 0x0156, 0x20a9, 0x0081, 0x2009,
+-      0x007f, 0x080c, 0x2d97, 0x8108, 0x1f04, 0x8fd1, 0x015e, 0x00ce,
+-      0x080c, 0x8f92, 0x6813, 0x00ff, 0x6817, 0xfffe, 0x2071, 0xbb80,
+-      0x2079, 0x0100, 0x2e04, 0xa084, 0x00ff, 0x2069, 0xb51c, 0x206a,
+-      0x78e6, 0x0006, 0x8e70, 0x2e04, 0x2069, 0xb51d, 0x206a, 0x78ea,
+-      0x7832, 0x7836, 0x2010, 0xa084, 0xff00, 0x001e, 0xa105, 0x2009,
+-      0xb528, 0x200a, 0x2200, 0xa084, 0x00ff, 0x2008, 0x080c, 0x2847,
+-      0x080c, 0x5ad0, 0x0170, 0x2069, 0xbb8e, 0x2071, 0xb7b2, 0x6810,
+-      0x2072, 0x6814, 0x7006, 0x6818, 0x700a, 0x681c, 0x700e, 0x080c,
+-      0x9fcc, 0x0040, 0x2001, 0x0006, 0x080c, 0x4efe, 0x080c, 0x2cc2,
+-      0x080c, 0x8617, 0x001e, 0x003e, 0x00de, 0x00ee, 0x00fe, 0x0005,
+-      0x0026, 0x0036, 0x00e6, 0x0156, 0x2019, 0xb528, 0x231c, 0x83ff,
+-      0x01e8, 0x2071, 0xbb80, 0x2e14, 0xa294, 0x00ff, 0x7004, 0xa084,
+-      0xff00, 0xa205, 0xa306, 0x1190, 0x2011, 0xbb96, 0xad98, 0x000a,
+-      0x20a9, 0x0004, 0x080c, 0x90d4, 0x1148, 0x2011, 0xbb9a, 0xad98,
+-      0x0006, 0x20a9, 0x0004, 0x080c, 0x90d4, 0x1100, 0x015e, 0x00ee,
+-      0x003e, 0x002e, 0x0005, 0x00e6, 0x2071, 0xbb8c, 0x7004, 0xa086,
+-      0x0014, 0x11a8, 0x7008, 0xa086, 0x0800, 0x1188, 0x700c, 0xd0ec,
+-      0x0160, 0xa084, 0x0f00, 0xa086, 0x0100, 0x1138, 0x7024, 0xd0a4,
+-      0x1110, 0xd0ac, 0x0110, 0xa006, 0x0010, 0xa085, 0x0001, 0x00ee,
+-      0x0005, 0x00e6, 0x00d6, 0x00c6, 0x0076, 0x0056, 0x0046, 0x0026,
+-      0x0006, 0x0126, 0x2091, 0x8000, 0x2029, 0xb7e9, 0x252c, 0x2021,
+-      0xb7ef, 0x2424, 0x2061, 0xbd00, 0x2071, 0xb500, 0x7248, 0x7068,
+-      0xa202, 0x16f0, 0x080c, 0xb104, 0x05a0, 0x671c, 0xa786, 0x0001,
+-      0x0580, 0xa786, 0x0007, 0x0568, 0x2500, 0xac06, 0x0550, 0x2400,
+-      0xac06, 0x0538, 0x00c6, 0x6000, 0xa086, 0x0004, 0x1110, 0x080c,
+-      0x194d, 0xa786, 0x0008, 0x1148, 0x080c, 0x9e52, 0x1130, 0x00ce,
+-      0x080c, 0x8c13, 0x080c, 0x9e17, 0x00a0, 0x6010, 0x2068, 0x080c,
+-      0x9c54, 0x0160, 0xa786, 0x0003, 0x11e8, 0x6837, 0x0103, 0x6b4a,
+-      0x6847, 0x0000, 0x080c, 0x5409, 0x080c, 0x9e0b, 0x080c, 0x9e17,
+-      0x00ce, 0xace0, 0x0018, 0x705c, 0xac02, 0x1210, 0x0804, 0x907e,
+-      0x012e, 0x000e, 0x002e, 0x004e, 0x005e, 0x007e, 0x00ce, 0x00de,
+-      0x00ee, 0x0005, 0xa786, 0x0006, 0x1118, 0x080c, 0xb08d, 0x0c30,
+-      0xa786, 0x000a, 0x09e0, 0x08c8, 0x220c, 0x2304, 0xa106, 0x1130,
+-      0x8210, 0x8318, 0x1f04, 0x90d4, 0xa006, 0x0005, 0x2304, 0xa102,
+-      0x0218, 0x2001, 0x0001, 0x0010, 0x2001, 0x0000, 0xa18d, 0x0001,
+-      0x0005, 0x6004, 0xa08a, 0x0080, 0x1a0c, 0x1515, 0x080c, 0x9e41,
+-      0x0120, 0x080c, 0x9e52, 0x0168, 0x0028, 0x080c, 0x2cc2, 0x080c,
+-      0x9e52, 0x0138, 0x080c, 0x7091, 0x080c, 0x8617, 0x080c, 0x7174,
+-      0x0005, 0x080c, 0x8c13, 0x0cb0, 0xa182, 0x0040, 0x0002, 0x911a,
+-      0x911a, 0x911a, 0x911a, 0x911a, 0x911a, 0x911a, 0x911a, 0x911a,
+-      0x911a, 0x911a, 0x911c, 0x911c, 0x911c, 0x911c, 0x911a, 0x911a,
+-      0x911a, 0x911c, 0x080c, 0x1515, 0x600b, 0xffff, 0x6003, 0x0001,
+-      0x6106, 0x080c, 0x6c8e, 0x0126, 0x2091, 0x8000, 0x080c, 0x7174,
+-      0x012e, 0x0005, 0xa186, 0x0013, 0x1128, 0x6004, 0xa082, 0x0040,
+-      0x0804, 0x91b6, 0xa186, 0x0027, 0x11e8, 0x080c, 0x7091, 0x080c,
+-      0x2c9c, 0x00d6, 0x6110, 0x2168, 0x080c, 0x9c54, 0x0168, 0x6837,
+-      0x0103, 0x684b, 0x0029, 0x6847, 0x0000, 0x694c, 0xc1c5, 0x694e,
+-      0x080c, 0x5409, 0x080c, 0x9e0b, 0x00de, 0x080c, 0x8617, 0x080c,
+-      0x7174, 0x0005, 0xa186, 0x0014, 0x1120, 0x6004, 0xa082, 0x0040,
+-      0x0428, 0xa186, 0x0046, 0x0138, 0xa186, 0x0045, 0x0120, 0xa186,
+-      0x0047, 0x190c, 0x1515, 0x2001, 0x0109, 0x2004, 0xd084, 0x0198,
+-      0x0126, 0x2091, 0x2800, 0x0006, 0x0016, 0x0026, 0x080c, 0x6b75,
+-      0x002e, 0x001e, 0x000e, 0x012e, 0xe000, 0x6000, 0xa086, 0x0002,
+-      0x1110, 0x0804, 0x91f4, 0x080c, 0x865d, 0x0005, 0x0002, 0x9194,
+-      0x9192, 0x9192, 0x9192, 0x9192, 0x9192, 0x9192, 0x9192, 0x9192,
+-      0x9192, 0x9192, 0x91af, 0x91af, 0x91af, 0x91af, 0x9192, 0x91af,
+-      0x9192, 0x91af, 0x080c, 0x1515, 0x080c, 0x7091, 0x00d6, 0x6110,
+-      0x2168, 0x080c, 0x9c54, 0x0168, 0x6837, 0x0103, 0x684b, 0x0006,
+-      0x6847, 0x0000, 0x6850, 0xc0ec, 0x6852, 0x080c, 0x5409, 0x080c,
+-      0x9e0b, 0x00de, 0x080c, 0x8617, 0x080c, 0x7174, 0x0005, 0x080c,
+-      0x7091, 0x080c, 0x8617, 0x080c, 0x7174, 0x0005, 0x0002, 0x91cc,
+-      0x91ca, 0x91ca, 0x91ca, 0x91ca, 0x91ca, 0x91ca, 0x91ca, 0x91ca,
+-      0x91ca, 0x91ca, 0x91de, 0x91de, 0x91de, 0x91de, 0x91ca, 0x91ed,
+-      0x91ca, 0x91de, 0x080c, 0x1515, 0x080c, 0x7091, 0x2001, 0xb7b8,
+-      0x2004, 0x603e, 0x6003, 0x0002, 0x080c, 0x7174, 0x6010, 0xa088,
+-      0x0013, 0x2104, 0xa085, 0x0400, 0x200a, 0x0005, 0x080c, 0x7091,
+-      0x2001, 0xb7b6, 0x2004, 0x6016, 0x2001, 0xb7b8, 0x2004, 0x603e,
+-      0x6003, 0x000f, 0x080c, 0x7174, 0x0005, 0x080c, 0x7091, 0x080c,
+-      0x8617, 0x080c, 0x7174, 0x0005, 0xa182, 0x0040, 0x0002, 0x920a,
+-      0x920a, 0x920a, 0x920a, 0x920a, 0x920c, 0x92f1, 0x9320, 0x920a,
+-      0x920a, 0x920a, 0x920a, 0x920a, 0x920a, 0x920a, 0x920a, 0x920a,
+-      0x920a, 0x920a, 0x080c, 0x1515, 0x00e6, 0x00d6, 0x603f, 0x0000,
+-      0x2071, 0xbb80, 0x7124, 0x610a, 0x2071, 0xbb8c, 0x6110, 0x2168,
+-      0x7614, 0xa6b4, 0x0fff, 0x86ff, 0x0904, 0x92ba, 0xa68c, 0x0c00,
+-      0x0518, 0x00f6, 0x2c78, 0x080c, 0x5306, 0x00fe, 0x01c8, 0x684c,
+-      0xd0ac, 0x01b0, 0x6020, 0xd0dc, 0x1198, 0x6850, 0xd0bc, 0x1180,
+-      0x7318, 0x6814, 0xa306, 0x1904, 0x92cd, 0x731c, 0x6810, 0xa31e,
+-      0x0138, 0xd6d4, 0x0904, 0x92cd, 0x6b14, 0xa305, 0x1904, 0x92cd,
+-      0x7318, 0x6b62, 0x731c, 0x6b5e, 0xa68c, 0x00ff, 0xa186, 0x0002,
+-      0x0518, 0xa186, 0x0028, 0x1128, 0x080c, 0x9e30, 0x684b, 0x001c,
+-      0x00e8, 0xd6dc, 0x01a0, 0x684b, 0x0015, 0x684c, 0xd0ac, 0x0170,
+-      0x6914, 0x6a10, 0x2100, 0xa205, 0x0148, 0x7018, 0xa106, 0x1118,
+-      0x701c, 0xa206, 0x0118, 0x6962, 0x6a5e, 0xc6dc, 0x0038, 0xd6d4,
+-      0x0118, 0x684b, 0x0007, 0x0010, 0x684b, 0x0000, 0x6837, 0x0103,
+-      0x6e46, 0xa01e, 0xd6c4, 0x01f0, 0xa686, 0x0100, 0x1140, 0x2001,
+-      0xbb99, 0x2004, 0xa005, 0x1118, 0xc6c4, 0x0804, 0x921b, 0x7328,
+-      0x732c, 0x6b56, 0x83ff, 0x0170, 0xa38a, 0x0009, 0x0210, 0x2019,
+-      0x0008, 0x0036, 0x2308, 0x2019, 0xbb98, 0xad90, 0x0019, 0x080c,
+-      0x9907, 0x003e, 0xd6cc, 0x0904, 0x92e0, 0x7124, 0x695a, 0x81ff,
+-      0x0904, 0x92e0, 0xa192, 0x0021, 0x1260, 0x2071, 0xbb98, 0x831c,
+-      0x2300, 0xae18, 0xad90, 0x001d, 0x080c, 0x9907, 0x080c, 0xa131,
+-      0x04b8, 0x6838, 0xd0fc, 0x0120, 0x2009, 0x0020, 0x695a, 0x0c68,
+-      0x00f6, 0x2d78, 0x080c, 0x98ac, 0x00fe, 0x080c, 0xa131, 0x080c,
+-      0x98f7, 0x0440, 0x00f6, 0x2c78, 0x080c, 0x5306, 0x00fe, 0x0190,
+-      0x684c, 0xd0ac, 0x0178, 0x6020, 0xd0dc, 0x1160, 0x6850, 0xd0bc,
+-      0x1148, 0x6810, 0x6914, 0xa105, 0x0128, 0x080c, 0x9f2f, 0x00de,
+-      0x00ee, 0x00f0, 0x684b, 0x0000, 0x6837, 0x0103, 0x6e46, 0x684c,
+-      0xd0ac, 0x0130, 0x6810, 0x6914, 0xa115, 0x0110, 0x080c, 0x947d,
+-      0x080c, 0x5409, 0x6218, 0x2268, 0x6a3c, 0x82ff, 0x0110, 0x8211,
+-      0x6a3e, 0x080c, 0x9efd, 0x00de, 0x00ee, 0x1110, 0x080c, 0x8617,
+-      0x0005, 0x00f6, 0x6003, 0x0003, 0x2079, 0xbb8c, 0x7c04, 0x7b00,
+-      0x7e0c, 0x7d08, 0x6010, 0x2078, 0x784c, 0xd0ac, 0x0138, 0x6003,
+-      0x0002, 0x00fe, 0x0005, 0x2130, 0x2228, 0x0058, 0x2400, 0x797c,
+-      0xa10a, 0x2300, 0x7a80, 0xa213, 0x2600, 0xa102, 0x2500, 0xa203,
+-      0x0e90, 0x7c12, 0x7b16, 0x7e0a, 0x7d0e, 0x00fe, 0x603f, 0x0000,
+-      0x2c10, 0x080c, 0x1fa9, 0x080c, 0x6cf1, 0x080c, 0x7231, 0x0005,
+-      0x2001, 0xb7b8, 0x2004, 0x603e, 0x6003, 0x0004, 0x6110, 0x20e1,
+-      0x0005, 0x3d18, 0x3e20, 0x2c10, 0x080c, 0x185e, 0x0005, 0xa182,
+-      0x0040, 0x0002, 0x9345, 0x9345, 0x9345, 0x9345, 0x9345, 0x9347,
+-      0x93da, 0x9345, 0x9345, 0x93f0, 0x9454, 0x9345, 0x9345, 0x9345,
+-      0x9345, 0x9463, 0x9345, 0x9345, 0x9345, 0x080c, 0x1515, 0x0076,
+-      0x00f6, 0x00e6, 0x00d6, 0x2071, 0xbb8c, 0x6110, 0x2178, 0x7614,
+-      0xa6b4, 0x0fff, 0x7e46, 0x7f4c, 0xc7e5, 0x7f4e, 0x6218, 0x2268,
+-      0x6a3c, 0x82ff, 0x0110, 0x8211, 0x6a3e, 0x86ff, 0x0904, 0x93d5,
+-      0xa694, 0xff00, 0xa284, 0x0c00, 0x0120, 0x7018, 0x7862, 0x701c,
+-      0x785e, 0xa284, 0x0300, 0x0904, 0x93d5, 0x080c, 0x15f8, 0x090c,
+-      0x1515, 0x2d00, 0x784a, 0x7f4c, 0xc7cd, 0x7f4e, 0x6837, 0x0103,
+-      0x7838, 0x683a, 0x783c, 0x683e, 0x7840, 0x6842, 0x6e46, 0xa68c,
+-      0x0c00, 0x0120, 0x7318, 0x6b62, 0x731c, 0x6b5e, 0xa68c, 0x00ff,
+-      0xa186, 0x0002, 0x0180, 0xa186, 0x0028, 0x1118, 0x684b, 0x001c,
+-      0x0060, 0xd6dc, 0x0118, 0x684b, 0x0015, 0x0038, 0xd6d4, 0x0118,
+-      0x684b, 0x0007, 0x0010, 0x684b, 0x0000, 0x6f4e, 0x7850, 0x6852,
+-      0x7854, 0x6856, 0xa01e, 0xd6c4, 0x0198, 0x7328, 0x732c, 0x6b56,
+-      0x83ff, 0x0170, 0xa38a, 0x0009, 0x0210, 0x2019, 0x0008, 0x0036,
+-      0x2308, 0x2019, 0xbb98, 0xad90, 0x0019, 0x080c, 0x9907, 0x003e,
+-      0xd6cc, 0x01d8, 0x7124, 0x695a, 0x81ff, 0x01b8, 0xa192, 0x0021,
+-      0x1250, 0x2071, 0xbb98, 0x831c, 0x2300, 0xae18, 0xad90, 0x001d,
+-      0x080c, 0x9907, 0x0050, 0x7838, 0xd0fc, 0x0120, 0x2009, 0x0020,
+-      0x695a, 0x0c78, 0x2d78, 0x080c, 0x98ac, 0x00de, 0x00ee, 0x00fe,
+-      0x007e, 0x0005, 0x00f6, 0x6003, 0x0003, 0x2079, 0xbb8c, 0x7c04,
+-      0x7b00, 0x7e0c, 0x7d08, 0x6010, 0x2078, 0x7c12, 0x7b16, 0x7e0a,
+-      0x7d0e, 0x00fe, 0x2c10, 0x080c, 0x1fa9, 0x080c, 0x7d61, 0x0005,
+-      0x00d6, 0x00f6, 0x2c78, 0x080c, 0x5306, 0x00fe, 0x0120, 0x2001,
+-      0xb7b8, 0x2004, 0x603e, 0x6003, 0x0002, 0x080c, 0x7127, 0x080c,
+-      0x7231, 0x6110, 0x2168, 0x694c, 0xd1e4, 0x0904, 0x9452, 0xd1cc,
+-      0x0540, 0x6948, 0x6838, 0xd0fc, 0x01e8, 0x0016, 0x684c, 0x0006,
+-      0x6850, 0x0006, 0xad90, 0x000d, 0xa198, 0x000d, 0x2009, 0x0020,
+-      0x0156, 0x21a8, 0x2304, 0x2012, 0x8318, 0x8210, 0x1f04, 0x941a,
+-      0x015e, 0x000e, 0x6852, 0x000e, 0x684e, 0x001e, 0x2168, 0x080c,
+-      0x161f, 0x0418, 0x0016, 0x080c, 0x161f, 0x00de, 0x080c, 0x98f7,
+-      0x00e0, 0x6837, 0x0103, 0x6944, 0xa184, 0x00ff, 0xa0b6, 0x0002,
+-      0x0180, 0xa086, 0x0028, 0x1118, 0x684b, 0x001c, 0x0060, 0xd1dc,
+-      0x0118, 0x684b, 0x0015, 0x0038, 0xd1d4, 0x0118, 0x684b, 0x0007,
+-      0x0010, 0x684b, 0x0000, 0x080c, 0x5409, 0x080c, 0x9efd, 0x1110,
+-      0x080c, 0x8617, 0x00de, 0x0005, 0x2019, 0x0001, 0x080c, 0x7fe5,
+-      0x6003, 0x0002, 0x2001, 0xb7b8, 0x2004, 0x603e, 0x080c, 0x7127,
+-      0x080c, 0x7231, 0x0005, 0x080c, 0x7127, 0x080c, 0x2c9c, 0x00d6,
+-      0x6110, 0x2168, 0x080c, 0x9c54, 0x0150, 0x6837, 0x0103, 0x684b,
+-      0x0029, 0x6847, 0x0000, 0x080c, 0x5409, 0x080c, 0x9e0b, 0x00de,
+-      0x080c, 0x8617, 0x080c, 0x7231, 0x0005, 0x684b, 0x0015, 0xd1fc,
+-      0x0138, 0x684b, 0x0007, 0x8002, 0x8000, 0x810a, 0xa189, 0x0000,
+-      0x6962, 0x685e, 0x0005, 0xa182, 0x0040, 0x0002, 0x94a1, 0x94a1,
+-      0x94a1, 0x94a1, 0x94a1, 0x94a3, 0x94a1, 0x955e, 0x956a, 0x94a1,
+-      0x94a1, 0x94a1, 0x94a1, 0x94a1, 0x94a1, 0x94a1, 0x94a1, 0x94a1,
+-      0x94a1, 0x080c, 0x1515, 0x0076, 0x00f6, 0x00e6, 0x00d6, 0x2071,
+-      0xbb8c, 0x6110, 0x2178, 0x7614, 0xa6b4, 0x0fff, 0x00f6, 0x2c78,
+-      0x080c, 0x5306, 0x00fe, 0x0150, 0xa684, 0x00ff, 0x1138, 0x6020,
+-      0xd0f4, 0x0120, 0x080c, 0x9f2f, 0x0804, 0x9559, 0x7e46, 0x7f4c,
+-      0xc7e5, 0x7f4e, 0x6218, 0x2268, 0x6a3c, 0x82ff, 0x0110, 0x8211,
+-      0x6a3e, 0x86ff, 0x0904, 0x954f, 0xa694, 0xff00, 0xa284, 0x0c00,
+-      0x0120, 0x7018, 0x7862, 0x701c, 0x785e, 0xa284, 0x0300, 0x0904,
+-      0x954d, 0xa686, 0x0100, 0x1140, 0x2001, 0xbb99, 0x2004, 0xa005,
+-      0x1118, 0xc6c4, 0x7e46, 0x0c28, 0x080c, 0x15f8, 0x090c, 0x1515,
+-      0x2d00, 0x784a, 0x7f4c, 0xa7bd, 0x0200, 0x7f4e, 0x6837, 0x0103,
+-      0x7838, 0x683a, 0x783c, 0x683e, 0x7840, 0x6842, 0x6e46, 0xa68c,
+-      0x0c00, 0x0120, 0x7318, 0x6b62, 0x731c, 0x6b5e, 0xa68c, 0x00ff,
+-      0xa186, 0x0002, 0x0180, 0xa186, 0x0028, 0x1118, 0x684b, 0x001c,
+-      0x0060, 0xd6dc, 0x0118, 0x684b, 0x0015, 0x0038, 0xd6d4, 0x0118,
+-      0x684b, 0x0007, 0x0010, 0x684b, 0x0000, 0x6f4e, 0x7850, 0x6852,
+-      0x7854, 0x6856, 0xa01e, 0xd6c4, 0x0198, 0x7328, 0x732c, 0x6b56,
++      0x705c, 0xa502, 0x1228, 0x754e, 0xa085, 0x0001, 0x00ee, 0x0005,
++      0x704f, 0xbd00, 0x0cc8, 0xa006, 0x0cc8, 0xac82, 0xbd00, 0x0a0c,
++      0x1515, 0x2001, 0xb517, 0x2004, 0xac02, 0x1a0c, 0x1515, 0xa006,
++      0x6006, 0x600a, 0x600e, 0x6012, 0x6016, 0x601a, 0x601f, 0x0000,
++      0x6003, 0x0000, 0x6052, 0x6056, 0x6022, 0x6026, 0x602a, 0x602e,
++      0x6032, 0x6036, 0x603a, 0x603e, 0x2061, 0xb500, 0x6048, 0x8000,
++      0x604a, 0xa086, 0x0001, 0x0108, 0x0005, 0x0126, 0x2091, 0x8000,
++      0x080c, 0x7173, 0x012e, 0x0cc0, 0x601c, 0xa084, 0x000f, 0x0002,
++      0x865b, 0x866a, 0x8685, 0x86a0, 0xa152, 0xa16d, 0xa188, 0x865b,
++      0x866a, 0x865b, 0x86bb, 0xa186, 0x0013, 0x1128, 0x080c, 0x7090,
++      0x080c, 0x7173, 0x0005, 0xa18e, 0x0047, 0x1118, 0xa016, 0x080c,
++      0x185e, 0x0005, 0x0066, 0x6000, 0xa0b2, 0x0010, 0x1a0c, 0x1515,
++      0x0013, 0x006e, 0x0005, 0x8683, 0x8a9b, 0x8c53, 0x8683, 0x8cc8,
++      0x8779, 0x8683, 0x8683, 0x8a2d, 0x90ef, 0x8683, 0x8683, 0x8683,
++      0x8683, 0x8683, 0x8683, 0x080c, 0x1515, 0x0066, 0x6000, 0xa0b2,
++      0x0010, 0x1a0c, 0x1515, 0x0013, 0x006e, 0x0005, 0x869e, 0x9722,
++      0x869e, 0x869e, 0x869e, 0x869e, 0x869e, 0x869e, 0x96cd, 0x988e,
++      0x869e, 0x974f, 0x97c6, 0x974f, 0x97c6, 0x869e, 0x080c, 0x1515,
++      0x0066, 0x6000, 0xa0b2, 0x0010, 0x1a0c, 0x1515, 0x0013, 0x006e,
++      0x0005, 0x86b9, 0x9130, 0x91fa, 0x9335, 0x9491, 0x86b9, 0x86b9,
++      0x86b9, 0x910a, 0x967d, 0x9680, 0x86b9, 0x86b9, 0x86b9, 0x86b9,
++      0x96aa, 0x080c, 0x1515, 0x0066, 0x6000, 0xa0b2, 0x0010, 0x1a0c,
++      0x1515, 0x0013, 0x006e, 0x0005, 0x86d4, 0x86d4, 0x86d4, 0x8702,
++      0x874f, 0x86d4, 0x86d4, 0x86d4, 0x86d6, 0x86d4, 0x86d4, 0x86d4,
++      0x86d4, 0x86d4, 0x86d4, 0x86d4, 0x080c, 0x1515, 0xa186, 0x0003,
++      0x190c, 0x1515, 0x00d6, 0x6003, 0x0003, 0x6106, 0x6010, 0x2068,
++      0x684f, 0x0040, 0x687c, 0x680a, 0x6880, 0x680e, 0x6813, 0x0000,
++      0x6817, 0x0000, 0x6854, 0xa092, 0x199a, 0x0210, 0x2001, 0x1999,
++      0x8003, 0x8013, 0x8213, 0xa210, 0x6216, 0x00de, 0x2c10, 0x080c,
++      0x1fa9, 0x080c, 0x6cf0, 0x0126, 0x2091, 0x8000, 0x080c, 0x7230,
++      0x012e, 0x0005, 0xa182, 0x0047, 0x0002, 0x870e, 0x870e, 0x8710,
++      0x8729, 0x870e, 0x870e, 0x870e, 0x870e, 0x873b, 0x080c, 0x1515,
++      0x00d6, 0x0016, 0x080c, 0x7126, 0x080c, 0x7230, 0x6003, 0x0004,
++      0x6110, 0x2168, 0x684f, 0x0020, 0x685c, 0x685a, 0x6874, 0x687e,
++      0x6878, 0x6882, 0x6897, 0x0000, 0x689b, 0x0000, 0x001e, 0x00de,
++      0x0005, 0x080c, 0x7126, 0x00d6, 0x6110, 0x2168, 0x080c, 0x9c5a,
++      0x0120, 0x684b, 0x0006, 0x080c, 0x5408, 0x00de, 0x080c, 0x861d,
++      0x080c, 0x7230, 0x0005, 0x080c, 0x7126, 0x080c, 0x2c9c, 0x00d6,
++      0x6110, 0x2168, 0x080c, 0x9c5a, 0x0120, 0x684b, 0x0029, 0x080c,
++      0x5408, 0x00de, 0x080c, 0x861d, 0x080c, 0x7230, 0x0005, 0xa182,
++      0x0047, 0x0002, 0x875d, 0x876c, 0x875b, 0x875b, 0x875b, 0x875b,
++      0x875b, 0x875b, 0x875b, 0x080c, 0x1515, 0x00d6, 0x6010, 0x2068,
++      0x684c, 0xc0f4, 0x684e, 0x00de, 0x20e1, 0x0005, 0x3d18, 0x3e20,
++      0x2c10, 0x080c, 0x185e, 0x0005, 0x00d6, 0x6110, 0x2168, 0x684b,
++      0x0000, 0x6853, 0x0000, 0x080c, 0x5408, 0x00de, 0x080c, 0x861d,
++      0x0005, 0xa1b6, 0x0015, 0x1118, 0x080c, 0x861d, 0x0030, 0xa1b6,
++      0x0016, 0x190c, 0x1515, 0x080c, 0x861d, 0x0005, 0x20a9, 0x000e,
++      0x2e98, 0x6010, 0x20a0, 0x53a3, 0x20a9, 0x0006, 0x3310, 0x3420,
++      0x9398, 0x94a0, 0x3318, 0x3428, 0x222e, 0x2326, 0xa290, 0x0002,
++      0xa5a8, 0x0002, 0xa398, 0x0002, 0xa4a0, 0x0002, 0x1f04, 0x8794,
++      0x00e6, 0x080c, 0x9c5a, 0x0130, 0x6010, 0x2070, 0x7007, 0x0000,
++      0x7037, 0x0103, 0x00ee, 0x080c, 0x861d, 0x0005, 0x00d6, 0x0036,
++      0x7330, 0xa386, 0x0200, 0x1130, 0x6018, 0x2068, 0x6813, 0x00ff,
++      0x6817, 0xfffd, 0x6010, 0xa005, 0x0130, 0x2068, 0x6807, 0x0000,
++      0x6837, 0x0103, 0x6b32, 0x080c, 0x861d, 0x003e, 0x00de, 0x0005,
++      0x0016, 0x20a9, 0x002a, 0xae80, 0x000c, 0x2098, 0x6010, 0xa080,
++      0x0002, 0x20a0, 0x53a3, 0x20a9, 0x002a, 0x6010, 0xa080, 0x0001,
++      0x2004, 0xa080, 0x0002, 0x20a0, 0x53a3, 0x00e6, 0x6010, 0x2004,
++      0x2070, 0x7037, 0x0103, 0x00ee, 0x080c, 0x861d, 0x001e, 0x0005,
++      0x0016, 0x2009, 0x0000, 0x7030, 0xa086, 0x0100, 0x0140, 0x7038,
++      0xa084, 0x00ff, 0x800c, 0x703c, 0xa084, 0x00ff, 0x8004, 0xa080,
++      0x0004, 0xa108, 0x21a8, 0xae80, 0x000c, 0x2098, 0x6010, 0xa080,
++      0x0002, 0x20a0, 0x080c, 0x4b8f, 0x00e6, 0x080c, 0x9c5a, 0x0140,
++      0x6010, 0x2070, 0x7007, 0x0000, 0x7034, 0x70b2, 0x7037, 0x0103,
++      0x00ee, 0x080c, 0x861d, 0x001e, 0x0005, 0x00e6, 0x00d6, 0x603f,
++      0x0000, 0x2c68, 0x0016, 0x2009, 0x0035, 0x080c, 0xa10a, 0x001e,
++      0x1168, 0x0026, 0x6228, 0x2268, 0x002e, 0x2071, 0xbb8c, 0x6b1c,
++      0xa386, 0x0003, 0x0130, 0xa386, 0x0006, 0x0128, 0x080c, 0x861d,
++      0x0020, 0x0031, 0x0010, 0x080c, 0x88f6, 0x00de, 0x00ee, 0x0005,
++      0x00f6, 0x6810, 0x2078, 0xa186, 0x0015, 0x0904, 0x88dd, 0xa18e,
++      0x0016, 0x1904, 0x88f4, 0x700c, 0xa08c, 0xff00, 0xa186, 0x1700,
++      0x0120, 0xa186, 0x0300, 0x1904, 0x88bc, 0x8fff, 0x1138, 0x6800,
++      0xa086, 0x000f, 0x0904, 0x88a0, 0x0804, 0x88f2, 0x6808, 0xa086,
++      0xffff, 0x1904, 0x88df, 0x784c, 0xa084, 0x0060, 0xa086, 0x0020,
++      0x1150, 0x797c, 0x7810, 0xa106, 0x1904, 0x88df, 0x7980, 0x7814,
++      0xa106, 0x1904, 0x88df, 0x080c, 0x9e11, 0x6858, 0x7852, 0x784c,
++      0xc0dc, 0xc0f4, 0xc0d4, 0x784e, 0x0026, 0xa00e, 0x6a14, 0x2001,
++      0x000a, 0x080c, 0x6b40, 0x7854, 0xa20a, 0x0208, 0x8011, 0x7a56,
++      0x82ff, 0x002e, 0x1138, 0x00c6, 0x2d60, 0x080c, 0x9a09, 0x00ce,
++      0x0804, 0x88f2, 0x00c6, 0x00d6, 0x2f68, 0x6838, 0xd0fc, 0x1118,
++      0x080c, 0x4c64, 0x0010, 0x080c, 0x4e49, 0x00de, 0x00ce, 0x1904,
++      0x88df, 0x00c6, 0x2d60, 0x080c, 0x861d, 0x00ce, 0x0804, 0x88f2,
++      0x00c6, 0x080c, 0x9ed6, 0x0190, 0x6013, 0x0000, 0x6818, 0x601a,
++      0x080c, 0xa027, 0x601f, 0x0003, 0x6904, 0x00c6, 0x2d60, 0x080c,
++      0x861d, 0x00ce, 0x080c, 0x864c, 0x00ce, 0x04e0, 0x2001, 0xb7b8,
++      0x2004, 0x683e, 0x00ce, 0x04b0, 0x7008, 0xa086, 0x000b, 0x11a0,
++      0x6018, 0x200c, 0xc1bc, 0x2102, 0x00c6, 0x2d60, 0x7853, 0x0003,
++      0x6007, 0x0085, 0x6003, 0x000b, 0x601f, 0x0002, 0x080c, 0x6c8d,
++      0x080c, 0x7173, 0x00ce, 0x00f0, 0x700c, 0xa086, 0x2a00, 0x1138,
++      0x2001, 0xb7b8, 0x2004, 0x683e, 0x00a8, 0x0481, 0x00a8, 0x8fff,
++      0x090c, 0x1515, 0x00c6, 0x00d6, 0x2d60, 0x2f68, 0x6837, 0x0103,
++      0x684b, 0x0003, 0x080c, 0x98fd, 0x080c, 0x9e11, 0x080c, 0x9e1d,
++      0x00de, 0x00ce, 0x080c, 0x861d, 0x00fe, 0x0005, 0xa186, 0x0015,
++      0x1128, 0x2001, 0xb7b8, 0x2004, 0x683e, 0x0068, 0xa18e, 0x0016,
++      0x1160, 0x00c6, 0x2d00, 0x2060, 0x080c, 0xb33a, 0x080c, 0x6aef,
++      0x080c, 0x861d, 0x00ce, 0x080c, 0x861d, 0x0005, 0x0026, 0x0036,
++      0x0046, 0x7228, 0x7c80, 0x7b7c, 0xd2f4, 0x0130, 0x2001, 0xb7b8,
++      0x2004, 0x683e, 0x0804, 0x8970, 0x00c6, 0x2d60, 0x080c, 0x991d,
++      0x00ce, 0x6804, 0xa086, 0x0050, 0x1168, 0x00c6, 0x2d00, 0x2060,
++      0x6003, 0x0001, 0x6007, 0x0050, 0x080c, 0x6c8d, 0x080c, 0x7173,
++      0x00ce, 0x04f0, 0x6800, 0xa086, 0x000f, 0x01c8, 0x8fff, 0x090c,
++      0x1515, 0x6820, 0xd0dc, 0x1198, 0x6800, 0xa086, 0x0004, 0x1198,
++      0x784c, 0xd0ac, 0x0180, 0x784c, 0xc0dc, 0xc0f4, 0x784e, 0x7850,
++      0xc0f4, 0xc0fc, 0x7852, 0x2001, 0x0001, 0x682e, 0x00e0, 0x2001,
++      0x0007, 0x682e, 0x00c0, 0x784c, 0xd0b4, 0x1130, 0xd0ac, 0x0db8,
++      0x784c, 0xd0f4, 0x1da0, 0x0c38, 0xd2ec, 0x1d88, 0x7024, 0xa306,
++      0x1118, 0x7020, 0xa406, 0x0d58, 0x7020, 0x6836, 0x7024, 0x683a,
++      0x2001, 0x0005, 0x682e, 0x080c, 0x9f63, 0x080c, 0x7173, 0x0010,
++      0x080c, 0x861d, 0x004e, 0x003e, 0x002e, 0x0005, 0x00e6, 0x00d6,
++      0x0026, 0x6034, 0x2068, 0x6a1c, 0xa286, 0x0007, 0x0904, 0x89d4,
++      0xa286, 0x0002, 0x0904, 0x89d4, 0xa286, 0x0000, 0x0904, 0x89d4,
++      0x6808, 0x6338, 0xa306, 0x1904, 0x89d4, 0x2071, 0xbb8c, 0xa186,
++      0x0015, 0x05e0, 0xa18e, 0x0016, 0x1190, 0x6030, 0xa084, 0x00ff,
++      0xa086, 0x0001, 0x1160, 0x700c, 0xa086, 0x2a00, 0x1140, 0x6034,
++      0xa080, 0x0008, 0x200c, 0xc1dd, 0xc1f5, 0x2102, 0x0438, 0x00c6,
++      0x6034, 0x2060, 0x6104, 0xa186, 0x004b, 0x01a0, 0xa186, 0x004c,
++      0x0188, 0xa186, 0x004d, 0x0170, 0xa186, 0x004e, 0x0158, 0xa186,
++      0x0052, 0x0140, 0x6010, 0x2068, 0x080c, 0x9c5a, 0x090c, 0x1515,
++      0x6853, 0x0003, 0x6007, 0x0085, 0x6003, 0x000b, 0x601f, 0x0002,
++      0x080c, 0x6c8d, 0x080c, 0x7173, 0x00ce, 0x0030, 0x6034, 0x2070,
++      0x2001, 0xb7b8, 0x2004, 0x703e, 0x080c, 0x861d, 0x002e, 0x00de,
++      0x00ee, 0x0005, 0x00d6, 0x20a9, 0x000e, 0x2e98, 0x6010, 0x20a0,
++      0x53a3, 0xa1b6, 0x0015, 0x1558, 0x6018, 0x2068, 0x0156, 0x0036,
++      0x0026, 0xae90, 0x000c, 0xa290, 0x0004, 0x20a9, 0x0004, 0xad98,
++      0x000a, 0x080c, 0x90da, 0x002e, 0x003e, 0x015e, 0x11d8, 0x0156,
++      0x0036, 0x0026, 0xae90, 0x000c, 0xa290, 0x0008, 0x20a9, 0x0004,
++      0xad98, 0x0006, 0x080c, 0x90da, 0x002e, 0x003e, 0x015e, 0x1150,
++      0x7038, 0x680a, 0x703c, 0x680e, 0x6800, 0xc08d, 0x6802, 0x00de,
++      0x0804, 0x87a0, 0x080c, 0x2c9c, 0x00c6, 0x080c, 0x85c7, 0x2f00,
++      0x601a, 0x6013, 0x0000, 0x601f, 0x0001, 0x6007, 0x0001, 0x6003,
++      0x0001, 0x2001, 0x0007, 0x080c, 0x4efd, 0x080c, 0x4f2a, 0x080c,
++      0x6cd3, 0x080c, 0x7173, 0x00ce, 0x0c10, 0x2100, 0xa1b2, 0x0080,
++      0x1a0c, 0x1515, 0xa1b2, 0x0040, 0x1a04, 0x8a91, 0x0002, 0x8a85,
++      0x8a79, 0x8a85, 0x8a85, 0x8a85, 0x8a85, 0x8a77, 0x8a77, 0x8a77,
++      0x8a77, 0x8a77, 0x8a77, 0x8a77, 0x8a77, 0x8a77, 0x8a77, 0x8a77,
++      0x8a77, 0x8a77, 0x8a77, 0x8a77, 0x8a77, 0x8a77, 0x8a77, 0x8a77,
++      0x8a77, 0x8a77, 0x8a77, 0x8a77, 0x8a77, 0x8a77, 0x8a85, 0x8a77,
++      0x8a85, 0x8a85, 0x8a77, 0x8a77, 0x8a77, 0x8a77, 0x8a77, 0x8a85,
++      0x8a77, 0x8a77, 0x8a77, 0x8a77, 0x8a77, 0x8a77, 0x8a77, 0x8a77,
++      0x8a77, 0x8a85, 0x8a85, 0x8a77, 0x8a77, 0x8a77, 0x8a77, 0x8a77,
++      0x8a77, 0x8a77, 0x8a77, 0x8a77, 0x8a85, 0x8a77, 0x8a77, 0x080c,
++      0x1515, 0x6003, 0x0001, 0x6106, 0x080c, 0x6cd3, 0x0126, 0x2091,
++      0x8000, 0x080c, 0x7173, 0x012e, 0x0005, 0x6003, 0x0001, 0x6106,
++      0x080c, 0x6cd3, 0x0126, 0x2091, 0x8000, 0x080c, 0x7173, 0x012e,
++      0x0005, 0x2600, 0x0002, 0x8a85, 0x8a85, 0x8a99, 0x8a85, 0x8a85,
++      0x8a99, 0x080c, 0x1515, 0x6004, 0xa0b2, 0x0080, 0x1a0c, 0x1515,
++      0xa1b6, 0x0013, 0x0904, 0x8b4b, 0xa1b6, 0x0027, 0x1904, 0x8b11,
++      0x080c, 0x7090, 0x6004, 0x080c, 0x9e47, 0x0190, 0x080c, 0x9e58,
++      0x0904, 0x8b0b, 0xa08e, 0x0021, 0x0904, 0x8b0e, 0xa08e, 0x0022,
++      0x0904, 0x8b0b, 0xa08e, 0x003d, 0x0904, 0x8b0e, 0x0804, 0x8b04,
++      0x080c, 0x2cc2, 0x2001, 0x0007, 0x080c, 0x4efd, 0x6018, 0xa080,
++      0x0028, 0x200c, 0x080c, 0x8c19, 0xa186, 0x007e, 0x1148, 0x2001,
++      0xb535, 0x2014, 0xc285, 0x080c, 0x5acf, 0x1108, 0xc2ad, 0x2202,
++      0x0016, 0x0026, 0x0036, 0x2110, 0x0026, 0x2019, 0x0028, 0x080c,
++      0x8299, 0x002e, 0x080c, 0xb38d, 0x003e, 0x002e, 0x001e, 0x0016,
++      0x0026, 0x0036, 0x2110, 0x2019, 0x0028, 0x080c, 0x6df5, 0x0076,
++      0x2039, 0x0000, 0x080c, 0x6d02, 0x00c6, 0x6018, 0xa065, 0x0110,
++      0x080c, 0x51aa, 0x00ce, 0x2c08, 0x080c, 0xae82, 0x007e, 0x003e,
++      0x002e, 0x001e, 0x080c, 0x4f6c, 0x080c, 0xa01f, 0x080c, 0x861d,
++      0x080c, 0x7173, 0x0005, 0x080c, 0x8c19, 0x0cb0, 0x080c, 0x8c47,
++      0x0c98, 0xa186, 0x0014, 0x1db0, 0x080c, 0x7090, 0x080c, 0x2c9c,
++      0x080c, 0x9e47, 0x1188, 0x080c, 0x2cc2, 0x6018, 0xa080, 0x0028,
++      0x200c, 0x080c, 0x8c19, 0xa186, 0x007e, 0x1128, 0x2001, 0xb535,
++      0x200c, 0xc185, 0x2102, 0x08c0, 0x080c, 0x9e58, 0x1118, 0x080c,
++      0x8c19, 0x0890, 0x6004, 0xa08e, 0x0032, 0x1158, 0x00e6, 0x00f6,
++      0x2071, 0xb582, 0x2079, 0x0000, 0x080c, 0x2fcf, 0x00fe, 0x00ee,
++      0x0818, 0x6004, 0xa08e, 0x0021, 0x0d50, 0xa08e, 0x0022, 0x090c,
++      0x8c19, 0x0804, 0x8b04, 0xa0b2, 0x0040, 0x1a04, 0x8c0e, 0x2008,
++      0x0002, 0x8b93, 0x8b94, 0x8b97, 0x8b9a, 0x8b9d, 0x8ba0, 0x8b91,
++      0x8b91, 0x8b91, 0x8b91, 0x8b91, 0x8b91, 0x8b91, 0x8b91, 0x8b91,
++      0x8b91, 0x8b91, 0x8b91, 0x8b91, 0x8b91, 0x8b91, 0x8b91, 0x8b91,
++      0x8b91, 0x8b91, 0x8b91, 0x8b91, 0x8b91, 0x8b91, 0x8b91, 0x8ba3,
++      0x8bb2, 0x8b91, 0x8bb4, 0x8bb2, 0x8b91, 0x8b91, 0x8b91, 0x8b91,
++      0x8b91, 0x8bb2, 0x8bb2, 0x8b91, 0x8b91, 0x8b91, 0x8b91, 0x8b91,
++      0x8b91, 0x8b91, 0x8b91, 0x8bee, 0x8bb2, 0x8b91, 0x8bae, 0x8b91,
++      0x8b91, 0x8b91, 0x8baf, 0x8b91, 0x8b91, 0x8b91, 0x8bb2, 0x8be5,
++      0x8b91, 0x080c, 0x1515, 0x00f0, 0x2001, 0x000b, 0x0460, 0x2001,
++      0x0003, 0x0448, 0x2001, 0x0005, 0x0430, 0x2001, 0x0001, 0x0418,
++      0x2001, 0x0009, 0x0400, 0x080c, 0x7090, 0x6003, 0x0005, 0x2001,
++      0xb7b8, 0x2004, 0x603e, 0x080c, 0x7173, 0x00a0, 0x0018, 0x0010,
++      0x080c, 0x4efd, 0x0804, 0x8bff, 0x080c, 0x7090, 0x2001, 0xb7b6,
++      0x2004, 0x6016, 0x2001, 0xb7b8, 0x2004, 0x603e, 0x6003, 0x0004,
++      0x080c, 0x7173, 0x0005, 0x080c, 0x4efd, 0x080c, 0x7090, 0x6003,
++      0x0002, 0x2001, 0xb7b8, 0x2004, 0x603e, 0x0036, 0x2019, 0xb55d,
++      0x2304, 0xa084, 0xff00, 0x1120, 0x2001, 0xb7b6, 0x201c, 0x0040,
++      0x8007, 0xa09a, 0x0004, 0x0ec0, 0x8003, 0x801b, 0x831b, 0xa318,
++      0x6316, 0x003e, 0x080c, 0x7173, 0x08e8, 0x080c, 0x7090, 0x080c,
++      0xa01f, 0x080c, 0x861d, 0x080c, 0x7173, 0x08a0, 0x00e6, 0x00f6,
++      0x2071, 0xb582, 0x2079, 0x0000, 0x080c, 0x2fcf, 0x00fe, 0x00ee,
++      0x080c, 0x7090, 0x080c, 0x861d, 0x080c, 0x7173, 0x0818, 0x080c,
++      0x7090, 0x2001, 0xb7b8, 0x2004, 0x603e, 0x6003, 0x0002, 0x2001,
++      0xb7b6, 0x2004, 0x6016, 0x080c, 0x7173, 0x0005, 0x2600, 0x2008,
++      0x0002, 0x8c17, 0x8c17, 0x8c17, 0x8bff, 0x8bff, 0x8c17, 0x080c,
++      0x1515, 0x00e6, 0x0026, 0x0016, 0x080c, 0x9c5a, 0x0508, 0x6010,
++      0x2070, 0x7034, 0xa086, 0x0139, 0x1148, 0x2001, 0x0030, 0x2009,
++      0x0000, 0x2011, 0x4005, 0x080c, 0xa0d6, 0x0090, 0x7038, 0xd0fc,
++      0x0178, 0x7007, 0x0000, 0x0016, 0x6004, 0xa08e, 0x0021, 0x0160,
++      0xa08e, 0x003d, 0x0148, 0x001e, 0x7037, 0x0103, 0x7033, 0x0100,
++      0x001e, 0x002e, 0x00ee, 0x0005, 0x001e, 0x0009, 0x0cc8, 0x00e6,
++      0xacf0, 0x0004, 0x2e74, 0x7000, 0x2070, 0x7037, 0x0103, 0x7023,
++      0x8001, 0x00ee, 0x0005, 0x00d6, 0x6618, 0x2668, 0x6804, 0xa084,
++      0x00ff, 0x00de, 0xa0b2, 0x000c, 0x1a0c, 0x1515, 0x6604, 0xa6b6,
++      0x0043, 0x1120, 0x080c, 0xa092, 0x0804, 0x8cb8, 0x6604, 0xa6b6,
++      0x0033, 0x1120, 0x080c, 0xa042, 0x0804, 0x8cb8, 0x6604, 0xa6b6,
++      0x0028, 0x1120, 0x080c, 0x9e88, 0x0804, 0x8cb8, 0x6604, 0xa6b6,
++      0x0029, 0x1118, 0x080c, 0x9e9f, 0x04d8, 0x6604, 0xa6b6, 0x001f,
++      0x1118, 0x080c, 0x8786, 0x04a0, 0x6604, 0xa6b6, 0x0000, 0x1118,
++      0x080c, 0x89da, 0x0468, 0x6604, 0xa6b6, 0x0022, 0x1118, 0x080c,
++      0x87ae, 0x0430, 0x6604, 0xa6b6, 0x0035, 0x1118, 0x080c, 0x8815,
++      0x00f8, 0x6604, 0xa6b6, 0x0039, 0x1118, 0x080c, 0x8976, 0x00c0,
++      0x6604, 0xa6b6, 0x003d, 0x1118, 0x080c, 0x87c8, 0x0088, 0x6604,
++      0xa6b6, 0x0044, 0x1118, 0x080c, 0x87e8, 0x0050, 0xa1b6, 0x0015,
++      0x1110, 0x0053, 0x0028, 0xa1b6, 0x0016, 0x1118, 0x0804, 0x8e7c,
++      0x0005, 0x080c, 0x8663, 0x0ce0, 0x8cdf, 0x8ce2, 0x8cdf, 0x8d24,
++      0x8cdf, 0x8e09, 0x8e8a, 0x8cdf, 0x8cdf, 0x8e58, 0x8cdf, 0x8e6c,
++      0xa1b6, 0x0048, 0x0140, 0x20e1, 0x0005, 0x3d18, 0x3e20, 0x2c10,
++      0x080c, 0x185e, 0x0005, 0x00e6, 0xacf0, 0x0004, 0x2e74, 0x7000,
++      0x2070, 0x7037, 0x0103, 0x00ee, 0x080c, 0x861d, 0x0005, 0xe000,
++      0xe000, 0x0005, 0x00e6, 0x2071, 0xb500, 0x7084, 0xa086, 0x0074,
++      0x1530, 0x080c, 0xae59, 0x11b0, 0x00d6, 0x6018, 0x2068, 0x7030,
++      0xd08c, 0x0128, 0x6800, 0xd0bc, 0x0110, 0xc0c5, 0x6802, 0x00d9,
++      0x00de, 0x2001, 0x0006, 0x080c, 0x4efd, 0x080c, 0x2cc2, 0x080c,
++      0x861d, 0x0078, 0x2001, 0x000a, 0x080c, 0x4efd, 0x080c, 0x2cc2,
++      0x6003, 0x0001, 0x6007, 0x0001, 0x080c, 0x6cd3, 0x0010, 0x080c,
++      0x8df6, 0x00ee, 0x0005, 0x6800, 0xd084, 0x0168, 0x2001, 0x0000,
++      0x080c, 0x4eeb, 0x2069, 0xb552, 0x6804, 0xd0a4, 0x0120, 0x2001,
++      0x0006, 0x080c, 0x4f2a, 0x0005, 0x00d6, 0x2011, 0xb521, 0x2204,
++      0xa086, 0x0074, 0x1904, 0x8df3, 0x6018, 0x2068, 0x6aa0, 0xa286,
++      0x007e, 0x1120, 0x080c, 0x8fa2, 0x0804, 0x8d92, 0x080c, 0x8f98,
++      0x6018, 0x2068, 0xa080, 0x0028, 0x2014, 0xa286, 0x0080, 0x11c0,
++      0x6813, 0x00ff, 0x6817, 0xfffc, 0x6010, 0xa005, 0x0138, 0x2068,
++      0x6807, 0x0000, 0x6837, 0x0103, 0x6833, 0x0200, 0x2001, 0x0006,
++      0x080c, 0x4efd, 0x080c, 0x2cc2, 0x080c, 0x861d, 0x0804, 0x8df4,
++      0x00e6, 0x2071, 0xb535, 0x2e04, 0xd09c, 0x0188, 0x2071, 0xbb80,
++      0x7108, 0x720c, 0xa18c, 0x00ff, 0x1118, 0xa284, 0xff00, 0x0138,
++      0x6018, 0x2070, 0x70a0, 0xd0bc, 0x1110, 0x7112, 0x7216, 0x00ee,
++      0x6010, 0xa005, 0x0198, 0x2068, 0x6838, 0xd0f4, 0x0178, 0x6834,
++      0xa084, 0x00ff, 0xa086, 0x0039, 0x1958, 0x2001, 0x0000, 0x2009,
++      0x0000, 0x2011, 0x4000, 0x080c, 0xa0d6, 0x0840, 0x2001, 0x0004,
++      0x080c, 0x4efd, 0x6003, 0x0001, 0x6007, 0x0003, 0x080c, 0x6cd3,
++      0x0804, 0x8df4, 0x685c, 0xd0e4, 0x01d8, 0x080c, 0x9fd2, 0x080c,
++      0x5acf, 0x0118, 0xd0dc, 0x1904, 0x8d4e, 0x2011, 0xb535, 0x2204,
++      0xc0ad, 0x2012, 0x2001, 0xb78f, 0x2004, 0x00f6, 0x2079, 0x0100,
++      0x78e3, 0x0000, 0x080c, 0x2872, 0x78e2, 0x00fe, 0x0804, 0x8d4e,
++      0x080c, 0xa008, 0x2011, 0xb535, 0x2204, 0xc0a5, 0x2012, 0x0006,
++      0x080c, 0xaf7b, 0x000e, 0x1904, 0x8d4e, 0xc0b5, 0x2012, 0x2001,
++      0x0006, 0x080c, 0x4efd, 0x2001, 0x0000, 0x080c, 0x4eeb, 0x00c6,
++      0x2009, 0x00ef, 0x00f6, 0x2079, 0x0100, 0x79ea, 0x7932, 0x7936,
++      0x00fe, 0x080c, 0x2847, 0x00f6, 0x2079, 0xb500, 0x7976, 0x2100,
++      0x2009, 0x0000, 0x080c, 0x281d, 0x7952, 0x00fe, 0x8108, 0x080c,
++      0x4f4d, 0x2c00, 0x00ce, 0x1904, 0x8d4e, 0x601a, 0x2001, 0x0002,
++      0x080c, 0x4efd, 0x601f, 0x0001, 0x6003, 0x0001, 0x6007, 0x0002,
++      0x080c, 0x6cd3, 0x0008, 0x0011, 0x00de, 0x0005, 0x2001, 0x0007,
++      0x080c, 0x4efd, 0x2001, 0xb500, 0x2004, 0xa086, 0x0003, 0x1120,
++      0x2001, 0x0007, 0x080c, 0x4f2a, 0x080c, 0x2cc2, 0x080c, 0x861d,
++      0x0005, 0x00e6, 0x0026, 0x0016, 0x2071, 0xb500, 0x7084, 0xa086,
++      0x0014, 0x15f0, 0x7000, 0xa086, 0x0003, 0x1128, 0x6010, 0xa005,
++      0x1110, 0x080c, 0x3f3e, 0x00d6, 0x6018, 0x2068, 0x080c, 0x504b,
++      0x080c, 0x8d13, 0x00de, 0x080c, 0x9051, 0x1550, 0x00d6, 0x6018,
++      0x2068, 0x6890, 0x00de, 0xa005, 0x0518, 0x2001, 0x0006, 0x080c,
++      0x4efd, 0x00e6, 0x6010, 0xa075, 0x01a8, 0x7034, 0xa084, 0x00ff,
++      0xa086, 0x0039, 0x1148, 0x2001, 0x0000, 0x2009, 0x0000, 0x2011,
++      0x4000, 0x080c, 0xa0d6, 0x0030, 0x7007, 0x0000, 0x7037, 0x0103,
++      0x7033, 0x0200, 0x00ee, 0x080c, 0x2cc2, 0x080c, 0x861d, 0x0020,
++      0x080c, 0x8c19, 0x080c, 0x8df6, 0x001e, 0x002e, 0x00ee, 0x0005,
++      0x2011, 0xb521, 0x2204, 0xa086, 0x0014, 0x1158, 0x2001, 0x0002,
++      0x080c, 0x4efd, 0x6003, 0x0001, 0x6007, 0x0001, 0x080c, 0x6cd3,
++      0x0010, 0x080c, 0x8df6, 0x0005, 0x2011, 0xb521, 0x2204, 0xa086,
++      0x0004, 0x1138, 0x2001, 0x0007, 0x080c, 0x4efd, 0x080c, 0x861d,
++      0x0010, 0x080c, 0x8df6, 0x0005, 0x000b, 0x0005, 0x8cdf, 0x8e95,
++      0x8cdf, 0x8ec9, 0x8cdf, 0x8f54, 0x8e8a, 0x8cdf, 0x8cdf, 0x8f67,
++      0x8cdf, 0x8f77, 0x6604, 0xa686, 0x0003, 0x0904, 0x8e09, 0xa6b6,
++      0x001e, 0x1110, 0x080c, 0x861d, 0x0005, 0x00d6, 0x00c6, 0x080c,
++      0x8f87, 0x1178, 0x2001, 0x0000, 0x080c, 0x4eeb, 0x2001, 0x0002,
++      0x080c, 0x4efd, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x6cd3,
++      0x00e8, 0x2009, 0xbb8e, 0x2104, 0xa086, 0x0009, 0x1160, 0x6018,
++      0x2068, 0x6840, 0xa084, 0x00ff, 0xa005, 0x0170, 0x8001, 0x6842,
++      0x6017, 0x000a, 0x0058, 0x2009, 0xbb8f, 0x2104, 0xa084, 0xff00,
++      0xa086, 0x1900, 0x1108, 0x08d0, 0x080c, 0x8df6, 0x00ce, 0x00de,
++      0x0005, 0x0026, 0x2011, 0x0000, 0x080c, 0x8f95, 0x00d6, 0x2069,
++      0xb79e, 0x2d04, 0xa005, 0x0168, 0x6018, 0x2068, 0x68a0, 0xa086,
++      0x007e, 0x1138, 0x2069, 0xb51d, 0x2d04, 0x8000, 0x206a, 0x00de,
++      0x0010, 0x00de, 0x0078, 0x2001, 0x0000, 0x080c, 0x4eeb, 0x2001,
++      0x0002, 0x080c, 0x4efd, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c,
++      0x6cd3, 0x0480, 0x00d6, 0x6010, 0x2068, 0x080c, 0x9c5a, 0x00de,
++      0x0108, 0x6a34, 0x080c, 0x8c19, 0x2009, 0xbb8e, 0x2134, 0xa6b4,
++      0x00ff, 0xa686, 0x0005, 0x0500, 0xa686, 0x000b, 0x01c8, 0x2009,
++      0xbb8f, 0x2104, 0xa084, 0xff00, 0x1118, 0xa686, 0x0009, 0x01a0,
++      0xa086, 0x1900, 0x1168, 0xa686, 0x0009, 0x0170, 0x2001, 0x0004,
++      0x080c, 0x4efd, 0x2001, 0x0028, 0x6016, 0x6007, 0x004b, 0x0010,
++      0x080c, 0x8df6, 0x002e, 0x0005, 0x00d6, 0xa286, 0x0139, 0x0160,
++      0x6010, 0x2068, 0x080c, 0x9c5a, 0x0148, 0x6834, 0xa086, 0x0139,
++      0x0118, 0x6838, 0xd0fc, 0x0110, 0x00de, 0x0c50, 0x6018, 0x2068,
++      0x6840, 0xa084, 0x00ff, 0xa005, 0x0140, 0x8001, 0x6842, 0x6017,
++      0x000a, 0x6007, 0x0016, 0x00de, 0x08e8, 0x68a0, 0xa086, 0x007e,
++      0x1138, 0x00e6, 0x2071, 0xb500, 0x080c, 0x4bc6, 0x00ee, 0x0010,
++      0x080c, 0x2c9c, 0x00de, 0x0860, 0x080c, 0x8f95, 0x1158, 0x2001,
++      0x0004, 0x080c, 0x4efd, 0x6003, 0x0001, 0x6007, 0x0003, 0x080c,
++      0x6cd3, 0x0020, 0x080c, 0x8c19, 0x080c, 0x8df6, 0x0005, 0x0469,
++      0x1158, 0x2001, 0x0008, 0x080c, 0x4efd, 0x6003, 0x0001, 0x6007,
++      0x0005, 0x080c, 0x6cd3, 0x0010, 0x080c, 0x8df6, 0x0005, 0x00e9,
++      0x1158, 0x2001, 0x000a, 0x080c, 0x4efd, 0x6003, 0x0001, 0x6007,
++      0x0001, 0x080c, 0x6cd3, 0x0010, 0x080c, 0x8df6, 0x0005, 0x2009,
++      0xbb8e, 0x2104, 0xa086, 0x0003, 0x1138, 0x2009, 0xbb8f, 0x2104,
++      0xa084, 0xff00, 0xa086, 0x2a00, 0x0005, 0xa085, 0x0001, 0x0005,
++      0x00c6, 0x0016, 0xac88, 0x0006, 0x2164, 0x080c, 0x4fb8, 0x001e,
++      0x00ce, 0x0005, 0x00f6, 0x00e6, 0x00d6, 0x0036, 0x0016, 0x6018,
++      0x2068, 0x2071, 0xb535, 0x2e04, 0xa085, 0x0003, 0x2072, 0x080c,
++      0x9026, 0x0560, 0x2009, 0xb535, 0x2104, 0xc0cd, 0x200a, 0x2001,
++      0xb553, 0x2004, 0xd0a4, 0x0158, 0xa006, 0x2020, 0x2009, 0x002a,
++      0x080c, 0xb0e8, 0x2001, 0xb50c, 0x200c, 0xc195, 0x2102, 0x2019,
++      0x002a, 0x2009, 0x0001, 0x080c, 0x2c6f, 0x2071, 0xb500, 0x080c,
++      0x2ab8, 0x00c6, 0x0156, 0x20a9, 0x0081, 0x2009, 0x007f, 0x080c,
++      0x2d97, 0x8108, 0x1f04, 0x8fd7, 0x015e, 0x00ce, 0x080c, 0x8f98,
++      0x6813, 0x00ff, 0x6817, 0xfffe, 0x2071, 0xbb80, 0x2079, 0x0100,
++      0x2e04, 0xa084, 0x00ff, 0x2069, 0xb51c, 0x206a, 0x78e6, 0x0006,
++      0x8e70, 0x2e04, 0x2069, 0xb51d, 0x206a, 0x78ea, 0x7832, 0x7836,
++      0x2010, 0xa084, 0xff00, 0x001e, 0xa105, 0x2009, 0xb528, 0x200a,
++      0x2200, 0xa084, 0x00ff, 0x2008, 0x080c, 0x2847, 0x080c, 0x5acf,
++      0x0170, 0x2069, 0xbb8e, 0x2071, 0xb7b2, 0x6810, 0x2072, 0x6814,
++      0x7006, 0x6818, 0x700a, 0x681c, 0x700e, 0x080c, 0x9fd2, 0x0040,
++      0x2001, 0x0006, 0x080c, 0x4efd, 0x080c, 0x2cc2, 0x080c, 0x861d,
++      0x001e, 0x003e, 0x00de, 0x00ee, 0x00fe, 0x0005, 0x0026, 0x0036,
++      0x00e6, 0x0156, 0x2019, 0xb528, 0x231c, 0x83ff, 0x01e8, 0x2071,
++      0xbb80, 0x2e14, 0xa294, 0x00ff, 0x7004, 0xa084, 0xff00, 0xa205,
++      0xa306, 0x1190, 0x2011, 0xbb96, 0xad98, 0x000a, 0x20a9, 0x0004,
++      0x080c, 0x90da, 0x1148, 0x2011, 0xbb9a, 0xad98, 0x0006, 0x20a9,
++      0x0004, 0x080c, 0x90da, 0x1100, 0x015e, 0x00ee, 0x003e, 0x002e,
++      0x0005, 0x00e6, 0x2071, 0xbb8c, 0x7004, 0xa086, 0x0014, 0x11a8,
++      0x7008, 0xa086, 0x0800, 0x1188, 0x700c, 0xd0ec, 0x0160, 0xa084,
++      0x0f00, 0xa086, 0x0100, 0x1138, 0x7024, 0xd0a4, 0x1110, 0xd0ac,
++      0x0110, 0xa006, 0x0010, 0xa085, 0x0001, 0x00ee, 0x0005, 0x00e6,
++      0x00d6, 0x00c6, 0x0076, 0x0056, 0x0046, 0x0026, 0x0006, 0x0126,
++      0x2091, 0x8000, 0x2029, 0xb7e9, 0x252c, 0x2021, 0xb7ef, 0x2424,
++      0x2061, 0xbd00, 0x2071, 0xb500, 0x7248, 0x7068, 0xa202, 0x16f0,
++      0x080c, 0xb110, 0x05a0, 0x671c, 0xa786, 0x0001, 0x0580, 0xa786,
++      0x0007, 0x0568, 0x2500, 0xac06, 0x0550, 0x2400, 0xac06, 0x0538,
++      0x00c6, 0x6000, 0xa086, 0x0004, 0x1110, 0x080c, 0x194d, 0xa786,
++      0x0008, 0x1148, 0x080c, 0x9e58, 0x1130, 0x00ce, 0x080c, 0x8c19,
++      0x080c, 0x9e1d, 0x00a0, 0x6010, 0x2068, 0x080c, 0x9c5a, 0x0160,
++      0xa786, 0x0003, 0x11e8, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000,
++      0x080c, 0x5408, 0x080c, 0x9e11, 0x080c, 0x9e1d, 0x00ce, 0xace0,
++      0x0018, 0x705c, 0xac02, 0x1210, 0x0804, 0x9084, 0x012e, 0x000e,
++      0x002e, 0x004e, 0x005e, 0x007e, 0x00ce, 0x00de, 0x00ee, 0x0005,
++      0xa786, 0x0006, 0x1118, 0x080c, 0xb099, 0x0c30, 0xa786, 0x000a,
++      0x09e0, 0x08c8, 0x220c, 0x2304, 0xa106, 0x1130, 0x8210, 0x8318,
++      0x1f04, 0x90da, 0xa006, 0x0005, 0x2304, 0xa102, 0x0218, 0x2001,
++      0x0001, 0x0010, 0x2001, 0x0000, 0xa18d, 0x0001, 0x0005, 0x6004,
++      0xa08a, 0x0080, 0x1a0c, 0x1515, 0x080c, 0x9e47, 0x0120, 0x080c,
++      0x9e58, 0x0168, 0x0028, 0x080c, 0x2cc2, 0x080c, 0x9e58, 0x0138,
++      0x080c, 0x7090, 0x080c, 0x861d, 0x080c, 0x7173, 0x0005, 0x080c,
++      0x8c19, 0x0cb0, 0xa182, 0x0040, 0x0002, 0x9120, 0x9120, 0x9120,
++      0x9120, 0x9120, 0x9120, 0x9120, 0x9120, 0x9120, 0x9120, 0x9120,
++      0x9122, 0x9122, 0x9122, 0x9122, 0x9120, 0x9120, 0x9120, 0x9122,
++      0x080c, 0x1515, 0x600b, 0xffff, 0x6003, 0x0001, 0x6106, 0x080c,
++      0x6c8d, 0x0126, 0x2091, 0x8000, 0x080c, 0x7173, 0x012e, 0x0005,
++      0xa186, 0x0013, 0x1128, 0x6004, 0xa082, 0x0040, 0x0804, 0x91bc,
++      0xa186, 0x0027, 0x11e8, 0x080c, 0x7090, 0x080c, 0x2c9c, 0x00d6,
++      0x6110, 0x2168, 0x080c, 0x9c5a, 0x0168, 0x6837, 0x0103, 0x684b,
++      0x0029, 0x6847, 0x0000, 0x694c, 0xc1c5, 0x694e, 0x080c, 0x5408,
++      0x080c, 0x9e11, 0x00de, 0x080c, 0x861d, 0x080c, 0x7173, 0x0005,
++      0xa186, 0x0014, 0x1120, 0x6004, 0xa082, 0x0040, 0x0428, 0xa186,
++      0x0046, 0x0138, 0xa186, 0x0045, 0x0120, 0xa186, 0x0047, 0x190c,
++      0x1515, 0x2001, 0x0109, 0x2004, 0xd084, 0x0198, 0x0126, 0x2091,
++      0x2800, 0x0006, 0x0016, 0x0026, 0x080c, 0x6b74, 0x002e, 0x001e,
++      0x000e, 0x012e, 0xe000, 0x6000, 0xa086, 0x0002, 0x1110, 0x0804,
++      0x91fa, 0x080c, 0x8663, 0x0005, 0x0002, 0x919a, 0x9198, 0x9198,
++      0x9198, 0x9198, 0x9198, 0x9198, 0x9198, 0x9198, 0x9198, 0x9198,
++      0x91b5, 0x91b5, 0x91b5, 0x91b5, 0x9198, 0x91b5, 0x9198, 0x91b5,
++      0x080c, 0x1515, 0x080c, 0x7090, 0x00d6, 0x6110, 0x2168, 0x080c,
++      0x9c5a, 0x0168, 0x6837, 0x0103, 0x684b, 0x0006, 0x6847, 0x0000,
++      0x6850, 0xc0ec, 0x6852, 0x080c, 0x5408, 0x080c, 0x9e11, 0x00de,
++      0x080c, 0x861d, 0x080c, 0x7173, 0x0005, 0x080c, 0x7090, 0x080c,
++      0x861d, 0x080c, 0x7173, 0x0005, 0x0002, 0x91d2, 0x91d0, 0x91d0,
++      0x91d0, 0x91d0, 0x91d0, 0x91d0, 0x91d0, 0x91d0, 0x91d0, 0x91d0,
++      0x91e4, 0x91e4, 0x91e4, 0x91e4, 0x91d0, 0x91f3, 0x91d0, 0x91e4,
++      0x080c, 0x1515, 0x080c, 0x7090, 0x2001, 0xb7b8, 0x2004, 0x603e,
++      0x6003, 0x0002, 0x080c, 0x7173, 0x6010, 0xa088, 0x0013, 0x2104,
++      0xa085, 0x0400, 0x200a, 0x0005, 0x080c, 0x7090, 0x2001, 0xb7b6,
++      0x2004, 0x6016, 0x2001, 0xb7b8, 0x2004, 0x603e, 0x6003, 0x000f,
++      0x080c, 0x7173, 0x0005, 0x080c, 0x7090, 0x080c, 0x861d, 0x080c,
++      0x7173, 0x0005, 0xa182, 0x0040, 0x0002, 0x9210, 0x9210, 0x9210,
++      0x9210, 0x9210, 0x9212, 0x92f7, 0x9326, 0x9210, 0x9210, 0x9210,
++      0x9210, 0x9210, 0x9210, 0x9210, 0x9210, 0x9210, 0x9210, 0x9210,
++      0x080c, 0x1515, 0x00e6, 0x00d6, 0x603f, 0x0000, 0x2071, 0xbb80,
++      0x7124, 0x610a, 0x2071, 0xbb8c, 0x6110, 0x2168, 0x7614, 0xa6b4,
++      0x0fff, 0x86ff, 0x0904, 0x92c0, 0xa68c, 0x0c00, 0x0518, 0x00f6,
++      0x2c78, 0x080c, 0x5305, 0x00fe, 0x01c8, 0x684c, 0xd0ac, 0x01b0,
++      0x6020, 0xd0dc, 0x1198, 0x6850, 0xd0bc, 0x1180, 0x7318, 0x6814,
++      0xa306, 0x1904, 0x92d3, 0x731c, 0x6810, 0xa31e, 0x0138, 0xd6d4,
++      0x0904, 0x92d3, 0x6b14, 0xa305, 0x1904, 0x92d3, 0x7318, 0x6b62,
++      0x731c, 0x6b5e, 0xa68c, 0x00ff, 0xa186, 0x0002, 0x0518, 0xa186,
++      0x0028, 0x1128, 0x080c, 0x9e36, 0x684b, 0x001c, 0x00e8, 0xd6dc,
++      0x01a0, 0x684b, 0x0015, 0x684c, 0xd0ac, 0x0170, 0x6914, 0x6a10,
++      0x2100, 0xa205, 0x0148, 0x7018, 0xa106, 0x1118, 0x701c, 0xa206,
++      0x0118, 0x6962, 0x6a5e, 0xc6dc, 0x0038, 0xd6d4, 0x0118, 0x684b,
++      0x0007, 0x0010, 0x684b, 0x0000, 0x6837, 0x0103, 0x6e46, 0xa01e,
++      0xd6c4, 0x01f0, 0xa686, 0x0100, 0x1140, 0x2001, 0xbb99, 0x2004,
++      0xa005, 0x1118, 0xc6c4, 0x0804, 0x9221, 0x7328, 0x732c, 0x6b56,
+       0x83ff, 0x0170, 0xa38a, 0x0009, 0x0210, 0x2019, 0x0008, 0x0036,
+-      0x2308, 0x2019, 0xbb98, 0xad90, 0x0019, 0x080c, 0x9907, 0x003e,
+-      0xd6cc, 0x01d8, 0x7124, 0x695a, 0x81ff, 0x01b8, 0xa192, 0x0021,
+-      0x1250, 0x2071, 0xbb98, 0x831c, 0x2300, 0xae18, 0xad90, 0x001d,
+-      0x080c, 0x9907, 0x0050, 0x7838, 0xd0fc, 0x0120, 0x2009, 0x0020,
+-      0x695a, 0x0c78, 0x2d78, 0x080c, 0x98ac, 0xd6dc, 0x1110, 0xa006,
+-      0x0030, 0x2001, 0x0001, 0x2071, 0xbb8c, 0x7218, 0x731c, 0x080c,
+-      0x18b1, 0x00de, 0x00ee, 0x00fe, 0x007e, 0x0005, 0x2001, 0xb7b8,
+-      0x2004, 0x603e, 0x20e1, 0x0005, 0x3d18, 0x3e20, 0x2c10, 0x080c,
+-      0x185e, 0x0005, 0x2001, 0xb7b8, 0x2004, 0x603e, 0x00d6, 0x6003,
+-      0x0002, 0x6110, 0x2168, 0x694c, 0xd1e4, 0x0904, 0x9675, 0x603f,
+-      0x0000, 0x00f6, 0x2c78, 0x080c, 0x5306, 0x00fe, 0x0560, 0x6814,
+-      0x6910, 0xa115, 0x0540, 0x6a60, 0xa206, 0x1118, 0x685c, 0xa106,
+-      0x0510, 0x684c, 0xc0e4, 0x684e, 0x6847, 0x0000, 0x6863, 0x0000,
+-      0x685f, 0x0000, 0x6020, 0xd0f4, 0x1158, 0x697c, 0x6810, 0xa102,
+-      0x603a, 0x6980, 0x6814, 0xa103, 0x6036, 0x6020, 0xc0f5, 0x6022,
+-      0x00d6, 0x6018, 0x2068, 0x683c, 0x8000, 0x683e, 0x00de, 0x080c,
+-      0x9f2f, 0x0804, 0x9675, 0x694c, 0xd1cc, 0x0904, 0x9645, 0x6948,
+-      0x6838, 0xd0fc, 0x0904, 0x9608, 0x0016, 0x684c, 0x0006, 0x6850,
+-      0x0006, 0x00f6, 0x2178, 0x7944, 0xa184, 0x00ff, 0xa0b6, 0x0002,
+-      0x01e0, 0xa086, 0x0028, 0x1128, 0x684b, 0x001c, 0x784b, 0x001c,
+-      0x00e8, 0xd1dc, 0x0158, 0x684b, 0x0015, 0x784b, 0x0015, 0x080c,
+-      0xa0b9, 0x0118, 0x7944, 0xc1dc, 0x7946, 0x0080, 0xd1d4, 0x0128,
+-      0x684b, 0x0007, 0x784b, 0x0007, 0x0048, 0x684c, 0xd0ac, 0x0130,
+-      0x6810, 0x6914, 0xa115, 0x0110, 0x080c, 0x947d, 0x6848, 0x784a,
+-      0x6860, 0x7862, 0x685c, 0x785e, 0xad90, 0x000d, 0xaf98, 0x000d,
+-      0x2009, 0x0020, 0x0156, 0x21a8, 0x2304, 0x2012, 0x8318, 0x8210,
+-      0x1f04, 0x95f4, 0x015e, 0x00fe, 0x000e, 0x6852, 0x000e, 0x684e,
+-      0x080c, 0xa131, 0x001e, 0x2168, 0x080c, 0x161f, 0x0804, 0x9670,
+-      0x0016, 0x00f6, 0x2178, 0x7944, 0xa184, 0x00ff, 0xa0b6, 0x0002,
+-      0x01e0, 0xa086, 0x0028, 0x1128, 0x684b, 0x001c, 0x784b, 0x001c,
+-      0x00e8, 0xd1dc, 0x0158, 0x684b, 0x0015, 0x784b, 0x0015, 0x080c,
+-      0xa0b9, 0x0118, 0x7944, 0xc1dc, 0x7946, 0x0080, 0xd1d4, 0x0128,
+-      0x684b, 0x0007, 0x784b, 0x0007, 0x0048, 0x684c, 0xd0ac, 0x0130,
+-      0x6810, 0x6914, 0xa115, 0x0110, 0x080c, 0x947d, 0x6860, 0x7862,
+-      0x685c, 0x785e, 0x684c, 0x784e, 0x00fe, 0x080c, 0x161f, 0x00de,
+-      0x080c, 0xa131, 0x080c, 0x98f7, 0x0458, 0x6837, 0x0103, 0x6944,
+-      0xa184, 0x00ff, 0xa0b6, 0x0002, 0x01b0, 0xa086, 0x0028, 0x1118,
+-      0x684b, 0x001c, 0x00d8, 0xd1dc, 0x0148, 0x684b, 0x0015, 0x080c,
+-      0xa0b9, 0x0118, 0x6944, 0xc1dc, 0x6946, 0x0080, 0xd1d4, 0x0118,
+-      0x684b, 0x0007, 0x0058, 0x684b, 0x0000, 0x684c, 0xd0ac, 0x0130,
+-      0x6810, 0x6914, 0xa115, 0x0110, 0x080c, 0x947d, 0x080c, 0x5409,
+-      0x080c, 0x9efd, 0x1110, 0x080c, 0x8617, 0x00de, 0x0005, 0x080c,
+-      0x7091, 0x0010, 0x080c, 0x7127, 0x080c, 0x9c54, 0x01c0, 0x00d6,
+-      0x6110, 0x2168, 0x6837, 0x0103, 0x2009, 0xb50c, 0x210c, 0xd18c,
+-      0x11c0, 0xd184, 0x1198, 0x6108, 0x694a, 0xa18e, 0x0029, 0x1110,
+-      0x080c, 0xb374, 0x6847, 0x0000, 0x080c, 0x5409, 0x00de, 0x080c,
+-      0x8617, 0x080c, 0x7174, 0x080c, 0x7231, 0x0005, 0x684b, 0x0004,
+-      0x0c88, 0x684b, 0x0004, 0x0c70, 0xa182, 0x0040, 0x0002, 0x96ba,
+-      0x96ba, 0x96ba, 0x96ba, 0x96ba, 0x96bc, 0x96ba, 0x96bf, 0x96ba,
+-      0x96ba, 0x96ba, 0x96ba, 0x96ba, 0x96ba, 0x96ba, 0x96ba, 0x96ba,
+-      0x96ba, 0x96ba, 0x080c, 0x1515, 0x080c, 0x8617, 0x0005, 0x0006,
+-      0x0026, 0xa016, 0x080c, 0x185e, 0x002e, 0x000e, 0x0005, 0xa182,
+-      0x0085, 0x0002, 0x96d3, 0x96d1, 0x96d1, 0x96df, 0x96d1, 0x96d1,
+-      0x96d1, 0x080c, 0x1515, 0x6003, 0x0001, 0x6106, 0x080c, 0x6c8e,
+-      0x0126, 0x2091, 0x8000, 0x080c, 0x7174, 0x012e, 0x0005, 0x0026,
+-      0x0056, 0x00d6, 0x00e6, 0x2071, 0xbb80, 0x7224, 0x6212, 0x7220,
+-      0x080c, 0x9c44, 0x01a0, 0x2268, 0x6800, 0xa086, 0x0000, 0x0178,
+-      0x6018, 0x6d18, 0xa52e, 0x1158, 0x00c6, 0x2d60, 0x080c, 0x9917,
+-      0x00ce, 0x0128, 0x6803, 0x0002, 0x6007, 0x0086, 0x0010, 0x6007,
+-      0x0087, 0x6003, 0x0001, 0x080c, 0x6c8e, 0x080c, 0x7174, 0x00f6,
+-      0x2278, 0x080c, 0x5306, 0x00fe, 0x0150, 0x6820, 0xd0ec, 0x0138,
+-      0x00c6, 0x2260, 0x603f, 0x0000, 0x080c, 0x9f2f, 0x00ce, 0x00ee,
+-      0x00de, 0x005e, 0x002e, 0x0005, 0xa186, 0x0013, 0x1160, 0x6004,
+-      0xa08a, 0x0085, 0x0a0c, 0x1515, 0xa08a, 0x008c, 0x1a0c, 0x1515,
+-      0xa082, 0x0085, 0x0072, 0xa186, 0x0027, 0x0120, 0xa186, 0x0014,
+-      0x190c, 0x1515, 0x080c, 0x7091, 0x080c, 0x9e17, 0x080c, 0x7174,
+-      0x0005, 0x9740, 0x9742, 0x9742, 0x9740, 0x9740, 0x9740, 0x9740,
+-      0x080c, 0x1515, 0x080c, 0x7091, 0x080c, 0x9e17, 0x080c, 0x7174,
+-      0x0005, 0xa186, 0x0013, 0x1128, 0x6004, 0xa082, 0x0085, 0x2008,
+-      0x04a8, 0xa186, 0x0027, 0x11e8, 0x080c, 0x7091, 0x080c, 0x2c9c,
+-      0x00d6, 0x6010, 0x2068, 0x080c, 0x9c54, 0x0150, 0x6837, 0x0103,
+-      0x6847, 0x0000, 0x684b, 0x0029, 0x080c, 0x5409, 0x080c, 0x9e0b,
+-      0x00de, 0x080c, 0x8617, 0x080c, 0x7174, 0x0005, 0x080c, 0x865d,
+-      0x0ce0, 0xa186, 0x0014, 0x1dd0, 0x080c, 0x7091, 0x00d6, 0x6010,
+-      0x2068, 0x080c, 0x9c54, 0x0d60, 0x6837, 0x0103, 0x6847, 0x0000,
+-      0x684b, 0x0006, 0x6850, 0xc0ec, 0x6852, 0x08f0, 0x0002, 0x9790,
+-      0x978e, 0x978e, 0x978e, 0x978e, 0x978e, 0x97a8, 0x080c, 0x1515,
+-      0x080c, 0x7091, 0x6030, 0xa08c, 0xff00, 0x810f, 0xa186, 0x0039,
+-      0x0118, 0xa186, 0x0035, 0x1118, 0x2001, 0xb7b6, 0x0010, 0x2001,
+-      0xb7b7, 0x2004, 0x6016, 0x6003, 0x000c, 0x080c, 0x7174, 0x0005,
+-      0x080c, 0x7091, 0x6030, 0xa08c, 0xff00, 0x810f, 0xa186, 0x0039,
+-      0x0118, 0xa186, 0x0035, 0x1118, 0x2001, 0xb7b6, 0x0010, 0x2001,
+-      0xb7b7, 0x2004, 0x6016, 0x6003, 0x000e, 0x080c, 0x7174, 0x0005,
+-      0xa182, 0x008c, 0x1220, 0xa182, 0x0085, 0x0208, 0x001a, 0x080c,
+-      0x865d, 0x0005, 0x97d1, 0x97d1, 0x97d1, 0x97d1, 0x97d3, 0x982c,
+-      0x97d1, 0x080c, 0x1515, 0x00d6, 0x00f6, 0x2c78, 0x080c, 0x5306,
+-      0x00fe, 0x0168, 0x6030, 0xa08c, 0xff00, 0x810f, 0xa186, 0x0039,
+-      0x0118, 0xa186, 0x0035, 0x1118, 0x00de, 0x0804, 0x983f, 0x080c,
+-      0x9c54, 0x1118, 0x080c, 0x9e0b, 0x00f0, 0x6010, 0x2068, 0x684c,
+-      0xd0e4, 0x1110, 0x080c, 0x9e0b, 0x6837, 0x0103, 0x6850, 0xd0b4,
+-      0x0128, 0x684b, 0x0006, 0xc0ec, 0x6852, 0x0048, 0xd0bc, 0x0118,
+-      0x684b, 0x0002, 0x0020, 0x684b, 0x0005, 0x080c, 0x9ecc, 0x6847,
+-      0x0000, 0x080c, 0x5409, 0x2c68, 0x080c, 0x85c1, 0x01c0, 0x6003,
+-      0x0001, 0x6007, 0x001e, 0x600b, 0xffff, 0x2009, 0xbb8e, 0x210c,
+-      0x6136, 0x2009, 0xbb8f, 0x210c, 0x613a, 0x6918, 0x611a, 0x080c,
+-      0xa021, 0x6950, 0x6152, 0x601f, 0x0001, 0x080c, 0x6c8e, 0x2d60,
+-      0x080c, 0x8617, 0x00de, 0x0005, 0x00f6, 0x2c78, 0x080c, 0x5306,
+-      0x00fe, 0x0598, 0x6030, 0xa08c, 0xff00, 0x810f, 0xa186, 0x0035,
+-      0x0130, 0xa186, 0x001e, 0x0118, 0xa186, 0x0039, 0x1530, 0x00d6,
+-      0x2c68, 0x080c, 0xa104, 0x1904, 0x9884, 0x080c, 0x85c1, 0x01d8,
+-      0x6106, 0x6003, 0x0001, 0x601f, 0x0001, 0x6918, 0x611a, 0x6928,
+-      0x612a, 0x692c, 0x612e, 0x6930, 0xa18c, 0x00ff, 0x6132, 0x6934,
+-      0x6136, 0x6938, 0x613a, 0x6950, 0x6152, 0x080c, 0xa021, 0x080c,
+-      0x6c8e, 0x080c, 0x7174, 0x2d60, 0x00f8, 0x00d6, 0x6010, 0x2068,
+-      0x080c, 0x9c54, 0x01c8, 0x6837, 0x0103, 0x6850, 0xd0b4, 0x0128,
+-      0xc0ec, 0x6852, 0x684b, 0x0006, 0x0048, 0xd0bc, 0x0118, 0x684b,
+-      0x0002, 0x0020, 0x684b, 0x0005, 0x080c, 0x9ecc, 0x6847, 0x0000,
+-      0x080c, 0x5409, 0x080c, 0x9e0b, 0x00de, 0x080c, 0x8617, 0x0005,
+-      0x0016, 0x00d6, 0x6010, 0x2068, 0x080c, 0x9c54, 0x0140, 0x6837,
+-      0x0103, 0x684b, 0x0028, 0x6847, 0x0000, 0x080c, 0x5409, 0x00de,
+-      0x001e, 0xa186, 0x0013, 0x0148, 0xa186, 0x0014, 0x0130, 0xa186,
+-      0x0027, 0x0118, 0x080c, 0x865d, 0x0030, 0x080c, 0x7091, 0x080c,
+-      0x9e17, 0x080c, 0x7174, 0x0005, 0x0056, 0x0066, 0x00d6, 0x00f6,
+-      0x2029, 0x0001, 0xa182, 0x0101, 0x1208, 0x0010, 0x2009, 0x0100,
+-      0x2130, 0x2069, 0xbb98, 0x831c, 0x2300, 0xad18, 0x2009, 0x0020,
+-      0xaf90, 0x001d, 0x080c, 0x9907, 0xa6b2, 0x0020, 0x7804, 0xa06d,
+-      0x0110, 0x080c, 0x161f, 0x080c, 0x15f8, 0x0500, 0x8528, 0x6837,
+-      0x0110, 0x683b, 0x0000, 0x2d20, 0x7c06, 0xa68a, 0x003d, 0x1228,
+-      0x2608, 0xad90, 0x000f, 0x0459, 0x0088, 0xa6b2, 0x003c, 0x2009,
+-      0x003c, 0x2d78, 0xad90, 0x000f, 0x0411, 0x0c28, 0x00fe, 0x852f,
+-      0xa5ad, 0x0003, 0x7d36, 0xa5ac, 0x0000, 0x0028, 0x00fe, 0x852f,
+-      0xa5ad, 0x0003, 0x7d36, 0x00de, 0x006e, 0x005e, 0x0005, 0x00f6,
+-      0x8dff, 0x0158, 0x6804, 0xa07d, 0x0130, 0x6807, 0x0000, 0x080c,
+-      0x5409, 0x2f68, 0x0cb8, 0x080c, 0x5409, 0x00fe, 0x0005, 0x0156,
+-      0xa184, 0x0001, 0x0108, 0x8108, 0x810c, 0x21a8, 0x2304, 0x8007,
+-      0x2012, 0x8318, 0x8210, 0x1f04, 0x990e, 0x015e, 0x0005, 0x0066,
+-      0x0126, 0x2091, 0x8000, 0x2031, 0x0001, 0x601c, 0xa084, 0x000f,
+-      0x0083, 0x012e, 0x006e, 0x0005, 0x0126, 0x2091, 0x8000, 0x0066,
+-      0x2031, 0x0000, 0x601c, 0xa084, 0x000f, 0x001b, 0x006e, 0x012e,
+-      0x0005, 0x994e, 0x994e, 0x9949, 0x9970, 0x993c, 0x9949, 0x9970,
+-      0x9949, 0x9949, 0x993c, 0x9949, 0x080c, 0x1515, 0x0036, 0x2019,
+-      0x0010, 0x080c, 0xacd4, 0x601f, 0x0006, 0x6003, 0x0007, 0x003e,
+-      0x0005, 0xa006, 0x0005, 0xa085, 0x0001, 0x0005, 0x00d6, 0x86ff,
+-      0x11d8, 0x6010, 0x2068, 0x080c, 0x9c54, 0x01c0, 0x6834, 0xa086,
+-      0x0139, 0x1128, 0x684b, 0x0005, 0x6853, 0x0000, 0x0028, 0xa00e,
+-      0x2001, 0x0005, 0x080c, 0x54dc, 0x080c, 0x9ecc, 0x080c, 0x5409,
+-      0x080c, 0x8617, 0xa085, 0x0001, 0x00de, 0x0005, 0xa006, 0x0ce0,
+-      0x6000, 0xa08a, 0x0010, 0x1a0c, 0x1515, 0x000b, 0x0005, 0x9987,
+-      0x99a8, 0x9989, 0x99c7, 0x99a5, 0x9987, 0x9949, 0x994e, 0x994e,
+-      0x9949, 0x9949, 0x9949, 0x9949, 0x9949, 0x9949, 0x9949, 0x080c,
+-      0x1515, 0x86ff, 0x11b8, 0x601c, 0xa086, 0x0006, 0x0198, 0x00d6,
+-      0x6010, 0x2068, 0x080c, 0x9c54, 0x0110, 0x080c, 0x9ecc, 0x00de,
+-      0x6007, 0x0085, 0x6003, 0x000b, 0x601f, 0x0002, 0x080c, 0x6c8e,
+-      0x080c, 0x7174, 0xa085, 0x0001, 0x0005, 0x080c, 0x194d, 0x0c08,
+-      0x00e6, 0x2071, 0xb7e0, 0x7024, 0xac06, 0x1110, 0x080c, 0x7f5a,
+-      0x601c, 0xa084, 0x000f, 0xa086, 0x0006, 0x1150, 0x0086, 0x0096,
+-      0x2049, 0x0001, 0x2c40, 0x080c, 0x8131, 0x009e, 0x008e, 0x0010,
+-      0x080c, 0x7e59, 0x00ee, 0x1928, 0x080c, 0x9949, 0x0005, 0x0036,
+-      0x00e6, 0x2071, 0xb7e0, 0x703c, 0xac06, 0x1140, 0x2019, 0x0000,
+-      0x080c, 0x7fe5, 0x00ee, 0x003e, 0x0804, 0x9989, 0x080c, 0x8257,
+-      0x00ee, 0x003e, 0x1904, 0x9989, 0x080c, 0x9949, 0x0005, 0x00c6,
+-      0x601c, 0xa084, 0x000f, 0x0013, 0x00ce, 0x0005, 0x99f8, 0x9a65,
+-      0x9bb3, 0x9a03, 0x9e17, 0x99f8, 0xacc6, 0x8617, 0x9a65, 0x99f1,
+-      0x9c1e, 0x080c, 0x1515, 0x080c, 0x9e52, 0x1110, 0x080c, 0x8c13,
+-      0x0005, 0x080c, 0x7091, 0x080c, 0x7174, 0x080c, 0x8617, 0x0005,
+-      0x6017, 0x0001, 0x0005, 0x080c, 0x9c54, 0x0120, 0x6010, 0xa080,
+-      0x0019, 0x2c02, 0x6000, 0xa08a, 0x0010, 0x1a0c, 0x1515, 0x000b,
+-      0x0005, 0x9a21, 0x9a23, 0x9a43, 0x9a55, 0x9a62, 0x9a21, 0x99f8,
+-      0x99f8, 0x99f8, 0x9a55, 0x9a55, 0x9a21, 0x9a21, 0x9a21, 0x9a21,
+-      0x9a5f, 0x080c, 0x1515, 0x00e6, 0x6010, 0x2070, 0x7050, 0xc0b5,
+-      0x7052, 0x2071, 0xb7e0, 0x7024, 0xac06, 0x0190, 0x080c, 0x7e59,
+-      0x6007, 0x0085, 0x6003, 0x000b, 0x601f, 0x0002, 0x2001, 0xb7b7,
+-      0x2004, 0x6016, 0x080c, 0x6c8e, 0x080c, 0x7174, 0x00ee, 0x0005,
+-      0x6017, 0x0001, 0x0cd8, 0x00d6, 0x6010, 0x2068, 0x6850, 0xc0b5,
+-      0x6852, 0x00de, 0x6007, 0x0085, 0x6003, 0x000b, 0x601f, 0x0002,
+-      0x080c, 0x6c8e, 0x080c, 0x7174, 0x0005, 0x00d6, 0x6017, 0x0001,
+-      0x6010, 0x2068, 0x6850, 0xc0b5, 0x6852, 0x00de, 0x0005, 0x080c,
+-      0x8617, 0x0005, 0x080c, 0x194d, 0x08f0, 0x6000, 0xa08a, 0x0010,
+-      0x1a0c, 0x1515, 0x000b, 0x0005, 0x9a7c, 0x9a00, 0x9a7e, 0x9a7c,
+-      0x9a7e, 0x9a7e, 0x99f9, 0x9a7c, 0x99f3, 0x99f3, 0x9a7c, 0x9a7c,
+-      0x9a7c, 0x9a7c, 0x9a7c, 0x9a7c, 0x080c, 0x1515, 0x00d6, 0x6018,
+-      0x2068, 0x6804, 0xa084, 0x00ff, 0x00de, 0xa08a, 0x000c, 0x1a0c,
+-      0x1515, 0x000b, 0x0005, 0x9a97, 0x9b59, 0x9a99, 0x9ad7, 0x9a99,
+-      0x9ad7, 0x9a99, 0x9aa7, 0x9a97, 0x9ad7, 0x9a97, 0x9ac3, 0x080c,
+-      0x1515, 0x6004, 0xa08e, 0x0016, 0x05a8, 0xa08e, 0x0004, 0x0590,
+-      0xa08e, 0x0002, 0x0578, 0xa08e, 0x004b, 0x0904, 0x9b55, 0x6004,
+-      0x080c, 0x9e52, 0x0904, 0x9b72, 0xa08e, 0x0021, 0x0904, 0x9b76,
+-      0xa08e, 0x0022, 0x0904, 0x9b72, 0xa08e, 0x003d, 0x0904, 0x9b76,
+-      0xa08e, 0x0039, 0x0904, 0x9b7a, 0xa08e, 0x0035, 0x0904, 0x9b7a,
+-      0xa08e, 0x001e, 0x0188, 0xa08e, 0x0001, 0x1150, 0x00d6, 0x6018,
+-      0x2068, 0x6804, 0xa084, 0x00ff, 0x00de, 0xa086, 0x0006, 0x0110,
+-      0x080c, 0x2c9c, 0x080c, 0x8c13, 0x080c, 0x9e17, 0x0005, 0x00c6,
+-      0x00d6, 0x6104, 0xa186, 0x0016, 0x0904, 0x9b46, 0xa186, 0x0002,
+-      0x15d8, 0x2001, 0xb535, 0x2004, 0xd08c, 0x1198, 0x080c, 0x5ad0,
+-      0x1180, 0x2001, 0xb79f, 0x2003, 0x0001, 0x2001, 0xb500, 0x2003,
+-      0x0001, 0xa085, 0x0001, 0x080c, 0x5b14, 0x080c, 0x5a08, 0x0804,
+-      0x9b9c, 0x6018, 0x2068, 0x2001, 0xb535, 0x2004, 0xd0ac, 0x1904,
+-      0x9b9c, 0x68a0, 0xd0bc, 0x1904, 0x9b9c, 0x6840, 0xa084, 0x00ff,
+-      0xa005, 0x0190, 0x8001, 0x6842, 0x6013, 0x0000, 0x601f, 0x0007,
+-      0x6017, 0x0398, 0x603f, 0x0000, 0x080c, 0x85c1, 0x0128, 0x2d00,
+-      0x601a, 0x601f, 0x0001, 0x0450, 0x00de, 0x00ce, 0x6004, 0xa08e,
+-      0x0002, 0x11a8, 0x6018, 0xa080, 0x0028, 0x2004, 0xa086, 0x007e,
+-      0x1170, 0x2009, 0xb535, 0x2104, 0xc085, 0x200a, 0x00e6, 0x2071,
+-      0xb500, 0x080c, 0x4bc7, 0x00ee, 0x080c, 0x8c13, 0x0020, 0x080c,
+-      0x8c13, 0x080c, 0x2c9c, 0x00e6, 0x0126, 0x2091, 0x8000, 0x080c,
+-      0x2cc2, 0x012e, 0x00ee, 0x080c, 0x9e17, 0x0005, 0x2001, 0x0002,
+-      0x080c, 0x4efe, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x6cd4,
+-      0x080c, 0x7174, 0x00de, 0x00ce, 0x0c80, 0x080c, 0x2cc2, 0x0804,
+-      0x9ad2, 0x00c6, 0x00d6, 0x6104, 0xa186, 0x0016, 0x0d38, 0x6018,
+-      0x2068, 0x6840, 0xa084, 0x00ff, 0xa005, 0x0904, 0x9b1c, 0x8001,
+-      0x6842, 0x6003, 0x0001, 0x080c, 0x6cd4, 0x080c, 0x7174, 0x00de,
+-      0x00ce, 0x0898, 0x080c, 0x8c13, 0x0804, 0x9ad4, 0x080c, 0x8c41,
+-      0x0804, 0x9ad4, 0x00d6, 0x2c68, 0x6104, 0x080c, 0xa104, 0x00de,
+-      0x0118, 0x080c, 0x8617, 0x00b8, 0x6004, 0x8007, 0x6130, 0xa18c,
+-      0x00ff, 0xa105, 0x6032, 0x6007, 0x0085, 0x6003, 0x000b, 0x601f,
+-      0x0002, 0x6038, 0x600a, 0x2001, 0xb7b7, 0x2004, 0x6016, 0x080c,
+-      0x6c8e, 0x080c, 0x7174, 0x0005, 0x00de, 0x00ce, 0x080c, 0x8c13,
+-      0x080c, 0x2c9c, 0x00e6, 0x0126, 0x2091, 0x8000, 0x080c, 0x2cc2,
+-      0x6013, 0x0000, 0x601f, 0x0007, 0x6017, 0x0398, 0x603f, 0x0000,
+-      0x012e, 0x00ee, 0x0005, 0x6000, 0xa08a, 0x0010, 0x1a0c, 0x1515,
+-      0x000b, 0x0005, 0x9bca, 0x9bca, 0x9bca, 0x9bca, 0x9bca, 0x9bca,
+-      0x9bca, 0x9bca, 0x9bca, 0x99f8, 0x9bca, 0x9a00, 0x9bcc, 0x9a00,
+-      0x9bd9, 0x9bca, 0x080c, 0x1515, 0x6004, 0xa086, 0x008b, 0x0148,
+-      0x6007, 0x008b, 0x6003, 0x000d, 0x080c, 0x6c8e, 0x080c, 0x7174,
+-      0x0005, 0x080c, 0x9e0b, 0x080c, 0x9c54, 0x0580, 0x080c, 0x2c9c,
+-      0x00d6, 0x080c, 0x9c54, 0x0168, 0x6010, 0x2068, 0x6837, 0x0103,
+-      0x684b, 0x0006, 0x6847, 0x0000, 0x6850, 0xc0ed, 0x6852, 0x080c,
+-      0x5409, 0x2c68, 0x080c, 0x85c1, 0x0150, 0x6818, 0x601a, 0x080c,
+-      0xa021, 0x00c6, 0x2d60, 0x080c, 0x9e17, 0x00ce, 0x0008, 0x2d60,
+-      0x00de, 0x6013, 0x0000, 0x601f, 0x0001, 0x6007, 0x0001, 0x6003,
+-      0x0001, 0x080c, 0x6cd4, 0x080c, 0x7174, 0x0078, 0x6030, 0xa08c,
+-      0xff00, 0x810f, 0xa186, 0x0039, 0x0118, 0xa186, 0x0035, 0x1118,
+-      0x080c, 0x2c9c, 0x08b0, 0x080c, 0x9e17, 0x0005, 0x6000, 0xa08a,
+-      0x0010, 0x1a0c, 0x1515, 0x000b, 0x0005, 0x9c35, 0x9c35, 0x9c35,
+-      0x9c37, 0x9c37, 0x9c35, 0x9c35, 0x9c35, 0x9c35, 0x9c35, 0x9c35,
+-      0x9c35, 0x9c35, 0x9c35, 0x9c35, 0x9c35, 0x080c, 0x1515, 0x080c,
+-      0x8257, 0x190c, 0x1515, 0x6110, 0x2168, 0x684b, 0x0006, 0x080c,
+-      0x5409, 0x080c, 0x8617, 0x0005, 0xa284, 0x0007, 0x1158, 0xa282,
+-      0xbd00, 0x0240, 0x2001, 0xb517, 0x2004, 0xa202, 0x1218, 0xa085,
+-      0x0001, 0x0005, 0xa006, 0x0ce8, 0x0026, 0x6210, 0xa294, 0xf000,
+-      0x002e, 0x0005, 0x00e6, 0x00c6, 0x0036, 0x0006, 0x0126, 0x2091,
+-      0x8000, 0x2061, 0xbd00, 0x2071, 0xb500, 0x7348, 0x7068, 0xa302,
+-      0x12a8, 0x601c, 0xa206, 0x1160, 0x080c, 0x9fac, 0x0148, 0x080c,
+-      0x9e52, 0x1110, 0x080c, 0x8c13, 0x00c6, 0x080c, 0x8617, 0x00ce,
+-      0xace0, 0x0018, 0x705c, 0xac02, 0x1208, 0x0c38, 0x012e, 0x000e,
+-      0x003e, 0x00ce, 0x00ee, 0x0005, 0x00e6, 0x00c6, 0x0016, 0xa188,
+-      0xb635, 0x210c, 0x81ff, 0x0128, 0x2061, 0xb8f4, 0x611a, 0x080c,
+-      0x2c9c, 0xa006, 0x0010, 0xa085, 0x0001, 0x001e, 0x00ce, 0x00ee,
+-      0x0005, 0x00c6, 0x0056, 0x0126, 0x2091, 0x8000, 0x00c6, 0x080c,
+-      0x85c1, 0x005e, 0x0180, 0x6612, 0x651a, 0x080c, 0xa021, 0x601f,
+-      0x0003, 0x2009, 0x004b, 0x080c, 0x8646, 0xa085, 0x0001, 0x012e,
+-      0x005e, 0x00ce, 0x0005, 0xa006, 0x0cd0, 0x00c6, 0x0056, 0x0126,
+-      0x2091, 0x8000, 0x62a0, 0x00c6, 0x080c, 0x9ed0, 0x005e, 0x0550,
+-      0x6013, 0x0000, 0x651a, 0x080c, 0xa021, 0x601f, 0x0003, 0x0016,
+-      0x00c6, 0x2560, 0x080c, 0x51ab, 0x00ce, 0x080c, 0x6df6, 0x0076,
+-      0x2039, 0x0000, 0x080c, 0x6d03, 0x2c08, 0x080c, 0xae76, 0x007e,
+-      0x001e, 0xd184, 0x0128, 0x080c, 0x8617, 0xa085, 0x0001, 0x0030,
+-      0x2009, 0x004c, 0x080c, 0x8646, 0xa085, 0x0001, 0x012e, 0x005e,
+-      0x00ce, 0x0005, 0xa006, 0x0cd0, 0x00f6, 0x00c6, 0x0046, 0x00c6,
+-      0x080c, 0x85c1, 0x2c78, 0x00ce, 0x0180, 0x7e12, 0x2c00, 0x781a,
+-      0x781f, 0x0003, 0x2021, 0x0005, 0x080c, 0x9d4a, 0x2f60, 0x2009,
+-      0x004d, 0x080c, 0x8646, 0xa085, 0x0001, 0x004e, 0x00ce, 0x00fe,
+-      0x0005, 0x00f6, 0x00c6, 0x0046, 0x00c6, 0x080c, 0x85c1, 0x2c78,
+-      0x00ce, 0x0178, 0x7e12, 0x2c00, 0x781a, 0x781f, 0x0003, 0x2021,
+-      0x0005, 0x0481, 0x2f60, 0x2009, 0x004e, 0x080c, 0x8646, 0xa085,
+-      0x0001, 0x004e, 0x00ce, 0x00fe, 0x0005, 0x00f6, 0x00c6, 0x0046,
+-      0x00c6, 0x080c, 0x85c1, 0x2c78, 0x00ce, 0x01c0, 0x7e12, 0x2c00,
+-      0x781a, 0x781f, 0x0003, 0x2021, 0x0004, 0x00a1, 0x2001, 0xb7a0,
+-      0x2004, 0xd0fc, 0x0120, 0x2f60, 0x080c, 0x8617, 0x0028, 0x2f60,
+-      0x2009, 0x0052, 0x080c, 0x8646, 0xa085, 0x0001, 0x004e, 0x00ce,
+-      0x00fe, 0x0005, 0x0096, 0x0076, 0x0126, 0x2091, 0x8000, 0x080c,
+-      0x514d, 0x0118, 0x2001, 0x9d4f, 0x0028, 0x080c, 0x511d, 0x0158,
+-      0x2001, 0x9d55, 0x0006, 0xa00e, 0x2400, 0x080c, 0x54dc, 0x080c,
+-      0x5409, 0x000e, 0x0807, 0x2418, 0x080c, 0x7030, 0x62a0, 0x0086,
+-      0x2041, 0x0001, 0x2039, 0x0001, 0x2608, 0x080c, 0x6e0f, 0x008e,
+-      0x080c, 0x6d03, 0x2f08, 0x2648, 0x080c, 0xae76, 0x613c, 0x81ff,
+-      0x090c, 0x6ec4, 0x080c, 0x7174, 0x012e, 0x007e, 0x009e, 0x0005,
+-      0x00c6, 0x0126, 0x2091, 0x8000, 0x00c6, 0x080c, 0x85c1, 0x001e,
+-      0x0188, 0x660a, 0x611a, 0x080c, 0xa021, 0x601f, 0x0001, 0x2d00,
+-      0x6012, 0x2009, 0x001f, 0x080c, 0x8646, 0xa085, 0x0001, 0x012e,
+-      0x00ce, 0x0005, 0xa006, 0x0cd8, 0x00c6, 0x0126, 0x2091, 0x8000,
+-      0x00c6, 0x080c, 0x85c1, 0x001e, 0x0188, 0x660a, 0x611a, 0x080c,
+-      0xa021, 0x601f, 0x0008, 0x2d00, 0x6012, 0x2009, 0x0021, 0x080c,
+-      0x8646, 0xa085, 0x0001, 0x012e, 0x00ce, 0x0005, 0xa006, 0x0cd8,
+-      0x00c6, 0x0126, 0x2091, 0x8000, 0x00c6, 0x080c, 0x85c1, 0x001e,
+-      0x0188, 0x660a, 0x611a, 0x080c, 0xa021, 0x601f, 0x0001, 0x2d00,
+-      0x6012, 0x2009, 0x003d, 0x080c, 0x8646, 0xa085, 0x0001, 0x012e,
+-      0x00ce, 0x0005, 0xa006, 0x0cd8, 0x00c6, 0x0126, 0x2091, 0x8000,
+-      0x00c6, 0x080c, 0x9ed0, 0x001e, 0x0180, 0x611a, 0x080c, 0xa021,
+-      0x601f, 0x0001, 0x2d00, 0x6012, 0x2009, 0x0000, 0x080c, 0x8646,
+-      0xa085, 0x0001, 0x012e, 0x00ce, 0x0005, 0xa006, 0x0cd8, 0x00c6,
+-      0x0126, 0x2091, 0x8000, 0x00c6, 0x080c, 0x85c1, 0x001e, 0x0188,
+-      0x660a, 0x611a, 0x080c, 0xa021, 0x601f, 0x0001, 0x2d00, 0x6012,
+-      0x2009, 0x0044, 0x080c, 0x8646, 0xa085, 0x0001, 0x012e, 0x00ce,
+-      0x0005, 0xa006, 0x0cd8, 0x0026, 0x00d6, 0x6218, 0x2268, 0x6a3c,
+-      0x82ff, 0x0110, 0x8211, 0x6a3e, 0x00de, 0x002e, 0x0005, 0x0006,
+-      0x6000, 0xa086, 0x0000, 0x0190, 0x6013, 0x0000, 0x601f, 0x0007,
+-      0x2001, 0xb7b6, 0x2004, 0x0006, 0xa082, 0x0051, 0x000e, 0x0208,
+-      0x8004, 0x6016, 0x080c, 0xb32e, 0x603f, 0x0000, 0x000e, 0x0005,
+-      0x0066, 0x00c6, 0x00d6, 0x2031, 0xb553, 0x2634, 0xd6e4, 0x0128,
+-      0x6618, 0x2660, 0x6e48, 0x080c, 0x50d6, 0x00de, 0x00ce, 0x006e,
+-      0x0005, 0x0006, 0x0016, 0x6004, 0xa08e, 0x0002, 0x0140, 0xa08e,
+-      0x0003, 0x0128, 0xa08e, 0x0004, 0x0110, 0xa085, 0x0001, 0x001e,
+-      0x000e, 0x0005, 0x0006, 0x00d6, 0x6010, 0xa06d, 0x0148, 0x6834,
+-      0xa086, 0x0139, 0x0138, 0x6838, 0xd0fc, 0x0110, 0xa006, 0x0010,
+-      0xa085, 0x0001, 0x00de, 0x000e, 0x0005, 0x00c6, 0x0126, 0x2091,
+-      0x8000, 0x00c6, 0x080c, 0x85c1, 0x001e, 0x0190, 0x611a, 0x080c,
+-      0xa021, 0x601f, 0x0001, 0x2d00, 0x6012, 0x080c, 0x2c9c, 0x2009,
+-      0x0028, 0x080c, 0x8646, 0xa085, 0x0001, 0x012e, 0x00ce, 0x0005,
+-      0xa006, 0x0cd8, 0xa186, 0x0015, 0x1178, 0x2011, 0xb521, 0x2204,
+-      0xa086, 0x0074, 0x1148, 0x080c, 0x8f92, 0x6003, 0x0001, 0x6007,
+-      0x0029, 0x080c, 0x6cd4, 0x0020, 0x080c, 0x8c13, 0x080c, 0x8617,
+-      0x0005, 0xa186, 0x0016, 0x1128, 0x2001, 0x0004, 0x080c, 0x4efe,
+-      0x00e8, 0xa186, 0x0015, 0x11e8, 0x2011, 0xb521, 0x2204, 0xa086,
+-      0x0014, 0x11b8, 0x00d6, 0x6018, 0x2068, 0x080c, 0x504c, 0x00de,
+-      0x080c, 0x904b, 0x1170, 0x00d6, 0x6018, 0x2068, 0x6890, 0x00de,
+-      0xa005, 0x0138, 0x2001, 0x0006, 0x080c, 0x4efe, 0x080c, 0x879a,
+-      0x0020, 0x080c, 0x8c13, 0x080c, 0x8617, 0x0005, 0x6848, 0xa086,
+-      0x0005, 0x1108, 0x0009, 0x0005, 0x6850, 0xc0ad, 0x6852, 0x0005,
+-      0x00e6, 0x0126, 0x2071, 0xb500, 0x2091, 0x8000, 0x7548, 0xa582,
+-      0x0001, 0x0608, 0x704c, 0x2060, 0x6000, 0xa086, 0x0000, 0x0148,
+-      0xace0, 0x0018, 0x705c, 0xac02, 0x1208, 0x0cb0, 0x2061, 0xbd00,
+-      0x0c98, 0x6003, 0x0008, 0x8529, 0x754a, 0xaca8, 0x0018, 0x705c,
+-      0xa502, 0x1230, 0x754e, 0xa085, 0x0001, 0x012e, 0x00ee, 0x0005,
+-      0x704f, 0xbd00, 0x0cc0, 0xa006, 0x0cc0, 0x00e6, 0x2071, 0xbb8c,
+-      0x7014, 0xd0e4, 0x0150, 0x6013, 0x0000, 0x6003, 0x0001, 0x6007,
+-      0x0050, 0x080c, 0x6c8e, 0x080c, 0x7174, 0x00ee, 0x0005, 0x00c6,
+-      0x00f6, 0x2c78, 0x080c, 0x5306, 0x00fe, 0x0120, 0x601c, 0xa084,
+-      0x000f, 0x0013, 0x00ce, 0x0005, 0x99f8, 0x9f27, 0x9f2a, 0x9f2d,
+-      0xb11b, 0xb136, 0xb139, 0x99f8, 0x99f8, 0x080c, 0x1515, 0xe000,
+-      0xe000, 0x0005, 0xe000, 0xe000, 0x0005, 0x0009, 0x0005, 0x00f6,
+-      0x2c78, 0x080c, 0x5306, 0x0538, 0x080c, 0x85c1, 0x1128, 0x2001,
+-      0xb7b8, 0x2004, 0x783e, 0x00f8, 0x7818, 0x601a, 0x080c, 0xa021,
+-      0x781c, 0xa086, 0x0003, 0x0128, 0x7808, 0x6036, 0x2f00, 0x603a,
+-      0x0020, 0x7808, 0x603a, 0x2f00, 0x6036, 0x602a, 0x601f, 0x0001,
+-      0x6007, 0x0035, 0x6003, 0x0001, 0x7950, 0x6152, 0x080c, 0x6c8e,
+-      0x080c, 0x7174, 0x2f60, 0x00fe, 0x0005, 0x0016, 0x00f6, 0x682c,
+-      0x6032, 0xa08e, 0x0001, 0x0138, 0xa086, 0x0005, 0x0140, 0xa006,
+-      0x602a, 0x602e, 0x00a0, 0x6820, 0xc0f4, 0xc0d5, 0x6822, 0x6810,
+-      0x2078, 0x787c, 0x6938, 0xa102, 0x7880, 0x6934, 0xa103, 0x1e78,
+-      0x6834, 0x602a, 0x6838, 0xa084, 0xfffc, 0x683a, 0x602e, 0x2d00,
+-      0x6036, 0x6808, 0x603a, 0x6918, 0x611a, 0x6950, 0x6152, 0x601f,
+-      0x0001, 0x6007, 0x0039, 0x6003, 0x0001, 0x080c, 0x6c8e, 0x6803,
+-      0x0002, 0x00fe, 0x001e, 0x0005, 0x00f6, 0x2c78, 0x080c, 0x5306,
+-      0x1118, 0xa085, 0x0001, 0x0070, 0x6020, 0xd0f4, 0x1150, 0xc0f5,
+-      0x6022, 0x6010, 0x2078, 0x7828, 0x603a, 0x782c, 0x6036, 0x080c,
+-      0x194d, 0xa006, 0x00fe, 0x0005, 0x0006, 0x0016, 0x6004, 0xa08e,
+-      0x0034, 0x01b8, 0xa08e, 0x0035, 0x01a0, 0xa08e, 0x0036, 0x0188,
+-      0xa08e, 0x0037, 0x0170, 0xa08e, 0x0038, 0x0158, 0xa08e, 0x0039,
+-      0x0140, 0xa08e, 0x003a, 0x0128, 0xa08e, 0x003b, 0x0110, 0xa085,
+-      0x0001, 0x001e, 0x000e, 0x0005, 0x0006, 0x0016, 0x0026, 0x0036,
+-      0x00e6, 0x2001, 0xb7b2, 0x200c, 0x8000, 0x2014, 0x2001, 0x0032,
+-      0x080c, 0x6b41, 0x2001, 0xb7b6, 0x82ff, 0x1110, 0x2011, 0x0014,
+-      0x2202, 0x2001, 0xb7b4, 0x200c, 0x8000, 0x2014, 0x2071, 0xb78e,
+-      0x711a, 0x721e, 0x2001, 0x0064, 0x080c, 0x6b41, 0x2001, 0xb7b7,
+-      0x82ff, 0x1110, 0x2011, 0x0014, 0x2202, 0x2009, 0xb7b8, 0xa280,
+-      0x000a, 0x200a, 0x080c, 0x532b, 0x00ee, 0x003e, 0x002e, 0x001e,
+-      0x000e, 0x0005, 0x0006, 0x00e6, 0x2001, 0xb7b6, 0x2003, 0x0028,
+-      0x2001, 0xb7b7, 0x2003, 0x0014, 0x2071, 0xb78e, 0x701b, 0x0000,
+-      0x701f, 0x07d0, 0x2001, 0xb7b8, 0x2003, 0x001e, 0x00ee, 0x000e,
+-      0x0005, 0x00d6, 0x6054, 0xa06d, 0x0110, 0x080c, 0x160f, 0x00de,
+-      0x0005, 0x0005, 0x00c6, 0x0126, 0x2091, 0x8000, 0x00c6, 0x080c,
+-      0x85c1, 0x001e, 0x0178, 0x611a, 0x0ca1, 0x601f, 0x0001, 0x2d00,
+-      0x6012, 0x2009, 0x0033, 0x080c, 0x8646, 0xa085, 0x0001, 0x012e,
+-      0x00ce, 0x0005, 0xa006, 0x0cd8, 0x00d6, 0x00e6, 0x00f6, 0x2071,
+-      0xb500, 0xa186, 0x0015, 0x1500, 0x7084, 0xa086, 0x0018, 0x11e0,
+-      0x6010, 0x2068, 0x6a3c, 0xd2e4, 0x1160, 0x2c78, 0x080c, 0x7332,
+-      0x01d8, 0x7070, 0x6a50, 0xa206, 0x1160, 0x7074, 0x6a54, 0xa206,
+-      0x1140, 0x6218, 0xa290, 0x0028, 0x2214, 0x2009, 0x0000, 0x080c,
+-      0x2ce1, 0x080c, 0x879a, 0x0020, 0x080c, 0x8c13, 0x080c, 0x8617,
+-      0x00fe, 0x00ee, 0x00de, 0x0005, 0x7054, 0x6a54, 0xa206, 0x0d48,
+-      0x0c80, 0x00c6, 0x0126, 0x2091, 0x8000, 0x00c6, 0x080c, 0x85c1,
+-      0x001e, 0x0180, 0x611a, 0x080c, 0xa021, 0x601f, 0x0001, 0x2d00,
+-      0x6012, 0x2009, 0x0043, 0x080c, 0x8646, 0xa085, 0x0001, 0x012e,
+-      0x00ce, 0x0005, 0xa006, 0x0cd8, 0x00d6, 0x00e6, 0x00f6, 0x2071,
+-      0xb500, 0xa186, 0x0015, 0x11c0, 0x7084, 0xa086, 0x0004, 0x11a0,
+-      0x6010, 0xa0e8, 0x000f, 0x2c78, 0x080c, 0x7332, 0x01a8, 0x7070,
+-      0x6a08, 0xa206, 0x1130, 0x7074, 0x6a0c, 0xa206, 0x1110, 0x080c,
+-      0x2c9c, 0x080c, 0x879a, 0x0020, 0x080c, 0x8c13, 0x080c, 0x8617,
+-      0x00fe, 0x00ee, 0x00de, 0x0005, 0x7054, 0x6a0c, 0xa206, 0x0d78,
+-      0x0c80, 0x0016, 0x0026, 0x684c, 0xd0ac, 0x0178, 0x6914, 0x6a10,
+-      0x2100, 0xa205, 0x0150, 0x6860, 0xa106, 0x1118, 0x685c, 0xa206,
+-      0x0120, 0x6962, 0x6a5e, 0xa085, 0x0001, 0x002e, 0x001e, 0x0005,
+-      0x00d6, 0x0036, 0x6310, 0x2368, 0x684a, 0x6952, 0xa29e, 0x4000,
+-      0x11a0, 0x00c6, 0x6318, 0x2360, 0x2009, 0x0000, 0x6838, 0xd0f4,
+-      0x1140, 0x080c, 0x524b, 0x1108, 0xc185, 0x6000, 0xd0bc, 0x0108,
+-      0xc18d, 0x6a66, 0x696a, 0x00ce, 0x0080, 0x6a66, 0x3918, 0xa398,
+-      0x0006, 0x231c, 0x686b, 0x0004, 0x6b72, 0x00c6, 0x6318, 0x2360,
+-      0x6004, 0xa084, 0x00ff, 0x686e, 0x00ce, 0x080c, 0x5409, 0x6013,
+-      0x0000, 0x003e, 0x00de, 0x0005, 0x00c6, 0x0026, 0x0016, 0xa186,
+-      0x0035, 0x0110, 0x6a34, 0x0008, 0x6a28, 0x080c, 0x9c44, 0x01f0,
+-      0x2260, 0x611c, 0xa186, 0x0003, 0x0118, 0xa186, 0x0006, 0x1190,
+-      0x6834, 0xa206, 0x0140, 0x6838, 0xa206, 0x1160, 0x6108, 0x6834,
+-      0xa106, 0x1140, 0x0020, 0x6008, 0x6938, 0xa106, 0x1118, 0x6018,
+-      0x6918, 0xa106, 0x001e, 0x002e, 0x00ce, 0x0005, 0xa085, 0x0001,
+-      0x0cc8, 0x6944, 0xd1cc, 0x0198, 0xa18c, 0x00ff, 0xa18e, 0x0002,
+-      0x1170, 0xad88, 0x001e, 0x210c, 0xa18c, 0x0f00, 0x810f, 0xa18e,
+-      0x0001, 0x1128, 0x6810, 0x6914, 0xa115, 0x190c, 0x947d, 0x0005,
++      0x2308, 0x2019, 0xbb98, 0xad90, 0x0019, 0x080c, 0x990d, 0x003e,
++      0xd6cc, 0x0904, 0x92e6, 0x7124, 0x695a, 0x81ff, 0x0904, 0x92e6,
++      0xa192, 0x0021, 0x1260, 0x2071, 0xbb98, 0x831c, 0x2300, 0xae18,
++      0xad90, 0x001d, 0x080c, 0x990d, 0x080c, 0xa137, 0x04b8, 0x6838,
++      0xd0fc, 0x0120, 0x2009, 0x0020, 0x695a, 0x0c68, 0x00f6, 0x2d78,
++      0x080c, 0x98b2, 0x00fe, 0x080c, 0xa137, 0x080c, 0x98fd, 0x0440,
++      0x00f6, 0x2c78, 0x080c, 0x5305, 0x00fe, 0x0190, 0x684c, 0xd0ac,
++      0x0178, 0x6020, 0xd0dc, 0x1160, 0x6850, 0xd0bc, 0x1148, 0x6810,
++      0x6914, 0xa105, 0x0128, 0x080c, 0x9f35, 0x00de, 0x00ee, 0x00f0,
++      0x684b, 0x0000, 0x6837, 0x0103, 0x6e46, 0x684c, 0xd0ac, 0x0130,
++      0x6810, 0x6914, 0xa115, 0x0110, 0x080c, 0x9483, 0x080c, 0x5408,
++      0x6218, 0x2268, 0x6a3c, 0x82ff, 0x0110, 0x8211, 0x6a3e, 0x080c,
++      0x9f03, 0x00de, 0x00ee, 0x1110, 0x080c, 0x861d, 0x0005, 0x00f6,
++      0x6003, 0x0003, 0x2079, 0xbb8c, 0x7c04, 0x7b00, 0x7e0c, 0x7d08,
++      0x6010, 0x2078, 0x784c, 0xd0ac, 0x0138, 0x6003, 0x0002, 0x00fe,
++      0x0005, 0x2130, 0x2228, 0x0058, 0x2400, 0x797c, 0xa10a, 0x2300,
++      0x7a80, 0xa213, 0x2600, 0xa102, 0x2500, 0xa203, 0x0e90, 0x7c12,
++      0x7b16, 0x7e0a, 0x7d0e, 0x00fe, 0x603f, 0x0000, 0x2c10, 0x080c,
++      0x1fa9, 0x080c, 0x6cf0, 0x080c, 0x7230, 0x0005, 0x2001, 0xb7b8,
++      0x2004, 0x603e, 0x6003, 0x0004, 0x6110, 0x20e1, 0x0005, 0x3d18,
++      0x3e20, 0x2c10, 0x080c, 0x185e, 0x0005, 0xa182, 0x0040, 0x0002,
++      0x934b, 0x934b, 0x934b, 0x934b, 0x934b, 0x934d, 0x93e0, 0x934b,
++      0x934b, 0x93f6, 0x945a, 0x934b, 0x934b, 0x934b, 0x934b, 0x9469,
++      0x934b, 0x934b, 0x934b, 0x080c, 0x1515, 0x0076, 0x00f6, 0x00e6,
++      0x00d6, 0x2071, 0xbb8c, 0x6110, 0x2178, 0x7614, 0xa6b4, 0x0fff,
++      0x7e46, 0x7f4c, 0xc7e5, 0x7f4e, 0x6218, 0x2268, 0x6a3c, 0x82ff,
++      0x0110, 0x8211, 0x6a3e, 0x86ff, 0x0904, 0x93db, 0xa694, 0xff00,
++      0xa284, 0x0c00, 0x0120, 0x7018, 0x7862, 0x701c, 0x785e, 0xa284,
++      0x0300, 0x0904, 0x93db, 0x080c, 0x15f8, 0x090c, 0x1515, 0x2d00,
++      0x784a, 0x7f4c, 0xc7cd, 0x7f4e, 0x6837, 0x0103, 0x7838, 0x683a,
++      0x783c, 0x683e, 0x7840, 0x6842, 0x6e46, 0xa68c, 0x0c00, 0x0120,
++      0x7318, 0x6b62, 0x731c, 0x6b5e, 0xa68c, 0x00ff, 0xa186, 0x0002,
++      0x0180, 0xa186, 0x0028, 0x1118, 0x684b, 0x001c, 0x0060, 0xd6dc,
++      0x0118, 0x684b, 0x0015, 0x0038, 0xd6d4, 0x0118, 0x684b, 0x0007,
++      0x0010, 0x684b, 0x0000, 0x6f4e, 0x7850, 0x6852, 0x7854, 0x6856,
++      0xa01e, 0xd6c4, 0x0198, 0x7328, 0x732c, 0x6b56, 0x83ff, 0x0170,
++      0xa38a, 0x0009, 0x0210, 0x2019, 0x0008, 0x0036, 0x2308, 0x2019,
++      0xbb98, 0xad90, 0x0019, 0x080c, 0x990d, 0x003e, 0xd6cc, 0x01d8,
++      0x7124, 0x695a, 0x81ff, 0x01b8, 0xa192, 0x0021, 0x1250, 0x2071,
++      0xbb98, 0x831c, 0x2300, 0xae18, 0xad90, 0x001d, 0x080c, 0x990d,
++      0x0050, 0x7838, 0xd0fc, 0x0120, 0x2009, 0x0020, 0x695a, 0x0c78,
++      0x2d78, 0x080c, 0x98b2, 0x00de, 0x00ee, 0x00fe, 0x007e, 0x0005,
++      0x00f6, 0x6003, 0x0003, 0x2079, 0xbb8c, 0x7c04, 0x7b00, 0x7e0c,
++      0x7d08, 0x6010, 0x2078, 0x7c12, 0x7b16, 0x7e0a, 0x7d0e, 0x00fe,
++      0x2c10, 0x080c, 0x1fa9, 0x080c, 0x7d60, 0x0005, 0x00d6, 0x00f6,
++      0x2c78, 0x080c, 0x5305, 0x00fe, 0x0120, 0x2001, 0xb7b8, 0x2004,
++      0x603e, 0x6003, 0x0002, 0x080c, 0x7126, 0x080c, 0x7230, 0x6110,
++      0x2168, 0x694c, 0xd1e4, 0x0904, 0x9458, 0xd1cc, 0x0540, 0x6948,
++      0x6838, 0xd0fc, 0x01e8, 0x0016, 0x684c, 0x0006, 0x6850, 0x0006,
++      0xad90, 0x000d, 0xa198, 0x000d, 0x2009, 0x0020, 0x0156, 0x21a8,
++      0x2304, 0x2012, 0x8318, 0x8210, 0x1f04, 0x9420, 0x015e, 0x000e,
++      0x6852, 0x000e, 0x684e, 0x001e, 0x2168, 0x080c, 0x161f, 0x0418,
++      0x0016, 0x080c, 0x161f, 0x00de, 0x080c, 0x98fd, 0x00e0, 0x6837,
++      0x0103, 0x6944, 0xa184, 0x00ff, 0xa0b6, 0x0002, 0x0180, 0xa086,
++      0x0028, 0x1118, 0x684b, 0x001c, 0x0060, 0xd1dc, 0x0118, 0x684b,
++      0x0015, 0x0038, 0xd1d4, 0x0118, 0x684b, 0x0007, 0x0010, 0x684b,
++      0x0000, 0x080c, 0x5408, 0x080c, 0x9f03, 0x1110, 0x080c, 0x861d,
++      0x00de, 0x0005, 0x2019, 0x0001, 0x080c, 0x7fe4, 0x6003, 0x0002,
++      0x2001, 0xb7b8, 0x2004, 0x603e, 0x080c, 0x7126, 0x080c, 0x7230,
++      0x0005, 0x080c, 0x7126, 0x080c, 0x2c9c, 0x00d6, 0x6110, 0x2168,
++      0x080c, 0x9c5a, 0x0150, 0x6837, 0x0103, 0x684b, 0x0029, 0x6847,
++      0x0000, 0x080c, 0x5408, 0x080c, 0x9e11, 0x00de, 0x080c, 0x861d,
++      0x080c, 0x7230, 0x0005, 0x684b, 0x0015, 0xd1fc, 0x0138, 0x684b,
++      0x0007, 0x8002, 0x8000, 0x810a, 0xa189, 0x0000, 0x6962, 0x685e,
++      0x0005, 0xa182, 0x0040, 0x0002, 0x94a7, 0x94a7, 0x94a7, 0x94a7,
++      0x94a7, 0x94a9, 0x94a7, 0x9564, 0x9570, 0x94a7, 0x94a7, 0x94a7,
++      0x94a7, 0x94a7, 0x94a7, 0x94a7, 0x94a7, 0x94a7, 0x94a7, 0x080c,
++      0x1515, 0x0076, 0x00f6, 0x00e6, 0x00d6, 0x2071, 0xbb8c, 0x6110,
++      0x2178, 0x7614, 0xa6b4, 0x0fff, 0x00f6, 0x2c78, 0x080c, 0x5305,
++      0x00fe, 0x0150, 0xa684, 0x00ff, 0x1138, 0x6020, 0xd0f4, 0x0120,
++      0x080c, 0x9f35, 0x0804, 0x955f, 0x7e46, 0x7f4c, 0xc7e5, 0x7f4e,
++      0x6218, 0x2268, 0x6a3c, 0x82ff, 0x0110, 0x8211, 0x6a3e, 0x86ff,
++      0x0904, 0x9555, 0xa694, 0xff00, 0xa284, 0x0c00, 0x0120, 0x7018,
++      0x7862, 0x701c, 0x785e, 0xa284, 0x0300, 0x0904, 0x9553, 0xa686,
++      0x0100, 0x1140, 0x2001, 0xbb99, 0x2004, 0xa005, 0x1118, 0xc6c4,
++      0x7e46, 0x0c28, 0x080c, 0x15f8, 0x090c, 0x1515, 0x2d00, 0x784a,
++      0x7f4c, 0xa7bd, 0x0200, 0x7f4e, 0x6837, 0x0103, 0x7838, 0x683a,
++      0x783c, 0x683e, 0x7840, 0x6842, 0x6e46, 0xa68c, 0x0c00, 0x0120,
++      0x7318, 0x6b62, 0x731c, 0x6b5e, 0xa68c, 0x00ff, 0xa186, 0x0002,
++      0x0180, 0xa186, 0x0028, 0x1118, 0x684b, 0x001c, 0x0060, 0xd6dc,
++      0x0118, 0x684b, 0x0015, 0x0038, 0xd6d4, 0x0118, 0x684b, 0x0007,
++      0x0010, 0x684b, 0x0000, 0x6f4e, 0x7850, 0x6852, 0x7854, 0x6856,
++      0xa01e, 0xd6c4, 0x0198, 0x7328, 0x732c, 0x6b56, 0x83ff, 0x0170,
++      0xa38a, 0x0009, 0x0210, 0x2019, 0x0008, 0x0036, 0x2308, 0x2019,
++      0xbb98, 0xad90, 0x0019, 0x080c, 0x990d, 0x003e, 0xd6cc, 0x01d8,
++      0x7124, 0x695a, 0x81ff, 0x01b8, 0xa192, 0x0021, 0x1250, 0x2071,
++      0xbb98, 0x831c, 0x2300, 0xae18, 0xad90, 0x001d, 0x080c, 0x990d,
++      0x0050, 0x7838, 0xd0fc, 0x0120, 0x2009, 0x0020, 0x695a, 0x0c78,
++      0x2d78, 0x080c, 0x98b2, 0xd6dc, 0x1110, 0xa006, 0x0030, 0x2001,
++      0x0001, 0x2071, 0xbb8c, 0x7218, 0x731c, 0x080c, 0x18b1, 0x00de,
++      0x00ee, 0x00fe, 0x007e, 0x0005, 0x2001, 0xb7b8, 0x2004, 0x603e,
++      0x20e1, 0x0005, 0x3d18, 0x3e20, 0x2c10, 0x080c, 0x185e, 0x0005,
++      0x2001, 0xb7b8, 0x2004, 0x603e, 0x00d6, 0x6003, 0x0002, 0x6110,
++      0x2168, 0x694c, 0xd1e4, 0x0904, 0x967b, 0x603f, 0x0000, 0x00f6,
++      0x2c78, 0x080c, 0x5305, 0x00fe, 0x0560, 0x6814, 0x6910, 0xa115,
++      0x0540, 0x6a60, 0xa206, 0x1118, 0x685c, 0xa106, 0x0510, 0x684c,
++      0xc0e4, 0x684e, 0x6847, 0x0000, 0x6863, 0x0000, 0x685f, 0x0000,
++      0x6020, 0xd0f4, 0x1158, 0x697c, 0x6810, 0xa102, 0x603a, 0x6980,
++      0x6814, 0xa103, 0x6036, 0x6020, 0xc0f5, 0x6022, 0x00d6, 0x6018,
++      0x2068, 0x683c, 0x8000, 0x683e, 0x00de, 0x080c, 0x9f35, 0x0804,
++      0x967b, 0x694c, 0xd1cc, 0x0904, 0x964b, 0x6948, 0x6838, 0xd0fc,
++      0x0904, 0x960e, 0x0016, 0x684c, 0x0006, 0x6850, 0x0006, 0x00f6,
++      0x2178, 0x7944, 0xa184, 0x00ff, 0xa0b6, 0x0002, 0x01e0, 0xa086,
++      0x0028, 0x1128, 0x684b, 0x001c, 0x784b, 0x001c, 0x00e8, 0xd1dc,
++      0x0158, 0x684b, 0x0015, 0x784b, 0x0015, 0x080c, 0xa0bf, 0x0118,
++      0x7944, 0xc1dc, 0x7946, 0x0080, 0xd1d4, 0x0128, 0x684b, 0x0007,
++      0x784b, 0x0007, 0x0048, 0x684c, 0xd0ac, 0x0130, 0x6810, 0x6914,
++      0xa115, 0x0110, 0x080c, 0x9483, 0x6848, 0x784a, 0x6860, 0x7862,
++      0x685c, 0x785e, 0xad90, 0x000d, 0xaf98, 0x000d, 0x2009, 0x0020,
++      0x0156, 0x21a8, 0x2304, 0x2012, 0x8318, 0x8210, 0x1f04, 0x95fa,
++      0x015e, 0x00fe, 0x000e, 0x6852, 0x000e, 0x684e, 0x080c, 0xa137,
++      0x001e, 0x2168, 0x080c, 0x161f, 0x0804, 0x9676, 0x0016, 0x00f6,
++      0x2178, 0x7944, 0xa184, 0x00ff, 0xa0b6, 0x0002, 0x01e0, 0xa086,
++      0x0028, 0x1128, 0x684b, 0x001c, 0x784b, 0x001c, 0x00e8, 0xd1dc,
++      0x0158, 0x684b, 0x0015, 0x784b, 0x0015, 0x080c, 0xa0bf, 0x0118,
++      0x7944, 0xc1dc, 0x7946, 0x0080, 0xd1d4, 0x0128, 0x684b, 0x0007,
++      0x784b, 0x0007, 0x0048, 0x684c, 0xd0ac, 0x0130, 0x6810, 0x6914,
++      0xa115, 0x0110, 0x080c, 0x9483, 0x6860, 0x7862, 0x685c, 0x785e,
++      0x684c, 0x784e, 0x00fe, 0x080c, 0x161f, 0x00de, 0x080c, 0xa137,
++      0x080c, 0x98fd, 0x0458, 0x6837, 0x0103, 0x6944, 0xa184, 0x00ff,
++      0xa0b6, 0x0002, 0x01b0, 0xa086, 0x0028, 0x1118, 0x684b, 0x001c,
++      0x00d8, 0xd1dc, 0x0148, 0x684b, 0x0015, 0x080c, 0xa0bf, 0x0118,
++      0x6944, 0xc1dc, 0x6946, 0x0080, 0xd1d4, 0x0118, 0x684b, 0x0007,
++      0x0058, 0x684b, 0x0000, 0x684c, 0xd0ac, 0x0130, 0x6810, 0x6914,
++      0xa115, 0x0110, 0x080c, 0x9483, 0x080c, 0x5408, 0x080c, 0x9f03,
++      0x1110, 0x080c, 0x861d, 0x00de, 0x0005, 0x080c, 0x7090, 0x0010,
++      0x080c, 0x7126, 0x080c, 0x9c5a, 0x01c0, 0x00d6, 0x6110, 0x2168,
++      0x6837, 0x0103, 0x2009, 0xb50c, 0x210c, 0xd18c, 0x11c0, 0xd184,
++      0x1198, 0x6108, 0x694a, 0xa18e, 0x0029, 0x1110, 0x080c, 0xb380,
++      0x6847, 0x0000, 0x080c, 0x5408, 0x00de, 0x080c, 0x861d, 0x080c,
++      0x7173, 0x080c, 0x7230, 0x0005, 0x684b, 0x0004, 0x0c88, 0x684b,
++      0x0004, 0x0c70, 0xa182, 0x0040, 0x0002, 0x96c0, 0x96c0, 0x96c0,
++      0x96c0, 0x96c0, 0x96c2, 0x96c0, 0x96c5, 0x96c0, 0x96c0, 0x96c0,
++      0x96c0, 0x96c0, 0x96c0, 0x96c0, 0x96c0, 0x96c0, 0x96c0, 0x96c0,
++      0x080c, 0x1515, 0x080c, 0x861d, 0x0005, 0x0006, 0x0026, 0xa016,
++      0x080c, 0x185e, 0x002e, 0x000e, 0x0005, 0xa182, 0x0085, 0x0002,
++      0x96d9, 0x96d7, 0x96d7, 0x96e5, 0x96d7, 0x96d7, 0x96d7, 0x080c,
++      0x1515, 0x6003, 0x0001, 0x6106, 0x080c, 0x6c8d, 0x0126, 0x2091,
++      0x8000, 0x080c, 0x7173, 0x012e, 0x0005, 0x0026, 0x0056, 0x00d6,
++      0x00e6, 0x2071, 0xbb80, 0x7224, 0x6212, 0x7220, 0x080c, 0x9c4a,
++      0x01a0, 0x2268, 0x6800, 0xa086, 0x0000, 0x0178, 0x6018, 0x6d18,
++      0xa52e, 0x1158, 0x00c6, 0x2d60, 0x080c, 0x991d, 0x00ce, 0x0128,
++      0x6803, 0x0002, 0x6007, 0x0086, 0x0010, 0x6007, 0x0087, 0x6003,
++      0x0001, 0x080c, 0x6c8d, 0x080c, 0x7173, 0x00f6, 0x2278, 0x080c,
++      0x5305, 0x00fe, 0x0150, 0x6820, 0xd0ec, 0x0138, 0x00c6, 0x2260,
++      0x603f, 0x0000, 0x080c, 0x9f35, 0x00ce, 0x00ee, 0x00de, 0x005e,
++      0x002e, 0x0005, 0xa186, 0x0013, 0x1160, 0x6004, 0xa08a, 0x0085,
++      0x0a0c, 0x1515, 0xa08a, 0x008c, 0x1a0c, 0x1515, 0xa082, 0x0085,
++      0x0072, 0xa186, 0x0027, 0x0120, 0xa186, 0x0014, 0x190c, 0x1515,
++      0x080c, 0x7090, 0x080c, 0x9e1d, 0x080c, 0x7173, 0x0005, 0x9746,
++      0x9748, 0x9748, 0x9746, 0x9746, 0x9746, 0x9746, 0x080c, 0x1515,
++      0x080c, 0x7090, 0x080c, 0x9e1d, 0x080c, 0x7173, 0x0005, 0xa186,
++      0x0013, 0x1128, 0x6004, 0xa082, 0x0085, 0x2008, 0x04a8, 0xa186,
++      0x0027, 0x11e8, 0x080c, 0x7090, 0x080c, 0x2c9c, 0x00d6, 0x6010,
++      0x2068, 0x080c, 0x9c5a, 0x0150, 0x6837, 0x0103, 0x6847, 0x0000,
++      0x684b, 0x0029, 0x080c, 0x5408, 0x080c, 0x9e11, 0x00de, 0x080c,
++      0x861d, 0x080c, 0x7173, 0x0005, 0x080c, 0x8663, 0x0ce0, 0xa186,
++      0x0014, 0x1dd0, 0x080c, 0x7090, 0x00d6, 0x6010, 0x2068, 0x080c,
++      0x9c5a, 0x0d60, 0x6837, 0x0103, 0x6847, 0x0000, 0x684b, 0x0006,
++      0x6850, 0xc0ec, 0x6852, 0x08f0, 0x0002, 0x9796, 0x9794, 0x9794,
++      0x9794, 0x9794, 0x9794, 0x97ae, 0x080c, 0x1515, 0x080c, 0x7090,
++      0x6030, 0xa08c, 0xff00, 0x810f, 0xa186, 0x0039, 0x0118, 0xa186,
++      0x0035, 0x1118, 0x2001, 0xb7b6, 0x0010, 0x2001, 0xb7b7, 0x2004,
++      0x6016, 0x6003, 0x000c, 0x080c, 0x7173, 0x0005, 0x080c, 0x7090,
++      0x6030, 0xa08c, 0xff00, 0x810f, 0xa186, 0x0039, 0x0118, 0xa186,
++      0x0035, 0x1118, 0x2001, 0xb7b6, 0x0010, 0x2001, 0xb7b7, 0x2004,
++      0x6016, 0x6003, 0x000e, 0x080c, 0x7173, 0x0005, 0xa182, 0x008c,
++      0x1220, 0xa182, 0x0085, 0x0208, 0x001a, 0x080c, 0x8663, 0x0005,
++      0x97d7, 0x97d7, 0x97d7, 0x97d7, 0x97d9, 0x9832, 0x97d7, 0x080c,
++      0x1515, 0x00d6, 0x00f6, 0x2c78, 0x080c, 0x5305, 0x00fe, 0x0168,
++      0x6030, 0xa08c, 0xff00, 0x810f, 0xa186, 0x0039, 0x0118, 0xa186,
++      0x0035, 0x1118, 0x00de, 0x0804, 0x9845, 0x080c, 0x9c5a, 0x1118,
++      0x080c, 0x9e11, 0x00f0, 0x6010, 0x2068, 0x684c, 0xd0e4, 0x1110,
++      0x080c, 0x9e11, 0x6837, 0x0103, 0x6850, 0xd0b4, 0x0128, 0x684b,
++      0x0006, 0xc0ec, 0x6852, 0x0048, 0xd0bc, 0x0118, 0x684b, 0x0002,
++      0x0020, 0x684b, 0x0005, 0x080c, 0x9ed2, 0x6847, 0x0000, 0x080c,
++      0x5408, 0x2c68, 0x080c, 0x85c7, 0x01c0, 0x6003, 0x0001, 0x6007,
++      0x001e, 0x600b, 0xffff, 0x2009, 0xbb8e, 0x210c, 0x6136, 0x2009,
++      0xbb8f, 0x210c, 0x613a, 0x6918, 0x611a, 0x080c, 0xa027, 0x6950,
++      0x6152, 0x601f, 0x0001, 0x080c, 0x6c8d, 0x2d60, 0x080c, 0x861d,
++      0x00de, 0x0005, 0x00f6, 0x2c78, 0x080c, 0x5305, 0x00fe, 0x0598,
++      0x6030, 0xa08c, 0xff00, 0x810f, 0xa186, 0x0035, 0x0130, 0xa186,
++      0x001e, 0x0118, 0xa186, 0x0039, 0x1530, 0x00d6, 0x2c68, 0x080c,
++      0xa10a, 0x1904, 0x988a, 0x080c, 0x85c7, 0x01d8, 0x6106, 0x6003,
++      0x0001, 0x601f, 0x0001, 0x6918, 0x611a, 0x6928, 0x612a, 0x692c,
++      0x612e, 0x6930, 0xa18c, 0x00ff, 0x6132, 0x6934, 0x6136, 0x6938,
++      0x613a, 0x6950, 0x6152, 0x080c, 0xa027, 0x080c, 0x6c8d, 0x080c,
++      0x7173, 0x2d60, 0x00f8, 0x00d6, 0x6010, 0x2068, 0x080c, 0x9c5a,
++      0x01c8, 0x6837, 0x0103, 0x6850, 0xd0b4, 0x0128, 0xc0ec, 0x6852,
++      0x684b, 0x0006, 0x0048, 0xd0bc, 0x0118, 0x684b, 0x0002, 0x0020,
++      0x684b, 0x0005, 0x080c, 0x9ed2, 0x6847, 0x0000, 0x080c, 0x5408,
++      0x080c, 0x9e11, 0x00de, 0x080c, 0x861d, 0x0005, 0x0016, 0x00d6,
++      0x6010, 0x2068, 0x080c, 0x9c5a, 0x0140, 0x6837, 0x0103, 0x684b,
++      0x0028, 0x6847, 0x0000, 0x080c, 0x5408, 0x00de, 0x001e, 0xa186,
++      0x0013, 0x0148, 0xa186, 0x0014, 0x0130, 0xa186, 0x0027, 0x0118,
++      0x080c, 0x8663, 0x0030, 0x080c, 0x7090, 0x080c, 0x9e1d, 0x080c,
++      0x7173, 0x0005, 0x0056, 0x0066, 0x00d6, 0x00f6, 0x2029, 0x0001,
++      0xa182, 0x0101, 0x1208, 0x0010, 0x2009, 0x0100, 0x2130, 0x2069,
++      0xbb98, 0x831c, 0x2300, 0xad18, 0x2009, 0x0020, 0xaf90, 0x001d,
++      0x080c, 0x990d, 0xa6b2, 0x0020, 0x7804, 0xa06d, 0x0110, 0x080c,
++      0x161f, 0x080c, 0x15f8, 0x0500, 0x8528, 0x6837, 0x0110, 0x683b,
++      0x0000, 0x2d20, 0x7c06, 0xa68a, 0x003d, 0x1228, 0x2608, 0xad90,
++      0x000f, 0x0459, 0x0088, 0xa6b2, 0x003c, 0x2009, 0x003c, 0x2d78,
++      0xad90, 0x000f, 0x0411, 0x0c28, 0x00fe, 0x852f, 0xa5ad, 0x0003,
++      0x7d36, 0xa5ac, 0x0000, 0x0028, 0x00fe, 0x852f, 0xa5ad, 0x0003,
++      0x7d36, 0x00de, 0x006e, 0x005e, 0x0005, 0x00f6, 0x8dff, 0x0158,
++      0x6804, 0xa07d, 0x0130, 0x6807, 0x0000, 0x080c, 0x5408, 0x2f68,
++      0x0cb8, 0x080c, 0x5408, 0x00fe, 0x0005, 0x0156, 0xa184, 0x0001,
++      0x0108, 0x8108, 0x810c, 0x21a8, 0x2304, 0x8007, 0x2012, 0x8318,
++      0x8210, 0x1f04, 0x9914, 0x015e, 0x0005, 0x0066, 0x0126, 0x2091,
++      0x8000, 0x2031, 0x0001, 0x601c, 0xa084, 0x000f, 0x0083, 0x012e,
++      0x006e, 0x0005, 0x0126, 0x2091, 0x8000, 0x0066, 0x2031, 0x0000,
++      0x601c, 0xa084, 0x000f, 0x001b, 0x006e, 0x012e, 0x0005, 0x9954,
++      0x9954, 0x994f, 0x9976, 0x9942, 0x994f, 0x9976, 0x994f, 0x994f,
++      0x9942, 0x994f, 0x080c, 0x1515, 0x0036, 0x2019, 0x0010, 0x080c,
++      0xace0, 0x601f, 0x0006, 0x6003, 0x0007, 0x003e, 0x0005, 0xa006,
++      0x0005, 0xa085, 0x0001, 0x0005, 0x00d6, 0x86ff, 0x11d8, 0x6010,
++      0x2068, 0x080c, 0x9c5a, 0x01c0, 0x6834, 0xa086, 0x0139, 0x1128,
++      0x684b, 0x0005, 0x6853, 0x0000, 0x0028, 0xa00e, 0x2001, 0x0005,
++      0x080c, 0x54db, 0x080c, 0x9ed2, 0x080c, 0x5408, 0x080c, 0x861d,
++      0xa085, 0x0001, 0x00de, 0x0005, 0xa006, 0x0ce0, 0x6000, 0xa08a,
++      0x0010, 0x1a0c, 0x1515, 0x000b, 0x0005, 0x998d, 0x99ae, 0x998f,
++      0x99cd, 0x99ab, 0x998d, 0x994f, 0x9954, 0x9954, 0x994f, 0x994f,
++      0x994f, 0x994f, 0x994f, 0x994f, 0x994f, 0x080c, 0x1515, 0x86ff,
++      0x11b8, 0x601c, 0xa086, 0x0006, 0x0198, 0x00d6, 0x6010, 0x2068,
++      0x080c, 0x9c5a, 0x0110, 0x080c, 0x9ed2, 0x00de, 0x6007, 0x0085,
++      0x6003, 0x000b, 0x601f, 0x0002, 0x080c, 0x6c8d, 0x080c, 0x7173,
++      0xa085, 0x0001, 0x0005, 0x080c, 0x194d, 0x0c08, 0x00e6, 0x2071,
++      0xb7e0, 0x7024, 0xac06, 0x1110, 0x080c, 0x7f59, 0x601c, 0xa084,
++      0x000f, 0xa086, 0x0006, 0x1150, 0x0086, 0x0096, 0x2049, 0x0001,
++      0x2c40, 0x080c, 0x8130, 0x009e, 0x008e, 0x0010, 0x080c, 0x7e58,
++      0x00ee, 0x1928, 0x080c, 0x994f, 0x0005, 0x0036, 0x00e6, 0x2071,
++      0xb7e0, 0x703c, 0xac06, 0x1140, 0x2019, 0x0000, 0x080c, 0x7fe4,
++      0x00ee, 0x003e, 0x0804, 0x998f, 0x080c, 0x825d, 0x00ee, 0x003e,
++      0x1904, 0x998f, 0x080c, 0x994f, 0x0005, 0x00c6, 0x601c, 0xa084,
++      0x000f, 0x0013, 0x00ce, 0x0005, 0x99fe, 0x9a6b, 0x9bb9, 0x9a09,
++      0x9e1d, 0x99fe, 0xacd2, 0xa14e, 0x9a6b, 0x99f7, 0x9c24, 0x080c,
++      0x1515, 0x080c, 0x9e58, 0x1110, 0x080c, 0x8c19, 0x0005, 0x080c,
++      0x7090, 0x080c, 0x7173, 0x080c, 0x861d, 0x0005, 0x6017, 0x0001,
++      0x0005, 0x080c, 0x9c5a, 0x0120, 0x6010, 0xa080, 0x0019, 0x2c02,
++      0x6000, 0xa08a, 0x0010, 0x1a0c, 0x1515, 0x000b, 0x0005, 0x9a27,
++      0x9a29, 0x9a49, 0x9a5b, 0x9a68, 0x9a27, 0x99fe, 0x99fe, 0x99fe,
++      0x9a5b, 0x9a5b, 0x9a27, 0x9a27, 0x9a27, 0x9a27, 0x9a65, 0x080c,
++      0x1515, 0x00e6, 0x6010, 0x2070, 0x7050, 0xc0b5, 0x7052, 0x2071,
++      0xb7e0, 0x7024, 0xac06, 0x0190, 0x080c, 0x7e58, 0x6007, 0x0085,
++      0x6003, 0x000b, 0x601f, 0x0002, 0x2001, 0xb7b7, 0x2004, 0x6016,
++      0x080c, 0x6c8d, 0x080c, 0x7173, 0x00ee, 0x0005, 0x6017, 0x0001,
++      0x0cd8, 0x00d6, 0x6010, 0x2068, 0x6850, 0xc0b5, 0x6852, 0x00de,
++      0x6007, 0x0085, 0x6003, 0x000b, 0x601f, 0x0002, 0x080c, 0x6c8d,
++      0x080c, 0x7173, 0x0005, 0x00d6, 0x6017, 0x0001, 0x6010, 0x2068,
++      0x6850, 0xc0b5, 0x6852, 0x00de, 0x0005, 0x080c, 0x861d, 0x0005,
++      0x080c, 0x194d, 0x08f0, 0x6000, 0xa08a, 0x0010, 0x1a0c, 0x1515,
++      0x000b, 0x0005, 0x9a82, 0x9a06, 0x9a84, 0x9a82, 0x9a84, 0x9a84,
++      0x99ff, 0x9a82, 0x99f9, 0x99f9, 0x9a82, 0x9a82, 0x9a82, 0x9a82,
++      0x9a82, 0x9a82, 0x080c, 0x1515, 0x00d6, 0x6018, 0x2068, 0x6804,
++      0xa084, 0x00ff, 0x00de, 0xa08a, 0x000c, 0x1a0c, 0x1515, 0x000b,
++      0x0005, 0x9a9d, 0x9b5f, 0x9a9f, 0x9add, 0x9a9f, 0x9add, 0x9a9f,
++      0x9aad, 0x9a9d, 0x9add, 0x9a9d, 0x9ac9, 0x080c, 0x1515, 0x6004,
++      0xa08e, 0x0016, 0x05a8, 0xa08e, 0x0004, 0x0590, 0xa08e, 0x0002,
++      0x0578, 0xa08e, 0x004b, 0x0904, 0x9b5b, 0x6004, 0x080c, 0x9e58,
++      0x0904, 0x9b78, 0xa08e, 0x0021, 0x0904, 0x9b7c, 0xa08e, 0x0022,
++      0x0904, 0x9b78, 0xa08e, 0x003d, 0x0904, 0x9b7c, 0xa08e, 0x0039,
++      0x0904, 0x9b80, 0xa08e, 0x0035, 0x0904, 0x9b80, 0xa08e, 0x001e,
++      0x0188, 0xa08e, 0x0001, 0x1150, 0x00d6, 0x6018, 0x2068, 0x6804,
++      0xa084, 0x00ff, 0x00de, 0xa086, 0x0006, 0x0110, 0x080c, 0x2c9c,
++      0x080c, 0x8c19, 0x080c, 0x9e1d, 0x0005, 0x00c6, 0x00d6, 0x6104,
++      0xa186, 0x0016, 0x0904, 0x9b4c, 0xa186, 0x0002, 0x15d8, 0x2001,
++      0xb535, 0x2004, 0xd08c, 0x1198, 0x080c, 0x5acf, 0x1180, 0x2001,
++      0xb79f, 0x2003, 0x0001, 0x2001, 0xb500, 0x2003, 0x0001, 0xa085,
++      0x0001, 0x080c, 0x5b13, 0x080c, 0x5a07, 0x0804, 0x9ba2, 0x6018,
++      0x2068, 0x2001, 0xb535, 0x2004, 0xd0ac, 0x1904, 0x9ba2, 0x68a0,
++      0xd0bc, 0x1904, 0x9ba2, 0x6840, 0xa084, 0x00ff, 0xa005, 0x0190,
++      0x8001, 0x6842, 0x6013, 0x0000, 0x601f, 0x0007, 0x6017, 0x0398,
++      0x603f, 0x0000, 0x080c, 0x85c7, 0x0128, 0x2d00, 0x601a, 0x601f,
++      0x0001, 0x0450, 0x00de, 0x00ce, 0x6004, 0xa08e, 0x0002, 0x11a8,
++      0x6018, 0xa080, 0x0028, 0x2004, 0xa086, 0x007e, 0x1170, 0x2009,
++      0xb535, 0x2104, 0xc085, 0x200a, 0x00e6, 0x2071, 0xb500, 0x080c,
++      0x4bc6, 0x00ee, 0x080c, 0x8c19, 0x0020, 0x080c, 0x8c19, 0x080c,
++      0x2c9c, 0x00e6, 0x0126, 0x2091, 0x8000, 0x080c, 0x2cc2, 0x012e,
++      0x00ee, 0x080c, 0x9e1d, 0x0005, 0x2001, 0x0002, 0x080c, 0x4efd,
++      0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x6cd3, 0x080c, 0x7173,
++      0x00de, 0x00ce, 0x0c80, 0x080c, 0x2cc2, 0x0804, 0x9ad8, 0x00c6,
++      0x00d6, 0x6104, 0xa186, 0x0016, 0x0d38, 0x6018, 0x2068, 0x6840,
++      0xa084, 0x00ff, 0xa005, 0x0904, 0x9b22, 0x8001, 0x6842, 0x6003,
++      0x0001, 0x080c, 0x6cd3, 0x080c, 0x7173, 0x00de, 0x00ce, 0x0898,
++      0x080c, 0x8c19, 0x0804, 0x9ada, 0x080c, 0x8c47, 0x0804, 0x9ada,
++      0x00d6, 0x2c68, 0x6104, 0x080c, 0xa10a, 0x00de, 0x0118, 0x080c,
++      0x861d, 0x00b8, 0x6004, 0x8007, 0x6130, 0xa18c, 0x00ff, 0xa105,
++      0x6032, 0x6007, 0x0085, 0x6003, 0x000b, 0x601f, 0x0002, 0x6038,
++      0x600a, 0x2001, 0xb7b7, 0x2004, 0x6016, 0x080c, 0x6c8d, 0x080c,
++      0x7173, 0x0005, 0x00de, 0x00ce, 0x080c, 0x8c19, 0x080c, 0x2c9c,
++      0x00e6, 0x0126, 0x2091, 0x8000, 0x080c, 0x2cc2, 0x6013, 0x0000,
++      0x601f, 0x0007, 0x6017, 0x0398, 0x603f, 0x0000, 0x012e, 0x00ee,
++      0x0005, 0x6000, 0xa08a, 0x0010, 0x1a0c, 0x1515, 0x000b, 0x0005,
++      0x9bd0, 0x9bd0, 0x9bd0, 0x9bd0, 0x9bd0, 0x9bd0, 0x9bd0, 0x9bd0,
++      0x9bd0, 0x99fe, 0x9bd0, 0x9a06, 0x9bd2, 0x9a06, 0x9bdf, 0x9bd0,
++      0x080c, 0x1515, 0x6004, 0xa086, 0x008b, 0x0148, 0x6007, 0x008b,
++      0x6003, 0x000d, 0x080c, 0x6c8d, 0x080c, 0x7173, 0x0005, 0x080c,
++      0x9e11, 0x080c, 0x9c5a, 0x0580, 0x080c, 0x2c9c, 0x00d6, 0x080c,
++      0x9c5a, 0x0168, 0x6010, 0x2068, 0x6837, 0x0103, 0x684b, 0x0006,
++      0x6847, 0x0000, 0x6850, 0xc0ed, 0x6852, 0x080c, 0x5408, 0x2c68,
++      0x080c, 0x85c7, 0x0150, 0x6818, 0x601a, 0x080c, 0xa027, 0x00c6,
++      0x2d60, 0x080c, 0x9e1d, 0x00ce, 0x0008, 0x2d60, 0x00de, 0x6013,
++      0x0000, 0x601f, 0x0001, 0x6007, 0x0001, 0x6003, 0x0001, 0x080c,
++      0x6cd3, 0x080c, 0x7173, 0x0078, 0x6030, 0xa08c, 0xff00, 0x810f,
++      0xa186, 0x0039, 0x0118, 0xa186, 0x0035, 0x1118, 0x080c, 0x2c9c,
++      0x08b0, 0x080c, 0x9e1d, 0x0005, 0x6000, 0xa08a, 0x0010, 0x1a0c,
++      0x1515, 0x000b, 0x0005, 0x9c3b, 0x9c3b, 0x9c3b, 0x9c3d, 0x9c3d,
++      0x9c3b, 0x9c3b, 0x9c3b, 0x9c3b, 0x9c3b, 0x9c3b, 0x9c3b, 0x9c3b,
++      0x9c3b, 0x9c3b, 0x9c3b, 0x080c, 0x1515, 0x080c, 0x825d, 0x190c,
++      0x1515, 0x6110, 0x2168, 0x684b, 0x0006, 0x080c, 0x5408, 0x080c,
++      0x861d, 0x0005, 0xa284, 0x0007, 0x1158, 0xa282, 0xbd00, 0x0240,
++      0x2001, 0xb517, 0x2004, 0xa202, 0x1218, 0xa085, 0x0001, 0x0005,
++      0xa006, 0x0ce8, 0x0026, 0x6210, 0xa294, 0xf000, 0x002e, 0x0005,
++      0x00e6, 0x00c6, 0x0036, 0x0006, 0x0126, 0x2091, 0x8000, 0x2061,
++      0xbd00, 0x2071, 0xb500, 0x7348, 0x7068, 0xa302, 0x12a8, 0x601c,
++      0xa206, 0x1160, 0x080c, 0x9fb2, 0x0148, 0x080c, 0x9e58, 0x1110,
++      0x080c, 0x8c19, 0x00c6, 0x080c, 0x861d, 0x00ce, 0xace0, 0x0018,
++      0x705c, 0xac02, 0x1208, 0x0c38, 0x012e, 0x000e, 0x003e, 0x00ce,
++      0x00ee, 0x0005, 0x00e6, 0x00c6, 0x0016, 0xa188, 0xb635, 0x210c,
++      0x81ff, 0x0128, 0x2061, 0xb8f4, 0x611a, 0x080c, 0x2c9c, 0xa006,
++      0x0010, 0xa085, 0x0001, 0x001e, 0x00ce, 0x00ee, 0x0005, 0x00c6,
++      0x0056, 0x0126, 0x2091, 0x8000, 0x00c6, 0x080c, 0x85c7, 0x005e,
++      0x0180, 0x6612, 0x651a, 0x080c, 0xa027, 0x601f, 0x0003, 0x2009,
++      0x004b, 0x080c, 0x864c, 0xa085, 0x0001, 0x012e, 0x005e, 0x00ce,
++      0x0005, 0xa006, 0x0cd0, 0x00c6, 0x0056, 0x0126, 0x2091, 0x8000,
++      0x62a0, 0x00c6, 0x080c, 0x9ed6, 0x005e, 0x0550, 0x6013, 0x0000,
++      0x651a, 0x080c, 0xa027, 0x601f, 0x0003, 0x0016, 0x00c6, 0x2560,
++      0x080c, 0x51aa, 0x00ce, 0x080c, 0x6df5, 0x0076, 0x2039, 0x0000,
++      0x080c, 0x6d02, 0x2c08, 0x080c, 0xae82, 0x007e, 0x001e, 0xd184,
++      0x0128, 0x080c, 0x861d, 0xa085, 0x0001, 0x0030, 0x2009, 0x004c,
++      0x080c, 0x864c, 0xa085, 0x0001, 0x012e, 0x005e, 0x00ce, 0x0005,
++      0xa006, 0x0cd0, 0x00f6, 0x00c6, 0x0046, 0x00c6, 0x080c, 0x85c7,
++      0x2c78, 0x00ce, 0x0180, 0x7e12, 0x2c00, 0x781a, 0x781f, 0x0003,
++      0x2021, 0x0005, 0x080c, 0x9d50, 0x2f60, 0x2009, 0x004d, 0x080c,
++      0x864c, 0xa085, 0x0001, 0x004e, 0x00ce, 0x00fe, 0x0005, 0x00f6,
++      0x00c6, 0x0046, 0x00c6, 0x080c, 0x85c7, 0x2c78, 0x00ce, 0x0178,
++      0x7e12, 0x2c00, 0x781a, 0x781f, 0x0003, 0x2021, 0x0005, 0x0481,
++      0x2f60, 0x2009, 0x004e, 0x080c, 0x864c, 0xa085, 0x0001, 0x004e,
++      0x00ce, 0x00fe, 0x0005, 0x00f6, 0x00c6, 0x0046, 0x00c6, 0x080c,
++      0x85c7, 0x2c78, 0x00ce, 0x01c0, 0x7e12, 0x2c00, 0x781a, 0x781f,
++      0x0003, 0x2021, 0x0004, 0x00a1, 0x2001, 0xb7a0, 0x2004, 0xd0fc,
++      0x0120, 0x2f60, 0x080c, 0x861d, 0x0028, 0x2f60, 0x2009, 0x0052,
++      0x080c, 0x864c, 0xa085, 0x0001, 0x004e, 0x00ce, 0x00fe, 0x0005,
++      0x0096, 0x0076, 0x0126, 0x2091, 0x8000, 0x080c, 0x514c, 0x0118,
++      0x2001, 0x9d55, 0x0028, 0x080c, 0x511c, 0x0158, 0x2001, 0x9d5b,
++      0x0006, 0xa00e, 0x2400, 0x080c, 0x54db, 0x080c, 0x5408, 0x000e,
++      0x0807, 0x2418, 0x080c, 0x702f, 0x62a0, 0x0086, 0x2041, 0x0001,
++      0x2039, 0x0001, 0x2608, 0x080c, 0x6e0e, 0x008e, 0x080c, 0x6d02,
++      0x2f08, 0x2648, 0x080c, 0xae82, 0x613c, 0x81ff, 0x090c, 0x6ec3,
++      0x080c, 0x7173, 0x012e, 0x007e, 0x009e, 0x0005, 0x00c6, 0x0126,
++      0x2091, 0x8000, 0x00c6, 0x080c, 0x85c7, 0x001e, 0x0188, 0x660a,
++      0x611a, 0x080c, 0xa027, 0x601f, 0x0001, 0x2d00, 0x6012, 0x2009,
++      0x001f, 0x080c, 0x864c, 0xa085, 0x0001, 0x012e, 0x00ce, 0x0005,
++      0xa006, 0x0cd8, 0x00c6, 0x0126, 0x2091, 0x8000, 0x00c6, 0x080c,
++      0x85c7, 0x001e, 0x0188, 0x660a, 0x611a, 0x080c, 0xa027, 0x601f,
++      0x0008, 0x2d00, 0x6012, 0x2009, 0x0021, 0x080c, 0x864c, 0xa085,
++      0x0001, 0x012e, 0x00ce, 0x0005, 0xa006, 0x0cd8, 0x00c6, 0x0126,
++      0x2091, 0x8000, 0x00c6, 0x080c, 0x85c7, 0x001e, 0x0188, 0x660a,
++      0x611a, 0x080c, 0xa027, 0x601f, 0x0001, 0x2d00, 0x6012, 0x2009,
++      0x003d, 0x080c, 0x864c, 0xa085, 0x0001, 0x012e, 0x00ce, 0x0005,
++      0xa006, 0x0cd8, 0x00c6, 0x0126, 0x2091, 0x8000, 0x00c6, 0x080c,
++      0x9ed6, 0x001e, 0x0180, 0x611a, 0x080c, 0xa027, 0x601f, 0x0001,
++      0x2d00, 0x6012, 0x2009, 0x0000, 0x080c, 0x864c, 0xa085, 0x0001,
++      0x012e, 0x00ce, 0x0005, 0xa006, 0x0cd8, 0x00c6, 0x0126, 0x2091,
++      0x8000, 0x00c6, 0x080c, 0x85c7, 0x001e, 0x0188, 0x660a, 0x611a,
++      0x080c, 0xa027, 0x601f, 0x0001, 0x2d00, 0x6012, 0x2009, 0x0044,
++      0x080c, 0x864c, 0xa085, 0x0001, 0x012e, 0x00ce, 0x0005, 0xa006,
++      0x0cd8, 0x0026, 0x00d6, 0x6218, 0x2268, 0x6a3c, 0x82ff, 0x0110,
++      0x8211, 0x6a3e, 0x00de, 0x002e, 0x0005, 0x0006, 0x6000, 0xa086,
++      0x0000, 0x0190, 0x6013, 0x0000, 0x601f, 0x0007, 0x2001, 0xb7b6,
++      0x2004, 0x0006, 0xa082, 0x0051, 0x000e, 0x0208, 0x8004, 0x6016,
++      0x080c, 0xb33a, 0x603f, 0x0000, 0x000e, 0x0005, 0x0066, 0x00c6,
++      0x00d6, 0x2031, 0xb553, 0x2634, 0xd6e4, 0x0128, 0x6618, 0x2660,
++      0x6e48, 0x080c, 0x50d5, 0x00de, 0x00ce, 0x006e, 0x0005, 0x0006,
++      0x0016, 0x6004, 0xa08e, 0x0002, 0x0140, 0xa08e, 0x0003, 0x0128,
++      0xa08e, 0x0004, 0x0110, 0xa085, 0x0001, 0x001e, 0x000e, 0x0005,
++      0x0006, 0x00d6, 0x6010, 0xa06d, 0x0148, 0x6834, 0xa086, 0x0139,
++      0x0138, 0x6838, 0xd0fc, 0x0110, 0xa006, 0x0010, 0xa085, 0x0001,
++      0x00de, 0x000e, 0x0005, 0x00c6, 0x0126, 0x2091, 0x8000, 0x00c6,
++      0x080c, 0x85c7, 0x001e, 0x0190, 0x611a, 0x080c, 0xa027, 0x601f,
++      0x0001, 0x2d00, 0x6012, 0x080c, 0x2c9c, 0x2009, 0x0028, 0x080c,
++      0x864c, 0xa085, 0x0001, 0x012e, 0x00ce, 0x0005, 0xa006, 0x0cd8,
++      0xa186, 0x0015, 0x1178, 0x2011, 0xb521, 0x2204, 0xa086, 0x0074,
++      0x1148, 0x080c, 0x8f98, 0x6003, 0x0001, 0x6007, 0x0029, 0x080c,
++      0x6cd3, 0x0020, 0x080c, 0x8c19, 0x080c, 0x861d, 0x0005, 0xa186,
++      0x0016, 0x1128, 0x2001, 0x0004, 0x080c, 0x4efd, 0x00e8, 0xa186,
++      0x0015, 0x11e8, 0x2011, 0xb521, 0x2204, 0xa086, 0x0014, 0x11b8,
++      0x00d6, 0x6018, 0x2068, 0x080c, 0x504b, 0x00de, 0x080c, 0x9051,
++      0x1170, 0x00d6, 0x6018, 0x2068, 0x6890, 0x00de, 0xa005, 0x0138,
++      0x2001, 0x0006, 0x080c, 0x4efd, 0x080c, 0x87a0, 0x0020, 0x080c,
++      0x8c19, 0x080c, 0x861d, 0x0005, 0x6848, 0xa086, 0x0005, 0x1108,
++      0x0009, 0x0005, 0x6850, 0xc0ad, 0x6852, 0x0005, 0x00e6, 0x0126,
++      0x2071, 0xb500, 0x2091, 0x8000, 0x7548, 0xa582, 0x0001, 0x0608,
++      0x704c, 0x2060, 0x6000, 0xa086, 0x0000, 0x0148, 0xace0, 0x0018,
++      0x705c, 0xac02, 0x1208, 0x0cb0, 0x2061, 0xbd00, 0x0c98, 0x6003,
++      0x0008, 0x8529, 0x754a, 0xaca8, 0x0018, 0x705c, 0xa502, 0x1230,
++      0x754e, 0xa085, 0x0001, 0x012e, 0x00ee, 0x0005, 0x704f, 0xbd00,
++      0x0cc0, 0xa006, 0x0cc0, 0x00e6, 0x2071, 0xbb8c, 0x7014, 0xd0e4,
++      0x0150, 0x6013, 0x0000, 0x6003, 0x0001, 0x6007, 0x0050, 0x080c,
++      0x6c8d, 0x080c, 0x7173, 0x00ee, 0x0005, 0x00c6, 0x00f6, 0x2c78,
++      0x080c, 0x5305, 0x00fe, 0x0120, 0x601c, 0xa084, 0x000f, 0x0013,
++      0x00ce, 0x0005, 0x99fe, 0x9f2d, 0x9f30, 0x9f33, 0xb127, 0xb142,
++      0xb145, 0x99fe, 0x99fe, 0x080c, 0x1515, 0xe000, 0xe000, 0x0005,
++      0xe000, 0xe000, 0x0005, 0x0009, 0x0005, 0x00f6, 0x2c78, 0x080c,
++      0x5305, 0x0538, 0x080c, 0x85c7, 0x1128, 0x2001, 0xb7b8, 0x2004,
++      0x783e, 0x00f8, 0x7818, 0x601a, 0x080c, 0xa027, 0x781c, 0xa086,
++      0x0003, 0x0128, 0x7808, 0x6036, 0x2f00, 0x603a, 0x0020, 0x7808,
++      0x603a, 0x2f00, 0x6036, 0x602a, 0x601f, 0x0001, 0x6007, 0x0035,
++      0x6003, 0x0001, 0x7950, 0x6152, 0x080c, 0x6c8d, 0x080c, 0x7173,
++      0x2f60, 0x00fe, 0x0005, 0x0016, 0x00f6, 0x682c, 0x6032, 0xa08e,
++      0x0001, 0x0138, 0xa086, 0x0005, 0x0140, 0xa006, 0x602a, 0x602e,
++      0x00a0, 0x6820, 0xc0f4, 0xc0d5, 0x6822, 0x6810, 0x2078, 0x787c,
++      0x6938, 0xa102, 0x7880, 0x6934, 0xa103, 0x1e78, 0x6834, 0x602a,
++      0x6838, 0xa084, 0xfffc, 0x683a, 0x602e, 0x2d00, 0x6036, 0x6808,
++      0x603a, 0x6918, 0x611a, 0x6950, 0x6152, 0x601f, 0x0001, 0x6007,
++      0x0039, 0x6003, 0x0001, 0x080c, 0x6c8d, 0x6803, 0x0002, 0x00fe,
++      0x001e, 0x0005, 0x00f6, 0x2c78, 0x080c, 0x5305, 0x1118, 0xa085,
++      0x0001, 0x0070, 0x6020, 0xd0f4, 0x1150, 0xc0f5, 0x6022, 0x6010,
++      0x2078, 0x7828, 0x603a, 0x782c, 0x6036, 0x080c, 0x194d, 0xa006,
++      0x00fe, 0x0005, 0x0006, 0x0016, 0x6004, 0xa08e, 0x0034, 0x01b8,
++      0xa08e, 0x0035, 0x01a0, 0xa08e, 0x0036, 0x0188, 0xa08e, 0x0037,
++      0x0170, 0xa08e, 0x0038, 0x0158, 0xa08e, 0x0039, 0x0140, 0xa08e,
++      0x003a, 0x0128, 0xa08e, 0x003b, 0x0110, 0xa085, 0x0001, 0x001e,
++      0x000e, 0x0005, 0x0006, 0x0016, 0x0026, 0x0036, 0x00e6, 0x2001,
++      0xb7b2, 0x200c, 0x8000, 0x2014, 0x2001, 0x0032, 0x080c, 0x6b40,
++      0x2001, 0xb7b6, 0x82ff, 0x1110, 0x2011, 0x0014, 0x2202, 0x2001,
++      0xb7b4, 0x200c, 0x8000, 0x2014, 0x2071, 0xb78e, 0x711a, 0x721e,
++      0x2001, 0x0064, 0x080c, 0x6b40, 0x2001, 0xb7b7, 0x82ff, 0x1110,
++      0x2011, 0x0014, 0x2202, 0x2009, 0xb7b8, 0xa280, 0x000a, 0x200a,
++      0x080c, 0x532a, 0x00ee, 0x003e, 0x002e, 0x001e, 0x000e, 0x0005,
++      0x0006, 0x00e6, 0x2001, 0xb7b6, 0x2003, 0x0028, 0x2001, 0xb7b7,
++      0x2003, 0x0014, 0x2071, 0xb78e, 0x701b, 0x0000, 0x701f, 0x07d0,
++      0x2001, 0xb7b8, 0x2003, 0x001e, 0x00ee, 0x000e, 0x0005, 0x00d6,
++      0x6054, 0xa06d, 0x0110, 0x080c, 0x160f, 0x00de, 0x0005, 0x0005,
++      0x00c6, 0x0126, 0x2091, 0x8000, 0x00c6, 0x080c, 0x85c7, 0x001e,
++      0x0178, 0x611a, 0x0ca1, 0x601f, 0x0001, 0x2d00, 0x6012, 0x2009,
++      0x0033, 0x080c, 0x864c, 0xa085, 0x0001, 0x012e, 0x00ce, 0x0005,
++      0xa006, 0x0cd8, 0x00d6, 0x00e6, 0x00f6, 0x2071, 0xb500, 0xa186,
++      0x0015, 0x1500, 0x7084, 0xa086, 0x0018, 0x11e0, 0x6010, 0x2068,
++      0x6a3c, 0xd2e4, 0x1160, 0x2c78, 0x080c, 0x7331, 0x01d8, 0x7070,
++      0x6a50, 0xa206, 0x1160, 0x7074, 0x6a54, 0xa206, 0x1140, 0x6218,
++      0xa290, 0x0028, 0x2214, 0x2009, 0x0000, 0x080c, 0x2ce1, 0x080c,
++      0x87a0, 0x0020, 0x080c, 0x8c19, 0x080c, 0x861d, 0x00fe, 0x00ee,
++      0x00de, 0x0005, 0x7054, 0x6a54, 0xa206, 0x0d48, 0x0c80, 0x00c6,
++      0x0126, 0x2091, 0x8000, 0x00c6, 0x080c, 0x85c7, 0x001e, 0x0180,
++      0x611a, 0x080c, 0xa027, 0x601f, 0x0001, 0x2d00, 0x6012, 0x2009,
++      0x0043, 0x080c, 0x864c, 0xa085, 0x0001, 0x012e, 0x00ce, 0x0005,
++      0xa006, 0x0cd8, 0x00d6, 0x00e6, 0x00f6, 0x2071, 0xb500, 0xa186,
++      0x0015, 0x11c0, 0x7084, 0xa086, 0x0004, 0x11a0, 0x6010, 0xa0e8,
++      0x000f, 0x2c78, 0x080c, 0x7331, 0x01a8, 0x7070, 0x6a08, 0xa206,
++      0x1130, 0x7074, 0x6a0c, 0xa206, 0x1110, 0x080c, 0x2c9c, 0x080c,
++      0x87a0, 0x0020, 0x080c, 0x8c19, 0x080c, 0x861d, 0x00fe, 0x00ee,
++      0x00de, 0x0005, 0x7054, 0x6a0c, 0xa206, 0x0d78, 0x0c80, 0x0016,
++      0x0026, 0x684c, 0xd0ac, 0x0178, 0x6914, 0x6a10, 0x2100, 0xa205,
++      0x0150, 0x6860, 0xa106, 0x1118, 0x685c, 0xa206, 0x0120, 0x6962,
++      0x6a5e, 0xa085, 0x0001, 0x002e, 0x001e, 0x0005, 0x00d6, 0x0036,
++      0x6310, 0x2368, 0x684a, 0x6952, 0xa29e, 0x4000, 0x11a0, 0x00c6,
++      0x6318, 0x2360, 0x2009, 0x0000, 0x6838, 0xd0f4, 0x1140, 0x080c,
++      0x524a, 0x1108, 0xc185, 0x6000, 0xd0bc, 0x0108, 0xc18d, 0x6a66,
++      0x696a, 0x00ce, 0x0080, 0x6a66, 0x3918, 0xa398, 0x0006, 0x231c,
++      0x686b, 0x0004, 0x6b72, 0x00c6, 0x6318, 0x2360, 0x6004, 0xa084,
++      0x00ff, 0x686e, 0x00ce, 0x080c, 0x5408, 0x6013, 0x0000, 0x003e,
++      0x00de, 0x0005, 0x00c6, 0x0026, 0x0016, 0xa186, 0x0035, 0x0110,
++      0x6a34, 0x0008, 0x6a28, 0x080c, 0x9c4a, 0x01f0, 0x2260, 0x611c,
++      0xa186, 0x0003, 0x0118, 0xa186, 0x0006, 0x1190, 0x6834, 0xa206,
++      0x0140, 0x6838, 0xa206, 0x1160, 0x6108, 0x6834, 0xa106, 0x1140,
++      0x0020, 0x6008, 0x6938, 0xa106, 0x1118, 0x6018, 0x6918, 0xa106,
++      0x001e, 0x002e, 0x00ce, 0x0005, 0xa085, 0x0001, 0x0cc8, 0x6944,
++      0xd1cc, 0x0198, 0xa18c, 0x00ff, 0xa18e, 0x0002, 0x1170, 0xad88,
++      0x001e, 0x210c, 0xa18c, 0x0f00, 0x810f, 0xa18e, 0x0001, 0x1128,
++      0x6810, 0x6914, 0xa115, 0x190c, 0x9483, 0x0005, 0x080c, 0x861d,
++      0x0804, 0x7173, 0x0066, 0x6000, 0xa0b2, 0x0010, 0x1a0c, 0x1515,
++      0x0013, 0x006e, 0x0005, 0xa16b, 0xa646, 0xa76c, 0xa16b, 0xa16b,
++      0xa16b, 0xa16b, 0xa16b, 0xa1a3, 0xa7f0, 0xa16b, 0xa16b, 0xa16b,
++      0xa16b, 0xa16b, 0xa16b, 0x080c, 0x1515, 0x0066, 0x6000, 0xa0b2,
++      0x0010, 0x1a0c, 0x1515, 0x0013, 0x006e, 0x0005, 0xa186, 0xac77,
++      0xa186, 0xa186, 0xa186, 0xa186, 0xa186, 0xa186, 0xac39, 0xacbf,
++      0xa186, 0xb26c, 0xb29c, 0xb26c, 0xb29c, 0xa186, 0x080c, 0x1515,
+       0x0066, 0x6000, 0xa0b2, 0x0010, 0x1a0c, 0x1515, 0x0013, 0x006e,
+-      0x0005, 0xa161, 0xa63c, 0xa762, 0xa161, 0xa161, 0xa161, 0xa161,
+-      0xa161, 0xa199, 0xa7e6, 0xa161, 0xa161, 0xa161, 0xa161, 0xa161,
+-      0xa161, 0x080c, 0x1515, 0x0066, 0x6000, 0xa0b2, 0x0010, 0x1a0c,
+-      0x1515, 0x0013, 0x006e, 0x0005, 0xa17c, 0xac6b, 0xa17c, 0xa17c,
+-      0xa17c, 0xa17c, 0xa17c, 0xa17c, 0xac2f, 0xacb3, 0xa17c, 0xb260,
+-      0xb290, 0xb260, 0xb290, 0xa17c, 0x080c, 0x1515, 0x0066, 0x6000,
+-      0xa0b2, 0x0010, 0x1a0c, 0x1515, 0x0013, 0x006e, 0x0005, 0xa197,
+-      0xa936, 0xaa03, 0xaa30, 0xaab4, 0xa197, 0xaba1, 0xab4c, 0xa7f2,
+-      0xac05, 0xac1a, 0xa197, 0xa197, 0xa197, 0xa197, 0xa197, 0x080c,
+-      0x1515, 0xa1b2, 0x0080, 0x1a0c, 0x1515, 0x2100, 0xa1b2, 0x0040,
+-      0x1a04, 0xa5b0, 0x0002, 0xa1e3, 0xa3ae, 0xa1e3, 0xa1e3, 0xa1e3,
+-      0xa3b5, 0xa1e3, 0xa1e3, 0xa1e3, 0xa1e3, 0xa1e3, 0xa1e3, 0xa1e3,
+-      0xa1e3, 0xa1e3, 0xa1e3, 0xa1e3, 0xa1e3, 0xa1e3, 0xa1e3, 0xa1e3,
+-      0xa1e3, 0xa1e3, 0xa1e5, 0xa243, 0xa252, 0xa2a0, 0xa2be, 0xa33c,
+-      0xa39b, 0xa1e3, 0xa1e3, 0xa3b8, 0xa1e3, 0xa1e3, 0xa3cb, 0xa3d6,
+-      0xa1e3, 0xa1e3, 0xa1e3, 0xa1e3, 0xa1e3, 0xa461, 0xa1e3, 0xa1e3,
+-      0xa474, 0xa1e3, 0xa1e3, 0xa42c, 0xa1e3, 0xa1e3, 0xa1e3, 0xa48c,
+-      0xa1e3, 0xa1e3, 0xa1e3, 0xa506, 0xa1e3, 0xa1e3, 0xa1e3, 0xa1e3,
+-      0xa1e3, 0xa1e3, 0xa577, 0x080c, 0x1515, 0x080c, 0x530a, 0x1150,
+-      0x2001, 0xb535, 0x2004, 0xd0cc, 0x1128, 0xa084, 0x0009, 0xa086,
+-      0x0008, 0x1140, 0x6007, 0x0009, 0x602b, 0x0009, 0x6013, 0x0000,
+-      0x0804, 0xa3a9, 0x080c, 0x52fa, 0x00e6, 0x00c6, 0x0036, 0x0026,
+-      0x0016, 0x6218, 0x2270, 0x72a0, 0x0026, 0x2019, 0x0029, 0x080c,
+-      0x6df6, 0x0076, 0x2039, 0x0000, 0x080c, 0x6d03, 0x2c08, 0x080c,
+-      0xae76, 0x007e, 0x001e, 0x2e60, 0x080c, 0x51ab, 0x001e, 0x002e,
+-      0x003e, 0x00ce, 0x00ee, 0x6618, 0x00c6, 0x2660, 0x080c, 0x4fb9,
+-      0x00ce, 0xa6b0, 0x0001, 0x2634, 0xa684, 0x00ff, 0xa082, 0x0006,
+-      0x0278, 0x080c, 0xadba, 0x1904, 0xa29a, 0x080c, 0xad5a, 0x1120,
+-      0x6007, 0x0008, 0x0804, 0xa3a9, 0x6007, 0x0009, 0x0804, 0xa3a9,
+-      0x080c, 0xaf6f, 0x0128, 0x080c, 0xadba, 0x0d78, 0x0804, 0xa29a,
+-      0x6013, 0x1900, 0x0c88, 0x080c, 0x2dbf, 0x1904, 0xa5ad, 0x6106,
+-      0x080c, 0xad14, 0x6007, 0x0006, 0x0804, 0xa3a9, 0x6007, 0x0007,
+-      0x0804, 0xa3a9, 0x080c, 0xb2c4, 0x1904, 0xa5ad, 0x080c, 0x2dbf,
+-      0x1904, 0xa5ad, 0x00d6, 0x6618, 0x2668, 0x6e04, 0xa684, 0x00ff,
+-      0xa082, 0x0006, 0x1220, 0x2001, 0x0001, 0x080c, 0x4eec, 0xa6b4,
+-      0xff00, 0x8637, 0xa686, 0x0006, 0x0188, 0xa686, 0x0004, 0x0170,
+-      0x6e04, 0xa6b4, 0x00ff, 0xa686, 0x0006, 0x0140, 0xa686, 0x0004,
+-      0x0128, 0xa686, 0x0005, 0x0110, 0x00de, 0x00e0, 0x080c, 0xae18,
+-      0x11a0, 0xa686, 0x0006, 0x1150, 0x0026, 0x6218, 0xa290, 0x0028,
+-      0x2214, 0x2009, 0x0000, 0x080c, 0x2ce1, 0x002e, 0x080c, 0x504c,
+-      0x6007, 0x000a, 0x00de, 0x0804, 0xa3a9, 0x6007, 0x000b, 0x00de,
+-      0x0804, 0xa3a9, 0x080c, 0x2c9c, 0x6007, 0x0001, 0x0804, 0xa3a9,
+-      0x080c, 0xb2c4, 0x1904, 0xa5ad, 0x080c, 0x2dbf, 0x1904, 0xa5ad,
+-      0x6618, 0x00d6, 0x2668, 0x6e04, 0x00de, 0xa686, 0x0707, 0x0d50,
+-      0x0026, 0x6218, 0xa290, 0x0028, 0x2214, 0x2009, 0x0000, 0x080c,
+-      0x2ce1, 0x002e, 0x6007, 0x000c, 0x0804, 0xa3a9, 0x080c, 0x530a,
++      0x0005, 0xa1a1, 0xa940, 0xaa0d, 0xaa3a, 0xaabe, 0xa1a1, 0xabab,
++      0xab56, 0xa7fc, 0xac0f, 0xac24, 0xa1a1, 0xa1a1, 0xa1a1, 0xa1a1,
++      0xa1a1, 0x080c, 0x1515, 0xa1b2, 0x0080, 0x1a0c, 0x1515, 0x2100,
++      0xa1b2, 0x0040, 0x1a04, 0xa5ba, 0x0002, 0xa1ed, 0xa3b8, 0xa1ed,
++      0xa1ed, 0xa1ed, 0xa3bf, 0xa1ed, 0xa1ed, 0xa1ed, 0xa1ed, 0xa1ed,
++      0xa1ed, 0xa1ed, 0xa1ed, 0xa1ed, 0xa1ed, 0xa1ed, 0xa1ed, 0xa1ed,
++      0xa1ed, 0xa1ed, 0xa1ed, 0xa1ed, 0xa1ef, 0xa24d, 0xa25c, 0xa2aa,
++      0xa2c8, 0xa346, 0xa3a5, 0xa1ed, 0xa1ed, 0xa3c2, 0xa1ed, 0xa1ed,
++      0xa3d5, 0xa3e0, 0xa1ed, 0xa1ed, 0xa1ed, 0xa1ed, 0xa1ed, 0xa46b,
++      0xa1ed, 0xa1ed, 0xa47e, 0xa1ed, 0xa1ed, 0xa436, 0xa1ed, 0xa1ed,
++      0xa1ed, 0xa496, 0xa1ed, 0xa1ed, 0xa1ed, 0xa510, 0xa1ed, 0xa1ed,
++      0xa1ed, 0xa1ed, 0xa1ed, 0xa1ed, 0xa581, 0x080c, 0x1515, 0x080c,
++      0x5309, 0x1150, 0x2001, 0xb535, 0x2004, 0xd0cc, 0x1128, 0xa084,
++      0x0009, 0xa086, 0x0008, 0x1140, 0x6007, 0x0009, 0x602b, 0x0009,
++      0x6013, 0x0000, 0x0804, 0xa3b3, 0x080c, 0x52f9, 0x00e6, 0x00c6,
++      0x0036, 0x0026, 0x0016, 0x6218, 0x2270, 0x72a0, 0x0026, 0x2019,
++      0x0029, 0x080c, 0x6df5, 0x0076, 0x2039, 0x0000, 0x080c, 0x6d02,
++      0x2c08, 0x080c, 0xae82, 0x007e, 0x001e, 0x2e60, 0x080c, 0x51aa,
++      0x001e, 0x002e, 0x003e, 0x00ce, 0x00ee, 0x6618, 0x00c6, 0x2660,
++      0x080c, 0x4fb8, 0x00ce, 0xa6b0, 0x0001, 0x2634, 0xa684, 0x00ff,
++      0xa082, 0x0006, 0x0278, 0x080c, 0xadc6, 0x1904, 0xa2a4, 0x080c,
++      0xad66, 0x1120, 0x6007, 0x0008, 0x0804, 0xa3b3, 0x6007, 0x0009,
++      0x0804, 0xa3b3, 0x080c, 0xaf7b, 0x0128, 0x080c, 0xadc6, 0x0d78,
++      0x0804, 0xa2a4, 0x6013, 0x1900, 0x0c88, 0x080c, 0x2dbf, 0x1904,
++      0xa5b7, 0x6106, 0x080c, 0xad20, 0x6007, 0x0006, 0x0804, 0xa3b3,
++      0x6007, 0x0007, 0x0804, 0xa3b3, 0x080c, 0xb2d0, 0x1904, 0xa5b7,
++      0x080c, 0x2dbf, 0x1904, 0xa5b7, 0x00d6, 0x6618, 0x2668, 0x6e04,
++      0xa684, 0x00ff, 0xa082, 0x0006, 0x1220, 0x2001, 0x0001, 0x080c,
++      0x4eeb, 0xa6b4, 0xff00, 0x8637, 0xa686, 0x0006, 0x0188, 0xa686,
++      0x0004, 0x0170, 0x6e04, 0xa6b4, 0x00ff, 0xa686, 0x0006, 0x0140,
++      0xa686, 0x0004, 0x0128, 0xa686, 0x0005, 0x0110, 0x00de, 0x00e0,
++      0x080c, 0xae24, 0x11a0, 0xa686, 0x0006, 0x1150, 0x0026, 0x6218,
++      0xa290, 0x0028, 0x2214, 0x2009, 0x0000, 0x080c, 0x2ce1, 0x002e,
++      0x080c, 0x504b, 0x6007, 0x000a, 0x00de, 0x0804, 0xa3b3, 0x6007,
++      0x000b, 0x00de, 0x0804, 0xa3b3, 0x080c, 0x2c9c, 0x6007, 0x0001,
++      0x0804, 0xa3b3, 0x080c, 0xb2d0, 0x1904, 0xa5b7, 0x080c, 0x2dbf,
++      0x1904, 0xa5b7, 0x6618, 0x00d6, 0x2668, 0x6e04, 0x00de, 0xa686,
++      0x0707, 0x0d50, 0x0026, 0x6218, 0xa290, 0x0028, 0x2214, 0x2009,
++      0x0000, 0x080c, 0x2ce1, 0x002e, 0x6007, 0x000c, 0x0804, 0xa3b3,
++      0x080c, 0x5309, 0x1140, 0x2001, 0xb535, 0x2004, 0xa084, 0x0009,
++      0xa086, 0x0008, 0x1110, 0x0804, 0xa1fc, 0x080c, 0x52f9, 0x6618,
++      0xa6b0, 0x0001, 0x2634, 0xa684, 0x00ff, 0xa082, 0x0006, 0x06e8,
++      0x1138, 0x0026, 0x2001, 0x0006, 0x080c, 0x4f2a, 0x002e, 0x0050,
++      0xa6b4, 0xff00, 0x8637, 0xa686, 0x0004, 0x0120, 0xa686, 0x0006,
++      0x1904, 0xa2a4, 0x080c, 0xae31, 0x1120, 0x6007, 0x000e, 0x0804,
++      0xa3b3, 0x0046, 0x6418, 0xa4a0, 0x0028, 0x2424, 0xa4a4, 0x00ff,
++      0x8427, 0x0046, 0x080c, 0x2c9c, 0x004e, 0x0016, 0xa006, 0x2009,
++      0xb553, 0x210c, 0xd1a4, 0x0158, 0x2009, 0x0029, 0x080c, 0xb0e8,
++      0x6018, 0x00d6, 0x2068, 0x6800, 0xc0e5, 0x6802, 0x00de, 0x001e,
++      0x004e, 0x6007, 0x0001, 0x0804, 0xa3b3, 0x2001, 0x0001, 0x080c,
++      0x4eeb, 0x0156, 0x0016, 0x0026, 0x0036, 0x20a9, 0x0004, 0x2019,
++      0xb505, 0x2011, 0xbb90, 0x080c, 0x90da, 0x003e, 0x002e, 0x001e,
++      0x015e, 0xa005, 0x0168, 0xa6b4, 0xff00, 0x8637, 0xa682, 0x0004,
++      0x0a04, 0xa2a4, 0xa682, 0x0007, 0x0a04, 0xa2f2, 0x0804, 0xa2a4,
++      0x6013, 0x1900, 0x6007, 0x0009, 0x0804, 0xa3b3, 0x080c, 0x5309,
+       0x1140, 0x2001, 0xb535, 0x2004, 0xa084, 0x0009, 0xa086, 0x0008,
+-      0x1110, 0x0804, 0xa1f2, 0x080c, 0x52fa, 0x6618, 0xa6b0, 0x0001,
+-      0x2634, 0xa684, 0x00ff, 0xa082, 0x0006, 0x06e8, 0x1138, 0x0026,
+-      0x2001, 0x0006, 0x080c, 0x4f2b, 0x002e, 0x0050, 0xa6b4, 0xff00,
+-      0x8637, 0xa686, 0x0004, 0x0120, 0xa686, 0x0006, 0x1904, 0xa29a,
+-      0x080c, 0xae25, 0x1120, 0x6007, 0x000e, 0x0804, 0xa3a9, 0x0046,
+-      0x6418, 0xa4a0, 0x0028, 0x2424, 0xa4a4, 0x00ff, 0x8427, 0x0046,
+-      0x080c, 0x2c9c, 0x004e, 0x0016, 0xa006, 0x2009, 0xb553, 0x210c,
+-      0xd1a4, 0x0158, 0x2009, 0x0029, 0x080c, 0xb0dc, 0x6018, 0x00d6,
+-      0x2068, 0x6800, 0xc0e5, 0x6802, 0x00de, 0x001e, 0x004e, 0x6007,
+-      0x0001, 0x0804, 0xa3a9, 0x2001, 0x0001, 0x080c, 0x4eec, 0x0156,
++      0x1110, 0x0804, 0xa1fc, 0x080c, 0x52f9, 0x6618, 0xa6b0, 0x0001,
++      0x2634, 0xa684, 0x00ff, 0xa082, 0x0006, 0x06b8, 0xa6b4, 0xff00,
++      0x8637, 0xa686, 0x0004, 0x0120, 0xa686, 0x0006, 0x1904, 0xa2a4,
++      0x080c, 0xae59, 0x1138, 0x080c, 0xad66, 0x1120, 0x6007, 0x0010,
++      0x0804, 0xa3b3, 0x0046, 0x6418, 0xa4a0, 0x0028, 0x2424, 0xa4a4,
++      0x00ff, 0x8427, 0x0046, 0x080c, 0x2c9c, 0x004e, 0x0016, 0xa006,
++      0x2009, 0xb553, 0x210c, 0xd1a4, 0x0158, 0x2009, 0x0029, 0x080c,
++      0xb0e8, 0x6018, 0x00d6, 0x2068, 0x6800, 0xc0e5, 0x6802, 0x00de,
++      0x001e, 0x004e, 0x6007, 0x0001, 0x00f0, 0x080c, 0xaf7b, 0x0140,
++      0xa6b4, 0xff00, 0x8637, 0xa686, 0x0006, 0x0950, 0x0804, 0xa2a4,
++      0x6013, 0x1900, 0x6007, 0x0009, 0x0070, 0x080c, 0x2dbf, 0x1904,
++      0xa5b7, 0x080c, 0xb2d0, 0x1904, 0xa5b7, 0x080c, 0xa5df, 0x1904,
++      0xa2a4, 0x6007, 0x0012, 0x6003, 0x0001, 0x080c, 0x6cd3, 0x0005,
++      0x6007, 0x0001, 0x6003, 0x0001, 0x080c, 0x6cd3, 0x0cc0, 0x6007,
++      0x0005, 0x0cc0, 0x080c, 0xb2d0, 0x1904, 0xa5b7, 0x080c, 0x2dbf,
++      0x1904, 0xa5b7, 0x080c, 0xa5df, 0x1904, 0xa2a4, 0x6007, 0x0020,
++      0x6003, 0x0001, 0x080c, 0x6cd3, 0x0005, 0x080c, 0x2dbf, 0x1904,
++      0xa5b7, 0x6007, 0x0023, 0x6003, 0x0001, 0x080c, 0x6cd3, 0x0005,
++      0x080c, 0xb2d0, 0x1904, 0xa5b7, 0x080c, 0x2dbf, 0x1904, 0xa5b7,
++      0x080c, 0xa5df, 0x1904, 0xa2a4, 0x0016, 0x0026, 0x2011, 0xbb91,
++      0x2214, 0xa286, 0xffff, 0x0190, 0x2c08, 0x080c, 0x9c4a, 0x01e0,
++      0x2260, 0x2011, 0xbb90, 0x2214, 0x6008, 0xa206, 0x11a8, 0x6018,
++      0xa190, 0x0006, 0x2214, 0xa206, 0x01e8, 0x0070, 0x2011, 0xbb90,
++      0x2214, 0x2c08, 0xa006, 0x080c, 0xb0ba, 0x11a0, 0x2011, 0xbb91,
++      0x2214, 0xa286, 0xffff, 0x01c0, 0x2160, 0x6007, 0x0026, 0x6013,
++      0x1700, 0x2011, 0xbb89, 0x2214, 0xa296, 0xffff, 0x1180, 0x6007,
++      0x0025, 0x0068, 0x601c, 0xa086, 0x0007, 0x1d70, 0x6004, 0xa086,
++      0x0024, 0x1110, 0x080c, 0x861d, 0x2160, 0x6007, 0x0025, 0x6003,
++      0x0001, 0x080c, 0x6cd3, 0x002e, 0x001e, 0x0005, 0x2001, 0x0001,
++      0x080c, 0x4eeb, 0x0156, 0x0016, 0x0026, 0x0036, 0x20a9, 0x0004,
++      0x2019, 0xb505, 0x2011, 0xbb96, 0x080c, 0x90da, 0x003e, 0x002e,
++      0x001e, 0x015e, 0x0120, 0x6007, 0x0031, 0x0804, 0xa3b3, 0x080c,
++      0x8df6, 0x080c, 0x5acf, 0x11b0, 0x0006, 0x0026, 0x0036, 0x080c,
++      0x5aeb, 0x1158, 0x2001, 0xb79f, 0x2003, 0x0001, 0x2001, 0xb500,
++      0x2003, 0x0001, 0x080c, 0x5a07, 0x0010, 0x080c, 0x5aa6, 0x003e,
++      0x002e, 0x000e, 0x0005, 0x080c, 0x2dbf, 0x1904, 0xa5b7, 0x080c,
++      0xa5df, 0x1904, 0xa2a4, 0x6106, 0x080c, 0xa5fb, 0x6007, 0x002b,
++      0x0804, 0xa3b3, 0x6007, 0x002c, 0x0804, 0xa3b3, 0x080c, 0xb2d0,
++      0x1904, 0xa5b7, 0x080c, 0x2dbf, 0x1904, 0xa5b7, 0x080c, 0xa5df,
++      0x1904, 0xa2a4, 0x6106, 0x080c, 0xa5ff, 0x1120, 0x6007, 0x002e,
++      0x0804, 0xa3b3, 0x6007, 0x002f, 0x0804, 0xa3b3, 0x080c, 0x2dbf,
++      0x1904, 0xa5b7, 0x00e6, 0x00d6, 0x00c6, 0x6018, 0xa080, 0x0001,
++      0x200c, 0xa184, 0x00ff, 0xa086, 0x0006, 0x0158, 0xa184, 0xff00,
++      0x8007, 0xa086, 0x0006, 0x0128, 0x00ce, 0x00de, 0x00ee, 0x0804,
++      0xa3b8, 0x2001, 0xb572, 0x2004, 0xd0e4, 0x0904, 0xa50d, 0x2071,
++      0xbb8c, 0x7010, 0x6036, 0x7014, 0x603a, 0x7108, 0x720c, 0x2001,
++      0xb553, 0x2004, 0xd0a4, 0x0140, 0x6018, 0x2068, 0x6810, 0xa106,
++      0x1118, 0x6814, 0xa206, 0x01f8, 0x2001, 0xb553, 0x2004, 0xd0ac,
++      0x1590, 0x2069, 0xb500, 0x6874, 0xa206, 0x1568, 0x6870, 0xa106,
++      0x1550, 0x7210, 0x080c, 0x9c4a, 0x0558, 0x080c, 0xb154, 0x0540,
++      0x622a, 0x6007, 0x0036, 0x6003, 0x0001, 0x080c, 0x6c8d, 0x00ce,
++      0x00de, 0x00ee, 0x0005, 0x7214, 0xa286, 0xffff, 0x0150, 0x080c,
++      0x9c4a, 0x01b0, 0xa280, 0x0002, 0x2004, 0x7110, 0xa106, 0x1180,
++      0x0c08, 0x7210, 0x2c08, 0xa085, 0x0001, 0x080c, 0xb0ba, 0x2c10,
++      0x2160, 0x0130, 0x08b8, 0x6007, 0x0037, 0x6013, 0x1500, 0x08d8,
++      0x6007, 0x0037, 0x6013, 0x1700, 0x08b0, 0x6007, 0x0012, 0x0898,
++      0x080c, 0x2dbf, 0x1904, 0xa5b7, 0x6018, 0xa080, 0x0001, 0x2004,
++      0xa084, 0xff00, 0x8007, 0xa086, 0x0006, 0x1904, 0xa3b8, 0x00e6,
++      0x00d6, 0x00c6, 0x2001, 0xb572, 0x2004, 0xd0e4, 0x0904, 0xa579,
++      0x2069, 0xb500, 0x2071, 0xbb8c, 0x7008, 0x6036, 0x720c, 0x623a,
++      0xa286, 0xffff, 0x1150, 0x7208, 0x00c6, 0x2c08, 0xa085, 0x0001,
++      0x080c, 0xb0ba, 0x2c10, 0x00ce, 0x0588, 0x080c, 0x9c4a, 0x0570,
++      0x00c6, 0x0026, 0x2260, 0x080c, 0x991d, 0x002e, 0x00ce, 0x7118,
++      0xa18c, 0xff00, 0x810f, 0xa186, 0x0001, 0x0158, 0xa186, 0x0005,
++      0x0118, 0xa186, 0x0007, 0x1178, 0xa280, 0x0004, 0x2004, 0xa005,
++      0x0150, 0x0056, 0x7510, 0x7614, 0x080c, 0xb16b, 0x005e, 0x00ce,
++      0x00de, 0x00ee, 0x0005, 0x6007, 0x003b, 0x602b, 0x0009, 0x6013,
++      0x2a00, 0x6003, 0x0001, 0x080c, 0x6c8d, 0x0c88, 0x6007, 0x003b,
++      0x602b, 0x0009, 0x6013, 0x1700, 0x6003, 0x0001, 0x080c, 0x6c8d,
++      0x0c30, 0x6007, 0x003b, 0x602b, 0x000b, 0x6013, 0x0000, 0x0804,
++      0xa4e3, 0x00e6, 0x0026, 0x080c, 0x5309, 0x0558, 0x080c, 0x52f9,
++      0x080c, 0xb34b, 0x1520, 0x2071, 0xb500, 0x70d4, 0xc085, 0x70d6,
++      0x00f6, 0x2079, 0x0100, 0x72a0, 0xa284, 0x00ff, 0x7072, 0x78e6,
++      0xa284, 0xff00, 0x7274, 0xa205, 0x7076, 0x78ea, 0x00fe, 0x70df,
++      0x0000, 0x2001, 0xb553, 0x2004, 0xd0a4, 0x0120, 0x2011, 0xb7f9,
++      0x2013, 0x07d0, 0xd0ac, 0x1128, 0x080c, 0x2ab8, 0x0010, 0x080c,
++      0xb377, 0x002e, 0x00ee, 0x080c, 0x861d, 0x0804, 0xa3b7, 0x080c,
++      0x861d, 0x0005, 0x2600, 0x0002, 0xa5c5, 0xa5c5, 0xa5c5, 0xa5c5,
++      0xa5c5, 0xa5c7, 0xa5c5, 0xa5c5, 0xa5c5, 0x080c, 0x1515, 0x080c,
++      0xb2d0, 0x1d68, 0x080c, 0x2dbf, 0x1d50, 0x0089, 0x1138, 0x6007,
++      0x0045, 0x6003, 0x0001, 0x080c, 0x6cd3, 0x0005, 0x080c, 0x2c9c,
++      0x6007, 0x0001, 0x6003, 0x0001, 0x080c, 0x6cd3, 0x0005, 0x00d6,
++      0x0066, 0x6618, 0x2668, 0x6e04, 0xa6b4, 0xff00, 0x8637, 0xa686,
++      0x0006, 0x0170, 0xa686, 0x0004, 0x0158, 0x6e04, 0xa6b4, 0x00ff,
++      0xa686, 0x0006, 0x0128, 0xa686, 0x0004, 0x0110, 0xa085, 0x0001,
++      0x006e, 0x00de, 0x0005, 0x00d6, 0x0449, 0x00de, 0x0005, 0x00d6,
++      0x0491, 0x11f0, 0x680c, 0xa08c, 0xff00, 0x6820, 0xa084, 0x00ff,
++      0xa115, 0x6212, 0x6824, 0x602a, 0xd1e4, 0x0118, 0x2009, 0x0001,
++      0x0060, 0xd1ec, 0x0168, 0x6920, 0xa18c, 0x00ff, 0x6824, 0x080c,
++      0x281d, 0x1130, 0x2110, 0x2009, 0x0000, 0x080c, 0x2ce1, 0x0018,
++      0xa085, 0x0001, 0x0008, 0xa006, 0x00de, 0x0005, 0x2069, 0xbb8d,
++      0x6800, 0xa082, 0x0010, 0x1228, 0x6013, 0x0000, 0xa085, 0x0001,
++      0x0008, 0xa006, 0x0005, 0x6013, 0x0000, 0x2069, 0xbb8c, 0x6808,
++      0xa084, 0xff00, 0xa086, 0x0800, 0x1140, 0x6800, 0xa084, 0x00ff,
++      0xa08e, 0x0014, 0x0110, 0xa08e, 0x0010, 0x0005, 0x6004, 0xa0b2,
++      0x0080, 0x1a0c, 0x1515, 0xa1b6, 0x0013, 0x1130, 0x2008, 0xa1b2,
++      0x0040, 0x1a04, 0xa746, 0x0092, 0xa1b6, 0x0027, 0x0120, 0xa1b6,
++      0x0014, 0x190c, 0x1515, 0x2001, 0x0007, 0x080c, 0x4f2a, 0x080c,
++      0x7090, 0x080c, 0x9e1d, 0x080c, 0x7173, 0x0005, 0xa6a6, 0xa6a8,
++      0xa6a6, 0xa6a6, 0xa6a6, 0xa6a8, 0xa6ba, 0xa73f, 0xa70a, 0xa73f,
++      0xa71b, 0xa73f, 0xa6ba, 0xa73f, 0xa737, 0xa73f, 0xa737, 0xa73f,
++      0xa73f, 0xa6a6, 0xa6a6, 0xa6a6, 0xa6a6, 0xa6a6, 0xa6a6, 0xa6a6,
++      0xa6a6, 0xa6a6, 0xa6a6, 0xa6a6, 0xa6a8, 0xa6a6, 0xa73f, 0xa6a6,
++      0xa6a6, 0xa73f, 0xa6a6, 0xa73c, 0xa73f, 0xa6a6, 0xa6a6, 0xa6a6,
++      0xa6a6, 0xa73f, 0xa73f, 0xa6a6, 0xa73f, 0xa73f, 0xa6a6, 0xa6b4,
++      0xa6a6, 0xa6a6, 0xa6a6, 0xa6a6, 0xa73b, 0xa73f, 0xa6a6, 0xa6a6,
++      0xa73f, 0xa73f, 0xa6a6, 0xa6a6, 0xa6a6, 0xa6a6, 0x080c, 0x1515,
++      0x080c, 0x7090, 0x2001, 0xb7b6, 0x2004, 0x6016, 0x6003, 0x0002,
++      0x080c, 0x7173, 0x0804, 0xa745, 0x2001, 0x0000, 0x080c, 0x4eeb,
++      0x0804, 0xa73f, 0x00f6, 0x2079, 0xb552, 0x7804, 0x00fe, 0xd0ac,
++      0x1904, 0xa73f, 0x2001, 0x0000, 0x080c, 0x4eeb, 0x6018, 0xa080,
++      0x0004, 0x2004, 0xa086, 0x00ff, 0x1140, 0x00f6, 0x2079, 0xb500,
++      0x7898, 0x8000, 0x789a, 0x00fe, 0x00e0, 0x00c6, 0x6018, 0x2060,
++      0x6000, 0xd0f4, 0x1140, 0x6010, 0xa005, 0x0128, 0x00ce, 0x080c,
++      0x3f3e, 0x0804, 0xa73f, 0x00ce, 0x2001, 0xb500, 0x2004, 0xa086,
++      0x0002, 0x1138, 0x00f6, 0x2079, 0xb500, 0x7898, 0x8000, 0x789a,
++      0x00fe, 0x2001, 0x0002, 0x080c, 0x4efd, 0x080c, 0x7090, 0x601f,
++      0x0001, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x6cd3, 0x080c,
++      0x7173, 0x00c6, 0x6118, 0x2160, 0x2009, 0x0001, 0x080c, 0x69a8,
++      0x00ce, 0x04d8, 0x6618, 0x00d6, 0x2668, 0x6e04, 0x00de, 0xa6b4,
++      0xff00, 0x8637, 0xa686, 0x0006, 0x0550, 0xa686, 0x0004, 0x0538,
++      0x2001, 0x0004, 0x0410, 0x2001, 0xb500, 0x2004, 0xa086, 0x0003,
++      0x1110, 0x080c, 0x3f3e, 0x2001, 0x0006, 0x04a1, 0x6618, 0x00d6,
++      0x2668, 0x6e04, 0x00de, 0xa6b4, 0xff00, 0x8637, 0xa686, 0x0006,
++      0x0170, 0x2001, 0x0006, 0x0048, 0x2001, 0x0004, 0x0030, 0x2001,
++      0x0006, 0x0401, 0x0020, 0x0018, 0x0010, 0x080c, 0x4f2a, 0x080c,
++      0x7090, 0x080c, 0x861d, 0x080c, 0x7173, 0x0005, 0x2600, 0x0002,
++      0xa751, 0xa751, 0xa751, 0xa751, 0xa751, 0xa753, 0xa751, 0xa751,
++      0xa751, 0x080c, 0x1515, 0x080c, 0x7090, 0x080c, 0x861d, 0x080c,
++      0x7173, 0x0005, 0x0016, 0x00d6, 0x6118, 0x2168, 0x6900, 0xd184,
++      0x0140, 0x080c, 0x4efd, 0x2001, 0x0000, 0x080c, 0x4eeb, 0x080c,
++      0x2cc2, 0x00de, 0x001e, 0x0005, 0x00d6, 0x6618, 0x2668, 0x6804,
++      0xa084, 0xff00, 0x8007, 0x00de, 0xa0b2, 0x000c, 0x1a0c, 0x1515,
++      0xa1b6, 0x0015, 0x1110, 0x003b, 0x0028, 0xa1b6, 0x0016, 0x190c,
++      0x1515, 0x006b, 0x0005, 0x8cdf, 0x8cdf, 0x8cdf, 0x8cdf, 0x8cdf,
++      0x8cdf, 0xa7dc, 0xa79b, 0x8cdf, 0x8cdf, 0x8cdf, 0x8cdf, 0x8cdf,
++      0x8cdf, 0x8cdf, 0x8cdf, 0x8cdf, 0x8cdf, 0xa7dc, 0xa7e3, 0x8cdf,
++      0x8cdf, 0x8cdf, 0x8cdf, 0x00f6, 0x2079, 0xb552, 0x7804, 0xd0ac,
++      0x11e0, 0x6018, 0xa07d, 0x01c8, 0x7800, 0xd0f4, 0x1118, 0x7810,
++      0xa005, 0x1198, 0x2001, 0x0000, 0x080c, 0x4eeb, 0x2001, 0x0002,
++      0x080c, 0x4efd, 0x601f, 0x0001, 0x6003, 0x0001, 0x6007, 0x0002,
++      0x080c, 0x6cd3, 0x080c, 0x7173, 0x00e8, 0x2011, 0xbb83, 0x2204,
++      0x8211, 0x220c, 0x080c, 0x281d, 0x11a8, 0x00c6, 0x080c, 0x4fa9,
++      0x0120, 0x00ce, 0x080c, 0x861d, 0x0068, 0x6010, 0x0006, 0x6014,
++      0x0006, 0x080c, 0x4c0b, 0x000e, 0x6016, 0x000e, 0x6012, 0x00ce,
++      0x080c, 0x861d, 0x00fe, 0x0005, 0x6604, 0xa6b6, 0x001e, 0x1110,
++      0x080c, 0x861d, 0x0005, 0x080c, 0x8f95, 0x1138, 0x6003, 0x0001,
++      0x6007, 0x0001, 0x080c, 0x6cd3, 0x0010, 0x080c, 0x861d, 0x0005,
++      0x6004, 0xa08a, 0x0080, 0x1a0c, 0x1515, 0x080c, 0x7090, 0x080c,
++      0x9e1d, 0x080c, 0x7173, 0x0005, 0xa182, 0x0040, 0x0002, 0xa812,
++      0xa812, 0xa812, 0xa812, 0xa814, 0xa812, 0xa812, 0xa812, 0xa812,
++      0xa812, 0xa812, 0xa812, 0xa812, 0xa812, 0xa812, 0xa812, 0xa812,
++      0xa812, 0xa812, 0x080c, 0x1515, 0x00d6, 0x00e6, 0x00f6, 0x0156,
++      0x0046, 0x0026, 0x6218, 0xa280, 0x002b, 0x2004, 0xa005, 0x0120,
++      0x2021, 0x0000, 0x080c, 0xb31c, 0x6106, 0x2071, 0xbb80, 0x7444,
++      0xa4a4, 0xff00, 0x0904, 0xa878, 0xa486, 0x2000, 0x1130, 0x2009,
++      0x0001, 0x2011, 0x0200, 0x080c, 0x6b1a, 0x080c, 0x15f8, 0x090c,
++      0x1515, 0x6003, 0x0007, 0x2d00, 0x6837, 0x010d, 0x6803, 0x0000,
++      0x683b, 0x0000, 0x6c5a, 0x2c00, 0x685e, 0x6008, 0x68b2, 0x6018,
++      0x2078, 0x78a0, 0x8007, 0x7130, 0x694a, 0x0016, 0xa084, 0xff00,
++      0x6846, 0x684f, 0x0000, 0x6853, 0x0000, 0x6857, 0x0036, 0x080c,
++      0x5408, 0x001e, 0xa486, 0x2000, 0x1130, 0x2019, 0x0017, 0x080c,
++      0xb065, 0x0804, 0xa8d5, 0xa486, 0x0400, 0x1130, 0x2019, 0x0002,
++      0x080c, 0xb017, 0x0804, 0xa8d5, 0xa486, 0x0200, 0x1110, 0x080c,
++      0xaffc, 0xa486, 0x1000, 0x1110, 0x080c, 0xb04a, 0x0804, 0xa8d5,
++      0x2069, 0xb874, 0x6a00, 0xd284, 0x0904, 0xa93c, 0xa284, 0x0300,
++      0x1904, 0xa935, 0x6804, 0xa005, 0x0904, 0xa91d, 0x2d78, 0x6003,
++      0x0007, 0x080c, 0x15df, 0x0904, 0xa8dc, 0x7800, 0xd08c, 0x1118,
++      0x7804, 0x8001, 0x7806, 0x6013, 0x0000, 0x6803, 0x0000, 0x6837,
++      0x0116, 0x683b, 0x0000, 0x6008, 0x68b2, 0x2c00, 0x684a, 0x6018,
++      0x2078, 0x78a0, 0x8007, 0x7130, 0x6986, 0x6846, 0x7928, 0x698a,
++      0x792c, 0x698e, 0x7930, 0x6992, 0x7934, 0x6996, 0x6853, 0x003d,
++      0x7244, 0xa294, 0x0003, 0xa286, 0x0002, 0x1118, 0x684f, 0x0040,
++      0x0040, 0xa286, 0x0001, 0x1118, 0x684f, 0x0080, 0x0010, 0x684f,
++      0x0000, 0x20a9, 0x000a, 0x2001, 0xbb90, 0xad90, 0x0015, 0x200c,
++      0x810f, 0x2112, 0x8000, 0x8210, 0x1f04, 0xa8c7, 0x200c, 0x6982,
++      0x8000, 0x200c, 0x697e, 0x080c, 0x5408, 0x002e, 0x004e, 0x015e,
++      0x00fe, 0x00ee, 0x00de, 0x0005, 0x2001, 0xb50e, 0x2004, 0xd084,
++      0x0120, 0x080c, 0x15f8, 0x1904, 0xa88d, 0x6013, 0x0100, 0x6003,
++      0x0001, 0x6007, 0x0041, 0x080c, 0x6c8d, 0x080c, 0x7173, 0x0c28,
++      0x2069, 0xbb92, 0x2d04, 0xa084, 0xff00, 0xa086, 0x1200, 0x11a8,
++      0x2069, 0xbb80, 0x686c, 0xa084, 0x00ff, 0x0016, 0x6110, 0xa18c,
++      0x0700, 0xa10d, 0x6112, 0x001e, 0x6003, 0x0001, 0x6007, 0x0043,
++      0x080c, 0x6c8d, 0x080c, 0x7173, 0x0840, 0x6868, 0x602a, 0x686c,
++      0x602e, 0x6013, 0x0200, 0x6003, 0x0001, 0x6007, 0x0041, 0x080c,
++      0x6c8d, 0x080c, 0x7173, 0x0804, 0xa8d5, 0x2001, 0xb50d, 0x2004,
++      0xd0ec, 0x0120, 0x2011, 0x8049, 0x080c, 0x3ecc, 0x6013, 0x0300,
++      0x0010, 0x6013, 0x0100, 0x6003, 0x0001, 0x6007, 0x0041, 0x080c,
++      0x6c8d, 0x080c, 0x7173, 0x0804, 0xa8d5, 0x6013, 0x0500, 0x0c98,
++      0x6013, 0x0600, 0x0804, 0xa8f0, 0x6013, 0x0200, 0x0804, 0xa8f0,
++      0xa186, 0x0013, 0x1170, 0x6004, 0xa08a, 0x0040, 0x0a0c, 0x1515,
++      0xa08a, 0x0053, 0x1a0c, 0x1515, 0xa082, 0x0040, 0x2008, 0x0804,
++      0xa9ca, 0xa186, 0x0051, 0x0138, 0xa186, 0x0047, 0x11d8, 0x6004,
++      0xa086, 0x0041, 0x0518, 0x2001, 0x0109, 0x2004, 0xd084, 0x01f0,
++      0x0126, 0x2091, 0x2800, 0x0006, 0x0016, 0x0026, 0x080c, 0x6b74,
++      0x002e, 0x001e, 0x000e, 0x012e, 0x6000, 0xa086, 0x0002, 0x1170,
++      0x0804, 0xaa0d, 0xa186, 0x0027, 0x0120, 0xa186, 0x0014, 0x190c,
++      0x1515, 0x6004, 0xa082, 0x0040, 0x2008, 0x001a, 0x080c, 0x8663,
++      0x0005, 0xa994, 0xa996, 0xa996, 0xa9ba, 0xa994, 0xa994, 0xa994,
++      0xa994, 0xa994, 0xa994, 0xa994, 0xa994, 0xa994, 0xa994, 0xa994,
++      0xa994, 0xa994, 0xa994, 0xa994, 0x080c, 0x1515, 0x080c, 0x7090,
++      0x080c, 0x7173, 0x0036, 0x00d6, 0x6010, 0xa06d, 0x01c0, 0xad84,
++      0xf000, 0x01a8, 0x6003, 0x0002, 0x6018, 0x2004, 0xd0bc, 0x1178,
++      0x2019, 0x0004, 0x080c, 0xb099, 0x6013, 0x0000, 0x6014, 0xa005,
++      0x1120, 0x2001, 0xb7b7, 0x2004, 0x6016, 0x6003, 0x0007, 0x00de,
++      0x003e, 0x0005, 0x00d6, 0x080c, 0x7090, 0x080c, 0x7173, 0x080c,
++      0x9c5a, 0x0120, 0x6010, 0x2068, 0x080c, 0x160f, 0x080c, 0x9e1d,
++      0x00de, 0x0005, 0x0002, 0xa9de, 0xa9fb, 0xa9e7, 0xaa07, 0xa9de,
++      0xa9de, 0xa9de, 0xa9de, 0xa9de, 0xa9de, 0xa9de, 0xa9de, 0xa9de,
++      0xa9de, 0xa9de, 0xa9de, 0xa9de, 0xa9de, 0xa9de, 0x080c, 0x1515,
++      0x6010, 0xa088, 0x0013, 0x2104, 0xa085, 0x0400, 0x200a, 0x080c,
++      0x7090, 0x6010, 0xa080, 0x0013, 0x2004, 0xd0b4, 0x0138, 0x6003,
++      0x0007, 0x2009, 0x0043, 0x080c, 0x864c, 0x0010, 0x6003, 0x0002,
++      0x080c, 0x7173, 0x0005, 0x080c, 0x7090, 0x080c, 0xb2d7, 0x1120,
++      0x080c, 0x6aef, 0x080c, 0x861d, 0x080c, 0x7173, 0x0005, 0x080c,
++      0x7090, 0x2009, 0x0041, 0x0804, 0xab56, 0xa182, 0x0040, 0x0002,
++      0xaa23, 0xaa25, 0xaa23, 0xaa23, 0xaa23, 0xaa23, 0xaa23, 0xaa26,
++      0xaa23, 0xaa23, 0xaa23, 0xaa23, 0xaa23, 0xaa23, 0xaa23, 0xaa23,
++      0xaa23, 0xaa31, 0xaa23, 0x080c, 0x1515, 0x0005, 0x6003, 0x0004,
++      0x6110, 0x20e1, 0x0005, 0x3d18, 0x3e20, 0x2c10, 0x080c, 0x185e,
++      0x0005, 0x00d6, 0x080c, 0x6aef, 0x00de, 0x080c, 0xb33a, 0x080c,
++      0x861d, 0x0005, 0xa182, 0x0040, 0x0002, 0xaa50, 0xaa50, 0xaa50,
++      0xaa50, 0xaa50, 0xaa50, 0xaa50, 0xaa52, 0xaa50, 0xaa55, 0xaa8e,
++      0xaa50, 0xaa50, 0xaa50, 0xaa50, 0xaa8e, 0xaa50, 0xaa50, 0xaa50,
++      0x080c, 0x1515, 0x080c, 0x8663, 0x0005, 0x2001, 0xb572, 0x2004,
++      0xd0e4, 0x0158, 0x2001, 0x0100, 0x2004, 0xa082, 0x0005, 0x0228,
++      0x2001, 0x011f, 0x2004, 0x6036, 0x0010, 0x6037, 0x0000, 0x080c,
++      0x7126, 0x080c, 0x7230, 0x6010, 0x00d6, 0x2068, 0x684c, 0xd0fc,
++      0x0150, 0xa08c, 0x0003, 0xa18e, 0x0002, 0x0168, 0x2009, 0x0041,
++      0x00de, 0x0804, 0xab56, 0x6003, 0x0007, 0x6017, 0x0000, 0x080c,
++      0x6aef, 0x00de, 0x0005, 0x080c, 0xb2d7, 0x0110, 0x00de, 0x0005,
++      0x080c, 0x6aef, 0x080c, 0x861d, 0x00de, 0x0ca0, 0x0036, 0x080c,
++      0x7126, 0x080c, 0x7230, 0x6010, 0x00d6, 0x2068, 0x6018, 0x2004,
++      0xd0bc, 0x0188, 0x684c, 0xa084, 0x0003, 0xa086, 0x0002, 0x0140,
++      0x687c, 0x632c, 0xa31a, 0x632e, 0x6880, 0x6328, 0xa31b, 0x632a,
++      0x6003, 0x0002, 0x0080, 0x2019, 0x0004, 0x080c, 0xb099, 0x6014,
++      0xa005, 0x1128, 0x2001, 0xb7b7, 0x2004, 0x8003, 0x6016, 0x6013,
++      0x0000, 0x6003, 0x0007, 0x00de, 0x003e, 0x0005, 0xa186, 0x0013,
++      0x1150, 0x6004, 0xa086, 0x0042, 0x190c, 0x1515, 0x080c, 0x7090,
++      0x080c, 0x7173, 0x0005, 0xa186, 0x0027, 0x0118, 0xa186, 0x0014,
++      0x1180, 0x6004, 0xa086, 0x0042, 0x190c, 0x1515, 0x2001, 0x0007,
++      0x080c, 0x4f2a, 0x080c, 0x7090, 0x080c, 0x9e1d, 0x080c, 0x7173,
++      0x0005, 0xa182, 0x0040, 0x0002, 0xaaf7, 0xaaf7, 0xaaf7, 0xaaf7,
++      0xaaf7, 0xaaf7, 0xaaf7, 0xaaf9, 0xab05, 0xaaf7, 0xaaf7, 0xaaf7,
++      0xaaf7, 0xaaf7, 0xaaf7, 0xaaf7, 0xaaf7, 0xaaf7, 0xaaf7, 0x080c,
++      0x1515, 0x0036, 0x0046, 0x20e1, 0x0005, 0x3d18, 0x3e20, 0x2c10,
++      0x080c, 0x185e, 0x004e, 0x003e, 0x0005, 0x6010, 0x00d6, 0x2068,
++      0x6810, 0x6a14, 0x0006, 0x0046, 0x0056, 0x6c7c, 0xa422, 0x6d80,
++      0x2200, 0xa52b, 0x602c, 0xa420, 0x642e, 0x6028, 0xa529, 0x652a,
++      0x005e, 0x004e, 0x000e, 0xa20d, 0x1178, 0x684c, 0xd0fc, 0x0120,
++      0x2009, 0x0041, 0x00de, 0x0490, 0x6003, 0x0007, 0x6017, 0x0000,
++      0x080c, 0x6aef, 0x00de, 0x0005, 0x0006, 0x00f6, 0x2c78, 0x080c,
++      0x5305, 0x00fe, 0x000e, 0x0120, 0x6003, 0x0002, 0x00de, 0x0005,
++      0x2009, 0xb50d, 0x210c, 0xd19c, 0x0118, 0x6003, 0x0007, 0x0010,
++      0x6003, 0x0006, 0x0021, 0x080c, 0x6af1, 0x00de, 0x0005, 0xd2fc,
++      0x0140, 0x8002, 0x8000, 0x8212, 0xa291, 0x0000, 0x2009, 0x0009,
++      0x0010, 0x2009, 0x0015, 0x6a6a, 0x6866, 0x0005, 0xa182, 0x0040,
++      0x0208, 0x0062, 0xa186, 0x0013, 0x0120, 0xa186, 0x0014, 0x190c,
++      0x1515, 0x6020, 0xd0dc, 0x090c, 0x1515, 0x0005, 0xab79, 0xab80,
++      0xab8c, 0xab98, 0xab79, 0xab79, 0xab79, 0xaba7, 0xab79, 0xab7b,
++      0xab7b, 0xab79, 0xab79, 0xab79, 0xab79, 0xab7b, 0xab79, 0xab7b,
++      0xab79, 0x080c, 0x1515, 0x6020, 0xd0dc, 0x090c, 0x1515, 0x0005,
++      0x6003, 0x0001, 0x6106, 0x080c, 0x6c8d, 0x0126, 0x2091, 0x8000,
++      0x080c, 0x7173, 0x012e, 0x0005, 0x6003, 0x0001, 0x6106, 0x080c,
++      0x6c8d, 0x0126, 0x2091, 0x8000, 0x080c, 0x7173, 0x012e, 0x0005,
++      0x6003, 0x0003, 0x6106, 0x2c10, 0x080c, 0x1fa9, 0x0126, 0x2091,
++      0x8000, 0x080c, 0x6cf0, 0x080c, 0x7230, 0x012e, 0x0005, 0xa016,
++      0x080c, 0x185e, 0x0005, 0x0126, 0x2091, 0x8000, 0x0036, 0x00d6,
++      0xa182, 0x0040, 0x0023, 0x00de, 0x003e, 0x012e, 0x0005, 0xabc7,
++      0xabc9, 0xabdb, 0xabf6, 0xabc7, 0xabc7, 0xabc7, 0xac0b, 0xabc7,
++      0xabc7, 0xabc7, 0xabc7, 0xabc7, 0xabc7, 0xabc7, 0xabc7, 0x080c,
++      0x1515, 0x6010, 0x2068, 0x684c, 0xd0fc, 0x01f8, 0xa09c, 0x0003,
++      0xa39e, 0x0003, 0x01d0, 0x6003, 0x0001, 0x6106, 0x080c, 0x6c8d,
++      0x080c, 0x7173, 0x0498, 0x6010, 0x2068, 0x684c, 0xd0fc, 0x0168,
++      0xa09c, 0x0003, 0xa39e, 0x0003, 0x0140, 0x6003, 0x0001, 0x6106,
++      0x080c, 0x6c8d, 0x080c, 0x7173, 0x0408, 0x6013, 0x0000, 0x6017,
++      0x0000, 0x2019, 0x0004, 0x080c, 0xb099, 0x00c0, 0x6010, 0x2068,
++      0x684c, 0xd0fc, 0x0d90, 0xa09c, 0x0003, 0xa39e, 0x0003, 0x0d68,
++      0x6003, 0x0003, 0x6106, 0x2c10, 0x080c, 0x1fa9, 0x080c, 0x6cf0,
++      0x080c, 0x7230, 0x0018, 0xa016, 0x080c, 0x185e, 0x0005, 0x080c,
++      0x7090, 0x6110, 0x81ff, 0x0158, 0x00d6, 0x2168, 0x080c, 0xb380,
++      0x0036, 0x2019, 0x0029, 0x080c, 0xb099, 0x003e, 0x00de, 0x080c,
++      0x9e1d, 0x080c, 0x7173, 0x0005, 0x080c, 0x7126, 0x6110, 0x81ff,
++      0x0158, 0x00d6, 0x2168, 0x080c, 0xb380, 0x0036, 0x2019, 0x0029,
++      0x080c, 0xb099, 0x003e, 0x00de, 0x080c, 0x9e1d, 0x080c, 0x7230,
++      0x0005, 0xa182, 0x0085, 0x0002, 0xac45, 0xac43, 0xac43, 0xac51,
++      0xac43, 0xac43, 0xac43, 0x080c, 0x1515, 0x6003, 0x000b, 0x6106,
++      0x080c, 0x6c8d, 0x0126, 0x2091, 0x8000, 0x080c, 0x7173, 0x012e,
++      0x0005, 0x0026, 0x00e6, 0x080c, 0xb2d0, 0x0118, 0x080c, 0x861d,
++      0x00d8, 0x2071, 0xbb80, 0x7224, 0x6212, 0x7220, 0x080c, 0xaf47,
++      0x0118, 0x6007, 0x0086, 0x0040, 0x6007, 0x0087, 0x7224, 0xa296,
++      0xffff, 0x1110, 0x6007, 0x0086, 0x6003, 0x0001, 0x080c, 0x6c8d,
++      0x080c, 0x7173, 0x080c, 0x7230, 0x00ee, 0x002e, 0x0005, 0xa186,
++      0x0013, 0x1160, 0x6004, 0xa08a, 0x0085, 0x0a0c, 0x1515, 0xa08a,
++      0x008c, 0x1a0c, 0x1515, 0xa082, 0x0085, 0x00a2, 0xa186, 0x0027,
++      0x0130, 0xa186, 0x0014, 0x0118, 0x080c, 0x8663, 0x0050, 0x2001,
++      0x0007, 0x080c, 0x4f2a, 0x080c, 0x7090, 0x080c, 0x9e1d, 0x080c,
++      0x7173, 0x0005, 0xaca1, 0xaca3, 0xaca3, 0xaca1, 0xaca1, 0xaca1,
++      0xaca1, 0x080c, 0x1515, 0x080c, 0x7090, 0x080c, 0x9e1d, 0x080c,
++      0x7173, 0x0005, 0xa182, 0x0085, 0x0a0c, 0x1515, 0xa182, 0x008c,
++      0x1a0c, 0x1515, 0xa182, 0x0085, 0x0002, 0xacbc, 0xacbc, 0xacbc,
++      0xacbe, 0xacbc, 0xacbc, 0xacbc, 0x080c, 0x1515, 0x0005, 0xa186,
++      0x0013, 0x0148, 0xa186, 0x0014, 0x0130, 0xa186, 0x0027, 0x0118,
++      0x080c, 0x8663, 0x0030, 0x080c, 0x7090, 0x080c, 0x9e1d, 0x080c,
++      0x7173, 0x0005, 0x0036, 0x080c, 0xb33a, 0x603f, 0x0000, 0x2019,
++      0x000b, 0x0031, 0x601f, 0x0006, 0x6003, 0x0007, 0x003e, 0x0005,
++      0x0126, 0x0036, 0x2091, 0x8000, 0x0086, 0x2c40, 0x0096, 0x2049,
++      0x0000, 0x080c, 0x8130, 0x009e, 0x008e, 0x1578, 0x0076, 0x2c38,
++      0x080c, 0x81d6, 0x007e, 0x1548, 0x6000, 0xa086, 0x0000, 0x0528,
++      0x601c, 0xa086, 0x0007, 0x0508, 0x00d6, 0x6000, 0xa086, 0x0004,
++      0x1150, 0x080c, 0xb33a, 0x601f, 0x0007, 0x2001, 0xb7b6, 0x2004,
++      0x6016, 0x080c, 0x194d, 0x6010, 0x2068, 0x080c, 0x9c5a, 0x0110,
++      0x080c, 0xb099, 0x00de, 0x6013, 0x0000, 0x080c, 0xb33a, 0x601f,
++      0x0007, 0x2001, 0xb7b6, 0x2004, 0x6016, 0x003e, 0x012e, 0x0005,
++      0x00f6, 0x00c6, 0x0036, 0x0156, 0x2079, 0xbb80, 0x7938, 0x783c,
++      0x080c, 0x281d, 0x15b0, 0x0016, 0x00c6, 0x080c, 0x4fa9, 0x1578,
++      0x001e, 0x002e, 0x0026, 0x0016, 0x2019, 0x0029, 0x080c, 0x8299,
++      0x080c, 0x6df5, 0x0076, 0x2039, 0x0000, 0x080c, 0x6d02, 0x007e,
++      0x001e, 0x0076, 0x2039, 0x0000, 0x080c, 0xae82, 0x007e, 0x080c,
++      0x51aa, 0x0026, 0x6204, 0xa294, 0xff00, 0x8217, 0xa286, 0x0006,
++      0x0118, 0xa286, 0x0004, 0x1118, 0x62a0, 0x080c, 0x2d55, 0x002e,
++      0x001e, 0x080c, 0x4c0b, 0x6612, 0x6516, 0xa006, 0x0010, 0x00ce,
++      0x001e, 0x015e, 0x003e, 0x00ce, 0x00fe, 0x0005, 0x00c6, 0x00d6,
++      0x00e6, 0x0016, 0x2009, 0xb521, 0x2104, 0xa086, 0x0074, 0x1904,
++      0xadbb, 0x2069, 0xbb8e, 0x690c, 0xa182, 0x0100, 0x06c0, 0x6908,
++      0xa184, 0x8000, 0x05e8, 0x2001, 0xb79e, 0x2004, 0xa005, 0x1160,
++      0x6018, 0x2070, 0x7010, 0xa084, 0x00ff, 0x0118, 0x7000, 0xd0f4,
++      0x0118, 0xa184, 0x0800, 0x0560, 0x6910, 0xa18a, 0x0001, 0x0610,
++      0x6914, 0x2069, 0xbbae, 0x6904, 0x81ff, 0x1198, 0x690c, 0xa182,
++      0x0100, 0x02a8, 0x6908, 0x81ff, 0x1178, 0x6910, 0xa18a, 0x0001,
++      0x0288, 0x6918, 0xa18a, 0x0001, 0x0298, 0x00d0, 0x6013, 0x0100,
++      0x00a0, 0x6013, 0x0300, 0x0088, 0x6013, 0x0500, 0x0070, 0x6013,
++      0x0700, 0x0058, 0x6013, 0x0900, 0x0040, 0x6013, 0x0b00, 0x0028,
++      0x6013, 0x0f00, 0x0010, 0x6013, 0x2d00, 0xa085, 0x0001, 0x0008,
++      0xa006, 0x001e, 0x00ee, 0x00de, 0x00ce, 0x0005, 0x00c6, 0x00d6,
++      0x0026, 0x0036, 0x0156, 0x6218, 0x2268, 0x6b04, 0xa394, 0x00ff,
++      0xa286, 0x0006, 0x0190, 0xa286, 0x0004, 0x0178, 0xa394, 0xff00,
++      0x8217, 0xa286, 0x0006, 0x0148, 0xa286, 0x0004, 0x0130, 0x00c6,
++      0x2d60, 0x080c, 0x4fb8, 0x00ce, 0x04c0, 0x2011, 0xbb96, 0xad98,
++      0x000a, 0x20a9, 0x0004, 0x080c, 0x90da, 0x1580, 0x2011, 0xbb9a,
++      0xad98, 0x0006, 0x20a9, 0x0004, 0x080c, 0x90da, 0x1538, 0x0046,
++      0x0016, 0x6aa0, 0xa294, 0x00ff, 0x8227, 0xa006, 0x2009, 0xb553,
++      0x210c, 0xd1a4, 0x0138, 0x2009, 0x0029, 0x080c, 0xb0e8, 0x6800,
++      0xc0e5, 0x6802, 0x2019, 0x0029, 0x080c, 0x6df5, 0x0076, 0x2039,
++      0x0000, 0x080c, 0x6d02, 0x2c08, 0x080c, 0xae82, 0x007e, 0x2001,
++      0x0007, 0x080c, 0x4f2a, 0x001e, 0x004e, 0xa006, 0x015e, 0x003e,
++      0x002e, 0x00de, 0x00ce, 0x0005, 0x00d6, 0x2069, 0xbb8e, 0x6800,
++      0xa086, 0x0800, 0x0118, 0x6013, 0x0000, 0x0008, 0xa006, 0x00de,
++      0x0005, 0x00c6, 0x00f6, 0x0016, 0x0026, 0x0036, 0x0156, 0x2079,
++      0xbb8c, 0x7930, 0x7834, 0x080c, 0x281d, 0x11a0, 0x080c, 0x4fa9,
++      0x1188, 0x2011, 0xbb90, 0xac98, 0x000a, 0x20a9, 0x0004, 0x080c,
++      0x90da, 0x1140, 0x2011, 0xbb94, 0xac98, 0x0006, 0x20a9, 0x0004,
++      0x080c, 0x90da, 0x015e, 0x003e, 0x002e, 0x001e, 0x00fe, 0x00ce,
++      0x0005, 0x00c6, 0x0006, 0x0016, 0x0026, 0x0036, 0x0156, 0x2011,
++      0xbb83, 0x2204, 0x8211, 0x220c, 0x080c, 0x281d, 0x11a0, 0x080c,
++      0x4fa9, 0x1188, 0x2011, 0xbb96, 0xac98, 0x000a, 0x20a9, 0x0004,
++      0x080c, 0x90da, 0x1140, 0x2011, 0xbb9a, 0xac98, 0x0006, 0x20a9,
++      0x0004, 0x080c, 0x90da, 0x015e, 0x003e, 0x002e, 0x001e, 0x000e,
++      0x00ce, 0x0005, 0x00e6, 0x00c6, 0x0086, 0x0076, 0x0066, 0x0056,
++      0x0046, 0x0026, 0x0126, 0x2091, 0x8000, 0x2740, 0x2029, 0xb7e9,
++      0x252c, 0x2021, 0xb7ef, 0x2424, 0x2061, 0xbd00, 0x2071, 0xb500,
++      0x7648, 0x7068, 0x81ff, 0x0150, 0x0006, 0xa186, 0xb8f4, 0x000e,
++      0x0128, 0x8001, 0xa602, 0x1a04, 0xaf03, 0x0018, 0xa606, 0x0904,
++      0xaf03, 0x2100, 0xac06, 0x0904, 0xaefa, 0x080c, 0xb110, 0x0904,
++      0xaefa, 0x671c, 0xa786, 0x0001, 0x0904, 0xaf1e, 0xa786, 0x0004,
++      0x0904, 0xaf1e, 0xa786, 0x0007, 0x05e8, 0x2500, 0xac06, 0x05d0,
++      0x2400, 0xac06, 0x05b8, 0x080c, 0xb120, 0x15a0, 0x88ff, 0x0118,
++      0x6050, 0xa906, 0x1578, 0x00d6, 0x6000, 0xa086, 0x0004, 0x1120,
++      0x0016, 0x080c, 0x194d, 0x001e, 0xa786, 0x0008, 0x1148, 0x080c,
++      0x9e58, 0x1130, 0x080c, 0x8c19, 0x00de, 0x080c, 0x9e1d, 0x00d0,
++      0x6010, 0x2068, 0x080c, 0x9c5a, 0x0190, 0xa786, 0x0003, 0x1528,
++      0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000, 0x080c, 0xb380, 0x0016,
++      0x080c, 0x9ecc, 0x080c, 0x5408, 0x001e, 0x080c, 0x9e11, 0x00de,
++      0x080c, 0x9e1d, 0xace0, 0x0018, 0x2001, 0xb517, 0x2004, 0xac02,
++      0x1210, 0x0804, 0xae96, 0x012e, 0x002e, 0x004e, 0x005e, 0x006e,
++      0x007e, 0x008e, 0x00ce, 0x00ee, 0x0005, 0xa786, 0x0006, 0x1150,
++      0xa386, 0x0005, 0x0128, 0x080c, 0xb380, 0x080c, 0xb099, 0x08f8,
++      0x00de, 0x0c00, 0xa786, 0x000a, 0x0968, 0x0850, 0x080c, 0xb120,
++      0x19c8, 0x81ff, 0x09b8, 0xa180, 0x0001, 0x2004, 0xa086, 0x0018,
++      0x0130, 0xa180, 0x0001, 0x2004, 0xa086, 0x002d, 0x1958, 0x6000,
++      0xa086, 0x0002, 0x1938, 0x080c, 0x9e47, 0x0130, 0x080c, 0x9e58,
++      0x1908, 0x080c, 0x8c19, 0x0038, 0x080c, 0x2cc2, 0x080c, 0x9e58,
++      0x1110, 0x080c, 0x8c19, 0x080c, 0x9e1d, 0x0804, 0xaefa, 0x00c6,
++      0x00e6, 0x0016, 0x2c08, 0x2170, 0xa006, 0x080c, 0xb0ba, 0x001e,
++      0x0120, 0x601c, 0xa084, 0x000f, 0x001b, 0x00ee, 0x00ce, 0x0005,
++      0xaf60, 0xaf60, 0xaf60, 0xaf60, 0xaf60, 0xaf60, 0xaf62, 0xaf60,
++      0xa006, 0x0005, 0x0046, 0x0016, 0x7018, 0xa080, 0x0028, 0x2024,
++      0xa4a4, 0x00ff, 0x8427, 0x2c00, 0x2009, 0x0020, 0x080c, 0xb0e8,
++      0x001e, 0x004e, 0x0036, 0x2019, 0x0002, 0x080c, 0xace0, 0x003e,
++      0xa085, 0x0001, 0x0005, 0x2001, 0x0001, 0x080c, 0x4eeb, 0x0156,
+       0x0016, 0x0026, 0x0036, 0x20a9, 0x0004, 0x2019, 0xb505, 0x2011,
+-      0xbb90, 0x080c, 0x90d4, 0x003e, 0x002e, 0x001e, 0x015e, 0xa005,
+-      0x0168, 0xa6b4, 0xff00, 0x8637, 0xa682, 0x0004, 0x0a04, 0xa29a,
+-      0xa682, 0x0007, 0x0a04, 0xa2e8, 0x0804, 0xa29a, 0x6013, 0x1900,
+-      0x6007, 0x0009, 0x0804, 0xa3a9, 0x080c, 0x530a, 0x1140, 0x2001,
+-      0xb535, 0x2004, 0xa084, 0x0009, 0xa086, 0x0008, 0x1110, 0x0804,
+-      0xa1f2, 0x080c, 0x52fa, 0x6618, 0xa6b0, 0x0001, 0x2634, 0xa684,
+-      0x00ff, 0xa082, 0x0006, 0x06b8, 0xa6b4, 0xff00, 0x8637, 0xa686,
+-      0x0004, 0x0120, 0xa686, 0x0006, 0x1904, 0xa29a, 0x080c, 0xae4d,
+-      0x1138, 0x080c, 0xad5a, 0x1120, 0x6007, 0x0010, 0x0804, 0xa3a9,
+-      0x0046, 0x6418, 0xa4a0, 0x0028, 0x2424, 0xa4a4, 0x00ff, 0x8427,
+-      0x0046, 0x080c, 0x2c9c, 0x004e, 0x0016, 0xa006, 0x2009, 0xb553,
+-      0x210c, 0xd1a4, 0x0158, 0x2009, 0x0029, 0x080c, 0xb0dc, 0x6018,
+-      0x00d6, 0x2068, 0x6800, 0xc0e5, 0x6802, 0x00de, 0x001e, 0x004e,
+-      0x6007, 0x0001, 0x00f0, 0x080c, 0xaf6f, 0x0140, 0xa6b4, 0xff00,
+-      0x8637, 0xa686, 0x0006, 0x0950, 0x0804, 0xa29a, 0x6013, 0x1900,
+-      0x6007, 0x0009, 0x0070, 0x080c, 0x2dbf, 0x1904, 0xa5ad, 0x080c,
+-      0xb2c4, 0x1904, 0xa5ad, 0x080c, 0xa5d5, 0x1904, 0xa29a, 0x6007,
+-      0x0012, 0x6003, 0x0001, 0x080c, 0x6cd4, 0x0005, 0x6007, 0x0001,
+-      0x6003, 0x0001, 0x080c, 0x6cd4, 0x0cc0, 0x6007, 0x0005, 0x0cc0,
+-      0x080c, 0xb2c4, 0x1904, 0xa5ad, 0x080c, 0x2dbf, 0x1904, 0xa5ad,
+-      0x080c, 0xa5d5, 0x1904, 0xa29a, 0x6007, 0x0020, 0x6003, 0x0001,
+-      0x080c, 0x6cd4, 0x0005, 0x080c, 0x2dbf, 0x1904, 0xa5ad, 0x6007,
+-      0x0023, 0x6003, 0x0001, 0x080c, 0x6cd4, 0x0005, 0x080c, 0xb2c4,
+-      0x1904, 0xa5ad, 0x080c, 0x2dbf, 0x1904, 0xa5ad, 0x080c, 0xa5d5,
+-      0x1904, 0xa29a, 0x0016, 0x0026, 0x2011, 0xbb91, 0x2214, 0xa286,
+-      0xffff, 0x0190, 0x2c08, 0x080c, 0x9c44, 0x01e0, 0x2260, 0x2011,
+-      0xbb90, 0x2214, 0x6008, 0xa206, 0x11a8, 0x6018, 0xa190, 0x0006,
+-      0x2214, 0xa206, 0x01e8, 0x0070, 0x2011, 0xbb90, 0x2214, 0x2c08,
+-      0xa006, 0x080c, 0xb0ae, 0x11a0, 0x2011, 0xbb91, 0x2214, 0xa286,
+-      0xffff, 0x01c0, 0x2160, 0x6007, 0x0026, 0x6013, 0x1700, 0x2011,
+-      0xbb89, 0x2214, 0xa296, 0xffff, 0x1180, 0x6007, 0x0025, 0x0068,
+-      0x601c, 0xa086, 0x0007, 0x1d70, 0x6004, 0xa086, 0x0024, 0x1110,
+-      0x080c, 0x8617, 0x2160, 0x6007, 0x0025, 0x6003, 0x0001, 0x080c,
+-      0x6cd4, 0x002e, 0x001e, 0x0005, 0x2001, 0x0001, 0x080c, 0x4eec,
+-      0x0156, 0x0016, 0x0026, 0x0036, 0x20a9, 0x0004, 0x2019, 0xb505,
+-      0x2011, 0xbb96, 0x080c, 0x90d4, 0x003e, 0x002e, 0x001e, 0x015e,
+-      0x0120, 0x6007, 0x0031, 0x0804, 0xa3a9, 0x080c, 0x8df0, 0x080c,
+-      0x5ad0, 0x11b0, 0x0006, 0x0026, 0x0036, 0x080c, 0x5aec, 0x1158,
+-      0x2001, 0xb79f, 0x2003, 0x0001, 0x2001, 0xb500, 0x2003, 0x0001,
+-      0x080c, 0x5a08, 0x0010, 0x080c, 0x5aa7, 0x003e, 0x002e, 0x000e,
+-      0x0005, 0x080c, 0x2dbf, 0x1904, 0xa5ad, 0x080c, 0xa5d5, 0x1904,
+-      0xa29a, 0x6106, 0x080c, 0xa5f1, 0x6007, 0x002b, 0x0804, 0xa3a9,
+-      0x6007, 0x002c, 0x0804, 0xa3a9, 0x080c, 0xb2c4, 0x1904, 0xa5ad,
+-      0x080c, 0x2dbf, 0x1904, 0xa5ad, 0x080c, 0xa5d5, 0x1904, 0xa29a,
+-      0x6106, 0x080c, 0xa5f5, 0x1120, 0x6007, 0x002e, 0x0804, 0xa3a9,
+-      0x6007, 0x002f, 0x0804, 0xa3a9, 0x080c, 0x2dbf, 0x1904, 0xa5ad,
+-      0x00e6, 0x00d6, 0x00c6, 0x6018, 0xa080, 0x0001, 0x200c, 0xa184,
+-      0x00ff, 0xa086, 0x0006, 0x0158, 0xa184, 0xff00, 0x8007, 0xa086,
+-      0x0006, 0x0128, 0x00ce, 0x00de, 0x00ee, 0x0804, 0xa3ae, 0x2001,
+-      0xb572, 0x2004, 0xd0e4, 0x0904, 0xa503, 0x2071, 0xbb8c, 0x7010,
+-      0x6036, 0x7014, 0x603a, 0x7108, 0x720c, 0x2001, 0xb553, 0x2004,
+-      0xd0a4, 0x0140, 0x6018, 0x2068, 0x6810, 0xa106, 0x1118, 0x6814,
+-      0xa206, 0x01f8, 0x2001, 0xb553, 0x2004, 0xd0ac, 0x1590, 0x2069,
+-      0xb500, 0x6874, 0xa206, 0x1568, 0x6870, 0xa106, 0x1550, 0x7210,
+-      0x080c, 0x9c44, 0x0558, 0x080c, 0xb148, 0x0540, 0x622a, 0x6007,
+-      0x0036, 0x6003, 0x0001, 0x080c, 0x6c8e, 0x00ce, 0x00de, 0x00ee,
+-      0x0005, 0x7214, 0xa286, 0xffff, 0x0150, 0x080c, 0x9c44, 0x01b0,
+-      0xa280, 0x0002, 0x2004, 0x7110, 0xa106, 0x1180, 0x0c08, 0x7210,
+-      0x2c08, 0xa085, 0x0001, 0x080c, 0xb0ae, 0x2c10, 0x2160, 0x0130,
+-      0x08b8, 0x6007, 0x0037, 0x6013, 0x1500, 0x08d8, 0x6007, 0x0037,
+-      0x6013, 0x1700, 0x08b0, 0x6007, 0x0012, 0x0898, 0x080c, 0x2dbf,
+-      0x1904, 0xa5ad, 0x6018, 0xa080, 0x0001, 0x2004, 0xa084, 0xff00,
+-      0x8007, 0xa086, 0x0006, 0x1904, 0xa3ae, 0x00e6, 0x00d6, 0x00c6,
+-      0x2001, 0xb572, 0x2004, 0xd0e4, 0x0904, 0xa56f, 0x2069, 0xb500,
+-      0x2071, 0xbb8c, 0x7008, 0x6036, 0x720c, 0x623a, 0xa286, 0xffff,
+-      0x1150, 0x7208, 0x00c6, 0x2c08, 0xa085, 0x0001, 0x080c, 0xb0ae,
+-      0x2c10, 0x00ce, 0x0588, 0x080c, 0x9c44, 0x0570, 0x00c6, 0x0026,
+-      0x2260, 0x080c, 0x9917, 0x002e, 0x00ce, 0x7118, 0xa18c, 0xff00,
+-      0x810f, 0xa186, 0x0001, 0x0158, 0xa186, 0x0005, 0x0118, 0xa186,
+-      0x0007, 0x1178, 0xa280, 0x0004, 0x2004, 0xa005, 0x0150, 0x0056,
+-      0x7510, 0x7614, 0x080c, 0xb15f, 0x005e, 0x00ce, 0x00de, 0x00ee,
+-      0x0005, 0x6007, 0x003b, 0x602b, 0x0009, 0x6013, 0x2a00, 0x6003,
+-      0x0001, 0x080c, 0x6c8e, 0x0c88, 0x6007, 0x003b, 0x602b, 0x0009,
+-      0x6013, 0x1700, 0x6003, 0x0001, 0x080c, 0x6c8e, 0x0c30, 0x6007,
+-      0x003b, 0x602b, 0x000b, 0x6013, 0x0000, 0x0804, 0xa4d9, 0x00e6,
+-      0x0026, 0x080c, 0x530a, 0x0558, 0x080c, 0x52fa, 0x080c, 0xb33f,
+-      0x1520, 0x2071, 0xb500, 0x70d4, 0xc085, 0x70d6, 0x00f6, 0x2079,
+-      0x0100, 0x72a0, 0xa284, 0x00ff, 0x7072, 0x78e6, 0xa284, 0xff00,
+-      0x7274, 0xa205, 0x7076, 0x78ea, 0x00fe, 0x70df, 0x0000, 0x2001,
+-      0xb553, 0x2004, 0xd0a4, 0x0120, 0x2011, 0xb7f9, 0x2013, 0x07d0,
+-      0xd0ac, 0x1128, 0x080c, 0x2ab8, 0x0010, 0x080c, 0xb36b, 0x002e,
+-      0x00ee, 0x080c, 0x8617, 0x0804, 0xa3ad, 0x080c, 0x8617, 0x0005,
+-      0x2600, 0x0002, 0xa5bb, 0xa5bb, 0xa5bb, 0xa5bb, 0xa5bb, 0xa5bd,
+-      0xa5bb, 0xa5bb, 0xa5bb, 0x080c, 0x1515, 0x080c, 0xb2c4, 0x1d68,
+-      0x080c, 0x2dbf, 0x1d50, 0x0089, 0x1138, 0x6007, 0x0045, 0x6003,
+-      0x0001, 0x080c, 0x6cd4, 0x0005, 0x080c, 0x2c9c, 0x6007, 0x0001,
+-      0x6003, 0x0001, 0x080c, 0x6cd4, 0x0005, 0x00d6, 0x0066, 0x6618,
+-      0x2668, 0x6e04, 0xa6b4, 0xff00, 0x8637, 0xa686, 0x0006, 0x0170,
+-      0xa686, 0x0004, 0x0158, 0x6e04, 0xa6b4, 0x00ff, 0xa686, 0x0006,
+-      0x0128, 0xa686, 0x0004, 0x0110, 0xa085, 0x0001, 0x006e, 0x00de,
+-      0x0005, 0x00d6, 0x0449, 0x00de, 0x0005, 0x00d6, 0x0491, 0x11f0,
+-      0x680c, 0xa08c, 0xff00, 0x6820, 0xa084, 0x00ff, 0xa115, 0x6212,
+-      0x6824, 0x602a, 0xd1e4, 0x0118, 0x2009, 0x0001, 0x0060, 0xd1ec,
+-      0x0168, 0x6920, 0xa18c, 0x00ff, 0x6824, 0x080c, 0x281d, 0x1130,
+-      0x2110, 0x2009, 0x0000, 0x080c, 0x2ce1, 0x0018, 0xa085, 0x0001,
+-      0x0008, 0xa006, 0x00de, 0x0005, 0x2069, 0xbb8d, 0x6800, 0xa082,
+-      0x0010, 0x1228, 0x6013, 0x0000, 0xa085, 0x0001, 0x0008, 0xa006,
+-      0x0005, 0x6013, 0x0000, 0x2069, 0xbb8c, 0x6808, 0xa084, 0xff00,
+-      0xa086, 0x0800, 0x1140, 0x6800, 0xa084, 0x00ff, 0xa08e, 0x0014,
+-      0x0110, 0xa08e, 0x0010, 0x0005, 0x6004, 0xa0b2, 0x0080, 0x1a0c,
+-      0x1515, 0xa1b6, 0x0013, 0x1130, 0x2008, 0xa1b2, 0x0040, 0x1a04,
+-      0xa73c, 0x0092, 0xa1b6, 0x0027, 0x0120, 0xa1b6, 0x0014, 0x190c,
+-      0x1515, 0x2001, 0x0007, 0x080c, 0x4f2b, 0x080c, 0x7091, 0x080c,
+-      0x9e17, 0x080c, 0x7174, 0x0005, 0xa69c, 0xa69e, 0xa69c, 0xa69c,
+-      0xa69c, 0xa69e, 0xa6b0, 0xa735, 0xa700, 0xa735, 0xa711, 0xa735,
+-      0xa6b0, 0xa735, 0xa72d, 0xa735, 0xa72d, 0xa735, 0xa735, 0xa69c,
+-      0xa69c, 0xa69c, 0xa69c, 0xa69c, 0xa69c, 0xa69c, 0xa69c, 0xa69c,
+-      0xa69c, 0xa69c, 0xa69e, 0xa69c, 0xa735, 0xa69c, 0xa69c, 0xa735,
+-      0xa69c, 0xa732, 0xa735, 0xa69c, 0xa69c, 0xa69c, 0xa69c, 0xa735,
+-      0xa735, 0xa69c, 0xa735, 0xa735, 0xa69c, 0xa6aa, 0xa69c, 0xa69c,
+-      0xa69c, 0xa69c, 0xa731, 0xa735, 0xa69c, 0xa69c, 0xa735, 0xa735,
+-      0xa69c, 0xa69c, 0xa69c, 0xa69c, 0x080c, 0x1515, 0x080c, 0x7091,
+-      0x2001, 0xb7b6, 0x2004, 0x6016, 0x6003, 0x0002, 0x080c, 0x7174,
+-      0x0804, 0xa73b, 0x2001, 0x0000, 0x080c, 0x4eec, 0x0804, 0xa735,
+-      0x00f6, 0x2079, 0xb552, 0x7804, 0x00fe, 0xd0ac, 0x1904, 0xa735,
+-      0x2001, 0x0000, 0x080c, 0x4eec, 0x6018, 0xa080, 0x0004, 0x2004,
+-      0xa086, 0x00ff, 0x1140, 0x00f6, 0x2079, 0xb500, 0x7898, 0x8000,
+-      0x789a, 0x00fe, 0x00e0, 0x00c6, 0x6018, 0x2060, 0x6000, 0xd0f4,
+-      0x1140, 0x6010, 0xa005, 0x0128, 0x00ce, 0x080c, 0x3f3f, 0x0804,
+-      0xa735, 0x00ce, 0x2001, 0xb500, 0x2004, 0xa086, 0x0002, 0x1138,
+-      0x00f6, 0x2079, 0xb500, 0x7898, 0x8000, 0x789a, 0x00fe, 0x2001,
+-      0x0002, 0x080c, 0x4efe, 0x080c, 0x7091, 0x601f, 0x0001, 0x6003,
+-      0x0001, 0x6007, 0x0002, 0x080c, 0x6cd4, 0x080c, 0x7174, 0x00c6,
+-      0x6118, 0x2160, 0x2009, 0x0001, 0x080c, 0x69a9, 0x00ce, 0x04d8,
+-      0x6618, 0x00d6, 0x2668, 0x6e04, 0x00de, 0xa6b4, 0xff00, 0x8637,
+-      0xa686, 0x0006, 0x0550, 0xa686, 0x0004, 0x0538, 0x2001, 0x0004,
+-      0x0410, 0x2001, 0xb500, 0x2004, 0xa086, 0x0003, 0x1110, 0x080c,
+-      0x3f3f, 0x2001, 0x0006, 0x04a1, 0x6618, 0x00d6, 0x2668, 0x6e04,
+-      0x00de, 0xa6b4, 0xff00, 0x8637, 0xa686, 0x0006, 0x0170, 0x2001,
+-      0x0006, 0x0048, 0x2001, 0x0004, 0x0030, 0x2001, 0x0006, 0x0401,
+-      0x0020, 0x0018, 0x0010, 0x080c, 0x4f2b, 0x080c, 0x7091, 0x080c,
+-      0x8617, 0x080c, 0x7174, 0x0005, 0x2600, 0x0002, 0xa747, 0xa747,
+-      0xa747, 0xa747, 0xa747, 0xa749, 0xa747, 0xa747, 0xa747, 0x080c,
+-      0x1515, 0x080c, 0x7091, 0x080c, 0x8617, 0x080c, 0x7174, 0x0005,
+-      0x0016, 0x00d6, 0x6118, 0x2168, 0x6900, 0xd184, 0x0140, 0x080c,
+-      0x4efe, 0x2001, 0x0000, 0x080c, 0x4eec, 0x080c, 0x2cc2, 0x00de,
+-      0x001e, 0x0005, 0x00d6, 0x6618, 0x2668, 0x6804, 0xa084, 0xff00,
+-      0x8007, 0x00de, 0xa0b2, 0x000c, 0x1a0c, 0x1515, 0xa1b6, 0x0015,
+-      0x1110, 0x003b, 0x0028, 0xa1b6, 0x0016, 0x190c, 0x1515, 0x006b,
+-      0x0005, 0x8cd9, 0x8cd9, 0x8cd9, 0x8cd9, 0x8cd9, 0x8cd9, 0xa7d2,
+-      0xa791, 0x8cd9, 0x8cd9, 0x8cd9, 0x8cd9, 0x8cd9, 0x8cd9, 0x8cd9,
+-      0x8cd9, 0x8cd9, 0x8cd9, 0xa7d2, 0xa7d9, 0x8cd9, 0x8cd9, 0x8cd9,
+-      0x8cd9, 0x00f6, 0x2079, 0xb552, 0x7804, 0xd0ac, 0x11e0, 0x6018,
+-      0xa07d, 0x01c8, 0x7800, 0xd0f4, 0x1118, 0x7810, 0xa005, 0x1198,
+-      0x2001, 0x0000, 0x080c, 0x4eec, 0x2001, 0x0002, 0x080c, 0x4efe,
+-      0x601f, 0x0001, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x6cd4,
+-      0x080c, 0x7174, 0x00e8, 0x2011, 0xbb83, 0x2204, 0x8211, 0x220c,
+-      0x080c, 0x281d, 0x11a8, 0x00c6, 0x080c, 0x4faa, 0x0120, 0x00ce,
+-      0x080c, 0x8617, 0x0068, 0x6010, 0x0006, 0x6014, 0x0006, 0x080c,
+-      0x4c0c, 0x000e, 0x6016, 0x000e, 0x6012, 0x00ce, 0x080c, 0x8617,
+-      0x00fe, 0x0005, 0x6604, 0xa6b6, 0x001e, 0x1110, 0x080c, 0x8617,
+-      0x0005, 0x080c, 0x8f8f, 0x1138, 0x6003, 0x0001, 0x6007, 0x0001,
+-      0x080c, 0x6cd4, 0x0010, 0x080c, 0x8617, 0x0005, 0x6004, 0xa08a,
+-      0x0080, 0x1a0c, 0x1515, 0x080c, 0x7091, 0x080c, 0x9e17, 0x080c,
+-      0x7174, 0x0005, 0xa182, 0x0040, 0x0002, 0xa808, 0xa808, 0xa808,
+-      0xa808, 0xa80a, 0xa808, 0xa808, 0xa808, 0xa808, 0xa808, 0xa808,
+-      0xa808, 0xa808, 0xa808, 0xa808, 0xa808, 0xa808, 0xa808, 0xa808,
+-      0x080c, 0x1515, 0x00d6, 0x00e6, 0x00f6, 0x0156, 0x0046, 0x0026,
+-      0x6218, 0xa280, 0x002b, 0x2004, 0xa005, 0x0120, 0x2021, 0x0000,
+-      0x080c, 0xb310, 0x6106, 0x2071, 0xbb80, 0x7444, 0xa4a4, 0xff00,
+-      0x0904, 0xa86e, 0xa486, 0x2000, 0x1130, 0x2009, 0x0001, 0x2011,
+-      0x0200, 0x080c, 0x6b1b, 0x080c, 0x15f8, 0x090c, 0x1515, 0x6003,
+-      0x0007, 0x2d00, 0x6837, 0x010d, 0x6803, 0x0000, 0x683b, 0x0000,
+-      0x6c5a, 0x2c00, 0x685e, 0x6008, 0x68b2, 0x6018, 0x2078, 0x78a0,
+-      0x8007, 0x7130, 0x694a, 0x0016, 0xa084, 0xff00, 0x6846, 0x684f,
+-      0x0000, 0x6853, 0x0000, 0x6857, 0x0036, 0x080c, 0x5409, 0x001e,
+-      0xa486, 0x2000, 0x1130, 0x2019, 0x0017, 0x080c, 0xb059, 0x0804,
+-      0xa8cb, 0xa486, 0x0400, 0x1130, 0x2019, 0x0002, 0x080c, 0xb00b,
+-      0x0804, 0xa8cb, 0xa486, 0x0200, 0x1110, 0x080c, 0xaff0, 0xa486,
+-      0x1000, 0x1110, 0x080c, 0xb03e, 0x0804, 0xa8cb, 0x2069, 0xb874,
+-      0x6a00, 0xd284, 0x0904, 0xa932, 0xa284, 0x0300, 0x1904, 0xa92b,
+-      0x6804, 0xa005, 0x0904, 0xa913, 0x2d78, 0x6003, 0x0007, 0x080c,
+-      0x15df, 0x0904, 0xa8d2, 0x7800, 0xd08c, 0x1118, 0x7804, 0x8001,
+-      0x7806, 0x6013, 0x0000, 0x6803, 0x0000, 0x6837, 0x0116, 0x683b,
+-      0x0000, 0x6008, 0x68b2, 0x2c00, 0x684a, 0x6018, 0x2078, 0x78a0,
+-      0x8007, 0x7130, 0x6986, 0x6846, 0x7928, 0x698a, 0x792c, 0x698e,
+-      0x7930, 0x6992, 0x7934, 0x6996, 0x6853, 0x003d, 0x7244, 0xa294,
+-      0x0003, 0xa286, 0x0002, 0x1118, 0x684f, 0x0040, 0x0040, 0xa286,
+-      0x0001, 0x1118, 0x684f, 0x0080, 0x0010, 0x684f, 0x0000, 0x20a9,
+-      0x000a, 0x2001, 0xbb90, 0xad90, 0x0015, 0x200c, 0x810f, 0x2112,
+-      0x8000, 0x8210, 0x1f04, 0xa8bd, 0x200c, 0x6982, 0x8000, 0x200c,
+-      0x697e, 0x080c, 0x5409, 0x002e, 0x004e, 0x015e, 0x00fe, 0x00ee,
+-      0x00de, 0x0005, 0x2001, 0xb50e, 0x2004, 0xd084, 0x0120, 0x080c,
+-      0x15f8, 0x1904, 0xa883, 0x6013, 0x0100, 0x6003, 0x0001, 0x6007,
+-      0x0041, 0x080c, 0x6c8e, 0x080c, 0x7174, 0x0c28, 0x2069, 0xbb92,
+-      0x2d04, 0xa084, 0xff00, 0xa086, 0x1200, 0x11a8, 0x2069, 0xbb80,
+-      0x686c, 0xa084, 0x00ff, 0x0016, 0x6110, 0xa18c, 0x0700, 0xa10d,
+-      0x6112, 0x001e, 0x6003, 0x0001, 0x6007, 0x0043, 0x080c, 0x6c8e,
+-      0x080c, 0x7174, 0x0840, 0x6868, 0x602a, 0x686c, 0x602e, 0x6013,
+-      0x0200, 0x6003, 0x0001, 0x6007, 0x0041, 0x080c, 0x6c8e, 0x080c,
+-      0x7174, 0x0804, 0xa8cb, 0x2001, 0xb50d, 0x2004, 0xd0ec, 0x0120,
+-      0x2011, 0x8049, 0x080c, 0x3ecd, 0x6013, 0x0300, 0x0010, 0x6013,
+-      0x0100, 0x6003, 0x0001, 0x6007, 0x0041, 0x080c, 0x6c8e, 0x080c,
+-      0x7174, 0x0804, 0xa8cb, 0x6013, 0x0500, 0x0c98, 0x6013, 0x0600,
+-      0x0804, 0xa8e6, 0x6013, 0x0200, 0x0804, 0xa8e6, 0xa186, 0x0013,
+-      0x1170, 0x6004, 0xa08a, 0x0040, 0x0a0c, 0x1515, 0xa08a, 0x0053,
+-      0x1a0c, 0x1515, 0xa082, 0x0040, 0x2008, 0x0804, 0xa9c0, 0xa186,
+-      0x0051, 0x0138, 0xa186, 0x0047, 0x11d8, 0x6004, 0xa086, 0x0041,
+-      0x0518, 0x2001, 0x0109, 0x2004, 0xd084, 0x01f0, 0x0126, 0x2091,
+-      0x2800, 0x0006, 0x0016, 0x0026, 0x080c, 0x6b75, 0x002e, 0x001e,
+-      0x000e, 0x012e, 0x6000, 0xa086, 0x0002, 0x1170, 0x0804, 0xaa03,
+-      0xa186, 0x0027, 0x0120, 0xa186, 0x0014, 0x190c, 0x1515, 0x6004,
+-      0xa082, 0x0040, 0x2008, 0x001a, 0x080c, 0x865d, 0x0005, 0xa98a,
+-      0xa98c, 0xa98c, 0xa9b0, 0xa98a, 0xa98a, 0xa98a, 0xa98a, 0xa98a,
+-      0xa98a, 0xa98a, 0xa98a, 0xa98a, 0xa98a, 0xa98a, 0xa98a, 0xa98a,
+-      0xa98a, 0xa98a, 0x080c, 0x1515, 0x080c, 0x7091, 0x080c, 0x7174,
+-      0x0036, 0x00d6, 0x6010, 0xa06d, 0x01c0, 0xad84, 0xf000, 0x01a8,
+-      0x6003, 0x0002, 0x6018, 0x2004, 0xd0bc, 0x1178, 0x2019, 0x0004,
+-      0x080c, 0xb08d, 0x6013, 0x0000, 0x6014, 0xa005, 0x1120, 0x2001,
+-      0xb7b7, 0x2004, 0x6016, 0x6003, 0x0007, 0x00de, 0x003e, 0x0005,
+-      0x00d6, 0x080c, 0x7091, 0x080c, 0x7174, 0x080c, 0x9c54, 0x0120,
+-      0x6010, 0x2068, 0x080c, 0x160f, 0x080c, 0x9e17, 0x00de, 0x0005,
+-      0x0002, 0xa9d4, 0xa9f1, 0xa9dd, 0xa9fd, 0xa9d4, 0xa9d4, 0xa9d4,
+-      0xa9d4, 0xa9d4, 0xa9d4, 0xa9d4, 0xa9d4, 0xa9d4, 0xa9d4, 0xa9d4,
+-      0xa9d4, 0xa9d4, 0xa9d4, 0xa9d4, 0x080c, 0x1515, 0x6010, 0xa088,
+-      0x0013, 0x2104, 0xa085, 0x0400, 0x200a, 0x080c, 0x7091, 0x6010,
+-      0xa080, 0x0013, 0x2004, 0xd0b4, 0x0138, 0x6003, 0x0007, 0x2009,
+-      0x0043, 0x080c, 0x8646, 0x0010, 0x6003, 0x0002, 0x080c, 0x7174,
+-      0x0005, 0x080c, 0x7091, 0x080c, 0xb2cb, 0x1120, 0x080c, 0x6af0,
+-      0x080c, 0x8617, 0x080c, 0x7174, 0x0005, 0x080c, 0x7091, 0x2009,
+-      0x0041, 0x0804, 0xab4c, 0xa182, 0x0040, 0x0002, 0xaa19, 0xaa1b,
+-      0xaa19, 0xaa19, 0xaa19, 0xaa19, 0xaa19, 0xaa1c, 0xaa19, 0xaa19,
+-      0xaa19, 0xaa19, 0xaa19, 0xaa19, 0xaa19, 0xaa19, 0xaa19, 0xaa27,
+-      0xaa19, 0x080c, 0x1515, 0x0005, 0x6003, 0x0004, 0x6110, 0x20e1,
+-      0x0005, 0x3d18, 0x3e20, 0x2c10, 0x080c, 0x185e, 0x0005, 0x00d6,
+-      0x080c, 0x6af0, 0x00de, 0x080c, 0xb32e, 0x080c, 0x8617, 0x0005,
+-      0xa182, 0x0040, 0x0002, 0xaa46, 0xaa46, 0xaa46, 0xaa46, 0xaa46,
+-      0xaa46, 0xaa46, 0xaa48, 0xaa46, 0xaa4b, 0xaa84, 0xaa46, 0xaa46,
+-      0xaa46, 0xaa46, 0xaa84, 0xaa46, 0xaa46, 0xaa46, 0x080c, 0x1515,
+-      0x080c, 0x865d, 0x0005, 0x2001, 0xb572, 0x2004, 0xd0e4, 0x0158,
+-      0x2001, 0x0100, 0x2004, 0xa082, 0x0005, 0x0228, 0x2001, 0x011f,
+-      0x2004, 0x6036, 0x0010, 0x6037, 0x0000, 0x080c, 0x7127, 0x080c,
+-      0x7231, 0x6010, 0x00d6, 0x2068, 0x684c, 0xd0fc, 0x0150, 0xa08c,
+-      0x0003, 0xa18e, 0x0002, 0x0168, 0x2009, 0x0041, 0x00de, 0x0804,
+-      0xab4c, 0x6003, 0x0007, 0x6017, 0x0000, 0x080c, 0x6af0, 0x00de,
+-      0x0005, 0x080c, 0xb2cb, 0x0110, 0x00de, 0x0005, 0x080c, 0x6af0,
+-      0x080c, 0x8617, 0x00de, 0x0ca0, 0x0036, 0x080c, 0x7127, 0x080c,
+-      0x7231, 0x6010, 0x00d6, 0x2068, 0x6018, 0x2004, 0xd0bc, 0x0188,
+-      0x684c, 0xa084, 0x0003, 0xa086, 0x0002, 0x0140, 0x687c, 0x632c,
+-      0xa31a, 0x632e, 0x6880, 0x6328, 0xa31b, 0x632a, 0x6003, 0x0002,
+-      0x0080, 0x2019, 0x0004, 0x080c, 0xb08d, 0x6014, 0xa005, 0x1128,
+-      0x2001, 0xb7b7, 0x2004, 0x8003, 0x6016, 0x6013, 0x0000, 0x6003,
+-      0x0007, 0x00de, 0x003e, 0x0005, 0xa186, 0x0013, 0x1150, 0x6004,
+-      0xa086, 0x0042, 0x190c, 0x1515, 0x080c, 0x7091, 0x080c, 0x7174,
+-      0x0005, 0xa186, 0x0027, 0x0118, 0xa186, 0x0014, 0x1180, 0x6004,
+-      0xa086, 0x0042, 0x190c, 0x1515, 0x2001, 0x0007, 0x080c, 0x4f2b,
+-      0x080c, 0x7091, 0x080c, 0x9e17, 0x080c, 0x7174, 0x0005, 0xa182,
+-      0x0040, 0x0002, 0xaaed, 0xaaed, 0xaaed, 0xaaed, 0xaaed, 0xaaed,
+-      0xaaed, 0xaaef, 0xaafb, 0xaaed, 0xaaed, 0xaaed, 0xaaed, 0xaaed,
+-      0xaaed, 0xaaed, 0xaaed, 0xaaed, 0xaaed, 0x080c, 0x1515, 0x0036,
+-      0x0046, 0x20e1, 0x0005, 0x3d18, 0x3e20, 0x2c10, 0x080c, 0x185e,
+-      0x004e, 0x003e, 0x0005, 0x6010, 0x00d6, 0x2068, 0x6810, 0x6a14,
+-      0x0006, 0x0046, 0x0056, 0x6c7c, 0xa422, 0x6d80, 0x2200, 0xa52b,
+-      0x602c, 0xa420, 0x642e, 0x6028, 0xa529, 0x652a, 0x005e, 0x004e,
+-      0x000e, 0xa20d, 0x1178, 0x684c, 0xd0fc, 0x0120, 0x2009, 0x0041,
+-      0x00de, 0x0490, 0x6003, 0x0007, 0x6017, 0x0000, 0x080c, 0x6af0,
+-      0x00de, 0x0005, 0x0006, 0x00f6, 0x2c78, 0x080c, 0x5306, 0x00fe,
+-      0x000e, 0x0120, 0x6003, 0x0002, 0x00de, 0x0005, 0x2009, 0xb50d,
+-      0x210c, 0xd19c, 0x0118, 0x6003, 0x0007, 0x0010, 0x6003, 0x0006,
+-      0x0021, 0x080c, 0x6af2, 0x00de, 0x0005, 0xd2fc, 0x0140, 0x8002,
+-      0x8000, 0x8212, 0xa291, 0x0000, 0x2009, 0x0009, 0x0010, 0x2009,
+-      0x0015, 0x6a6a, 0x6866, 0x0005, 0xa182, 0x0040, 0x0208, 0x0062,
+-      0xa186, 0x0013, 0x0120, 0xa186, 0x0014, 0x190c, 0x1515, 0x6020,
+-      0xd0dc, 0x090c, 0x1515, 0x0005, 0xab6f, 0xab76, 0xab82, 0xab8e,
+-      0xab6f, 0xab6f, 0xab6f, 0xab9d, 0xab6f, 0xab71, 0xab71, 0xab6f,
+-      0xab6f, 0xab6f, 0xab6f, 0xab71, 0xab6f, 0xab71, 0xab6f, 0x080c,
+-      0x1515, 0x6020, 0xd0dc, 0x090c, 0x1515, 0x0005, 0x6003, 0x0001,
+-      0x6106, 0x080c, 0x6c8e, 0x0126, 0x2091, 0x8000, 0x080c, 0x7174,
+-      0x012e, 0x0005, 0x6003, 0x0001, 0x6106, 0x080c, 0x6c8e, 0x0126,
+-      0x2091, 0x8000, 0x080c, 0x7174, 0x012e, 0x0005, 0x6003, 0x0003,
+-      0x6106, 0x2c10, 0x080c, 0x1fa9, 0x0126, 0x2091, 0x8000, 0x080c,
+-      0x6cf1, 0x080c, 0x7231, 0x012e, 0x0005, 0xa016, 0x080c, 0x185e,
+-      0x0005, 0x0126, 0x2091, 0x8000, 0x0036, 0x00d6, 0xa182, 0x0040,
+-      0x0023, 0x00de, 0x003e, 0x012e, 0x0005, 0xabbd, 0xabbf, 0xabd1,
+-      0xabec, 0xabbd, 0xabbd, 0xabbd, 0xac01, 0xabbd, 0xabbd, 0xabbd,
+-      0xabbd, 0xabbd, 0xabbd, 0xabbd, 0xabbd, 0x080c, 0x1515, 0x6010,
+-      0x2068, 0x684c, 0xd0fc, 0x01f8, 0xa09c, 0x0003, 0xa39e, 0x0003,
+-      0x01d0, 0x6003, 0x0001, 0x6106, 0x080c, 0x6c8e, 0x080c, 0x7174,
+-      0x0498, 0x6010, 0x2068, 0x684c, 0xd0fc, 0x0168, 0xa09c, 0x0003,
+-      0xa39e, 0x0003, 0x0140, 0x6003, 0x0001, 0x6106, 0x080c, 0x6c8e,
+-      0x080c, 0x7174, 0x0408, 0x6013, 0x0000, 0x6017, 0x0000, 0x2019,
+-      0x0004, 0x080c, 0xb08d, 0x00c0, 0x6010, 0x2068, 0x684c, 0xd0fc,
+-      0x0d90, 0xa09c, 0x0003, 0xa39e, 0x0003, 0x0d68, 0x6003, 0x0003,
+-      0x6106, 0x2c10, 0x080c, 0x1fa9, 0x080c, 0x6cf1, 0x080c, 0x7231,
+-      0x0018, 0xa016, 0x080c, 0x185e, 0x0005, 0x080c, 0x7091, 0x6110,
+-      0x81ff, 0x0158, 0x00d6, 0x2168, 0x080c, 0xb374, 0x0036, 0x2019,
+-      0x0029, 0x080c, 0xb08d, 0x003e, 0x00de, 0x080c, 0x9e17, 0x080c,
+-      0x7174, 0x0005, 0x080c, 0x7127, 0x6110, 0x81ff, 0x0158, 0x00d6,
+-      0x2168, 0x080c, 0xb374, 0x0036, 0x2019, 0x0029, 0x080c, 0xb08d,
+-      0x003e, 0x00de, 0x080c, 0x9e17, 0x080c, 0x7231, 0x0005, 0xa182,
+-      0x0085, 0x0002, 0xac3b, 0xac39, 0xac39, 0xac47, 0xac39, 0xac39,
+-      0xac39, 0x080c, 0x1515, 0x6003, 0x000b, 0x6106, 0x080c, 0x6c8e,
+-      0x0126, 0x2091, 0x8000, 0x080c, 0x7174, 0x012e, 0x0005, 0x0026,
+-      0x00e6, 0x080c, 0xb2c4, 0x0118, 0x080c, 0x8617, 0x00c8, 0x2071,
+-      0xbb80, 0x7224, 0x6212, 0x7220, 0x080c, 0xaf3b, 0x0118, 0x6007,
+-      0x0086, 0x0040, 0x6007, 0x0087, 0x7224, 0xa296, 0xffff, 0x1110,
+-      0x6007, 0x0086, 0x6003, 0x0001, 0x080c, 0x6c8e, 0x080c, 0x7174,
+-      0x00ee, 0x002e, 0x0005, 0xa186, 0x0013, 0x1160, 0x6004, 0xa08a,
+-      0x0085, 0x0a0c, 0x1515, 0xa08a, 0x008c, 0x1a0c, 0x1515, 0xa082,
+-      0x0085, 0x00a2, 0xa186, 0x0027, 0x0130, 0xa186, 0x0014, 0x0118,
+-      0x080c, 0x865d, 0x0050, 0x2001, 0x0007, 0x080c, 0x4f2b, 0x080c,
+-      0x7091, 0x080c, 0x9e17, 0x080c, 0x7174, 0x0005, 0xac95, 0xac97,
+-      0xac97, 0xac95, 0xac95, 0xac95, 0xac95, 0x080c, 0x1515, 0x080c,
+-      0x7091, 0x080c, 0x9e17, 0x080c, 0x7174, 0x0005, 0xa182, 0x0085,
+-      0x0a0c, 0x1515, 0xa182, 0x008c, 0x1a0c, 0x1515, 0xa182, 0x0085,
+-      0x0002, 0xacb0, 0xacb0, 0xacb0, 0xacb2, 0xacb0, 0xacb0, 0xacb0,
+-      0x080c, 0x1515, 0x0005, 0xa186, 0x0013, 0x0148, 0xa186, 0x0014,
+-      0x0130, 0xa186, 0x0027, 0x0118, 0x080c, 0x865d, 0x0030, 0x080c,
+-      0x7091, 0x080c, 0x9e17, 0x080c, 0x7174, 0x0005, 0x0036, 0x080c,
+-      0xb32e, 0x603f, 0x0000, 0x2019, 0x000b, 0x0031, 0x601f, 0x0006,
+-      0x6003, 0x0007, 0x003e, 0x0005, 0x0126, 0x0036, 0x2091, 0x8000,
+-      0x0086, 0x2c40, 0x0096, 0x2049, 0x0000, 0x080c, 0x8131, 0x009e,
+-      0x008e, 0x1578, 0x0076, 0x2c38, 0x080c, 0x81d0, 0x007e, 0x1548,
+-      0x6000, 0xa086, 0x0000, 0x0528, 0x601c, 0xa086, 0x0007, 0x0508,
+-      0x00d6, 0x6000, 0xa086, 0x0004, 0x1150, 0x080c, 0xb32e, 0x601f,
+-      0x0007, 0x2001, 0xb7b6, 0x2004, 0x6016, 0x080c, 0x194d, 0x6010,
+-      0x2068, 0x080c, 0x9c54, 0x0110, 0x080c, 0xb08d, 0x00de, 0x6013,
+-      0x0000, 0x080c, 0xb32e, 0x601f, 0x0007, 0x2001, 0xb7b6, 0x2004,
+-      0x6016, 0x003e, 0x012e, 0x0005, 0x00f6, 0x00c6, 0x0036, 0x0156,
+-      0x2079, 0xbb80, 0x7938, 0x783c, 0x080c, 0x281d, 0x15b0, 0x0016,
+-      0x00c6, 0x080c, 0x4faa, 0x1578, 0x001e, 0x002e, 0x0026, 0x0016,
+-      0x2019, 0x0029, 0x080c, 0x8293, 0x080c, 0x6df6, 0x0076, 0x2039,
+-      0x0000, 0x080c, 0x6d03, 0x007e, 0x001e, 0x0076, 0x2039, 0x0000,
+-      0x080c, 0xae76, 0x007e, 0x080c, 0x51ab, 0x0026, 0x6204, 0xa294,
+-      0xff00, 0x8217, 0xa286, 0x0006, 0x0118, 0xa286, 0x0004, 0x1118,
+-      0x62a0, 0x080c, 0x2d55, 0x002e, 0x001e, 0x080c, 0x4c0c, 0x6612,
+-      0x6516, 0xa006, 0x0010, 0x00ce, 0x001e, 0x015e, 0x003e, 0x00ce,
+-      0x00fe, 0x0005, 0x00c6, 0x00d6, 0x00e6, 0x0016, 0x2009, 0xb521,
+-      0x2104, 0xa086, 0x0074, 0x1904, 0xadaf, 0x2069, 0xbb8e, 0x690c,
+-      0xa182, 0x0100, 0x06c0, 0x6908, 0xa184, 0x8000, 0x05e8, 0x2001,
+-      0xb79e, 0x2004, 0xa005, 0x1160, 0x6018, 0x2070, 0x7010, 0xa084,
+-      0x00ff, 0x0118, 0x7000, 0xd0f4, 0x0118, 0xa184, 0x0800, 0x0560,
+-      0x6910, 0xa18a, 0x0001, 0x0610, 0x6914, 0x2069, 0xbbae, 0x6904,
+-      0x81ff, 0x1198, 0x690c, 0xa182, 0x0100, 0x02a8, 0x6908, 0x81ff,
+-      0x1178, 0x6910, 0xa18a, 0x0001, 0x0288, 0x6918, 0xa18a, 0x0001,
+-      0x0298, 0x00d0, 0x6013, 0x0100, 0x00a0, 0x6013, 0x0300, 0x0088,
+-      0x6013, 0x0500, 0x0070, 0x6013, 0x0700, 0x0058, 0x6013, 0x0900,
+-      0x0040, 0x6013, 0x0b00, 0x0028, 0x6013, 0x0f00, 0x0010, 0x6013,
+-      0x2d00, 0xa085, 0x0001, 0x0008, 0xa006, 0x001e, 0x00ee, 0x00de,
+-      0x00ce, 0x0005, 0x00c6, 0x00d6, 0x0026, 0x0036, 0x0156, 0x6218,
+-      0x2268, 0x6b04, 0xa394, 0x00ff, 0xa286, 0x0006, 0x0190, 0xa286,
+-      0x0004, 0x0178, 0xa394, 0xff00, 0x8217, 0xa286, 0x0006, 0x0148,
+-      0xa286, 0x0004, 0x0130, 0x00c6, 0x2d60, 0x080c, 0x4fb9, 0x00ce,
+-      0x04c0, 0x2011, 0xbb96, 0xad98, 0x000a, 0x20a9, 0x0004, 0x080c,
+-      0x90d4, 0x1580, 0x2011, 0xbb9a, 0xad98, 0x0006, 0x20a9, 0x0004,
+-      0x080c, 0x90d4, 0x1538, 0x0046, 0x0016, 0x6aa0, 0xa294, 0x00ff,
+-      0x8227, 0xa006, 0x2009, 0xb553, 0x210c, 0xd1a4, 0x0138, 0x2009,
+-      0x0029, 0x080c, 0xb0dc, 0x6800, 0xc0e5, 0x6802, 0x2019, 0x0029,
+-      0x080c, 0x6df6, 0x0076, 0x2039, 0x0000, 0x080c, 0x6d03, 0x2c08,
+-      0x080c, 0xae76, 0x007e, 0x2001, 0x0007, 0x080c, 0x4f2b, 0x001e,
+-      0x004e, 0xa006, 0x015e, 0x003e, 0x002e, 0x00de, 0x00ce, 0x0005,
+-      0x00d6, 0x2069, 0xbb8e, 0x6800, 0xa086, 0x0800, 0x0118, 0x6013,
+-      0x0000, 0x0008, 0xa006, 0x00de, 0x0005, 0x00c6, 0x00f6, 0x0016,
+-      0x0026, 0x0036, 0x0156, 0x2079, 0xbb8c, 0x7930, 0x7834, 0x080c,
+-      0x281d, 0x11a0, 0x080c, 0x4faa, 0x1188, 0x2011, 0xbb90, 0xac98,
+-      0x000a, 0x20a9, 0x0004, 0x080c, 0x90d4, 0x1140, 0x2011, 0xbb94,
+-      0xac98, 0x0006, 0x20a9, 0x0004, 0x080c, 0x90d4, 0x015e, 0x003e,
+-      0x002e, 0x001e, 0x00fe, 0x00ce, 0x0005, 0x00c6, 0x0006, 0x0016,
+-      0x0026, 0x0036, 0x0156, 0x2011, 0xbb83, 0x2204, 0x8211, 0x220c,
+-      0x080c, 0x281d, 0x11a0, 0x080c, 0x4faa, 0x1188, 0x2011, 0xbb96,
+-      0xac98, 0x000a, 0x20a9, 0x0004, 0x080c, 0x90d4, 0x1140, 0x2011,
+-      0xbb9a, 0xac98, 0x0006, 0x20a9, 0x0004, 0x080c, 0x90d4, 0x015e,
+-      0x003e, 0x002e, 0x001e, 0x000e, 0x00ce, 0x0005, 0x00e6, 0x00c6,
+-      0x0086, 0x0076, 0x0066, 0x0056, 0x0046, 0x0026, 0x0126, 0x2091,
+-      0x8000, 0x2740, 0x2029, 0xb7e9, 0x252c, 0x2021, 0xb7ef, 0x2424,
+-      0x2061, 0xbd00, 0x2071, 0xb500, 0x7648, 0x7068, 0x81ff, 0x0150,
+-      0x0006, 0xa186, 0xb8f4, 0x000e, 0x0128, 0x8001, 0xa602, 0x1a04,
+-      0xaef7, 0x0018, 0xa606, 0x0904, 0xaef7, 0x2100, 0xac06, 0x0904,
+-      0xaeee, 0x080c, 0xb104, 0x0904, 0xaeee, 0x671c, 0xa786, 0x0001,
+-      0x0904, 0xaf12, 0xa786, 0x0004, 0x0904, 0xaf12, 0xa786, 0x0007,
+-      0x05e8, 0x2500, 0xac06, 0x05d0, 0x2400, 0xac06, 0x05b8, 0x080c,
+-      0xb114, 0x15a0, 0x88ff, 0x0118, 0x6050, 0xa906, 0x1578, 0x00d6,
+-      0x6000, 0xa086, 0x0004, 0x1120, 0x0016, 0x080c, 0x194d, 0x001e,
+-      0xa786, 0x0008, 0x1148, 0x080c, 0x9e52, 0x1130, 0x080c, 0x8c13,
+-      0x00de, 0x080c, 0x9e17, 0x00d0, 0x6010, 0x2068, 0x080c, 0x9c54,
+-      0x0190, 0xa786, 0x0003, 0x1528, 0x6837, 0x0103, 0x6b4a, 0x6847,
+-      0x0000, 0x080c, 0xb374, 0x0016, 0x080c, 0x9ec6, 0x080c, 0x5409,
+-      0x001e, 0x080c, 0x9e0b, 0x00de, 0x080c, 0x9e17, 0xace0, 0x0018,
+-      0x2001, 0xb517, 0x2004, 0xac02, 0x1210, 0x0804, 0xae8a, 0x012e,
+-      0x002e, 0x004e, 0x005e, 0x006e, 0x007e, 0x008e, 0x00ce, 0x00ee,
+-      0x0005, 0xa786, 0x0006, 0x1150, 0xa386, 0x0005, 0x0128, 0x080c,
+-      0xb374, 0x080c, 0xb08d, 0x08f8, 0x00de, 0x0c00, 0xa786, 0x000a,
+-      0x0968, 0x0850, 0x080c, 0xb114, 0x19c8, 0x81ff, 0x09b8, 0xa180,
+-      0x0001, 0x2004, 0xa086, 0x0018, 0x0130, 0xa180, 0x0001, 0x2004,
+-      0xa086, 0x002d, 0x1958, 0x6000, 0xa086, 0x0002, 0x1938, 0x080c,
+-      0x9e41, 0x0130, 0x080c, 0x9e52, 0x1908, 0x080c, 0x8c13, 0x0038,
+-      0x080c, 0x2cc2, 0x080c, 0x9e52, 0x1110, 0x080c, 0x8c13, 0x080c,
+-      0x9e17, 0x0804, 0xaeee, 0x00c6, 0x00e6, 0x0016, 0x2c08, 0x2170,
+-      0xa006, 0x080c, 0xb0ae, 0x001e, 0x0120, 0x601c, 0xa084, 0x000f,
+-      0x001b, 0x00ee, 0x00ce, 0x0005, 0xaf54, 0xaf54, 0xaf54, 0xaf54,
+-      0xaf54, 0xaf54, 0xaf56, 0xaf54, 0xa006, 0x0005, 0x0046, 0x0016,
+-      0x7018, 0xa080, 0x0028, 0x2024, 0xa4a4, 0x00ff, 0x8427, 0x2c00,
+-      0x2009, 0x0020, 0x080c, 0xb0dc, 0x001e, 0x004e, 0x0036, 0x2019,
+-      0x0002, 0x080c, 0xacd4, 0x003e, 0xa085, 0x0001, 0x0005, 0x2001,
+-      0x0001, 0x080c, 0x4eec, 0x0156, 0x0016, 0x0026, 0x0036, 0x20a9,
+-      0x0004, 0x2019, 0xb505, 0x2011, 0xbb96, 0x080c, 0x90d4, 0x003e,
+-      0x002e, 0x001e, 0x015e, 0xa005, 0x0005, 0x00f6, 0x00e6, 0x00c6,
+-      0x0086, 0x0076, 0x0066, 0x0026, 0x0126, 0x2091, 0x8000, 0x2740,
+-      0x2061, 0xbd00, 0x2079, 0x0001, 0x8fff, 0x0904, 0xafe3, 0x2071,
+-      0xb500, 0x7648, 0x7068, 0x8001, 0xa602, 0x1a04, 0xafe3, 0x88ff,
+-      0x0128, 0x2800, 0xac06, 0x15b0, 0x2079, 0x0000, 0x080c, 0xb104,
+-      0x0588, 0x2400, 0xac06, 0x0570, 0x671c, 0xa786, 0x0006, 0x1550,
+-      0xa786, 0x0007, 0x0538, 0x88ff, 0x1140, 0x6018, 0xa206, 0x1510,
+-      0x85ff, 0x0118, 0x6050, 0xa106, 0x11e8, 0x00d6, 0x6000, 0xa086,
+-      0x0004, 0x1150, 0x080c, 0xb32e, 0x601f, 0x0007, 0x2001, 0xb7b6,
+-      0x2004, 0x6016, 0x080c, 0x194d, 0x6010, 0x2068, 0x080c, 0x9c54,
+-      0x0120, 0x0046, 0x080c, 0xb08d, 0x004e, 0x00de, 0x080c, 0x9e17,
+-      0x88ff, 0x1198, 0xace0, 0x0018, 0x2001, 0xb517, 0x2004, 0xac02,
+-      0x1210, 0x0804, 0xaf94, 0xa006, 0x012e, 0x002e, 0x006e, 0x007e,
+-      0x008e, 0x00ce, 0x00ee, 0x00fe, 0x0005, 0xa8c5, 0x0001, 0x0ca0,
+-      0x0076, 0x0056, 0x0086, 0x2041, 0x0000, 0x2029, 0x0001, 0x2c20,
+-      0x2019, 0x0002, 0x6218, 0x0096, 0x2049, 0x0000, 0x080c, 0x8131,
+-      0x009e, 0x008e, 0x2039, 0x0000, 0x080c, 0x81d0, 0x080c, 0xaf85,
+-      0x005e, 0x007e, 0x0005, 0x0026, 0x0046, 0x0056, 0x0076, 0x00c6,
+-      0x0156, 0x2c20, 0x2128, 0x20a9, 0x007f, 0x2009, 0x0000, 0x0016,
+-      0x0036, 0x080c, 0x4faa, 0x11b0, 0x2c10, 0x0056, 0x0086, 0x2041,
+-      0x0000, 0x2508, 0x2029, 0x0001, 0x0096, 0x2049, 0x0000, 0x080c,
+-      0x8131, 0x009e, 0x008e, 0x2039, 0x0000, 0x080c, 0x81d0, 0x080c,
+-      0xaf85, 0x005e, 0x003e, 0x001e, 0x8108, 0x1f04, 0xb017, 0x015e,
+-      0x00ce, 0x007e, 0x005e, 0x004e, 0x002e, 0x0005, 0x0076, 0x0056,
+-      0x6218, 0x0086, 0x2041, 0x0000, 0x2029, 0x0001, 0x2019, 0x0048,
+-      0x0096, 0x2049, 0x0000, 0x080c, 0x8131, 0x009e, 0x008e, 0x2039,
+-      0x0000, 0x080c, 0x81d0, 0x2c20, 0x080c, 0xaf85, 0x005e, 0x007e,
+-      0x0005, 0x0026, 0x0046, 0x0056, 0x0076, 0x00c6, 0x0156, 0x2c20,
+-      0x20a9, 0x007f, 0x2009, 0x0000, 0x0016, 0x0036, 0x080c, 0x4faa,
+-      0x11c0, 0x2c10, 0x0086, 0x2041, 0x0000, 0x2828, 0x0046, 0x2021,
+-      0x0001, 0x080c, 0xb310, 0x004e, 0x0096, 0x2049, 0x0000, 0x080c,
+-      0x8131, 0x009e, 0x008e, 0x2039, 0x0000, 0x080c, 0x81d0, 0x080c,
+-      0xaf85, 0x003e, 0x001e, 0x8108, 0x1f04, 0xb064, 0x015e, 0x00ce,
+-      0x007e, 0x005e, 0x004e, 0x002e, 0x0005, 0x0016, 0x00f6, 0x3800,
+-      0xd08c, 0x0130, 0xad82, 0x1000, 0x02b0, 0xad82, 0xb500, 0x0230,
+-      0xad82, 0xed00, 0x0280, 0xad82, 0xffff, 0x1268, 0x6800, 0xa07d,
+-      0x0138, 0x6803, 0x0000, 0x6b52, 0x080c, 0x5409, 0x2f68, 0x0cb0,
+-      0x6b52, 0x080c, 0x5409, 0x00fe, 0x001e, 0x0005, 0x00e6, 0x0046,
+-      0x0036, 0x2061, 0xbd00, 0xa005, 0x1138, 0x2071, 0xb500, 0x7448,
+-      0x7068, 0x8001, 0xa402, 0x12d8, 0x2100, 0xac06, 0x0168, 0x6000,
+-      0xa086, 0x0000, 0x0148, 0x6008, 0xa206, 0x1130, 0x6018, 0xa1a0,
+-      0x0006, 0x2424, 0xa406, 0x0140, 0xace0, 0x0018, 0x2001, 0xb517,
+-      0x2004, 0xac02, 0x1220, 0x0c40, 0xa085, 0x0001, 0x0008, 0xa006,
+-      0x003e, 0x004e, 0x00ee, 0x0005, 0x00d6, 0x0006, 0x080c, 0x15f8,
+-      0x000e, 0x090c, 0x1515, 0x6837, 0x010d, 0x685e, 0x0026, 0x2010,
+-      0x080c, 0x9c44, 0x2001, 0x0000, 0x0120, 0x2200, 0xa080, 0x0014,
+-      0x2004, 0x002e, 0x684a, 0x6956, 0x6c46, 0x684f, 0x0000, 0x2001,
+-      0xb7be, 0x2004, 0x6852, 0xa006, 0x68b2, 0x6802, 0x683a, 0x685a,
+-      0x080c, 0x5409, 0x00de, 0x0005, 0x6700, 0xa786, 0x0000, 0x0158,
+-      0xa786, 0x0001, 0x0140, 0xa786, 0x000a, 0x0128, 0xa786, 0x0009,
+-      0x0110, 0xa085, 0x0001, 0x0005, 0x00e6, 0x6018, 0x2070, 0x70a0,
+-      0xa206, 0x00ee, 0x0005, 0x0016, 0x6004, 0xa08e, 0x001e, 0x11a0,
+-      0x8007, 0x6130, 0xa18c, 0x00ff, 0xa105, 0x6032, 0x6007, 0x0085,
+-      0x6003, 0x000b, 0x601f, 0x0005, 0x2001, 0xb7b7, 0x2004, 0x6016,
+-      0x080c, 0x6c8e, 0x080c, 0x7174, 0x001e, 0x0005, 0xe000, 0xe000,
+-      0x0005, 0x6020, 0xd0e4, 0x0158, 0xd0cc, 0x0118, 0x080c, 0x9f2f,
+-      0x0030, 0x080c, 0xb32e, 0x080c, 0x6af0, 0x080c, 0x8617, 0x0005,
+-      0xa280, 0x0007, 0x2004, 0xa084, 0x000f, 0x0002, 0xb157, 0xb157,
+-      0xb157, 0xb15c, 0xb157, 0xb159, 0xb159, 0xb157, 0xb159, 0xa006,
+-      0x0005, 0x00c6, 0x2260, 0x00ce, 0xa085, 0x0001, 0x0005, 0xa280,
+-      0x0007, 0x2004, 0xa084, 0x000f, 0x0002, 0xb16e, 0xb16e, 0xb16e,
+-      0xb16e, 0xb16e, 0xb16e, 0xb179, 0xb16e, 0xb16e, 0x6007, 0x003b,
+-      0x602b, 0x0009, 0x6013, 0x2a00, 0x6003, 0x0001, 0x080c, 0x6c8e,
+-      0x0005, 0x00c6, 0x2260, 0x080c, 0xb32e, 0x603f, 0x0000, 0x6020,
+-      0xc0f4, 0xc0cc, 0x6022, 0x6037, 0x0000, 0x00ce, 0x00d6, 0x2268,
+-      0xa186, 0x0007, 0x1904, 0xb1d4, 0x6810, 0xa005, 0x0138, 0xa080,
+-      0x0013, 0x2004, 0xd0fc, 0x1110, 0x00de, 0x08c0, 0x6007, 0x003a,
+-      0x6003, 0x0001, 0x080c, 0x6c8e, 0x080c, 0x7174, 0x00c6, 0x2d60,
+-      0x6100, 0xa186, 0x0002, 0x1904, 0xb25d, 0x6010, 0xa005, 0x1138,
+-      0x6000, 0xa086, 0x0007, 0x190c, 0x1515, 0x0804, 0xb25d, 0xa08c,
+-      0xf000, 0x1130, 0x0028, 0x2068, 0x6800, 0xa005, 0x1de0, 0x2d00,
+-      0xa080, 0x0013, 0x2004, 0xa084, 0x0003, 0xa086, 0x0002, 0x1180,
+-      0x6010, 0x2068, 0x684c, 0xc0dc, 0xc0f4, 0x684e, 0x6850, 0xc0f4,
+-      0xc0fc, 0x6852, 0x2009, 0x0043, 0x080c, 0xab4c, 0x0804, 0xb25d,
+-      0x2009, 0x0041, 0x0804, 0xb257, 0xa186, 0x0005, 0x15f0, 0x6810,
+-      0xa080, 0x0013, 0x2004, 0xd0bc, 0x1118, 0x00de, 0x0804, 0xb16e,
+-      0xd0b4, 0x0128, 0xd0fc, 0x090c, 0x1515, 0x0804, 0xb18c, 0x6007,
+-      0x003a, 0x6003, 0x0001, 0x080c, 0x6c8e, 0x080c, 0x7174, 0x00c6,
+-      0x2d60, 0x6100, 0xa186, 0x0002, 0x0120, 0xa186, 0x0004, 0x1904,
+-      0xb25d, 0x2071, 0xb823, 0x7000, 0xa086, 0x0003, 0x1128, 0x7004,
+-      0xac06, 0x1110, 0x7003, 0x0000, 0x6810, 0xa080, 0x0013, 0x200c,
+-      0xc1f4, 0xc1dc, 0x2102, 0x8000, 0x200c, 0xc1f4, 0xc1fc, 0xc1bc,
+-      0x2102, 0x2009, 0x0042, 0x0804, 0xb257, 0x0036, 0x00d6, 0x00d6,
+-      0x080c, 0x15f8, 0x003e, 0x090c, 0x1515, 0x6837, 0x010d, 0x6803,
+-      0x0000, 0x683b, 0x0000, 0x685b, 0x0000, 0x6b5e, 0x6857, 0x0045,
+-      0x2c00, 0x6862, 0x6034, 0x6872, 0x2360, 0x6020, 0xc0dd, 0x6022,
+-      0x6018, 0xa080, 0x0028, 0x2004, 0xa084, 0x00ff, 0x8007, 0x6350,
+-      0x6b4a, 0x6846, 0x684f, 0x0000, 0x6853, 0x0000, 0x6d6a, 0x6e66,
+-      0x686f, 0x0001, 0x080c, 0x5409, 0x2019, 0x0045, 0x6008, 0x2068,
+-      0x080c, 0xacd4, 0x2d00, 0x600a, 0x601f, 0x0006, 0x6003, 0x0007,
+-      0x6017, 0x0000, 0x603f, 0x0000, 0x00de, 0x003e, 0x0038, 0x603f,
+-      0x0000, 0x6003, 0x0007, 0x080c, 0xab4c, 0x00ce, 0x00de, 0x0005,
+-      0xa186, 0x0013, 0x1128, 0x6004, 0xa082, 0x0085, 0x2008, 0x00c2,
+-      0xa186, 0x0027, 0x1178, 0x080c, 0x7091, 0x0036, 0x00d6, 0x6010,
+-      0x2068, 0x2019, 0x0004, 0x080c, 0xb08d, 0x00de, 0x003e, 0x080c,
+-      0x7174, 0x0005, 0xa186, 0x0014, 0x0d70, 0x080c, 0x865d, 0x0005,
+-      0xb289, 0xb287, 0xb287, 0xb287, 0xb287, 0xb287, 0xb289, 0x080c,
+-      0x1515, 0x080c, 0x7091, 0x6003, 0x000c, 0x080c, 0x7174, 0x0005,
+-      0xa182, 0x008c, 0x1220, 0xa182, 0x0085, 0x0208, 0x001a, 0x080c,
+-      0x865d, 0x0005, 0xb2a1, 0xb2a1, 0xb2a1, 0xb2a1, 0xb2a3, 0xb2c1,
+-      0xb2a1, 0x080c, 0x1515, 0x00d6, 0x2c68, 0x080c, 0x85c1, 0x01a0,
+-      0x6003, 0x0001, 0x6007, 0x001e, 0x2009, 0xbb8e, 0x210c, 0x6136,
+-      0x2009, 0xbb8f, 0x210c, 0x613a, 0x600b, 0xffff, 0x6918, 0x611a,
+-      0x601f, 0x0004, 0x080c, 0x6c8e, 0x2d60, 0x080c, 0x8617, 0x00de,
+-      0x0005, 0x080c, 0x8617, 0x0005, 0x00e6, 0x6018, 0x2070, 0x7000,
+-      0xd0ec, 0x00ee, 0x0005, 0x6010, 0xa08c, 0xf000, 0x0904, 0xb30f,
+-      0xa080, 0x0013, 0x200c, 0xd1ec, 0x05d0, 0x2001, 0xb572, 0x2004,
+-      0xd0ec, 0x05a8, 0x6003, 0x0002, 0x6020, 0xc0e5, 0x6022, 0xd1ac,
+-      0x0180, 0x00f6, 0x2c78, 0x080c, 0x5302, 0x00fe, 0x0150, 0x2001,
+-      0xb7b8, 0x2004, 0x603e, 0x2009, 0xb572, 0x210c, 0xd1f4, 0x11e8,
+-      0x0080, 0x2009, 0xb572, 0x210c, 0xd1f4, 0x0128, 0x6020, 0xc0e4,
+-      0x6022, 0xa006, 0x00a0, 0x2001, 0xb7b8, 0x200c, 0x8103, 0xa100,
+-      0x603e, 0x6018, 0xa088, 0x002b, 0x2104, 0xa005, 0x0118, 0xa088,
+-      0x0003, 0x0cd0, 0x2c0a, 0x600f, 0x0000, 0xa085, 0x0001, 0x0005,
+-      0x0016, 0x00c6, 0x00e6, 0x6150, 0xa2f0, 0x002b, 0x2e04, 0x2060,
+-      0x8cff, 0x0180, 0x84ff, 0x1118, 0x6050, 0xa106, 0x1138, 0x600c,
+-      0x2072, 0x080c, 0x6af0, 0x080c, 0x8617, 0x0010, 0xacf0, 0x0003,
+-      0x2e64, 0x0c70, 0x00ee, 0x00ce, 0x001e, 0x0005, 0x00d6, 0x6018,
+-      0xa0e8, 0x002b, 0x2d04, 0xa005, 0x0140, 0xac06, 0x0120, 0x2d04,
+-      0xa0e8, 0x0003, 0x0cb8, 0x600c, 0x206a, 0x00de, 0x0005, 0x0026,
+-      0x0036, 0x0156, 0x2011, 0xb528, 0x2204, 0xa084, 0x00ff, 0x2019,
+-      0xbb8e, 0x2334, 0xa636, 0x11d8, 0x8318, 0x2334, 0x2204, 0xa084,
+-      0xff00, 0xa636, 0x11a0, 0x2011, 0xbb90, 0x6018, 0xa098, 0x000a,
+-      0x20a9, 0x0004, 0x080c, 0x90d4, 0x1150, 0x2011, 0xbb94, 0x6018,
+-      0xa098, 0x0006, 0x20a9, 0x0004, 0x080c, 0x90d4, 0x1100, 0x015e,
+-      0x003e, 0x002e, 0x0005, 0x00e6, 0x2071, 0xb500, 0x080c, 0x4bc7,
+-      0x080c, 0x2ab8, 0x00ee, 0x0005, 0x00e6, 0x6018, 0x2070, 0x7000,
+-      0xd0fc, 0x0108, 0x0011, 0x00ee, 0x0005, 0x6850, 0xc0e5, 0x6852,
+-      0x0005, 0x00e6, 0x00c6, 0x0076, 0x0066, 0x0056, 0x0046, 0x0026,
+-      0x0016, 0x0126, 0x2091, 0x8000, 0x2029, 0xb7e9, 0x252c, 0x2021,
+-      0xb7ef, 0x2424, 0x2061, 0xbd00, 0x2071, 0xb500, 0x7648, 0x7068,
+-      0xa606, 0x0578, 0x671c, 0xa786, 0x0001, 0x0118, 0xa786, 0x0008,
+-      0x1500, 0x2500, 0xac06, 0x01e8, 0x2400, 0xac06, 0x01d0, 0x080c,
+-      0xb104, 0x01b8, 0x080c, 0xb114, 0x11a0, 0x6000, 0xa086, 0x0004,
+-      0x1120, 0x0016, 0x080c, 0x194d, 0x001e, 0x080c, 0x9e41, 0x1110,
+-      0x080c, 0x2cc2, 0x080c, 0x9e52, 0x1110, 0x080c, 0x8c13, 0x080c,
+-      0x9e17, 0xace0, 0x0018, 0x2001, 0xb517, 0x2004, 0xac02, 0x1208,
+-      0x0858, 0x012e, 0x001e, 0x002e, 0x004e, 0x005e, 0x006e, 0x007e,
+-      0x00ce, 0x00ee, 0x0005, 0x0126, 0x0006, 0x00e6, 0x0016, 0x2091,
+-      0x8000, 0x2071, 0xb540, 0xd5a4, 0x0118, 0x7034, 0x8000, 0x7036,
+-      0xd5b4, 0x0118, 0x7030, 0x8000, 0x7032, 0xd5ac, 0x0178, 0x2500,
+-      0xa084, 0x0007, 0xa08e, 0x0003, 0x0148, 0xa08e, 0x0004, 0x0130,
+-      0xa08e, 0x0005, 0x0118, 0x2071, 0xb54a, 0x04c9, 0x001e, 0x00ee,
+-      0x000e, 0x012e, 0x0005, 0x0126, 0x0006, 0x00e6, 0x0016, 0x2091,
+-      0x8000, 0x2071, 0xb540, 0xd5a4, 0x0118, 0x7034, 0x8000, 0x7036,
+-      0xd5b4, 0x0118, 0x7030, 0x8000, 0x7032, 0xd5ac, 0x0178, 0x2500,
+-      0xa084, 0x0007, 0xa08e, 0x0003, 0x0148, 0xa08e, 0x0004, 0x0130,
+-      0xa08e, 0x0005, 0x0118, 0x2071, 0xb54a, 0x0089, 0x001e, 0x00ee,
+-      0x000e, 0x012e, 0x0005, 0x0126, 0x0006, 0x00e6, 0x2091, 0x8000,
+-      0x2071, 0xb542, 0x0021, 0x00ee, 0x000e, 0x012e, 0x0005, 0x2e04,
+-      0x8000, 0x2072, 0x1220, 0x8e70, 0x2e04, 0x8000, 0x2072, 0x0005,
+-      0x00e6, 0x2071, 0xb540, 0x0c99, 0x00ee, 0x0005, 0x00e6, 0x2071,
+-      0xb544, 0x0c69, 0x00ee, 0x0005, 0x0126, 0x0006, 0x00e6, 0x2091,
+-      0x8000, 0x2071, 0xb540, 0x7044, 0x8000, 0x7046, 0x00ee, 0x000e,
+-      0x012e, 0x0005, 0x0001, 0x0002, 0x0004, 0x0008, 0x0010, 0x0020,
+-      0x0040, 0x0080, 0x0100, 0x0200, 0x0400, 0x0800, 0x1000, 0x2000,
+-      0x4000, 0x8000, 0xada0
++      0xbb96, 0x080c, 0x90da, 0x003e, 0x002e, 0x001e, 0x015e, 0xa005,
++      0x0005, 0x00f6, 0x00e6, 0x00c6, 0x0086, 0x0076, 0x0066, 0x0026,
++      0x0126, 0x2091, 0x8000, 0x2740, 0x2061, 0xbd00, 0x2079, 0x0001,
++      0x8fff, 0x0904, 0xafef, 0x2071, 0xb500, 0x7648, 0x7068, 0x8001,
++      0xa602, 0x1a04, 0xafef, 0x88ff, 0x0128, 0x2800, 0xac06, 0x15b0,
++      0x2079, 0x0000, 0x080c, 0xb110, 0x0588, 0x2400, 0xac06, 0x0570,
++      0x671c, 0xa786, 0x0006, 0x1550, 0xa786, 0x0007, 0x0538, 0x88ff,
++      0x1140, 0x6018, 0xa206, 0x1510, 0x85ff, 0x0118, 0x6050, 0xa106,
++      0x11e8, 0x00d6, 0x6000, 0xa086, 0x0004, 0x1150, 0x080c, 0xb33a,
++      0x601f, 0x0007, 0x2001, 0xb7b6, 0x2004, 0x6016, 0x080c, 0x194d,
++      0x6010, 0x2068, 0x080c, 0x9c5a, 0x0120, 0x0046, 0x080c, 0xb099,
++      0x004e, 0x00de, 0x080c, 0x9e1d, 0x88ff, 0x1198, 0xace0, 0x0018,
++      0x2001, 0xb517, 0x2004, 0xac02, 0x1210, 0x0804, 0xafa0, 0xa006,
++      0x012e, 0x002e, 0x006e, 0x007e, 0x008e, 0x00ce, 0x00ee, 0x00fe,
++      0x0005, 0xa8c5, 0x0001, 0x0ca0, 0x0076, 0x0056, 0x0086, 0x2041,
++      0x0000, 0x2029, 0x0001, 0x2c20, 0x2019, 0x0002, 0x6218, 0x0096,
++      0x2049, 0x0000, 0x080c, 0x8130, 0x009e, 0x008e, 0x2039, 0x0000,
++      0x080c, 0x81d6, 0x080c, 0xaf91, 0x005e, 0x007e, 0x0005, 0x0026,
++      0x0046, 0x0056, 0x0076, 0x00c6, 0x0156, 0x2c20, 0x2128, 0x20a9,
++      0x007f, 0x2009, 0x0000, 0x0016, 0x0036, 0x080c, 0x4fa9, 0x11b0,
++      0x2c10, 0x0056, 0x0086, 0x2041, 0x0000, 0x2508, 0x2029, 0x0001,
++      0x0096, 0x2049, 0x0000, 0x080c, 0x8130, 0x009e, 0x008e, 0x2039,
++      0x0000, 0x080c, 0x81d6, 0x080c, 0xaf91, 0x005e, 0x003e, 0x001e,
++      0x8108, 0x1f04, 0xb023, 0x015e, 0x00ce, 0x007e, 0x005e, 0x004e,
++      0x002e, 0x0005, 0x0076, 0x0056, 0x6218, 0x0086, 0x2041, 0x0000,
++      0x2029, 0x0001, 0x2019, 0x0048, 0x0096, 0x2049, 0x0000, 0x080c,
++      0x8130, 0x009e, 0x008e, 0x2039, 0x0000, 0x080c, 0x81d6, 0x2c20,
++      0x080c, 0xaf91, 0x005e, 0x007e, 0x0005, 0x0026, 0x0046, 0x0056,
++      0x0076, 0x00c6, 0x0156, 0x2c20, 0x20a9, 0x007f, 0x2009, 0x0000,
++      0x0016, 0x0036, 0x080c, 0x4fa9, 0x11c0, 0x2c10, 0x0086, 0x2041,
++      0x0000, 0x2828, 0x0046, 0x2021, 0x0001, 0x080c, 0xb31c, 0x004e,
++      0x0096, 0x2049, 0x0000, 0x080c, 0x8130, 0x009e, 0x008e, 0x2039,
++      0x0000, 0x080c, 0x81d6, 0x080c, 0xaf91, 0x003e, 0x001e, 0x8108,
++      0x1f04, 0xb070, 0x015e, 0x00ce, 0x007e, 0x005e, 0x004e, 0x002e,
++      0x0005, 0x0016, 0x00f6, 0x3800, 0xd08c, 0x0130, 0xad82, 0x1000,
++      0x02b0, 0xad82, 0xb500, 0x0230, 0xad82, 0xed00, 0x0280, 0xad82,
++      0xffff, 0x1268, 0x6800, 0xa07d, 0x0138, 0x6803, 0x0000, 0x6b52,
++      0x080c, 0x5408, 0x2f68, 0x0cb0, 0x6b52, 0x080c, 0x5408, 0x00fe,
++      0x001e, 0x0005, 0x00e6, 0x0046, 0x0036, 0x2061, 0xbd00, 0xa005,
++      0x1138, 0x2071, 0xb500, 0x7448, 0x7068, 0x8001, 0xa402, 0x12d8,
++      0x2100, 0xac06, 0x0168, 0x6000, 0xa086, 0x0000, 0x0148, 0x6008,
++      0xa206, 0x1130, 0x6018, 0xa1a0, 0x0006, 0x2424, 0xa406, 0x0140,
++      0xace0, 0x0018, 0x2001, 0xb517, 0x2004, 0xac02, 0x1220, 0x0c40,
++      0xa085, 0x0001, 0x0008, 0xa006, 0x003e, 0x004e, 0x00ee, 0x0005,
++      0x00d6, 0x0006, 0x080c, 0x15f8, 0x000e, 0x090c, 0x1515, 0x6837,
++      0x010d, 0x685e, 0x0026, 0x2010, 0x080c, 0x9c4a, 0x2001, 0x0000,
++      0x0120, 0x2200, 0xa080, 0x0014, 0x2004, 0x002e, 0x684a, 0x6956,
++      0x6c46, 0x684f, 0x0000, 0x2001, 0xb7be, 0x2004, 0x6852, 0xa006,
++      0x68b2, 0x6802, 0x683a, 0x685a, 0x080c, 0x5408, 0x00de, 0x0005,
++      0x6700, 0xa786, 0x0000, 0x0158, 0xa786, 0x0001, 0x0140, 0xa786,
++      0x000a, 0x0128, 0xa786, 0x0009, 0x0110, 0xa085, 0x0001, 0x0005,
++      0x00e6, 0x6018, 0x2070, 0x70a0, 0xa206, 0x00ee, 0x0005, 0x0016,
++      0x6004, 0xa08e, 0x001e, 0x11a0, 0x8007, 0x6130, 0xa18c, 0x00ff,
++      0xa105, 0x6032, 0x6007, 0x0085, 0x6003, 0x000b, 0x601f, 0x0005,
++      0x2001, 0xb7b7, 0x2004, 0x6016, 0x080c, 0x6c8d, 0x080c, 0x7173,
++      0x001e, 0x0005, 0xe000, 0xe000, 0x0005, 0x6020, 0xd0e4, 0x0158,
++      0xd0cc, 0x0118, 0x080c, 0x9f35, 0x0030, 0x080c, 0xb33a, 0x080c,
++      0x6aef, 0x080c, 0x861d, 0x0005, 0xa280, 0x0007, 0x2004, 0xa084,
++      0x000f, 0x0002, 0xb163, 0xb163, 0xb163, 0xb168, 0xb163, 0xb165,
++      0xb165, 0xb163, 0xb165, 0xa006, 0x0005, 0x00c6, 0x2260, 0x00ce,
++      0xa085, 0x0001, 0x0005, 0xa280, 0x0007, 0x2004, 0xa084, 0x000f,
++      0x0002, 0xb17a, 0xb17a, 0xb17a, 0xb17a, 0xb17a, 0xb17a, 0xb185,
++      0xb17a, 0xb17a, 0x6007, 0x003b, 0x602b, 0x0009, 0x6013, 0x2a00,
++      0x6003, 0x0001, 0x080c, 0x6c8d, 0x0005, 0x00c6, 0x2260, 0x080c,
++      0xb33a, 0x603f, 0x0000, 0x6020, 0xc0f4, 0xc0cc, 0x6022, 0x6037,
++      0x0000, 0x00ce, 0x00d6, 0x2268, 0xa186, 0x0007, 0x1904, 0xb1e0,
++      0x6810, 0xa005, 0x0138, 0xa080, 0x0013, 0x2004, 0xd0fc, 0x1110,
++      0x00de, 0x08c0, 0x6007, 0x003a, 0x6003, 0x0001, 0x080c, 0x6c8d,
++      0x080c, 0x7173, 0x00c6, 0x2d60, 0x6100, 0xa186, 0x0002, 0x1904,
++      0xb269, 0x6010, 0xa005, 0x1138, 0x6000, 0xa086, 0x0007, 0x190c,
++      0x1515, 0x0804, 0xb269, 0xa08c, 0xf000, 0x1130, 0x0028, 0x2068,
++      0x6800, 0xa005, 0x1de0, 0x2d00, 0xa080, 0x0013, 0x2004, 0xa084,
++      0x0003, 0xa086, 0x0002, 0x1180, 0x6010, 0x2068, 0x684c, 0xc0dc,
++      0xc0f4, 0x684e, 0x6850, 0xc0f4, 0xc0fc, 0x6852, 0x2009, 0x0043,
++      0x080c, 0xab56, 0x0804, 0xb269, 0x2009, 0x0041, 0x0804, 0xb263,
++      0xa186, 0x0005, 0x15f0, 0x6810, 0xa080, 0x0013, 0x2004, 0xd0bc,
++      0x1118, 0x00de, 0x0804, 0xb17a, 0xd0b4, 0x0128, 0xd0fc, 0x090c,
++      0x1515, 0x0804, 0xb198, 0x6007, 0x003a, 0x6003, 0x0001, 0x080c,
++      0x6c8d, 0x080c, 0x7173, 0x00c6, 0x2d60, 0x6100, 0xa186, 0x0002,
++      0x0120, 0xa186, 0x0004, 0x1904, 0xb269, 0x2071, 0xb823, 0x7000,
++      0xa086, 0x0003, 0x1128, 0x7004, 0xac06, 0x1110, 0x7003, 0x0000,
++      0x6810, 0xa080, 0x0013, 0x200c, 0xc1f4, 0xc1dc, 0x2102, 0x8000,
++      0x200c, 0xc1f4, 0xc1fc, 0xc1bc, 0x2102, 0x2009, 0x0042, 0x0804,
++      0xb263, 0x0036, 0x00d6, 0x00d6, 0x080c, 0x15f8, 0x003e, 0x090c,
++      0x1515, 0x6837, 0x010d, 0x6803, 0x0000, 0x683b, 0x0000, 0x685b,
++      0x0000, 0x6b5e, 0x6857, 0x0045, 0x2c00, 0x6862, 0x6034, 0x6872,
++      0x2360, 0x6020, 0xc0dd, 0x6022, 0x6018, 0xa080, 0x0028, 0x2004,
++      0xa084, 0x00ff, 0x8007, 0x6350, 0x6b4a, 0x6846, 0x684f, 0x0000,
++      0x6853, 0x0000, 0x6d6a, 0x6e66, 0x686f, 0x0001, 0x080c, 0x5408,
++      0x2019, 0x0045, 0x6008, 0x2068, 0x080c, 0xace0, 0x2d00, 0x600a,
++      0x601f, 0x0006, 0x6003, 0x0007, 0x6017, 0x0000, 0x603f, 0x0000,
++      0x00de, 0x003e, 0x0038, 0x603f, 0x0000, 0x6003, 0x0007, 0x080c,
++      0xab56, 0x00ce, 0x00de, 0x0005, 0xa186, 0x0013, 0x1128, 0x6004,
++      0xa082, 0x0085, 0x2008, 0x00c2, 0xa186, 0x0027, 0x1178, 0x080c,
++      0x7090, 0x0036, 0x00d6, 0x6010, 0x2068, 0x2019, 0x0004, 0x080c,
++      0xb099, 0x00de, 0x003e, 0x080c, 0x7173, 0x0005, 0xa186, 0x0014,
++      0x0d70, 0x080c, 0x8663, 0x0005, 0xb295, 0xb293, 0xb293, 0xb293,
++      0xb293, 0xb293, 0xb295, 0x080c, 0x1515, 0x080c, 0x7090, 0x6003,
++      0x000c, 0x080c, 0x7173, 0x0005, 0xa182, 0x008c, 0x1220, 0xa182,
++      0x0085, 0x0208, 0x001a, 0x080c, 0x8663, 0x0005, 0xb2ad, 0xb2ad,
++      0xb2ad, 0xb2ad, 0xb2af, 0xb2cd, 0xb2ad, 0x080c, 0x1515, 0x00d6,
++      0x2c68, 0x080c, 0x85c7, 0x01a0, 0x6003, 0x0001, 0x6007, 0x001e,
++      0x2009, 0xbb8e, 0x210c, 0x6136, 0x2009, 0xbb8f, 0x210c, 0x613a,
++      0x600b, 0xffff, 0x6918, 0x611a, 0x601f, 0x0004, 0x080c, 0x6c8d,
++      0x2d60, 0x080c, 0x861d, 0x00de, 0x0005, 0x080c, 0x861d, 0x0005,
++      0x00e6, 0x6018, 0x2070, 0x7000, 0xd0ec, 0x00ee, 0x0005, 0x6010,
++      0xa08c, 0xf000, 0x0904, 0xb31b, 0xa080, 0x0013, 0x200c, 0xd1ec,
++      0x05d0, 0x2001, 0xb572, 0x2004, 0xd0ec, 0x05a8, 0x6003, 0x0002,
++      0x6020, 0xc0e5, 0x6022, 0xd1ac, 0x0180, 0x00f6, 0x2c78, 0x080c,
++      0x5301, 0x00fe, 0x0150, 0x2001, 0xb7b8, 0x2004, 0x603e, 0x2009,
++      0xb572, 0x210c, 0xd1f4, 0x11e8, 0x0080, 0x2009, 0xb572, 0x210c,
++      0xd1f4, 0x0128, 0x6020, 0xc0e4, 0x6022, 0xa006, 0x00a0, 0x2001,
++      0xb7b8, 0x200c, 0x8103, 0xa100, 0x603e, 0x6018, 0xa088, 0x002b,
++      0x2104, 0xa005, 0x0118, 0xa088, 0x0003, 0x0cd0, 0x2c0a, 0x600f,
++      0x0000, 0xa085, 0x0001, 0x0005, 0x0016, 0x00c6, 0x00e6, 0x6150,
++      0xa2f0, 0x002b, 0x2e04, 0x2060, 0x8cff, 0x0180, 0x84ff, 0x1118,
++      0x6050, 0xa106, 0x1138, 0x600c, 0x2072, 0x080c, 0x6aef, 0x080c,
++      0x861d, 0x0010, 0xacf0, 0x0003, 0x2e64, 0x0c70, 0x00ee, 0x00ce,
++      0x001e, 0x0005, 0x00d6, 0x6018, 0xa0e8, 0x002b, 0x2d04, 0xa005,
++      0x0140, 0xac06, 0x0120, 0x2d04, 0xa0e8, 0x0003, 0x0cb8, 0x600c,
++      0x206a, 0x00de, 0x0005, 0x0026, 0x0036, 0x0156, 0x2011, 0xb528,
++      0x2204, 0xa084, 0x00ff, 0x2019, 0xbb8e, 0x2334, 0xa636, 0x11d8,
++      0x8318, 0x2334, 0x2204, 0xa084, 0xff00, 0xa636, 0x11a0, 0x2011,
++      0xbb90, 0x6018, 0xa098, 0x000a, 0x20a9, 0x0004, 0x080c, 0x90da,
++      0x1150, 0x2011, 0xbb94, 0x6018, 0xa098, 0x0006, 0x20a9, 0x0004,
++      0x080c, 0x90da, 0x1100, 0x015e, 0x003e, 0x002e, 0x0005, 0x00e6,
++      0x2071, 0xb500, 0x080c, 0x4bc6, 0x080c, 0x2ab8, 0x00ee, 0x0005,
++      0x00e6, 0x6018, 0x2070, 0x7000, 0xd0fc, 0x0108, 0x0011, 0x00ee,
++      0x0005, 0x6850, 0xc0e5, 0x6852, 0x0005, 0x00e6, 0x00c6, 0x0076,
++      0x0066, 0x0056, 0x0046, 0x0026, 0x0016, 0x0126, 0x2091, 0x8000,
++      0x2029, 0xb7e9, 0x252c, 0x2021, 0xb7ef, 0x2424, 0x2061, 0xbd00,
++      0x2071, 0xb500, 0x7648, 0x7068, 0xa606, 0x0578, 0x671c, 0xa786,
++      0x0001, 0x0118, 0xa786, 0x0008, 0x1500, 0x2500, 0xac06, 0x01e8,
++      0x2400, 0xac06, 0x01d0, 0x080c, 0xb110, 0x01b8, 0x080c, 0xb120,
++      0x11a0, 0x6000, 0xa086, 0x0004, 0x1120, 0x0016, 0x080c, 0x194d,
++      0x001e, 0x080c, 0x9e47, 0x1110, 0x080c, 0x2cc2, 0x080c, 0x9e58,
++      0x1110, 0x080c, 0x8c19, 0x080c, 0x9e1d, 0xace0, 0x0018, 0x2001,
++      0xb517, 0x2004, 0xac02, 0x1208, 0x0858, 0x012e, 0x001e, 0x002e,
++      0x004e, 0x005e, 0x006e, 0x007e, 0x00ce, 0x00ee, 0x0005, 0x0126,
++      0x0006, 0x00e6, 0x0016, 0x2091, 0x8000, 0x2071, 0xb540, 0xd5a4,
++      0x0118, 0x7034, 0x8000, 0x7036, 0xd5b4, 0x0118, 0x7030, 0x8000,
++      0x7032, 0xd5ac, 0x0178, 0x2500, 0xa084, 0x0007, 0xa08e, 0x0003,
++      0x0148, 0xa08e, 0x0004, 0x0130, 0xa08e, 0x0005, 0x0118, 0x2071,
++      0xb54a, 0x04c9, 0x001e, 0x00ee, 0x000e, 0x012e, 0x0005, 0x0126,
++      0x0006, 0x00e6, 0x0016, 0x2091, 0x8000, 0x2071, 0xb540, 0xd5a4,
++      0x0118, 0x7034, 0x8000, 0x7036, 0xd5b4, 0x0118, 0x7030, 0x8000,
++      0x7032, 0xd5ac, 0x0178, 0x2500, 0xa084, 0x0007, 0xa08e, 0x0003,
++      0x0148, 0xa08e, 0x0004, 0x0130, 0xa08e, 0x0005, 0x0118, 0x2071,
++      0xb54a, 0x0089, 0x001e, 0x00ee, 0x000e, 0x012e, 0x0005, 0x0126,
++      0x0006, 0x00e6, 0x2091, 0x8000, 0x2071, 0xb542, 0x0021, 0x00ee,
++      0x000e, 0x012e, 0x0005, 0x2e04, 0x8000, 0x2072, 0x1220, 0x8e70,
++      0x2e04, 0x8000, 0x2072, 0x0005, 0x00e6, 0x2071, 0xb540, 0x0c99,
++      0x00ee, 0x0005, 0x00e6, 0x2071, 0xb544, 0x0c69, 0x00ee, 0x0005,
++      0x0126, 0x0006, 0x00e6, 0x2091, 0x8000, 0x2071, 0xb540, 0x7044,
++      0x8000, 0x7046, 0x00ee, 0x000e, 0x012e, 0x0005, 0x0001, 0x0002,
++      0x0004, 0x0008, 0x0010, 0x0020, 0x0040, 0x0080, 0x0100, 0x0200,
++      0x0400, 0x0800, 0x1000, 0x2000, 0x4000, 0x8000, 0x2440
+ };
+ #ifdef UNIQUE_FW_NAME
+-unsigned short fw2200tp_length01 = 0xa463;
++unsigned short fw2200tp_length01 = 0xa46f;
+ #else
+-unsigned short risc_code_length01 = 0xa463;
++unsigned short risc_code_length01 = 0xa46f;
+ #endif
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/ql2200ip_fw.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/ql2200ip_fw.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/ql2200ip_fw.h        2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/ql2200ip_fw.h     2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+@@ -24,8 +24,9 @@
+  *             expanded LUN addressing for FCTAPE                     *
+  *                                                                    *
+  ************************************************************************/
++
+ /*
+- *    Firmware Version 2.02.04 (08:22 Feb 28, 2003)
++ *    Firmware Version 2.02.06 (08:44 Jun 26, 2003)
+  */
+ #ifdef UNIQUE_FW_NAME
+@@ -35,15 +36,15 @@ unsigned short risc_code_version = 2*102
+ #endif
+ #ifdef UNIQUE_FW_NAME
+-unsigned char fw2200ip_version_str[] = {2,2,4};
++unsigned char fw2200ip_version_str[] = {2,2,6};
+ #else
+-unsigned char firmware_version[] = {2,2,4};
++unsigned char firmware_version[] = {2,2,6};
+ #endif
+ #ifdef UNIQUE_FW_NAME
+-#define fw2200ip_VERSION_STRING "2.02.04"
++#define fw2200ip_VERSION_STRING "2.02.06"
+ #else
+-#define FW_VERSION_STRING "2.02.04"
++#define FW_VERSION_STRING "2.02.06"
+ #endif
+ #ifdef UNIQUE_FW_NAME
+@@ -57,17 +58,17 @@ unsigned short fw2200ip_code01[] = { 
+ #else
+ unsigned short risc_code01[] = { 
+ #endif
+-      0x0470, 0x0000, 0x0000, 0xb5b9, 0x0000, 0x0002, 0x0002, 0x0004,
++      0x0470, 0x0000, 0x0000, 0xb5df, 0x0000, 0x0002, 0x0002, 0x0006,
+       0x0037, 0x2043, 0x4f50, 0x5952, 0x4947, 0x4854, 0x2032, 0x3030,
+       0x3120, 0x514c, 0x4f47, 0x4943, 0x2043, 0x4f52, 0x504f, 0x5241,
+       0x5449, 0x4f4e, 0x2049, 0x5350, 0x3232, 0x3030, 0x2046, 0x6972,
+       0x6d77, 0x6172, 0x6520, 0x2056, 0x6572, 0x7369, 0x6f6e, 0x2030,
+-      0x322e, 0x3032, 0x2e30, 0x3420, 0x2020, 0x2020, 0x2400, 0x20c1,
++      0x322e, 0x3032, 0x2e30, 0x3620, 0x2020, 0x2020, 0x2400, 0x20c1,
+       0x0005, 0x2001, 0x017f, 0x2003, 0x0000, 0x20c9, 0xcbff, 0x2091,
+       0x2000, 0x2059, 0x0000, 0x2b78, 0x7823, 0x0004, 0x2089, 0x2b14,
+       0x2051, 0xc600, 0x2a70, 0x2029, 0xfe00, 0x2031, 0xffff, 0x2039,
+-      0xfde9, 0x2021, 0x0200, 0x0804, 0x146c, 0x20a1, 0xc5b9, 0xa00e,
+-      0x20a9, 0x0847, 0x41a4, 0x3400, 0x7562, 0x7666, 0x775e, 0x746a,
++      0xfde9, 0x2021, 0x0200, 0x0804, 0x146c, 0x20a1, 0xc5df, 0xa00e,
++      0x20a9, 0x0821, 0x41a4, 0x3400, 0x7562, 0x7666, 0x775e, 0x746a,
+       0x746e, 0x20a1, 0xce00, 0x7164, 0x810d, 0x810d, 0x810d, 0x810d,
+       0xa18c, 0x000f, 0x2001, 0x000c, 0xa112, 0xa00e, 0x21a8, 0x41a4,
+       0x3400, 0x8211, 0x1dd8, 0x7164, 0x3400, 0xa102, 0x0120, 0x0218,
+@@ -76,65 +77,65 @@ unsigned short risc_code01[] = { 
+       0xa112, 0x20a1, 0x1000, 0xa00e, 0x21a8, 0x41a4, 0x8211, 0x1de0,
+       0x2009, 0xc600, 0x3400, 0xa102, 0x0120, 0x0218, 0x20a8, 0xa00e,
+       0x41a4, 0x080c, 0x1415, 0x080c, 0x163c, 0x080c, 0x17de, 0x080c,
+-      0x2061, 0x080c, 0x4f3b, 0x080c, 0x957e, 0x080c, 0x15bf, 0x080c,
+-      0x306e, 0x080c, 0x61dd, 0x080c, 0x5743, 0x080c, 0x7147, 0x080c,
+-      0x6edf, 0x080c, 0x265b, 0x080c, 0x7860, 0x080c, 0x68c0, 0x080c,
++      0x2061, 0x080c, 0x4f54, 0x080c, 0x959e, 0x080c, 0x15bf, 0x080c,
++      0x306e, 0x080c, 0x61f6, 0x080c, 0x575c, 0x080c, 0x7160, 0x080c,
++      0x6ef8, 0x080c, 0x265b, 0x080c, 0x7879, 0x080c, 0x68d9, 0x080c,
+       0x2515, 0x080c, 0x2629, 0x2091, 0x3009, 0x7823, 0x0000, 0x1004,
+       0x10c7, 0x7820, 0xa086, 0x0002, 0x1150, 0x7823, 0x4000, 0x0e04,
+       0x10bf, 0x781b, 0x0001, 0x2091, 0x5000, 0x2091, 0x4080, 0x2a70,
+       0x7003, 0x0000, 0x2a70, 0x7000, 0xa08e, 0x0003, 0x1168, 0x080c,
+-      0x40b9, 0x080c, 0x3095, 0x080c, 0x622b, 0x080c, 0x5943, 0x080c,
+-      0x7184, 0x080c, 0x6f0a, 0x0c70, 0x000b, 0x0c88, 0x10e8, 0x10e9,
++      0x40d2, 0x080c, 0x3095, 0x080c, 0x6244, 0x080c, 0x595c, 0x080c,
++      0x719d, 0x080c, 0x6f23, 0x0c70, 0x000b, 0x0c88, 0x10e8, 0x10e9,
+       0x1214, 0x10e6, 0x12e1, 0x1412, 0x1413, 0x1414, 0x080c, 0x1519,
+       0x0005, 0x0126, 0x00f6, 0x2091, 0x8000, 0x7000, 0xa086, 0x0001,
+-      0x1904, 0x11f1, 0x080c, 0x158c, 0x080c, 0x5f22, 0x0150, 0x080c,
+-      0x5f48, 0x15c0, 0x2079, 0x0100, 0x7828, 0xa085, 0x1800, 0x782a,
+-      0x0488, 0x080c, 0x5e5a, 0x7000, 0xa086, 0x0001, 0x1904, 0x11f1,
++      0x1904, 0x11f1, 0x080c, 0x158c, 0x080c, 0x5f3b, 0x0150, 0x080c,
++      0x5f61, 0x15c0, 0x2079, 0x0100, 0x7828, 0xa085, 0x1800, 0x782a,
++      0x0488, 0x080c, 0x5e73, 0x7000, 0xa086, 0x0001, 0x1904, 0x11f1,
+       0x708c, 0xa086, 0x0028, 0x1904, 0x11f1, 0x2001, 0x0161, 0x2003,
+       0x0001, 0x2079, 0x0100, 0x7827, 0xffff, 0x7a28, 0xa295, 0x1e2f,
+-      0x7a2a, 0x2011, 0x5df5, 0x080c, 0x6fad, 0x2011, 0x5de8, 0x080c,
+-      0x7070, 0x2011, 0x5e37, 0x080c, 0x6fad, 0x2011, 0x4e18, 0x080c,
+-      0x6fad, 0x2011, 0x8030, 0x2019, 0x0000, 0x708b, 0x0000, 0x080c,
+-      0x1eae, 0x00e8, 0x080c, 0x47cb, 0x2079, 0x0100, 0x7844, 0xa005,
+-      0x1904, 0x11f1, 0x2011, 0x4e18, 0x080c, 0x6fad, 0x2011, 0x5e37,
+-      0x080c, 0x6fad, 0x080c, 0x1eae, 0x2001, 0xc8d4, 0x2004, 0x780e,
++      0x7a2a, 0x2011, 0x5e0e, 0x080c, 0x6fc6, 0x2011, 0x5e01, 0x080c,
++      0x7089, 0x2011, 0x5e50, 0x080c, 0x6fc6, 0x2011, 0x4e31, 0x080c,
++      0x6fc6, 0x2011, 0x8030, 0x2019, 0x0000, 0x708b, 0x0000, 0x080c,
++      0x1eae, 0x00e8, 0x080c, 0x47e4, 0x2079, 0x0100, 0x7844, 0xa005,
++      0x1904, 0x11f1, 0x2011, 0x4e31, 0x080c, 0x6fc6, 0x2011, 0x5e50,
++      0x080c, 0x6fc6, 0x080c, 0x1eae, 0x2001, 0xc8d4, 0x2004, 0x780e,
+       0x7840, 0xa084, 0xfffb, 0x7842, 0x2011, 0x8010, 0x73cc, 0x080c,
+-      0x407d, 0x723c, 0xc284, 0x723e, 0x2001, 0xc60c, 0x200c, 0xc1ac,
+-      0x2102, 0x080c, 0x8dca, 0x2011, 0x0004, 0x080c, 0xac90, 0x080c,
+-      0x55e1, 0x080c, 0x5f22, 0x0158, 0x080c, 0x4f24, 0x0140, 0x708b,
+-      0x0001, 0x70c7, 0x0000, 0x080c, 0x4968, 0x0804, 0x11f1, 0x080c,
+-      0x570b, 0x0120, 0x7a0c, 0xc2b4, 0x7a0e, 0x0060, 0x7073, 0x0000,
+-      0x080c, 0xb038, 0x70d4, 0xd09c, 0x1128, 0x70a0, 0xa005, 0x0110,
+-      0x080c, 0x4f02, 0x70df, 0x0000, 0x70db, 0x0000, 0x72d4, 0x080c,
+-      0x5f22, 0x1178, 0x2011, 0x0000, 0x0016, 0x080c, 0x2a95, 0x2019,
++      0x4096, 0x723c, 0xc284, 0x723e, 0x2001, 0xc60c, 0x200c, 0xc1ac,
++      0x2102, 0x080c, 0x8de3, 0x2011, 0x0004, 0x080c, 0xacb0, 0x080c,
++      0x55fa, 0x080c, 0x5f3b, 0x0158, 0x080c, 0x4f3d, 0x0140, 0x708b,
++      0x0001, 0x70c7, 0x0000, 0x080c, 0x4981, 0x0804, 0x11f1, 0x080c,
++      0x5724, 0x0120, 0x7a0c, 0xc2b4, 0x7a0e, 0x0060, 0x7073, 0x0000,
++      0x080c, 0xb058, 0x70d4, 0xd09c, 0x1128, 0x70a0, 0xa005, 0x0110,
++      0x080c, 0x4f1b, 0x70df, 0x0000, 0x70db, 0x0000, 0x72d4, 0x080c,
++      0x5f3b, 0x1178, 0x2011, 0x0000, 0x0016, 0x080c, 0x2a95, 0x2019,
+       0xc8d6, 0x211a, 0x001e, 0x7053, 0xffff, 0x7057, 0x00ef, 0x7077,
+       0x0000, 0x2079, 0xc652, 0x7804, 0xd0ac, 0x0108, 0xc295, 0x72d6,
+-      0x080c, 0x5f22, 0x0118, 0xa296, 0x0004, 0x0548, 0x2011, 0x0001,
+-      0x080c, 0xac90, 0x709b, 0x0000, 0x709f, 0xffff, 0x7003, 0x0002,
++      0x080c, 0x5f3b, 0x0118, 0xa296, 0x0004, 0x0548, 0x2011, 0x0001,
++      0x080c, 0xacb0, 0x709b, 0x0000, 0x709f, 0xffff, 0x7003, 0x0002,
+       0x2079, 0x0100, 0x7827, 0x0003, 0x7828, 0xa085, 0x0003, 0x782a,
+-      0x00fe, 0x080c, 0x2c62, 0x2011, 0x0005, 0x080c, 0x8f0e, 0x080c,
+-      0x7e94, 0x080c, 0x5f22, 0x0148, 0x00c6, 0x2061, 0x0100, 0x0016,
++      0x00fe, 0x080c, 0x2c62, 0x2011, 0x0005, 0x080c, 0x8f27, 0x080c,
++      0x7ead, 0x080c, 0x5f3b, 0x0148, 0x00c6, 0x2061, 0x0100, 0x0016,
+       0x080c, 0x2a95, 0x61e2, 0x001e, 0x00ce, 0x012e, 0x0420, 0x709b,
+       0x0000, 0x709f, 0xffff, 0x7003, 0x0002, 0x00f6, 0x2079, 0x0100,
+       0x7827, 0x0003, 0x7828, 0xa085, 0x0003, 0x782a, 0x00fe, 0x2011,
+-      0x0005, 0x080c, 0x8f0e, 0x080c, 0x7e94, 0x080c, 0x5f22, 0x0148,
++      0x0005, 0x080c, 0x8f27, 0x080c, 0x7ead, 0x080c, 0x5f3b, 0x0148,
+       0x00c6, 0x2061, 0x0100, 0x0016, 0x080c, 0x2a95, 0x61e2, 0x001e,
+-      0x00ce, 0x00fe, 0x012e, 0x0005, 0x00c6, 0x080c, 0x5f22, 0x1118,
+-      0x20a9, 0x0100, 0x0010, 0x20a9, 0x0082, 0x080c, 0x5f22, 0x1118,
++      0x00ce, 0x00fe, 0x012e, 0x0005, 0x00c6, 0x080c, 0x5f3b, 0x1118,
++      0x20a9, 0x0100, 0x0010, 0x20a9, 0x0082, 0x080c, 0x5f3b, 0x1118,
+       0x2009, 0x0000, 0x0010, 0x2009, 0x007e, 0x080c, 0x2f41, 0x8108,
+       0x1f04, 0x1205, 0x00ce, 0x7073, 0x0000, 0x7074, 0xa084, 0x00ff,
+       0x7076, 0x70a3, 0x0000, 0x0005, 0x0126, 0x2091, 0x8000, 0x7000,
+       0xa086, 0x0002, 0x1904, 0x12df, 0x709c, 0xa086, 0xffff, 0x0130,
+-      0x080c, 0x2c62, 0x080c, 0x7e94, 0x0804, 0x12df, 0x70d4, 0xd0ac,
++      0x080c, 0x2c62, 0x080c, 0x7ead, 0x0804, 0x12df, 0x70d4, 0xd0ac,
+       0x1110, 0xd09c, 0x0540, 0xd084, 0x0530, 0x0006, 0x0016, 0x2001,
+       0x0103, 0x2009, 0xc8d4, 0x210c, 0x2102, 0x001e, 0x000e, 0xd08c,
+       0x01d0, 0x70d8, 0xa086, 0xffff, 0x0190, 0x080c, 0x2dc1, 0x080c,
+-      0x7e94, 0x70d4, 0xd094, 0x1904, 0x12df, 0x2011, 0x0001, 0x2019,
+-      0x0000, 0x080c, 0x2df9, 0x080c, 0x7e94, 0x0804, 0x12df, 0x70dc,
++      0x7ead, 0x70d4, 0xd094, 0x1904, 0x12df, 0x2011, 0x0001, 0x2019,
++      0x0000, 0x080c, 0x2df9, 0x080c, 0x7ead, 0x0804, 0x12df, 0x70dc,
+       0xa005, 0x1904, 0x12df, 0x7098, 0xa005, 0x1904, 0x12df, 0x70d4,
+-      0xd0a4, 0x0118, 0xd0b4, 0x0904, 0x12df, 0x080c, 0x570b, 0x1904,
++      0xd0a4, 0x0118, 0xd0b4, 0x0904, 0x12df, 0x080c, 0x5724, 0x1904,
+       0x12df, 0x2001, 0xc653, 0x2004, 0xd0ac, 0x01c8, 0x0156, 0x00c6,
+-      0x20a9, 0x007f, 0x2009, 0x0000, 0x0016, 0x080c, 0x533d, 0x1118,
++      0x20a9, 0x007f, 0x2009, 0x0000, 0x0016, 0x080c, 0x5356, 0x1118,
+       0x6000, 0xd0ec, 0x1138, 0x001e, 0x8108, 0x1f04, 0x126c, 0x00ce,
+       0x015e, 0x0028, 0x001e, 0x00ce, 0x015e, 0x0804, 0x12df, 0x0006,
+       0x0016, 0x2001, 0x0103, 0x2009, 0xc8d4, 0x210c, 0x2102, 0x001e,
+@@ -144,55 +145,55 @@ unsigned short risc_code01[] = { 
+       0x0002, 0x40a1, 0x20a1, 0xc919, 0x2009, 0x0000, 0x080c, 0x14ff,
+       0x2001, 0x0000, 0x810f, 0x20a9, 0x0002, 0x40a1, 0x7030, 0xc08c,
+       0x7032, 0x7003, 0x0003, 0x709f, 0xffff, 0x080c, 0x1585, 0xa006,
+-      0x080c, 0x296d, 0x080c, 0x40ef, 0x00f6, 0x2079, 0x0100, 0x080c,
+-      0x5f48, 0x0150, 0x080c, 0x5f22, 0x7828, 0x0118, 0xa084, 0xe1ff,
++      0x080c, 0x296d, 0x080c, 0x4108, 0x00f6, 0x2079, 0x0100, 0x080c,
++      0x5f61, 0x0150, 0x080c, 0x5f3b, 0x7828, 0x0118, 0xa084, 0xe1ff,
+       0x0010, 0xa084, 0xffdf, 0x782a, 0x00fe, 0x2001, 0xc928, 0x2004,
+-      0xa086, 0x0005, 0x1120, 0x2011, 0x0000, 0x080c, 0x8f0e, 0x2011,
+-      0x0000, 0x080c, 0x8f18, 0x080c, 0x7e94, 0x080c, 0x7f6e, 0x012e,
++      0xa086, 0x0005, 0x1120, 0x2011, 0x0000, 0x080c, 0x8f27, 0x2011,
++      0x0000, 0x080c, 0x8f31, 0x080c, 0x7ead, 0x080c, 0x7f87, 0x012e,
+       0x0005, 0x0016, 0x0046, 0x00f6, 0x0126, 0x2091, 0x8000, 0x2079,
+       0x0100, 0x2009, 0xc634, 0x2104, 0xa005, 0x1110, 0x080c, 0x2ac1,
+-      0x2009, 0x00f7, 0x080c, 0x4eeb, 0x7940, 0xa18c, 0x0010, 0x7942,
++      0x2009, 0x00f7, 0x080c, 0x4f04, 0x7940, 0xa18c, 0x0010, 0x7942,
+       0x7924, 0xd1b4, 0x0110, 0x7827, 0x0040, 0xd19c, 0x0110, 0x7827,
+       0x0008, 0x0006, 0x0036, 0x0156, 0x7954, 0xd1ac, 0x1904, 0x134f,
+-      0x080c, 0x5f34, 0x0158, 0x080c, 0x5f48, 0x1128, 0x2001, 0xc8e5,
+-      0x2003, 0x0000, 0x0070, 0x080c, 0x5f2a, 0x0dc0, 0x2001, 0xc8e5,
+-      0x2003, 0xaaaa, 0x2001, 0xc8e6, 0x2003, 0x0001, 0x080c, 0x5e5a,
+-      0x0058, 0x080c, 0x5f22, 0x0140, 0x2009, 0x00f8, 0x080c, 0x4eeb,
++      0x080c, 0x5f4d, 0x0158, 0x080c, 0x5f61, 0x1128, 0x2001, 0xc8e5,
++      0x2003, 0x0000, 0x0070, 0x080c, 0x5f43, 0x0dc0, 0x2001, 0xc8e5,
++      0x2003, 0xaaaa, 0x2001, 0xc8e6, 0x2003, 0x0001, 0x080c, 0x5e73,
++      0x0058, 0x080c, 0x5f3b, 0x0140, 0x2009, 0x00f8, 0x080c, 0x4f04,
+       0x7843, 0x0090, 0x7843, 0x0010, 0x20a9, 0x09c4, 0x7820, 0xd09c,
+-      0x1138, 0x080c, 0x5f22, 0x0138, 0x7824, 0xd0ac, 0x1904, 0x13f9,
+-      0x1f04, 0x132e, 0x0070, 0x7824, 0x080c, 0x5f3e, 0x0118, 0xd0ac,
++      0x1138, 0x080c, 0x5f3b, 0x0138, 0x7824, 0xd0ac, 0x1904, 0x13f9,
++      0x1f04, 0x132e, 0x0070, 0x7824, 0x080c, 0x5f57, 0x0118, 0xd0ac,
+       0x1904, 0x13f9, 0xa084, 0x1800, 0x0d98, 0x7003, 0x0001, 0x0804,
+       0x13f9, 0x2001, 0x0001, 0x080c, 0x296d, 0x0804, 0x1408, 0x7850,
+       0xa084, 0x0180, 0x7852, 0x782f, 0x0020, 0x20a9, 0x0046, 0x1d04,
+-      0x1357, 0x080c, 0x7058, 0x1f04, 0x1357, 0x7850, 0xa084, 0x0180,
+-      0xa085, 0x0400, 0x7852, 0x782f, 0x0000, 0x080c, 0x5f34, 0x0158,
+-      0x080c, 0x5f48, 0x1128, 0x2001, 0xc8e5, 0x2003, 0x0000, 0x0070,
+-      0x080c, 0x5f2a, 0x0dc0, 0x2001, 0xc8e5, 0x2003, 0xaaaa, 0x2001,
+-      0xc8e6, 0x2003, 0x0001, 0x080c, 0x5e5a, 0x0020, 0x2009, 0x00f8,
+-      0x080c, 0x4eeb, 0x20a9, 0x000e, 0xe000, 0x1f04, 0x1384, 0x7850,
+-      0xa084, 0x0180, 0xa085, 0x1400, 0x7852, 0x080c, 0x5f22, 0x0120,
++      0x1357, 0x080c, 0x7071, 0x1f04, 0x1357, 0x7850, 0xa084, 0x0180,
++      0xa085, 0x0400, 0x7852, 0x782f, 0x0000, 0x080c, 0x5f4d, 0x0158,
++      0x080c, 0x5f61, 0x1128, 0x2001, 0xc8e5, 0x2003, 0x0000, 0x0070,
++      0x080c, 0x5f43, 0x0dc0, 0x2001, 0xc8e5, 0x2003, 0xaaaa, 0x2001,
++      0xc8e6, 0x2003, 0x0001, 0x080c, 0x5e73, 0x0020, 0x2009, 0x00f8,
++      0x080c, 0x4f04, 0x20a9, 0x000e, 0xe000, 0x1f04, 0x1384, 0x7850,
++      0xa084, 0x0180, 0xa085, 0x1400, 0x7852, 0x080c, 0x5f3b, 0x0120,
+       0x7843, 0x0090, 0x7843, 0x0010, 0x2021, 0xe678, 0x2019, 0xea60,
+-      0x7820, 0xd09c, 0x1558, 0x080c, 0x5f22, 0x05d8, 0x7824, 0xd0ac,
+-      0x1904, 0x13f9, 0x080c, 0x5f48, 0x1508, 0x0046, 0x2021, 0x0190,
++      0x7820, 0xd09c, 0x1558, 0x080c, 0x5f3b, 0x05d8, 0x7824, 0xd0ac,
++      0x1904, 0x13f9, 0x080c, 0x5f61, 0x1508, 0x0046, 0x2021, 0x0190,
+       0x8421, 0x1df0, 0x004e, 0x8421, 0x11c8, 0x7827, 0x0048, 0x20a9,
+-      0x01f4, 0x1d04, 0x13b1, 0x080c, 0x7058, 0x1f04, 0x13b1, 0x7824,
++      0x01f4, 0x1d04, 0x13b1, 0x080c, 0x7071, 0x1f04, 0x13b1, 0x7824,
+       0xa084, 0x0068, 0x15c8, 0x2001, 0xc8e5, 0x2003, 0xaaaa, 0x2001,
+       0xc8e6, 0x2003, 0x0001, 0x7003, 0x0001, 0x0498, 0x1d04, 0x13ca,
+-      0x080c, 0x7058, 0x8319, 0x1960, 0x2009, 0xc634, 0x2104, 0x8000,
++      0x080c, 0x7071, 0x8319, 0x1960, 0x2009, 0xc634, 0x2104, 0x8000,
+       0x200a, 0xa084, 0xfff0, 0x0120, 0x200b, 0x0000, 0x080c, 0x2ac1,
+-      0x00d8, 0x080c, 0x5f34, 0x1140, 0xa4a2, 0x0064, 0x1128, 0x080c,
+-      0x5ef9, 0x7003, 0x0001, 0x00a8, 0x7827, 0x1800, 0xe000, 0xe000,
+-      0x7824, 0x080c, 0x5f3e, 0x0110, 0xd0ac, 0x1158, 0xa084, 0x1800,
++      0x00d8, 0x080c, 0x5f4d, 0x1140, 0xa4a2, 0x0064, 0x1128, 0x080c,
++      0x5f12, 0x7003, 0x0001, 0x00a8, 0x7827, 0x1800, 0xe000, 0xe000,
++      0x7824, 0x080c, 0x5f57, 0x0110, 0xd0ac, 0x1158, 0xa084, 0x1800,
+       0x09a8, 0x7003, 0x0001, 0x0028, 0x2001, 0x0001, 0x080c, 0x296d,
+       0x0048, 0x2001, 0xc634, 0x2003, 0x0000, 0x7827, 0x0048, 0x7828,
+       0xc09d, 0x782a, 0x7850, 0xa084, 0x0180, 0xa085, 0x0400, 0x7852,
+       0x015e, 0x003e, 0x000e, 0x080c, 0x155c, 0x012e, 0x00fe, 0x004e,
+       0x001e, 0x0005, 0x0005, 0x0005, 0x0005, 0x2a70, 0x2061, 0xc908,
+-      0x2063, 0x0002, 0x6007, 0x0002, 0x600b, 0x0004, 0x600f, 0x0037,
++      0x2063, 0x0002, 0x6007, 0x0002, 0x600b, 0x0006, 0x600f, 0x0037,
+       0x2001, 0xc8e5, 0x2003, 0x0000, 0x708b, 0x0000, 0x2009, 0x0100,
+       0x2104, 0xa082, 0x0002, 0x0218, 0x7053, 0xffff, 0x0010, 0x7053,
+       0x0000, 0x705b, 0xffff, 0x7073, 0x0000, 0x7077, 0x0000, 0x080c,
+-      0xb038, 0x2061, 0xc8d5, 0x6003, 0x0909, 0x6007, 0x0000, 0x600b,
++      0xb058, 0x2061, 0xc8d5, 0x6003, 0x0909, 0x6007, 0x0000, 0x600b,
+       0x8800, 0x600f, 0x0200, 0x6013, 0x00ff, 0x6017, 0x001f, 0x601b,
+       0x0000, 0x601f, 0x07d0, 0x2061, 0xc8dd, 0x6003, 0x8000, 0x6007,
+       0x0000, 0x600b, 0x0000, 0x600f, 0x0200, 0x6013, 0x00ff, 0x6017,
+@@ -217,7 +218,7 @@ unsigned short risc_code01[] = { 
+       0x7fff, 0x2c04, 0x2061, 0xffff, 0x2262, 0xa306, 0x1110, 0xc195,
+       0x0008, 0xc19d, 0x2011, 0x0001, 0x2019, 0x14f7, 0x0010, 0x0804,
+       0x146d, 0x3800, 0xa084, 0xfffc, 0xa205, 0x20c0, 0x0837, 0x2011,
+-      0x0000, 0x080c, 0x533d, 0x1178, 0x6004, 0xa0c4, 0x00ff, 0xa8c6,
++      0x0000, 0x080c, 0x5356, 0x1178, 0x6004, 0xa0c4, 0x00ff, 0xa8c6,
+       0x0006, 0x0128, 0xa0c4, 0xff00, 0xa8c6, 0x0600, 0x1120, 0xa186,
+       0x0080, 0x0108, 0x8210, 0x8108, 0xa186, 0x0100, 0x1d50, 0x2208,
+       0x0005, 0x2091, 0x8000, 0x0e04, 0x151b, 0x0006, 0x0016, 0x2079,
+@@ -305,15 +306,15 @@ unsigned short risc_code01[] = { 
+       0x20a0, 0x2099, 0x0014, 0x7803, 0x0040, 0x20a9, 0x0020, 0x53a5,
+       0x2001, 0xc71a, 0x2004, 0xd0bc, 0x0148, 0x2001, 0xc723, 0x2004,
+       0xa080, 0x000d, 0x20a0, 0x20a9, 0x0020, 0x53a5, 0x015e, 0x014e,
+-      0x013e, 0x7007, 0x0000, 0x080c, 0x62c2, 0x080c, 0x1676, 0x0005,
+-      0x2011, 0x8003, 0x080c, 0x407d, 0x0cf8, 0xa18c, 0x0700, 0x1148,
++      0x013e, 0x7007, 0x0000, 0x080c, 0x62db, 0x080c, 0x1676, 0x0005,
++      0x2011, 0x8003, 0x080c, 0x4096, 0x0cf8, 0xa18c, 0x0700, 0x1148,
+       0x2001, 0xc748, 0x2003, 0x0100, 0x7007, 0x0000, 0x080c, 0x1676,
+-      0x0005, 0x2011, 0x8004, 0x080c, 0x407d, 0x0cf8, 0x0126, 0x2091,
++      0x0005, 0x2011, 0x8004, 0x080c, 0x4096, 0x0cf8, 0x0126, 0x2091,
+       0x2200, 0x2079, 0x0030, 0x2071, 0xc96a, 0x7003, 0x0000, 0x700f,
+       0xc977, 0x7013, 0xc977, 0x780f, 0x00f6, 0x7803, 0x0004, 0x012e,
+       0x0005, 0x6934, 0xa184, 0x0007, 0x0002, 0x17fd, 0x183e, 0x17fd,
+       0x17fd, 0x1801, 0x1826, 0x180d, 0x1804, 0xa085, 0x0001, 0x0804,
+-      0x1858, 0x080c, 0x7684, 0x05d0, 0x684c, 0xd0bc, 0x0db0, 0x6860,
++      0x1858, 0x080c, 0x769d, 0x05d0, 0x684c, 0xd0bc, 0x0db0, 0x6860,
+       0x682e, 0x685c, 0x682a, 0x6858, 0x04c8, 0xa18c, 0x00ff, 0xa186,
+       0x001e, 0x1d58, 0x684c, 0xd0bc, 0x0d40, 0x6860, 0x682e, 0x685c,
+       0x682a, 0x6804, 0x681a, 0xa080, 0x000d, 0x2004, 0xa084, 0x000f,
+@@ -346,7 +347,7 @@ unsigned short risc_code01[] = { 
+       0x0207, 0x2004, 0xd09c, 0x1d48, 0x7804, 0xa084, 0x6000, 0x0120,
+       0xa086, 0x6000, 0x0108, 0x0c08, 0x7818, 0x6812, 0x781c, 0x6816,
+       0x7803, 0x0004, 0x7003, 0x0000, 0x7004, 0x2060, 0x6100, 0xa18e,
+-      0x0004, 0x1904, 0x194f, 0x2009, 0x0048, 0x080c, 0x960c, 0x04f8,
++      0x0004, 0x1904, 0x194f, 0x2009, 0x0048, 0x080c, 0x962c, 0x04f8,
+       0x6808, 0xa005, 0x05a0, 0x7000, 0xa005, 0x0588, 0x700c, 0x7110,
+       0xa106, 0x1118, 0x7004, 0xa406, 0x1550, 0x2001, 0x0005, 0x2004,
+       0xd08c, 0x0160, 0x0046, 0x080c, 0x1b83, 0x004e, 0x2460, 0x6010,
+@@ -354,7 +355,7 @@ unsigned short risc_code01[] = { 
+       0x2004, 0xd09c, 0x1d50, 0x2001, 0x0005, 0x2004, 0xd08c, 0x1d50,
+       0x7804, 0xa084, 0x6000, 0x0118, 0xa086, 0x6000, 0x19f0, 0x7818,
+       0x6812, 0x781c, 0x6816, 0x7803, 0x0004, 0x7003, 0x0000, 0x6100,
+-      0xa18e, 0x0004, 0x1120, 0x2009, 0x0048, 0x080c, 0x960c, 0x00ce,
++      0xa18e, 0x0004, 0x1120, 0x2009, 0x0048, 0x080c, 0x962c, 0x00ce,
+       0x00de, 0x012e, 0x0005, 0x00f6, 0x00e6, 0x0026, 0x0036, 0x0046,
+       0x0056, 0x2071, 0xc96a, 0x7000, 0xa086, 0x0000, 0x0904, 0x19b9,
+       0x7004, 0xac06, 0x1904, 0x19ab, 0x2079, 0x0030, 0x7000, 0xa086,
+@@ -363,8 +364,8 @@ unsigned short risc_code01[] = { 
+       0xa106, 0x1d88, 0x8211, 0x1db0, 0x7804, 0xd0fc, 0x1540, 0x080c,
+       0x1f2d, 0x0026, 0x0056, 0x7803, 0x0004, 0x7804, 0xd0ac, 0x1de8,
+       0x7803, 0x0002, 0x7803, 0x0009, 0x7003, 0x0003, 0x7007, 0x0000,
+-      0x005e, 0x002e, 0x2001, 0x015d, 0x2003, 0x0000, 0x080c, 0x5f22,
+-      0x1138, 0x0066, 0x2031, 0x0001, 0x080c, 0x5fa4, 0x006e, 0x0058,
++      0x005e, 0x002e, 0x2001, 0x015d, 0x2003, 0x0000, 0x080c, 0x5f3b,
++      0x1138, 0x0066, 0x2031, 0x0001, 0x080c, 0x5fbd, 0x006e, 0x0058,
+       0x2001, 0x0160, 0x2502, 0x2001, 0x0138, 0x2202, 0x0020, 0x080c,
+       0x1b83, 0x0804, 0x195b, 0x0156, 0x20a9, 0x0009, 0x2009, 0xc977,
+       0x2104, 0xac06, 0x1108, 0x200a, 0xa188, 0x0003, 0x1f04, 0x19b0,
+@@ -372,19 +373,19 @@ unsigned short risc_code01[] = { 
+       0x700c, 0x7110, 0xa106, 0x0904, 0x1a5c, 0x2104, 0x7006, 0x2060,
+       0x8108, 0x211c, 0x8108, 0x2124, 0x8108, 0xa182, 0xc992, 0x0210,
+       0x2009, 0xc977, 0x7112, 0x8cff, 0x05e8, 0x6010, 0x2068, 0x2d58,
+-      0x080c, 0x7824, 0x6828, 0xa406, 0x15e0, 0x682c, 0xa306, 0x15c8,
++      0x080c, 0x783d, 0x6828, 0xa406, 0x15e0, 0x682c, 0xa306, 0x15c8,
+       0x7004, 0x2060, 0x6020, 0xc0d4, 0x6022, 0x684c, 0xd0f4, 0x0128,
+       0x6817, 0xffff, 0x6813, 0xffff, 0x0428, 0x6850, 0xd0f4, 0x1130,
+       0x7803, 0x0004, 0x6810, 0x781a, 0x6814, 0x781e, 0x6824, 0x2050,
+       0x6818, 0x2060, 0x6830, 0x2040, 0x6034, 0xa0cc, 0x000f, 0x080c,
+-      0x7684, 0x1128, 0x2009, 0x0011, 0x080c, 0x1a5f, 0x0048, 0x2009,
++      0x769d, 0x1128, 0x2009, 0x0011, 0x080c, 0x1a5f, 0x0048, 0x2009,
+       0x0011, 0x080c, 0x1a5f, 0x0120, 0x2009, 0x0001, 0x080c, 0x1a5f,
+       0x2d58, 0x0005, 0x7803, 0x0004, 0x080c, 0x1ea2, 0x0904, 0x19c0,
+-      0x0cc0, 0x080c, 0x7684, 0x1128, 0x080c, 0x1953, 0x080c, 0x761a,
++      0x0cc0, 0x080c, 0x769d, 0x1128, 0x080c, 0x1953, 0x080c, 0x7633,
+       0x0c88, 0x6020, 0xd0f4, 0x11e0, 0xd0d4, 0x01b8, 0x6038, 0xa402,
+       0x6034, 0xa303, 0x0108, 0x1288, 0x643a, 0x6336, 0x6c2a, 0x6b2e,
+       0x0046, 0x0036, 0x2400, 0x6c7c, 0xa402, 0x6812, 0x2300, 0x6b80,
+-      0xa303, 0x6816, 0x003e, 0x004e, 0x0018, 0x080c, 0xafca, 0x0990,
++      0xa303, 0x6816, 0x003e, 0x004e, 0x0018, 0x080c, 0xafea, 0x0990,
+       0x601c, 0xa08e, 0x0008, 0x0904, 0x19e0, 0xa08e, 0x000a, 0x0904,
+       0x19e0, 0x2001, 0xc674, 0x2004, 0xd0b4, 0x1140, 0x6018, 0x2004,
+       0xd0bc, 0x1120, 0x6817, 0x7fff, 0x6813, 0xffff, 0x080c, 0x241b,
+@@ -405,11 +406,11 @@ unsigned short risc_code01[] = { 
+       0xa00e, 0x0804, 0x1b5d, 0x00de, 0x080c, 0x1519, 0x2d10, 0x00de,
+       0x00d6, 0x6834, 0x2268, 0xa084, 0x00ff, 0xa096, 0x0024, 0x0530,
+       0xa096, 0x002c, 0x1d80, 0x6b10, 0xa3a6, 0xffff, 0x1130, 0x2d10,
+-      0x00de, 0x00d6, 0x080c, 0x72fa, 0x2268, 0x2d10, 0x00de, 0x00d6,
++      0x00de, 0x00d6, 0x080c, 0x7313, 0x2268, 0x2d10, 0x00de, 0x00d6,
+       0x7314, 0x685c, 0xa086, 0x0001, 0x1120, 0x6868, 0xa005, 0x0108,
+       0x2018, 0x2268, 0x2011, 0x0000, 0x6d00, 0x6c04, 0x6f08, 0x6e0c,
+       0x780f, 0x00f0, 0xe000, 0xe000, 0xe000, 0x0408, 0x6b08, 0xa3a6,
+-      0xffff, 0x1130, 0x2d10, 0x00de, 0x00d6, 0x080c, 0x72fa, 0x2268,
++      0xffff, 0x1130, 0x2d10, 0x00de, 0x00d6, 0x080c, 0x7313, 0x2268,
+       0x2d10, 0x00de, 0x00d6, 0x7314, 0x685c, 0xa086, 0x0001, 0x1120,
+       0x6868, 0xa005, 0x0108, 0x2018, 0x2268, 0x2011, 0x0000, 0x6d00,
+       0x6c04, 0x780f, 0x00f0, 0xe000, 0xe000, 0xe000, 0xc9fd, 0x7b22,
+@@ -422,38 +423,38 @@ unsigned short risc_code01[] = { 
+       0x6804, 0xa406, 0x1148, 0x6808, 0xa706, 0x1130, 0x680c, 0xa606,
+       0x0018, 0xc9fc, 0x080c, 0x2389, 0x2168, 0x0005, 0x080c, 0x1519,
+       0x080c, 0x2014, 0x7004, 0x2060, 0x00d6, 0x6010, 0x2068, 0x7003,
+-      0x0000, 0x080c, 0x1ec3, 0x080c, 0xac8a, 0x0170, 0x6808, 0x8001,
++      0x0000, 0x080c, 0x1ec3, 0x080c, 0xacaa, 0x0170, 0x6808, 0x8001,
+       0x680a, 0x697c, 0x6912, 0x6980, 0x6916, 0x682b, 0xffff, 0x682f,
+-      0xffff, 0x6850, 0xc0bd, 0x6852, 0x00de, 0x080c, 0xa95a, 0x0804,
++      0xffff, 0x6850, 0xc0bd, 0x6852, 0x00de, 0x080c, 0xa97a, 0x0804,
+       0x1dec, 0x080c, 0x1519, 0x0126, 0x2091, 0x2200, 0x0006, 0x0016,
+       0x2b68, 0x6818, 0x2060, 0x7904, 0x7803, 0x0002, 0xa184, 0x0700,
+       0x1978, 0xa184, 0x0003, 0xa086, 0x0003, 0x0d58, 0x7000, 0x0002,
+       0x1ba0, 0x1ba6, 0x1cf5, 0x1dc1, 0x1ddb, 0x1ba0, 0x1ba0, 0x1ba0,
+       0x7804, 0xd09c, 0x1904, 0x1dec, 0x080c, 0x1519, 0x8001, 0x7002,
+-      0xd1bc, 0x15c0, 0x080c, 0x7684, 0x1508, 0xd1dc, 0x1598, 0x6864,
++      0xd1bc, 0x15c0, 0x080c, 0x769d, 0x1508, 0xd1dc, 0x1598, 0x6864,
+       0x8000, 0x6866, 0xd19c, 0x0140, 0x7004, 0x2060, 0x2009, 0x0102,
+-      0x080c, 0x960c, 0x0804, 0x1cbc, 0x8aff, 0x0130, 0x2009, 0x0001,
++      0x080c, 0x962c, 0x0804, 0x1cbc, 0x8aff, 0x0130, 0x2009, 0x0001,
+       0x080c, 0x1a5f, 0x0804, 0x1dec, 0x7004, 0x2060, 0x080c, 0x24e0,
+-      0x080c, 0x761a, 0x7007, 0x0000, 0x0804, 0x1c45, 0xd19c, 0x1904,
++      0x080c, 0x7633, 0x7007, 0x0000, 0x0804, 0x1c45, 0xd19c, 0x1904,
+       0x1c79, 0xd1dc, 0x1178, 0x8aff, 0x0904, 0x1c79, 0x2009, 0x0001,
+       0x080c, 0x1a5f, 0x0904, 0x1dec, 0x2009, 0x0001, 0x080c, 0x1a5f,
+       0x0804, 0x1dec, 0x7803, 0x0004, 0x7003, 0x0000, 0xd1bc, 0x1904,
+-      0x1c4b, 0x080c, 0x7684, 0x1130, 0xd19c, 0x0120, 0x6864, 0x8000,
++      0x1c4b, 0x080c, 0x769d, 0x1130, 0xd19c, 0x0120, 0x6864, 0x8000,
+       0x6866, 0x0810, 0x0026, 0x0036, 0x7c20, 0x7d24, 0x7e30, 0x7f34,
+       0x7818, 0x6812, 0x781c, 0x6816, 0x2001, 0x0201, 0x2004, 0xa005,
+       0x0140, 0x7808, 0xd0ec, 0x1128, 0x7803, 0x0009, 0x7003, 0x0004,
+-      0x0028, 0x080c, 0x7684, 0x0110, 0x080c, 0x1df0, 0x6b28, 0x6a2c,
++      0x0028, 0x080c, 0x769d, 0x0110, 0x080c, 0x1df0, 0x6b28, 0x6a2c,
+       0x2400, 0x686e, 0xa31a, 0x2500, 0x6872, 0xa213, 0x6b2a, 0x6a2e,
+       0x00c6, 0x7004, 0x2060, 0x6020, 0xd0f4, 0x1110, 0x633a, 0x6236,
+       0x00ce, 0x003e, 0x002e, 0x6e1e, 0x6f22, 0x2500, 0xa405, 0x0128,
+       0x080c, 0x239f, 0x6850, 0xc0fd, 0x6852, 0x2a00, 0x6826, 0x2c00,
+       0x681a, 0x2800, 0x6832, 0x6808, 0x8001, 0x680a, 0x1148, 0x684c,
+-      0xd0e4, 0x0130, 0x7004, 0x2060, 0x2009, 0x0048, 0x080c, 0x960c,
++      0xd0e4, 0x0130, 0x7004, 0x2060, 0x2009, 0x0048, 0x080c, 0x962c,
+       0x7000, 0xa086, 0x0004, 0x0904, 0x1dec, 0x7003, 0x0000, 0x080c,
+       0x19c0, 0x0804, 0x1dec, 0x0056, 0x7d0c, 0xd5bc, 0x1110, 0x080c,
+-      0xc551, 0x005e, 0x080c, 0x1ec3, 0x7004, 0x2060, 0x601c, 0xa086,
+-      0x0009, 0x1140, 0x2009, 0x0106, 0x080c, 0x960c, 0x7007, 0x0000,
+-      0x0804, 0x1dec, 0x00f6, 0x7004, 0x2078, 0x080c, 0x56c3, 0x0118,
++      0xc577, 0x005e, 0x080c, 0x1ec3, 0x7004, 0x2060, 0x601c, 0xa086,
++      0x0009, 0x1140, 0x2009, 0x0106, 0x080c, 0x962c, 0x7007, 0x0000,
++      0x0804, 0x1dec, 0x00f6, 0x7004, 0x2078, 0x080c, 0x56dc, 0x0118,
+       0x7820, 0xc0f5, 0x7822, 0x00fe, 0x682b, 0xffff, 0x682f, 0xffff,
+       0x6808, 0x8001, 0x680a, 0x697c, 0x791a, 0x6980, 0x791e, 0x0804,
+       0x1dec, 0x7004, 0x00c6, 0x2060, 0x6020, 0x00ce, 0xd0f4, 0x0120,
+@@ -464,14 +465,14 @@ unsigned short risc_code01[] = { 
+       0x680a, 0x01a0, 0x7004, 0x2060, 0x601c, 0xa086, 0x000a, 0x11a0,
+       0x0156, 0x20a9, 0x0009, 0x2009, 0xc977, 0x2104, 0xac06, 0x1108,
+       0x200a, 0xa188, 0x0003, 0x1f04, 0x1cad, 0x015e, 0x7004, 0x2060,
+-      0x2009, 0x0048, 0x080c, 0x960c, 0x080c, 0x19c0, 0x0804, 0x1dec,
++      0x2009, 0x0048, 0x080c, 0x962c, 0x080c, 0x19c0, 0x0804, 0x1dec,
+       0x7818, 0x6812, 0x781c, 0x6816, 0x7814, 0x7908, 0xa18c, 0x0fff,
+       0xa192, 0x0841, 0x1a04, 0x1b60, 0xa188, 0x0007, 0x8114, 0x8214,
+       0x8214, 0xa10a, 0x8104, 0x8004, 0x8004, 0xa20a, 0x810b, 0x810b,
+       0x810b, 0x080c, 0x1f58, 0x7803, 0x0004, 0x780f, 0xffff, 0x7803,
+       0x0001, 0x7804, 0xd0fc, 0x0de8, 0x7803, 0x0002, 0x7803, 0x0004,
+       0x780f, 0x00f6, 0x7004, 0x7007, 0x0000, 0x2060, 0x2009, 0x0048,
+-      0x080c, 0x960c, 0x080c, 0x1fae, 0x0838, 0x8001, 0x7002, 0xd194,
++      0x080c, 0x962c, 0x080c, 0x1fae, 0x0838, 0x8001, 0x7002, 0xd194,
+       0x01b0, 0x7804, 0xd0fc, 0x1904, 0x1d91, 0xd09c, 0x0138, 0x7804,
+       0xd0fc, 0x1904, 0x1d91, 0xd09c, 0x1904, 0x1d95, 0x8aff, 0x0904,
+       0x1dec, 0x2009, 0x0001, 0x080c, 0x1a5f, 0x0804, 0x1dec, 0xa184,
+@@ -487,8 +488,8 @@ unsigned short risc_code01[] = { 
+       0xa31a, 0x680c, 0xa213, 0x0020, 0x6810, 0xa31a, 0x6814, 0xa213,
+       0x00de, 0xd194, 0x0904, 0x1c10, 0x2a00, 0x6826, 0x2c00, 0x681a,
+       0x2800, 0x6832, 0x6808, 0x8001, 0x680a, 0x6b2a, 0x6a2e, 0x003e,
+-      0x002e, 0x0804, 0x1cbc, 0x0056, 0x7d0c, 0x080c, 0xc551, 0x005e,
+-      0x080c, 0x1ec3, 0x00f6, 0x7004, 0x2078, 0x080c, 0x56c3, 0x0118,
++      0x002e, 0x0804, 0x1cbc, 0x0056, 0x7d0c, 0x080c, 0xc577, 0x005e,
++      0x080c, 0x1ec3, 0x00f6, 0x7004, 0x2078, 0x080c, 0x56dc, 0x0118,
+       0x7820, 0xc0f5, 0x7822, 0x00fe, 0x682b, 0xffff, 0x682f, 0xffff,
+       0x6808, 0x8001, 0x680a, 0x697c, 0x791a, 0x6980, 0x791e, 0x0804,
+       0x1dec, 0x7804, 0xd09c, 0x0904, 0x1b8b, 0x7c20, 0x7824, 0xa405,
+@@ -499,14 +500,14 @@ unsigned short risc_code01[] = { 
+       0x1120, 0x783c, 0xa606, 0x0904, 0x1b8b, 0x7803, 0x0002, 0x0804,
+       0x1d22, 0x7803, 0x0004, 0x7003, 0x0000, 0x7004, 0xa00d, 0x0180,
+       0x6808, 0x8001, 0x680a, 0x1160, 0x7004, 0x2060, 0x2009, 0x0048,
+-      0x601c, 0xa086, 0x0009, 0x1110, 0x080c, 0x1519, 0x080c, 0x960c,
++      0x601c, 0xa086, 0x0009, 0x1110, 0x080c, 0x1519, 0x080c, 0x962c,
+       0x080c, 0x19c0, 0x0088, 0x7803, 0x0004, 0x7003, 0x0000, 0x7004,
+       0x2060, 0x6010, 0xa005, 0x0da0, 0x2068, 0x6808, 0x8000, 0x680a,
+       0x6c28, 0x6b2c, 0x080c, 0x19d3, 0x001e, 0x000e, 0x012e, 0x0005,
+       0x700c, 0x7110, 0xa106, 0x0904, 0x1e96, 0x7004, 0x0016, 0x210c,
+       0xa106, 0x001e, 0x0904, 0x1e96, 0x00d6, 0x00c6, 0x216c, 0x2d00,
+       0xa005, 0x0904, 0x1e94, 0x681c, 0xa086, 0x0008, 0x0904, 0x1e94,
+-      0x6820, 0xd0d4, 0x1904, 0x1e94, 0x6810, 0x2068, 0x080c, 0x7684,
++      0x6820, 0xd0d4, 0x1904, 0x1e94, 0x6810, 0x2068, 0x080c, 0x769d,
+       0x0904, 0x1e94, 0x6850, 0xd0fc, 0x05a8, 0x8108, 0x2104, 0x6b2c,
+       0xa306, 0x1904, 0x1e94, 0x8108, 0x2104, 0x6a28, 0xa206, 0x1904,
+       0x1e94, 0x6850, 0xc0fc, 0xc0f5, 0x6852, 0x686c, 0x7822, 0x701a,
+@@ -529,10 +530,10 @@ unsigned short risc_code01[] = { 
+       0xa085, 0x0001, 0x0010, 0x080c, 0x1fae, 0x0005, 0x0126, 0x2091,
+       0x2200, 0x7000, 0xa086, 0x0003, 0x1160, 0x700c, 0x7110, 0xa106,
+       0x0140, 0x080c, 0x2b06, 0x20e1, 0x9028, 0x700f, 0xc977, 0x7013,
+-      0xc977, 0x012e, 0x0005, 0x00c6, 0x080c, 0x5f22, 0x11b8, 0x2001,
++      0xc977, 0x012e, 0x0005, 0x00c6, 0x080c, 0x5f3b, 0x11b8, 0x2001,
+       0x0160, 0x2003, 0x0000, 0x2001, 0x0138, 0x2003, 0x0000, 0x2011,
+       0x00c8, 0xe000, 0xe000, 0x8211, 0x1de0, 0x0481, 0x0066, 0x2031,
+-      0x0000, 0x080c, 0x5fa4, 0x006e, 0x00ce, 0x0005, 0x080c, 0x1f2d,
++      0x0000, 0x080c, 0x5fbd, 0x006e, 0x00ce, 0x0005, 0x080c, 0x1f2d,
+       0x080c, 0x2b06, 0x20e1, 0x9028, 0x700c, 0x7110, 0xa106, 0x0190,
+       0x2104, 0xa005, 0x0130, 0x2060, 0x6010, 0x2060, 0x6008, 0x8001,
+       0x600a, 0xa188, 0x0003, 0xa182, 0xc992, 0x0210, 0x2009, 0xc977,
+@@ -544,7 +545,7 @@ unsigned short risc_code01[] = { 
+       0xa188, 0x0003, 0xa182, 0xc992, 0x0210, 0x2009, 0xc977, 0x7112,
+       0x0c50, 0x001e, 0x00ce, 0x00ee, 0x0005, 0x2001, 0x0138, 0x2014,
+       0x2003, 0x0000, 0x2001, 0x0160, 0x202c, 0x2003, 0x0000, 0x080c,
+-      0x5f22, 0x1148, 0x2021, 0x0002, 0x1d04, 0x1f3c, 0x2091, 0x6000,
++      0x5f3b, 0x1148, 0x2021, 0x0002, 0x1d04, 0x1f3c, 0x2091, 0x6000,
+       0x8421, 0x1dd0, 0x0005, 0x2021, 0xb015, 0x2001, 0x0141, 0x201c,
+       0xd3dc, 0x1168, 0x2001, 0x0109, 0x201c, 0xa39c, 0x0048, 0x1138,
+       0x2001, 0x0111, 0x201c, 0x83ff, 0x1110, 0x8421, 0x1d70, 0x0005,
+@@ -580,7 +581,7 @@ unsigned short risc_code01[] = { 
+       0xe000, 0x2079, 0x0030, 0x7804, 0xd0ac, 0x190c, 0x1519, 0x2079,
+       0x0010, 0x000e, 0x783e, 0x000e, 0x783a, 0x000e, 0x7836, 0x000e,
+       0x7832, 0x000e, 0x7822, 0x000e, 0x7802, 0x00fe, 0x00ee, 0x0030,
+-      0x00fe, 0x00ee, 0x7804, 0xd0ac, 0x190c, 0x1519, 0x080c, 0x7f6e,
++      0x00fe, 0x00ee, 0x7804, 0xd0ac, 0x190c, 0x1519, 0x080c, 0x7f87,
+       0x0005, 0x00e6, 0x2071, 0xc992, 0x7003, 0x0000, 0x00ee, 0x0005,
+       0x00d6, 0xa280, 0x0004, 0x206c, 0x694c, 0xd1dc, 0x1904, 0x20ed,
+       0x6934, 0xa184, 0x0007, 0x0002, 0x207c, 0x20d8, 0x207c, 0x207e,
+@@ -632,13 +633,13 @@ unsigned short risc_code01[] = { 
+       0x0008, 0xa006, 0x002e, 0x003e, 0x004e, 0x005e, 0x006e, 0x007e,
+       0x0005, 0x080c, 0x1519, 0x0026, 0x2001, 0x0105, 0x2003, 0x0010,
+       0x20e1, 0x9040, 0x7803, 0x0004, 0x7003, 0x0000, 0x7004, 0x2060,
+-      0x00d6, 0x6010, 0x2068, 0x080c, 0xac8a, 0x0118, 0x6850, 0xc0bd,
++      0x00d6, 0x6010, 0x2068, 0x080c, 0xacaa, 0x0118, 0x6850, 0xc0bd,
+       0x6852, 0x601c, 0xa086, 0x0006, 0x1180, 0x2061, 0x0100, 0x62c8,
+       0x2001, 0x00fa, 0x8001, 0x1df0, 0x60c8, 0xa206, 0x1dc0, 0x60c4,
+       0x686a, 0x60c8, 0x6866, 0x7004, 0x2060, 0x00de, 0x00c6, 0x080c,
+-      0xa95a, 0x00ce, 0x2001, 0xc936, 0x2004, 0xac06, 0x1150, 0x20e1,
+-      0x9040, 0x080c, 0x90ef, 0x2011, 0x0000, 0x080c, 0x8f18, 0x080c,
+-      0x7f6e, 0x002e, 0x0804, 0x22e6, 0x0126, 0x2091, 0x2400, 0x0006,
++      0xa97a, 0x00ce, 0x2001, 0xc936, 0x2004, 0xac06, 0x1150, 0x20e1,
++      0x9040, 0x080c, 0x910f, 0x2011, 0x0000, 0x080c, 0x8f31, 0x080c,
++      0x7f87, 0x002e, 0x0804, 0x22e6, 0x0126, 0x2091, 0x2400, 0x0006,
+       0x0016, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x2079, 0x0020, 0x2071,
+       0xc992, 0x2b68, 0x6818, 0x2060, 0x7904, 0x7803, 0x0002, 0xa184,
+       0x0700, 0x1904, 0x21eb, 0x7000, 0x0002, 0x22e6, 0x2249, 0x22b9,
+@@ -665,7 +666,7 @@ unsigned short risc_code01[] = { 
+       0x00ee, 0x00fe, 0x001e, 0x000e, 0x012e, 0x0005, 0x00f6, 0x00e6,
+       0x2071, 0xc992, 0x7000, 0xa086, 0x0000, 0x05d0, 0x2079, 0x0020,
+       0x0016, 0x2009, 0x0207, 0x210c, 0xd194, 0x0198, 0x2009, 0x020c,
+-      0x210c, 0xa184, 0x0003, 0x0168, 0x080c, 0xc59a, 0x2001, 0x0133,
++      0x210c, 0xa184, 0x0003, 0x0168, 0x080c, 0xc5c0, 0x2001, 0x0133,
+       0x2004, 0xa005, 0x090c, 0x1519, 0x20e1, 0x9040, 0x2001, 0x020c,
+       0x2102, 0x2009, 0x0206, 0x2104, 0x2009, 0x0203, 0x210c, 0xa106,
+       0x1110, 0x20e1, 0x9040, 0x7804, 0xd0fc, 0x09d8, 0x080c, 0x222c,
+@@ -673,11 +674,11 @@ unsigned short risc_code01[] = { 
+       0xd0ac, 0x1de8, 0x20e1, 0x9040, 0x7803, 0x0002, 0x7003, 0x0000,
+       0x00ee, 0x00fe, 0x0005, 0x0026, 0x00c6, 0x00d6, 0x00e6, 0x00f6,
+       0x2071, 0xc992, 0x2079, 0x0020, 0x7000, 0xa086, 0x0000, 0x0540,
+-      0x7004, 0x2060, 0x6010, 0x2068, 0x080c, 0xac8a, 0x0158, 0x6850,
++      0x7004, 0x2060, 0x6010, 0x2068, 0x080c, 0xacaa, 0x0158, 0x6850,
+       0xc0b5, 0x6852, 0x680c, 0x7a1c, 0xa206, 0x1120, 0x6808, 0x7a18,
+       0xa206, 0x01e0, 0x2001, 0x0105, 0x2003, 0x0010, 0x20e1, 0x9040,
+-      0x7803, 0x0004, 0x7003, 0x0000, 0x7004, 0x2060, 0x080c, 0xa95a,
+-      0x20e1, 0x9040, 0x080c, 0x90ef, 0x2011, 0x0000, 0x080c, 0x8f18,
++      0x7803, 0x0004, 0x7003, 0x0000, 0x7004, 0x2060, 0x080c, 0xa97a,
++      0x20e1, 0x9040, 0x080c, 0x910f, 0x2011, 0x0000, 0x080c, 0x8f31,
+       0x00fe, 0x00ee, 0x00de, 0x00ce, 0x002e, 0x0005, 0x6810, 0x6a14,
+       0xa205, 0x1d00, 0x684c, 0xc0dc, 0x684e, 0x2c10, 0x080c, 0x2068,
+       0x2001, 0x0105, 0x2003, 0x0010, 0x20e1, 0x9040, 0x7803, 0x0004,
+@@ -698,8 +699,8 @@ unsigned short risc_code01[] = { 
+       0x53a3, 0x7803, 0x0020, 0x0126, 0x2091, 0x8000, 0x7803, 0x0041,
+       0x7007, 0x0005, 0x7000, 0xc094, 0x7002, 0x700b, 0xc760, 0x012e,
+       0x015e, 0x014e, 0x013e, 0x0005, 0x2099, 0x0014, 0x7803, 0x0040,
+-      0x2001, 0xc765, 0x2004, 0x2010, 0x080c, 0x72ad, 0x2009, 0xc699,
+-      0x2104, 0xa084, 0xfffc, 0x200a, 0x080c, 0x721f, 0x7007, 0x0000,
++      0x2001, 0xc765, 0x2004, 0x2010, 0x080c, 0x72c6, 0x2009, 0xc699,
++      0x2104, 0xa084, 0xfffc, 0x200a, 0x080c, 0x7238, 0x7007, 0x0000,
+       0x080c, 0x1676, 0x0005, 0x00a6, 0x0096, 0x0086, 0x6b2e, 0x6c2a,
+       0x6858, 0xa055, 0x0904, 0x24ac, 0x2d60, 0x6034, 0xa0cc, 0x000f,
+       0xa9c0, 0x23c7, 0xa986, 0x0007, 0x0130, 0xa986, 0x000e, 0x0118,
+@@ -729,7 +730,7 @@ unsigned short risc_code01[] = { 
+       0xac06, 0x1108, 0x200a, 0xa188, 0x0003, 0x1f04, 0x24e7, 0x015e,
+       0x001e, 0x000e, 0x0005, 0x00e6, 0x00d6, 0x2071, 0xc96a, 0x700c,
+       0x7110, 0xa106, 0x01b8, 0x2104, 0xa005, 0x0138, 0xa080, 0x0004,
+-      0x2004, 0x2068, 0x080c, 0x7684, 0x0158, 0xa188, 0x0003, 0xa182,
++      0x2004, 0x2068, 0x080c, 0x769d, 0x0158, 0xa188, 0x0003, 0xa182,
+       0xc992, 0x0210, 0x2009, 0xc977, 0x700c, 0xa106, 0x1d60, 0x0010,
+       0xa085, 0x0001, 0x00de, 0x00ee, 0x0005, 0x0126, 0x2091, 0x2600,
+       0x2079, 0x0200, 0x2071, 0xcc80, 0x2069, 0xc600, 0x080c, 0x260b,
+@@ -739,16 +740,16 @@ unsigned short risc_code01[] = { 
+       0x001f, 0x20e1, 0x8700, 0x012e, 0x0005, 0x0126, 0x2091, 0x2600,
+       0x781c, 0xd0a4, 0x190c, 0x25f8, 0xa084, 0x0007, 0x0002, 0x2561,
+       0x254f, 0x2552, 0x2555, 0x255a, 0x255c, 0x255e, 0x2560, 0x080c,
+-      0x68c9, 0x0078, 0x080c, 0x6916, 0x0060, 0x080c, 0x68c9, 0x080c,
+-      0x6916, 0x0038, 0x0041, 0x0028, 0x0031, 0x0018, 0x0021, 0x0008,
+-      0x0011, 0x012e, 0x0005, 0x0006, 0x0016, 0x0026, 0x080c, 0xc59a,
++      0x68e2, 0x0078, 0x080c, 0x692f, 0x0060, 0x080c, 0x68e2, 0x080c,
++      0x692f, 0x0038, 0x0041, 0x0028, 0x0031, 0x0018, 0x0021, 0x0008,
++      0x0011, 0x012e, 0x0005, 0x0006, 0x0016, 0x0026, 0x080c, 0xc5c0,
+       0x7930, 0xa184, 0x0003, 0x01b0, 0x2001, 0xc936, 0x2004, 0xa005,
+       0x0170, 0x2001, 0x0133, 0x2004, 0xa005, 0x090c, 0x1519, 0x00c6,
+-      0x2001, 0xc936, 0x2064, 0x080c, 0xa95a, 0x00ce, 0x04b8, 0x20e1,
++      0x2001, 0xc936, 0x2064, 0x080c, 0xa97a, 0x00ce, 0x04b8, 0x20e1,
+       0x9040, 0x04a0, 0xa184, 0x0030, 0x01e0, 0x6a00, 0xa286, 0x0003,
+-      0x1108, 0x00a0, 0x080c, 0x5f22, 0x1178, 0x2001, 0xc8e6, 0x2003,
++      0x1108, 0x00a0, 0x080c, 0x5f3b, 0x1178, 0x2001, 0xc8e6, 0x2003,
+       0x0001, 0x2001, 0xc600, 0x2003, 0x0001, 0xa085, 0x0001, 0x080c,
+-      0x5f66, 0x080c, 0x5e5a, 0x0010, 0x080c, 0x4e5b, 0x080c, 0x25fb,
++      0x5f7f, 0x080c, 0x5e73, 0x0010, 0x080c, 0x4e74, 0x080c, 0x25fb,
+       0x00a8, 0xa184, 0x00c0, 0x0168, 0x00e6, 0x0036, 0x0046, 0x0056,
+       0x2071, 0xc96a, 0x080c, 0x1ec3, 0x005e, 0x004e, 0x003e, 0x00ee,
+       0x0028, 0xa184, 0x0300, 0x0110, 0x20e1, 0x9020, 0x7932, 0x002e,
+@@ -780,85 +781,85 @@ unsigned short risc_code01[] = { 
+       0x0009, 0x000e, 0x00ee, 0x1138, 0x00e6, 0x783c, 0x2070, 0x7008,
+       0xd0fc, 0x00ee, 0x1130, 0xa184, 0x1e2c, 0x1118, 0xa184, 0x0007,
+       0x002a, 0xa195, 0x0004, 0xa284, 0x0007, 0x0002, 0x26b8, 0x269e,
+-      0x26a1, 0x26a4, 0x26a9, 0x26ab, 0x26af, 0x26b3, 0x080c, 0x7873,
+-      0x00b8, 0x080c, 0x794e, 0x00a0, 0x080c, 0x794e, 0x080c, 0x7873,
+-      0x0078, 0x0099, 0x0068, 0x080c, 0x7873, 0x0079, 0x0048, 0x080c,
+-      0x794e, 0x0059, 0x0028, 0x080c, 0x794e, 0x080c, 0x7873, 0x0029,
++      0x26a1, 0x26a4, 0x26a9, 0x26ab, 0x26af, 0x26b3, 0x080c, 0x788c,
++      0x00b8, 0x080c, 0x7967, 0x00a0, 0x080c, 0x7967, 0x080c, 0x788c,
++      0x0078, 0x0099, 0x0068, 0x080c, 0x788c, 0x0079, 0x0048, 0x080c,
++      0x7967, 0x0059, 0x0028, 0x080c, 0x7967, 0x080c, 0x788c, 0x0029,
+       0x002e, 0x001e, 0x000e, 0x012e, 0x0005, 0x6124, 0x6028, 0xd09c,
+-      0x0118, 0xd19c, 0x1904, 0x2910, 0x080c, 0x5f22, 0x0578, 0x7000,
++      0x0118, 0xd19c, 0x1904, 0x2910, 0x080c, 0x5f3b, 0x0578, 0x7000,
+       0xa086, 0x0003, 0x0198, 0x6024, 0xa084, 0x1800, 0x0178, 0x080c,
+-      0x5f48, 0x0118, 0x080c, 0x5f34, 0x1148, 0x6027, 0x0020, 0x6043,
+-      0x0000, 0x2001, 0xc8e5, 0x2003, 0xaaaa, 0x0458, 0x080c, 0x5f48,
++      0x5f61, 0x0118, 0x080c, 0x5f4d, 0x1148, 0x6027, 0x0020, 0x6043,
++      0x0000, 0x2001, 0xc8e5, 0x2003, 0xaaaa, 0x0458, 0x080c, 0x5f61,
+       0x15d0, 0x6024, 0xa084, 0x1800, 0x1108, 0x04a8, 0x2001, 0xc8e5,
+       0x2003, 0xaaaa, 0x2001, 0xc8e6, 0x2003, 0x0001, 0x2001, 0xc600,
+-      0x2003, 0x0001, 0x080c, 0x5e5a, 0x0804, 0x2910, 0xd1ac, 0x1518,
++      0x2003, 0x0001, 0x080c, 0x5e73, 0x0804, 0x2910, 0xd1ac, 0x1518,
+       0x6024, 0xd0dc, 0x1170, 0xd0e4, 0x1188, 0xd0d4, 0x11a0, 0xd0cc,
+-      0x0130, 0x708c, 0xa086, 0x0028, 0x1110, 0x080c, 0x60b1, 0x0804,
++      0x0130, 0x708c, 0xa086, 0x0028, 0x1110, 0x080c, 0x60ca, 0x0804,
+       0x2910, 0x2001, 0xc8e6, 0x2003, 0x0000, 0x0048, 0x2001, 0xc8e6,
+-      0x2003, 0x0002, 0x0020, 0x080c, 0x6024, 0x0804, 0x2910, 0x080c,
+-      0x6156, 0x0804, 0x2910, 0x6220, 0xd1bc, 0x0568, 0xd2bc, 0x0558,
++      0x2003, 0x0002, 0x0020, 0x080c, 0x603d, 0x0804, 0x2910, 0x080c,
++      0x616f, 0x0804, 0x2910, 0x6220, 0xd1bc, 0x0568, 0xd2bc, 0x0558,
+       0x783c, 0xa005, 0x0540, 0x00e6, 0x2070, 0x7008, 0xd0fc, 0x00ee,
+       0x0510, 0x6028, 0xc0bc, 0x602a, 0x0026, 0x0036, 0x6288, 0x638c,
+       0x608b, 0xbc91, 0x608f, 0xffff, 0x6043, 0x0001, 0xe000, 0xe000,
+       0x6027, 0x0080, 0x6017, 0x0000, 0x6043, 0x0000, 0x628a, 0x638e,
+       0x003e, 0x002e, 0x0016, 0x2001, 0xc696, 0x200c, 0xc184, 0x2102,
+       0x001e, 0x0804, 0x2969, 0xd1ac, 0x0904, 0x284c, 0x0036, 0x6328,
+-      0xc3bc, 0x632a, 0x003e, 0x080c, 0x5f22, 0x11d8, 0x6027, 0x0020,
+-      0x0006, 0x0026, 0x0036, 0x080c, 0x5f3e, 0x1170, 0x2001, 0xc8e6,
+-      0x2003, 0x0001, 0x2001, 0xc600, 0x2003, 0x0001, 0x080c, 0x5e5a,
++      0xc3bc, 0x632a, 0x003e, 0x080c, 0x5f3b, 0x11d8, 0x6027, 0x0020,
++      0x0006, 0x0026, 0x0036, 0x080c, 0x5f57, 0x1170, 0x2001, 0xc8e6,
++      0x2003, 0x0001, 0x2001, 0xc600, 0x2003, 0x0001, 0x080c, 0x5e73,
+       0x003e, 0x002e, 0x000e, 0x0005, 0x003e, 0x002e, 0x000e, 0x080c,
+-      0x5ef9, 0x0016, 0x0046, 0x00c6, 0x644c, 0xa486, 0xf0f0, 0x1138,
++      0x5f12, 0x0016, 0x0046, 0x00c6, 0x644c, 0xa486, 0xf0f0, 0x1138,
+       0x2061, 0x0100, 0x644a, 0x6043, 0x0090, 0x6043, 0x0010, 0x74ce,
+       0xa48c, 0xff00, 0x7034, 0xd084, 0x0178, 0xa186, 0xf800, 0x1160,
+       0x703c, 0xd084, 0x1148, 0xc085, 0x703e, 0x0036, 0x2418, 0x2011,
+-      0x8016, 0x080c, 0x407d, 0x003e, 0xa196, 0xff00, 0x05b8, 0x7054,
++      0x8016, 0x080c, 0x4096, 0x003e, 0xa196, 0xff00, 0x05b8, 0x7054,
+       0xa084, 0x00ff, 0x810f, 0xa116, 0x0588, 0x7130, 0xd184, 0x1570,
+       0x2011, 0xc653, 0x2214, 0xd2ec, 0x0138, 0xc18d, 0x7132, 0x2011,
+       0xc653, 0x2214, 0xd2ac, 0x1510, 0x6240, 0xa294, 0x0010, 0x0130,
+       0x6248, 0xa294, 0xff00, 0xa296, 0xff00, 0x01c0, 0x7030, 0xd08c,
+       0x0904, 0x2819, 0x7034, 0xd08c, 0x1140, 0x2001, 0xc60c, 0x200c,
+       0xd1ac, 0x1904, 0x2819, 0xc1ad, 0x2102, 0x0036, 0x73cc, 0x2011,
+-      0x8013, 0x080c, 0x407d, 0x003e, 0x0804, 0x2819, 0x7034, 0xd08c,
++      0x8013, 0x080c, 0x4096, 0x003e, 0x0804, 0x2819, 0x7034, 0xd08c,
+       0x1140, 0x2001, 0xc60c, 0x200c, 0xd1ac, 0x1904, 0x2819, 0xc1ad,
+-      0x2102, 0x0036, 0x73cc, 0x2011, 0x8013, 0x080c, 0x407d, 0x003e,
++      0x2102, 0x0036, 0x73cc, 0x2011, 0x8013, 0x080c, 0x4096, 0x003e,
+       0x7130, 0xc185, 0x7132, 0x2011, 0xc653, 0x220c, 0xd1a4, 0x01d0,
+-      0x0016, 0x2009, 0x0001, 0x2011, 0x0100, 0x080c, 0x712e, 0x2019,
+-      0x000e, 0x080c, 0xc100, 0xa484, 0x00ff, 0xa080, 0x2f6e, 0x200d,
++      0x0016, 0x2009, 0x0001, 0x2011, 0x0100, 0x080c, 0x7147, 0x2019,
++      0x000e, 0x080c, 0xc126, 0xa484, 0x00ff, 0xa080, 0x2f6e, 0x200d,
+       0xa18c, 0xff00, 0x810f, 0x8127, 0xa006, 0x2009, 0x000e, 0x080c,
+-      0xc183, 0x001e, 0x0016, 0x2009, 0x0000, 0x2019, 0x0004, 0x080c,
++      0xc1a9, 0x001e, 0x0016, 0x2009, 0x0000, 0x2019, 0x0004, 0x080c,
+       0x2e19, 0x001e, 0x0070, 0x0156, 0x20a9, 0x007f, 0x2009, 0x0000,
+-      0x080c, 0x533d, 0x1110, 0x080c, 0x4f47, 0x8108, 0x1f04, 0x2810,
+-      0x015e, 0x00ce, 0x004e, 0x2011, 0x0003, 0x080c, 0x8f0e, 0x2011,
+-      0x0002, 0x080c, 0x8f18, 0x080c, 0x8dee, 0x0036, 0x2019, 0x0000,
+-      0x080c, 0x8e79, 0x003e, 0x60e3, 0x0000, 0x001e, 0x2001, 0xc600,
++      0x080c, 0x5356, 0x1110, 0x080c, 0x4f60, 0x8108, 0x1f04, 0x2810,
++      0x015e, 0x00ce, 0x004e, 0x2011, 0x0003, 0x080c, 0x8f27, 0x2011,
++      0x0002, 0x080c, 0x8f31, 0x080c, 0x8e07, 0x0036, 0x2019, 0x0000,
++      0x080c, 0x8e92, 0x003e, 0x60e3, 0x0000, 0x001e, 0x2001, 0xc600,
+       0x2014, 0xa296, 0x0004, 0x1128, 0xd19c, 0x11b0, 0x6228, 0xc29d,
+       0x622a, 0x2003, 0x0001, 0x2001, 0xc623, 0x2003, 0x0000, 0x6027,
+-      0x0020, 0x080c, 0x5f48, 0x1140, 0x0016, 0x2009, 0x07d0, 0x2011,
+-      0x5e37, 0x080c, 0x7036, 0x001e, 0xd194, 0x0904, 0x2910, 0x0016,
+-      0x6220, 0xd2b4, 0x0904, 0x28b5, 0x080c, 0x7024, 0x080c, 0x8bf5,
++      0x0020, 0x080c, 0x5f61, 0x1140, 0x0016, 0x2009, 0x07d0, 0x2011,
++      0x5e50, 0x080c, 0x704f, 0x001e, 0xd194, 0x0904, 0x2910, 0x0016,
++      0x6220, 0xd2b4, 0x0904, 0x28b5, 0x080c, 0x703d, 0x080c, 0x8c0e,
+       0x6027, 0x0004, 0x00f6, 0x2019, 0xc930, 0x2304, 0xa07d, 0x0570,
+       0x7804, 0xa086, 0x0032, 0x1550, 0x00d6, 0x00c6, 0x00e6, 0x2069,
+       0x0140, 0x618c, 0x6288, 0x7818, 0x608e, 0x7808, 0x608a, 0x6043,
+       0x0002, 0x2001, 0x0003, 0x8001, 0x1df0, 0x6043, 0x0000, 0x6803,
+-      0x1000, 0x6803, 0x0000, 0x618e, 0x628a, 0x080c, 0x7db1, 0x080c,
+-      0x7e94, 0x7810, 0x2070, 0x7037, 0x0103, 0x2f60, 0x080c, 0x95dc,
++      0x1000, 0x6803, 0x0000, 0x618e, 0x628a, 0x080c, 0x7dca, 0x080c,
++      0x7ead, 0x7810, 0x2070, 0x7037, 0x0103, 0x2f60, 0x080c, 0x95fc,
+       0x00ee, 0x00ce, 0x00de, 0x00fe, 0x001e, 0x0005, 0x00fe, 0x00d6,
+       0x2069, 0x0140, 0x6804, 0xa084, 0x4000, 0x0120, 0x6803, 0x1000,
+       0x6803, 0x0000, 0x00de, 0x00c6, 0x2061, 0xc927, 0x6028, 0xa09a,
+-      0x00c8, 0x1238, 0x8000, 0x602a, 0x00ce, 0x080c, 0x8be8, 0x0804,
++      0x00c8, 0x1238, 0x8000, 0x602a, 0x00ce, 0x080c, 0x8c01, 0x0804,
+       0x290f, 0x2019, 0xc930, 0x2304, 0xa065, 0x0120, 0x2009, 0x0027,
+-      0x080c, 0x960c, 0x00ce, 0x0804, 0x290f, 0xd2bc, 0x0904, 0x290f,
+-      0x080c, 0x7031, 0x6014, 0xa084, 0x0184, 0xa085, 0x0010, 0x6016,
++      0x080c, 0x962c, 0x00ce, 0x0804, 0x290f, 0xd2bc, 0x0904, 0x290f,
++      0x080c, 0x704a, 0x6014, 0xa084, 0x0184, 0xa085, 0x0010, 0x6016,
+       0x6027, 0x0004, 0x00d6, 0x2069, 0x0140, 0x6804, 0xa084, 0x4000,
+       0x0120, 0x6803, 0x1000, 0x6803, 0x0000, 0x00de, 0x00c6, 0x2061,
+       0xc927, 0x6044, 0xa09a, 0x00c8, 0x1620, 0x8000, 0x6046, 0x603c,
+-      0x00ce, 0xa005, 0x05a0, 0x2009, 0x07d0, 0x080c, 0x7029, 0xa080,
++      0x00ce, 0xa005, 0x05a0, 0x2009, 0x07d0, 0x080c, 0x7042, 0xa080,
+       0x0007, 0x2004, 0xa086, 0x0006, 0x1138, 0x6114, 0xa18c, 0x0184,
+       0xa18d, 0x0012, 0x6116, 0x0418, 0xa080, 0x0007, 0x2004, 0xa086,
+       0x0009, 0x0d98, 0x6114, 0xa18c, 0x0184, 0xa18d, 0x0016, 0x6116,
+-      0x00b0, 0x0036, 0x2019, 0x0001, 0x080c, 0x8e79, 0x003e, 0x2019,
++      0x00b0, 0x0036, 0x2019, 0x0001, 0x080c, 0x8e92, 0x003e, 0x2019,
+       0xc936, 0x2304, 0xa065, 0x0150, 0x2009, 0x004f, 0x601c, 0xa086,
+-      0x0009, 0x1110, 0x2009, 0x0105, 0x080c, 0x960c, 0x00ce, 0x001e,
++      0x0009, 0x1110, 0x2009, 0x0105, 0x080c, 0x962c, 0x00ce, 0x001e,
+       0xd19c, 0x0904, 0x2969, 0x7034, 0xd0ac, 0x1560, 0x0016, 0x0156,
+       0x6027, 0x0008, 0x602f, 0x0020, 0x20a9, 0x0006, 0x1d04, 0x291e,
+       0x2091, 0x6000, 0x1f04, 0x291e, 0x602f, 0x0000, 0x6150, 0xa185,
+@@ -866,16 +867,16 @@ unsigned short risc_code01[] = { 
+       0x6020, 0xd09c, 0x1130, 0x015e, 0x6152, 0x001e, 0x6027, 0x0008,
+       0x0480, 0x080c, 0x2ab1, 0x1f04, 0x292c, 0x015e, 0x6152, 0x001e,
+       0x6027, 0x0008, 0x0016, 0x6028, 0xc09c, 0x602a, 0x2011, 0x0003,
+-      0x080c, 0x8f0e, 0x2011, 0x0002, 0x080c, 0x8f18, 0x080c, 0x8dee,
+-      0x0036, 0x2019, 0x0000, 0x080c, 0x8e79, 0x003e, 0x60e3, 0x0000,
+-      0x080c, 0xc579, 0x080c, 0xc594, 0xa085, 0x0001, 0x080c, 0x5f66,
++      0x080c, 0x8f27, 0x2011, 0x0002, 0x080c, 0x8f31, 0x080c, 0x8e07,
++      0x0036, 0x2019, 0x0000, 0x080c, 0x8e92, 0x003e, 0x60e3, 0x0000,
++      0x080c, 0xc59f, 0x080c, 0xc5ba, 0xa085, 0x0001, 0x080c, 0x5f7f,
+       0x2001, 0xc600, 0x2003, 0x0004, 0x6027, 0x0008, 0x080c, 0x12e1,
+       0x001e, 0xa18c, 0xffd0, 0x6126, 0x0005, 0x0006, 0x0016, 0x0026,
+       0x00e6, 0x00f6, 0x0126, 0x2091, 0x8000, 0x2071, 0xc600, 0x71c4,
+       0x70c6, 0xa116, 0x0500, 0x81ff, 0x0128, 0x2011, 0x8011, 0x080c,
+-      0x407d, 0x00c8, 0x2011, 0x8012, 0x080c, 0x407d, 0x2001, 0xc672,
++      0x4096, 0x00c8, 0x2011, 0x8012, 0x080c, 0x4096, 0x2001, 0xc672,
+       0x2004, 0xd0fc, 0x1180, 0x0036, 0x00c6, 0x080c, 0x2a3c, 0x080c,
+-      0x8dca, 0x2061, 0x0100, 0x2019, 0x0028, 0x2009, 0x0000, 0x080c,
++      0x8de3, 0x2061, 0x0100, 0x2019, 0x0028, 0x2009, 0x0000, 0x080c,
+       0x2e19, 0x00ce, 0x003e, 0x012e, 0x00fe, 0x00ee, 0x002e, 0x001e,
+       0x000e, 0x0005, 0x00c6, 0x00f6, 0x0006, 0x0026, 0x2061, 0x0100,
+       0xa190, 0x29b5, 0x2205, 0x60f2, 0x2011, 0x29c2, 0x2205, 0x60ee,
+@@ -883,13 +884,13 @@ unsigned short risc_code01[] = { 
+       0x0580, 0x0420, 0x0348, 0x02c0, 0x0258, 0x0210, 0x01a8, 0x01a8,
+       0x01a8, 0x01a8, 0x0140, 0x00f8, 0x00d0, 0x00b0, 0x00a0, 0x2028,
+       0xa18c, 0x00ff, 0x2130, 0xa094, 0xff00, 0x1110, 0x81ff, 0x0118,
+-      0x080c, 0x6be0, 0x0038, 0xa080, 0x2f6e, 0x200d, 0xa18c, 0xff00,
++      0x080c, 0x6bf9, 0x0038, 0xa080, 0x2f6e, 0x200d, 0xa18c, 0xff00,
+       0x810f, 0xa006, 0x0005, 0xa080, 0x2f6e, 0x200d, 0xa18c, 0x00ff,
+       0x0005, 0x00d6, 0x2069, 0x0140, 0x2001, 0xc615, 0x2003, 0x00ef,
+       0x20a9, 0x0010, 0xa006, 0x6852, 0x6856, 0x1f04, 0x29ec, 0x00de,
+       0x0005, 0x0006, 0x00d6, 0x0026, 0x2069, 0x0140, 0x2001, 0xc615,
+       0x2102, 0x8114, 0x8214, 0x8214, 0x8214, 0x20a9, 0x0010, 0x6853,
+-      0x0000, 0xa006, 0x82ff, 0x1128, 0xa184, 0x000f, 0xa080, 0xc5a8,
++      0x0000, 0xa006, 0x82ff, 0x1128, 0xa184, 0x000f, 0xa080, 0xc5ce,
+       0x2005, 0x6856, 0x8211, 0x1f04, 0x2a01, 0x002e, 0x00de, 0x000e,
+       0x0005, 0x00c6, 0x2061, 0xc600, 0x6030, 0x0110, 0xc09d, 0x0008,
+       0xc09c, 0x6032, 0x00ce, 0x0005, 0x0156, 0x00d6, 0x0026, 0x0016,
+@@ -898,12 +899,12 @@ unsigned short risc_code01[] = { 
+       0x0404, 0x680e, 0x1f04, 0x2a31, 0x680f, 0x0000, 0x000e, 0x001e,
+       0x002e, 0x00de, 0x015e, 0x0005, 0x2001, 0xc653, 0x2004, 0xd0c4,
+       0x0150, 0xd0a4, 0x0140, 0xa006, 0x0046, 0x2020, 0x2009, 0x002e,
+-      0x080c, 0xc183, 0x004e, 0x0005, 0x00f6, 0x0016, 0x0026, 0x2079,
++      0x080c, 0xc1a9, 0x004e, 0x0005, 0x00f6, 0x0016, 0x0026, 0x2079,
+       0x0140, 0x78c4, 0xd0dc, 0x0548, 0xa084, 0x0700, 0xa08e, 0x0300,
+       0x1520, 0x2011, 0x0000, 0x2009, 0x0002, 0x2300, 0xa080, 0x0020,
+-      0x2018, 0x2300, 0x080c, 0x783f, 0x2011, 0x0030, 0x2200, 0x8007,
++      0x2018, 0x2300, 0x080c, 0x7858, 0x2011, 0x0030, 0x2200, 0x8007,
+       0xa085, 0x004c, 0x78c2, 0x2009, 0x0204, 0x210c, 0x2200, 0xa100,
+-      0x2009, 0x0138, 0x200a, 0x080c, 0x5f22, 0x1118, 0x2009, 0xc8d6,
++      0x2009, 0x0138, 0x200a, 0x080c, 0x5f3b, 0x1118, 0x2009, 0xc8d6,
+       0x200a, 0x002e, 0x001e, 0x00fe, 0x0005, 0x78c3, 0x0000, 0x0cc8,
+       0x0126, 0x2091, 0x2800, 0x0006, 0x0016, 0x0026, 0x2001, 0x0170,
+       0x200c, 0x8000, 0x2014, 0xa184, 0x0003, 0x0110, 0x0804, 0x1b81,
+@@ -966,10 +967,10 @@ unsigned short risc_code01[] = { 
+       0x080c, 0x2664, 0x080c, 0x24b2, 0x080c, 0x253d, 0x0040, 0x20d1,
+       0x0000, 0x20d1, 0x0001, 0x20d1, 0x0000, 0x080c, 0x1519, 0x000e,
+       0x010e, 0x000d, 0x00c6, 0x0026, 0x0046, 0x2021, 0x0000, 0x080c,
+-      0x570b, 0x1904, 0x2d3f, 0x72d4, 0x2001, 0xc8e5, 0x2004, 0xa005,
++      0x5724, 0x1904, 0x2d3f, 0x72d4, 0x2001, 0xc8e5, 0x2004, 0xa005,
+       0x1110, 0xd29c, 0x0148, 0xd284, 0x1138, 0xd2bc, 0x1904, 0x2d3f,
+       0x080c, 0x2d43, 0x0804, 0x2d3f, 0xd2cc, 0x1904, 0x2d3f, 0x080c,
+-      0x5f22, 0x1120, 0x709f, 0xffff, 0x0804, 0x2d3f, 0xd294, 0x0120,
++      0x5f3b, 0x1120, 0x709f, 0xffff, 0x0804, 0x2d3f, 0xd294, 0x0120,
+       0x709f, 0xffff, 0x0804, 0x2d3f, 0x2001, 0xc615, 0x203c, 0x7288,
+       0xd284, 0x0904, 0x2ce1, 0xd28c, 0x1904, 0x2ce1, 0x0036, 0x739c,
+       0xa38e, 0xffff, 0x1110, 0x2019, 0x0001, 0x8314, 0xa2e0, 0xcdc0,
+@@ -977,7 +978,7 @@ unsigned short risc_code01[] = { 
+       0xa084, 0x00ff, 0xa70e, 0x0560, 0xa08e, 0x0000, 0x0548, 0xa08e,
+       0x00ff, 0x1150, 0x7230, 0xd284, 0x1538, 0x7288, 0xc28d, 0x728a,
+       0x709f, 0xffff, 0x003e, 0x0428, 0x2009, 0x0000, 0x080c, 0x29c7,
+-      0x080c, 0x52e1, 0x11b8, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006,
++      0x080c, 0x52fa, 0x11b8, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006,
+       0x1150, 0x7030, 0xd08c, 0x0118, 0x6000, 0xd0bc, 0x0120, 0x080c,
+       0x2d56, 0x0140, 0x0028, 0x080c, 0x2e87, 0x080c, 0x2d84, 0x0110,
+       0x8318, 0x0818, 0x739e, 0x0010, 0x709f, 0xffff, 0x003e, 0x0804,
+@@ -985,51 +986,51 @@ unsigned short risc_code01[] = { 
+       0x007e, 0x709c, 0xa096, 0xffff, 0x1120, 0x2009, 0x0000, 0x28a8,
+       0x0050, 0xa812, 0x0220, 0x2008, 0xa802, 0x20a8, 0x0020, 0x709f,
+       0xffff, 0x0804, 0x2d3f, 0x2700, 0x0156, 0x0016, 0xa106, 0x05a0,
+-      0xc484, 0x080c, 0x533d, 0x0120, 0x080c, 0x52e1, 0x15a8, 0x0008,
++      0xc484, 0x080c, 0x5356, 0x0120, 0x080c, 0x52fa, 0x15a8, 0x0008,
+       0xc485, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x1130, 0x7030,
+       0xd08c, 0x01e8, 0x6000, 0xd0bc, 0x11d0, 0x7288, 0xd28c, 0x0188,
+       0x6004, 0xa084, 0x00ff, 0xa082, 0x0006, 0x02b0, 0xd484, 0x1118,
+-      0x080c, 0x5300, 0x0028, 0x080c, 0x2f14, 0x0170, 0x080c, 0x2f41,
++      0x080c, 0x5319, 0x0028, 0x080c, 0x2f14, 0x0170, 0x080c, 0x2f41,
+       0x0058, 0x080c, 0x2e87, 0x080c, 0x2d84, 0x0170, 0x0028, 0x080c,
+       0x2f14, 0x0110, 0x0419, 0x0140, 0x001e, 0x8108, 0x015e, 0x1f04,
+       0x2cfb, 0x709f, 0xffff, 0x0018, 0x001e, 0x015e, 0x719e, 0x004e,
+       0x002e, 0x00ce, 0x0005, 0x00c6, 0x0016, 0x709f, 0x0001, 0x2009,
+-      0x007e, 0x080c, 0x52e1, 0x1138, 0x080c, 0x2e87, 0x04a9, 0x0118,
++      0x007e, 0x080c, 0x52fa, 0x1138, 0x080c, 0x2e87, 0x04a9, 0x0118,
+       0x70d4, 0xc0bd, 0x70d6, 0x001e, 0x00ce, 0x0005, 0x0016, 0x0076,
+       0x00d6, 0x00c6, 0x2c68, 0x2001, 0xc657, 0x2004, 0xa084, 0x00ff,
+-      0x6842, 0x080c, 0xaf06, 0x01d8, 0x2d00, 0x601a, 0x080c, 0xb057,
+-      0x601f, 0x0001, 0x2001, 0x0000, 0x080c, 0x527f, 0x2001, 0x0000,
+-      0x080c, 0x5291, 0x0126, 0x2091, 0x8000, 0x7098, 0x8000, 0x709a,
+-      0x012e, 0x2009, 0x0004, 0x080c, 0x960c, 0xa085, 0x0001, 0x00ce,
++      0x6842, 0x080c, 0xaf26, 0x01d8, 0x2d00, 0x601a, 0x080c, 0xb077,
++      0x601f, 0x0001, 0x2001, 0x0000, 0x080c, 0x5298, 0x2001, 0x0000,
++      0x080c, 0x52aa, 0x0126, 0x2091, 0x8000, 0x7098, 0x8000, 0x709a,
++      0x012e, 0x2009, 0x0004, 0x080c, 0x962c, 0xa085, 0x0001, 0x00ce,
+       0x00de, 0x007e, 0x001e, 0x0005, 0x0016, 0x0076, 0x00d6, 0x00c6,
+       0x2c68, 0x2001, 0xc657, 0x2004, 0xa084, 0x00ff, 0x6842, 0x080c,
+-      0xaf06, 0x0550, 0x2d00, 0x601a, 0x6800, 0xc0c4, 0x6802, 0x68a0,
++      0xaf26, 0x0550, 0x2d00, 0x601a, 0x6800, 0xc0c4, 0x6802, 0x68a0,
+       0xa086, 0x007e, 0x0140, 0x6804, 0xa084, 0x00ff, 0xa086, 0x0006,
+-      0x1110, 0x080c, 0x2e46, 0x080c, 0xb057, 0x601f, 0x0001, 0x2001,
+-      0x0000, 0x080c, 0x527f, 0x2001, 0x0002, 0x080c, 0x5291, 0x0126,
++      0x1110, 0x080c, 0x2e46, 0x080c, 0xb077, 0x601f, 0x0001, 0x2001,
++      0x0000, 0x080c, 0x5298, 0x2001, 0x0002, 0x080c, 0x52aa, 0x0126,
+       0x2091, 0x8000, 0x7098, 0x8000, 0x709a, 0x012e, 0x2009, 0x0002,
+-      0x080c, 0x960c, 0xa085, 0x0001, 0x00ce, 0x00de, 0x007e, 0x001e,
+-      0x0005, 0x00c6, 0x0026, 0x2009, 0x0080, 0x080c, 0x52e1, 0x1120,
++      0x080c, 0x962c, 0xa085, 0x0001, 0x00ce, 0x00de, 0x007e, 0x001e,
++      0x0005, 0x00c6, 0x0026, 0x2009, 0x0080, 0x080c, 0x52fa, 0x1120,
+       0x0031, 0x0110, 0x70db, 0xffff, 0x002e, 0x00ce, 0x0005, 0x0016,
+-      0x0076, 0x00d6, 0x00c6, 0x2c68, 0x080c, 0x9586, 0x01e8, 0x2d00,
+-      0x601a, 0x080c, 0xb057, 0x601f, 0x0001, 0x2001, 0x0000, 0x080c,
+-      0x527f, 0x2001, 0x0002, 0x080c, 0x5291, 0x0126, 0x2091, 0x8000,
++      0x0076, 0x00d6, 0x00c6, 0x2c68, 0x080c, 0x95a6, 0x01e8, 0x2d00,
++      0x601a, 0x080c, 0xb077, 0x601f, 0x0001, 0x2001, 0x0000, 0x080c,
++      0x5298, 0x2001, 0x0002, 0x080c, 0x52aa, 0x0126, 0x2091, 0x8000,
+       0x080c, 0x2e46, 0x70dc, 0x8000, 0x70de, 0x012e, 0x2009, 0x0002,
+-      0x080c, 0x960c, 0xa085, 0x0001, 0x00ce, 0x00de, 0x007e, 0x001e,
++      0x080c, 0x962c, 0xa085, 0x0001, 0x00ce, 0x00de, 0x007e, 0x001e,
+       0x0005, 0x00c6, 0x00d6, 0x0126, 0x2091, 0x8000, 0x2009, 0x007f,
+-      0x080c, 0x52e1, 0x1190, 0x2c68, 0x080c, 0x9586, 0x0170, 0x2d00,
+-      0x601a, 0x6312, 0x601f, 0x0001, 0x620a, 0x080c, 0xb057, 0x2009,
+-      0x0022, 0x080c, 0x960c, 0xa085, 0x0001, 0x012e, 0x00de, 0x00ce,
+-      0x0005, 0x00e6, 0x00c6, 0x0066, 0x0036, 0x0026, 0x080c, 0x7b22,
+-      0x080c, 0x7abb, 0x080c, 0xa089, 0x2130, 0x81ff, 0x0128, 0x20a9,
++      0x080c, 0x52fa, 0x1190, 0x2c68, 0x080c, 0x95a6, 0x0170, 0x2d00,
++      0x601a, 0x6312, 0x601f, 0x0001, 0x620a, 0x080c, 0xb077, 0x2009,
++      0x0022, 0x080c, 0x962c, 0xa085, 0x0001, 0x012e, 0x00de, 0x00ce,
++      0x0005, 0x00e6, 0x00c6, 0x0066, 0x0036, 0x0026, 0x080c, 0x7b3b,
++      0x080c, 0x7ad4, 0x080c, 0xa0a9, 0x2130, 0x81ff, 0x0128, 0x20a9,
+       0x007e, 0x2009, 0x0000, 0x0020, 0x20a9, 0x007f, 0x2009, 0x0000,
+-      0x0016, 0x080c, 0x533d, 0x1120, 0x080c, 0x553e, 0x080c, 0x4f47,
++      0x0016, 0x080c, 0x5356, 0x1120, 0x080c, 0x5557, 0x080c, 0x4f60,
+       0x001e, 0x8108, 0x1f04, 0x2e30, 0x86ff, 0x1110, 0x080c, 0x11f4,
+       0x002e, 0x003e, 0x006e, 0x00ce, 0x00ee, 0x0005, 0x00e6, 0x00c6,
+       0x0036, 0x0026, 0x0016, 0x6218, 0x2270, 0x72a0, 0x0026, 0x2019,
+-      0x0029, 0x080c, 0x7b16, 0x0076, 0x2039, 0x0000, 0x080c, 0x7a0e,
+-      0x2c08, 0x080c, 0xbeea, 0x007e, 0x001e, 0x2e60, 0x080c, 0x553e,
+-      0x6210, 0x6314, 0x080c, 0x4f47, 0x6212, 0x6316, 0x001e, 0x002e,
++      0x0029, 0x080c, 0x7b2f, 0x0076, 0x2039, 0x0000, 0x080c, 0x7a27,
++      0x2c08, 0x080c, 0xbf10, 0x007e, 0x001e, 0x2e60, 0x080c, 0x5557,
++      0x6210, 0x6314, 0x080c, 0x4f60, 0x6212, 0x6316, 0x001e, 0x002e,
+       0x003e, 0x00ce, 0x00ee, 0x0005, 0x00e6, 0x0006, 0x6018, 0xa080,
+       0x0028, 0x2004, 0xa086, 0x0080, 0x0150, 0x2071, 0xc600, 0x7098,
+       0xa005, 0x0110, 0x8001, 0x709a, 0x000e, 0x00ee, 0x0005, 0x2071,
+@@ -1037,20 +1038,20 @@ unsigned short risc_code01[] = { 
+       0xc08c, 0x6002, 0x0005, 0x00f6, 0x00e6, 0x00c6, 0x0036, 0x0026,
+       0x0016, 0x0156, 0x2178, 0x81ff, 0x1118, 0x20a9, 0x0001, 0x0098,
+       0x2001, 0xc653, 0x2004, 0xd0c4, 0x0150, 0xd0a4, 0x0140, 0xa006,
+-      0x0046, 0x2020, 0x2009, 0x002d, 0x080c, 0xc183, 0x004e, 0x20a9,
++      0x0046, 0x2020, 0x2009, 0x002d, 0x080c, 0xc1a9, 0x004e, 0x20a9,
+       0x00ff, 0x2011, 0x0000, 0x0026, 0xa28e, 0x007e, 0x0904, 0x2ef3,
+       0xa28e, 0x007f, 0x0904, 0x2ef3, 0xa28e, 0x0080, 0x05e0, 0xa288,
+       0xc77b, 0x210c, 0x81ff, 0x05b8, 0x8fff, 0x1148, 0x2001, 0xc905,
+       0x0006, 0x2003, 0x0001, 0x04d9, 0x000e, 0x2003, 0x0000, 0x00c6,
+-      0x2160, 0x2001, 0x0001, 0x080c, 0x5715, 0x00ce, 0x2019, 0x0029,
+-      0x080c, 0x7b16, 0x0076, 0x2039, 0x0000, 0x080c, 0x7a0e, 0x00c6,
++      0x2160, 0x2001, 0x0001, 0x080c, 0x572e, 0x00ce, 0x2019, 0x0029,
++      0x080c, 0x7b2f, 0x0076, 0x2039, 0x0000, 0x080c, 0x7a27, 0x00c6,
+       0x0026, 0x2160, 0x6204, 0xa294, 0x00ff, 0xa286, 0x0006, 0x1118,
+       0x6007, 0x0404, 0x0028, 0x2001, 0x0004, 0x8007, 0xa215, 0x6206,
+-      0x002e, 0x00ce, 0x0016, 0x2c08, 0x080c, 0xbeea, 0x001e, 0x007e,
+-      0x2160, 0x080c, 0x553e, 0x002e, 0x8210, 0x1f04, 0x2eab, 0x015e,
++      0x002e, 0x00ce, 0x0016, 0x2c08, 0x080c, 0xbf10, 0x001e, 0x007e,
++      0x2160, 0x080c, 0x5557, 0x002e, 0x8210, 0x1f04, 0x2eab, 0x015e,
+       0x001e, 0x002e, 0x003e, 0x00ce, 0x00ee, 0x00fe, 0x0005, 0x0046,
+       0x0026, 0x0016, 0x2001, 0xc653, 0x2004, 0xd0c4, 0x0148, 0xd0a4,
+-      0x0138, 0xa006, 0x2220, 0x8427, 0x2009, 0x0029, 0x080c, 0xc183,
++      0x0138, 0xa006, 0x2220, 0x8427, 0x2009, 0x0029, 0x080c, 0xc1a9,
+       0x001e, 0x002e, 0x004e, 0x0005, 0x0016, 0x0026, 0x0036, 0x00c6,
+       0x7288, 0x82ff, 0x01f8, 0x2011, 0xc653, 0x2214, 0xd2ac, 0x11d0,
+       0x2100, 0x080c, 0x29db, 0x81ff, 0x01b8, 0x2019, 0x0001, 0x8314,
+@@ -1058,10 +1059,10 @@ unsigned short risc_code01[] = { 
+       0x0010, 0xa084, 0x00ff, 0xa116, 0x0138, 0xa096, 0x00ff, 0x0110,
+       0x8318, 0x0c68, 0xa085, 0x0001, 0x00ce, 0x003e, 0x002e, 0x001e,
+       0x0005, 0x0016, 0x00c6, 0x0126, 0x2091, 0x8000, 0x0016, 0x0026,
+-      0x0036, 0x2110, 0x0026, 0x2019, 0x0029, 0x080c, 0x912b, 0x002e,
+-      0x080c, 0xc4d7, 0x003e, 0x002e, 0x001e, 0xa180, 0xc77b, 0x2004,
++      0x0036, 0x2110, 0x0026, 0x2019, 0x0029, 0x080c, 0x914b, 0x002e,
++      0x080c, 0xc4fd, 0x003e, 0x002e, 0x001e, 0xa180, 0xc77b, 0x2004,
+       0xa065, 0x0158, 0x0016, 0x00c6, 0x2061, 0xca3c, 0x001e, 0x611a,
+-      0x080c, 0x2e46, 0x001e, 0x080c, 0x5300, 0x012e, 0x00ce, 0x001e,
++      0x080c, 0x2e46, 0x001e, 0x080c, 0x5319, 0x012e, 0x00ce, 0x001e,
+       0x0005, 0x2001, 0xc635, 0x2004, 0xd0cc, 0x0005, 0x7eef, 0x7de8,
+       0x7ce4, 0x80e2, 0x7be1, 0x80e0, 0x80dc, 0x80da, 0x7ad9, 0x80d6,
+       0x80d5, 0x80d4, 0x80d3, 0x80d2, 0x80d1, 0x79ce, 0x78cd, 0x80cc,
+@@ -1116,89 +1117,89 @@ unsigned short risc_code01[] = { 
+       0x3170, 0x3170, 0x3170, 0x3170, 0x342c, 0x3170, 0x3170, 0x3170,
+       0x3170, 0x3170, 0x343e, 0x3448, 0x3170, 0x3170, 0x3170, 0x3170,
+       0x3170, 0x3170, 0x0002, 0x3472, 0x34c6, 0x3521, 0x353b, 0x3170,
+-      0x356c, 0x399f, 0x456f, 0x3170, 0x3170, 0x3170, 0x3170, 0x3170,
++      0x356c, 0x399f, 0x4588, 0x3170, 0x3170, 0x3170, 0x3170, 0x3170,
+       0x3170, 0x3170, 0x3170, 0x31b6, 0x31b9, 0x39a1, 0x3170, 0x39ae,
+-      0x4608, 0x4663, 0x46c7, 0x3170, 0x472a, 0x4754, 0x4773, 0x47a5,
++      0x4621, 0x467c, 0x46e0, 0x3170, 0x4743, 0x476d, 0x478c, 0x47be,
+       0x3170, 0x3170, 0x3170, 0x39b2, 0x3b57, 0x3b71, 0x3b8f, 0x3bf0,
+-      0x3c50, 0x3c5b, 0x3c93, 0x3ca2, 0x3cb1, 0x3cb4, 0x3cd7, 0x3d21,
+-      0x3d97, 0x3da4, 0x3ea5, 0x3fd4, 0x3ffd, 0x40fb, 0x411d, 0x4129,
+-      0x4162, 0x4232, 0x428c, 0x4352, 0x43a4, 0x4404, 0x4419, 0x4434,
+-      0x44a6, 0x4558, 0x713c, 0x0000, 0x2021, 0x4000, 0x080c, 0x405a,
++      0x3c50, 0x3c5b, 0x3c93, 0x3ca2, 0x3cb1, 0x3cb4, 0x3cd7, 0x3d23,
++      0x3d99, 0x3da6, 0x3ea7, 0x3fed, 0x4016, 0x4114, 0x4136, 0x4142,
++      0x417b, 0x424b, 0x42a5, 0x436b, 0x43bd, 0x441d, 0x4432, 0x444d,
++      0x44bf, 0x4571, 0x713c, 0x0000, 0x2021, 0x4000, 0x080c, 0x4073,
+       0x0126, 0x2091, 0x8000, 0x0e04, 0x3160, 0x7818, 0xd084, 0x0110,
+       0x012e, 0x0cb0, 0x7c22, 0x7926, 0x7a2a, 0x7b2e, 0x781b, 0x0001,
+       0x2091, 0x4080, 0x7007, 0x0001, 0x2091, 0x5000, 0x012e, 0x0005,
+       0x2021, 0x4001, 0x0c18, 0x2021, 0x4002, 0x0c00, 0x2021, 0x4003,
+       0x08e8, 0x2021, 0x4005, 0x08d0, 0x2021, 0x4006, 0x08b8, 0xa02e,
+-      0x2520, 0x7b28, 0x7a2c, 0x7824, 0x7930, 0x0804, 0x4067, 0x7823,
++      0x2520, 0x7b28, 0x7a2c, 0x7824, 0x7930, 0x0804, 0x4080, 0x7823,
+       0x0004, 0x7824, 0x0807, 0xa02e, 0x2520, 0x7b28, 0x7a2c, 0x7824,
+-      0x7930, 0x0804, 0x406a, 0x7924, 0x7828, 0x2114, 0x200a, 0x0804,
++      0x7930, 0x0804, 0x4083, 0x7924, 0x7828, 0x2114, 0x200a, 0x0804,
+       0x3154, 0x7924, 0x2114, 0x0804, 0x3154, 0x2099, 0x0009, 0x20a1,
+       0x0009, 0x20a9, 0x0007, 0x53a3, 0x7924, 0x7a28, 0x7b2c, 0x0804,
+       0x3154, 0x7824, 0x2060, 0x0090, 0x2009, 0x0002, 0x2011, 0x0002,
+-      0x2019, 0x0004, 0x783b, 0x0037, 0x0804, 0x3154, 0x7d38, 0x7c3c,
++      0x2019, 0x0006, 0x783b, 0x0037, 0x0804, 0x3154, 0x7d38, 0x7c3c,
+       0x0840, 0x7d38, 0x7c3c, 0x0888, 0x2061, 0x1000, 0xe10c, 0xa006,
+       0x2c15, 0xa200, 0x8c60, 0x8109, 0x1dd8, 0x2010, 0xa005, 0x0904,
+       0x3154, 0x0804, 0x3176, 0x2069, 0xc652, 0x7824, 0x7930, 0xa11a,
+       0x1a04, 0x317c, 0x8019, 0x0904, 0x317c, 0x684a, 0x6942, 0x782c,
+-      0x6852, 0x7828, 0x6856, 0xa006, 0x685a, 0x685e, 0x080c, 0x61f8,
++      0x6852, 0x7828, 0x6856, 0xa006, 0x685a, 0x685e, 0x080c, 0x6211,
+       0x0804, 0x3154, 0x2069, 0xc652, 0x7824, 0x7934, 0xa11a, 0x1a04,
+       0x317c, 0x8019, 0x0904, 0x317c, 0x684e, 0x6946, 0x782c, 0x6862,
+-      0x7828, 0x6866, 0xa006, 0x686a, 0x686e, 0x080c, 0x57d7, 0x0804,
++      0x7828, 0x6866, 0xa006, 0x686a, 0x686e, 0x080c, 0x57f0, 0x0804,
+       0x3154, 0xa02e, 0x2520, 0x81ff, 0x1904, 0x3179, 0x7924, 0x7b28,
+-      0x7a2c, 0x20a9, 0x0005, 0x20a1, 0xc6a9, 0x41a1, 0x080c, 0x4026,
+-      0x0904, 0x3179, 0x2009, 0x0020, 0x080c, 0x4067, 0x701b, 0x3211,
++      0x7a2c, 0x20a9, 0x0005, 0x20a1, 0xc6a9, 0x41a1, 0x080c, 0x403f,
++      0x0904, 0x3179, 0x2009, 0x0020, 0x080c, 0x4080, 0x701b, 0x3211,
+       0x0005, 0x6834, 0x2008, 0xa084, 0x00ff, 0xa096, 0x0011, 0x0138,
+       0xa096, 0x0019, 0x0120, 0xa096, 0x0015, 0x1904, 0x3179, 0x810f,
+       0xa18c, 0x00ff, 0x0904, 0x3179, 0x710e, 0x700c, 0x8001, 0x0528,
+-      0x700e, 0x080c, 0x4026, 0x0904, 0x3179, 0x2009, 0x0020, 0x2061,
++      0x700e, 0x080c, 0x403f, 0x0904, 0x3179, 0x2009, 0x0020, 0x2061,
+       0xc6f2, 0x6224, 0x6328, 0x642c, 0x6530, 0xa290, 0x0040, 0xa399,
+-      0x0000, 0xa4a1, 0x0000, 0xa5a9, 0x0000, 0x080c, 0x4067, 0x701b,
++      0x0000, 0xa4a1, 0x0000, 0xa5a9, 0x0000, 0x080c, 0x4080, 0x701b,
+       0x3242, 0x0005, 0x6834, 0xa084, 0x00ff, 0xa096, 0x0002, 0x0120,
+       0xa096, 0x000a, 0x1904, 0x3179, 0x08c0, 0x7010, 0x2068, 0x6838,
+-      0xc0fd, 0x683a, 0x080c, 0x51dd, 0x1128, 0x7007, 0x0003, 0x701b,
+-      0x325c, 0x0005, 0x080c, 0x592e, 0x0126, 0x2091, 0x8000, 0x20a9,
++      0xc0fd, 0x683a, 0x080c, 0x51f6, 0x1128, 0x7007, 0x0003, 0x701b,
++      0x325c, 0x0005, 0x080c, 0x5947, 0x0126, 0x2091, 0x8000, 0x20a9,
+       0x0005, 0x2099, 0xc6a9, 0x530a, 0x2100, 0xa210, 0xa399, 0x0000,
+       0xa4a1, 0x0000, 0xa5a9, 0x0000, 0xad80, 0x000d, 0x2009, 0x0020,
+-      0x012e, 0x0804, 0x406a, 0x61ac, 0x7824, 0x60ae, 0x0804, 0x3154,
++      0x012e, 0x0804, 0x4083, 0x61ac, 0x7824, 0x60ae, 0x0804, 0x3154,
+       0x2091, 0x8000, 0x7823, 0x4000, 0x7827, 0x4953, 0x782b, 0x5020,
+       0x782f, 0x2020, 0x2009, 0x017f, 0x2104, 0x7832, 0x3f00, 0x7836,
+       0x2061, 0x0100, 0x6200, 0x2061, 0x0200, 0x603c, 0x8007, 0xa205,
+       0x783a, 0x2009, 0x04fd, 0x2104, 0x783e, 0x781b, 0x0001, 0x2091,
+       0x5000, 0x2091, 0x4080, 0x2071, 0x0010, 0x20c1, 0x00f0, 0x0804,
+       0x0427, 0x81ff, 0x1904, 0x3179, 0x7924, 0x810f, 0xa18c, 0x00ff,
+-      0x080c, 0x533d, 0x1904, 0x317c, 0x7e38, 0xa684, 0x3fff, 0xa082,
+-      0x4000, 0x0210, 0x0804, 0x317c, 0x7c28, 0x7d2c, 0x080c, 0x5505,
+-      0xd28c, 0x1118, 0x080c, 0x54ae, 0x0010, 0x080c, 0x54de, 0x1518,
++      0x080c, 0x5356, 0x1904, 0x317c, 0x7e38, 0xa684, 0x3fff, 0xa082,
++      0x4000, 0x0210, 0x0804, 0x317c, 0x7c28, 0x7d2c, 0x080c, 0x551e,
++      0xd28c, 0x1118, 0x080c, 0x54c7, 0x0010, 0x080c, 0x54f7, 0x1518,
+       0x2061, 0xce00, 0x0126, 0x2091, 0x8000, 0x6000, 0xa086, 0x0000,
+       0x0148, 0x6010, 0xa06d, 0x0130, 0x683c, 0xa406, 0x1118, 0x6840,
+       0xa506, 0x0150, 0x012e, 0xace0, 0x0018, 0x2001, 0xc617, 0x2004,
+-      0xac02, 0x1a04, 0x3179, 0x0c30, 0x080c, 0xa95a, 0x012e, 0x0904,
+-      0x3179, 0x0804, 0x3154, 0xa00e, 0x2001, 0x0005, 0x080c, 0x592e,
+-      0x0126, 0x2091, 0x8000, 0x080c, 0xaf02, 0x080c, 0x580a, 0x012e,
+-      0x0804, 0x3154, 0x81ff, 0x1904, 0x3179, 0x080c, 0x403b, 0x0904,
+-      0x317c, 0x080c, 0x5403, 0x0904, 0x3179, 0x080c, 0x5511, 0x0904,
+-      0x3179, 0x0804, 0x3154, 0x81ff, 0x1904, 0x3179, 0x080c, 0x404b,
+-      0x0904, 0x317c, 0x080c, 0x557d, 0x0904, 0x3179, 0x2019, 0x0005,
+-      0x7924, 0x080c, 0x552c, 0x0904, 0x3179, 0x7828, 0xa08a, 0x1000,
+-      0x1a04, 0x317c, 0x8003, 0x800b, 0x810b, 0xa108, 0x080c, 0x6fb9,
++      0xac02, 0x1a04, 0x3179, 0x0c30, 0x080c, 0xa97a, 0x012e, 0x0904,
++      0x3179, 0x0804, 0x3154, 0xa00e, 0x2001, 0x0005, 0x080c, 0x5947,
++      0x0126, 0x2091, 0x8000, 0x080c, 0xaf22, 0x080c, 0x5823, 0x012e,
++      0x0804, 0x3154, 0x81ff, 0x1904, 0x3179, 0x080c, 0x4054, 0x0904,
++      0x317c, 0x080c, 0x541c, 0x0904, 0x3179, 0x080c, 0x552a, 0x0904,
++      0x3179, 0x0804, 0x3154, 0x81ff, 0x1904, 0x3179, 0x080c, 0x4064,
++      0x0904, 0x317c, 0x080c, 0x5596, 0x0904, 0x3179, 0x2019, 0x0005,
++      0x7924, 0x080c, 0x5545, 0x0904, 0x3179, 0x7828, 0xa08a, 0x1000,
++      0x1a04, 0x317c, 0x8003, 0x800b, 0x810b, 0xa108, 0x080c, 0x6fd2,
+       0x0804, 0x3154, 0x0126, 0x2091, 0x8000, 0x81ff, 0x0118, 0x2009,
+       0x0001, 0x0450, 0x2029, 0x00ff, 0x6450, 0x2400, 0xa506, 0x01f8,
+-      0x2508, 0x080c, 0x533d, 0x11d8, 0x080c, 0x557d, 0x1128, 0x2009,
++      0x2508, 0x080c, 0x5356, 0x11d8, 0x080c, 0x5596, 0x1128, 0x2009,
+       0x0002, 0x62b4, 0x2518, 0x00c0, 0x2019, 0x0004, 0xa00e, 0x080c,
+-      0x552c, 0x1118, 0x2009, 0x0006, 0x0078, 0x7824, 0xa08a, 0x1000,
+-      0x1270, 0x8003, 0x800b, 0x810b, 0xa108, 0x080c, 0x6fb9, 0x8529,
++      0x5545, 0x1118, 0x2009, 0x0006, 0x0078, 0x7824, 0xa08a, 0x1000,
++      0x1270, 0x8003, 0x800b, 0x810b, 0xa108, 0x080c, 0x6fd2, 0x8529,
+       0x1ae0, 0x012e, 0x0804, 0x3154, 0x012e, 0x0804, 0x3179, 0x012e,
+-      0x0804, 0x317c, 0x080c, 0x403b, 0x0904, 0x317c, 0x080c, 0x5469,
+-      0x080c, 0x5505, 0x0804, 0x3154, 0x81ff, 0x1904, 0x3179, 0x080c,
+-      0x403b, 0x0904, 0x317c, 0x080c, 0x545a, 0x080c, 0x5505, 0x0804,
+-      0x3154, 0x81ff, 0x1904, 0x3179, 0x080c, 0x403b, 0x0904, 0x317c,
+-      0x080c, 0x54e0, 0x0904, 0x3179, 0x080c, 0x5221, 0x080c, 0x54a7,
+-      0x080c, 0x5505, 0x0804, 0x3154, 0x080c, 0x403b, 0x0904, 0x317c,
+-      0x080c, 0x5403, 0x0904, 0x3179, 0x62a0, 0x2019, 0x0005, 0x00c6,
+-      0x080c, 0x553e, 0x2061, 0x0000, 0x080c, 0x7b16, 0x0076, 0x2039,
+-      0x0000, 0x080c, 0x7a0e, 0x2009, 0x0000, 0x080c, 0xbeea, 0x007e,
+-      0x00ce, 0x080c, 0x5505, 0x0804, 0x3154, 0x080c, 0x403b, 0x0904,
+-      0x317c, 0x080c, 0x5505, 0x2208, 0x0804, 0x3154, 0x0156, 0x00d6,
++      0x0804, 0x317c, 0x080c, 0x4054, 0x0904, 0x317c, 0x080c, 0x5482,
++      0x080c, 0x551e, 0x0804, 0x3154, 0x81ff, 0x1904, 0x3179, 0x080c,
++      0x4054, 0x0904, 0x317c, 0x080c, 0x5473, 0x080c, 0x551e, 0x0804,
++      0x3154, 0x81ff, 0x1904, 0x3179, 0x080c, 0x4054, 0x0904, 0x317c,
++      0x080c, 0x54f9, 0x0904, 0x3179, 0x080c, 0x523a, 0x080c, 0x54c0,
++      0x080c, 0x551e, 0x0804, 0x3154, 0x080c, 0x4054, 0x0904, 0x317c,
++      0x080c, 0x541c, 0x0904, 0x3179, 0x62a0, 0x2019, 0x0005, 0x00c6,
++      0x080c, 0x5557, 0x2061, 0x0000, 0x080c, 0x7b2f, 0x0076, 0x2039,
++      0x0000, 0x080c, 0x7a27, 0x2009, 0x0000, 0x080c, 0xbf10, 0x007e,
++      0x00ce, 0x080c, 0x551e, 0x0804, 0x3154, 0x080c, 0x4054, 0x0904,
++      0x317c, 0x080c, 0x551e, 0x2208, 0x0804, 0x3154, 0x0156, 0x00d6,
+       0x00e6, 0x2069, 0xc734, 0x6810, 0x6914, 0xa10a, 0x1210, 0x2009,
+       0x0000, 0x6816, 0x2011, 0x0000, 0x2019, 0x0000, 0x20a9, 0x007e,
+       0x2069, 0xc77b, 0x2d04, 0xa075, 0x0130, 0x704c, 0x0071, 0xa210,
+@@ -1210,50 +1211,50 @@ unsigned short risc_code01[] = { 
+       0x2215, 0xa294, 0x00ff, 0x6370, 0x83ff, 0x0108, 0x6274, 0x67d4,
+       0xd79c, 0x0118, 0x2031, 0x0001, 0x0090, 0xd7ac, 0x0118, 0x2031,
+       0x0003, 0x0068, 0xd7a4, 0x0118, 0x2031, 0x0002, 0x0040, 0x080c,
+-      0x5f22, 0x1118, 0x2031, 0x0004, 0x0010, 0x2031, 0x0000, 0x7e3a,
++      0x5f3b, 0x1118, 0x2031, 0x0004, 0x0010, 0x2031, 0x0000, 0x7e3a,
+       0x7f3e, 0x0804, 0x3154, 0x6140, 0x6244, 0x2019, 0xc8fd, 0x231c,
+       0x0804, 0x3154, 0x0126, 0x2091, 0x8000, 0x6134, 0xa006, 0x2010,
+-      0x6338, 0x012e, 0x0804, 0x3154, 0x080c, 0x404b, 0x0904, 0x317c,
++      0x6338, 0x012e, 0x0804, 0x3154, 0x080c, 0x4064, 0x0904, 0x317c,
+       0x6244, 0x6338, 0x0804, 0x3154, 0x6140, 0x6244, 0x7824, 0x6042,
+       0x7b28, 0x6346, 0x2069, 0xc652, 0x831f, 0xa305, 0x6816, 0x782c,
+       0x2069, 0xc8fd, 0x2d1c, 0x206a, 0x0804, 0x3154, 0x0126, 0x2091,
+       0x8000, 0x7824, 0x6036, 0x782c, 0x603a, 0x012e, 0x0804, 0x3154,
+       0x7838, 0xa005, 0x01a8, 0x7828, 0xa025, 0x0904, 0x317c, 0x782c,
+-      0xa02d, 0x0904, 0x317c, 0xa00e, 0x080c, 0x533d, 0x1120, 0x6244,
++      0xa02d, 0x0904, 0x317c, 0xa00e, 0x080c, 0x5356, 0x1120, 0x6244,
+       0x6338, 0x6446, 0x653a, 0xa186, 0x00ff, 0x0190, 0x8108, 0x0ca0,
+-      0x080c, 0x404b, 0x0904, 0x317c, 0x7828, 0xa00d, 0x0904, 0x317c,
++      0x080c, 0x4064, 0x0904, 0x317c, 0x7828, 0xa00d, 0x0904, 0x317c,
+       0x782c, 0xa005, 0x0904, 0x317c, 0x6244, 0x6146, 0x6338, 0x603a,
+       0x0804, 0x3154, 0x2001, 0xc600, 0x2004, 0xa086, 0x0003, 0x1904,
+       0x3179, 0x00c6, 0x2061, 0x0100, 0x7924, 0x810f, 0xa18c, 0x00ff,
+       0xa196, 0x00ff, 0x1130, 0x2001, 0xc615, 0x2004, 0xa085, 0xff00,
+       0x0078, 0xa182, 0x007f, 0x16a0, 0xa188, 0x2f6e, 0x210d, 0xa18c,
+       0x00ff, 0x2001, 0xc615, 0x2004, 0xa116, 0x0550, 0x810f, 0xa105,
+-      0x0126, 0x2091, 0x8000, 0x0006, 0x080c, 0x9586, 0x000e, 0x01e0,
+-      0x601a, 0x600b, 0xbc09, 0x601f, 0x0001, 0x080c, 0x4026, 0x01d8,
++      0x0126, 0x2091, 0x8000, 0x0006, 0x080c, 0x95a6, 0x000e, 0x01e0,
++      0x601a, 0x600b, 0xbc09, 0x601f, 0x0001, 0x080c, 0x403f, 0x01d8,
+       0x6837, 0x0000, 0x7007, 0x0003, 0x6833, 0x0000, 0x6838, 0xc0fd,
+       0x683a, 0x701b, 0x351a, 0x2d00, 0x6012, 0x2009, 0x0032, 0x080c,
+-      0x960c, 0x012e, 0x00ce, 0x0005, 0x012e, 0x00ce, 0x0804, 0x3179,
+-      0x00ce, 0x0804, 0x317c, 0x080c, 0x95dc, 0x0cb0, 0x2001, 0xc600,
++      0x962c, 0x012e, 0x00ce, 0x0005, 0x012e, 0x00ce, 0x0804, 0x3179,
++      0x00ce, 0x0804, 0x317c, 0x080c, 0x95fc, 0x0cb0, 0x2001, 0xc600,
+       0x2004, 0xa086, 0x0003, 0x1904, 0x3179, 0x00c6, 0x2061, 0x0100,
+       0x7924, 0x810f, 0xa18c, 0x00ff, 0xa196, 0x00ff, 0x1130, 0x2001,
+       0xc615, 0x2004, 0xa085, 0xff00, 0x0078, 0xa182, 0x007f, 0x16a0,
+       0xa188, 0x2f6e, 0x210d, 0xa18c, 0x00ff, 0x2001, 0xc615, 0x2004,
+       0xa116, 0x0550, 0x810f, 0xa105, 0x0126, 0x2091, 0x8000, 0x0006,
+-      0x080c, 0x9586, 0x000e, 0x01e0, 0x601a, 0x600b, 0xbc05, 0x601f,
+-      0x0001, 0x080c, 0x4026, 0x01d8, 0x6837, 0x0000, 0x7007, 0x0003,
++      0x080c, 0x95a6, 0x000e, 0x01e0, 0x601a, 0x600b, 0xbc05, 0x601f,
++      0x0001, 0x080c, 0x403f, 0x01d8, 0x6837, 0x0000, 0x7007, 0x0003,
+       0x6833, 0x0000, 0x6838, 0xc0fd, 0x683a, 0x701b, 0x351a, 0x2d00,
+-      0x6012, 0x2009, 0x0032, 0x080c, 0x960c, 0x012e, 0x00ce, 0x0005,
++      0x6012, 0x2009, 0x0032, 0x080c, 0x962c, 0x012e, 0x00ce, 0x0005,
+       0x012e, 0x00ce, 0x0804, 0x3179, 0x00ce, 0x0804, 0x317c, 0x080c,
+-      0x95dc, 0x0cb0, 0x6830, 0xa086, 0x0100, 0x0904, 0x3179, 0x0804,
++      0x95fc, 0x0cb0, 0x6830, 0xa086, 0x0100, 0x0904, 0x3179, 0x0804,
+       0x3154, 0x2061, 0xc9bc, 0x0126, 0x2091, 0x8000, 0x6000, 0xd084,
+       0x0178, 0x6104, 0x6208, 0x2a60, 0x6068, 0x783a, 0x60b4, 0x783e,
+       0x60b0, 0x2019, 0x0072, 0x201a, 0x6348, 0x012e, 0x0804, 0x3154,
+-      0xa00e, 0x2110, 0x0c80, 0x81ff, 0x1904, 0x3179, 0x080c, 0x5f22,
++      0xa00e, 0x2110, 0x0c80, 0x81ff, 0x1904, 0x3179, 0x080c, 0x5f3b,
+       0x0904, 0x3179, 0x0126, 0x2091, 0x8000, 0x6248, 0x6068, 0xa202,
+-      0x0248, 0xa085, 0x0001, 0x080c, 0x2a11, 0x080c, 0x4968, 0x012e,
++      0x0248, 0xa085, 0x0001, 0x080c, 0x2a11, 0x080c, 0x4981, 0x012e,
+       0x0804, 0x3154, 0x012e, 0x0804, 0x317c, 0x0006, 0x0016, 0x00c6,
+       0x00e6, 0x2001, 0xc906, 0x2070, 0x2061, 0xc652, 0x6008, 0x2072,
+-      0x2009, 0x0000, 0x2011, 0x1000, 0x080c, 0x783f, 0x7206, 0x00ee,
++      0x2009, 0x0000, 0x2011, 0x1000, 0x080c, 0x7858, 0x7206, 0x00ee,
+       0x00ce, 0x001e, 0x000e, 0x0005, 0x0126, 0x2091, 0x8000, 0x7824,
+       0xa084, 0x0007, 0x0002, 0x357e, 0x3587, 0x358e, 0x357b, 0x357b,
+       0x357b, 0x357b, 0x357b, 0x012e, 0x0804, 0x317c, 0x2009, 0x0114,
+@@ -1362,10 +1363,10 @@ unsigned short risc_code01[] = { 
+       0x601a, 0x2061, 0x0100, 0x2001, 0xc906, 0x2004, 0x60ce, 0x6004,
+       0xc0ac, 0xa085, 0x0200, 0x6006, 0x2001, 0x0074, 0x2004, 0xa005,
+       0x01f8, 0x2038, 0x2001, 0x0076, 0x2024, 0x2001, 0x0077, 0x201c,
+-      0x080c, 0x4026, 0x6833, 0x000d, 0x6f26, 0x2d00, 0x681a, 0xa78a,
++      0x080c, 0x403f, 0x6833, 0x000d, 0x6f26, 0x2d00, 0x681a, 0xa78a,
+       0x0007, 0x0220, 0x2138, 0x2009, 0x0007, 0x0010, 0x2708, 0xa03e,
+       0x6818, 0xa080, 0x000d, 0x04b1, 0x1d90, 0x2d00, 0x681a, 0x0088,
+-      0x080c, 0x4026, 0x6833, 0x000d, 0x2070, 0x6827, 0x0001, 0x2d00,
++      0x080c, 0x403f, 0x6833, 0x000d, 0x2070, 0x6827, 0x0001, 0x2d00,
+       0x681a, 0x2001, 0x0076, 0x2004, 0x2072, 0x2001, 0x0077, 0x2004,
+       0x7006, 0x2061, 0x0020, 0x2079, 0x0100, 0x2001, 0xc906, 0x2004,
+       0x6012, 0x20e1, 0x9040, 0x2001, 0x0072, 0x2004, 0xa084, 0xfff8,
+@@ -1375,14 +1376,14 @@ unsigned short risc_code01[] = { 
+       0x7003, 0x0026, 0x7432, 0x7336, 0xa006, 0x703a, 0x703e, 0x810b,
+       0x810b, 0x21a8, 0x810b, 0x7122, 0x7003, 0x0041, 0x7004, 0xd0fc,
+       0x0de8, 0x7003, 0x0002, 0x7003, 0x0040, 0x53a5, 0x7430, 0x7334,
+-      0x87ff, 0x0180, 0x00c6, 0x00d6, 0x2d60, 0x00c6, 0x080c, 0x4026,
++      0x87ff, 0x0180, 0x00c6, 0x00d6, 0x2d60, 0x00c6, 0x080c, 0x403f,
+       0x00ce, 0x6018, 0x2070, 0x2d00, 0x7006, 0x601a, 0x00de, 0x00ce,
+       0xa085, 0x0001, 0x00ee, 0x0005, 0x00e6, 0x2001, 0x0075, 0x2004,
+       0xa005, 0x0508, 0x2038, 0x2001, 0x0078, 0x2024, 0x2001, 0x0079,
+-      0x201c, 0x080c, 0x4026, 0x2d60, 0x6833, 0x000d, 0x6f26, 0x2d00,
++      0x201c, 0x080c, 0x403f, 0x2d60, 0x6833, 0x000d, 0x6f26, 0x2d00,
+       0x681a, 0xa78a, 0x0007, 0x0220, 0x2138, 0x2009, 0x0007, 0x0010,
+       0x2708, 0xa03e, 0x6818, 0xa080, 0x000d, 0x080c, 0x3912, 0x1d88,
+-      0x2d00, 0x681a, 0x00e0, 0x080c, 0x4026, 0x2d60, 0x6033, 0x000d,
++      0x2d00, 0x681a, 0x00e0, 0x080c, 0x403f, 0x2d60, 0x6033, 0x000d,
+       0x2070, 0x6027, 0x0001, 0x2c00, 0x601a, 0x2001, 0x0078, 0x2004,
+       0x2072, 0x2001, 0x0079, 0x2004, 0x7006, 0x2001, 0x0072, 0x2004,
+       0xa084, 0xfff8, 0x700a, 0x2001, 0x0073, 0x2004, 0x700e, 0x2001,
+@@ -1391,9 +1392,9 @@ unsigned short risc_code01[] = { 
+       0x0003, 0x2001, 0x0030, 0x2003, 0x0009, 0x00ee, 0x0005, 0x0804,
+       0x3154, 0x0126, 0x2091, 0x8000, 0x20a9, 0x0012, 0x2001, 0xc640,
+       0x20a0, 0xa006, 0x40a4, 0x012e, 0x0804, 0x3154, 0x7d38, 0x7c3c,
+-      0x0804, 0x31fb, 0x080c, 0x4026, 0x0904, 0x3179, 0x080c, 0x5f22,
+-      0x0110, 0x080c, 0x4f2c, 0x2009, 0x001c, 0x7a2c, 0x7b28, 0x7c3c,
+-      0x7d38, 0x080c, 0x4067, 0x701b, 0x39c6, 0x0005, 0xade8, 0x000d,
++      0x0804, 0x31fb, 0x080c, 0x403f, 0x0904, 0x3179, 0x080c, 0x5f3b,
++      0x0110, 0x080c, 0x4f45, 0x2009, 0x001c, 0x7a2c, 0x7b28, 0x7c3c,
++      0x7d38, 0x080c, 0x4080, 0x701b, 0x39c6, 0x0005, 0xade8, 0x000d,
+       0x6800, 0xa005, 0x0904, 0x317c, 0x6804, 0xd0ac, 0x0118, 0xd0a4,
+       0x0904, 0x317c, 0xd094, 0x00c6, 0x2061, 0x0100, 0x6104, 0x0138,
+       0x6200, 0xa292, 0x0005, 0x0218, 0xa18c, 0xffdf, 0x0010, 0xa18d,
+@@ -1407,9 +1408,9 @@ unsigned short risc_code01[] = { 
+       0x680c, 0xa005, 0x0904, 0x317c, 0x6810, 0xa005, 0x0904, 0x317c,
+       0x6848, 0x6940, 0xa10a, 0x1a04, 0x317c, 0x8001, 0x0904, 0x317c,
+       0x684c, 0x6944, 0xa10a, 0x1a04, 0x317c, 0x8001, 0x0904, 0x317c,
+-      0x6804, 0xd0fc, 0x0560, 0x080c, 0x4026, 0x0904, 0x3179, 0x2009,
++      0x6804, 0xd0fc, 0x0560, 0x080c, 0x403f, 0x0904, 0x3179, 0x2009,
+       0x0014, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0xa290, 0x0038, 0xa399,
+-      0x0000, 0x080c, 0x4067, 0x701b, 0x3a46, 0x0005, 0xade8, 0x000d,
++      0x0000, 0x080c, 0x4080, 0x701b, 0x3a46, 0x0005, 0xade8, 0x000d,
+       0x20a9, 0x0014, 0x2d98, 0x2069, 0xc66e, 0x2da0, 0x53a3, 0x7010,
+       0xa0e8, 0x000d, 0x2001, 0xc672, 0x200c, 0xd1e4, 0x0140, 0x00c6,
+       0x2061, 0x0100, 0x6004, 0xa085, 0x0b00, 0x6006, 0x00ce, 0x2009,
+@@ -1417,7 +1418,7 @@ unsigned short risc_code01[] = { 
+       0x7824, 0x200a, 0x2009, 0x017f, 0x200a, 0x3200, 0xa084, 0x003f,
+       0xa085, 0x3020, 0x2090, 0x20a9, 0x001c, 0x2d98, 0x2069, 0xc652,
+       0x2da0, 0x53a3, 0x6814, 0xa08c, 0x00ff, 0x6142, 0x8007, 0xa084,
+-      0x00ff, 0x6046, 0x080c, 0x61f8, 0x080c, 0x576e, 0x080c, 0x57d7,
++      0x00ff, 0x6046, 0x080c, 0x6211, 0x080c, 0x5787, 0x080c, 0x57f0,
+       0x6000, 0xa086, 0x0000, 0x1904, 0x3b41, 0x6808, 0x602a, 0x080c,
+       0x25bb, 0x0006, 0x2001, 0x0100, 0x2004, 0xa082, 0x0005, 0x000e,
+       0x0268, 0x2009, 0x0170, 0x200b, 0x0080, 0xe000, 0xe000, 0x200b,
+@@ -1426,2759 +1427,2763 @@ unsigned short risc_code01[] = { 
+       0x621e, 0x6322, 0x6c04, 0xd4f4, 0x0148, 0x6830, 0x6934, 0x6a38,
+       0x6b3c, 0x8007, 0x810f, 0x8217, 0x831f, 0x0010, 0xa084, 0xf0ff,
+       0x6006, 0x610a, 0x620e, 0x6312, 0x8007, 0x810f, 0x8217, 0x831f,
+-      0x20a9, 0x0004, 0x20a1, 0xc90d, 0x40a1, 0x080c, 0x707c, 0x6904,
++      0x20a9, 0x0004, 0x20a1, 0xc90d, 0x40a1, 0x080c, 0x7095, 0x6904,
+       0xd1fc, 0x0520, 0x00c6, 0x2009, 0x0000, 0x20a9, 0x0001, 0x6b70,
+       0xd384, 0x01c8, 0x0020, 0x839d, 0x12b0, 0x3508, 0x8109, 0x080c,
+-      0x67ed, 0x6878, 0x6016, 0x6874, 0x2008, 0xa084, 0xff00, 0x8007,
++      0x6806, 0x6878, 0x6016, 0x6874, 0x2008, 0xa084, 0xff00, 0x8007,
+       0x600a, 0xa184, 0x00ff, 0x6006, 0x8108, 0x1118, 0x6003, 0x0003,
+       0x0010, 0x6003, 0x0001, 0x1f04, 0x3adb, 0x00ce, 0x2069, 0xc652,
+       0x2001, 0xc8e5, 0x6a80, 0xa294, 0x0030, 0xa28e, 0x0000, 0x0170,
+       0xa28e, 0x0010, 0x0118, 0xa28e, 0x0020, 0x0140, 0x2003, 0xaaaa,
+       0x080c, 0x2a95, 0x2001, 0xc8d6, 0x2102, 0x0008, 0x2102, 0x00c6,
+       0x2061, 0x0100, 0x602f, 0x0040, 0x602f, 0x0000, 0x00ce, 0x080c,
+-      0x5f22, 0x0128, 0x080c, 0x440b, 0x0110, 0x080c, 0x2a11, 0x60c8,
++      0x5f3b, 0x0128, 0x080c, 0x4424, 0x0110, 0x080c, 0x2a11, 0x60c8,
+       0xa005, 0x01d0, 0x6003, 0x0001, 0x2009, 0x3b27, 0x00e0, 0x080c,
+-      0x5f22, 0x1178, 0x2011, 0x5df5, 0x080c, 0x6fad, 0x2011, 0x5de8,
+-      0x080c, 0x7070, 0x2001, 0xc8e6, 0x2003, 0x0000, 0x080c, 0x5e5a,
+-      0x0040, 0x080c, 0x4e5b, 0x0028, 0x6003, 0x0004, 0x2009, 0x3b41,
++      0x5f3b, 0x1178, 0x2011, 0x5e0e, 0x080c, 0x6fc6, 0x2011, 0x5e01,
++      0x080c, 0x7089, 0x2001, 0xc8e6, 0x2003, 0x0000, 0x080c, 0x5e73,
++      0x0040, 0x080c, 0x4e74, 0x0028, 0x6003, 0x0004, 0x2009, 0x3b41,
+       0x0010, 0x0804, 0x3154, 0x2001, 0x0100, 0x2004, 0xa082, 0x0005,
+       0x0258, 0x2001, 0x0170, 0x2004, 0xa084, 0x00ff, 0xa086, 0x004c,
+       0x1118, 0x2091, 0x309d, 0x0817, 0x2091, 0x301d, 0x0817, 0x6000,
+       0xa086, 0x0000, 0x0904, 0x3179, 0x2069, 0xc652, 0x7830, 0x6842,
+       0x7834, 0x6846, 0x6804, 0xd0fc, 0x0118, 0x2009, 0x0030, 0x0010,
+       0x2009, 0x001c, 0x2d00, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x0804,
+-      0x406a, 0xa006, 0x080c, 0x2a11, 0x81ff, 0x1904, 0x3179, 0x080c,
+-      0x5f22, 0x1178, 0x2001, 0xc8e6, 0x2003, 0x0001, 0x2001, 0xc600,
+-      0x2003, 0x0001, 0xa085, 0x0001, 0x080c, 0x5f66, 0x080c, 0x5e5a,
+-      0x0020, 0x080c, 0x4f2c, 0x080c, 0x4e5b, 0x0804, 0x3154, 0x81ff,
+-      0x1904, 0x3179, 0x080c, 0x5f22, 0x1110, 0x0804, 0x3179, 0x6188,
++      0x4083, 0xa006, 0x080c, 0x2a11, 0x81ff, 0x1904, 0x3179, 0x080c,
++      0x5f3b, 0x1178, 0x2001, 0xc8e6, 0x2003, 0x0001, 0x2001, 0xc600,
++      0x2003, 0x0001, 0xa085, 0x0001, 0x080c, 0x5f7f, 0x080c, 0x5e73,
++      0x0020, 0x080c, 0x4f45, 0x080c, 0x4e74, 0x0804, 0x3154, 0x81ff,
++      0x1904, 0x3179, 0x080c, 0x5f3b, 0x1110, 0x0804, 0x3179, 0x6188,
+       0x81ff, 0x0198, 0x703f, 0x0000, 0x2001, 0xcdc0, 0x2009, 0x0040,
+       0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x0126, 0x2091, 0x8000, 0x080c,
+-      0x406a, 0x701b, 0x3152, 0x012e, 0x0005, 0x703f, 0x0001, 0x00d6,
++      0x4083, 0x701b, 0x3152, 0x012e, 0x0005, 0x703f, 0x0001, 0x00d6,
+       0x2069, 0xcdc0, 0x20a9, 0x0040, 0x20a1, 0xcdc0, 0x2019, 0xffff,
+       0x43a4, 0x6550, 0xa588, 0x2f6e, 0x210d, 0xa18c, 0x00ff, 0x216a,
+-      0xa00e, 0x2011, 0x0002, 0x2100, 0xa506, 0x01a8, 0x080c, 0x533d,
++      0xa00e, 0x2011, 0x0002, 0x2100, 0xa506, 0x01a8, 0x080c, 0x5356,
+       0x1190, 0x6014, 0x821c, 0x0238, 0xa398, 0xcdc0, 0xa085, 0xff00,
+       0x8007, 0x201a, 0x0038, 0xa398, 0xcdc0, 0x2324, 0xa4a4, 0xff00,
+       0xa405, 0x201a, 0x8210, 0x8108, 0xa182, 0x0080, 0x1208, 0x0c18,
+       0x8201, 0x8007, 0x2d0c, 0xa105, 0x206a, 0x00de, 0x20a9, 0x0040,
+-      0x20a1, 0xcdc0, 0x2099, 0xcdc0, 0x080c, 0x4ecb, 0x0804, 0x3b9c,
+-      0x080c, 0x404b, 0x0904, 0x317c, 0x00c6, 0x080c, 0x4026, 0x00ce,
++      0x20a1, 0xcdc0, 0x2099, 0xcdc0, 0x080c, 0x4ee4, 0x0804, 0x3b9c,
++      0x080c, 0x4064, 0x0904, 0x317c, 0x00c6, 0x080c, 0x403f, 0x00ce,
+       0x1120, 0x2009, 0x0002, 0x0804, 0x3179, 0x2001, 0xc653, 0x2004,
+       0xd0b4, 0x0550, 0x7824, 0xa084, 0xff00, 0xa08e, 0x7e00, 0x0520,
+       0xa08e, 0x7f00, 0x0508, 0xa08e, 0x8000, 0x01f0, 0x6000, 0xd08c,
+       0x11d8, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x11a8, 0x6837,
+-      0x0000, 0x6838, 0xc0fd, 0x683a, 0x080c, 0xae0a, 0x1120, 0x2009,
++      0x0000, 0x6838, 0xc0fd, 0x683a, 0x080c, 0xae2a, 0x1120, 0x2009,
+       0x0003, 0x0804, 0x3179, 0x7007, 0x0003, 0x701b, 0x3c28, 0x0005,
+-      0x080c, 0x404b, 0x0904, 0x317c, 0x20a9, 0x002b, 0x2c98, 0xade8,
++      0x080c, 0x4064, 0x0904, 0x317c, 0x20a9, 0x002b, 0x2c98, 0xade8,
+       0x0002, 0x2da0, 0x53a3, 0x20a9, 0x0004, 0xac80, 0x0006, 0x2098,
+-      0xad80, 0x0006, 0x20a0, 0x080c, 0x4ecb, 0x20a9, 0x0004, 0xac80,
+-      0x000a, 0x2098, 0xad80, 0x000a, 0x20a0, 0x080c, 0x4ecb, 0x2d00,
+-      0x2009, 0x002b, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x0804, 0x406a,
+-      0x81ff, 0x1904, 0x3179, 0x080c, 0x403b, 0x0904, 0x317c, 0x080c,
+-      0x551a, 0x0804, 0x3154, 0x81ff, 0x1904, 0x3179, 0x7828, 0xa08a,
+-      0x1000, 0x1a04, 0x317c, 0x080c, 0x404b, 0x0904, 0x317c, 0x080c,
+-      0x557d, 0x0904, 0x3179, 0x2019, 0x0004, 0xa00e, 0x080c, 0x552c,
++      0xad80, 0x0006, 0x20a0, 0x080c, 0x4ee4, 0x20a9, 0x0004, 0xac80,
++      0x000a, 0x2098, 0xad80, 0x000a, 0x20a0, 0x080c, 0x4ee4, 0x2d00,
++      0x2009, 0x002b, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x0804, 0x4083,
++      0x81ff, 0x1904, 0x3179, 0x080c, 0x4054, 0x0904, 0x317c, 0x080c,
++      0x5533, 0x0804, 0x3154, 0x81ff, 0x1904, 0x3179, 0x7828, 0xa08a,
++      0x1000, 0x1a04, 0x317c, 0x080c, 0x4064, 0x0904, 0x317c, 0x080c,
++      0x5596, 0x0904, 0x3179, 0x2019, 0x0004, 0xa00e, 0x080c, 0x5545,
+       0x7924, 0x810f, 0x7a28, 0x0011, 0x0804, 0x3154, 0xa186, 0x00ff,
+       0x0110, 0x0071, 0x0060, 0x2029, 0x007e, 0x2061, 0xc600, 0x6450,
+       0x2400, 0xa506, 0x0110, 0x2508, 0x0019, 0x8529, 0x1ec8, 0x0005,
+-      0x080c, 0x533d, 0x1138, 0x2200, 0x8003, 0x800b, 0x810b, 0xa108,
+-      0x080c, 0x6fb9, 0x0005, 0x81ff, 0x1904, 0x3179, 0x080c, 0x403b,
+-      0x0904, 0x317c, 0x080c, 0x5403, 0x0904, 0x3179, 0x080c, 0x5523,
+-      0x0804, 0x3154, 0x81ff, 0x1904, 0x3179, 0x080c, 0x403b, 0x0904,
+-      0x317c, 0x080c, 0x5403, 0x0904, 0x3179, 0x080c, 0x5511, 0x0804,
+-      0x3154, 0x6100, 0x0804, 0x3154, 0x080c, 0x404b, 0x0904, 0x317c,
++      0x080c, 0x5356, 0x1138, 0x2200, 0x8003, 0x800b, 0x810b, 0xa108,
++      0x080c, 0x6fd2, 0x0005, 0x81ff, 0x1904, 0x3179, 0x080c, 0x4054,
++      0x0904, 0x317c, 0x080c, 0x541c, 0x0904, 0x3179, 0x080c, 0x553c,
++      0x0804, 0x3154, 0x81ff, 0x1904, 0x3179, 0x080c, 0x4054, 0x0904,
++      0x317c, 0x080c, 0x541c, 0x0904, 0x3179, 0x080c, 0x552a, 0x0804,
++      0x3154, 0x6100, 0x0804, 0x3154, 0x080c, 0x4064, 0x0904, 0x317c,
+       0x2001, 0xc600, 0x2004, 0xa086, 0x0003, 0x1904, 0x3179, 0x00d6,
+       0xace8, 0x000a, 0x7924, 0xd184, 0x0110, 0xace8, 0x0006, 0x680c,
+       0x8007, 0x783e, 0x6808, 0x8007, 0x783a, 0x6b04, 0x831f, 0x6a00,
+       0x8217, 0x00de, 0x6100, 0xa18c, 0x0200, 0x0804, 0x3154, 0x7824,
+-      0xa09c, 0x00ff, 0xa39a, 0x0003, 0x1a04, 0x3179, 0x6250, 0xa294,
+-      0x00ff, 0xa084, 0xff00, 0x8007, 0xa206, 0x1150, 0x2001, 0xc640,
+-      0x2009, 0x000c, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x0804, 0x406a,
+-      0x81ff, 0x1904, 0x3179, 0x080c, 0x404b, 0x0904, 0x317c, 0x6004,
+-      0xa084, 0x00ff, 0xa086, 0x0006, 0x1904, 0x3179, 0x00c6, 0x080c,
+-      0x4026, 0x00ce, 0x0904, 0x3179, 0x6837, 0x0000, 0x6838, 0xc0fd,
+-      0x683a, 0x080c, 0xadb6, 0x0904, 0x3179, 0x7007, 0x0003, 0x701b,
+-      0x3d12, 0x0005, 0x6830, 0xa086, 0x0100, 0x0904, 0x3179, 0xad80,
+-      0x000e, 0x2009, 0x000c, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x0804,
+-      0x406a, 0xa006, 0x080c, 0x2a11, 0x7824, 0xa084, 0x00ff, 0xa086,
+-      0x00ff, 0x0118, 0x81ff, 0x1904, 0x3179, 0x080c, 0x5f22, 0x0110,
+-      0x080c, 0x4f2c, 0x7828, 0xa08a, 0x1000, 0x1a04, 0x317c, 0x7924,
+-      0xa18c, 0xff00, 0x810f, 0xa186, 0x00ff, 0x0138, 0xa182, 0x007f,
+-      0x1a04, 0x317c, 0x2100, 0x080c, 0x29db, 0x0026, 0x00c6, 0x0126,
+-      0x2091, 0x8000, 0x2061, 0xc93a, 0x601b, 0x0000, 0x601f, 0x0000,
+-      0x080c, 0x5f22, 0x1178, 0x2001, 0xc8e6, 0x2003, 0x0001, 0x2001,
+-      0xc600, 0x2003, 0x0001, 0xa085, 0x0001, 0x080c, 0x5f66, 0x080c,
+-      0x5e5a, 0x0420, 0x2011, 0x0003, 0x080c, 0x8f0e, 0x2011, 0x0002,
+-      0x080c, 0x8f18, 0x080c, 0x8dee, 0x0036, 0x2019, 0x0000, 0x080c,
+-      0x8e79, 0x003e, 0x2061, 0x0100, 0x2001, 0xc615, 0x2004, 0xa084,
+-      0x00ff, 0x810f, 0xa105, 0x604a, 0x6043, 0x0090, 0x6043, 0x0010,
+-      0x2009, 0x002d, 0x2011, 0x4e90, 0x080c, 0x7036, 0x7924, 0xa18c,
+-      0xff00, 0x810f, 0x080c, 0x5f22, 0x1110, 0x2009, 0x00ff, 0x7a28,
+-      0x080c, 0x3c76, 0x012e, 0x00ce, 0x002e, 0x0804, 0x3154, 0x7924,
+-      0xa18c, 0xff00, 0x810f, 0x00c6, 0x080c, 0x52e1, 0x2c08, 0x00ce,
+-      0x1904, 0x317c, 0x0804, 0x3154, 0x81ff, 0x0120, 0x2009, 0x0001,
+-      0x0804, 0x3179, 0x60d4, 0xd0ac, 0x1130, 0xd09c, 0x1120, 0x2009,
+-      0x0005, 0x0804, 0x3179, 0x080c, 0x4026, 0x1120, 0x2009, 0x0002,
+-      0x0804, 0x3179, 0x7924, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x080c,
+-      0x4067, 0x701b, 0x3dc4, 0x0005, 0x2009, 0x0080, 0x080c, 0x533d,
+-      0x1130, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x0120, 0x2021,
+-      0x400a, 0x0804, 0x3156, 0x00d6, 0xade8, 0x000d, 0x6900, 0x6a08,
+-      0x6b0c, 0x6c10, 0x6d14, 0x6e18, 0x6820, 0xa0be, 0x0100, 0x0904,
+-      0x3e3b, 0xa0be, 0x0112, 0x0904, 0x3e3b, 0xa0be, 0x0113, 0x0904,
+-      0x3e3b, 0xa0be, 0x0114, 0x0904, 0x3e3b, 0xa0be, 0x0117, 0x0904,
+-      0x3e3b, 0xa0be, 0x011a, 0x0904, 0x3e3b, 0xa0be, 0x011c, 0x0904,
+-      0x3e3b, 0xa0be, 0x0121, 0x05b0, 0xa0be, 0x0131, 0x0598, 0xa0be,
+-      0x0171, 0x05c8, 0xa0be, 0x0173, 0x05b0, 0xa0be, 0x01a1, 0x1120,
+-      0x6830, 0x8007, 0x6832, 0x04a8, 0xa0be, 0x0212, 0x0540, 0xa0be,
+-      0x0213, 0x0528, 0xa0be, 0x0214, 0x01b0, 0xa0be, 0x0217, 0x0168,
+-      0xa0be, 0x021a, 0x1120, 0x6838, 0x8007, 0x683a, 0x00e0, 0xa0be,
+-      0x0300, 0x01c8, 0x00de, 0x0804, 0x317c, 0xad80, 0x0010, 0x20a9,
+-      0x0007, 0x080c, 0x3e81, 0xad80, 0x000e, 0x20a9, 0x0001, 0x080c,
+-      0x3e81, 0x0048, 0xad80, 0x000c, 0x080c, 0x3e8f, 0x0050, 0xad80,
+-      0x000e, 0x080c, 0x3e8f, 0xad80, 0x000c, 0x20a9, 0x0001, 0x080c,
+-      0x3e81, 0x00c6, 0x080c, 0x4026, 0x0568, 0x6838, 0xc0fd, 0x683a,
+-      0x6837, 0x0119, 0x6853, 0x0000, 0x684f, 0x0020, 0x685b, 0x0001,
+-      0x810b, 0x697e, 0x6883, 0x0000, 0x6a86, 0x6b8a, 0x6c8e, 0x6d92,
+-      0x6996, 0x689b, 0x0000, 0x00ce, 0x00de, 0x6837, 0x0000, 0x6838,
+-      0xc0fd, 0x683a, 0x6823, 0x0000, 0x6804, 0x2068, 0x080c, 0xadd2,
+-      0x1120, 0x2009, 0x0003, 0x0804, 0x3179, 0x7007, 0x0003, 0x701b,
+-      0x3e78, 0x0005, 0x00ce, 0x00de, 0x2009, 0x0002, 0x0804, 0x3179,
+-      0x6820, 0xa086, 0x8001, 0x1904, 0x3154, 0x2009, 0x0004, 0x0804,
+-      0x3179, 0x0016, 0x2008, 0x2044, 0x8000, 0x204c, 0x8000, 0x290a,
+-      0x8108, 0x280a, 0x8108, 0x1f04, 0x3e83, 0x001e, 0x0005, 0x0016,
+-      0x00a6, 0x00b6, 0x2008, 0x2044, 0x8000, 0x204c, 0x8000, 0x2054,
+-      0x8000, 0x205c, 0x2b0a, 0x8108, 0x2a0a, 0x8108, 0x290a, 0x8108,
+-      0x280a, 0x00be, 0x00ae, 0x001e, 0x0005, 0x81ff, 0x0120, 0x2009,
+-      0x0001, 0x0804, 0x3179, 0x60d4, 0xd0ac, 0x1130, 0xd09c, 0x1120,
+-      0x2009, 0x0005, 0x0804, 0x3179, 0x7924, 0x2140, 0xa18c, 0xff00,
+-      0x810f, 0x60d4, 0xd0ac, 0x1120, 0xa182, 0x0080, 0x0a04, 0x317c,
+-      0xa182, 0x00ff, 0x1a04, 0x317c, 0x7a2c, 0x7b28, 0x6070, 0xa306,
+-      0x1140, 0x6074, 0xa24e, 0x0904, 0x317c, 0xa9cc, 0xff00, 0x0904,
+-      0x317c, 0x00c6, 0x080c, 0x3f6e, 0x2c68, 0x00ce, 0x0538, 0xa0c6,
+-      0x4000, 0x1180, 0x00c6, 0x0006, 0x2d60, 0x2009, 0x0000, 0x080c,
+-      0x55de, 0x1108, 0xc185, 0x6000, 0xd0bc, 0x0108, 0xc18d, 0x000e,
+-      0x00ce, 0x0088, 0xa0c6, 0x4007, 0x1110, 0x2408, 0x0060, 0xa0c6,
+-      0x4008, 0x1118, 0x2708, 0x2610, 0x0030, 0xa0c6, 0x4009, 0x1108,
+-      0x0010, 0x2001, 0x4006, 0x2020, 0x0804, 0x3156, 0x2d00, 0x7022,
+-      0x0016, 0x00b6, 0x00c6, 0x00e6, 0x2c70, 0x080c, 0x9586, 0x05d8,
+-      0x2d00, 0x601a, 0x080c, 0xb057, 0x2e58, 0x00ee, 0x00e6, 0x00c6,
+-      0x080c, 0x4026, 0x00ce, 0x2b70, 0x1150, 0x080c, 0x95dc, 0x00ee,
++      0xa09c, 0x0003, 0xd0b4, 0x1160, 0xa39a, 0x0003, 0x1a04, 0x3179,
++      0x6250, 0xa294, 0x00ff, 0xa084, 0xff00, 0x8007, 0xa206, 0x1150,
++      0x2001, 0xc640, 0x2009, 0x000c, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38,
++      0x0804, 0x4083, 0x81ff, 0x1904, 0x3179, 0x080c, 0x4064, 0x0904,
++      0x317c, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x1904, 0x3179,
++      0x00c6, 0x080c, 0x403f, 0x00ce, 0x0904, 0x3179, 0x6837, 0x0000,
++      0x6838, 0xc0fd, 0x683a, 0x080c, 0xadd6, 0x0904, 0x3179, 0x7007,
++      0x0003, 0x701b, 0x3d14, 0x0005, 0x6830, 0xa086, 0x0100, 0x0904,
++      0x3179, 0xad80, 0x000e, 0x2009, 0x000c, 0x7a2c, 0x7b28, 0x7c3c,
++      0x7d38, 0x0804, 0x4083, 0xa006, 0x080c, 0x2a11, 0x7824, 0xa084,
++      0x00ff, 0xa086, 0x00ff, 0x0118, 0x81ff, 0x1904, 0x3179, 0x080c,
++      0x5f3b, 0x0110, 0x080c, 0x4f45, 0x7828, 0xa08a, 0x1000, 0x1a04,
++      0x317c, 0x7924, 0xa18c, 0xff00, 0x810f, 0xa186, 0x00ff, 0x0138,
++      0xa182, 0x007f, 0x1a04, 0x317c, 0x2100, 0x080c, 0x29db, 0x0026,
++      0x00c6, 0x0126, 0x2091, 0x8000, 0x2061, 0xc93a, 0x601b, 0x0000,
++      0x601f, 0x0000, 0x080c, 0x5f3b, 0x1178, 0x2001, 0xc8e6, 0x2003,
++      0x0001, 0x2001, 0xc600, 0x2003, 0x0001, 0xa085, 0x0001, 0x080c,
++      0x5f7f, 0x080c, 0x5e73, 0x0420, 0x2011, 0x0003, 0x080c, 0x8f27,
++      0x2011, 0x0002, 0x080c, 0x8f31, 0x080c, 0x8e07, 0x0036, 0x2019,
++      0x0000, 0x080c, 0x8e92, 0x003e, 0x2061, 0x0100, 0x2001, 0xc615,
++      0x2004, 0xa084, 0x00ff, 0x810f, 0xa105, 0x604a, 0x6043, 0x0090,
++      0x6043, 0x0010, 0x2009, 0x002d, 0x2011, 0x4ea9, 0x080c, 0x704f,
++      0x7924, 0xa18c, 0xff00, 0x810f, 0x080c, 0x5f3b, 0x1110, 0x2009,
++      0x00ff, 0x7a28, 0x080c, 0x3c76, 0x012e, 0x00ce, 0x002e, 0x0804,
++      0x3154, 0x7924, 0xa18c, 0xff00, 0x810f, 0x00c6, 0x080c, 0x52fa,
++      0x2c08, 0x00ce, 0x1904, 0x317c, 0x0804, 0x3154, 0x81ff, 0x0120,
++      0x2009, 0x0001, 0x0804, 0x3179, 0x60d4, 0xd0ac, 0x1130, 0xd09c,
++      0x1120, 0x2009, 0x0005, 0x0804, 0x3179, 0x080c, 0x403f, 0x1120,
++      0x2009, 0x0002, 0x0804, 0x3179, 0x7924, 0x7a2c, 0x7b28, 0x7c3c,
++      0x7d38, 0x080c, 0x4080, 0x701b, 0x3dc6, 0x0005, 0x2009, 0x0080,
++      0x080c, 0x5356, 0x1130, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006,
++      0x0120, 0x2021, 0x400a, 0x0804, 0x3156, 0x00d6, 0xade8, 0x000d,
++      0x6900, 0x6a08, 0x6b0c, 0x6c10, 0x6d14, 0x6e18, 0x6820, 0xa0be,
++      0x0100, 0x0904, 0x3e3d, 0xa0be, 0x0112, 0x0904, 0x3e3d, 0xa0be,
++      0x0113, 0x0904, 0x3e3d, 0xa0be, 0x0114, 0x0904, 0x3e3d, 0xa0be,
++      0x0117, 0x0904, 0x3e3d, 0xa0be, 0x011a, 0x0904, 0x3e3d, 0xa0be,
++      0x011c, 0x0904, 0x3e3d, 0xa0be, 0x0121, 0x05b0, 0xa0be, 0x0131,
++      0x0598, 0xa0be, 0x0171, 0x05c8, 0xa0be, 0x0173, 0x05b0, 0xa0be,
++      0x01a1, 0x1120, 0x6830, 0x8007, 0x6832, 0x04a8, 0xa0be, 0x0212,
++      0x0540, 0xa0be, 0x0213, 0x0528, 0xa0be, 0x0214, 0x01b0, 0xa0be,
++      0x0217, 0x0168, 0xa0be, 0x021a, 0x1120, 0x6838, 0x8007, 0x683a,
++      0x00e0, 0xa0be, 0x0300, 0x01c8, 0x00de, 0x0804, 0x317c, 0xad80,
++      0x0010, 0x20a9, 0x0007, 0x080c, 0x3e83, 0xad80, 0x000e, 0x20a9,
++      0x0001, 0x080c, 0x3e83, 0x0048, 0xad80, 0x000c, 0x080c, 0x3e91,
++      0x0050, 0xad80, 0x000e, 0x080c, 0x3e91, 0xad80, 0x000c, 0x20a9,
++      0x0001, 0x080c, 0x3e83, 0x00c6, 0x080c, 0x403f, 0x0568, 0x6838,
++      0xc0fd, 0x683a, 0x6837, 0x0119, 0x6853, 0x0000, 0x684f, 0x0020,
++      0x685b, 0x0001, 0x810b, 0x697e, 0x6883, 0x0000, 0x6a86, 0x6b8a,
++      0x6c8e, 0x6d92, 0x6996, 0x689b, 0x0000, 0x00ce, 0x00de, 0x6837,
++      0x0000, 0x6838, 0xc0fd, 0x683a, 0x6823, 0x0000, 0x6804, 0x2068,
++      0x080c, 0xadf2, 0x1120, 0x2009, 0x0003, 0x0804, 0x3179, 0x7007,
++      0x0003, 0x701b, 0x3e7a, 0x0005, 0x00ce, 0x00de, 0x2009, 0x0002,
++      0x0804, 0x3179, 0x6820, 0xa086, 0x8001, 0x1904, 0x3154, 0x2009,
++      0x0004, 0x0804, 0x3179, 0x0016, 0x2008, 0x2044, 0x8000, 0x204c,
++      0x8000, 0x290a, 0x8108, 0x280a, 0x8108, 0x1f04, 0x3e85, 0x001e,
++      0x0005, 0x0016, 0x00a6, 0x00b6, 0x2008, 0x2044, 0x8000, 0x204c,
++      0x8000, 0x2054, 0x8000, 0x205c, 0x2b0a, 0x8108, 0x2a0a, 0x8108,
++      0x290a, 0x8108, 0x280a, 0x00be, 0x00ae, 0x001e, 0x0005, 0x81ff,
++      0x0120, 0x2009, 0x0001, 0x0804, 0x3179, 0x60d4, 0xd0ac, 0x1130,
++      0xd09c, 0x1120, 0x2009, 0x0005, 0x0804, 0x3179, 0x7924, 0x2140,
++      0xa18c, 0xff00, 0x810f, 0x60d4, 0xd0ac, 0x1120, 0xa182, 0x0080,
++      0x0a04, 0x317c, 0xa182, 0x00ff, 0x1a04, 0x317c, 0x7a2c, 0x7b28,
++      0x6070, 0xa306, 0x1140, 0x6074, 0xa24e, 0x0904, 0x317c, 0xa9cc,
++      0xff00, 0x0904, 0x317c, 0x00c6, 0x080c, 0x3f89, 0x2c68, 0x00ce,
++      0x05a0, 0x0086, 0xa0c6, 0x4000, 0x008e, 0x11c8, 0x00c6, 0x0006,
++      0x2d60, 0xd88c, 0x1140, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006,
++      0x0110, 0xc89d, 0x0400, 0xa00e, 0x080c, 0x55f7, 0x1108, 0xc185,
++      0x6000, 0xd0bc, 0x0108, 0xc18d, 0x000e, 0x00ce, 0x0088, 0xa0c6,
++      0x4007, 0x1110, 0x2408, 0x0060, 0xa0c6, 0x4008, 0x1118, 0x2708,
++      0x2610, 0x0030, 0xa0c6, 0x4009, 0x1108, 0x0010, 0x2001, 0x4006,
++      0x2020, 0x0804, 0x3156, 0x000e, 0x00ce, 0x2d00, 0x7022, 0x0016,
++      0x00b6, 0x00c6, 0x00e6, 0x2c70, 0x080c, 0x95a6, 0x0904, 0x3f5e,
++      0x2d00, 0x601a, 0x080c, 0xb077, 0x2e58, 0x00ee, 0x00e6, 0x00c6,
++      0x080c, 0x403f, 0x00ce, 0x2b70, 0x1150, 0x080c, 0x95fc, 0x00ee,
+       0x00ce, 0x00be, 0x001e, 0x2009, 0x0002, 0x0804, 0x3179, 0x6837,
+       0x0000, 0x683b, 0x0000, 0x2d00, 0x6012, 0x6833, 0x0000, 0x6838,
+-      0xc0fd, 0xd88c, 0x0108, 0xc0f5, 0x683a, 0x0126, 0x2091, 0x8000,
+-      0x080c, 0x2e46, 0x012e, 0x601f, 0x0001, 0x2001, 0x0000, 0x080c,
+-      0x527f, 0x2001, 0x0002, 0x080c, 0x5291, 0x2009, 0x0002, 0x080c,
+-      0x960c, 0xa085, 0x0001, 0x00ee, 0x00ce, 0x00be, 0x001e, 0x1120,
+-      0x2009, 0x0003, 0x0804, 0x3179, 0x7007, 0x0003, 0x701b, 0x3f51,
+-      0x0005, 0x6830, 0xa086, 0x0100, 0x7020, 0x2060, 0x1138, 0x2009,
+-      0x0004, 0x6204, 0xa294, 0x00ff, 0x0804, 0x3179, 0x2009, 0x0000,
+-      0x6838, 0xd0f4, 0x1904, 0x3154, 0x080c, 0x55de, 0x1108, 0xc185,
+-      0x6000, 0xd0bc, 0x0108, 0xc18d, 0x0804, 0x3154, 0x00e6, 0x00d6,
+-      0x2029, 0x0000, 0x2001, 0xc635, 0x2004, 0xd0ac, 0x0138, 0x2021,
+-      0x0000, 0x20a9, 0x00ff, 0x2071, 0xc77b, 0x0030, 0x2021, 0x0080,
+-      0x20a9, 0x007f, 0x2071, 0xc7fb, 0x2e04, 0xa005, 0x1130, 0x2100,
+-      0xa406, 0x15a0, 0x2428, 0xc5fd, 0x0488, 0x2068, 0x6f10, 0x2700,
+-      0xa306, 0x11e0, 0x6e14, 0x2600, 0xa206, 0x11c0, 0x2400, 0xa106,
+-      0x1190, 0x2d60, 0xd884, 0x0598, 0x080c, 0x56ed, 0x1580, 0x2001,
+-      0x4000, 0x0470, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x1538,
+-      0x2001, 0x4000, 0x0428, 0x2001, 0x4007, 0x0410, 0x2400, 0xa106,
+-      0x1168, 0x6e14, 0x87ff, 0x1138, 0x86ff, 0x09a0, 0x2001, 0xc635,
+-      0x2004, 0xd0ac, 0x1978, 0x2001, 0x4008, 0x0090, 0x8420, 0x8e70,
+-      0x1f04, 0x3f84, 0x85ff, 0x1130, 0x2001, 0x4009, 0x0048, 0x2001,
+-      0x0001, 0x0030, 0x080c, 0x52e1, 0x1dd0, 0x6312, 0x6216, 0xa006,
+-      0xa005, 0x00de, 0x00ee, 0x0005, 0x81ff, 0x1904, 0x3179, 0x080c,
+-      0x4026, 0x0904, 0x3179, 0x6837, 0x0000, 0x6838, 0xc0fd, 0x683a,
+-      0x7824, 0xa005, 0x0904, 0x317c, 0xa096, 0x00ff, 0x0120, 0xa092,
+-      0x0004, 0x1a04, 0x317c, 0x2010, 0x2d18, 0x080c, 0x2df9, 0x0904,
+-      0x3179, 0x7007, 0x0003, 0x701b, 0x3ff6, 0x0005, 0x6830, 0xa086,
+-      0x0100, 0x0904, 0x3179, 0x0804, 0x3154, 0x7924, 0xa18c, 0xff00,
+-      0x810f, 0x60d4, 0xd0ac, 0x1120, 0xa182, 0x0080, 0x0a04, 0x317c,
+-      0xa182, 0x00ff, 0x1a04, 0x317c, 0x0126, 0x2091, 0x8000, 0x080c,
+-      0xacba, 0x1188, 0xa190, 0xc77b, 0x2204, 0xa065, 0x0160, 0x080c,
+-      0x4f47, 0x2001, 0xc635, 0x2004, 0xd0ac, 0x0110, 0x6017, 0x0000,
+-      0x012e, 0x0804, 0x3154, 0x012e, 0x0804, 0x3179, 0x080c, 0x1602,
+-      0x0188, 0xa006, 0x6802, 0x7010, 0xa005, 0x1120, 0x2d00, 0x7012,
+-      0x7016, 0x0030, 0x7014, 0x6802, 0x2060, 0x2d00, 0x6006, 0x7016,
+-      0xad80, 0x000d, 0x0005, 0x7924, 0x810f, 0xa18c, 0x00ff, 0x080c,
+-      0x533d, 0x1130, 0x7e28, 0xa684, 0x3fff, 0xa082, 0x4000, 0x0208,
+-      0xa066, 0x8cff, 0x0005, 0x7e24, 0x860f, 0xa18c, 0x00ff, 0x080c,
+-      0x533d, 0x1128, 0xa6b4, 0x00ff, 0xa682, 0x4000, 0x0208, 0xa066,
+-      0x8cff, 0x0005, 0x0016, 0x7110, 0x81ff, 0x0128, 0x2168, 0x6904,
+-      0x080c, 0x1619, 0x0cc8, 0x7112, 0x7116, 0x001e, 0x0005, 0x2031,
+-      0x0001, 0x0010, 0x2031, 0x0000, 0x2061, 0xc6f2, 0x6606, 0x6112,
+-      0x600e, 0x6226, 0x632a, 0x642e, 0x6532, 0x2c10, 0x080c, 0x164d,
+-      0x7007, 0x0002, 0x701b, 0x3154, 0x0005, 0x00f6, 0x0126, 0x2091,
+-      0x8000, 0x2079, 0x0000, 0x2001, 0xc6b0, 0x2004, 0xa005, 0x1168,
+-      0x0e04, 0x4095, 0x7818, 0xd084, 0x1140, 0x7a22, 0x7b26, 0x7c2a,
+-      0x781b, 0x0001, 0x2091, 0x4080, 0x0408, 0x0016, 0x00c6, 0x00e6,
+-      0x2071, 0xc6a2, 0x7138, 0xa182, 0x0010, 0x0218, 0x7030, 0x2060,
+-      0x0078, 0x7030, 0xa0e0, 0x0004, 0xac82, 0xc6f2, 0x0210, 0x2061,
+-      0xc6b2, 0x2c00, 0x7032, 0x81ff, 0x1108, 0x7036, 0x8108, 0x713a,
+-      0x2262, 0x6306, 0x640a, 0x00ee, 0x00ce, 0x001e, 0x012e, 0x00fe,
+-      0x0005, 0x00e6, 0x2071, 0xc6a2, 0x7038, 0xa005, 0x0570, 0x0126,
+-      0x2091, 0x8000, 0x0e04, 0x40ec, 0x00f6, 0x2079, 0x0000, 0x7818,
+-      0xd084, 0x1508, 0x00c6, 0x7034, 0x2060, 0x2c04, 0x7822, 0x6004,
+-      0x7826, 0x6008, 0x782a, 0x781b, 0x0001, 0x2091, 0x4080, 0x7038,
+-      0x8001, 0x703a, 0xa005, 0x1130, 0x7033, 0xc6b2, 0x7037, 0xc6b2,
+-      0x00ce, 0x0048, 0xac80, 0x0004, 0xa0fa, 0xc6f2, 0x0210, 0x2001,
+-      0xc6b2, 0x7036, 0x00ce, 0x00fe, 0x012e, 0x00ee, 0x0005, 0x0026,
+-      0x2001, 0xc653, 0x2004, 0xd0c4, 0x0120, 0x2011, 0x8014, 0x080c,
+-      0x407d, 0x002e, 0x0005, 0x81ff, 0x1904, 0x3179, 0x0126, 0x2091,
+-      0x8000, 0x6030, 0xc08d, 0xc085, 0xc0ac, 0x6032, 0x080c, 0x5f22,
+-      0x1178, 0x2001, 0xc8e6, 0x2003, 0x0001, 0x2001, 0xc600, 0x2003,
+-      0x0001, 0xa085, 0x0001, 0x080c, 0x5f66, 0x080c, 0x5e5a, 0x0010,
+-      0x080c, 0x4e5b, 0x012e, 0x0804, 0x3154, 0x7824, 0x2008, 0xa18c,
+-      0xfffd, 0x1128, 0x61e0, 0xa10d, 0x61e2, 0x0804, 0x3154, 0x0804,
+-      0x317c, 0x81ff, 0x1904, 0x3179, 0x6000, 0xa086, 0x0003, 0x1904,
+-      0x3179, 0x2001, 0xc653, 0x2004, 0xd0ac, 0x1904, 0x3179, 0x080c,
+-      0x404b, 0x0904, 0x317c, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006,
+-      0x1120, 0x7828, 0xa005, 0x0904, 0x3154, 0x00c6, 0x080c, 0x4026,
+-      0x00ce, 0x0904, 0x3179, 0x6837, 0x0000, 0x6833, 0x0000, 0x6838,
+-      0xc0fd, 0x683a, 0x080c, 0xae9b, 0x0904, 0x3179, 0x7007, 0x0003,
+-      0x701b, 0x415b, 0x0005, 0x6830, 0xa086, 0x0100, 0x0904, 0x3179,
+-      0x0804, 0x3154, 0x2001, 0xc600, 0x2004, 0xa086, 0x0003, 0x1904,
+-      0x3179, 0x7f24, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x080c, 0x4026,
+-      0x0904, 0x3179, 0x2009, 0x0000, 0x2031, 0x0000, 0x7023, 0x0000,
+-      0x702f, 0x0000, 0xad80, 0x0005, 0x7026, 0x20a0, 0x080c, 0x533d,
+-      0x1904, 0x41e1, 0x6004, 0xa0c4, 0x00ff, 0xa8c6, 0x0006, 0x0148,
+-      0xa0c4, 0xff00, 0xa8c6, 0x0600, 0x0120, 0x080c, 0x56ed, 0x1904,
+-      0x41e1, 0xd794, 0x1110, 0xd784, 0x0158, 0xac80, 0x0006, 0x2098,
+-      0x3400, 0x20a9, 0x0004, 0x53a3, 0x080c, 0x3e8f, 0xd794, 0x0148,
+-      0xac80, 0x000a, 0x2098, 0x3400, 0x20a9, 0x0004, 0x53a3, 0x080c,
+-      0x3e8f, 0xa186, 0x007e, 0x0178, 0xa186, 0x0080, 0x0160, 0x6004,
+-      0xa084, 0x00ff, 0xa0c2, 0x0006, 0x1210, 0xc1fd, 0x0020, 0x080c,
+-      0x55de, 0x1108, 0xc1fd, 0x21a2, 0xc1fc, 0xd794, 0x01d8, 0xac80,
+-      0x0000, 0x2098, 0x94a0, 0x20a9, 0x0002, 0x53a3, 0xac80, 0x0003,
+-      0x20a6, 0x94a0, 0xac80, 0x0004, 0x2098, 0x3400, 0x20a9, 0x0002,
+-      0x53a3, 0x080c, 0x3e81, 0xac80, 0x0026, 0x2098, 0x20a9, 0x0002,
+-      0x53a3, 0x0008, 0x94a0, 0xd794, 0x0110, 0xa6b0, 0x000b, 0xa6b0,
+-      0x0005, 0x8108, 0x2001, 0xc635, 0x2004, 0xd0ac, 0x0118, 0xa186,
+-      0x0100, 0x0040, 0xd78c, 0x0120, 0xa186, 0x0100, 0x0170, 0x0018,
+-      0xa186, 0x007e, 0x0150, 0xd794, 0x0118, 0xa686, 0x0020, 0x0010,
+-      0xa686, 0x0028, 0x0150, 0x0804, 0x417e, 0x86ff, 0x1120, 0x7120,
+-      0x810b, 0x0804, 0x3154, 0x702f, 0x0001, 0x711e, 0x7020, 0xa600,
+-      0x7022, 0x772a, 0x2061, 0xc6f2, 0x6007, 0x0000, 0x6612, 0x7024,
+-      0x600e, 0x6226, 0x632a, 0x642e, 0x6532, 0x2c10, 0x080c, 0x164d,
+-      0x7007, 0x0002, 0x701b, 0x421d, 0x0005, 0x702c, 0xa005, 0x1170,
+-      0x711c, 0x7024, 0x20a0, 0x7728, 0x2031, 0x0000, 0x2061, 0xc6f2,
+-      0x6224, 0x6328, 0x642c, 0x6530, 0x0804, 0x417e, 0x7120, 0x810b,
+-      0x0804, 0x3154, 0x2029, 0x007e, 0x7924, 0x7a28, 0x7b2c, 0x7c38,
+-      0xa184, 0xff00, 0x8007, 0xa0e2, 0x0020, 0x0a04, 0x317c, 0xa502,
+-      0x0a04, 0x317c, 0xa184, 0x00ff, 0xa0e2, 0x0020, 0x0a04, 0x317c,
+-      0xa502, 0x0a04, 0x317c, 0xa284, 0xff00, 0x8007, 0xa0e2, 0x0020,
+-      0x0a04, 0x317c, 0xa502, 0x0a04, 0x317c, 0xa284, 0x00ff, 0xa0e2,
+-      0x0020, 0x0a04, 0x317c, 0xa502, 0x0a04, 0x317c, 0xa384, 0xff00,
+-      0x8007, 0xa0e2, 0x0020, 0x0a04, 0x317c, 0xa502, 0x0a04, 0x317c,
+-      0xa384, 0x00ff, 0xa0e2, 0x0020, 0x0a04, 0x317c, 0xa502, 0x0a04,
+-      0x317c, 0xa484, 0xff00, 0x8007, 0xa0e2, 0x0020, 0x0a04, 0x317c,
+-      0xa502, 0x0a04, 0x317c, 0xa484, 0x00ff, 0xa0e2, 0x0020, 0x0a04,
+-      0x317c, 0xa502, 0x0a04, 0x317c, 0x2061, 0xc900, 0x6102, 0x6206,
+-      0x630a, 0x640e, 0x0804, 0x3154, 0x080c, 0x4026, 0x0904, 0x3179,
+-      0x2009, 0x0020, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x080c, 0x4067,
+-      0x701b, 0x429b, 0x0005, 0x0126, 0xade8, 0x000d, 0x2001, 0x0138,
+-      0x2003, 0x0000, 0x00e6, 0x2071, 0xc96a, 0x700c, 0x7110, 0xa106,
+-      0x1de0, 0x00ee, 0x2091, 0x8000, 0x6800, 0xa005, 0x0904, 0x432f,
+-      0x6804, 0x2008, 0xa18c, 0xffe0, 0x1904, 0x432f, 0x680c, 0xa005,
+-      0x0904, 0x432f, 0xa082, 0xff01, 0x1a04, 0x432f, 0x6810, 0xa082,
+-      0x005c, 0x0a04, 0x432f, 0x6824, 0x2008, 0xa082, 0x0008, 0x0a04,
+-      0x432f, 0xa182, 0x0400, 0x1a04, 0x432f, 0x080c, 0x7394, 0x6820,
+-      0x8000, 0x6822, 0x6944, 0x6820, 0xa102, 0x0a04, 0x432f, 0x6828,
+-      0x6944, 0x810c, 0xa102, 0x0a04, 0x432f, 0x6840, 0xa082, 0x000f,
+-      0x1a04, 0x432f, 0x00d6, 0x6848, 0xa005, 0x0148, 0x2008, 0x2069,
+-      0xc600, 0x68e8, 0xa108, 0x68b0, 0xa102, 0x1208, 0x69ea, 0x00de,
+-      0x20a9, 0x0020, 0x2d98, 0x2069, 0xc682, 0x2da0, 0x53a3, 0x00d6,
+-      0x080c, 0x15e5, 0x2d00, 0x00de, 0x0904, 0x4346, 0x684e, 0x080c,
+-      0x725b, 0x05d8, 0x080c, 0x7158, 0x080c, 0x5695, 0x0580, 0x00c6,
+-      0x2061, 0x0100, 0x6104, 0xa18d, 0x8000, 0x6106, 0x610c, 0xa18d,
+-      0x0300, 0xa18c, 0xffbf, 0x610e, 0x2001, 0xc8d4, 0x200c, 0xa18d,
+-      0x0300, 0xa18c, 0xffbf, 0x2102, 0x6b10, 0x2061, 0xc96a, 0x6316,
+-      0x00ce, 0x685f, 0x0000, 0x2001, 0xc696, 0x2003, 0x0000, 0x080c,
+-      0x2a95, 0x2001, 0x0138, 0x2102, 0x012e, 0x0804, 0x3154, 0x080c,
+-      0x2a95, 0x2001, 0x0138, 0x2102, 0x012e, 0x0804, 0x317c, 0x080c,
+-      0x7475, 0x080c, 0x7484, 0x080c, 0x7147, 0x2001, 0xc695, 0x206c,
+-      0x080c, 0x1619, 0x2001, 0xc695, 0x2003, 0x0000, 0x2001, 0xc63a,
+-      0x2003, 0x0010, 0x080c, 0x2a95, 0x2001, 0x0138, 0x2102, 0x012e,
+-      0x0804, 0x3179, 0x2001, 0xc756, 0x2004, 0xa086, 0x0000, 0x0904,
+-      0x3179, 0x080c, 0x768f, 0x1904, 0x3179, 0x2001, 0xc8e5, 0x2004,
+-      0xa086, 0xaaaa, 0x0138, 0x2001, 0xc635, 0x2004, 0xa084, 0x0028,
+-      0x0904, 0x3170, 0x2001, 0xc600, 0x2004, 0xa086, 0x0003, 0x1904,
+-      0x3179, 0x7924, 0x810c, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x080c,
+-      0x4026, 0x0904, 0x3179, 0x080c, 0x4067, 0x701b, 0x4380, 0x0005,
+-      0x080c, 0x9586, 0x0904, 0x3179, 0x2001, 0xc8d3, 0x2004, 0x601a,
+-      0x0016, 0x0026, 0x2001, 0xc61c, 0x2004, 0x8007, 0x6934, 0xa105,
+-      0x6836, 0x2001, 0xc61d, 0x2004, 0x8007, 0x683a, 0x002e, 0x001e,
+-      0x2d00, 0x6012, 0x601f, 0x0001, 0x2009, 0x0040, 0x080c, 0x960c,
+-      0x0804, 0x3154, 0x0804, 0x3179, 0x2001, 0xc756, 0x200c, 0xa18e,
+-      0x0000, 0x0904, 0x4402, 0x2001, 0x0101, 0x200c, 0xa18c, 0x7fff,
+-      0x2102, 0x2001, 0x0103, 0x200c, 0xa18c, 0xfeff, 0xa18c, 0xfdff,
+-      0xa18d, 0x0040, 0x2102, 0x2001, 0xc8d4, 0x200c, 0xa18c, 0xfeff,
+-      0xa18c, 0xfdff, 0xa18d, 0x0040, 0x2102, 0x2001, 0x0138, 0x2003,
+-      0x0000, 0x0126, 0x2091, 0x8000, 0x080c, 0x24f3, 0x012e, 0x0128,
+-      0x20a9, 0x006e, 0x1f04, 0x43d2, 0x0ca0, 0x2001, 0xc756, 0x2003,
+-      0x0000, 0x080c, 0x2a95, 0x2001, 0x0138, 0x2102, 0x0126, 0x2091,
+-      0x8000, 0x2001, 0xc695, 0x200c, 0x81ff, 0x0138, 0x2168, 0x080c,
+-      0x1619, 0x2001, 0xc695, 0x2003, 0x0000, 0x2001, 0xc8d3, 0x200c,
+-      0x81ff, 0x0138, 0x2168, 0x080c, 0x1619, 0x2001, 0xc8d3, 0x2003,
+-      0x0000, 0x2001, 0xc63a, 0x2003, 0x0010, 0x080c, 0x7475, 0x080c,
+-      0x7484, 0x012e, 0x0804, 0x3154, 0x7824, 0x00e6, 0x2071, 0xc682,
+-      0x00ee, 0x0804, 0x3154, 0x0006, 0x2001, 0xc653, 0x2004, 0xd0cc,
+-      0x000e, 0x0005, 0x0006, 0x2001, 0xc672, 0x2004, 0xd0bc, 0x000e,
+-      0x0005, 0x6168, 0x7a24, 0x6300, 0x82ff, 0x1118, 0x7926, 0x0804,
+-      0x3154, 0x83ff, 0x1904, 0x317c, 0x2001, 0xfff0, 0xa200, 0x1a04,
+-      0x317c, 0x2019, 0xffff, 0x606c, 0xa302, 0xa200, 0x0a04, 0x317c,
+-      0x7926, 0x626a, 0x0804, 0x3154, 0x2001, 0xc600, 0x2004, 0xa086,
+-      0x0003, 0x1904, 0x3179, 0x7c28, 0x7d24, 0x7e38, 0x7f2c, 0x080c,
+-      0x4026, 0x0904, 0x3179, 0x2009, 0x0000, 0x2019, 0x0000, 0x7023,
+-      0x0000, 0x702f, 0x0000, 0xad80, 0x0003, 0x7026, 0x20a0, 0xa1e0,
+-      0xc77b, 0x2c64, 0x8cff, 0x01b8, 0x6004, 0xa084, 0x00ff, 0xa086,
+-      0x0006, 0x0130, 0x6004, 0xa084, 0xff00, 0xa086, 0x0600, 0x1158,
+-      0x6014, 0x20a2, 0x94a0, 0x6010, 0x8007, 0xa105, 0x8007, 0x20a2,
+-      0x94a0, 0xa398, 0x0002, 0x8108, 0xa182, 0x00ff, 0x0120, 0xa386,
+-      0x002a, 0x0148, 0x08e0, 0x83ff, 0x1120, 0x7120, 0x810c, 0x0804,
+-      0x3154, 0x702f, 0x0001, 0x711e, 0x7020, 0xa300, 0x7022, 0x2061,
+-      0xc6f2, 0x6007, 0x0000, 0x6312, 0x7024, 0x600e, 0x6426, 0x652a,
+-      0x662e, 0x6732, 0x2c10, 0x080c, 0x164d, 0x7007, 0x0002, 0x701b,
+-      0x4492, 0x0005, 0x702c, 0xa005, 0x1168, 0x711c, 0x7024, 0x20a0,
+-      0x2019, 0x0000, 0x2061, 0xc6f2, 0x6424, 0x6528, 0x662c, 0x6730,
+-      0x0804, 0x444f, 0x7120, 0x810c, 0x0804, 0x3154, 0x81ff, 0x1904,
+-      0x3179, 0x60d4, 0xd0ac, 0x1118, 0xd09c, 0x0904, 0x3179, 0x080c,
+-      0x4026, 0x0904, 0x3179, 0x7924, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38,
+-      0x080c, 0x4067, 0x701b, 0x44bd, 0x0005, 0x00d6, 0xade8, 0x000d,
+-      0x6828, 0xa0be, 0x7000, 0x0148, 0xa0be, 0x7100, 0x0130, 0xa0be,
+-      0x7200, 0x0118, 0x00de, 0x0804, 0x317c, 0x6820, 0x6924, 0x080c,
+-      0x29c7, 0x1510, 0x080c, 0x52e1, 0x11f8, 0x7122, 0x6612, 0x6516,
+-      0x6e18, 0x00c6, 0x080c, 0x4026, 0x01b8, 0x080c, 0x4026, 0x01a0,
+-      0x00ce, 0x00de, 0x6837, 0x0000, 0x6838, 0xc0fd, 0x683a, 0x6823,
+-      0x0000, 0x6804, 0x2068, 0x080c, 0xadee, 0x0904, 0x3179, 0x7007,
+-      0x0003, 0x701b, 0x44f7, 0x0005, 0x00de, 0x0804, 0x3179, 0x7120,
+-      0x080c, 0x2f41, 0x6820, 0xa086, 0x8001, 0x0904, 0x3179, 0x2d00,
+-      0x701e, 0x6804, 0xa080, 0x0002, 0x0006, 0x20a9, 0x002a, 0x2098,
+-      0x20a0, 0x080c, 0x4ecb, 0x000e, 0xade8, 0x000d, 0x6a08, 0x6b0c,
+-      0x6c10, 0x6d14, 0x2061, 0xc6f2, 0x6007, 0x0000, 0x6e00, 0x6f28,
+-      0xa7c6, 0x7000, 0x1108, 0x0018, 0xa7c6, 0x7100, 0x1140, 0xa6c2,
+-      0x0004, 0x0a04, 0x317c, 0x2009, 0x0004, 0x0804, 0x406a, 0xa7c6,
+-      0x7200, 0x1904, 0x317c, 0xa6c2, 0x0054, 0x0a04, 0x317c, 0x600e,
+-      0x6013, 0x002a, 0x6226, 0x632a, 0x642e, 0x6532, 0x2c10, 0x080c,
+-      0x164d, 0x7007, 0x0002, 0x701b, 0x453e, 0x0005, 0x701c, 0x2068,
+-      0x6804, 0xa080, 0x0001, 0x2004, 0xa080, 0x0002, 0x0006, 0x20a9,
+-      0x002a, 0x2098, 0x20a0, 0x080c, 0x4ecb, 0x000e, 0x2009, 0x002a,
+-      0x2061, 0xc6f2, 0x6224, 0x6328, 0x642c, 0x6530, 0x0804, 0x406a,
+-      0x81ff, 0x1904, 0x3179, 0x792c, 0x2001, 0xc8e7, 0x2102, 0x080c,
+-      0x403b, 0x0904, 0x317c, 0x080c, 0x5403, 0x0904, 0x3179, 0x0126,
+-      0x2091, 0x8000, 0x080c, 0x5535, 0x012e, 0x0804, 0x3154, 0x7824,
+-      0xd08c, 0x1118, 0xd084, 0x0904, 0x3bf0, 0x080c, 0x404b, 0x0904,
+-      0x317c, 0x00c6, 0x080c, 0x4026, 0x00ce, 0x1120, 0x2009, 0x0002,
+-      0x0804, 0x3179, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x0128,
+-      0xa08e, 0x0004, 0x0110, 0xa08e, 0x0005, 0x15b8, 0x7824, 0xd08c,
+-      0x0120, 0x6000, 0xc08c, 0x6002, 0x0030, 0x2001, 0xc653, 0x2004,
+-      0xd0b4, 0x0904, 0x3c2c, 0x7824, 0xa084, 0xff00, 0xa08e, 0x7e00,
+-      0x0904, 0x3c2c, 0xa08e, 0x7f00, 0x0904, 0x3c2c, 0xa08e, 0x8000,
+-      0x0904, 0x3c2c, 0x6000, 0xd08c, 0x1904, 0x3c2c, 0x6837, 0x0000,
+-      0x6838, 0xc0fd, 0x683a, 0x080c, 0xae0a, 0x1120, 0x2009, 0x0003,
+-      0x0804, 0x3179, 0x7007, 0x0003, 0x701b, 0x45bf, 0x0005, 0x080c,
+-      0x404b, 0x0904, 0x317c, 0x0804, 0x3c2c, 0x2009, 0xc631, 0x210c,
+-      0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x3179, 0x2001, 0xc600,
+-      0x2004, 0xa086, 0x0003, 0x0120, 0x2009, 0x0007, 0x0804, 0x3179,
+-      0x2001, 0xc653, 0x2004, 0xd0ac, 0x0120, 0x2009, 0x0008, 0x0804,
+-      0x3179, 0x609c, 0xd0a4, 0x1118, 0xd0ac, 0x1904, 0x3c2c, 0x6837,
+-      0x0000, 0x6833, 0x0000, 0x6838, 0xc0fd, 0x683a, 0x080c, 0xae9b,
+-      0x1120, 0x2009, 0x0003, 0x0804, 0x3179, 0x7007, 0x0003, 0x701b,
+-      0x45fa, 0x0005, 0x6830, 0xa086, 0x0100, 0x1120, 0x2009, 0x0004,
+-      0x0804, 0x3179, 0x080c, 0x404b, 0x0904, 0x317c, 0x0804, 0x458e,
+-      0x81ff, 0x2009, 0x0001, 0x1904, 0x3179, 0x6000, 0xa086, 0x0003,
+-      0x2009, 0x0007, 0x1904, 0x3179, 0x2001, 0xc653, 0x2004, 0xd0ac,
+-      0x2009, 0x0008, 0x1904, 0x3179, 0x080c, 0x404b, 0x0904, 0x317c,
+-      0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x2009, 0x0009, 0x1904,
+-      0x3179, 0x00c6, 0x080c, 0x4026, 0x00ce, 0x2009, 0x0002, 0x0904,
+-      0x3179, 0x6837, 0x0000, 0x6833, 0x0000, 0x6838, 0xc0fd, 0x683a,
+-      0x7928, 0xa194, 0xff00, 0xa18c, 0x00ff, 0xa006, 0x82ff, 0x1128,
+-      0xc0ed, 0x6952, 0x792c, 0x6956, 0x0048, 0xa28e, 0x0100, 0x1904,
+-      0x317c, 0xc0e5, 0x6853, 0x0000, 0x6857, 0x0000, 0x683e, 0x080c,
+-      0xb058, 0x2009, 0x0003, 0x0904, 0x3179, 0x7007, 0x0003, 0x701b,
+-      0x465a, 0x0005, 0x6830, 0xa086, 0x0100, 0x2009, 0x0004, 0x0904,
+-      0x3179, 0x0804, 0x3154, 0x81ff, 0x2009, 0x0001, 0x1904, 0x3179,
+-      0x6000, 0xa086, 0x0003, 0x2009, 0x0007, 0x1904, 0x3179, 0x080c,
+-      0x404b, 0x0904, 0x317c, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006,
+-      0x2009, 0x0009, 0x1904, 0x3179, 0x00c6, 0x080c, 0x4026, 0x00ce,
+-      0x2009, 0x0002, 0x0904, 0x3179, 0xad80, 0x000f, 0x2009, 0x0008,
+-      0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x080c, 0x4067, 0x701b, 0x4691,
+-      0x0005, 0x00d6, 0xade8, 0x000f, 0x6800, 0xa086, 0x0500, 0x1140,
+-      0x6804, 0xa005, 0x1128, 0x6808, 0xa084, 0xff00, 0x1108, 0x0018,
+-      0x00de, 0x1904, 0x317c, 0x00de, 0x6837, 0x0000, 0x6833, 0x0000,
+-      0x6838, 0xc0fd, 0x683a, 0x00c6, 0x080c, 0x404b, 0x1118, 0x00ce,
+-      0x0804, 0x317c, 0x080c, 0xb0a7, 0x2009, 0x0003, 0x00ce, 0x0904,
+-      0x3179, 0x7007, 0x0003, 0x701b, 0x46be, 0x0005, 0x6830, 0xa086,
+-      0x0100, 0x2009, 0x0004, 0x0904, 0x3179, 0x0804, 0x3154, 0x81ff,
+-      0x0120, 0x2009, 0x0001, 0x0804, 0x3179, 0x6000, 0xa086, 0x0003,
+-      0x0120, 0x2009, 0x0007, 0x0804, 0x3179, 0x7e24, 0x860f, 0xa18c,
+-      0x00ff, 0xa6b4, 0x00ff, 0x080c, 0x533d, 0x1904, 0x317c, 0xa186,
+-      0x007f, 0x0150, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x0120,
+-      0x2009, 0x0009, 0x0804, 0x3179, 0x00c6, 0x080c, 0x4026, 0x00ce,
+-      0x1120, 0x2009, 0x0002, 0x0804, 0x3179, 0x6837, 0x0000, 0x6838,
+-      0xc0fd, 0x683a, 0x2001, 0x0100, 0x8007, 0x680a, 0x080c, 0xae25,
+-      0x1120, 0x2009, 0x0003, 0x0804, 0x3179, 0x7007, 0x0003, 0x701b,
+-      0x470a, 0x0005, 0x6808, 0x8007, 0xa086, 0x0100, 0x1120, 0x2009,
+-      0x0004, 0x0804, 0x3179, 0x68b0, 0x6836, 0x6810, 0x8007, 0xa084,
+-      0x00ff, 0x800c, 0x6814, 0x8007, 0xa084, 0x00ff, 0x8004, 0xa080,
+-      0x0002, 0xa108, 0xad80, 0x0004, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38,
+-      0x0804, 0x406a, 0x080c, 0x4026, 0x1120, 0x2009, 0x0002, 0x0804,
+-      0x3179, 0x7924, 0xa194, 0xff00, 0xa18c, 0x00ff, 0x8217, 0x82ff,
+-      0x0110, 0x0804, 0x317c, 0x2009, 0x001a, 0x7a2c, 0x7b28, 0x7c3c,
+-      0x7d38, 0x080c, 0x4067, 0x701b, 0x4746, 0x0005, 0x2001, 0xc62a,
+-      0x2003, 0x0001, 0xad80, 0x000d, 0x2098, 0x20a9, 0x001a, 0x20a1,
+-      0xc90d, 0x53a3, 0x0804, 0x3154, 0x080c, 0x4026, 0x1120, 0x2009,
+-      0x0002, 0x0804, 0x3179, 0x7924, 0xa194, 0xff00, 0xa18c, 0x00ff,
+-      0x8217, 0x82ff, 0x0110, 0x0804, 0x317c, 0x2099, 0xc90d, 0x20a0,
+-      0x20a9, 0x001a, 0x53a3, 0x2009, 0x001a, 0x7a2c, 0x7b28, 0x7c3c,
+-      0x7d38, 0x0804, 0x406a, 0x7824, 0xa08a, 0x1000, 0x1a04, 0x317c,
+-      0x0126, 0x2091, 0x8000, 0x8003, 0x800b, 0x810b, 0xa108, 0x00c6,
+-      0x2061, 0xc93a, 0x6142, 0x00ce, 0x012e, 0x0804, 0x3154, 0x00c6,
+-      0x080c, 0x5f22, 0x1188, 0x2001, 0xc8e6, 0x2003, 0x0001, 0x2001,
+-      0xc600, 0x2003, 0x0001, 0xa085, 0x0001, 0x080c, 0x5f66, 0x080c,
+-      0x5e5a, 0x080c, 0x1519, 0x0038, 0x2061, 0xc600, 0x6030, 0xc09d,
+-      0x6032, 0x080c, 0x4e5b, 0x00ce, 0x0005, 0x0126, 0x2091, 0x8000,
+-      0x00c6, 0x2061, 0xc93a, 0x7924, 0x6152, 0x614e, 0x6057, 0x0000,
+-      0x604b, 0x0009, 0x7838, 0x606a, 0x783c, 0x6066, 0x7828, 0x6062,
+-      0x782c, 0x605e, 0x2061, 0xc8e8, 0x2001, 0xc94f, 0x600e, 0x6013,
+-      0x0001, 0x6017, 0x0002, 0x6007, 0x0000, 0x6037, 0x0000, 0x00ce,
+-      0x012e, 0x0804, 0x3154, 0x0126, 0x00c6, 0x00e6, 0x2061, 0x0100,
+-      0x2071, 0xc600, 0x6044, 0xd0a4, 0x11b0, 0xd084, 0x0118, 0x080c,
+-      0x4942, 0x0068, 0xd08c, 0x0118, 0x080c, 0x4863, 0x0040, 0xd094,
+-      0x0118, 0x080c, 0x4834, 0x0018, 0xd09c, 0x0108, 0x0061, 0x00ee,
+-      0x00ce, 0x012e, 0x0005, 0x0016, 0x6128, 0xd19c, 0x1110, 0xc19d,
+-      0x612a, 0x001e, 0x0ca0, 0x624c, 0xa286, 0xf0f0, 0x1150, 0x6048,
+-      0xa086, 0xf0f0, 0x0130, 0x624a, 0x6043, 0x0090, 0x6043, 0x0010,
+-      0x0490, 0xa294, 0xff00, 0xa296, 0xf700, 0x0178, 0x7134, 0xd1a4,
+-      0x1160, 0x6240, 0xa295, 0x0100, 0x6242, 0xa294, 0x0010, 0x0128,
+-      0x2009, 0x00f7, 0x080c, 0x4eeb, 0x00f0, 0x6040, 0xa084, 0x0010,
+-      0xa085, 0x0140, 0x6042, 0x6043, 0x0000, 0x707b, 0x0000, 0x7097,
+-      0x0001, 0x70bb, 0x0000, 0x70d7, 0x0000, 0x2009, 0xcdc0, 0x200b,
+-      0x0000, 0x708b, 0x0000, 0x707f, 0x000a, 0x2009, 0x000a, 0x2011,
+-      0x4e11, 0x080c, 0x7036, 0x0005, 0x0156, 0x2001, 0xc674, 0x2004,
+-      0xd08c, 0x0110, 0x7053, 0xffff, 0x707c, 0xa005, 0x1510, 0x2011,
+-      0x4e11, 0x080c, 0x6fad, 0x6040, 0xa094, 0x0010, 0xa285, 0x0020,
+-      0x6042, 0x20a9, 0x00c8, 0x6044, 0xd08c, 0x1168, 0x1f04, 0x484b,
+-      0x6242, 0x708f, 0x0000, 0x6040, 0xa094, 0x0010, 0xa285, 0x0080,
+-      0x6042, 0x6242, 0x0030, 0x6242, 0x708f, 0x0000, 0x7083, 0x0000,
+-      0x0000, 0x015e, 0x0005, 0x7080, 0xa08a, 0x0003, 0x1210, 0x0023,
+-      0x0010, 0x080c, 0x1519, 0x0005, 0x486f, 0x48bf, 0x4941, 0x00f6,
+-      0x7083, 0x0001, 0x20e1, 0xa000, 0xe000, 0x20e1, 0x8700, 0x080c,
+-      0x25bb, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x2079, 0xcc00, 0x207b,
+-      0x2200, 0x7807, 0x00ef, 0x780b, 0x0000, 0x780f, 0x00ef, 0x7813,
+-      0x0138, 0x7817, 0x0000, 0x781b, 0x0000, 0x781f, 0x0000, 0x7823,
+-      0xffff, 0x7827, 0xffff, 0x782b, 0x0000, 0x782f, 0x0000, 0x2079,
+-      0xcc0c, 0x207b, 0x1101, 0x7807, 0x0000, 0x2099, 0xc605, 0x20a1,
+-      0xcc0e, 0x20a9, 0x0004, 0x53a3, 0x2079, 0xcc12, 0x207b, 0x0000,
+-      0x7807, 0x0000, 0x2099, 0xcc00, 0x20a1, 0x020b, 0x20a9, 0x0014,
+-      0x53a6, 0x60c3, 0x000c, 0x600f, 0x0000, 0x080c, 0x4e42, 0x00fe,
+-      0x7087, 0x0000, 0x6043, 0x0008, 0x6043, 0x0000, 0x0005, 0x00d6,
+-      0x7084, 0x7087, 0x0000, 0xa025, 0x0904, 0x4929, 0x6020, 0xd0b4,
+-      0x1904, 0x4927, 0x7194, 0x81ff, 0x0904, 0x4917, 0xa486, 0x000c,
+-      0x1904, 0x4922, 0xa480, 0x0018, 0x8004, 0x20a8, 0x2011, 0xcc80,
+-      0x2019, 0xcc00, 0x220c, 0x2304, 0xa106, 0x11b8, 0x8210, 0x8318,
+-      0x1f04, 0x48da, 0x6043, 0x0004, 0x608b, 0xbc94, 0x608f, 0xf0f0,
+-      0x6043, 0x0006, 0x7083, 0x0002, 0x708f, 0x0002, 0x2009, 0x07d0,
+-      0x2011, 0x4e18, 0x080c, 0x7036, 0x0490, 0x2069, 0xcc80, 0x6930,
+-      0xa18e, 0x1101, 0x1538, 0x6834, 0xa005, 0x1520, 0x6900, 0xa18c,
+-      0x00ff, 0x1118, 0x6804, 0xa005, 0x0190, 0x2011, 0xcc8e, 0x2019,
+-      0xc605, 0x20a9, 0x0004, 0x220c, 0x2304, 0xa102, 0x0230, 0x1190,
+-      0x8210, 0x8318, 0x1f04, 0x490b, 0x0068, 0x7097, 0x0000, 0x20e1,
+-      0x9080, 0x20e1, 0x4000, 0x2099, 0xcc80, 0x20a1, 0x020b, 0x20a9,
+-      0x0014, 0x53a6, 0x6043, 0x0008, 0x6043, 0x0000, 0x0010, 0x00de,
+-      0x0005, 0x6040, 0xa085, 0x0100, 0x6042, 0x6020, 0xd0b4, 0x1db8,
+-      0x60c3, 0x000c, 0x2011, 0xc931, 0x2013, 0x0000, 0x7087, 0x0000,
+-      0x20e1, 0x9080, 0x60a3, 0x0056, 0x60a7, 0x9575, 0x080c, 0x8bec,
+-      0x0c30, 0x0005, 0x708c, 0xa08a, 0x001d, 0x1210, 0x0023, 0x0010,
+-      0x080c, 0x1519, 0x0005, 0x4975, 0x4984, 0x49ac, 0x49c5, 0x49e9,
+-      0x4a11, 0x4a35, 0x4a66, 0x4a8a, 0x4ab2, 0x4ae9, 0x4b11, 0x4b2d,
+-      0x4b43, 0x4b63, 0x4b76, 0x4b7e, 0x4bae, 0x4bd2, 0x4bfa, 0x4c1e,
+-      0x4c4f, 0x4c8c, 0x4cbb, 0x4cd7, 0x4d16, 0x4d36, 0x4d4f, 0x4d50,
+-      0x00c6, 0x2061, 0xc600, 0x6003, 0x0007, 0x2061, 0x0100, 0x6004,
+-      0xa084, 0xfff9, 0x6006, 0x00ce, 0x0005, 0x608b, 0xbc94, 0x608f,
+-      0xf0f0, 0x6043, 0x0002, 0x708f, 0x0001, 0x2009, 0x07d0, 0x2011,
+-      0x4e18, 0x080c, 0x7036, 0x0005, 0x00f6, 0x7084, 0xa086, 0x0014,
+-      0x1508, 0x6043, 0x0000, 0x6020, 0xd0b4, 0x11e0, 0x2079, 0xcc80,
+-      0x7a30, 0xa296, 0x1102, 0x11a0, 0x7834, 0xa005, 0x1188, 0x7a38,
+-      0xd2fc, 0x0128, 0x70b8, 0xa005, 0x1110, 0x70bb, 0x0001, 0x2011,
+-      0x4e18, 0x080c, 0x6fad, 0x708f, 0x0010, 0x080c, 0x4b7e, 0x0010,
+-      0x080c, 0x4e5b, 0x00fe, 0x0005, 0x708f, 0x0003, 0x6043, 0x0004,
+-      0x2011, 0x4e18, 0x080c, 0x6fad, 0x080c, 0x4ed3, 0x20a3, 0x1102,
+-      0x20a3, 0x0000, 0x20a9, 0x000a, 0x20a3, 0x0000, 0x1f04, 0x49bc,
+-      0x60c3, 0x0014, 0x080c, 0x4e42, 0x0005, 0x00f6, 0x7084, 0xa005,
+-      0x01f0, 0x2011, 0x4e18, 0x080c, 0x6fad, 0xa086, 0x0014, 0x11a8,
+-      0x2079, 0xcc80, 0x7a30, 0xa296, 0x1102, 0x1178, 0x7834, 0xa005,
+-      0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70b8, 0xa005, 0x1110, 0x70bb,
+-      0x0001, 0x708f, 0x0004, 0x0029, 0x0010, 0x080c, 0x4e5b, 0x00fe,
+-      0x0005, 0x708f, 0x0005, 0x080c, 0x4ed3, 0x20a3, 0x1103, 0x20a3,
+-      0x0000, 0x3430, 0x2011, 0xcc8e, 0x080c, 0x4f24, 0x1160, 0x7078,
+-      0xa005, 0x1148, 0x7150, 0xa186, 0xffff, 0x0128, 0x080c, 0x4ddc,
+-      0x0110, 0x080c, 0x4f02, 0x20a9, 0x0008, 0x2298, 0x26a0, 0x53a6,
+-      0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0014, 0x080c, 0x4e42,
+-      0x0005, 0x00f6, 0x7084, 0xa005, 0x01f0, 0x2011, 0x4e18, 0x080c,
+-      0x6fad, 0xa086, 0x0014, 0x11a8, 0x2079, 0xcc80, 0x7a30, 0xa296,
+-      0x1103, 0x1178, 0x7834, 0xa005, 0x1160, 0x7a38, 0xd2fc, 0x0128,
+-      0x70b8, 0xa005, 0x1110, 0x70bb, 0x0001, 0x708f, 0x0006, 0x0029,
+-      0x0010, 0x080c, 0x4e5b, 0x00fe, 0x0005, 0x708f, 0x0007, 0x080c,
+-      0x4ed3, 0x20a3, 0x1104, 0x20a3, 0x0000, 0x3430, 0x2011, 0xcc8e,
+-      0x080c, 0x4f24, 0x11a8, 0x7078, 0xa005, 0x1190, 0x7158, 0xa186,
+-      0xffff, 0x0170, 0xa180, 0x2f6e, 0x200d, 0xa18c, 0xff00, 0x810f,
+-      0x080c, 0x4ddc, 0x0128, 0x080c, 0x4412, 0x0110, 0x080c, 0x2a11,
+-      0x20a9, 0x0008, 0x2298, 0x26a0, 0x53a6, 0x20a3, 0x0000, 0x20a3,
+-      0x0000, 0x60c3, 0x0014, 0x080c, 0x4e42, 0x0005, 0x00f6, 0x7084,
+-      0xa005, 0x01f0, 0x2011, 0x4e18, 0x080c, 0x6fad, 0xa086, 0x0014,
+-      0x11a8, 0x2079, 0xcc80, 0x7a30, 0xa296, 0x1104, 0x1178, 0x7834,
+-      0xa005, 0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70b8, 0xa005, 0x1110,
+-      0x70bb, 0x0001, 0x708f, 0x0008, 0x0029, 0x0010, 0x080c, 0x4e5b,
+-      0x00fe, 0x0005, 0x708f, 0x0009, 0x080c, 0x4ed3, 0x20a3, 0x1105,
+-      0x20a3, 0x0100, 0x3430, 0x080c, 0x4f24, 0x1150, 0x7078, 0xa005,
+-      0x1138, 0x080c, 0x4d51, 0x1170, 0xa085, 0x0001, 0x080c, 0x2a11,
+-      0x20a9, 0x0008, 0x2099, 0xcc8e, 0x26a0, 0x53a6, 0x20a3, 0x0000,
+-      0x20a3, 0x0000, 0x60c3, 0x0014, 0x080c, 0x4e42, 0x0010, 0x080c,
+-      0x4968, 0x0005, 0x00f6, 0x7084, 0xa005, 0x0588, 0x2011, 0x4e18,
+-      0x080c, 0x6fad, 0xa086, 0x0014, 0x1540, 0x2079, 0xcc80, 0x7a30,
+-      0xa296, 0x1105, 0x1510, 0x7834, 0x2011, 0x0100, 0xa21e, 0x1160,
++      0xc0fd, 0xd88c, 0x0108, 0xc0f5, 0x683a, 0xd89c, 0x1130, 0x0126,
++      0x2091, 0x8000, 0x080c, 0x2e46, 0x012e, 0x601f, 0x0001, 0x2001,
++      0x0000, 0x080c, 0x5298, 0xd89c, 0x0138, 0x2001, 0x0004, 0x080c,
++      0x52aa, 0x2009, 0x0003, 0x0030, 0x2001, 0x0002, 0x080c, 0x52aa,
++      0x2009, 0x0002, 0x080c, 0x962c, 0xa085, 0x0001, 0x00ee, 0x00ce,
++      0x00be, 0x001e, 0x1120, 0x2009, 0x0003, 0x0804, 0x3179, 0x7007,
++      0x0003, 0x701b, 0x3f6c, 0x0005, 0x6830, 0xa086, 0x0100, 0x7020,
++      0x2060, 0x1138, 0x2009, 0x0004, 0x6204, 0xa294, 0x00ff, 0x0804,
++      0x3179, 0x2009, 0x0000, 0x6838, 0xd0f4, 0x1904, 0x3154, 0x080c,
++      0x55f7, 0x1108, 0xc185, 0x6000, 0xd0bc, 0x0108, 0xc18d, 0x0804,
++      0x3154, 0x00e6, 0x00d6, 0xa02e, 0x2001, 0xc635, 0x2004, 0xd0ac,
++      0x0130, 0xa026, 0x20a9, 0x00ff, 0x2071, 0xc77b, 0x0030, 0x2021,
++      0x0080, 0x20a9, 0x007f, 0x2071, 0xc7fb, 0x2e04, 0xa005, 0x1130,
++      0x2100, 0xa406, 0x15a0, 0x2428, 0xc5fd, 0x0488, 0x2068, 0x6f10,
++      0x2700, 0xa306, 0x11e0, 0x6e14, 0x2600, 0xa206, 0x11c0, 0x2400,
++      0xa106, 0x1190, 0x2d60, 0xd884, 0x0598, 0x080c, 0x5706, 0x1580,
++      0x2001, 0x4000, 0x0470, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006,
++      0x1538, 0x2001, 0x4000, 0x0428, 0x2001, 0x4007, 0x0410, 0x2400,
++      0xa106, 0x1168, 0x6e14, 0x87ff, 0x1138, 0x86ff, 0x09a0, 0x2001,
++      0xc635, 0x2004, 0xd0ac, 0x1978, 0x2001, 0x4008, 0x0090, 0x8420,
++      0x8e70, 0x1f04, 0x3f9d, 0x85ff, 0x1130, 0x2001, 0x4009, 0x0048,
++      0x2001, 0x0001, 0x0030, 0x080c, 0x52fa, 0x1dd0, 0x6312, 0x6216,
++      0xa006, 0xa005, 0x00de, 0x00ee, 0x0005, 0x81ff, 0x1904, 0x3179,
++      0x080c, 0x403f, 0x0904, 0x3179, 0x6837, 0x0000, 0x6838, 0xc0fd,
++      0x683a, 0x7824, 0xa005, 0x0904, 0x317c, 0xa096, 0x00ff, 0x0120,
++      0xa092, 0x0004, 0x1a04, 0x317c, 0x2010, 0x2d18, 0x080c, 0x2df9,
++      0x0904, 0x3179, 0x7007, 0x0003, 0x701b, 0x400f, 0x0005, 0x6830,
++      0xa086, 0x0100, 0x0904, 0x3179, 0x0804, 0x3154, 0x7924, 0xa18c,
++      0xff00, 0x810f, 0x60d4, 0xd0ac, 0x1120, 0xa182, 0x0080, 0x0a04,
++      0x317c, 0xa182, 0x00ff, 0x1a04, 0x317c, 0x0126, 0x2091, 0x8000,
++      0x080c, 0xacda, 0x1188, 0xa190, 0xc77b, 0x2204, 0xa065, 0x0160,
++      0x080c, 0x4f60, 0x2001, 0xc635, 0x2004, 0xd0ac, 0x0110, 0x6017,
++      0x0000, 0x012e, 0x0804, 0x3154, 0x012e, 0x0804, 0x3179, 0x080c,
++      0x1602, 0x0188, 0xa006, 0x6802, 0x7010, 0xa005, 0x1120, 0x2d00,
++      0x7012, 0x7016, 0x0030, 0x7014, 0x6802, 0x2060, 0x2d00, 0x6006,
++      0x7016, 0xad80, 0x000d, 0x0005, 0x7924, 0x810f, 0xa18c, 0x00ff,
++      0x080c, 0x5356, 0x1130, 0x7e28, 0xa684, 0x3fff, 0xa082, 0x4000,
++      0x0208, 0xa066, 0x8cff, 0x0005, 0x7e24, 0x860f, 0xa18c, 0x00ff,
++      0x080c, 0x5356, 0x1128, 0xa6b4, 0x00ff, 0xa682, 0x4000, 0x0208,
++      0xa066, 0x8cff, 0x0005, 0x0016, 0x7110, 0x81ff, 0x0128, 0x2168,
++      0x6904, 0x080c, 0x1619, 0x0cc8, 0x7112, 0x7116, 0x001e, 0x0005,
++      0x2031, 0x0001, 0x0010, 0x2031, 0x0000, 0x2061, 0xc6f2, 0x6606,
++      0x6112, 0x600e, 0x6226, 0x632a, 0x642e, 0x6532, 0x2c10, 0x080c,
++      0x164d, 0x7007, 0x0002, 0x701b, 0x3154, 0x0005, 0x00f6, 0x0126,
++      0x2091, 0x8000, 0x2079, 0x0000, 0x2001, 0xc6b0, 0x2004, 0xa005,
++      0x1168, 0x0e04, 0x40ae, 0x7818, 0xd084, 0x1140, 0x7a22, 0x7b26,
++      0x7c2a, 0x781b, 0x0001, 0x2091, 0x4080, 0x0408, 0x0016, 0x00c6,
++      0x00e6, 0x2071, 0xc6a2, 0x7138, 0xa182, 0x0010, 0x0218, 0x7030,
++      0x2060, 0x0078, 0x7030, 0xa0e0, 0x0004, 0xac82, 0xc6f2, 0x0210,
++      0x2061, 0xc6b2, 0x2c00, 0x7032, 0x81ff, 0x1108, 0x7036, 0x8108,
++      0x713a, 0x2262, 0x6306, 0x640a, 0x00ee, 0x00ce, 0x001e, 0x012e,
++      0x00fe, 0x0005, 0x00e6, 0x2071, 0xc6a2, 0x7038, 0xa005, 0x0570,
++      0x0126, 0x2091, 0x8000, 0x0e04, 0x4105, 0x00f6, 0x2079, 0x0000,
++      0x7818, 0xd084, 0x1508, 0x00c6, 0x7034, 0x2060, 0x2c04, 0x7822,
++      0x6004, 0x7826, 0x6008, 0x782a, 0x781b, 0x0001, 0x2091, 0x4080,
++      0x7038, 0x8001, 0x703a, 0xa005, 0x1130, 0x7033, 0xc6b2, 0x7037,
++      0xc6b2, 0x00ce, 0x0048, 0xac80, 0x0004, 0xa0fa, 0xc6f2, 0x0210,
++      0x2001, 0xc6b2, 0x7036, 0x00ce, 0x00fe, 0x012e, 0x00ee, 0x0005,
++      0x0026, 0x2001, 0xc653, 0x2004, 0xd0c4, 0x0120, 0x2011, 0x8014,
++      0x080c, 0x4096, 0x002e, 0x0005, 0x81ff, 0x1904, 0x3179, 0x0126,
++      0x2091, 0x8000, 0x6030, 0xc08d, 0xc085, 0xc0ac, 0x6032, 0x080c,
++      0x5f3b, 0x1178, 0x2001, 0xc8e6, 0x2003, 0x0001, 0x2001, 0xc600,
++      0x2003, 0x0001, 0xa085, 0x0001, 0x080c, 0x5f7f, 0x080c, 0x5e73,
++      0x0010, 0x080c, 0x4e74, 0x012e, 0x0804, 0x3154, 0x7824, 0x2008,
++      0xa18c, 0xfffd, 0x1128, 0x61e0, 0xa10d, 0x61e2, 0x0804, 0x3154,
++      0x0804, 0x317c, 0x81ff, 0x1904, 0x3179, 0x6000, 0xa086, 0x0003,
++      0x1904, 0x3179, 0x2001, 0xc653, 0x2004, 0xd0ac, 0x1904, 0x3179,
++      0x080c, 0x4064, 0x0904, 0x317c, 0x6004, 0xa084, 0x00ff, 0xa086,
++      0x0006, 0x1120, 0x7828, 0xa005, 0x0904, 0x3154, 0x00c6, 0x080c,
++      0x403f, 0x00ce, 0x0904, 0x3179, 0x6837, 0x0000, 0x6833, 0x0000,
++      0x6838, 0xc0fd, 0x683a, 0x080c, 0xaebb, 0x0904, 0x3179, 0x7007,
++      0x0003, 0x701b, 0x4174, 0x0005, 0x6830, 0xa086, 0x0100, 0x0904,
++      0x3179, 0x0804, 0x3154, 0x2001, 0xc600, 0x2004, 0xa086, 0x0003,
++      0x1904, 0x3179, 0x7f24, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x080c,
++      0x403f, 0x0904, 0x3179, 0x2009, 0x0000, 0x2031, 0x0000, 0x7023,
++      0x0000, 0x702f, 0x0000, 0xad80, 0x0005, 0x7026, 0x20a0, 0x080c,
++      0x5356, 0x1904, 0x41fa, 0x6004, 0xa0c4, 0x00ff, 0xa8c6, 0x0006,
++      0x0148, 0xa0c4, 0xff00, 0xa8c6, 0x0600, 0x0120, 0x080c, 0x5706,
++      0x1904, 0x41fa, 0xd794, 0x1110, 0xd784, 0x0158, 0xac80, 0x0006,
++      0x2098, 0x3400, 0x20a9, 0x0004, 0x53a3, 0x080c, 0x3e91, 0xd794,
++      0x0148, 0xac80, 0x000a, 0x2098, 0x3400, 0x20a9, 0x0004, 0x53a3,
++      0x080c, 0x3e91, 0xa186, 0x007e, 0x0178, 0xa186, 0x0080, 0x0160,
++      0x6004, 0xa084, 0x00ff, 0xa0c2, 0x0006, 0x1210, 0xc1fd, 0x0020,
++      0x080c, 0x55f7, 0x1108, 0xc1fd, 0x21a2, 0xc1fc, 0xd794, 0x01d8,
++      0xac80, 0x0000, 0x2098, 0x94a0, 0x20a9, 0x0002, 0x53a3, 0xac80,
++      0x0003, 0x20a6, 0x94a0, 0xac80, 0x0004, 0x2098, 0x3400, 0x20a9,
++      0x0002, 0x53a3, 0x080c, 0x3e83, 0xac80, 0x0026, 0x2098, 0x20a9,
++      0x0002, 0x53a3, 0x0008, 0x94a0, 0xd794, 0x0110, 0xa6b0, 0x000b,
++      0xa6b0, 0x0005, 0x8108, 0x2001, 0xc635, 0x2004, 0xd0ac, 0x0118,
++      0xa186, 0x0100, 0x0040, 0xd78c, 0x0120, 0xa186, 0x0100, 0x0170,
++      0x0018, 0xa186, 0x007e, 0x0150, 0xd794, 0x0118, 0xa686, 0x0020,
++      0x0010, 0xa686, 0x0028, 0x0150, 0x0804, 0x4197, 0x86ff, 0x1120,
++      0x7120, 0x810b, 0x0804, 0x3154, 0x702f, 0x0001, 0x711e, 0x7020,
++      0xa600, 0x7022, 0x772a, 0x2061, 0xc6f2, 0x6007, 0x0000, 0x6612,
++      0x7024, 0x600e, 0x6226, 0x632a, 0x642e, 0x6532, 0x2c10, 0x080c,
++      0x164d, 0x7007, 0x0002, 0x701b, 0x4236, 0x0005, 0x702c, 0xa005,
++      0x1170, 0x711c, 0x7024, 0x20a0, 0x7728, 0x2031, 0x0000, 0x2061,
++      0xc6f2, 0x6224, 0x6328, 0x642c, 0x6530, 0x0804, 0x4197, 0x7120,
++      0x810b, 0x0804, 0x3154, 0x2029, 0x007e, 0x7924, 0x7a28, 0x7b2c,
++      0x7c38, 0xa184, 0xff00, 0x8007, 0xa0e2, 0x0020, 0x0a04, 0x317c,
++      0xa502, 0x0a04, 0x317c, 0xa184, 0x00ff, 0xa0e2, 0x0020, 0x0a04,
++      0x317c, 0xa502, 0x0a04, 0x317c, 0xa284, 0xff00, 0x8007, 0xa0e2,
++      0x0020, 0x0a04, 0x317c, 0xa502, 0x0a04, 0x317c, 0xa284, 0x00ff,
++      0xa0e2, 0x0020, 0x0a04, 0x317c, 0xa502, 0x0a04, 0x317c, 0xa384,
++      0xff00, 0x8007, 0xa0e2, 0x0020, 0x0a04, 0x317c, 0xa502, 0x0a04,
++      0x317c, 0xa384, 0x00ff, 0xa0e2, 0x0020, 0x0a04, 0x317c, 0xa502,
++      0x0a04, 0x317c, 0xa484, 0xff00, 0x8007, 0xa0e2, 0x0020, 0x0a04,
++      0x317c, 0xa502, 0x0a04, 0x317c, 0xa484, 0x00ff, 0xa0e2, 0x0020,
++      0x0a04, 0x317c, 0xa502, 0x0a04, 0x317c, 0x2061, 0xc900, 0x6102,
++      0x6206, 0x630a, 0x640e, 0x0804, 0x3154, 0x080c, 0x403f, 0x0904,
++      0x3179, 0x2009, 0x0020, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x080c,
++      0x4080, 0x701b, 0x42b4, 0x0005, 0x0126, 0xade8, 0x000d, 0x2001,
++      0x0138, 0x2003, 0x0000, 0x00e6, 0x2071, 0xc96a, 0x700c, 0x7110,
++      0xa106, 0x1de0, 0x00ee, 0x2091, 0x8000, 0x6800, 0xa005, 0x0904,
++      0x4348, 0x6804, 0x2008, 0xa18c, 0xffe0, 0x1904, 0x4348, 0x680c,
++      0xa005, 0x0904, 0x4348, 0xa082, 0xff01, 0x1a04, 0x4348, 0x6810,
++      0xa082, 0x005c, 0x0a04, 0x4348, 0x6824, 0x2008, 0xa082, 0x0008,
++      0x0a04, 0x4348, 0xa182, 0x0400, 0x1a04, 0x4348, 0x080c, 0x73ad,
++      0x6820, 0x8000, 0x6822, 0x6944, 0x6820, 0xa102, 0x0a04, 0x4348,
++      0x6828, 0x6944, 0x810c, 0xa102, 0x0a04, 0x4348, 0x6840, 0xa082,
++      0x000f, 0x1a04, 0x4348, 0x00d6, 0x6848, 0xa005, 0x0148, 0x2008,
++      0x2069, 0xc600, 0x68e8, 0xa108, 0x68b0, 0xa102, 0x1208, 0x69ea,
++      0x00de, 0x20a9, 0x0020, 0x2d98, 0x2069, 0xc682, 0x2da0, 0x53a3,
++      0x00d6, 0x080c, 0x15e5, 0x2d00, 0x00de, 0x0904, 0x435f, 0x684e,
++      0x080c, 0x7274, 0x05d8, 0x080c, 0x7171, 0x080c, 0x56ae, 0x0580,
++      0x00c6, 0x2061, 0x0100, 0x6104, 0xa18d, 0x8000, 0x6106, 0x610c,
++      0xa18d, 0x0300, 0xa18c, 0xffbf, 0x610e, 0x2001, 0xc8d4, 0x200c,
++      0xa18d, 0x0300, 0xa18c, 0xffbf, 0x2102, 0x6b10, 0x2061, 0xc96a,
++      0x6316, 0x00ce, 0x685f, 0x0000, 0x2001, 0xc696, 0x2003, 0x0000,
++      0x080c, 0x2a95, 0x2001, 0x0138, 0x2102, 0x012e, 0x0804, 0x3154,
++      0x080c, 0x2a95, 0x2001, 0x0138, 0x2102, 0x012e, 0x0804, 0x317c,
++      0x080c, 0x748e, 0x080c, 0x749d, 0x080c, 0x7160, 0x2001, 0xc695,
++      0x206c, 0x080c, 0x1619, 0x2001, 0xc695, 0x2003, 0x0000, 0x2001,
++      0xc63a, 0x2003, 0x0010, 0x080c, 0x2a95, 0x2001, 0x0138, 0x2102,
++      0x012e, 0x0804, 0x3179, 0x2001, 0xc756, 0x2004, 0xa086, 0x0000,
++      0x0904, 0x3179, 0x080c, 0x76a8, 0x1904, 0x3179, 0x2001, 0xc8e5,
++      0x2004, 0xa086, 0xaaaa, 0x0138, 0x2001, 0xc635, 0x2004, 0xa084,
++      0x0028, 0x0904, 0x3170, 0x2001, 0xc600, 0x2004, 0xa086, 0x0003,
++      0x1904, 0x3179, 0x7924, 0x810c, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38,
++      0x080c, 0x403f, 0x0904, 0x3179, 0x080c, 0x4080, 0x701b, 0x4399,
++      0x0005, 0x080c, 0x95a6, 0x0904, 0x3179, 0x2001, 0xc8d3, 0x2004,
++      0x601a, 0x0016, 0x0026, 0x2001, 0xc61c, 0x2004, 0x8007, 0x6934,
++      0xa105, 0x6836, 0x2001, 0xc61d, 0x2004, 0x8007, 0x683a, 0x002e,
++      0x001e, 0x2d00, 0x6012, 0x601f, 0x0001, 0x2009, 0x0040, 0x080c,
++      0x962c, 0x0804, 0x3154, 0x0804, 0x3179, 0x2001, 0xc756, 0x200c,
++      0xa18e, 0x0000, 0x0904, 0x441b, 0x2001, 0x0101, 0x200c, 0xa18c,
++      0x7fff, 0x2102, 0x2001, 0x0103, 0x200c, 0xa18c, 0xfeff, 0xa18c,
++      0xfdff, 0xa18d, 0x0040, 0x2102, 0x2001, 0xc8d4, 0x200c, 0xa18c,
++      0xfeff, 0xa18c, 0xfdff, 0xa18d, 0x0040, 0x2102, 0x2001, 0x0138,
++      0x2003, 0x0000, 0x0126, 0x2091, 0x8000, 0x080c, 0x24f3, 0x012e,
++      0x0128, 0x20a9, 0x006e, 0x1f04, 0x43eb, 0x0ca0, 0x2001, 0xc756,
++      0x2003, 0x0000, 0x080c, 0x2a95, 0x2001, 0x0138, 0x2102, 0x0126,
++      0x2091, 0x8000, 0x2001, 0xc695, 0x200c, 0x81ff, 0x0138, 0x2168,
++      0x080c, 0x1619, 0x2001, 0xc695, 0x2003, 0x0000, 0x2001, 0xc8d3,
++      0x200c, 0x81ff, 0x0138, 0x2168, 0x080c, 0x1619, 0x2001, 0xc8d3,
++      0x2003, 0x0000, 0x2001, 0xc63a, 0x2003, 0x0010, 0x080c, 0x748e,
++      0x080c, 0x749d, 0x012e, 0x0804, 0x3154, 0x7824, 0x00e6, 0x2071,
++      0xc682, 0x00ee, 0x0804, 0x3154, 0x0006, 0x2001, 0xc653, 0x2004,
++      0xd0cc, 0x000e, 0x0005, 0x0006, 0x2001, 0xc672, 0x2004, 0xd0bc,
++      0x000e, 0x0005, 0x6168, 0x7a24, 0x6300, 0x82ff, 0x1118, 0x7926,
++      0x0804, 0x3154, 0x83ff, 0x1904, 0x317c, 0x2001, 0xfff0, 0xa200,
++      0x1a04, 0x317c, 0x2019, 0xffff, 0x606c, 0xa302, 0xa200, 0x0a04,
++      0x317c, 0x7926, 0x626a, 0x0804, 0x3154, 0x2001, 0xc600, 0x2004,
++      0xa086, 0x0003, 0x1904, 0x3179, 0x7c28, 0x7d24, 0x7e38, 0x7f2c,
++      0x080c, 0x403f, 0x0904, 0x3179, 0x2009, 0x0000, 0x2019, 0x0000,
++      0x7023, 0x0000, 0x702f, 0x0000, 0xad80, 0x0003, 0x7026, 0x20a0,
++      0xa1e0, 0xc77b, 0x2c64, 0x8cff, 0x01b8, 0x6004, 0xa084, 0x00ff,
++      0xa086, 0x0006, 0x0130, 0x6004, 0xa084, 0xff00, 0xa086, 0x0600,
++      0x1158, 0x6014, 0x20a2, 0x94a0, 0x6010, 0x8007, 0xa105, 0x8007,
++      0x20a2, 0x94a0, 0xa398, 0x0002, 0x8108, 0xa182, 0x00ff, 0x0120,
++      0xa386, 0x002a, 0x0148, 0x08e0, 0x83ff, 0x1120, 0x7120, 0x810c,
++      0x0804, 0x3154, 0x702f, 0x0001, 0x711e, 0x7020, 0xa300, 0x7022,
++      0x2061, 0xc6f2, 0x6007, 0x0000, 0x6312, 0x7024, 0x600e, 0x6426,
++      0x652a, 0x662e, 0x6732, 0x2c10, 0x080c, 0x164d, 0x7007, 0x0002,
++      0x701b, 0x44ab, 0x0005, 0x702c, 0xa005, 0x1168, 0x711c, 0x7024,
++      0x20a0, 0x2019, 0x0000, 0x2061, 0xc6f2, 0x6424, 0x6528, 0x662c,
++      0x6730, 0x0804, 0x4468, 0x7120, 0x810c, 0x0804, 0x3154, 0x81ff,
++      0x1904, 0x3179, 0x60d4, 0xd0ac, 0x1118, 0xd09c, 0x0904, 0x3179,
++      0x080c, 0x403f, 0x0904, 0x3179, 0x7924, 0x7a2c, 0x7b28, 0x7c3c,
++      0x7d38, 0x080c, 0x4080, 0x701b, 0x44d6, 0x0005, 0x00d6, 0xade8,
++      0x000d, 0x6828, 0xa0be, 0x7000, 0x0148, 0xa0be, 0x7100, 0x0130,
++      0xa0be, 0x7200, 0x0118, 0x00de, 0x0804, 0x317c, 0x6820, 0x6924,
++      0x080c, 0x29c7, 0x1510, 0x080c, 0x52fa, 0x11f8, 0x7122, 0x6612,
++      0x6516, 0x6e18, 0x00c6, 0x080c, 0x403f, 0x01b8, 0x080c, 0x403f,
++      0x01a0, 0x00ce, 0x00de, 0x6837, 0x0000, 0x6838, 0xc0fd, 0x683a,
++      0x6823, 0x0000, 0x6804, 0x2068, 0x080c, 0xae0e, 0x0904, 0x3179,
++      0x7007, 0x0003, 0x701b, 0x4510, 0x0005, 0x00de, 0x0804, 0x3179,
++      0x7120, 0x080c, 0x2f41, 0x6820, 0xa086, 0x8001, 0x0904, 0x3179,
++      0x2d00, 0x701e, 0x6804, 0xa080, 0x0002, 0x0006, 0x20a9, 0x002a,
++      0x2098, 0x20a0, 0x080c, 0x4ee4, 0x000e, 0xade8, 0x000d, 0x6a08,
++      0x6b0c, 0x6c10, 0x6d14, 0x2061, 0xc6f2, 0x6007, 0x0000, 0x6e00,
++      0x6f28, 0xa7c6, 0x7000, 0x1108, 0x0018, 0xa7c6, 0x7100, 0x1140,
++      0xa6c2, 0x0004, 0x0a04, 0x317c, 0x2009, 0x0004, 0x0804, 0x4083,
++      0xa7c6, 0x7200, 0x1904, 0x317c, 0xa6c2, 0x0054, 0x0a04, 0x317c,
++      0x600e, 0x6013, 0x002a, 0x6226, 0x632a, 0x642e, 0x6532, 0x2c10,
++      0x080c, 0x164d, 0x7007, 0x0002, 0x701b, 0x4557, 0x0005, 0x701c,
++      0x2068, 0x6804, 0xa080, 0x0001, 0x2004, 0xa080, 0x0002, 0x0006,
++      0x20a9, 0x002a, 0x2098, 0x20a0, 0x080c, 0x4ee4, 0x000e, 0x2009,
++      0x002a, 0x2061, 0xc6f2, 0x6224, 0x6328, 0x642c, 0x6530, 0x0804,
++      0x4083, 0x81ff, 0x1904, 0x3179, 0x792c, 0x2001, 0xc8e7, 0x2102,
++      0x080c, 0x4054, 0x0904, 0x317c, 0x080c, 0x541c, 0x0904, 0x3179,
++      0x0126, 0x2091, 0x8000, 0x080c, 0x554e, 0x012e, 0x0804, 0x3154,
++      0x7824, 0xd08c, 0x1118, 0xd084, 0x0904, 0x3bf0, 0x080c, 0x4064,
++      0x0904, 0x317c, 0x00c6, 0x080c, 0x403f, 0x00ce, 0x1120, 0x2009,
++      0x0002, 0x0804, 0x3179, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006,
++      0x0128, 0xa08e, 0x0004, 0x0110, 0xa08e, 0x0005, 0x15b8, 0x7824,
++      0xd08c, 0x0120, 0x6000, 0xc08c, 0x6002, 0x0030, 0x2001, 0xc653,
++      0x2004, 0xd0b4, 0x0904, 0x3c2c, 0x7824, 0xa084, 0xff00, 0xa08e,
++      0x7e00, 0x0904, 0x3c2c, 0xa08e, 0x7f00, 0x0904, 0x3c2c, 0xa08e,
++      0x8000, 0x0904, 0x3c2c, 0x6000, 0xd08c, 0x1904, 0x3c2c, 0x6837,
++      0x0000, 0x6838, 0xc0fd, 0x683a, 0x080c, 0xae2a, 0x1120, 0x2009,
++      0x0003, 0x0804, 0x3179, 0x7007, 0x0003, 0x701b, 0x45d8, 0x0005,
++      0x080c, 0x4064, 0x0904, 0x317c, 0x0804, 0x3c2c, 0x2009, 0xc631,
++      0x210c, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x3179, 0x2001,
++      0xc600, 0x2004, 0xa086, 0x0003, 0x0120, 0x2009, 0x0007, 0x0804,
++      0x3179, 0x2001, 0xc653, 0x2004, 0xd0ac, 0x0120, 0x2009, 0x0008,
++      0x0804, 0x3179, 0x609c, 0xd0a4, 0x1118, 0xd0ac, 0x1904, 0x3c2c,
++      0x6837, 0x0000, 0x6833, 0x0000, 0x6838, 0xc0fd, 0x683a, 0x080c,
++      0xaebb, 0x1120, 0x2009, 0x0003, 0x0804, 0x3179, 0x7007, 0x0003,
++      0x701b, 0x4613, 0x0005, 0x6830, 0xa086, 0x0100, 0x1120, 0x2009,
++      0x0004, 0x0804, 0x3179, 0x080c, 0x4064, 0x0904, 0x317c, 0x0804,
++      0x45a7, 0x81ff, 0x2009, 0x0001, 0x1904, 0x3179, 0x6000, 0xa086,
++      0x0003, 0x2009, 0x0007, 0x1904, 0x3179, 0x2001, 0xc653, 0x2004,
++      0xd0ac, 0x2009, 0x0008, 0x1904, 0x3179, 0x080c, 0x4064, 0x0904,
++      0x317c, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x2009, 0x0009,
++      0x1904, 0x3179, 0x00c6, 0x080c, 0x403f, 0x00ce, 0x2009, 0x0002,
++      0x0904, 0x3179, 0x6837, 0x0000, 0x6833, 0x0000, 0x6838, 0xc0fd,
++      0x683a, 0x7928, 0xa194, 0xff00, 0xa18c, 0x00ff, 0xa006, 0x82ff,
++      0x1128, 0xc0ed, 0x6952, 0x792c, 0x6956, 0x0048, 0xa28e, 0x0100,
++      0x1904, 0x317c, 0xc0e5, 0x6853, 0x0000, 0x6857, 0x0000, 0x683e,
++      0x080c, 0xb078, 0x2009, 0x0003, 0x0904, 0x3179, 0x7007, 0x0003,
++      0x701b, 0x4673, 0x0005, 0x6830, 0xa086, 0x0100, 0x2009, 0x0004,
++      0x0904, 0x3179, 0x0804, 0x3154, 0x81ff, 0x2009, 0x0001, 0x1904,
++      0x3179, 0x6000, 0xa086, 0x0003, 0x2009, 0x0007, 0x1904, 0x3179,
++      0x080c, 0x4064, 0x0904, 0x317c, 0x6004, 0xa084, 0x00ff, 0xa086,
++      0x0006, 0x2009, 0x0009, 0x1904, 0x3179, 0x00c6, 0x080c, 0x403f,
++      0x00ce, 0x2009, 0x0002, 0x0904, 0x3179, 0xad80, 0x000f, 0x2009,
++      0x0008, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x080c, 0x4080, 0x701b,
++      0x46aa, 0x0005, 0x00d6, 0xade8, 0x000f, 0x6800, 0xa086, 0x0500,
++      0x1140, 0x6804, 0xa005, 0x1128, 0x6808, 0xa084, 0xff00, 0x1108,
++      0x0018, 0x00de, 0x1904, 0x317c, 0x00de, 0x6837, 0x0000, 0x6833,
++      0x0000, 0x6838, 0xc0fd, 0x683a, 0x00c6, 0x080c, 0x4064, 0x1118,
++      0x00ce, 0x0804, 0x317c, 0x080c, 0xb0c7, 0x2009, 0x0003, 0x00ce,
++      0x0904, 0x3179, 0x7007, 0x0003, 0x701b, 0x46d7, 0x0005, 0x6830,
++      0xa086, 0x0100, 0x2009, 0x0004, 0x0904, 0x3179, 0x0804, 0x3154,
++      0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x3179, 0x6000, 0xa086,
++      0x0003, 0x0120, 0x2009, 0x0007, 0x0804, 0x3179, 0x7e24, 0x860f,
++      0xa18c, 0x00ff, 0xa6b4, 0x00ff, 0x080c, 0x5356, 0x1904, 0x317c,
++      0xa186, 0x007f, 0x0150, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006,
++      0x0120, 0x2009, 0x0009, 0x0804, 0x3179, 0x00c6, 0x080c, 0x403f,
++      0x00ce, 0x1120, 0x2009, 0x0002, 0x0804, 0x3179, 0x6837, 0x0000,
++      0x6838, 0xc0fd, 0x683a, 0x2001, 0x0100, 0x8007, 0x680a, 0x080c,
++      0xae45, 0x1120, 0x2009, 0x0003, 0x0804, 0x3179, 0x7007, 0x0003,
++      0x701b, 0x4723, 0x0005, 0x6808, 0x8007, 0xa086, 0x0100, 0x1120,
++      0x2009, 0x0004, 0x0804, 0x3179, 0x68b0, 0x6836, 0x6810, 0x8007,
++      0xa084, 0x00ff, 0x800c, 0x6814, 0x8007, 0xa084, 0x00ff, 0x8004,
++      0xa080, 0x0002, 0xa108, 0xad80, 0x0004, 0x7a2c, 0x7b28, 0x7c3c,
++      0x7d38, 0x0804, 0x4083, 0x080c, 0x403f, 0x1120, 0x2009, 0x0002,
++      0x0804, 0x3179, 0x7924, 0xa194, 0xff00, 0xa18c, 0x00ff, 0x8217,
++      0x82ff, 0x0110, 0x0804, 0x317c, 0x2009, 0x001a, 0x7a2c, 0x7b28,
++      0x7c3c, 0x7d38, 0x080c, 0x4080, 0x701b, 0x475f, 0x0005, 0x2001,
++      0xc62a, 0x2003, 0x0001, 0xad80, 0x000d, 0x2098, 0x20a9, 0x001a,
++      0x20a1, 0xc90d, 0x53a3, 0x0804, 0x3154, 0x080c, 0x403f, 0x1120,
++      0x2009, 0x0002, 0x0804, 0x3179, 0x7924, 0xa194, 0xff00, 0xa18c,
++      0x00ff, 0x8217, 0x82ff, 0x0110, 0x0804, 0x317c, 0x2099, 0xc90d,
++      0x20a0, 0x20a9, 0x001a, 0x53a3, 0x2009, 0x001a, 0x7a2c, 0x7b28,
++      0x7c3c, 0x7d38, 0x0804, 0x4083, 0x7824, 0xa08a, 0x1000, 0x1a04,
++      0x317c, 0x0126, 0x2091, 0x8000, 0x8003, 0x800b, 0x810b, 0xa108,
++      0x00c6, 0x2061, 0xc93a, 0x6142, 0x00ce, 0x012e, 0x0804, 0x3154,
++      0x00c6, 0x080c, 0x5f3b, 0x1188, 0x2001, 0xc8e6, 0x2003, 0x0001,
++      0x2001, 0xc600, 0x2003, 0x0001, 0xa085, 0x0001, 0x080c, 0x5f7f,
++      0x080c, 0x5e73, 0x080c, 0x1519, 0x0038, 0x2061, 0xc600, 0x6030,
++      0xc09d, 0x6032, 0x080c, 0x4e74, 0x00ce, 0x0005, 0x0126, 0x2091,
++      0x8000, 0x00c6, 0x2061, 0xc93a, 0x7924, 0x6152, 0x614e, 0x6057,
++      0x0000, 0x604b, 0x0009, 0x7838, 0x606a, 0x783c, 0x6066, 0x7828,
++      0x6062, 0x782c, 0x605e, 0x2061, 0xc8e8, 0x2001, 0xc94f, 0x600e,
++      0x6013, 0x0001, 0x6017, 0x0002, 0x6007, 0x0000, 0x6037, 0x0000,
++      0x00ce, 0x012e, 0x0804, 0x3154, 0x0126, 0x00c6, 0x00e6, 0x2061,
++      0x0100, 0x2071, 0xc600, 0x6044, 0xd0a4, 0x11b0, 0xd084, 0x0118,
++      0x080c, 0x495b, 0x0068, 0xd08c, 0x0118, 0x080c, 0x487c, 0x0040,
++      0xd094, 0x0118, 0x080c, 0x484d, 0x0018, 0xd09c, 0x0108, 0x0061,
++      0x00ee, 0x00ce, 0x012e, 0x0005, 0x0016, 0x6128, 0xd19c, 0x1110,
++      0xc19d, 0x612a, 0x001e, 0x0ca0, 0x624c, 0xa286, 0xf0f0, 0x1150,
++      0x6048, 0xa086, 0xf0f0, 0x0130, 0x624a, 0x6043, 0x0090, 0x6043,
++      0x0010, 0x0490, 0xa294, 0xff00, 0xa296, 0xf700, 0x0178, 0x7134,
++      0xd1a4, 0x1160, 0x6240, 0xa295, 0x0100, 0x6242, 0xa294, 0x0010,
++      0x0128, 0x2009, 0x00f7, 0x080c, 0x4f04, 0x00f0, 0x6040, 0xa084,
++      0x0010, 0xa085, 0x0140, 0x6042, 0x6043, 0x0000, 0x707b, 0x0000,
++      0x7097, 0x0001, 0x70bb, 0x0000, 0x70d7, 0x0000, 0x2009, 0xcdc0,
++      0x200b, 0x0000, 0x708b, 0x0000, 0x707f, 0x000a, 0x2009, 0x000a,
++      0x2011, 0x4e2a, 0x080c, 0x704f, 0x0005, 0x0156, 0x2001, 0xc674,
++      0x2004, 0xd08c, 0x0110, 0x7053, 0xffff, 0x707c, 0xa005, 0x1510,
++      0x2011, 0x4e2a, 0x080c, 0x6fc6, 0x6040, 0xa094, 0x0010, 0xa285,
++      0x0020, 0x6042, 0x20a9, 0x00c8, 0x6044, 0xd08c, 0x1168, 0x1f04,
++      0x4864, 0x6242, 0x708f, 0x0000, 0x6040, 0xa094, 0x0010, 0xa285,
++      0x0080, 0x6042, 0x6242, 0x0030, 0x6242, 0x708f, 0x0000, 0x7083,
++      0x0000, 0x0000, 0x015e, 0x0005, 0x7080, 0xa08a, 0x0003, 0x1210,
++      0x0023, 0x0010, 0x080c, 0x1519, 0x0005, 0x4888, 0x48d8, 0x495a,
++      0x00f6, 0x7083, 0x0001, 0x20e1, 0xa000, 0xe000, 0x20e1, 0x8700,
++      0x080c, 0x25bb, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x2079, 0xcc00,
++      0x207b, 0x2200, 0x7807, 0x00ef, 0x780b, 0x0000, 0x780f, 0x00ef,
++      0x7813, 0x0138, 0x7817, 0x0000, 0x781b, 0x0000, 0x781f, 0x0000,
++      0x7823, 0xffff, 0x7827, 0xffff, 0x782b, 0x0000, 0x782f, 0x0000,
++      0x2079, 0xcc0c, 0x207b, 0x1101, 0x7807, 0x0000, 0x2099, 0xc605,
++      0x20a1, 0xcc0e, 0x20a9, 0x0004, 0x53a3, 0x2079, 0xcc12, 0x207b,
++      0x0000, 0x7807, 0x0000, 0x2099, 0xcc00, 0x20a1, 0x020b, 0x20a9,
++      0x0014, 0x53a6, 0x60c3, 0x000c, 0x600f, 0x0000, 0x080c, 0x4e5b,
++      0x00fe, 0x7087, 0x0000, 0x6043, 0x0008, 0x6043, 0x0000, 0x0005,
++      0x00d6, 0x7084, 0x7087, 0x0000, 0xa025, 0x0904, 0x4942, 0x6020,
++      0xd0b4, 0x1904, 0x4940, 0x7194, 0x81ff, 0x0904, 0x4930, 0xa486,
++      0x000c, 0x1904, 0x493b, 0xa480, 0x0018, 0x8004, 0x20a8, 0x2011,
++      0xcc80, 0x2019, 0xcc00, 0x220c, 0x2304, 0xa106, 0x11b8, 0x8210,
++      0x8318, 0x1f04, 0x48f3, 0x6043, 0x0004, 0x608b, 0xbc94, 0x608f,
++      0xf0f0, 0x6043, 0x0006, 0x7083, 0x0002, 0x708f, 0x0002, 0x2009,
++      0x07d0, 0x2011, 0x4e31, 0x080c, 0x704f, 0x0490, 0x2069, 0xcc80,
++      0x6930, 0xa18e, 0x1101, 0x1538, 0x6834, 0xa005, 0x1520, 0x6900,
++      0xa18c, 0x00ff, 0x1118, 0x6804, 0xa005, 0x0190, 0x2011, 0xcc8e,
++      0x2019, 0xc605, 0x20a9, 0x0004, 0x220c, 0x2304, 0xa102, 0x0230,
++      0x1190, 0x8210, 0x8318, 0x1f04, 0x4924, 0x0068, 0x7097, 0x0000,
++      0x20e1, 0x9080, 0x20e1, 0x4000, 0x2099, 0xcc80, 0x20a1, 0x020b,
++      0x20a9, 0x0014, 0x53a6, 0x6043, 0x0008, 0x6043, 0x0000, 0x0010,
++      0x00de, 0x0005, 0x6040, 0xa085, 0x0100, 0x6042, 0x6020, 0xd0b4,
++      0x1db8, 0x60c3, 0x000c, 0x2011, 0xc931, 0x2013, 0x0000, 0x7087,
++      0x0000, 0x20e1, 0x9080, 0x60a3, 0x0056, 0x60a7, 0x9575, 0x080c,
++      0x8c05, 0x0c30, 0x0005, 0x708c, 0xa08a, 0x001d, 0x1210, 0x0023,
++      0x0010, 0x080c, 0x1519, 0x0005, 0x498e, 0x499d, 0x49c5, 0x49de,
++      0x4a02, 0x4a2a, 0x4a4e, 0x4a7f, 0x4aa3, 0x4acb, 0x4b02, 0x4b2a,
++      0x4b46, 0x4b5c, 0x4b7c, 0x4b8f, 0x4b97, 0x4bc7, 0x4beb, 0x4c13,
++      0x4c37, 0x4c68, 0x4ca5, 0x4cd4, 0x4cf0, 0x4d2f, 0x4d4f, 0x4d68,
++      0x4d69, 0x00c6, 0x2061, 0xc600, 0x6003, 0x0007, 0x2061, 0x0100,
++      0x6004, 0xa084, 0xfff9, 0x6006, 0x00ce, 0x0005, 0x608b, 0xbc94,
++      0x608f, 0xf0f0, 0x6043, 0x0002, 0x708f, 0x0001, 0x2009, 0x07d0,
++      0x2011, 0x4e31, 0x080c, 0x704f, 0x0005, 0x00f6, 0x7084, 0xa086,
++      0x0014, 0x1508, 0x6043, 0x0000, 0x6020, 0xd0b4, 0x11e0, 0x2079,
++      0xcc80, 0x7a30, 0xa296, 0x1102, 0x11a0, 0x7834, 0xa005, 0x1188,
+       0x7a38, 0xd2fc, 0x0128, 0x70b8, 0xa005, 0x1110, 0x70bb, 0x0001,
+-      0x708f, 0x000a, 0x00b1, 0x0098, 0xa005, 0x1178, 0x7a38, 0xd2fc,
+-      0x0128, 0x70b8, 0xa005, 0x1110, 0x70bb, 0x0001, 0x708b, 0x0000,
+-      0x708f, 0x000e, 0x080c, 0x4b63, 0x0010, 0x080c, 0x4e5b, 0x00fe,
+-      0x0005, 0x708f, 0x000b, 0x2011, 0xcc0e, 0x22a0, 0x20a9, 0x0040,
+-      0x2019, 0xffff, 0x43a4, 0x20a9, 0x0002, 0x2009, 0x0000, 0x41a4,
+-      0x080c, 0x4ed3, 0x20a3, 0x1106, 0x20a3, 0x0000, 0x080c, 0x4f24,
+-      0x0118, 0x2013, 0x0000, 0x0020, 0x7054, 0xa085, 0x0100, 0x2012,
+-      0x2298, 0x20a9, 0x0042, 0x53a6, 0x60c3, 0x0084, 0x080c, 0x4e42,
+-      0x0005, 0x00f6, 0x7084, 0xa005, 0x01b0, 0x2011, 0x4e18, 0x080c,
+-      0x6fad, 0xa086, 0x0084, 0x1168, 0x2079, 0xcc80, 0x7a30, 0xa296,
+-      0x1106, 0x1138, 0x7834, 0xa005, 0x1120, 0x708f, 0x000c, 0x0029,
+-      0x0010, 0x080c, 0x4e5b, 0x00fe, 0x0005, 0x708f, 0x000d, 0x080c,
+-      0x4ed3, 0x20a3, 0x1107, 0x20a3, 0x0000, 0x2099, 0xcc8e, 0x20a9,
+-      0x0040, 0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0084,
+-      0x080c, 0x4e42, 0x0005, 0x00f6, 0x7084, 0xa005, 0x01d0, 0x2011,
+-      0x4e18, 0x080c, 0x6fad, 0xa086, 0x0084, 0x1188, 0x2079, 0xcc80,
+-      0x7a30, 0xa296, 0x1107, 0x1158, 0x7834, 0xa005, 0x1140, 0x708b,
+-      0x0001, 0x080c, 0x4ec5, 0x708f, 0x000e, 0x0029, 0x0010, 0x080c,
+-      0x4e5b, 0x00fe, 0x0005, 0x708f, 0x000f, 0x7087, 0x0000, 0x608b,
+-      0xbc85, 0x608f, 0xb5b5, 0x6043, 0x0005, 0x6043, 0x0004, 0x2009,
+-      0x07d0, 0x2011, 0x4e18, 0x080c, 0x6fa1, 0x0005, 0x7084, 0xa005,
+-      0x0120, 0x2011, 0x4e18, 0x080c, 0x6fad, 0x0005, 0x708f, 0x0011,
+-      0x080c, 0x4f24, 0x11a0, 0x7170, 0x81ff, 0x0188, 0x2009, 0x0000,
+-      0x7074, 0xa084, 0x00ff, 0x080c, 0x29c7, 0xa186, 0x007e, 0x0138,
+-      0xa186, 0x0080, 0x0120, 0x2011, 0xcc8e, 0x080c, 0x4ddc, 0x20e1,
+-      0x9080, 0x20e1, 0x4000, 0x2099, 0xcc80, 0x20a1, 0x020b, 0x7484,
+-      0xa480, 0x0018, 0xa080, 0x0007, 0xa084, 0x03f8, 0x8004, 0x20a8,
+-      0x53a6, 0x60c3, 0x0014, 0x080c, 0x4e42, 0x0005, 0x00f6, 0x7084,
+-      0xa005, 0x01f0, 0x2011, 0x4e18, 0x080c, 0x6fad, 0xa086, 0x0014,
+-      0x11a8, 0x2079, 0xcc80, 0x7a30, 0xa296, 0x1103, 0x1178, 0x7834,
++      0x2011, 0x4e31, 0x080c, 0x6fc6, 0x708f, 0x0010, 0x080c, 0x4b97,
++      0x0010, 0x080c, 0x4e74, 0x00fe, 0x0005, 0x708f, 0x0003, 0x6043,
++      0x0004, 0x2011, 0x4e31, 0x080c, 0x6fc6, 0x080c, 0x4eec, 0x20a3,
++      0x1102, 0x20a3, 0x0000, 0x20a9, 0x000a, 0x20a3, 0x0000, 0x1f04,
++      0x49d5, 0x60c3, 0x0014, 0x080c, 0x4e5b, 0x0005, 0x00f6, 0x7084,
++      0xa005, 0x01f0, 0x2011, 0x4e31, 0x080c, 0x6fc6, 0xa086, 0x0014,
++      0x11a8, 0x2079, 0xcc80, 0x7a30, 0xa296, 0x1102, 0x1178, 0x7834,
+       0xa005, 0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70b8, 0xa005, 0x1110,
+-      0x70bb, 0x0001, 0x708f, 0x0012, 0x0029, 0x0010, 0x080c, 0x4e5b,
+-      0x00fe, 0x0005, 0x708f, 0x0013, 0x080c, 0x4edf, 0x20a3, 0x1103,
+-      0x20a3, 0x0000, 0x3430, 0x2011, 0xcc8e, 0x080c, 0x4f24, 0x1160,
++      0x70bb, 0x0001, 0x708f, 0x0004, 0x0029, 0x0010, 0x080c, 0x4e74,
++      0x00fe, 0x0005, 0x708f, 0x0005, 0x080c, 0x4eec, 0x20a3, 0x1103,
++      0x20a3, 0x0000, 0x3430, 0x2011, 0xcc8e, 0x080c, 0x4f3d, 0x1160,
+       0x7078, 0xa005, 0x1148, 0x7150, 0xa186, 0xffff, 0x0128, 0x080c,
+-      0x4ddc, 0x0110, 0x080c, 0x4f02, 0x20a9, 0x0008, 0x2298, 0x26a0,
++      0x4df5, 0x0110, 0x080c, 0x4f1b, 0x20a9, 0x0008, 0x2298, 0x26a0,
+       0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0014, 0x080c,
+-      0x4e42, 0x0005, 0x00f6, 0x7084, 0xa005, 0x01f0, 0x2011, 0x4e18,
+-      0x080c, 0x6fad, 0xa086, 0x0014, 0x11a8, 0x2079, 0xcc80, 0x7a30,
+-      0xa296, 0x1104, 0x1178, 0x7834, 0xa005, 0x1160, 0x7a38, 0xd2fc,
+-      0x0128, 0x70b8, 0xa005, 0x1110, 0x70bb, 0x0001, 0x708f, 0x0014,
+-      0x0029, 0x0010, 0x080c, 0x4e5b, 0x00fe, 0x0005, 0x708f, 0x0015,
+-      0x080c, 0x4edf, 0x20a3, 0x1104, 0x20a3, 0x0000, 0x3430, 0x2011,
+-      0xcc8e, 0x080c, 0x4f24, 0x11a8, 0x7078, 0xa005, 0x1190, 0x7158,
++      0x4e5b, 0x0005, 0x00f6, 0x7084, 0xa005, 0x01f0, 0x2011, 0x4e31,
++      0x080c, 0x6fc6, 0xa086, 0x0014, 0x11a8, 0x2079, 0xcc80, 0x7a30,
++      0xa296, 0x1103, 0x1178, 0x7834, 0xa005, 0x1160, 0x7a38, 0xd2fc,
++      0x0128, 0x70b8, 0xa005, 0x1110, 0x70bb, 0x0001, 0x708f, 0x0006,
++      0x0029, 0x0010, 0x080c, 0x4e74, 0x00fe, 0x0005, 0x708f, 0x0007,
++      0x080c, 0x4eec, 0x20a3, 0x1104, 0x20a3, 0x0000, 0x3430, 0x2011,
++      0xcc8e, 0x080c, 0x4f3d, 0x11a8, 0x7078, 0xa005, 0x1190, 0x7158,
+       0xa186, 0xffff, 0x0170, 0xa180, 0x2f6e, 0x200d, 0xa18c, 0xff00,
+-      0x810f, 0x080c, 0x4ddc, 0x0128, 0x080c, 0x4412, 0x0110, 0x080c,
++      0x810f, 0x080c, 0x4df5, 0x0128, 0x080c, 0x442b, 0x0110, 0x080c,
+       0x2a11, 0x20a9, 0x0008, 0x2298, 0x26a0, 0x53a6, 0x20a3, 0x0000,
+-      0x20a3, 0x0000, 0x60c3, 0x0014, 0x080c, 0x4e42, 0x0005, 0x00f6,
+-      0x7084, 0xa005, 0x05b8, 0x2011, 0x4e18, 0x080c, 0x6fad, 0xa086,
+-      0x0014, 0x1570, 0x2079, 0xcc80, 0x7a30, 0xa296, 0x1105, 0x1540,
+-      0x7834, 0x2011, 0x0100, 0xa21e, 0x1148, 0x7a38, 0xd2fc, 0x0128,
+-      0x70b8, 0xa005, 0x1110, 0x70bb, 0x0001, 0x0060, 0xa005, 0x11c0,
+-      0x7a38, 0xd2fc, 0x0128, 0x70b8, 0xa005, 0x1110, 0x70bb, 0x0001,
+-      0x708b, 0x0000, 0x7a38, 0xd2f4, 0x0138, 0x2001, 0xc674, 0x2004,
+-      0xd0a4, 0x1110, 0x70d7, 0x0008, 0x708f, 0x0016, 0x0029, 0x0010,
+-      0x080c, 0x4e5b, 0x00fe, 0x0005, 0x20e1, 0x9080, 0x20e1, 0x4000,
+-      0x2099, 0xcc80, 0x20a1, 0x020b, 0x20a9, 0x000e, 0x53a6, 0x3430,
+-      0x2011, 0xcc8e, 0x708f, 0x0017, 0x080c, 0x4f24, 0x1150, 0x7078,
+-      0xa005, 0x1138, 0x080c, 0x4d51, 0x1170, 0xa085, 0x0001, 0x080c,
++      0x20a3, 0x0000, 0x60c3, 0x0014, 0x080c, 0x4e5b, 0x0005, 0x00f6,
++      0x7084, 0xa005, 0x01f0, 0x2011, 0x4e31, 0x080c, 0x6fc6, 0xa086,
++      0x0014, 0x11a8, 0x2079, 0xcc80, 0x7a30, 0xa296, 0x1104, 0x1178,
++      0x7834, 0xa005, 0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70b8, 0xa005,
++      0x1110, 0x70bb, 0x0001, 0x708f, 0x0008, 0x0029, 0x0010, 0x080c,
++      0x4e74, 0x00fe, 0x0005, 0x708f, 0x0009, 0x080c, 0x4eec, 0x20a3,
++      0x1105, 0x20a3, 0x0100, 0x3430, 0x080c, 0x4f3d, 0x1150, 0x7078,
++      0xa005, 0x1138, 0x080c, 0x4d6a, 0x1170, 0xa085, 0x0001, 0x080c,
+       0x2a11, 0x20a9, 0x0008, 0x2099, 0xcc8e, 0x26a0, 0x53a6, 0x20a3,
+-      0x0000, 0x20a3, 0x0000, 0x60c3, 0x0014, 0x080c, 0x4e42, 0x0010,
+-      0x080c, 0x4968, 0x0005, 0x00f6, 0x7084, 0xa005, 0x01b0, 0x2011,
+-      0x4e18, 0x080c, 0x6fad, 0xa086, 0x0084, 0x1168, 0x2079, 0xcc80,
+-      0x7a30, 0xa296, 0x1106, 0x1138, 0x7834, 0xa005, 0x1120, 0x708f,
+-      0x0018, 0x0029, 0x0010, 0x080c, 0x4e5b, 0x00fe, 0x0005, 0x708f,
+-      0x0019, 0x080c, 0x4edf, 0x20a3, 0x1106, 0x20a3, 0x0000, 0x3430,
+-      0x2099, 0xcc8e, 0x2039, 0xcc0e, 0x27a0, 0x20a9, 0x0040, 0x53a3,
+-      0x080c, 0x4f24, 0x11e8, 0x2728, 0x2514, 0x8207, 0xa084, 0x00ff,
+-      0x8000, 0x2018, 0xa294, 0x00ff, 0x8007, 0xa205, 0x202a, 0x7054,
+-      0x2310, 0x8214, 0xa2a0, 0xcc0e, 0x2414, 0xa38c, 0x0001, 0x0118,
+-      0xa294, 0xff00, 0x0018, 0xa294, 0x00ff, 0x8007, 0xa215, 0x2222,
+-      0x2798, 0x26a0, 0x20a9, 0x0040, 0x53a6, 0x20a3, 0x0000, 0x20a3,
+-      0x0000, 0x60c3, 0x0084, 0x080c, 0x4e42, 0x0005, 0x00f6, 0x7084,
+-      0xa005, 0x01d0, 0x2011, 0x4e18, 0x080c, 0x6fad, 0xa086, 0x0084,
+-      0x1188, 0x2079, 0xcc80, 0x7a30, 0xa296, 0x1107, 0x1158, 0x7834,
+-      0xa005, 0x1140, 0x708b, 0x0001, 0x080c, 0x4ec5, 0x708f, 0x001a,
+-      0x0029, 0x0010, 0x080c, 0x4e5b, 0x00fe, 0x0005, 0x708f, 0x001b,
++      0x0000, 0x20a3, 0x0000, 0x60c3, 0x0014, 0x080c, 0x4e5b, 0x0010,
++      0x080c, 0x4981, 0x0005, 0x00f6, 0x7084, 0xa005, 0x0588, 0x2011,
++      0x4e31, 0x080c, 0x6fc6, 0xa086, 0x0014, 0x1540, 0x2079, 0xcc80,
++      0x7a30, 0xa296, 0x1105, 0x1510, 0x7834, 0x2011, 0x0100, 0xa21e,
++      0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70b8, 0xa005, 0x1110, 0x70bb,
++      0x0001, 0x708f, 0x000a, 0x00b1, 0x0098, 0xa005, 0x1178, 0x7a38,
++      0xd2fc, 0x0128, 0x70b8, 0xa005, 0x1110, 0x70bb, 0x0001, 0x708b,
++      0x0000, 0x708f, 0x000e, 0x080c, 0x4b7c, 0x0010, 0x080c, 0x4e74,
++      0x00fe, 0x0005, 0x708f, 0x000b, 0x2011, 0xcc0e, 0x22a0, 0x20a9,
++      0x0040, 0x2019, 0xffff, 0x43a4, 0x20a9, 0x0002, 0x2009, 0x0000,
++      0x41a4, 0x080c, 0x4eec, 0x20a3, 0x1106, 0x20a3, 0x0000, 0x080c,
++      0x4f3d, 0x0118, 0x2013, 0x0000, 0x0020, 0x7054, 0xa085, 0x0100,
++      0x2012, 0x2298, 0x20a9, 0x0042, 0x53a6, 0x60c3, 0x0084, 0x080c,
++      0x4e5b, 0x0005, 0x00f6, 0x7084, 0xa005, 0x01b0, 0x2011, 0x4e31,
++      0x080c, 0x6fc6, 0xa086, 0x0084, 0x1168, 0x2079, 0xcc80, 0x7a30,
++      0xa296, 0x1106, 0x1138, 0x7834, 0xa005, 0x1120, 0x708f, 0x000c,
++      0x0029, 0x0010, 0x080c, 0x4e74, 0x00fe, 0x0005, 0x708f, 0x000d,
++      0x080c, 0x4eec, 0x20a3, 0x1107, 0x20a3, 0x0000, 0x2099, 0xcc8e,
++      0x20a9, 0x0040, 0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3,
++      0x0084, 0x080c, 0x4e5b, 0x0005, 0x00f6, 0x7084, 0xa005, 0x01d0,
++      0x2011, 0x4e31, 0x080c, 0x6fc6, 0xa086, 0x0084, 0x1188, 0x2079,
++      0xcc80, 0x7a30, 0xa296, 0x1107, 0x1158, 0x7834, 0xa005, 0x1140,
++      0x708b, 0x0001, 0x080c, 0x4ede, 0x708f, 0x000e, 0x0029, 0x0010,
++      0x080c, 0x4e74, 0x00fe, 0x0005, 0x708f, 0x000f, 0x7087, 0x0000,
++      0x608b, 0xbc85, 0x608f, 0xb5b5, 0x6043, 0x0005, 0x6043, 0x0004,
++      0x2009, 0x07d0, 0x2011, 0x4e31, 0x080c, 0x6fba, 0x0005, 0x7084,
++      0xa005, 0x0120, 0x2011, 0x4e31, 0x080c, 0x6fc6, 0x0005, 0x708f,
++      0x0011, 0x080c, 0x4f3d, 0x11a0, 0x7170, 0x81ff, 0x0188, 0x2009,
++      0x0000, 0x7074, 0xa084, 0x00ff, 0x080c, 0x29c7, 0xa186, 0x007e,
++      0x0138, 0xa186, 0x0080, 0x0120, 0x2011, 0xcc8e, 0x080c, 0x4df5,
+       0x20e1, 0x9080, 0x20e1, 0x4000, 0x2099, 0xcc80, 0x20a1, 0x020b,
+       0x7484, 0xa480, 0x0018, 0xa080, 0x0007, 0xa084, 0x03f8, 0x8004,
+-      0x20a8, 0x53a6, 0x60c3, 0x0084, 0x080c, 0x4e42, 0x0005, 0x0005,
+-      0x0005, 0x0086, 0x0096, 0x2029, 0xc653, 0x252c, 0x20a9, 0x0008,
+-      0x2041, 0xcc0e, 0x28a0, 0x2099, 0xcc8e, 0x53a3, 0x20a9, 0x0008,
+-      0x2011, 0x0007, 0xd5d4, 0x0110, 0x2011, 0x0000, 0x2800, 0xa200,
+-      0x200c, 0xa1a6, 0xffff, 0x1148, 0xd5d4, 0x0110, 0x8210, 0x0008,
+-      0x8211, 0x1f04, 0x4d66, 0x0804, 0x4dd4, 0x82ff, 0x1160, 0xd5d4,
+-      0x0120, 0xa1a6, 0x3fff, 0x0d90, 0x0020, 0xa1a6, 0x3fff, 0x0904,
+-      0x4dd4, 0xa18d, 0xc000, 0x20a9, 0x0010, 0x2019, 0x0001, 0xd5d4,
+-      0x0110, 0x2019, 0x0010, 0x2120, 0xd5d4, 0x0110, 0x8423, 0x0008,
+-      0x8424, 0x1240, 0xd5d4, 0x0110, 0x8319, 0x0008, 0x8318, 0x1f04,
+-      0x4d8c, 0x04d0, 0x23a8, 0x2021, 0x0001, 0x8426, 0x8425, 0x1f04,
+-      0x4d9e, 0x2328, 0x8529, 0xa2be, 0x0007, 0x0158, 0x0006, 0x2039,
+-      0x0007, 0x2200, 0xa73a, 0x000e, 0x27a8, 0xa5a8, 0x0010, 0x1f04,
+-      0x4dad, 0x7552, 0xa5c8, 0x2f6e, 0x292d, 0xa5ac, 0x00ff, 0x7576,
+-      0x6532, 0x6536, 0x0016, 0x2508, 0x080c, 0x29f1, 0x001e, 0x60e7,
+-      0x0000, 0x65ea, 0x2018, 0x2304, 0xa405, 0x201a, 0x707b, 0x0001,
+-      0x26a0, 0x2898, 0x20a9, 0x0008, 0x53a6, 0x20a3, 0x0000, 0x20a3,
+-      0x0000, 0xa085, 0x0001, 0x0028, 0xa006, 0x0018, 0xa006, 0x080c,
+-      0x1519, 0x009e, 0x008e, 0x0005, 0x2118, 0x2021, 0x0000, 0x2001,
+-      0x0007, 0xa39a, 0x0010, 0x0218, 0x8420, 0x8001, 0x0cd0, 0x2118,
+-      0x84ff, 0x0120, 0xa39a, 0x0010, 0x8421, 0x1de0, 0x2021, 0x0001,
+-      0x83ff, 0x0118, 0x8423, 0x8319, 0x1de8, 0xa238, 0x2704, 0xa42c,
+-      0x11b8, 0xa405, 0x203a, 0x7152, 0xa1a0, 0x2f6e, 0x242d, 0xa5ac,
+-      0x00ff, 0x7576, 0x6532, 0x6536, 0x0016, 0x2508, 0x080c, 0x29f1,
+-      0x001e, 0x60e7, 0x0000, 0x65ea, 0x707b, 0x0001, 0xa084, 0x0000,
+-      0x0005, 0x00e6, 0x2071, 0xc600, 0x707f, 0x0000, 0x00ee, 0x0005,
+-      0x00e6, 0x00f6, 0x2079, 0x0100, 0x2071, 0x0140, 0x080c, 0x8bf5,
+-      0x7004, 0xa084, 0x4000, 0x0120, 0x7003, 0x1000, 0x7003, 0x0000,
+-      0x0126, 0x2091, 0x8000, 0x2071, 0xc623, 0x2073, 0x0000, 0x7840,
+-      0x0026, 0x0016, 0x2009, 0x00f7, 0x080c, 0x4eeb, 0x001e, 0xa094,
+-      0x0010, 0xa285, 0x0080, 0x7842, 0x7a42, 0x002e, 0x012e, 0x00fe,
+-      0x00ee, 0x0005, 0x0126, 0x2091, 0x8000, 0x2011, 0xc931, 0x2013,
+-      0x0000, 0x7087, 0x0000, 0x012e, 0x20e1, 0x9080, 0x60a3, 0x0056,
+-      0x60a7, 0x9575, 0x080c, 0x8bec, 0x2009, 0x07d0, 0x2011, 0x4e18,
+-      0x080c, 0x7036, 0x0005, 0x0016, 0x0026, 0x00c6, 0x0126, 0x2091,
+-      0x8000, 0x2011, 0x0003, 0x080c, 0x8f0e, 0x2011, 0x0002, 0x080c,
+-      0x8f18, 0x080c, 0x8dee, 0x0036, 0x2019, 0x0000, 0x080c, 0x8e79,
+-      0x003e, 0x2009, 0x00f7, 0x080c, 0x4eeb, 0x2061, 0xc93a, 0x601b,
+-      0x0000, 0x601f, 0x0000, 0x2061, 0xc600, 0x6003, 0x0001, 0x2061,
+-      0x0100, 0x6043, 0x0090, 0x6043, 0x0010, 0x2009, 0x002d, 0x2011,
+-      0x4e90, 0x080c, 0x6fa1, 0x012e, 0x00ce, 0x002e, 0x001e, 0x0005,
+-      0x00e6, 0x0006, 0x0126, 0x2091, 0x8000, 0x2071, 0x0100, 0x080c,
+-      0x8bf5, 0x2071, 0x0140, 0x7004, 0xa084, 0x4000, 0x0120, 0x7003,
+-      0x1000, 0x7003, 0x0000, 0x080c, 0x5f2a, 0x01a8, 0x080c, 0x5f48,
+-      0x1190, 0x2001, 0xc8e5, 0x2003, 0xaaaa, 0x0016, 0x080c, 0x2a95,
+-      0x2001, 0xc8d6, 0x2102, 0x001e, 0x2001, 0xc8e6, 0x2003, 0x0000,
+-      0x080c, 0x5e5a, 0x0030, 0x2001, 0x0001, 0x080c, 0x296d, 0x080c,
+-      0x4e5b, 0x012e, 0x000e, 0x00ee, 0x0005, 0x20a9, 0x0040, 0x20a1,
+-      0xcdc0, 0x2099, 0xcc8e, 0x3304, 0x8007, 0x20a2, 0x9398, 0x94a0,
+-      0x1f04, 0x4ecb, 0x0005, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x2099,
+-      0xcc00, 0x20a1, 0x020b, 0x20a9, 0x000c, 0x53a6, 0x0005, 0x20e1,
+-      0x9080, 0x20e1, 0x4000, 0x2099, 0xcc80, 0x20a1, 0x020b, 0x20a9,
+-      0x000c, 0x53a6, 0x0005, 0x00c6, 0x0006, 0x2061, 0x0100, 0x810f,
+-      0x2001, 0xc631, 0x2004, 0xa005, 0x1138, 0x2001, 0xc615, 0x2004,
+-      0xa084, 0x00ff, 0xa105, 0x0010, 0xa185, 0x00f7, 0x604a, 0x000e,
+-      0x00ce, 0x0005, 0x0016, 0x0046, 0x2001, 0xc653, 0x2004, 0xd0a4,
+-      0x0158, 0xa006, 0x2020, 0x2009, 0x002a, 0x080c, 0xc183, 0x2001,
+-      0xc60c, 0x200c, 0xc195, 0x2102, 0x2019, 0x002a, 0x2009, 0x0000,
+-      0x080c, 0x2e19, 0x004e, 0x001e, 0x0005, 0x080c, 0x4e5b, 0x708f,
+-      0x0000, 0x7087, 0x0000, 0x0005, 0x0006, 0x2001, 0xc60c, 0x2004,
+-      0xd09c, 0x0100, 0x000e, 0x0005, 0x0006, 0x0016, 0x0126, 0x2091,
+-      0x8000, 0x2001, 0x0101, 0x200c, 0xa18d, 0x0006, 0x2102, 0x012e,
+-      0x001e, 0x000e, 0x0005, 0x0156, 0x20a9, 0x00ff, 0x2009, 0xc77b,
+-      0xa006, 0x200a, 0x8108, 0x1f04, 0x4f41, 0x015e, 0x0005, 0x00d6,
+-      0x0036, 0x0156, 0x0136, 0x0146, 0x2069, 0xc652, 0xa006, 0x6002,
+-      0x6007, 0x0707, 0x600a, 0x600e, 0x6012, 0xa198, 0x2f6e, 0x231d,
+-      0xa39c, 0x00ff, 0x6316, 0x20a9, 0x0004, 0xac98, 0x0006, 0x23a0,
+-      0x40a4, 0x20a9, 0x0004, 0xac98, 0x000a, 0x23a0, 0x40a4, 0x603e,
+-      0x6042, 0x604e, 0x6052, 0x6056, 0x605a, 0x605e, 0x6062, 0x6066,
+-      0x606a, 0x606e, 0x6072, 0x6076, 0x607a, 0x607e, 0x6082, 0x6086,
+-      0x608a, 0x608e, 0x6092, 0x6096, 0x609a, 0x609e, 0x60be, 0x61a2,
+-      0x00d6, 0x60a4, 0xa06d, 0x0110, 0x080c, 0x1619, 0x60a7, 0x0000,
+-      0x60a8, 0xa06d, 0x0110, 0x080c, 0x1619, 0x60ab, 0x0000, 0x00de,
+-      0xa006, 0x604a, 0x6810, 0x603a, 0x680c, 0x6046, 0xa006, 0x60b2,
+-      0x60ae, 0x60b6, 0x60bb, 0x0520, 0x6814, 0xa084, 0x00ff, 0x6042,
+-      0x014e, 0x013e, 0x015e, 0x003e, 0x00de, 0x0005, 0x0126, 0x2091,
+-      0x8000, 0x6944, 0x6e48, 0xa684, 0x3fff, 0xa082, 0x4000, 0x1a04,
+-      0x505c, 0xa18c, 0xff00, 0x810f, 0xa182, 0x00ff, 0x1a04, 0x5061,
+-      0x2001, 0xc60c, 0x2004, 0xa084, 0x0003, 0x01c0, 0x2001, 0xc60c,
+-      0x2004, 0xd084, 0x1904, 0x5044, 0xa188, 0xc77b, 0x2104, 0xa065,
+-      0x0904, 0x5044, 0x6004, 0xa084, 0x00ff, 0xa08e, 0x0006, 0x1904,
+-      0x5044, 0x6000, 0xd0c4, 0x0904, 0x5044, 0x0068, 0xa188, 0xc77b,
+-      0x2104, 0xa065, 0x0904, 0x5028, 0x6004, 0xa084, 0x00ff, 0xa08e,
+-      0x0006, 0x1904, 0x502d, 0x60a4, 0xa00d, 0x0118, 0x080c, 0x5568,
+-      0x05d0, 0x60a8, 0xa00d, 0x0188, 0x080c, 0x55b3, 0x1170, 0x694c,
+-      0xd1fc, 0x1118, 0x080c, 0x5272, 0x0448, 0x080c, 0x5221, 0x694c,
+-      0xd1ec, 0x1520, 0x080c, 0x545a, 0x0408, 0x694c, 0xa184, 0xa000,
+-      0x0178, 0xd1ec, 0x0140, 0xd1fc, 0x0118, 0x080c, 0x5469, 0x0028,
+-      0x080c, 0x5469, 0x0028, 0xd1fc, 0x0118, 0x080c, 0x5221, 0x0070,
+-      0x6050, 0xa00d, 0x0130, 0x2d00, 0x200a, 0x6803, 0x0000, 0x6052,
+-      0x0028, 0x2d00, 0x6052, 0x604e, 0x6803, 0x0000, 0x080c, 0x79b6,
+-      0xa006, 0x012e, 0x0005, 0x2001, 0x0005, 0x2009, 0x0000, 0x04e8,
+-      0x2001, 0x0028, 0x2009, 0x0000, 0x04c0, 0xa082, 0x0006, 0x12a0,
+-      0x2001, 0xc635, 0x2004, 0xd0ac, 0x1160, 0x60a0, 0xd0bc, 0x1148,
+-      0x6100, 0xd1fc, 0x0904, 0x4fe3, 0x2001, 0x0029, 0x2009, 0x1000,
+-      0x0420, 0x2001, 0x0028, 0x00a8, 0x2009, 0xc60c, 0x210c, 0xd18c,
+-      0x0118, 0x2001, 0x0004, 0x0068, 0xd184, 0x0118, 0x2001, 0x0004,
+-      0x0040, 0x2001, 0x0029, 0x6100, 0xd1fc, 0x0118, 0x2009, 0x1000,
+-      0x0060, 0x2009, 0x0000, 0x0048, 0x2001, 0x0029, 0x2009, 0x0000,
+-      0x0020, 0x2001, 0x0029, 0x2009, 0x0000, 0xa005, 0x012e, 0x0005,
+-      0x00e6, 0x0126, 0x2091, 0x8000, 0x6844, 0xa084, 0xff00, 0xa08e,
+-      0xff00, 0x1120, 0x2001, 0xc8d3, 0x2064, 0x0080, 0x6844, 0x8007,
+-      0xa084, 0x00ff, 0x2008, 0xa182, 0x00ff, 0x1698, 0xa188, 0xc77b,
+-      0x2104, 0xa065, 0x01d8, 0x080c, 0x56ed, 0x11d8, 0x2c70, 0x080c,
+-      0x9586, 0x0568, 0x2e00, 0x601a, 0x2d00, 0x6012, 0x601f, 0x0009,
+-      0x600b, 0x0000, 0x6844, 0xa08e, 0xff00, 0x1110, 0x600b, 0x8000,
+-      0x2009, 0x0100, 0x080c, 0x960c, 0xa006, 0x00b0, 0x2001, 0x0028,
+-      0x0090, 0x2009, 0xc60c, 0x210c, 0xd18c, 0x0118, 0x2001, 0x0004,
+-      0x0038, 0xd184, 0x0118, 0x2001, 0x0004, 0x0010, 0x2001, 0x0029,
+-      0x0010, 0x2001, 0x0029, 0xa005, 0x012e, 0x00ee, 0x0005, 0x2001,
+-      0x002c, 0x0cc8, 0x00e6, 0x0126, 0x2091, 0x8000, 0x6844, 0x8007,
+-      0xa084, 0x00ff, 0x2008, 0xa182, 0x00ff, 0x1a04, 0x510d, 0xa188,
+-      0xc77b, 0x2104, 0xa065, 0x01c0, 0x6004, 0xa084, 0x00ff, 0xa08e,
+-      0x0006, 0x11a8, 0x2c70, 0x080c, 0x9586, 0x05e8, 0x2e00, 0x601a,
+-      0x2d00, 0x6012, 0x600b, 0xffff, 0x601f, 0x000a, 0x2009, 0x0003,
+-      0x080c, 0x960c, 0xa006, 0x0460, 0x2001, 0x0028, 0x0440, 0xa082,
+-      0x0006, 0x1298, 0x2001, 0xc635, 0x2004, 0xd0ac, 0x1158, 0x60a0,
+-      0xd0bc, 0x1140, 0x6100, 0xd1fc, 0x09e8, 0x2001, 0x0029, 0x2009,
+-      0x1000, 0x00a8, 0x2001, 0x0028, 0x0090, 0x2009, 0xc60c, 0x210c,
+-      0xd18c, 0x0118, 0x2001, 0x0004, 0x0050, 0xd184, 0x0118, 0x2001,
+-      0x0004, 0x0028, 0x2001, 0x0029, 0x0010, 0x2001, 0x0029, 0xa005,
+-      0x012e, 0x00ee, 0x0005, 0x2001, 0x002c, 0x0cc8, 0x00f6, 0x00e6,
+-      0x0126, 0x2091, 0x8000, 0x2011, 0x0000, 0x2079, 0xc600, 0x6944,
+-      0xa18c, 0xff00, 0x810f, 0xa182, 0x00ff, 0x1a04, 0x51d8, 0x080c,
+-      0x533d, 0x11a0, 0x6004, 0xa084, 0x00ff, 0xa082, 0x0006, 0x1270,
+-      0x6864, 0xa0c6, 0x006f, 0x0150, 0x2001, 0xc635, 0x2004, 0xd0ac,
+-      0x1904, 0x51c1, 0x60a0, 0xd0bc, 0x1904, 0x51c1, 0x6864, 0xa0c6,
+-      0x006f, 0x0118, 0x2008, 0x0804, 0x518a, 0x6968, 0x2140, 0xa18c,
+-      0xff00, 0x810f, 0x78d4, 0xd0ac, 0x1118, 0xa182, 0x0080, 0x06d0,
+-      0xa182, 0x00ff, 0x16b8, 0x6a70, 0x6b6c, 0x7870, 0xa306, 0x1160,
+-      0x7874, 0xa24e, 0x1118, 0x2208, 0x2310, 0x0460, 0xa9cc, 0xff00,
+-      0x1118, 0x2208, 0x2310, 0x0430, 0x080c, 0x3f6e, 0x2c70, 0x0550,
+-      0x2009, 0x0000, 0x2011, 0x0000, 0xa0c6, 0x4000, 0x1160, 0x0006,
+-      0x2e60, 0x080c, 0x55de, 0x1108, 0xc185, 0x7000, 0xd0bc, 0x0108,
+-      0xc18d, 0x000e, 0x0088, 0xa0c6, 0x4007, 0x1110, 0x2408, 0x0060,
+-      0xa0c6, 0x4008, 0x1118, 0x2708, 0x2610, 0x0030, 0xa0c6, 0x4009,
+-      0x1108, 0x0010, 0x2001, 0x4006, 0x6866, 0x696a, 0x6a6e, 0x2001,
+-      0x0030, 0x0450, 0x080c, 0x9586, 0x1138, 0x2001, 0x4005, 0x2009,
+-      0x0003, 0x2011, 0x0000, 0x0c80, 0x2e00, 0x601a, 0x080c, 0xb057,
+-      0x2d00, 0x6012, 0x601f, 0x0001, 0x6838, 0xd88c, 0x0108, 0xc0f5,
+-      0x683a, 0x0126, 0x2091, 0x8000, 0x080c, 0x2e46, 0x012e, 0x2001,
+-      0x0000, 0x080c, 0x527f, 0x2001, 0x0002, 0x080c, 0x5291, 0x2009,
+-      0x0002, 0x080c, 0x960c, 0xa006, 0xa005, 0x012e, 0x00ee, 0x00fe,
+-      0x0005, 0x2001, 0x0028, 0x2009, 0x0000, 0x0cb0, 0x2009, 0xc60c,
+-      0x210c, 0xd18c, 0x0118, 0x2001, 0x0004, 0x0038, 0xd184, 0x0118,
+-      0x2001, 0x0004, 0x0010, 0x2001, 0x0029, 0x2009, 0x0000, 0x0c20,
+-      0x2001, 0x0029, 0x2009, 0x0000, 0x08f8, 0x6944, 0x6e48, 0xa684,
+-      0x3fff, 0xa082, 0x4000, 0x16b8, 0xa18c, 0xff00, 0x810f, 0xa182,
+-      0x00ff, 0x12e0, 0xa188, 0xc77b, 0x2104, 0xa065, 0x01b8, 0x6004,
+-      0xa084, 0x00ff, 0xa08e, 0x0006, 0x11b0, 0x684c, 0xd0ec, 0x0120,
+-      0x080c, 0x5469, 0x0431, 0x0030, 0x0421, 0x684c, 0xd0fc, 0x0110,
+-      0x080c, 0x545a, 0x080c, 0x54a7, 0xa006, 0x00c8, 0x2001, 0x0028,
+-      0x2009, 0x0000, 0x00a0, 0xa082, 0x0006, 0x1240, 0x6100, 0xd1fc,
+-      0x0d20, 0x2001, 0x0029, 0x2009, 0x1000, 0x0048, 0x2001, 0x0029,
+-      0x2009, 0x0000, 0x0020, 0x2001, 0x0029, 0x2009, 0x0000, 0xa005,
+-      0x0005, 0x0126, 0x2091, 0x8000, 0x6050, 0xa00d, 0x0138, 0x2d00,
+-      0x200a, 0x6803, 0x0000, 0x6052, 0x012e, 0x0005, 0x2d00, 0x6052,
+-      0x604e, 0x6803, 0x0000, 0x0cc0, 0x0126, 0x2091, 0x8000, 0x604c,
+-      0xa005, 0x0170, 0x00e6, 0x2071, 0xc927, 0x7004, 0xa086, 0x0002,
+-      0x0168, 0x00ee, 0x604c, 0x6802, 0x2d00, 0x604e, 0x012e, 0x0005,
+-      0x2d00, 0x6052, 0x604e, 0x6803, 0x0000, 0x0cc0, 0x701c, 0xac06,
+-      0x1d80, 0x604c, 0x2070, 0x7000, 0x6802, 0x2d00, 0x7002, 0x00ee,
+-      0x012e, 0x0005, 0x0126, 0x2091, 0x8000, 0x604c, 0xa06d, 0x0130,
+-      0x6800, 0xa005, 0x1108, 0x6052, 0x604e, 0xad05, 0x012e, 0x0005,
+-      0x604c, 0xa06d, 0x0130, 0x6800, 0xa005, 0x1108, 0x6052, 0x604e,
+-      0xad05, 0x0005, 0x6803, 0x0000, 0x6084, 0xa00d, 0x0120, 0x2d00,
+-      0x200a, 0x6086, 0x0005, 0x2d00, 0x6086, 0x6082, 0x0cd8, 0x0126,
+-      0x00c6, 0x0026, 0x2091, 0x8000, 0x6218, 0x2260, 0x6200, 0xa005,
+-      0x0110, 0xc285, 0x0008, 0xc284, 0x6202, 0x002e, 0x00ce, 0x012e,
+-      0x0005, 0x0126, 0x00c6, 0x2091, 0x8000, 0x6218, 0x2260, 0x6204,
+-      0x0006, 0xa086, 0x0006, 0x1180, 0x609c, 0xd0ac, 0x0168, 0x2001,
+-      0xc653, 0x2004, 0xd0a4, 0x0140, 0xa284, 0xff00, 0x8007, 0xa086,
+-      0x0007, 0x1110, 0x2011, 0x0600, 0x000e, 0xa294, 0xff00, 0xa215,
+-      0x6206, 0x0006, 0xa086, 0x0006, 0x1128, 0x6290, 0x82ff, 0x1110,
+-      0x080c, 0x1519, 0x000e, 0x00ce, 0x012e, 0x0005, 0x0126, 0x00c6,
+-      0x2091, 0x8000, 0x6218, 0x2260, 0x6204, 0x0006, 0xa086, 0x0006,
+-      0x1178, 0x609c, 0xd0a4, 0x0160, 0x2001, 0xc653, 0x2004, 0xd0ac,
+-      0x1138, 0xa284, 0x00ff, 0xa086, 0x0007, 0x1110, 0x2011, 0x0006,
+-      0x000e, 0xa294, 0x00ff, 0x8007, 0xa215, 0x6206, 0x00ce, 0x012e,
+-      0x0005, 0x0026, 0xa182, 0x00ff, 0x0218, 0xa085, 0x0001, 0x00b0,
+-      0xa190, 0xc77b, 0x2204, 0xa065, 0x1180, 0x0016, 0x00d6, 0x080c,
+-      0x15e5, 0x2d60, 0x00de, 0x001e, 0x0d80, 0x2c00, 0x2012, 0x60a7,
+-      0x0000, 0x60ab, 0x0000, 0x080c, 0x4f47, 0xa006, 0x002e, 0x0005,
+-      0x0126, 0x2091, 0x8000, 0x0026, 0xa182, 0x00ff, 0x0218, 0xa085,
+-      0x0001, 0x0480, 0x00d6, 0xa190, 0xc77b, 0x2204, 0xa06d, 0x0540,
+-      0x2013, 0x0000, 0x00d6, 0x00c6, 0x2d60, 0x60a4, 0xa06d, 0x0110,
+-      0x080c, 0x1619, 0x60a8, 0xa06d, 0x0110, 0x080c, 0x1619, 0x00ce,
+-      0x00de, 0x00d6, 0x00c6, 0x68bc, 0x2060, 0x8cff, 0x0168, 0x600c,
+-      0x0006, 0x6010, 0x2068, 0x080c, 0xac8a, 0x0110, 0x080c, 0x1629,
+-      0x080c, 0x95dc, 0x00ce, 0x0c88, 0x00ce, 0x00de, 0x080c, 0x1619,
+-      0x00de, 0xa006, 0x002e, 0x012e, 0x0005, 0x0016, 0xa182, 0x00ff,
+-      0x0218, 0xa085, 0x0001, 0x0030, 0xa188, 0xc77b, 0x2104, 0xa065,
+-      0x0dc0, 0xa006, 0x001e, 0x0005, 0x00d6, 0x0156, 0x0136, 0x0146,
+-      0x600b, 0x0000, 0x600f, 0x0000, 0x6000, 0xc08c, 0x6002, 0x080c,
+-      0x5f22, 0x1558, 0x60a0, 0xa086, 0x007e, 0x2069, 0xcc90, 0x0130,
+-      0x2001, 0xc635, 0x2004, 0xd0ac, 0x1500, 0x0098, 0x2d04, 0xd0e4,
+-      0x01e0, 0x00d6, 0x2069, 0xcc8e, 0x00c6, 0x2061, 0xc8f9, 0x6810,
+-      0x2062, 0x6814, 0x6006, 0x6818, 0x600a, 0x681c, 0x600e, 0x00ce,
+-      0x00de, 0x8d69, 0x2d04, 0x2069, 0x0140, 0xa005, 0x1110, 0x2001,
+-      0x0001, 0x6886, 0x2069, 0xc600, 0x68a6, 0x2069, 0xcc8e, 0x6808,
+-      0x605e, 0x6810, 0x6062, 0x6138, 0xa10a, 0x0208, 0x603a, 0x6814,
+-      0x6066, 0x2099, 0xcc96, 0xac88, 0x000a, 0x21a0, 0x20a9, 0x0004,
+-      0x53a3, 0x2099, 0xcc9a, 0xac88, 0x0006, 0x21a0, 0x20a9, 0x0004,
+-      0x53a3, 0x2069, 0xccae, 0x6808, 0x606a, 0x690c, 0x616e, 0x6810,
+-      0x6072, 0x6818, 0x6076, 0x60a0, 0xa086, 0x007e, 0x1120, 0x2069,
+-      0xcc8e, 0x690c, 0x616e, 0xa182, 0x0211, 0x1218, 0x2009, 0x0008,
+-      0x0400, 0xa182, 0x0259, 0x1218, 0x2009, 0x0007, 0x00d0, 0xa182,
+-      0x02c1, 0x1218, 0x2009, 0x0006, 0x00a0, 0xa182, 0x0349, 0x1218,
+-      0x2009, 0x0005, 0x0070, 0xa182, 0x0421, 0x1218, 0x2009, 0x0004,
+-      0x0040, 0xa182, 0x0581, 0x1218, 0x2009, 0x0003, 0x0010, 0x2009,
+-      0x0002, 0x6192, 0x014e, 0x013e, 0x015e, 0x00de, 0x0005, 0x0016,
+-      0x0026, 0x00e6, 0x2071, 0xcc8d, 0x2e04, 0x6896, 0x2071, 0xcc8e,
+-      0x7004, 0x689a, 0x701c, 0x689e, 0x6a00, 0x2009, 0xc672, 0x210c,
+-      0xd0bc, 0x0120, 0xd1ec, 0x0110, 0xc2ad, 0x0008, 0xc2ac, 0xd0c4,
+-      0x0120, 0xd1e4, 0x0110, 0xc2bd, 0x0008, 0xc2bc, 0x6a02, 0x00ee,
+-      0x002e, 0x001e, 0x0005, 0x00d6, 0x0126, 0x2091, 0x8000, 0x60a4,
+-      0xa06d, 0x01c0, 0x6900, 0x81ff, 0x1540, 0x6a04, 0xa282, 0x0010,
+-      0x1648, 0xad88, 0x0004, 0x20a9, 0x0010, 0x2104, 0xa086, 0xffff,
+-      0x0128, 0x8108, 0x1f04, 0x5415, 0x080c, 0x1519, 0x260a, 0x8210,
+-      0x6a06, 0x0098, 0x080c, 0x1602, 0x01a8, 0x2d00, 0x60a6, 0x6803,
+-      0x0000, 0xad88, 0x0004, 0x20a9, 0x0010, 0x200b, 0xffff, 0x8108,
+-      0x1f04, 0x542d, 0x6807, 0x0001, 0x6e12, 0xa085, 0x0001, 0x012e,
+-      0x00de, 0x0005, 0xa006, 0x0cd8, 0x0126, 0x2091, 0x8000, 0x00d6,
+-      0x60a4, 0xa00d, 0x01a0, 0x2168, 0x6800, 0xa005, 0x1160, 0x080c,
+-      0x5568, 0x1168, 0x200b, 0xffff, 0x6804, 0xa08a, 0x0002, 0x0218,
+-      0x8001, 0x6806, 0x0020, 0x080c, 0x1619, 0x60a7, 0x0000, 0x00de,
+-      0x012e, 0x0005, 0x0126, 0x2091, 0x8000, 0x080c, 0x55c6, 0x0010,
+-      0x080c, 0x5221, 0x080c, 0x54e0, 0x1dd8, 0x080c, 0x54a7, 0x012e,
+-      0x0005, 0x00d6, 0x0126, 0x2091, 0x8000, 0x60a8, 0xa06d, 0x01c0,
+-      0x6950, 0x81ff, 0x1540, 0x6a54, 0xa282, 0x0010, 0x1670, 0xad88,
+-      0x0018, 0x20a9, 0x0010, 0x2104, 0xa086, 0xffff, 0x0128, 0x8108,
+-      0x1f04, 0x547b, 0x080c, 0x1519, 0x260a, 0x8210, 0x6a56, 0x0098,
+-      0x080c, 0x1602, 0x01d0, 0x2d00, 0x60aa, 0x6853, 0x0000, 0xad88,
+-      0x0018, 0x20a9, 0x0010, 0x200b, 0xffff, 0x8108, 0x1f04, 0x5493,
+-      0x6857, 0x0001, 0x6e62, 0x0010, 0x080c, 0x5272, 0x0089, 0x1de0,
+-      0xa085, 0x0001, 0x012e, 0x00de, 0x0005, 0xa006, 0x0cd8, 0x0126,
+-      0x2091, 0x8000, 0x080c, 0x79b6, 0x012e, 0x0005, 0xa01e, 0x0010,
+-      0x2019, 0x0001, 0xa00e, 0x0126, 0x2091, 0x8000, 0x604c, 0x2068,
+-      0x6000, 0xd0dc, 0x1170, 0x8dff, 0x01f8, 0x83ff, 0x0120, 0x6848,
+-      0xa606, 0x0158, 0x0030, 0x683c, 0xa406, 0x1118, 0x6840, 0xa506,
+-      0x0120, 0x2d08, 0x6800, 0x2068, 0x0c70, 0x080c, 0x8fb7, 0x6a00,
+-      0x604c, 0xad06, 0x1110, 0x624e, 0x0018, 0xa180, 0x0000, 0x2202,
+-      0x82ff, 0x1110, 0x6152, 0x8dff, 0x012e, 0x0005, 0xa01e, 0x0010,
+-      0x2019, 0x0001, 0xa00e, 0x6080, 0x2068, 0x8dff, 0x01e8, 0x83ff,
+-      0x0120, 0x6848, 0xa606, 0x0158, 0x0030, 0x683c, 0xa406, 0x1118,
+-      0x6840, 0xa506, 0x0120, 0x2d08, 0x6800, 0x2068, 0x0c70, 0x6a00,
+-      0x6080, 0xad06, 0x1110, 0x6282, 0x0018, 0xa180, 0x0000, 0x2202,
+-      0x82ff, 0x1110, 0x6186, 0x8dff, 0x0005, 0xa016, 0x080c, 0x5562,
+-      0x1110, 0x2011, 0x0001, 0x080c, 0x55ad, 0x1110, 0xa295, 0x0002,
+-      0x0005, 0x080c, 0x55de, 0x0118, 0x080c, 0xad3f, 0x0010, 0xa085,
+-      0x0001, 0x0005, 0x080c, 0x55de, 0x0118, 0x080c, 0xaccf, 0x0010,
+-      0xa085, 0x0001, 0x0005, 0x080c, 0x55de, 0x0118, 0x080c, 0xad22,
+-      0x0010, 0xa085, 0x0001, 0x0005, 0x080c, 0x55de, 0x0118, 0x080c,
+-      0xaceb, 0x0010, 0xa085, 0x0001, 0x0005, 0x080c, 0x55de, 0x0118,
+-      0x080c, 0xad5b, 0x0010, 0xa085, 0x0001, 0x0005, 0x0126, 0x0006,
+-      0x00d6, 0x2091, 0x8000, 0x6080, 0xa06d, 0x01a0, 0x6800, 0x0006,
+-      0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000, 0x080c, 0xaefc, 0x0006,
+-      0x6000, 0xd0fc, 0x0110, 0x080c, 0xc4d3, 0x000e, 0x080c, 0x580a,
+-      0x000e, 0x0c50, 0x6083, 0x0000, 0x6087, 0x0000, 0x00de, 0x000e,
+-      0x012e, 0x0005, 0x60a4, 0xa00d, 0x1118, 0xa085, 0x0001, 0x0005,
+-      0x00e6, 0x2170, 0x7000, 0xa005, 0x1168, 0x20a9, 0x0010, 0xae88,
+-      0x0004, 0x2104, 0xa606, 0x0130, 0x8108, 0x1f04, 0x5571, 0xa085,
+-      0x0001, 0x0008, 0xa006, 0x00ee, 0x0005, 0x00d6, 0x0126, 0x2091,
+-      0x8000, 0x60a4, 0xa06d, 0x1128, 0x080c, 0x1602, 0x01a0, 0x2d00,
+-      0x60a6, 0x6803, 0x0001, 0x6807, 0x0000, 0xad88, 0x0004, 0x20a9,
+-      0x0010, 0x200b, 0xffff, 0x8108, 0x1f04, 0x5591, 0xa085, 0x0001,
+-      0x012e, 0x00de, 0x0005, 0xa006, 0x0cd8, 0x00d6, 0x0126, 0x2091,
+-      0x8000, 0x60a4, 0xa06d, 0x0130, 0x60a7, 0x0000, 0x080c, 0x1619,
+-      0xa085, 0x0001, 0x012e, 0x00de, 0x0005, 0x60a8, 0xa00d, 0x1118,
+-      0xa085, 0x0001, 0x0005, 0x00e6, 0x2170, 0x7050, 0xa005, 0x1160,
+-      0x20a9, 0x0010, 0xae88, 0x0018, 0x2104, 0xa606, 0x0128, 0x8108,
+-      0x1f04, 0x55bc, 0xa085, 0x0001, 0x00ee, 0x0005, 0x0126, 0x2091,
+-      0x8000, 0x0c19, 0x1188, 0x200b, 0xffff, 0x00d6, 0x60a8, 0x2068,
+-      0x6854, 0xa08a, 0x0002, 0x0218, 0x8001, 0x6856, 0x0020, 0x080c,
+-      0x1619, 0x60ab, 0x0000, 0x00de, 0x012e, 0x0005, 0x609c, 0xd0a4,
+-      0x0005, 0x00f6, 0x080c, 0x5f22, 0x01b0, 0x71b8, 0x81ff, 0x1198,
+-      0x71d4, 0xd19c, 0x0180, 0x2001, 0x007e, 0xa080, 0xc77b, 0x2004,
+-      0xa07d, 0x0148, 0x7804, 0xa084, 0x00ff, 0xa086, 0x0006, 0x1118,
+-      0x7800, 0xc0ed, 0x7802, 0x2079, 0xc652, 0x7804, 0xd0a4, 0x01e8,
+-      0x0156, 0x00c6, 0x20a9, 0x007f, 0x2009, 0x0000, 0x0016, 0x080c,
+-      0x533d, 0x1168, 0x6004, 0xa084, 0xff00, 0x8007, 0xa096, 0x0004,
+-      0x0118, 0xa086, 0x0006, 0x1118, 0x6000, 0xc0ed, 0x6002, 0x001e,
+-      0x8108, 0x1f04, 0x5606, 0x00ce, 0x015e, 0x080c, 0x570b, 0x0120,
+-      0x2001, 0xc8fc, 0x200c, 0x0038, 0x2079, 0xc652, 0x7804, 0xd0a4,
+-      0x0130, 0x2009, 0x07d0, 0x2011, 0x5631, 0x080c, 0x7036, 0x00fe,
+-      0x0005, 0x2011, 0x5631, 0x080c, 0x6fad, 0x080c, 0x570b, 0x01f0,
+-      0x2001, 0xc7f9, 0x2004, 0xa080, 0x0000, 0x200c, 0xc1ec, 0x2102,
+-      0x2001, 0xc653, 0x2004, 0xd0a4, 0x0130, 0x2009, 0x07d0, 0x2011,
+-      0x5631, 0x080c, 0x7036, 0x00e6, 0x2071, 0xc600, 0x7073, 0x0000,
+-      0x7077, 0x0000, 0x080c, 0x2c62, 0x00ee, 0x04b0, 0x0156, 0x00c6,
+-      0x20a9, 0x007f, 0x2009, 0x0000, 0x0016, 0x080c, 0x533d, 0x1530,
+-      0x6000, 0xd0ec, 0x0518, 0x0046, 0x62a0, 0xa294, 0x00ff, 0x8227,
+-      0xa006, 0x2009, 0x0029, 0x080c, 0xc183, 0x6000, 0xc0e5, 0xc0ec,
+-      0x6002, 0x6004, 0xa084, 0x00ff, 0xa085, 0x0700, 0x6006, 0x2019,
+-      0x0029, 0x080c, 0x7b16, 0x0076, 0x2039, 0x0000, 0x080c, 0x7a0e,
+-      0x2009, 0x0000, 0x080c, 0xbeea, 0x007e, 0x004e, 0x001e, 0x8108,
+-      0x1f04, 0x565c, 0x00ce, 0x015e, 0x0005, 0x00c6, 0x6018, 0x2060,
+-      0x6000, 0xc0ec, 0x6002, 0x00ce, 0x0005, 0x00c6, 0x00d6, 0x080c,
+-      0x15e5, 0x2d60, 0x0508, 0x2009, 0x00ff, 0x60a7, 0x0000, 0x60ab,
+-      0x0000, 0x080c, 0x4f47, 0x6007, 0x0006, 0x6013, 0x00ff, 0x6017,
+-      0xffff, 0x606f, 0x0200, 0x606c, 0x6093, 0x0002, 0x60bb, 0x0520,
+-      0x60a3, 0x00ff, 0x60b7, 0x0000, 0x60af, 0x0000, 0x2c08, 0x2001,
+-      0xc8d3, 0x2102, 0xa085, 0x0001, 0x00de, 0x00ce, 0x0005, 0x7818,
+-      0x2004, 0xd0ac, 0x0005, 0x7818, 0x2004, 0xd0bc, 0x0005, 0x0156,
+-      0x00e6, 0x00d6, 0x00c6, 0x0026, 0x20a9, 0x00ff, 0x2009, 0x0000,
+-      0x0016, 0x080c, 0x533d, 0x1178, 0x2c70, 0x70ac, 0xa005, 0x0158,
+-      0x2060, 0x620c, 0x0026, 0x6010, 0x2068, 0x080c, 0x761a, 0x002e,
+-      0x2260, 0x82ff, 0x1db0, 0x001e, 0x8108, 0x1f04, 0x56d0, 0x002e,
+-      0x00ce, 0x00de, 0x00ee, 0x015e, 0x0005, 0x0006, 0x0016, 0x0026,
+-      0x6004, 0xa08c, 0x00ff, 0xa196, 0x0006, 0x0188, 0xa196, 0x0004,
+-      0x0170, 0xa196, 0x0005, 0x0158, 0xa08c, 0xff00, 0x810f, 0xa196,
+-      0x0006, 0x0128, 0xa196, 0x0004, 0x0110, 0xa196, 0x0005, 0x002e,
+-      0x001e, 0x000e, 0x0005, 0x00f6, 0x2001, 0xc7f9, 0x2004, 0xa07d,
+-      0x0110, 0x7800, 0xd0ec, 0x00fe, 0x0005, 0x0126, 0x0026, 0x2091,
+-      0x8000, 0x0006, 0x62a0, 0xa290, 0xc77b, 0x2204, 0xac06, 0x190c,
+-      0x1519, 0x000e, 0x6200, 0xa005, 0x0110, 0xc2fd, 0x0008, 0xc2fc,
+-      0x6202, 0x002e, 0x012e, 0x0005, 0x2011, 0xc635, 0x2204, 0xd0cc,
+-      0x0138, 0x2001, 0xc8fa, 0x200c, 0x2011, 0x5739, 0x080c, 0x7036,
+-      0x0005, 0x2011, 0x5739, 0x080c, 0x6fad, 0x2011, 0xc635, 0x2204,
+-      0xc0cc, 0x2012, 0x0005, 0x2071, 0xc734, 0x7003, 0x0001, 0x7007,
+-      0x0000, 0x7013, 0x0000, 0x7017, 0x0000, 0x701b, 0x0000, 0x701f,
+-      0x0000, 0x700b, 0x0000, 0x704b, 0x0001, 0x704f, 0x0000, 0x705b,
+-      0x0020, 0x705f, 0x0040, 0x707f, 0x0000, 0x2071, 0xc8c3, 0x7003,
+-      0xc734, 0x7007, 0x0000, 0x700b, 0x0000, 0x700f, 0xc8a3, 0x7013,
+-      0x0020, 0x7017, 0x0040, 0x7037, 0x0000, 0x0005, 0x0016, 0x00e6,
+-      0x2071, 0xc87b, 0xa00e, 0x7186, 0x718a, 0x7097, 0x0001, 0x2001,
+-      0xc653, 0x2004, 0xd0fc, 0x1150, 0x2001, 0xc653, 0x2004, 0xa00e,
+-      0xd09c, 0x0108, 0x8108, 0x7102, 0x0804, 0x57d4, 0x2001, 0xc672,
+-      0x200c, 0xa184, 0x000f, 0x2009, 0xc673, 0x210c, 0x0002, 0x577c,
+-      0x57af, 0x57b6, 0x57c0, 0x57c5, 0x577c, 0x577c, 0x577c, 0x579f,
+-      0x577c, 0x577c, 0x577c, 0x577c, 0x577c, 0x577c, 0x577c, 0x7003,
+-      0x0004, 0x0136, 0x0146, 0x0156, 0x2099, 0xc676, 0x20a1, 0xc8cc,
+-      0x20a9, 0x0004, 0x53a3, 0x015e, 0x014e, 0x013e, 0x0428, 0x708f,
+-      0x0005, 0x7007, 0x0122, 0x2001, 0x0002, 0x0030, 0x708f, 0x0002,
+-      0x7007, 0x0121, 0x2001, 0x0003, 0x7002, 0x7097, 0x0001, 0x0088,
+-      0x7007, 0x0122, 0x2001, 0x0002, 0x0020, 0x7007, 0x0121, 0x2001,
+-      0x0003, 0x7002, 0xa006, 0x7096, 0x708e, 0xa184, 0xff00, 0x8007,
+-      0x709a, 0xa184, 0x00ff, 0x7092, 0x00ee, 0x001e, 0x0005, 0x00e6,
+-      0x2071, 0xc734, 0x684c, 0xa005, 0x1130, 0x7028, 0xc085, 0x702a,
+-      0xa085, 0x0001, 0x0428, 0x6a60, 0x7236, 0x6b64, 0x733a, 0x6868,
+-      0x703e, 0x7076, 0x686c, 0x7042, 0x707a, 0x684c, 0x702e, 0x6844,
+-      0x7032, 0x2009, 0x000d, 0x200a, 0x700b, 0x0000, 0x8007, 0x8006,
+-      0x8006, 0xa08c, 0x003f, 0xa084, 0xffc0, 0xa210, 0x2100, 0xa319,
+-      0x726e, 0x7372, 0x7028, 0xc084, 0x702a, 0x7007, 0x0001, 0xa006,
+-      0x00ee, 0x0005, 0x0156, 0x00e6, 0x0026, 0x6838, 0xd0fc, 0x1904,
+-      0x5863, 0x6804, 0xa00d, 0x0188, 0x00d6, 0x2071, 0xc600, 0xa016,
+-      0x702c, 0x2168, 0x6904, 0x206a, 0x8210, 0x2d00, 0x81ff, 0x1dc8,
+-      0x702e, 0x70b4, 0xa200, 0x70b6, 0x00de, 0x2071, 0xc734, 0x701c,
+-      0xa005, 0x1904, 0x5873, 0x20a9, 0x0032, 0x0f04, 0x5871, 0x0e04,
+-      0x582d, 0x2071, 0xc87b, 0x7200, 0x82ff, 0x05d8, 0x6934, 0xa186,
+-      0x0103, 0x1904, 0x5881, 0x6948, 0x6844, 0xa105, 0x1540, 0x2009,
+-      0x8020, 0x2200, 0x0002, 0x5871, 0x5848, 0x58e8, 0x58f5, 0x5871,
+-      0x2071, 0x0000, 0x20a9, 0x0032, 0x0f04, 0x5871, 0x7018, 0xd084,
+-      0x1dd8, 0x7122, 0x683c, 0x7026, 0x6840, 0x702a, 0x701b, 0x0001,
+-      0x2091, 0x4080, 0x2071, 0xc600, 0x702c, 0x206a, 0x2d00, 0x702e,
+-      0x70b4, 0x8000, 0x70b6, 0x002e, 0x00ee, 0x015e, 0x0005, 0x6844,
+-      0xa086, 0x0100, 0x1130, 0x6868, 0xa005, 0x1118, 0x2009, 0x8020,
+-      0x0880, 0x2071, 0xc734, 0x2d08, 0x206b, 0x0000, 0x7010, 0x8000,
+-      0x7012, 0x7018, 0xa06d, 0x711a, 0x0110, 0x6902, 0x0008, 0x711e,
+-      0x0c10, 0xa18c, 0x00ff, 0xa186, 0x0013, 0x01e0, 0xa186, 0x001b,
+-      0x01c8, 0xa186, 0x0023, 0x01e8, 0xa186, 0x0017, 0x0130, 0xa186,
+-      0x001e, 0x0118, 0xa18e, 0x001f, 0x19e0, 0x684c, 0xd0cc, 0x09c8,
+-      0x6850, 0xa084, 0x00ff, 0xa086, 0x0001, 0x1998, 0x2009, 0x8021,
+-      0x0804, 0x5841, 0x6848, 0xa005, 0x1960, 0x2009, 0x8022, 0x0804,
+-      0x5841, 0x2071, 0x0000, 0x7018, 0xd084, 0x1918, 0x00e6, 0x2071,
+-      0xc682, 0x7140, 0x00ee, 0x6838, 0xa102, 0x0a04, 0x5871, 0x684c,
+-      0xa005, 0x1158, 0x00e6, 0x2071, 0xc682, 0x7004, 0x00ee, 0xd08c,
+-      0x1904, 0x5871, 0x2001, 0x8024, 0x0040, 0x6848, 0xd084, 0x1118,
+-      0x2001, 0x8023, 0x0010, 0x2001, 0x8027, 0x7022, 0x6840, 0x7026,
+-      0x683c, 0x702a, 0x6850, 0x702e, 0x0026, 0x0036, 0x6b38, 0x2e10,
+-      0xa290, 0x0072, 0x2d00, 0xa080, 0x0015, 0x200c, 0x2112, 0x8000,
+-      0x200c, 0x8210, 0x8319, 0x1dd0, 0x003e, 0x002e, 0x0804, 0x5856,
+-      0x7084, 0x8008, 0xa092, 0x001e, 0x1a04, 0x5871, 0x7186, 0xae90,
+-      0x0003, 0xa210, 0x683c, 0x2012, 0x0080, 0x7084, 0x8008, 0xa092,
+-      0x000f, 0x1a04, 0x5871, 0x7186, 0xae90, 0x0003, 0x8003, 0xa210,
+-      0x683c, 0x2012, 0x8210, 0x6840, 0x2012, 0x7088, 0xa10a, 0x0a04,
+-      0x585a, 0x718c, 0x7084, 0xa10a, 0x0a04, 0x585a, 0x2071, 0x0000,
+-      0x7018, 0xd084, 0x1904, 0x585a, 0x2071, 0xc87b, 0x7000, 0xa086,
+-      0x0002, 0x1150, 0x080c, 0x5b75, 0x2071, 0x0000, 0x701b, 0x0001,
+-      0x2091, 0x4080, 0x0804, 0x585a, 0x080c, 0x5b9f, 0x2071, 0x0000,
+-      0x701b, 0x0001, 0x2091, 0x4080, 0x0804, 0x585a, 0x0006, 0x684c,
+-      0x0006, 0x6837, 0x0103, 0x20a9, 0x001c, 0xad80, 0x0011, 0x20a0,
+-      0x2001, 0x0000, 0x40a4, 0x000e, 0xa084, 0x00ff, 0x684e, 0x000e,
+-      0x684a, 0x6952, 0x0005, 0x2071, 0xc734, 0x7004, 0x0002, 0x5951,
+-      0x5962, 0x5b60, 0x5b61, 0x5b6e, 0x5b74, 0x5952, 0x5b51, 0x5ae7,
+-      0x5b3d, 0x0005, 0x0126, 0x2091, 0x8000, 0x0e04, 0x5961, 0x2009,
+-      0x000d, 0x7030, 0x200a, 0x2091, 0x4080, 0x7007, 0x0001, 0x700b,
+-      0x0000, 0x012e, 0x2069, 0xc93a, 0x683c, 0xa005, 0x03f8, 0x11f0,
+-      0x0126, 0x2091, 0x8000, 0x2069, 0x0000, 0x6934, 0x2001, 0xc740,
+-      0x2004, 0xa10a, 0x0170, 0x0e04, 0x5985, 0x2069, 0x0000, 0x6818,
+-      0xd084, 0x1158, 0x2009, 0x8040, 0x6922, 0x681b, 0x0001, 0x2091,
+-      0x4080, 0x2069, 0xc93a, 0x683f, 0xffff, 0x012e, 0x2069, 0xc600,
+-      0x6848, 0x6968, 0xa102, 0x2069, 0xc87b, 0x688a, 0x6984, 0x701c,
+-      0xa06d, 0x0120, 0x81ff, 0x0904, 0x59db, 0x00a0, 0x81ff, 0x0904,
+-      0x5aa1, 0x2071, 0xc87b, 0x7184, 0x7088, 0xa10a, 0x1258, 0x7190,
+-      0x2071, 0xc93a, 0x7038, 0xa005, 0x0128, 0x1b04, 0x5aa1, 0x713a,
+-      0x0804, 0x5aa1, 0x2071, 0xc87b, 0x718c, 0x0126, 0x2091, 0x8000,
+-      0x7084, 0xa10a, 0x0a04, 0x5abc, 0x0e04, 0x5a5d, 0x2071, 0x0000,
+-      0x7018, 0xd084, 0x1904, 0x5a5d, 0x2001, 0xffff, 0x2071, 0xc93a,
+-      0x703a, 0x2071, 0xc87b, 0x7000, 0xa086, 0x0002, 0x1150, 0x080c,
+-      0x5b75, 0x2071, 0x0000, 0x701b, 0x0001, 0x2091, 0x4080, 0x0804,
+-      0x5a5d, 0x080c, 0x5b9f, 0x2071, 0x0000, 0x701b, 0x0001, 0x2091,
+-      0x4080, 0x0804, 0x5a5d, 0x2071, 0xc87b, 0x7000, 0xa005, 0x0904,
+-      0x5a83, 0x6934, 0xa186, 0x0103, 0x1904, 0x5a60, 0x684c, 0xd0bc,
+-      0x1904, 0x5a83, 0x6948, 0x6844, 0xa105, 0x1904, 0x5a78, 0x2009,
+-      0x8020, 0x2071, 0xc87b, 0x7000, 0x0002, 0x5a83, 0x5a43, 0x5a1b,
+-      0x5a2d, 0x59fa, 0x0136, 0x0146, 0x0156, 0x2099, 0xc676, 0x20a1,
+-      0xc8cc, 0x20a9, 0x0004, 0x53a3, 0x015e, 0x014e, 0x013e, 0x2071,
+-      0xc8c3, 0xad80, 0x000f, 0x700e, 0x7013, 0x0002, 0x7007, 0x0002,
+-      0x700b, 0x0000, 0x2e10, 0x080c, 0x164d, 0x2071, 0xc734, 0x7007,
+-      0x0009, 0x0804, 0x5aa1, 0x7084, 0x8008, 0xa092, 0x001e, 0x1a04,
+-      0x5aa1, 0xae90, 0x0003, 0xa210, 0x683c, 0x2012, 0x7186, 0x2071,
+-      0xc734, 0x080c, 0x5bf6, 0x0804, 0x5aa1, 0x7084, 0x8008, 0xa092,
+-      0x000f, 0x1a04, 0x5aa1, 0xae90, 0x0003, 0x8003, 0xa210, 0x683c,
+-      0x2012, 0x8210, 0x6840, 0x2012, 0x7186, 0x2071, 0xc734, 0x080c,
+-      0x5bf6, 0x0804, 0x5aa1, 0x0126, 0x2091, 0x8000, 0x0e04, 0x5a5d,
+-      0x2071, 0x0000, 0x7018, 0xd084, 0x1180, 0x7122, 0x683c, 0x7026,
+-      0x6840, 0x702a, 0x701b, 0x0001, 0x2091, 0x4080, 0x012e, 0x2071,
+-      0xc734, 0x080c, 0x5bf6, 0x0804, 0x5aa1, 0x012e, 0x0804, 0x5aa1,
+-      0xa18c, 0x00ff, 0xa186, 0x0017, 0x0130, 0xa186, 0x001e, 0x0118,
+-      0xa18e, 0x001f, 0x11c0, 0x684c, 0xd0cc, 0x01a8, 0x6850, 0xa084,
+-      0x00ff, 0xa086, 0x0001, 0x1178, 0x2009, 0x8021, 0x0804, 0x59f1,
+-      0x6844, 0xa086, 0x0100, 0x1138, 0x6868, 0xa005, 0x1120, 0x2009,
+-      0x8020, 0x0804, 0x59f1, 0x2071, 0xc734, 0x080c, 0x5c08, 0x01c8,
+-      0x2071, 0xc734, 0x700f, 0x0001, 0x6934, 0xa184, 0x00ff, 0xa086,
+-      0x0003, 0x1130, 0x810f, 0xa18c, 0x00ff, 0x8101, 0x0108, 0x710e,
+-      0x7007, 0x0003, 0x080c, 0x5c21, 0x7050, 0xa086, 0x0100, 0x0904,
+-      0x5b61, 0x0126, 0x2091, 0x8000, 0x2071, 0xc734, 0x7008, 0xa086,
+-      0x0001, 0x1180, 0x0e04, 0x5aba, 0x2009, 0x000d, 0x7030, 0x200a,
+-      0x2091, 0x4080, 0x700b, 0x0000, 0x7004, 0xa086, 0x0006, 0x1110,
+-      0x7007, 0x0001, 0x012e, 0x0005, 0x2071, 0xc734, 0x080c, 0x5c08,
+-      0x0518, 0x2071, 0xc87b, 0x7084, 0x700a, 0x20a9, 0x0020, 0x2099,
+-      0xc87c, 0x20a1, 0xc8a3, 0x53a3, 0x7087, 0x0000, 0x2071, 0xc734,
+-      0x2069, 0xc8c3, 0x706c, 0x6826, 0x7070, 0x682a, 0x7074, 0x682e,
+-      0x7078, 0x6832, 0x2d10, 0x080c, 0x164d, 0x7007, 0x0008, 0x2001,
+-      0xffff, 0x2071, 0xc93a, 0x703a, 0x012e, 0x0804, 0x5aa1, 0x2069,
+-      0xc8c3, 0x6808, 0xa08e, 0x0000, 0x0904, 0x5b3c, 0xa08e, 0x0200,
+-      0x0904, 0x5b3a, 0xa08e, 0x0100, 0x1904, 0x5b3c, 0x0126, 0x2091,
+-      0x8000, 0x0e04, 0x5b38, 0x2069, 0x0000, 0x6818, 0xd084, 0x15c0,
+-      0x702c, 0x7130, 0x8108, 0xa102, 0x0230, 0xa00e, 0x7034, 0x706e,
+-      0x7038, 0x7072, 0x0048, 0x706c, 0xa080, 0x0040, 0x706e, 0x1220,
+-      0x7070, 0xa081, 0x0000, 0x7072, 0x7132, 0x6936, 0x700b, 0x0000,
+-      0x2001, 0xc8a0, 0x2004, 0xa005, 0x1190, 0x6934, 0x2069, 0xc87b,
+-      0x689c, 0x699e, 0x2069, 0xc93a, 0xa102, 0x1118, 0x683c, 0xa005,
+-      0x1368, 0x2001, 0xc8a1, 0x200c, 0x810d, 0x693e, 0x0038, 0x2009,
+-      0x8040, 0x6922, 0x681b, 0x0001, 0x2091, 0x4080, 0x7007, 0x0001,
+-      0x012e, 0x0010, 0x7007, 0x0005, 0x0005, 0x2001, 0xc8c5, 0x2004,
+-      0xa08e, 0x0100, 0x1128, 0x7007, 0x0001, 0x080c, 0x5bf6, 0x0005,
+-      0xa08e, 0x0000, 0x0de0, 0xa08e, 0x0200, 0x1dc8, 0x7007, 0x0005,
+-      0x0005, 0x701c, 0xa06d, 0x0158, 0x080c, 0x5c08, 0x0140, 0x7007,
+-      0x0003, 0x080c, 0x5c21, 0x7050, 0xa086, 0x0100, 0x0110, 0x0005,
+-      0x0005, 0x7050, 0xa09e, 0x0100, 0x1118, 0x7007, 0x0004, 0x0030,
+-      0xa086, 0x0200, 0x1110, 0x7007, 0x0005, 0x0005, 0x080c, 0x5bc4,
+-      0x7006, 0x080c, 0x5bf6, 0x0005, 0x0005, 0x00e6, 0x0156, 0x2071,
+-      0xc87b, 0x7184, 0x81ff, 0x0500, 0xa006, 0x7086, 0xae80, 0x0003,
+-      0x2071, 0x0000, 0x21a8, 0x2014, 0x7226, 0x8000, 0x0f04, 0x5b99,
+-      0x2014, 0x722a, 0x8000, 0x0f04, 0x5b99, 0x2014, 0x722e, 0x8000,
+-      0x0f04, 0x5b99, 0x2014, 0x723a, 0x8000, 0x0f04, 0x5b99, 0x2014,
+-      0x723e, 0xa180, 0x8030, 0x7022, 0x015e, 0x00ee, 0x0005, 0x00e6,
+-      0x0156, 0x2071, 0xc87b, 0x7184, 0x81ff, 0x01d8, 0xa006, 0x7086,
+-      0xae80, 0x0003, 0x2071, 0x0000, 0x21a8, 0x2014, 0x7226, 0x8000,
+-      0x2014, 0x722a, 0x8000, 0x0f04, 0x5bbb, 0x2014, 0x723a, 0x8000,
+-      0x2014, 0x723e, 0x0018, 0x2001, 0x8020, 0x0010, 0x2001, 0x8042,
+-      0x7022, 0x015e, 0x00ee, 0x0005, 0x702c, 0x7130, 0x8108, 0xa102,
+-      0x0230, 0xa00e, 0x7034, 0x706e, 0x7038, 0x7072, 0x0048, 0x706c,
+-      0xa080, 0x0040, 0x706e, 0x1220, 0x7070, 0xa081, 0x0000, 0x7072,
+-      0x7132, 0x700c, 0x8001, 0x700e, 0x1180, 0x0126, 0x2091, 0x8000,
+-      0x0e04, 0x5bf0, 0x2001, 0x000d, 0x2102, 0x2091, 0x4080, 0x2001,
+-      0x0001, 0x700b, 0x0000, 0x012e, 0x0005, 0x2001, 0x0007, 0x0005,
+-      0x2001, 0x0006, 0x700b, 0x0001, 0x012e, 0x0005, 0x701c, 0xa06d,
+-      0x0170, 0x0126, 0x2091, 0x8000, 0x7010, 0x8001, 0x7012, 0x2d04,
+-      0x701e, 0xa005, 0x1108, 0x701a, 0x012e, 0x080c, 0x1619, 0x0005,
+-      0x2019, 0x000d, 0x2304, 0x230c, 0xa10e, 0x0130, 0x2304, 0x230c,
+-      0xa10e, 0x0110, 0xa006, 0x0060, 0x732c, 0x8319, 0x7130, 0xa102,
+-      0x1118, 0x2300, 0xa005, 0x0020, 0x0210, 0xa302, 0x0008, 0x8002,
+-      0x0005, 0x2d00, 0x7026, 0xa080, 0x000d, 0x7056, 0x7053, 0x0000,
+-      0x0126, 0x2091, 0x8000, 0x2009, 0xc959, 0x2104, 0xc08d, 0x200a,
+-      0x012e, 0x080c, 0x1669, 0x0005, 0x708c, 0xa08a, 0x0029, 0x1220,
+-      0xa082, 0x001d, 0x0033, 0x0010, 0x080c, 0x1519, 0x6027, 0x1e00,
+-      0x0005, 0x5d2f, 0x5caa, 0x5cc2, 0x5cff, 0x5d20, 0x5d5a, 0x5d6c,
+-      0x5cc2, 0x5d46, 0x5c4e, 0x5c7c, 0x5c4d, 0x0005, 0x00d6, 0x2069,
+-      0x0200, 0x6804, 0xa005, 0x1180, 0x6808, 0xa005, 0x1518, 0x708f,
+-      0x0028, 0x2069, 0xc90c, 0x2d04, 0x7002, 0x080c, 0x6024, 0x6028,
+-      0xa085, 0x0600, 0x602a, 0x00b0, 0x708f, 0x0028, 0x2069, 0xc90c,
+-      0x2d04, 0x7002, 0x6028, 0xa085, 0x0600, 0x602a, 0x00e6, 0x0036,
+-      0x0046, 0x0056, 0x2071, 0xc96a, 0x080c, 0x1ec3, 0x005e, 0x004e,
+-      0x003e, 0x00ee, 0x00de, 0x0005, 0x00d6, 0x2069, 0x0200, 0x6804,
+-      0xa005, 0x1180, 0x6808, 0xa005, 0x1518, 0x708f, 0x0028, 0x2069,
+-      0xc90c, 0x2d04, 0x7002, 0x080c, 0x60b1, 0x6028, 0xa085, 0x0600,
+-      0x602a, 0x00b0, 0x708f, 0x0028, 0x2069, 0xc90c, 0x2d04, 0x7002,
+-      0x6028, 0xa085, 0x0600, 0x602a, 0x00e6, 0x0036, 0x0046, 0x0056,
+-      0x2071, 0xc96a, 0x080c, 0x1ec3, 0x005e, 0x004e, 0x003e, 0x00ee,
+-      0x00de, 0x0005, 0x6803, 0x0090, 0x6124, 0xd1e4, 0x1190, 0x080c,
+-      0x5dd7, 0xd1d4, 0x1160, 0xd1dc, 0x1138, 0xd1cc, 0x0150, 0x708f,
+-      0x0020, 0x080c, 0x5dd7, 0x0028, 0x708f, 0x001d, 0x0010, 0x708f,
+-      0x001f, 0x0005, 0x6803, 0x0088, 0x6124, 0xd1cc, 0x1590, 0xd1dc,
+-      0x1568, 0xd1e4, 0x1540, 0xa184, 0x1e00, 0x1580, 0x60e3, 0x0001,
+-      0x600c, 0xc0b4, 0x600e, 0x080c, 0x5f52, 0x080c, 0x25fb, 0x0156,
+-      0x6803, 0x0100, 0x20a9, 0x0014, 0x6804, 0xd0dc, 0x1118, 0x1f04,
+-      0x5cdc, 0x0048, 0x20a9, 0x0014, 0x6803, 0x0080, 0x6804, 0xd0d4,
+-      0x1130, 0x1f04, 0x5ce6, 0x080c, 0x5f73, 0x015e, 0x0078, 0x015e,
+-      0x708f, 0x0028, 0x0058, 0x708f, 0x001e, 0x0040, 0x708f, 0x001d,
+-      0x0028, 0x708f, 0x0020, 0x0010, 0x708f, 0x001f, 0x0005, 0x60e3,
+-      0x0001, 0x600c, 0xc0b4, 0x600e, 0x080c, 0x5f52, 0x080c, 0x25fb,
+-      0x6803, 0x0080, 0x6124, 0xd1d4, 0x1180, 0xd1dc, 0x1158, 0xd1e4,
+-      0x1130, 0xa184, 0x1e00, 0x1158, 0x708f, 0x0028, 0x0040, 0x708f,
+-      0x001e, 0x0028, 0x708f, 0x001d, 0x0010, 0x708f, 0x001f, 0x0005,
+-      0x6803, 0x00a0, 0x6124, 0xd1dc, 0x1138, 0xd1e4, 0x0138, 0x080c,
+-      0x1f06, 0x708f, 0x001e, 0x0010, 0x708f, 0x001d, 0x0005, 0x080c,
+-      0x5e49, 0x6124, 0xd1dc, 0x1188, 0x080c, 0x5dd7, 0x0016, 0x080c,
+-      0x1f06, 0x001e, 0xd1d4, 0x1128, 0xd1e4, 0x0138, 0x708f, 0x001e,
+-      0x0020, 0x708f, 0x001f, 0x080c, 0x5dd7, 0x0005, 0x6803, 0x00a0,
+-      0x6124, 0xd1d4, 0x1160, 0xd1cc, 0x1150, 0xd1dc, 0x1128, 0xd1e4,
+-      0x0140, 0x708f, 0x001e, 0x0028, 0x708f, 0x001d, 0x0010, 0x708f,
+-      0x0021, 0x0005, 0x080c, 0x5e49, 0x6124, 0xd1d4, 0x1150, 0xd1dc,
+-      0x1128, 0xd1e4, 0x0140, 0x708f, 0x001e, 0x0028, 0x708f, 0x001d,
+-      0x0010, 0x708f, 0x001f, 0x0005, 0x6803, 0x0090, 0x6124, 0xd1d4,
+-      0x1178, 0xd1cc, 0x1150, 0xd1dc, 0x1128, 0xd1e4, 0x0158, 0x708f,
+-      0x001e, 0x0040, 0x708f, 0x001d, 0x0028, 0x708f, 0x0020, 0x0010,
+-      0x708f, 0x001f, 0x0005, 0x0016, 0x00c6, 0x00d6, 0x00e6, 0x0126,
++      0x20a8, 0x53a6, 0x60c3, 0x0014, 0x080c, 0x4e5b, 0x0005, 0x00f6,
++      0x7084, 0xa005, 0x01f0, 0x2011, 0x4e31, 0x080c, 0x6fc6, 0xa086,
++      0x0014, 0x11a8, 0x2079, 0xcc80, 0x7a30, 0xa296, 0x1103, 0x1178,
++      0x7834, 0xa005, 0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70b8, 0xa005,
++      0x1110, 0x70bb, 0x0001, 0x708f, 0x0012, 0x0029, 0x0010, 0x080c,
++      0x4e74, 0x00fe, 0x0005, 0x708f, 0x0013, 0x080c, 0x4ef8, 0x20a3,
++      0x1103, 0x20a3, 0x0000, 0x3430, 0x2011, 0xcc8e, 0x080c, 0x4f3d,
++      0x1160, 0x7078, 0xa005, 0x1148, 0x7150, 0xa186, 0xffff, 0x0128,
++      0x080c, 0x4df5, 0x0110, 0x080c, 0x4f1b, 0x20a9, 0x0008, 0x2298,
++      0x26a0, 0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0014,
++      0x080c, 0x4e5b, 0x0005, 0x00f6, 0x7084, 0xa005, 0x01f0, 0x2011,
++      0x4e31, 0x080c, 0x6fc6, 0xa086, 0x0014, 0x11a8, 0x2079, 0xcc80,
++      0x7a30, 0xa296, 0x1104, 0x1178, 0x7834, 0xa005, 0x1160, 0x7a38,
++      0xd2fc, 0x0128, 0x70b8, 0xa005, 0x1110, 0x70bb, 0x0001, 0x708f,
++      0x0014, 0x0029, 0x0010, 0x080c, 0x4e74, 0x00fe, 0x0005, 0x708f,
++      0x0015, 0x080c, 0x4ef8, 0x20a3, 0x1104, 0x20a3, 0x0000, 0x3430,
++      0x2011, 0xcc8e, 0x080c, 0x4f3d, 0x11a8, 0x7078, 0xa005, 0x1190,
++      0x7158, 0xa186, 0xffff, 0x0170, 0xa180, 0x2f6e, 0x200d, 0xa18c,
++      0xff00, 0x810f, 0x080c, 0x4df5, 0x0128, 0x080c, 0x442b, 0x0110,
++      0x080c, 0x2a11, 0x20a9, 0x0008, 0x2298, 0x26a0, 0x53a6, 0x20a3,
++      0x0000, 0x20a3, 0x0000, 0x60c3, 0x0014, 0x080c, 0x4e5b, 0x0005,
++      0x00f6, 0x7084, 0xa005, 0x05b8, 0x2011, 0x4e31, 0x080c, 0x6fc6,
++      0xa086, 0x0014, 0x1570, 0x2079, 0xcc80, 0x7a30, 0xa296, 0x1105,
++      0x1540, 0x7834, 0x2011, 0x0100, 0xa21e, 0x1148, 0x7a38, 0xd2fc,
++      0x0128, 0x70b8, 0xa005, 0x1110, 0x70bb, 0x0001, 0x0060, 0xa005,
++      0x11c0, 0x7a38, 0xd2fc, 0x0128, 0x70b8, 0xa005, 0x1110, 0x70bb,
++      0x0001, 0x708b, 0x0000, 0x7a38, 0xd2f4, 0x0138, 0x2001, 0xc674,
++      0x2004, 0xd0a4, 0x1110, 0x70d7, 0x0008, 0x708f, 0x0016, 0x0029,
++      0x0010, 0x080c, 0x4e74, 0x00fe, 0x0005, 0x20e1, 0x9080, 0x20e1,
++      0x4000, 0x2099, 0xcc80, 0x20a1, 0x020b, 0x20a9, 0x000e, 0x53a6,
++      0x3430, 0x2011, 0xcc8e, 0x708f, 0x0017, 0x080c, 0x4f3d, 0x1150,
++      0x7078, 0xa005, 0x1138, 0x080c, 0x4d6a, 0x1170, 0xa085, 0x0001,
++      0x080c, 0x2a11, 0x20a9, 0x0008, 0x2099, 0xcc8e, 0x26a0, 0x53a6,
++      0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0014, 0x080c, 0x4e5b,
++      0x0010, 0x080c, 0x4981, 0x0005, 0x00f6, 0x7084, 0xa005, 0x01b0,
++      0x2011, 0x4e31, 0x080c, 0x6fc6, 0xa086, 0x0084, 0x1168, 0x2079,
++      0xcc80, 0x7a30, 0xa296, 0x1106, 0x1138, 0x7834, 0xa005, 0x1120,
++      0x708f, 0x0018, 0x0029, 0x0010, 0x080c, 0x4e74, 0x00fe, 0x0005,
++      0x708f, 0x0019, 0x080c, 0x4ef8, 0x20a3, 0x1106, 0x20a3, 0x0000,
++      0x3430, 0x2099, 0xcc8e, 0x2039, 0xcc0e, 0x27a0, 0x20a9, 0x0040,
++      0x53a3, 0x080c, 0x4f3d, 0x11e8, 0x2728, 0x2514, 0x8207, 0xa084,
++      0x00ff, 0x8000, 0x2018, 0xa294, 0x00ff, 0x8007, 0xa205, 0x202a,
++      0x7054, 0x2310, 0x8214, 0xa2a0, 0xcc0e, 0x2414, 0xa38c, 0x0001,
++      0x0118, 0xa294, 0xff00, 0x0018, 0xa294, 0x00ff, 0x8007, 0xa215,
++      0x2222, 0x2798, 0x26a0, 0x20a9, 0x0040, 0x53a6, 0x20a3, 0x0000,
++      0x20a3, 0x0000, 0x60c3, 0x0084, 0x080c, 0x4e5b, 0x0005, 0x00f6,
++      0x7084, 0xa005, 0x01d0, 0x2011, 0x4e31, 0x080c, 0x6fc6, 0xa086,
++      0x0084, 0x1188, 0x2079, 0xcc80, 0x7a30, 0xa296, 0x1107, 0x1158,
++      0x7834, 0xa005, 0x1140, 0x708b, 0x0001, 0x080c, 0x4ede, 0x708f,
++      0x001a, 0x0029, 0x0010, 0x080c, 0x4e74, 0x00fe, 0x0005, 0x708f,
++      0x001b, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x2099, 0xcc80, 0x20a1,
++      0x020b, 0x7484, 0xa480, 0x0018, 0xa080, 0x0007, 0xa084, 0x03f8,
++      0x8004, 0x20a8, 0x53a6, 0x60c3, 0x0084, 0x080c, 0x4e5b, 0x0005,
++      0x0005, 0x0005, 0x0086, 0x0096, 0x2029, 0xc653, 0x252c, 0x20a9,
++      0x0008, 0x2041, 0xcc0e, 0x28a0, 0x2099, 0xcc8e, 0x53a3, 0x20a9,
++      0x0008, 0x2011, 0x0007, 0xd5d4, 0x0110, 0x2011, 0x0000, 0x2800,
++      0xa200, 0x200c, 0xa1a6, 0xffff, 0x1148, 0xd5d4, 0x0110, 0x8210,
++      0x0008, 0x8211, 0x1f04, 0x4d7f, 0x0804, 0x4ded, 0x82ff, 0x1160,
++      0xd5d4, 0x0120, 0xa1a6, 0x3fff, 0x0d90, 0x0020, 0xa1a6, 0x3fff,
++      0x0904, 0x4ded, 0xa18d, 0xc000, 0x20a9, 0x0010, 0x2019, 0x0001,
++      0xd5d4, 0x0110, 0x2019, 0x0010, 0x2120, 0xd5d4, 0x0110, 0x8423,
++      0x0008, 0x8424, 0x1240, 0xd5d4, 0x0110, 0x8319, 0x0008, 0x8318,
++      0x1f04, 0x4da5, 0x04d0, 0x23a8, 0x2021, 0x0001, 0x8426, 0x8425,
++      0x1f04, 0x4db7, 0x2328, 0x8529, 0xa2be, 0x0007, 0x0158, 0x0006,
++      0x2039, 0x0007, 0x2200, 0xa73a, 0x000e, 0x27a8, 0xa5a8, 0x0010,
++      0x1f04, 0x4dc6, 0x7552, 0xa5c8, 0x2f6e, 0x292d, 0xa5ac, 0x00ff,
++      0x7576, 0x6532, 0x6536, 0x0016, 0x2508, 0x080c, 0x29f1, 0x001e,
++      0x60e7, 0x0000, 0x65ea, 0x2018, 0x2304, 0xa405, 0x201a, 0x707b,
++      0x0001, 0x26a0, 0x2898, 0x20a9, 0x0008, 0x53a6, 0x20a3, 0x0000,
++      0x20a3, 0x0000, 0xa085, 0x0001, 0x0028, 0xa006, 0x0018, 0xa006,
++      0x080c, 0x1519, 0x009e, 0x008e, 0x0005, 0x2118, 0x2021, 0x0000,
++      0x2001, 0x0007, 0xa39a, 0x0010, 0x0218, 0x8420, 0x8001, 0x0cd0,
++      0x2118, 0x84ff, 0x0120, 0xa39a, 0x0010, 0x8421, 0x1de0, 0x2021,
++      0x0001, 0x83ff, 0x0118, 0x8423, 0x8319, 0x1de8, 0xa238, 0x2704,
++      0xa42c, 0x11b8, 0xa405, 0x203a, 0x7152, 0xa1a0, 0x2f6e, 0x242d,
++      0xa5ac, 0x00ff, 0x7576, 0x6532, 0x6536, 0x0016, 0x2508, 0x080c,
++      0x29f1, 0x001e, 0x60e7, 0x0000, 0x65ea, 0x707b, 0x0001, 0xa084,
++      0x0000, 0x0005, 0x00e6, 0x2071, 0xc600, 0x707f, 0x0000, 0x00ee,
++      0x0005, 0x00e6, 0x00f6, 0x2079, 0x0100, 0x2071, 0x0140, 0x080c,
++      0x8c0e, 0x7004, 0xa084, 0x4000, 0x0120, 0x7003, 0x1000, 0x7003,
++      0x0000, 0x0126, 0x2091, 0x8000, 0x2071, 0xc623, 0x2073, 0x0000,
++      0x7840, 0x0026, 0x0016, 0x2009, 0x00f7, 0x080c, 0x4f04, 0x001e,
++      0xa094, 0x0010, 0xa285, 0x0080, 0x7842, 0x7a42, 0x002e, 0x012e,
++      0x00fe, 0x00ee, 0x0005, 0x0126, 0x2091, 0x8000, 0x2011, 0xc931,
++      0x2013, 0x0000, 0x7087, 0x0000, 0x012e, 0x20e1, 0x9080, 0x60a3,
++      0x0056, 0x60a7, 0x9575, 0x080c, 0x8c05, 0x2009, 0x07d0, 0x2011,
++      0x4e31, 0x080c, 0x704f, 0x0005, 0x0016, 0x0026, 0x00c6, 0x0126,
++      0x2091, 0x8000, 0x2011, 0x0003, 0x080c, 0x8f27, 0x2011, 0x0002,
++      0x080c, 0x8f31, 0x080c, 0x8e07, 0x0036, 0x2019, 0x0000, 0x080c,
++      0x8e92, 0x003e, 0x2009, 0x00f7, 0x080c, 0x4f04, 0x2061, 0xc93a,
++      0x601b, 0x0000, 0x601f, 0x0000, 0x2061, 0xc600, 0x6003, 0x0001,
++      0x2061, 0x0100, 0x6043, 0x0090, 0x6043, 0x0010, 0x2009, 0x002d,
++      0x2011, 0x4ea9, 0x080c, 0x6fba, 0x012e, 0x00ce, 0x002e, 0x001e,
++      0x0005, 0x00e6, 0x0006, 0x0126, 0x2091, 0x8000, 0x2071, 0x0100,
++      0x080c, 0x8c0e, 0x2071, 0x0140, 0x7004, 0xa084, 0x4000, 0x0120,
++      0x7003, 0x1000, 0x7003, 0x0000, 0x080c, 0x5f43, 0x01a8, 0x080c,
++      0x5f61, 0x1190, 0x2001, 0xc8e5, 0x2003, 0xaaaa, 0x0016, 0x080c,
++      0x2a95, 0x2001, 0xc8d6, 0x2102, 0x001e, 0x2001, 0xc8e6, 0x2003,
++      0x0000, 0x080c, 0x5e73, 0x0030, 0x2001, 0x0001, 0x080c, 0x296d,
++      0x080c, 0x4e74, 0x012e, 0x000e, 0x00ee, 0x0005, 0x20a9, 0x0040,
++      0x20a1, 0xcdc0, 0x2099, 0xcc8e, 0x3304, 0x8007, 0x20a2, 0x9398,
++      0x94a0, 0x1f04, 0x4ee4, 0x0005, 0x20e1, 0x9080, 0x20e1, 0x4000,
++      0x2099, 0xcc00, 0x20a1, 0x020b, 0x20a9, 0x000c, 0x53a6, 0x0005,
++      0x20e1, 0x9080, 0x20e1, 0x4000, 0x2099, 0xcc80, 0x20a1, 0x020b,
++      0x20a9, 0x000c, 0x53a6, 0x0005, 0x00c6, 0x0006, 0x2061, 0x0100,
++      0x810f, 0x2001, 0xc631, 0x2004, 0xa005, 0x1138, 0x2001, 0xc615,
++      0x2004, 0xa084, 0x00ff, 0xa105, 0x0010, 0xa185, 0x00f7, 0x604a,
++      0x000e, 0x00ce, 0x0005, 0x0016, 0x0046, 0x2001, 0xc653, 0x2004,
++      0xd0a4, 0x0158, 0xa006, 0x2020, 0x2009, 0x002a, 0x080c, 0xc1a9,
++      0x2001, 0xc60c, 0x200c, 0xc195, 0x2102, 0x2019, 0x002a, 0x2009,
++      0x0000, 0x080c, 0x2e19, 0x004e, 0x001e, 0x0005, 0x080c, 0x4e74,
++      0x708f, 0x0000, 0x7087, 0x0000, 0x0005, 0x0006, 0x2001, 0xc60c,
++      0x2004, 0xd09c, 0x0100, 0x000e, 0x0005, 0x0006, 0x0016, 0x0126,
++      0x2091, 0x8000, 0x2001, 0x0101, 0x200c, 0xa18d, 0x0006, 0x2102,
++      0x012e, 0x001e, 0x000e, 0x0005, 0x0156, 0x20a9, 0x00ff, 0x2009,
++      0xc77b, 0xa006, 0x200a, 0x8108, 0x1f04, 0x4f5a, 0x015e, 0x0005,
++      0x00d6, 0x0036, 0x0156, 0x0136, 0x0146, 0x2069, 0xc652, 0xa006,
++      0x6002, 0x6007, 0x0707, 0x600a, 0x600e, 0x6012, 0xa198, 0x2f6e,
++      0x231d, 0xa39c, 0x00ff, 0x6316, 0x20a9, 0x0004, 0xac98, 0x0006,
++      0x23a0, 0x40a4, 0x20a9, 0x0004, 0xac98, 0x000a, 0x23a0, 0x40a4,
++      0x603e, 0x6042, 0x604e, 0x6052, 0x6056, 0x605a, 0x605e, 0x6062,
++      0x6066, 0x606a, 0x606e, 0x6072, 0x6076, 0x607a, 0x607e, 0x6082,
++      0x6086, 0x608a, 0x608e, 0x6092, 0x6096, 0x609a, 0x609e, 0x60be,
++      0x61a2, 0x00d6, 0x60a4, 0xa06d, 0x0110, 0x080c, 0x1619, 0x60a7,
++      0x0000, 0x60a8, 0xa06d, 0x0110, 0x080c, 0x1619, 0x60ab, 0x0000,
++      0x00de, 0xa006, 0x604a, 0x6810, 0x603a, 0x680c, 0x6046, 0xa006,
++      0x60b2, 0x60ae, 0x60b6, 0x60bb, 0x0520, 0x6814, 0xa084, 0x00ff,
++      0x6042, 0x014e, 0x013e, 0x015e, 0x003e, 0x00de, 0x0005, 0x0126,
++      0x2091, 0x8000, 0x6944, 0x6e48, 0xa684, 0x3fff, 0xa082, 0x4000,
++      0x1a04, 0x5075, 0xa18c, 0xff00, 0x810f, 0xa182, 0x00ff, 0x1a04,
++      0x507a, 0x2001, 0xc60c, 0x2004, 0xa084, 0x0003, 0x01c0, 0x2001,
++      0xc60c, 0x2004, 0xd084, 0x1904, 0x505d, 0xa188, 0xc77b, 0x2104,
++      0xa065, 0x0904, 0x505d, 0x6004, 0xa084, 0x00ff, 0xa08e, 0x0006,
++      0x1904, 0x505d, 0x6000, 0xd0c4, 0x0904, 0x505d, 0x0068, 0xa188,
++      0xc77b, 0x2104, 0xa065, 0x0904, 0x5041, 0x6004, 0xa084, 0x00ff,
++      0xa08e, 0x0006, 0x1904, 0x5046, 0x60a4, 0xa00d, 0x0118, 0x080c,
++      0x5581, 0x05d0, 0x60a8, 0xa00d, 0x0188, 0x080c, 0x55cc, 0x1170,
++      0x694c, 0xd1fc, 0x1118, 0x080c, 0x528b, 0x0448, 0x080c, 0x523a,
++      0x694c, 0xd1ec, 0x1520, 0x080c, 0x5473, 0x0408, 0x694c, 0xa184,
++      0xa000, 0x0178, 0xd1ec, 0x0140, 0xd1fc, 0x0118, 0x080c, 0x5482,
++      0x0028, 0x080c, 0x5482, 0x0028, 0xd1fc, 0x0118, 0x080c, 0x523a,
++      0x0070, 0x6050, 0xa00d, 0x0130, 0x2d00, 0x200a, 0x6803, 0x0000,
++      0x6052, 0x0028, 0x2d00, 0x6052, 0x604e, 0x6803, 0x0000, 0x080c,
++      0x79cf, 0xa006, 0x012e, 0x0005, 0x2001, 0x0005, 0x2009, 0x0000,
++      0x04e8, 0x2001, 0x0028, 0x2009, 0x0000, 0x04c0, 0xa082, 0x0006,
++      0x12a0, 0x2001, 0xc635, 0x2004, 0xd0ac, 0x1160, 0x60a0, 0xd0bc,
++      0x1148, 0x6100, 0xd1fc, 0x0904, 0x4ffc, 0x2001, 0x0029, 0x2009,
++      0x1000, 0x0420, 0x2001, 0x0028, 0x00a8, 0x2009, 0xc60c, 0x210c,
++      0xd18c, 0x0118, 0x2001, 0x0004, 0x0068, 0xd184, 0x0118, 0x2001,
++      0x0004, 0x0040, 0x2001, 0x0029, 0x6100, 0xd1fc, 0x0118, 0x2009,
++      0x1000, 0x0060, 0x2009, 0x0000, 0x0048, 0x2001, 0x0029, 0x2009,
++      0x0000, 0x0020, 0x2001, 0x0029, 0x2009, 0x0000, 0xa005, 0x012e,
++      0x0005, 0x00e6, 0x0126, 0x2091, 0x8000, 0x6844, 0xa084, 0xff00,
++      0xa08e, 0xff00, 0x1120, 0x2001, 0xc8d3, 0x2064, 0x0080, 0x6844,
++      0x8007, 0xa084, 0x00ff, 0x2008, 0xa182, 0x00ff, 0x1698, 0xa188,
++      0xc77b, 0x2104, 0xa065, 0x01d8, 0x080c, 0x5706, 0x11d8, 0x2c70,
++      0x080c, 0x95a6, 0x0568, 0x2e00, 0x601a, 0x2d00, 0x6012, 0x601f,
++      0x0009, 0x600b, 0x0000, 0x6844, 0xa08e, 0xff00, 0x1110, 0x600b,
++      0x8000, 0x2009, 0x0100, 0x080c, 0x962c, 0xa006, 0x00b0, 0x2001,
++      0x0028, 0x0090, 0x2009, 0xc60c, 0x210c, 0xd18c, 0x0118, 0x2001,
++      0x0004, 0x0038, 0xd184, 0x0118, 0x2001, 0x0004, 0x0010, 0x2001,
++      0x0029, 0x0010, 0x2001, 0x0029, 0xa005, 0x012e, 0x00ee, 0x0005,
++      0x2001, 0x002c, 0x0cc8, 0x00e6, 0x0126, 0x2091, 0x8000, 0x6844,
++      0x8007, 0xa084, 0x00ff, 0x2008, 0xa182, 0x00ff, 0x1a04, 0x5126,
++      0xa188, 0xc77b, 0x2104, 0xa065, 0x01c0, 0x6004, 0xa084, 0x00ff,
++      0xa08e, 0x0006, 0x11a8, 0x2c70, 0x080c, 0x95a6, 0x05e8, 0x2e00,
++      0x601a, 0x2d00, 0x6012, 0x600b, 0xffff, 0x601f, 0x000a, 0x2009,
++      0x0003, 0x080c, 0x962c, 0xa006, 0x0460, 0x2001, 0x0028, 0x0440,
++      0xa082, 0x0006, 0x1298, 0x2001, 0xc635, 0x2004, 0xd0ac, 0x1158,
++      0x60a0, 0xd0bc, 0x1140, 0x6100, 0xd1fc, 0x09e8, 0x2001, 0x0029,
++      0x2009, 0x1000, 0x00a8, 0x2001, 0x0028, 0x0090, 0x2009, 0xc60c,
++      0x210c, 0xd18c, 0x0118, 0x2001, 0x0004, 0x0050, 0xd184, 0x0118,
++      0x2001, 0x0004, 0x0028, 0x2001, 0x0029, 0x0010, 0x2001, 0x0029,
++      0xa005, 0x012e, 0x00ee, 0x0005, 0x2001, 0x002c, 0x0cc8, 0x00f6,
++      0x00e6, 0x0126, 0x2091, 0x8000, 0x2011, 0x0000, 0x2079, 0xc600,
++      0x6944, 0xa18c, 0xff00, 0x810f, 0xa182, 0x00ff, 0x1a04, 0x51f1,
++      0x080c, 0x5356, 0x11a0, 0x6004, 0xa084, 0x00ff, 0xa082, 0x0006,
++      0x1270, 0x6864, 0xa0c6, 0x006f, 0x0150, 0x2001, 0xc635, 0x2004,
++      0xd0ac, 0x1904, 0x51da, 0x60a0, 0xd0bc, 0x1904, 0x51da, 0x6864,
++      0xa0c6, 0x006f, 0x0118, 0x2008, 0x0804, 0x51a3, 0x6968, 0x2140,
++      0xa18c, 0xff00, 0x810f, 0x78d4, 0xd0ac, 0x1118, 0xa182, 0x0080,
++      0x06d0, 0xa182, 0x00ff, 0x16b8, 0x6a70, 0x6b6c, 0x7870, 0xa306,
++      0x1160, 0x7874, 0xa24e, 0x1118, 0x2208, 0x2310, 0x0460, 0xa9cc,
++      0xff00, 0x1118, 0x2208, 0x2310, 0x0430, 0x080c, 0x3f89, 0x2c70,
++      0x0550, 0x2009, 0x0000, 0x2011, 0x0000, 0xa0c6, 0x4000, 0x1160,
++      0x0006, 0x2e60, 0x080c, 0x55f7, 0x1108, 0xc185, 0x7000, 0xd0bc,
++      0x0108, 0xc18d, 0x000e, 0x0088, 0xa0c6, 0x4007, 0x1110, 0x2408,
++      0x0060, 0xa0c6, 0x4008, 0x1118, 0x2708, 0x2610, 0x0030, 0xa0c6,
++      0x4009, 0x1108, 0x0010, 0x2001, 0x4006, 0x6866, 0x696a, 0x6a6e,
++      0x2001, 0x0030, 0x0450, 0x080c, 0x95a6, 0x1138, 0x2001, 0x4005,
++      0x2009, 0x0003, 0x2011, 0x0000, 0x0c80, 0x2e00, 0x601a, 0x080c,
++      0xb077, 0x2d00, 0x6012, 0x601f, 0x0001, 0x6838, 0xd88c, 0x0108,
++      0xc0f5, 0x683a, 0x0126, 0x2091, 0x8000, 0x080c, 0x2e46, 0x012e,
++      0x2001, 0x0000, 0x080c, 0x5298, 0x2001, 0x0002, 0x080c, 0x52aa,
++      0x2009, 0x0002, 0x080c, 0x962c, 0xa006, 0xa005, 0x012e, 0x00ee,
++      0x00fe, 0x0005, 0x2001, 0x0028, 0x2009, 0x0000, 0x0cb0, 0x2009,
++      0xc60c, 0x210c, 0xd18c, 0x0118, 0x2001, 0x0004, 0x0038, 0xd184,
++      0x0118, 0x2001, 0x0004, 0x0010, 0x2001, 0x0029, 0x2009, 0x0000,
++      0x0c20, 0x2001, 0x0029, 0x2009, 0x0000, 0x08f8, 0x6944, 0x6e48,
++      0xa684, 0x3fff, 0xa082, 0x4000, 0x16b8, 0xa18c, 0xff00, 0x810f,
++      0xa182, 0x00ff, 0x12e0, 0xa188, 0xc77b, 0x2104, 0xa065, 0x01b8,
++      0x6004, 0xa084, 0x00ff, 0xa08e, 0x0006, 0x11b0, 0x684c, 0xd0ec,
++      0x0120, 0x080c, 0x5482, 0x0431, 0x0030, 0x0421, 0x684c, 0xd0fc,
++      0x0110, 0x080c, 0x5473, 0x080c, 0x54c0, 0xa006, 0x00c8, 0x2001,
++      0x0028, 0x2009, 0x0000, 0x00a0, 0xa082, 0x0006, 0x1240, 0x6100,
++      0xd1fc, 0x0d20, 0x2001, 0x0029, 0x2009, 0x1000, 0x0048, 0x2001,
++      0x0029, 0x2009, 0x0000, 0x0020, 0x2001, 0x0029, 0x2009, 0x0000,
++      0xa005, 0x0005, 0x0126, 0x2091, 0x8000, 0x6050, 0xa00d, 0x0138,
++      0x2d00, 0x200a, 0x6803, 0x0000, 0x6052, 0x012e, 0x0005, 0x2d00,
++      0x6052, 0x604e, 0x6803, 0x0000, 0x0cc0, 0x0126, 0x2091, 0x8000,
++      0x604c, 0xa005, 0x0170, 0x00e6, 0x2071, 0xc927, 0x7004, 0xa086,
++      0x0002, 0x0168, 0x00ee, 0x604c, 0x6802, 0x2d00, 0x604e, 0x012e,
++      0x0005, 0x2d00, 0x6052, 0x604e, 0x6803, 0x0000, 0x0cc0, 0x701c,
++      0xac06, 0x1d80, 0x604c, 0x2070, 0x7000, 0x6802, 0x2d00, 0x7002,
++      0x00ee, 0x012e, 0x0005, 0x0126, 0x2091, 0x8000, 0x604c, 0xa06d,
++      0x0130, 0x6800, 0xa005, 0x1108, 0x6052, 0x604e, 0xad05, 0x012e,
++      0x0005, 0x604c, 0xa06d, 0x0130, 0x6800, 0xa005, 0x1108, 0x6052,
++      0x604e, 0xad05, 0x0005, 0x6803, 0x0000, 0x6084, 0xa00d, 0x0120,
++      0x2d00, 0x200a, 0x6086, 0x0005, 0x2d00, 0x6086, 0x6082, 0x0cd8,
++      0x0126, 0x00c6, 0x0026, 0x2091, 0x8000, 0x6218, 0x2260, 0x6200,
++      0xa005, 0x0110, 0xc285, 0x0008, 0xc284, 0x6202, 0x002e, 0x00ce,
++      0x012e, 0x0005, 0x0126, 0x00c6, 0x2091, 0x8000, 0x6218, 0x2260,
++      0x6204, 0x0006, 0xa086, 0x0006, 0x1180, 0x609c, 0xd0ac, 0x0168,
++      0x2001, 0xc653, 0x2004, 0xd0a4, 0x0140, 0xa284, 0xff00, 0x8007,
++      0xa086, 0x0007, 0x1110, 0x2011, 0x0600, 0x000e, 0xa294, 0xff00,
++      0xa215, 0x6206, 0x0006, 0xa086, 0x0006, 0x1128, 0x6290, 0x82ff,
++      0x1110, 0x080c, 0x1519, 0x000e, 0x00ce, 0x012e, 0x0005, 0x0126,
++      0x00c6, 0x2091, 0x8000, 0x6218, 0x2260, 0x6204, 0x0006, 0xa086,
++      0x0006, 0x1178, 0x609c, 0xd0a4, 0x0160, 0x2001, 0xc653, 0x2004,
++      0xd0ac, 0x1138, 0xa284, 0x00ff, 0xa086, 0x0007, 0x1110, 0x2011,
++      0x0006, 0x000e, 0xa294, 0x00ff, 0x8007, 0xa215, 0x6206, 0x00ce,
++      0x012e, 0x0005, 0x0026, 0xa182, 0x00ff, 0x0218, 0xa085, 0x0001,
++      0x00b0, 0xa190, 0xc77b, 0x2204, 0xa065, 0x1180, 0x0016, 0x00d6,
++      0x080c, 0x15e5, 0x2d60, 0x00de, 0x001e, 0x0d80, 0x2c00, 0x2012,
++      0x60a7, 0x0000, 0x60ab, 0x0000, 0x080c, 0x4f60, 0xa006, 0x002e,
++      0x0005, 0x0126, 0x2091, 0x8000, 0x0026, 0xa182, 0x00ff, 0x0218,
++      0xa085, 0x0001, 0x0480, 0x00d6, 0xa190, 0xc77b, 0x2204, 0xa06d,
++      0x0540, 0x2013, 0x0000, 0x00d6, 0x00c6, 0x2d60, 0x60a4, 0xa06d,
++      0x0110, 0x080c, 0x1619, 0x60a8, 0xa06d, 0x0110, 0x080c, 0x1619,
++      0x00ce, 0x00de, 0x00d6, 0x00c6, 0x68bc, 0x2060, 0x8cff, 0x0168,
++      0x600c, 0x0006, 0x6010, 0x2068, 0x080c, 0xacaa, 0x0110, 0x080c,
++      0x1629, 0x080c, 0x95fc, 0x00ce, 0x0c88, 0x00ce, 0x00de, 0x080c,
++      0x1619, 0x00de, 0xa006, 0x002e, 0x012e, 0x0005, 0x0016, 0xa182,
++      0x00ff, 0x0218, 0xa085, 0x0001, 0x0030, 0xa188, 0xc77b, 0x2104,
++      0xa065, 0x0dc0, 0xa006, 0x001e, 0x0005, 0x00d6, 0x0156, 0x0136,
++      0x0146, 0x600b, 0x0000, 0x600f, 0x0000, 0x6000, 0xc08c, 0x6002,
++      0x080c, 0x5f3b, 0x1558, 0x60a0, 0xa086, 0x007e, 0x2069, 0xcc90,
++      0x0130, 0x2001, 0xc635, 0x2004, 0xd0ac, 0x1500, 0x0098, 0x2d04,
++      0xd0e4, 0x01e0, 0x00d6, 0x2069, 0xcc8e, 0x00c6, 0x2061, 0xc8f9,
++      0x6810, 0x2062, 0x6814, 0x6006, 0x6818, 0x600a, 0x681c, 0x600e,
++      0x00ce, 0x00de, 0x8d69, 0x2d04, 0x2069, 0x0140, 0xa005, 0x1110,
++      0x2001, 0x0001, 0x6886, 0x2069, 0xc600, 0x68a6, 0x2069, 0xcc8e,
++      0x6808, 0x605e, 0x6810, 0x6062, 0x6138, 0xa10a, 0x0208, 0x603a,
++      0x6814, 0x6066, 0x2099, 0xcc96, 0xac88, 0x000a, 0x21a0, 0x20a9,
++      0x0004, 0x53a3, 0x2099, 0xcc9a, 0xac88, 0x0006, 0x21a0, 0x20a9,
++      0x0004, 0x53a3, 0x2069, 0xccae, 0x6808, 0x606a, 0x690c, 0x616e,
++      0x6810, 0x6072, 0x6818, 0x6076, 0x60a0, 0xa086, 0x007e, 0x1120,
++      0x2069, 0xcc8e, 0x690c, 0x616e, 0xa182, 0x0211, 0x1218, 0x2009,
++      0x0008, 0x0400, 0xa182, 0x0259, 0x1218, 0x2009, 0x0007, 0x00d0,
++      0xa182, 0x02c1, 0x1218, 0x2009, 0x0006, 0x00a0, 0xa182, 0x0349,
++      0x1218, 0x2009, 0x0005, 0x0070, 0xa182, 0x0421, 0x1218, 0x2009,
++      0x0004, 0x0040, 0xa182, 0x0581, 0x1218, 0x2009, 0x0003, 0x0010,
++      0x2009, 0x0002, 0x6192, 0x014e, 0x013e, 0x015e, 0x00de, 0x0005,
++      0x0016, 0x0026, 0x00e6, 0x2071, 0xcc8d, 0x2e04, 0x6896, 0x2071,
++      0xcc8e, 0x7004, 0x689a, 0x701c, 0x689e, 0x6a00, 0x2009, 0xc672,
++      0x210c, 0xd0bc, 0x0120, 0xd1ec, 0x0110, 0xc2ad, 0x0008, 0xc2ac,
++      0xd0c4, 0x0120, 0xd1e4, 0x0110, 0xc2bd, 0x0008, 0xc2bc, 0x6a02,
++      0x00ee, 0x002e, 0x001e, 0x0005, 0x00d6, 0x0126, 0x2091, 0x8000,
++      0x60a4, 0xa06d, 0x01c0, 0x6900, 0x81ff, 0x1540, 0x6a04, 0xa282,
++      0x0010, 0x1648, 0xad88, 0x0004, 0x20a9, 0x0010, 0x2104, 0xa086,
++      0xffff, 0x0128, 0x8108, 0x1f04, 0x542e, 0x080c, 0x1519, 0x260a,
++      0x8210, 0x6a06, 0x0098, 0x080c, 0x1602, 0x01a8, 0x2d00, 0x60a6,
++      0x6803, 0x0000, 0xad88, 0x0004, 0x20a9, 0x0010, 0x200b, 0xffff,
++      0x8108, 0x1f04, 0x5446, 0x6807, 0x0001, 0x6e12, 0xa085, 0x0001,
++      0x012e, 0x00de, 0x0005, 0xa006, 0x0cd8, 0x0126, 0x2091, 0x8000,
++      0x00d6, 0x60a4, 0xa00d, 0x01a0, 0x2168, 0x6800, 0xa005, 0x1160,
++      0x080c, 0x5581, 0x1168, 0x200b, 0xffff, 0x6804, 0xa08a, 0x0002,
++      0x0218, 0x8001, 0x6806, 0x0020, 0x080c, 0x1619, 0x60a7, 0x0000,
++      0x00de, 0x012e, 0x0005, 0x0126, 0x2091, 0x8000, 0x080c, 0x55df,
++      0x0010, 0x080c, 0x523a, 0x080c, 0x54f9, 0x1dd8, 0x080c, 0x54c0,
++      0x012e, 0x0005, 0x00d6, 0x0126, 0x2091, 0x8000, 0x60a8, 0xa06d,
++      0x01c0, 0x6950, 0x81ff, 0x1540, 0x6a54, 0xa282, 0x0010, 0x1670,
++      0xad88, 0x0018, 0x20a9, 0x0010, 0x2104, 0xa086, 0xffff, 0x0128,
++      0x8108, 0x1f04, 0x5494, 0x080c, 0x1519, 0x260a, 0x8210, 0x6a56,
++      0x0098, 0x080c, 0x1602, 0x01d0, 0x2d00, 0x60aa, 0x6853, 0x0000,
++      0xad88, 0x0018, 0x20a9, 0x0010, 0x200b, 0xffff, 0x8108, 0x1f04,
++      0x54ac, 0x6857, 0x0001, 0x6e62, 0x0010, 0x080c, 0x528b, 0x0089,
++      0x1de0, 0xa085, 0x0001, 0x012e, 0x00de, 0x0005, 0xa006, 0x0cd8,
++      0x0126, 0x2091, 0x8000, 0x080c, 0x79cf, 0x012e, 0x0005, 0xa01e,
++      0x0010, 0x2019, 0x0001, 0xa00e, 0x0126, 0x2091, 0x8000, 0x604c,
++      0x2068, 0x6000, 0xd0dc, 0x1170, 0x8dff, 0x01f8, 0x83ff, 0x0120,
++      0x6848, 0xa606, 0x0158, 0x0030, 0x683c, 0xa406, 0x1118, 0x6840,
++      0xa506, 0x0120, 0x2d08, 0x6800, 0x2068, 0x0c70, 0x080c, 0x8fd0,
++      0x6a00, 0x604c, 0xad06, 0x1110, 0x624e, 0x0018, 0xa180, 0x0000,
++      0x2202, 0x82ff, 0x1110, 0x6152, 0x8dff, 0x012e, 0x0005, 0xa01e,
++      0x0010, 0x2019, 0x0001, 0xa00e, 0x6080, 0x2068, 0x8dff, 0x01e8,
++      0x83ff, 0x0120, 0x6848, 0xa606, 0x0158, 0x0030, 0x683c, 0xa406,
++      0x1118, 0x6840, 0xa506, 0x0120, 0x2d08, 0x6800, 0x2068, 0x0c70,
++      0x6a00, 0x6080, 0xad06, 0x1110, 0x6282, 0x0018, 0xa180, 0x0000,
++      0x2202, 0x82ff, 0x1110, 0x6186, 0x8dff, 0x0005, 0xa016, 0x080c,
++      0x557b, 0x1110, 0x2011, 0x0001, 0x080c, 0x55c6, 0x1110, 0xa295,
++      0x0002, 0x0005, 0x080c, 0x55f7, 0x0118, 0x080c, 0xad5f, 0x0010,
++      0xa085, 0x0001, 0x0005, 0x080c, 0x55f7, 0x0118, 0x080c, 0xacef,
++      0x0010, 0xa085, 0x0001, 0x0005, 0x080c, 0x55f7, 0x0118, 0x080c,
++      0xad42, 0x0010, 0xa085, 0x0001, 0x0005, 0x080c, 0x55f7, 0x0118,
++      0x080c, 0xad0b, 0x0010, 0xa085, 0x0001, 0x0005, 0x080c, 0x55f7,
++      0x0118, 0x080c, 0xad7b, 0x0010, 0xa085, 0x0001, 0x0005, 0x0126,
++      0x0006, 0x00d6, 0x2091, 0x8000, 0x6080, 0xa06d, 0x01a0, 0x6800,
++      0x0006, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000, 0x080c, 0xaf1c,
++      0x0006, 0x6000, 0xd0fc, 0x0110, 0x080c, 0xc4f9, 0x000e, 0x080c,
++      0x5823, 0x000e, 0x0c50, 0x6083, 0x0000, 0x6087, 0x0000, 0x00de,
++      0x000e, 0x012e, 0x0005, 0x60a4, 0xa00d, 0x1118, 0xa085, 0x0001,
++      0x0005, 0x00e6, 0x2170, 0x7000, 0xa005, 0x1168, 0x20a9, 0x0010,
++      0xae88, 0x0004, 0x2104, 0xa606, 0x0130, 0x8108, 0x1f04, 0x558a,
++      0xa085, 0x0001, 0x0008, 0xa006, 0x00ee, 0x0005, 0x00d6, 0x0126,
++      0x2091, 0x8000, 0x60a4, 0xa06d, 0x1128, 0x080c, 0x1602, 0x01a0,
++      0x2d00, 0x60a6, 0x6803, 0x0001, 0x6807, 0x0000, 0xad88, 0x0004,
++      0x20a9, 0x0010, 0x200b, 0xffff, 0x8108, 0x1f04, 0x55aa, 0xa085,
++      0x0001, 0x012e, 0x00de, 0x0005, 0xa006, 0x0cd8, 0x00d6, 0x0126,
++      0x2091, 0x8000, 0x60a4, 0xa06d, 0x0130, 0x60a7, 0x0000, 0x080c,
++      0x1619, 0xa085, 0x0001, 0x012e, 0x00de, 0x0005, 0x60a8, 0xa00d,
++      0x1118, 0xa085, 0x0001, 0x0005, 0x00e6, 0x2170, 0x7050, 0xa005,
++      0x1160, 0x20a9, 0x0010, 0xae88, 0x0018, 0x2104, 0xa606, 0x0128,
++      0x8108, 0x1f04, 0x55d5, 0xa085, 0x0001, 0x00ee, 0x0005, 0x0126,
++      0x2091, 0x8000, 0x0c19, 0x1188, 0x200b, 0xffff, 0x00d6, 0x60a8,
++      0x2068, 0x6854, 0xa08a, 0x0002, 0x0218, 0x8001, 0x6856, 0x0020,
++      0x080c, 0x1619, 0x60ab, 0x0000, 0x00de, 0x012e, 0x0005, 0x609c,
++      0xd0a4, 0x0005, 0x00f6, 0x080c, 0x5f3b, 0x01b0, 0x71b8, 0x81ff,
++      0x1198, 0x71d4, 0xd19c, 0x0180, 0x2001, 0x007e, 0xa080, 0xc77b,
++      0x2004, 0xa07d, 0x0148, 0x7804, 0xa084, 0x00ff, 0xa086, 0x0006,
++      0x1118, 0x7800, 0xc0ed, 0x7802, 0x2079, 0xc652, 0x7804, 0xd0a4,
++      0x01e8, 0x0156, 0x00c6, 0x20a9, 0x007f, 0x2009, 0x0000, 0x0016,
++      0x080c, 0x5356, 0x1168, 0x6004, 0xa084, 0xff00, 0x8007, 0xa096,
++      0x0004, 0x0118, 0xa086, 0x0006, 0x1118, 0x6000, 0xc0ed, 0x6002,
++      0x001e, 0x8108, 0x1f04, 0x561f, 0x00ce, 0x015e, 0x080c, 0x5724,
++      0x0120, 0x2001, 0xc8fc, 0x200c, 0x0038, 0x2079, 0xc652, 0x7804,
++      0xd0a4, 0x0130, 0x2009, 0x07d0, 0x2011, 0x564a, 0x080c, 0x704f,
++      0x00fe, 0x0005, 0x2011, 0x564a, 0x080c, 0x6fc6, 0x080c, 0x5724,
++      0x01f0, 0x2001, 0xc7f9, 0x2004, 0xa080, 0x0000, 0x200c, 0xc1ec,
++      0x2102, 0x2001, 0xc653, 0x2004, 0xd0a4, 0x0130, 0x2009, 0x07d0,
++      0x2011, 0x564a, 0x080c, 0x704f, 0x00e6, 0x2071, 0xc600, 0x7073,
++      0x0000, 0x7077, 0x0000, 0x080c, 0x2c62, 0x00ee, 0x04b0, 0x0156,
++      0x00c6, 0x20a9, 0x007f, 0x2009, 0x0000, 0x0016, 0x080c, 0x5356,
++      0x1530, 0x6000, 0xd0ec, 0x0518, 0x0046, 0x62a0, 0xa294, 0x00ff,
++      0x8227, 0xa006, 0x2009, 0x0029, 0x080c, 0xc1a9, 0x6000, 0xc0e5,
++      0xc0ec, 0x6002, 0x6004, 0xa084, 0x00ff, 0xa085, 0x0700, 0x6006,
++      0x2019, 0x0029, 0x080c, 0x7b2f, 0x0076, 0x2039, 0x0000, 0x080c,
++      0x7a27, 0x2009, 0x0000, 0x080c, 0xbf10, 0x007e, 0x004e, 0x001e,
++      0x8108, 0x1f04, 0x5675, 0x00ce, 0x015e, 0x0005, 0x00c6, 0x6018,
++      0x2060, 0x6000, 0xc0ec, 0x6002, 0x00ce, 0x0005, 0x00c6, 0x00d6,
++      0x080c, 0x15e5, 0x2d60, 0x0508, 0x2009, 0x00ff, 0x60a7, 0x0000,
++      0x60ab, 0x0000, 0x080c, 0x4f60, 0x6007, 0x0006, 0x6013, 0x00ff,
++      0x6017, 0xffff, 0x606f, 0x0200, 0x606c, 0x6093, 0x0002, 0x60bb,
++      0x0520, 0x60a3, 0x00ff, 0x60b7, 0x0000, 0x60af, 0x0000, 0x2c08,
++      0x2001, 0xc8d3, 0x2102, 0xa085, 0x0001, 0x00de, 0x00ce, 0x0005,
++      0x7818, 0x2004, 0xd0ac, 0x0005, 0x7818, 0x2004, 0xd0bc, 0x0005,
++      0x0156, 0x00e6, 0x00d6, 0x00c6, 0x0026, 0x20a9, 0x00ff, 0x2009,
++      0x0000, 0x0016, 0x080c, 0x5356, 0x1178, 0x2c70, 0x70ac, 0xa005,
++      0x0158, 0x2060, 0x620c, 0x0026, 0x6010, 0x2068, 0x080c, 0x7633,
++      0x002e, 0x2260, 0x82ff, 0x1db0, 0x001e, 0x8108, 0x1f04, 0x56e9,
++      0x002e, 0x00ce, 0x00de, 0x00ee, 0x015e, 0x0005, 0x0006, 0x0016,
++      0x0026, 0x6004, 0xa08c, 0x00ff, 0xa196, 0x0006, 0x0188, 0xa196,
++      0x0004, 0x0170, 0xa196, 0x0005, 0x0158, 0xa08c, 0xff00, 0x810f,
++      0xa196, 0x0006, 0x0128, 0xa196, 0x0004, 0x0110, 0xa196, 0x0005,
++      0x002e, 0x001e, 0x000e, 0x0005, 0x00f6, 0x2001, 0xc7f9, 0x2004,
++      0xa07d, 0x0110, 0x7800, 0xd0ec, 0x00fe, 0x0005, 0x0126, 0x0026,
++      0x2091, 0x8000, 0x0006, 0x62a0, 0xa290, 0xc77b, 0x2204, 0xac06,
++      0x190c, 0x1519, 0x000e, 0x6200, 0xa005, 0x0110, 0xc2fd, 0x0008,
++      0xc2fc, 0x6202, 0x002e, 0x012e, 0x0005, 0x2011, 0xc635, 0x2204,
++      0xd0cc, 0x0138, 0x2001, 0xc8fa, 0x200c, 0x2011, 0x5752, 0x080c,
++      0x704f, 0x0005, 0x2011, 0x5752, 0x080c, 0x6fc6, 0x2011, 0xc635,
++      0x2204, 0xc0cc, 0x2012, 0x0005, 0x2071, 0xc734, 0x7003, 0x0001,
++      0x7007, 0x0000, 0x7013, 0x0000, 0x7017, 0x0000, 0x701b, 0x0000,
++      0x701f, 0x0000, 0x700b, 0x0000, 0x704b, 0x0001, 0x704f, 0x0000,
++      0x705b, 0x0020, 0x705f, 0x0040, 0x707f, 0x0000, 0x2071, 0xc8c3,
++      0x7003, 0xc734, 0x7007, 0x0000, 0x700b, 0x0000, 0x700f, 0xc8a3,
++      0x7013, 0x0020, 0x7017, 0x0040, 0x7037, 0x0000, 0x0005, 0x0016,
++      0x00e6, 0x2071, 0xc87b, 0xa00e, 0x7186, 0x718a, 0x7097, 0x0001,
++      0x2001, 0xc653, 0x2004, 0xd0fc, 0x1150, 0x2001, 0xc653, 0x2004,
++      0xa00e, 0xd09c, 0x0108, 0x8108, 0x7102, 0x0804, 0x57ed, 0x2001,
++      0xc672, 0x200c, 0xa184, 0x000f, 0x2009, 0xc673, 0x210c, 0x0002,
++      0x5795, 0x57c8, 0x57cf, 0x57d9, 0x57de, 0x5795, 0x5795, 0x5795,
++      0x57b8, 0x5795, 0x5795, 0x5795, 0x5795, 0x5795, 0x5795, 0x5795,
++      0x7003, 0x0004, 0x0136, 0x0146, 0x0156, 0x2099, 0xc676, 0x20a1,
++      0xc8cc, 0x20a9, 0x0004, 0x53a3, 0x015e, 0x014e, 0x013e, 0x0428,
++      0x708f, 0x0005, 0x7007, 0x0122, 0x2001, 0x0002, 0x0030, 0x708f,
++      0x0002, 0x7007, 0x0121, 0x2001, 0x0003, 0x7002, 0x7097, 0x0001,
++      0x0088, 0x7007, 0x0122, 0x2001, 0x0002, 0x0020, 0x7007, 0x0121,
++      0x2001, 0x0003, 0x7002, 0xa006, 0x7096, 0x708e, 0xa184, 0xff00,
++      0x8007, 0x709a, 0xa184, 0x00ff, 0x7092, 0x00ee, 0x001e, 0x0005,
++      0x00e6, 0x2071, 0xc734, 0x684c, 0xa005, 0x1130, 0x7028, 0xc085,
++      0x702a, 0xa085, 0x0001, 0x0428, 0x6a60, 0x7236, 0x6b64, 0x733a,
++      0x6868, 0x703e, 0x7076, 0x686c, 0x7042, 0x707a, 0x684c, 0x702e,
++      0x6844, 0x7032, 0x2009, 0x000d, 0x200a, 0x700b, 0x0000, 0x8007,
++      0x8006, 0x8006, 0xa08c, 0x003f, 0xa084, 0xffc0, 0xa210, 0x2100,
++      0xa319, 0x726e, 0x7372, 0x7028, 0xc084, 0x702a, 0x7007, 0x0001,
++      0xa006, 0x00ee, 0x0005, 0x0156, 0x00e6, 0x0026, 0x6838, 0xd0fc,
++      0x1904, 0x587c, 0x6804, 0xa00d, 0x0188, 0x00d6, 0x2071, 0xc600,
++      0xa016, 0x702c, 0x2168, 0x6904, 0x206a, 0x8210, 0x2d00, 0x81ff,
++      0x1dc8, 0x702e, 0x70b4, 0xa200, 0x70b6, 0x00de, 0x2071, 0xc734,
++      0x701c, 0xa005, 0x1904, 0x588c, 0x20a9, 0x0032, 0x0f04, 0x588a,
++      0x0e04, 0x5846, 0x2071, 0xc87b, 0x7200, 0x82ff, 0x05d8, 0x6934,
++      0xa186, 0x0103, 0x1904, 0x589a, 0x6948, 0x6844, 0xa105, 0x1540,
++      0x2009, 0x8020, 0x2200, 0x0002, 0x588a, 0x5861, 0x5901, 0x590e,
++      0x588a, 0x2071, 0x0000, 0x20a9, 0x0032, 0x0f04, 0x588a, 0x7018,
++      0xd084, 0x1dd8, 0x7122, 0x683c, 0x7026, 0x6840, 0x702a, 0x701b,
++      0x0001, 0x2091, 0x4080, 0x2071, 0xc600, 0x702c, 0x206a, 0x2d00,
++      0x702e, 0x70b4, 0x8000, 0x70b6, 0x002e, 0x00ee, 0x015e, 0x0005,
++      0x6844, 0xa086, 0x0100, 0x1130, 0x6868, 0xa005, 0x1118, 0x2009,
++      0x8020, 0x0880, 0x2071, 0xc734, 0x2d08, 0x206b, 0x0000, 0x7010,
++      0x8000, 0x7012, 0x7018, 0xa06d, 0x711a, 0x0110, 0x6902, 0x0008,
++      0x711e, 0x0c10, 0xa18c, 0x00ff, 0xa186, 0x0013, 0x01e0, 0xa186,
++      0x001b, 0x01c8, 0xa186, 0x0023, 0x01e8, 0xa186, 0x0017, 0x0130,
++      0xa186, 0x001e, 0x0118, 0xa18e, 0x001f, 0x19e0, 0x684c, 0xd0cc,
++      0x09c8, 0x6850, 0xa084, 0x00ff, 0xa086, 0x0001, 0x1998, 0x2009,
++      0x8021, 0x0804, 0x585a, 0x6848, 0xa005, 0x1960, 0x2009, 0x8022,
++      0x0804, 0x585a, 0x2071, 0x0000, 0x7018, 0xd084, 0x1918, 0x00e6,
++      0x2071, 0xc682, 0x7140, 0x00ee, 0x6838, 0xa102, 0x0a04, 0x588a,
++      0x684c, 0xa005, 0x1158, 0x00e6, 0x2071, 0xc682, 0x7004, 0x00ee,
++      0xd08c, 0x1904, 0x588a, 0x2001, 0x8024, 0x0040, 0x6848, 0xd084,
++      0x1118, 0x2001, 0x8023, 0x0010, 0x2001, 0x8027, 0x7022, 0x6840,
++      0x7026, 0x683c, 0x702a, 0x6850, 0x702e, 0x0026, 0x0036, 0x6b38,
++      0x2e10, 0xa290, 0x0072, 0x2d00, 0xa080, 0x0015, 0x200c, 0x2112,
++      0x8000, 0x200c, 0x8210, 0x8319, 0x1dd0, 0x003e, 0x002e, 0x0804,
++      0x586f, 0x7084, 0x8008, 0xa092, 0x001e, 0x1a04, 0x588a, 0x7186,
++      0xae90, 0x0003, 0xa210, 0x683c, 0x2012, 0x0080, 0x7084, 0x8008,
++      0xa092, 0x000f, 0x1a04, 0x588a, 0x7186, 0xae90, 0x0003, 0x8003,
++      0xa210, 0x683c, 0x2012, 0x8210, 0x6840, 0x2012, 0x7088, 0xa10a,
++      0x0a04, 0x5873, 0x718c, 0x7084, 0xa10a, 0x0a04, 0x5873, 0x2071,
++      0x0000, 0x7018, 0xd084, 0x1904, 0x5873, 0x2071, 0xc87b, 0x7000,
++      0xa086, 0x0002, 0x1150, 0x080c, 0x5b8e, 0x2071, 0x0000, 0x701b,
++      0x0001, 0x2091, 0x4080, 0x0804, 0x5873, 0x080c, 0x5bb8, 0x2071,
++      0x0000, 0x701b, 0x0001, 0x2091, 0x4080, 0x0804, 0x5873, 0x0006,
++      0x684c, 0x0006, 0x6837, 0x0103, 0x20a9, 0x001c, 0xad80, 0x0011,
++      0x20a0, 0x2001, 0x0000, 0x40a4, 0x000e, 0xa084, 0x00ff, 0x684e,
++      0x000e, 0x684a, 0x6952, 0x0005, 0x2071, 0xc734, 0x7004, 0x0002,
++      0x596a, 0x597b, 0x5b79, 0x5b7a, 0x5b87, 0x5b8d, 0x596b, 0x5b6a,
++      0x5b00, 0x5b56, 0x0005, 0x0126, 0x2091, 0x8000, 0x0e04, 0x597a,
++      0x2009, 0x000d, 0x7030, 0x200a, 0x2091, 0x4080, 0x7007, 0x0001,
++      0x700b, 0x0000, 0x012e, 0x2069, 0xc93a, 0x683c, 0xa005, 0x03f8,
++      0x11f0, 0x0126, 0x2091, 0x8000, 0x2069, 0x0000, 0x6934, 0x2001,
++      0xc740, 0x2004, 0xa10a, 0x0170, 0x0e04, 0x599e, 0x2069, 0x0000,
++      0x6818, 0xd084, 0x1158, 0x2009, 0x8040, 0x6922, 0x681b, 0x0001,
++      0x2091, 0x4080, 0x2069, 0xc93a, 0x683f, 0xffff, 0x012e, 0x2069,
++      0xc600, 0x6848, 0x6968, 0xa102, 0x2069, 0xc87b, 0x688a, 0x6984,
++      0x701c, 0xa06d, 0x0120, 0x81ff, 0x0904, 0x59f4, 0x00a0, 0x81ff,
++      0x0904, 0x5aba, 0x2071, 0xc87b, 0x7184, 0x7088, 0xa10a, 0x1258,
++      0x7190, 0x2071, 0xc93a, 0x7038, 0xa005, 0x0128, 0x1b04, 0x5aba,
++      0x713a, 0x0804, 0x5aba, 0x2071, 0xc87b, 0x718c, 0x0126, 0x2091,
++      0x8000, 0x7084, 0xa10a, 0x0a04, 0x5ad5, 0x0e04, 0x5a76, 0x2071,
++      0x0000, 0x7018, 0xd084, 0x1904, 0x5a76, 0x2001, 0xffff, 0x2071,
++      0xc93a, 0x703a, 0x2071, 0xc87b, 0x7000, 0xa086, 0x0002, 0x1150,
++      0x080c, 0x5b8e, 0x2071, 0x0000, 0x701b, 0x0001, 0x2091, 0x4080,
++      0x0804, 0x5a76, 0x080c, 0x5bb8, 0x2071, 0x0000, 0x701b, 0x0001,
++      0x2091, 0x4080, 0x0804, 0x5a76, 0x2071, 0xc87b, 0x7000, 0xa005,
++      0x0904, 0x5a9c, 0x6934, 0xa186, 0x0103, 0x1904, 0x5a79, 0x684c,
++      0xd0bc, 0x1904, 0x5a9c, 0x6948, 0x6844, 0xa105, 0x1904, 0x5a91,
++      0x2009, 0x8020, 0x2071, 0xc87b, 0x7000, 0x0002, 0x5a9c, 0x5a5c,
++      0x5a34, 0x5a46, 0x5a13, 0x0136, 0x0146, 0x0156, 0x2099, 0xc676,
++      0x20a1, 0xc8cc, 0x20a9, 0x0004, 0x53a3, 0x015e, 0x014e, 0x013e,
++      0x2071, 0xc8c3, 0xad80, 0x000f, 0x700e, 0x7013, 0x0002, 0x7007,
++      0x0002, 0x700b, 0x0000, 0x2e10, 0x080c, 0x164d, 0x2071, 0xc734,
++      0x7007, 0x0009, 0x0804, 0x5aba, 0x7084, 0x8008, 0xa092, 0x001e,
++      0x1a04, 0x5aba, 0xae90, 0x0003, 0xa210, 0x683c, 0x2012, 0x7186,
++      0x2071, 0xc734, 0x080c, 0x5c0f, 0x0804, 0x5aba, 0x7084, 0x8008,
++      0xa092, 0x000f, 0x1a04, 0x5aba, 0xae90, 0x0003, 0x8003, 0xa210,
++      0x683c, 0x2012, 0x8210, 0x6840, 0x2012, 0x7186, 0x2071, 0xc734,
++      0x080c, 0x5c0f, 0x0804, 0x5aba, 0x0126, 0x2091, 0x8000, 0x0e04,
++      0x5a76, 0x2071, 0x0000, 0x7018, 0xd084, 0x1180, 0x7122, 0x683c,
++      0x7026, 0x6840, 0x702a, 0x701b, 0x0001, 0x2091, 0x4080, 0x012e,
++      0x2071, 0xc734, 0x080c, 0x5c0f, 0x0804, 0x5aba, 0x012e, 0x0804,
++      0x5aba, 0xa18c, 0x00ff, 0xa186, 0x0017, 0x0130, 0xa186, 0x001e,
++      0x0118, 0xa18e, 0x001f, 0x11c0, 0x684c, 0xd0cc, 0x01a8, 0x6850,
++      0xa084, 0x00ff, 0xa086, 0x0001, 0x1178, 0x2009, 0x8021, 0x0804,
++      0x5a0a, 0x6844, 0xa086, 0x0100, 0x1138, 0x6868, 0xa005, 0x1120,
++      0x2009, 0x8020, 0x0804, 0x5a0a, 0x2071, 0xc734, 0x080c, 0x5c21,
++      0x01c8, 0x2071, 0xc734, 0x700f, 0x0001, 0x6934, 0xa184, 0x00ff,
++      0xa086, 0x0003, 0x1130, 0x810f, 0xa18c, 0x00ff, 0x8101, 0x0108,
++      0x710e, 0x7007, 0x0003, 0x080c, 0x5c3a, 0x7050, 0xa086, 0x0100,
++      0x0904, 0x5b7a, 0x0126, 0x2091, 0x8000, 0x2071, 0xc734, 0x7008,
++      0xa086, 0x0001, 0x1180, 0x0e04, 0x5ad3, 0x2009, 0x000d, 0x7030,
++      0x200a, 0x2091, 0x4080, 0x700b, 0x0000, 0x7004, 0xa086, 0x0006,
++      0x1110, 0x7007, 0x0001, 0x012e, 0x0005, 0x2071, 0xc734, 0x080c,
++      0x5c21, 0x0518, 0x2071, 0xc87b, 0x7084, 0x700a, 0x20a9, 0x0020,
++      0x2099, 0xc87c, 0x20a1, 0xc8a3, 0x53a3, 0x7087, 0x0000, 0x2071,
++      0xc734, 0x2069, 0xc8c3, 0x706c, 0x6826, 0x7070, 0x682a, 0x7074,
++      0x682e, 0x7078, 0x6832, 0x2d10, 0x080c, 0x164d, 0x7007, 0x0008,
++      0x2001, 0xffff, 0x2071, 0xc93a, 0x703a, 0x012e, 0x0804, 0x5aba,
++      0x2069, 0xc8c3, 0x6808, 0xa08e, 0x0000, 0x0904, 0x5b55, 0xa08e,
++      0x0200, 0x0904, 0x5b53, 0xa08e, 0x0100, 0x1904, 0x5b55, 0x0126,
++      0x2091, 0x8000, 0x0e04, 0x5b51, 0x2069, 0x0000, 0x6818, 0xd084,
++      0x15c0, 0x702c, 0x7130, 0x8108, 0xa102, 0x0230, 0xa00e, 0x7034,
++      0x706e, 0x7038, 0x7072, 0x0048, 0x706c, 0xa080, 0x0040, 0x706e,
++      0x1220, 0x7070, 0xa081, 0x0000, 0x7072, 0x7132, 0x6936, 0x700b,
++      0x0000, 0x2001, 0xc8a0, 0x2004, 0xa005, 0x1190, 0x6934, 0x2069,
++      0xc87b, 0x689c, 0x699e, 0x2069, 0xc93a, 0xa102, 0x1118, 0x683c,
++      0xa005, 0x1368, 0x2001, 0xc8a1, 0x200c, 0x810d, 0x693e, 0x0038,
++      0x2009, 0x8040, 0x6922, 0x681b, 0x0001, 0x2091, 0x4080, 0x7007,
++      0x0001, 0x012e, 0x0010, 0x7007, 0x0005, 0x0005, 0x2001, 0xc8c5,
++      0x2004, 0xa08e, 0x0100, 0x1128, 0x7007, 0x0001, 0x080c, 0x5c0f,
++      0x0005, 0xa08e, 0x0000, 0x0de0, 0xa08e, 0x0200, 0x1dc8, 0x7007,
++      0x0005, 0x0005, 0x701c, 0xa06d, 0x0158, 0x080c, 0x5c21, 0x0140,
++      0x7007, 0x0003, 0x080c, 0x5c3a, 0x7050, 0xa086, 0x0100, 0x0110,
++      0x0005, 0x0005, 0x7050, 0xa09e, 0x0100, 0x1118, 0x7007, 0x0004,
++      0x0030, 0xa086, 0x0200, 0x1110, 0x7007, 0x0005, 0x0005, 0x080c,
++      0x5bdd, 0x7006, 0x080c, 0x5c0f, 0x0005, 0x0005, 0x00e6, 0x0156,
++      0x2071, 0xc87b, 0x7184, 0x81ff, 0x0500, 0xa006, 0x7086, 0xae80,
++      0x0003, 0x2071, 0x0000, 0x21a8, 0x2014, 0x7226, 0x8000, 0x0f04,
++      0x5bb2, 0x2014, 0x722a, 0x8000, 0x0f04, 0x5bb2, 0x2014, 0x722e,
++      0x8000, 0x0f04, 0x5bb2, 0x2014, 0x723a, 0x8000, 0x0f04, 0x5bb2,
++      0x2014, 0x723e, 0xa180, 0x8030, 0x7022, 0x015e, 0x00ee, 0x0005,
++      0x00e6, 0x0156, 0x2071, 0xc87b, 0x7184, 0x81ff, 0x01d8, 0xa006,
++      0x7086, 0xae80, 0x0003, 0x2071, 0x0000, 0x21a8, 0x2014, 0x7226,
++      0x8000, 0x2014, 0x722a, 0x8000, 0x0f04, 0x5bd4, 0x2014, 0x723a,
++      0x8000, 0x2014, 0x723e, 0x0018, 0x2001, 0x8020, 0x0010, 0x2001,
++      0x8042, 0x7022, 0x015e, 0x00ee, 0x0005, 0x702c, 0x7130, 0x8108,
++      0xa102, 0x0230, 0xa00e, 0x7034, 0x706e, 0x7038, 0x7072, 0x0048,
++      0x706c, 0xa080, 0x0040, 0x706e, 0x1220, 0x7070, 0xa081, 0x0000,
++      0x7072, 0x7132, 0x700c, 0x8001, 0x700e, 0x1180, 0x0126, 0x2091,
++      0x8000, 0x0e04, 0x5c09, 0x2001, 0x000d, 0x2102, 0x2091, 0x4080,
++      0x2001, 0x0001, 0x700b, 0x0000, 0x012e, 0x0005, 0x2001, 0x0007,
++      0x0005, 0x2001, 0x0006, 0x700b, 0x0001, 0x012e, 0x0005, 0x701c,
++      0xa06d, 0x0170, 0x0126, 0x2091, 0x8000, 0x7010, 0x8001, 0x7012,
++      0x2d04, 0x701e, 0xa005, 0x1108, 0x701a, 0x012e, 0x080c, 0x1619,
++      0x0005, 0x2019, 0x000d, 0x2304, 0x230c, 0xa10e, 0x0130, 0x2304,
++      0x230c, 0xa10e, 0x0110, 0xa006, 0x0060, 0x732c, 0x8319, 0x7130,
++      0xa102, 0x1118, 0x2300, 0xa005, 0x0020, 0x0210, 0xa302, 0x0008,
++      0x8002, 0x0005, 0x2d00, 0x7026, 0xa080, 0x000d, 0x7056, 0x7053,
++      0x0000, 0x0126, 0x2091, 0x8000, 0x2009, 0xc959, 0x2104, 0xc08d,
++      0x200a, 0x012e, 0x080c, 0x1669, 0x0005, 0x708c, 0xa08a, 0x0029,
++      0x1220, 0xa082, 0x001d, 0x0033, 0x0010, 0x080c, 0x1519, 0x6027,
++      0x1e00, 0x0005, 0x5d48, 0x5cc3, 0x5cdb, 0x5d18, 0x5d39, 0x5d73,
++      0x5d85, 0x5cdb, 0x5d5f, 0x5c67, 0x5c95, 0x5c66, 0x0005, 0x00d6,
++      0x2069, 0x0200, 0x6804, 0xa005, 0x1180, 0x6808, 0xa005, 0x1518,
++      0x708f, 0x0028, 0x2069, 0xc90c, 0x2d04, 0x7002, 0x080c, 0x603d,
++      0x6028, 0xa085, 0x0600, 0x602a, 0x00b0, 0x708f, 0x0028, 0x2069,
++      0xc90c, 0x2d04, 0x7002, 0x6028, 0xa085, 0x0600, 0x602a, 0x00e6,
++      0x0036, 0x0046, 0x0056, 0x2071, 0xc96a, 0x080c, 0x1ec3, 0x005e,
++      0x004e, 0x003e, 0x00ee, 0x00de, 0x0005, 0x00d6, 0x2069, 0x0200,
++      0x6804, 0xa005, 0x1180, 0x6808, 0xa005, 0x1518, 0x708f, 0x0028,
++      0x2069, 0xc90c, 0x2d04, 0x7002, 0x080c, 0x60ca, 0x6028, 0xa085,
++      0x0600, 0x602a, 0x00b0, 0x708f, 0x0028, 0x2069, 0xc90c, 0x2d04,
++      0x7002, 0x6028, 0xa085, 0x0600, 0x602a, 0x00e6, 0x0036, 0x0046,
++      0x0056, 0x2071, 0xc96a, 0x080c, 0x1ec3, 0x005e, 0x004e, 0x003e,
++      0x00ee, 0x00de, 0x0005, 0x6803, 0x0090, 0x6124, 0xd1e4, 0x1190,
++      0x080c, 0x5df0, 0xd1d4, 0x1160, 0xd1dc, 0x1138, 0xd1cc, 0x0150,
++      0x708f, 0x0020, 0x080c, 0x5df0, 0x0028, 0x708f, 0x001d, 0x0010,
++      0x708f, 0x001f, 0x0005, 0x6803, 0x0088, 0x6124, 0xd1cc, 0x1590,
++      0xd1dc, 0x1568, 0xd1e4, 0x1540, 0xa184, 0x1e00, 0x1580, 0x60e3,
++      0x0001, 0x600c, 0xc0b4, 0x600e, 0x080c, 0x5f6b, 0x080c, 0x25fb,
++      0x0156, 0x6803, 0x0100, 0x20a9, 0x0014, 0x6804, 0xd0dc, 0x1118,
++      0x1f04, 0x5cf5, 0x0048, 0x20a9, 0x0014, 0x6803, 0x0080, 0x6804,
++      0xd0d4, 0x1130, 0x1f04, 0x5cff, 0x080c, 0x5f8c, 0x015e, 0x0078,
++      0x015e, 0x708f, 0x0028, 0x0058, 0x708f, 0x001e, 0x0040, 0x708f,
++      0x001d, 0x0028, 0x708f, 0x0020, 0x0010, 0x708f, 0x001f, 0x0005,
++      0x60e3, 0x0001, 0x600c, 0xc0b4, 0x600e, 0x080c, 0x5f6b, 0x080c,
++      0x25fb, 0x6803, 0x0080, 0x6124, 0xd1d4, 0x1180, 0xd1dc, 0x1158,
++      0xd1e4, 0x1130, 0xa184, 0x1e00, 0x1158, 0x708f, 0x0028, 0x0040,
++      0x708f, 0x001e, 0x0028, 0x708f, 0x001d, 0x0010, 0x708f, 0x001f,
++      0x0005, 0x6803, 0x00a0, 0x6124, 0xd1dc, 0x1138, 0xd1e4, 0x0138,
++      0x080c, 0x1f06, 0x708f, 0x001e, 0x0010, 0x708f, 0x001d, 0x0005,
++      0x080c, 0x5e62, 0x6124, 0xd1dc, 0x1188, 0x080c, 0x5df0, 0x0016,
++      0x080c, 0x1f06, 0x001e, 0xd1d4, 0x1128, 0xd1e4, 0x0138, 0x708f,
++      0x001e, 0x0020, 0x708f, 0x001f, 0x080c, 0x5df0, 0x0005, 0x6803,
++      0x00a0, 0x6124, 0xd1d4, 0x1160, 0xd1cc, 0x1150, 0xd1dc, 0x1128,
++      0xd1e4, 0x0140, 0x708f, 0x001e, 0x0028, 0x708f, 0x001d, 0x0010,
++      0x708f, 0x0021, 0x0005, 0x080c, 0x5e62, 0x6124, 0xd1d4, 0x1150,
++      0xd1dc, 0x1128, 0xd1e4, 0x0140, 0x708f, 0x001e, 0x0028, 0x708f,
++      0x001d, 0x0010, 0x708f, 0x001f, 0x0005, 0x6803, 0x0090, 0x6124,
++      0xd1d4, 0x1178, 0xd1cc, 0x1150, 0xd1dc, 0x1128, 0xd1e4, 0x0158,
++      0x708f, 0x001e, 0x0040, 0x708f, 0x001d, 0x0028, 0x708f, 0x0020,
++      0x0010, 0x708f, 0x001f, 0x0005, 0x0016, 0x00c6, 0x00d6, 0x00e6,
++      0x0126, 0x2061, 0x0100, 0x2069, 0x0140, 0x2071, 0xc600, 0x2091,
++      0x8000, 0x080c, 0x5f3b, 0x11e8, 0x2001, 0xc60c, 0x200c, 0xd1b4,
++      0x01c0, 0xc1b4, 0x2102, 0x6027, 0x0200, 0xe000, 0xe000, 0x6024,
++      0xd0cc, 0x0158, 0x6803, 0x00a0, 0x2001, 0xc8e6, 0x2003, 0x0001,
++      0x2001, 0xc600, 0x2003, 0x0001, 0x0428, 0x6028, 0xc0cd, 0x602a,
++      0x0408, 0x080c, 0x5f57, 0x0150, 0x080c, 0x5f4d, 0x1138, 0x2001,
++      0x0001, 0x080c, 0x296d, 0x080c, 0x5f12, 0x00a0, 0x080c, 0x5e5f,
++      0x0178, 0x2001, 0x0001, 0x080c, 0x296d, 0x708c, 0xa086, 0x001e,
++      0x0120, 0x708c, 0xa086, 0x0022, 0x1118, 0x708f, 0x0025, 0x0010,
++      0x708f, 0x0021, 0x012e, 0x00ee, 0x00de, 0x00ce, 0x001e, 0x0005,
++      0x0026, 0x2011, 0x5e01, 0x080c, 0x7089, 0x002e, 0x0016, 0x0026,
++      0x2009, 0x0064, 0x2011, 0x5e01, 0x080c, 0x7080, 0x002e, 0x001e,
++      0x0005, 0x00e6, 0x00f6, 0x0016, 0x080c, 0x8c0e, 0x2071, 0xc600,
++      0x080c, 0x5d9c, 0x001e, 0x00fe, 0x00ee, 0x0005, 0x0016, 0x0026,
++      0x0036, 0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x0126, 0x080c, 0x8c0e,
+       0x2061, 0x0100, 0x2069, 0x0140, 0x2071, 0xc600, 0x2091, 0x8000,
+-      0x080c, 0x5f22, 0x11e8, 0x2001, 0xc60c, 0x200c, 0xd1b4, 0x01c0,
+-      0xc1b4, 0x2102, 0x6027, 0x0200, 0xe000, 0xe000, 0x6024, 0xd0cc,
+-      0x0158, 0x6803, 0x00a0, 0x2001, 0xc8e6, 0x2003, 0x0001, 0x2001,
+-      0xc600, 0x2003, 0x0001, 0x0428, 0x6028, 0xc0cd, 0x602a, 0x0408,
+-      0x080c, 0x5f3e, 0x0150, 0x080c, 0x5f34, 0x1138, 0x2001, 0x0001,
+-      0x080c, 0x296d, 0x080c, 0x5ef9, 0x00a0, 0x080c, 0x5e46, 0x0178,
+-      0x2001, 0x0001, 0x080c, 0x296d, 0x708c, 0xa086, 0x001e, 0x0120,
+-      0x708c, 0xa086, 0x0022, 0x1118, 0x708f, 0x0025, 0x0010, 0x708f,
+-      0x0021, 0x012e, 0x00ee, 0x00de, 0x00ce, 0x001e, 0x0005, 0x0026,
+-      0x2011, 0x5de8, 0x080c, 0x7070, 0x002e, 0x0016, 0x0026, 0x2009,
+-      0x0064, 0x2011, 0x5de8, 0x080c, 0x7067, 0x002e, 0x001e, 0x0005,
+-      0x00e6, 0x00f6, 0x0016, 0x080c, 0x8bf5, 0x2071, 0xc600, 0x080c,
+-      0x5d83, 0x001e, 0x00fe, 0x00ee, 0x0005, 0x0016, 0x0026, 0x0036,
+-      0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x0126, 0x080c, 0x8bf5, 0x2061,
+-      0x0100, 0x2069, 0x0140, 0x2071, 0xc600, 0x2091, 0x8000, 0x6028,
+-      0xc09c, 0x602a, 0x2011, 0x0003, 0x080c, 0x8f0e, 0x2011, 0x0002,
+-      0x080c, 0x8f18, 0x080c, 0x8dee, 0x080c, 0x7024, 0x0036, 0x2019,
+-      0x0000, 0x080c, 0x8e79, 0x003e, 0x60e3, 0x0000, 0x080c, 0xc579,
+-      0x080c, 0xc594, 0x2001, 0xc600, 0x2003, 0x0004, 0x6027, 0x0008,
+-      0x080c, 0x12e1, 0x2001, 0x0001, 0x080c, 0x296d, 0x012e, 0x00fe,
+-      0x00ee, 0x00de, 0x00ce, 0x003e, 0x002e, 0x001e, 0x0005, 0x2001,
+-      0xc600, 0x2004, 0xa086, 0x0004, 0x0140, 0x2001, 0xc8e5, 0x2003,
+-      0xaaaa, 0x2001, 0xc8e6, 0x2003, 0x0000, 0x0005, 0x6020, 0xd09c,
+-      0x0005, 0x6800, 0xa086, 0x00c0, 0x0160, 0x6803, 0x00c0, 0x0156,
+-      0x20a9, 0x002d, 0x1d04, 0x5e52, 0x2091, 0x6000, 0x1f04, 0x5e52,
+-      0x015e, 0x0005, 0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100, 0x2069,
+-      0x0140, 0x2071, 0xc600, 0x2001, 0xc8e6, 0x200c, 0xa186, 0x0000,
+-      0x0158, 0xa186, 0x0001, 0x0158, 0xa186, 0x0002, 0x0158, 0xa186,
+-      0x0003, 0x0158, 0x0804, 0x5ee7, 0x708f, 0x0022, 0x0040, 0x708f,
+-      0x0021, 0x0028, 0x708f, 0x0023, 0x0020, 0x708f, 0x0024, 0x6043,
+-      0x0000, 0x60e3, 0x0000, 0x6887, 0x0001, 0x2001, 0x0001, 0x080c,
+-      0x2a1c, 0x0026, 0x2011, 0x0003, 0x080c, 0x8f0e, 0x2011, 0x0002,
+-      0x080c, 0x8f18, 0x080c, 0x8dee, 0x0036, 0x2019, 0x0000, 0x080c,
+-      0x8e79, 0x003e, 0x002e, 0x7000, 0xa08e, 0x0004, 0x0118, 0x602b,
+-      0x0028, 0x0010, 0x602b, 0x0020, 0x0156, 0x0126, 0x2091, 0x8000,
+-      0x20a9, 0x0005, 0x6024, 0xd0ac, 0x0120, 0x012e, 0x015e, 0x0804,
+-      0x5ef5, 0x6800, 0xa084, 0x00a0, 0xc0bd, 0x6802, 0x6904, 0xd1d4,
+-      0x1130, 0x6803, 0x0100, 0x1f04, 0x5eaa, 0x080c, 0x5f73, 0x012e,
+-      0x015e, 0x080c, 0x5f34, 0x01a8, 0x6044, 0xa005, 0x0168, 0x6050,
+-      0x0006, 0xa085, 0x0020, 0x6052, 0x080c, 0x5f73, 0xa006, 0x8001,
+-      0x1df0, 0x000e, 0x6052, 0x0028, 0x6804, 0xd0d4, 0x1110, 0x080c,
+-      0x5f73, 0x0016, 0x0026, 0x2009, 0x00c8, 0x2011, 0x5df5, 0x080c,
+-      0x7036, 0x002e, 0x001e, 0x2001, 0xc8e6, 0x2003, 0x0004, 0x080c,
+-      0x5c34, 0x080c, 0x5f34, 0x0148, 0x6804, 0xd0d4, 0x1130, 0xd0dc,
+-      0x1100, 0x2001, 0xc8e6, 0x2003, 0x0000, 0x00ee, 0x00de, 0x00ce,
+-      0x0005, 0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100, 0x2069, 0x0140,
+-      0x2071, 0xc600, 0x2001, 0xc8e5, 0x2003, 0x0000, 0x2001, 0xc8d6,
+-      0x2003, 0x0000, 0x708f, 0x0000, 0x60e3, 0x0000, 0x6887, 0x0000,
+-      0x2001, 0x0000, 0x080c, 0x2a1c, 0x6803, 0x0000, 0x6043, 0x0090,
+-      0x6043, 0x0010, 0x6027, 0xffff, 0x602b, 0x182f, 0x00ee, 0x00de,
+-      0x00ce, 0x0005, 0x0006, 0x2001, 0xc8e5, 0x2004, 0xa086, 0xaaaa,
+-      0x000e, 0x0005, 0x0006, 0x2001, 0xc672, 0x2004, 0xa084, 0x0030,
+-      0xa086, 0x0000, 0x000e, 0x0005, 0x0006, 0x2001, 0xc672, 0x2004,
+-      0xa084, 0x0030, 0xa086, 0x0030, 0x000e, 0x0005, 0x0006, 0x2001,
+-      0xc672, 0x2004, 0xa084, 0x0030, 0xa086, 0x0010, 0x000e, 0x0005,
+-      0x0006, 0x2001, 0xc672, 0x2004, 0xa084, 0x0030, 0xa086, 0x0020,
+-      0x000e, 0x0005, 0x2001, 0xc60c, 0x2004, 0xd0a4, 0x0170, 0x080c,
+-      0x2a3c, 0x0036, 0x0016, 0x2009, 0x0000, 0x2019, 0x0028, 0x080c,
+-      0x2e19, 0x001e, 0x003e, 0xa006, 0x0009, 0x0005, 0x00e6, 0x2071,
+-      0xc60c, 0x2e04, 0x0118, 0xa085, 0x0010, 0x0010, 0xa084, 0xffef,
+-      0x2072, 0x00ee, 0x0005, 0x6050, 0x0006, 0x60f0, 0x0006, 0x60ec,
+-      0x0006, 0x600c, 0x0006, 0x6004, 0x0006, 0x6028, 0x0006, 0x602f,
+-      0x0100, 0x602f, 0x0000, 0x602f, 0x0040, 0x602f, 0x0000, 0x000e,
+-      0x602a, 0x000e, 0x6006, 0x000e, 0x600e, 0x000e, 0x60ee, 0x000e,
+-      0x60f2, 0x60e3, 0x0000, 0x6887, 0x0001, 0x2001, 0x0001, 0x080c,
+-      0x2a1c, 0x6800, 0xa084, 0x00a0, 0xc0bd, 0x6802, 0x6803, 0x00a0,
+-      0x000e, 0x6052, 0x6050, 0x0005, 0x0156, 0x0016, 0x0026, 0x0036,
+-      0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100, 0x2069, 0x0140, 0x2071,
+-      0xc600, 0x6020, 0xa084, 0x0080, 0x0138, 0x2001, 0xc60c, 0x200c,
+-      0xc1bd, 0x2102, 0x0804, 0x601c, 0x2001, 0xc60c, 0x200c, 0xc1bc,
+-      0x2102, 0x6028, 0xa084, 0xe1ff, 0x602a, 0x6027, 0x0200, 0x6803,
+-      0x0090, 0x20a9, 0x0384, 0x6024, 0xd0cc, 0x1508, 0x1d04, 0x5fcb,
+-      0x2091, 0x6000, 0x1f04, 0x5fcb, 0x2011, 0x0003, 0x080c, 0x8f0e,
+-      0x2011, 0x0002, 0x080c, 0x8f18, 0x080c, 0x8dee, 0x2019, 0x0000,
+-      0x080c, 0x8e79, 0x6803, 0x00a0, 0x2001, 0xc8e6, 0x2003, 0x0001,
+-      0x2001, 0xc600, 0x2003, 0x0001, 0xa085, 0x0001, 0x0468, 0x86ff,
+-      0x1110, 0x080c, 0x1f06, 0x60e3, 0x0000, 0x2001, 0xc8d6, 0x2004,
+-      0x080c, 0x2a1c, 0x60e2, 0x080c, 0x25fb, 0x6803, 0x0080, 0x20a9,
+-      0x0384, 0x6027, 0x1e00, 0x2009, 0x1e00, 0xe000, 0x6024, 0xa10c,
+-      0x0138, 0x1d04, 0x6001, 0x2091, 0x6000, 0x1f04, 0x6001, 0x0820,
+-      0x6028, 0xa085, 0x1e00, 0x602a, 0x70a4, 0xa005, 0x1118, 0x6887,
+-      0x0001, 0x0008, 0x6886, 0xa006, 0x00ee, 0x00de, 0x00ce, 0x003e,
+-      0x002e, 0x001e, 0x015e, 0x0005, 0x0156, 0x0016, 0x0026, 0x0036,
+-      0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100, 0x2071, 0xc600, 0x2069,
+-      0x0140, 0x6020, 0xa084, 0x00c0, 0x0120, 0x6884, 0xa005, 0x1904,
+-      0x6078, 0x6803, 0x0088, 0x60e3, 0x0000, 0x6887, 0x0000, 0x2001,
+-      0x0000, 0x080c, 0x2a1c, 0x2069, 0x0200, 0x6804, 0xa005, 0x1118,
+-      0x6808, 0xa005, 0x01c0, 0x6028, 0xa084, 0xfbff, 0x602a, 0x6027,
+-      0x0400, 0x2069, 0xc90c, 0x7000, 0x206a, 0x708f, 0x0026, 0x7003,
+-      0x0001, 0x20a9, 0x0002, 0x1d04, 0x605b, 0x2091, 0x6000, 0x1f04,
+-      0x605b, 0x0804, 0x60a9, 0x2069, 0x0140, 0x20a9, 0x0384, 0x6027,
+-      0x1e00, 0x2009, 0x1e00, 0xe000, 0x6024, 0xa10c, 0x0520, 0xa084,
+-      0x1a00, 0x1508, 0x1d04, 0x6067, 0x2091, 0x6000, 0x1f04, 0x6067,
+-      0x2011, 0x0003, 0x080c, 0x8f0e, 0x2011, 0x0002, 0x080c, 0x8f18,
+-      0x080c, 0x8dee, 0x2019, 0x0000, 0x080c, 0x8e79, 0x6803, 0x00a0,
+-      0x2001, 0xc8e6, 0x2003, 0x0001, 0x2001, 0xc600, 0x2003, 0x0001,
+-      0xa085, 0x0001, 0x00b0, 0x080c, 0x25fb, 0x6803, 0x0080, 0x2069,
+-      0x0140, 0x60e3, 0x0000, 0x70a4, 0xa005, 0x1118, 0x6887, 0x0001,
+-      0x0008, 0x6886, 0x2001, 0xc8d6, 0x2004, 0x080c, 0x2a1c, 0x60e2,
+-      0xa006, 0x00ee, 0x00de, 0x00ce, 0x003e, 0x002e, 0x001e, 0x015e,
+-      0x0005, 0x0156, 0x0016, 0x0026, 0x0036, 0x00c6, 0x00d6, 0x00e6,
+-      0x2061, 0x0100, 0x2071, 0xc600, 0x6020, 0xa084, 0x00c0, 0x01e0,
+-      0x2011, 0x0003, 0x080c, 0x8f0e, 0x2011, 0x0002, 0x080c, 0x8f18,
+-      0x080c, 0x8dee, 0x2019, 0x0000, 0x080c, 0x8e79, 0x2069, 0x0140,
+-      0x6803, 0x00a0, 0x2001, 0xc8e6, 0x2003, 0x0001, 0x2001, 0xc600,
+-      0x2003, 0x0001, 0x0804, 0x614e, 0x2001, 0xc60c, 0x200c, 0xd1b4,
+-      0x1160, 0xc1b5, 0x2102, 0x080c, 0x5ddd, 0x2069, 0x0140, 0x080c,
+-      0x25fb, 0x6803, 0x0080, 0x60e3, 0x0000, 0x2069, 0x0200, 0x6804,
+-      0xa005, 0x1118, 0x6808, 0xa005, 0x01c0, 0x6028, 0xa084, 0xfdff,
+-      0x602a, 0x6027, 0x0200, 0x2069, 0xc90c, 0x7000, 0x206a, 0x708f,
+-      0x0027, 0x7003, 0x0001, 0x20a9, 0x0002, 0x1d04, 0x6105, 0x2091,
+-      0x6000, 0x1f04, 0x6105, 0x0804, 0x614e, 0x6027, 0x1e00, 0x2009,
+-      0x1e00, 0xe000, 0x6024, 0xa10c, 0x01c8, 0xa084, 0x1c00, 0x11b0,
+-      0x1d04, 0x610d, 0x0006, 0x0016, 0x00c6, 0x00d6, 0x00e6, 0x080c,
+-      0x6f0a, 0x00ee, 0x00de, 0x00ce, 0x001e, 0x000e, 0x00e6, 0x2071,
+-      0xc93a, 0x7018, 0x00ee, 0xa005, 0x1d00, 0x0500, 0x0026, 0x2011,
+-      0x5df5, 0x080c, 0x6fad, 0x2011, 0x5de8, 0x080c, 0x7070, 0x002e,
++      0x6028, 0xc09c, 0x602a, 0x2011, 0x0003, 0x080c, 0x8f27, 0x2011,
++      0x0002, 0x080c, 0x8f31, 0x080c, 0x8e07, 0x080c, 0x703d, 0x0036,
++      0x2019, 0x0000, 0x080c, 0x8e92, 0x003e, 0x60e3, 0x0000, 0x080c,
++      0xc59f, 0x080c, 0xc5ba, 0x2001, 0xc600, 0x2003, 0x0004, 0x6027,
++      0x0008, 0x080c, 0x12e1, 0x2001, 0x0001, 0x080c, 0x296d, 0x012e,
++      0x00fe, 0x00ee, 0x00de, 0x00ce, 0x003e, 0x002e, 0x001e, 0x0005,
++      0x2001, 0xc600, 0x2004, 0xa086, 0x0004, 0x0140, 0x2001, 0xc8e5,
++      0x2003, 0xaaaa, 0x2001, 0xc8e6, 0x2003, 0x0000, 0x0005, 0x6020,
++      0xd09c, 0x0005, 0x6800, 0xa086, 0x00c0, 0x0160, 0x6803, 0x00c0,
++      0x0156, 0x20a9, 0x002d, 0x1d04, 0x5e6b, 0x2091, 0x6000, 0x1f04,
++      0x5e6b, 0x015e, 0x0005, 0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100,
++      0x2069, 0x0140, 0x2071, 0xc600, 0x2001, 0xc8e6, 0x200c, 0xa186,
++      0x0000, 0x0158, 0xa186, 0x0001, 0x0158, 0xa186, 0x0002, 0x0158,
++      0xa186, 0x0003, 0x0158, 0x0804, 0x5f00, 0x708f, 0x0022, 0x0040,
++      0x708f, 0x0021, 0x0028, 0x708f, 0x0023, 0x0020, 0x708f, 0x0024,
++      0x6043, 0x0000, 0x60e3, 0x0000, 0x6887, 0x0001, 0x2001, 0x0001,
++      0x080c, 0x2a1c, 0x0026, 0x2011, 0x0003, 0x080c, 0x8f27, 0x2011,
++      0x0002, 0x080c, 0x8f31, 0x080c, 0x8e07, 0x0036, 0x2019, 0x0000,
++      0x080c, 0x8e92, 0x003e, 0x002e, 0x7000, 0xa08e, 0x0004, 0x0118,
++      0x602b, 0x0028, 0x0010, 0x602b, 0x0020, 0x0156, 0x0126, 0x2091,
++      0x8000, 0x20a9, 0x0005, 0x6024, 0xd0ac, 0x0120, 0x012e, 0x015e,
++      0x0804, 0x5f0e, 0x6800, 0xa084, 0x00a0, 0xc0bd, 0x6802, 0x6904,
++      0xd1d4, 0x1130, 0x6803, 0x0100, 0x1f04, 0x5ec3, 0x080c, 0x5f8c,
++      0x012e, 0x015e, 0x080c, 0x5f4d, 0x01a8, 0x6044, 0xa005, 0x0168,
++      0x6050, 0x0006, 0xa085, 0x0020, 0x6052, 0x080c, 0x5f8c, 0xa006,
++      0x8001, 0x1df0, 0x000e, 0x6052, 0x0028, 0x6804, 0xd0d4, 0x1110,
++      0x080c, 0x5f8c, 0x0016, 0x0026, 0x2009, 0x00c8, 0x2011, 0x5e0e,
++      0x080c, 0x704f, 0x002e, 0x001e, 0x2001, 0xc8e6, 0x2003, 0x0004,
++      0x080c, 0x5c4d, 0x080c, 0x5f4d, 0x0148, 0x6804, 0xd0d4, 0x1130,
++      0xd0dc, 0x1100, 0x2001, 0xc8e6, 0x2003, 0x0000, 0x00ee, 0x00de,
++      0x00ce, 0x0005, 0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100, 0x2069,
++      0x0140, 0x2071, 0xc600, 0x2001, 0xc8e5, 0x2003, 0x0000, 0x2001,
++      0xc8d6, 0x2003, 0x0000, 0x708f, 0x0000, 0x60e3, 0x0000, 0x6887,
++      0x0000, 0x2001, 0x0000, 0x080c, 0x2a1c, 0x6803, 0x0000, 0x6043,
++      0x0090, 0x6043, 0x0010, 0x6027, 0xffff, 0x602b, 0x182f, 0x00ee,
++      0x00de, 0x00ce, 0x0005, 0x0006, 0x2001, 0xc8e5, 0x2004, 0xa086,
++      0xaaaa, 0x000e, 0x0005, 0x0006, 0x2001, 0xc672, 0x2004, 0xa084,
++      0x0030, 0xa086, 0x0000, 0x000e, 0x0005, 0x0006, 0x2001, 0xc672,
++      0x2004, 0xa084, 0x0030, 0xa086, 0x0030, 0x000e, 0x0005, 0x0006,
++      0x2001, 0xc672, 0x2004, 0xa084, 0x0030, 0xa086, 0x0010, 0x000e,
++      0x0005, 0x0006, 0x2001, 0xc672, 0x2004, 0xa084, 0x0030, 0xa086,
++      0x0020, 0x000e, 0x0005, 0x2001, 0xc60c, 0x2004, 0xd0a4, 0x0170,
++      0x080c, 0x2a3c, 0x0036, 0x0016, 0x2009, 0x0000, 0x2019, 0x0028,
++      0x080c, 0x2e19, 0x001e, 0x003e, 0xa006, 0x0009, 0x0005, 0x00e6,
++      0x2071, 0xc60c, 0x2e04, 0x0118, 0xa085, 0x0010, 0x0010, 0xa084,
++      0xffef, 0x2072, 0x00ee, 0x0005, 0x6050, 0x0006, 0x60f0, 0x0006,
++      0x60ec, 0x0006, 0x600c, 0x0006, 0x6004, 0x0006, 0x6028, 0x0006,
++      0x602f, 0x0100, 0x602f, 0x0000, 0x602f, 0x0040, 0x602f, 0x0000,
++      0x000e, 0x602a, 0x000e, 0x6006, 0x000e, 0x600e, 0x000e, 0x60ee,
++      0x000e, 0x60f2, 0x60e3, 0x0000, 0x6887, 0x0001, 0x2001, 0x0001,
++      0x080c, 0x2a1c, 0x6800, 0xa084, 0x00a0, 0xc0bd, 0x6802, 0x6803,
++      0x00a0, 0x000e, 0x6052, 0x6050, 0x0005, 0x0156, 0x0016, 0x0026,
++      0x0036, 0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100, 0x2069, 0x0140,
++      0x2071, 0xc600, 0x6020, 0xa084, 0x0080, 0x0138, 0x2001, 0xc60c,
++      0x200c, 0xc1bd, 0x2102, 0x0804, 0x6035, 0x2001, 0xc60c, 0x200c,
++      0xc1bc, 0x2102, 0x6028, 0xa084, 0xe1ff, 0x602a, 0x6027, 0x0200,
++      0x6803, 0x0090, 0x20a9, 0x0384, 0x6024, 0xd0cc, 0x1508, 0x1d04,
++      0x5fe4, 0x2091, 0x6000, 0x1f04, 0x5fe4, 0x2011, 0x0003, 0x080c,
++      0x8f27, 0x2011, 0x0002, 0x080c, 0x8f31, 0x080c, 0x8e07, 0x2019,
++      0x0000, 0x080c, 0x8e92, 0x6803, 0x00a0, 0x2001, 0xc8e6, 0x2003,
++      0x0001, 0x2001, 0xc600, 0x2003, 0x0001, 0xa085, 0x0001, 0x0468,
++      0x86ff, 0x1120, 0x080c, 0x1f06, 0x080c, 0x25fb, 0x60e3, 0x0000,
++      0x2001, 0xc8d6, 0x2004, 0x080c, 0x2a1c, 0x60e2, 0x6803, 0x0080,
++      0x20a9, 0x0384, 0x6027, 0x1e00, 0x2009, 0x1e00, 0xe000, 0x6024,
++      0xa10c, 0x0138, 0x1d04, 0x601a, 0x2091, 0x6000, 0x1f04, 0x601a,
++      0x0820, 0x6028, 0xa085, 0x1e00, 0x602a, 0x70a4, 0xa005, 0x1118,
++      0x6887, 0x0001, 0x0008, 0x6886, 0xa006, 0x00ee, 0x00de, 0x00ce,
++      0x003e, 0x002e, 0x001e, 0x015e, 0x0005, 0x0156, 0x0016, 0x0026,
++      0x0036, 0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100, 0x2071, 0xc600,
++      0x2069, 0x0140, 0x6020, 0xa084, 0x00c0, 0x0120, 0x6884, 0xa005,
++      0x1904, 0x6091, 0x6803, 0x0088, 0x60e3, 0x0000, 0x6887, 0x0000,
++      0x2001, 0x0000, 0x080c, 0x2a1c, 0x2069, 0x0200, 0x6804, 0xa005,
++      0x1118, 0x6808, 0xa005, 0x01c0, 0x6028, 0xa084, 0xfbff, 0x602a,
++      0x6027, 0x0400, 0x2069, 0xc90c, 0x7000, 0x206a, 0x708f, 0x0026,
++      0x7003, 0x0001, 0x20a9, 0x0002, 0x1d04, 0x6074, 0x2091, 0x6000,
++      0x1f04, 0x6074, 0x0804, 0x60c2, 0x2069, 0x0140, 0x20a9, 0x0384,
++      0x6027, 0x1e00, 0x2009, 0x1e00, 0xe000, 0x6024, 0xa10c, 0x0520,
++      0xa084, 0x1a00, 0x1508, 0x1d04, 0x6080, 0x2091, 0x6000, 0x1f04,
++      0x6080, 0x2011, 0x0003, 0x080c, 0x8f27, 0x2011, 0x0002, 0x080c,
++      0x8f31, 0x080c, 0x8e07, 0x2019, 0x0000, 0x080c, 0x8e92, 0x6803,
++      0x00a0, 0x2001, 0xc8e6, 0x2003, 0x0001, 0x2001, 0xc600, 0x2003,
++      0x0001, 0xa085, 0x0001, 0x00b0, 0x080c, 0x25fb, 0x6803, 0x0080,
+       0x2069, 0x0140, 0x60e3, 0x0000, 0x70a4, 0xa005, 0x1118, 0x6887,
+       0x0001, 0x0008, 0x6886, 0x2001, 0xc8d6, 0x2004, 0x080c, 0x2a1c,
+-      0x60e2, 0x2001, 0xc60c, 0x200c, 0xc1b4, 0x2102, 0x00ee, 0x00de,
+-      0x00ce, 0x003e, 0x002e, 0x001e, 0x015e, 0x0005, 0x0156, 0x0016,
+-      0x0026, 0x0036, 0x0046, 0x00c6, 0x00e6, 0x2061, 0x0100, 0x2071,
+-      0xc600, 0x7130, 0xd184, 0x1180, 0x2011, 0xc653, 0x2214, 0xd2ec,
+-      0x0138, 0xc18d, 0x7132, 0x2011, 0xc653, 0x2214, 0xd2ac, 0x1120,
+-      0x7030, 0xd08c, 0x0904, 0x61bb, 0x7130, 0xc185, 0x7132, 0x2011,
+-      0xc653, 0x220c, 0xd1a4, 0x0530, 0x0016, 0x2019, 0x000e, 0x080c,
+-      0xc100, 0x0156, 0x20a9, 0x007f, 0x2009, 0x0000, 0xa186, 0x007e,
+-      0x01a0, 0xa186, 0x0080, 0x0188, 0x080c, 0x533d, 0x1170, 0x8127,
+-      0xa006, 0x0016, 0x2009, 0x000e, 0x080c, 0xc183, 0x2009, 0x0001,
+-      0x2011, 0x0100, 0x080c, 0x712e, 0x001e, 0x8108, 0x1f04, 0x6186,
+-      0x015e, 0x001e, 0xd1ac, 0x1148, 0x0016, 0x2009, 0x0000, 0x2019,
+-      0x0004, 0x080c, 0x2e19, 0x001e, 0x0070, 0x0156, 0x20a9, 0x007f,
+-      0x2009, 0x0000, 0x080c, 0x533d, 0x1110, 0x080c, 0x4f47, 0x8108,
+-      0x1f04, 0x61b2, 0x015e, 0x080c, 0x1f06, 0x2011, 0x0003, 0x080c,
+-      0x8f0e, 0x2011, 0x0002, 0x080c, 0x8f18, 0x080c, 0x8dee, 0x0036,
+-      0x2019, 0x0000, 0x080c, 0x8e79, 0x003e, 0x60e3, 0x0000, 0x2001,
+-      0xc600, 0x2003, 0x0001, 0x080c, 0x5e5a, 0x00ee, 0x00ce, 0x004e,
+-      0x003e, 0x002e, 0x001e, 0x015e, 0x0005, 0x2071, 0xc702, 0x7003,
+-      0x0000, 0x7007, 0x0000, 0x700f, 0x0000, 0x702b, 0x0001, 0x704f,
+-      0x0000, 0x7053, 0x0001, 0x705f, 0x0020, 0x7063, 0x0040, 0x7083,
+-      0x0000, 0x708b, 0x0000, 0x708f, 0x0001, 0x70bf, 0x0000, 0x0005,
+-      0x00e6, 0x2071, 0xc702, 0x6848, 0xa005, 0x1130, 0x7028, 0xc085,
+-      0x702a, 0xa085, 0x0001, 0x0428, 0x6a50, 0x7236, 0x6b54, 0x733a,
+-      0x6858, 0x703e, 0x707a, 0x685c, 0x7042, 0x707e, 0x6848, 0x702e,
+-      0x6840, 0x7032, 0x2009, 0x000c, 0x200a, 0x8007, 0x8006, 0x8006,
+-      0xa08c, 0x003f, 0xa084, 0xffc0, 0xa210, 0x2100, 0xa319, 0x7272,
+-      0x7376, 0x7028, 0xc084, 0x702a, 0x7007, 0x0001, 0x700f, 0x0000,
+-      0xa006, 0x00ee, 0x0005, 0x2b78, 0x2071, 0xc702, 0x7004, 0x0043,
+-      0x700c, 0x0002, 0x6237, 0x622e, 0x622e, 0x622e, 0x622e, 0x0005,
+-      0x628d, 0x628e, 0x62c0, 0x62c1, 0x628b, 0x630f, 0x6314, 0x6345,
+-      0x6346, 0x6361, 0x6362, 0x6363, 0x6364, 0x6365, 0x6366, 0x6431,
+-      0x6458, 0x700c, 0x0002, 0x6250, 0x628b, 0x628b, 0x628c, 0x628c,
+-      0x7830, 0x7930, 0xa106, 0x0120, 0x7830, 0x7930, 0xa106, 0x1510,
+-      0x7030, 0xa10a, 0x01f8, 0x1210, 0x712c, 0xa10a, 0xa18a, 0x0002,
+-      0x12d0, 0x080c, 0x15e5, 0x01b0, 0x2d00, 0x705a, 0x7063, 0x0040,
+-      0x2001, 0x0003, 0x7057, 0x0000, 0x0126, 0x0006, 0x2091, 0x8000,
+-      0x2009, 0xc959, 0x2104, 0xc085, 0x200a, 0x000e, 0x700e, 0x012e,
+-      0x080c, 0x1669, 0x0005, 0x080c, 0x15e5, 0x0de0, 0x2d00, 0x705a,
+-      0x080c, 0x15e5, 0x1108, 0x0c10, 0x2d00, 0x7086, 0x7063, 0x0080,
+-      0x2001, 0x0004, 0x08f8, 0x0005, 0x0005, 0x0005, 0x700c, 0x0002,
+-      0x6295, 0x6298, 0x62a6, 0x62bf, 0x62bf, 0x080c, 0x6249, 0x0005,
+-      0x0126, 0x8001, 0x700e, 0x7058, 0x0006, 0x080c, 0x67d4, 0x0120,
+-      0x2091, 0x8000, 0x080c, 0x6249, 0x00de, 0x0048, 0x0126, 0x8001,
+-      0x700e, 0x080c, 0x67d4, 0x7058, 0x2068, 0x7084, 0x705a, 0x6803,
+-      0x0000, 0x6807, 0x0000, 0x6834, 0xa084, 0x00ff, 0xa08a, 0x003a,
+-      0x1218, 0x00db, 0x012e, 0x0005, 0x012e, 0x080c, 0x6367, 0x0005,
+-      0x0005, 0x0005, 0x00e6, 0x2071, 0xc702, 0x700c, 0x0002, 0x62cc,
+-      0x62cc, 0x62cc, 0x62ce, 0x62d1, 0x00ee, 0x0005, 0x700f, 0x0001,
+-      0x0010, 0x700f, 0x0002, 0x00ee, 0x0005, 0x6367, 0x6367, 0x6383,
+-      0x6367, 0x653e, 0x6367, 0x6367, 0x6367, 0x6367, 0x6367, 0x6383,
+-      0x6580, 0x65c3, 0x660c, 0x6620, 0x6367, 0x6367, 0x639f, 0x6383,
+-      0x63b3, 0x6367, 0x640e, 0x66cc, 0x66e7, 0x6367, 0x639f, 0x6367,
+-      0x63b3, 0x6367, 0x6367, 0x6404, 0x66e7, 0x6367, 0x6367, 0x6367,
+-      0x6367, 0x6367, 0x6367, 0x6367, 0x6367, 0x6367, 0x63c8, 0x6367,
+-      0x6367, 0x6367, 0x6367, 0x6367, 0x6367, 0x6367, 0x6367, 0x6367,
+-      0x6866, 0x6367, 0x67f2, 0x6367, 0x67f2, 0x6367, 0x63dd, 0x7020,
+-      0x2068, 0x080c, 0x1619, 0x0005, 0x700c, 0x0002, 0x631b, 0x631e,
+-      0x632c, 0x6344, 0x6344, 0x080c, 0x6249, 0x0005, 0x0126, 0x8001,
+-      0x700e, 0x7058, 0x0006, 0x080c, 0x67d4, 0x0120, 0x2091, 0x8000,
+-      0x080c, 0x6249, 0x00de, 0x0048, 0x0126, 0x8001, 0x700e, 0x080c,
+-      0x67d4, 0x7058, 0x2068, 0x7084, 0x705a, 0x6803, 0x0000, 0x6807,
+-      0x0000, 0x6834, 0xa084, 0x00ff, 0xa08a, 0x001a, 0x1218, 0x003b,
+-      0x012e, 0x0005, 0x012e, 0x0419, 0x0005, 0x0005, 0x0005, 0x6367,
+-      0x6383, 0x652a, 0x6367, 0x6383, 0x6367, 0x6383, 0x6383, 0x6367,
+-      0x6383, 0x652a, 0x6383, 0x6383, 0x6383, 0x6383, 0x6383, 0x6367,
+-      0x6383, 0x652a, 0x6367, 0x6367, 0x6383, 0x6367, 0x6367, 0x6367,
+-      0x6383, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x7007,
+-      0x0001, 0x6838, 0xa084, 0x00ff, 0xc0d5, 0x683a, 0x0126, 0x2091,
+-      0x8000, 0x080c, 0x580a, 0x012e, 0x0005, 0x7007, 0x0001, 0x6838,
+-      0xa084, 0x00ff, 0xc0e5, 0x683a, 0x0126, 0x2091, 0x8000, 0x080c,
+-      0x580a, 0x012e, 0x0005, 0x7007, 0x0001, 0x6838, 0xa084, 0x00ff,
+-      0xc0ed, 0x683a, 0x0126, 0x2091, 0x8000, 0x080c, 0x580a, 0x012e,
+-      0x0005, 0x7007, 0x0001, 0x6838, 0xa084, 0x00ff, 0xc0dd, 0x683a,
+-      0x0126, 0x2091, 0x8000, 0x080c, 0x580a, 0x012e, 0x0005, 0x6834,
+-      0x8007, 0xa084, 0x00ff, 0x0988, 0x8001, 0x1120, 0x7007, 0x0001,
+-      0x0804, 0x64c1, 0x7007, 0x0006, 0x7012, 0x2d00, 0x7016, 0x701a,
+-      0x704b, 0x64c1, 0x0005, 0x6834, 0x8007, 0xa084, 0x00ff, 0x0904,
+-      0x6375, 0x8001, 0x1120, 0x7007, 0x0001, 0x0804, 0x64de, 0x7007,
+-      0x0006, 0x7012, 0x2d00, 0x7016, 0x701a, 0x704b, 0x64de, 0x0005,
+-      0x6834, 0x8007, 0xa084, 0x00ff, 0x0904, 0x6375, 0x8001, 0x1120,
+-      0x7007, 0x0001, 0x0804, 0x6507, 0x7007, 0x0006, 0x7012, 0x2d00,
+-      0x7016, 0x701a, 0x704b, 0x6507, 0x0005, 0x6834, 0x8007, 0xa084,
+-      0x00ff, 0xa086, 0x0001, 0x1904, 0x6375, 0x7007, 0x0001, 0x2009,
+-      0xc631, 0x210c, 0x81ff, 0x11a8, 0x6838, 0xa084, 0x00ff, 0x683a,
+-      0x6853, 0x0000, 0x080c, 0x5116, 0x1108, 0x0005, 0x0126, 0x2091,
+-      0x8000, 0x6837, 0x0139, 0x684a, 0x6952, 0x080c, 0x580a, 0x012e,
+-      0x0ca0, 0x2001, 0x0028, 0x0c90, 0x684c, 0xa084, 0x00c0, 0xa086,
+-      0x00c0, 0x1120, 0x7007, 0x0001, 0x0804, 0x66ff, 0x2d00, 0x7016,
+-      0x701a, 0x20a9, 0x0004, 0xa080, 0x0024, 0x2098, 0x20a1, 0xc72d,
+-      0x53a3, 0x6858, 0x7012, 0xa082, 0x0401, 0x1a04, 0x6391, 0x6a84,
+-      0xa28a, 0x0002, 0x1a04, 0x6391, 0x82ff, 0x1138, 0x6888, 0x698c,
+-      0xa105, 0x0118, 0x2001, 0x6494, 0x0018, 0xa280, 0x648a, 0x2005,
+-      0x70c6, 0x7010, 0xa015, 0x0904, 0x6476, 0x080c, 0x15e5, 0x1118,
+-      0x7007, 0x000f, 0x0005, 0x2d00, 0x7022, 0x70c4, 0x2060, 0x2c05,
+-      0x6836, 0xe004, 0xad00, 0x7096, 0xe008, 0xa20a, 0x1210, 0xa00e,
+-      0x2200, 0x7112, 0xe20c, 0x8003, 0x800b, 0xa296, 0x0004, 0x0108,
+-      0xa108, 0x719a, 0x810b, 0x719e, 0xae90, 0x0022, 0x080c, 0x164d,
+-      0x7090, 0xa08e, 0x0100, 0x0170, 0xa086, 0x0200, 0x0118, 0x7007,
+-      0x0010, 0x0005, 0x7020, 0x2068, 0x080c, 0x1619, 0x7014, 0x2068,
+-      0x0804, 0x6391, 0x7020, 0x2068, 0x7018, 0x6802, 0x6807, 0x0000,
+-      0x2d08, 0x2068, 0x6906, 0x711a, 0x0804, 0x6431, 0x7014, 0x2068,
+-      0x7007, 0x0001, 0x6884, 0xa005, 0x1128, 0x6888, 0x698c, 0xa105,
+-      0x0108, 0x00b1, 0x6834, 0xa084, 0x00ff, 0xa086, 0x001e, 0x0904,
+-      0x66ff, 0x04b8, 0x648c, 0x6490, 0x0002, 0x0011, 0x0007, 0x0004,
+-      0x000a, 0x000f, 0x0005, 0x0006, 0x000a, 0x0011, 0x0005, 0x0004,
+-      0x00f6, 0x00e6, 0x00c6, 0x0076, 0x0066, 0x6f88, 0x6e8c, 0x6804,
+-      0x2060, 0xacf0, 0x0021, 0xacf8, 0x0027, 0x2009, 0x0005, 0x700c,
+-      0x7816, 0x7008, 0x7812, 0x7004, 0x7806, 0x7000, 0x7802, 0x7e0e,
+-      0x7f0a, 0x8109, 0x0128, 0xaef2, 0x0004, 0xaffa, 0x0006, 0x0c78,
+-      0x6004, 0xa065, 0x1d30, 0x006e, 0x007e, 0x00ce, 0x00ee, 0x00fe,
+-      0x0005, 0x2009, 0xc631, 0x210c, 0x81ff, 0x1198, 0x6838, 0xa084,
+-      0x00ff, 0x683a, 0x080c, 0x4fa6, 0x1108, 0x0005, 0x080c, 0x592e,
+-      0x0126, 0x2091, 0x8000, 0x080c, 0xaefc, 0x080c, 0x580a, 0x012e,
+-      0x0ca0, 0x2001, 0x0028, 0x2009, 0x0000, 0x0c80, 0x2009, 0xc631,
+-      0x210c, 0x81ff, 0x11d8, 0x6858, 0xa005, 0x01d8, 0x2001, 0xc756,
+-      0x2004, 0xa086, 0x0000, 0x01c0, 0x6838, 0xa084, 0x00ff, 0x683a,
+-      0x6853, 0x0000, 0x080c, 0x5068, 0x1108, 0x0005, 0x684a, 0x0126,
+-      0x2091, 0x8000, 0x080c, 0x580a, 0x012e, 0x0cb8, 0x2001, 0x0028,
+-      0x0ca8, 0x2001, 0x0000, 0x0c90, 0x2001, 0x002c, 0x0c78, 0x2009,
+-      0xc631, 0x210c, 0x81ff, 0x11b0, 0x6858, 0xa005, 0x01c0, 0x6838,
+-      0xa084, 0x00ff, 0x683a, 0x6853, 0x0000, 0x080c, 0x50ba, 0x1108,
+-      0x0005, 0x0126, 0x2091, 0x8000, 0x684a, 0x6952, 0x080c, 0x580a,
+-      0x012e, 0x0cb0, 0x2001, 0x0028, 0x2009, 0x0000, 0x0c90, 0x2001,
+-      0x0000, 0x0c78, 0x7018, 0x6802, 0x2d08, 0x2068, 0x6906, 0x711a,
+-      0x7010, 0x8001, 0x7012, 0x0118, 0x7007, 0x0006, 0x0030, 0x7014,
+-      0x2068, 0x7007, 0x0001, 0x7048, 0x080f, 0x0005, 0x7007, 0x0001,
+-      0x6944, 0x810f, 0xa18c, 0x00ff, 0x6848, 0xa084, 0x00ff, 0x20a9,
+-      0x0001, 0xa096, 0x0001, 0x01b0, 0x2009, 0x0000, 0x20a9, 0x00ff,
+-      0xa096, 0x0002, 0x0178, 0xa005, 0x11f0, 0x6944, 0x810f, 0xa18c,
+-      0x00ff, 0x080c, 0x533d, 0x11b8, 0x0066, 0x6e50, 0x080c, 0x543c,
+-      0x006e, 0x0088, 0x0046, 0x2011, 0xc60c, 0x2224, 0xc484, 0x2412,
+-      0x004e, 0x00c6, 0x080c, 0x533d, 0x1110, 0x080c, 0x559d, 0x8108,
+-      0x1f04, 0x656a, 0x00ce, 0x684c, 0xd084, 0x1118, 0x080c, 0x1619,
+-      0x0005, 0x0126, 0x2091, 0x8000, 0x080c, 0x580a, 0x012e, 0x0005,
+-      0x0126, 0x2091, 0x8000, 0x7007, 0x0001, 0x2001, 0xc653, 0x2004,
+-      0xd0a4, 0x0580, 0x2061, 0xc9bc, 0x6100, 0xd184, 0x0178, 0x6858,
+-      0xa084, 0x00ff, 0x1550, 0x6000, 0xd084, 0x0520, 0x6004, 0xa005,
+-      0x1538, 0x6003, 0x0000, 0x600b, 0x0000, 0x00c8, 0x2011, 0x0001,
+-      0x6860, 0xa005, 0x1110, 0x2001, 0x001e, 0x8000, 0x6016, 0x6858,
+-      0xa084, 0x00ff, 0x0178, 0x6006, 0x6858, 0x8007, 0xa084, 0x00ff,
+-      0x0148, 0x600a, 0x6858, 0x8000, 0x1108, 0xc28d, 0x6202, 0x012e,
+-      0x0804, 0x67c3, 0x012e, 0x0804, 0x67bd, 0x012e, 0x0804, 0x67b7,
+-      0x012e, 0x0804, 0x67ba, 0x0126, 0x2091, 0x8000, 0x7007, 0x0001,
+-      0x2001, 0xc653, 0x2004, 0xd0a4, 0x05e0, 0x2061, 0xc9bc, 0x6000,
+-      0xd084, 0x05b8, 0x6204, 0x6308, 0xd08c, 0x1530, 0x6c48, 0xa484,
+-      0x0003, 0x0170, 0x6958, 0xa18c, 0x00ff, 0x8001, 0x1120, 0x2100,
+-      0xa210, 0x0620, 0x0028, 0x8001, 0x1508, 0x2100, 0xa212, 0x02f0,
+-      0xa484, 0x000c, 0x0188, 0x6958, 0x810f, 0xa18c, 0x00ff, 0xa082,
+-      0x0004, 0x1120, 0x2100, 0xa318, 0x0288, 0x0030, 0xa082, 0x0004,
+-      0x1168, 0x2100, 0xa31a, 0x0250, 0x6860, 0xa005, 0x0110, 0x8000,
+-      0x6016, 0x6206, 0x630a, 0x012e, 0x0804, 0x67c3, 0x012e, 0x0804,
+-      0x67c0, 0x012e, 0x0804, 0x67bd, 0x0126, 0x2091, 0x8000, 0x7007,
+-      0x0001, 0x2061, 0xc9bc, 0x6300, 0xd38c, 0x1120, 0x6308, 0x8318,
+-      0x0220, 0x630a, 0x012e, 0x0804, 0x67d1, 0x012e, 0x0804, 0x67c0,
+-      0x0126, 0x00c6, 0x2091, 0x8000, 0x7007, 0x0001, 0x684c, 0xd0ac,
+-      0x0148, 0x00c6, 0x2061, 0xc9bc, 0x6000, 0xa084, 0xfcff, 0x6002,
+-      0x00ce, 0x0448, 0x6858, 0xa005, 0x05d0, 0x685c, 0xa065, 0x0598,
+-      0x2001, 0xc631, 0x2004, 0xa005, 0x0118, 0x080c, 0xae4d, 0x0068,
+-      0x6013, 0x0400, 0x6057, 0x0000, 0x694c, 0xd1a4, 0x0110, 0x6950,
+-      0x6156, 0x2009, 0x0041, 0x080c, 0x960c, 0x6958, 0xa18c, 0xff00,
+-      0xa186, 0x2000, 0x1140, 0x0026, 0x2009, 0x0000, 0x2011, 0xfdff,
+-      0x080c, 0x712e, 0x002e, 0x684c, 0xd0c4, 0x0148, 0x2061, 0xc9bc,
+-      0x6000, 0xd08c, 0x1120, 0x6008, 0x8000, 0x0208, 0x600a, 0x00ce,
+-      0x012e, 0x0804, 0x67c3, 0x00ce, 0x012e, 0x0804, 0x67bd, 0x6954,
+-      0xa186, 0x002e, 0x0d40, 0xa186, 0x002d, 0x0d28, 0xa186, 0x0045,
+-      0x0528, 0xa186, 0x002a, 0x1130, 0x2001, 0xc60c, 0x200c, 0xc194,
+-      0x2102, 0x08c8, 0xa186, 0x0020, 0x0170, 0xa186, 0x0029, 0x1d18,
+-      0x6944, 0xa18c, 0xff00, 0x810f, 0x080c, 0x533d, 0x1960, 0x6000,
+-      0xc0e4, 0x6002, 0x0840, 0x685c, 0xa065, 0x09a8, 0x6007, 0x0024,
+-      0x2001, 0xc8fd, 0x2004, 0x6016, 0x0804, 0x665b, 0x685c, 0xa065,
+-      0x0950, 0x00e6, 0x6860, 0xa075, 0x2001, 0xc631, 0x2004, 0xa005,
+-      0x0150, 0x080c, 0xae4d, 0x8eff, 0x0118, 0x2e60, 0x080c, 0xae4d,
+-      0x00ee, 0x0804, 0x665b, 0x6020, 0xc0dc, 0xc0d5, 0x6022, 0x2e60,
+-      0x6007, 0x003a, 0x6870, 0xa005, 0x0130, 0x6007, 0x003b, 0x6874,
+-      0x602a, 0x6878, 0x6012, 0x6003, 0x0001, 0x080c, 0x7999, 0x080c,
+-      0x7e94, 0x00ee, 0x0804, 0x665b, 0x2061, 0xc9bc, 0x6000, 0xd084,
+-      0x0190, 0xd08c, 0x1904, 0x67d1, 0x0126, 0x2091, 0x8000, 0x6204,
+-      0x8210, 0x0220, 0x6206, 0x012e, 0x0804, 0x67d1, 0x012e, 0x6853,
+-      0x0016, 0x0804, 0x67ca, 0x6853, 0x0007, 0x0804, 0x67ca, 0x6834,
+-      0x8007, 0xa084, 0x00ff, 0x1118, 0x080c, 0x6375, 0x0078, 0x2030,
+-      0x8001, 0x1120, 0x7007, 0x0001, 0x0051, 0x0040, 0x7007, 0x0006,
+-      0x7012, 0x2d00, 0x7016, 0x701a, 0x704b, 0x66ff, 0x0005, 0x00e6,
+-      0x0126, 0x2091, 0x8000, 0xa03e, 0x2009, 0xc631, 0x210c, 0x81ff,
+-      0x1904, 0x677d, 0x2009, 0xc60c, 0x210c, 0xd194, 0x1904, 0x67a7,
+-      0x6848, 0x2070, 0xae82, 0xce00, 0x0a04, 0x6771, 0x2001, 0xc617,
+-      0x2004, 0xae02, 0x1a04, 0x6771, 0x711c, 0xa186, 0x0006, 0x1904,
+-      0x6760, 0x7018, 0xa005, 0x0904, 0x677d, 0x2004, 0xd0e4, 0x1904,
+-      0x67a2, 0x2061, 0xc9bc, 0x6100, 0xa184, 0x0301, 0xa086, 0x0001,
+-      0x1550, 0x7020, 0xd0dc, 0x1904, 0x67aa, 0x6853, 0x0000, 0x6803,
+-      0x0000, 0x2d08, 0x7010, 0xa005, 0x1158, 0x7112, 0x684c, 0xd0f4,
+-      0x1904, 0x67ad, 0x2e60, 0x080c, 0x708a, 0x012e, 0x00ee, 0x0005,
+-      0x2068, 0x6800, 0xa005, 0x1de0, 0x6902, 0x2168, 0x684c, 0xd0f4,
+-      0x1904, 0x67ad, 0x012e, 0x00ee, 0x0005, 0x012e, 0x00ee, 0x6853,
+-      0x0006, 0x0804, 0x67ca, 0xd184, 0x0dc0, 0xd1c4, 0x11a8, 0x00b8,
+-      0x6944, 0xa18c, 0xff00, 0x810f, 0x080c, 0x533d, 0x15d8, 0x6000,
+-      0xd0e4, 0x15c0, 0x711c, 0xa186, 0x0007, 0x1118, 0x6853, 0x0002,
+-      0x0498, 0x6853, 0x0008, 0x0480, 0x6853, 0x000e, 0x0468, 0x6853,
+-      0x0017, 0x0450, 0x6853, 0x0035, 0x0438, 0x2001, 0xc672, 0x2004,
+-      0xd0fc, 0x01e8, 0x6848, 0x2070, 0xae82, 0xce00, 0x02c0, 0x605c,
+-      0xae02, 0x12a8, 0x711c, 0xa186, 0x0006, 0x1188, 0x7018, 0xa005,
+-      0x0170, 0x2004, 0xd0bc, 0x0158, 0x2039, 0x0001, 0x7000, 0xa086,
+-      0x0007, 0x1904, 0x670a, 0x7003, 0x0002, 0x0804, 0x670a, 0x6853,
+-      0x0028, 0x0010, 0x6853, 0x0029, 0x012e, 0x00ee, 0x0418, 0x6853,
+-      0x002a, 0x0cd0, 0x6853, 0x0045, 0x0cb8, 0x2e60, 0x2019, 0x0002,
+-      0x6017, 0x0014, 0x080c, 0xbd48, 0x012e, 0x00ee, 0x0005, 0x2009,
+-      0x003e, 0x0058, 0x2009, 0x0004, 0x0040, 0x2009, 0x0006, 0x0028,
+-      0x2009, 0x0016, 0x0010, 0x2009, 0x0001, 0x6854, 0xa084, 0xff00,
+-      0xa105, 0x6856, 0x0126, 0x2091, 0x8000, 0x080c, 0x580a, 0x012e,
+-      0x0005, 0x080c, 0x1619, 0x0005, 0x702c, 0x7130, 0x8108, 0xa102,
+-      0x0230, 0xa00e, 0x7034, 0x7072, 0x7038, 0x7076, 0x0058, 0x7070,
+-      0xa080, 0x0040, 0x7072, 0x1230, 0x7074, 0xa081, 0x0000, 0x7076,
+-      0xa085, 0x0001, 0x7932, 0x7132, 0x0005, 0x00d6, 0x080c, 0x7081,
+-      0x00de, 0x0005, 0x2001, 0xc756, 0x2004, 0xa086, 0x0000, 0x0904,
+-      0x684d, 0x080c, 0x768f, 0x0904, 0x6850, 0x6868, 0xa084, 0x0007,
+-      0x0904, 0x6844, 0x080c, 0x9586, 0x0904, 0x6847, 0x2d00, 0x6012,
+-      0x6834, 0xa084, 0x00ff, 0xa086, 0x0035, 0x1198, 0x2001, 0xc8e5,
+-      0x2004, 0xa086, 0xaaaa, 0x0130, 0x2001, 0xc635, 0x2004, 0xa084,
+-      0x0028, 0x05c8, 0x6008, 0xc0fd, 0x600a, 0x2001, 0xc8d3, 0x2004,
+-      0x0098, 0x6870, 0xa084, 0x00ff, 0x696c, 0xa18c, 0xff00, 0xa105,
+-      0x696c, 0xa18c, 0x00ff, 0x080c, 0x29c7, 0x11e0, 0x00c6, 0x080c,
+-      0x533d, 0x2c00, 0x00ce, 0x11b0, 0x601a, 0x601f, 0x0001, 0x2009,
+-      0x0040, 0x6834, 0xa084, 0x00ff, 0xa086, 0x0035, 0x0110, 0x2009,
+-      0x0041, 0x080c, 0x960c, 0x0005, 0x684b, 0x0101, 0x0078, 0x684b,
+-      0x002c, 0x0060, 0x684b, 0x0028, 0x0080, 0x684b, 0x0104, 0x0030,
+-      0x684b, 0x0105, 0x0018, 0x684b, 0x0106, 0x0038, 0x0126, 0x2091,
+-      0x8000, 0x080c, 0x580a, 0x012e, 0x0005, 0x0126, 0x2091, 0x8000,
+-      0x080c, 0x580a, 0x012e, 0x080c, 0x95dc, 0x0005, 0x00d6, 0x00c6,
+-      0x0036, 0x0026, 0x0016, 0x7007, 0x0001, 0x6a44, 0xa282, 0x0004,
+-      0x1a04, 0x68b1, 0xd284, 0x0170, 0x6a4c, 0xa290, 0xc77b, 0x2204,
+-      0xa065, 0x6004, 0x05e0, 0x8007, 0xa084, 0x00ff, 0xa084, 0x0006,
+-      0x1108, 0x04a8, 0x2c10, 0x080c, 0x9586, 0x1118, 0x080c, 0xaf06,
+-      0x05a0, 0x621a, 0x6844, 0x0002, 0x6890, 0x6895, 0x6898, 0x689e,
+-      0x2019, 0x0002, 0x080c, 0xc100, 0x0060, 0x080c, 0xc097, 0x0048,
+-      0x2019, 0x0002, 0x6950, 0x080c, 0xc0b2, 0x0018, 0x6950, 0x080c,
+-      0xc097, 0x080c, 0x95dc, 0x6857, 0x0000, 0x0126, 0x2091, 0x8000,
+-      0x080c, 0x580a, 0x012e, 0x001e, 0x002e, 0x003e, 0x00ce, 0x00de,
+-      0x0005, 0x6857, 0x0006, 0x0c88, 0x6857, 0x0002, 0x0c70, 0x6857,
+-      0x0005, 0x0c58, 0x6857, 0x0004, 0x0c40, 0x6857, 0x0007, 0x0c28,
+-      0x00d6, 0x2011, 0x0004, 0x2204, 0xa085, 0x8002, 0x2012, 0x00de,
+-      0x0005, 0x20e1, 0x0002, 0x3d08, 0x20e1, 0x2000, 0x3d00, 0xa084,
+-      0x7000, 0x0118, 0xa086, 0x1000, 0x15e0, 0x20e1, 0x0000, 0x3d00,
+-      0xa094, 0xff00, 0x8217, 0xa084, 0xf000, 0xa086, 0x3000, 0x1160,
+-      0xa184, 0xff00, 0x8007, 0xa086, 0x0008, 0x1558, 0x080c, 0x2f69,
+-      0x1540, 0x080c, 0x6b32, 0x0400, 0x20e1, 0x0004, 0x3d60, 0xd1bc,
+-      0x1170, 0x2100, 0xa084, 0xff00, 0xa086, 0x0500, 0x1138, 0x0026,
+-      0x2c10, 0x080c, 0x6d90, 0x002e, 0x01a0, 0x0070, 0x3e60, 0xac84,
+-      0x0007, 0x1178, 0xac82, 0xce00, 0x0260, 0x685c, 0xac02, 0x1248,
+-      0x2009, 0x0047, 0x080c, 0x960c, 0x7a1c, 0xd284, 0x1904, 0x68c9,
+-      0x0005, 0xa016, 0x080c, 0x1870, 0x0cb8, 0x0cd8, 0x781c, 0xd08c,
+-      0x0500, 0x0156, 0x0136, 0x0146, 0x20e1, 0x3000, 0x3d20, 0x3e28,
+-      0xa584, 0x0076, 0x1538, 0xa484, 0x7000, 0xa086, 0x1000, 0x11a8,
+-      0x080c, 0x6991, 0x01f8, 0x20e1, 0x3000, 0x7828, 0x7828, 0x080c,
+-      0x69ad, 0x014e, 0x013e, 0x015e, 0x2009, 0xc92f, 0x2104, 0xa005,
+-      0x1108, 0x0005, 0x080c, 0x7e94, 0x0ce0, 0xa484, 0x7000, 0x1548,
+-      0x080c, 0x6991, 0x01d8, 0x7000, 0xa084, 0xff00, 0xa086, 0x8100,
+-      0x0d10, 0x00a0, 0xd5a4, 0x0178, 0x0056, 0x0046, 0x080c, 0x1f2d,
+-      0x080c, 0x25fb, 0x2001, 0x0160, 0x2502, 0x2001, 0x0138, 0x2202,
+-      0x004e, 0x005e, 0x0048, 0x04a9, 0x6887, 0x0000, 0x080c, 0xc529,
+-      0x20e1, 0x3000, 0x7828, 0x7828, 0x00b9, 0x014e, 0x013e, 0x015e,
+-      0x0880, 0x0439, 0x1130, 0x7000, 0xa084, 0xff00, 0xa086, 0x8100,
+-      0x1d68, 0x080c, 0xc529, 0x20e1, 0x3000, 0x7828, 0x7828, 0x0056,
+-      0x080c, 0x6e1f, 0x005e, 0x0c40, 0x2001, 0xc60e, 0x2004, 0xd08c,
+-      0x0178, 0x2001, 0xc600, 0x2004, 0xa086, 0x0003, 0x1148, 0x0026,
+-      0x0036, 0x2011, 0x8048, 0x2518, 0x080c, 0x407d, 0x003e, 0x002e,
+-      0x0005, 0xa484, 0x01ff, 0x6886, 0xa005, 0x0160, 0xa080, 0x001f,
+-      0xa084, 0x03f8, 0x80ac, 0x20e1, 0x1000, 0x2ea0, 0x2099, 0x020a,
+-      0x53a5, 0x0005, 0x20a9, 0x000c, 0x20e1, 0x1000, 0x2ea0, 0x2099,
+-      0x020a, 0x53a5, 0xa085, 0x0001, 0x0ca0, 0x7000, 0xa084, 0xff00,
+-      0xa08c, 0xf000, 0x8007, 0xa196, 0x0000, 0x1118, 0x0804, 0x6c37,
+-      0x0005, 0xa196, 0x2000, 0x1148, 0x6900, 0xa18e, 0x0001, 0x1118,
+-      0x080c, 0x47cb, 0x0ca8, 0x0039, 0x0c98, 0xa196, 0x8000, 0x1d80,
+-      0x080c, 0x6ce3, 0x0c68, 0x00c6, 0x6a84, 0x82ff, 0x0904, 0x6b2c,
+-      0x7110, 0xa18c, 0xff00, 0x810f, 0xa196, 0x0001, 0x0120, 0xa196,
+-      0x0023, 0x1904, 0x6b2c, 0xa08e, 0x0023, 0x1570, 0x080c, 0x6d7e,
+-      0x0904, 0x6b2c, 0x7124, 0x610a, 0x7030, 0xa08e, 0x0200, 0x1150,
+-      0x7034, 0xa005, 0x1904, 0x6b2c, 0x2009, 0x0015, 0x080c, 0x960c,
+-      0x0804, 0x6b2c, 0xa08e, 0x0214, 0x0118, 0xa08e, 0x0210, 0x1130,
+-      0x2009, 0x0015, 0x080c, 0x960c, 0x0804, 0x6b2c, 0xa08e, 0x0100,
+-      0x1904, 0x6b2c, 0x7034, 0xa005, 0x1904, 0x6b2c, 0x2009, 0x0016,
+-      0x080c, 0x960c, 0x0804, 0x6b2c, 0xa08e, 0x0022, 0x1904, 0x6b2c,
+-      0x7030, 0xa08e, 0x0300, 0x1580, 0x68d4, 0xd0a4, 0x0528, 0xc0b5,
+-      0x68d6, 0x7100, 0xa18c, 0x00ff, 0x6972, 0x7004, 0x6876, 0x00f6,
+-      0x2079, 0x0100, 0x79e6, 0x78ea, 0x0006, 0xa084, 0x00ff, 0x0016,
+-      0x2008, 0x080c, 0x29f1, 0x7932, 0x7936, 0x001e, 0x000e, 0x00fe,
+-      0x080c, 0x29c7, 0x6952, 0x703c, 0x00e6, 0x2071, 0x0140, 0x7086,
+-      0x2071, 0xc600, 0x70a6, 0x00ee, 0x7034, 0xa005, 0x1904, 0x6b2c,
+-      0x2009, 0x0017, 0x0804, 0x6af2, 0xa08e, 0x0400, 0x1158, 0x7034,
+-      0xa005, 0x1904, 0x6b2c, 0x68d4, 0xc0a5, 0x68d6, 0x2009, 0x0030,
+-      0x0804, 0x6af2, 0xa08e, 0x0500, 0x1140, 0x7034, 0xa005, 0x1904,
+-      0x6b2c, 0x2009, 0x0018, 0x0804, 0x6af2, 0xa08e, 0x2010, 0x1120,
+-      0x2009, 0x0019, 0x0804, 0x6af2, 0xa08e, 0x2110, 0x1120, 0x2009,
+-      0x001a, 0x0804, 0x6af2, 0xa08e, 0x5200, 0x1140, 0x7034, 0xa005,
+-      0x1904, 0x6b2c, 0x2009, 0x001b, 0x0804, 0x6af2, 0xa08e, 0x5000,
+-      0x1140, 0x7034, 0xa005, 0x1904, 0x6b2c, 0x2009, 0x001c, 0x0804,
+-      0x6af2, 0xa08e, 0x1300, 0x1120, 0x2009, 0x0034, 0x0804, 0x6af2,
+-      0xa08e, 0x1200, 0x1140, 0x7034, 0xa005, 0x1904, 0x6b2c, 0x2009,
+-      0x0024, 0x0804, 0x6af2, 0xa08c, 0xff00, 0xa18e, 0x2400, 0x1120,
+-      0x2009, 0x002d, 0x0804, 0x6af2, 0xa08c, 0xff00, 0xa18e, 0x5300,
+-      0x1120, 0x2009, 0x002a, 0x0804, 0x6af2, 0xa08e, 0x0f00, 0x1120,
+-      0x2009, 0x0020, 0x0804, 0x6af2, 0xa08e, 0x5300, 0x1108, 0x00d8,
+-      0xa08e, 0x6104, 0x11c0, 0x2011, 0xcc8d, 0x8208, 0x2204, 0xa082,
+-      0x0004, 0x20a8, 0x95ac, 0x95ac, 0x2011, 0x8015, 0x211c, 0x8108,
+-      0x0046, 0x2124, 0x080c, 0x407d, 0x004e, 0x8108, 0x1f04, 0x6abc,
+-      0x2009, 0x0023, 0x0438, 0xa08e, 0x6000, 0x1118, 0x2009, 0x003f,
+-      0x0408, 0xa08e, 0x5400, 0x1158, 0x080c, 0x6e79, 0x1904, 0x6b2c,
+-      0x2009, 0x0046, 0x0016, 0x2001, 0xc8d3, 0x2064, 0x0498, 0xa08e,
+-      0x5500, 0x1140, 0x080c, 0x6eac, 0x2009, 0x0041, 0x0158, 0x2009,
+-      0x0042, 0x0040, 0xa08e, 0x7800, 0x1118, 0x2009, 0x0045, 0x0010,
+-      0x2009, 0x001d, 0x0016, 0x2011, 0xcc83, 0x2204, 0x8211, 0x220c,
+-      0x080c, 0x29c7, 0x1598, 0x080c, 0x52e1, 0x1580, 0x6612, 0x6516,
+-      0x86ff, 0x01e8, 0x001e, 0x0016, 0xa186, 0x0017, 0x1158, 0x6870,
+-      0xa606, 0x11a8, 0x6874, 0xa506, 0xa084, 0xff00, 0x1180, 0x6000,
+-      0xc0f5, 0x6002, 0xa186, 0x0046, 0x1150, 0x6870, 0xa606, 0x1138,
+-      0x6874, 0xa506, 0xa084, 0xff00, 0x1110, 0x001e, 0x0068, 0x00c6,
+-      0x080c, 0x9586, 0x0168, 0x001e, 0x611a, 0x601f, 0x0004, 0x7120,
+-      0x610a, 0x001e, 0x080c, 0x960c, 0x00ce, 0x0005, 0x001e, 0x0ce0,
+-      0x00ce, 0x0ce0, 0x00c6, 0x0046, 0x080c, 0x6b86, 0x1904, 0x6b83,
+-      0xa28e, 0x0033, 0x11e8, 0x080c, 0x6d7e, 0x0904, 0x6b83, 0x7124,
+-      0x610a, 0x7030, 0xa08e, 0x0200, 0x1140, 0x7034, 0xa005, 0x15d8,
+-      0x2009, 0x0015, 0x080c, 0x960c, 0x04b0, 0xa08e, 0x0100, 0x1598,
+-      0x7034, 0xa005, 0x1580, 0x2009, 0x0016, 0x080c, 0x960c, 0x0458,
+-      0xa28e, 0x0032, 0x1540, 0x7030, 0xa08e, 0x1400, 0x1520, 0x2009,
+-      0x0038, 0x0016, 0x2011, 0xcc83, 0x2204, 0x8211, 0x220c, 0x080c,
+-      0x29c7, 0x11c0, 0x080c, 0x52e1, 0x11a8, 0x6612, 0x6516, 0x00c6,
+-      0x080c, 0x9586, 0x0170, 0x001e, 0x611a, 0x080c, 0xb057, 0x601f,
+-      0x0004, 0x7120, 0x610a, 0x001e, 0x080c, 0x960c, 0x080c, 0x7e94,
+-      0x0010, 0x00ce, 0x001e, 0x004e, 0x00ce, 0x0005, 0x00f6, 0x00d6,
+-      0x0026, 0x0016, 0x0136, 0x0146, 0x0156, 0x3c00, 0x0006, 0x2079,
+-      0x0030, 0x2069, 0x0200, 0x080c, 0x1fec, 0x1590, 0x080c, 0x1e97,
+-      0x05e0, 0x04f1, 0x1130, 0x7908, 0xa18c, 0x1fff, 0xa182, 0x0011,
+-      0x1688, 0x20a9, 0x000c, 0x20e1, 0x0000, 0x2ea0, 0x2099, 0x020a,
+-      0x53a5, 0x20e1, 0x2000, 0x2001, 0x020a, 0x2004, 0x7a0c, 0x7808,
+-      0xa080, 0x0007, 0xa084, 0x1ff8, 0x0419, 0x1120, 0xa08a, 0x0140,
+-      0x1a0c, 0x1519, 0x80ac, 0x20e1, 0x6000, 0x2099, 0x020a, 0x53a5,
+-      0x20e1, 0x7000, 0x6828, 0x6828, 0x7803, 0x0004, 0xa294, 0x0070,
+-      0x000e, 0x20e0, 0x015e, 0x014e, 0x013e, 0x001e, 0x002e, 0x00de,
+-      0x00fe, 0x0005, 0xa016, 0x080c, 0x1870, 0xa085, 0x0001, 0x0c80,
+-      0x0006, 0x2001, 0x0111, 0x2004, 0xa084, 0x0003, 0x000e, 0x0005,
+-      0x0046, 0x00e6, 0x00d6, 0x2028, 0x2130, 0xa696, 0x00ff, 0x1198,
+-      0xa596, 0xfffd, 0x1120, 0x2009, 0x007f, 0x0804, 0x6c32, 0xa596,
+-      0xfffe, 0x1118, 0x2009, 0x007e, 0x04e8, 0xa596, 0xfffc, 0x1118,
+-      0x2009, 0x0080, 0x04b8, 0x2011, 0x0000, 0x2019, 0xc635, 0x231c,
+-      0xd3ac, 0x0138, 0x2021, 0x0000, 0x20a9, 0x00ff, 0x2071, 0xc77b,
+-      0x0030, 0x2021, 0x0081, 0x20a9, 0x007e, 0x2071, 0xc7fc, 0x2e1c,
+-      0x83ff, 0x1128, 0x82ff, 0x1198, 0x2410, 0xc2fd, 0x0080, 0x2368,
+-      0x6f10, 0x0006, 0x2100, 0xa706, 0x000e, 0x6b14, 0x1120, 0xa346,
+-      0x1110, 0x2408, 0x0078, 0x87ff, 0x1110, 0x83ff, 0x0d58, 0x8420,
+-      0x8e70, 0x1f04, 0x6c0f, 0x82ff, 0x1118, 0xa085, 0x0001, 0x0018,
+-      0xc2fc, 0x2208, 0xa006, 0x00de, 0x00ee, 0x004e, 0x0005, 0xa084,
+-      0x0007, 0x000a, 0x0005, 0x6c43, 0x6c43, 0x6c43, 0x6e0c, 0x6c43,
+-      0x6c44, 0x6c59, 0x6cce, 0x0005, 0x7110, 0xd1bc, 0x0188, 0x7120,
+-      0x2160, 0xac8c, 0x0007, 0x1160, 0xac8a, 0xce00, 0x0248, 0x685c,
+-      0xac02, 0x1230, 0x7124, 0x610a, 0x2009, 0x0046, 0x080c, 0x960c,
+-      0x0005, 0x00c6, 0xa484, 0x01ff, 0x0904, 0x6cac, 0x7110, 0xd1bc,
+-      0x1904, 0x6cac, 0x2011, 0xcc83, 0x2204, 0x8211, 0x220c, 0x080c,
+-      0x29c7, 0x1904, 0x6cac, 0x080c, 0x52e1, 0x15f0, 0x6612, 0x6516,
+-      0x6000, 0xd0ec, 0x15c8, 0x6204, 0xa294, 0xff00, 0x8217, 0xa286,
+-      0x0006, 0x0148, 0x6204, 0xa294, 0x00ff, 0xa286, 0x0006, 0x11a0,
+-      0xa295, 0x0600, 0x6206, 0x00c6, 0x080c, 0x9586, 0x001e, 0x0530,
+-      0x611a, 0x601f, 0x0006, 0x7120, 0x610a, 0x7130, 0x6152, 0x2009,
+-      0x0044, 0x080c, 0x960c, 0x00c0, 0x00c6, 0x080c, 0x9586, 0x001e,
+-      0x0198, 0x611a, 0x601f, 0x0004, 0x7120, 0x610a, 0xa286, 0x0004,
+-      0x1118, 0x6007, 0x0005, 0x0010, 0x6007, 0x0001, 0x6003, 0x0001,
+-      0x080c, 0x79df, 0x080c, 0x7e94, 0x00ce, 0x0005, 0x2001, 0xc60d,
+-      0x2004, 0xd0ec, 0x0120, 0x2011, 0x8049, 0x080c, 0x407d, 0x00c6,
+-      0x080c, 0xaf06, 0x001e, 0x0d80, 0x611a, 0x601f, 0x0006, 0x7120,
+-      0x610a, 0x7130, 0x6152, 0x6013, 0x0300, 0x6003, 0x0001, 0x6007,
+-      0x0041, 0x080c, 0x7999, 0x080c, 0x7e94, 0x08f0, 0x7110, 0xd1bc,
+-      0x0188, 0x7020, 0x2060, 0xac84, 0x0007, 0x1160, 0xac82, 0xce00,
+-      0x0248, 0x685c, 0xac02, 0x1230, 0x7124, 0x610a, 0x2009, 0x0045,
+-      0x080c, 0x960c, 0x0005, 0x0006, 0x080c, 0x2f69, 0x000e, 0x1168,
+-      0x7110, 0xa18c, 0xff00, 0x810f, 0xa18e, 0x0000, 0x1130, 0xa084,
+-      0x000f, 0xa08a, 0x0006, 0x1208, 0x000b, 0x0005, 0x6cfc, 0x6cfd,
+-      0x6cfc, 0x6cfc, 0x6d66, 0x6d72, 0x0005, 0x7110, 0xd1bc, 0x0120,
+-      0x702c, 0xd084, 0x0904, 0x6d65, 0x700c, 0x7108, 0x080c, 0x29c7,
+-      0x1904, 0x6d65, 0x080c, 0x52e1, 0x1904, 0x6d65, 0x6612, 0x6516,
+-      0x6204, 0x7110, 0xd1bc, 0x01f8, 0xa28c, 0x00ff, 0xa186, 0x0004,
+-      0x0118, 0xa186, 0x0006, 0x15c8, 0x00c6, 0x080c, 0x6d7e, 0x00ce,
+-      0x0904, 0x6d65, 0x00c6, 0x080c, 0x9586, 0x001e, 0x05f0, 0x611a,
+-      0x080c, 0xb057, 0x601f, 0x0002, 0x7120, 0x610a, 0x2009, 0x0088,
+-      0x080c, 0x960c, 0x0490, 0xa28c, 0x00ff, 0xa186, 0x0006, 0x0160,
+-      0xa186, 0x0004, 0x0148, 0xa294, 0xff00, 0x8217, 0xa286, 0x0004,
+-      0x0118, 0xa286, 0x0006, 0x1188, 0x00c6, 0x080c, 0x9586, 0x001e,
+-      0x01e0, 0x611a, 0x080c, 0xb057, 0x601f, 0x0005, 0x7120, 0x610a,
+-      0x2009, 0x0088, 0x080c, 0x960c, 0x0080, 0x00c6, 0x080c, 0x9586,
+-      0x001e, 0x0158, 0x611a, 0x080c, 0xb057, 0x601f, 0x0004, 0x7120,
+-      0x610a, 0x2009, 0x0001, 0x080c, 0x960c, 0x0005, 0x7110, 0xd1bc,
+-      0x0140, 0x00a1, 0x0130, 0x7124, 0x610a, 0x2009, 0x0089, 0x080c,
+-      0x960c, 0x0005, 0x7110, 0xd1bc, 0x0140, 0x0041, 0x0130, 0x7124,
+-      0x610a, 0x2009, 0x008a, 0x080c, 0x960c, 0x0005, 0x7020, 0x2060,
+-      0xac84, 0x0007, 0x1158, 0xac82, 0xce00, 0x0240, 0x2001, 0xc617,
+-      0x2004, 0xac02, 0x1218, 0xa085, 0x0001, 0x0005, 0xa006, 0x0ce8,
+-      0x00c6, 0x00d6, 0x00e6, 0x080c, 0x2f69, 0x1904, 0x6e07, 0x2001,
+-      0xc756, 0x2004, 0xa086, 0x0000, 0x0904, 0x6e07, 0x20e1, 0x0000,
+-      0x3d08, 0xa18c, 0x00ff, 0xa18e, 0x00ff, 0x1500, 0x3e00, 0xa086,
+-      0xffff, 0x11e0, 0x2001, 0xc8d3, 0x2064, 0x2009, 0x00ff, 0x0006,
+-      0x0016, 0x2001, 0xc61d, 0x2004, 0x20e1, 0x0001, 0x3e08, 0xa106,
+-      0x1130, 0x2001, 0xc61c, 0x2004, 0x3d08, 0xa106, 0x0118, 0x001e,
+-      0x000e, 0x00a8, 0x001e, 0x000e, 0x0804, 0x6e07, 0x20e1, 0x0001,
+-      0x3d08, 0x3e00, 0x0156, 0x080c, 0x29c7, 0x015e, 0x15c0, 0x080c,
+-      0x533d, 0x0128, 0x2001, 0xc8d3, 0x2064, 0x2009, 0x00ff, 0x2138,
+-      0x873f, 0x2c00, 0x2070, 0x20e1, 0x0003, 0x3d18, 0x831f, 0xa39c,
+-      0x00ff, 0x20e1, 0x2000, 0x3d00, 0xa084, 0x7000, 0xa086, 0x1000,
+-      0x0120, 0x080c, 0x75ea, 0x11d8, 0x0080, 0x080c, 0x9586, 0x01b8,
+-      0x20e1, 0x0002, 0x3e08, 0xd19c, 0x0118, 0x6124, 0xc19d, 0x6126,
+-      0x2e00, 0x601a, 0x620a, 0x601f, 0x0009, 0x2009, 0x0101, 0x080c,
+-      0x960c, 0xa085, 0x0001, 0x00ee, 0x00de, 0x00ce, 0x0005, 0xa006,
+-      0x00ee, 0x00de, 0x00ce, 0x0005, 0x7110, 0xd1bc, 0x1178, 0x7024,
+-      0x2060, 0xac84, 0x0007, 0x1150, 0xac82, 0xce00, 0x0238, 0x685c,
+-      0xac02, 0x1220, 0x2009, 0x0051, 0x080c, 0x960c, 0x0005, 0x2031,
+-      0x0105, 0x0069, 0x0005, 0x2031, 0x0206, 0x0049, 0x0005, 0x2031,
+-      0x0207, 0x0029, 0x0005, 0x2031, 0x0213, 0x0009, 0x0005, 0x00c6,
+-      0x00d6, 0x00f6, 0x7000, 0xa084, 0xf000, 0xa086, 0xc000, 0x05b0,
+-      0x080c, 0x9586, 0x0598, 0x0066, 0x00c6, 0x0046, 0x2011, 0xcc83,
+-      0x2204, 0x8211, 0x220c, 0x080c, 0x29c7, 0x1580, 0x080c, 0x52e1,
+-      0x1568, 0x6612, 0x6516, 0x2c00, 0x004e, 0x00ce, 0x601a, 0x080c,
+-      0xb057, 0x080c, 0x1602, 0x01f0, 0x2d00, 0x6056, 0x6803, 0x0000,
+-      0x6837, 0x0000, 0x6c3a, 0xadf8, 0x000f, 0x20a9, 0x000e, 0x2fa0,
+-      0x2e98, 0x53a3, 0x006e, 0x6612, 0x6007, 0x003e, 0x601f, 0x0001,
+-      0x6003, 0x0001, 0x080c, 0x79df, 0x080c, 0x7e94, 0x00fe, 0x00de,
+-      0x00ce, 0x0005, 0x080c, 0x95dc, 0x006e, 0x0cc0, 0x004e, 0x00ce,
+-      0x0cc8, 0x0156, 0x0046, 0x2e00, 0xa0a0, 0x000e, 0x2404, 0x2020,
+-      0x8427, 0xa4a4, 0x0007, 0xd484, 0x0148, 0x20a9, 0x0003, 0x2019,
+-      0xc606, 0x2011, 0xcc9b, 0x080c, 0xa0fc, 0x11d8, 0xd48c, 0x0148,
+-      0x20a9, 0x0003, 0x2019, 0xc602, 0x2011, 0xcc9f, 0x080c, 0xa0fc,
+-      0x1180, 0xd494, 0x0170, 0x080c, 0x7694, 0x0148, 0x20a9, 0x0008,
+-      0x2019, 0xc69a, 0x2011, 0xccaa, 0x080c, 0xa111, 0x0010, 0xa085,
+-      0x0001, 0x004e, 0x015e, 0x0005, 0x0156, 0x0046, 0x2e00, 0xa0a0,
+-      0x000e, 0x2404, 0x2020, 0x8427, 0xa4a4, 0x0007, 0xd484, 0x0148,
+-      0x20a9, 0x0003, 0x2019, 0xc606, 0x2011, 0xcc93, 0x080c, 0xa0fc,
+-      0x11d8, 0xd48c, 0x0148, 0x20a9, 0x0003, 0x2019, 0xc602, 0x2011,
+-      0xcc97, 0x080c, 0xa0fc, 0x1180, 0xd494, 0x0170, 0x080c, 0x7694,
+-      0x0148, 0x20a9, 0x0008, 0x2019, 0xc69a, 0x2011, 0xcca2, 0x080c,
+-      0xa111, 0x0010, 0xa085, 0x0001, 0x004e, 0x015e, 0x0005, 0x2071,
+-      0xc93a, 0x7003, 0x0003, 0x700f, 0x0361, 0xa006, 0x701a, 0x7076,
+-      0x7012, 0x7017, 0xce00, 0x7007, 0x0000, 0x7026, 0x702b, 0x8c0c,
+-      0x7032, 0x7037, 0x8c6c, 0x703b, 0xffff, 0x703f, 0xffff, 0x7042,
+-      0x7047, 0x4787, 0x704a, 0x705b, 0x703f, 0x2001, 0xc8e8, 0x2003,
+-      0x0003, 0x2001, 0xc8ea, 0x2003, 0x0100, 0x3a00, 0xa084, 0x0005,
+-      0x706e, 0x0005, 0x2071, 0xc93a, 0x1d04, 0x6f9c, 0x2091, 0x6000,
+-      0x700c, 0x8001, 0x700e, 0x1518, 0x700f, 0x0361, 0x7007, 0x0001,
+-      0x0126, 0x2091, 0x8000, 0x7040, 0xa00d, 0x0128, 0x8109, 0x7142,
+-      0x1110, 0x7044, 0x080f, 0x00c6, 0x2061, 0xc600, 0x6034, 0x00ce,
+-      0xd0cc, 0x0180, 0x3a00, 0xa084, 0x0005, 0x726c, 0xa216, 0x0150,
+-      0x706e, 0x2011, 0x8043, 0x2018, 0x080c, 0x407d, 0x0018, 0x0126,
+-      0x2091, 0x8000, 0x7024, 0xa00d, 0x0188, 0x7020, 0x8001, 0x7022,
+-      0x1168, 0x7023, 0x0009, 0x8109, 0x7126, 0xa186, 0x03e8, 0x1110,
+-      0x7028, 0x080f, 0x81ff, 0x1110, 0x7028, 0x080f, 0x7030, 0xa00d,
+-      0x0180, 0x702c, 0x8001, 0x702e, 0x1160, 0x702f, 0x0009, 0x8109,
+-      0x7132, 0x0128, 0xa184, 0x007f, 0x090c, 0x8cc8, 0x0010, 0x7034,
+-      0x080f, 0x7038, 0xa005, 0x0118, 0x0310, 0x8001, 0x703a, 0x703c,
+-      0xa005, 0x0118, 0x0310, 0x8001, 0x703e, 0x704c, 0xa00d, 0x0168,
+-      0x7048, 0x8001, 0x704a, 0x1148, 0x704b, 0x0009, 0x8109, 0x714e,
+-      0x1120, 0x7150, 0x714e, 0x7058, 0x080f, 0x7018, 0xa00d, 0x01d8,
+-      0x0016, 0x7074, 0xa00d, 0x0158, 0x7070, 0x8001, 0x7072, 0x1138,
+-      0x7073, 0x0009, 0x8109, 0x7176, 0x1110, 0x7078, 0x080f, 0x001e,
+-      0x7008, 0x8001, 0x700a, 0x1138, 0x700b, 0x0009, 0x8109, 0x711a,
+-      0x1110, 0x701c, 0x080f, 0x012e, 0x7004, 0x0002, 0x6fc2, 0x6fc3,
+-      0x6fdb, 0x00e6, 0x2071, 0xc93a, 0x7018, 0xa005, 0x1120, 0x711a,
+-      0x721e, 0x700b, 0x0009, 0x00ee, 0x0005, 0x00e6, 0x0006, 0x2071,
+-      0xc93a, 0x701c, 0xa206, 0x1110, 0x701a, 0x701e, 0x000e, 0x00ee,
+-      0x0005, 0x00e6, 0x2071, 0xc93a, 0x6088, 0xa102, 0x0208, 0x618a,
+-      0x00ee, 0x0005, 0x0005, 0x7110, 0x080c, 0x533d, 0x1158, 0x6088,
+-      0x8001, 0x0240, 0x608a, 0x1130, 0x0126, 0x2091, 0x8000, 0x080c,
+-      0x7e94, 0x012e, 0x8108, 0xa182, 0x00ff, 0x0218, 0xa00e, 0x7007,
+-      0x0002, 0x7112, 0x0005, 0x7014, 0x2060, 0x0126, 0x2091, 0x8000,
+-      0x603c, 0xa005, 0x0128, 0x8001, 0x603e, 0x1110, 0x080c, 0xaf45,
+-      0x6014, 0xa005, 0x0518, 0x8001, 0x6016, 0x1500, 0x611c, 0xa186,
+-      0x0003, 0x0130, 0xa186, 0x0006, 0x0118, 0xa186, 0x0009, 0x11a0,
+-      0x6010, 0x2068, 0x6854, 0xa08a, 0x199a, 0x0270, 0xa082, 0x1999,
+-      0x6856, 0xa08a, 0x199a, 0x0210, 0x2001, 0x1999, 0x8003, 0x800b,
+-      0x810b, 0xa108, 0x6116, 0x0010, 0x080c, 0xaa15, 0x012e, 0xac88,
+-      0x0018, 0x7116, 0x2001, 0xfe00, 0xa102, 0x0220, 0x7017, 0xce00,
+-      0x7007, 0x0000, 0x0005, 0x00e6, 0x2071, 0xc93a, 0x7027, 0x07d0,
+-      0x7023, 0x0009, 0x00ee, 0x0005, 0x2001, 0xc943, 0x2003, 0x0000,
+-      0x0005, 0x00e6, 0x2071, 0xc93a, 0x7132, 0x702f, 0x0009, 0x00ee,
+-      0x0005, 0x2011, 0xc946, 0x2013, 0x0000, 0x0005, 0x00e6, 0x2071,
+-      0xc93a, 0x711a, 0x721e, 0x700b, 0x0009, 0x00ee, 0x0005, 0x00c6,
+-      0x0026, 0x7054, 0x8000, 0x7056, 0x2061, 0xc8e8, 0x6008, 0xa086,
+-      0x0000, 0x0158, 0x7068, 0x6032, 0x7064, 0x602e, 0x7060, 0x602a,
+-      0x705c, 0x6026, 0x2c10, 0x080c, 0x164d, 0x002e, 0x00ce, 0x0005,
+-      0x0006, 0x0016, 0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x080c, 0x6f0a,
+-      0x00fe, 0x00ee, 0x00de, 0x00ce, 0x001e, 0x000e, 0x0005, 0x00e6,
+-      0x2071, 0xc93a, 0x7176, 0x727a, 0x7073, 0x0009, 0x00ee, 0x0005,
+-      0x00e6, 0x0006, 0x2071, 0xc93a, 0x7078, 0xa206, 0x1110, 0x7076,
+-      0x707a, 0x000e, 0x00ee, 0x0005, 0x00c6, 0x2061, 0xc9bc, 0x00ce,
+-      0x0005, 0xa184, 0x000f, 0x8003, 0x8003, 0x8003, 0xa080, 0xc9bc,
+-      0x2060, 0x0005, 0x6854, 0xa08a, 0x199a, 0x0210, 0x2001, 0x1999,
+-      0xa005, 0x1150, 0x00c6, 0x2061, 0xc9bc, 0x6014, 0x00ce, 0xa005,
+-      0x1138, 0x2001, 0x001e, 0x0020, 0xa08e, 0xffff, 0x1108, 0xa006,
+-      0x8003, 0x800b, 0x810b, 0xa108, 0x6116, 0x684c, 0xa08c, 0x00c0,
+-      0xa18e, 0x00c0, 0x05e8, 0xd0b4, 0x1138, 0xd0bc, 0x1550, 0x2009,
+-      0x0006, 0x080c, 0x7105, 0x0005, 0xd0fc, 0x0138, 0xa084, 0x0003,
+-      0x0120, 0xa086, 0x0003, 0x1904, 0x70ff, 0x6020, 0xd0d4, 0x0130,
+-      0xc0d4, 0x6022, 0x6860, 0x602a, 0x685c, 0x602e, 0x2009, 0xc674,
+-      0x2104, 0xd084, 0x0138, 0x87ff, 0x1120, 0x2009, 0x0042, 0x080c,
+-      0x960c, 0x0005, 0x87ff, 0x1120, 0x2009, 0x0043, 0x080c, 0x960c,
+-      0x0005, 0xd0fc, 0x0130, 0xa084, 0x0003, 0x0118, 0xa086, 0x0003,
+-      0x11f0, 0x87ff, 0x1120, 0x2009, 0x0042, 0x080c, 0x960c, 0x0005,
+-      0xd0fc, 0x0160, 0xa084, 0x0003, 0xa08e, 0x0002, 0x0148, 0x87ff,
+-      0x1120, 0x2009, 0x0041, 0x080c, 0x960c, 0x0005, 0x0061, 0x0ce8,
+-      0x87ff, 0x1dd8, 0x2009, 0x0043, 0x080c, 0x960c, 0x0cb0, 0x2009,
+-      0x0004, 0x0019, 0x0005, 0x2009, 0x0001, 0x00d6, 0x6010, 0xa0ec,
+-      0xf000, 0x0510, 0x2068, 0x6952, 0x6800, 0x6012, 0xa186, 0x0001,
+-      0x1188, 0x694c, 0xa18c, 0x8100, 0xa18e, 0x8100, 0x1158, 0x00c6,
+-      0x2061, 0xc9bc, 0x6200, 0xd28c, 0x1120, 0x6204, 0x8210, 0x0208,
+-      0x6206, 0x00ce, 0x080c, 0x580a, 0x6010, 0xa06d, 0x0076, 0x2039,
+-      0x0000, 0x190c, 0x708a, 0x007e, 0x00de, 0x0005, 0x0156, 0x00c6,
+-      0x2061, 0xc9bc, 0x6000, 0x81ff, 0x0110, 0xa205, 0x0008, 0xa204,
+-      0x6002, 0x00ce, 0x015e, 0x0005, 0x6800, 0xd08c, 0x1138, 0x6808,
+-      0xa005, 0x0120, 0x8001, 0x680a, 0xa085, 0x0001, 0x0005, 0x2071,
+-      0xc755, 0x7003, 0x0006, 0x7007, 0x0000, 0x700f, 0x0000, 0x7013,
+-      0x0001, 0x702f, 0x0006, 0x7033, 0x0001, 0x7063, 0x0000, 0x0005,
+-      0x00e6, 0x2071, 0xc755, 0x6a2c, 0x721e, 0x6b30, 0x7322, 0x6834,
+-      0x7026, 0x705a, 0x6838, 0x702a, 0x705e, 0x6824, 0x7016, 0x683c,
+-      0x701a, 0x2009, 0x0070, 0x200a, 0xa005, 0x0150, 0x2009, 0x0000,
+-      0xa188, 0x000c, 0x8001, 0x1de0, 0x2100, 0xa210, 0x1208, 0x8318,
+-      0x7252, 0x7356, 0x7010, 0xc084, 0x7012, 0x7007, 0x0001, 0x700f,
+-      0x0000, 0xa006, 0x00ee, 0x0005, 0x2b78, 0x2071, 0xc755, 0x7004,
+-      0x004b, 0x700c, 0x0002, 0x718e, 0x7187, 0x7187, 0x0005, 0x7198,
+-      0x71e9, 0x71ea, 0x71eb, 0x71ec, 0x71ff, 0x7200, 0x700c, 0x0cba,
+-      0x2f00, 0xa080, 0x0070, 0x2004, 0x2f08, 0xa188, 0x0070, 0x210c,
+-      0xa106, 0x0150, 0x2f00, 0xa080, 0x0070, 0x2004, 0x2f08, 0xa188,
+-      0x0070, 0x210c, 0xa106, 0x15e0, 0x7018, 0xa10a, 0x1118, 0x080c,
+-      0x722d, 0x04b0, 0x1210, 0x7114, 0xa10a, 0xa192, 0x000a, 0x0210,
+-      0x2009, 0x000a, 0x00d6, 0x0016, 0x2001, 0xc682, 0xa080, 0x0011,
+-      0x2014, 0x2001, 0xc76f, 0xa080, 0x0005, 0x2004, 0xa100, 0xa202,
+-      0x001e, 0x00de, 0x0e20, 0x080c, 0x727c, 0x2200, 0xa102, 0x0208,
+-      0x2208, 0x713a, 0x080c, 0x7377, 0x2100, 0x7042, 0x2001, 0x0002,
+-      0x7037, 0x0000, 0x0126, 0x0006, 0x2091, 0x8000, 0x2009, 0xc959,
+-      0x2104, 0xc095, 0x200a, 0x000e, 0x700e, 0x012e, 0x080c, 0x1669,
+-      0x0005, 0x0005, 0x0005, 0x0005, 0x700c, 0x0002, 0x71f1, 0x71f4,
+-      0x71fe, 0x080c, 0x7196, 0x0005, 0x0126, 0x8001, 0x700e, 0x7138,
+-      0x0041, 0x2091, 0x8000, 0x080c, 0x7196, 0x012e, 0x0005, 0x0005,
+-      0x0005, 0x7018, 0xa100, 0x7214, 0xa21a, 0x1130, 0x701c, 0x7052,
+-      0x7020, 0x7056, 0xa006, 0x0068, 0x0006, 0x080c, 0x7377, 0x2100,
+-      0x7250, 0xa210, 0x7252, 0x1220, 0x7054, 0xa081, 0x0000, 0x7056,
+-      0x000e, 0x2f08, 0xa188, 0x0070, 0x200a, 0x701a, 0x0005, 0x00e6,
+-      0x2071, 0xc755, 0x700c, 0x0002, 0x7227, 0x7227, 0x7229, 0x00ee,
+-      0x0005, 0x700f, 0x0001, 0x00ee, 0x0005, 0x0126, 0x2091, 0x8000,
+-      0x00d6, 0x00e6, 0x2071, 0xc76f, 0x702c, 0xa005, 0x0178, 0x2068,
+-      0x6964, 0x080c, 0x727c, 0x2100, 0x2208, 0xa102, 0x0238, 0x6800,
+-      0x702e, 0x080c, 0x75b9, 0x080c, 0x1629, 0x0c70, 0x00ee, 0x00de,
+-      0x012e, 0x0005, 0x00e6, 0x2071, 0xc76f, 0x702c, 0x6802, 0x2d00,
+-      0x702e, 0x6858, 0x7120, 0xa102, 0x0a0c, 0x1519, 0x7022, 0x685b,
+-      0x0000, 0x00ee, 0x0005, 0x00d6, 0x00e6, 0x2071, 0xc76f, 0xa006,
+-      0x7006, 0x700e, 0x701a, 0x701e, 0x7022, 0x7016, 0x702a, 0x7026,
+-      0x702f, 0x0000, 0x080c, 0x742b, 0x0168, 0x080c, 0x745d, 0x2d00,
+-      0x7002, 0x700a, 0x701a, 0x7013, 0x0001, 0x701f, 0x0007, 0x00ee,
+-      0x00de, 0x0005, 0xa00e, 0x0cd8, 0x00e6, 0x00d6, 0x00c6, 0x2071,
+-      0xc76f, 0x721c, 0x2100, 0xa202, 0x1618, 0x080c, 0x745d, 0x090c,
+-      0x1519, 0x7018, 0xa005, 0x1160, 0x2d00, 0x7002, 0x700a, 0x701a,
+-      0xa006, 0x7006, 0x700e, 0x6806, 0x6802, 0x7012, 0x701e, 0x0038,
+-      0x2060, 0x6806, 0x2d00, 0x6002, 0x701a, 0x6803, 0x0000, 0x7010,
+-      0x8000, 0x7012, 0x701c, 0xa080, 0x0007, 0x701e, 0x721c, 0x08d0,
+-      0x721c, 0x00ce, 0x00de, 0x00ee, 0x0005, 0x0156, 0x0136, 0x0146,
+-      0x00e6, 0x0126, 0x2091, 0x8000, 0x2071, 0xc76f, 0x7300, 0xa398,
+-      0x0003, 0x7104, 0x080c, 0x7377, 0x810c, 0x2100, 0xa318, 0x8003,
+-      0x2228, 0x2021, 0x0054, 0xa402, 0xa532, 0x0208, 0x2028, 0x2500,
+-      0x8004, 0x20a8, 0x23a0, 0xe000, 0xe000, 0xe000, 0x53a5, 0x2508,
+-      0x080c, 0x7380, 0x2130, 0x7014, 0xa600, 0x7016, 0x2600, 0x711c,
+-      0xa102, 0x701e, 0x7004, 0xa600, 0x2008, 0xa082, 0x0007, 0x1180,
+-      0x7000, 0x2004, 0xa005, 0x1140, 0x2009, 0x0001, 0x0026, 0x080c,
+-      0x727c, 0x002e, 0x7000, 0x2004, 0x7002, 0x7007, 0x0000, 0x0008,
+-      0x7106, 0x2500, 0xa212, 0x1910, 0x012e, 0x00ee, 0x014e, 0x013e,
+-      0x015e, 0x0005, 0x0016, 0x0026, 0x00e6, 0x00d6, 0x080c, 0x7340,
+-      0x15e0, 0x2170, 0x2805, 0xac68, 0x2900, 0x0002, 0x7316, 0x7316,
+-      0x731a, 0x7316, 0x731a, 0x7316, 0x7316, 0x7316, 0x7316, 0x7316,
+-      0x7323, 0x7316, 0x7323, 0x7316, 0x7316, 0x7316, 0x080c, 0x1519,
+-      0xa005, 0x00f0, 0x7000, 0x6802, 0x7004, 0x6806, 0x7010, 0x680a,
+-      0x680f, 0x0000, 0x0060, 0x7010, 0x6812, 0x6817, 0x0000, 0x7000,
+-      0x6802, 0x7004, 0x6806, 0x7008, 0x680a, 0x700c, 0x680e, 0x00de,
+-      0x685c, 0x8000, 0x685e, 0x6858, 0x8001, 0x685a, 0x00d6, 0xa006,
+-      0x00de, 0x00ee, 0x002e, 0x001e, 0x0005, 0xa085, 0x0001, 0x0cc0,
+-      0x00e6, 0x0036, 0x2071, 0xc76f, 0x7014, 0xa005, 0x0568, 0x8001,
+-      0x7016, 0x7020, 0x8001, 0x7022, 0x7008, 0xa080, 0x0003, 0x710c,
+-      0x2110, 0x0429, 0x810c, 0xa118, 0x8210, 0xa282, 0x0007, 0x11b0,
+-      0x7008, 0x2004, 0xa005, 0x0178, 0x00d6, 0x0006, 0x7008, 0x2068,
+-      0x080c, 0x746c, 0x000e, 0x2068, 0x6807, 0x0000, 0x700a, 0x00de,
+-      0x7010, 0x8001, 0x7012, 0x700f, 0x0000, 0x0008, 0x720e, 0x2308,
+-      0xa006, 0x003e, 0x00ee, 0x0005, 0xa085, 0x0001, 0x0cd0, 0x0006,
+-      0x810b, 0x810b, 0x2100, 0x810b, 0xa100, 0x2008, 0x000e, 0x0005,
+-      0x0006, 0x0026, 0x2100, 0xa005, 0x0160, 0xa092, 0x000c, 0x0248,
+-      0x2009, 0x0000, 0x8108, 0xa082, 0x000c, 0x1de0, 0x002e, 0x000e,
+-      0x0005, 0x2009, 0x0000, 0x0cd0, 0x2d00, 0xa0b8, 0x0008, 0x690c,
+-      0x6810, 0x2019, 0x0001, 0x2031, 0x73c2, 0xa112, 0x0220, 0x0118,
+-      0x8318, 0x2208, 0x0cd0, 0x6808, 0xa005, 0x0108, 0x8318, 0x233a,
+-      0x6804, 0xd084, 0x2300, 0x2021, 0x0001, 0x1150, 0xa082, 0x0003,
+-      0x0967, 0x0a67, 0x8420, 0xa082, 0x0007, 0x0967, 0x0a67, 0x0cd0,
+-      0xa082, 0x0002, 0x0967, 0x0a67, 0x8420, 0xa082, 0x0005, 0x0967,
+-      0x0a67, 0x0cd0, 0x6c1a, 0x2d00, 0xa0b8, 0x0007, 0x00e6, 0x2071,
+-      0xc600, 0x7128, 0x6810, 0x2019, 0x0001, 0xa10a, 0x0118, 0x0210,
+-      0x8318, 0x0cd8, 0x2031, 0x73d5, 0x0870, 0x6c16, 0x00ee, 0x0005,
+-      0x00e6, 0x00c6, 0x0126, 0x2091, 0x8000, 0x2e00, 0x2060, 0x2071,
+-      0xc76f, 0x2009, 0x0001, 0x0026, 0x080c, 0x727c, 0x002e, 0x7300,
+-      0xa398, 0x0003, 0x7104, 0x080c, 0x7377, 0x810c, 0x2100, 0xa318,
+-      0x6834, 0xa084, 0x00ff, 0xa086, 0x0024, 0x00d6, 0x2368, 0x1138,
+-      0x6000, 0x6802, 0x6004, 0x6806, 0x6008, 0x6812, 0x0050, 0x6000,
+-      0x6802, 0x6004, 0x6806, 0x6008, 0x680a, 0x600c, 0x680e, 0x6010,
+-      0x6812, 0x00de, 0x7014, 0x8000, 0x7016, 0x711c, 0x8109, 0x711e,
+-      0x7004, 0x8000, 0x2008, 0xa082, 0x0007, 0x1180, 0x7000, 0x2004,
+-      0xa005, 0x1140, 0x2009, 0x0001, 0x0026, 0x080c, 0x727c, 0x002e,
+-      0x7000, 0x2004, 0x7002, 0x7007, 0x0000, 0x0008, 0x7106, 0x012e,
+-      0x00ce, 0x00ee, 0x0005, 0x00d6, 0x0046, 0x0126, 0x2091, 0x8000,
+-      0x2001, 0xc682, 0xa080, 0x0011, 0x2004, 0x8003, 0x2020, 0x080c,
+-      0x15e5, 0x01d0, 0x2d00, 0x7026, 0x6803, 0x0000, 0x6807, 0x0000,
+-      0x080c, 0x15e5, 0x0188, 0x7024, 0x6802, 0x6807, 0x0000, 0x2d00,
+-      0x7026, 0xa4a2, 0x0007, 0x0110, 0x0208, 0x0c90, 0xa085, 0x0001,
+-      0x012e, 0x004e, 0x00de, 0x0005, 0x7024, 0xa005, 0x0dc8, 0x2068,
+-      0x2024, 0x080c, 0x1619, 0x2400, 0x0cc0, 0x0126, 0x2091, 0x8000,
+-      0x7024, 0x2068, 0xa005, 0x0130, 0x2004, 0x7026, 0x6803, 0x0000,
+-      0x6807, 0x0000, 0x012e, 0x0005, 0x0126, 0x2091, 0x8000, 0x7024,
+-      0x6802, 0x2d00, 0x7026, 0x012e, 0x0005, 0x00d6, 0x2001, 0xc778,
+-      0x2004, 0xa005, 0x0138, 0x2068, 0x6800, 0x0006, 0x080c, 0x1619,
+-      0x000e, 0x0cb8, 0x00de, 0x0005, 0x00d6, 0x00e6, 0x2071, 0xc76f,
+-      0x7008, 0xa005, 0x0138, 0x2068, 0x6800, 0x0006, 0x080c, 0x1619,
+-      0x000e, 0x0cb8, 0xa006, 0x7002, 0x700a, 0x7006, 0x700e, 0x701a,
+-      0x701e, 0x7022, 0x702a, 0x7026, 0x702e, 0x00ee, 0x00de, 0x0005,
+-      0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0086, 0x0046, 0x0056, 0x0026,
+-      0x2031, 0x0000, 0x2001, 0xc756, 0x2004, 0xa005, 0x0904, 0x7532,
+-      0x2071, 0xc682, 0x20e1, 0x0002, 0x3d08, 0xd19c, 0x0140, 0x2069,
+-      0xc600, 0x6a28, 0x761c, 0x7114, 0x2041, 0x0000, 0x0028, 0x7118,
+-      0x720c, 0x7620, 0x7008, 0x2040, 0x080c, 0x7627, 0x0904, 0x7532,
+-      0x7004, 0xd084, 0x1128, 0x2021, 0x0024, 0x2029, 0x0002, 0x0020,
+-      0x2021, 0x002c, 0x2029, 0x000a, 0x080c, 0x1602, 0x0904, 0x752a,
+-      0x2d00, 0x2060, 0x6436, 0x0016, 0x20e1, 0x0001, 0x3d08, 0x3e00,
+-      0xa18c, 0x00ff, 0x6142, 0x603e, 0x001e, 0x6746, 0x2700, 0xa086,
+-      0xff00, 0x1118, 0x6063, 0x0000, 0x0010, 0x6063, 0x0003, 0xa006,
+-      0x6002, 0x602a, 0x602e, 0x6006, 0x603a, 0x604a, 0x6052, 0x6057,
+-      0x0005, 0x605e, 0x6066, 0x604e, 0x2800, 0x606a, 0x604c, 0xc0ad,
+-      0x604e, 0x665a, 0x2c00, 0x2078, 0x0479, 0x607f, 0xffff, 0x6083,
+-      0x0000, 0x8109, 0x0180, 0x080c, 0x1602, 0x01c0, 0x2d00, 0x7806,
+-      0x2f00, 0x6802, 0x6d36, 0xa006, 0x2d00, 0x2520, 0x00e9, 0x2d00,
+-      0x2078, 0x8109, 0x1d80, 0x2c00, 0xa005, 0x002e, 0x005e, 0x004e,
+-      0x008e, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x0005, 0x2c00, 0x2068,
+-      0x080c, 0x1629, 0x2600, 0x2071, 0xc76f, 0x7120, 0xa102, 0x0a0c,
+-      0x1519, 0x7022, 0xa006, 0x0c48, 0x00d6, 0x00c6, 0x0136, 0x0146,
+-      0x0156, 0x0016, 0x2068, 0x2400, 0xa084, 0x000f, 0xa080, 0x23c7,
+-      0x2005, 0x2005, 0xad60, 0x2c00, 0x2d08, 0xa188, 0x0030, 0xa102,
+-      0x20a8, 0x2c00, 0x20a0, 0x2001, 0xffff, 0x40a4, 0x001e, 0x015e,
+-      0x014e, 0x013e, 0x00ce, 0x00de, 0x0005, 0x00c6, 0x00e6, 0x00f6,
+-      0x6858, 0x2071, 0xc76f, 0x7120, 0xa102, 0x0a0c, 0x1519, 0x7022,
+-      0x6960, 0x694e, 0x697c, 0x2009, 0xffff, 0x7818, 0xa102, 0xe000,
+-      0x6852, 0x684b, 0x0000, 0x6868, 0xa005, 0x0118, 0x6848, 0xc085,
+-      0x684a, 0x2d00, 0xa080, 0x0015, 0x2038, 0x2031, 0x0018, 0x6864,
+-      0x2020, 0x683a, 0x685c, 0xa08a, 0x00ff, 0x1a0c, 0x1519, 0x2028,
+-      0x2d00, 0x2060, 0x2078, 0x6934, 0xa18c, 0x000f, 0xa188, 0x23c7,
+-      0x2145, 0x685c, 0x2050, 0xa005, 0x0530, 0x2805, 0xac70, 0x6834,
+-      0xa084, 0x00ff, 0xa086, 0x0024, 0x1110, 0x7008, 0x0040, 0x6834,
+-      0xa084, 0x00ff, 0xa086, 0x002c, 0x190c, 0x1519, 0x7010, 0x0006,
+-      0x2400, 0xa005, 0x000e, 0x0168, 0x203a, 0x8738, 0x8631, 0x090c,
+-      0x1519, 0x8421, 0x8529, 0x0138, 0x080c, 0x2389, 0x090c, 0x1519,
+-      0x08e0, 0x080c, 0x73d8, 0x6837, 0x0023, 0x00fe, 0x00ee, 0x00ce,
+-      0x0005, 0x00e6, 0x00c6, 0x00a6, 0x0086, 0x0056, 0x2d00, 0x2060,
+-      0x6934, 0xa18c, 0x000f, 0xa188, 0x23c7, 0x2145, 0x685c, 0x2050,
+-      0xa005, 0x01d0, 0x2028, 0x2805, 0xac70, 0x6834, 0xa084, 0x00ff,
+-      0xa086, 0x0024, 0x1110, 0x7008, 0x0008, 0x7010, 0x0006, 0xa086,
+-      0xffff, 0x000e, 0x0110, 0x080c, 0x73d8, 0x8529, 0x0128, 0x080c,
+-      0x2389, 0x090c, 0x1519, 0x0c38, 0x005e, 0x008e, 0x00ae, 0x00ce,
+-      0x00ee, 0x0005, 0x70ac, 0xa005, 0x0120, 0x2060, 0x6008, 0xa306,
+-      0x0005, 0xa085, 0x0001, 0x0ce0, 0x70ac, 0x600e, 0x2c00, 0x70ae,
+-      0x0005, 0x00f6, 0x00d6, 0x0036, 0x70ac, 0xa005, 0x01b8, 0x2068,
+-      0x2079, 0x0000, 0x2c08, 0xa11e, 0x1118, 0x680c, 0x70ae, 0x0060,
+-      0xa106, 0x0140, 0x2d00, 0x2078, 0x680c, 0xa005, 0x090c, 0x1519,
+-      0x2068, 0x0cb0, 0x6b0c, 0x7b0e, 0x600f, 0x0000, 0x003e, 0x00de,
+-      0x00fe, 0x0005, 0x00e6, 0x080c, 0x724a, 0x6018, 0x2070, 0xa006,
+-      0x70b2, 0x70b6, 0x08b1, 0x080c, 0x95dc, 0x00ee, 0x0005, 0x00d6,
+-      0x0026, 0x0016, 0x2061, 0xc76f, 0x6020, 0x6414, 0xa600, 0xa42a,
+-      0x02f0, 0x6022, 0x2069, 0xc682, 0x6828, 0x6114, 0xa102, 0x1288,
+-      0x685c, 0xd08c, 0x1130, 0xc08d, 0x685e, 0x2011, 0x8025, 0x080c,
+-      0x407d, 0x2001, 0xc695, 0x2004, 0xa080, 0x0000, 0x200c, 0x8108,
+-      0x2102, 0xa085, 0x0001, 0x001e, 0x002e, 0x00de, 0x0005, 0x2069,
+-      0xc682, 0x6804, 0xd094, 0x0148, 0x685c, 0xd084, 0x1130, 0xc085,
+-      0x685e, 0x2011, 0x8026, 0x080c, 0x407d, 0x2001, 0xc695, 0x2004,
+-      0xa080, 0x0001, 0x200c, 0x8108, 0x2102, 0xa006, 0x2031, 0x0000,
+-      0x0c10, 0x0006, 0x0016, 0x00c6, 0x6018, 0x2060, 0x6010, 0xa005,
+-      0x0178, 0x2001, 0xc756, 0x2004, 0xa005, 0x0150, 0x2001, 0xc600,
+-      0x2004, 0xa086, 0x0003, 0x1120, 0x2011, 0x8014, 0x080c, 0x407d,
+-      0x00ce, 0x001e, 0x000e, 0x0005, 0x0016, 0x6834, 0xa08c, 0x00ff,
+-      0xa186, 0x0024, 0x0110, 0xa186, 0x002c, 0x001e, 0x0005, 0x2001,
+-      0xc683, 0x2004, 0xd09c, 0x0005, 0x2001, 0xc683, 0x2004, 0xd0a4,
+-      0x0005, 0x0066, 0x6000, 0xa0b2, 0x0010, 0x1a0c, 0x1519, 0x0013,
+-      0x006e, 0x0005, 0x76b2, 0x76b2, 0x76b2, 0x76b4, 0x770f, 0x76b2,
+-      0x76b2, 0x76b2, 0x774d, 0x76b2, 0x77aa, 0x76b2, 0x76b2, 0x76b2,
+-      0x76b2, 0x76b2, 0x080c, 0x1519, 0xa182, 0x0100, 0x0002, 0x76c6,
+-      0x76c6, 0x76c6, 0x76c8, 0x76e1, 0x76fb, 0x76c6, 0x76c6, 0x76c6,
+-      0x76c6, 0x76c6, 0x76c6, 0x76c6, 0x76c6, 0x76c6, 0x080c, 0x1519,
+-      0x00d6, 0x080c, 0x7e47, 0x080c, 0x7f6e, 0x6110, 0x2168, 0x684b,
+-      0x0000, 0x00d6, 0x6018, 0x2068, 0x6008, 0x68b6, 0x68bb, 0x0500,
+-      0xa006, 0x68b2, 0x00de, 0x080c, 0x580a, 0x080c, 0x95dc, 0x00de,
+-      0x0005, 0x080c, 0x7e47, 0x00f6, 0x00d6, 0x6110, 0x2178, 0x080c,
+-      0xac8a, 0x0150, 0x00e6, 0x6018, 0x2070, 0xa006, 0x70b2, 0x70b6,
+-      0x00ee, 0x2f68, 0x080c, 0x580a, 0x00de, 0x00fe, 0x080c, 0x95dc,
+-      0x080c, 0x7f6e, 0x0005, 0x080c, 0x7e47, 0x080c, 0x2e46, 0x00d6,
+-      0x6110, 0x2168, 0x080c, 0xac8a, 0x0120, 0x684b, 0x0029, 0x080c,
+-      0x580a, 0x00de, 0x080c, 0x95dc, 0x080c, 0x7f6e, 0x0005, 0xa182,
+-      0x0100, 0x0002, 0x7721, 0x7723, 0x772b, 0x7721, 0x7721, 0x7721,
+-      0x7748, 0x7721, 0x7721, 0x7721, 0x7721, 0x7721, 0x7721, 0x7721,
+-      0x7721, 0x080c, 0x1519, 0x20e1, 0x0005, 0x3d18, 0x3e20, 0x2c10,
+-      0x080c, 0x1870, 0x0005, 0x00d6, 0x00e6, 0x2001, 0xc756, 0x2004,
+-      0xa086, 0x0000, 0x6110, 0x1118, 0x080c, 0x1629, 0x0028, 0x2168,
+-      0x080c, 0x7555, 0x080c, 0x580a, 0x6018, 0x2070, 0xa006, 0x70b2,
+-      0x70b6, 0x080c, 0x75f9, 0x00ee, 0x00de, 0x080c, 0x95dc, 0x0005,
+-      0x080c, 0x761a, 0x080c, 0x56c7, 0x0005, 0xa182, 0x0100, 0x0002,
+-      0x7762, 0x7788, 0x7760, 0x7760, 0x7760, 0x7760, 0x7760, 0x7760,
+-      0x7760, 0x7760, 0x7760, 0x7760, 0x7760, 0x7760, 0x7760, 0x7760,
+-      0x080c, 0x1519, 0x00d6, 0x6003, 0x0003, 0x6106, 0x6010, 0x2068,
+-      0x687c, 0x680a, 0x6880, 0x680e, 0x6813, 0x0000, 0x6817, 0x0000,
+-      0x6854, 0xa092, 0x199a, 0x0210, 0x2001, 0x1999, 0x8003, 0x8013,
+-      0x8213, 0xa210, 0x6216, 0x00de, 0x2c10, 0x080c, 0x2068, 0x080c,
+-      0x79fc, 0x0126, 0x2091, 0x8000, 0x080c, 0x7f6e, 0x012e, 0x0005,
+-      0x6003, 0x0004, 0x630a, 0x080c, 0x74a0, 0x0168, 0x6012, 0x600f,
+-      0x0000, 0x080c, 0x75f4, 0x20e1, 0x0005, 0x3d18, 0x3e20, 0x2c10,
+-      0x080c, 0x1870, 0x0005, 0x2011, 0x0000, 0x080c, 0x1870, 0x00e6,
+-      0x6018, 0x2070, 0x70b3, 0x0000, 0x70b7, 0x0000, 0x00ee, 0x080c,
+-      0x95dc, 0x0005, 0x00d6, 0x080c, 0x7e47, 0x080c, 0x7f6e, 0x6110,
+-      0x2168, 0x684b, 0x0000, 0x00d6, 0x6018, 0x2068, 0x6008, 0x68b6,
+-      0x68bb, 0x0500, 0xa006, 0x68b2, 0x00de, 0x080c, 0x580a, 0x080c,
+-      0x95dc, 0x00de, 0x0005, 0x6000, 0xa08a, 0x0010, 0x1a0c, 0x1519,
+-      0x000b, 0x0005, 0x77da, 0x77da, 0x77da, 0x77dc, 0x77f1, 0x77da,
+-      0x77da, 0x77da, 0x77da, 0x77da, 0x77da, 0x77da, 0x77da, 0x77da,
+-      0x77da, 0x77da, 0x080c, 0x1519, 0x080c, 0x90ef, 0x6110, 0x2168,
+-      0x684b, 0x0006, 0x00d6, 0x6018, 0x2068, 0x6008, 0x68b6, 0x68bb,
+-      0x0500, 0xa006, 0x68b2, 0x00de, 0x080c, 0x580a, 0x080c, 0x95dc,
+-      0x0005, 0x080c, 0x761a, 0x0005, 0x6000, 0xa08a, 0x0010, 0x1a0c,
+-      0x1519, 0x000b, 0x0005, 0x780b, 0x780b, 0x780b, 0x780d, 0x781d,
+-      0x780b, 0x780b, 0x780b, 0x780b, 0x780b, 0x780b, 0x780b, 0x780b,
+-      0x780b, 0x780b, 0x780b, 0x080c, 0x1519, 0x0036, 0x00e6, 0x2071,
+-      0xc927, 0x703c, 0xac06, 0x1120, 0x2019, 0x0000, 0x080c, 0x8e79,
+-      0x080c, 0x90ef, 0x00ee, 0x003e, 0x0005, 0x00d6, 0x6010, 0x2068,
+-      0x080c, 0x761a, 0x00de, 0x0005, 0x080c, 0x7684, 0x1150, 0x6024,
+-      0xd09c, 0x1138, 0x6810, 0x2009, 0xffff, 0xa102, 0x2020, 0x2019,
+-      0x0000, 0x0005, 0x20a9, 0x0010, 0xa006, 0x8004, 0x8086, 0x818e,
+-      0x1208, 0xa200, 0x1f04, 0x7836, 0x8086, 0x818e, 0x0005, 0x0156,
+-      0x20a9, 0x0010, 0xa005, 0x01b8, 0xa11a, 0x12a8, 0x8213, 0x818d,
+-      0x0228, 0xa11a, 0x1220, 0x1f04, 0x7846, 0x0028, 0xa11a, 0x2308,
+-      0x8210, 0x1f04, 0x7846, 0x0006, 0x3200, 0xa084, 0xefff, 0x2080,
+-      0x000e, 0x015e, 0x0005, 0x0006, 0x3200, 0xa085, 0x1000, 0x0cb8,
+-      0x0126, 0x2091, 0x2800, 0x2079, 0xc927, 0x012e, 0x00d6, 0x2069,
+-      0xc927, 0x6803, 0x0005, 0x2069, 0x0004, 0x2d04, 0xa085, 0x8001,
+-      0x206a, 0x00de, 0x0005, 0x00c6, 0x6027, 0x0001, 0x7804, 0xa084,
+-      0x0007, 0x0002, 0x7884, 0x78a5, 0x78f8, 0x788a, 0x78a5, 0x7884,
+-      0x7882, 0x7882, 0x080c, 0x1519, 0x080c, 0x7024, 0x080c, 0x7e94,
+-      0x00ce, 0x0005, 0x62c0, 0x82ff, 0x1110, 0x00ce, 0x0005, 0x2011,
+-      0x4e18, 0x080c, 0x6fad, 0x7828, 0xa092, 0x00c8, 0x1228, 0x8000,
+-      0x782a, 0x080c, 0x4e52, 0x0c88, 0x080c, 0x4e18, 0x7807, 0x0003,
+-      0x7827, 0x0000, 0x782b, 0x0000, 0x0c40, 0x080c, 0x7024, 0x3c00,
+-      0x0006, 0x2011, 0x0209, 0x20e1, 0x4000, 0x2214, 0x000e, 0x20e0,
+-      0x82ff, 0x0178, 0x62c0, 0x82ff, 0x1160, 0x782b, 0x0000, 0x7824,
+-      0xa065, 0x090c, 0x1519, 0x2009, 0x0013, 0x080c, 0x960c, 0x00ce,
+-      0x0005, 0x3900, 0xa082, 0xca74, 0x1210, 0x080c, 0x91c4, 0x00c6,
+-      0x7824, 0xa065, 0x090c, 0x1519, 0x7804, 0xa086, 0x0004, 0x0904,
+-      0x7938, 0x7828, 0xa092, 0x2710, 0x1230, 0x8000, 0x782a, 0x00ce,
+-      0x080c, 0x8be8, 0x0c20, 0x6104, 0xa186, 0x0003, 0x1188, 0x00e6,
+-      0x2071, 0xc600, 0x70e0, 0x00ee, 0xd08c, 0x0150, 0x00c6, 0x00e6,
+-      0x2061, 0x0100, 0x2071, 0xc600, 0x080c, 0x4e5b, 0x00ee, 0x00ce,
+-      0x080c, 0xc58e, 0x2009, 0x0014, 0x080c, 0x960c, 0x00ce, 0x0838,
+-      0x2001, 0xc943, 0x2003, 0x0000, 0x62c0, 0x82ff, 0x1160, 0x782b,
+-      0x0000, 0x7824, 0xa065, 0x090c, 0x1519, 0x2009, 0x0013, 0x080c,
+-      0x9660, 0x00ce, 0x0005, 0x00c6, 0x00d6, 0x3900, 0xa082, 0xca74,
+-      0x1210, 0x080c, 0x91c4, 0x7824, 0xa005, 0x090c, 0x1519, 0x781c,
+-      0xa06d, 0x090c, 0x1519, 0x6800, 0xc0dc, 0x6802, 0x7924, 0x2160,
+-      0x080c, 0x95dc, 0x693c, 0x81ff, 0x090c, 0x1519, 0x8109, 0x693e,
+-      0x6854, 0xa015, 0x0110, 0x7a1e, 0x0010, 0x7918, 0x791e, 0x7807,
+-      0x0000, 0x7827, 0x0000, 0x00de, 0x00ce, 0x080c, 0x7e94, 0x0888,
+-      0x6104, 0xa186, 0x0002, 0x0128, 0xa186, 0x0004, 0x0110, 0x0804,
+-      0x78d1, 0x7808, 0xac06, 0x0904, 0x78d1, 0x080c, 0x7db1, 0x080c,
+-      0x79df, 0x00ce, 0x080c, 0x7e94, 0x0804, 0x78bf, 0x00c6, 0x6027,
+-      0x0002, 0x62c8, 0x60c4, 0xa205, 0x11a8, 0x793c, 0xa1e5, 0x0000,
+-      0x0160, 0x2009, 0x0049, 0x601c, 0xa086, 0x0009, 0x1110, 0x2009,
+-      0x0103, 0x080c, 0x960c, 0x00ce, 0x0005, 0x2011, 0xc946, 0x2013,
+-      0x0000, 0x0cc8, 0x3908, 0xa192, 0xca74, 0x1210, 0x080c, 0x91c4,
+-      0x793c, 0x81ff, 0x0d90, 0x7944, 0xa192, 0x7530, 0x12f0, 0x8108,
+-      0x7946, 0x793c, 0xa188, 0x0007, 0x210c, 0xa18e, 0x0006, 0x1138,
+-      0x6014, 0xa084, 0x0184, 0xa085, 0x0012, 0x6016, 0x08e0, 0x793c,
+-      0xa188, 0x0007, 0x210c, 0xa18e, 0x0009, 0x0d90, 0x6014, 0xa084,
+-      0x0184, 0xa085, 0x0016, 0x6016, 0x0870, 0x7848, 0xc085, 0x784a,
+-      0x0850, 0x0006, 0x0016, 0x00c6, 0x0126, 0x2091, 0x8000, 0x600f,
+-      0x0000, 0x2c08, 0x2061, 0xc927, 0x6020, 0x8000, 0x6022, 0x6010,
+-      0xa005, 0x0148, 0xa080, 0x0003, 0x2102, 0x6112, 0x012e, 0x00ce,
+-      0x001e, 0x000e, 0x0005, 0x6116, 0x6112, 0x0cc0, 0x00d6, 0x2069,
+-      0xc927, 0x6000, 0xd0d4, 0x0168, 0x6820, 0x8000, 0x6822, 0xa086,
+-      0x0001, 0x1110, 0x2c00, 0x681e, 0x6804, 0xa084, 0x0007, 0x0804,
+-      0x7e9a, 0xc0d5, 0x6002, 0x6818, 0xa005, 0x0158, 0x6056, 0x605b,
+-      0x0000, 0x0006, 0x2c00, 0x681a, 0x00de, 0x685a, 0x2069, 0xc927,
+-      0x0c18, 0x6056, 0x605a, 0x2c00, 0x681a, 0x681e, 0x08e8, 0x0006,
+-      0x0016, 0x00c6, 0x0126, 0x2091, 0x8000, 0x600f, 0x0000, 0x2c08,
+-      0x2061, 0xc927, 0x6020, 0x8000, 0x6022, 0x6008, 0xa005, 0x0148,
+-      0xa080, 0x0003, 0x2102, 0x610a, 0x012e, 0x00ce, 0x001e, 0x000e,
+-      0x0005, 0x610e, 0x610a, 0x0cc0, 0x00c6, 0x600f, 0x0000, 0x2c08,
+-      0x2061, 0xc927, 0x6034, 0xa005, 0x0130, 0xa080, 0x0003, 0x2102,
+-      0x6136, 0x00ce, 0x0005, 0x613a, 0x6136, 0x0cd8, 0x00f6, 0x00e6,
+-      0x00d6, 0x00c6, 0x0076, 0x0066, 0x0056, 0x0036, 0x0026, 0x0016,
+-      0x0006, 0x0126, 0xa02e, 0x2071, 0xc927, 0x7638, 0x2660, 0x2678,
+-      0x2091, 0x8000, 0x8cff, 0x0904, 0x7a87, 0x6018, 0xa080, 0x0028,
+-      0x2004, 0xa206, 0x1904, 0x7a82, 0x87ff, 0x0120, 0x6050, 0xa106,
+-      0x1904, 0x7a82, 0x703c, 0xac06, 0x1190, 0x0036, 0x2019, 0x0001,
+-      0x080c, 0x8e79, 0x7033, 0x0000, 0x703f, 0x0000, 0x7043, 0x0000,
+-      0x7047, 0x0000, 0x704b, 0x0000, 0x003e, 0x2029, 0x0001, 0x7038,
+-      0xac36, 0x1110, 0x660c, 0x763a, 0x7034, 0xac36, 0x1140, 0x2c00,
+-      0xaf36, 0x0118, 0x2f00, 0x7036, 0x0010, 0x7037, 0x0000, 0x660c,
+-      0x0066, 0x2c00, 0xaf06, 0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f,
+-      0x0000, 0x080c, 0xac8a, 0x01c8, 0x6010, 0x2068, 0x601c, 0xa086,
+-      0x0003, 0x1580, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000, 0x0016,
+-      0x0036, 0x0076, 0x080c, 0xaefc, 0x080c, 0xc4ca, 0x080c, 0x580a,
+-      0x007e, 0x003e, 0x001e, 0x080c, 0xae41, 0x080c, 0xae4d, 0x00ce,
+-      0x0804, 0x7a22, 0x2c78, 0x600c, 0x2060, 0x0804, 0x7a22, 0x85ff,
+-      0x0120, 0x0036, 0x080c, 0x7f6e, 0x003e, 0x012e, 0x000e, 0x001e,
+-      0x002e, 0x003e, 0x005e, 0x006e, 0x007e, 0x00ce, 0x00de, 0x00ee,
+-      0x00fe, 0x0005, 0x601c, 0xa086, 0x0006, 0x0158, 0x601c, 0xa086,
+-      0x0009, 0x1190, 0x684b, 0x0006, 0x080c, 0x580a, 0x080c, 0x95dc,
+-      0x08b0, 0x0016, 0x0036, 0x0076, 0x080c, 0xc4ca, 0x080c, 0xc134,
+-      0x007e, 0x003e, 0x001e, 0x0848, 0x601c, 0xa086, 0x000a, 0x0904,
+-      0x7a6c, 0x0804, 0x7a6a, 0x0006, 0x0066, 0x00c6, 0x00d6, 0x00f6,
+-      0x2031, 0x0000, 0x0126, 0x2091, 0x8000, 0x2079, 0xc927, 0x7838,
+-      0xa065, 0x0568, 0x600c, 0x0006, 0x600f, 0x0000, 0x783c, 0xac06,
+-      0x1180, 0x0036, 0x2019, 0x0001, 0x080c, 0x8e79, 0x7833, 0x0000,
+-      0x783f, 0x0000, 0x7843, 0x0000, 0x7847, 0x0000, 0x784b, 0x0000,
+-      0x003e, 0x080c, 0xac8a, 0x0178, 0x6010, 0x2068, 0x601c, 0xa086,
+-      0x0003, 0x11b0, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000, 0x080c,
+-      0x580a, 0x080c, 0xae41, 0x080c, 0xae4d, 0x000e, 0x0888, 0x7e3a,
+-      0x7e36, 0x012e, 0x00fe, 0x00de, 0x00ce, 0x006e, 0x000e, 0x0005,
+-      0x601c, 0xa086, 0x0006, 0x0150, 0x601c, 0xa086, 0x0009, 0x1148,
+-      0x6b4a, 0x080c, 0x580a, 0x080c, 0x95dc, 0x0c38, 0x080c, 0xc134,
+-      0x0c10, 0x601c, 0xa086, 0x000a, 0x09b8, 0x08a0, 0x0016, 0x0026,
+-      0x0086, 0x2041, 0x0000, 0x0099, 0x080c, 0x7be4, 0x008e, 0x002e,
+-      0x001e, 0x0005, 0x00f6, 0x0126, 0x2079, 0xc927, 0x2091, 0x8000,
+-      0x080c, 0x7c71, 0x080c, 0x7ce3, 0x012e, 0x00fe, 0x0005, 0x00f6,
+-      0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0016, 0x0006, 0x0126, 0x2091,
+-      0x8000, 0x2071, 0xc927, 0x7614, 0x2660, 0x2678, 0x8cff, 0x0904,
+-      0x7bba, 0x6018, 0xa080, 0x0028, 0x2004, 0xa206, 0x1904, 0x7bb5,
+-      0x88ff, 0x0120, 0x6050, 0xa106, 0x1904, 0x7bb5, 0x7024, 0xac06,
+-      0x1538, 0x2069, 0x0100, 0x68c0, 0xa005, 0x01f0, 0x080c, 0x7024,
+-      0x080c, 0x8bf5, 0x68c3, 0x0000, 0x080c, 0x90df, 0x7027, 0x0000,
+-      0x0036, 0x2069, 0x0140, 0x6b04, 0xa384, 0x1000, 0x0120, 0x6803,
+-      0x0100, 0x6803, 0x0000, 0x2069, 0x0100, 0x6824, 0xd084, 0x0110,
+-      0x6827, 0x0001, 0x003e, 0x0020, 0x6003, 0x0009, 0x630a, 0x04e8,
+-      0x7014, 0xac36, 0x1110, 0x660c, 0x7616, 0x7010, 0xac36, 0x1140,
+-      0x2c00, 0xaf36, 0x0118, 0x2f00, 0x7012, 0x0010, 0x7013, 0x0000,
++      0x60e2, 0xa006, 0x00ee, 0x00de, 0x00ce, 0x003e, 0x002e, 0x001e,
++      0x015e, 0x0005, 0x0156, 0x0016, 0x0026, 0x0036, 0x00c6, 0x00d6,
++      0x00e6, 0x2061, 0x0100, 0x2071, 0xc600, 0x6020, 0xa084, 0x00c0,
++      0x01e0, 0x2011, 0x0003, 0x080c, 0x8f27, 0x2011, 0x0002, 0x080c,
++      0x8f31, 0x080c, 0x8e07, 0x2019, 0x0000, 0x080c, 0x8e92, 0x2069,
++      0x0140, 0x6803, 0x00a0, 0x2001, 0xc8e6, 0x2003, 0x0001, 0x2001,
++      0xc600, 0x2003, 0x0001, 0x0804, 0x6167, 0x2001, 0xc60c, 0x200c,
++      0xd1b4, 0x1160, 0xc1b5, 0x2102, 0x080c, 0x5df6, 0x2069, 0x0140,
++      0x080c, 0x25fb, 0x6803, 0x0080, 0x60e3, 0x0000, 0x2069, 0x0200,
++      0x6804, 0xa005, 0x1118, 0x6808, 0xa005, 0x01c0, 0x6028, 0xa084,
++      0xfdff, 0x602a, 0x6027, 0x0200, 0x2069, 0xc90c, 0x7000, 0x206a,
++      0x708f, 0x0027, 0x7003, 0x0001, 0x20a9, 0x0002, 0x1d04, 0x611e,
++      0x2091, 0x6000, 0x1f04, 0x611e, 0x0804, 0x6167, 0x6027, 0x1e00,
++      0x2009, 0x1e00, 0xe000, 0x6024, 0xa10c, 0x01c8, 0xa084, 0x1c00,
++      0x11b0, 0x1d04, 0x6126, 0x0006, 0x0016, 0x00c6, 0x00d6, 0x00e6,
++      0x080c, 0x6f23, 0x00ee, 0x00de, 0x00ce, 0x001e, 0x000e, 0x00e6,
++      0x2071, 0xc93a, 0x7018, 0x00ee, 0xa005, 0x1d00, 0x0500, 0x0026,
++      0x2011, 0x5e0e, 0x080c, 0x6fc6, 0x2011, 0x5e01, 0x080c, 0x7089,
++      0x002e, 0x2069, 0x0140, 0x60e3, 0x0000, 0x70a4, 0xa005, 0x1118,
++      0x6887, 0x0001, 0x0008, 0x6886, 0x2001, 0xc8d6, 0x2004, 0x080c,
++      0x2a1c, 0x60e2, 0x2001, 0xc60c, 0x200c, 0xc1b4, 0x2102, 0x00ee,
++      0x00de, 0x00ce, 0x003e, 0x002e, 0x001e, 0x015e, 0x0005, 0x0156,
++      0x0016, 0x0026, 0x0036, 0x0046, 0x00c6, 0x00e6, 0x2061, 0x0100,
++      0x2071, 0xc600, 0x7130, 0xd184, 0x1180, 0x2011, 0xc653, 0x2214,
++      0xd2ec, 0x0138, 0xc18d, 0x7132, 0x2011, 0xc653, 0x2214, 0xd2ac,
++      0x1120, 0x7030, 0xd08c, 0x0904, 0x61d4, 0x7130, 0xc185, 0x7132,
++      0x2011, 0xc653, 0x220c, 0xd1a4, 0x0530, 0x0016, 0x2019, 0x000e,
++      0x080c, 0xc126, 0x0156, 0x20a9, 0x007f, 0x2009, 0x0000, 0xa186,
++      0x007e, 0x01a0, 0xa186, 0x0080, 0x0188, 0x080c, 0x5356, 0x1170,
++      0x8127, 0xa006, 0x0016, 0x2009, 0x000e, 0x080c, 0xc1a9, 0x2009,
++      0x0001, 0x2011, 0x0100, 0x080c, 0x7147, 0x001e, 0x8108, 0x1f04,
++      0x619f, 0x015e, 0x001e, 0xd1ac, 0x1148, 0x0016, 0x2009, 0x0000,
++      0x2019, 0x0004, 0x080c, 0x2e19, 0x001e, 0x0070, 0x0156, 0x20a9,
++      0x007f, 0x2009, 0x0000, 0x080c, 0x5356, 0x1110, 0x080c, 0x4f60,
++      0x8108, 0x1f04, 0x61cb, 0x015e, 0x080c, 0x1f06, 0x2011, 0x0003,
++      0x080c, 0x8f27, 0x2011, 0x0002, 0x080c, 0x8f31, 0x080c, 0x8e07,
++      0x0036, 0x2019, 0x0000, 0x080c, 0x8e92, 0x003e, 0x60e3, 0x0000,
++      0x2001, 0xc600, 0x2003, 0x0001, 0x080c, 0x5e73, 0x00ee, 0x00ce,
++      0x004e, 0x003e, 0x002e, 0x001e, 0x015e, 0x0005, 0x2071, 0xc702,
++      0x7003, 0x0000, 0x7007, 0x0000, 0x700f, 0x0000, 0x702b, 0x0001,
++      0x704f, 0x0000, 0x7053, 0x0001, 0x705f, 0x0020, 0x7063, 0x0040,
++      0x7083, 0x0000, 0x708b, 0x0000, 0x708f, 0x0001, 0x70bf, 0x0000,
++      0x0005, 0x00e6, 0x2071, 0xc702, 0x6848, 0xa005, 0x1130, 0x7028,
++      0xc085, 0x702a, 0xa085, 0x0001, 0x0428, 0x6a50, 0x7236, 0x6b54,
++      0x733a, 0x6858, 0x703e, 0x707a, 0x685c, 0x7042, 0x707e, 0x6848,
++      0x702e, 0x6840, 0x7032, 0x2009, 0x000c, 0x200a, 0x8007, 0x8006,
++      0x8006, 0xa08c, 0x003f, 0xa084, 0xffc0, 0xa210, 0x2100, 0xa319,
++      0x7272, 0x7376, 0x7028, 0xc084, 0x702a, 0x7007, 0x0001, 0x700f,
++      0x0000, 0xa006, 0x00ee, 0x0005, 0x2b78, 0x2071, 0xc702, 0x7004,
++      0x0043, 0x700c, 0x0002, 0x6250, 0x6247, 0x6247, 0x6247, 0x6247,
++      0x0005, 0x62a6, 0x62a7, 0x62d9, 0x62da, 0x62a4, 0x6328, 0x632d,
++      0x635e, 0x635f, 0x637a, 0x637b, 0x637c, 0x637d, 0x637e, 0x637f,
++      0x644a, 0x6471, 0x700c, 0x0002, 0x6269, 0x62a4, 0x62a4, 0x62a5,
++      0x62a5, 0x7830, 0x7930, 0xa106, 0x0120, 0x7830, 0x7930, 0xa106,
++      0x1510, 0x7030, 0xa10a, 0x01f8, 0x1210, 0x712c, 0xa10a, 0xa18a,
++      0x0002, 0x12d0, 0x080c, 0x15e5, 0x01b0, 0x2d00, 0x705a, 0x7063,
++      0x0040, 0x2001, 0x0003, 0x7057, 0x0000, 0x0126, 0x0006, 0x2091,
++      0x8000, 0x2009, 0xc959, 0x2104, 0xc085, 0x200a, 0x000e, 0x700e,
++      0x012e, 0x080c, 0x1669, 0x0005, 0x080c, 0x15e5, 0x0de0, 0x2d00,
++      0x705a, 0x080c, 0x15e5, 0x1108, 0x0c10, 0x2d00, 0x7086, 0x7063,
++      0x0080, 0x2001, 0x0004, 0x08f8, 0x0005, 0x0005, 0x0005, 0x700c,
++      0x0002, 0x62ae, 0x62b1, 0x62bf, 0x62d8, 0x62d8, 0x080c, 0x6262,
++      0x0005, 0x0126, 0x8001, 0x700e, 0x7058, 0x0006, 0x080c, 0x67ed,
++      0x0120, 0x2091, 0x8000, 0x080c, 0x6262, 0x00de, 0x0048, 0x0126,
++      0x8001, 0x700e, 0x080c, 0x67ed, 0x7058, 0x2068, 0x7084, 0x705a,
++      0x6803, 0x0000, 0x6807, 0x0000, 0x6834, 0xa084, 0x00ff, 0xa08a,
++      0x003a, 0x1218, 0x00db, 0x012e, 0x0005, 0x012e, 0x080c, 0x6380,
++      0x0005, 0x0005, 0x0005, 0x00e6, 0x2071, 0xc702, 0x700c, 0x0002,
++      0x62e5, 0x62e5, 0x62e5, 0x62e7, 0x62ea, 0x00ee, 0x0005, 0x700f,
++      0x0001, 0x0010, 0x700f, 0x0002, 0x00ee, 0x0005, 0x6380, 0x6380,
++      0x639c, 0x6380, 0x6557, 0x6380, 0x6380, 0x6380, 0x6380, 0x6380,
++      0x639c, 0x6599, 0x65dc, 0x6625, 0x6639, 0x6380, 0x6380, 0x63b8,
++      0x639c, 0x63cc, 0x6380, 0x6427, 0x66e5, 0x6700, 0x6380, 0x63b8,
++      0x6380, 0x63cc, 0x6380, 0x6380, 0x641d, 0x6700, 0x6380, 0x6380,
++      0x6380, 0x6380, 0x6380, 0x6380, 0x6380, 0x6380, 0x6380, 0x63e1,
++      0x6380, 0x6380, 0x6380, 0x6380, 0x6380, 0x6380, 0x6380, 0x6380,
++      0x6380, 0x687f, 0x6380, 0x680b, 0x6380, 0x680b, 0x6380, 0x63f6,
++      0x7020, 0x2068, 0x080c, 0x1619, 0x0005, 0x700c, 0x0002, 0x6334,
++      0x6337, 0x6345, 0x635d, 0x635d, 0x080c, 0x6262, 0x0005, 0x0126,
++      0x8001, 0x700e, 0x7058, 0x0006, 0x080c, 0x67ed, 0x0120, 0x2091,
++      0x8000, 0x080c, 0x6262, 0x00de, 0x0048, 0x0126, 0x8001, 0x700e,
++      0x080c, 0x67ed, 0x7058, 0x2068, 0x7084, 0x705a, 0x6803, 0x0000,
++      0x6807, 0x0000, 0x6834, 0xa084, 0x00ff, 0xa08a, 0x001a, 0x1218,
++      0x003b, 0x012e, 0x0005, 0x012e, 0x0419, 0x0005, 0x0005, 0x0005,
++      0x6380, 0x639c, 0x6543, 0x6380, 0x639c, 0x6380, 0x639c, 0x639c,
++      0x6380, 0x639c, 0x6543, 0x639c, 0x639c, 0x639c, 0x639c, 0x639c,
++      0x6380, 0x639c, 0x6543, 0x6380, 0x6380, 0x639c, 0x6380, 0x6380,
++      0x6380, 0x639c, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
++      0x7007, 0x0001, 0x6838, 0xa084, 0x00ff, 0xc0d5, 0x683a, 0x0126,
++      0x2091, 0x8000, 0x080c, 0x5823, 0x012e, 0x0005, 0x7007, 0x0001,
++      0x6838, 0xa084, 0x00ff, 0xc0e5, 0x683a, 0x0126, 0x2091, 0x8000,
++      0x080c, 0x5823, 0x012e, 0x0005, 0x7007, 0x0001, 0x6838, 0xa084,
++      0x00ff, 0xc0ed, 0x683a, 0x0126, 0x2091, 0x8000, 0x080c, 0x5823,
++      0x012e, 0x0005, 0x7007, 0x0001, 0x6838, 0xa084, 0x00ff, 0xc0dd,
++      0x683a, 0x0126, 0x2091, 0x8000, 0x080c, 0x5823, 0x012e, 0x0005,
++      0x6834, 0x8007, 0xa084, 0x00ff, 0x0988, 0x8001, 0x1120, 0x7007,
++      0x0001, 0x0804, 0x64da, 0x7007, 0x0006, 0x7012, 0x2d00, 0x7016,
++      0x701a, 0x704b, 0x64da, 0x0005, 0x6834, 0x8007, 0xa084, 0x00ff,
++      0x0904, 0x638e, 0x8001, 0x1120, 0x7007, 0x0001, 0x0804, 0x64f7,
++      0x7007, 0x0006, 0x7012, 0x2d00, 0x7016, 0x701a, 0x704b, 0x64f7,
++      0x0005, 0x6834, 0x8007, 0xa084, 0x00ff, 0x0904, 0x638e, 0x8001,
++      0x1120, 0x7007, 0x0001, 0x0804, 0x6520, 0x7007, 0x0006, 0x7012,
++      0x2d00, 0x7016, 0x701a, 0x704b, 0x6520, 0x0005, 0x6834, 0x8007,
++      0xa084, 0x00ff, 0xa086, 0x0001, 0x1904, 0x638e, 0x7007, 0x0001,
++      0x2009, 0xc631, 0x210c, 0x81ff, 0x11a8, 0x6838, 0xa084, 0x00ff,
++      0x683a, 0x6853, 0x0000, 0x080c, 0x512f, 0x1108, 0x0005, 0x0126,
++      0x2091, 0x8000, 0x6837, 0x0139, 0x684a, 0x6952, 0x080c, 0x5823,
++      0x012e, 0x0ca0, 0x2001, 0x0028, 0x0c90, 0x684c, 0xa084, 0x00c0,
++      0xa086, 0x00c0, 0x1120, 0x7007, 0x0001, 0x0804, 0x6718, 0x2d00,
++      0x7016, 0x701a, 0x20a9, 0x0004, 0xa080, 0x0024, 0x2098, 0x20a1,
++      0xc72d, 0x53a3, 0x6858, 0x7012, 0xa082, 0x0401, 0x1a04, 0x63aa,
++      0x6a84, 0xa28a, 0x0002, 0x1a04, 0x63aa, 0x82ff, 0x1138, 0x6888,
++      0x698c, 0xa105, 0x0118, 0x2001, 0x64ad, 0x0018, 0xa280, 0x64a3,
++      0x2005, 0x70c6, 0x7010, 0xa015, 0x0904, 0x648f, 0x080c, 0x15e5,
++      0x1118, 0x7007, 0x000f, 0x0005, 0x2d00, 0x7022, 0x70c4, 0x2060,
++      0x2c05, 0x6836, 0xe004, 0xad00, 0x7096, 0xe008, 0xa20a, 0x1210,
++      0xa00e, 0x2200, 0x7112, 0xe20c, 0x8003, 0x800b, 0xa296, 0x0004,
++      0x0108, 0xa108, 0x719a, 0x810b, 0x719e, 0xae90, 0x0022, 0x080c,
++      0x164d, 0x7090, 0xa08e, 0x0100, 0x0170, 0xa086, 0x0200, 0x0118,
++      0x7007, 0x0010, 0x0005, 0x7020, 0x2068, 0x080c, 0x1619, 0x7014,
++      0x2068, 0x0804, 0x63aa, 0x7020, 0x2068, 0x7018, 0x6802, 0x6807,
++      0x0000, 0x2d08, 0x2068, 0x6906, 0x711a, 0x0804, 0x644a, 0x7014,
++      0x2068, 0x7007, 0x0001, 0x6884, 0xa005, 0x1128, 0x6888, 0x698c,
++      0xa105, 0x0108, 0x00b1, 0x6834, 0xa084, 0x00ff, 0xa086, 0x001e,
++      0x0904, 0x6718, 0x04b8, 0x64a5, 0x64a9, 0x0002, 0x0011, 0x0007,
++      0x0004, 0x000a, 0x000f, 0x0005, 0x0006, 0x000a, 0x0011, 0x0005,
++      0x0004, 0x00f6, 0x00e6, 0x00c6, 0x0076, 0x0066, 0x6f88, 0x6e8c,
++      0x6804, 0x2060, 0xacf0, 0x0021, 0xacf8, 0x0027, 0x2009, 0x0005,
++      0x700c, 0x7816, 0x7008, 0x7812, 0x7004, 0x7806, 0x7000, 0x7802,
++      0x7e0e, 0x7f0a, 0x8109, 0x0128, 0xaef2, 0x0004, 0xaffa, 0x0006,
++      0x0c78, 0x6004, 0xa065, 0x1d30, 0x006e, 0x007e, 0x00ce, 0x00ee,
++      0x00fe, 0x0005, 0x2009, 0xc631, 0x210c, 0x81ff, 0x1198, 0x6838,
++      0xa084, 0x00ff, 0x683a, 0x080c, 0x4fbf, 0x1108, 0x0005, 0x080c,
++      0x5947, 0x0126, 0x2091, 0x8000, 0x080c, 0xaf1c, 0x080c, 0x5823,
++      0x012e, 0x0ca0, 0x2001, 0x0028, 0x2009, 0x0000, 0x0c80, 0x2009,
++      0xc631, 0x210c, 0x81ff, 0x11d8, 0x6858, 0xa005, 0x01d8, 0x2001,
++      0xc756, 0x2004, 0xa086, 0x0000, 0x01c0, 0x6838, 0xa084, 0x00ff,
++      0x683a, 0x6853, 0x0000, 0x080c, 0x5081, 0x1108, 0x0005, 0x684a,
++      0x0126, 0x2091, 0x8000, 0x080c, 0x5823, 0x012e, 0x0cb8, 0x2001,
++      0x0028, 0x0ca8, 0x2001, 0x0000, 0x0c90, 0x2001, 0x002c, 0x0c78,
++      0x2009, 0xc631, 0x210c, 0x81ff, 0x11b0, 0x6858, 0xa005, 0x01c0,
++      0x6838, 0xa084, 0x00ff, 0x683a, 0x6853, 0x0000, 0x080c, 0x50d3,
++      0x1108, 0x0005, 0x0126, 0x2091, 0x8000, 0x684a, 0x6952, 0x080c,
++      0x5823, 0x012e, 0x0cb0, 0x2001, 0x0028, 0x2009, 0x0000, 0x0c90,
++      0x2001, 0x0000, 0x0c78, 0x7018, 0x6802, 0x2d08, 0x2068, 0x6906,
++      0x711a, 0x7010, 0x8001, 0x7012, 0x0118, 0x7007, 0x0006, 0x0030,
++      0x7014, 0x2068, 0x7007, 0x0001, 0x7048, 0x080f, 0x0005, 0x7007,
++      0x0001, 0x6944, 0x810f, 0xa18c, 0x00ff, 0x6848, 0xa084, 0x00ff,
++      0x20a9, 0x0001, 0xa096, 0x0001, 0x01b0, 0x2009, 0x0000, 0x20a9,
++      0x00ff, 0xa096, 0x0002, 0x0178, 0xa005, 0x11f0, 0x6944, 0x810f,
++      0xa18c, 0x00ff, 0x080c, 0x5356, 0x11b8, 0x0066, 0x6e50, 0x080c,
++      0x5455, 0x006e, 0x0088, 0x0046, 0x2011, 0xc60c, 0x2224, 0xc484,
++      0x2412, 0x004e, 0x00c6, 0x080c, 0x5356, 0x1110, 0x080c, 0x55b6,
++      0x8108, 0x1f04, 0x6583, 0x00ce, 0x684c, 0xd084, 0x1118, 0x080c,
++      0x1619, 0x0005, 0x0126, 0x2091, 0x8000, 0x080c, 0x5823, 0x012e,
++      0x0005, 0x0126, 0x2091, 0x8000, 0x7007, 0x0001, 0x2001, 0xc653,
++      0x2004, 0xd0a4, 0x0580, 0x2061, 0xc9bc, 0x6100, 0xd184, 0x0178,
++      0x6858, 0xa084, 0x00ff, 0x1550, 0x6000, 0xd084, 0x0520, 0x6004,
++      0xa005, 0x1538, 0x6003, 0x0000, 0x600b, 0x0000, 0x00c8, 0x2011,
++      0x0001, 0x6860, 0xa005, 0x1110, 0x2001, 0x001e, 0x8000, 0x6016,
++      0x6858, 0xa084, 0x00ff, 0x0178, 0x6006, 0x6858, 0x8007, 0xa084,
++      0x00ff, 0x0148, 0x600a, 0x6858, 0x8000, 0x1108, 0xc28d, 0x6202,
++      0x012e, 0x0804, 0x67dc, 0x012e, 0x0804, 0x67d6, 0x012e, 0x0804,
++      0x67d0, 0x012e, 0x0804, 0x67d3, 0x0126, 0x2091, 0x8000, 0x7007,
++      0x0001, 0x2001, 0xc653, 0x2004, 0xd0a4, 0x05e0, 0x2061, 0xc9bc,
++      0x6000, 0xd084, 0x05b8, 0x6204, 0x6308, 0xd08c, 0x1530, 0x6c48,
++      0xa484, 0x0003, 0x0170, 0x6958, 0xa18c, 0x00ff, 0x8001, 0x1120,
++      0x2100, 0xa210, 0x0620, 0x0028, 0x8001, 0x1508, 0x2100, 0xa212,
++      0x02f0, 0xa484, 0x000c, 0x0188, 0x6958, 0x810f, 0xa18c, 0x00ff,
++      0xa082, 0x0004, 0x1120, 0x2100, 0xa318, 0x0288, 0x0030, 0xa082,
++      0x0004, 0x1168, 0x2100, 0xa31a, 0x0250, 0x6860, 0xa005, 0x0110,
++      0x8000, 0x6016, 0x6206, 0x630a, 0x012e, 0x0804, 0x67dc, 0x012e,
++      0x0804, 0x67d9, 0x012e, 0x0804, 0x67d6, 0x0126, 0x2091, 0x8000,
++      0x7007, 0x0001, 0x2061, 0xc9bc, 0x6300, 0xd38c, 0x1120, 0x6308,
++      0x8318, 0x0220, 0x630a, 0x012e, 0x0804, 0x67ea, 0x012e, 0x0804,
++      0x67d9, 0x0126, 0x00c6, 0x2091, 0x8000, 0x7007, 0x0001, 0x684c,
++      0xd0ac, 0x0148, 0x00c6, 0x2061, 0xc9bc, 0x6000, 0xa084, 0xfcff,
++      0x6002, 0x00ce, 0x0448, 0x6858, 0xa005, 0x05d0, 0x685c, 0xa065,
++      0x0598, 0x2001, 0xc631, 0x2004, 0xa005, 0x0118, 0x080c, 0xae6d,
++      0x0068, 0x6013, 0x0400, 0x6057, 0x0000, 0x694c, 0xd1a4, 0x0110,
++      0x6950, 0x6156, 0x2009, 0x0041, 0x080c, 0x962c, 0x6958, 0xa18c,
++      0xff00, 0xa186, 0x2000, 0x1140, 0x0026, 0x2009, 0x0000, 0x2011,
++      0xfdff, 0x080c, 0x7147, 0x002e, 0x684c, 0xd0c4, 0x0148, 0x2061,
++      0xc9bc, 0x6000, 0xd08c, 0x1120, 0x6008, 0x8000, 0x0208, 0x600a,
++      0x00ce, 0x012e, 0x0804, 0x67dc, 0x00ce, 0x012e, 0x0804, 0x67d6,
++      0x6954, 0xa186, 0x002e, 0x0d40, 0xa186, 0x002d, 0x0d28, 0xa186,
++      0x0045, 0x0528, 0xa186, 0x002a, 0x1130, 0x2001, 0xc60c, 0x200c,
++      0xc194, 0x2102, 0x08c8, 0xa186, 0x0020, 0x0170, 0xa186, 0x0029,
++      0x1d18, 0x6944, 0xa18c, 0xff00, 0x810f, 0x080c, 0x5356, 0x1960,
++      0x6000, 0xc0e4, 0x6002, 0x0840, 0x685c, 0xa065, 0x09a8, 0x6007,
++      0x0024, 0x2001, 0xc8fd, 0x2004, 0x6016, 0x0804, 0x6674, 0x685c,
++      0xa065, 0x0950, 0x00e6, 0x6860, 0xa075, 0x2001, 0xc631, 0x2004,
++      0xa005, 0x0150, 0x080c, 0xae6d, 0x8eff, 0x0118, 0x2e60, 0x080c,
++      0xae6d, 0x00ee, 0x0804, 0x6674, 0x6020, 0xc0dc, 0xc0d5, 0x6022,
++      0x2e60, 0x6007, 0x003a, 0x6870, 0xa005, 0x0130, 0x6007, 0x003b,
++      0x6874, 0x602a, 0x6878, 0x6012, 0x6003, 0x0001, 0x080c, 0x79b2,
++      0x080c, 0x7ead, 0x00ee, 0x0804, 0x6674, 0x2061, 0xc9bc, 0x6000,
++      0xd084, 0x0190, 0xd08c, 0x1904, 0x67ea, 0x0126, 0x2091, 0x8000,
++      0x6204, 0x8210, 0x0220, 0x6206, 0x012e, 0x0804, 0x67ea, 0x012e,
++      0x6853, 0x0016, 0x0804, 0x67e3, 0x6853, 0x0007, 0x0804, 0x67e3,
++      0x6834, 0x8007, 0xa084, 0x00ff, 0x1118, 0x080c, 0x638e, 0x0078,
++      0x2030, 0x8001, 0x1120, 0x7007, 0x0001, 0x0051, 0x0040, 0x7007,
++      0x0006, 0x7012, 0x2d00, 0x7016, 0x701a, 0x704b, 0x6718, 0x0005,
++      0x00e6, 0x0126, 0x2091, 0x8000, 0xa03e, 0x2009, 0xc631, 0x210c,
++      0x81ff, 0x1904, 0x6796, 0x2009, 0xc60c, 0x210c, 0xd194, 0x1904,
++      0x67c0, 0x6848, 0x2070, 0xae82, 0xce00, 0x0a04, 0x678a, 0x2001,
++      0xc617, 0x2004, 0xae02, 0x1a04, 0x678a, 0x711c, 0xa186, 0x0006,
++      0x1904, 0x6779, 0x7018, 0xa005, 0x0904, 0x6796, 0x2004, 0xd0e4,
++      0x1904, 0x67bb, 0x2061, 0xc9bc, 0x6100, 0xa184, 0x0301, 0xa086,
++      0x0001, 0x1550, 0x7020, 0xd0dc, 0x1904, 0x67c3, 0x6853, 0x0000,
++      0x6803, 0x0000, 0x2d08, 0x7010, 0xa005, 0x1158, 0x7112, 0x684c,
++      0xd0f4, 0x1904, 0x67c6, 0x2e60, 0x080c, 0x70a3, 0x012e, 0x00ee,
++      0x0005, 0x2068, 0x6800, 0xa005, 0x1de0, 0x6902, 0x2168, 0x684c,
++      0xd0f4, 0x1904, 0x67c6, 0x012e, 0x00ee, 0x0005, 0x012e, 0x00ee,
++      0x6853, 0x0006, 0x0804, 0x67e3, 0xd184, 0x0dc0, 0xd1c4, 0x11a8,
++      0x00b8, 0x6944, 0xa18c, 0xff00, 0x810f, 0x080c, 0x5356, 0x15d8,
++      0x6000, 0xd0e4, 0x15c0, 0x711c, 0xa186, 0x0007, 0x1118, 0x6853,
++      0x0002, 0x0498, 0x6853, 0x0008, 0x0480, 0x6853, 0x000e, 0x0468,
++      0x6853, 0x0017, 0x0450, 0x6853, 0x0035, 0x0438, 0x2001, 0xc672,
++      0x2004, 0xd0fc, 0x01e8, 0x6848, 0x2070, 0xae82, 0xce00, 0x02c0,
++      0x605c, 0xae02, 0x12a8, 0x711c, 0xa186, 0x0006, 0x1188, 0x7018,
++      0xa005, 0x0170, 0x2004, 0xd0bc, 0x0158, 0x2039, 0x0001, 0x7000,
++      0xa086, 0x0007, 0x1904, 0x6723, 0x7003, 0x0002, 0x0804, 0x6723,
++      0x6853, 0x0028, 0x0010, 0x6853, 0x0029, 0x012e, 0x00ee, 0x0418,
++      0x6853, 0x002a, 0x0cd0, 0x6853, 0x0045, 0x0cb8, 0x2e60, 0x2019,
++      0x0002, 0x6017, 0x0014, 0x080c, 0xbd6e, 0x012e, 0x00ee, 0x0005,
++      0x2009, 0x003e, 0x0058, 0x2009, 0x0004, 0x0040, 0x2009, 0x0006,
++      0x0028, 0x2009, 0x0016, 0x0010, 0x2009, 0x0001, 0x6854, 0xa084,
++      0xff00, 0xa105, 0x6856, 0x0126, 0x2091, 0x8000, 0x080c, 0x5823,
++      0x012e, 0x0005, 0x080c, 0x1619, 0x0005, 0x702c, 0x7130, 0x8108,
++      0xa102, 0x0230, 0xa00e, 0x7034, 0x7072, 0x7038, 0x7076, 0x0058,
++      0x7070, 0xa080, 0x0040, 0x7072, 0x1230, 0x7074, 0xa081, 0x0000,
++      0x7076, 0xa085, 0x0001, 0x7932, 0x7132, 0x0005, 0x00d6, 0x080c,
++      0x709a, 0x00de, 0x0005, 0x2001, 0xc756, 0x2004, 0xa086, 0x0000,
++      0x0904, 0x6866, 0x080c, 0x76a8, 0x0904, 0x6869, 0x6868, 0xa084,
++      0x0007, 0x0904, 0x685d, 0x080c, 0x95a6, 0x0904, 0x6860, 0x2d00,
++      0x6012, 0x6834, 0xa084, 0x00ff, 0xa086, 0x0035, 0x1198, 0x2001,
++      0xc8e5, 0x2004, 0xa086, 0xaaaa, 0x0130, 0x2001, 0xc635, 0x2004,
++      0xa084, 0x0028, 0x05c8, 0x6008, 0xc0fd, 0x600a, 0x2001, 0xc8d3,
++      0x2004, 0x0098, 0x6870, 0xa084, 0x00ff, 0x696c, 0xa18c, 0xff00,
++      0xa105, 0x696c, 0xa18c, 0x00ff, 0x080c, 0x29c7, 0x11e0, 0x00c6,
++      0x080c, 0x5356, 0x2c00, 0x00ce, 0x11b0, 0x601a, 0x601f, 0x0001,
++      0x2009, 0x0040, 0x6834, 0xa084, 0x00ff, 0xa086, 0x0035, 0x0110,
++      0x2009, 0x0041, 0x080c, 0x962c, 0x0005, 0x684b, 0x0101, 0x0078,
++      0x684b, 0x002c, 0x0060, 0x684b, 0x0028, 0x0080, 0x684b, 0x0104,
++      0x0030, 0x684b, 0x0105, 0x0018, 0x684b, 0x0106, 0x0038, 0x0126,
++      0x2091, 0x8000, 0x080c, 0x5823, 0x012e, 0x0005, 0x0126, 0x2091,
++      0x8000, 0x080c, 0x5823, 0x012e, 0x080c, 0x95fc, 0x0005, 0x00d6,
++      0x00c6, 0x0036, 0x0026, 0x0016, 0x7007, 0x0001, 0x6a44, 0xa282,
++      0x0004, 0x1a04, 0x68ca, 0xd284, 0x0170, 0x6a4c, 0xa290, 0xc77b,
++      0x2204, 0xa065, 0x6004, 0x05e0, 0x8007, 0xa084, 0x00ff, 0xa084,
++      0x0006, 0x1108, 0x04a8, 0x2c10, 0x080c, 0x95a6, 0x1118, 0x080c,
++      0xaf26, 0x05a0, 0x621a, 0x6844, 0x0002, 0x68a9, 0x68ae, 0x68b1,
++      0x68b7, 0x2019, 0x0002, 0x080c, 0xc126, 0x0060, 0x080c, 0xc0bd,
++      0x0048, 0x2019, 0x0002, 0x6950, 0x080c, 0xc0d8, 0x0018, 0x6950,
++      0x080c, 0xc0bd, 0x080c, 0x95fc, 0x6857, 0x0000, 0x0126, 0x2091,
++      0x8000, 0x080c, 0x5823, 0x012e, 0x001e, 0x002e, 0x003e, 0x00ce,
++      0x00de, 0x0005, 0x6857, 0x0006, 0x0c88, 0x6857, 0x0002, 0x0c70,
++      0x6857, 0x0005, 0x0c58, 0x6857, 0x0004, 0x0c40, 0x6857, 0x0007,
++      0x0c28, 0x00d6, 0x2011, 0x0004, 0x2204, 0xa085, 0x8002, 0x2012,
++      0x00de, 0x0005, 0x20e1, 0x0002, 0x3d08, 0x20e1, 0x2000, 0x3d00,
++      0xa084, 0x7000, 0x0118, 0xa086, 0x1000, 0x15e0, 0x20e1, 0x0000,
++      0x3d00, 0xa094, 0xff00, 0x8217, 0xa084, 0xf000, 0xa086, 0x3000,
++      0x1160, 0xa184, 0xff00, 0x8007, 0xa086, 0x0008, 0x1558, 0x080c,
++      0x2f69, 0x1540, 0x080c, 0x6b4b, 0x0400, 0x20e1, 0x0004, 0x3d60,
++      0xd1bc, 0x1170, 0x2100, 0xa084, 0xff00, 0xa086, 0x0500, 0x1138,
++      0x0026, 0x2c10, 0x080c, 0x6da9, 0x002e, 0x01a0, 0x0070, 0x3e60,
++      0xac84, 0x0007, 0x1178, 0xac82, 0xce00, 0x0260, 0x685c, 0xac02,
++      0x1248, 0x2009, 0x0047, 0x080c, 0x962c, 0x7a1c, 0xd284, 0x1904,
++      0x68e2, 0x0005, 0xa016, 0x080c, 0x1870, 0x0cb8, 0x0cd8, 0x781c,
++      0xd08c, 0x0500, 0x0156, 0x0136, 0x0146, 0x20e1, 0x3000, 0x3d20,
++      0x3e28, 0xa584, 0x0076, 0x1538, 0xa484, 0x7000, 0xa086, 0x1000,
++      0x11a8, 0x080c, 0x69aa, 0x01f8, 0x20e1, 0x3000, 0x7828, 0x7828,
++      0x080c, 0x69c6, 0x014e, 0x013e, 0x015e, 0x2009, 0xc92f, 0x2104,
++      0xa005, 0x1108, 0x0005, 0x080c, 0x7ead, 0x0ce0, 0xa484, 0x7000,
++      0x1548, 0x080c, 0x69aa, 0x01d8, 0x7000, 0xa084, 0xff00, 0xa086,
++      0x8100, 0x0d10, 0x00a0, 0xd5a4, 0x0178, 0x0056, 0x0046, 0x080c,
++      0x1f2d, 0x080c, 0x25fb, 0x2001, 0x0160, 0x2502, 0x2001, 0x0138,
++      0x2202, 0x004e, 0x005e, 0x0048, 0x04a9, 0x6887, 0x0000, 0x080c,
++      0xc54f, 0x20e1, 0x3000, 0x7828, 0x7828, 0x00b9, 0x014e, 0x013e,
++      0x015e, 0x0880, 0x0439, 0x1130, 0x7000, 0xa084, 0xff00, 0xa086,
++      0x8100, 0x1d68, 0x080c, 0xc54f, 0x20e1, 0x3000, 0x7828, 0x7828,
++      0x0056, 0x080c, 0x6e38, 0x005e, 0x0c40, 0x2001, 0xc60e, 0x2004,
++      0xd08c, 0x0178, 0x2001, 0xc600, 0x2004, 0xa086, 0x0003, 0x1148,
++      0x0026, 0x0036, 0x2011, 0x8048, 0x2518, 0x080c, 0x4096, 0x003e,
++      0x002e, 0x0005, 0xa484, 0x01ff, 0x6886, 0xa005, 0x0160, 0xa080,
++      0x001f, 0xa084, 0x03f8, 0x80ac, 0x20e1, 0x1000, 0x2ea0, 0x2099,
++      0x020a, 0x53a5, 0x0005, 0x20a9, 0x000c, 0x20e1, 0x1000, 0x2ea0,
++      0x2099, 0x020a, 0x53a5, 0xa085, 0x0001, 0x0ca0, 0x7000, 0xa084,
++      0xff00, 0xa08c, 0xf000, 0x8007, 0xa196, 0x0000, 0x1118, 0x0804,
++      0x6c50, 0x0005, 0xa196, 0x2000, 0x1148, 0x6900, 0xa18e, 0x0001,
++      0x1118, 0x080c, 0x47e4, 0x0ca8, 0x0039, 0x0c98, 0xa196, 0x8000,
++      0x1d80, 0x080c, 0x6cfc, 0x0c68, 0x00c6, 0x6a84, 0x82ff, 0x0904,
++      0x6b45, 0x7110, 0xa18c, 0xff00, 0x810f, 0xa196, 0x0001, 0x0120,
++      0xa196, 0x0023, 0x1904, 0x6b45, 0xa08e, 0x0023, 0x1570, 0x080c,
++      0x6d97, 0x0904, 0x6b45, 0x7124, 0x610a, 0x7030, 0xa08e, 0x0200,
++      0x1150, 0x7034, 0xa005, 0x1904, 0x6b45, 0x2009, 0x0015, 0x080c,
++      0x962c, 0x0804, 0x6b45, 0xa08e, 0x0214, 0x0118, 0xa08e, 0x0210,
++      0x1130, 0x2009, 0x0015, 0x080c, 0x962c, 0x0804, 0x6b45, 0xa08e,
++      0x0100, 0x1904, 0x6b45, 0x7034, 0xa005, 0x1904, 0x6b45, 0x2009,
++      0x0016, 0x080c, 0x962c, 0x0804, 0x6b45, 0xa08e, 0x0022, 0x1904,
++      0x6b45, 0x7030, 0xa08e, 0x0300, 0x1580, 0x68d4, 0xd0a4, 0x0528,
++      0xc0b5, 0x68d6, 0x7100, 0xa18c, 0x00ff, 0x6972, 0x7004, 0x6876,
++      0x00f6, 0x2079, 0x0100, 0x79e6, 0x78ea, 0x0006, 0xa084, 0x00ff,
++      0x0016, 0x2008, 0x080c, 0x29f1, 0x7932, 0x7936, 0x001e, 0x000e,
++      0x00fe, 0x080c, 0x29c7, 0x6952, 0x703c, 0x00e6, 0x2071, 0x0140,
++      0x7086, 0x2071, 0xc600, 0x70a6, 0x00ee, 0x7034, 0xa005, 0x1904,
++      0x6b45, 0x2009, 0x0017, 0x0804, 0x6b0b, 0xa08e, 0x0400, 0x1158,
++      0x7034, 0xa005, 0x1904, 0x6b45, 0x68d4, 0xc0a5, 0x68d6, 0x2009,
++      0x0030, 0x0804, 0x6b0b, 0xa08e, 0x0500, 0x1140, 0x7034, 0xa005,
++      0x1904, 0x6b45, 0x2009, 0x0018, 0x0804, 0x6b0b, 0xa08e, 0x2010,
++      0x1120, 0x2009, 0x0019, 0x0804, 0x6b0b, 0xa08e, 0x2110, 0x1120,
++      0x2009, 0x001a, 0x0804, 0x6b0b, 0xa08e, 0x5200, 0x1140, 0x7034,
++      0xa005, 0x1904, 0x6b45, 0x2009, 0x001b, 0x0804, 0x6b0b, 0xa08e,
++      0x5000, 0x1140, 0x7034, 0xa005, 0x1904, 0x6b45, 0x2009, 0x001c,
++      0x0804, 0x6b0b, 0xa08e, 0x1300, 0x1120, 0x2009, 0x0034, 0x0804,
++      0x6b0b, 0xa08e, 0x1200, 0x1140, 0x7034, 0xa005, 0x1904, 0x6b45,
++      0x2009, 0x0024, 0x0804, 0x6b0b, 0xa08c, 0xff00, 0xa18e, 0x2400,
++      0x1120, 0x2009, 0x002d, 0x0804, 0x6b0b, 0xa08c, 0xff00, 0xa18e,
++      0x5300, 0x1120, 0x2009, 0x002a, 0x0804, 0x6b0b, 0xa08e, 0x0f00,
++      0x1120, 0x2009, 0x0020, 0x0804, 0x6b0b, 0xa08e, 0x5300, 0x1108,
++      0x00d8, 0xa08e, 0x6104, 0x11c0, 0x2011, 0xcc8d, 0x8208, 0x2204,
++      0xa082, 0x0004, 0x20a8, 0x95ac, 0x95ac, 0x2011, 0x8015, 0x211c,
++      0x8108, 0x0046, 0x2124, 0x080c, 0x4096, 0x004e, 0x8108, 0x1f04,
++      0x6ad5, 0x2009, 0x0023, 0x0438, 0xa08e, 0x6000, 0x1118, 0x2009,
++      0x003f, 0x0408, 0xa08e, 0x5400, 0x1158, 0x080c, 0x6e92, 0x1904,
++      0x6b45, 0x2009, 0x0046, 0x0016, 0x2001, 0xc8d3, 0x2064, 0x0498,
++      0xa08e, 0x5500, 0x1140, 0x080c, 0x6ec5, 0x2009, 0x0041, 0x0158,
++      0x2009, 0x0042, 0x0040, 0xa08e, 0x7800, 0x1118, 0x2009, 0x0045,
++      0x0010, 0x2009, 0x001d, 0x0016, 0x2011, 0xcc83, 0x2204, 0x8211,
++      0x220c, 0x080c, 0x29c7, 0x1598, 0x080c, 0x52fa, 0x1580, 0x6612,
++      0x6516, 0x86ff, 0x01e8, 0x001e, 0x0016, 0xa186, 0x0017, 0x1158,
++      0x6870, 0xa606, 0x11a8, 0x6874, 0xa506, 0xa084, 0xff00, 0x1180,
++      0x6000, 0xc0f5, 0x6002, 0xa186, 0x0046, 0x1150, 0x6870, 0xa606,
++      0x1138, 0x6874, 0xa506, 0xa084, 0xff00, 0x1110, 0x001e, 0x0068,
++      0x00c6, 0x080c, 0x95a6, 0x0168, 0x001e, 0x611a, 0x601f, 0x0004,
++      0x7120, 0x610a, 0x001e, 0x080c, 0x962c, 0x00ce, 0x0005, 0x001e,
++      0x0ce0, 0x00ce, 0x0ce0, 0x00c6, 0x0046, 0x080c, 0x6b9f, 0x1904,
++      0x6b9c, 0xa28e, 0x0033, 0x11e8, 0x080c, 0x6d97, 0x0904, 0x6b9c,
++      0x7124, 0x610a, 0x7030, 0xa08e, 0x0200, 0x1140, 0x7034, 0xa005,
++      0x15d8, 0x2009, 0x0015, 0x080c, 0x962c, 0x04b0, 0xa08e, 0x0100,
++      0x1598, 0x7034, 0xa005, 0x1580, 0x2009, 0x0016, 0x080c, 0x962c,
++      0x0458, 0xa28e, 0x0032, 0x1540, 0x7030, 0xa08e, 0x1400, 0x1520,
++      0x2009, 0x0038, 0x0016, 0x2011, 0xcc83, 0x2204, 0x8211, 0x220c,
++      0x080c, 0x29c7, 0x11c0, 0x080c, 0x52fa, 0x11a8, 0x6612, 0x6516,
++      0x00c6, 0x080c, 0x95a6, 0x0170, 0x001e, 0x611a, 0x080c, 0xb077,
++      0x601f, 0x0004, 0x7120, 0x610a, 0x001e, 0x080c, 0x962c, 0x080c,
++      0x7ead, 0x0010, 0x00ce, 0x001e, 0x004e, 0x00ce, 0x0005, 0x00f6,
++      0x00d6, 0x0026, 0x0016, 0x0136, 0x0146, 0x0156, 0x3c00, 0x0006,
++      0x2079, 0x0030, 0x2069, 0x0200, 0x080c, 0x1fec, 0x1590, 0x080c,
++      0x1e97, 0x05e0, 0x04f1, 0x1130, 0x7908, 0xa18c, 0x1fff, 0xa182,
++      0x0011, 0x1688, 0x20a9, 0x000c, 0x20e1, 0x0000, 0x2ea0, 0x2099,
++      0x020a, 0x53a5, 0x20e1, 0x2000, 0x2001, 0x020a, 0x2004, 0x7a0c,
++      0x7808, 0xa080, 0x0007, 0xa084, 0x1ff8, 0x0419, 0x1120, 0xa08a,
++      0x0140, 0x1a0c, 0x1519, 0x80ac, 0x20e1, 0x6000, 0x2099, 0x020a,
++      0x53a5, 0x20e1, 0x7000, 0x6828, 0x6828, 0x7803, 0x0004, 0xa294,
++      0x0070, 0x000e, 0x20e0, 0x015e, 0x014e, 0x013e, 0x001e, 0x002e,
++      0x00de, 0x00fe, 0x0005, 0xa016, 0x080c, 0x1870, 0xa085, 0x0001,
++      0x0c80, 0x0006, 0x2001, 0x0111, 0x2004, 0xa084, 0x0003, 0x000e,
++      0x0005, 0x0046, 0x00e6, 0x00d6, 0x2028, 0x2130, 0xa696, 0x00ff,
++      0x1198, 0xa596, 0xfffd, 0x1120, 0x2009, 0x007f, 0x0804, 0x6c4b,
++      0xa596, 0xfffe, 0x1118, 0x2009, 0x007e, 0x04e8, 0xa596, 0xfffc,
++      0x1118, 0x2009, 0x0080, 0x04b8, 0x2011, 0x0000, 0x2019, 0xc635,
++      0x231c, 0xd3ac, 0x0138, 0x2021, 0x0000, 0x20a9, 0x00ff, 0x2071,
++      0xc77b, 0x0030, 0x2021, 0x0081, 0x20a9, 0x007e, 0x2071, 0xc7fc,
++      0x2e1c, 0x83ff, 0x1128, 0x82ff, 0x1198, 0x2410, 0xc2fd, 0x0080,
++      0x2368, 0x6f10, 0x0006, 0x2100, 0xa706, 0x000e, 0x6b14, 0x1120,
++      0xa346, 0x1110, 0x2408, 0x0078, 0x87ff, 0x1110, 0x83ff, 0x0d58,
++      0x8420, 0x8e70, 0x1f04, 0x6c28, 0x82ff, 0x1118, 0xa085, 0x0001,
++      0x0018, 0xc2fc, 0x2208, 0xa006, 0x00de, 0x00ee, 0x004e, 0x0005,
++      0xa084, 0x0007, 0x000a, 0x0005, 0x6c5c, 0x6c5c, 0x6c5c, 0x6e25,
++      0x6c5c, 0x6c5d, 0x6c72, 0x6ce7, 0x0005, 0x7110, 0xd1bc, 0x0188,
++      0x7120, 0x2160, 0xac8c, 0x0007, 0x1160, 0xac8a, 0xce00, 0x0248,
++      0x685c, 0xac02, 0x1230, 0x7124, 0x610a, 0x2009, 0x0046, 0x080c,
++      0x962c, 0x0005, 0x00c6, 0xa484, 0x01ff, 0x0904, 0x6cc5, 0x7110,
++      0xd1bc, 0x1904, 0x6cc5, 0x2011, 0xcc83, 0x2204, 0x8211, 0x220c,
++      0x080c, 0x29c7, 0x1904, 0x6cc5, 0x080c, 0x52fa, 0x15f0, 0x6612,
++      0x6516, 0x6000, 0xd0ec, 0x15c8, 0x6204, 0xa294, 0xff00, 0x8217,
++      0xa286, 0x0006, 0x0148, 0x6204, 0xa294, 0x00ff, 0xa286, 0x0006,
++      0x11a0, 0xa295, 0x0600, 0x6206, 0x00c6, 0x080c, 0x95a6, 0x001e,
++      0x0530, 0x611a, 0x601f, 0x0006, 0x7120, 0x610a, 0x7130, 0x6152,
++      0x2009, 0x0044, 0x080c, 0x962c, 0x00c0, 0x00c6, 0x080c, 0x95a6,
++      0x001e, 0x0198, 0x611a, 0x601f, 0x0004, 0x7120, 0x610a, 0xa286,
++      0x0004, 0x1118, 0x6007, 0x0005, 0x0010, 0x6007, 0x0001, 0x6003,
++      0x0001, 0x080c, 0x79f8, 0x080c, 0x7ead, 0x00ce, 0x0005, 0x2001,
++      0xc60d, 0x2004, 0xd0ec, 0x0120, 0x2011, 0x8049, 0x080c, 0x4096,
++      0x00c6, 0x080c, 0xaf26, 0x001e, 0x0d80, 0x611a, 0x601f, 0x0006,
++      0x7120, 0x610a, 0x7130, 0x6152, 0x6013, 0x0300, 0x6003, 0x0001,
++      0x6007, 0x0041, 0x080c, 0x79b2, 0x080c, 0x7ead, 0x08f0, 0x7110,
++      0xd1bc, 0x0188, 0x7020, 0x2060, 0xac84, 0x0007, 0x1160, 0xac82,
++      0xce00, 0x0248, 0x685c, 0xac02, 0x1230, 0x7124, 0x610a, 0x2009,
++      0x0045, 0x080c, 0x962c, 0x0005, 0x0006, 0x080c, 0x2f69, 0x000e,
++      0x1168, 0x7110, 0xa18c, 0xff00, 0x810f, 0xa18e, 0x0000, 0x1130,
++      0xa084, 0x000f, 0xa08a, 0x0006, 0x1208, 0x000b, 0x0005, 0x6d15,
++      0x6d16, 0x6d15, 0x6d15, 0x6d7f, 0x6d8b, 0x0005, 0x7110, 0xd1bc,
++      0x0120, 0x702c, 0xd084, 0x0904, 0x6d7e, 0x700c, 0x7108, 0x080c,
++      0x29c7, 0x1904, 0x6d7e, 0x080c, 0x52fa, 0x1904, 0x6d7e, 0x6612,
++      0x6516, 0x6204, 0x7110, 0xd1bc, 0x01f8, 0xa28c, 0x00ff, 0xa186,
++      0x0004, 0x0118, 0xa186, 0x0006, 0x15c8, 0x00c6, 0x080c, 0x6d97,
++      0x00ce, 0x0904, 0x6d7e, 0x00c6, 0x080c, 0x95a6, 0x001e, 0x05f0,
++      0x611a, 0x080c, 0xb077, 0x601f, 0x0002, 0x7120, 0x610a, 0x2009,
++      0x0088, 0x080c, 0x962c, 0x0490, 0xa28c, 0x00ff, 0xa186, 0x0006,
++      0x0160, 0xa186, 0x0004, 0x0148, 0xa294, 0xff00, 0x8217, 0xa286,
++      0x0004, 0x0118, 0xa286, 0x0006, 0x1188, 0x00c6, 0x080c, 0x95a6,
++      0x001e, 0x01e0, 0x611a, 0x080c, 0xb077, 0x601f, 0x0005, 0x7120,
++      0x610a, 0x2009, 0x0088, 0x080c, 0x962c, 0x0080, 0x00c6, 0x080c,
++      0x95a6, 0x001e, 0x0158, 0x611a, 0x080c, 0xb077, 0x601f, 0x0004,
++      0x7120, 0x610a, 0x2009, 0x0001, 0x080c, 0x962c, 0x0005, 0x7110,
++      0xd1bc, 0x0140, 0x00a1, 0x0130, 0x7124, 0x610a, 0x2009, 0x0089,
++      0x080c, 0x962c, 0x0005, 0x7110, 0xd1bc, 0x0140, 0x0041, 0x0130,
++      0x7124, 0x610a, 0x2009, 0x008a, 0x080c, 0x962c, 0x0005, 0x7020,
++      0x2060, 0xac84, 0x0007, 0x1158, 0xac82, 0xce00, 0x0240, 0x2001,
++      0xc617, 0x2004, 0xac02, 0x1218, 0xa085, 0x0001, 0x0005, 0xa006,
++      0x0ce8, 0x00c6, 0x00d6, 0x00e6, 0x080c, 0x2f69, 0x1904, 0x6e20,
++      0x2001, 0xc756, 0x2004, 0xa086, 0x0000, 0x0904, 0x6e20, 0x20e1,
++      0x0000, 0x3d08, 0xa18c, 0x00ff, 0xa18e, 0x00ff, 0x1500, 0x3e00,
++      0xa086, 0xffff, 0x11e0, 0x2001, 0xc8d3, 0x2064, 0x2009, 0x00ff,
++      0x0006, 0x0016, 0x2001, 0xc61d, 0x2004, 0x20e1, 0x0001, 0x3e08,
++      0xa106, 0x1130, 0x2001, 0xc61c, 0x2004, 0x3d08, 0xa106, 0x0118,
++      0x001e, 0x000e, 0x00a8, 0x001e, 0x000e, 0x0804, 0x6e20, 0x20e1,
++      0x0001, 0x3d08, 0x3e00, 0x0156, 0x080c, 0x29c7, 0x015e, 0x15c0,
++      0x080c, 0x5356, 0x0128, 0x2001, 0xc8d3, 0x2064, 0x2009, 0x00ff,
++      0x2138, 0x873f, 0x2c00, 0x2070, 0x20e1, 0x0003, 0x3d18, 0x831f,
++      0xa39c, 0x00ff, 0x20e1, 0x2000, 0x3d00, 0xa084, 0x7000, 0xa086,
++      0x1000, 0x0120, 0x080c, 0x7603, 0x11d8, 0x0080, 0x080c, 0x95a6,
++      0x01b8, 0x20e1, 0x0002, 0x3e08, 0xd19c, 0x0118, 0x6124, 0xc19d,
++      0x6126, 0x2e00, 0x601a, 0x620a, 0x601f, 0x0009, 0x2009, 0x0101,
++      0x080c, 0x962c, 0xa085, 0x0001, 0x00ee, 0x00de, 0x00ce, 0x0005,
++      0xa006, 0x00ee, 0x00de, 0x00ce, 0x0005, 0x7110, 0xd1bc, 0x1178,
++      0x7024, 0x2060, 0xac84, 0x0007, 0x1150, 0xac82, 0xce00, 0x0238,
++      0x685c, 0xac02, 0x1220, 0x2009, 0x0051, 0x080c, 0x962c, 0x0005,
++      0x2031, 0x0105, 0x0069, 0x0005, 0x2031, 0x0206, 0x0049, 0x0005,
++      0x2031, 0x0207, 0x0029, 0x0005, 0x2031, 0x0213, 0x0009, 0x0005,
++      0x00c6, 0x00d6, 0x00f6, 0x7000, 0xa084, 0xf000, 0xa086, 0xc000,
++      0x05b0, 0x080c, 0x95a6, 0x0598, 0x0066, 0x00c6, 0x0046, 0x2011,
++      0xcc83, 0x2204, 0x8211, 0x220c, 0x080c, 0x29c7, 0x1580, 0x080c,
++      0x52fa, 0x1568, 0x6612, 0x6516, 0x2c00, 0x004e, 0x00ce, 0x601a,
++      0x080c, 0xb077, 0x080c, 0x1602, 0x01f0, 0x2d00, 0x6056, 0x6803,
++      0x0000, 0x6837, 0x0000, 0x6c3a, 0xadf8, 0x000f, 0x20a9, 0x000e,
++      0x2fa0, 0x2e98, 0x53a3, 0x006e, 0x6612, 0x6007, 0x003e, 0x601f,
++      0x0001, 0x6003, 0x0001, 0x080c, 0x79f8, 0x080c, 0x7ead, 0x00fe,
++      0x00de, 0x00ce, 0x0005, 0x080c, 0x95fc, 0x006e, 0x0cc0, 0x004e,
++      0x00ce, 0x0cc8, 0x0156, 0x0046, 0x2e00, 0xa0a0, 0x000e, 0x2404,
++      0x2020, 0x8427, 0xa4a4, 0x0007, 0xd484, 0x0148, 0x20a9, 0x0003,
++      0x2019, 0xc606, 0x2011, 0xcc9b, 0x080c, 0xa11c, 0x11d8, 0xd48c,
++      0x0148, 0x20a9, 0x0003, 0x2019, 0xc602, 0x2011, 0xcc9f, 0x080c,
++      0xa11c, 0x1180, 0xd494, 0x0170, 0x080c, 0x76ad, 0x0148, 0x20a9,
++      0x0008, 0x2019, 0xc69a, 0x2011, 0xccaa, 0x080c, 0xa131, 0x0010,
++      0xa085, 0x0001, 0x004e, 0x015e, 0x0005, 0x0156, 0x0046, 0x2e00,
++      0xa0a0, 0x000e, 0x2404, 0x2020, 0x8427, 0xa4a4, 0x0007, 0xd484,
++      0x0148, 0x20a9, 0x0003, 0x2019, 0xc606, 0x2011, 0xcc93, 0x080c,
++      0xa11c, 0x11d8, 0xd48c, 0x0148, 0x20a9, 0x0003, 0x2019, 0xc602,
++      0x2011, 0xcc97, 0x080c, 0xa11c, 0x1180, 0xd494, 0x0170, 0x080c,
++      0x76ad, 0x0148, 0x20a9, 0x0008, 0x2019, 0xc69a, 0x2011, 0xcca2,
++      0x080c, 0xa131, 0x0010, 0xa085, 0x0001, 0x004e, 0x015e, 0x0005,
++      0x2071, 0xc93a, 0x7003, 0x0003, 0x700f, 0x0361, 0xa006, 0x701a,
++      0x7076, 0x7012, 0x7017, 0xce00, 0x7007, 0x0000, 0x7026, 0x702b,
++      0x8c25, 0x7032, 0x7037, 0x8c85, 0x703b, 0xffff, 0x703f, 0xffff,
++      0x7042, 0x7047, 0x47a0, 0x704a, 0x705b, 0x7058, 0x2001, 0xc8e8,
++      0x2003, 0x0003, 0x2001, 0xc8ea, 0x2003, 0x0100, 0x3a00, 0xa084,
++      0x0005, 0x706e, 0x0005, 0x2071, 0xc93a, 0x1d04, 0x6fb5, 0x2091,
++      0x6000, 0x700c, 0x8001, 0x700e, 0x1518, 0x700f, 0x0361, 0x7007,
++      0x0001, 0x0126, 0x2091, 0x8000, 0x7040, 0xa00d, 0x0128, 0x8109,
++      0x7142, 0x1110, 0x7044, 0x080f, 0x00c6, 0x2061, 0xc600, 0x6034,
++      0x00ce, 0xd0cc, 0x0180, 0x3a00, 0xa084, 0x0005, 0x726c, 0xa216,
++      0x0150, 0x706e, 0x2011, 0x8043, 0x2018, 0x080c, 0x4096, 0x0018,
++      0x0126, 0x2091, 0x8000, 0x7024, 0xa00d, 0x0188, 0x7020, 0x8001,
++      0x7022, 0x1168, 0x7023, 0x0009, 0x8109, 0x7126, 0xa186, 0x03e8,
++      0x1110, 0x7028, 0x080f, 0x81ff, 0x1110, 0x7028, 0x080f, 0x7030,
++      0xa00d, 0x0180, 0x702c, 0x8001, 0x702e, 0x1160, 0x702f, 0x0009,
++      0x8109, 0x7132, 0x0128, 0xa184, 0x007f, 0x090c, 0x8ce1, 0x0010,
++      0x7034, 0x080f, 0x7038, 0xa005, 0x0118, 0x0310, 0x8001, 0x703a,
++      0x703c, 0xa005, 0x0118, 0x0310, 0x8001, 0x703e, 0x704c, 0xa00d,
++      0x0168, 0x7048, 0x8001, 0x704a, 0x1148, 0x704b, 0x0009, 0x8109,
++      0x714e, 0x1120, 0x7150, 0x714e, 0x7058, 0x080f, 0x7018, 0xa00d,
++      0x01d8, 0x0016, 0x7074, 0xa00d, 0x0158, 0x7070, 0x8001, 0x7072,
++      0x1138, 0x7073, 0x0009, 0x8109, 0x7176, 0x1110, 0x7078, 0x080f,
++      0x001e, 0x7008, 0x8001, 0x700a, 0x1138, 0x700b, 0x0009, 0x8109,
++      0x711a, 0x1110, 0x701c, 0x080f, 0x012e, 0x7004, 0x0002, 0x6fdb,
++      0x6fdc, 0x6ff4, 0x00e6, 0x2071, 0xc93a, 0x7018, 0xa005, 0x1120,
++      0x711a, 0x721e, 0x700b, 0x0009, 0x00ee, 0x0005, 0x00e6, 0x0006,
++      0x2071, 0xc93a, 0x701c, 0xa206, 0x1110, 0x701a, 0x701e, 0x000e,
++      0x00ee, 0x0005, 0x00e6, 0x2071, 0xc93a, 0x6088, 0xa102, 0x0208,
++      0x618a, 0x00ee, 0x0005, 0x0005, 0x7110, 0x080c, 0x5356, 0x1158,
++      0x6088, 0x8001, 0x0240, 0x608a, 0x1130, 0x0126, 0x2091, 0x8000,
++      0x080c, 0x7ead, 0x012e, 0x8108, 0xa182, 0x00ff, 0x0218, 0xa00e,
++      0x7007, 0x0002, 0x7112, 0x0005, 0x7014, 0x2060, 0x0126, 0x2091,
++      0x8000, 0x603c, 0xa005, 0x0128, 0x8001, 0x603e, 0x1110, 0x080c,
++      0xaf65, 0x6014, 0xa005, 0x0518, 0x8001, 0x6016, 0x1500, 0x611c,
++      0xa186, 0x0003, 0x0130, 0xa186, 0x0006, 0x0118, 0xa186, 0x0009,
++      0x11a0, 0x6010, 0x2068, 0x6854, 0xa08a, 0x199a, 0x0270, 0xa082,
++      0x1999, 0x6856, 0xa08a, 0x199a, 0x0210, 0x2001, 0x1999, 0x8003,
++      0x800b, 0x810b, 0xa108, 0x6116, 0x0010, 0x080c, 0xaa35, 0x012e,
++      0xac88, 0x0018, 0x7116, 0x2001, 0xfe00, 0xa102, 0x0220, 0x7017,
++      0xce00, 0x7007, 0x0000, 0x0005, 0x00e6, 0x2071, 0xc93a, 0x7027,
++      0x07d0, 0x7023, 0x0009, 0x00ee, 0x0005, 0x2001, 0xc943, 0x2003,
++      0x0000, 0x0005, 0x00e6, 0x2071, 0xc93a, 0x7132, 0x702f, 0x0009,
++      0x00ee, 0x0005, 0x2011, 0xc946, 0x2013, 0x0000, 0x0005, 0x00e6,
++      0x2071, 0xc93a, 0x711a, 0x721e, 0x700b, 0x0009, 0x00ee, 0x0005,
++      0x00c6, 0x0026, 0x7054, 0x8000, 0x7056, 0x2061, 0xc8e8, 0x6008,
++      0xa086, 0x0000, 0x0158, 0x7068, 0x6032, 0x7064, 0x602e, 0x7060,
++      0x602a, 0x705c, 0x6026, 0x2c10, 0x080c, 0x164d, 0x002e, 0x00ce,
++      0x0005, 0x0006, 0x0016, 0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x080c,
++      0x6f23, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x001e, 0x000e, 0x0005,
++      0x00e6, 0x2071, 0xc93a, 0x7176, 0x727a, 0x7073, 0x0009, 0x00ee,
++      0x0005, 0x00e6, 0x0006, 0x2071, 0xc93a, 0x7078, 0xa206, 0x1110,
++      0x7076, 0x707a, 0x000e, 0x00ee, 0x0005, 0x00c6, 0x2061, 0xc9bc,
++      0x00ce, 0x0005, 0xa184, 0x000f, 0x8003, 0x8003, 0x8003, 0xa080,
++      0xc9bc, 0x2060, 0x0005, 0x6854, 0xa08a, 0x199a, 0x0210, 0x2001,
++      0x1999, 0xa005, 0x1150, 0x00c6, 0x2061, 0xc9bc, 0x6014, 0x00ce,
++      0xa005, 0x1138, 0x2001, 0x001e, 0x0020, 0xa08e, 0xffff, 0x1108,
++      0xa006, 0x8003, 0x800b, 0x810b, 0xa108, 0x6116, 0x684c, 0xa08c,
++      0x00c0, 0xa18e, 0x00c0, 0x05e8, 0xd0b4, 0x1138, 0xd0bc, 0x1550,
++      0x2009, 0x0006, 0x080c, 0x711e, 0x0005, 0xd0fc, 0x0138, 0xa084,
++      0x0003, 0x0120, 0xa086, 0x0003, 0x1904, 0x7118, 0x6020, 0xd0d4,
++      0x0130, 0xc0d4, 0x6022, 0x6860, 0x602a, 0x685c, 0x602e, 0x2009,
++      0xc674, 0x2104, 0xd084, 0x0138, 0x87ff, 0x1120, 0x2009, 0x0042,
++      0x080c, 0x962c, 0x0005, 0x87ff, 0x1120, 0x2009, 0x0043, 0x080c,
++      0x962c, 0x0005, 0xd0fc, 0x0130, 0xa084, 0x0003, 0x0118, 0xa086,
++      0x0003, 0x11f0, 0x87ff, 0x1120, 0x2009, 0x0042, 0x080c, 0x962c,
++      0x0005, 0xd0fc, 0x0160, 0xa084, 0x0003, 0xa08e, 0x0002, 0x0148,
++      0x87ff, 0x1120, 0x2009, 0x0041, 0x080c, 0x962c, 0x0005, 0x0061,
++      0x0ce8, 0x87ff, 0x1dd8, 0x2009, 0x0043, 0x080c, 0x962c, 0x0cb0,
++      0x2009, 0x0004, 0x0019, 0x0005, 0x2009, 0x0001, 0x00d6, 0x6010,
++      0xa0ec, 0xf000, 0x0510, 0x2068, 0x6952, 0x6800, 0x6012, 0xa186,
++      0x0001, 0x1188, 0x694c, 0xa18c, 0x8100, 0xa18e, 0x8100, 0x1158,
++      0x00c6, 0x2061, 0xc9bc, 0x6200, 0xd28c, 0x1120, 0x6204, 0x8210,
++      0x0208, 0x6206, 0x00ce, 0x080c, 0x5823, 0x6010, 0xa06d, 0x0076,
++      0x2039, 0x0000, 0x190c, 0x70a3, 0x007e, 0x00de, 0x0005, 0x0156,
++      0x00c6, 0x2061, 0xc9bc, 0x6000, 0x81ff, 0x0110, 0xa205, 0x0008,
++      0xa204, 0x6002, 0x00ce, 0x015e, 0x0005, 0x6800, 0xd08c, 0x1138,
++      0x6808, 0xa005, 0x0120, 0x8001, 0x680a, 0xa085, 0x0001, 0x0005,
++      0x2071, 0xc755, 0x7003, 0x0006, 0x7007, 0x0000, 0x700f, 0x0000,
++      0x7013, 0x0001, 0x702f, 0x0006, 0x7033, 0x0001, 0x7063, 0x0000,
++      0x0005, 0x00e6, 0x2071, 0xc755, 0x6a2c, 0x721e, 0x6b30, 0x7322,
++      0x6834, 0x7026, 0x705a, 0x6838, 0x702a, 0x705e, 0x6824, 0x7016,
++      0x683c, 0x701a, 0x2009, 0x0070, 0x200a, 0xa005, 0x0150, 0x2009,
++      0x0000, 0xa188, 0x000c, 0x8001, 0x1de0, 0x2100, 0xa210, 0x1208,
++      0x8318, 0x7252, 0x7356, 0x7010, 0xc084, 0x7012, 0x7007, 0x0001,
++      0x700f, 0x0000, 0xa006, 0x00ee, 0x0005, 0x2b78, 0x2071, 0xc755,
++      0x7004, 0x004b, 0x700c, 0x0002, 0x71a7, 0x71a0, 0x71a0, 0x0005,
++      0x71b1, 0x7202, 0x7203, 0x7204, 0x7205, 0x7218, 0x7219, 0x700c,
++      0x0cba, 0x2f00, 0xa080, 0x0070, 0x2004, 0x2f08, 0xa188, 0x0070,
++      0x210c, 0xa106, 0x0150, 0x2f00, 0xa080, 0x0070, 0x2004, 0x2f08,
++      0xa188, 0x0070, 0x210c, 0xa106, 0x15e0, 0x7018, 0xa10a, 0x1118,
++      0x080c, 0x7246, 0x04b0, 0x1210, 0x7114, 0xa10a, 0xa192, 0x000a,
++      0x0210, 0x2009, 0x000a, 0x00d6, 0x0016, 0x2001, 0xc682, 0xa080,
++      0x0011, 0x2014, 0x2001, 0xc76f, 0xa080, 0x0005, 0x2004, 0xa100,
++      0xa202, 0x001e, 0x00de, 0x0e20, 0x080c, 0x7295, 0x2200, 0xa102,
++      0x0208, 0x2208, 0x713a, 0x080c, 0x7390, 0x2100, 0x7042, 0x2001,
++      0x0002, 0x7037, 0x0000, 0x0126, 0x0006, 0x2091, 0x8000, 0x2009,
++      0xc959, 0x2104, 0xc095, 0x200a, 0x000e, 0x700e, 0x012e, 0x080c,
++      0x1669, 0x0005, 0x0005, 0x0005, 0x0005, 0x700c, 0x0002, 0x720a,
++      0x720d, 0x7217, 0x080c, 0x71af, 0x0005, 0x0126, 0x8001, 0x700e,
++      0x7138, 0x0041, 0x2091, 0x8000, 0x080c, 0x71af, 0x012e, 0x0005,
++      0x0005, 0x0005, 0x7018, 0xa100, 0x7214, 0xa21a, 0x1130, 0x701c,
++      0x7052, 0x7020, 0x7056, 0xa006, 0x0068, 0x0006, 0x080c, 0x7390,
++      0x2100, 0x7250, 0xa210, 0x7252, 0x1220, 0x7054, 0xa081, 0x0000,
++      0x7056, 0x000e, 0x2f08, 0xa188, 0x0070, 0x200a, 0x701a, 0x0005,
++      0x00e6, 0x2071, 0xc755, 0x700c, 0x0002, 0x7240, 0x7240, 0x7242,
++      0x00ee, 0x0005, 0x700f, 0x0001, 0x00ee, 0x0005, 0x0126, 0x2091,
++      0x8000, 0x00d6, 0x00e6, 0x2071, 0xc76f, 0x702c, 0xa005, 0x0178,
++      0x2068, 0x6964, 0x080c, 0x7295, 0x2100, 0x2208, 0xa102, 0x0238,
++      0x6800, 0x702e, 0x080c, 0x75d2, 0x080c, 0x1629, 0x0c70, 0x00ee,
++      0x00de, 0x012e, 0x0005, 0x00e6, 0x2071, 0xc76f, 0x702c, 0x6802,
++      0x2d00, 0x702e, 0x6858, 0x7120, 0xa102, 0x0a0c, 0x1519, 0x7022,
++      0x685b, 0x0000, 0x00ee, 0x0005, 0x00d6, 0x00e6, 0x2071, 0xc76f,
++      0xa006, 0x7006, 0x700e, 0x701a, 0x701e, 0x7022, 0x7016, 0x702a,
++      0x7026, 0x702f, 0x0000, 0x080c, 0x7444, 0x0168, 0x080c, 0x7476,
++      0x2d00, 0x7002, 0x700a, 0x701a, 0x7013, 0x0001, 0x701f, 0x0007,
++      0x00ee, 0x00de, 0x0005, 0xa00e, 0x0cd8, 0x00e6, 0x00d6, 0x00c6,
++      0x2071, 0xc76f, 0x721c, 0x2100, 0xa202, 0x1618, 0x080c, 0x7476,
++      0x090c, 0x1519, 0x7018, 0xa005, 0x1160, 0x2d00, 0x7002, 0x700a,
++      0x701a, 0xa006, 0x7006, 0x700e, 0x6806, 0x6802, 0x7012, 0x701e,
++      0x0038, 0x2060, 0x6806, 0x2d00, 0x6002, 0x701a, 0x6803, 0x0000,
++      0x7010, 0x8000, 0x7012, 0x701c, 0xa080, 0x0007, 0x701e, 0x721c,
++      0x08d0, 0x721c, 0x00ce, 0x00de, 0x00ee, 0x0005, 0x0156, 0x0136,
++      0x0146, 0x00e6, 0x0126, 0x2091, 0x8000, 0x2071, 0xc76f, 0x7300,
++      0xa398, 0x0003, 0x7104, 0x080c, 0x7390, 0x810c, 0x2100, 0xa318,
++      0x8003, 0x2228, 0x2021, 0x0054, 0xa402, 0xa532, 0x0208, 0x2028,
++      0x2500, 0x8004, 0x20a8, 0x23a0, 0xe000, 0xe000, 0xe000, 0x53a5,
++      0x2508, 0x080c, 0x7399, 0x2130, 0x7014, 0xa600, 0x7016, 0x2600,
++      0x711c, 0xa102, 0x701e, 0x7004, 0xa600, 0x2008, 0xa082, 0x0007,
++      0x1180, 0x7000, 0x2004, 0xa005, 0x1140, 0x2009, 0x0001, 0x0026,
++      0x080c, 0x7295, 0x002e, 0x7000, 0x2004, 0x7002, 0x7007, 0x0000,
++      0x0008, 0x7106, 0x2500, 0xa212, 0x1910, 0x012e, 0x00ee, 0x014e,
++      0x013e, 0x015e, 0x0005, 0x0016, 0x0026, 0x00e6, 0x00d6, 0x080c,
++      0x7359, 0x15e0, 0x2170, 0x2805, 0xac68, 0x2900, 0x0002, 0x732f,
++      0x732f, 0x7333, 0x732f, 0x7333, 0x732f, 0x732f, 0x732f, 0x732f,
++      0x732f, 0x733c, 0x732f, 0x733c, 0x732f, 0x732f, 0x732f, 0x080c,
++      0x1519, 0xa005, 0x00f0, 0x7000, 0x6802, 0x7004, 0x6806, 0x7010,
++      0x680a, 0x680f, 0x0000, 0x0060, 0x7010, 0x6812, 0x6817, 0x0000,
++      0x7000, 0x6802, 0x7004, 0x6806, 0x7008, 0x680a, 0x700c, 0x680e,
++      0x00de, 0x685c, 0x8000, 0x685e, 0x6858, 0x8001, 0x685a, 0x00d6,
++      0xa006, 0x00de, 0x00ee, 0x002e, 0x001e, 0x0005, 0xa085, 0x0001,
++      0x0cc0, 0x00e6, 0x0036, 0x2071, 0xc76f, 0x7014, 0xa005, 0x0568,
++      0x8001, 0x7016, 0x7020, 0x8001, 0x7022, 0x7008, 0xa080, 0x0003,
++      0x710c, 0x2110, 0x0429, 0x810c, 0xa118, 0x8210, 0xa282, 0x0007,
++      0x11b0, 0x7008, 0x2004, 0xa005, 0x0178, 0x00d6, 0x0006, 0x7008,
++      0x2068, 0x080c, 0x7485, 0x000e, 0x2068, 0x6807, 0x0000, 0x700a,
++      0x00de, 0x7010, 0x8001, 0x7012, 0x700f, 0x0000, 0x0008, 0x720e,
++      0x2308, 0xa006, 0x003e, 0x00ee, 0x0005, 0xa085, 0x0001, 0x0cd0,
++      0x0006, 0x810b, 0x810b, 0x2100, 0x810b, 0xa100, 0x2008, 0x000e,
++      0x0005, 0x0006, 0x0026, 0x2100, 0xa005, 0x0160, 0xa092, 0x000c,
++      0x0248, 0x2009, 0x0000, 0x8108, 0xa082, 0x000c, 0x1de0, 0x002e,
++      0x000e, 0x0005, 0x2009, 0x0000, 0x0cd0, 0x2d00, 0xa0b8, 0x0008,
++      0x690c, 0x6810, 0x2019, 0x0001, 0x2031, 0x73db, 0xa112, 0x0220,
++      0x0118, 0x8318, 0x2208, 0x0cd0, 0x6808, 0xa005, 0x0108, 0x8318,
++      0x233a, 0x6804, 0xd084, 0x2300, 0x2021, 0x0001, 0x1150, 0xa082,
++      0x0003, 0x0967, 0x0a67, 0x8420, 0xa082, 0x0007, 0x0967, 0x0a67,
++      0x0cd0, 0xa082, 0x0002, 0x0967, 0x0a67, 0x8420, 0xa082, 0x0005,
++      0x0967, 0x0a67, 0x0cd0, 0x6c1a, 0x2d00, 0xa0b8, 0x0007, 0x00e6,
++      0x2071, 0xc600, 0x7128, 0x6810, 0x2019, 0x0001, 0xa10a, 0x0118,
++      0x0210, 0x8318, 0x0cd8, 0x2031, 0x73ee, 0x0870, 0x6c16, 0x00ee,
++      0x0005, 0x00e6, 0x00c6, 0x0126, 0x2091, 0x8000, 0x2e00, 0x2060,
++      0x2071, 0xc76f, 0x2009, 0x0001, 0x0026, 0x080c, 0x7295, 0x002e,
++      0x7300, 0xa398, 0x0003, 0x7104, 0x080c, 0x7390, 0x810c, 0x2100,
++      0xa318, 0x6834, 0xa084, 0x00ff, 0xa086, 0x0024, 0x00d6, 0x2368,
++      0x1138, 0x6000, 0x6802, 0x6004, 0x6806, 0x6008, 0x6812, 0x0050,
++      0x6000, 0x6802, 0x6004, 0x6806, 0x6008, 0x680a, 0x600c, 0x680e,
++      0x6010, 0x6812, 0x00de, 0x7014, 0x8000, 0x7016, 0x711c, 0x8109,
++      0x711e, 0x7004, 0x8000, 0x2008, 0xa082, 0x0007, 0x1180, 0x7000,
++      0x2004, 0xa005, 0x1140, 0x2009, 0x0001, 0x0026, 0x080c, 0x7295,
++      0x002e, 0x7000, 0x2004, 0x7002, 0x7007, 0x0000, 0x0008, 0x7106,
++      0x012e, 0x00ce, 0x00ee, 0x0005, 0x00d6, 0x0046, 0x0126, 0x2091,
++      0x8000, 0x2001, 0xc682, 0xa080, 0x0011, 0x2004, 0x8003, 0x2020,
++      0x080c, 0x15e5, 0x01d0, 0x2d00, 0x7026, 0x6803, 0x0000, 0x6807,
++      0x0000, 0x080c, 0x15e5, 0x0188, 0x7024, 0x6802, 0x6807, 0x0000,
++      0x2d00, 0x7026, 0xa4a2, 0x0007, 0x0110, 0x0208, 0x0c90, 0xa085,
++      0x0001, 0x012e, 0x004e, 0x00de, 0x0005, 0x7024, 0xa005, 0x0dc8,
++      0x2068, 0x2024, 0x080c, 0x1619, 0x2400, 0x0cc0, 0x0126, 0x2091,
++      0x8000, 0x7024, 0x2068, 0xa005, 0x0130, 0x2004, 0x7026, 0x6803,
++      0x0000, 0x6807, 0x0000, 0x012e, 0x0005, 0x0126, 0x2091, 0x8000,
++      0x7024, 0x6802, 0x2d00, 0x7026, 0x012e, 0x0005, 0x00d6, 0x2001,
++      0xc778, 0x2004, 0xa005, 0x0138, 0x2068, 0x6800, 0x0006, 0x080c,
++      0x1619, 0x000e, 0x0cb8, 0x00de, 0x0005, 0x00d6, 0x00e6, 0x2071,
++      0xc76f, 0x7008, 0xa005, 0x0138, 0x2068, 0x6800, 0x0006, 0x080c,
++      0x1619, 0x000e, 0x0cb8, 0xa006, 0x7002, 0x700a, 0x7006, 0x700e,
++      0x701a, 0x701e, 0x7022, 0x702a, 0x7026, 0x702e, 0x00ee, 0x00de,
++      0x0005, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0086, 0x0046, 0x0056,
++      0x0026, 0x2031, 0x0000, 0x2001, 0xc756, 0x2004, 0xa005, 0x0904,
++      0x754b, 0x2071, 0xc682, 0x20e1, 0x0002, 0x3d08, 0xd19c, 0x0140,
++      0x2069, 0xc600, 0x6a28, 0x761c, 0x7114, 0x2041, 0x0000, 0x0028,
++      0x7118, 0x720c, 0x7620, 0x7008, 0x2040, 0x080c, 0x7640, 0x0904,
++      0x754b, 0x7004, 0xd084, 0x1128, 0x2021, 0x0024, 0x2029, 0x0002,
++      0x0020, 0x2021, 0x002c, 0x2029, 0x000a, 0x080c, 0x1602, 0x0904,
++      0x7543, 0x2d00, 0x2060, 0x6436, 0x0016, 0x20e1, 0x0001, 0x3d08,
++      0x3e00, 0xa18c, 0x00ff, 0x6142, 0x603e, 0x001e, 0x6746, 0x2700,
++      0xa086, 0xff00, 0x1118, 0x6063, 0x0000, 0x0010, 0x6063, 0x0003,
++      0xa006, 0x6002, 0x602a, 0x602e, 0x6006, 0x603a, 0x604a, 0x6052,
++      0x6057, 0x0005, 0x605e, 0x6066, 0x604e, 0x2800, 0x606a, 0x604c,
++      0xc0ad, 0x604e, 0x665a, 0x2c00, 0x2078, 0x0479, 0x607f, 0xffff,
++      0x6083, 0x0000, 0x8109, 0x0180, 0x080c, 0x1602, 0x01c0, 0x2d00,
++      0x7806, 0x2f00, 0x6802, 0x6d36, 0xa006, 0x2d00, 0x2520, 0x00e9,
++      0x2d00, 0x2078, 0x8109, 0x1d80, 0x2c00, 0xa005, 0x002e, 0x005e,
++      0x004e, 0x008e, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x0005, 0x2c00,
++      0x2068, 0x080c, 0x1629, 0x2600, 0x2071, 0xc76f, 0x7120, 0xa102,
++      0x0a0c, 0x1519, 0x7022, 0xa006, 0x0c48, 0x00d6, 0x00c6, 0x0136,
++      0x0146, 0x0156, 0x0016, 0x2068, 0x2400, 0xa084, 0x000f, 0xa080,
++      0x23c7, 0x2005, 0x2005, 0xad60, 0x2c00, 0x2d08, 0xa188, 0x0030,
++      0xa102, 0x20a8, 0x2c00, 0x20a0, 0x2001, 0xffff, 0x40a4, 0x001e,
++      0x015e, 0x014e, 0x013e, 0x00ce, 0x00de, 0x0005, 0x00c6, 0x00e6,
++      0x00f6, 0x6858, 0x2071, 0xc76f, 0x7120, 0xa102, 0x0a0c, 0x1519,
++      0x7022, 0x6960, 0x694e, 0x697c, 0x2009, 0xffff, 0x7818, 0xa102,
++      0xe000, 0x6852, 0x684b, 0x0000, 0x6868, 0xa005, 0x0118, 0x6848,
++      0xc085, 0x684a, 0x2d00, 0xa080, 0x0015, 0x2038, 0x2031, 0x0018,
++      0x6864, 0x2020, 0x683a, 0x685c, 0xa08a, 0x00ff, 0x1a0c, 0x1519,
++      0x2028, 0x2d00, 0x2060, 0x2078, 0x6934, 0xa18c, 0x000f, 0xa188,
++      0x23c7, 0x2145, 0x685c, 0x2050, 0xa005, 0x0530, 0x2805, 0xac70,
++      0x6834, 0xa084, 0x00ff, 0xa086, 0x0024, 0x1110, 0x7008, 0x0040,
++      0x6834, 0xa084, 0x00ff, 0xa086, 0x002c, 0x190c, 0x1519, 0x7010,
++      0x0006, 0x2400, 0xa005, 0x000e, 0x0168, 0x203a, 0x8738, 0x8631,
++      0x090c, 0x1519, 0x8421, 0x8529, 0x0138, 0x080c, 0x2389, 0x090c,
++      0x1519, 0x08e0, 0x080c, 0x73f1, 0x6837, 0x0023, 0x00fe, 0x00ee,
++      0x00ce, 0x0005, 0x00e6, 0x00c6, 0x00a6, 0x0086, 0x0056, 0x2d00,
++      0x2060, 0x6934, 0xa18c, 0x000f, 0xa188, 0x23c7, 0x2145, 0x685c,
++      0x2050, 0xa005, 0x01d0, 0x2028, 0x2805, 0xac70, 0x6834, 0xa084,
++      0x00ff, 0xa086, 0x0024, 0x1110, 0x7008, 0x0008, 0x7010, 0x0006,
++      0xa086, 0xffff, 0x000e, 0x0110, 0x080c, 0x73f1, 0x8529, 0x0128,
++      0x080c, 0x2389, 0x090c, 0x1519, 0x0c38, 0x005e, 0x008e, 0x00ae,
++      0x00ce, 0x00ee, 0x0005, 0x70ac, 0xa005, 0x0120, 0x2060, 0x6008,
++      0xa306, 0x0005, 0xa085, 0x0001, 0x0ce0, 0x70ac, 0x600e, 0x2c00,
++      0x70ae, 0x0005, 0x00f6, 0x00d6, 0x0036, 0x70ac, 0xa005, 0x01b8,
++      0x2068, 0x2079, 0x0000, 0x2c08, 0xa11e, 0x1118, 0x680c, 0x70ae,
++      0x0060, 0xa106, 0x0140, 0x2d00, 0x2078, 0x680c, 0xa005, 0x090c,
++      0x1519, 0x2068, 0x0cb0, 0x6b0c, 0x7b0e, 0x600f, 0x0000, 0x003e,
++      0x00de, 0x00fe, 0x0005, 0x00e6, 0x080c, 0x7263, 0x6018, 0x2070,
++      0xa006, 0x70b2, 0x70b6, 0x08b1, 0x080c, 0x95fc, 0x00ee, 0x0005,
++      0x00d6, 0x0026, 0x0016, 0x2061, 0xc76f, 0x6020, 0x6414, 0xa600,
++      0xa42a, 0x02f0, 0x6022, 0x2069, 0xc682, 0x6828, 0x6114, 0xa102,
++      0x1288, 0x685c, 0xd08c, 0x1130, 0xc08d, 0x685e, 0x2011, 0x8025,
++      0x080c, 0x4096, 0x2001, 0xc695, 0x2004, 0xa080, 0x0000, 0x200c,
++      0x8108, 0x2102, 0xa085, 0x0001, 0x001e, 0x002e, 0x00de, 0x0005,
++      0x2069, 0xc682, 0x6804, 0xd094, 0x0148, 0x685c, 0xd084, 0x1130,
++      0xc085, 0x685e, 0x2011, 0x8026, 0x080c, 0x4096, 0x2001, 0xc695,
++      0x2004, 0xa080, 0x0001, 0x200c, 0x8108, 0x2102, 0xa006, 0x2031,
++      0x0000, 0x0c10, 0x0006, 0x0016, 0x00c6, 0x6018, 0x2060, 0x6010,
++      0xa005, 0x0178, 0x2001, 0xc756, 0x2004, 0xa005, 0x0150, 0x2001,
++      0xc600, 0x2004, 0xa086, 0x0003, 0x1120, 0x2011, 0x8014, 0x080c,
++      0x4096, 0x00ce, 0x001e, 0x000e, 0x0005, 0x0016, 0x6834, 0xa08c,
++      0x00ff, 0xa186, 0x0024, 0x0110, 0xa186, 0x002c, 0x001e, 0x0005,
++      0x2001, 0xc683, 0x2004, 0xd09c, 0x0005, 0x2001, 0xc683, 0x2004,
++      0xd0a4, 0x0005, 0x0066, 0x6000, 0xa0b2, 0x0010, 0x1a0c, 0x1519,
++      0x0013, 0x006e, 0x0005, 0x76cb, 0x76cb, 0x76cb, 0x76cd, 0x7728,
++      0x76cb, 0x76cb, 0x76cb, 0x7766, 0x76cb, 0x77c3, 0x76cb, 0x76cb,
++      0x76cb, 0x76cb, 0x76cb, 0x080c, 0x1519, 0xa182, 0x0100, 0x0002,
++      0x76df, 0x76df, 0x76df, 0x76e1, 0x76fa, 0x7714, 0x76df, 0x76df,
++      0x76df, 0x76df, 0x76df, 0x76df, 0x76df, 0x76df, 0x76df, 0x080c,
++      0x1519, 0x00d6, 0x080c, 0x7e60, 0x080c, 0x7f87, 0x6110, 0x2168,
++      0x684b, 0x0000, 0x00d6, 0x6018, 0x2068, 0x6008, 0x68b6, 0x68bb,
++      0x0500, 0xa006, 0x68b2, 0x00de, 0x080c, 0x5823, 0x080c, 0x95fc,
++      0x00de, 0x0005, 0x080c, 0x7e60, 0x00f6, 0x00d6, 0x6110, 0x2178,
++      0x080c, 0xacaa, 0x0150, 0x00e6, 0x6018, 0x2070, 0xa006, 0x70b2,
++      0x70b6, 0x00ee, 0x2f68, 0x080c, 0x5823, 0x00de, 0x00fe, 0x080c,
++      0x95fc, 0x080c, 0x7f87, 0x0005, 0x080c, 0x7e60, 0x080c, 0x2e46,
++      0x00d6, 0x6110, 0x2168, 0x080c, 0xacaa, 0x0120, 0x684b, 0x0029,
++      0x080c, 0x5823, 0x00de, 0x080c, 0x95fc, 0x080c, 0x7f87, 0x0005,
++      0xa182, 0x0100, 0x0002, 0x773a, 0x773c, 0x7744, 0x773a, 0x773a,
++      0x773a, 0x7761, 0x773a, 0x773a, 0x773a, 0x773a, 0x773a, 0x773a,
++      0x773a, 0x773a, 0x080c, 0x1519, 0x20e1, 0x0005, 0x3d18, 0x3e20,
++      0x2c10, 0x080c, 0x1870, 0x0005, 0x00d6, 0x00e6, 0x2001, 0xc756,
++      0x2004, 0xa086, 0x0000, 0x6110, 0x1118, 0x080c, 0x1629, 0x0028,
++      0x2168, 0x080c, 0x756e, 0x080c, 0x5823, 0x6018, 0x2070, 0xa006,
++      0x70b2, 0x70b6, 0x080c, 0x7612, 0x00ee, 0x00de, 0x080c, 0x95fc,
++      0x0005, 0x080c, 0x7633, 0x080c, 0x56e0, 0x0005, 0xa182, 0x0100,
++      0x0002, 0x777b, 0x77a1, 0x7779, 0x7779, 0x7779, 0x7779, 0x7779,
++      0x7779, 0x7779, 0x7779, 0x7779, 0x7779, 0x7779, 0x7779, 0x7779,
++      0x7779, 0x080c, 0x1519, 0x00d6, 0x6003, 0x0003, 0x6106, 0x6010,
++      0x2068, 0x687c, 0x680a, 0x6880, 0x680e, 0x6813, 0x0000, 0x6817,
++      0x0000, 0x6854, 0xa092, 0x199a, 0x0210, 0x2001, 0x1999, 0x8003,
++      0x8013, 0x8213, 0xa210, 0x6216, 0x00de, 0x2c10, 0x080c, 0x2068,
++      0x080c, 0x7a15, 0x0126, 0x2091, 0x8000, 0x080c, 0x7f87, 0x012e,
++      0x0005, 0x6003, 0x0004, 0x630a, 0x080c, 0x74b9, 0x0168, 0x6012,
++      0x600f, 0x0000, 0x080c, 0x760d, 0x20e1, 0x0005, 0x3d18, 0x3e20,
++      0x2c10, 0x080c, 0x1870, 0x0005, 0x2011, 0x0000, 0x080c, 0x1870,
++      0x00e6, 0x6018, 0x2070, 0x70b3, 0x0000, 0x70b7, 0x0000, 0x00ee,
++      0x080c, 0x95fc, 0x0005, 0x00d6, 0x080c, 0x7e60, 0x080c, 0x7f87,
++      0x6110, 0x2168, 0x684b, 0x0000, 0x00d6, 0x6018, 0x2068, 0x6008,
++      0x68b6, 0x68bb, 0x0500, 0xa006, 0x68b2, 0x00de, 0x080c, 0x5823,
++      0x080c, 0x95fc, 0x00de, 0x0005, 0x6000, 0xa08a, 0x0010, 0x1a0c,
++      0x1519, 0x000b, 0x0005, 0x77f3, 0x77f3, 0x77f3, 0x77f5, 0x780a,
++      0x77f3, 0x77f3, 0x77f3, 0x77f3, 0x77f3, 0x77f3, 0x77f3, 0x77f3,
++      0x77f3, 0x77f3, 0x77f3, 0x080c, 0x1519, 0x080c, 0x910f, 0x6110,
++      0x2168, 0x684b, 0x0006, 0x00d6, 0x6018, 0x2068, 0x6008, 0x68b6,
++      0x68bb, 0x0500, 0xa006, 0x68b2, 0x00de, 0x080c, 0x5823, 0x080c,
++      0x95fc, 0x0005, 0x080c, 0x7633, 0x0005, 0x6000, 0xa08a, 0x0010,
++      0x1a0c, 0x1519, 0x000b, 0x0005, 0x7824, 0x7824, 0x7824, 0x7826,
++      0x7836, 0x7824, 0x7824, 0x7824, 0x7824, 0x7824, 0x7824, 0x7824,
++      0x7824, 0x7824, 0x7824, 0x7824, 0x080c, 0x1519, 0x0036, 0x00e6,
++      0x2071, 0xc927, 0x703c, 0xac06, 0x1120, 0x2019, 0x0000, 0x080c,
++      0x8e92, 0x080c, 0x910f, 0x00ee, 0x003e, 0x0005, 0x00d6, 0x6010,
++      0x2068, 0x080c, 0x7633, 0x00de, 0x0005, 0x080c, 0x769d, 0x1150,
++      0x6024, 0xd09c, 0x1138, 0x6810, 0x2009, 0xffff, 0xa102, 0x2020,
++      0x2019, 0x0000, 0x0005, 0x20a9, 0x0010, 0xa006, 0x8004, 0x8086,
++      0x818e, 0x1208, 0xa200, 0x1f04, 0x784f, 0x8086, 0x818e, 0x0005,
++      0x0156, 0x20a9, 0x0010, 0xa005, 0x01b8, 0xa11a, 0x12a8, 0x8213,
++      0x818d, 0x0228, 0xa11a, 0x1220, 0x1f04, 0x785f, 0x0028, 0xa11a,
++      0x2308, 0x8210, 0x1f04, 0x785f, 0x0006, 0x3200, 0xa084, 0xefff,
++      0x2080, 0x000e, 0x015e, 0x0005, 0x0006, 0x3200, 0xa085, 0x1000,
++      0x0cb8, 0x0126, 0x2091, 0x2800, 0x2079, 0xc927, 0x012e, 0x00d6,
++      0x2069, 0xc927, 0x6803, 0x0005, 0x2069, 0x0004, 0x2d04, 0xa085,
++      0x8001, 0x206a, 0x00de, 0x0005, 0x00c6, 0x6027, 0x0001, 0x7804,
++      0xa084, 0x0007, 0x0002, 0x789d, 0x78be, 0x7911, 0x78a3, 0x78be,
++      0x789d, 0x789b, 0x789b, 0x080c, 0x1519, 0x080c, 0x703d, 0x080c,
++      0x7ead, 0x00ce, 0x0005, 0x62c0, 0x82ff, 0x1110, 0x00ce, 0x0005,
++      0x2011, 0x4e31, 0x080c, 0x6fc6, 0x7828, 0xa092, 0x00c8, 0x1228,
++      0x8000, 0x782a, 0x080c, 0x4e6b, 0x0c88, 0x080c, 0x4e31, 0x7807,
++      0x0003, 0x7827, 0x0000, 0x782b, 0x0000, 0x0c40, 0x080c, 0x703d,
++      0x3c00, 0x0006, 0x2011, 0x0209, 0x20e1, 0x4000, 0x2214, 0x000e,
++      0x20e0, 0x82ff, 0x0178, 0x62c0, 0x82ff, 0x1160, 0x782b, 0x0000,
++      0x7824, 0xa065, 0x090c, 0x1519, 0x2009, 0x0013, 0x080c, 0x962c,
++      0x00ce, 0x0005, 0x3900, 0xa082, 0xca74, 0x1210, 0x080c, 0x91e4,
++      0x00c6, 0x7824, 0xa065, 0x090c, 0x1519, 0x7804, 0xa086, 0x0004,
++      0x0904, 0x7951, 0x7828, 0xa092, 0x2710, 0x1230, 0x8000, 0x782a,
++      0x00ce, 0x080c, 0x8c01, 0x0c20, 0x6104, 0xa186, 0x0003, 0x1188,
++      0x00e6, 0x2071, 0xc600, 0x70e0, 0x00ee, 0xd08c, 0x0150, 0x00c6,
++      0x00e6, 0x2061, 0x0100, 0x2071, 0xc600, 0x080c, 0x4e74, 0x00ee,
++      0x00ce, 0x080c, 0xc5b4, 0x2009, 0x0014, 0x080c, 0x962c, 0x00ce,
++      0x0838, 0x2001, 0xc943, 0x2003, 0x0000, 0x62c0, 0x82ff, 0x1160,
++      0x782b, 0x0000, 0x7824, 0xa065, 0x090c, 0x1519, 0x2009, 0x0013,
++      0x080c, 0x9680, 0x00ce, 0x0005, 0x00c6, 0x00d6, 0x3900, 0xa082,
++      0xca74, 0x1210, 0x080c, 0x91e4, 0x7824, 0xa005, 0x090c, 0x1519,
++      0x781c, 0xa06d, 0x090c, 0x1519, 0x6800, 0xc0dc, 0x6802, 0x7924,
++      0x2160, 0x080c, 0x95fc, 0x693c, 0x81ff, 0x090c, 0x1519, 0x8109,
++      0x693e, 0x6854, 0xa015, 0x0110, 0x7a1e, 0x0010, 0x7918, 0x791e,
++      0x7807, 0x0000, 0x7827, 0x0000, 0x00de, 0x00ce, 0x080c, 0x7ead,
++      0x0888, 0x6104, 0xa186, 0x0002, 0x0128, 0xa186, 0x0004, 0x0110,
++      0x0804, 0x78ea, 0x7808, 0xac06, 0x0904, 0x78ea, 0x080c, 0x7dca,
++      0x080c, 0x79f8, 0x00ce, 0x080c, 0x7ead, 0x0804, 0x78d8, 0x00c6,
++      0x6027, 0x0002, 0x62c8, 0x60c4, 0xa205, 0x11a8, 0x793c, 0xa1e5,
++      0x0000, 0x0160, 0x2009, 0x0049, 0x601c, 0xa086, 0x0009, 0x1110,
++      0x2009, 0x0103, 0x080c, 0x962c, 0x00ce, 0x0005, 0x2011, 0xc946,
++      0x2013, 0x0000, 0x0cc8, 0x3908, 0xa192, 0xca74, 0x1210, 0x080c,
++      0x91e4, 0x793c, 0x81ff, 0x0d90, 0x7944, 0xa192, 0x7530, 0x12f0,
++      0x8108, 0x7946, 0x793c, 0xa188, 0x0007, 0x210c, 0xa18e, 0x0006,
++      0x1138, 0x6014, 0xa084, 0x0184, 0xa085, 0x0012, 0x6016, 0x08e0,
++      0x793c, 0xa188, 0x0007, 0x210c, 0xa18e, 0x0009, 0x0d90, 0x6014,
++      0xa084, 0x0184, 0xa085, 0x0016, 0x6016, 0x0870, 0x7848, 0xc085,
++      0x784a, 0x0850, 0x0006, 0x0016, 0x00c6, 0x0126, 0x2091, 0x8000,
++      0x600f, 0x0000, 0x2c08, 0x2061, 0xc927, 0x6020, 0x8000, 0x6022,
++      0x6010, 0xa005, 0x0148, 0xa080, 0x0003, 0x2102, 0x6112, 0x012e,
++      0x00ce, 0x001e, 0x000e, 0x0005, 0x6116, 0x6112, 0x0cc0, 0x00d6,
++      0x2069, 0xc927, 0x6000, 0xd0d4, 0x0168, 0x6820, 0x8000, 0x6822,
++      0xa086, 0x0001, 0x1110, 0x2c00, 0x681e, 0x6804, 0xa084, 0x0007,
++      0x0804, 0x7eb3, 0xc0d5, 0x6002, 0x6818, 0xa005, 0x0158, 0x6056,
++      0x605b, 0x0000, 0x0006, 0x2c00, 0x681a, 0x00de, 0x685a, 0x2069,
++      0xc927, 0x0c18, 0x6056, 0x605a, 0x2c00, 0x681a, 0x681e, 0x08e8,
++      0x0006, 0x0016, 0x00c6, 0x0126, 0x2091, 0x8000, 0x600f, 0x0000,
++      0x2c08, 0x2061, 0xc927, 0x6020, 0x8000, 0x6022, 0x6008, 0xa005,
++      0x0148, 0xa080, 0x0003, 0x2102, 0x610a, 0x012e, 0x00ce, 0x001e,
++      0x000e, 0x0005, 0x610e, 0x610a, 0x0cc0, 0x00c6, 0x600f, 0x0000,
++      0x2c08, 0x2061, 0xc927, 0x6034, 0xa005, 0x0130, 0xa080, 0x0003,
++      0x2102, 0x6136, 0x00ce, 0x0005, 0x613a, 0x6136, 0x0cd8, 0x00f6,
++      0x00e6, 0x00d6, 0x00c6, 0x0076, 0x0066, 0x0056, 0x0036, 0x0026,
++      0x0016, 0x0006, 0x0126, 0xa02e, 0x2071, 0xc927, 0x7638, 0x2660,
++      0x2678, 0x2091, 0x8000, 0x8cff, 0x0904, 0x7aa0, 0x6018, 0xa080,
++      0x0028, 0x2004, 0xa206, 0x1904, 0x7a9b, 0x87ff, 0x0120, 0x6050,
++      0xa106, 0x1904, 0x7a9b, 0x703c, 0xac06, 0x1190, 0x0036, 0x2019,
++      0x0001, 0x080c, 0x8e92, 0x7033, 0x0000, 0x703f, 0x0000, 0x7043,
++      0x0000, 0x7047, 0x0000, 0x704b, 0x0000, 0x003e, 0x2029, 0x0001,
++      0x7038, 0xac36, 0x1110, 0x660c, 0x763a, 0x7034, 0xac36, 0x1140,
++      0x2c00, 0xaf36, 0x0118, 0x2f00, 0x7036, 0x0010, 0x7037, 0x0000,
+       0x660c, 0x0066, 0x2c00, 0xaf06, 0x0110, 0x7e0e, 0x0008, 0x2678,
+-      0x600f, 0x0000, 0x6010, 0x2068, 0x080c, 0xac8a, 0x01b8, 0x601c,
+-      0xa086, 0x0003, 0x1540, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000,
+-      0x0016, 0x0036, 0x0086, 0x080c, 0xaefc, 0x080c, 0xc4ca, 0x080c,
+-      0x580a, 0x008e, 0x003e, 0x001e, 0x080c, 0xae41, 0x080c, 0xae4d,
+-      0x080c, 0x8fb7, 0x00ce, 0x0804, 0x7b3e, 0x2c78, 0x600c, 0x2060,
+-      0x0804, 0x7b3e, 0x012e, 0x000e, 0x001e, 0x006e, 0x00ce, 0x00de,
+-      0x00ee, 0x00fe, 0x0005, 0x601c, 0xa086, 0x0006, 0x1158, 0x0016,
+-      0x0036, 0x0086, 0x080c, 0xc4ca, 0x080c, 0xc134, 0x008e, 0x003e,
+-      0x001e, 0x08e0, 0x601c, 0xa086, 0x0002, 0x1128, 0x6004, 0xa086,
+-      0x0085, 0x0908, 0x0898, 0x601c, 0xa086, 0x0005, 0x1978, 0x6004,
+-      0xa086, 0x0085, 0x0d20, 0x0850, 0x00c6, 0x0006, 0x0126, 0x2091,
+-      0x8000, 0xa280, 0xc77b, 0x2004, 0xa065, 0x0904, 0x7c6d, 0x00f6,
+-      0x00e6, 0x00d6, 0x0066, 0x2071, 0xc927, 0x6654, 0x7018, 0xac06,
+-      0x1108, 0x761a, 0x701c, 0xac06, 0x1130, 0x86ff, 0x1118, 0x7018,
+-      0x701e, 0x0008, 0x761e, 0x6058, 0xa07d, 0x0108, 0x7e56, 0xa6ed,
+-      0x0000, 0x0110, 0x2f00, 0x685a, 0x6057, 0x0000, 0x605b, 0x0000,
+-      0x6000, 0xc0d4, 0xc0dc, 0x6002, 0x080c, 0x5268, 0x0904, 0x7c69,
+-      0x7624, 0x86ff, 0x05e8, 0xa680, 0x0004, 0x2004, 0xad06, 0x15c0,
+-      0x00d6, 0x2069, 0x0100, 0x68c0, 0xa005, 0x0548, 0x080c, 0x7024,
+-      0x080c, 0x8bf5, 0x68c3, 0x0000, 0x080c, 0x90df, 0x7027, 0x0000,
+-      0x0036, 0x2069, 0x0140, 0x6b04, 0xa384, 0x1000, 0x0120, 0x6803,
+-      0x0100, 0x6803, 0x0000, 0x2069, 0x0100, 0x6824, 0xd084, 0x0110,
+-      0x6827, 0x0001, 0x003e, 0x00de, 0x00c6, 0x603c, 0xa005, 0x0110,
+-      0x8001, 0x603e, 0x2660, 0x080c, 0xae4d, 0x00ce, 0x0048, 0x00de,
+-      0x00c6, 0x2660, 0x6003, 0x0009, 0x630a, 0x00ce, 0x0804, 0x7c14,
+-      0x8dff, 0x0158, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000, 0x080c,
+-      0xaefc, 0x080c, 0xc4ca, 0x080c, 0x580a, 0x080c, 0x8fb7, 0x0804,
+-      0x7c14, 0x006e, 0x00de, 0x00ee, 0x00fe, 0x012e, 0x000e, 0x00ce,
+-      0x0005, 0x0006, 0x0066, 0x00c6, 0x00d6, 0x2031, 0x0000, 0x7814,
+-      0xa065, 0x0904, 0x7cc3, 0x600c, 0x0006, 0x600f, 0x0000, 0x7824,
+-      0xac06, 0x1540, 0x2069, 0x0100, 0x68c0, 0xa005, 0x01f0, 0x080c,
+-      0x7024, 0x080c, 0x8bf5, 0x68c3, 0x0000, 0x080c, 0x90df, 0x7827,
++      0x600f, 0x0000, 0x080c, 0xacaa, 0x01c8, 0x6010, 0x2068, 0x601c,
++      0xa086, 0x0003, 0x1580, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000,
++      0x0016, 0x0036, 0x0076, 0x080c, 0xaf1c, 0x080c, 0xc4f0, 0x080c,
++      0x5823, 0x007e, 0x003e, 0x001e, 0x080c, 0xae61, 0x080c, 0xae6d,
++      0x00ce, 0x0804, 0x7a3b, 0x2c78, 0x600c, 0x2060, 0x0804, 0x7a3b,
++      0x85ff, 0x0120, 0x0036, 0x080c, 0x7f87, 0x003e, 0x012e, 0x000e,
++      0x001e, 0x002e, 0x003e, 0x005e, 0x006e, 0x007e, 0x00ce, 0x00de,
++      0x00ee, 0x00fe, 0x0005, 0x601c, 0xa086, 0x0006, 0x0158, 0x601c,
++      0xa086, 0x0009, 0x1190, 0x684b, 0x0006, 0x080c, 0x5823, 0x080c,
++      0x95fc, 0x08b0, 0x0016, 0x0036, 0x0076, 0x080c, 0xc4f0, 0x080c,
++      0xc15a, 0x007e, 0x003e, 0x001e, 0x0848, 0x601c, 0xa086, 0x000a,
++      0x0904, 0x7a85, 0x0804, 0x7a83, 0x0006, 0x0066, 0x00c6, 0x00d6,
++      0x00f6, 0x2031, 0x0000, 0x0126, 0x2091, 0x8000, 0x2079, 0xc927,
++      0x7838, 0xa065, 0x0568, 0x600c, 0x0006, 0x600f, 0x0000, 0x783c,
++      0xac06, 0x1180, 0x0036, 0x2019, 0x0001, 0x080c, 0x8e92, 0x7833,
++      0x0000, 0x783f, 0x0000, 0x7843, 0x0000, 0x7847, 0x0000, 0x784b,
++      0x0000, 0x003e, 0x080c, 0xacaa, 0x0178, 0x6010, 0x2068, 0x601c,
++      0xa086, 0x0003, 0x11b0, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000,
++      0x080c, 0x5823, 0x080c, 0xae61, 0x080c, 0xae6d, 0x000e, 0x0888,
++      0x7e3a, 0x7e36, 0x012e, 0x00fe, 0x00de, 0x00ce, 0x006e, 0x000e,
++      0x0005, 0x601c, 0xa086, 0x0006, 0x0150, 0x601c, 0xa086, 0x0009,
++      0x1148, 0x6b4a, 0x080c, 0x5823, 0x080c, 0x95fc, 0x0c38, 0x080c,
++      0xc15a, 0x0c10, 0x601c, 0xa086, 0x000a, 0x09b8, 0x08a0, 0x0016,
++      0x0026, 0x0086, 0x2041, 0x0000, 0x0099, 0x080c, 0x7bfd, 0x008e,
++      0x002e, 0x001e, 0x0005, 0x00f6, 0x0126, 0x2079, 0xc927, 0x2091,
++      0x8000, 0x080c, 0x7c8a, 0x080c, 0x7cfc, 0x012e, 0x00fe, 0x0005,
++      0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0016, 0x0006, 0x0126,
++      0x2091, 0x8000, 0x2071, 0xc927, 0x7614, 0x2660, 0x2678, 0x8cff,
++      0x0904, 0x7bd3, 0x6018, 0xa080, 0x0028, 0x2004, 0xa206, 0x1904,
++      0x7bce, 0x88ff, 0x0120, 0x6050, 0xa106, 0x1904, 0x7bce, 0x7024,
++      0xac06, 0x1538, 0x2069, 0x0100, 0x68c0, 0xa005, 0x01f0, 0x080c,
++      0x703d, 0x080c, 0x8c0e, 0x68c3, 0x0000, 0x080c, 0x90ff, 0x7027,
+       0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0xa384, 0x1000, 0x0120,
+       0x6803, 0x0100, 0x6803, 0x0000, 0x2069, 0x0100, 0x6824, 0xd084,
+-      0x0110, 0x6827, 0x0001, 0x003e, 0x0028, 0x6003, 0x0009, 0x630a,
+-      0x2c30, 0x00b0, 0x6010, 0x2068, 0x080c, 0xac8a, 0x0168, 0x601c,
+-      0xa086, 0x0003, 0x11b8, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000,
+-      0x080c, 0x580a, 0x080c, 0xae41, 0x080c, 0xae4d, 0x080c, 0x8fb7,
+-      0x000e, 0x0804, 0x7c78, 0x7e16, 0x7e12, 0x00de, 0x00ce, 0x006e,
+-      0x000e, 0x0005, 0x601c, 0xa086, 0x0006, 0x1118, 0x080c, 0xc134,
+-      0x0c58, 0x601c, 0xa086, 0x0002, 0x1128, 0x6004, 0xa086, 0x0085,
+-      0x09d0, 0x0c10, 0x601c, 0xa086, 0x0005, 0x19f0, 0x6004, 0xa086,
+-      0x0085, 0x0d60, 0x08c8, 0x0006, 0x0066, 0x00c6, 0x00d6, 0x7818,
+-      0xa065, 0x0904, 0x7d49, 0x6054, 0x0006, 0x6057, 0x0000, 0x605b,
+-      0x0000, 0x6000, 0xc0d4, 0xc0dc, 0x6002, 0x080c, 0x5268, 0x0904,
+-      0x7d46, 0x7e24, 0x86ff, 0x05e8, 0xa680, 0x0004, 0x2004, 0xad06,
++      0x0110, 0x6827, 0x0001, 0x003e, 0x0020, 0x6003, 0x0009, 0x630a,
++      0x04e8, 0x7014, 0xac36, 0x1110, 0x660c, 0x7616, 0x7010, 0xac36,
++      0x1140, 0x2c00, 0xaf36, 0x0118, 0x2f00, 0x7012, 0x0010, 0x7013,
++      0x0000, 0x660c, 0x0066, 0x2c00, 0xaf06, 0x0110, 0x7e0e, 0x0008,
++      0x2678, 0x600f, 0x0000, 0x6010, 0x2068, 0x080c, 0xacaa, 0x01b8,
++      0x601c, 0xa086, 0x0003, 0x1540, 0x6837, 0x0103, 0x6b4a, 0x6847,
++      0x0000, 0x0016, 0x0036, 0x0086, 0x080c, 0xaf1c, 0x080c, 0xc4f0,
++      0x080c, 0x5823, 0x008e, 0x003e, 0x001e, 0x080c, 0xae61, 0x080c,
++      0xae6d, 0x080c, 0x8fd0, 0x00ce, 0x0804, 0x7b57, 0x2c78, 0x600c,
++      0x2060, 0x0804, 0x7b57, 0x012e, 0x000e, 0x001e, 0x006e, 0x00ce,
++      0x00de, 0x00ee, 0x00fe, 0x0005, 0x601c, 0xa086, 0x0006, 0x1158,
++      0x0016, 0x0036, 0x0086, 0x080c, 0xc4f0, 0x080c, 0xc15a, 0x008e,
++      0x003e, 0x001e, 0x08e0, 0x601c, 0xa086, 0x0002, 0x1128, 0x6004,
++      0xa086, 0x0085, 0x0908, 0x0898, 0x601c, 0xa086, 0x0005, 0x1978,
++      0x6004, 0xa086, 0x0085, 0x0d20, 0x0850, 0x00c6, 0x0006, 0x0126,
++      0x2091, 0x8000, 0xa280, 0xc77b, 0x2004, 0xa065, 0x0904, 0x7c86,
++      0x00f6, 0x00e6, 0x00d6, 0x0066, 0x2071, 0xc927, 0x6654, 0x7018,
++      0xac06, 0x1108, 0x761a, 0x701c, 0xac06, 0x1130, 0x86ff, 0x1118,
++      0x7018, 0x701e, 0x0008, 0x761e, 0x6058, 0xa07d, 0x0108, 0x7e56,
++      0xa6ed, 0x0000, 0x0110, 0x2f00, 0x685a, 0x6057, 0x0000, 0x605b,
++      0x0000, 0x6000, 0xc0d4, 0xc0dc, 0x6002, 0x080c, 0x5281, 0x0904,
++      0x7c82, 0x7624, 0x86ff, 0x05e8, 0xa680, 0x0004, 0x2004, 0xad06,
+       0x15c0, 0x00d6, 0x2069, 0x0100, 0x68c0, 0xa005, 0x0548, 0x080c,
+-      0x7024, 0x080c, 0x8bf5, 0x68c3, 0x0000, 0x080c, 0x90df, 0x7827,
++      0x703d, 0x080c, 0x8c0e, 0x68c3, 0x0000, 0x080c, 0x90ff, 0x7027,
+       0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0xa384, 0x1000, 0x0120,
+       0x6803, 0x0100, 0x6803, 0x0000, 0x2069, 0x0100, 0x6824, 0xd084,
+       0x0110, 0x6827, 0x0001, 0x003e, 0x00de, 0x00c6, 0x603c, 0xa005,
+-      0x0110, 0x8001, 0x603e, 0x2660, 0x080c, 0xae4d, 0x00ce, 0x0048,
++      0x0110, 0x8001, 0x603e, 0x2660, 0x080c, 0xae6d, 0x00ce, 0x0048,
+       0x00de, 0x00c6, 0x2660, 0x6003, 0x0009, 0x630a, 0x00ce, 0x0804,
+-      0x7cf5, 0x8dff, 0x0138, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000,
+-      0x080c, 0x580a, 0x080c, 0x8fb7, 0x0804, 0x7cf5, 0x000e, 0x0804,
+-      0x7ce8, 0x781e, 0x781a, 0x00de, 0x00ce, 0x006e, 0x000e, 0x0005,
+-      0x00e6, 0x00d6, 0x0066, 0x6000, 0xd0dc, 0x01a0, 0x604c, 0xa06d,
+-      0x0188, 0x6848, 0xa606, 0x1170, 0x2071, 0xc927, 0x7024, 0xa035,
+-      0x0148, 0xa080, 0x0004, 0x2004, 0xad06, 0x1120, 0x6000, 0xc0dc,
+-      0x6002, 0x0021, 0x006e, 0x00de, 0x00ee, 0x0005, 0x00f6, 0x2079,
+-      0x0100, 0x78c0, 0xa005, 0x1138, 0x00c6, 0x2660, 0x6003, 0x0009,
+-      0x630a, 0x00ce, 0x04a0, 0x080c, 0x8bf5, 0x78c3, 0x0000, 0x080c,
+-      0x90df, 0x7027, 0x0000, 0x0036, 0x2079, 0x0140, 0x7b04, 0xa384,
+-      0x1000, 0x0120, 0x7803, 0x0100, 0x7803, 0x0000, 0x2079, 0x0100,
+-      0x7824, 0xd084, 0x0110, 0x7827, 0x0001, 0x080c, 0x90df, 0x003e,
+-      0x080c, 0x5268, 0x00c6, 0x603c, 0xa005, 0x0110, 0x8001, 0x603e,
+-      0x2660, 0x080c, 0x95dc, 0x00ce, 0x6837, 0x0103, 0x6b4a, 0x6847,
+-      0x0000, 0x080c, 0xaefc, 0x080c, 0x580a, 0x080c, 0x8fb7, 0x00fe,
+-      0x0005, 0x00e6, 0x00c6, 0x2071, 0xc927, 0x7004, 0xa084, 0x0007,
+-      0x0002, 0x7dc3, 0x7dc6, 0x7ddc, 0x7df5, 0x7e32, 0x7dc3, 0x7dc1,
+-      0x7dc1, 0x080c, 0x1519, 0x00ce, 0x00ee, 0x0005, 0x7024, 0xa065,
+-      0x0148, 0x7020, 0x8001, 0x7022, 0x600c, 0xa015, 0x0150, 0x7216,
+-      0x600f, 0x0000, 0x7007, 0x0000, 0x7027, 0x0000, 0x00ce, 0x00ee,
+-      0x0005, 0x7216, 0x7212, 0x0cb0, 0x6018, 0x2060, 0x080c, 0x5268,
+-      0x6000, 0xc0dc, 0x6002, 0x7020, 0x8001, 0x7022, 0x0120, 0x6054,
+-      0xa015, 0x0140, 0x721e, 0x7007, 0x0000, 0x7027, 0x0000, 0x00ce,
+-      0x00ee, 0x0005, 0x7218, 0x721e, 0x0cb0, 0x7024, 0xa065, 0x05b8,
+-      0x700c, 0xac06, 0x1160, 0x080c, 0x8fb7, 0x600c, 0xa015, 0x0120,
+-      0x720e, 0x600f, 0x0000, 0x0448, 0x720e, 0x720a, 0x0430, 0x7014,
+-      0xac06, 0x1160, 0x080c, 0x8fb7, 0x600c, 0xa015, 0x0120, 0x7216,
+-      0x600f, 0x0000, 0x00d0, 0x7216, 0x7212, 0x00b8, 0x601c, 0xa086,
+-      0x0003, 0x1198, 0x6018, 0x2060, 0x080c, 0x5268, 0x6000, 0xc0dc,
+-      0x6002, 0x080c, 0x8fb7, 0x701c, 0xa065, 0x0138, 0x6054, 0xa015,
+-      0x0110, 0x721e, 0x0010, 0x7218, 0x721e, 0x7027, 0x0000, 0x00ce,
+-      0x00ee, 0x0005, 0x7024, 0xa065, 0x0140, 0x080c, 0x8fb7, 0x600c,
+-      0xa015, 0x0150, 0x720e, 0x600f, 0x0000, 0x080c, 0x90df, 0x7027,
+-      0x0000, 0x00ce, 0x00ee, 0x0005, 0x720e, 0x720a, 0x0cb0, 0x00d6,
+-      0x2069, 0xc927, 0x6830, 0xa084, 0x0003, 0x0002, 0x7e54, 0x7e56,
+-      0x7e7a, 0x7e52, 0x080c, 0x1519, 0x00de, 0x0005, 0x00c6, 0x6840,
+-      0xa086, 0x0001, 0x01b8, 0x683c, 0xa065, 0x0130, 0x600c, 0xa015,
+-      0x0170, 0x6a3a, 0x600f, 0x0000, 0x6833, 0x0000, 0x683f, 0x0000,
+-      0x2011, 0xc946, 0x2013, 0x0000, 0x00ce, 0x00de, 0x0005, 0x683a,
+-      0x6836, 0x0c90, 0x6843, 0x0000, 0x6838, 0xa065, 0x0d68, 0x6003,
+-      0x0003, 0x0c50, 0x00c6, 0x6843, 0x0000, 0x6847, 0x0000, 0x684b,
+-      0x0000, 0x683c, 0xa065, 0x0168, 0x600c, 0xa015, 0x0130, 0x6a3a,
+-      0x600f, 0x0000, 0x683f, 0x0000, 0x0020, 0x683f, 0x0000, 0x683a,
+-      0x6836, 0x00ce, 0x00de, 0x0005, 0x00d6, 0x2069, 0xc927, 0x6804,
+-      0xa084, 0x0007, 0x0006, 0xa005, 0x11c8, 0x2001, 0xc635, 0x2004,
+-      0xa084, 0x0028, 0x1198, 0x2001, 0xc8e5, 0x2004, 0xa086, 0xaaaa,
+-      0x0168, 0x2001, 0xc696, 0x2004, 0xd08c, 0x1118, 0xd084, 0x1118,
+-      0x0028, 0x080c, 0x7f6e, 0x000e, 0x00de, 0x0005, 0x000e, 0x0002,
+-      0x7ec2, 0x7f5e, 0x7f5e, 0x7f5e, 0x7f5e, 0x7f60, 0x7ec0, 0x7ec0,
+-      0x080c, 0x1519, 0x6820, 0xa005, 0x1110, 0x00de, 0x0005, 0x00c6,
+-      0x680c, 0xa065, 0x0150, 0x6807, 0x0004, 0x6826, 0x682b, 0x0000,
+-      0x080c, 0x7ff0, 0x00ce, 0x00de, 0x0005, 0x6814, 0xa065, 0x0150,
+-      0x6807, 0x0001, 0x6826, 0x682b, 0x0000, 0x080c, 0x7ff0, 0x00ce,
+-      0x00de, 0x0005, 0x00e6, 0x0036, 0x6a1c, 0xa2f5, 0x0000, 0x0904,
+-      0x7f5a, 0x704c, 0xa00d, 0x0118, 0x7088, 0xa005, 0x01a0, 0x7054,
+-      0xa075, 0x0120, 0xa20e, 0x0904, 0x7f5a, 0x0028, 0x6818, 0xa20e,
+-      0x0904, 0x7f5a, 0x2070, 0x704c, 0xa00d, 0x0d88, 0x7088, 0xa005,
+-      0x1d70, 0x2e00, 0x681e, 0x733c, 0x7038, 0xa302, 0x1e40, 0x080c,
+-      0x95b3, 0x0904, 0x7f5a, 0x8318, 0x733e, 0x6112, 0x2e10, 0x621a,
+-      0xa180, 0x0014, 0x2004, 0xa084, 0x00ff, 0x605a, 0xa180, 0x0014,
+-      0x2003, 0x0000, 0xa180, 0x0015, 0x2004, 0xa08a, 0x199a, 0x0210,
+-      0x2001, 0x1999, 0x8003, 0x801b, 0x831b, 0xa318, 0x6316, 0x003e,
+-      0x00f6, 0x2c78, 0x71a0, 0x2001, 0xc635, 0x2004, 0xd0ac, 0x1110,
+-      0xd1bc, 0x0150, 0x7100, 0xd1f4, 0x0120, 0x7114, 0xa18c, 0x00ff,
+-      0x0040, 0x2009, 0x0000, 0x0028, 0xa1e0, 0x2f6e, 0x2c0d, 0xa18c,
+-      0x00ff, 0x2061, 0x0100, 0x619a, 0x080c, 0x8620, 0x7300, 0xc3dd,
+-      0x7302, 0x6807, 0x0002, 0x2f18, 0x6b26, 0x682b, 0x0000, 0x781f,
+-      0x0003, 0x7803, 0x0001, 0x7807, 0x0040, 0x00fe, 0x00ee, 0x00ce,
+-      0x00de, 0x0005, 0x003e, 0x00ee, 0x00ce, 0x0cd0, 0x00de, 0x0005,
+-      0x00c6, 0x680c, 0xa065, 0x0138, 0x6807, 0x0004, 0x6826, 0x682b,
+-      0x0000, 0x080c, 0x7ff0, 0x00ce, 0x00de, 0x0005, 0x00f6, 0x00d6,
+-      0x2069, 0xc927, 0x6830, 0xa086, 0x0000, 0x1904, 0x7fcb, 0x2001,
+-      0xc60c, 0x200c, 0xd1bc, 0x1904, 0x7fe6, 0x6838, 0xa07d, 0x0904,
+-      0x7fcb, 0x2001, 0xc635, 0x2004, 0xa084, 0x0028, 0x11f8, 0x2001,
+-      0xc8e5, 0x2004, 0xa086, 0xaaaa, 0x01c8, 0x781c, 0xa086, 0x0009,
+-      0x11a8, 0x7808, 0xd0fc, 0x0190, 0x2001, 0xc928, 0x2004, 0xa005,
+-      0x1138, 0x2001, 0xc696, 0x200c, 0xc185, 0xc18c, 0x2102, 0x0030,
+-      0x2011, 0xc696, 0x2204, 0xc08d, 0x2012, 0x0428, 0x2f00, 0x6833,
+-      0x0001, 0x683e, 0x6847, 0x0000, 0x684b, 0x0000, 0x0126, 0x00f6,
+-      0x2091, 0x2400, 0x002e, 0x080c, 0x20ef, 0x11c0, 0x012e, 0xe000,
+-      0xe000, 0xe000, 0x6a3c, 0x2278, 0x781c, 0xa086, 0x0009, 0x1148,
+-      0x7808, 0xd0fc, 0x0118, 0x080c, 0x8969, 0x0028, 0x080c, 0x89e2,
+-      0x0010, 0x080c, 0x8a66, 0x00de, 0x00fe, 0x0005, 0x012e, 0xe000,
+-      0x6843, 0x0000, 0x781c, 0xa086, 0x0009, 0x0110, 0x7803, 0x0002,
+-      0x780c, 0xa015, 0x0140, 0x6a3a, 0x780f, 0x0000, 0x6833, 0x0000,
+-      0x683f, 0x0000, 0x0c40, 0x683a, 0x6836, 0x0cc0, 0xc1bc, 0x2102,
+-      0x0066, 0x2031, 0x0001, 0x080c, 0x5fa4, 0x006e, 0x0804, 0x7f7d,
+-      0x601c, 0xa084, 0x000f, 0x000b, 0x0005, 0x7ffe, 0x8003, 0x84c1,
+-      0x85dd, 0x8003, 0x84c1, 0x85dd, 0x7ffe, 0x8003, 0x080c, 0x7db1,
+-      0x080c, 0x7e94, 0x0005, 0x0156, 0x0136, 0x0146, 0x00c6, 0x00f6,
+-      0x6004, 0xa08a, 0x0080, 0x1a0c, 0x1519, 0x6118, 0x2178, 0x79a0,
+-      0x2011, 0xc635, 0x2214, 0xd2ac, 0x1110, 0xd1bc, 0x0150, 0x7900,
+-      0xd1f4, 0x0120, 0x7914, 0xa18c, 0x00ff, 0x0040, 0x2009, 0x0000,
+-      0x0028, 0xa1f8, 0x2f6e, 0x2f0d, 0xa18c, 0x00ff, 0x2c78, 0x2061,
+-      0x0100, 0x619a, 0xa08a, 0x0040, 0x1a04, 0x8077, 0x0033, 0x00fe,
+-      0x00ce, 0x014e, 0x013e, 0x015e, 0x0005, 0x8126, 0x8171, 0x819e,
+-      0x826b, 0x8299, 0x82a1, 0x82c7, 0x82d8, 0x82e9, 0x82f1, 0x8307,
+-      0x82f1, 0x8368, 0x82d8, 0x8389, 0x8391, 0x82e9, 0x8391, 0x83a2,
+-      0x8075, 0x8075, 0x8075, 0x8075, 0x8075, 0x8075, 0x8075, 0x8075,
+-      0x8075, 0x8075, 0x8075, 0x8d1a, 0x8d3f, 0x8d54, 0x8d77, 0x8d98,
+-      0x82c7, 0x8075, 0x82c7, 0x82f1, 0x8075, 0x819e, 0x826b, 0x8075,
+-      0x91e1, 0x82f1, 0x8075, 0x9201, 0x82f1, 0x8075, 0x82e9, 0x811f,
+-      0x808a, 0x8075, 0x9226, 0x929b, 0x9372, 0x8075, 0x9383, 0x82c2,
+-      0x939f, 0x8075, 0x8dad, 0x93fa, 0x8075, 0x080c, 0x1519, 0x2100,
+-      0x0033, 0x00fe, 0x00ce, 0x014e, 0x013e, 0x015e, 0x0005, 0x9451,
+-      0x9500, 0x8088, 0x80be, 0x80dc, 0x80f2, 0x8088, 0x82c7, 0x8088,
+-      0x080c, 0x1519, 0x00d6, 0x20a1, 0x020b, 0x080c, 0x83bf, 0x7810,
+-      0x2068, 0x20a3, 0x2414, 0x20a3, 0x0018, 0x20a3, 0x0800, 0x683c,
+-      0x20a2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3,
+-      0x0000, 0x6850, 0x20a2, 0x6854, 0x20a2, 0x20a3, 0x0000, 0x20a3,
+-      0x0000, 0x60c3, 0x0018, 0x080c, 0x8be2, 0x00de, 0x0005, 0x00d6,
+-      0x7818, 0x2068, 0x68a0, 0x2069, 0xc600, 0x6ad4, 0xd2ac, 0x1110,
+-      0xd0bc, 0x0110, 0xa085, 0x0001, 0x00de, 0x0005, 0x00d6, 0x20a1,
+-      0x020b, 0x080c, 0x83bf, 0x20a3, 0x0500, 0x20a3, 0x0000, 0x7810,
+-      0xa0e8, 0x000f, 0x6808, 0x20a2, 0x680c, 0x20a2, 0x6810, 0x20a2,
+-      0x6814, 0x20a2, 0x6818, 0x20a2, 0x681c, 0x20a2, 0x60c3, 0x0010,
+-      0x080c, 0x8be2, 0x00de, 0x0005, 0x0156, 0x0146, 0x20a1, 0x020b,
+-      0x080c, 0x83bf, 0x20a3, 0x7800, 0x20a3, 0x0000, 0x7808, 0x8007,
+-      0x20a2, 0x20a3, 0x0000, 0x60c3, 0x0008, 0x080c, 0x8be2, 0x014e,
+-      0x015e, 0x0005, 0x0156, 0x0146, 0x20a1, 0x020b, 0x080c, 0x845b,
+-      0x20a3, 0x0200, 0x20a3, 0x0000, 0x20a3, 0xdf10, 0x20a3, 0x0034,
+-      0x2099, 0xc605, 0x20a9, 0x0004, 0x53a6, 0x2099, 0xc601, 0x20a9,
+-      0x0004, 0x53a6, 0x2099, 0xc90d, 0x20a9, 0x001a, 0x3304, 0x8007,
+-      0x20a2, 0x9398, 0x1f04, 0x810e, 0x20a3, 0x0000, 0x20a3, 0x0000,
+-      0x60c3, 0x004c, 0x080c, 0x8be2, 0x014e, 0x015e, 0x0005, 0x2001,
+-      0xc615, 0x2004, 0x609a, 0x080c, 0x8be2, 0x0005, 0x20a1, 0x020b,
+-      0x080c, 0x83bf, 0x20a3, 0x5200, 0x20a3, 0x0000, 0x00d6, 0x2069,
+-      0xc652, 0x6804, 0xd084, 0x0150, 0x6828, 0x20a3, 0x0000, 0x0016,
+-      0x080c, 0x29db, 0x21a2, 0x001e, 0x00de, 0x0028, 0x00de, 0x20a3,
+-      0x0000, 0x20a3, 0x0000, 0x20a9, 0x0004, 0x2099, 0xc605, 0x53a6,
+-      0x20a9, 0x0004, 0x2099, 0xc601, 0x53a6, 0x2001, 0xc635, 0x2004,
+-      0xd0ac, 0x1138, 0x7818, 0xa080, 0x0028, 0x2004, 0xa082, 0x007f,
+-      0x0238, 0x2001, 0xc61c, 0x20a6, 0x2001, 0xc61d, 0x20a6, 0x0040,
+-      0x20a3, 0x0000, 0x2001, 0xc615, 0x2004, 0xa084, 0x00ff, 0x20a2,
+-      0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x001c, 0x080c, 0x8be2,
+-      0x0005, 0x20a1, 0x020b, 0x080c, 0x83bf, 0x20a3, 0x0500, 0x20a3,
+-      0x0000, 0x2001, 0xc635, 0x2004, 0xd0ac, 0x1138, 0x7818, 0xa080,
+-      0x0028, 0x2004, 0xa082, 0x007f, 0x0238, 0x2001, 0xc61c, 0x20a6,
+-      0x2001, 0xc61d, 0x20a6, 0x0040, 0x20a3, 0x0000, 0x2001, 0xc615,
+-      0x2004, 0xa084, 0x00ff, 0x20a2, 0x20a9, 0x0004, 0x2099, 0xc605,
+-      0x53a6, 0x60c3, 0x0010, 0x080c, 0x8be2, 0x0005, 0x20a1, 0x020b,
+-      0x080c, 0x83bf, 0x00c6, 0x7818, 0x2060, 0x2001, 0x0000, 0x080c,
+-      0x5715, 0x00ce, 0x7818, 0xa080, 0x0028, 0x2004, 0xa086, 0x007e,
+-      0x1130, 0x20a3, 0x0400, 0x620c, 0xc2b4, 0x620e, 0x0010, 0x20a3,
+-      0x0300, 0x20a3, 0x0000, 0x7818, 0xa080, 0x0028, 0x2004, 0xa086,
+-      0x007e, 0x1904, 0x822d, 0x2001, 0xc635, 0x2004, 0xd0a4, 0x01c8,
+-      0x2099, 0xc8d5, 0x33a6, 0x9398, 0x20a3, 0x0000, 0x9398, 0x3304,
+-      0xa084, 0x2000, 0x20a2, 0x9398, 0x33a6, 0x9398, 0x20a3, 0x0000,
+-      0x9398, 0x2001, 0x2710, 0x20a2, 0x9398, 0x33a6, 0x9398, 0x33a6,
+-      0x00d0, 0x2099, 0xc8d5, 0x33a6, 0x9398, 0x33a6, 0x9398, 0x3304,
+-      0x080c, 0x5f22, 0x1118, 0xa084, 0x37ff, 0x0010, 0xa084, 0x3fff,
+-      0x20a2, 0x9398, 0x33a6, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3,
+-      0x0000, 0x20a3, 0x0000, 0x20a9, 0x0004, 0x2099, 0xc605, 0x53a6,
+-      0x20a9, 0x0004, 0x2099, 0xc601, 0x53a6, 0x20a9, 0x0008, 0x20a3,
+-      0x0000, 0x1f04, 0x8207, 0x20a9, 0x0008, 0x20a3, 0x0000, 0x1f04,
+-      0x820d, 0x2099, 0xc8dd, 0x3304, 0xc0dd, 0x20a2, 0x2001, 0xc672,
+-      0x2004, 0xd0e4, 0x0158, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x9398,
+-      0x9398, 0x9398, 0x33a6, 0x20a9, 0x0004, 0x0010, 0x20a9, 0x0007,
+-      0x20a3, 0x0000, 0x1f04, 0x8228, 0x0468, 0x2001, 0xc635, 0x2004,
+-      0xd0a4, 0x0140, 0x2001, 0xc8d6, 0x2004, 0x60e3, 0x0000, 0x080c,
+-      0x2a1c, 0x60e2, 0x2099, 0xc8d5, 0x20a9, 0x0008, 0x53a6, 0x20a9,
+-      0x0004, 0x2099, 0xc605, 0x53a6, 0x20a9, 0x0004, 0x2099, 0xc601,
+-      0x53a6, 0x20a9, 0x0008, 0x20a3, 0x0000, 0x1f04, 0x824b, 0x20a9,
+-      0x0008, 0x20a3, 0x0000, 0x1f04, 0x8251, 0x2099, 0xc8dd, 0x20a9,
+-      0x0008, 0x53a6, 0x20a9, 0x0008, 0x20a3, 0x0000, 0x1f04, 0x825c,
+-      0x20a9, 0x000a, 0x20a3, 0x0000, 0x1f04, 0x8262, 0x60c3, 0x0074,
+-      0x080c, 0x8be2, 0x0005, 0x20a1, 0x020b, 0x080c, 0x83bf, 0x20a3,
+-      0x2010, 0x20a3, 0x0014, 0x20a3, 0x0800, 0x20a3, 0x2000, 0xa006,
+-      0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x00f6, 0x2079, 0xc652,
+-      0x7904, 0x00fe, 0xd1ac, 0x1110, 0xa085, 0x0020, 0xd1a4, 0x0110,
+-      0xa085, 0x0010, 0xa085, 0x0002, 0x00d6, 0x0804, 0x834a, 0x20a2,
+-      0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0014, 0x080c, 0x8be2,
+-      0x0005, 0x20a1, 0x020b, 0x080c, 0x83bf, 0x20a3, 0x5000, 0x0804,
+-      0x81b9, 0x20a1, 0x020b, 0x080c, 0x83bf, 0x20a3, 0x2110, 0x20a3,
+-      0x0014, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3,
+-      0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3,
+-      0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0014, 0x080c,
+-      0x8be2, 0x0005, 0x20a1, 0x020b, 0x080c, 0x8453, 0x0020, 0x20a1,
+-      0x020b, 0x080c, 0x845b, 0x20a3, 0x0200, 0x20a3, 0x0000, 0x20a3,
+-      0x0000, 0x20a3, 0x0000, 0x60c3, 0x0004, 0x080c, 0x8be2, 0x0005,
+-      0x20a1, 0x020b, 0x080c, 0x845b, 0x20a3, 0x0100, 0x20a3, 0x0000,
+-      0x20a3, 0x0003, 0x20a3, 0x2a00, 0x60c3, 0x0008, 0x080c, 0x8be2,
+-      0x0005, 0x20a1, 0x020b, 0x080c, 0x845b, 0x20a3, 0x0200, 0x0804,
+-      0x81b9, 0x20a1, 0x020b, 0x080c, 0x845b, 0x20a3, 0x0100, 0x20a3,
+-      0x0000, 0x7828, 0xa005, 0x0110, 0x20a2, 0x0010, 0x20a3, 0x0003,
+-      0x7810, 0x20a2, 0x60c3, 0x0008, 0x080c, 0x8be2, 0x0005, 0x00d6,
+-      0x20a1, 0x020b, 0x080c, 0x845b, 0x20a3, 0x0210, 0x20a3, 0x0014,
+-      0x20a3, 0x0800, 0x7818, 0x2068, 0x6894, 0xa086, 0x0014, 0x1198,
+-      0x699c, 0xa184, 0x0030, 0x0190, 0x6998, 0xa184, 0xc000, 0x1140,
+-      0xd1ec, 0x0118, 0x20a3, 0x2100, 0x0058, 0x20a3, 0x0100, 0x0040,
+-      0x20a3, 0x0400, 0x0028, 0x20a3, 0x0700, 0x0010, 0x700f, 0x0800,
++      0x7c2d, 0x8dff, 0x0158, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000,
++      0x080c, 0xaf1c, 0x080c, 0xc4f0, 0x080c, 0x5823, 0x080c, 0x8fd0,
++      0x0804, 0x7c2d, 0x006e, 0x00de, 0x00ee, 0x00fe, 0x012e, 0x000e,
++      0x00ce, 0x0005, 0x0006, 0x0066, 0x00c6, 0x00d6, 0x2031, 0x0000,
++      0x7814, 0xa065, 0x0904, 0x7cdc, 0x600c, 0x0006, 0x600f, 0x0000,
++      0x7824, 0xac06, 0x1540, 0x2069, 0x0100, 0x68c0, 0xa005, 0x01f0,
++      0x080c, 0x703d, 0x080c, 0x8c0e, 0x68c3, 0x0000, 0x080c, 0x90ff,
++      0x7827, 0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0xa384, 0x1000,
++      0x0120, 0x6803, 0x0100, 0x6803, 0x0000, 0x2069, 0x0100, 0x6824,
++      0xd084, 0x0110, 0x6827, 0x0001, 0x003e, 0x0028, 0x6003, 0x0009,
++      0x630a, 0x2c30, 0x00b0, 0x6010, 0x2068, 0x080c, 0xacaa, 0x0168,
++      0x601c, 0xa086, 0x0003, 0x11b8, 0x6837, 0x0103, 0x6b4a, 0x6847,
++      0x0000, 0x080c, 0x5823, 0x080c, 0xae61, 0x080c, 0xae6d, 0x080c,
++      0x8fd0, 0x000e, 0x0804, 0x7c91, 0x7e16, 0x7e12, 0x00de, 0x00ce,
++      0x006e, 0x000e, 0x0005, 0x601c, 0xa086, 0x0006, 0x1118, 0x080c,
++      0xc15a, 0x0c58, 0x601c, 0xa086, 0x0002, 0x1128, 0x6004, 0xa086,
++      0x0085, 0x09d0, 0x0c10, 0x601c, 0xa086, 0x0005, 0x19f0, 0x6004,
++      0xa086, 0x0085, 0x0d60, 0x08c8, 0x0006, 0x0066, 0x00c6, 0x00d6,
++      0x7818, 0xa065, 0x0904, 0x7d62, 0x6054, 0x0006, 0x6057, 0x0000,
++      0x605b, 0x0000, 0x6000, 0xc0d4, 0xc0dc, 0x6002, 0x080c, 0x5281,
++      0x0904, 0x7d5f, 0x7e24, 0x86ff, 0x05e8, 0xa680, 0x0004, 0x2004,
++      0xad06, 0x15c0, 0x00d6, 0x2069, 0x0100, 0x68c0, 0xa005, 0x0548,
++      0x080c, 0x703d, 0x080c, 0x8c0e, 0x68c3, 0x0000, 0x080c, 0x90ff,
++      0x7827, 0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0xa384, 0x1000,
++      0x0120, 0x6803, 0x0100, 0x6803, 0x0000, 0x2069, 0x0100, 0x6824,
++      0xd084, 0x0110, 0x6827, 0x0001, 0x003e, 0x00de, 0x00c6, 0x603c,
++      0xa005, 0x0110, 0x8001, 0x603e, 0x2660, 0x080c, 0xae6d, 0x00ce,
++      0x0048, 0x00de, 0x00c6, 0x2660, 0x6003, 0x0009, 0x630a, 0x00ce,
++      0x0804, 0x7d0e, 0x8dff, 0x0138, 0x6837, 0x0103, 0x6b4a, 0x6847,
++      0x0000, 0x080c, 0x5823, 0x080c, 0x8fd0, 0x0804, 0x7d0e, 0x000e,
++      0x0804, 0x7d01, 0x781e, 0x781a, 0x00de, 0x00ce, 0x006e, 0x000e,
++      0x0005, 0x00e6, 0x00d6, 0x0066, 0x6000, 0xd0dc, 0x01a0, 0x604c,
++      0xa06d, 0x0188, 0x6848, 0xa606, 0x1170, 0x2071, 0xc927, 0x7024,
++      0xa035, 0x0148, 0xa080, 0x0004, 0x2004, 0xad06, 0x1120, 0x6000,
++      0xc0dc, 0x6002, 0x0021, 0x006e, 0x00de, 0x00ee, 0x0005, 0x00f6,
++      0x2079, 0x0100, 0x78c0, 0xa005, 0x1138, 0x00c6, 0x2660, 0x6003,
++      0x0009, 0x630a, 0x00ce, 0x04a0, 0x080c, 0x8c0e, 0x78c3, 0x0000,
++      0x080c, 0x90ff, 0x7027, 0x0000, 0x0036, 0x2079, 0x0140, 0x7b04,
++      0xa384, 0x1000, 0x0120, 0x7803, 0x0100, 0x7803, 0x0000, 0x2079,
++      0x0100, 0x7824, 0xd084, 0x0110, 0x7827, 0x0001, 0x080c, 0x90ff,
++      0x003e, 0x080c, 0x5281, 0x00c6, 0x603c, 0xa005, 0x0110, 0x8001,
++      0x603e, 0x2660, 0x080c, 0x95fc, 0x00ce, 0x6837, 0x0103, 0x6b4a,
++      0x6847, 0x0000, 0x080c, 0xaf1c, 0x080c, 0x5823, 0x080c, 0x8fd0,
++      0x00fe, 0x0005, 0x00e6, 0x00c6, 0x2071, 0xc927, 0x7004, 0xa084,
++      0x0007, 0x0002, 0x7ddc, 0x7ddf, 0x7df5, 0x7e0e, 0x7e4b, 0x7ddc,
++      0x7dda, 0x7dda, 0x080c, 0x1519, 0x00ce, 0x00ee, 0x0005, 0x7024,
++      0xa065, 0x0148, 0x7020, 0x8001, 0x7022, 0x600c, 0xa015, 0x0150,
++      0x7216, 0x600f, 0x0000, 0x7007, 0x0000, 0x7027, 0x0000, 0x00ce,
++      0x00ee, 0x0005, 0x7216, 0x7212, 0x0cb0, 0x6018, 0x2060, 0x080c,
++      0x5281, 0x6000, 0xc0dc, 0x6002, 0x7020, 0x8001, 0x7022, 0x0120,
++      0x6054, 0xa015, 0x0140, 0x721e, 0x7007, 0x0000, 0x7027, 0x0000,
++      0x00ce, 0x00ee, 0x0005, 0x7218, 0x721e, 0x0cb0, 0x7024, 0xa065,
++      0x05b8, 0x700c, 0xac06, 0x1160, 0x080c, 0x8fd0, 0x600c, 0xa015,
++      0x0120, 0x720e, 0x600f, 0x0000, 0x0448, 0x720e, 0x720a, 0x0430,
++      0x7014, 0xac06, 0x1160, 0x080c, 0x8fd0, 0x600c, 0xa015, 0x0120,
++      0x7216, 0x600f, 0x0000, 0x00d0, 0x7216, 0x7212, 0x00b8, 0x601c,
++      0xa086, 0x0003, 0x1198, 0x6018, 0x2060, 0x080c, 0x5281, 0x6000,
++      0xc0dc, 0x6002, 0x080c, 0x8fd0, 0x701c, 0xa065, 0x0138, 0x6054,
++      0xa015, 0x0110, 0x721e, 0x0010, 0x7218, 0x721e, 0x7027, 0x0000,
++      0x00ce, 0x00ee, 0x0005, 0x7024, 0xa065, 0x0140, 0x080c, 0x8fd0,
++      0x600c, 0xa015, 0x0150, 0x720e, 0x600f, 0x0000, 0x080c, 0x90ff,
++      0x7027, 0x0000, 0x00ce, 0x00ee, 0x0005, 0x720e, 0x720a, 0x0cb0,
++      0x00d6, 0x2069, 0xc927, 0x6830, 0xa084, 0x0003, 0x0002, 0x7e6d,
++      0x7e6f, 0x7e93, 0x7e6b, 0x080c, 0x1519, 0x00de, 0x0005, 0x00c6,
++      0x6840, 0xa086, 0x0001, 0x01b8, 0x683c, 0xa065, 0x0130, 0x600c,
++      0xa015, 0x0170, 0x6a3a, 0x600f, 0x0000, 0x6833, 0x0000, 0x683f,
++      0x0000, 0x2011, 0xc946, 0x2013, 0x0000, 0x00ce, 0x00de, 0x0005,
++      0x683a, 0x6836, 0x0c90, 0x6843, 0x0000, 0x6838, 0xa065, 0x0d68,
++      0x6003, 0x0003, 0x0c50, 0x00c6, 0x6843, 0x0000, 0x6847, 0x0000,
++      0x684b, 0x0000, 0x683c, 0xa065, 0x0168, 0x600c, 0xa015, 0x0130,
++      0x6a3a, 0x600f, 0x0000, 0x683f, 0x0000, 0x0020, 0x683f, 0x0000,
++      0x683a, 0x6836, 0x00ce, 0x00de, 0x0005, 0x00d6, 0x2069, 0xc927,
++      0x6804, 0xa084, 0x0007, 0x0006, 0xa005, 0x11c8, 0x2001, 0xc635,
++      0x2004, 0xa084, 0x0028, 0x1198, 0x2001, 0xc8e5, 0x2004, 0xa086,
++      0xaaaa, 0x0168, 0x2001, 0xc696, 0x2004, 0xd08c, 0x1118, 0xd084,
++      0x1118, 0x0028, 0x080c, 0x7f87, 0x000e, 0x00de, 0x0005, 0x000e,
++      0x0002, 0x7edb, 0x7f77, 0x7f77, 0x7f77, 0x7f77, 0x7f79, 0x7ed9,
++      0x7ed9, 0x080c, 0x1519, 0x6820, 0xa005, 0x1110, 0x00de, 0x0005,
++      0x00c6, 0x680c, 0xa065, 0x0150, 0x6807, 0x0004, 0x6826, 0x682b,
++      0x0000, 0x080c, 0x8009, 0x00ce, 0x00de, 0x0005, 0x6814, 0xa065,
++      0x0150, 0x6807, 0x0001, 0x6826, 0x682b, 0x0000, 0x080c, 0x8009,
++      0x00ce, 0x00de, 0x0005, 0x00e6, 0x0036, 0x6a1c, 0xa2f5, 0x0000,
++      0x0904, 0x7f73, 0x704c, 0xa00d, 0x0118, 0x7088, 0xa005, 0x01a0,
++      0x7054, 0xa075, 0x0120, 0xa20e, 0x0904, 0x7f73, 0x0028, 0x6818,
++      0xa20e, 0x0904, 0x7f73, 0x2070, 0x704c, 0xa00d, 0x0d88, 0x7088,
++      0xa005, 0x1d70, 0x2e00, 0x681e, 0x733c, 0x7038, 0xa302, 0x1e40,
++      0x080c, 0x95d3, 0x0904, 0x7f73, 0x8318, 0x733e, 0x6112, 0x2e10,
++      0x621a, 0xa180, 0x0014, 0x2004, 0xa084, 0x00ff, 0x605a, 0xa180,
++      0x0014, 0x2003, 0x0000, 0xa180, 0x0015, 0x2004, 0xa08a, 0x199a,
++      0x0210, 0x2001, 0x1999, 0x8003, 0x801b, 0x831b, 0xa318, 0x6316,
++      0x003e, 0x00f6, 0x2c78, 0x71a0, 0x2001, 0xc635, 0x2004, 0xd0ac,
++      0x1110, 0xd1bc, 0x0150, 0x7100, 0xd1f4, 0x0120, 0x7114, 0xa18c,
++      0x00ff, 0x0040, 0x2009, 0x0000, 0x0028, 0xa1e0, 0x2f6e, 0x2c0d,
++      0xa18c, 0x00ff, 0x2061, 0x0100, 0x619a, 0x080c, 0x8639, 0x7300,
++      0xc3dd, 0x7302, 0x6807, 0x0002, 0x2f18, 0x6b26, 0x682b, 0x0000,
++      0x781f, 0x0003, 0x7803, 0x0001, 0x7807, 0x0040, 0x00fe, 0x00ee,
++      0x00ce, 0x00de, 0x0005, 0x003e, 0x00ee, 0x00ce, 0x0cd0, 0x00de,
++      0x0005, 0x00c6, 0x680c, 0xa065, 0x0138, 0x6807, 0x0004, 0x6826,
++      0x682b, 0x0000, 0x080c, 0x8009, 0x00ce, 0x00de, 0x0005, 0x00f6,
++      0x00d6, 0x2069, 0xc927, 0x6830, 0xa086, 0x0000, 0x1904, 0x7fe4,
++      0x2001, 0xc60c, 0x200c, 0xd1bc, 0x1904, 0x7fff, 0x6838, 0xa07d,
++      0x0904, 0x7fe4, 0x2001, 0xc635, 0x2004, 0xa084, 0x0028, 0x11f8,
++      0x2001, 0xc8e5, 0x2004, 0xa086, 0xaaaa, 0x01c8, 0x781c, 0xa086,
++      0x0009, 0x11a8, 0x7808, 0xd0fc, 0x0190, 0x2001, 0xc928, 0x2004,
++      0xa005, 0x1138, 0x2001, 0xc696, 0x200c, 0xc185, 0xc18c, 0x2102,
++      0x0030, 0x2011, 0xc696, 0x2204, 0xc08d, 0x2012, 0x0428, 0x2f00,
++      0x6833, 0x0001, 0x683e, 0x6847, 0x0000, 0x684b, 0x0000, 0x0126,
++      0x00f6, 0x2091, 0x2400, 0x002e, 0x080c, 0x20ef, 0x11c0, 0x012e,
++      0xe000, 0xe000, 0xe000, 0x6a3c, 0x2278, 0x781c, 0xa086, 0x0009,
++      0x1148, 0x7808, 0xd0fc, 0x0118, 0x080c, 0x8982, 0x0028, 0x080c,
++      0x89fb, 0x0010, 0x080c, 0x8a7f, 0x00de, 0x00fe, 0x0005, 0x012e,
++      0xe000, 0x6843, 0x0000, 0x781c, 0xa086, 0x0009, 0x0110, 0x7803,
++      0x0002, 0x780c, 0xa015, 0x0140, 0x6a3a, 0x780f, 0x0000, 0x6833,
++      0x0000, 0x683f, 0x0000, 0x0c40, 0x683a, 0x6836, 0x0cc0, 0xc1bc,
++      0x2102, 0x0066, 0x2031, 0x0001, 0x080c, 0x5fbd, 0x006e, 0x0804,
++      0x7f96, 0x601c, 0xa084, 0x000f, 0x000b, 0x0005, 0x8017, 0x801c,
++      0x84da, 0x85f6, 0x801c, 0x84da, 0x85f6, 0x8017, 0x801c, 0x080c,
++      0x7dca, 0x080c, 0x7ead, 0x0005, 0x0156, 0x0136, 0x0146, 0x00c6,
++      0x00f6, 0x6004, 0xa08a, 0x0080, 0x1a0c, 0x1519, 0x6118, 0x2178,
++      0x79a0, 0x2011, 0xc635, 0x2214, 0xd2ac, 0x1110, 0xd1bc, 0x0150,
++      0x7900, 0xd1f4, 0x0120, 0x7914, 0xa18c, 0x00ff, 0x0040, 0x2009,
++      0x0000, 0x0028, 0xa1f8, 0x2f6e, 0x2f0d, 0xa18c, 0x00ff, 0x2c78,
++      0x2061, 0x0100, 0x619a, 0xa08a, 0x0040, 0x1a04, 0x8090, 0x0033,
++      0x00fe, 0x00ce, 0x014e, 0x013e, 0x015e, 0x0005, 0x813f, 0x818a,
++      0x81b7, 0x8284, 0x82b2, 0x82ba, 0x82e0, 0x82f1, 0x8302, 0x830a,
++      0x8320, 0x830a, 0x8381, 0x82f1, 0x83a2, 0x83aa, 0x8302, 0x83aa,
++      0x83bb, 0x808e, 0x808e, 0x808e, 0x808e, 0x808e, 0x808e, 0x808e,
++      0x808e, 0x808e, 0x808e, 0x808e, 0x8d33, 0x8d58, 0x8d6d, 0x8d90,
++      0x8db1, 0x82e0, 0x808e, 0x82e0, 0x830a, 0x808e, 0x81b7, 0x8284,
++      0x808e, 0x9201, 0x830a, 0x808e, 0x9221, 0x830a, 0x808e, 0x8302,
++      0x8138, 0x80a3, 0x808e, 0x9246, 0x92bb, 0x9392, 0x808e, 0x93a3,
++      0x82db, 0x93bf, 0x808e, 0x8dc6, 0x941a, 0x808e, 0x080c, 0x1519,
++      0x2100, 0x0033, 0x00fe, 0x00ce, 0x014e, 0x013e, 0x015e, 0x0005,
++      0x9471, 0x9520, 0x80a1, 0x80d7, 0x80f5, 0x810b, 0x80a1, 0x82e0,
++      0x80a1, 0x080c, 0x1519, 0x00d6, 0x20a1, 0x020b, 0x080c, 0x83d8,
++      0x7810, 0x2068, 0x20a3, 0x2414, 0x20a3, 0x0018, 0x20a3, 0x0800,
++      0x683c, 0x20a2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000,
++      0x20a3, 0x0000, 0x6850, 0x20a2, 0x6854, 0x20a2, 0x20a3, 0x0000,
++      0x20a3, 0x0000, 0x60c3, 0x0018, 0x080c, 0x8bfb, 0x00de, 0x0005,
++      0x00d6, 0x7818, 0x2068, 0x68a0, 0x2069, 0xc600, 0x6ad4, 0xd2ac,
++      0x1110, 0xd0bc, 0x0110, 0xa085, 0x0001, 0x00de, 0x0005, 0x00d6,
++      0x20a1, 0x020b, 0x080c, 0x83d8, 0x20a3, 0x0500, 0x20a3, 0x0000,
++      0x7810, 0xa0e8, 0x000f, 0x6808, 0x20a2, 0x680c, 0x20a2, 0x6810,
++      0x20a2, 0x6814, 0x20a2, 0x6818, 0x20a2, 0x681c, 0x20a2, 0x60c3,
++      0x0010, 0x080c, 0x8bfb, 0x00de, 0x0005, 0x0156, 0x0146, 0x20a1,
++      0x020b, 0x080c, 0x83d8, 0x20a3, 0x7800, 0x20a3, 0x0000, 0x7808,
++      0x8007, 0x20a2, 0x20a3, 0x0000, 0x60c3, 0x0008, 0x080c, 0x8bfb,
++      0x014e, 0x015e, 0x0005, 0x0156, 0x0146, 0x20a1, 0x020b, 0x080c,
++      0x8474, 0x20a3, 0x0200, 0x20a3, 0x0000, 0x20a3, 0xdf10, 0x20a3,
++      0x0034, 0x2099, 0xc605, 0x20a9, 0x0004, 0x53a6, 0x2099, 0xc601,
++      0x20a9, 0x0004, 0x53a6, 0x2099, 0xc90d, 0x20a9, 0x001a, 0x3304,
++      0x8007, 0x20a2, 0x9398, 0x1f04, 0x8127, 0x20a3, 0x0000, 0x20a3,
++      0x0000, 0x60c3, 0x004c, 0x080c, 0x8bfb, 0x014e, 0x015e, 0x0005,
++      0x2001, 0xc615, 0x2004, 0x609a, 0x080c, 0x8bfb, 0x0005, 0x20a1,
++      0x020b, 0x080c, 0x83d8, 0x20a3, 0x5200, 0x20a3, 0x0000, 0x00d6,
++      0x2069, 0xc652, 0x6804, 0xd084, 0x0150, 0x6828, 0x20a3, 0x0000,
++      0x0016, 0x080c, 0x29db, 0x21a2, 0x001e, 0x00de, 0x0028, 0x00de,
++      0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a9, 0x0004, 0x2099, 0xc605,
++      0x53a6, 0x20a9, 0x0004, 0x2099, 0xc601, 0x53a6, 0x2001, 0xc635,
++      0x2004, 0xd0ac, 0x1138, 0x7818, 0xa080, 0x0028, 0x2004, 0xa082,
++      0x007f, 0x0238, 0x2001, 0xc61c, 0x20a6, 0x2001, 0xc61d, 0x20a6,
++      0x0040, 0x20a3, 0x0000, 0x2001, 0xc615, 0x2004, 0xa084, 0x00ff,
++      0x20a2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x001c, 0x080c,
++      0x8bfb, 0x0005, 0x20a1, 0x020b, 0x080c, 0x83d8, 0x20a3, 0x0500,
++      0x20a3, 0x0000, 0x2001, 0xc635, 0x2004, 0xd0ac, 0x1138, 0x7818,
++      0xa080, 0x0028, 0x2004, 0xa082, 0x007f, 0x0238, 0x2001, 0xc61c,
++      0x20a6, 0x2001, 0xc61d, 0x20a6, 0x0040, 0x20a3, 0x0000, 0x2001,
++      0xc615, 0x2004, 0xa084, 0x00ff, 0x20a2, 0x20a9, 0x0004, 0x2099,
++      0xc605, 0x53a6, 0x60c3, 0x0010, 0x080c, 0x8bfb, 0x0005, 0x20a1,
++      0x020b, 0x080c, 0x83d8, 0x00c6, 0x7818, 0x2060, 0x2001, 0x0000,
++      0x080c, 0x572e, 0x00ce, 0x7818, 0xa080, 0x0028, 0x2004, 0xa086,
++      0x007e, 0x1130, 0x20a3, 0x0400, 0x620c, 0xc2b4, 0x620e, 0x0010,
++      0x20a3, 0x0300, 0x20a3, 0x0000, 0x7818, 0xa080, 0x0028, 0x2004,
++      0xa086, 0x007e, 0x1904, 0x8246, 0x2001, 0xc635, 0x2004, 0xd0a4,
++      0x01c8, 0x2099, 0xc8d5, 0x33a6, 0x9398, 0x20a3, 0x0000, 0x9398,
++      0x3304, 0xa084, 0x2000, 0x20a2, 0x9398, 0x33a6, 0x9398, 0x20a3,
++      0x0000, 0x9398, 0x2001, 0x2710, 0x20a2, 0x9398, 0x33a6, 0x9398,
++      0x33a6, 0x00d0, 0x2099, 0xc8d5, 0x33a6, 0x9398, 0x33a6, 0x9398,
++      0x3304, 0x080c, 0x5f3b, 0x1118, 0xa084, 0x37ff, 0x0010, 0xa084,
++      0x3fff, 0x20a2, 0x9398, 0x33a6, 0x20a3, 0x0000, 0x20a3, 0x0000,
++      0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a9, 0x0004, 0x2099, 0xc605,
++      0x53a6, 0x20a9, 0x0004, 0x2099, 0xc601, 0x53a6, 0x20a9, 0x0008,
++      0x20a3, 0x0000, 0x1f04, 0x8220, 0x20a9, 0x0008, 0x20a3, 0x0000,
++      0x1f04, 0x8226, 0x2099, 0xc8dd, 0x3304, 0xc0dd, 0x20a2, 0x2001,
++      0xc672, 0x2004, 0xd0e4, 0x0158, 0x20a3, 0x0000, 0x20a3, 0x0000,
++      0x9398, 0x9398, 0x9398, 0x33a6, 0x20a9, 0x0004, 0x0010, 0x20a9,
++      0x0007, 0x20a3, 0x0000, 0x1f04, 0x8241, 0x0468, 0x2001, 0xc635,
++      0x2004, 0xd0a4, 0x0140, 0x2001, 0xc8d6, 0x2004, 0x60e3, 0x0000,
++      0x080c, 0x2a1c, 0x60e2, 0x2099, 0xc8d5, 0x20a9, 0x0008, 0x53a6,
++      0x20a9, 0x0004, 0x2099, 0xc605, 0x53a6, 0x20a9, 0x0004, 0x2099,
++      0xc601, 0x53a6, 0x20a9, 0x0008, 0x20a3, 0x0000, 0x1f04, 0x8264,
++      0x20a9, 0x0008, 0x20a3, 0x0000, 0x1f04, 0x826a, 0x2099, 0xc8dd,
++      0x20a9, 0x0008, 0x53a6, 0x20a9, 0x0008, 0x20a3, 0x0000, 0x1f04,
++      0x8275, 0x20a9, 0x000a, 0x20a3, 0x0000, 0x1f04, 0x827b, 0x60c3,
++      0x0074, 0x080c, 0x8bfb, 0x0005, 0x20a1, 0x020b, 0x080c, 0x83d8,
++      0x20a3, 0x2010, 0x20a3, 0x0014, 0x20a3, 0x0800, 0x20a3, 0x2000,
+       0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x00f6, 0x2079,
+       0xc652, 0x7904, 0x00fe, 0xd1ac, 0x1110, 0xa085, 0x0020, 0xd1a4,
+-      0x0110, 0xa085, 0x0010, 0x2009, 0xc674, 0x210c, 0xd184, 0x1110,
+-      0xa085, 0x0002, 0x0026, 0x2009, 0xc672, 0x210c, 0xd1e4, 0x0130,
+-      0xc0c5, 0xa094, 0x0030, 0xa296, 0x0010, 0x0140, 0xd1ec, 0x0130,
+-      0xa094, 0x0030, 0xa296, 0x0010, 0x0108, 0xc0bd, 0x002e, 0x20a2,
+-      0x20a2, 0x20a2, 0x60c3, 0x0014, 0x080c, 0x8be2, 0x00de, 0x0005,
+-      0x20a1, 0x020b, 0x080c, 0x845b, 0x20a3, 0x0210, 0x20a3, 0x0014,
+-      0x20a3, 0x0000, 0x20a3, 0x0100, 0x20a3, 0x0000, 0x20a3, 0x0000,
++      0x0110, 0xa085, 0x0010, 0xa085, 0x0002, 0x00d6, 0x0804, 0x8363,
++      0x20a2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0014, 0x080c,
++      0x8bfb, 0x0005, 0x20a1, 0x020b, 0x080c, 0x83d8, 0x20a3, 0x5000,
++      0x0804, 0x81d2, 0x20a1, 0x020b, 0x080c, 0x83d8, 0x20a3, 0x2110,
++      0x20a3, 0x0014, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000,
+       0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000,
+-      0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0014, 0x080c, 0x8be2,
+-      0x0005, 0x20a1, 0x020b, 0x080c, 0x845b, 0x20a3, 0x0200, 0x0804,
+-      0x812c, 0x20a1, 0x020b, 0x080c, 0x845b, 0x20a3, 0x0100, 0x20a3,
++      0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0014,
++      0x080c, 0x8bfb, 0x0005, 0x20a1, 0x020b, 0x080c, 0x846c, 0x0020,
++      0x20a1, 0x020b, 0x080c, 0x8474, 0x20a3, 0x0200, 0x20a3, 0x0000,
++      0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0004, 0x080c, 0x8bfb,
++      0x0005, 0x20a1, 0x020b, 0x080c, 0x8474, 0x20a3, 0x0100, 0x20a3,
+       0x0000, 0x20a3, 0x0003, 0x20a3, 0x2a00, 0x60c3, 0x0008, 0x080c,
+-      0x8be2, 0x0005, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x20a1, 0x020b,
+-      0x080c, 0x845b, 0x20a3, 0x0100, 0x20a3, 0x0000, 0x20a3, 0x000b,
+-      0x20a3, 0x0000, 0x60c3, 0x0008, 0x080c, 0x8be2, 0x0005, 0x0026,
+-      0x0036, 0x0046, 0x2019, 0x3200, 0x2021, 0x0800, 0x0038, 0x0026,
+-      0x0036, 0x0046, 0x2019, 0x2200, 0x2021, 0x0100, 0x20e1, 0x9080,
+-      0x20e1, 0x4000, 0x7818, 0xa080, 0x0028, 0x2014, 0xa286, 0x007e,
+-      0x11a0, 0xa385, 0x00ff, 0x20a2, 0x20a3, 0xfffe, 0x20a3, 0x0000,
+-      0x2011, 0xc615, 0x2214, 0x2001, 0xc8e5, 0x2004, 0xa005, 0x0118,
+-      0x2011, 0xc61d, 0x2214, 0x22a2, 0x04d0, 0xa286, 0x007f, 0x1138,
+-      0x00d6, 0xa385, 0x00ff, 0x20a2, 0x20a3, 0xfffd, 0x00c8, 0x2001,
+-      0xc635, 0x2004, 0xd0ac, 0x1110, 0xd2bc, 0x01c8, 0xa286, 0x0080,
+-      0x00d6, 0x1130, 0xa385, 0x00ff, 0x20a2, 0x20a3, 0xfffc, 0x0040,
+-      0xa2e8, 0xc77b, 0x2d6c, 0x6810, 0xa305, 0x20a2, 0x6814, 0x20a2,
+-      0x2069, 0xc61c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0080, 0x00d6,
+-      0xa2e8, 0xc77b, 0x2d6c, 0x6810, 0xa305, 0x20a2, 0x6814, 0x20a2,
+-      0x00de, 0x20a3, 0x0000, 0x2011, 0xc615, 0x2214, 0x22a2, 0xa485,
+-      0x0029, 0x20a2, 0x004e, 0x003e, 0x20a3, 0x0000, 0x080c, 0x8bd1,
+-      0x22a2, 0x20a3, 0x0000, 0x2fa2, 0x20a3, 0xffff, 0x20a3, 0x0000,
+-      0x20a3, 0x0000, 0x002e, 0x0005, 0x0026, 0x20e1, 0x9080, 0x20e1,
+-      0x4000, 0x20a3, 0x02ff, 0x2011, 0xfffc, 0x22a2, 0x00d6, 0x2069,
+-      0xc61c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x20a3, 0x2029, 0x20a3,
+-      0x0000, 0x08e0, 0x20a3, 0x0100, 0x20a3, 0x0000, 0x20a3, 0xfc02,
+-      0x20a3, 0x0000, 0x0005, 0x0026, 0x0036, 0x0046, 0x2019, 0x3300,
+-      0x2021, 0x0800, 0x0038, 0x0026, 0x0036, 0x0046, 0x2019, 0x2300,
+-      0x2021, 0x0100, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7818, 0xa080,
+-      0x0028, 0x2004, 0x2011, 0xc635, 0x2214, 0xd2ac, 0x1118, 0xa092,
+-      0x007e, 0x02d8, 0x00d6, 0xa0e8, 0xc77b, 0x2d6c, 0x6810, 0xa305,
+-      0x20a2, 0x6814, 0x20a2, 0x6810, 0xa005, 0x1140, 0x6814, 0xa005,
+-      0x1128, 0x20a3, 0x00ff, 0x20a3, 0xfffe, 0x0028, 0x2069, 0xc61c,
+-      0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0080, 0x00d6, 0xa0e8, 0xc77b,
+-      0x2d6c, 0x6810, 0xa305, 0x20a2, 0x6814, 0x20a2, 0x00de, 0x20a3,
+-      0x0000, 0x2011, 0xc615, 0x2214, 0x22a2, 0xa485, 0x0098, 0x20a2,
+-      0x20a3, 0x0000, 0x004e, 0x003e, 0x080c, 0x8bd1, 0x22a2, 0x20a3,
+-      0x0000, 0x7a08, 0x22a2, 0x2fa2, 0x20a3, 0x0000, 0x20a3, 0x0000,
+-      0x002e, 0x0005, 0x080c, 0x8bd1, 0x22a2, 0x20a3, 0x0000, 0x7a08,
+-      0x22a2, 0x7810, 0x20a2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x002e,
+-      0x0005, 0x00c6, 0x00f6, 0x6004, 0xa08a, 0x0085, 0x0a0c, 0x1519,
+-      0xa08a, 0x008c, 0x1a0c, 0x1519, 0x6118, 0x2178, 0x79a0, 0x2011,
+-      0xc635, 0x2214, 0xd2ac, 0x1110, 0xd1bc, 0x0150, 0x7900, 0xd1f4,
+-      0x0120, 0x7914, 0xa18c, 0x00ff, 0x0040, 0x2009, 0x0000, 0x0028,
+-      0xa1f8, 0x2f6e, 0x2f0d, 0xa18c, 0x00ff, 0x2c78, 0x2061, 0x0100,
+-      0x619a, 0xa082, 0x0085, 0x001b, 0x00fe, 0x00ce, 0x0005, 0x84f8,
+-      0x8502, 0x851d, 0x84f6, 0x84f6, 0x84f6, 0x84f8, 0x080c, 0x1519,
+-      0x0146, 0x20a1, 0x020b, 0x04a1, 0x60c3, 0x0000, 0x080c, 0x8be2,
+-      0x014e, 0x0005, 0x0146, 0x20a1, 0x020b, 0x080c, 0x8569, 0x20a3,
+-      0x0000, 0x20a3, 0x0000, 0x7808, 0x20a2, 0x7810, 0x20a2, 0x20a3,
+-      0x0000, 0x20a3, 0xffff, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3,
+-      0x000c, 0x080c, 0x8be2, 0x014e, 0x0005, 0x0146, 0x20a1, 0x020b,
+-      0x080c, 0x85a3, 0x20a3, 0x0003, 0x20a3, 0x0300, 0x20a3, 0x0000,
+-      0x20a3, 0x0000, 0x60c3, 0x0004, 0x080c, 0x8be2, 0x014e, 0x0005,
+-      0x0026, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7818, 0xa080, 0x0028,
+-      0x2004, 0x2011, 0xc635, 0x2214, 0xd2ac, 0x1118, 0xa092, 0x007e,
+-      0x0288, 0x00d6, 0xa0e8, 0xc77b, 0x2d6c, 0x6810, 0xa085, 0x8100,
+-      0x20a2, 0x6814, 0x20a2, 0x2069, 0xc61c, 0x2da6, 0x8d68, 0x2da6,
+-      0x00de, 0x0088, 0x00d6, 0xa0e8, 0xc77b, 0x2d6c, 0x6810, 0xa085,
+-      0x8100, 0x20a2, 0x6814, 0x20a2, 0x00de, 0x20a3, 0x0000, 0x2011,
+-      0xc615, 0x2214, 0x22a2, 0x20a3, 0x0009, 0x20a3, 0x0000, 0x0804,
+-      0x8426, 0x0026, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7818, 0xa080,
++      0x8bfb, 0x0005, 0x20a1, 0x020b, 0x080c, 0x8474, 0x20a3, 0x0200,
++      0x0804, 0x81d2, 0x20a1, 0x020b, 0x080c, 0x8474, 0x20a3, 0x0100,
++      0x20a3, 0x0000, 0x7828, 0xa005, 0x0110, 0x20a2, 0x0010, 0x20a3,
++      0x0003, 0x7810, 0x20a2, 0x60c3, 0x0008, 0x080c, 0x8bfb, 0x0005,
++      0x00d6, 0x20a1, 0x020b, 0x080c, 0x8474, 0x20a3, 0x0210, 0x20a3,
++      0x0014, 0x20a3, 0x0800, 0x7818, 0x2068, 0x6894, 0xa086, 0x0014,
++      0x1198, 0x699c, 0xa184, 0x0030, 0x0190, 0x6998, 0xa184, 0xc000,
++      0x1140, 0xd1ec, 0x0118, 0x20a3, 0x2100, 0x0058, 0x20a3, 0x0100,
++      0x0040, 0x20a3, 0x0400, 0x0028, 0x20a3, 0x0700, 0x0010, 0x700f,
++      0x0800, 0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x00f6,
++      0x2079, 0xc652, 0x7904, 0x00fe, 0xd1ac, 0x1110, 0xa085, 0x0020,
++      0xd1a4, 0x0110, 0xa085, 0x0010, 0x2009, 0xc674, 0x210c, 0xd184,
++      0x1110, 0xa085, 0x0002, 0x0026, 0x2009, 0xc672, 0x210c, 0xd1e4,
++      0x0130, 0xc0c5, 0xa094, 0x0030, 0xa296, 0x0010, 0x0140, 0xd1ec,
++      0x0130, 0xa094, 0x0030, 0xa296, 0x0010, 0x0108, 0xc0bd, 0x002e,
++      0x20a2, 0x20a2, 0x20a2, 0x60c3, 0x0014, 0x080c, 0x8bfb, 0x00de,
++      0x0005, 0x20a1, 0x020b, 0x080c, 0x8474, 0x20a3, 0x0210, 0x20a3,
++      0x0014, 0x20a3, 0x0000, 0x20a3, 0x0100, 0x20a3, 0x0000, 0x20a3,
++      0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3,
++      0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0014, 0x080c,
++      0x8bfb, 0x0005, 0x20a1, 0x020b, 0x080c, 0x8474, 0x20a3, 0x0200,
++      0x0804, 0x8145, 0x20a1, 0x020b, 0x080c, 0x8474, 0x20a3, 0x0100,
++      0x20a3, 0x0000, 0x20a3, 0x0003, 0x20a3, 0x2a00, 0x60c3, 0x0008,
++      0x080c, 0x8bfb, 0x0005, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x20a1,
++      0x020b, 0x080c, 0x8474, 0x20a3, 0x0100, 0x20a3, 0x0000, 0x20a3,
++      0x000b, 0x20a3, 0x0000, 0x60c3, 0x0008, 0x080c, 0x8bfb, 0x0005,
++      0x0026, 0x0036, 0x0046, 0x2019, 0x3200, 0x2021, 0x0800, 0x0038,
++      0x0026, 0x0036, 0x0046, 0x2019, 0x2200, 0x2021, 0x0100, 0x20e1,
++      0x9080, 0x20e1, 0x4000, 0x7818, 0xa080, 0x0028, 0x2014, 0xa286,
++      0x007e, 0x11a0, 0xa385, 0x00ff, 0x20a2, 0x20a3, 0xfffe, 0x20a3,
++      0x0000, 0x2011, 0xc615, 0x2214, 0x2001, 0xc8e5, 0x2004, 0xa005,
++      0x0118, 0x2011, 0xc61d, 0x2214, 0x22a2, 0x04d0, 0xa286, 0x007f,
++      0x1138, 0x00d6, 0xa385, 0x00ff, 0x20a2, 0x20a3, 0xfffd, 0x00c8,
++      0x2001, 0xc635, 0x2004, 0xd0ac, 0x1110, 0xd2bc, 0x01c8, 0xa286,
++      0x0080, 0x00d6, 0x1130, 0xa385, 0x00ff, 0x20a2, 0x20a3, 0xfffc,
++      0x0040, 0xa2e8, 0xc77b, 0x2d6c, 0x6810, 0xa305, 0x20a2, 0x6814,
++      0x20a2, 0x2069, 0xc61c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0080,
++      0x00d6, 0xa2e8, 0xc77b, 0x2d6c, 0x6810, 0xa305, 0x20a2, 0x6814,
++      0x20a2, 0x00de, 0x20a3, 0x0000, 0x2011, 0xc615, 0x2214, 0x22a2,
++      0xa485, 0x0029, 0x20a2, 0x004e, 0x003e, 0x20a3, 0x0000, 0x080c,
++      0x8bea, 0x22a2, 0x20a3, 0x0000, 0x2fa2, 0x20a3, 0xffff, 0x20a3,
++      0x0000, 0x20a3, 0x0000, 0x002e, 0x0005, 0x0026, 0x20e1, 0x9080,
++      0x20e1, 0x4000, 0x20a3, 0x02ff, 0x2011, 0xfffc, 0x22a2, 0x00d6,
++      0x2069, 0xc61c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x20a3, 0x2029,
++      0x20a3, 0x0000, 0x08e0, 0x20a3, 0x0100, 0x20a3, 0x0000, 0x20a3,
++      0xfc02, 0x20a3, 0x0000, 0x0005, 0x0026, 0x0036, 0x0046, 0x2019,
++      0x3300, 0x2021, 0x0800, 0x0038, 0x0026, 0x0036, 0x0046, 0x2019,
++      0x2300, 0x2021, 0x0100, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7818,
++      0xa080, 0x0028, 0x2004, 0x2011, 0xc635, 0x2214, 0xd2ac, 0x1118,
++      0xa092, 0x007e, 0x02d8, 0x00d6, 0xa0e8, 0xc77b, 0x2d6c, 0x6810,
++      0xa305, 0x20a2, 0x6814, 0x20a2, 0x6810, 0xa005, 0x1140, 0x6814,
++      0xa005, 0x1128, 0x20a3, 0x00ff, 0x20a3, 0xfffe, 0x0028, 0x2069,
++      0xc61c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0080, 0x00d6, 0xa0e8,
++      0xc77b, 0x2d6c, 0x6810, 0xa305, 0x20a2, 0x6814, 0x20a2, 0x00de,
++      0x20a3, 0x0000, 0x2011, 0xc615, 0x2214, 0x22a2, 0xa485, 0x0098,
++      0x20a2, 0x20a3, 0x0000, 0x004e, 0x003e, 0x080c, 0x8bea, 0x22a2,
++      0x20a3, 0x0000, 0x7a08, 0x22a2, 0x2fa2, 0x20a3, 0x0000, 0x20a3,
++      0x0000, 0x002e, 0x0005, 0x080c, 0x8bea, 0x22a2, 0x20a3, 0x0000,
++      0x7a08, 0x22a2, 0x7810, 0x20a2, 0x20a3, 0x0000, 0x20a3, 0x0000,
++      0x002e, 0x0005, 0x00c6, 0x00f6, 0x6004, 0xa08a, 0x0085, 0x0a0c,
++      0x1519, 0xa08a, 0x008c, 0x1a0c, 0x1519, 0x6118, 0x2178, 0x79a0,
++      0x2011, 0xc635, 0x2214, 0xd2ac, 0x1110, 0xd1bc, 0x0150, 0x7900,
++      0xd1f4, 0x0120, 0x7914, 0xa18c, 0x00ff, 0x0040, 0x2009, 0x0000,
++      0x0028, 0xa1f8, 0x2f6e, 0x2f0d, 0xa18c, 0x00ff, 0x2c78, 0x2061,
++      0x0100, 0x619a, 0xa082, 0x0085, 0x001b, 0x00fe, 0x00ce, 0x0005,
++      0x8511, 0x851b, 0x8536, 0x850f, 0x850f, 0x850f, 0x8511, 0x080c,
++      0x1519, 0x0146, 0x20a1, 0x020b, 0x04a1, 0x60c3, 0x0000, 0x080c,
++      0x8bfb, 0x014e, 0x0005, 0x0146, 0x20a1, 0x020b, 0x080c, 0x8582,
++      0x20a3, 0x0000, 0x20a3, 0x0000, 0x7808, 0x20a2, 0x7810, 0x20a2,
++      0x20a3, 0x0000, 0x20a3, 0xffff, 0x20a3, 0x0000, 0x20a3, 0x0000,
++      0x60c3, 0x000c, 0x080c, 0x8bfb, 0x014e, 0x0005, 0x0146, 0x20a1,
++      0x020b, 0x080c, 0x85bc, 0x20a3, 0x0003, 0x20a3, 0x0300, 0x20a3,
++      0x0000, 0x20a3, 0x0000, 0x60c3, 0x0004, 0x080c, 0x8bfb, 0x014e,
++      0x0005, 0x0026, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7818, 0xa080,
+       0x0028, 0x2004, 0x2011, 0xc635, 0x2214, 0xd2ac, 0x1118, 0xa092,
+       0x007e, 0x0288, 0x00d6, 0xa0e8, 0xc77b, 0x2d6c, 0x6810, 0xa085,
+-      0x8400, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xc61c, 0x2da6, 0x8d68,
++      0x8100, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xc61c, 0x2da6, 0x8d68,
+       0x2da6, 0x00de, 0x0088, 0x00d6, 0xa0e8, 0xc77b, 0x2d6c, 0x6810,
+-      0xa085, 0x8400, 0x20a2, 0x6814, 0x20a2, 0x00de, 0x20a3, 0x0000,
+-      0x2011, 0xc615, 0x2214, 0x22a2, 0x2001, 0x0099, 0x20a2, 0x20a3,
+-      0x0000, 0x0804, 0x84b2, 0x0026, 0x20e1, 0x9080, 0x20e1, 0x4000,
+-      0x7818, 0xa080, 0x0028, 0x2004, 0x2011, 0xc635, 0x2214, 0xd2ac,
+-      0x1118, 0xa092, 0x007e, 0x0288, 0x00d6, 0xa0e8, 0xc77b, 0x2d6c,
+-      0x6810, 0xa085, 0x8500, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xc61c,
+-      0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0088, 0x00d6, 0xa0e8, 0xc77b,
+-      0x2d6c, 0x6810, 0xa085, 0x8500, 0x20a2, 0x6814, 0x20a2, 0x00de,
+-      0x20a3, 0x0000, 0x2011, 0xc615, 0x2214, 0x22a2, 0x2001, 0x0099,
+-      0x20a2, 0x20a3, 0x0000, 0x0804, 0x84b2, 0x00c6, 0x00f6, 0x2c78,
+-      0x7804, 0xa08a, 0x0040, 0x0a0c, 0x1519, 0xa08a, 0x0053, 0x1a0c,
+-      0x1519, 0x7918, 0x2160, 0x61a0, 0x2011, 0xc635, 0x2214, 0xd2ac,
+-      0x1110, 0xd1bc, 0x0150, 0x6100, 0xd1f4, 0x0120, 0x6114, 0xa18c,
+-      0x00ff, 0x0040, 0x2009, 0x0000, 0x0028, 0xa1e0, 0x2f6e, 0x2c0d,
+-      0xa18c, 0x00ff, 0x2061, 0x0100, 0x619a, 0xa082, 0x0040, 0x001b,
+-      0x00fe, 0x00ce, 0x0005, 0x8620, 0x872c, 0x86c9, 0x88de, 0x861e,
+-      0x861e, 0x861e, 0x861e, 0x861e, 0x861e, 0x861e, 0x8f70, 0x8f80,
+-      0x8f90, 0x8fa0, 0x861e, 0x93b0, 0x861e, 0x8f5f, 0x080c, 0x1519,
+-      0x00d6, 0x0156, 0x0146, 0x780b, 0xffff, 0x20a1, 0x020b, 0x080c,
+-      0x8680, 0x7910, 0x2168, 0x6948, 0x7952, 0x21a2, 0xa016, 0x22a2,
+-      0x22a2, 0x22a2, 0x694c, 0xa184, 0x000f, 0x1118, 0x2001, 0x0005,
+-      0x0040, 0xd184, 0x0118, 0x2001, 0x0004, 0x0018, 0xa084, 0x0006,
+-      0x8004, 0x0016, 0x2008, 0x7858, 0xa084, 0x00ff, 0x8007, 0xa105,
+-      0x001e, 0x20a2, 0xd1ac, 0x0118, 0x20a3, 0x0002, 0x0048, 0xd1b4,
+-      0x0118, 0x20a3, 0x0001, 0x0020, 0x20a3, 0x0000, 0x2230, 0x0010,
+-      0x6a80, 0x6e7c, 0x20a9, 0x0008, 0x0136, 0xad88, 0x0017, 0x2198,
+-      0x20a1, 0x021b, 0x53a6, 0x013e, 0x20a1, 0x020b, 0x22a2, 0x26a2,
+-      0x60c3, 0x0020, 0x20e1, 0x9080, 0x6014, 0xa084, 0x0004, 0xa085,
+-      0x0009, 0x6016, 0x2001, 0xc943, 0x2003, 0x07d0, 0x2001, 0xc942,
+-      0x2003, 0x0009, 0x080c, 0x17f1, 0x014e, 0x015e, 0x00de, 0x0005,
+-      0x20e1, 0x9080, 0x20e1, 0x4000, 0x7a18, 0xa280, 0x0023, 0x2014,
+-      0x8210, 0xa294, 0x00ff, 0x2202, 0x8217, 0x7818, 0xa080, 0x0028,
+-      0x2004, 0x2019, 0xc635, 0x231c, 0xd3ac, 0x1110, 0xd0bc, 0x0188,
+-      0x00d6, 0xa0e8, 0xc77b, 0x2d6c, 0x6810, 0xa085, 0x0600, 0x20a2,
+-      0x6814, 0x20a2, 0x2069, 0xc61c, 0x2da6, 0x8d68, 0x2da6, 0x00de,
+-      0x0088, 0x00d6, 0xa0e8, 0xc77b, 0x2d6c, 0x6810, 0xa085, 0x0600,
+-      0x20a2, 0x6814, 0x20a2, 0x00de, 0x20a3, 0x0000, 0x2009, 0xc615,
+-      0x210c, 0x21a2, 0x20a3, 0x0829, 0x20a3, 0x0000, 0x22a2, 0x20a3,
+-      0x0000, 0x2fa2, 0x20a3, 0xffff, 0x20a3, 0x0000, 0x20a3, 0x0000,
+-      0x0005, 0x00d6, 0x0156, 0x0136, 0x0146, 0x20a1, 0x020b, 0x00c1,
+-      0x7810, 0x2068, 0x6860, 0x20a2, 0x685c, 0x20a2, 0x6880, 0x20a2,
+-      0x687c, 0x20a2, 0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x60c3,
+-      0x000c, 0x080c, 0x8be2, 0x014e, 0x013e, 0x015e, 0x00de, 0x0005,
+-      0x0026, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7818, 0xa080, 0x0028,
+-      0x2004, 0x2011, 0xc635, 0x2214, 0xd2ac, 0x1110, 0xd0bc, 0x0188,
+-      0x00d6, 0xa0e8, 0xc77b, 0x2d6c, 0x6810, 0xa085, 0x0500, 0x20a2,
+-      0x6814, 0x20a2, 0x2069, 0xc61c, 0x2da6, 0x8d68, 0x2da6, 0x00de,
+-      0x0088, 0x00d6, 0xa0e8, 0xc77b, 0x2d6c, 0x6810, 0xa085, 0x0500,
+-      0x20a2, 0x6814, 0x20a2, 0x00de, 0x20a3, 0x0000, 0x2011, 0xc615,
+-      0x2214, 0x22a2, 0x20a3, 0x0889, 0x20a3, 0x0000, 0x080c, 0x8bd1,
+-      0x22a2, 0x20a3, 0x0000, 0x7a08, 0x22a2, 0x2fa2, 0x20a3, 0x0000,
+-      0x20a3, 0x0000, 0x002e, 0x0005, 0x00d6, 0x0156, 0x0136, 0x0146,
+-      0x7810, 0xa0ec, 0xf000, 0x0168, 0xa06d, 0x080c, 0x56bf, 0x0148,
+-      0x684c, 0xa084, 0x2020, 0xa086, 0x2020, 0x1118, 0x7820, 0xc0cd,
+-      0x7822, 0x20a1, 0x020b, 0x080c, 0x8894, 0xa016, 0x22a2, 0x22a2,
+-      0x22a2, 0x22a2, 0x22a2, 0x7810, 0xa084, 0xf000, 0x1130, 0x7810,
+-      0xa084, 0x0700, 0x8007, 0x0043, 0x0010, 0xa006, 0x002b, 0x014e,
+-      0x013e, 0x015e, 0x00de, 0x0005, 0x8766, 0x87fb, 0x880b, 0x883d,
+-      0x8850, 0x886b, 0x8874, 0x8764, 0x080c, 0x1519, 0x0016, 0x0036,
+-      0x694c, 0xa18c, 0x0003, 0x0118, 0xa186, 0x0003, 0x1170, 0x6b78,
+-      0x7820, 0xd0cc, 0x0108, 0xc3e5, 0x23a2, 0x6868, 0x20a2, 0x6864,
+-      0x20a2, 0x003e, 0x001e, 0x0804, 0x8847, 0xa186, 0x0001, 0x190c,
+-      0x1519, 0x6b78, 0x7820, 0xd0cc, 0x0108, 0xc3e5, 0x23a2, 0x6868,
+-      0x20a2, 0x6864, 0x20a2, 0x22a2, 0x6874, 0x20a2, 0x22a2, 0x687c,
+-      0x20a2, 0x2009, 0x0018, 0xa384, 0x0300, 0x0904, 0x87f5, 0xd3c4,
+-      0x0110, 0x687c, 0xa108, 0xd3cc, 0x0110, 0x6874, 0xa108, 0x0156,
+-      0x20a9, 0x000d, 0xad80, 0x0020, 0x201c, 0x831f, 0x23a2, 0x8000,
+-      0x1f04, 0x87a4, 0x015e, 0x22a2, 0x22a2, 0x22a2, 0xa184, 0x0003,
+-      0x0904, 0x87f5, 0x20a1, 0x020b, 0x20e1, 0x9080, 0x20e1, 0x4000,
+-      0x0006, 0x7818, 0xa080, 0x0028, 0x2004, 0x2011, 0xc635, 0x2214,
+-      0xd2ac, 0x1110, 0xd0bc, 0x0188, 0x00d6, 0xa0e8, 0xc77b, 0x2d6c,
+-      0x6810, 0xa085, 0x0700, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xc61c,
+-      0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0088, 0x00d6, 0xa0e8, 0xc77b,
+-      0x2d6c, 0x6810, 0xa085, 0x0700, 0x20a2, 0x6814, 0x20a2, 0x00de,
+-      0x20a3, 0x0000, 0x2011, 0xc615, 0x2214, 0x22a2, 0x000e, 0x7b20,
+-      0xd3cc, 0x0118, 0x20a3, 0x0889, 0x0010, 0x20a3, 0x0898, 0x20a2,
+-      0x080c, 0x8bd1, 0x22a2, 0x20a3, 0x0000, 0x61c2, 0x003e, 0x001e,
+-      0x080c, 0x8be2, 0x0005, 0x2011, 0x0008, 0x2001, 0xc60d, 0x2004,
+-      0xd0f4, 0x0110, 0x2011, 0x0028, 0x7820, 0xd0cc, 0x0108, 0xc2e5,
+-      0x22a2, 0xa016, 0x04d0, 0x2011, 0x0302, 0x0016, 0x0036, 0x7828,
+-      0x792c, 0xa11d, 0x0108, 0xc2dd, 0x7b20, 0xd3cc, 0x0108, 0xc2e5,
+-      0x22a2, 0x20a2, 0x21a2, 0x003e, 0x001e, 0xa016, 0x22a2, 0x20a3,
+-      0x0012, 0x22a2, 0x20a3, 0x0008, 0x22a2, 0x22a2, 0x22a2, 0x22a2,
+-      0x20a3, 0x7000, 0x20a3, 0x0500, 0x22a2, 0x20a3, 0x000a, 0x22a2,
+-      0x22a2, 0x20a3, 0x2500, 0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x22a2,
+-      0x60c3, 0x0032, 0x080c, 0x8be2, 0x0005, 0x2011, 0x0028, 0x7820,
+-      0xd0cc, 0x0108, 0xc2e5, 0x22a2, 0xa016, 0x22a2, 0x22a2, 0x22a2,
+-      0x22a2, 0x22a2, 0x22a2, 0x60c3, 0x0018, 0x080c, 0x8be2, 0x0005,
+-      0x2011, 0x0100, 0x7820, 0xd0cc, 0x0108, 0xc2e5, 0x22a2, 0xa016,
+-      0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x20a3, 0x0008, 0x22a2,
+-      0x7854, 0xa084, 0x00ff, 0x20a2, 0x22a2, 0x22a2, 0x60c3, 0x0020,
+-      0x080c, 0x8be2, 0x0005, 0x2011, 0x0008, 0x7820, 0xd0cc, 0x0108,
+-      0xc2e5, 0x22a2, 0xa016, 0x0888, 0x0036, 0x7b10, 0xa384, 0xff00,
+-      0x7812, 0xa384, 0x00ff, 0x8001, 0x1138, 0x7820, 0xd0cc, 0x0108,
+-      0xc2e5, 0x22a2, 0x003e, 0x0808, 0x0046, 0x2021, 0x0800, 0x0006,
+-      0x7820, 0xd0cc, 0x000e, 0x0108, 0xc4e5, 0x24a2, 0x004e, 0x22a2,
+-      0x20a2, 0x003e, 0x0804, 0x8847, 0x0026, 0x20e1, 0x9080, 0x20e1,
+-      0x4000, 0x7818, 0xa080, 0x0028, 0x2004, 0x2011, 0xc635, 0x2214,
+-      0xd2ac, 0x1110, 0xd0bc, 0x0188, 0x00d6, 0xa0e8, 0xc77b, 0x2d6c,
+-      0x6810, 0xa085, 0x0700, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xc61c,
+-      0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0088, 0x00d6, 0xa0e8, 0xc77b,
+-      0x2d6c, 0x6810, 0xa085, 0x0700, 0x20a2, 0x6814, 0x20a2, 0x00de,
+-      0x20a3, 0x0000, 0x2011, 0xc615, 0x2214, 0x22a2, 0x7820, 0xd0cc,
+-      0x0118, 0x20a3, 0x0889, 0x0010, 0x20a3, 0x0898, 0x20a3, 0x0000,
+-      0x080c, 0x8bd1, 0x22a2, 0x20a3, 0x0000, 0x7a08, 0x22a2, 0x2fa2,
+-      0x20a3, 0x0000, 0x20a3, 0x0000, 0x002e, 0x0005, 0x00d6, 0x0156,
+-      0x0136, 0x0146, 0x0016, 0x0036, 0x7810, 0xa084, 0x0700, 0x8007,
+-      0x003b, 0x003e, 0x001e, 0x014e, 0x013e, 0x015e, 0x00de, 0x0005,
+-      0x88f8, 0x88f8, 0x88fa, 0x88f8, 0x88f8, 0x88f8, 0x891c, 0x88f8,
+-      0x080c, 0x1519, 0x7910, 0xa18c, 0xf8ff, 0xa18d, 0x0600, 0x7912,
+-      0x20a1, 0x020b, 0x2009, 0x0003, 0x00f9, 0x00d6, 0x2069, 0xc652,
+-      0x6804, 0xd0bc, 0x0130, 0x682c, 0xa084, 0x00ff, 0x8007, 0x20a2,
+-      0x0010, 0x20a3, 0x3f00, 0x00de, 0x22a2, 0x22a2, 0x22a2, 0x60c3,
+-      0x0001, 0x080c, 0x8be2, 0x0005, 0x20a1, 0x020b, 0x2009, 0x0003,
+-      0x0019, 0x20a3, 0x7f00, 0x0c80, 0x0026, 0x20e1, 0x9080, 0x20e1,
++      0xa085, 0x8100, 0x20a2, 0x6814, 0x20a2, 0x00de, 0x20a3, 0x0000,
++      0x2011, 0xc615, 0x2214, 0x22a2, 0x20a3, 0x0009, 0x20a3, 0x0000,
++      0x0804, 0x843f, 0x0026, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7818,
++      0xa080, 0x0028, 0x2004, 0x2011, 0xc635, 0x2214, 0xd2ac, 0x1118,
++      0xa092, 0x007e, 0x0288, 0x00d6, 0xa0e8, 0xc77b, 0x2d6c, 0x6810,
++      0xa085, 0x8400, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xc61c, 0x2da6,
++      0x8d68, 0x2da6, 0x00de, 0x0088, 0x00d6, 0xa0e8, 0xc77b, 0x2d6c,
++      0x6810, 0xa085, 0x8400, 0x20a2, 0x6814, 0x20a2, 0x00de, 0x20a3,
++      0x0000, 0x2011, 0xc615, 0x2214, 0x22a2, 0x2001, 0x0099, 0x20a2,
++      0x20a3, 0x0000, 0x0804, 0x84cb, 0x0026, 0x20e1, 0x9080, 0x20e1,
+       0x4000, 0x7818, 0xa080, 0x0028, 0x2004, 0x2011, 0xc635, 0x2214,
+-      0xd2ac, 0x1110, 0xd0bc, 0x0188, 0x00d6, 0xa0e8, 0xc77b, 0x2d6c,
+-      0x6810, 0xa085, 0x0100, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xc61c,
+-      0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0088, 0x00d6, 0xa0e8, 0xc77b,
+-      0x2d6c, 0x6810, 0xa085, 0x0100, 0x20a2, 0x6814, 0x20a2, 0x00de,
+-      0x20a3, 0x0000, 0x2011, 0xc615, 0x2214, 0x22a2, 0x20a3, 0x0888,
+-      0xa18d, 0x0008, 0x21a2, 0x080c, 0x8bd1, 0x22a2, 0x20a3, 0x0000,
+-      0x7a08, 0x22a2, 0x2fa2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x002e,
+-      0x0005, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0056, 0x0046, 0x0036,
+-      0x2061, 0x0100, 0x2071, 0xc600, 0x2009, 0xc615, 0x210c, 0x7818,
+-      0x2068, 0x2031, 0xc635, 0x2634, 0xa6b4, 0x0028, 0x0110, 0x7370,
+-      0x7474, 0x2500, 0x2031, 0xc635, 0x2634, 0xa6b4, 0x0028, 0x0140,
+-      0x2001, 0x04ff, 0x6062, 0x6067, 0xffff, 0x636a, 0x646e, 0x0050,
+-      0x2001, 0x00ff, 0xa085, 0x0400, 0x6062, 0x6067, 0xffff, 0x606b,
+-      0x0000, 0x616e, 0x68b8, 0x6073, 0x0530, 0x6077, 0x0008, 0x688c,
+-      0x8000, 0xa084, 0x00ff, 0x688e, 0x8007, 0xa085, 0x0020, 0x607a,
+-      0x68b4, 0x607f, 0x0000, 0x2d00, 0x6082, 0x6087, 0xffff, 0x7810,
+-      0x2070, 0x7014, 0x608a, 0x7010, 0x608e, 0x700c, 0x60c6, 0x7008,
+-      0x60ca, 0x686c, 0x60ce, 0x60ab, 0x0036, 0x60af, 0x95d5, 0x60d7,
+-      0x0000, 0x2001, 0xc635, 0x2004, 0xa084, 0x0028, 0x0128, 0x609f,
+-      0x0000, 0x2001, 0x0092, 0x0048, 0x6028, 0xc0bd, 0x602a, 0x609f,
+-      0x00ff, 0x6027, 0xffff, 0x2001, 0x00b2, 0x6016, 0x2009, 0x07d0,
+-      0x080c, 0x7029, 0x003e, 0x004e, 0x005e, 0x006e, 0x00ce, 0x00de,
+-      0x00ee, 0x0005, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0056, 0x0046,
++      0xd2ac, 0x1118, 0xa092, 0x007e, 0x0288, 0x00d6, 0xa0e8, 0xc77b,
++      0x2d6c, 0x6810, 0xa085, 0x8500, 0x20a2, 0x6814, 0x20a2, 0x2069,
++      0xc61c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0088, 0x00d6, 0xa0e8,
++      0xc77b, 0x2d6c, 0x6810, 0xa085, 0x8500, 0x20a2, 0x6814, 0x20a2,
++      0x00de, 0x20a3, 0x0000, 0x2011, 0xc615, 0x2214, 0x22a2, 0x2001,
++      0x0099, 0x20a2, 0x20a3, 0x0000, 0x0804, 0x84cb, 0x00c6, 0x00f6,
++      0x2c78, 0x7804, 0xa08a, 0x0040, 0x0a0c, 0x1519, 0xa08a, 0x0053,
++      0x1a0c, 0x1519, 0x7918, 0x2160, 0x61a0, 0x2011, 0xc635, 0x2214,
++      0xd2ac, 0x1110, 0xd1bc, 0x0150, 0x6100, 0xd1f4, 0x0120, 0x6114,
++      0xa18c, 0x00ff, 0x0040, 0x2009, 0x0000, 0x0028, 0xa1e0, 0x2f6e,
++      0x2c0d, 0xa18c, 0x00ff, 0x2061, 0x0100, 0x619a, 0xa082, 0x0040,
++      0x001b, 0x00fe, 0x00ce, 0x0005, 0x8639, 0x8745, 0x86e2, 0x88f7,
++      0x8637, 0x8637, 0x8637, 0x8637, 0x8637, 0x8637, 0x8637, 0x8f89,
++      0x8f99, 0x8fa9, 0x8fb9, 0x8637, 0x93d0, 0x8637, 0x8f78, 0x080c,
++      0x1519, 0x00d6, 0x0156, 0x0146, 0x780b, 0xffff, 0x20a1, 0x020b,
++      0x080c, 0x8699, 0x7910, 0x2168, 0x6948, 0x7952, 0x21a2, 0xa016,
++      0x22a2, 0x22a2, 0x22a2, 0x694c, 0xa184, 0x000f, 0x1118, 0x2001,
++      0x0005, 0x0040, 0xd184, 0x0118, 0x2001, 0x0004, 0x0018, 0xa084,
++      0x0006, 0x8004, 0x0016, 0x2008, 0x7858, 0xa084, 0x00ff, 0x8007,
++      0xa105, 0x001e, 0x20a2, 0xd1ac, 0x0118, 0x20a3, 0x0002, 0x0048,
++      0xd1b4, 0x0118, 0x20a3, 0x0001, 0x0020, 0x20a3, 0x0000, 0x2230,
++      0x0010, 0x6a80, 0x6e7c, 0x20a9, 0x0008, 0x0136, 0xad88, 0x0017,
++      0x2198, 0x20a1, 0x021b, 0x53a6, 0x013e, 0x20a1, 0x020b, 0x22a2,
++      0x26a2, 0x60c3, 0x0020, 0x20e1, 0x9080, 0x6014, 0xa084, 0x0004,
++      0xa085, 0x0009, 0x6016, 0x2001, 0xc943, 0x2003, 0x07d0, 0x2001,
++      0xc942, 0x2003, 0x0009, 0x080c, 0x17f1, 0x014e, 0x015e, 0x00de,
++      0x0005, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7a18, 0xa280, 0x0023,
++      0x2014, 0x8210, 0xa294, 0x00ff, 0x2202, 0x8217, 0x7818, 0xa080,
++      0x0028, 0x2004, 0x2019, 0xc635, 0x231c, 0xd3ac, 0x1110, 0xd0bc,
++      0x0188, 0x00d6, 0xa0e8, 0xc77b, 0x2d6c, 0x6810, 0xa085, 0x0600,
++      0x20a2, 0x6814, 0x20a2, 0x2069, 0xc61c, 0x2da6, 0x8d68, 0x2da6,
++      0x00de, 0x0088, 0x00d6, 0xa0e8, 0xc77b, 0x2d6c, 0x6810, 0xa085,
++      0x0600, 0x20a2, 0x6814, 0x20a2, 0x00de, 0x20a3, 0x0000, 0x2009,
++      0xc615, 0x210c, 0x21a2, 0x20a3, 0x0829, 0x20a3, 0x0000, 0x22a2,
++      0x20a3, 0x0000, 0x2fa2, 0x20a3, 0xffff, 0x20a3, 0x0000, 0x20a3,
++      0x0000, 0x0005, 0x00d6, 0x0156, 0x0136, 0x0146, 0x20a1, 0x020b,
++      0x00c1, 0x7810, 0x2068, 0x6860, 0x20a2, 0x685c, 0x20a2, 0x6880,
++      0x20a2, 0x687c, 0x20a2, 0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2,
++      0x60c3, 0x000c, 0x080c, 0x8bfb, 0x014e, 0x013e, 0x015e, 0x00de,
++      0x0005, 0x0026, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7818, 0xa080,
++      0x0028, 0x2004, 0x2011, 0xc635, 0x2214, 0xd2ac, 0x1110, 0xd0bc,
++      0x0188, 0x00d6, 0xa0e8, 0xc77b, 0x2d6c, 0x6810, 0xa085, 0x0500,
++      0x20a2, 0x6814, 0x20a2, 0x2069, 0xc61c, 0x2da6, 0x8d68, 0x2da6,
++      0x00de, 0x0088, 0x00d6, 0xa0e8, 0xc77b, 0x2d6c, 0x6810, 0xa085,
++      0x0500, 0x20a2, 0x6814, 0x20a2, 0x00de, 0x20a3, 0x0000, 0x2011,
++      0xc615, 0x2214, 0x22a2, 0x20a3, 0x0889, 0x20a3, 0x0000, 0x080c,
++      0x8bea, 0x22a2, 0x20a3, 0x0000, 0x7a08, 0x22a2, 0x2fa2, 0x20a3,
++      0x0000, 0x20a3, 0x0000, 0x002e, 0x0005, 0x00d6, 0x0156, 0x0136,
++      0x0146, 0x7810, 0xa0ec, 0xf000, 0x0168, 0xa06d, 0x080c, 0x56d8,
++      0x0148, 0x684c, 0xa084, 0x2020, 0xa086, 0x2020, 0x1118, 0x7820,
++      0xc0cd, 0x7822, 0x20a1, 0x020b, 0x080c, 0x88ad, 0xa016, 0x22a2,
++      0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x7810, 0xa084, 0xf000, 0x1130,
++      0x7810, 0xa084, 0x0700, 0x8007, 0x0043, 0x0010, 0xa006, 0x002b,
++      0x014e, 0x013e, 0x015e, 0x00de, 0x0005, 0x877f, 0x8814, 0x8824,
++      0x8856, 0x8869, 0x8884, 0x888d, 0x877d, 0x080c, 0x1519, 0x0016,
++      0x0036, 0x694c, 0xa18c, 0x0003, 0x0118, 0xa186, 0x0003, 0x1170,
++      0x6b78, 0x7820, 0xd0cc, 0x0108, 0xc3e5, 0x23a2, 0x6868, 0x20a2,
++      0x6864, 0x20a2, 0x003e, 0x001e, 0x0804, 0x8860, 0xa186, 0x0001,
++      0x190c, 0x1519, 0x6b78, 0x7820, 0xd0cc, 0x0108, 0xc3e5, 0x23a2,
++      0x6868, 0x20a2, 0x6864, 0x20a2, 0x22a2, 0x6874, 0x20a2, 0x22a2,
++      0x687c, 0x20a2, 0x2009, 0x0018, 0xa384, 0x0300, 0x0904, 0x880e,
++      0xd3c4, 0x0110, 0x687c, 0xa108, 0xd3cc, 0x0110, 0x6874, 0xa108,
++      0x0156, 0x20a9, 0x000d, 0xad80, 0x0020, 0x201c, 0x831f, 0x23a2,
++      0x8000, 0x1f04, 0x87bd, 0x015e, 0x22a2, 0x22a2, 0x22a2, 0xa184,
++      0x0003, 0x0904, 0x880e, 0x20a1, 0x020b, 0x20e1, 0x9080, 0x20e1,
++      0x4000, 0x0006, 0x7818, 0xa080, 0x0028, 0x2004, 0x2011, 0xc635,
++      0x2214, 0xd2ac, 0x1110, 0xd0bc, 0x0188, 0x00d6, 0xa0e8, 0xc77b,
++      0x2d6c, 0x6810, 0xa085, 0x0700, 0x20a2, 0x6814, 0x20a2, 0x2069,
++      0xc61c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0088, 0x00d6, 0xa0e8,
++      0xc77b, 0x2d6c, 0x6810, 0xa085, 0x0700, 0x20a2, 0x6814, 0x20a2,
++      0x00de, 0x20a3, 0x0000, 0x2011, 0xc615, 0x2214, 0x22a2, 0x000e,
++      0x7b20, 0xd3cc, 0x0118, 0x20a3, 0x0889, 0x0010, 0x20a3, 0x0898,
++      0x20a2, 0x080c, 0x8bea, 0x22a2, 0x20a3, 0x0000, 0x61c2, 0x003e,
++      0x001e, 0x080c, 0x8bfb, 0x0005, 0x2011, 0x0008, 0x2001, 0xc60d,
++      0x2004, 0xd0f4, 0x0110, 0x2011, 0x0028, 0x7820, 0xd0cc, 0x0108,
++      0xc2e5, 0x22a2, 0xa016, 0x04d0, 0x2011, 0x0302, 0x0016, 0x0036,
++      0x7828, 0x792c, 0xa11d, 0x0108, 0xc2dd, 0x7b20, 0xd3cc, 0x0108,
++      0xc2e5, 0x22a2, 0x20a2, 0x21a2, 0x003e, 0x001e, 0xa016, 0x22a2,
++      0x20a3, 0x0012, 0x22a2, 0x20a3, 0x0008, 0x22a2, 0x22a2, 0x22a2,
++      0x22a2, 0x20a3, 0x7000, 0x20a3, 0x0500, 0x22a2, 0x20a3, 0x000a,
++      0x22a2, 0x22a2, 0x20a3, 0x2500, 0x22a2, 0x22a2, 0x22a2, 0x22a2,
++      0x22a2, 0x60c3, 0x0032, 0x080c, 0x8bfb, 0x0005, 0x2011, 0x0028,
++      0x7820, 0xd0cc, 0x0108, 0xc2e5, 0x22a2, 0xa016, 0x22a2, 0x22a2,
++      0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x60c3, 0x0018, 0x080c, 0x8bfb,
++      0x0005, 0x2011, 0x0100, 0x7820, 0xd0cc, 0x0108, 0xc2e5, 0x22a2,
++      0xa016, 0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x20a3, 0x0008,
++      0x22a2, 0x7854, 0xa084, 0x00ff, 0x20a2, 0x22a2, 0x22a2, 0x60c3,
++      0x0020, 0x080c, 0x8bfb, 0x0005, 0x2011, 0x0008, 0x7820, 0xd0cc,
++      0x0108, 0xc2e5, 0x22a2, 0xa016, 0x0888, 0x0036, 0x7b10, 0xa384,
++      0xff00, 0x7812, 0xa384, 0x00ff, 0x8001, 0x1138, 0x7820, 0xd0cc,
++      0x0108, 0xc2e5, 0x22a2, 0x003e, 0x0808, 0x0046, 0x2021, 0x0800,
++      0x0006, 0x7820, 0xd0cc, 0x000e, 0x0108, 0xc4e5, 0x24a2, 0x004e,
++      0x22a2, 0x20a2, 0x003e, 0x0804, 0x8860, 0x0026, 0x20e1, 0x9080,
++      0x20e1, 0x4000, 0x7818, 0xa080, 0x0028, 0x2004, 0x2011, 0xc635,
++      0x2214, 0xd2ac, 0x1110, 0xd0bc, 0x0188, 0x00d6, 0xa0e8, 0xc77b,
++      0x2d6c, 0x6810, 0xa085, 0x0700, 0x20a2, 0x6814, 0x20a2, 0x2069,
++      0xc61c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0088, 0x00d6, 0xa0e8,
++      0xc77b, 0x2d6c, 0x6810, 0xa085, 0x0700, 0x20a2, 0x6814, 0x20a2,
++      0x00de, 0x20a3, 0x0000, 0x2011, 0xc615, 0x2214, 0x22a2, 0x7820,
++      0xd0cc, 0x0118, 0x20a3, 0x0889, 0x0010, 0x20a3, 0x0898, 0x20a3,
++      0x0000, 0x080c, 0x8bea, 0x22a2, 0x20a3, 0x0000, 0x7a08, 0x22a2,
++      0x2fa2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x002e, 0x0005, 0x00d6,
++      0x0156, 0x0136, 0x0146, 0x0016, 0x0036, 0x7810, 0xa084, 0x0700,
++      0x8007, 0x003b, 0x003e, 0x001e, 0x014e, 0x013e, 0x015e, 0x00de,
++      0x0005, 0x8911, 0x8911, 0x8913, 0x8911, 0x8911, 0x8911, 0x8935,
++      0x8911, 0x080c, 0x1519, 0x7910, 0xa18c, 0xf8ff, 0xa18d, 0x0600,
++      0x7912, 0x20a1, 0x020b, 0x2009, 0x0003, 0x00f9, 0x00d6, 0x2069,
++      0xc652, 0x6804, 0xd0bc, 0x0130, 0x682c, 0xa084, 0x00ff, 0x8007,
++      0x20a2, 0x0010, 0x20a3, 0x3f00, 0x00de, 0x22a2, 0x22a2, 0x22a2,
++      0x60c3, 0x0001, 0x080c, 0x8bfb, 0x0005, 0x20a1, 0x020b, 0x2009,
++      0x0003, 0x0019, 0x20a3, 0x7f00, 0x0c80, 0x0026, 0x20e1, 0x9080,
++      0x20e1, 0x4000, 0x7818, 0xa080, 0x0028, 0x2004, 0x2011, 0xc635,
++      0x2214, 0xd2ac, 0x1110, 0xd0bc, 0x0188, 0x00d6, 0xa0e8, 0xc77b,
++      0x2d6c, 0x6810, 0xa085, 0x0100, 0x20a2, 0x6814, 0x20a2, 0x2069,
++      0xc61c, 0x2da6, 0x8d68, 0x2da6, 0x00de, 0x0088, 0x00d6, 0xa0e8,
++      0xc77b, 0x2d6c, 0x6810, 0xa085, 0x0100, 0x20a2, 0x6814, 0x20a2,
++      0x00de, 0x20a3, 0x0000, 0x2011, 0xc615, 0x2214, 0x22a2, 0x20a3,
++      0x0888, 0xa18d, 0x0008, 0x21a2, 0x080c, 0x8bea, 0x22a2, 0x20a3,
++      0x0000, 0x7a08, 0x22a2, 0x2fa2, 0x20a3, 0x0000, 0x20a3, 0x0000,
++      0x002e, 0x0005, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0056, 0x0046,
+       0x0036, 0x2061, 0x0100, 0x2071, 0xc600, 0x2009, 0xc615, 0x210c,
+-      0x7818, 0x2068, 0x68a0, 0x2028, 0x2031, 0xc635, 0x2634, 0xd6ac,
+-      0x1160, 0xa582, 0x007e, 0x1248, 0x2500, 0xd0bc, 0x1130, 0xa080,
+-      0x2f6e, 0x2015, 0xa294, 0x00ff, 0x0020, 0x6910, 0x6a14, 0x7370,
+-      0x7474, 0x2001, 0xc635, 0x2004, 0xd0ac, 0x1128, 0xa582, 0x007e,
+-      0x1210, 0xd5bc, 0x0138, 0xa185, 0x0400, 0x6062, 0x6266, 0x636a,
+-      0x646e, 0x0030, 0x6063, 0x0400, 0x6266, 0x606b, 0x0000, 0x616e,
+-      0x68b8, 0x6072, 0x6077, 0x0000, 0x6864, 0xd0a4, 0x0110, 0x6077,
+-      0x0008, 0x688c, 0x8000, 0xa084, 0x00ff, 0x688e, 0x8007, 0xa085,
+-      0x0020, 0x607a, 0x68b4, 0x607f, 0x0000, 0x2d00, 0x6082, 0x6087,
+-      0xffff, 0x7810, 0x2070, 0x7014, 0x608a, 0x7010, 0x608e, 0x700c,
+-      0x60c6, 0x7008, 0x60ca, 0x686c, 0x60ce, 0x60ab, 0x0036, 0x60af,
+-      0x95d5, 0x60d7, 0x0000, 0xa582, 0x007e, 0x0210, 0x2011, 0x0000,
+-      0x629e, 0x00f6, 0x2079, 0x0140, 0x7803, 0x0000, 0x00fe, 0x2009,
+-      0x0092, 0x6116, 0x2009, 0x07d0, 0x080c, 0x7029, 0x003e, 0x004e,
+-      0x005e, 0x006e, 0x00ce, 0x00de, 0x00ee, 0x0005, 0x00e6, 0x00d6,
+-      0x00c6, 0x0056, 0x0046, 0x0036, 0x2061, 0x0100, 0x2071, 0xc600,
+-      0x7154, 0x7818, 0x2068, 0x68a0, 0x2028, 0x76d4, 0xd6ac, 0x1130,
+-      0xd0bc, 0x1120, 0x6910, 0x6a14, 0x7454, 0x0020, 0x6910, 0x6a14,
+-      0x7370, 0x7474, 0x781c, 0xa0be, 0x0006, 0x0904, 0x8b1c, 0xa0be,
+-      0x000a, 0x15e8, 0xa185, 0x0200, 0x6062, 0x6266, 0x636a, 0x646e,
+-      0x6073, 0x2029, 0x6077, 0x0000, 0x688c, 0x8000, 0xa084, 0x00ff,
+-      0x688e, 0x8007, 0x607a, 0x607f, 0x0000, 0x2f00, 0x6082, 0x7808,
+-      0x6086, 0x7810, 0x2070, 0x7014, 0x608a, 0x7010, 0x608e, 0x700c,
+-      0x60c6, 0x7008, 0x60ca, 0x686c, 0x60ce, 0x60af, 0x95d5, 0x60d7,
+-      0x0000, 0x609f, 0x0000, 0x080c, 0x944b, 0x2009, 0x07d0, 0x60c4,
+-      0xa084, 0xfff0, 0xa005, 0x0110, 0x2009, 0x1b58, 0x080c, 0x7029,
+-      0x003e, 0x004e, 0x005e, 0x00ce, 0x00de, 0x00ee, 0x0005, 0x70d4,
+-      0xd0ac, 0x1110, 0xd5bc, 0x0138, 0xa185, 0x0100, 0x6062, 0x6266,
+-      0x636a, 0x646e, 0x0038, 0xa185, 0x0100, 0x6062, 0x6266, 0x606b,
+-      0x0000, 0x646e, 0x6073, 0x0809, 0x6077, 0x0008, 0x688c, 0x8000,
+-      0xa084, 0x00ff, 0x688e, 0x8007, 0x607a, 0x607f, 0x0000, 0x2f00,
+-      0x6082, 0x7808, 0x6086, 0x7810, 0x2070, 0x7014, 0x608a, 0x7010,
+-      0x608e, 0x700c, 0x60c6, 0x7008, 0x60ca, 0x686c, 0x60ce, 0x60af,
+-      0x95d5, 0x60d7, 0x0000, 0xa582, 0x0080, 0x0248, 0x6a00, 0xd2f4,
+-      0x0120, 0x6a14, 0xa294, 0x00ff, 0x0010, 0x2011, 0x0000, 0x629e,
+-      0x080c, 0x944b, 0x2009, 0x07d0, 0x60c4, 0xa084, 0xfff0, 0xa005,
+-      0x0110, 0x2009, 0x1b58, 0x080c, 0x7029, 0x003e, 0x004e, 0x005e,
+-      0x00ce, 0x00de, 0x00ee, 0x0005, 0x7810, 0x2070, 0x704c, 0xa084,
+-      0x0003, 0xa086, 0x0002, 0x0904, 0x8b72, 0x2001, 0xc635, 0x2004,
+-      0xd0ac, 0x1110, 0xd5bc, 0x0138, 0xa185, 0x0100, 0x6062, 0x6266,
+-      0x636a, 0x646e, 0x0038, 0xa185, 0x0100, 0x6062, 0x6266, 0x606b,
+-      0x0000, 0x646e, 0x6073, 0x0880, 0x6077, 0x0008, 0x688c, 0x8000,
+-      0xa084, 0x00ff, 0x688e, 0x8007, 0x607a, 0x7834, 0x607e, 0x2f00,
+-      0x6086, 0x7808, 0x6082, 0x7060, 0x608a, 0x705c, 0x608e, 0x7080,
+-      0x60c6, 0x707c, 0x60ca, 0x707c, 0x792c, 0xa108, 0x792e, 0x7080,
+-      0x7928, 0xa109, 0x792a, 0x686c, 0x60ce, 0x60af, 0x95d5, 0x60d7,
+-      0x0000, 0xa582, 0x0080, 0x0248, 0x6a00, 0xd2f4, 0x0120, 0x6a14,
+-      0xa294, 0x00ff, 0x0010, 0x2011, 0x0000, 0x629e, 0x080c, 0x9448,
+-      0x0804, 0x8b0a, 0x2001, 0xc635, 0x2004, 0xd0ac, 0x1110, 0xd5bc,
+-      0x0138, 0xa185, 0x0700, 0x6062, 0x6266, 0x636a, 0x646e, 0x0038,
+-      0xa185, 0x0700, 0x6062, 0x6266, 0x606b, 0x0000, 0x646e, 0x080c,
+-      0x56bf, 0x0180, 0x00d6, 0x7810, 0xa06d, 0x684c, 0x00de, 0xa084,
+-      0x2020, 0xa086, 0x2020, 0x1130, 0x7820, 0xc0cd, 0x7822, 0x6073,
+-      0x0889, 0x0010, 0x6073, 0x0898, 0x6077, 0x0000, 0x688c, 0x8000,
+-      0xa084, 0x00ff, 0x688e, 0x8007, 0x607a, 0x607f, 0x0000, 0x2f00,
+-      0x6086, 0x7808, 0x6082, 0x7014, 0x608a, 0x7010, 0x608e, 0x700c,
+-      0x60c6, 0x7008, 0x60ca, 0x686c, 0x60ce, 0x60af, 0x95d5, 0x60d7,
+-      0x0000, 0xa582, 0x0080, 0x0248, 0x6a00, 0xd2f4, 0x0120, 0x6a14,
+-      0xa294, 0x00ff, 0x0010, 0x2011, 0x0000, 0x629e, 0x7820, 0xd0cc,
+-      0x0120, 0x080c, 0x944b, 0x0804, 0x8b0a, 0x080c, 0x9448, 0x0804,
+-      0x8b0a, 0x7a18, 0xa280, 0x0023, 0x2014, 0x8210, 0xa294, 0x00ff,
+-      0x2202, 0x8217, 0x0005, 0x00d6, 0x2069, 0xc927, 0x6843, 0x0001,
+-      0x00de, 0x0005, 0x20e1, 0x9080, 0x60a3, 0x0056, 0x60a7, 0x9575,
+-      0x0019, 0x080c, 0x701b, 0x0005, 0x0006, 0x6014, 0xa084, 0x0004,
+-      0xa085, 0x0009, 0x6016, 0x000e, 0x0005, 0x0016, 0x00c6, 0x0006,
+-      0x2061, 0x0100, 0x61a4, 0x60a7, 0x95f5, 0x6014, 0xa084, 0x0004,
+-      0xa085, 0x0008, 0x6016, 0x000e, 0xe000, 0xe000, 0xe000, 0xe000,
+-      0x61a6, 0x00ce, 0x001e, 0x0005, 0x00c6, 0x00d6, 0x0016, 0x0026,
+-      0x2061, 0x0100, 0x2069, 0x0140, 0x080c, 0x5f22, 0x1198, 0x2001,
+-      0xc943, 0x2004, 0xa005, 0x15b8, 0x0066, 0x2031, 0x0001, 0x080c,
+-      0x5fa4, 0x006e, 0x1118, 0x080c, 0x701b, 0x0468, 0x00c6, 0x2061,
+-      0xc927, 0x00d8, 0x6904, 0xa194, 0x4000, 0x0550, 0x0831, 0x6803,
+-      0x1000, 0x6803, 0x0000, 0x00c6, 0x2061, 0xc927, 0x6128, 0xa192,
+-      0x00c8, 0x1258, 0x8108, 0x612a, 0x6124, 0x00ce, 0x81ff, 0x0198,
+-      0x080c, 0x701b, 0x080c, 0x8bec, 0x0070, 0x6124, 0xa1e5, 0x0000,
+-      0x0140, 0x080c, 0xc58e, 0x080c, 0x7024, 0x2009, 0x0014, 0x080c,
+-      0x960c, 0x00ce, 0x0000, 0x002e, 0x001e, 0x00de, 0x00ce, 0x0005,
+-      0x2001, 0xc943, 0x2004, 0xa005, 0x1db0, 0x00c6, 0x2061, 0xc927,
+-      0x6128, 0xa192, 0x0003, 0x1e08, 0x8108, 0x612a, 0x00ce, 0x080c,
+-      0x701b, 0x080c, 0x4e5b, 0x0c38, 0x00c6, 0x00d6, 0x00e6, 0x0016,
+-      0x0026, 0x080c, 0x7031, 0x2071, 0xc927, 0x713c, 0x81ff, 0x0904,
+-      0x8cc1, 0x2061, 0x0100, 0x2069, 0x0140, 0x080c, 0x5f22, 0x1500,
+-      0x0036, 0x2019, 0x0002, 0x080c, 0x8e79, 0x003e, 0x713c, 0x2160,
+-      0x080c, 0xc58e, 0x2009, 0x004a, 0x621c, 0xa296, 0x0009, 0x1138,
+-      0x6110, 0xa188, 0x0012, 0x200b, 0x0006, 0x2009, 0x0104, 0x080c,
+-      0x960c, 0x0066, 0x2031, 0x0001, 0x080c, 0x5fa4, 0x006e, 0x0408,
+-      0x6904, 0xa194, 0x4000, 0x0518, 0x6803, 0x1000, 0x6803, 0x0000,
+-      0x0036, 0x2019, 0x0001, 0x080c, 0x8e79, 0x003e, 0x713c, 0x2160,
+-      0x080c, 0xc58e, 0x2009, 0x004a, 0x621c, 0xa296, 0x0009, 0x1138,
+-      0x6110, 0xa188, 0x0012, 0x200b, 0x0006, 0x2009, 0x0104, 0x080c,
+-      0x960c, 0x002e, 0x001e, 0x00ee, 0x00de, 0x00ce, 0x0005, 0x0c00,
+-      0x0026, 0x00e6, 0x2071, 0xc927, 0x7048, 0xd084, 0x01d8, 0x713c,
+-      0x81ff, 0x01c0, 0x2071, 0x0100, 0xa188, 0x0007, 0x2114, 0xa28e,
+-      0x0006, 0x1138, 0x7014, 0xa084, 0x0184, 0xa085, 0x0012, 0x7016,
+-      0x0048, 0xa28e, 0x0009, 0x0db0, 0x7014, 0xa084, 0x0184, 0xa085,
+-      0x0016, 0x7016, 0x00ee, 0x002e, 0x0005, 0x00e6, 0x00d6, 0x00c6,
+-      0x0066, 0x0056, 0x0046, 0x0006, 0x0126, 0x2091, 0x8000, 0x6018,
+-      0x2068, 0x6ca0, 0x2071, 0xc927, 0x7018, 0x2068, 0x8dff, 0x0188,
+-      0x68a0, 0xa406, 0x0118, 0x6854, 0x2068, 0x0cc0, 0x6010, 0x2060,
+-      0x643c, 0x6540, 0x6648, 0x2d60, 0x080c, 0x54ae, 0x0110, 0xa085,
+-      0x0001, 0x012e, 0x000e, 0x004e, 0x005e, 0x006e, 0x00ce, 0x00de,
+-      0x00ee, 0x0005, 0x20a1, 0x020b, 0x080c, 0x83bf, 0x20a3, 0x1200,
+-      0x20a3, 0x0000, 0x20a3, 0x0000, 0x781c, 0xa086, 0x0004, 0x1110,
+-      0x6098, 0x0018, 0x2001, 0xc615, 0x2004, 0x20a2, 0x7834, 0x20a2,
+-      0x7838, 0x20a2, 0x20a9, 0x0010, 0xa006, 0x20a2, 0x1f04, 0x8d35,
+-      0x20a2, 0x20a2, 0x60c3, 0x002c, 0x080c, 0x8be2, 0x0005, 0x0156,
+-      0x0146, 0x20a1, 0x020b, 0x080c, 0x83bf, 0x20a3, 0x0f00, 0x20a3,
+-      0x0000, 0x20a3, 0x0000, 0x7808, 0x20a2, 0x60c3, 0x0008, 0x080c,
+-      0x8be2, 0x014e, 0x015e, 0x0005, 0x0156, 0x0146, 0x20a1, 0x020b,
+-      0x080c, 0x845b, 0x20a3, 0x0200, 0x20a3, 0x0000, 0x20a9, 0x0006,
+-      0x2011, 0xc640, 0x2019, 0xc641, 0x23a6, 0x22a6, 0xa398, 0x0002,
+-      0xa290, 0x0002, 0x1f04, 0x8d64, 0x20a3, 0x0000, 0x20a3, 0x0000,
+-      0x60c3, 0x001c, 0x080c, 0x8be2, 0x014e, 0x015e, 0x0005, 0x0156,
+-      0x0146, 0x0016, 0x0026, 0x20a1, 0x020b, 0x080c, 0x8434, 0x080c,
+-      0x844a, 0x7810, 0xa080, 0x0000, 0x2004, 0xa080, 0x0015, 0x2098,
+-      0x7808, 0xa088, 0x0002, 0x21a8, 0x53a6, 0xa080, 0x0004, 0x8003,
+-      0x60c2, 0x080c, 0x8be2, 0x002e, 0x001e, 0x014e, 0x015e, 0x0005,
+-      0x0156, 0x0146, 0x20a1, 0x020b, 0x080c, 0x83bf, 0x20a3, 0x6200,
++      0x7818, 0x2068, 0x2031, 0xc635, 0x2634, 0xa6b4, 0x0028, 0x0110,
++      0x7370, 0x7474, 0x2500, 0x2031, 0xc635, 0x2634, 0xa6b4, 0x0028,
++      0x0140, 0x2001, 0x04ff, 0x6062, 0x6067, 0xffff, 0x636a, 0x646e,
++      0x0050, 0x2001, 0x00ff, 0xa085, 0x0400, 0x6062, 0x6067, 0xffff,
++      0x606b, 0x0000, 0x616e, 0x68b8, 0x6073, 0x0530, 0x6077, 0x0008,
++      0x688c, 0x8000, 0xa084, 0x00ff, 0x688e, 0x8007, 0xa085, 0x0020,
++      0x607a, 0x68b4, 0x607f, 0x0000, 0x2d00, 0x6082, 0x6087, 0xffff,
++      0x7810, 0x2070, 0x7014, 0x608a, 0x7010, 0x608e, 0x700c, 0x60c6,
++      0x7008, 0x60ca, 0x686c, 0x60ce, 0x60ab, 0x0036, 0x60af, 0x95d5,
++      0x60d7, 0x0000, 0x2001, 0xc635, 0x2004, 0xa084, 0x0028, 0x0128,
++      0x609f, 0x0000, 0x2001, 0x0092, 0x0048, 0x6028, 0xc0bd, 0x602a,
++      0x609f, 0x00ff, 0x6027, 0xffff, 0x2001, 0x00b2, 0x6016, 0x2009,
++      0x07d0, 0x080c, 0x7042, 0x003e, 0x004e, 0x005e, 0x006e, 0x00ce,
++      0x00de, 0x00ee, 0x0005, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0056,
++      0x0046, 0x0036, 0x2061, 0x0100, 0x2071, 0xc600, 0x2009, 0xc615,
++      0x210c, 0x7818, 0x2068, 0x68a0, 0x2028, 0x2031, 0xc635, 0x2634,
++      0xd6ac, 0x1160, 0xa582, 0x007e, 0x1248, 0x2500, 0xd0bc, 0x1130,
++      0xa080, 0x2f6e, 0x2015, 0xa294, 0x00ff, 0x0020, 0x6910, 0x6a14,
++      0x7370, 0x7474, 0x2001, 0xc635, 0x2004, 0xd0ac, 0x1128, 0xa582,
++      0x007e, 0x1210, 0xd5bc, 0x0138, 0xa185, 0x0400, 0x6062, 0x6266,
++      0x636a, 0x646e, 0x0030, 0x6063, 0x0400, 0x6266, 0x606b, 0x0000,
++      0x616e, 0x68b8, 0x6072, 0x6077, 0x0000, 0x6864, 0xd0a4, 0x0110,
++      0x6077, 0x0008, 0x688c, 0x8000, 0xa084, 0x00ff, 0x688e, 0x8007,
++      0xa085, 0x0020, 0x607a, 0x68b4, 0x607f, 0x0000, 0x2d00, 0x6082,
++      0x6087, 0xffff, 0x7810, 0x2070, 0x7014, 0x608a, 0x7010, 0x608e,
++      0x700c, 0x60c6, 0x7008, 0x60ca, 0x686c, 0x60ce, 0x60ab, 0x0036,
++      0x60af, 0x95d5, 0x60d7, 0x0000, 0xa582, 0x007e, 0x0210, 0x2011,
++      0x0000, 0x629e, 0x00f6, 0x2079, 0x0140, 0x7803, 0x0000, 0x00fe,
++      0x2009, 0x0092, 0x6116, 0x2009, 0x07d0, 0x080c, 0x7042, 0x003e,
++      0x004e, 0x005e, 0x006e, 0x00ce, 0x00de, 0x00ee, 0x0005, 0x00e6,
++      0x00d6, 0x00c6, 0x0056, 0x0046, 0x0036, 0x2061, 0x0100, 0x2071,
++      0xc600, 0x7154, 0x7818, 0x2068, 0x68a0, 0x2028, 0x76d4, 0xd6ac,
++      0x1130, 0xd0bc, 0x1120, 0x6910, 0x6a14, 0x7454, 0x0020, 0x6910,
++      0x6a14, 0x7370, 0x7474, 0x781c, 0xa0be, 0x0006, 0x0904, 0x8b35,
++      0xa0be, 0x000a, 0x15e8, 0xa185, 0x0200, 0x6062, 0x6266, 0x636a,
++      0x646e, 0x6073, 0x2029, 0x6077, 0x0000, 0x688c, 0x8000, 0xa084,
++      0x00ff, 0x688e, 0x8007, 0x607a, 0x607f, 0x0000, 0x2f00, 0x6082,
++      0x7808, 0x6086, 0x7810, 0x2070, 0x7014, 0x608a, 0x7010, 0x608e,
++      0x700c, 0x60c6, 0x7008, 0x60ca, 0x686c, 0x60ce, 0x60af, 0x95d5,
++      0x60d7, 0x0000, 0x609f, 0x0000, 0x080c, 0x946b, 0x2009, 0x07d0,
++      0x60c4, 0xa084, 0xfff0, 0xa005, 0x0110, 0x2009, 0x1b58, 0x080c,
++      0x7042, 0x003e, 0x004e, 0x005e, 0x00ce, 0x00de, 0x00ee, 0x0005,
++      0x70d4, 0xd0ac, 0x1110, 0xd5bc, 0x0138, 0xa185, 0x0100, 0x6062,
++      0x6266, 0x636a, 0x646e, 0x0038, 0xa185, 0x0100, 0x6062, 0x6266,
++      0x606b, 0x0000, 0x646e, 0x6073, 0x0809, 0x6077, 0x0008, 0x688c,
++      0x8000, 0xa084, 0x00ff, 0x688e, 0x8007, 0x607a, 0x607f, 0x0000,
++      0x2f00, 0x6082, 0x7808, 0x6086, 0x7810, 0x2070, 0x7014, 0x608a,
++      0x7010, 0x608e, 0x700c, 0x60c6, 0x7008, 0x60ca, 0x686c, 0x60ce,
++      0x60af, 0x95d5, 0x60d7, 0x0000, 0xa582, 0x0080, 0x0248, 0x6a00,
++      0xd2f4, 0x0120, 0x6a14, 0xa294, 0x00ff, 0x0010, 0x2011, 0x0000,
++      0x629e, 0x080c, 0x946b, 0x2009, 0x07d0, 0x60c4, 0xa084, 0xfff0,
++      0xa005, 0x0110, 0x2009, 0x1b58, 0x080c, 0x7042, 0x003e, 0x004e,
++      0x005e, 0x00ce, 0x00de, 0x00ee, 0x0005, 0x7810, 0x2070, 0x704c,
++      0xa084, 0x0003, 0xa086, 0x0002, 0x0904, 0x8b8b, 0x2001, 0xc635,
++      0x2004, 0xd0ac, 0x1110, 0xd5bc, 0x0138, 0xa185, 0x0100, 0x6062,
++      0x6266, 0x636a, 0x646e, 0x0038, 0xa185, 0x0100, 0x6062, 0x6266,
++      0x606b, 0x0000, 0x646e, 0x6073, 0x0880, 0x6077, 0x0008, 0x688c,
++      0x8000, 0xa084, 0x00ff, 0x688e, 0x8007, 0x607a, 0x7834, 0x607e,
++      0x2f00, 0x6086, 0x7808, 0x6082, 0x7060, 0x608a, 0x705c, 0x608e,
++      0x7080, 0x60c6, 0x707c, 0x60ca, 0x707c, 0x792c, 0xa108, 0x792e,
++      0x7080, 0x7928, 0xa109, 0x792a, 0x686c, 0x60ce, 0x60af, 0x95d5,
++      0x60d7, 0x0000, 0xa582, 0x0080, 0x0248, 0x6a00, 0xd2f4, 0x0120,
++      0x6a14, 0xa294, 0x00ff, 0x0010, 0x2011, 0x0000, 0x629e, 0x080c,
++      0x9468, 0x0804, 0x8b23, 0x2001, 0xc635, 0x2004, 0xd0ac, 0x1110,
++      0xd5bc, 0x0138, 0xa185, 0x0700, 0x6062, 0x6266, 0x636a, 0x646e,
++      0x0038, 0xa185, 0x0700, 0x6062, 0x6266, 0x606b, 0x0000, 0x646e,
++      0x080c, 0x56d8, 0x0180, 0x00d6, 0x7810, 0xa06d, 0x684c, 0x00de,
++      0xa084, 0x2020, 0xa086, 0x2020, 0x1130, 0x7820, 0xc0cd, 0x7822,
++      0x6073, 0x0889, 0x0010, 0x6073, 0x0898, 0x6077, 0x0000, 0x688c,
++      0x8000, 0xa084, 0x00ff, 0x688e, 0x8007, 0x607a, 0x607f, 0x0000,
++      0x2f00, 0x6086, 0x7808, 0x6082, 0x7014, 0x608a, 0x7010, 0x608e,
++      0x700c, 0x60c6, 0x7008, 0x60ca, 0x686c, 0x60ce, 0x60af, 0x95d5,
++      0x60d7, 0x0000, 0xa582, 0x0080, 0x0248, 0x6a00, 0xd2f4, 0x0120,
++      0x6a14, 0xa294, 0x00ff, 0x0010, 0x2011, 0x0000, 0x629e, 0x7820,
++      0xd0cc, 0x0120, 0x080c, 0x946b, 0x0804, 0x8b23, 0x080c, 0x9468,
++      0x0804, 0x8b23, 0x7a18, 0xa280, 0x0023, 0x2014, 0x8210, 0xa294,
++      0x00ff, 0x2202, 0x8217, 0x0005, 0x00d6, 0x2069, 0xc927, 0x6843,
++      0x0001, 0x00de, 0x0005, 0x20e1, 0x9080, 0x60a3, 0x0056, 0x60a7,
++      0x9575, 0x0019, 0x080c, 0x7034, 0x0005, 0x0006, 0x6014, 0xa084,
++      0x0004, 0xa085, 0x0009, 0x6016, 0x000e, 0x0005, 0x0016, 0x00c6,
++      0x0006, 0x2061, 0x0100, 0x61a4, 0x60a7, 0x95f5, 0x6014, 0xa084,
++      0x0004, 0xa085, 0x0008, 0x6016, 0x000e, 0xe000, 0xe000, 0xe000,
++      0xe000, 0x61a6, 0x00ce, 0x001e, 0x0005, 0x00c6, 0x00d6, 0x0016,
++      0x0026, 0x2061, 0x0100, 0x2069, 0x0140, 0x080c, 0x5f3b, 0x1198,
++      0x2001, 0xc943, 0x2004, 0xa005, 0x15b8, 0x0066, 0x2031, 0x0001,
++      0x080c, 0x5fbd, 0x006e, 0x1118, 0x080c, 0x7034, 0x0468, 0x00c6,
++      0x2061, 0xc927, 0x00d8, 0x6904, 0xa194, 0x4000, 0x0550, 0x0831,
++      0x6803, 0x1000, 0x6803, 0x0000, 0x00c6, 0x2061, 0xc927, 0x6128,
++      0xa192, 0x00c8, 0x1258, 0x8108, 0x612a, 0x6124, 0x00ce, 0x81ff,
++      0x0198, 0x080c, 0x7034, 0x080c, 0x8c05, 0x0070, 0x6124, 0xa1e5,
++      0x0000, 0x0140, 0x080c, 0xc5b4, 0x080c, 0x703d, 0x2009, 0x0014,
++      0x080c, 0x962c, 0x00ce, 0x0000, 0x002e, 0x001e, 0x00de, 0x00ce,
++      0x0005, 0x2001, 0xc943, 0x2004, 0xa005, 0x1db0, 0x00c6, 0x2061,
++      0xc927, 0x6128, 0xa192, 0x0003, 0x1e08, 0x8108, 0x612a, 0x00ce,
++      0x080c, 0x7034, 0x080c, 0x4e74, 0x0c38, 0x00c6, 0x00d6, 0x00e6,
++      0x0016, 0x0026, 0x080c, 0x704a, 0x2071, 0xc927, 0x713c, 0x81ff,
++      0x0904, 0x8cda, 0x2061, 0x0100, 0x2069, 0x0140, 0x080c, 0x5f3b,
++      0x1500, 0x0036, 0x2019, 0x0002, 0x080c, 0x8e92, 0x003e, 0x713c,
++      0x2160, 0x080c, 0xc5b4, 0x2009, 0x004a, 0x621c, 0xa296, 0x0009,
++      0x1138, 0x6110, 0xa188, 0x0012, 0x200b, 0x0006, 0x2009, 0x0104,
++      0x080c, 0x962c, 0x0066, 0x2031, 0x0001, 0x080c, 0x5fbd, 0x006e,
++      0x0408, 0x6904, 0xa194, 0x4000, 0x0518, 0x6803, 0x1000, 0x6803,
++      0x0000, 0x0036, 0x2019, 0x0001, 0x080c, 0x8e92, 0x003e, 0x713c,
++      0x2160, 0x080c, 0xc5b4, 0x2009, 0x004a, 0x621c, 0xa296, 0x0009,
++      0x1138, 0x6110, 0xa188, 0x0012, 0x200b, 0x0006, 0x2009, 0x0104,
++      0x080c, 0x962c, 0x002e, 0x001e, 0x00ee, 0x00de, 0x00ce, 0x0005,
++      0x0c00, 0x0026, 0x00e6, 0x2071, 0xc927, 0x7048, 0xd084, 0x01d8,
++      0x713c, 0x81ff, 0x01c0, 0x2071, 0x0100, 0xa188, 0x0007, 0x2114,
++      0xa28e, 0x0006, 0x1138, 0x7014, 0xa084, 0x0184, 0xa085, 0x0012,
++      0x7016, 0x0048, 0xa28e, 0x0009, 0x0db0, 0x7014, 0xa084, 0x0184,
++      0xa085, 0x0016, 0x7016, 0x00ee, 0x002e, 0x0005, 0x00e6, 0x00d6,
++      0x00c6, 0x0066, 0x0056, 0x0046, 0x0006, 0x0126, 0x2091, 0x8000,
++      0x6018, 0x2068, 0x6ca0, 0x2071, 0xc927, 0x7018, 0x2068, 0x8dff,
++      0x0188, 0x68a0, 0xa406, 0x0118, 0x6854, 0x2068, 0x0cc0, 0x6010,
++      0x2060, 0x643c, 0x6540, 0x6648, 0x2d60, 0x080c, 0x54c7, 0x0110,
++      0xa085, 0x0001, 0x012e, 0x000e, 0x004e, 0x005e, 0x006e, 0x00ce,
++      0x00de, 0x00ee, 0x0005, 0x20a1, 0x020b, 0x080c, 0x83d8, 0x20a3,
++      0x1200, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x781c, 0xa086, 0x0004,
++      0x1110, 0x6098, 0x0018, 0x2001, 0xc615, 0x2004, 0x20a2, 0x7834,
++      0x20a2, 0x7838, 0x20a2, 0x20a9, 0x0010, 0xa006, 0x20a2, 0x1f04,
++      0x8d4e, 0x20a2, 0x20a2, 0x60c3, 0x002c, 0x080c, 0x8bfb, 0x0005,
++      0x0156, 0x0146, 0x20a1, 0x020b, 0x080c, 0x83d8, 0x20a3, 0x0f00,
+       0x20a3, 0x0000, 0x20a3, 0x0000, 0x7808, 0x20a2, 0x60c3, 0x0008,
+-      0x080c, 0x8be2, 0x014e, 0x015e, 0x0005, 0x0156, 0x0146, 0x0016,
+-      0x0026, 0x20a1, 0x020b, 0x080c, 0x83bf, 0x7810, 0xa080, 0x0000,
+-      0x2004, 0xa080, 0x0017, 0x2098, 0x7808, 0xa088, 0x0002, 0x21a8,
+-      0x53a6, 0x8003, 0x60c2, 0x080c, 0x8be2, 0x002e, 0x001e, 0x014e,
+-      0x015e, 0x0005, 0x00e6, 0x00c6, 0x0006, 0x0126, 0x2091, 0x8000,
+-      0x2071, 0xc927, 0x700c, 0x2060, 0x8cff, 0x0178, 0x080c, 0xae88,
+-      0x1110, 0x080c, 0x9c02, 0x600c, 0x0006, 0x080c, 0xb04f, 0x080c,
+-      0x95dc, 0x080c, 0x8fb7, 0x00ce, 0x0c78, 0x700f, 0x0000, 0x700b,
+-      0x0000, 0x012e, 0x000e, 0x00ce, 0x00ee, 0x0005, 0x0126, 0x0156,
+-      0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0026, 0x0016, 0x0006, 0x2091,
+-      0x8000, 0x2069, 0x0100, 0x2079, 0x0140, 0x2071, 0xc927, 0x7024,
+-      0x2060, 0x8cff, 0x05a0, 0x080c, 0x8bf5, 0x68c3, 0x0000, 0x080c,
+-      0x7024, 0x2009, 0x0013, 0x080c, 0x960c, 0x20a9, 0x01f4, 0x6824,
++      0x080c, 0x8bfb, 0x014e, 0x015e, 0x0005, 0x0156, 0x0146, 0x20a1,
++      0x020b, 0x080c, 0x8474, 0x20a3, 0x0200, 0x20a3, 0x0000, 0x20a9,
++      0x0006, 0x2011, 0xc640, 0x2019, 0xc641, 0x23a6, 0x22a6, 0xa398,
++      0x0002, 0xa290, 0x0002, 0x1f04, 0x8d7d, 0x20a3, 0x0000, 0x20a3,
++      0x0000, 0x60c3, 0x001c, 0x080c, 0x8bfb, 0x014e, 0x015e, 0x0005,
++      0x0156, 0x0146, 0x0016, 0x0026, 0x20a1, 0x020b, 0x080c, 0x844d,
++      0x080c, 0x8463, 0x7810, 0xa080, 0x0000, 0x2004, 0xa080, 0x0015,
++      0x2098, 0x7808, 0xa088, 0x0002, 0x21a8, 0x53a6, 0xa080, 0x0004,
++      0x8003, 0x60c2, 0x080c, 0x8bfb, 0x002e, 0x001e, 0x014e, 0x015e,
++      0x0005, 0x0156, 0x0146, 0x20a1, 0x020b, 0x080c, 0x83d8, 0x20a3,
++      0x6200, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x7808, 0x20a2, 0x60c3,
++      0x0008, 0x080c, 0x8bfb, 0x014e, 0x015e, 0x0005, 0x0156, 0x0146,
++      0x0016, 0x0026, 0x20a1, 0x020b, 0x080c, 0x83d8, 0x7810, 0xa080,
++      0x0000, 0x2004, 0xa080, 0x0017, 0x2098, 0x7808, 0xa088, 0x0002,
++      0x21a8, 0x53a6, 0x8003, 0x60c2, 0x080c, 0x8bfb, 0x002e, 0x001e,
++      0x014e, 0x015e, 0x0005, 0x00e6, 0x00c6, 0x0006, 0x0126, 0x2091,
++      0x8000, 0x2071, 0xc927, 0x700c, 0x2060, 0x8cff, 0x0178, 0x080c,
++      0xaea8, 0x1110, 0x080c, 0x9c22, 0x600c, 0x0006, 0x080c, 0xb06f,
++      0x080c, 0x95fc, 0x080c, 0x8fd0, 0x00ce, 0x0c78, 0x700f, 0x0000,
++      0x700b, 0x0000, 0x012e, 0x000e, 0x00ce, 0x00ee, 0x0005, 0x0126,
++      0x0156, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0026, 0x0016, 0x0006,
++      0x2091, 0x8000, 0x2069, 0x0100, 0x2079, 0x0140, 0x2071, 0xc927,
++      0x7024, 0x2060, 0x8cff, 0x05a0, 0x080c, 0x8c0e, 0x68c3, 0x0000,
++      0x080c, 0x703d, 0x2009, 0x0013, 0x080c, 0x962c, 0x20a9, 0x01f4,
++      0x6824, 0xd094, 0x0158, 0x6827, 0x0004, 0x7804, 0xa084, 0x4000,
++      0x01a0, 0x7803, 0x1000, 0x7803, 0x0000, 0x0078, 0xd084, 0x0118,
++      0x6827, 0x0001, 0x0010, 0x1f04, 0x8e28, 0x7804, 0xa084, 0x1000,
++      0x0120, 0x7803, 0x0100, 0x7803, 0x0000, 0x6824, 0x000e, 0x001e,
++      0x002e, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x015e, 0x012e, 0x0005,
++      0x2001, 0xc600, 0x2004, 0xa096, 0x0001, 0x0590, 0xa096, 0x0004,
++      0x0578, 0x080c, 0x703d, 0x6814, 0xa084, 0x0001, 0x0110, 0x68a7,
++      0x95f5, 0x6817, 0x0008, 0x68c3, 0x0000, 0x2011, 0x4e31, 0x080c,
++      0x6fc6, 0x20a9, 0x01f4, 0x6824, 0xd094, 0x0158, 0x6827, 0x0004,
++      0x7804, 0xa084, 0x4000, 0x01a0, 0x7803, 0x1000, 0x7803, 0x0000,
++      0x0078, 0xd084, 0x0118, 0x6827, 0x0001, 0x0010, 0x1f04, 0x8e6b,
++      0x7804, 0xa084, 0x1000, 0x0120, 0x7803, 0x0100, 0x7803, 0x0000,
++      0x000e, 0x001e, 0x002e, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x015e,
++      0x012e, 0x0005, 0x0126, 0x0156, 0x00f6, 0x00e6, 0x00d6, 0x00c6,
++      0x0026, 0x0016, 0x0006, 0x2091, 0x8000, 0x2069, 0x0100, 0x2079,
++      0x0140, 0x2071, 0xc927, 0x703c, 0x2060, 0x8cff, 0x0904, 0x8f1d,
++      0xa386, 0x0002, 0x1128, 0x6814, 0xa084, 0x0002, 0x0904, 0x8f1d,
++      0x68af, 0x95f5, 0x6817, 0x0010, 0x2009, 0x00fa, 0x8109, 0x1df0,
++      0x68c7, 0x0000, 0x68cb, 0x0008, 0x080c, 0x704a, 0x080c, 0x22ee,
++      0x0046, 0x2009, 0x017f, 0x200b, 0x00a5, 0x2021, 0x0169, 0x2404,
++      0xa084, 0x000f, 0xa086, 0x0004, 0x1500, 0x68af, 0x95f5, 0x68c7,
++      0x0000, 0x68cb, 0x0008, 0x00e6, 0x00f6, 0x2079, 0x0020, 0x2071,
++      0xc992, 0x6814, 0xa084, 0x0184, 0xa085, 0x0012, 0x6816, 0x7803,
++      0x0008, 0x7003, 0x0000, 0x00fe, 0x00ee, 0xa386, 0x0002, 0x1128,
++      0x7884, 0xa005, 0x1110, 0x7887, 0x0001, 0x2001, 0xc8f8, 0x2004,
++      0x200a, 0x004e, 0xa39d, 0x0000, 0x1140, 0x2009, 0x0049, 0x601c,
++      0xa086, 0x0009, 0x0110, 0x080c, 0x962c, 0x20a9, 0x03e8, 0x6824,
+       0xd094, 0x0158, 0x6827, 0x0004, 0x7804, 0xa084, 0x4000, 0x01a0,
+-      0x7803, 0x1000, 0x7803, 0x0000, 0x0078, 0xd084, 0x0118, 0x6827,
+-      0x0001, 0x0010, 0x1f04, 0x8e0f, 0x7804, 0xa084, 0x1000, 0x0120,
++      0x7803, 0x1000, 0x7803, 0x0000, 0x0078, 0xd08c, 0x0118, 0x6827,
++      0x0002, 0x0010, 0x1f04, 0x8eff, 0x7804, 0xa084, 0x1000, 0x0120,
+       0x7803, 0x0100, 0x7803, 0x0000, 0x6824, 0x000e, 0x001e, 0x002e,
+-      0x00ce, 0x00de, 0x00ee, 0x00fe, 0x015e, 0x012e, 0x0005, 0x2001,
+-      0xc600, 0x2004, 0xa096, 0x0001, 0x0590, 0xa096, 0x0004, 0x0578,
+-      0x080c, 0x7024, 0x6814, 0xa084, 0x0001, 0x0110, 0x68a7, 0x95f5,
+-      0x6817, 0x0008, 0x68c3, 0x0000, 0x2011, 0x4e18, 0x080c, 0x6fad,
+-      0x20a9, 0x01f4, 0x6824, 0xd094, 0x0158, 0x6827, 0x0004, 0x7804,
+-      0xa084, 0x4000, 0x01a0, 0x7803, 0x1000, 0x7803, 0x0000, 0x0078,
+-      0xd084, 0x0118, 0x6827, 0x0001, 0x0010, 0x1f04, 0x8e52, 0x7804,
+-      0xa084, 0x1000, 0x0120, 0x7803, 0x0100, 0x7803, 0x0000, 0x000e,
+-      0x001e, 0x002e, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x015e, 0x012e,
+-      0x0005, 0x0126, 0x0156, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0026,
+-      0x0016, 0x0006, 0x2091, 0x8000, 0x2069, 0x0100, 0x2079, 0x0140,
+-      0x2071, 0xc927, 0x703c, 0x2060, 0x8cff, 0x0904, 0x8f04, 0xa386,
+-      0x0002, 0x1128, 0x6814, 0xa084, 0x0002, 0x0904, 0x8f04, 0x68af,
+-      0x95f5, 0x6817, 0x0010, 0x2009, 0x00fa, 0x8109, 0x1df0, 0x68c7,
+-      0x0000, 0x68cb, 0x0008, 0x080c, 0x7031, 0x080c, 0x22ee, 0x0046,
+-      0x2009, 0x017f, 0x200b, 0x00a5, 0x2021, 0x0169, 0x2404, 0xa084,
+-      0x000f, 0xa086, 0x0004, 0x1500, 0x68af, 0x95f5, 0x68c7, 0x0000,
+-      0x68cb, 0x0008, 0x00e6, 0x00f6, 0x2079, 0x0020, 0x2071, 0xc992,
+-      0x6814, 0xa084, 0x0184, 0xa085, 0x0012, 0x6816, 0x7803, 0x0008,
+-      0x7003, 0x0000, 0x00fe, 0x00ee, 0xa386, 0x0002, 0x1128, 0x7884,
+-      0xa005, 0x1110, 0x7887, 0x0001, 0x2001, 0xc8f8, 0x2004, 0x200a,
+-      0x004e, 0xa39d, 0x0000, 0x1140, 0x2009, 0x0049, 0x601c, 0xa086,
+-      0x0009, 0x0110, 0x080c, 0x960c, 0x20a9, 0x03e8, 0x6824, 0xd094,
+-      0x0158, 0x6827, 0x0004, 0x7804, 0xa084, 0x4000, 0x01a0, 0x7803,
+-      0x1000, 0x7803, 0x0000, 0x0078, 0xd08c, 0x0118, 0x6827, 0x0002,
+-      0x0010, 0x1f04, 0x8ee6, 0x7804, 0xa084, 0x1000, 0x0120, 0x7803,
+-      0x0100, 0x7803, 0x0000, 0x6824, 0x000e, 0x001e, 0x002e, 0x00ce,
+-      0x00de, 0x00ee, 0x00fe, 0x015e, 0x012e, 0x0005, 0x00d6, 0x0126,
+-      0x2091, 0x8000, 0x2069, 0xc927, 0x6a06, 0x012e, 0x00de, 0x0005,
+-      0x00d6, 0x0126, 0x2091, 0x8000, 0x2069, 0xc927, 0x6a32, 0x012e,
+-      0x00de, 0x0005, 0x00f6, 0x00e6, 0x00c6, 0x0066, 0x0006, 0x0126,
+-      0x2071, 0xc927, 0x7614, 0x2660, 0x2678, 0x2091, 0x8000, 0x8cff,
+-      0x0538, 0x601c, 0xa206, 0x1500, 0x7014, 0xac36, 0x1110, 0x660c,
+-      0x7616, 0x7010, 0xac36, 0x1140, 0x2c00, 0xaf36, 0x0118, 0x2f00,
+-      0x7012, 0x0010, 0x7013, 0x0000, 0x660c, 0x0066, 0x2c00, 0xaf06,
+-      0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f, 0x0000, 0x080c, 0xae4d,
+-      0x080c, 0x8fb7, 0x00ce, 0x08d8, 0x2c78, 0x600c, 0x2060, 0x08b8,
+-      0x012e, 0x000e, 0x006e, 0x00ce, 0x00ee, 0x00fe, 0x0005, 0x0156,
+-      0x0146, 0x20a1, 0x020b, 0x080c, 0x8680, 0x7810, 0x20a2, 0xa006,
+-      0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x1000, 0x0804, 0x8faf,
+-      0x0156, 0x0146, 0x20a1, 0x020b, 0x080c, 0x8680, 0x7810, 0x20a2,
+-      0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x4000, 0x0478,
+-      0x0156, 0x0146, 0x20a1, 0x020b, 0x080c, 0x8680, 0x7810, 0x20a2,
+-      0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x2000, 0x00f8,
+-      0x0156, 0x0146, 0x20a1, 0x020b, 0x080c, 0x8680, 0x7810, 0x20a2,
+-      0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x0400, 0x0078,
+-      0x0156, 0x0146, 0x20a1, 0x020b, 0x080c, 0x8680, 0x7810, 0x20a2,
+-      0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x0200, 0x0089,
+-      0x60c3, 0x0020, 0x080c, 0x8be2, 0x014e, 0x015e, 0x0005, 0x00e6,
+-      0x2071, 0xc927, 0x7020, 0xa005, 0x0110, 0x8001, 0x7022, 0x00ee,
+-      0x0005, 0x20a9, 0x0008, 0x20a2, 0x1f04, 0x8fc3, 0x20a2, 0x20a2,
+-      0x0005, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0076, 0x0066, 0x0006,
+-      0x0126, 0x2091, 0x8000, 0x2071, 0xc927, 0x7614, 0x2660, 0x2678,
+-      0x2039, 0x0001, 0x87ff, 0x0904, 0x9058, 0x8cff, 0x0904, 0x9058,
+-      0x601c, 0xa086, 0x0006, 0x1904, 0x9053, 0x88ff, 0x0138, 0x2800,
+-      0xac06, 0x1904, 0x9053, 0x2039, 0x0000, 0x0050, 0x6018, 0xa206,
+-      0x1904, 0x9053, 0x85ff, 0x0120, 0x6050, 0xa106, 0x1904, 0x9053,
+-      0x7024, 0xac06, 0x1560, 0x2069, 0x0100, 0x68c0, 0xa005, 0x0518,
+-      0x080c, 0x7024, 0x6820, 0xd0b4, 0x0110, 0x68a7, 0x95f5, 0x6817,
+-      0x0008, 0x68c3, 0x0000, 0x080c, 0x90df, 0x7027, 0x0000, 0x0036,
+-      0x2069, 0x0140, 0x6b04, 0xa384, 0x1000, 0x0120, 0x6803, 0x0100,
+-      0x6803, 0x0000, 0x2069, 0x0100, 0x6824, 0xd084, 0x0110, 0x6827,
+-      0x0001, 0x003e, 0x0020, 0x6003, 0x0009, 0x630a, 0x0460, 0x7014,
++      0x00ce, 0x00de, 0x00ee, 0x00fe, 0x015e, 0x012e, 0x0005, 0x00d6,
++      0x0126, 0x2091, 0x8000, 0x2069, 0xc927, 0x6a06, 0x012e, 0x00de,
++      0x0005, 0x00d6, 0x0126, 0x2091, 0x8000, 0x2069, 0xc927, 0x6a32,
++      0x012e, 0x00de, 0x0005, 0x00f6, 0x00e6, 0x00c6, 0x0066, 0x0006,
++      0x0126, 0x2071, 0xc927, 0x7614, 0x2660, 0x2678, 0x2091, 0x8000,
++      0x8cff, 0x0538, 0x601c, 0xa206, 0x1500, 0x7014, 0xac36, 0x1110,
++      0x660c, 0x7616, 0x7010, 0xac36, 0x1140, 0x2c00, 0xaf36, 0x0118,
++      0x2f00, 0x7012, 0x0010, 0x7013, 0x0000, 0x660c, 0x0066, 0x2c00,
++      0xaf06, 0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f, 0x0000, 0x080c,
++      0xae6d, 0x080c, 0x8fd0, 0x00ce, 0x08d8, 0x2c78, 0x600c, 0x2060,
++      0x08b8, 0x012e, 0x000e, 0x006e, 0x00ce, 0x00ee, 0x00fe, 0x0005,
++      0x0156, 0x0146, 0x20a1, 0x020b, 0x080c, 0x8699, 0x7810, 0x20a2,
++      0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x1000, 0x0804,
++      0x8fc8, 0x0156, 0x0146, 0x20a1, 0x020b, 0x080c, 0x8699, 0x7810,
++      0x20a2, 0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x4000,
++      0x0478, 0x0156, 0x0146, 0x20a1, 0x020b, 0x080c, 0x8699, 0x7810,
++      0x20a2, 0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x2000,
++      0x00f8, 0x0156, 0x0146, 0x20a1, 0x020b, 0x080c, 0x8699, 0x7810,
++      0x20a2, 0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x0400,
++      0x0078, 0x0156, 0x0146, 0x20a1, 0x020b, 0x080c, 0x8699, 0x7810,
++      0x20a2, 0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x0200,
++      0x0089, 0x60c3, 0x0020, 0x080c, 0x8bfb, 0x014e, 0x015e, 0x0005,
++      0x00e6, 0x2071, 0xc927, 0x7020, 0xa005, 0x0110, 0x8001, 0x7022,
++      0x00ee, 0x0005, 0x20a9, 0x0008, 0x20a2, 0x1f04, 0x8fdc, 0x20a2,
++      0x20a2, 0x0005, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0076, 0x0066,
++      0x0006, 0x0126, 0x2091, 0x8000, 0x2071, 0xc927, 0x7614, 0x2660,
++      0x2678, 0x2039, 0x0001, 0x87ff, 0x0904, 0x9078, 0x8cff, 0x0904,
++      0x9078, 0x601c, 0xa086, 0x0006, 0x1904, 0x9073, 0x88ff, 0x0138,
++      0x2800, 0xac06, 0x1904, 0x9073, 0x2039, 0x0000, 0x0050, 0x6018,
++      0xa206, 0x1904, 0x9073, 0x85ff, 0x0120, 0x6050, 0xa106, 0x1904,
++      0x9073, 0x7024, 0xac06, 0x1598, 0x2069, 0x0100, 0x68c0, 0xa005,
++      0x1160, 0x6824, 0xd084, 0x0148, 0x6827, 0x0001, 0x080c, 0x703d,
++      0x080c, 0x90ff, 0x7027, 0x0000, 0x0410, 0x080c, 0x703d, 0x6820,
++      0xd0b4, 0x0110, 0x68a7, 0x95f5, 0x6817, 0x0008, 0x68c3, 0x0000,
++      0x080c, 0x90ff, 0x7027, 0x0000, 0x0036, 0x2069, 0x0140, 0x6b04,
++      0xa384, 0x1000, 0x0120, 0x6803, 0x0100, 0x6803, 0x0000, 0x2069,
++      0x0100, 0x6824, 0xd084, 0x0110, 0x6827, 0x0001, 0x003e, 0x7014,
+       0xac36, 0x1110, 0x660c, 0x7616, 0x7010, 0xac36, 0x1140, 0x2c00,
+       0xaf36, 0x0118, 0x2f00, 0x7012, 0x0010, 0x7013, 0x0000, 0x660c,
+       0x0066, 0x2c00, 0xaf06, 0x0110, 0x7e0e, 0x0008, 0x2678, 0x89ff,
+-      0x1158, 0x600f, 0x0000, 0x6010, 0x2068, 0x080c, 0xac8a, 0x0110,
+-      0x080c, 0xc134, 0x080c, 0xae4d, 0x080c, 0x8fb7, 0x88ff, 0x1190,
+-      0x00ce, 0x0804, 0x8fda, 0x2c78, 0x600c, 0x2060, 0x0804, 0x8fda,
++      0x1158, 0x600f, 0x0000, 0x6010, 0x2068, 0x080c, 0xacaa, 0x0110,
++      0x080c, 0xc15a, 0x080c, 0xae6d, 0x080c, 0x8fd0, 0x88ff, 0x1190,
++      0x00ce, 0x0804, 0x8ff3, 0x2c78, 0x600c, 0x2060, 0x0804, 0x8ff3,
+       0xa006, 0x012e, 0x000e, 0x006e, 0x007e, 0x00ce, 0x00de, 0x00ee,
+       0x00fe, 0x0005, 0x6017, 0x0000, 0x00ce, 0xa8c5, 0x0001, 0x0c88,
+       0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0026, 0x0006, 0x0126,
+       0x2091, 0x8000, 0x2071, 0xc927, 0x7638, 0x2660, 0x2678, 0x8cff,
+-      0x0904, 0x90cf, 0x601c, 0xa086, 0x0006, 0x1904, 0x90ca, 0x87ff,
+-      0x0128, 0x2700, 0xac06, 0x1904, 0x90ca, 0x0048, 0x6018, 0xa206,
+-      0x1904, 0x90ca, 0x85ff, 0x0118, 0x6050, 0xa106, 0x15d8, 0x703c,
+-      0xac06, 0x1180, 0x0036, 0x2019, 0x0001, 0x080c, 0x8e79, 0x7033,
++      0x0904, 0x90ef, 0x601c, 0xa086, 0x0006, 0x1904, 0x90ea, 0x87ff,
++      0x0128, 0x2700, 0xac06, 0x1904, 0x90ea, 0x0048, 0x6018, 0xa206,
++      0x1904, 0x90ea, 0x85ff, 0x0118, 0x6050, 0xa106, 0x15d8, 0x703c,
++      0xac06, 0x1180, 0x0036, 0x2019, 0x0001, 0x080c, 0x8e92, 0x7033,
+       0x0000, 0x703f, 0x0000, 0x7043, 0x0000, 0x7047, 0x0000, 0x704b,
+       0x0000, 0x003e, 0x7038, 0xac36, 0x1110, 0x660c, 0x763a, 0x7034,
+       0xac36, 0x1140, 0x2c00, 0xaf36, 0x0118, 0x2f00, 0x7036, 0x0010,
+       0x7037, 0x0000, 0x660c, 0x0066, 0x2c00, 0xaf06, 0x0110, 0x7e0e,
+-      0x0008, 0x2678, 0x600f, 0x0000, 0x6010, 0x2068, 0x080c, 0xac8a,
+-      0x0110, 0x080c, 0xc134, 0x080c, 0xae4d, 0x87ff, 0x1190, 0x00ce,
+-      0x0804, 0x9077, 0x2c78, 0x600c, 0x2060, 0x0804, 0x9077, 0xa006,
++      0x0008, 0x2678, 0x600f, 0x0000, 0x6010, 0x2068, 0x080c, 0xacaa,
++      0x0110, 0x080c, 0xc15a, 0x080c, 0xae6d, 0x87ff, 0x1190, 0x00ce,
++      0x0804, 0x9097, 0x2c78, 0x600c, 0x2060, 0x0804, 0x9097, 0xa006,
+       0x012e, 0x000e, 0x002e, 0x006e, 0x00ce, 0x00de, 0x00ee, 0x00fe,
+       0x0005, 0x6017, 0x0000, 0x00ce, 0xa7bd, 0x0001, 0x0c88, 0x00e6,
+       0x2071, 0xc927, 0x2001, 0xc600, 0x2004, 0xa086, 0x0002, 0x1118,
+@@ -4192,38 +4197,38 @@ unsigned short risc_code01[] = { 
+       0x600c, 0x2060, 0x08d8, 0x012e, 0x000e, 0x002e, 0x006e, 0x00ce,
+       0x00ee, 0x00fe, 0x0005, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0066,
+       0x0006, 0x0126, 0x2091, 0x8000, 0x2071, 0xc927, 0x760c, 0x2660,
+-      0x2678, 0x8cff, 0x0904, 0x91b5, 0x6018, 0xa080, 0x0028, 0x2004,
+-      0xa206, 0x1904, 0x91b0, 0x7024, 0xac06, 0x1508, 0x2069, 0x0100,
+-      0x68c0, 0xa005, 0x0904, 0x918c, 0x080c, 0x8bf5, 0x68c3, 0x0000,
+-      0x080c, 0x90df, 0x7027, 0x0000, 0x0036, 0x2069, 0x0140, 0x6b04,
++      0x2678, 0x8cff, 0x0904, 0x91d5, 0x6018, 0xa080, 0x0028, 0x2004,
++      0xa206, 0x1904, 0x91d0, 0x7024, 0xac06, 0x1508, 0x2069, 0x0100,
++      0x68c0, 0xa005, 0x0904, 0x91ac, 0x080c, 0x8c0e, 0x68c3, 0x0000,
++      0x080c, 0x90ff, 0x7027, 0x0000, 0x0036, 0x2069, 0x0140, 0x6b04,
+       0xa384, 0x1000, 0x0120, 0x6803, 0x0100, 0x6803, 0x0000, 0x2069,
+       0x0100, 0x6824, 0xd084, 0x0110, 0x6827, 0x0001, 0x003e, 0x700c,
+       0xac36, 0x1110, 0x660c, 0x760e, 0x7008, 0xac36, 0x1140, 0x2c00,
+       0xaf36, 0x0118, 0x2f00, 0x700a, 0x0010, 0x700b, 0x0000, 0x660c,
+       0x0066, 0x2c00, 0xaf06, 0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f,
+-      0x0000, 0x080c, 0xae77, 0x1158, 0x080c, 0x2e6c, 0x080c, 0xae88,
+-      0x11f0, 0x080c, 0x9c02, 0x00d8, 0x080c, 0x90df, 0x08c0, 0x080c,
+-      0xae88, 0x1118, 0x080c, 0x9c02, 0x0090, 0x6010, 0x2068, 0x080c,
+-      0xac8a, 0x0168, 0x601c, 0xa086, 0x0003, 0x11f8, 0x6837, 0x0103,
+-      0x6b4a, 0x6847, 0x0000, 0x080c, 0x580a, 0x080c, 0xae41, 0x080c,
+-      0xb04f, 0x080c, 0xae4d, 0x080c, 0x8fb7, 0x00ce, 0x0804, 0x9139,
+-      0x2c78, 0x600c, 0x2060, 0x0804, 0x9139, 0x012e, 0x000e, 0x006e,
++      0x0000, 0x080c, 0xae97, 0x1158, 0x080c, 0x2e6c, 0x080c, 0xaea8,
++      0x11f0, 0x080c, 0x9c22, 0x00d8, 0x080c, 0x90ff, 0x08c0, 0x080c,
++      0xaea8, 0x1118, 0x080c, 0x9c22, 0x0090, 0x6010, 0x2068, 0x080c,
++      0xacaa, 0x0168, 0x601c, 0xa086, 0x0003, 0x11f8, 0x6837, 0x0103,
++      0x6b4a, 0x6847, 0x0000, 0x080c, 0x5823, 0x080c, 0xae61, 0x080c,
++      0xb06f, 0x080c, 0xae6d, 0x080c, 0x8fd0, 0x00ce, 0x0804, 0x9159,
++      0x2c78, 0x600c, 0x2060, 0x0804, 0x9159, 0x012e, 0x000e, 0x006e,
+       0x00ce, 0x00de, 0x00ee, 0x00fe, 0x0005, 0x601c, 0xa086, 0x0006,
+-      0x1d30, 0x080c, 0xc134, 0x0c18, 0x0036, 0x0156, 0x0136, 0x0146,
++      0x1d30, 0x080c, 0xc15a, 0x0c18, 0x0036, 0x0156, 0x0136, 0x0146,
+       0x3908, 0xa006, 0xa190, 0x0020, 0x221c, 0xa39e, 0x2c61, 0x1118,
+       0x8210, 0x8000, 0x0cc8, 0xa005, 0x0138, 0x20a9, 0x0020, 0x2198,
+       0xa110, 0x22a0, 0x22c8, 0x53a3, 0x014e, 0x013e, 0x015e, 0x003e,
+-      0x0005, 0x00d6, 0x20a1, 0x020b, 0x080c, 0x845b, 0x20a3, 0x0200,
++      0x0005, 0x00d6, 0x20a1, 0x020b, 0x080c, 0x8474, 0x20a3, 0x0200,
+       0x20a3, 0x0014, 0x60c3, 0x0014, 0x20a3, 0x0000, 0x20a3, 0x0000,
+       0x2099, 0xc900, 0x20a9, 0x0004, 0x53a6, 0x20a3, 0x0004, 0x20a3,
+-      0x7878, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x080c, 0x8be2, 0x00de,
+-      0x0005, 0x20a1, 0x020b, 0x080c, 0x845b, 0x20a3, 0x0214, 0x20a3,
++      0x7878, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x080c, 0x8bfb, 0x00de,
++      0x0005, 0x20a1, 0x020b, 0x080c, 0x8474, 0x20a3, 0x0214, 0x20a3,
+       0x0018, 0x20a3, 0x0800, 0x7810, 0xa084, 0xff00, 0x20a2, 0x20a3,
+       0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x7810,
+       0xa084, 0x00ff, 0x20a2, 0x7828, 0x20a2, 0x20a3, 0x0000, 0x20a3,
+-      0x0000, 0x60c3, 0x0018, 0x080c, 0x8be2, 0x0005, 0x00d6, 0x0016,
+-      0x2f68, 0x2009, 0x0035, 0x080c, 0xb13a, 0x1904, 0x9294, 0x20a1,
+-      0x020b, 0x080c, 0x83bf, 0x20a3, 0x1300, 0x20a3, 0x0000, 0x7828,
++      0x0000, 0x60c3, 0x0018, 0x080c, 0x8bfb, 0x0005, 0x00d6, 0x0016,
++      0x2f68, 0x2009, 0x0035, 0x080c, 0xb15a, 0x1904, 0x92b4, 0x20a1,
++      0x020b, 0x080c, 0x83d8, 0x20a3, 0x1300, 0x20a3, 0x0000, 0x7828,
+       0x2068, 0x681c, 0xa086, 0x0003, 0x0580, 0x7818, 0xa080, 0x0028,
+       0x2014, 0x2001, 0xc635, 0x2004, 0xd0ac, 0x11d0, 0xa286, 0x007e,
+       0x1128, 0x20a3, 0x00ff, 0x20a3, 0xfffe, 0x04b8, 0xa286, 0x007f,
+@@ -4235,17 +4240,17 @@ unsigned short risc_code01[] = { 
+       0x0240, 0x00d6, 0x2069, 0xc61c, 0x2da6, 0x8d68, 0x2da6, 0x00de,
+       0x0020, 0x20a3, 0x0000, 0x6034, 0x20a2, 0x7834, 0x20a2, 0x7838,
+       0x20a2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x000c, 0x080c,
+-      0x8be2, 0x001e, 0x00de, 0x0005, 0x7817, 0x0001, 0x7803, 0x0006,
++      0x8bfb, 0x001e, 0x00de, 0x0005, 0x7817, 0x0001, 0x7803, 0x0006,
+       0x001e, 0x00de, 0x0005, 0x00d6, 0x0026, 0x7928, 0x2168, 0x691c,
+-      0xa186, 0x0006, 0x01c0, 0xa186, 0x0003, 0x0904, 0x930a, 0xa186,
+-      0x0005, 0x0904, 0x92f3, 0xa186, 0x0004, 0x05b8, 0xa186, 0x0008,
+-      0x0904, 0x92fb, 0x7807, 0x0037, 0x7813, 0x1700, 0x080c, 0x9372,
+-      0x002e, 0x00de, 0x0005, 0x080c, 0x932e, 0x2009, 0x4000, 0x6800,
+-      0x0002, 0x92d4, 0x92df, 0x92d6, 0x92df, 0x92db, 0x92d4, 0x92d4,
+-      0x92df, 0x92df, 0x92df, 0x92df, 0x92d4, 0x92d4, 0x92d4, 0x92d4,
+-      0x92d4, 0x92df, 0x92d4, 0x92df, 0x080c, 0x1519, 0x6820, 0xd0e4,
++      0xa186, 0x0006, 0x01c0, 0xa186, 0x0003, 0x0904, 0x932a, 0xa186,
++      0x0005, 0x0904, 0x9313, 0xa186, 0x0004, 0x05b8, 0xa186, 0x0008,
++      0x0904, 0x931b, 0x7807, 0x0037, 0x7813, 0x1700, 0x080c, 0x9392,
++      0x002e, 0x00de, 0x0005, 0x080c, 0x934e, 0x2009, 0x4000, 0x6800,
++      0x0002, 0x92f4, 0x92ff, 0x92f6, 0x92ff, 0x92fb, 0x92f4, 0x92f4,
++      0x92ff, 0x92ff, 0x92ff, 0x92ff, 0x92f4, 0x92f4, 0x92f4, 0x92f4,
++      0x92f4, 0x92ff, 0x92f4, 0x92ff, 0x080c, 0x1519, 0x6820, 0xd0e4,
+       0x0110, 0xd0cc, 0x0110, 0xa00e, 0x0010, 0x2009, 0x2000, 0x6828,
+-      0x20a2, 0x682c, 0x20a2, 0x0804, 0x9324, 0x080c, 0x932e, 0x20a3,
++      0x20a2, 0x682c, 0x20a2, 0x0804, 0x9344, 0x080c, 0x934e, 0x20a3,
+       0x0000, 0x20a3, 0x0000, 0x2009, 0x4000, 0x6a00, 0xa286, 0x0002,
+       0x1108, 0xa00e, 0x0488, 0x04d1, 0x20a3, 0x0000, 0x20a3, 0x0000,
+       0x2009, 0x4000, 0x0448, 0x0491, 0x20a3, 0x0000, 0x20a3, 0x0000,
+@@ -4254,8 +4259,8 @@ unsigned short risc_code01[] = { 
+       0x6980, 0x6814, 0xa103, 0x20a2, 0x22a2, 0x7928, 0xa180, 0x0000,
+       0x2004, 0xa08e, 0x0002, 0x0130, 0xa08e, 0x0004, 0x0118, 0x2009,
+       0x4000, 0x0010, 0x2009, 0x0000, 0x21a2, 0x20a3, 0x0000, 0x60c3,
+-      0x0018, 0x080c, 0x8be2, 0x002e, 0x00de, 0x0005, 0x0036, 0x0046,
+-      0x0056, 0x0066, 0x20a1, 0x020b, 0x080c, 0x845b, 0xa006, 0x20a3,
++      0x0018, 0x080c, 0x8bfb, 0x002e, 0x00de, 0x0005, 0x0036, 0x0046,
++      0x0056, 0x0066, 0x20a1, 0x020b, 0x080c, 0x8474, 0xa006, 0x20a3,
+       0x0200, 0x20a2, 0x7934, 0x21a2, 0x7938, 0x21a2, 0x7818, 0xa080,
+       0x0028, 0x2004, 0x2011, 0xc635, 0x2214, 0xd2ac, 0x1118, 0xa092,
+       0x007e, 0x0268, 0x00d6, 0x2069, 0xc61c, 0x2d2c, 0x8d68, 0x2d34,
+@@ -4263,26 +4268,26 @@ unsigned short risc_code01[] = { 
+       0x0000, 0x6498, 0x2029, 0x0000, 0x6634, 0x7828, 0xa080, 0x0007,
+       0x2004, 0xa086, 0x0003, 0x1128, 0x25a2, 0x26a2, 0x23a2, 0x24a2,
+       0x0020, 0x23a2, 0x24a2, 0x25a2, 0x26a2, 0x006e, 0x005e, 0x004e,
+-      0x003e, 0x0005, 0x20a1, 0x020b, 0x080c, 0x845b, 0x20a3, 0x0100,
++      0x003e, 0x0005, 0x20a1, 0x020b, 0x080c, 0x8474, 0x20a3, 0x0100,
+       0x20a3, 0x0000, 0x20a3, 0x0009, 0x7810, 0x20a2, 0x60c3, 0x0008,
+-      0x080c, 0x8be2, 0x0005, 0x20a1, 0x020b, 0x080c, 0x83b7, 0x20a3,
++      0x080c, 0x8bfb, 0x0005, 0x20a1, 0x020b, 0x080c, 0x83d0, 0x20a3,
+       0x1400, 0x20a3, 0x0000, 0x7834, 0x20a2, 0x7838, 0x20a2, 0x7828,
+       0x20a2, 0x782c, 0x20a2, 0x7830, 0xa084, 0x00ff, 0x8007, 0x20a2,
+-      0x20a3, 0x0000, 0x60c3, 0x0010, 0x080c, 0x8be2, 0x0005, 0x20a1,
+-      0x020b, 0x080c, 0x8453, 0x20a3, 0x0100, 0x20a3, 0x0000, 0x7828,
+-      0x20a2, 0x7810, 0x20a2, 0x60c3, 0x0008, 0x080c, 0x8be2, 0x0005,
+-      0x0146, 0x20a1, 0x020b, 0x0031, 0x60c3, 0x0000, 0x080c, 0x8be2,
++      0x20a3, 0x0000, 0x60c3, 0x0010, 0x080c, 0x8bfb, 0x0005, 0x20a1,
++      0x020b, 0x080c, 0x846c, 0x20a3, 0x0100, 0x20a3, 0x0000, 0x7828,
++      0x20a2, 0x7810, 0x20a2, 0x60c3, 0x0008, 0x080c, 0x8bfb, 0x0005,
++      0x0146, 0x20a1, 0x020b, 0x0031, 0x60c3, 0x0000, 0x080c, 0x8bfb,
+       0x014e, 0x0005, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7818, 0xa080,
+       0x0028, 0x2004, 0x2011, 0xc635, 0x2214, 0xd2ac, 0x1110, 0xd0bc,
+       0x0188, 0x00d6, 0xa0e8, 0xc77b, 0x2d6c, 0x6810, 0xa085, 0x0300,
+       0x20a2, 0x6814, 0x20a2, 0x2069, 0xc61c, 0x2da6, 0x8d68, 0x2da6,
+       0x00de, 0x0078, 0x00d6, 0xa0e8, 0xc77b, 0x2d6c, 0x6810, 0xa085,
+       0x0300, 0x20a2, 0x6814, 0x20a2, 0x00de, 0x20a3, 0x0000, 0x6234,
+-      0x22a2, 0x20a3, 0x0819, 0x20a3, 0x0000, 0x080c, 0x8bd1, 0x22a2,
++      0x22a2, 0x20a3, 0x0819, 0x20a3, 0x0000, 0x080c, 0x8bea, 0x22a2,
+       0x20a3, 0x0000, 0x2fa2, 0x7a08, 0x22a2, 0x20a3, 0x0000, 0x20a3,
+       0x0000, 0x0005, 0x20a1, 0x020b, 0x0079, 0x7910, 0x21a2, 0x20a3,
+       0x0000, 0x60c3, 0x0000, 0x20e1, 0x9080, 0x60a7, 0x9575, 0x080c,
+-      0x8bec, 0x080c, 0x701b, 0x0005, 0x0156, 0x0136, 0x0036, 0x00d6,
++      0x8c05, 0x080c, 0x7034, 0x0005, 0x0156, 0x0136, 0x0036, 0x00d6,
+       0x00e6, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7854, 0x2068, 0xadf0,
+       0x000f, 0x7210, 0xa296, 0x00c0, 0xa294, 0xfffd, 0x7212, 0x7214,
+       0xa294, 0x0300, 0x7216, 0x7100, 0xa194, 0x00ff, 0x7308, 0xa384,
+@@ -4294,41 +4299,41 @@ unsigned short risc_code01[] = { 
+       0x0005, 0x609b, 0x0000, 0x20a1, 0x020b, 0x20e1, 0x9080, 0x20e1,
+       0x4000, 0x20a3, 0x22ff, 0x20a3, 0xffff, 0x00d6, 0x2069, 0xc61c,
+       0x2da6, 0x8d68, 0x2da6, 0x00de, 0x20a3, 0x0138, 0x20a3, 0x0000,
+-      0x0026, 0x080c, 0x8bd1, 0x22a2, 0x20a3, 0x0000, 0x2fa2, 0x20a3,
++      0x0026, 0x080c, 0x8bea, 0x22a2, 0x20a3, 0x0000, 0x2fa2, 0x20a3,
+       0xffff, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x002e, 0x20a3, 0x5400,
+-      0x20a3, 0x0000, 0x080c, 0x768f, 0x11b8, 0x0016, 0x7810, 0xa080,
++      0x20a3, 0x0000, 0x080c, 0x76a8, 0x11b8, 0x0016, 0x7810, 0xa080,
+       0x000d, 0x20a9, 0x0014, 0x200c, 0x810f, 0x21a2, 0x8000, 0x1f04,
+-      0x9483, 0x20a9, 0x0012, 0x2001, 0x0000, 0x20a3, 0x0000, 0x1f04,
+-      0x948d, 0x001e, 0x0804, 0x94fb, 0x7810, 0x0016, 0x00c6, 0x00d6,
++      0x94a3, 0x20a9, 0x0012, 0x2001, 0x0000, 0x20a3, 0x0000, 0x1f04,
++      0x94ad, 0x001e, 0x0804, 0x951b, 0x7810, 0x0016, 0x00c6, 0x00d6,
+       0x7810, 0x2068, 0x2061, 0xc600, 0x6070, 0xa084, 0x00ff, 0x6968,
+       0x810f, 0xa18c, 0xff00, 0xa105, 0x20a2, 0x6074, 0x20a2, 0x6968,
+       0xa18c, 0xff00, 0x21a2, 0x20a3, 0x0000, 0x20a9, 0x0004, 0x2009,
+-      0xc605, 0x2104, 0x20a2, 0x8108, 0x1f04, 0x94b1, 0x20a9, 0x0004,
+-      0x2009, 0xc601, 0x2104, 0x20a2, 0x8108, 0x1f04, 0x94ba, 0x20a9,
++      0xc605, 0x2104, 0x20a2, 0x8108, 0x1f04, 0x94d1, 0x20a9, 0x0004,
++      0x2009, 0xc601, 0x2104, 0x20a2, 0x8108, 0x1f04, 0x94da, 0x20a9,
+       0x0004, 0x2d08, 0xa188, 0x001d, 0x2104, 0x8007, 0x20a2, 0x8108,
+-      0x1f04, 0x94c4, 0x20a9, 0x0004, 0x2d08, 0xa188, 0x0021, 0x2104,
+-      0x8007, 0x20a2, 0x8108, 0x1f04, 0x94cf, 0x080c, 0x7694, 0x1138,
+-      0x20a9, 0x0008, 0x20a3, 0x0000, 0x1f04, 0x94da, 0x0050, 0x20a9,
++      0x1f04, 0x94e4, 0x20a9, 0x0004, 0x2d08, 0xa188, 0x0021, 0x2104,
++      0x8007, 0x20a2, 0x8108, 0x1f04, 0x94ef, 0x080c, 0x76ad, 0x1138,
++      0x20a9, 0x0008, 0x20a3, 0x0000, 0x1f04, 0x94fa, 0x0050, 0x20a9,
+       0x0008, 0x2009, 0xc69a, 0x2104, 0x8007, 0x20a2, 0x8108, 0x1f04,
+-      0x94e3, 0x20a9, 0x0008, 0x2d08, 0xa188, 0x0025, 0x2104, 0x8007,
+-      0x20a2, 0x8108, 0x1f04, 0x94ee, 0x00de, 0x00ce, 0x001e, 0x20a3,
+-      0x0000, 0x20a3, 0x0000, 0x60c3, 0x004c, 0x080c, 0x8be2, 0x0005,
+-      0x20a1, 0x020b, 0x080c, 0x83bf, 0x20a3, 0x5500, 0x20a3, 0x0000,
++      0x9503, 0x20a9, 0x0008, 0x2d08, 0xa188, 0x0025, 0x2104, 0x8007,
++      0x20a2, 0x8108, 0x1f04, 0x950e, 0x00de, 0x00ce, 0x001e, 0x20a3,
++      0x0000, 0x20a3, 0x0000, 0x60c3, 0x004c, 0x080c, 0x8bfb, 0x0005,
++      0x20a1, 0x020b, 0x080c, 0x83d8, 0x20a3, 0x5500, 0x20a3, 0x0000,
+       0x7810, 0x0016, 0x00c6, 0x00d6, 0x7810, 0x2068, 0x686c, 0xa084,
+       0x00ff, 0x6968, 0x810f, 0xa18c, 0xff00, 0xa105, 0x20a2, 0x696c,
+       0xa18c, 0xff00, 0x6870, 0xa084, 0x00ff, 0xa105, 0x20a2, 0x6968,
+       0xa18c, 0xff00, 0x2061, 0xc600, 0x6070, 0xa084, 0x00ff, 0xa10d,
+       0x21a2, 0x6174, 0x21a2, 0x20a9, 0x0004, 0x2d08, 0xa188, 0x001d,
+-      0x2104, 0x8007, 0x20a2, 0x8108, 0x1f04, 0x9530, 0x20a9, 0x0004,
++      0x2104, 0x8007, 0x20a2, 0x8108, 0x1f04, 0x9550, 0x20a9, 0x0004,
+       0x2d08, 0xa188, 0x0021, 0x2104, 0x8007, 0x20a2, 0x8108, 0x1f04,
+-      0x953b, 0x20a9, 0x0004, 0x2009, 0xc605, 0x2104, 0x20a2, 0x8108,
+-      0x1f04, 0x9545, 0x20a9, 0x0004, 0x2009, 0xc601, 0x2104, 0x20a2,
+-      0x8108, 0x1f04, 0x954e, 0x20a9, 0x0008, 0x2d08, 0xa188, 0x0025,
+-      0x2104, 0x8007, 0x20a2, 0x8108, 0x1f04, 0x9558, 0x080c, 0x7694,
+-      0x1138, 0x20a9, 0x0008, 0x20a3, 0x0000, 0x1f04, 0x9563, 0x0050,
++      0x955b, 0x20a9, 0x0004, 0x2009, 0xc605, 0x2104, 0x20a2, 0x8108,
++      0x1f04, 0x9565, 0x20a9, 0x0004, 0x2009, 0xc601, 0x2104, 0x20a2,
++      0x8108, 0x1f04, 0x956e, 0x20a9, 0x0008, 0x2d08, 0xa188, 0x0025,
++      0x2104, 0x8007, 0x20a2, 0x8108, 0x1f04, 0x9578, 0x080c, 0x76ad,
++      0x1138, 0x20a9, 0x0008, 0x20a3, 0x0000, 0x1f04, 0x9583, 0x0050,
+       0x20a9, 0x0008, 0x2009, 0xc69a, 0x2104, 0x8007, 0x20a2, 0x8108,
+-      0x1f04, 0x956c, 0x00de, 0x00ce, 0x001e, 0x20a3, 0x0000, 0x20a3,
+-      0x0000, 0x60c3, 0x004c, 0x080c, 0x8be2, 0x0005, 0x2061, 0xce00,
++      0x1f04, 0x958c, 0x00de, 0x00ce, 0x001e, 0x20a3, 0x0000, 0x20a3,
++      0x0000, 0x60c3, 0x004c, 0x080c, 0x8bfb, 0x0005, 0x2061, 0xce00,
+       0x2a70, 0x7068, 0x704a, 0x704f, 0xce00, 0x0005, 0x00e6, 0x0126,
+       0x2071, 0xc600, 0x2091, 0x8000, 0x7548, 0xa582, 0x0010, 0x0608,
+       0x704c, 0x2060, 0x6000, 0xa086, 0x0000, 0x0148, 0xace0, 0x0018,
+@@ -4346,102 +4351,102 @@ unsigned short risc_code01[] = { 
+       0x0000, 0x6052, 0x6056, 0x6022, 0x6026, 0x602a, 0x602e, 0x6032,
+       0x6036, 0x603a, 0x603e, 0x6026, 0x2061, 0xc600, 0x6048, 0x8000,
+       0x604a, 0xa086, 0x0001, 0x0108, 0x0005, 0x0126, 0x2091, 0x8000,
+-      0x080c, 0x7e94, 0x012e, 0x0cc0, 0x601c, 0xa084, 0x000f, 0x0002,
+-      0x961b, 0x962a, 0x9645, 0x9660, 0xb17e, 0xb199, 0xb1b4, 0x961b,
+-      0x962a, 0x7699, 0x967b, 0xa186, 0x0013, 0x1128, 0x080c, 0x7db1,
+-      0x080c, 0x7e94, 0x0005, 0xa18e, 0x0047, 0x1118, 0xa016, 0x080c,
++      0x080c, 0x7ead, 0x012e, 0x0cc0, 0x601c, 0xa084, 0x000f, 0x0002,
++      0x963b, 0x964a, 0x9665, 0x9680, 0xb1a2, 0xb1bd, 0xb1d8, 0x963b,
++      0x964a, 0x76b2, 0x969b, 0xa186, 0x0013, 0x1128, 0x080c, 0x7dca,
++      0x080c, 0x7ead, 0x0005, 0xa18e, 0x0047, 0x1118, 0xa016, 0x080c,
+       0x1870, 0x0005, 0x0066, 0x6000, 0xa0b2, 0x0010, 0x1a0c, 0x1519,
+-      0x0013, 0x006e, 0x0005, 0x9643, 0x9a71, 0x9c3c, 0x9643, 0x9cb9,
+-      0x9739, 0x9643, 0x9643, 0x9a03, 0xa11f, 0x9643, 0x9643, 0x9643,
+-      0x9643, 0x9643, 0x9643, 0x080c, 0x1519, 0x0066, 0x6000, 0xa0b2,
+-      0x0010, 0x1a0c, 0x1519, 0x0013, 0x006e, 0x0005, 0x965e, 0xa752,
+-      0x965e, 0x965e, 0x965e, 0x965e, 0x965e, 0x965e, 0xa6fd, 0xa8be,
+-      0x965e, 0xa77f, 0xa7f6, 0xa77f, 0xa7f6, 0x965e, 0x080c, 0x1519,
++      0x0013, 0x006e, 0x0005, 0x9663, 0x9a91, 0x9c5c, 0x9663, 0x9cd9,
++      0x9759, 0x9663, 0x9663, 0x9a23, 0xa13f, 0x9663, 0x9663, 0x9663,
++      0x9663, 0x9663, 0x9663, 0x080c, 0x1519, 0x0066, 0x6000, 0xa0b2,
++      0x0010, 0x1a0c, 0x1519, 0x0013, 0x006e, 0x0005, 0x967e, 0xa772,
++      0x967e, 0x967e, 0x967e, 0x967e, 0x967e, 0x967e, 0xa71d, 0xa8de,
++      0x967e, 0xa79f, 0xa816, 0xa79f, 0xa816, 0x967e, 0x080c, 0x1519,
+       0x0066, 0x6000, 0xa0b2, 0x0010, 0x1a0c, 0x1519, 0x0013, 0x006e,
+-      0x0005, 0x9679, 0xa160, 0xa22a, 0xa365, 0xa4c1, 0x9679, 0x9679,
+-      0x9679, 0xa13a, 0xa6ad, 0xa6b0, 0x9679, 0x9679, 0x9679, 0x9679,
+-      0xa6da, 0x080c, 0x1519, 0x0066, 0x6000, 0xa0b2, 0x0010, 0x1a0c,
+-      0x1519, 0x0013, 0x006e, 0x0005, 0x9694, 0x9694, 0x9694, 0x96c2,
+-      0x970f, 0x9694, 0x9694, 0x9694, 0x9696, 0x9694, 0x9694, 0x9694,
+-      0x9694, 0x9694, 0x9694, 0x9694, 0x080c, 0x1519, 0xa186, 0x0003,
++      0x0005, 0x9699, 0xa180, 0xa24a, 0xa385, 0xa4e1, 0x9699, 0x9699,
++      0x9699, 0xa15a, 0xa6cd, 0xa6d0, 0x9699, 0x9699, 0x9699, 0x9699,
++      0xa6fa, 0x080c, 0x1519, 0x0066, 0x6000, 0xa0b2, 0x0010, 0x1a0c,
++      0x1519, 0x0013, 0x006e, 0x0005, 0x96b4, 0x96b4, 0x96b4, 0x96e2,
++      0x972f, 0x96b4, 0x96b4, 0x96b4, 0x96b6, 0x96b4, 0x96b4, 0x96b4,
++      0x96b4, 0x96b4, 0x96b4, 0x96b4, 0x080c, 0x1519, 0xa186, 0x0003,
+       0x190c, 0x1519, 0x00d6, 0x6003, 0x0003, 0x6106, 0x6010, 0x2068,
+       0x684f, 0x0040, 0x687c, 0x680a, 0x6880, 0x680e, 0x6813, 0x0000,
+       0x6817, 0x0000, 0x6854, 0xa092, 0x199a, 0x0210, 0x2001, 0x1999,
+       0x8003, 0x8013, 0x8213, 0xa210, 0x6216, 0x00de, 0x2c10, 0x080c,
+-      0x2068, 0x080c, 0x79fc, 0x0126, 0x2091, 0x8000, 0x080c, 0x7f6e,
+-      0x012e, 0x0005, 0xa182, 0x0047, 0x0002, 0x96ce, 0x96ce, 0x96d0,
+-      0x96e9, 0x96ce, 0x96ce, 0x96ce, 0x96ce, 0x96fb, 0x080c, 0x1519,
+-      0x00d6, 0x0016, 0x080c, 0x7e47, 0x080c, 0x7f6e, 0x6003, 0x0004,
++      0x2068, 0x080c, 0x7a15, 0x0126, 0x2091, 0x8000, 0x080c, 0x7f87,
++      0x012e, 0x0005, 0xa182, 0x0047, 0x0002, 0x96ee, 0x96ee, 0x96f0,
++      0x9709, 0x96ee, 0x96ee, 0x96ee, 0x96ee, 0x971b, 0x080c, 0x1519,
++      0x00d6, 0x0016, 0x080c, 0x7e60, 0x080c, 0x7f87, 0x6003, 0x0004,
+       0x6110, 0x2168, 0x684f, 0x0020, 0x685c, 0x685a, 0x6874, 0x687e,
+       0x6878, 0x6882, 0x6897, 0x0000, 0x689b, 0x0000, 0x001e, 0x00de,
+-      0x0005, 0x080c, 0x7e47, 0x00d6, 0x6110, 0x2168, 0x080c, 0xac8a,
+-      0x0120, 0x684b, 0x0006, 0x080c, 0x580a, 0x00de, 0x080c, 0x95dc,
+-      0x080c, 0x7f6e, 0x0005, 0x080c, 0x7e47, 0x080c, 0x2e46, 0x00d6,
+-      0x6110, 0x2168, 0x080c, 0xac8a, 0x0120, 0x684b, 0x0029, 0x080c,
+-      0x580a, 0x00de, 0x080c, 0x95dc, 0x080c, 0x7f6e, 0x0005, 0xa182,
+-      0x0047, 0x0002, 0x971d, 0x972c, 0x971b, 0x971b, 0x971b, 0x971b,
+-      0x971b, 0x971b, 0x971b, 0x080c, 0x1519, 0x00d6, 0x6010, 0x2068,
++      0x0005, 0x080c, 0x7e60, 0x00d6, 0x6110, 0x2168, 0x080c, 0xacaa,
++      0x0120, 0x684b, 0x0006, 0x080c, 0x5823, 0x00de, 0x080c, 0x95fc,
++      0x080c, 0x7f87, 0x0005, 0x080c, 0x7e60, 0x080c, 0x2e46, 0x00d6,
++      0x6110, 0x2168, 0x080c, 0xacaa, 0x0120, 0x684b, 0x0029, 0x080c,
++      0x5823, 0x00de, 0x080c, 0x95fc, 0x080c, 0x7f87, 0x0005, 0xa182,
++      0x0047, 0x0002, 0x973d, 0x974c, 0x973b, 0x973b, 0x973b, 0x973b,
++      0x973b, 0x973b, 0x973b, 0x080c, 0x1519, 0x00d6, 0x6010, 0x2068,
+       0x684c, 0xc0f4, 0x684e, 0x00de, 0x20e1, 0x0005, 0x3d18, 0x3e20,
+       0x2c10, 0x080c, 0x1870, 0x0005, 0x00d6, 0x6110, 0x2168, 0x684b,
+-      0x0000, 0x6853, 0x0000, 0x080c, 0x580a, 0x00de, 0x080c, 0x95dc,
+-      0x0005, 0xa1b6, 0x0015, 0x1118, 0x080c, 0x95dc, 0x0030, 0xa1b6,
+-      0x0016, 0x190c, 0x1519, 0x080c, 0x95dc, 0x0005, 0x20a9, 0x000e,
++      0x0000, 0x6853, 0x0000, 0x080c, 0x5823, 0x00de, 0x080c, 0x95fc,
++      0x0005, 0xa1b6, 0x0015, 0x1118, 0x080c, 0x95fc, 0x0030, 0xa1b6,
++      0x0016, 0x190c, 0x1519, 0x080c, 0x95fc, 0x0005, 0x20a9, 0x000e,
+       0x2e98, 0x6010, 0x20a0, 0x53a3, 0x20a9, 0x0006, 0x3310, 0x3420,
+       0x9398, 0x94a0, 0x3318, 0x3428, 0x222e, 0x2326, 0xa290, 0x0002,
+-      0xa5a8, 0x0002, 0xa398, 0x0002, 0xa4a0, 0x0002, 0x1f04, 0x9754,
+-      0x00e6, 0x080c, 0xac8a, 0x0130, 0x6010, 0x2070, 0x7007, 0x0000,
+-      0x7037, 0x0103, 0x00ee, 0x080c, 0x95dc, 0x0005, 0x00d6, 0x0036,
++      0xa5a8, 0x0002, 0xa398, 0x0002, 0xa4a0, 0x0002, 0x1f04, 0x9774,
++      0x00e6, 0x080c, 0xacaa, 0x0130, 0x6010, 0x2070, 0x7007, 0x0000,
++      0x7037, 0x0103, 0x00ee, 0x080c, 0x95fc, 0x0005, 0x00d6, 0x0036,
+       0x7330, 0xa386, 0x0200, 0x1130, 0x6018, 0x2068, 0x6813, 0x00ff,
+       0x6817, 0xfffd, 0x6010, 0xa005, 0x0130, 0x2068, 0x6807, 0x0000,
+-      0x6837, 0x0103, 0x6b32, 0x080c, 0x95dc, 0x003e, 0x00de, 0x0005,
++      0x6837, 0x0103, 0x6b32, 0x080c, 0x95fc, 0x003e, 0x00de, 0x0005,
+       0x0016, 0x20a9, 0x002a, 0xae80, 0x000c, 0x2098, 0x6010, 0xa080,
+       0x0002, 0x20a0, 0x53a3, 0x20a9, 0x002a, 0x6010, 0xa080, 0x0001,
+       0x2004, 0xa080, 0x0002, 0x20a0, 0x53a3, 0x00e6, 0x6010, 0x2004,
+-      0x2070, 0x7037, 0x0103, 0x00ee, 0x080c, 0x95dc, 0x001e, 0x0005,
++      0x2070, 0x7037, 0x0103, 0x00ee, 0x080c, 0x95fc, 0x001e, 0x0005,
+       0x0016, 0x2009, 0x0000, 0x7030, 0xa086, 0x0100, 0x0140, 0x7038,
+       0xa084, 0x00ff, 0x800c, 0x703c, 0xa084, 0x00ff, 0x8004, 0xa080,
+       0x0004, 0xa108, 0x21a8, 0xae80, 0x000c, 0x2098, 0x6010, 0xa080,
+-      0x0002, 0x20a0, 0x080c, 0x4ecb, 0x00e6, 0x080c, 0xac8a, 0x0140,
++      0x0002, 0x20a0, 0x080c, 0x4ee4, 0x00e6, 0x080c, 0xacaa, 0x0140,
+       0x6010, 0x2070, 0x7007, 0x0000, 0x7034, 0x70b2, 0x7037, 0x0103,
+-      0x00ee, 0x080c, 0x95dc, 0x001e, 0x0005, 0x0016, 0x2009, 0x0000,
++      0x00ee, 0x080c, 0x95fc, 0x001e, 0x0005, 0x0016, 0x2009, 0x0000,
+       0x7030, 0xa086, 0x0200, 0x0110, 0x2009, 0x0001, 0x00d6, 0x6010,
+-      0xa06d, 0x090c, 0x1519, 0x694a, 0x080c, 0x580a, 0x00de, 0x080c,
+-      0x95dc, 0x001e, 0x0005, 0x00e6, 0x00d6, 0x603f, 0x0000, 0x2c68,
+-      0x0016, 0x2009, 0x0035, 0x080c, 0xb13a, 0x001e, 0x1168, 0x0026,
++      0xa06d, 0x090c, 0x1519, 0x694a, 0x080c, 0x5823, 0x00de, 0x080c,
++      0x95fc, 0x001e, 0x0005, 0x00e6, 0x00d6, 0x603f, 0x0000, 0x2c68,
++      0x0016, 0x2009, 0x0035, 0x080c, 0xb15a, 0x001e, 0x1168, 0x0026,
+       0x6228, 0x2268, 0x002e, 0x2071, 0xcc8c, 0x6b1c, 0xa386, 0x0003,
+-      0x0130, 0xa386, 0x0006, 0x0128, 0x080c, 0x95dc, 0x0020, 0x0031,
+-      0x0010, 0x080c, 0x98cc, 0x00de, 0x00ee, 0x0005, 0x00f6, 0x6810,
+-      0x2078, 0xa186, 0x0015, 0x0904, 0x98b3, 0xa18e, 0x0016, 0x1904,
+-      0x98ca, 0x700c, 0xa08c, 0xff00, 0xa186, 0x1700, 0x0120, 0xa186,
+-      0x0300, 0x1904, 0x9892, 0x8fff, 0x1138, 0x6800, 0xa086, 0x000f,
+-      0x0904, 0x9876, 0x0804, 0x98c8, 0x6808, 0xa086, 0xffff, 0x1904,
+-      0x98b5, 0x784c, 0xa084, 0x0060, 0xa086, 0x0020, 0x1150, 0x797c,
+-      0x7810, 0xa106, 0x1904, 0x98b5, 0x7980, 0x7814, 0xa106, 0x1904,
+-      0x98b5, 0x080c, 0xae41, 0x6858, 0x7852, 0x784c, 0xc0dc, 0xc0f4,
++      0x0130, 0xa386, 0x0006, 0x0128, 0x080c, 0x95fc, 0x0020, 0x0031,
++      0x0010, 0x080c, 0x98ec, 0x00de, 0x00ee, 0x0005, 0x00f6, 0x6810,
++      0x2078, 0xa186, 0x0015, 0x0904, 0x98d3, 0xa18e, 0x0016, 0x1904,
++      0x98ea, 0x700c, 0xa08c, 0xff00, 0xa186, 0x1700, 0x0120, 0xa186,
++      0x0300, 0x1904, 0x98b2, 0x8fff, 0x1138, 0x6800, 0xa086, 0x000f,
++      0x0904, 0x9896, 0x0804, 0x98e8, 0x6808, 0xa086, 0xffff, 0x1904,
++      0x98d5, 0x784c, 0xa084, 0x0060, 0xa086, 0x0020, 0x1150, 0x797c,
++      0x7810, 0xa106, 0x1904, 0x98d5, 0x7980, 0x7814, 0xa106, 0x1904,
++      0x98d5, 0x080c, 0xae61, 0x6858, 0x7852, 0x784c, 0xc0dc, 0xc0f4,
+       0xc0d4, 0x784e, 0x0026, 0xa00e, 0x6a14, 0x2001, 0x000a, 0x080c,
+-      0x783f, 0x7854, 0xa20a, 0x0208, 0x8011, 0x7a56, 0x82ff, 0x002e,
+-      0x1138, 0x00c6, 0x2d60, 0x080c, 0xaa39, 0x00ce, 0x0804, 0x98c8,
+-      0x00c6, 0x00d6, 0x2f68, 0x6838, 0xd0fc, 0x1118, 0x080c, 0x4fa6,
+-      0x0010, 0x080c, 0x51dd, 0x00de, 0x00ce, 0x1904, 0x98b5, 0x00c6,
+-      0x2d60, 0x080c, 0x95dc, 0x00ce, 0x0804, 0x98c8, 0x00c6, 0x080c,
+-      0xaf06, 0x0190, 0x6013, 0x0000, 0x6818, 0x601a, 0x080c, 0xb057,
+-      0x601f, 0x0003, 0x6904, 0x00c6, 0x2d60, 0x080c, 0x95dc, 0x00ce,
+-      0x080c, 0x960c, 0x00ce, 0x04e0, 0x2001, 0xc8ff, 0x2004, 0x683e,
++      0x7858, 0x7854, 0xa20a, 0x0208, 0x8011, 0x7a56, 0x82ff, 0x002e,
++      0x1138, 0x00c6, 0x2d60, 0x080c, 0xaa59, 0x00ce, 0x0804, 0x98e8,
++      0x00c6, 0x00d6, 0x2f68, 0x6838, 0xd0fc, 0x1118, 0x080c, 0x4fbf,
++      0x0010, 0x080c, 0x51f6, 0x00de, 0x00ce, 0x1904, 0x98d5, 0x00c6,
++      0x2d60, 0x080c, 0x95fc, 0x00ce, 0x0804, 0x98e8, 0x00c6, 0x080c,
++      0xaf26, 0x0190, 0x6013, 0x0000, 0x6818, 0x601a, 0x080c, 0xb077,
++      0x601f, 0x0003, 0x6904, 0x00c6, 0x2d60, 0x080c, 0x95fc, 0x00ce,
++      0x080c, 0x962c, 0x00ce, 0x04e0, 0x2001, 0xc8ff, 0x2004, 0x683e,
+       0x00ce, 0x04b0, 0x7008, 0xa086, 0x000b, 0x11a0, 0x6018, 0x200c,
+       0xc1bc, 0x2102, 0x00c6, 0x2d60, 0x7853, 0x0003, 0x6007, 0x0085,
+-      0x6003, 0x000b, 0x601f, 0x0002, 0x080c, 0x7999, 0x080c, 0x7e94,
++      0x6003, 0x000b, 0x601f, 0x0002, 0x080c, 0x79b2, 0x080c, 0x7ead,
+       0x00ce, 0x00f0, 0x700c, 0xa086, 0x2a00, 0x1138, 0x2001, 0xc8ff,
+       0x2004, 0x683e, 0x00a8, 0x0481, 0x00a8, 0x8fff, 0x090c, 0x1519,
+       0x00c6, 0x00d6, 0x2d60, 0x2f68, 0x6837, 0x0103, 0x684b, 0x0003,
+-      0x080c, 0xa92d, 0x080c, 0xae41, 0x080c, 0xae4d, 0x00de, 0x00ce,
+-      0x080c, 0x95dc, 0x00fe, 0x0005, 0xa186, 0x0015, 0x1128, 0x2001,
++      0x080c, 0xa94d, 0x080c, 0xae61, 0x080c, 0xae6d, 0x00de, 0x00ce,
++      0x080c, 0x95fc, 0x00fe, 0x0005, 0xa186, 0x0015, 0x1128, 0x2001,
+       0xc8ff, 0x2004, 0x683e, 0x0068, 0xa18e, 0x0016, 0x1160, 0x00c6,
+-      0x2d00, 0x2060, 0x080c, 0xc3d5, 0x080c, 0x7103, 0x080c, 0x95dc,
+-      0x00ce, 0x080c, 0x95dc, 0x0005, 0x0026, 0x0036, 0x0046, 0x7228,
++      0x2d00, 0x2060, 0x080c, 0xc3fb, 0x080c, 0x711c, 0x080c, 0x95fc,
++      0x00ce, 0x080c, 0x95fc, 0x0005, 0x0026, 0x0036, 0x0046, 0x7228,
+       0x7c80, 0x7b7c, 0xd2f4, 0x0130, 0x2001, 0xc8ff, 0x2004, 0x683e,
+-      0x0804, 0x9946, 0x00c6, 0x2d60, 0x080c, 0xa94d, 0x00ce, 0x6804,
++      0x0804, 0x9966, 0x00c6, 0x2d60, 0x080c, 0xa96d, 0x00ce, 0x6804,
+       0xa086, 0x0050, 0x1168, 0x00c6, 0x2d00, 0x2060, 0x6003, 0x0001,
+-      0x6007, 0x0050, 0x080c, 0x7999, 0x080c, 0x7e94, 0x00ce, 0x04f0,
++      0x6007, 0x0050, 0x080c, 0x79b2, 0x080c, 0x7ead, 0x00ce, 0x04f0,
+       0x6800, 0xa086, 0x000f, 0x01c8, 0x8fff, 0x090c, 0x1519, 0x6820,
+       0xd0dc, 0x1198, 0x6800, 0xa086, 0x0004, 0x1198, 0x784c, 0xd0ac,
+       0x0180, 0x784c, 0xc0dc, 0xc0f4, 0x784e, 0x7850, 0xc0f4, 0xc0fc,
+@@ -4449,235 +4454,235 @@ unsigned short risc_code01[] = { 
+       0x00c0, 0x784c, 0xd0b4, 0x1130, 0xd0ac, 0x0db8, 0x784c, 0xd0f4,
+       0x1da0, 0x0c38, 0xd2ec, 0x1d88, 0x7024, 0xa306, 0x1118, 0x7020,
+       0xa406, 0x0d58, 0x7020, 0x6836, 0x7024, 0x683a, 0x2001, 0x0005,
+-      0x682e, 0x080c, 0xaf93, 0x080c, 0x7e94, 0x0010, 0x080c, 0x95dc,
++      0x682e, 0x080c, 0xafb3, 0x080c, 0x7ead, 0x0010, 0x080c, 0x95fc,
+       0x004e, 0x003e, 0x002e, 0x0005, 0x00e6, 0x00d6, 0x0026, 0x6034,
+-      0x2068, 0x6a1c, 0xa286, 0x0007, 0x0904, 0x99aa, 0xa286, 0x0002,
+-      0x0904, 0x99aa, 0xa286, 0x0000, 0x0904, 0x99aa, 0x6808, 0x6338,
+-      0xa306, 0x1904, 0x99aa, 0x2071, 0xcc8c, 0xa186, 0x0015, 0x05e0,
++      0x2068, 0x6a1c, 0xa286, 0x0007, 0x0904, 0x99ca, 0xa286, 0x0002,
++      0x0904, 0x99ca, 0xa286, 0x0000, 0x0904, 0x99ca, 0x6808, 0x6338,
++      0xa306, 0x1904, 0x99ca, 0x2071, 0xcc8c, 0xa186, 0x0015, 0x05e0,
+       0xa18e, 0x0016, 0x1190, 0x6030, 0xa084, 0x00ff, 0xa086, 0x0001,
+       0x1160, 0x700c, 0xa086, 0x2a00, 0x1140, 0x6034, 0xa080, 0x0008,
+       0x200c, 0xc1dd, 0xc1f5, 0x2102, 0x0438, 0x00c6, 0x6034, 0x2060,
+       0x6104, 0xa186, 0x004b, 0x01a0, 0xa186, 0x004c, 0x0188, 0xa186,
+       0x004d, 0x0170, 0xa186, 0x004e, 0x0158, 0xa186, 0x0052, 0x0140,
+-      0x6010, 0x2068, 0x080c, 0xac8a, 0x090c, 0x1519, 0x6853, 0x0003,
+-      0x6007, 0x0085, 0x6003, 0x000b, 0x601f, 0x0002, 0x080c, 0x7999,
+-      0x080c, 0x7e94, 0x00ce, 0x0030, 0x6034, 0x2070, 0x2001, 0xc8ff,
+-      0x2004, 0x703e, 0x080c, 0x95dc, 0x002e, 0x00de, 0x00ee, 0x0005,
++      0x6010, 0x2068, 0x080c, 0xacaa, 0x090c, 0x1519, 0x6853, 0x0003,
++      0x6007, 0x0085, 0x6003, 0x000b, 0x601f, 0x0002, 0x080c, 0x79b2,
++      0x080c, 0x7ead, 0x00ce, 0x0030, 0x6034, 0x2070, 0x2001, 0xc8ff,
++      0x2004, 0x703e, 0x080c, 0x95fc, 0x002e, 0x00de, 0x00ee, 0x0005,
+       0x00d6, 0x20a9, 0x000e, 0x2e98, 0x6010, 0x20a0, 0x53a3, 0xa1b6,
+       0x0015, 0x1558, 0x6018, 0x2068, 0x0156, 0x0036, 0x0026, 0xae90,
+       0x000c, 0xa290, 0x0004, 0x20a9, 0x0004, 0xad98, 0x000a, 0x080c,
+-      0xa0fc, 0x002e, 0x003e, 0x015e, 0x11d8, 0x0156, 0x0036, 0x0026,
++      0xa11c, 0x002e, 0x003e, 0x015e, 0x11d8, 0x0156, 0x0036, 0x0026,
+       0xae90, 0x000c, 0xa290, 0x0008, 0x20a9, 0x0004, 0xad98, 0x0006,
+-      0x080c, 0xa0fc, 0x002e, 0x003e, 0x015e, 0x1150, 0x7038, 0x680a,
+-      0x703c, 0x680e, 0x6800, 0xc08d, 0x6802, 0x00de, 0x0804, 0x9760,
+-      0x080c, 0x2e46, 0x00c6, 0x080c, 0x9586, 0x2f00, 0x601a, 0x6013,
++      0x080c, 0xa11c, 0x002e, 0x003e, 0x015e, 0x1150, 0x7038, 0x680a,
++      0x703c, 0x680e, 0x6800, 0xc08d, 0x6802, 0x00de, 0x0804, 0x9780,
++      0x080c, 0x2e46, 0x00c6, 0x080c, 0x95a6, 0x2f00, 0x601a, 0x6013,
+       0x0000, 0x601f, 0x0001, 0x6007, 0x0001, 0x6003, 0x0001, 0x2001,
+-      0x0007, 0x080c, 0x5291, 0x080c, 0x52be, 0x080c, 0x79df, 0x080c,
+-      0x7e94, 0x00ce, 0x0c10, 0x2100, 0xa1b2, 0x0080, 0x1a0c, 0x1519,
+-      0xa1b2, 0x0040, 0x1a04, 0x9a67, 0x0002, 0x9a5b, 0x9a4f, 0x9a5b,
+-      0x9a5b, 0x9a5b, 0x9a5b, 0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d,
+-      0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d,
+-      0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d,
+-      0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d, 0x9a5b, 0x9a4d, 0x9a5b, 0x9a5b,
+-      0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d, 0x9a5b, 0x9a4d, 0x9a4d,
+-      0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d, 0x9a5b,
+-      0x9a5b, 0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d, 0x9a4d,
+-      0x9a4d, 0x9a4d, 0x9a5b, 0x9a4d, 0x9a4d, 0x080c, 0x1519, 0x6003,
+-      0x0001, 0x6106, 0x080c, 0x79df, 0x0126, 0x2091, 0x8000, 0x080c,
+-      0x7e94, 0x012e, 0x0005, 0x6003, 0x0001, 0x6106, 0x080c, 0x79df,
+-      0x0126, 0x2091, 0x8000, 0x080c, 0x7e94, 0x012e, 0x0005, 0x2600,
+-      0x0002, 0x9a5b, 0x9a5b, 0x9a6f, 0x9a5b, 0x9a5b, 0x9a6f, 0x080c,
++      0x0007, 0x080c, 0x52aa, 0x080c, 0x52d7, 0x080c, 0x79f8, 0x080c,
++      0x7ead, 0x00ce, 0x0c10, 0x2100, 0xa1b2, 0x0080, 0x1a0c, 0x1519,
++      0xa1b2, 0x0040, 0x1a04, 0x9a87, 0x0002, 0x9a7b, 0x9a6f, 0x9a7b,
++      0x9a7b, 0x9a7b, 0x9a7b, 0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d,
++      0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d,
++      0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d,
++      0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d, 0x9a7b, 0x9a6d, 0x9a7b, 0x9a7b,
++      0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d, 0x9a7b, 0x9a6d, 0x9a6d,
++      0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d, 0x9a7b,
++      0x9a7b, 0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d, 0x9a6d,
++      0x9a6d, 0x9a6d, 0x9a7b, 0x9a6d, 0x9a6d, 0x080c, 0x1519, 0x6003,
++      0x0001, 0x6106, 0x080c, 0x79f8, 0x0126, 0x2091, 0x8000, 0x080c,
++      0x7ead, 0x012e, 0x0005, 0x6003, 0x0001, 0x6106, 0x080c, 0x79f8,
++      0x0126, 0x2091, 0x8000, 0x080c, 0x7ead, 0x012e, 0x0005, 0x2600,
++      0x0002, 0x9a7b, 0x9a7b, 0x9a8f, 0x9a7b, 0x9a7b, 0x9a8f, 0x080c,
+       0x1519, 0x6004, 0xa0b2, 0x0080, 0x1a0c, 0x1519, 0xa1b6, 0x0013,
+-      0x0904, 0x9b21, 0xa1b6, 0x0027, 0x1904, 0x9ae7, 0x080c, 0x7db1,
+-      0x6004, 0x080c, 0xae77, 0x0190, 0x080c, 0xae88, 0x0904, 0x9ae1,
+-      0xa08e, 0x0021, 0x0904, 0x9ae4, 0xa08e, 0x0022, 0x0904, 0x9ae1,
+-      0xa08e, 0x003d, 0x0904, 0x9ae4, 0x0804, 0x9ada, 0x080c, 0x2e6c,
+-      0x2001, 0x0007, 0x080c, 0x5291, 0x6018, 0xa080, 0x0028, 0x200c,
+-      0x080c, 0x9c02, 0xa186, 0x007e, 0x1148, 0x2001, 0xc635, 0x2014,
+-      0xc285, 0x080c, 0x5f22, 0x1108, 0xc2ad, 0x2202, 0x0016, 0x0026,
+-      0x0036, 0x2110, 0x0026, 0x2019, 0x0028, 0x080c, 0x912b, 0x002e,
+-      0x080c, 0xc4d7, 0x003e, 0x002e, 0x001e, 0x0016, 0x0026, 0x0036,
+-      0x2110, 0x2019, 0x0028, 0x080c, 0x7b16, 0x0076, 0x2039, 0x0000,
+-      0x080c, 0x7a0e, 0x00c6, 0x6018, 0xa065, 0x0110, 0x080c, 0x553e,
+-      0x00ce, 0x2c08, 0x080c, 0xbeea, 0x007e, 0x003e, 0x002e, 0x001e,
+-      0x080c, 0x5300, 0x080c, 0xb04f, 0x080c, 0x95dc, 0x080c, 0x7e94,
+-      0x0005, 0x080c, 0x9c02, 0x0cb0, 0x080c, 0x9c30, 0x0c98, 0xa186,
+-      0x0014, 0x1db0, 0x080c, 0x7db1, 0x080c, 0x2e46, 0x080c, 0xae77,
++      0x0904, 0x9b41, 0xa1b6, 0x0027, 0x1904, 0x9b07, 0x080c, 0x7dca,
++      0x6004, 0x080c, 0xae97, 0x0190, 0x080c, 0xaea8, 0x0904, 0x9b01,
++      0xa08e, 0x0021, 0x0904, 0x9b04, 0xa08e, 0x0022, 0x0904, 0x9b01,
++      0xa08e, 0x003d, 0x0904, 0x9b04, 0x0804, 0x9afa, 0x080c, 0x2e6c,
++      0x2001, 0x0007, 0x080c, 0x52aa, 0x6018, 0xa080, 0x0028, 0x200c,
++      0x080c, 0x9c22, 0xa186, 0x007e, 0x1148, 0x2001, 0xc635, 0x2014,
++      0xc285, 0x080c, 0x5f3b, 0x1108, 0xc2ad, 0x2202, 0x0016, 0x0026,
++      0x0036, 0x2110, 0x0026, 0x2019, 0x0028, 0x080c, 0x914b, 0x002e,
++      0x080c, 0xc4fd, 0x003e, 0x002e, 0x001e, 0x0016, 0x0026, 0x0036,
++      0x2110, 0x2019, 0x0028, 0x080c, 0x7b2f, 0x0076, 0x2039, 0x0000,
++      0x080c, 0x7a27, 0x00c6, 0x6018, 0xa065, 0x0110, 0x080c, 0x5557,
++      0x00ce, 0x2c08, 0x080c, 0xbf10, 0x007e, 0x003e, 0x002e, 0x001e,
++      0x080c, 0x5319, 0x080c, 0xb06f, 0x080c, 0x95fc, 0x080c, 0x7ead,
++      0x0005, 0x080c, 0x9c22, 0x0cb0, 0x080c, 0x9c50, 0x0c98, 0xa186,
++      0x0014, 0x1db0, 0x080c, 0x7dca, 0x080c, 0x2e46, 0x080c, 0xae97,
+       0x1188, 0x080c, 0x2e6c, 0x6018, 0xa080, 0x0028, 0x200c, 0x080c,
+-      0x9c02, 0xa186, 0x007e, 0x1128, 0x2001, 0xc635, 0x200c, 0xc185,
+-      0x2102, 0x08c0, 0x080c, 0xae88, 0x1118, 0x080c, 0x9c02, 0x0890,
++      0x9c22, 0xa186, 0x007e, 0x1128, 0x2001, 0xc635, 0x200c, 0xc185,
++      0x2102, 0x08c0, 0x080c, 0xaea8, 0x1118, 0x080c, 0x9c22, 0x0890,
+       0x6004, 0xa08e, 0x0032, 0x1158, 0x00e6, 0x00f6, 0x2071, 0xc6a2,
+       0x2079, 0x0000, 0x080c, 0x3179, 0x00fe, 0x00ee, 0x0818, 0x6004,
+-      0xa08e, 0x0021, 0x0d50, 0xa08e, 0x0022, 0x090c, 0x9c02, 0x0804,
+-      0x9ada, 0xa0b2, 0x0040, 0x1a04, 0x9be4, 0x2008, 0x0002, 0x9b69,
+-      0x9b6a, 0x9b6d, 0x9b70, 0x9b73, 0x9b76, 0x9b67, 0x9b67, 0x9b67,
+-      0x9b67, 0x9b67, 0x9b67, 0x9b67, 0x9b67, 0x9b67, 0x9b67, 0x9b67,
+-      0x9b67, 0x9b67, 0x9b67, 0x9b67, 0x9b67, 0x9b67, 0x9b67, 0x9b67,
+-      0x9b67, 0x9b67, 0x9b67, 0x9b67, 0x9b67, 0x9b79, 0x9b88, 0x9b67,
+-      0x9b8a, 0x9b88, 0x9b67, 0x9b67, 0x9b67, 0x9b67, 0x9b67, 0x9b88,
+-      0x9b88, 0x9b67, 0x9b67, 0x9b67, 0x9b67, 0x9b67, 0x9b67, 0x9b67,
+-      0x9b67, 0x9bc4, 0x9b88, 0x9b67, 0x9b84, 0x9b67, 0x9b67, 0x9b67,
+-      0x9b85, 0x9b67, 0x9b67, 0x9b67, 0x9b88, 0x9bbb, 0x9b67, 0x080c,
++      0xa08e, 0x0021, 0x0d50, 0xa08e, 0x0022, 0x090c, 0x9c22, 0x0804,
++      0x9afa, 0xa0b2, 0x0040, 0x1a04, 0x9c04, 0x2008, 0x0002, 0x9b89,
++      0x9b8a, 0x9b8d, 0x9b90, 0x9b93, 0x9b96, 0x9b87, 0x9b87, 0x9b87,
++      0x9b87, 0x9b87, 0x9b87, 0x9b87, 0x9b87, 0x9b87, 0x9b87, 0x9b87,
++      0x9b87, 0x9b87, 0x9b87, 0x9b87, 0x9b87, 0x9b87, 0x9b87, 0x9b87,
++      0x9b87, 0x9b87, 0x9b87, 0x9b87, 0x9b87, 0x9b99, 0x9ba8, 0x9b87,
++      0x9baa, 0x9ba8, 0x9b87, 0x9b87, 0x9b87, 0x9b87, 0x9b87, 0x9ba8,
++      0x9ba8, 0x9b87, 0x9b87, 0x9b87, 0x9b87, 0x9b87, 0x9b87, 0x9b87,
++      0x9b87, 0x9be4, 0x9ba8, 0x9b87, 0x9ba4, 0x9b87, 0x9b87, 0x9b87,
++      0x9ba5, 0x9b87, 0x9b87, 0x9b87, 0x9ba8, 0x9bdb, 0x9b87, 0x080c,
+       0x1519, 0x00f0, 0x2001, 0x000b, 0x0460, 0x2001, 0x0003, 0x0448,
+       0x2001, 0x0005, 0x0430, 0x2001, 0x0001, 0x0418, 0x2001, 0x0009,
+-      0x0400, 0x080c, 0x7db1, 0x6003, 0x0005, 0x2001, 0xc8ff, 0x2004,
+-      0x603e, 0x080c, 0x7e94, 0x00a0, 0x0018, 0x0010, 0x080c, 0x5291,
+-      0x0804, 0x9bd5, 0x080c, 0x7db1, 0x2001, 0xc8fd, 0x2004, 0x6016,
+-      0x2001, 0xc8ff, 0x2004, 0x603e, 0x6003, 0x0004, 0x080c, 0x7e94,
+-      0x0005, 0x080c, 0x5291, 0x080c, 0x7db1, 0x6003, 0x0002, 0x2001,
++      0x0400, 0x080c, 0x7dca, 0x6003, 0x0005, 0x2001, 0xc8ff, 0x2004,
++      0x603e, 0x080c, 0x7ead, 0x00a0, 0x0018, 0x0010, 0x080c, 0x52aa,
++      0x0804, 0x9bf5, 0x080c, 0x7dca, 0x2001, 0xc8fd, 0x2004, 0x6016,
++      0x2001, 0xc8ff, 0x2004, 0x603e, 0x6003, 0x0004, 0x080c, 0x7ead,
++      0x0005, 0x080c, 0x52aa, 0x080c, 0x7dca, 0x6003, 0x0002, 0x2001,
+       0xc8ff, 0x2004, 0x603e, 0x0036, 0x2019, 0xc65d, 0x2304, 0xa084,
+       0xff00, 0x1120, 0x2001, 0xc8fd, 0x201c, 0x0040, 0x8007, 0xa09a,
+       0x0004, 0x0ec0, 0x8003, 0x801b, 0x831b, 0xa318, 0x6316, 0x003e,
+-      0x080c, 0x7e94, 0x08e8, 0x080c, 0x7db1, 0x080c, 0xb04f, 0x080c,
+-      0x95dc, 0x080c, 0x7e94, 0x08a0, 0x00e6, 0x00f6, 0x2071, 0xc6a2,
+-      0x2079, 0x0000, 0x080c, 0x3179, 0x00fe, 0x00ee, 0x080c, 0x7db1,
+-      0x080c, 0x95dc, 0x080c, 0x7e94, 0x0818, 0x080c, 0x7db1, 0x2001,
++      0x080c, 0x7ead, 0x08e8, 0x080c, 0x7dca, 0x080c, 0xb06f, 0x080c,
++      0x95fc, 0x080c, 0x7ead, 0x08a0, 0x00e6, 0x00f6, 0x2071, 0xc6a2,
++      0x2079, 0x0000, 0x080c, 0x3179, 0x00fe, 0x00ee, 0x080c, 0x7dca,
++      0x080c, 0x95fc, 0x080c, 0x7ead, 0x0818, 0x080c, 0x7dca, 0x2001,
+       0xc8ff, 0x2004, 0x603e, 0x6003, 0x0002, 0x2001, 0xc8fd, 0x2004,
+-      0x6016, 0x080c, 0x7e94, 0x0005, 0x2600, 0x2008, 0x0002, 0x9bef,
+-      0x9bd5, 0x9bed, 0x9bd5, 0x9bd5, 0x9bed, 0x080c, 0x1519, 0x080c,
+-      0x7db1, 0x00d6, 0x6010, 0x2068, 0x080c, 0x768f, 0x1118, 0x080c,
+-      0x1619, 0x0010, 0x080c, 0x580a, 0x00de, 0x080c, 0x95dc, 0x080c,
+-      0x7e94, 0x0005, 0x00e6, 0x0026, 0x0016, 0x080c, 0xac8a, 0x0508,
++      0x6016, 0x080c, 0x7ead, 0x0005, 0x2600, 0x2008, 0x0002, 0x9c0f,
++      0x9bf5, 0x9c0d, 0x9bf5, 0x9bf5, 0x9c0d, 0x080c, 0x1519, 0x080c,
++      0x7dca, 0x00d6, 0x6010, 0x2068, 0x080c, 0x76a8, 0x1118, 0x080c,
++      0x1619, 0x0010, 0x080c, 0x5823, 0x00de, 0x080c, 0x95fc, 0x080c,
++      0x7ead, 0x0005, 0x00e6, 0x0026, 0x0016, 0x080c, 0xacaa, 0x0508,
+       0x6010, 0x2070, 0x7034, 0xa086, 0x0139, 0x1148, 0x2001, 0x0030,
+-      0x2009, 0x0000, 0x2011, 0x4005, 0x080c, 0xb106, 0x0090, 0x7038,
++      0x2009, 0x0000, 0x2011, 0x4005, 0x080c, 0xb126, 0x0090, 0x7038,
+       0xd0fc, 0x0178, 0x7007, 0x0000, 0x0016, 0x6004, 0xa08e, 0x0021,
+       0x0160, 0xa08e, 0x003d, 0x0148, 0x001e, 0x7037, 0x0103, 0x7033,
+       0x0100, 0x001e, 0x002e, 0x00ee, 0x0005, 0x001e, 0x0009, 0x0cc8,
+       0x00e6, 0xacf0, 0x0004, 0x2e74, 0x7000, 0x2070, 0x7037, 0x0103,
+       0x7023, 0x8001, 0x00ee, 0x0005, 0x00d6, 0x6618, 0x2668, 0x6804,
+       0xa084, 0x00ff, 0x00de, 0xa0b2, 0x000c, 0x1a0c, 0x1519, 0x6604,
+-      0xa6b6, 0x0043, 0x1120, 0x080c, 0xb0c2, 0x0804, 0x9ca9, 0x6604,
+-      0xa6b6, 0x0033, 0x1120, 0x080c, 0xb072, 0x0804, 0x9ca9, 0x6604,
+-      0xa6b6, 0x0028, 0x1120, 0x080c, 0xaeb8, 0x0804, 0x9ca9, 0x6604,
+-      0xa6b6, 0x0029, 0x1120, 0x080c, 0xaecf, 0x0804, 0x9ca9, 0x6604,
+-      0xa6b6, 0x001f, 0x1118, 0x080c, 0x9746, 0x04d8, 0x6604, 0xa6b6,
+-      0x0000, 0x1118, 0x080c, 0x99b0, 0x04a0, 0x6604, 0xa6b6, 0x0022,
+-      0x1118, 0x080c, 0x976e, 0x0468, 0x6604, 0xa6b6, 0x0035, 0x1118,
+-      0x080c, 0x97eb, 0x0430, 0x6604, 0xa6b6, 0x0039, 0x1118, 0x080c,
+-      0x994c, 0x00f8, 0x6604, 0xa6b6, 0x003d, 0x1118, 0x080c, 0x9788,
+-      0x00c0, 0x6604, 0xa6b6, 0x0044, 0x1118, 0x080c, 0x97a8, 0x0088,
+-      0x6604, 0xa6b6, 0x0041, 0x1118, 0x080c, 0x97d5, 0x0050, 0xa1b6,
++      0xa6b6, 0x0043, 0x1120, 0x080c, 0xb0e2, 0x0804, 0x9cc9, 0x6604,
++      0xa6b6, 0x0033, 0x1120, 0x080c, 0xb092, 0x0804, 0x9cc9, 0x6604,
++      0xa6b6, 0x0028, 0x1120, 0x080c, 0xaed8, 0x0804, 0x9cc9, 0x6604,
++      0xa6b6, 0x0029, 0x1120, 0x080c, 0xaeef, 0x0804, 0x9cc9, 0x6604,
++      0xa6b6, 0x001f, 0x1118, 0x080c, 0x9766, 0x04d8, 0x6604, 0xa6b6,
++      0x0000, 0x1118, 0x080c, 0x99d0, 0x04a0, 0x6604, 0xa6b6, 0x0022,
++      0x1118, 0x080c, 0x978e, 0x0468, 0x6604, 0xa6b6, 0x0035, 0x1118,
++      0x080c, 0x980b, 0x0430, 0x6604, 0xa6b6, 0x0039, 0x1118, 0x080c,
++      0x996c, 0x00f8, 0x6604, 0xa6b6, 0x003d, 0x1118, 0x080c, 0x97a8,
++      0x00c0, 0x6604, 0xa6b6, 0x0044, 0x1118, 0x080c, 0x97c8, 0x0088,
++      0x6604, 0xa6b6, 0x0041, 0x1118, 0x080c, 0x97f5, 0x0050, 0xa1b6,
+       0x0015, 0x1110, 0x0053, 0x0028, 0xa1b6, 0x0016, 0x1118, 0x0804,
+-      0x9e8c, 0x0005, 0x080c, 0x9623, 0x0ce0, 0x9cd3, 0x9cd6, 0x9cd3,
+-      0x9d1a, 0x9cd3, 0x9e13, 0x9e9a, 0x9cd3, 0x9cd3, 0x9e64, 0x9cd3,
+-      0x9e7a, 0xa1b6, 0x0048, 0x0140, 0x20e1, 0x0005, 0x3d18, 0x3e20,
++      0x9eac, 0x0005, 0x080c, 0x9643, 0x0ce0, 0x9cf3, 0x9cf6, 0x9cf3,
++      0x9d3a, 0x9cf3, 0x9e33, 0x9eba, 0x9cf3, 0x9cf3, 0x9e84, 0x9cf3,
++      0x9e9a, 0xa1b6, 0x0048, 0x0140, 0x20e1, 0x0005, 0x3d18, 0x3e20,
+       0x2c10, 0x080c, 0x1870, 0x0005, 0x00e6, 0xacf0, 0x0004, 0x2e74,
+-      0x7000, 0x2070, 0x7037, 0x0103, 0x00ee, 0x080c, 0x95dc, 0x0005,
+-      0x080c, 0x95dc, 0x0005, 0xe000, 0xe000, 0x0005, 0x00e6, 0x2071,
+-      0xc600, 0x7084, 0xa086, 0x0074, 0x1530, 0x080c, 0xbec1, 0x11b0,
++      0x7000, 0x2070, 0x7037, 0x0103, 0x00ee, 0x080c, 0x95fc, 0x0005,
++      0x080c, 0x95fc, 0x0005, 0xe000, 0xe000, 0x0005, 0x00e6, 0x2071,
++      0xc600, 0x7084, 0xa086, 0x0074, 0x1530, 0x080c, 0xbee7, 0x11b0,
+       0x00d6, 0x6018, 0x2068, 0x7030, 0xd08c, 0x0128, 0x6800, 0xd0bc,
+       0x0110, 0xc0c5, 0x6802, 0x00e9, 0x00de, 0x2001, 0x0006, 0x080c,
+-      0x5291, 0x080c, 0x2e6c, 0x080c, 0x95dc, 0x0088, 0x2001, 0x000a,
+-      0x080c, 0x5291, 0x080c, 0x2e6c, 0x6003, 0x0001, 0x6007, 0x0001,
+-      0x080c, 0x79df, 0x0020, 0x2001, 0x0001, 0x080c, 0x9dee, 0x00ee,
+-      0x0005, 0x6800, 0xd084, 0x0168, 0x2001, 0x0000, 0x080c, 0x527f,
++      0x52aa, 0x080c, 0x2e6c, 0x080c, 0x95fc, 0x0088, 0x2001, 0x000a,
++      0x080c, 0x52aa, 0x080c, 0x2e6c, 0x6003, 0x0001, 0x6007, 0x0001,
++      0x080c, 0x79f8, 0x0020, 0x2001, 0x0001, 0x080c, 0x9e0e, 0x00ee,
++      0x0005, 0x6800, 0xd084, 0x0168, 0x2001, 0x0000, 0x080c, 0x5298,
+       0x2069, 0xc652, 0x6804, 0xd0a4, 0x0120, 0x2001, 0x0006, 0x080c,
+-      0x52be, 0x0005, 0x00d6, 0x2011, 0xc621, 0x2204, 0xa086, 0x0074,
+-      0x1904, 0x9de9, 0x6018, 0x2068, 0x6aa0, 0xa286, 0x007e, 0x1120,
+-      0x080c, 0x9fbc, 0x0804, 0x9d88, 0x080c, 0x9fb2, 0x6018, 0x2068,
++      0x52d7, 0x0005, 0x00d6, 0x2011, 0xc621, 0x2204, 0xa086, 0x0074,
++      0x1904, 0x9e09, 0x6018, 0x2068, 0x6aa0, 0xa286, 0x007e, 0x1120,
++      0x080c, 0x9fdc, 0x0804, 0x9da8, 0x080c, 0x9fd2, 0x6018, 0x2068,
+       0xa080, 0x0028, 0x2014, 0xa286, 0x0080, 0x11c0, 0x6813, 0x00ff,
+       0x6817, 0xfffc, 0x6010, 0xa005, 0x0138, 0x2068, 0x6807, 0x0000,
+-      0x6837, 0x0103, 0x6833, 0x0200, 0x2001, 0x0006, 0x080c, 0x5291,
+-      0x080c, 0x2e6c, 0x080c, 0x95dc, 0x0804, 0x9dec, 0x00e6, 0x2071,
++      0x6837, 0x0103, 0x6833, 0x0200, 0x2001, 0x0006, 0x080c, 0x52aa,
++      0x080c, 0x2e6c, 0x080c, 0x95fc, 0x0804, 0x9e0c, 0x00e6, 0x2071,
+       0xc635, 0x2e04, 0xd09c, 0x0188, 0x2071, 0xcc80, 0x7108, 0x720c,
+       0xa18c, 0x00ff, 0x1118, 0xa284, 0xff00, 0x0138, 0x6018, 0x2070,
+       0x70a0, 0xd0bc, 0x1110, 0x7112, 0x7216, 0x00ee, 0x6010, 0xa005,
+       0x0198, 0x2068, 0x6838, 0xd0f4, 0x0178, 0x6834, 0xa084, 0x00ff,
+       0xa086, 0x0039, 0x1958, 0x2001, 0x0000, 0x2009, 0x0000, 0x2011,
+-      0x4000, 0x080c, 0xb106, 0x0840, 0x2001, 0x0004, 0x080c, 0x5291,
+-      0x6003, 0x0001, 0x6007, 0x0003, 0x080c, 0x79df, 0x0804, 0x9dec,
+-      0x685c, 0xd0e4, 0x01d8, 0x080c, 0xb002, 0x080c, 0x5f22, 0x0118,
+-      0xd0dc, 0x1904, 0x9d44, 0x2011, 0xc635, 0x2204, 0xc0ad, 0x2012,
++      0x4000, 0x080c, 0xb126, 0x0840, 0x2001, 0x0004, 0x080c, 0x52aa,
++      0x6003, 0x0001, 0x6007, 0x0003, 0x080c, 0x79f8, 0x0804, 0x9e0c,
++      0x685c, 0xd0e4, 0x01d8, 0x080c, 0xb022, 0x080c, 0x5f3b, 0x0118,
++      0xd0dc, 0x1904, 0x9d64, 0x2011, 0xc635, 0x2204, 0xc0ad, 0x2012,
+       0x2001, 0xc8d6, 0x2004, 0x00f6, 0x2079, 0x0100, 0x78e3, 0x0000,
+-      0x080c, 0x2a1c, 0x78e2, 0x00fe, 0x0804, 0x9d44, 0x080c, 0xb038,
+-      0x2011, 0xc635, 0x2204, 0xc0a5, 0x2012, 0x0006, 0x080c, 0xc016,
+-      0x000e, 0x1904, 0x9d44, 0xc0b5, 0x2012, 0x2001, 0x0006, 0x080c,
+-      0x5291, 0x2001, 0x0000, 0x080c, 0x527f, 0x00c6, 0x2009, 0x00ef,
++      0x080c, 0x2a1c, 0x78e2, 0x00fe, 0x0804, 0x9d64, 0x080c, 0xb058,
++      0x2011, 0xc635, 0x2204, 0xc0a5, 0x2012, 0x0006, 0x080c, 0xc03c,
++      0x000e, 0x1904, 0x9d64, 0xc0b5, 0x2012, 0x2001, 0x0006, 0x080c,
++      0x52aa, 0x2001, 0x0000, 0x080c, 0x5298, 0x00c6, 0x2009, 0x00ef,
+       0x00f6, 0x2079, 0x0100, 0x79ea, 0x7932, 0x7936, 0x00fe, 0x080c,
+       0x29f1, 0x00f6, 0x2079, 0xc600, 0x7976, 0x2100, 0x2009, 0x0000,
+-      0x080c, 0x29c7, 0x7952, 0x00fe, 0x8108, 0x080c, 0x52e1, 0x2c00,
+-      0x00ce, 0x1904, 0x9d44, 0x601a, 0x2001, 0x0002, 0x080c, 0x5291,
+-      0x601f, 0x0001, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x79df,
++      0x080c, 0x29c7, 0x7952, 0x00fe, 0x8108, 0x080c, 0x52fa, 0x2c00,
++      0x00ce, 0x1904, 0x9d64, 0x601a, 0x2001, 0x0002, 0x080c, 0x52aa,
++      0x601f, 0x0001, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x79f8,
+       0x0018, 0x2001, 0x0001, 0x0011, 0x00de, 0x0005, 0x0066, 0x2030,
+-      0xa005, 0x0170, 0x2001, 0x0007, 0x080c, 0x5291, 0x2001, 0xc600,
+-      0x2004, 0xa086, 0x0003, 0x1120, 0x2001, 0x0007, 0x080c, 0x52be,
++      0xa005, 0x0170, 0x2001, 0x0007, 0x080c, 0x52aa, 0x2001, 0xc600,
++      0x2004, 0xa086, 0x0003, 0x1120, 0x2001, 0x0007, 0x080c, 0x52d7,
+       0x2600, 0xa005, 0x1150, 0x6010, 0xa080, 0x000e, 0x2004, 0xd0fc,
+-      0x1120, 0x2011, 0x8014, 0x080c, 0x407d, 0x080c, 0x2e6c, 0x080c,
+-      0x95dc, 0x006e, 0x0005, 0x00e6, 0x0026, 0x0016, 0x2071, 0xc600,
++      0x1120, 0x2011, 0x8014, 0x080c, 0x4096, 0x080c, 0x2e6c, 0x080c,
++      0x95fc, 0x006e, 0x0005, 0x00e6, 0x0026, 0x0016, 0x2071, 0xc600,
+       0x7084, 0xa086, 0x0014, 0x15f0, 0x7000, 0xa086, 0x0003, 0x1128,
+-      0x6010, 0xa005, 0x1110, 0x080c, 0x40ef, 0x00d6, 0x6018, 0x2068,
+-      0x080c, 0x53df, 0x080c, 0x9d09, 0x00de, 0x080c, 0xa06b, 0x1550,
++      0x6010, 0xa005, 0x1110, 0x080c, 0x4108, 0x00d6, 0x6018, 0x2068,
++      0x080c, 0x53f8, 0x080c, 0x9d29, 0x00de, 0x080c, 0xa08b, 0x1550,
+       0x00d6, 0x6018, 0x2068, 0x6890, 0x00de, 0xa005, 0x0518, 0x2001,
+-      0x0006, 0x080c, 0x5291, 0x00e6, 0x6010, 0xa075, 0x01a8, 0x7034,
++      0x0006, 0x080c, 0x52aa, 0x00e6, 0x6010, 0xa075, 0x01a8, 0x7034,
+       0xa084, 0x00ff, 0xa086, 0x0039, 0x1148, 0x2001, 0x0000, 0x2009,
+-      0x0000, 0x2011, 0x4000, 0x080c, 0xb106, 0x0030, 0x7007, 0x0000,
++      0x0000, 0x2011, 0x4000, 0x080c, 0xb126, 0x0030, 0x7007, 0x0000,
+       0x7037, 0x0103, 0x7033, 0x0200, 0x00ee, 0x080c, 0x2e6c, 0x080c,
+-      0x95dc, 0x0030, 0x080c, 0x9c02, 0x2001, 0x0000, 0x080c, 0x9dee,
++      0x95fc, 0x0030, 0x080c, 0x9c22, 0x2001, 0x0000, 0x080c, 0x9e0e,
+       0x001e, 0x002e, 0x00ee, 0x0005, 0x2011, 0xc621, 0x2204, 0xa086,
+-      0x0014, 0x1158, 0x2001, 0x0002, 0x080c, 0x5291, 0x6003, 0x0001,
+-      0x6007, 0x0001, 0x080c, 0x79df, 0x0020, 0x2001, 0x0001, 0x080c,
+-      0x9dee, 0x0005, 0x2011, 0xc621, 0x2204, 0xa086, 0x0004, 0x1138,
+-      0x2001, 0x0007, 0x080c, 0x5291, 0x080c, 0x95dc, 0x0020, 0x2001,
+-      0x0001, 0x080c, 0x9dee, 0x0005, 0x000b, 0x0005, 0x9cd3, 0x9ea5,
+-      0x9cd3, 0x9edb, 0x9cd3, 0x9f68, 0x9e9a, 0x9cd0, 0x9cd3, 0x9f7d,
+-      0x9cd3, 0x9f8f, 0x6604, 0xa686, 0x0003, 0x0904, 0x9e13, 0xa6b6,
+-      0x001e, 0x1110, 0x080c, 0x95dc, 0x0005, 0x00d6, 0x00c6, 0x080c,
+-      0x9fa1, 0x1178, 0x2001, 0x0000, 0x080c, 0x527f, 0x2001, 0x0002,
+-      0x080c, 0x5291, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x79df,
++      0x0014, 0x1158, 0x2001, 0x0002, 0x080c, 0x52aa, 0x6003, 0x0001,
++      0x6007, 0x0001, 0x080c, 0x79f8, 0x0020, 0x2001, 0x0001, 0x080c,
++      0x9e0e, 0x0005, 0x2011, 0xc621, 0x2204, 0xa086, 0x0004, 0x1138,
++      0x2001, 0x0007, 0x080c, 0x52aa, 0x080c, 0x95fc, 0x0020, 0x2001,
++      0x0001, 0x080c, 0x9e0e, 0x0005, 0x000b, 0x0005, 0x9cf3, 0x9ec5,
++      0x9cf3, 0x9efb, 0x9cf3, 0x9f88, 0x9eba, 0x9cf0, 0x9cf3, 0x9f9d,
++      0x9cf3, 0x9faf, 0x6604, 0xa686, 0x0003, 0x0904, 0x9e33, 0xa6b6,
++      0x001e, 0x1110, 0x080c, 0x95fc, 0x0005, 0x00d6, 0x00c6, 0x080c,
++      0x9fc1, 0x1178, 0x2001, 0x0000, 0x080c, 0x5298, 0x2001, 0x0002,
++      0x080c, 0x52aa, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x79f8,
+       0x00f8, 0x2009, 0xcc8e, 0x2104, 0xa086, 0x0009, 0x1160, 0x6018,
+       0x2068, 0x6840, 0xa084, 0x00ff, 0xa005, 0x0170, 0x8001, 0x6842,
+       0x6017, 0x000a, 0x0068, 0x2009, 0xcc8f, 0x2104, 0xa084, 0xff00,
+-      0xa086, 0x1900, 0x1108, 0x08d0, 0x2001, 0x0001, 0x080c, 0x9dee,
+-      0x00ce, 0x00de, 0x0005, 0x0026, 0x2011, 0x0000, 0x080c, 0x9faf,
++      0xa086, 0x1900, 0x1108, 0x08d0, 0x2001, 0x0001, 0x080c, 0x9e0e,
++      0x00ce, 0x00de, 0x0005, 0x0026, 0x2011, 0x0000, 0x080c, 0x9fcf,
+       0x00d6, 0x2069, 0xc8e5, 0x2d04, 0xa005, 0x0168, 0x6018, 0x2068,
+       0x68a0, 0xa086, 0x007e, 0x1138, 0x2069, 0xc61d, 0x2d04, 0x8000,
+       0x206a, 0x00de, 0x0010, 0x00de, 0x0078, 0x2001, 0x0000, 0x080c,
+-      0x527f, 0x2001, 0x0002, 0x080c, 0x5291, 0x6003, 0x0001, 0x6007,
+-      0x0002, 0x080c, 0x79df, 0x0490, 0x00d6, 0x6010, 0x2068, 0x080c,
+-      0xac8a, 0x00de, 0x0108, 0x6a34, 0x080c, 0x9c02, 0x2009, 0xcc8e,
++      0x5298, 0x2001, 0x0002, 0x080c, 0x52aa, 0x6003, 0x0001, 0x6007,
++      0x0002, 0x080c, 0x79f8, 0x0490, 0x00d6, 0x6010, 0x2068, 0x080c,
++      0xacaa, 0x00de, 0x0108, 0x6a34, 0x080c, 0x9c22, 0x2009, 0xcc8e,
+       0x2134, 0xa6b4, 0x00ff, 0xa686, 0x0005, 0x0510, 0xa686, 0x000b,
+       0x01c8, 0x2009, 0xcc8f, 0x2104, 0xa084, 0xff00, 0x1118, 0xa686,
+       0x0009, 0x01b0, 0xa086, 0x1900, 0x1168, 0xa686, 0x0009, 0x0180,
+-      0x2001, 0x0004, 0x080c, 0x5291, 0x2001, 0x0028, 0x6016, 0x6007,
+-      0x004b, 0x0020, 0x2001, 0x0001, 0x080c, 0x9dee, 0x002e, 0x0005,
+-      0x00d6, 0xa286, 0x0139, 0x0160, 0x6010, 0x2068, 0x080c, 0xac8a,
++      0x2001, 0x0004, 0x080c, 0x52aa, 0x2001, 0x0028, 0x6016, 0x6007,
++      0x004b, 0x0020, 0x2001, 0x0001, 0x080c, 0x9e0e, 0x002e, 0x0005,
++      0x00d6, 0xa286, 0x0139, 0x0160, 0x6010, 0x2068, 0x080c, 0xacaa,
+       0x0148, 0x6834, 0xa086, 0x0139, 0x0118, 0x6838, 0xd0fc, 0x0110,
+       0x00de, 0x0c40, 0x6018, 0x2068, 0x6840, 0xa084, 0x00ff, 0xa005,
+       0x0140, 0x8001, 0x6842, 0x6017, 0x000a, 0x6007, 0x0016, 0x00de,
+       0x08e8, 0x68a0, 0xa086, 0x007e, 0x1138, 0x00e6, 0x2071, 0xc600,
+-      0x080c, 0x4f02, 0x00ee, 0x0010, 0x080c, 0x2e46, 0x00de, 0x0850,
+-      0x080c, 0x9faf, 0x1158, 0x2001, 0x0004, 0x080c, 0x5291, 0x6003,
+-      0x0001, 0x6007, 0x0003, 0x080c, 0x79df, 0x0030, 0x080c, 0x9c02,
+-      0x2001, 0x0000, 0x080c, 0x9dee, 0x0005, 0x0489, 0x1158, 0x2001,
+-      0x0008, 0x080c, 0x5291, 0x6003, 0x0001, 0x6007, 0x0005, 0x080c,
+-      0x79df, 0x0020, 0x2001, 0x0001, 0x080c, 0x9dee, 0x0005, 0x00f9,
+-      0x1158, 0x2001, 0x000a, 0x080c, 0x5291, 0x6003, 0x0001, 0x6007,
+-      0x0001, 0x080c, 0x79df, 0x0020, 0x2001, 0x0001, 0x080c, 0x9dee,
++      0x080c, 0x4f1b, 0x00ee, 0x0010, 0x080c, 0x2e46, 0x00de, 0x0850,
++      0x080c, 0x9fcf, 0x1158, 0x2001, 0x0004, 0x080c, 0x52aa, 0x6003,
++      0x0001, 0x6007, 0x0003, 0x080c, 0x79f8, 0x0030, 0x080c, 0x9c22,
++      0x2001, 0x0000, 0x080c, 0x9e0e, 0x0005, 0x0489, 0x1158, 0x2001,
++      0x0008, 0x080c, 0x52aa, 0x6003, 0x0001, 0x6007, 0x0005, 0x080c,
++      0x79f8, 0x0020, 0x2001, 0x0001, 0x080c, 0x9e0e, 0x0005, 0x00f9,
++      0x1158, 0x2001, 0x000a, 0x080c, 0x52aa, 0x6003, 0x0001, 0x6007,
++      0x0001, 0x080c, 0x79f8, 0x0020, 0x2001, 0x0001, 0x080c, 0x9e0e,
+       0x0005, 0x2009, 0xcc8e, 0x2104, 0xa086, 0x0003, 0x1138, 0x2009,
+       0xcc8f, 0x2104, 0xa084, 0xff00, 0xa086, 0x2a00, 0x0005, 0xa085,
+       0x0001, 0x0005, 0x00c6, 0x0016, 0xac88, 0x0006, 0x2164, 0x080c,
+-      0x534c, 0x001e, 0x00ce, 0x0005, 0x00f6, 0x00e6, 0x00d6, 0x0036,
++      0x5365, 0x001e, 0x00ce, 0x0005, 0x00f6, 0x00e6, 0x00d6, 0x0036,
+       0x0016, 0x6018, 0x2068, 0x2071, 0xc635, 0x2e04, 0xa085, 0x0003,
+-      0x2072, 0x080c, 0xa040, 0x0560, 0x2009, 0xc635, 0x2104, 0xc0cd,
++      0x2072, 0x080c, 0xa060, 0x0560, 0x2009, 0xc635, 0x2104, 0xc0cd,
+       0x200a, 0x2001, 0xc653, 0x2004, 0xd0a4, 0x0158, 0xa006, 0x2020,
+-      0x2009, 0x002a, 0x080c, 0xc183, 0x2001, 0xc60c, 0x200c, 0xc195,
++      0x2009, 0x002a, 0x080c, 0xc1a9, 0x2001, 0xc60c, 0x200c, 0xc195,
+       0x2102, 0x2019, 0x002a, 0x2009, 0x0001, 0x080c, 0x2e19, 0x2071,
+       0xc600, 0x080c, 0x2c62, 0x00c6, 0x0156, 0x20a9, 0x0081, 0x2009,
+-      0x007f, 0x080c, 0x2f41, 0x8108, 0x1f04, 0x9ff1, 0x015e, 0x00ce,
+-      0x080c, 0x9fb2, 0x6813, 0x00ff, 0x6817, 0xfffe, 0x2071, 0xcc80,
++      0x007f, 0x080c, 0x2f41, 0x8108, 0x1f04, 0xa011, 0x015e, 0x00ce,
++      0x080c, 0x9fd2, 0x6813, 0x00ff, 0x6817, 0xfffe, 0x2071, 0xcc80,
+       0x2079, 0x0100, 0x2e04, 0xa084, 0x00ff, 0x2069, 0xc61c, 0x206a,
+       0x78e6, 0x0006, 0x8e70, 0x2e04, 0x2069, 0xc61d, 0x206a, 0x78ea,
+       0x7832, 0x7836, 0x2010, 0xa084, 0xff00, 0x001e, 0xa105, 0x2009,
+       0xc628, 0x200a, 0x2200, 0xa084, 0x00ff, 0x2008, 0x080c, 0x29f1,
+-      0x080c, 0x5f22, 0x0170, 0x2069, 0xcc8e, 0x2071, 0xc8f9, 0x6810,
++      0x080c, 0x5f3b, 0x0170, 0x2069, 0xcc8e, 0x2071, 0xc8f9, 0x6810,
+       0x2072, 0x6814, 0x7006, 0x6818, 0x700a, 0x681c, 0x700e, 0x080c,
+-      0xb002, 0x0040, 0x2001, 0x0006, 0x080c, 0x5291, 0x080c, 0x2e6c,
+-      0x080c, 0x95dc, 0x001e, 0x003e, 0x00de, 0x00ee, 0x00fe, 0x0005,
++      0xb022, 0x0040, 0x2001, 0x0006, 0x080c, 0x52aa, 0x080c, 0x2e6c,
++      0x080c, 0x95fc, 0x001e, 0x003e, 0x00de, 0x00ee, 0x00fe, 0x0005,
+       0x0026, 0x0036, 0x00e6, 0x0156, 0x2019, 0xc628, 0x231c, 0x83ff,
+       0x01e8, 0x2071, 0xcc80, 0x2e14, 0xa294, 0x00ff, 0x7004, 0xa084,
+       0xff00, 0xa205, 0xa306, 0x1190, 0x2011, 0xcc96, 0xad98, 0x000a,
+-      0x20a9, 0x0004, 0x080c, 0xa0fc, 0x1148, 0x2011, 0xcc9a, 0xad98,
+-      0x0006, 0x20a9, 0x0004, 0x080c, 0xa0fc, 0x1100, 0x015e, 0x00ee,
++      0x20a9, 0x0004, 0x080c, 0xa11c, 0x1148, 0x2011, 0xcc9a, 0xad98,
++      0x0006, 0x20a9, 0x0004, 0x080c, 0xa11c, 0x1100, 0x015e, 0x00ee,
+       0x003e, 0x002e, 0x0005, 0x00e6, 0x2071, 0xcc8c, 0x7004, 0xa086,
+       0x0014, 0x11a8, 0x7008, 0xa086, 0x0800, 0x1188, 0x700c, 0xd0ec,
+       0x0160, 0xa084, 0x0f00, 0xa086, 0x0100, 0x1138, 0x7024, 0xd0a4,
+@@ -4685,103 +4690,103 @@ unsigned short risc_code01[] = { 
+       0x0005, 0x00e6, 0x00d6, 0x00c6, 0x0076, 0x0056, 0x0046, 0x0026,
+       0x0006, 0x0126, 0x2091, 0x8000, 0x2029, 0xc930, 0x252c, 0x2021,
+       0xc936, 0x2424, 0x2061, 0xce00, 0x2071, 0xc600, 0x7248, 0x7068,
+-      0xa202, 0x16f0, 0x080c, 0xc1ab, 0x05a0, 0x671c, 0xa786, 0x0001,
++      0xa202, 0x16f0, 0x080c, 0xc1d1, 0x05a0, 0x671c, 0xa786, 0x0001,
+       0x0580, 0xa786, 0x0007, 0x0568, 0x2500, 0xac06, 0x0550, 0x2400,
+       0xac06, 0x0538, 0x00c6, 0x6000, 0xa086, 0x0004, 0x1110, 0x080c,
+-      0x1953, 0xa786, 0x0008, 0x1148, 0x080c, 0xae88, 0x1130, 0x00ce,
+-      0x080c, 0x9c02, 0x080c, 0xae4d, 0x00a0, 0x6010, 0x2068, 0x080c,
+-      0xac8a, 0x0160, 0xa786, 0x0003, 0x11e8, 0x6837, 0x0103, 0x6b4a,
+-      0x6847, 0x0000, 0x080c, 0x580a, 0x080c, 0xae41, 0x080c, 0xae4d,
+-      0x00ce, 0xace0, 0x0018, 0x705c, 0xac02, 0x1210, 0x0804, 0xa09e,
++      0x1953, 0xa786, 0x0008, 0x1148, 0x080c, 0xaea8, 0x1130, 0x00ce,
++      0x080c, 0x9c22, 0x080c, 0xae6d, 0x00a0, 0x6010, 0x2068, 0x080c,
++      0xacaa, 0x0160, 0xa786, 0x0003, 0x11e8, 0x6837, 0x0103, 0x6b4a,
++      0x6847, 0x0000, 0x080c, 0x5823, 0x080c, 0xae61, 0x080c, 0xae6d,
++      0x00ce, 0xace0, 0x0018, 0x705c, 0xac02, 0x1210, 0x0804, 0xa0be,
+       0x012e, 0x000e, 0x002e, 0x004e, 0x005e, 0x007e, 0x00ce, 0x00de,
+-      0x00ee, 0x0005, 0xa786, 0x0006, 0x1118, 0x080c, 0xc134, 0x0c30,
+-      0xa786, 0x0009, 0x1128, 0x2009, 0x0106, 0x080c, 0x960c, 0x0c00,
++      0x00ee, 0x0005, 0xa786, 0x0006, 0x1118, 0x080c, 0xc15a, 0x0c30,
++      0xa786, 0x0009, 0x1128, 0x2009, 0x0106, 0x080c, 0x962c, 0x0c00,
+       0xa786, 0x000a, 0x09a0, 0x0888, 0x220c, 0x2304, 0xa106, 0x1130,
+-      0x8210, 0x8318, 0x1f04, 0xa0fc, 0xa006, 0x0005, 0x2304, 0xa102,
++      0x8210, 0x8318, 0x1f04, 0xa11c, 0xa006, 0x0005, 0x2304, 0xa102,
+       0x0218, 0x2001, 0x0001, 0x0010, 0x2001, 0x0000, 0xa18d, 0x0001,
+       0x0005, 0x220c, 0x810f, 0x2304, 0xa106, 0x1130, 0x8210, 0x8318,
+-      0x1f04, 0xa111, 0xa006, 0x0005, 0xa18d, 0x0001, 0x0005, 0x6004,
+-      0xa08a, 0x0080, 0x1a0c, 0x1519, 0x080c, 0xae77, 0x0120, 0x080c,
+-      0xae88, 0x0168, 0x0028, 0x080c, 0x2e6c, 0x080c, 0xae88, 0x0138,
+-      0x080c, 0x7db1, 0x080c, 0x95dc, 0x080c, 0x7e94, 0x0005, 0x080c,
+-      0x9c02, 0x0cb0, 0xa182, 0x0040, 0x0002, 0xa150, 0xa150, 0xa150,
+-      0xa150, 0xa150, 0xa150, 0xa150, 0xa150, 0xa150, 0xa150, 0xa150,
+-      0xa152, 0xa152, 0xa152, 0xa152, 0xa150, 0xa150, 0xa150, 0xa152,
++      0x1f04, 0xa131, 0xa006, 0x0005, 0xa18d, 0x0001, 0x0005, 0x6004,
++      0xa08a, 0x0080, 0x1a0c, 0x1519, 0x080c, 0xae97, 0x0120, 0x080c,
++      0xaea8, 0x0168, 0x0028, 0x080c, 0x2e6c, 0x080c, 0xaea8, 0x0138,
++      0x080c, 0x7dca, 0x080c, 0x95fc, 0x080c, 0x7ead, 0x0005, 0x080c,
++      0x9c22, 0x0cb0, 0xa182, 0x0040, 0x0002, 0xa170, 0xa170, 0xa170,
++      0xa170, 0xa170, 0xa170, 0xa170, 0xa170, 0xa170, 0xa170, 0xa170,
++      0xa172, 0xa172, 0xa172, 0xa172, 0xa170, 0xa170, 0xa170, 0xa172,
+       0x080c, 0x1519, 0x600b, 0xffff, 0x6003, 0x0001, 0x6106, 0x080c,
+-      0x7999, 0x0126, 0x2091, 0x8000, 0x080c, 0x7e94, 0x012e, 0x0005,
+-      0xa186, 0x0013, 0x1128, 0x6004, 0xa082, 0x0040, 0x0804, 0xa1ec,
+-      0xa186, 0x0027, 0x11e8, 0x080c, 0x7db1, 0x080c, 0x2e46, 0x00d6,
+-      0x6110, 0x2168, 0x080c, 0xac8a, 0x0168, 0x6837, 0x0103, 0x684b,
+-      0x0029, 0x6847, 0x0000, 0x694c, 0xc1c5, 0x694e, 0x080c, 0x580a,
+-      0x080c, 0xae41, 0x00de, 0x080c, 0x95dc, 0x080c, 0x7e94, 0x0005,
++      0x79b2, 0x0126, 0x2091, 0x8000, 0x080c, 0x7ead, 0x012e, 0x0005,
++      0xa186, 0x0013, 0x1128, 0x6004, 0xa082, 0x0040, 0x0804, 0xa20c,
++      0xa186, 0x0027, 0x11e8, 0x080c, 0x7dca, 0x080c, 0x2e46, 0x00d6,
++      0x6110, 0x2168, 0x080c, 0xacaa, 0x0168, 0x6837, 0x0103, 0x684b,
++      0x0029, 0x6847, 0x0000, 0x694c, 0xc1c5, 0x694e, 0x080c, 0x5823,
++      0x080c, 0xae61, 0x00de, 0x080c, 0x95fc, 0x080c, 0x7ead, 0x0005,
+       0xa186, 0x0014, 0x1120, 0x6004, 0xa082, 0x0040, 0x0428, 0xa186,
+       0x0046, 0x0138, 0xa186, 0x0045, 0x0120, 0xa186, 0x0047, 0x190c,
+       0x1519, 0x2001, 0x0109, 0x2004, 0xd084, 0x0198, 0x0126, 0x2091,
+-      0x2800, 0x0006, 0x0016, 0x0026, 0x080c, 0x7873, 0x002e, 0x001e,
++      0x2800, 0x0006, 0x0016, 0x0026, 0x080c, 0x788c, 0x002e, 0x001e,
+       0x000e, 0x012e, 0xe000, 0x6000, 0xa086, 0x0002, 0x1110, 0x0804,
+-      0xa22a, 0x080c, 0x9623, 0x0005, 0x0002, 0xa1ca, 0xa1c8, 0xa1c8,
+-      0xa1c8, 0xa1c8, 0xa1c8, 0xa1c8, 0xa1c8, 0xa1c8, 0xa1c8, 0xa1c8,
+-      0xa1e5, 0xa1e5, 0xa1e5, 0xa1e5, 0xa1c8, 0xa1e5, 0xa1c8, 0xa1e5,
+-      0x080c, 0x1519, 0x080c, 0x7db1, 0x00d6, 0x6110, 0x2168, 0x080c,
+-      0xac8a, 0x0168, 0x6837, 0x0103, 0x684b, 0x0006, 0x6847, 0x0000,
+-      0x6850, 0xc0ec, 0x6852, 0x080c, 0x580a, 0x080c, 0xae41, 0x00de,
+-      0x080c, 0x95dc, 0x080c, 0x7e94, 0x0005, 0x080c, 0x7db1, 0x080c,
+-      0x95dc, 0x080c, 0x7e94, 0x0005, 0x0002, 0xa202, 0xa200, 0xa200,
+-      0xa200, 0xa200, 0xa200, 0xa200, 0xa200, 0xa200, 0xa200, 0xa200,
+-      0xa214, 0xa214, 0xa214, 0xa214, 0xa200, 0xa223, 0xa200, 0xa214,
+-      0x080c, 0x1519, 0x080c, 0x7db1, 0x2001, 0xc8ff, 0x2004, 0x603e,
+-      0x6003, 0x0002, 0x080c, 0x7e94, 0x6010, 0xa088, 0x0013, 0x2104,
+-      0xa085, 0x0400, 0x200a, 0x0005, 0x080c, 0x7db1, 0x2001, 0xc8fd,
++      0xa24a, 0x080c, 0x9643, 0x0005, 0x0002, 0xa1ea, 0xa1e8, 0xa1e8,
++      0xa1e8, 0xa1e8, 0xa1e8, 0xa1e8, 0xa1e8, 0xa1e8, 0xa1e8, 0xa1e8,
++      0xa205, 0xa205, 0xa205, 0xa205, 0xa1e8, 0xa205, 0xa1e8, 0xa205,
++      0x080c, 0x1519, 0x080c, 0x7dca, 0x00d6, 0x6110, 0x2168, 0x080c,
++      0xacaa, 0x0168, 0x6837, 0x0103, 0x684b, 0x0006, 0x6847, 0x0000,
++      0x6850, 0xc0ec, 0x6852, 0x080c, 0x5823, 0x080c, 0xae61, 0x00de,
++      0x080c, 0x95fc, 0x080c, 0x7ead, 0x0005, 0x080c, 0x7dca, 0x080c,
++      0x95fc, 0x080c, 0x7ead, 0x0005, 0x0002, 0xa222, 0xa220, 0xa220,
++      0xa220, 0xa220, 0xa220, 0xa220, 0xa220, 0xa220, 0xa220, 0xa220,
++      0xa234, 0xa234, 0xa234, 0xa234, 0xa220, 0xa243, 0xa220, 0xa234,
++      0x080c, 0x1519, 0x080c, 0x7dca, 0x2001, 0xc8ff, 0x2004, 0x603e,
++      0x6003, 0x0002, 0x080c, 0x7ead, 0x6010, 0xa088, 0x0013, 0x2104,
++      0xa085, 0x0400, 0x200a, 0x0005, 0x080c, 0x7dca, 0x2001, 0xc8fd,
+       0x2004, 0x6016, 0x2001, 0xc8ff, 0x2004, 0x603e, 0x6003, 0x000f,
+-      0x080c, 0x7e94, 0x0005, 0x080c, 0x7db1, 0x080c, 0x95dc, 0x080c,
+-      0x7e94, 0x0005, 0xa182, 0x0040, 0x0002, 0xa240, 0xa240, 0xa240,
+-      0xa240, 0xa240, 0xa242, 0xa327, 0xa356, 0xa240, 0xa240, 0xa240,
+-      0xa240, 0xa240, 0xa240, 0xa240, 0xa240, 0xa240, 0xa240, 0xa240,
++      0x080c, 0x7ead, 0x0005, 0x080c, 0x7dca, 0x080c, 0x95fc, 0x080c,
++      0x7ead, 0x0005, 0xa182, 0x0040, 0x0002, 0xa260, 0xa260, 0xa260,
++      0xa260, 0xa260, 0xa262, 0xa347, 0xa376, 0xa260, 0xa260, 0xa260,
++      0xa260, 0xa260, 0xa260, 0xa260, 0xa260, 0xa260, 0xa260, 0xa260,
+       0x080c, 0x1519, 0x00e6, 0x00d6, 0x603f, 0x0000, 0x2071, 0xcc80,
+       0x7124, 0x610a, 0x2071, 0xcc8c, 0x6110, 0x2168, 0x7614, 0xa6b4,
+-      0x0fff, 0x86ff, 0x0904, 0xa2f0, 0xa68c, 0x0c00, 0x0518, 0x00f6,
+-      0x2c78, 0x080c, 0x56c3, 0x00fe, 0x01c8, 0x684c, 0xd0ac, 0x01b0,
++      0x0fff, 0x86ff, 0x0904, 0xa310, 0xa68c, 0x0c00, 0x0518, 0x00f6,
++      0x2c78, 0x080c, 0x56dc, 0x00fe, 0x01c8, 0x684c, 0xd0ac, 0x01b0,
+       0x6020, 0xd0dc, 0x1198, 0x6850, 0xd0bc, 0x1180, 0x7318, 0x6814,
+-      0xa306, 0x1904, 0xa303, 0x731c, 0x6810, 0xa31e, 0x0138, 0xd6d4,
+-      0x0904, 0xa303, 0x6b14, 0xa305, 0x1904, 0xa303, 0x7318, 0x6b62,
++      0xa306, 0x1904, 0xa323, 0x731c, 0x6810, 0xa31e, 0x0138, 0xd6d4,
++      0x0904, 0xa323, 0x6b14, 0xa305, 0x1904, 0xa323, 0x7318, 0x6b62,
+       0x731c, 0x6b5e, 0xa68c, 0x00ff, 0xa186, 0x0002, 0x0518, 0xa186,
+-      0x0028, 0x1128, 0x080c, 0xae66, 0x684b, 0x001c, 0x00e8, 0xd6dc,
++      0x0028, 0x1128, 0x080c, 0xae86, 0x684b, 0x001c, 0x00e8, 0xd6dc,
+       0x01a0, 0x684b, 0x0015, 0x684c, 0xd0ac, 0x0170, 0x6914, 0x6a10,
+       0x2100, 0xa205, 0x0148, 0x7018, 0xa106, 0x1118, 0x701c, 0xa206,
+       0x0118, 0x6962, 0x6a5e, 0xc6dc, 0x0038, 0xd6d4, 0x0118, 0x684b,
+       0x0007, 0x0010, 0x684b, 0x0000, 0x6837, 0x0103, 0x6e46, 0xa01e,
+       0xd6c4, 0x01f0, 0xa686, 0x0100, 0x1140, 0x2001, 0xcc99, 0x2004,
+-      0xa005, 0x1118, 0xc6c4, 0x0804, 0xa251, 0x7328, 0x732c, 0x6b56,
++      0xa005, 0x1118, 0xc6c4, 0x0804, 0xa271, 0x7328, 0x732c, 0x6b56,
+       0x83ff, 0x0170, 0xa38a, 0x0009, 0x0210, 0x2019, 0x0008, 0x0036,
+-      0x2308, 0x2019, 0xcc98, 0xad90, 0x0019, 0x080c, 0xa93d, 0x003e,
+-      0xd6cc, 0x0904, 0xa316, 0x7124, 0x695a, 0x81ff, 0x0904, 0xa316,
++      0x2308, 0x2019, 0xcc98, 0xad90, 0x0019, 0x080c, 0xa95d, 0x003e,
++      0xd6cc, 0x0904, 0xa336, 0x7124, 0x695a, 0x81ff, 0x0904, 0xa336,
+       0xa192, 0x0021, 0x1260, 0x2071, 0xcc98, 0x831c, 0x2300, 0xae18,
+-      0xad90, 0x001d, 0x080c, 0xa93d, 0x080c, 0xb167, 0x04b8, 0x6838,
++      0xad90, 0x001d, 0x080c, 0xa95d, 0x080c, 0xb187, 0x04b8, 0x6838,
+       0xd0fc, 0x0120, 0x2009, 0x0020, 0x695a, 0x0c68, 0x00f6, 0x2d78,
+-      0x080c, 0xa8e2, 0x00fe, 0x080c, 0xb167, 0x080c, 0xa92d, 0x0440,
+-      0x00f6, 0x2c78, 0x080c, 0x56c3, 0x00fe, 0x0190, 0x684c, 0xd0ac,
++      0x080c, 0xa902, 0x00fe, 0x080c, 0xb187, 0x080c, 0xa94d, 0x0440,
++      0x00f6, 0x2c78, 0x080c, 0x56dc, 0x00fe, 0x0190, 0x684c, 0xd0ac,
+       0x0178, 0x6020, 0xd0dc, 0x1160, 0x6850, 0xd0bc, 0x1148, 0x6810,
+-      0x6914, 0xa105, 0x0128, 0x080c, 0xaf65, 0x00de, 0x00ee, 0x00f0,
++      0x6914, 0xa105, 0x0128, 0x080c, 0xaf85, 0x00de, 0x00ee, 0x00f0,
+       0x684b, 0x0000, 0x6837, 0x0103, 0x6e46, 0x684c, 0xd0ac, 0x0130,
+-      0x6810, 0x6914, 0xa115, 0x0110, 0x080c, 0xa4b3, 0x080c, 0x580a,
++      0x6810, 0x6914, 0xa115, 0x0110, 0x080c, 0xa4d3, 0x080c, 0x5823,
+       0x6218, 0x2268, 0x6a3c, 0x82ff, 0x0110, 0x8211, 0x6a3e, 0x080c,
+-      0xaf33, 0x00de, 0x00ee, 0x1110, 0x080c, 0x95dc, 0x0005, 0x00f6,
++      0xaf53, 0x00de, 0x00ee, 0x1110, 0x080c, 0x95fc, 0x0005, 0x00f6,
+       0x6003, 0x0003, 0x2079, 0xcc8c, 0x7c04, 0x7b00, 0x7e0c, 0x7d08,
+       0x6010, 0x2078, 0x784c, 0xd0ac, 0x0138, 0x6003, 0x0002, 0x00fe,
+       0x0005, 0x2130, 0x2228, 0x0058, 0x2400, 0x797c, 0xa10a, 0x2300,
+       0x7a80, 0xa213, 0x2600, 0xa102, 0x2500, 0xa203, 0x0e90, 0x7c12,
+       0x7b16, 0x7e0a, 0x7d0e, 0x00fe, 0x603f, 0x0000, 0x2c10, 0x080c,
+-      0x2068, 0x080c, 0x79fc, 0x080c, 0x7f6e, 0x0005, 0x2001, 0xc8ff,
++      0x2068, 0x080c, 0x7a15, 0x080c, 0x7f87, 0x0005, 0x2001, 0xc8ff,
+       0x2004, 0x603e, 0x6003, 0x0004, 0x6110, 0x20e1, 0x0005, 0x3d18,
+       0x3e20, 0x2c10, 0x080c, 0x1870, 0x0005, 0xa182, 0x0040, 0x0002,
+-      0xa37b, 0xa37b, 0xa37b, 0xa37b, 0xa37b, 0xa37d, 0xa410, 0xa37b,
+-      0xa37b, 0xa426, 0xa48a, 0xa37b, 0xa37b, 0xa37b, 0xa37b, 0xa499,
+-      0xa37b, 0xa37b, 0xa37b, 0x080c, 0x1519, 0x0076, 0x00f6, 0x00e6,
++      0xa39b, 0xa39b, 0xa39b, 0xa39b, 0xa39b, 0xa39d, 0xa430, 0xa39b,
++      0xa39b, 0xa446, 0xa4aa, 0xa39b, 0xa39b, 0xa39b, 0xa39b, 0xa4b9,
++      0xa39b, 0xa39b, 0xa39b, 0x080c, 0x1519, 0x0076, 0x00f6, 0x00e6,
+       0x00d6, 0x2071, 0xcc8c, 0x6110, 0x2178, 0x7614, 0xa6b4, 0x0fff,
+       0x7e46, 0x7f4c, 0xc7e5, 0x7f4e, 0x6218, 0x2268, 0x6a3c, 0x82ff,
+-      0x0110, 0x8211, 0x6a3e, 0x86ff, 0x0904, 0xa40b, 0xa694, 0xff00,
++      0x0110, 0x8211, 0x6a3e, 0x86ff, 0x0904, 0xa42b, 0xa694, 0xff00,
+       0xa284, 0x0c00, 0x0120, 0x7018, 0x7862, 0x701c, 0x785e, 0xa284,
+-      0x0300, 0x0904, 0xa40b, 0x080c, 0x1602, 0x090c, 0x1519, 0x2d00,
++      0x0300, 0x0904, 0xa42b, 0x080c, 0x1602, 0x090c, 0x1519, 0x2d00,
+       0x784a, 0x7f4c, 0xc7cd, 0x7f4e, 0x6837, 0x0103, 0x7838, 0x683a,
+       0x783c, 0x683e, 0x7840, 0x6842, 0x6e46, 0xa68c, 0x0c00, 0x0120,
+       0x7318, 0x6b62, 0x731c, 0x6b5e, 0xa68c, 0x00ff, 0xa186, 0x0002,
+@@ -4790,43 +4795,43 @@ unsigned short risc_code01[] = { 
+       0x0010, 0x684b, 0x0000, 0x6f4e, 0x7850, 0x6852, 0x7854, 0x6856,
+       0xa01e, 0xd6c4, 0x0198, 0x7328, 0x732c, 0x6b56, 0x83ff, 0x0170,
+       0xa38a, 0x0009, 0x0210, 0x2019, 0x0008, 0x0036, 0x2308, 0x2019,
+-      0xcc98, 0xad90, 0x0019, 0x080c, 0xa93d, 0x003e, 0xd6cc, 0x01d8,
++      0xcc98, 0xad90, 0x0019, 0x080c, 0xa95d, 0x003e, 0xd6cc, 0x01d8,
+       0x7124, 0x695a, 0x81ff, 0x01b8, 0xa192, 0x0021, 0x1250, 0x2071,
+-      0xcc98, 0x831c, 0x2300, 0xae18, 0xad90, 0x001d, 0x080c, 0xa93d,
++      0xcc98, 0x831c, 0x2300, 0xae18, 0xad90, 0x001d, 0x080c, 0xa95d,
+       0x0050, 0x7838, 0xd0fc, 0x0120, 0x2009, 0x0020, 0x695a, 0x0c78,
+-      0x2d78, 0x080c, 0xa8e2, 0x00de, 0x00ee, 0x00fe, 0x007e, 0x0005,
++      0x2d78, 0x080c, 0xa902, 0x00de, 0x00ee, 0x00fe, 0x007e, 0x0005,
+       0x00f6, 0x6003, 0x0003, 0x2079, 0xcc8c, 0x7c04, 0x7b00, 0x7e0c,
+       0x7d08, 0x6010, 0x2078, 0x7c12, 0x7b16, 0x7e0a, 0x7d0e, 0x00fe,
+-      0x2c10, 0x080c, 0x2068, 0x080c, 0x8bdb, 0x0005, 0x00d6, 0x00f6,
+-      0x2c78, 0x080c, 0x56c3, 0x00fe, 0x0120, 0x2001, 0xc8ff, 0x2004,
+-      0x603e, 0x6003, 0x0002, 0x080c, 0x7e47, 0x080c, 0x7f6e, 0x6110,
+-      0x2168, 0x694c, 0xd1e4, 0x0904, 0xa488, 0xd1cc, 0x0540, 0x6948,
++      0x2c10, 0x080c, 0x2068, 0x080c, 0x8bf4, 0x0005, 0x00d6, 0x00f6,
++      0x2c78, 0x080c, 0x56dc, 0x00fe, 0x0120, 0x2001, 0xc8ff, 0x2004,
++      0x603e, 0x6003, 0x0002, 0x080c, 0x7e60, 0x080c, 0x7f87, 0x6110,
++      0x2168, 0x694c, 0xd1e4, 0x0904, 0xa4a8, 0xd1cc, 0x0540, 0x6948,
+       0x6838, 0xd0fc, 0x01e8, 0x0016, 0x684c, 0x0006, 0x6850, 0x0006,
+       0xad90, 0x000d, 0xa198, 0x000d, 0x2009, 0x0020, 0x0156, 0x21a8,
+-      0x2304, 0x2012, 0x8318, 0x8210, 0x1f04, 0xa450, 0x015e, 0x000e,
++      0x2304, 0x2012, 0x8318, 0x8210, 0x1f04, 0xa470, 0x015e, 0x000e,
+       0x6852, 0x000e, 0x684e, 0x001e, 0x2168, 0x080c, 0x1629, 0x0418,
+-      0x0016, 0x080c, 0x1629, 0x00de, 0x080c, 0xa92d, 0x00e0, 0x6837,
++      0x0016, 0x080c, 0x1629, 0x00de, 0x080c, 0xa94d, 0x00e0, 0x6837,
+       0x0103, 0x6944, 0xa184, 0x00ff, 0xa0b6, 0x0002, 0x0180, 0xa086,
+       0x0028, 0x1118, 0x684b, 0x001c, 0x0060, 0xd1dc, 0x0118, 0x684b,
+       0x0015, 0x0038, 0xd1d4, 0x0118, 0x684b, 0x0007, 0x0010, 0x684b,
+-      0x0000, 0x080c, 0x580a, 0x080c, 0xaf33, 0x1110, 0x080c, 0x95dc,
+-      0x00de, 0x0005, 0x2019, 0x0001, 0x080c, 0x8e79, 0x6003, 0x0002,
+-      0x2001, 0xc8ff, 0x2004, 0x603e, 0x080c, 0x7e47, 0x080c, 0x7f6e,
+-      0x0005, 0x080c, 0x7e47, 0x080c, 0x2e46, 0x00d6, 0x6110, 0x2168,
+-      0x080c, 0xac8a, 0x0150, 0x6837, 0x0103, 0x684b, 0x0029, 0x6847,
+-      0x0000, 0x080c, 0x580a, 0x080c, 0xae41, 0x00de, 0x080c, 0x95dc,
+-      0x080c, 0x7f6e, 0x0005, 0x684b, 0x0015, 0xd1fc, 0x0138, 0x684b,
++      0x0000, 0x080c, 0x5823, 0x080c, 0xaf53, 0x1110, 0x080c, 0x95fc,
++      0x00de, 0x0005, 0x2019, 0x0001, 0x080c, 0x8e92, 0x6003, 0x0002,
++      0x2001, 0xc8ff, 0x2004, 0x603e, 0x080c, 0x7e60, 0x080c, 0x7f87,
++      0x0005, 0x080c, 0x7e60, 0x080c, 0x2e46, 0x00d6, 0x6110, 0x2168,
++      0x080c, 0xacaa, 0x0150, 0x6837, 0x0103, 0x684b, 0x0029, 0x6847,
++      0x0000, 0x080c, 0x5823, 0x080c, 0xae61, 0x00de, 0x080c, 0x95fc,
++      0x080c, 0x7f87, 0x0005, 0x684b, 0x0015, 0xd1fc, 0x0138, 0x684b,
+       0x0007, 0x8002, 0x8000, 0x810a, 0xa189, 0x0000, 0x6962, 0x685e,
+-      0x0005, 0xa182, 0x0040, 0x0002, 0xa4d7, 0xa4d7, 0xa4d7, 0xa4d7,
+-      0xa4d7, 0xa4d9, 0xa4d7, 0xa594, 0xa5a0, 0xa4d7, 0xa4d7, 0xa4d7,
+-      0xa4d7, 0xa4d7, 0xa4d7, 0xa4d7, 0xa4d7, 0xa4d7, 0xa4d7, 0x080c,
++      0x0005, 0xa182, 0x0040, 0x0002, 0xa4f7, 0xa4f7, 0xa4f7, 0xa4f7,
++      0xa4f7, 0xa4f9, 0xa4f7, 0xa5b4, 0xa5c0, 0xa4f7, 0xa4f7, 0xa4f7,
++      0xa4f7, 0xa4f7, 0xa4f7, 0xa4f7, 0xa4f7, 0xa4f7, 0xa4f7, 0x080c,
+       0x1519, 0x0076, 0x00f6, 0x00e6, 0x00d6, 0x2071, 0xcc8c, 0x6110,
+-      0x2178, 0x7614, 0xa6b4, 0x0fff, 0x00f6, 0x2c78, 0x080c, 0x56c3,
++      0x2178, 0x7614, 0xa6b4, 0x0fff, 0x00f6, 0x2c78, 0x080c, 0x56dc,
+       0x00fe, 0x0150, 0xa684, 0x00ff, 0x1138, 0x6020, 0xd0f4, 0x0120,
+-      0x080c, 0xaf65, 0x0804, 0xa58f, 0x7e46, 0x7f4c, 0xc7e5, 0x7f4e,
++      0x080c, 0xaf85, 0x0804, 0xa5af, 0x7e46, 0x7f4c, 0xc7e5, 0x7f4e,
+       0x6218, 0x2268, 0x6a3c, 0x82ff, 0x0110, 0x8211, 0x6a3e, 0x86ff,
+-      0x0904, 0xa585, 0xa694, 0xff00, 0xa284, 0x0c00, 0x0120, 0x7018,
+-      0x7862, 0x701c, 0x785e, 0xa284, 0x0300, 0x0904, 0xa583, 0xa686,
++      0x0904, 0xa5a5, 0xa694, 0xff00, 0xa284, 0x0c00, 0x0120, 0x7018,
++      0x7862, 0x701c, 0x785e, 0xa284, 0x0300, 0x0904, 0xa5a3, 0xa686,
+       0x0100, 0x1140, 0x2001, 0xcc99, 0x2004, 0xa005, 0x1118, 0xc6c4,
+       0x7e46, 0x0c28, 0x080c, 0x1602, 0x090c, 0x1519, 0x2d00, 0x784a,
+       0x7f4c, 0xa7bd, 0x0200, 0x7f4e, 0x6837, 0x0103, 0x7838, 0x683a,
+@@ -4837,314 +4842,314 @@ unsigned short risc_code01[] = { 
+       0x0010, 0x684b, 0x0000, 0x6f4e, 0x7850, 0x6852, 0x7854, 0x6856,
+       0xa01e, 0xd6c4, 0x0198, 0x7328, 0x732c, 0x6b56, 0x83ff, 0x0170,
+       0xa38a, 0x0009, 0x0210, 0x2019, 0x0008, 0x0036, 0x2308, 0x2019,
+-      0xcc98, 0xad90, 0x0019, 0x080c, 0xa93d, 0x003e, 0xd6cc, 0x01d8,
++      0xcc98, 0xad90, 0x0019, 0x080c, 0xa95d, 0x003e, 0xd6cc, 0x01d8,
+       0x7124, 0x695a, 0x81ff, 0x01b8, 0xa192, 0x0021, 0x1250, 0x2071,
+-      0xcc98, 0x831c, 0x2300, 0xae18, 0xad90, 0x001d, 0x080c, 0xa93d,
++      0xcc98, 0x831c, 0x2300, 0xae18, 0xad90, 0x001d, 0x080c, 0xa95d,
+       0x0050, 0x7838, 0xd0fc, 0x0120, 0x2009, 0x0020, 0x695a, 0x0c78,
+-      0x2d78, 0x080c, 0xa8e2, 0xd6dc, 0x1110, 0xa006, 0x0030, 0x2001,
++      0x2d78, 0x080c, 0xa902, 0xd6dc, 0x1110, 0xa006, 0x0030, 0x2001,
+       0x0001, 0x2071, 0xcc8c, 0x7218, 0x731c, 0x080c, 0x18b8, 0x00de,
+       0x00ee, 0x00fe, 0x007e, 0x0005, 0x2001, 0xc8ff, 0x2004, 0x603e,
+       0x20e1, 0x0005, 0x3d18, 0x3e20, 0x2c10, 0x080c, 0x1870, 0x0005,
+       0x2001, 0xc8ff, 0x2004, 0x603e, 0x00d6, 0x6003, 0x0002, 0x6110,
+-      0x2168, 0x694c, 0xd1e4, 0x0904, 0xa6ab, 0x603f, 0x0000, 0x00f6,
+-      0x2c78, 0x080c, 0x56c3, 0x00fe, 0x0560, 0x6814, 0x6910, 0xa115,
++      0x2168, 0x694c, 0xd1e4, 0x0904, 0xa6cb, 0x603f, 0x0000, 0x00f6,
++      0x2c78, 0x080c, 0x56dc, 0x00fe, 0x0560, 0x6814, 0x6910, 0xa115,
+       0x0540, 0x6a60, 0xa206, 0x1118, 0x685c, 0xa106, 0x0510, 0x684c,
+       0xc0e4, 0x684e, 0x6847, 0x0000, 0x6863, 0x0000, 0x685f, 0x0000,
+       0x6020, 0xd0f4, 0x1158, 0x697c, 0x6810, 0xa102, 0x603a, 0x6980,
+       0x6814, 0xa103, 0x6036, 0x6020, 0xc0f5, 0x6022, 0x00d6, 0x6018,
+-      0x2068, 0x683c, 0x8000, 0x683e, 0x00de, 0x080c, 0xaf65, 0x0804,
+-      0xa6ab, 0x694c, 0xd1cc, 0x0904, 0xa67b, 0x6948, 0x6838, 0xd0fc,
+-      0x0904, 0xa63e, 0x0016, 0x684c, 0x0006, 0x6850, 0x0006, 0x00f6,
++      0x2068, 0x683c, 0x8000, 0x683e, 0x00de, 0x080c, 0xaf85, 0x0804,
++      0xa6cb, 0x694c, 0xd1cc, 0x0904, 0xa69b, 0x6948, 0x6838, 0xd0fc,
++      0x0904, 0xa65e, 0x0016, 0x684c, 0x0006, 0x6850, 0x0006, 0x00f6,
+       0x2178, 0x7944, 0xa184, 0x00ff, 0xa0b6, 0x0002, 0x01e0, 0xa086,
+       0x0028, 0x1128, 0x684b, 0x001c, 0x784b, 0x001c, 0x00e8, 0xd1dc,
+-      0x0158, 0x684b, 0x0015, 0x784b, 0x0015, 0x080c, 0xb0ef, 0x0118,
++      0x0158, 0x684b, 0x0015, 0x784b, 0x0015, 0x080c, 0xb10f, 0x0118,
+       0x7944, 0xc1dc, 0x7946, 0x0080, 0xd1d4, 0x0128, 0x684b, 0x0007,
+       0x784b, 0x0007, 0x0048, 0x684c, 0xd0ac, 0x0130, 0x6810, 0x6914,
+-      0xa115, 0x0110, 0x080c, 0xa4b3, 0x6848, 0x784a, 0x6860, 0x7862,
++      0xa115, 0x0110, 0x080c, 0xa4d3, 0x6848, 0x784a, 0x6860, 0x7862,
+       0x685c, 0x785e, 0xad90, 0x000d, 0xaf98, 0x000d, 0x2009, 0x0020,
+-      0x0156, 0x21a8, 0x2304, 0x2012, 0x8318, 0x8210, 0x1f04, 0xa62a,
+-      0x015e, 0x00fe, 0x000e, 0x6852, 0x000e, 0x684e, 0x080c, 0xb167,
+-      0x001e, 0x2168, 0x080c, 0x1629, 0x0804, 0xa6a6, 0x0016, 0x00f6,
++      0x0156, 0x21a8, 0x2304, 0x2012, 0x8318, 0x8210, 0x1f04, 0xa64a,
++      0x015e, 0x00fe, 0x000e, 0x6852, 0x000e, 0x684e, 0x080c, 0xb187,
++      0x001e, 0x2168, 0x080c, 0x1629, 0x0804, 0xa6c6, 0x0016, 0x00f6,
+       0x2178, 0x7944, 0xa184, 0x00ff, 0xa0b6, 0x0002, 0x01e0, 0xa086,
+       0x0028, 0x1128, 0x684b, 0x001c, 0x784b, 0x001c, 0x00e8, 0xd1dc,
+-      0x0158, 0x684b, 0x0015, 0x784b, 0x0015, 0x080c, 0xb0ef, 0x0118,
++      0x0158, 0x684b, 0x0015, 0x784b, 0x0015, 0x080c, 0xb10f, 0x0118,
+       0x7944, 0xc1dc, 0x7946, 0x0080, 0xd1d4, 0x0128, 0x684b, 0x0007,
+       0x784b, 0x0007, 0x0048, 0x684c, 0xd0ac, 0x0130, 0x6810, 0x6914,
+-      0xa115, 0x0110, 0x080c, 0xa4b3, 0x6860, 0x7862, 0x685c, 0x785e,
+-      0x684c, 0x784e, 0x00fe, 0x080c, 0x1629, 0x00de, 0x080c, 0xb167,
+-      0x080c, 0xa92d, 0x0458, 0x6837, 0x0103, 0x6944, 0xa184, 0x00ff,
++      0xa115, 0x0110, 0x080c, 0xa4d3, 0x6860, 0x7862, 0x685c, 0x785e,
++      0x684c, 0x784e, 0x00fe, 0x080c, 0x1629, 0x00de, 0x080c, 0xb187,
++      0x080c, 0xa94d, 0x0458, 0x6837, 0x0103, 0x6944, 0xa184, 0x00ff,
+       0xa0b6, 0x0002, 0x01b0, 0xa086, 0x0028, 0x1118, 0x684b, 0x001c,
+-      0x00d8, 0xd1dc, 0x0148, 0x684b, 0x0015, 0x080c, 0xb0ef, 0x0118,
++      0x00d8, 0xd1dc, 0x0148, 0x684b, 0x0015, 0x080c, 0xb10f, 0x0118,
+       0x6944, 0xc1dc, 0x6946, 0x0080, 0xd1d4, 0x0118, 0x684b, 0x0007,
+       0x0058, 0x684b, 0x0000, 0x684c, 0xd0ac, 0x0130, 0x6810, 0x6914,
+-      0xa115, 0x0110, 0x080c, 0xa4b3, 0x080c, 0x580a, 0x080c, 0xaf33,
+-      0x1110, 0x080c, 0x95dc, 0x00de, 0x0005, 0x080c, 0x7db1, 0x0010,
+-      0x080c, 0x7e47, 0x080c, 0xac8a, 0x01c0, 0x00d6, 0x6110, 0x2168,
++      0xa115, 0x0110, 0x080c, 0xa4d3, 0x080c, 0x5823, 0x080c, 0xaf53,
++      0x1110, 0x080c, 0x95fc, 0x00de, 0x0005, 0x080c, 0x7dca, 0x0010,
++      0x080c, 0x7e60, 0x080c, 0xacaa, 0x01c0, 0x00d6, 0x6110, 0x2168,
+       0x6837, 0x0103, 0x2009, 0xc60c, 0x210c, 0xd18c, 0x11c0, 0xd184,
+-      0x1198, 0x6108, 0x694a, 0xa18e, 0x0029, 0x1110, 0x080c, 0xc4ca,
+-      0x6847, 0x0000, 0x080c, 0x580a, 0x00de, 0x080c, 0x95dc, 0x080c,
+-      0x7e94, 0x080c, 0x7f6e, 0x0005, 0x684b, 0x0004, 0x0c88, 0x684b,
+-      0x0004, 0x0c70, 0xa182, 0x0040, 0x0002, 0xa6f0, 0xa6f0, 0xa6f0,
+-      0xa6f0, 0xa6f0, 0xa6f2, 0xa6f0, 0xa6f5, 0xa6f0, 0xa6f0, 0xa6f0,
+-      0xa6f0, 0xa6f0, 0xa6f0, 0xa6f0, 0xa6f0, 0xa6f0, 0xa6f0, 0xa6f0,
+-      0x080c, 0x1519, 0x080c, 0x95dc, 0x0005, 0x0006, 0x0026, 0xa016,
++      0x1198, 0x6108, 0x694a, 0xa18e, 0x0029, 0x1110, 0x080c, 0xc4f0,
++      0x6847, 0x0000, 0x080c, 0x5823, 0x00de, 0x080c, 0x95fc, 0x080c,
++      0x7ead, 0x080c, 0x7f87, 0x0005, 0x684b, 0x0004, 0x0c88, 0x684b,
++      0x0004, 0x0c70, 0xa182, 0x0040, 0x0002, 0xa710, 0xa710, 0xa710,
++      0xa710, 0xa710, 0xa712, 0xa710, 0xa715, 0xa710, 0xa710, 0xa710,
++      0xa710, 0xa710, 0xa710, 0xa710, 0xa710, 0xa710, 0xa710, 0xa710,
++      0x080c, 0x1519, 0x080c, 0x95fc, 0x0005, 0x0006, 0x0026, 0xa016,
+       0x080c, 0x1870, 0x002e, 0x000e, 0x0005, 0xa182, 0x0085, 0x0002,
+-      0xa709, 0xa707, 0xa707, 0xa715, 0xa707, 0xa707, 0xa707, 0x080c,
+-      0x1519, 0x6003, 0x0001, 0x6106, 0x080c, 0x7999, 0x0126, 0x2091,
+-      0x8000, 0x080c, 0x7e94, 0x012e, 0x0005, 0x0026, 0x0056, 0x00d6,
+-      0x00e6, 0x2071, 0xcc80, 0x7224, 0x6212, 0x7220, 0x080c, 0xac7a,
++      0xa729, 0xa727, 0xa727, 0xa735, 0xa727, 0xa727, 0xa727, 0x080c,
++      0x1519, 0x6003, 0x0001, 0x6106, 0x080c, 0x79b2, 0x0126, 0x2091,
++      0x8000, 0x080c, 0x7ead, 0x012e, 0x0005, 0x0026, 0x0056, 0x00d6,
++      0x00e6, 0x2071, 0xcc80, 0x7224, 0x6212, 0x7220, 0x080c, 0xac9a,
+       0x01a0, 0x2268, 0x6800, 0xa086, 0x0000, 0x0178, 0x6018, 0x6d18,
+-      0xa52e, 0x1158, 0x00c6, 0x2d60, 0x080c, 0xa94d, 0x00ce, 0x0128,
++      0xa52e, 0x1158, 0x00c6, 0x2d60, 0x080c, 0xa96d, 0x00ce, 0x0128,
+       0x6803, 0x0002, 0x6007, 0x0086, 0x0010, 0x6007, 0x0087, 0x6003,
+-      0x0001, 0x080c, 0x7999, 0x080c, 0x7e94, 0x00f6, 0x2278, 0x080c,
+-      0x56c3, 0x00fe, 0x0150, 0x6820, 0xd0ec, 0x0138, 0x00c6, 0x2260,
+-      0x603f, 0x0000, 0x080c, 0xaf65, 0x00ce, 0x00ee, 0x00de, 0x005e,
++      0x0001, 0x080c, 0x79b2, 0x080c, 0x7ead, 0x00f6, 0x2278, 0x080c,
++      0x56dc, 0x00fe, 0x0150, 0x6820, 0xd0ec, 0x0138, 0x00c6, 0x2260,
++      0x603f, 0x0000, 0x080c, 0xaf85, 0x00ce, 0x00ee, 0x00de, 0x005e,
+       0x002e, 0x0005, 0xa186, 0x0013, 0x1160, 0x6004, 0xa08a, 0x0085,
+       0x0a0c, 0x1519, 0xa08a, 0x008c, 0x1a0c, 0x1519, 0xa082, 0x0085,
+       0x0072, 0xa186, 0x0027, 0x0120, 0xa186, 0x0014, 0x190c, 0x1519,
+-      0x080c, 0x7db1, 0x080c, 0xae4d, 0x080c, 0x7e94, 0x0005, 0xa776,
+-      0xa778, 0xa778, 0xa776, 0xa776, 0xa776, 0xa776, 0x080c, 0x1519,
+-      0x080c, 0x7db1, 0x080c, 0xae4d, 0x080c, 0x7e94, 0x0005, 0xa186,
++      0x080c, 0x7dca, 0x080c, 0xae6d, 0x080c, 0x7ead, 0x0005, 0xa796,
++      0xa798, 0xa798, 0xa796, 0xa796, 0xa796, 0xa796, 0x080c, 0x1519,
++      0x080c, 0x7dca, 0x080c, 0xae6d, 0x080c, 0x7ead, 0x0005, 0xa186,
+       0x0013, 0x1128, 0x6004, 0xa082, 0x0085, 0x2008, 0x04a8, 0xa186,
+-      0x0027, 0x11e8, 0x080c, 0x7db1, 0x080c, 0x2e46, 0x00d6, 0x6010,
+-      0x2068, 0x080c, 0xac8a, 0x0150, 0x6837, 0x0103, 0x6847, 0x0000,
+-      0x684b, 0x0029, 0x080c, 0x580a, 0x080c, 0xae41, 0x00de, 0x080c,
+-      0x95dc, 0x080c, 0x7e94, 0x0005, 0x080c, 0x9623, 0x0ce0, 0xa186,
+-      0x0014, 0x1dd0, 0x080c, 0x7db1, 0x00d6, 0x6010, 0x2068, 0x080c,
+-      0xac8a, 0x0d60, 0x6837, 0x0103, 0x6847, 0x0000, 0x684b, 0x0006,
+-      0x6850, 0xc0ec, 0x6852, 0x08f0, 0x0002, 0xa7c6, 0xa7c4, 0xa7c4,
+-      0xa7c4, 0xa7c4, 0xa7c4, 0xa7de, 0x080c, 0x1519, 0x080c, 0x7db1,
++      0x0027, 0x11e8, 0x080c, 0x7dca, 0x080c, 0x2e46, 0x00d6, 0x6010,
++      0x2068, 0x080c, 0xacaa, 0x0150, 0x6837, 0x0103, 0x6847, 0x0000,
++      0x684b, 0x0029, 0x080c, 0x5823, 0x080c, 0xae61, 0x00de, 0x080c,
++      0x95fc, 0x080c, 0x7ead, 0x0005, 0x080c, 0x9643, 0x0ce0, 0xa186,
++      0x0014, 0x1dd0, 0x080c, 0x7dca, 0x00d6, 0x6010, 0x2068, 0x080c,
++      0xacaa, 0x0d60, 0x6837, 0x0103, 0x6847, 0x0000, 0x684b, 0x0006,
++      0x6850, 0xc0ec, 0x6852, 0x08f0, 0x0002, 0xa7e6, 0xa7e4, 0xa7e4,
++      0xa7e4, 0xa7e4, 0xa7e4, 0xa7fe, 0x080c, 0x1519, 0x080c, 0x7dca,
+       0x6030, 0xa08c, 0xff00, 0x810f, 0xa186, 0x0039, 0x0118, 0xa186,
+       0x0035, 0x1118, 0x2001, 0xc8fd, 0x0010, 0x2001, 0xc8fe, 0x2004,
+-      0x6016, 0x6003, 0x000c, 0x080c, 0x7e94, 0x0005, 0x080c, 0x7db1,
++      0x6016, 0x6003, 0x000c, 0x080c, 0x7ead, 0x0005, 0x080c, 0x7dca,
+       0x6030, 0xa08c, 0xff00, 0x810f, 0xa186, 0x0039, 0x0118, 0xa186,
+       0x0035, 0x1118, 0x2001, 0xc8fd, 0x0010, 0x2001, 0xc8fe, 0x2004,
+-      0x6016, 0x6003, 0x000e, 0x080c, 0x7e94, 0x0005, 0xa182, 0x008c,
+-      0x1220, 0xa182, 0x0085, 0x0208, 0x001a, 0x080c, 0x9623, 0x0005,
+-      0xa807, 0xa807, 0xa807, 0xa807, 0xa809, 0xa862, 0xa807, 0x080c,
+-      0x1519, 0x00d6, 0x00f6, 0x2c78, 0x080c, 0x56c3, 0x00fe, 0x0168,
++      0x6016, 0x6003, 0x000e, 0x080c, 0x7ead, 0x0005, 0xa182, 0x008c,
++      0x1220, 0xa182, 0x0085, 0x0208, 0x001a, 0x080c, 0x9643, 0x0005,
++      0xa827, 0xa827, 0xa827, 0xa827, 0xa829, 0xa882, 0xa827, 0x080c,
++      0x1519, 0x00d6, 0x00f6, 0x2c78, 0x080c, 0x56dc, 0x00fe, 0x0168,
+       0x6030, 0xa08c, 0xff00, 0x810f, 0xa186, 0x0039, 0x0118, 0xa186,
+-      0x0035, 0x1118, 0x00de, 0x0804, 0xa875, 0x080c, 0xac8a, 0x1118,
+-      0x080c, 0xae41, 0x00f0, 0x6010, 0x2068, 0x684c, 0xd0e4, 0x1110,
+-      0x080c, 0xae41, 0x6837, 0x0103, 0x6850, 0xd0b4, 0x0128, 0x684b,
++      0x0035, 0x1118, 0x00de, 0x0804, 0xa895, 0x080c, 0xacaa, 0x1118,
++      0x080c, 0xae61, 0x00f0, 0x6010, 0x2068, 0x684c, 0xd0e4, 0x1110,
++      0x080c, 0xae61, 0x6837, 0x0103, 0x6850, 0xd0b4, 0x0128, 0x684b,
+       0x0006, 0xc0ec, 0x6852, 0x0048, 0xd0bc, 0x0118, 0x684b, 0x0002,
+-      0x0020, 0x684b, 0x0005, 0x080c, 0xaf02, 0x6847, 0x0000, 0x080c,
+-      0x580a, 0x2c68, 0x080c, 0x9586, 0x01c0, 0x6003, 0x0001, 0x6007,
++      0x0020, 0x684b, 0x0005, 0x080c, 0xaf22, 0x6847, 0x0000, 0x080c,
++      0x5823, 0x2c68, 0x080c, 0x95a6, 0x01c0, 0x6003, 0x0001, 0x6007,
+       0x001e, 0x600b, 0xffff, 0x2009, 0xcc8e, 0x210c, 0x6136, 0x2009,
+-      0xcc8f, 0x210c, 0x613a, 0x6918, 0x611a, 0x080c, 0xb057, 0x6950,
+-      0x6152, 0x601f, 0x0001, 0x080c, 0x7999, 0x2d60, 0x080c, 0x95dc,
+-      0x00de, 0x0005, 0x00f6, 0x2c78, 0x080c, 0x56c3, 0x00fe, 0x0598,
++      0xcc8f, 0x210c, 0x613a, 0x6918, 0x611a, 0x080c, 0xb077, 0x6950,
++      0x6152, 0x601f, 0x0001, 0x080c, 0x79b2, 0x2d60, 0x080c, 0x95fc,
++      0x00de, 0x0005, 0x00f6, 0x2c78, 0x080c, 0x56dc, 0x00fe, 0x0598,
+       0x6030, 0xa08c, 0xff00, 0x810f, 0xa186, 0x0035, 0x0130, 0xa186,
+       0x001e, 0x0118, 0xa186, 0x0039, 0x1530, 0x00d6, 0x2c68, 0x080c,
+-      0xb13a, 0x1904, 0xa8ba, 0x080c, 0x9586, 0x01d8, 0x6106, 0x6003,
++      0xb15a, 0x1904, 0xa8da, 0x080c, 0x95a6, 0x01d8, 0x6106, 0x6003,
+       0x0001, 0x601f, 0x0001, 0x6918, 0x611a, 0x6928, 0x612a, 0x692c,
+       0x612e, 0x6930, 0xa18c, 0x00ff, 0x6132, 0x6934, 0x6136, 0x6938,
+-      0x613a, 0x6950, 0x6152, 0x080c, 0xb057, 0x080c, 0x7999, 0x080c,
+-      0x7e94, 0x2d60, 0x00f8, 0x00d6, 0x6010, 0x2068, 0x080c, 0xac8a,
++      0x613a, 0x6950, 0x6152, 0x080c, 0xb077, 0x080c, 0x79b2, 0x080c,
++      0x7ead, 0x2d60, 0x00f8, 0x00d6, 0x6010, 0x2068, 0x080c, 0xacaa,
+       0x01c8, 0x6837, 0x0103, 0x6850, 0xd0b4, 0x0128, 0xc0ec, 0x6852,
+       0x684b, 0x0006, 0x0048, 0xd0bc, 0x0118, 0x684b, 0x0002, 0x0020,
+-      0x684b, 0x0005, 0x080c, 0xaf02, 0x6847, 0x0000, 0x080c, 0x580a,
+-      0x080c, 0xae41, 0x00de, 0x080c, 0x95dc, 0x0005, 0x0016, 0x00d6,
+-      0x6010, 0x2068, 0x080c, 0xac8a, 0x0140, 0x6837, 0x0103, 0x684b,
+-      0x0028, 0x6847, 0x0000, 0x080c, 0x580a, 0x00de, 0x001e, 0xa186,
++      0x684b, 0x0005, 0x080c, 0xaf22, 0x6847, 0x0000, 0x080c, 0x5823,
++      0x080c, 0xae61, 0x00de, 0x080c, 0x95fc, 0x0005, 0x0016, 0x00d6,
++      0x6010, 0x2068, 0x080c, 0xacaa, 0x0140, 0x6837, 0x0103, 0x684b,
++      0x0028, 0x6847, 0x0000, 0x080c, 0x5823, 0x00de, 0x001e, 0xa186,
+       0x0013, 0x0148, 0xa186, 0x0014, 0x0130, 0xa186, 0x0027, 0x0118,
+-      0x080c, 0x9623, 0x0030, 0x080c, 0x7db1, 0x080c, 0xae4d, 0x080c,
+-      0x7e94, 0x0005, 0x0056, 0x0066, 0x00d6, 0x00f6, 0x2029, 0x0001,
++      0x080c, 0x9643, 0x0030, 0x080c, 0x7dca, 0x080c, 0xae6d, 0x080c,
++      0x7ead, 0x0005, 0x0056, 0x0066, 0x00d6, 0x00f6, 0x2029, 0x0001,
+       0xa182, 0x0101, 0x1208, 0x0010, 0x2009, 0x0100, 0x2130, 0x2069,
+       0xcc98, 0x831c, 0x2300, 0xad18, 0x2009, 0x0020, 0xaf90, 0x001d,
+-      0x080c, 0xa93d, 0xa6b2, 0x0020, 0x7804, 0xa06d, 0x0110, 0x080c,
++      0x080c, 0xa95d, 0xa6b2, 0x0020, 0x7804, 0xa06d, 0x0110, 0x080c,
+       0x1629, 0x080c, 0x1602, 0x0500, 0x8528, 0x6837, 0x0110, 0x683b,
+       0x0000, 0x2d20, 0x7c06, 0xa68a, 0x003d, 0x1228, 0x2608, 0xad90,
+       0x000f, 0x0459, 0x0088, 0xa6b2, 0x003c, 0x2009, 0x003c, 0x2d78,
+       0xad90, 0x000f, 0x0411, 0x0c28, 0x00fe, 0x852f, 0xa5ad, 0x0003,
+       0x7d36, 0xa5ac, 0x0000, 0x0028, 0x00fe, 0x852f, 0xa5ad, 0x0003,
+       0x7d36, 0x00de, 0x006e, 0x005e, 0x0005, 0x00f6, 0x8dff, 0x0158,
+-      0x6804, 0xa07d, 0x0130, 0x6807, 0x0000, 0x080c, 0x580a, 0x2f68,
+-      0x0cb8, 0x080c, 0x580a, 0x00fe, 0x0005, 0x0156, 0xa184, 0x0001,
++      0x6804, 0xa07d, 0x0130, 0x6807, 0x0000, 0x080c, 0x5823, 0x2f68,
++      0x0cb8, 0x080c, 0x5823, 0x00fe, 0x0005, 0x0156, 0xa184, 0x0001,
+       0x0108, 0x8108, 0x810c, 0x21a8, 0x2304, 0x8007, 0x2012, 0x8318,
+-      0x8210, 0x1f04, 0xa944, 0x015e, 0x0005, 0x0066, 0x0126, 0x2091,
++      0x8210, 0x1f04, 0xa964, 0x015e, 0x0005, 0x0066, 0x0126, 0x2091,
+       0x8000, 0x2031, 0x0001, 0x601c, 0xa084, 0x000f, 0x0083, 0x012e,
+       0x006e, 0x0005, 0x0126, 0x2091, 0x8000, 0x0066, 0x2031, 0x0000,
+-      0x601c, 0xa084, 0x000f, 0x001b, 0x006e, 0x012e, 0x0005, 0xa984,
+-      0xa984, 0xa97f, 0xa9a6, 0xa972, 0xa97f, 0xa9a6, 0xa97f, 0xa972,
+-      0x77f4, 0xa97f, 0x080c, 0x1519, 0x0036, 0x2019, 0x0010, 0x080c,
+-      0xbd48, 0x601f, 0x0006, 0x6003, 0x0007, 0x003e, 0x0005, 0xa006,
++      0x601c, 0xa084, 0x000f, 0x001b, 0x006e, 0x012e, 0x0005, 0xa9a4,
++      0xa9a4, 0xa99f, 0xa9c6, 0xa992, 0xa99f, 0xa9c6, 0xa99f, 0xa992,
++      0x780d, 0xa99f, 0x080c, 0x1519, 0x0036, 0x2019, 0x0010, 0x080c,
++      0xbd6e, 0x601f, 0x0006, 0x6003, 0x0007, 0x003e, 0x0005, 0xa006,
+       0x0005, 0xa085, 0x0001, 0x0005, 0x00d6, 0x86ff, 0x11d8, 0x6010,
+-      0x2068, 0x080c, 0xac8a, 0x01c0, 0x6834, 0xa086, 0x0139, 0x1128,
++      0x2068, 0x080c, 0xacaa, 0x01c0, 0x6834, 0xa086, 0x0139, 0x1128,
+       0x684b, 0x0005, 0x6853, 0x0000, 0x0028, 0xa00e, 0x2001, 0x0005,
+-      0x080c, 0x592e, 0x080c, 0xaf02, 0x080c, 0x580a, 0x080c, 0x95dc,
++      0x080c, 0x5947, 0x080c, 0xaf22, 0x080c, 0x5823, 0x080c, 0x95fc,
+       0xa085, 0x0001, 0x00de, 0x0005, 0xa006, 0x0ce0, 0x6000, 0xa08a,
+-      0x0010, 0x1a0c, 0x1519, 0x000b, 0x0005, 0xa9bd, 0xa9de, 0xa9bf,
+-      0xa9fd, 0xa9db, 0xa9bd, 0xa97f, 0xa984, 0xa984, 0xa97f, 0xa97f,
+-      0xa97f, 0xa97f, 0xa97f, 0xa97f, 0xa97f, 0x080c, 0x1519, 0x86ff,
++      0x0010, 0x1a0c, 0x1519, 0x000b, 0x0005, 0xa9dd, 0xa9fe, 0xa9df,
++      0xaa1d, 0xa9fb, 0xa9dd, 0xa99f, 0xa9a4, 0xa9a4, 0xa99f, 0xa99f,
++      0xa99f, 0xa99f, 0xa99f, 0xa99f, 0xa99f, 0x080c, 0x1519, 0x86ff,
+       0x11b8, 0x601c, 0xa086, 0x0006, 0x0198, 0x00d6, 0x6010, 0x2068,
+-      0x080c, 0xac8a, 0x0110, 0x080c, 0xaf02, 0x00de, 0x6007, 0x0085,
+-      0x6003, 0x000b, 0x601f, 0x0002, 0x080c, 0x7999, 0x080c, 0x7e94,
++      0x080c, 0xacaa, 0x0110, 0x080c, 0xaf22, 0x00de, 0x6007, 0x0085,
++      0x6003, 0x000b, 0x601f, 0x0002, 0x080c, 0x79b2, 0x080c, 0x7ead,
+       0xa085, 0x0001, 0x0005, 0x080c, 0x1953, 0x0c08, 0x00e6, 0x2071,
+-      0xc927, 0x7024, 0xac06, 0x1110, 0x080c, 0x8dee, 0x601c, 0xa084,
++      0xc927, 0x7024, 0xac06, 0x1110, 0x080c, 0x8e07, 0x601c, 0xa084,
+       0x000f, 0xa086, 0x0006, 0x1150, 0x0086, 0x0096, 0x2049, 0x0001,
+-      0x2c40, 0x080c, 0x8fc9, 0x009e, 0x008e, 0x0010, 0x080c, 0x8ced,
+-      0x00ee, 0x1928, 0x080c, 0xa97f, 0x0005, 0x0036, 0x00e6, 0x2071,
+-      0xc927, 0x703c, 0xac06, 0x1140, 0x2019, 0x0000, 0x080c, 0x8e79,
+-      0x00ee, 0x003e, 0x0804, 0xa9bf, 0x080c, 0x90ef, 0x00ee, 0x003e,
+-      0x1904, 0xa9bf, 0x080c, 0xa97f, 0x0005, 0x00c6, 0x601c, 0xa084,
+-      0x000f, 0x0013, 0x00ce, 0x0005, 0xaa2e, 0xaa9b, 0xabe9, 0xaa39,
+-      0xae4d, 0xaa2e, 0xbd3a, 0x95dc, 0xaa9b, 0x77c3, 0xac54, 0x080c,
+-      0x1519, 0x080c, 0xae88, 0x1110, 0x080c, 0x9c02, 0x0005, 0x080c,
+-      0x7db1, 0x080c, 0x7e94, 0x080c, 0x95dc, 0x0005, 0x6017, 0x0001,
+-      0x0005, 0x080c, 0xac8a, 0x0120, 0x6010, 0xa080, 0x0019, 0x2c02,
+-      0x6000, 0xa08a, 0x0010, 0x1a0c, 0x1519, 0x000b, 0x0005, 0xaa57,
+-      0xaa59, 0xaa79, 0xaa8b, 0xaa98, 0xaa57, 0xaa2e, 0xaa2e, 0xaa2e,
+-      0xaa8b, 0xaa8b, 0xaa57, 0xaa57, 0xaa57, 0xaa57, 0xaa95, 0x080c,
++      0x2c40, 0x080c, 0x8fe2, 0x009e, 0x008e, 0x0010, 0x080c, 0x8d06,
++      0x00ee, 0x1928, 0x080c, 0xa99f, 0x0005, 0x0036, 0x00e6, 0x2071,
++      0xc927, 0x703c, 0xac06, 0x1140, 0x2019, 0x0000, 0x080c, 0x8e92,
++      0x00ee, 0x003e, 0x0804, 0xa9df, 0x080c, 0x910f, 0x00ee, 0x003e,
++      0x1904, 0xa9df, 0x080c, 0xa99f, 0x0005, 0x00c6, 0x601c, 0xa084,
++      0x000f, 0x0013, 0x00ce, 0x0005, 0xaa4e, 0xaabb, 0xac09, 0xaa59,
++      0xae6d, 0xaa4e, 0xbd60, 0xb19e, 0xaabb, 0x77dc, 0xac74, 0x080c,
++      0x1519, 0x080c, 0xaea8, 0x1110, 0x080c, 0x9c22, 0x0005, 0x080c,
++      0x7dca, 0x080c, 0x7ead, 0x080c, 0x95fc, 0x0005, 0x6017, 0x0001,
++      0x0005, 0x080c, 0xacaa, 0x0120, 0x6010, 0xa080, 0x0019, 0x2c02,
++      0x6000, 0xa08a, 0x0010, 0x1a0c, 0x1519, 0x000b, 0x0005, 0xaa77,
++      0xaa79, 0xaa99, 0xaaab, 0xaab8, 0xaa77, 0xaa4e, 0xaa4e, 0xaa4e,
++      0xaaab, 0xaaab, 0xaa77, 0xaa77, 0xaa77, 0xaa77, 0xaab5, 0x080c,
+       0x1519, 0x00e6, 0x6010, 0x2070, 0x7050, 0xc0b5, 0x7052, 0x2071,
+-      0xc927, 0x7024, 0xac06, 0x0190, 0x080c, 0x8ced, 0x6007, 0x0085,
++      0xc927, 0x7024, 0xac06, 0x0190, 0x080c, 0x8d06, 0x6007, 0x0085,
+       0x6003, 0x000b, 0x601f, 0x0002, 0x2001, 0xc8fe, 0x2004, 0x6016,
+-      0x080c, 0x7999, 0x080c, 0x7e94, 0x00ee, 0x0005, 0x6017, 0x0001,
++      0x080c, 0x79b2, 0x080c, 0x7ead, 0x00ee, 0x0005, 0x6017, 0x0001,
+       0x0cd8, 0x00d6, 0x6010, 0x2068, 0x6850, 0xc0b5, 0x6852, 0x00de,
+-      0x6007, 0x0085, 0x6003, 0x000b, 0x601f, 0x0002, 0x080c, 0x7999,
+-      0x080c, 0x7e94, 0x0005, 0x00d6, 0x6017, 0x0001, 0x6010, 0x2068,
+-      0x6850, 0xc0b5, 0x6852, 0x00de, 0x0005, 0x080c, 0x95dc, 0x0005,
++      0x6007, 0x0085, 0x6003, 0x000b, 0x601f, 0x0002, 0x080c, 0x79b2,
++      0x080c, 0x7ead, 0x0005, 0x00d6, 0x6017, 0x0001, 0x6010, 0x2068,
++      0x6850, 0xc0b5, 0x6852, 0x00de, 0x0005, 0x080c, 0x95fc, 0x0005,
+       0x080c, 0x1953, 0x08f0, 0x6000, 0xa08a, 0x0010, 0x1a0c, 0x1519,
+-      0x000b, 0x0005, 0xaab2, 0xaa36, 0xaab4, 0xaab2, 0xaab4, 0xaab4,
+-      0xaa2f, 0xaab2, 0xaa29, 0xaa29, 0xaab2, 0xaab2, 0xaab2, 0xaab2,
+-      0xaab2, 0xaab2, 0x080c, 0x1519, 0x00d6, 0x6018, 0x2068, 0x6804,
++      0x000b, 0x0005, 0xaad2, 0xaa56, 0xaad4, 0xaad2, 0xaad4, 0xaad4,
++      0xaa4f, 0xaad2, 0xaa49, 0xaa49, 0xaad2, 0xaad2, 0xaad2, 0xaad2,
++      0xaad2, 0xaad2, 0x080c, 0x1519, 0x00d6, 0x6018, 0x2068, 0x6804,
+       0xa084, 0x00ff, 0x00de, 0xa08a, 0x000c, 0x1a0c, 0x1519, 0x000b,
+-      0x0005, 0xaacd, 0xab8f, 0xaacf, 0xab0d, 0xaacf, 0xab0d, 0xaacf,
+-      0xaadd, 0xaacd, 0xab0d, 0xaacd, 0xaaf9, 0x080c, 0x1519, 0x6004,
++      0x0005, 0xaaed, 0xabaf, 0xaaef, 0xab2d, 0xaaef, 0xab2d, 0xaaef,
++      0xaafd, 0xaaed, 0xab2d, 0xaaed, 0xab19, 0x080c, 0x1519, 0x6004,
+       0xa08e, 0x0016, 0x05a8, 0xa08e, 0x0004, 0x0590, 0xa08e, 0x0002,
+-      0x0578, 0xa08e, 0x004b, 0x0904, 0xab8b, 0x6004, 0x080c, 0xae88,
+-      0x0904, 0xaba8, 0xa08e, 0x0021, 0x0904, 0xabac, 0xa08e, 0x0022,
+-      0x0904, 0xaba8, 0xa08e, 0x003d, 0x0904, 0xabac, 0xa08e, 0x0039,
+-      0x0904, 0xabb0, 0xa08e, 0x0035, 0x0904, 0xabb0, 0xa08e, 0x001e,
++      0x0578, 0xa08e, 0x004b, 0x0904, 0xabab, 0x6004, 0x080c, 0xaea8,
++      0x0904, 0xabc8, 0xa08e, 0x0021, 0x0904, 0xabcc, 0xa08e, 0x0022,
++      0x0904, 0xabc8, 0xa08e, 0x003d, 0x0904, 0xabcc, 0xa08e, 0x0039,
++      0x0904, 0xabd0, 0xa08e, 0x0035, 0x0904, 0xabd0, 0xa08e, 0x001e,
+       0x0188, 0xa08e, 0x0001, 0x1150, 0x00d6, 0x6018, 0x2068, 0x6804,
+       0xa084, 0x00ff, 0x00de, 0xa086, 0x0006, 0x0110, 0x080c, 0x2e46,
+-      0x080c, 0x9c02, 0x080c, 0xae4d, 0x0005, 0x00c6, 0x00d6, 0x6104,
+-      0xa186, 0x0016, 0x0904, 0xab7c, 0xa186, 0x0002, 0x15d8, 0x2001,
+-      0xc635, 0x2004, 0xd08c, 0x1198, 0x080c, 0x5f22, 0x1180, 0x2001,
++      0x080c, 0x9c22, 0x080c, 0xae6d, 0x0005, 0x00c6, 0x00d6, 0x6104,
++      0xa186, 0x0016, 0x0904, 0xab9c, 0xa186, 0x0002, 0x15d8, 0x2001,
++      0xc635, 0x2004, 0xd08c, 0x1198, 0x080c, 0x5f3b, 0x1180, 0x2001,
+       0xc8e6, 0x2003, 0x0001, 0x2001, 0xc600, 0x2003, 0x0001, 0xa085,
+-      0x0001, 0x080c, 0x5f66, 0x080c, 0x5e5a, 0x0804, 0xabd2, 0x6018,
+-      0x2068, 0x2001, 0xc635, 0x2004, 0xd0ac, 0x1904, 0xabd2, 0x68a0,
+-      0xd0bc, 0x1904, 0xabd2, 0x6840, 0xa084, 0x00ff, 0xa005, 0x0190,
++      0x0001, 0x080c, 0x5f7f, 0x080c, 0x5e73, 0x0804, 0xabf2, 0x6018,
++      0x2068, 0x2001, 0xc635, 0x2004, 0xd0ac, 0x1904, 0xabf2, 0x68a0,
++      0xd0bc, 0x1904, 0xabf2, 0x6840, 0xa084, 0x00ff, 0xa005, 0x0190,
+       0x8001, 0x6842, 0x6013, 0x0000, 0x601f, 0x0007, 0x6017, 0x0398,
+-      0x603f, 0x0000, 0x080c, 0x9586, 0x0128, 0x2d00, 0x601a, 0x601f,
++      0x603f, 0x0000, 0x080c, 0x95a6, 0x0128, 0x2d00, 0x601a, 0x601f,
+       0x0001, 0x0450, 0x00de, 0x00ce, 0x6004, 0xa08e, 0x0002, 0x11a8,
+       0x6018, 0xa080, 0x0028, 0x2004, 0xa086, 0x007e, 0x1170, 0x2009,
+       0xc635, 0x2104, 0xc085, 0x200a, 0x00e6, 0x2071, 0xc600, 0x080c,
+-      0x4f02, 0x00ee, 0x080c, 0x9c02, 0x0020, 0x080c, 0x9c02, 0x080c,
++      0x4f1b, 0x00ee, 0x080c, 0x9c22, 0x0020, 0x080c, 0x9c22, 0x080c,
+       0x2e46, 0x00e6, 0x0126, 0x2091, 0x8000, 0x080c, 0x2e6c, 0x012e,
+-      0x00ee, 0x080c, 0xae4d, 0x0005, 0x2001, 0x0002, 0x080c, 0x5291,
+-      0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x79df, 0x080c, 0x7e94,
+-      0x00de, 0x00ce, 0x0c80, 0x080c, 0x2e6c, 0x0804, 0xab08, 0x00c6,
++      0x00ee, 0x080c, 0xae6d, 0x0005, 0x2001, 0x0002, 0x080c, 0x52aa,
++      0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x79f8, 0x080c, 0x7ead,
++      0x00de, 0x00ce, 0x0c80, 0x080c, 0x2e6c, 0x0804, 0xab28, 0x00c6,
+       0x00d6, 0x6104, 0xa186, 0x0016, 0x0d38, 0x6018, 0x2068, 0x6840,
+-      0xa084, 0x00ff, 0xa005, 0x0904, 0xab52, 0x8001, 0x6842, 0x6003,
+-      0x0001, 0x080c, 0x79df, 0x080c, 0x7e94, 0x00de, 0x00ce, 0x0898,
+-      0x080c, 0x9c02, 0x0804, 0xab0a, 0x080c, 0x9c30, 0x0804, 0xab0a,
+-      0x00d6, 0x2c68, 0x6104, 0x080c, 0xb13a, 0x00de, 0x0118, 0x080c,
+-      0x95dc, 0x00b8, 0x6004, 0x8007, 0x6130, 0xa18c, 0x00ff, 0xa105,
++      0xa084, 0x00ff, 0xa005, 0x0904, 0xab72, 0x8001, 0x6842, 0x6003,
++      0x0001, 0x080c, 0x79f8, 0x080c, 0x7ead, 0x00de, 0x00ce, 0x0898,
++      0x080c, 0x9c22, 0x0804, 0xab2a, 0x080c, 0x9c50, 0x0804, 0xab2a,
++      0x00d6, 0x2c68, 0x6104, 0x080c, 0xb15a, 0x00de, 0x0118, 0x080c,
++      0x95fc, 0x00b8, 0x6004, 0x8007, 0x6130, 0xa18c, 0x00ff, 0xa105,
+       0x6032, 0x6007, 0x0085, 0x6003, 0x000b, 0x601f, 0x0002, 0x6038,
+-      0x600a, 0x2001, 0xc8fe, 0x2004, 0x6016, 0x080c, 0x7999, 0x080c,
+-      0x7e94, 0x0005, 0x00de, 0x00ce, 0x080c, 0x9c02, 0x080c, 0x2e46,
++      0x600a, 0x2001, 0xc8fe, 0x2004, 0x6016, 0x080c, 0x79b2, 0x080c,
++      0x7ead, 0x0005, 0x00de, 0x00ce, 0x080c, 0x9c22, 0x080c, 0x2e46,
+       0x00e6, 0x0126, 0x2091, 0x8000, 0x080c, 0x2e6c, 0x6013, 0x0000,
+       0x601f, 0x0007, 0x6017, 0x0398, 0x603f, 0x0000, 0x012e, 0x00ee,
+       0x0005, 0x6000, 0xa08a, 0x0010, 0x1a0c, 0x1519, 0x000b, 0x0005,
+-      0xac00, 0xac00, 0xac00, 0xac00, 0xac00, 0xac00, 0xac00, 0xac00,
+-      0xac00, 0xaa2e, 0xac00, 0xaa36, 0xac02, 0xaa36, 0xac0f, 0xac00,
++      0xac20, 0xac20, 0xac20, 0xac20, 0xac20, 0xac20, 0xac20, 0xac20,
++      0xac20, 0xaa4e, 0xac20, 0xaa56, 0xac22, 0xaa56, 0xac2f, 0xac20,
+       0x080c, 0x1519, 0x6004, 0xa086, 0x008b, 0x0148, 0x6007, 0x008b,
+-      0x6003, 0x000d, 0x080c, 0x7999, 0x080c, 0x7e94, 0x0005, 0x080c,
+-      0xae41, 0x080c, 0xac8a, 0x0580, 0x080c, 0x2e46, 0x00d6, 0x080c,
+-      0xac8a, 0x0168, 0x6010, 0x2068, 0x6837, 0x0103, 0x684b, 0x0006,
+-      0x6847, 0x0000, 0x6850, 0xc0ed, 0x6852, 0x080c, 0x580a, 0x2c68,
+-      0x080c, 0x9586, 0x0150, 0x6818, 0x601a, 0x080c, 0xb057, 0x00c6,
+-      0x2d60, 0x080c, 0xae4d, 0x00ce, 0x0008, 0x2d60, 0x00de, 0x6013,
++      0x6003, 0x000d, 0x080c, 0x79b2, 0x080c, 0x7ead, 0x0005, 0x080c,
++      0xae61, 0x080c, 0xacaa, 0x0580, 0x080c, 0x2e46, 0x00d6, 0x080c,
++      0xacaa, 0x0168, 0x6010, 0x2068, 0x6837, 0x0103, 0x684b, 0x0006,
++      0x6847, 0x0000, 0x6850, 0xc0ed, 0x6852, 0x080c, 0x5823, 0x2c68,
++      0x080c, 0x95a6, 0x0150, 0x6818, 0x601a, 0x080c, 0xb077, 0x00c6,
++      0x2d60, 0x080c, 0xae6d, 0x00ce, 0x0008, 0x2d60, 0x00de, 0x6013,
+       0x0000, 0x601f, 0x0001, 0x6007, 0x0001, 0x6003, 0x0001, 0x080c,
+-      0x79df, 0x080c, 0x7e94, 0x0078, 0x6030, 0xa08c, 0xff00, 0x810f,
++      0x79f8, 0x080c, 0x7ead, 0x0078, 0x6030, 0xa08c, 0xff00, 0x810f,
+       0xa186, 0x0039, 0x0118, 0xa186, 0x0035, 0x1118, 0x080c, 0x2e46,
+-      0x08b0, 0x080c, 0xae4d, 0x0005, 0x6000, 0xa08a, 0x0010, 0x1a0c,
+-      0x1519, 0x000b, 0x0005, 0xac6b, 0xac6b, 0xac6b, 0xac6d, 0xac6d,
+-      0xac6b, 0xac6b, 0xac6b, 0xac6b, 0xac6b, 0xac6b, 0xac6b, 0xac6b,
+-      0xac6b, 0xac6b, 0xac6b, 0x080c, 0x1519, 0x080c, 0x90ef, 0x190c,
+-      0x1519, 0x6110, 0x2168, 0x684b, 0x0006, 0x080c, 0x580a, 0x080c,
+-      0x95dc, 0x0005, 0xa284, 0x0007, 0x1158, 0xa282, 0xce00, 0x0240,
++      0x08b0, 0x080c, 0xae6d, 0x0005, 0x6000, 0xa08a, 0x0010, 0x1a0c,
++      0x1519, 0x000b, 0x0005, 0xac8b, 0xac8b, 0xac8b, 0xac8d, 0xac8d,
++      0xac8b, 0xac8b, 0xac8b, 0xac8b, 0xac8b, 0xac8b, 0xac8b, 0xac8b,
++      0xac8b, 0xac8b, 0xac8b, 0x080c, 0x1519, 0x080c, 0x910f, 0x190c,
++      0x1519, 0x6110, 0x2168, 0x684b, 0x0006, 0x080c, 0x5823, 0x080c,
++      0x95fc, 0x0005, 0xa284, 0x0007, 0x1158, 0xa282, 0xce00, 0x0240,
+       0x2001, 0xc617, 0x2004, 0xa202, 0x1218, 0xa085, 0x0001, 0x0005,
+       0xa006, 0x0ce8, 0x0026, 0x6210, 0xa294, 0xf000, 0x002e, 0x0005,
+       0x00e6, 0x00c6, 0x0036, 0x0006, 0x0126, 0x2091, 0x8000, 0x2061,
+       0xce00, 0x2071, 0xc600, 0x7348, 0x7068, 0xa302, 0x12a8, 0x601c,
+-      0xa206, 0x1160, 0x080c, 0xafe2, 0x0148, 0x080c, 0xae88, 0x1110,
+-      0x080c, 0x9c02, 0x00c6, 0x080c, 0x95dc, 0x00ce, 0xace0, 0x0018,
++      0xa206, 0x1160, 0x080c, 0xb002, 0x0148, 0x080c, 0xaea8, 0x1110,
++      0x080c, 0x9c22, 0x00c6, 0x080c, 0x95fc, 0x00ce, 0xace0, 0x0018,
+       0x705c, 0xac02, 0x1208, 0x0c38, 0x012e, 0x000e, 0x003e, 0x00ce,
+       0x00ee, 0x0005, 0x00e6, 0x00c6, 0x0016, 0xa188, 0xc77b, 0x210c,
+       0x81ff, 0x0128, 0x2061, 0xca3c, 0x611a, 0x080c, 0x2e46, 0xa006,
+       0x0010, 0xa085, 0x0001, 0x001e, 0x00ce, 0x00ee, 0x0005, 0x00c6,
+-      0x0056, 0x0126, 0x2091, 0x8000, 0x00c6, 0x080c, 0x9586, 0x005e,
+-      0x0180, 0x6612, 0x651a, 0x080c, 0xb057, 0x601f, 0x0003, 0x2009,
+-      0x004b, 0x080c, 0x960c, 0xa085, 0x0001, 0x012e, 0x005e, 0x00ce,
++      0x0056, 0x0126, 0x2091, 0x8000, 0x00c6, 0x080c, 0x95a6, 0x005e,
++      0x0180, 0x6612, 0x651a, 0x080c, 0xb077, 0x601f, 0x0003, 0x2009,
++      0x004b, 0x080c, 0x962c, 0xa085, 0x0001, 0x012e, 0x005e, 0x00ce,
+       0x0005, 0xa006, 0x0cd0, 0x00c6, 0x0056, 0x0126, 0x2091, 0x8000,
+-      0x62a0, 0x00c6, 0x080c, 0xaf06, 0x005e, 0x0550, 0x6013, 0x0000,
+-      0x651a, 0x080c, 0xb057, 0x601f, 0x0003, 0x0016, 0x00c6, 0x2560,
+-      0x080c, 0x553e, 0x00ce, 0x080c, 0x7b16, 0x0076, 0x2039, 0x0000,
+-      0x080c, 0x7a0e, 0x2c08, 0x080c, 0xbeea, 0x007e, 0x001e, 0xd184,
+-      0x0128, 0x080c, 0x95dc, 0xa085, 0x0001, 0x0030, 0x2009, 0x004c,
+-      0x080c, 0x960c, 0xa085, 0x0001, 0x012e, 0x005e, 0x00ce, 0x0005,
+-      0xa006, 0x0cd0, 0x00f6, 0x00c6, 0x0046, 0x00c6, 0x080c, 0x9586,
++      0x62a0, 0x00c6, 0x080c, 0xaf26, 0x005e, 0x0550, 0x6013, 0x0000,
++      0x651a, 0x080c, 0xb077, 0x601f, 0x0003, 0x0016, 0x00c6, 0x2560,
++      0x080c, 0x5557, 0x00ce, 0x080c, 0x7b2f, 0x0076, 0x2039, 0x0000,
++      0x080c, 0x7a27, 0x2c08, 0x080c, 0xbf10, 0x007e, 0x001e, 0xd184,
++      0x0128, 0x080c, 0x95fc, 0xa085, 0x0001, 0x0030, 0x2009, 0x004c,
++      0x080c, 0x962c, 0xa085, 0x0001, 0x012e, 0x005e, 0x00ce, 0x0005,
++      0xa006, 0x0cd0, 0x00f6, 0x00c6, 0x0046, 0x00c6, 0x080c, 0x95a6,
+       0x2c78, 0x00ce, 0x0180, 0x7e12, 0x2c00, 0x781a, 0x781f, 0x0003,
+-      0x2021, 0x0005, 0x080c, 0xad80, 0x2f60, 0x2009, 0x004d, 0x080c,
+-      0x960c, 0xa085, 0x0001, 0x004e, 0x00ce, 0x00fe, 0x0005, 0x00f6,
+-      0x00c6, 0x0046, 0x00c6, 0x080c, 0x9586, 0x2c78, 0x00ce, 0x0178,
++      0x2021, 0x0005, 0x080c, 0xada0, 0x2f60, 0x2009, 0x004d, 0x080c,
++      0x962c, 0xa085, 0x0001, 0x004e, 0x00ce, 0x00fe, 0x0005, 0x00f6,
++      0x00c6, 0x0046, 0x00c6, 0x080c, 0x95a6, 0x2c78, 0x00ce, 0x0178,
+       0x7e12, 0x2c00, 0x781a, 0x781f, 0x0003, 0x2021, 0x0005, 0x0481,
+-      0x2f60, 0x2009, 0x004e, 0x080c, 0x960c, 0xa085, 0x0001, 0x004e,
++      0x2f60, 0x2009, 0x004e, 0x080c, 0x962c, 0xa085, 0x0001, 0x004e,
+       0x00ce, 0x00fe, 0x0005, 0x00f6, 0x00c6, 0x0046, 0x00c6, 0x080c,
+-      0x9586, 0x2c78, 0x00ce, 0x01c0, 0x7e12, 0x2c00, 0x781a, 0x781f,
++      0x95a6, 0x2c78, 0x00ce, 0x01c0, 0x7e12, 0x2c00, 0x781a, 0x781f,
+       0x0003, 0x2021, 0x0004, 0x00a1, 0x2001, 0xc8e7, 0x2004, 0xd0fc,
+-      0x0120, 0x2f60, 0x080c, 0x95dc, 0x0028, 0x2f60, 0x2009, 0x0052,
+-      0x080c, 0x960c, 0xa085, 0x0001, 0x004e, 0x00ce, 0x00fe, 0x0005,
+-      0x0096, 0x0076, 0x0126, 0x2091, 0x8000, 0x080c, 0x54e0, 0x0118,
+-      0x2001, 0xad85, 0x0028, 0x080c, 0x54b0, 0x0158, 0x2001, 0xad8b,
+-      0x0006, 0xa00e, 0x2400, 0x080c, 0x592e, 0x080c, 0x580a, 0x000e,
+-      0x0807, 0x2418, 0x080c, 0x7d50, 0x62a0, 0x0086, 0x2041, 0x0001,
+-      0x2039, 0x0001, 0x2608, 0x080c, 0x7b2f, 0x008e, 0x080c, 0x7a0e,
+-      0x2f08, 0x2648, 0x080c, 0xbeea, 0x613c, 0x81ff, 0x090c, 0x7be4,
+-      0x080c, 0x7e94, 0x012e, 0x007e, 0x009e, 0x0005, 0x00c6, 0x0126,
+-      0x2091, 0x8000, 0x00c6, 0x080c, 0x9586, 0x001e, 0x0188, 0x660a,
+-      0x611a, 0x080c, 0xb057, 0x601f, 0x0001, 0x2d00, 0x6012, 0x2009,
+-      0x001f, 0x080c, 0x960c, 0xa085, 0x0001, 0x012e, 0x00ce, 0x0005,
++      0x0120, 0x2f60, 0x080c, 0x95fc, 0x0028, 0x2f60, 0x2009, 0x0052,
++      0x080c, 0x962c, 0xa085, 0x0001, 0x004e, 0x00ce, 0x00fe, 0x0005,
++      0x0096, 0x0076, 0x0126, 0x2091, 0x8000, 0x080c, 0x54f9, 0x0118,
++      0x2001, 0xada5, 0x0028, 0x080c, 0x54c9, 0x0158, 0x2001, 0xadab,
++      0x0006, 0xa00e, 0x2400, 0x080c, 0x5947, 0x080c, 0x5823, 0x000e,
++      0x0807, 0x2418, 0x080c, 0x7d69, 0x62a0, 0x0086, 0x2041, 0x0001,
++      0x2039, 0x0001, 0x2608, 0x080c, 0x7b48, 0x008e, 0x080c, 0x7a27,
++      0x2f08, 0x2648, 0x080c, 0xbf10, 0x613c, 0x81ff, 0x090c, 0x7bfd,
++      0x080c, 0x7ead, 0x012e, 0x007e, 0x009e, 0x0005, 0x00c6, 0x0126,
++      0x2091, 0x8000, 0x00c6, 0x080c, 0x95a6, 0x001e, 0x0188, 0x660a,
++      0x611a, 0x080c, 0xb077, 0x601f, 0x0001, 0x2d00, 0x6012, 0x2009,
++      0x001f, 0x080c, 0x962c, 0xa085, 0x0001, 0x012e, 0x00ce, 0x0005,
+       0xa006, 0x0cd8, 0x00c6, 0x0126, 0x2091, 0x8000, 0x00c6, 0x080c,
+-      0x9586, 0x001e, 0x0188, 0x660a, 0x611a, 0x080c, 0xb057, 0x601f,
+-      0x0008, 0x2d00, 0x6012, 0x2009, 0x0021, 0x080c, 0x960c, 0xa085,
++      0x95a6, 0x001e, 0x0188, 0x660a, 0x611a, 0x080c, 0xb077, 0x601f,
++      0x0008, 0x2d00, 0x6012, 0x2009, 0x0021, 0x080c, 0x962c, 0xa085,
+       0x0001, 0x012e, 0x00ce, 0x0005, 0xa006, 0x0cd8, 0x00c6, 0x0126,
+-      0x2091, 0x8000, 0x00c6, 0x080c, 0x9586, 0x001e, 0x0188, 0x660a,
+-      0x611a, 0x080c, 0xb057, 0x601f, 0x0001, 0x2d00, 0x6012, 0x2009,
+-      0x003d, 0x080c, 0x960c, 0xa085, 0x0001, 0x012e, 0x00ce, 0x0005,
++      0x2091, 0x8000, 0x00c6, 0x080c, 0x95a6, 0x001e, 0x0188, 0x660a,
++      0x611a, 0x080c, 0xb077, 0x601f, 0x0001, 0x2d00, 0x6012, 0x2009,
++      0x003d, 0x080c, 0x962c, 0xa085, 0x0001, 0x012e, 0x00ce, 0x0005,
+       0xa006, 0x0cd8, 0x00c6, 0x0126, 0x2091, 0x8000, 0x00c6, 0x080c,
+-      0xaf06, 0x001e, 0x0180, 0x611a, 0x080c, 0xb057, 0x601f, 0x0001,
+-      0x2d00, 0x6012, 0x2009, 0x0000, 0x080c, 0x960c, 0xa085, 0x0001,
++      0xaf26, 0x001e, 0x0180, 0x611a, 0x080c, 0xb077, 0x601f, 0x0001,
++      0x2d00, 0x6012, 0x2009, 0x0000, 0x080c, 0x962c, 0xa085, 0x0001,
+       0x012e, 0x00ce, 0x0005, 0xa006, 0x0cd8, 0x00c6, 0x0126, 0x2091,
+-      0x8000, 0x00c6, 0x080c, 0x9586, 0x001e, 0x0188, 0x660a, 0x611a,
+-      0x080c, 0xb057, 0x601f, 0x0001, 0x2d00, 0x6012, 0x2009, 0x0044,
+-      0x080c, 0x960c, 0xa085, 0x0001, 0x012e, 0x00ce, 0x0005, 0xa006,
++      0x8000, 0x00c6, 0x080c, 0x95a6, 0x001e, 0x0188, 0x660a, 0x611a,
++      0x080c, 0xb077, 0x601f, 0x0001, 0x2d00, 0x6012, 0x2009, 0x0044,
++      0x080c, 0x962c, 0xa085, 0x0001, 0x012e, 0x00ce, 0x0005, 0xa006,
+       0x0cd8, 0x0026, 0x00d6, 0x6218, 0x2268, 0x6a3c, 0x82ff, 0x0110,
+       0x8211, 0x6a3e, 0x00de, 0x002e, 0x0005, 0x0006, 0x6000, 0xa086,
+       0x0000, 0x0190, 0x6013, 0x0000, 0x601f, 0x0007, 0x2001, 0xc8fd,
+       0x2004, 0x0006, 0xa082, 0x0051, 0x000e, 0x0208, 0x8004, 0x6016,
+-      0x080c, 0xc3d5, 0x603f, 0x0000, 0x000e, 0x0005, 0x0066, 0x00c6,
++      0x080c, 0xc3fb, 0x603f, 0x0000, 0x000e, 0x0005, 0x0066, 0x00c6,
+       0x00d6, 0x2031, 0xc653, 0x2634, 0xd6e4, 0x0128, 0x6618, 0x2660,
+-      0x6e48, 0x080c, 0x5469, 0x00de, 0x00ce, 0x006e, 0x0005, 0x0006,
++      0x6e48, 0x080c, 0x5482, 0x00de, 0x00ce, 0x006e, 0x0005, 0x0006,
+       0x0016, 0x6004, 0xa08e, 0x0002, 0x0140, 0xa08e, 0x0003, 0x0128,
+       0xa08e, 0x0004, 0x0110, 0xa085, 0x0001, 0x001e, 0x000e, 0x0005,
+       0x0006, 0x00d6, 0x6010, 0xa06d, 0x0148, 0x6834, 0xa086, 0x0139,
+       0x0138, 0x6838, 0xd0fc, 0x0110, 0xa006, 0x0010, 0xa085, 0x0001,
+       0x00de, 0x000e, 0x0005, 0x00c6, 0x0126, 0x2091, 0x8000, 0x00c6,
+-      0x080c, 0x9586, 0x001e, 0x0190, 0x611a, 0x080c, 0xb057, 0x601f,
++      0x080c, 0x95a6, 0x001e, 0x0190, 0x611a, 0x080c, 0xb077, 0x601f,
+       0x0001, 0x2d00, 0x6012, 0x080c, 0x2e46, 0x2009, 0x0028, 0x080c,
+-      0x960c, 0xa085, 0x0001, 0x012e, 0x00ce, 0x0005, 0xa006, 0x0cd8,
++      0x962c, 0xa085, 0x0001, 0x012e, 0x00ce, 0x0005, 0xa006, 0x0cd8,
+       0xa186, 0x0015, 0x1178, 0x2011, 0xc621, 0x2204, 0xa086, 0x0074,
+-      0x1148, 0x080c, 0x9fb2, 0x6003, 0x0001, 0x6007, 0x0029, 0x080c,
+-      0x79df, 0x0020, 0x080c, 0x9c02, 0x080c, 0x95dc, 0x0005, 0xa186,
+-      0x0016, 0x1128, 0x2001, 0x0004, 0x080c, 0x5291, 0x00e8, 0xa186,
++      0x1148, 0x080c, 0x9fd2, 0x6003, 0x0001, 0x6007, 0x0029, 0x080c,
++      0x79f8, 0x0020, 0x080c, 0x9c22, 0x080c, 0x95fc, 0x0005, 0xa186,
++      0x0016, 0x1128, 0x2001, 0x0004, 0x080c, 0x52aa, 0x00e8, 0xa186,
+       0x0015, 0x11e8, 0x2011, 0xc621, 0x2204, 0xa086, 0x0014, 0x11b8,
+-      0x00d6, 0x6018, 0x2068, 0x080c, 0x53df, 0x00de, 0x080c, 0xa06b,
++      0x00d6, 0x6018, 0x2068, 0x080c, 0x53f8, 0x00de, 0x080c, 0xa08b,
+       0x1170, 0x00d6, 0x6018, 0x2068, 0x6890, 0x00de, 0xa005, 0x0138,
+-      0x2001, 0x0006, 0x080c, 0x5291, 0x080c, 0x9760, 0x0020, 0x080c,
+-      0x9c02, 0x080c, 0x95dc, 0x0005, 0x6848, 0xa086, 0x0005, 0x1108,
++      0x2001, 0x0006, 0x080c, 0x52aa, 0x080c, 0x9780, 0x0020, 0x080c,
++      0x9c22, 0x080c, 0x95fc, 0x0005, 0x6848, 0xa086, 0x0005, 0x1108,
+       0x0009, 0x0005, 0x6850, 0xc0ad, 0x6852, 0x0005, 0x00e6, 0x0126,
+       0x2071, 0xc600, 0x2091, 0x8000, 0x7548, 0xa582, 0x0001, 0x0608,
+       0x704c, 0x2060, 0x6000, 0xa086, 0x0000, 0x0148, 0xace0, 0x0018,
+@@ -5153,24 +5158,24 @@ unsigned short risc_code01[] = { 
+       0x754e, 0xa085, 0x0001, 0x012e, 0x00ee, 0x0005, 0x704f, 0xce00,
+       0x0cc0, 0xa006, 0x0cc0, 0x00e6, 0x2071, 0xcc8c, 0x7014, 0xd0e4,
+       0x0150, 0x6013, 0x0000, 0x6003, 0x0001, 0x6007, 0x0050, 0x080c,
+-      0x7999, 0x080c, 0x7e94, 0x00ee, 0x0005, 0x00c6, 0x00f6, 0x2c78,
+-      0x080c, 0x56c3, 0x00fe, 0x0120, 0x601c, 0xa084, 0x000f, 0x0013,
+-      0x00ce, 0x0005, 0xaa2e, 0xaf5d, 0xaf60, 0xaf63, 0xc1c2, 0xc1dd,
+-      0xc1e0, 0xaa2e, 0xaa2e, 0x080c, 0x1519, 0xe000, 0xe000, 0x0005,
++      0x79b2, 0x080c, 0x7ead, 0x00ee, 0x0005, 0x00c6, 0x00f6, 0x2c78,
++      0x080c, 0x56dc, 0x00fe, 0x0120, 0x601c, 0xa084, 0x000f, 0x0013,
++      0x00ce, 0x0005, 0xaa4e, 0xaf7d, 0xaf80, 0xaf83, 0xc1e8, 0xc203,
++      0xc206, 0xaa4e, 0xaa4e, 0x080c, 0x1519, 0xe000, 0xe000, 0x0005,
+       0xe000, 0xe000, 0x0005, 0x0009, 0x0005, 0x00f6, 0x2c78, 0x080c,
+-      0x56c3, 0x0538, 0x080c, 0x9586, 0x1128, 0x2001, 0xc8ff, 0x2004,
+-      0x783e, 0x00f8, 0x7818, 0x601a, 0x080c, 0xb057, 0x781c, 0xa086,
++      0x56dc, 0x0538, 0x080c, 0x95a6, 0x1128, 0x2001, 0xc8ff, 0x2004,
++      0x783e, 0x00f8, 0x7818, 0x601a, 0x080c, 0xb077, 0x781c, 0xa086,
+       0x0003, 0x0128, 0x7808, 0x6036, 0x2f00, 0x603a, 0x0020, 0x7808,
+       0x603a, 0x2f00, 0x6036, 0x602a, 0x601f, 0x0001, 0x6007, 0x0035,
+-      0x6003, 0x0001, 0x7950, 0x6152, 0x080c, 0x7999, 0x080c, 0x7e94,
++      0x6003, 0x0001, 0x7950, 0x6152, 0x080c, 0x79b2, 0x080c, 0x7ead,
+       0x2f60, 0x00fe, 0x0005, 0x0016, 0x00f6, 0x682c, 0x6032, 0xa08e,
+       0x0001, 0x0138, 0xa086, 0x0005, 0x0140, 0xa006, 0x602a, 0x602e,
+       0x00a0, 0x6820, 0xc0f4, 0xc0d5, 0x6822, 0x6810, 0x2078, 0x787c,
+       0x6938, 0xa102, 0x7880, 0x6934, 0xa103, 0x1e78, 0x6834, 0x602a,
+       0x6838, 0xa084, 0xfffc, 0x683a, 0x602e, 0x2d00, 0x6036, 0x6808,
+       0x603a, 0x6918, 0x611a, 0x6950, 0x6152, 0x601f, 0x0001, 0x6007,
+-      0x0039, 0x6003, 0x0001, 0x080c, 0x7999, 0x6803, 0x0002, 0x00fe,
+-      0x001e, 0x0005, 0x00f6, 0x2c78, 0x080c, 0x56c3, 0x1118, 0xa085,
++      0x0039, 0x6003, 0x0001, 0x080c, 0x79b2, 0x6803, 0x0002, 0x00fe,
++      0x001e, 0x0005, 0x00f6, 0x2c78, 0x080c, 0x56dc, 0x1118, 0xa085,
+       0x0001, 0x0070, 0x6020, 0xd0f4, 0x1150, 0xc0f5, 0x6022, 0x6010,
+       0x2078, 0x7828, 0x603a, 0x782c, 0x6036, 0x080c, 0x1953, 0xa006,
+       0x00fe, 0x0005, 0x0006, 0x0016, 0x6004, 0xa08e, 0x0034, 0x01b8,
+@@ -5178,705 +5183,705 @@ unsigned short risc_code01[] = { 
+       0x0170, 0xa08e, 0x0038, 0x0158, 0xa08e, 0x0039, 0x0140, 0xa08e,
+       0x003a, 0x0128, 0xa08e, 0x003b, 0x0110, 0xa085, 0x0001, 0x001e,
+       0x000e, 0x0005, 0x0006, 0x0016, 0x0026, 0x0036, 0x00e6, 0x2001,
+-      0xc8f9, 0x200c, 0x8000, 0x2014, 0x2001, 0x0032, 0x080c, 0x783f,
++      0xc8f9, 0x200c, 0x8000, 0x2014, 0x2001, 0x0032, 0x080c, 0x7858,
+       0x2001, 0xc8fd, 0x82ff, 0x1110, 0x2011, 0x0014, 0x2202, 0x2001,
+       0xc8fb, 0x200c, 0x8000, 0x2014, 0x2071, 0xc8d5, 0x711a, 0x721e,
+-      0x2001, 0x0064, 0x080c, 0x783f, 0x2001, 0xc8fe, 0x82ff, 0x1110,
++      0x2001, 0x0064, 0x080c, 0x7858, 0x2001, 0xc8fe, 0x82ff, 0x1110,
+       0x2011, 0x0014, 0x2202, 0x2009, 0xc8ff, 0xa280, 0x000a, 0x200a,
+-      0x080c, 0x572c, 0x00ee, 0x003e, 0x002e, 0x001e, 0x000e, 0x0005,
++      0x080c, 0x5745, 0x00ee, 0x003e, 0x002e, 0x001e, 0x000e, 0x0005,
+       0x0006, 0x00e6, 0x2001, 0xc8fd, 0x2003, 0x0028, 0x2001, 0xc8fe,
+       0x2003, 0x0014, 0x2071, 0xc8d5, 0x701b, 0x0000, 0x701f, 0x07d0,
+       0x2001, 0xc8ff, 0x2003, 0x001e, 0x00ee, 0x000e, 0x0005, 0x00d6,
+       0x6054, 0xa06d, 0x0110, 0x080c, 0x1619, 0x00de, 0x0005, 0x0005,
+-      0x00c6, 0x0126, 0x2091, 0x8000, 0x00c6, 0x080c, 0x9586, 0x001e,
++      0x00c6, 0x0126, 0x2091, 0x8000, 0x00c6, 0x080c, 0x95a6, 0x001e,
+       0x0178, 0x611a, 0x0ca1, 0x601f, 0x0001, 0x2d00, 0x6012, 0x2009,
+-      0x0033, 0x080c, 0x960c, 0xa085, 0x0001, 0x012e, 0x00ce, 0x0005,
++      0x0033, 0x080c, 0x962c, 0xa085, 0x0001, 0x012e, 0x00ce, 0x0005,
+       0xa006, 0x0cd8, 0x00d6, 0x00e6, 0x00f6, 0x2071, 0xc600, 0xa186,
+       0x0015, 0x1500, 0x7084, 0xa086, 0x0018, 0x11e0, 0x6010, 0x2068,
+-      0x6a3c, 0xd2e4, 0x1160, 0x2c78, 0x080c, 0x80af, 0x01d8, 0x7070,
++      0x6a3c, 0xd2e4, 0x1160, 0x2c78, 0x080c, 0x80c8, 0x01d8, 0x7070,
+       0x6a50, 0xa206, 0x1160, 0x7074, 0x6a54, 0xa206, 0x1140, 0x6218,
+       0xa290, 0x0028, 0x2214, 0x2009, 0x0000, 0x080c, 0x2e8b, 0x080c,
+-      0x9760, 0x0020, 0x080c, 0x9c02, 0x080c, 0x95dc, 0x00fe, 0x00ee,
++      0x9780, 0x0020, 0x080c, 0x9c22, 0x080c, 0x95fc, 0x00fe, 0x00ee,
+       0x00de, 0x0005, 0x7054, 0x6a54, 0xa206, 0x0d48, 0x0c80, 0x00c6,
+-      0x0126, 0x2091, 0x8000, 0x00c6, 0x080c, 0x9586, 0x001e, 0x0180,
+-      0x611a, 0x080c, 0xb057, 0x601f, 0x0001, 0x2d00, 0x6012, 0x2009,
+-      0x0043, 0x080c, 0x960c, 0xa085, 0x0001, 0x012e, 0x00ce, 0x0005,
++      0x0126, 0x2091, 0x8000, 0x00c6, 0x080c, 0x95a6, 0x001e, 0x0180,
++      0x611a, 0x080c, 0xb077, 0x601f, 0x0001, 0x2d00, 0x6012, 0x2009,
++      0x0043, 0x080c, 0x962c, 0xa085, 0x0001, 0x012e, 0x00ce, 0x0005,
+       0xa006, 0x0cd8, 0x00d6, 0x00e6, 0x00f6, 0x2071, 0xc600, 0xa186,
+       0x0015, 0x11c0, 0x7084, 0xa086, 0x0004, 0x11a0, 0x6010, 0xa0e8,
+-      0x000f, 0x2c78, 0x080c, 0x80af, 0x01a8, 0x7070, 0x6a08, 0xa206,
++      0x000f, 0x2c78, 0x080c, 0x80c8, 0x01a8, 0x7070, 0x6a08, 0xa206,
+       0x1130, 0x7074, 0x6a0c, 0xa206, 0x1110, 0x080c, 0x2e46, 0x080c,
+-      0x9760, 0x0020, 0x080c, 0x9c02, 0x080c, 0x95dc, 0x00fe, 0x00ee,
++      0x9780, 0x0020, 0x080c, 0x9c22, 0x080c, 0x95fc, 0x00fe, 0x00ee,
+       0x00de, 0x0005, 0x7054, 0x6a0c, 0xa206, 0x0d78, 0x0c80, 0x0016,
+       0x0026, 0x684c, 0xd0ac, 0x0178, 0x6914, 0x6a10, 0x2100, 0xa205,
+       0x0150, 0x6860, 0xa106, 0x1118, 0x685c, 0xa206, 0x0120, 0x6962,
+       0x6a5e, 0xa085, 0x0001, 0x002e, 0x001e, 0x0005, 0x00d6, 0x0036,
+       0x6310, 0x2368, 0x684a, 0x6952, 0xa29e, 0x4000, 0x11a0, 0x00c6,
+       0x6318, 0x2360, 0x2009, 0x0000, 0x6838, 0xd0f4, 0x1140, 0x080c,
+-      0x55de, 0x1108, 0xc185, 0x6000, 0xd0bc, 0x0108, 0xc18d, 0x6a66,
++      0x55f7, 0x1108, 0xc185, 0x6000, 0xd0bc, 0x0108, 0xc18d, 0x6a66,
+       0x696a, 0x00ce, 0x0080, 0x6a66, 0x3918, 0xa398, 0x0006, 0x231c,
+       0x686b, 0x0004, 0x6b72, 0x00c6, 0x6318, 0x2360, 0x6004, 0xa084,
+-      0x00ff, 0x686e, 0x00ce, 0x080c, 0x580a, 0x6013, 0x0000, 0x003e,
++      0x00ff, 0x686e, 0x00ce, 0x080c, 0x5823, 0x6013, 0x0000, 0x003e,
+       0x00de, 0x0005, 0x00c6, 0x0026, 0x0016, 0xa186, 0x0035, 0x0110,
+-      0x6a34, 0x0008, 0x6a28, 0x080c, 0xac7a, 0x01f0, 0x2260, 0x611c,
++      0x6a34, 0x0008, 0x6a28, 0x080c, 0xac9a, 0x01f0, 0x2260, 0x611c,
+       0xa186, 0x0003, 0x0118, 0xa186, 0x0006, 0x1190, 0x6834, 0xa206,
+       0x0140, 0x6838, 0xa206, 0x1160, 0x6108, 0x6834, 0xa106, 0x1140,
+       0x0020, 0x6008, 0x6938, 0xa106, 0x1118, 0x6018, 0x6918, 0xa106,
+       0x001e, 0x002e, 0x00ce, 0x0005, 0xa085, 0x0001, 0x0cc8, 0x6944,
+       0xd1cc, 0x0198, 0xa18c, 0x00ff, 0xa18e, 0x0002, 0x1170, 0xad88,
+       0x001e, 0x210c, 0xa18c, 0x0f00, 0x810f, 0xa18e, 0x0001, 0x1128,
+-      0x6810, 0x6914, 0xa115, 0x190c, 0xa4b3, 0x0005, 0x0066, 0x6000,
+-      0xa0b2, 0x0010, 0x1a0c, 0x1519, 0x0013, 0x006e, 0x0005, 0xb197,
+-      0xb6ae, 0xb7d6, 0xb197, 0xb197, 0xb197, 0xb197, 0xb197, 0xb1cf,
+-      0xb85a, 0xb197, 0xb197, 0xb197, 0xb197, 0xb197, 0xb197, 0x080c,
+-      0x1519, 0x0066, 0x6000, 0xa0b2, 0x0010, 0x1a0c, 0x1519, 0x0013,
+-      0x006e, 0x0005, 0xb1b2, 0xbcdf, 0xb1b2, 0xb1b2, 0xb1b2, 0xb1b2,
+-      0xb1b2, 0xb1b2, 0xbca3, 0xbd27, 0xb1b2, 0xc307, 0xc337, 0xc307,
+-      0xc337, 0xb1b2, 0x080c, 0x1519, 0x0066, 0x6000, 0xa0b2, 0x0010,
+-      0x1a0c, 0x1519, 0x0013, 0x006e, 0x0005, 0xb1cd, 0xb9aa, 0xba77,
+-      0xbaa4, 0xbb28, 0xb1cd, 0xbc15, 0xbbc0, 0xb866, 0xbc79, 0xbc8e,
+-      0xb1cd, 0xb1cd, 0xb1cd, 0xb1cd, 0xb1cd, 0x080c, 0x1519, 0xa1b2,
+-      0x0080, 0x1a0c, 0x1519, 0x2100, 0xa1b2, 0x0040, 0x1a04, 0xb5e6,
+-      0x0002, 0xb219, 0xb3e4, 0xb219, 0xb219, 0xb219, 0xb3eb, 0xb219,
+-      0xb219, 0xb219, 0xb219, 0xb219, 0xb219, 0xb219, 0xb219, 0xb219,
+-      0xb219, 0xb219, 0xb219, 0xb219, 0xb219, 0xb219, 0xb219, 0xb219,
+-      0xb21b, 0xb279, 0xb288, 0xb2d6, 0xb2f4, 0xb372, 0xb3d1, 0xb219,
+-      0xb219, 0xb3ee, 0xb219, 0xb219, 0xb401, 0xb40c, 0xb219, 0xb219,
+-      0xb219, 0xb219, 0xb219, 0xb497, 0xb219, 0xb219, 0xb4aa, 0xb219,
+-      0xb219, 0xb462, 0xb219, 0xb219, 0xb219, 0xb4c2, 0xb219, 0xb219,
+-      0xb219, 0xb53c, 0xb219, 0xb219, 0xb219, 0xb219, 0xb219, 0xb219,
+-      0xb5ad, 0x080c, 0x1519, 0x080c, 0x570b, 0x1150, 0x2001, 0xc635,
+-      0x2004, 0xd0cc, 0x1128, 0xa084, 0x0009, 0xa086, 0x0008, 0x1140,
+-      0x6007, 0x0009, 0x602b, 0x0009, 0x6013, 0x0000, 0x0804, 0xb3df,
+-      0x080c, 0x568d, 0x00e6, 0x00c6, 0x0036, 0x0026, 0x0016, 0x6218,
+-      0x2270, 0x72a0, 0x0026, 0x2019, 0x0029, 0x080c, 0x7b16, 0x0076,
+-      0x2039, 0x0000, 0x080c, 0x7a0e, 0x2c08, 0x080c, 0xbeea, 0x007e,
+-      0x001e, 0x2e60, 0x080c, 0x553e, 0x001e, 0x002e, 0x003e, 0x00ce,
+-      0x00ee, 0x6618, 0x00c6, 0x2660, 0x080c, 0x534c, 0x00ce, 0xa6b0,
+-      0x0001, 0x2634, 0xa684, 0x00ff, 0xa082, 0x0006, 0x0278, 0x080c,
+-      0xbe2e, 0x1904, 0xb2d0, 0x080c, 0xbdce, 0x1120, 0x6007, 0x0008,
+-      0x0804, 0xb3df, 0x6007, 0x0009, 0x0804, 0xb3df, 0x080c, 0xc016,
+-      0x0128, 0x080c, 0xbe2e, 0x0d78, 0x0804, 0xb2d0, 0x6013, 0x1900,
+-      0x0c88, 0x080c, 0x2f69, 0x1904, 0xb5e3, 0x6106, 0x080c, 0xbd88,
+-      0x6007, 0x0006, 0x0804, 0xb3df, 0x6007, 0x0007, 0x0804, 0xb3df,
+-      0x080c, 0xc36b, 0x1904, 0xb5e3, 0x080c, 0x2f69, 0x1904, 0xb5e3,
+-      0x00d6, 0x6618, 0x2668, 0x6e04, 0xa684, 0x00ff, 0xa082, 0x0006,
+-      0x1220, 0x2001, 0x0001, 0x080c, 0x527f, 0xa6b4, 0xff00, 0x8637,
+-      0xa686, 0x0006, 0x0188, 0xa686, 0x0004, 0x0170, 0x6e04, 0xa6b4,
+-      0x00ff, 0xa686, 0x0006, 0x0140, 0xa686, 0x0004, 0x0128, 0xa686,
+-      0x0005, 0x0110, 0x00de, 0x00e0, 0x080c, 0xbe8c, 0x11a0, 0xa686,
+-      0x0006, 0x1150, 0x0026, 0x6218, 0xa290, 0x0028, 0x2214, 0x2009,
+-      0x0000, 0x080c, 0x2e8b, 0x002e, 0x080c, 0x53df, 0x6007, 0x000a,
+-      0x00de, 0x0804, 0xb3df, 0x6007, 0x000b, 0x00de, 0x0804, 0xb3df,
+-      0x080c, 0x2e46, 0x6007, 0x0001, 0x0804, 0xb3df, 0x080c, 0xc36b,
+-      0x1904, 0xb5e3, 0x080c, 0x2f69, 0x1904, 0xb5e3, 0x6618, 0x00d6,
+-      0x2668, 0x6e04, 0x00de, 0xa686, 0x0707, 0x0d50, 0x0026, 0x6218,
++      0x6810, 0x6914, 0xa115, 0x190c, 0xa4d3, 0x0005, 0x080c, 0x95fc,
++      0x0804, 0x7ead, 0x0066, 0x6000, 0xa0b2, 0x0010, 0x1a0c, 0x1519,
++      0x0013, 0x006e, 0x0005, 0xb1bb, 0xb6d2, 0xb7fa, 0xb1bb, 0xb1bb,
++      0xb1bb, 0xb1bb, 0xb1bb, 0xb1f3, 0xb87e, 0xb1bb, 0xb1bb, 0xb1bb,
++      0xb1bb, 0xb1bb, 0xb1bb, 0x080c, 0x1519, 0x0066, 0x6000, 0xa0b2,
++      0x0010, 0x1a0c, 0x1519, 0x0013, 0x006e, 0x0005, 0xb1d6, 0xbd05,
++      0xb1d6, 0xb1d6, 0xb1d6, 0xb1d6, 0xb1d6, 0xb1d6, 0xbcc7, 0xbd4d,
++      0xb1d6, 0xc32d, 0xc35d, 0xc32d, 0xc35d, 0xb1d6, 0x080c, 0x1519,
++      0x0066, 0x6000, 0xa0b2, 0x0010, 0x1a0c, 0x1519, 0x0013, 0x006e,
++      0x0005, 0xb1f1, 0xb9ce, 0xba9b, 0xbac8, 0xbb4c, 0xb1f1, 0xbc39,
++      0xbbe4, 0xb88a, 0xbc9d, 0xbcb2, 0xb1f1, 0xb1f1, 0xb1f1, 0xb1f1,
++      0xb1f1, 0x080c, 0x1519, 0xa1b2, 0x0080, 0x1a0c, 0x1519, 0x2100,
++      0xa1b2, 0x0040, 0x1a04, 0xb60a, 0x0002, 0xb23d, 0xb408, 0xb23d,
++      0xb23d, 0xb23d, 0xb40f, 0xb23d, 0xb23d, 0xb23d, 0xb23d, 0xb23d,
++      0xb23d, 0xb23d, 0xb23d, 0xb23d, 0xb23d, 0xb23d, 0xb23d, 0xb23d,
++      0xb23d, 0xb23d, 0xb23d, 0xb23d, 0xb23f, 0xb29d, 0xb2ac, 0xb2fa,
++      0xb318, 0xb396, 0xb3f5, 0xb23d, 0xb23d, 0xb412, 0xb23d, 0xb23d,
++      0xb425, 0xb430, 0xb23d, 0xb23d, 0xb23d, 0xb23d, 0xb23d, 0xb4bb,
++      0xb23d, 0xb23d, 0xb4ce, 0xb23d, 0xb23d, 0xb486, 0xb23d, 0xb23d,
++      0xb23d, 0xb4e6, 0xb23d, 0xb23d, 0xb23d, 0xb560, 0xb23d, 0xb23d,
++      0xb23d, 0xb23d, 0xb23d, 0xb23d, 0xb5d1, 0x080c, 0x1519, 0x080c,
++      0x5724, 0x1150, 0x2001, 0xc635, 0x2004, 0xd0cc, 0x1128, 0xa084,
++      0x0009, 0xa086, 0x0008, 0x1140, 0x6007, 0x0009, 0x602b, 0x0009,
++      0x6013, 0x0000, 0x0804, 0xb403, 0x080c, 0x56a6, 0x00e6, 0x00c6,
++      0x0036, 0x0026, 0x0016, 0x6218, 0x2270, 0x72a0, 0x0026, 0x2019,
++      0x0029, 0x080c, 0x7b2f, 0x0076, 0x2039, 0x0000, 0x080c, 0x7a27,
++      0x2c08, 0x080c, 0xbf10, 0x007e, 0x001e, 0x2e60, 0x080c, 0x5557,
++      0x001e, 0x002e, 0x003e, 0x00ce, 0x00ee, 0x6618, 0x00c6, 0x2660,
++      0x080c, 0x5365, 0x00ce, 0xa6b0, 0x0001, 0x2634, 0xa684, 0x00ff,
++      0xa082, 0x0006, 0x0278, 0x080c, 0xbe54, 0x1904, 0xb2f4, 0x080c,
++      0xbdf4, 0x1120, 0x6007, 0x0008, 0x0804, 0xb403, 0x6007, 0x0009,
++      0x0804, 0xb403, 0x080c, 0xc03c, 0x0128, 0x080c, 0xbe54, 0x0d78,
++      0x0804, 0xb2f4, 0x6013, 0x1900, 0x0c88, 0x080c, 0x2f69, 0x1904,
++      0xb607, 0x6106, 0x080c, 0xbdae, 0x6007, 0x0006, 0x0804, 0xb403,
++      0x6007, 0x0007, 0x0804, 0xb403, 0x080c, 0xc391, 0x1904, 0xb607,
++      0x080c, 0x2f69, 0x1904, 0xb607, 0x00d6, 0x6618, 0x2668, 0x6e04,
++      0xa684, 0x00ff, 0xa082, 0x0006, 0x1220, 0x2001, 0x0001, 0x080c,
++      0x5298, 0xa6b4, 0xff00, 0x8637, 0xa686, 0x0006, 0x0188, 0xa686,
++      0x0004, 0x0170, 0x6e04, 0xa6b4, 0x00ff, 0xa686, 0x0006, 0x0140,
++      0xa686, 0x0004, 0x0128, 0xa686, 0x0005, 0x0110, 0x00de, 0x00e0,
++      0x080c, 0xbeb2, 0x11a0, 0xa686, 0x0006, 0x1150, 0x0026, 0x6218,
+       0xa290, 0x0028, 0x2214, 0x2009, 0x0000, 0x080c, 0x2e8b, 0x002e,
+-      0x6007, 0x000c, 0x0804, 0xb3df, 0x080c, 0x570b, 0x1140, 0x2001,
+-      0xc635, 0x2004, 0xa084, 0x0009, 0xa086, 0x0008, 0x1110, 0x0804,
+-      0xb228, 0x080c, 0x568d, 0x6618, 0xa6b0, 0x0001, 0x2634, 0xa684,
+-      0x00ff, 0xa082, 0x0006, 0x06e8, 0x1138, 0x0026, 0x2001, 0x0006,
+-      0x080c, 0x52be, 0x002e, 0x0050, 0xa6b4, 0xff00, 0x8637, 0xa686,
+-      0x0004, 0x0120, 0xa686, 0x0006, 0x1904, 0xb2d0, 0x080c, 0xbe99,
+-      0x1120, 0x6007, 0x000e, 0x0804, 0xb3df, 0x0046, 0x6418, 0xa4a0,
+-      0x0028, 0x2424, 0xa4a4, 0x00ff, 0x8427, 0x0046, 0x080c, 0x2e46,
+-      0x004e, 0x0016, 0xa006, 0x2009, 0xc653, 0x210c, 0xd1a4, 0x0158,
+-      0x2009, 0x0029, 0x080c, 0xc183, 0x6018, 0x00d6, 0x2068, 0x6800,
+-      0xc0e5, 0x6802, 0x00de, 0x001e, 0x004e, 0x6007, 0x0001, 0x0804,
+-      0xb3df, 0x2001, 0x0001, 0x080c, 0x527f, 0x0156, 0x0016, 0x0026,
+-      0x0036, 0x20a9, 0x0004, 0x2019, 0xc605, 0x2011, 0xcc90, 0x080c,
+-      0xa0fc, 0x003e, 0x002e, 0x001e, 0x015e, 0xa005, 0x0168, 0xa6b4,
+-      0xff00, 0x8637, 0xa682, 0x0004, 0x0a04, 0xb2d0, 0xa682, 0x0007,
+-      0x0a04, 0xb31e, 0x0804, 0xb2d0, 0x6013, 0x1900, 0x6007, 0x0009,
+-      0x0804, 0xb3df, 0x080c, 0x570b, 0x1140, 0x2001, 0xc635, 0x2004,
+-      0xa084, 0x0009, 0xa086, 0x0008, 0x1110, 0x0804, 0xb228, 0x080c,
+-      0x568d, 0x6618, 0xa6b0, 0x0001, 0x2634, 0xa684, 0x00ff, 0xa082,
+-      0x0006, 0x06b8, 0xa6b4, 0xff00, 0x8637, 0xa686, 0x0004, 0x0120,
+-      0xa686, 0x0006, 0x1904, 0xb2d0, 0x080c, 0xbec1, 0x1138, 0x080c,
+-      0xbdce, 0x1120, 0x6007, 0x0010, 0x0804, 0xb3df, 0x0046, 0x6418,
+-      0xa4a0, 0x0028, 0x2424, 0xa4a4, 0x00ff, 0x8427, 0x0046, 0x080c,
+-      0x2e46, 0x004e, 0x0016, 0xa006, 0x2009, 0xc653, 0x210c, 0xd1a4,
+-      0x0158, 0x2009, 0x0029, 0x080c, 0xc183, 0x6018, 0x00d6, 0x2068,
+-      0x6800, 0xc0e5, 0x6802, 0x00de, 0x001e, 0x004e, 0x6007, 0x0001,
+-      0x00f0, 0x080c, 0xc016, 0x0140, 0xa6b4, 0xff00, 0x8637, 0xa686,
+-      0x0006, 0x0950, 0x0804, 0xb2d0, 0x6013, 0x1900, 0x6007, 0x0009,
+-      0x0070, 0x080c, 0x2f69, 0x1904, 0xb5e3, 0x080c, 0xc36b, 0x1904,
+-      0xb5e3, 0x080c, 0xb647, 0x1904, 0xb2d0, 0x6007, 0x0012, 0x6003,
+-      0x0001, 0x080c, 0x79df, 0x0005, 0x6007, 0x0001, 0x6003, 0x0001,
+-      0x080c, 0x79df, 0x0cc0, 0x6007, 0x0005, 0x0cc0, 0x080c, 0xc36b,
+-      0x1904, 0xb5e3, 0x080c, 0x2f69, 0x1904, 0xb5e3, 0x080c, 0xb647,
+-      0x1904, 0xb2d0, 0x6007, 0x0020, 0x6003, 0x0001, 0x080c, 0x79df,
+-      0x0005, 0x080c, 0x2f69, 0x1904, 0xb5e3, 0x6007, 0x0023, 0x6003,
+-      0x0001, 0x080c, 0x79df, 0x0005, 0x080c, 0xc36b, 0x1904, 0xb5e3,
+-      0x080c, 0x2f69, 0x1904, 0xb5e3, 0x080c, 0xb647, 0x1904, 0xb2d0,
+-      0x0016, 0x0026, 0x2011, 0xcc91, 0x2214, 0xa286, 0xffff, 0x0190,
+-      0x2c08, 0x080c, 0xac7a, 0x01e0, 0x2260, 0x2011, 0xcc90, 0x2214,
+-      0x6008, 0xa206, 0x11a8, 0x6018, 0xa190, 0x0006, 0x2214, 0xa206,
+-      0x01e8, 0x0070, 0x2011, 0xcc90, 0x2214, 0x2c08, 0xa006, 0x080c,
+-      0xc155, 0x11a0, 0x2011, 0xcc91, 0x2214, 0xa286, 0xffff, 0x01c0,
+-      0x2160, 0x6007, 0x0026, 0x6013, 0x1700, 0x2011, 0xcc89, 0x2214,
+-      0xa296, 0xffff, 0x1180, 0x6007, 0x0025, 0x0068, 0x601c, 0xa086,
+-      0x0007, 0x1d70, 0x6004, 0xa086, 0x0024, 0x1110, 0x080c, 0x95dc,
+-      0x2160, 0x6007, 0x0025, 0x6003, 0x0001, 0x080c, 0x79df, 0x002e,
+-      0x001e, 0x0005, 0x2001, 0x0001, 0x080c, 0x527f, 0x0156, 0x0016,
+-      0x0026, 0x0036, 0x20a9, 0x0004, 0x2019, 0xc605, 0x2011, 0xcc96,
+-      0x080c, 0xa0fc, 0x003e, 0x002e, 0x001e, 0x015e, 0x0120, 0x6007,
+-      0x0031, 0x0804, 0xb3df, 0x080c, 0x9dee, 0x080c, 0x5f22, 0x11b0,
+-      0x0006, 0x0026, 0x0036, 0x080c, 0x5f3e, 0x1158, 0x2001, 0xc8e6,
+-      0x2003, 0x0001, 0x2001, 0xc600, 0x2003, 0x0001, 0x080c, 0x5e5a,
+-      0x0010, 0x080c, 0x5ef9, 0x003e, 0x002e, 0x000e, 0x0005, 0x080c,
+-      0x2f69, 0x1904, 0xb5e3, 0x080c, 0xb647, 0x1904, 0xb2d0, 0x6106,
+-      0x080c, 0xb663, 0x6007, 0x002b, 0x0804, 0xb3df, 0x6007, 0x002c,
+-      0x0804, 0xb3df, 0x080c, 0xc36b, 0x1904, 0xb5e3, 0x080c, 0x2f69,
+-      0x1904, 0xb5e3, 0x080c, 0xb647, 0x1904, 0xb2d0, 0x6106, 0x080c,
+-      0xb667, 0x1120, 0x6007, 0x002e, 0x0804, 0xb3df, 0x6007, 0x002f,
+-      0x0804, 0xb3df, 0x080c, 0x2f69, 0x1904, 0xb5e3, 0x00e6, 0x00d6,
+-      0x00c6, 0x6018, 0xa080, 0x0001, 0x200c, 0xa184, 0x00ff, 0xa086,
+-      0x0006, 0x0158, 0xa184, 0xff00, 0x8007, 0xa086, 0x0006, 0x0128,
+-      0x00ce, 0x00de, 0x00ee, 0x0804, 0xb3e4, 0x2001, 0xc672, 0x2004,
+-      0xd0e4, 0x0904, 0xb539, 0x2071, 0xcc8c, 0x7010, 0x6036, 0x7014,
+-      0x603a, 0x7108, 0x720c, 0x2001, 0xc653, 0x2004, 0xd0a4, 0x0140,
+-      0x6018, 0x2068, 0x6810, 0xa106, 0x1118, 0x6814, 0xa206, 0x01f8,
+-      0x2001, 0xc653, 0x2004, 0xd0ac, 0x1590, 0x2069, 0xc600, 0x6874,
+-      0xa206, 0x1568, 0x6870, 0xa106, 0x1550, 0x7210, 0x080c, 0xac7a,
+-      0x0558, 0x080c, 0xc1ef, 0x0540, 0x622a, 0x6007, 0x0036, 0x6003,
+-      0x0001, 0x080c, 0x7999, 0x00ce, 0x00de, 0x00ee, 0x0005, 0x7214,
+-      0xa286, 0xffff, 0x0150, 0x080c, 0xac7a, 0x01b0, 0xa280, 0x0002,
+-      0x2004, 0x7110, 0xa106, 0x1180, 0x0c08, 0x7210, 0x2c08, 0xa085,
+-      0x0001, 0x080c, 0xc155, 0x2c10, 0x2160, 0x0130, 0x08b8, 0x6007,
+-      0x0037, 0x6013, 0x1500, 0x08d8, 0x6007, 0x0037, 0x6013, 0x1700,
+-      0x08b0, 0x6007, 0x0012, 0x0898, 0x080c, 0x2f69, 0x1904, 0xb5e3,
+-      0x6018, 0xa080, 0x0001, 0x2004, 0xa084, 0xff00, 0x8007, 0xa086,
+-      0x0006, 0x1904, 0xb3e4, 0x00e6, 0x00d6, 0x00c6, 0x2001, 0xc672,
+-      0x2004, 0xd0e4, 0x0904, 0xb5a5, 0x2069, 0xc600, 0x2071, 0xcc8c,
+-      0x7008, 0x6036, 0x720c, 0x623a, 0xa286, 0xffff, 0x1150, 0x7208,
+-      0x00c6, 0x2c08, 0xa085, 0x0001, 0x080c, 0xc155, 0x2c10, 0x00ce,
+-      0x0588, 0x080c, 0xac7a, 0x0570, 0x00c6, 0x0026, 0x2260, 0x080c,
+-      0xa94d, 0x002e, 0x00ce, 0x7118, 0xa18c, 0xff00, 0x810f, 0xa186,
+-      0x0001, 0x0158, 0xa186, 0x0005, 0x0118, 0xa186, 0x0007, 0x1178,
+-      0xa280, 0x0004, 0x2004, 0xa005, 0x0150, 0x0056, 0x7510, 0x7614,
+-      0x080c, 0xc206, 0x005e, 0x00ce, 0x00de, 0x00ee, 0x0005, 0x6007,
+-      0x003b, 0x602b, 0x0009, 0x6013, 0x2a00, 0x6003, 0x0001, 0x080c,
+-      0x7999, 0x0c88, 0x6007, 0x003b, 0x602b, 0x0009, 0x6013, 0x1700,
+-      0x6003, 0x0001, 0x080c, 0x7999, 0x0c30, 0x6007, 0x003b, 0x602b,
+-      0x000b, 0x6013, 0x0000, 0x0804, 0xb50f, 0x00e6, 0x0026, 0x080c,
+-      0x570b, 0x0558, 0x080c, 0x568d, 0x080c, 0xc3e6, 0x1520, 0x2071,
+-      0xc600, 0x70d4, 0xc085, 0x70d6, 0x00f6, 0x2079, 0x0100, 0x72a0,
+-      0xa284, 0x00ff, 0x7072, 0x78e6, 0xa284, 0xff00, 0x7274, 0xa205,
+-      0x7076, 0x78ea, 0x00fe, 0x70df, 0x0000, 0x2001, 0xc653, 0x2004,
+-      0xd0a4, 0x0120, 0x2011, 0xc940, 0x2013, 0x07d0, 0xd0ac, 0x1128,
+-      0x080c, 0x2c62, 0x0010, 0x080c, 0xc412, 0x002e, 0x00ee, 0x080c,
+-      0x95dc, 0x0804, 0xb3e3, 0x080c, 0x95dc, 0x0005, 0x2600, 0x0002,
+-      0xb5f1, 0xb625, 0xb636, 0xb5f1, 0xb5f1, 0xb5f3, 0xb60c, 0xb5f1,
+-      0xb5f1, 0x080c, 0x1519, 0x080c, 0xc36b, 0x1d68, 0x080c, 0x2f69,
+-      0x1d50, 0x080c, 0xb647, 0x1138, 0x6007, 0x0045, 0x6003, 0x0001,
+-      0x080c, 0x79df, 0x0005, 0x080c, 0x2e46, 0x6007, 0x0001, 0x6003,
+-      0x0001, 0x080c, 0x79df, 0x0005, 0x080c, 0x2f69, 0x19a0, 0x080c,
+-      0x768f, 0x1160, 0x2e00, 0xa080, 0x0010, 0x2004, 0x8007, 0xd084,
+-      0x0110, 0x080c, 0xc41b, 0x080c, 0x95dc, 0x0005, 0x2009, 0x0046,
+-      0x080c, 0xc441, 0x080c, 0x95dc, 0x0005, 0x080c, 0x2f69, 0x1904,
+-      0xb5e3, 0x2009, 0x0041, 0x080c, 0xc441, 0x6007, 0x0047, 0x6003,
+-      0x0001, 0x080c, 0x79df, 0x080c, 0x7e94, 0x0005, 0x080c, 0x2f69,
+-      0x1904, 0xb5e3, 0x2009, 0x0042, 0x080c, 0xc441, 0x6007, 0x0047,
+-      0x6003, 0x0001, 0x080c, 0x79df, 0x080c, 0x7e94, 0x0005, 0x00d6,
+-      0x0066, 0x6618, 0x2668, 0x6e04, 0xa6b4, 0xff00, 0x8637, 0xa686,
+-      0x0006, 0x0170, 0xa686, 0x0004, 0x0158, 0x6e04, 0xa6b4, 0x00ff,
+-      0xa686, 0x0006, 0x0128, 0xa686, 0x0004, 0x0110, 0xa085, 0x0001,
+-      0x006e, 0x00de, 0x0005, 0x00d6, 0x0449, 0x00de, 0x0005, 0x00d6,
+-      0x0491, 0x11f0, 0x680c, 0xa08c, 0xff00, 0x6820, 0xa084, 0x00ff,
+-      0xa115, 0x6212, 0x6824, 0x602a, 0xd1e4, 0x0118, 0x2009, 0x0001,
+-      0x0060, 0xd1ec, 0x0168, 0x6920, 0xa18c, 0x00ff, 0x6824, 0x080c,
+-      0x29c7, 0x1130, 0x2110, 0x2009, 0x0000, 0x080c, 0x2e8b, 0x0018,
+-      0xa085, 0x0001, 0x0008, 0xa006, 0x00de, 0x0005, 0x2069, 0xcc8d,
+-      0x6800, 0xa082, 0x0010, 0x1228, 0x6013, 0x0000, 0xa085, 0x0001,
+-      0x0008, 0xa006, 0x0005, 0x6013, 0x0000, 0x2069, 0xcc8c, 0x6808,
+-      0xa084, 0xff00, 0xa086, 0x0800, 0x1140, 0x6800, 0xa084, 0x00ff,
+-      0xa08e, 0x0014, 0x0110, 0xa08e, 0x0010, 0x0005, 0x6004, 0xa0b2,
+-      0x0080, 0x1a0c, 0x1519, 0xa1b6, 0x0013, 0x1130, 0x2008, 0xa1b2,
+-      0x0040, 0x1a04, 0xb7b0, 0x0092, 0xa1b6, 0x0027, 0x0120, 0xa1b6,
+-      0x0014, 0x190c, 0x1519, 0x2001, 0x0007, 0x080c, 0x52be, 0x080c,
+-      0x7db1, 0x080c, 0xae4d, 0x080c, 0x7e94, 0x0005, 0xb70e, 0xb710,
+-      0xb70e, 0xb70e, 0xb70e, 0xb710, 0xb722, 0xb7a9, 0xb772, 0xb7a9,
+-      0xb785, 0xb7a9, 0xb722, 0xb7a9, 0xb7a1, 0xb7a9, 0xb7a1, 0xb7a9,
+-      0xb7a9, 0xb70e, 0xb70e, 0xb70e, 0xb70e, 0xb70e, 0xb70e, 0xb70e,
+-      0xb70e, 0xb70e, 0xb70e, 0xb70e, 0xb710, 0xb70e, 0xb7a9, 0xb70e,
+-      0xb70e, 0xb7a9, 0xb70e, 0xb7a6, 0xb7a9, 0xb70e, 0xb70e, 0xb70e,
+-      0xb70e, 0xb7a9, 0xb7a9, 0xb70e, 0xb7a9, 0xb7a9, 0xb70e, 0xb71c,
+-      0xb70e, 0xb70e, 0xb70e, 0xb70e, 0xb7a5, 0xb7a9, 0xb70e, 0xb70e,
+-      0xb7a9, 0xb7a9, 0xb70e, 0xb70e, 0xb70e, 0xb70e, 0x080c, 0x1519,
+-      0x080c, 0x7db1, 0x2001, 0xc8fd, 0x2004, 0x6016, 0x6003, 0x0002,
+-      0x080c, 0x7e94, 0x0804, 0xb7af, 0x2001, 0x0000, 0x080c, 0x527f,
+-      0x0804, 0xb7a9, 0x00f6, 0x2079, 0xc652, 0x7804, 0x00fe, 0xd0ac,
+-      0x1904, 0xb7a9, 0x2001, 0x0000, 0x080c, 0x527f, 0x6018, 0xa080,
+-      0x0004, 0x2004, 0xa086, 0x00ff, 0x1140, 0x00f6, 0x2079, 0xc600,
+-      0x7898, 0x8000, 0x789a, 0x00fe, 0x00e0, 0x00c6, 0x6018, 0x2060,
+-      0x6000, 0xd0f4, 0x1140, 0x6010, 0xa005, 0x0128, 0x00ce, 0x080c,
+-      0x40ef, 0x0804, 0xb7a9, 0x00ce, 0x2001, 0xc600, 0x2004, 0xa086,
+-      0x0002, 0x1138, 0x00f6, 0x2079, 0xc600, 0x7898, 0x8000, 0x789a,
+-      0x00fe, 0x2001, 0x0002, 0x080c, 0x5291, 0x080c, 0x7db1, 0x601f,
+-      0x0001, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x79df, 0x080c,
+-      0x7e94, 0x00c6, 0x6118, 0x2160, 0x2009, 0x0001, 0x080c, 0x6fb9,
+-      0x00ce, 0x04e8, 0x6618, 0x00d6, 0x2668, 0x6e04, 0x00de, 0xa6b4,
+-      0xff00, 0x8637, 0xa686, 0x0006, 0x0560, 0xa686, 0x0004, 0x0548,
+-      0x080c, 0x7669, 0x2001, 0x0004, 0x0410, 0x2001, 0xc600, 0x2004,
+-      0xa086, 0x0003, 0x1110, 0x080c, 0x40ef, 0x2001, 0x0006, 0x04a1,
+-      0x6618, 0x00d6, 0x2668, 0x6e04, 0x00de, 0xa6b4, 0xff00, 0x8637,
+-      0xa686, 0x0006, 0x0170, 0x2001, 0x0006, 0x0048, 0x2001, 0x0004,
+-      0x0030, 0x2001, 0x0006, 0x0401, 0x0020, 0x0018, 0x0010, 0x080c,
+-      0x52be, 0x080c, 0x7db1, 0x080c, 0x95dc, 0x080c, 0x7e94, 0x0005,
+-      0x2600, 0x0002, 0xb7bb, 0xb7bb, 0xb7bb, 0xb7bb, 0xb7bb, 0xb7bd,
+-      0xb7bb, 0xb7bd, 0xb7bb, 0x080c, 0x1519, 0x080c, 0x7db1, 0x080c,
+-      0x95dc, 0x080c, 0x7e94, 0x0005, 0x0016, 0x00d6, 0x6118, 0x2168,
+-      0x6900, 0xd184, 0x0140, 0x080c, 0x5291, 0x2001, 0x0000, 0x080c,
+-      0x527f, 0x080c, 0x2e6c, 0x00de, 0x001e, 0x0005, 0x00d6, 0x6618,
+-      0x2668, 0x6804, 0xa084, 0xff00, 0x8007, 0x00de, 0xa0b2, 0x000c,
+-      0x1a0c, 0x1519, 0xa1b6, 0x0015, 0x1110, 0x003b, 0x0028, 0xa1b6,
+-      0x0016, 0x190c, 0x1519, 0x006b, 0x0005, 0x9cd3, 0x9cd3, 0x9cd3,
+-      0x9cd3, 0x9cd3, 0x9cd3, 0xb846, 0xb805, 0x9cd3, 0x9cd3, 0x9cd3,
+-      0x9cd3, 0x9cd3, 0x9cd3, 0x9cd3, 0x9cd3, 0x9cd3, 0x9cd3, 0xb846,
+-      0xb84d, 0x9cd3, 0x9cd3, 0x9cd3, 0x9cd3, 0x00f6, 0x2079, 0xc652,
+-      0x7804, 0xd0ac, 0x11e0, 0x6018, 0xa07d, 0x01c8, 0x7800, 0xd0f4,
+-      0x1118, 0x7810, 0xa005, 0x1198, 0x2001, 0x0000, 0x080c, 0x527f,
+-      0x2001, 0x0002, 0x080c, 0x5291, 0x601f, 0x0001, 0x6003, 0x0001,
+-      0x6007, 0x0002, 0x080c, 0x79df, 0x080c, 0x7e94, 0x00e8, 0x2011,
+-      0xcc83, 0x2204, 0x8211, 0x220c, 0x080c, 0x29c7, 0x11a8, 0x00c6,
+-      0x080c, 0x533d, 0x0120, 0x00ce, 0x080c, 0x95dc, 0x0068, 0x6010,
+-      0x0006, 0x6014, 0x0006, 0x080c, 0x4f47, 0x000e, 0x6016, 0x000e,
+-      0x6012, 0x00ce, 0x080c, 0x95dc, 0x00fe, 0x0005, 0x6604, 0xa6b6,
+-      0x001e, 0x1110, 0x080c, 0x95dc, 0x0005, 0x080c, 0x9faf, 0x1138,
+-      0x6003, 0x0001, 0x6007, 0x0001, 0x080c, 0x79df, 0x0010, 0x080c,
+-      0x95dc, 0x0005, 0x6004, 0xa08a, 0x0080, 0x1a0c, 0x1519, 0x080c,
+-      0x7db1, 0x080c, 0xae4d, 0x080c, 0x7e94, 0x0005, 0xa182, 0x0040,
+-      0x0002, 0xb87c, 0xb87c, 0xb87c, 0xb87c, 0xb87e, 0xb87c, 0xb87c,
+-      0xb87c, 0xb87c, 0xb87c, 0xb87c, 0xb87c, 0xb87c, 0xb87c, 0xb87c,
+-      0xb87c, 0xb87c, 0xb87c, 0xb87c, 0x080c, 0x1519, 0x00d6, 0x00e6,
+-      0x00f6, 0x0156, 0x0046, 0x0026, 0x6218, 0xa280, 0x002f, 0x2004,
+-      0xa005, 0x0120, 0x2021, 0x0000, 0x080c, 0xc3b7, 0x6106, 0x2071,
+-      0xcc80, 0x7444, 0xa4a4, 0xff00, 0x0904, 0xb8e2, 0xa486, 0x2000,
+-      0x1130, 0x2009, 0x0001, 0x2011, 0x0200, 0x080c, 0x712e, 0x080c,
+-      0x1602, 0x090c, 0x1519, 0x6003, 0x0007, 0x2d00, 0x6837, 0x010d,
+-      0x6803, 0x0000, 0x683b, 0x0000, 0x6c5a, 0x2c00, 0x685e, 0x6008,
+-      0x68b2, 0x6018, 0x2078, 0x78a0, 0x8007, 0x7130, 0x694a, 0x0016,
+-      0xa084, 0xff00, 0x6846, 0x684f, 0x0000, 0x6853, 0x0000, 0x6857,
+-      0x0036, 0x080c, 0x580a, 0x001e, 0xa486, 0x2000, 0x1130, 0x2019,
+-      0x0017, 0x080c, 0xc100, 0x0804, 0xb93f, 0xa486, 0x0400, 0x1130,
+-      0x2019, 0x0002, 0x080c, 0xc0b2, 0x0804, 0xb93f, 0xa486, 0x0200,
+-      0x1110, 0x080c, 0xc097, 0xa486, 0x1000, 0x1110, 0x080c, 0xc0e5,
+-      0x0804, 0xb93f, 0x2069, 0xc9bc, 0x6a00, 0xd284, 0x0904, 0xb9a6,
+-      0xa284, 0x0300, 0x1904, 0xb99f, 0x6804, 0xa005, 0x0904, 0xb987,
+-      0x2d78, 0x6003, 0x0007, 0x080c, 0x15e5, 0x0904, 0xb946, 0x7800,
+-      0xd08c, 0x1118, 0x7804, 0x8001, 0x7806, 0x6013, 0x0000, 0x6803,
+-      0x0000, 0x6837, 0x0116, 0x683b, 0x0000, 0x6008, 0x68b2, 0x2c00,
+-      0x684a, 0x6018, 0x2078, 0x78a0, 0x8007, 0x7130, 0x6986, 0x6846,
+-      0x7928, 0x698a, 0x792c, 0x698e, 0x7930, 0x6992, 0x7934, 0x6996,
+-      0x6853, 0x003d, 0x7244, 0xa294, 0x0003, 0xa286, 0x0002, 0x1118,
+-      0x684f, 0x0040, 0x0040, 0xa286, 0x0001, 0x1118, 0x684f, 0x0080,
+-      0x0010, 0x684f, 0x0000, 0x20a9, 0x000a, 0x2001, 0xcc90, 0xad90,
+-      0x0015, 0x200c, 0x810f, 0x2112, 0x8000, 0x8210, 0x1f04, 0xb931,
+-      0x200c, 0x6982, 0x8000, 0x200c, 0x697e, 0x080c, 0x580a, 0x002e,
+-      0x004e, 0x015e, 0x00fe, 0x00ee, 0x00de, 0x0005, 0x2001, 0xc60e,
+-      0x2004, 0xd084, 0x0120, 0x080c, 0x1602, 0x1904, 0xb8f7, 0x6013,
+-      0x0100, 0x6003, 0x0001, 0x6007, 0x0041, 0x080c, 0x7999, 0x080c,
+-      0x7e94, 0x0c28, 0x2069, 0xcc92, 0x2d04, 0xa084, 0xff00, 0xa086,
+-      0x1200, 0x11a8, 0x2069, 0xcc80, 0x686c, 0xa084, 0x00ff, 0x0016,
+-      0x6110, 0xa18c, 0x0700, 0xa10d, 0x6112, 0x001e, 0x6003, 0x0001,
+-      0x6007, 0x0043, 0x080c, 0x7999, 0x080c, 0x7e94, 0x0840, 0x6868,
+-      0x602a, 0x686c, 0x602e, 0x6013, 0x0200, 0x6003, 0x0001, 0x6007,
+-      0x0041, 0x080c, 0x7999, 0x080c, 0x7e94, 0x0804, 0xb93f, 0x2001,
+-      0xc60d, 0x2004, 0xd0ec, 0x0120, 0x2011, 0x8049, 0x080c, 0x407d,
+-      0x6013, 0x0300, 0x0010, 0x6013, 0x0100, 0x6003, 0x0001, 0x6007,
+-      0x0041, 0x080c, 0x7999, 0x080c, 0x7e94, 0x0804, 0xb93f, 0x6013,
+-      0x0500, 0x0c98, 0x6013, 0x0600, 0x0804, 0xb95a, 0x6013, 0x0200,
+-      0x0804, 0xb95a, 0xa186, 0x0013, 0x1170, 0x6004, 0xa08a, 0x0040,
+-      0x0a0c, 0x1519, 0xa08a, 0x0053, 0x1a0c, 0x1519, 0xa082, 0x0040,
+-      0x2008, 0x0804, 0xba34, 0xa186, 0x0051, 0x0138, 0xa186, 0x0047,
+-      0x11d8, 0x6004, 0xa086, 0x0041, 0x0518, 0x2001, 0x0109, 0x2004,
+-      0xd084, 0x01f0, 0x0126, 0x2091, 0x2800, 0x0006, 0x0016, 0x0026,
+-      0x080c, 0x7873, 0x002e, 0x001e, 0x000e, 0x012e, 0x6000, 0xa086,
+-      0x0002, 0x1170, 0x0804, 0xba77, 0xa186, 0x0027, 0x0120, 0xa186,
+-      0x0014, 0x190c, 0x1519, 0x6004, 0xa082, 0x0040, 0x2008, 0x001a,
+-      0x080c, 0x9623, 0x0005, 0xb9fe, 0xba00, 0xba00, 0xba24, 0xb9fe,
+-      0xb9fe, 0xb9fe, 0xb9fe, 0xb9fe, 0xb9fe, 0xb9fe, 0xb9fe, 0xb9fe,
+-      0xb9fe, 0xb9fe, 0xb9fe, 0xb9fe, 0xb9fe, 0xb9fe, 0x080c, 0x1519,
+-      0x080c, 0x7db1, 0x080c, 0x7e94, 0x0036, 0x00d6, 0x6010, 0xa06d,
+-      0x01c0, 0xad84, 0xf000, 0x01a8, 0x6003, 0x0002, 0x6018, 0x2004,
+-      0xd0bc, 0x1178, 0x2019, 0x0004, 0x080c, 0xc134, 0x6013, 0x0000,
+-      0x6014, 0xa005, 0x1120, 0x2001, 0xc8fe, 0x2004, 0x6016, 0x6003,
+-      0x0007, 0x00de, 0x003e, 0x0005, 0x00d6, 0x080c, 0x7db1, 0x080c,
+-      0x7e94, 0x080c, 0xac8a, 0x0120, 0x6010, 0x2068, 0x080c, 0x1619,
+-      0x080c, 0xae4d, 0x00de, 0x0005, 0x0002, 0xba48, 0xba65, 0xba51,
+-      0xba71, 0xba48, 0xba48, 0xba48, 0xba48, 0xba48, 0xba48, 0xba48,
+-      0xba48, 0xba48, 0xba48, 0xba48, 0xba48, 0xba48, 0xba48, 0xba48,
+-      0x080c, 0x1519, 0x6010, 0xa088, 0x0013, 0x2104, 0xa085, 0x0400,
+-      0x200a, 0x080c, 0x7db1, 0x6010, 0xa080, 0x0013, 0x2004, 0xd0b4,
+-      0x0138, 0x6003, 0x0007, 0x2009, 0x0043, 0x080c, 0x960c, 0x0010,
+-      0x6003, 0x0002, 0x080c, 0x7e94, 0x0005, 0x080c, 0x7db1, 0x080c,
+-      0xc372, 0x1120, 0x080c, 0x7103, 0x080c, 0x95dc, 0x080c, 0x7e94,
+-      0x0005, 0x080c, 0x7db1, 0x2009, 0x0041, 0x0804, 0xbbc0, 0xa182,
+-      0x0040, 0x0002, 0xba8d, 0xba8f, 0xba8d, 0xba8d, 0xba8d, 0xba8d,
+-      0xba8d, 0xba90, 0xba8d, 0xba8d, 0xba8d, 0xba8d, 0xba8d, 0xba8d,
+-      0xba8d, 0xba8d, 0xba8d, 0xba9b, 0xba8d, 0x080c, 0x1519, 0x0005,
+-      0x6003, 0x0004, 0x6110, 0x20e1, 0x0005, 0x3d18, 0x3e20, 0x2c10,
+-      0x080c, 0x1870, 0x0005, 0x00d6, 0x080c, 0x7103, 0x00de, 0x080c,
+-      0xc3d5, 0x080c, 0x95dc, 0x0005, 0xa182, 0x0040, 0x0002, 0xbaba,
+-      0xbaba, 0xbaba, 0xbaba, 0xbaba, 0xbaba, 0xbaba, 0xbabc, 0xbaba,
+-      0xbabf, 0xbaf8, 0xbaba, 0xbaba, 0xbaba, 0xbaba, 0xbaf8, 0xbaba,
+-      0xbaba, 0xbaba, 0x080c, 0x1519, 0x080c, 0x9623, 0x0005, 0x2001,
+-      0xc672, 0x2004, 0xd0e4, 0x0158, 0x2001, 0x0100, 0x2004, 0xa082,
+-      0x0005, 0x0228, 0x2001, 0x011f, 0x2004, 0x6036, 0x0010, 0x6037,
+-      0x0000, 0x080c, 0x7e47, 0x080c, 0x7f6e, 0x6010, 0x00d6, 0x2068,
+-      0x684c, 0xd0fc, 0x0150, 0xa08c, 0x0003, 0xa18e, 0x0002, 0x0168,
+-      0x2009, 0x0041, 0x00de, 0x0804, 0xbbc0, 0x6003, 0x0007, 0x6017,
+-      0x0000, 0x080c, 0x7103, 0x00de, 0x0005, 0x080c, 0xc372, 0x0110,
+-      0x00de, 0x0005, 0x080c, 0x7103, 0x080c, 0x95dc, 0x00de, 0x0ca0,
+-      0x0036, 0x080c, 0x7e47, 0x080c, 0x7f6e, 0x6010, 0x00d6, 0x2068,
+-      0x6018, 0x2004, 0xd0bc, 0x0188, 0x684c, 0xa084, 0x0003, 0xa086,
+-      0x0002, 0x0140, 0x687c, 0x632c, 0xa31a, 0x632e, 0x6880, 0x6328,
+-      0xa31b, 0x632a, 0x6003, 0x0002, 0x0080, 0x2019, 0x0004, 0x080c,
+-      0xc134, 0x6014, 0xa005, 0x1128, 0x2001, 0xc8fe, 0x2004, 0x8003,
+-      0x6016, 0x6013, 0x0000, 0x6003, 0x0007, 0x00de, 0x003e, 0x0005,
+-      0xa186, 0x0013, 0x1150, 0x6004, 0xa086, 0x0042, 0x190c, 0x1519,
+-      0x080c, 0x7db1, 0x080c, 0x7e94, 0x0005, 0xa186, 0x0027, 0x0118,
+-      0xa186, 0x0014, 0x1180, 0x6004, 0xa086, 0x0042, 0x190c, 0x1519,
+-      0x2001, 0x0007, 0x080c, 0x52be, 0x080c, 0x7db1, 0x080c, 0xae4d,
+-      0x080c, 0x7e94, 0x0005, 0xa182, 0x0040, 0x0002, 0xbb61, 0xbb61,
+-      0xbb61, 0xbb61, 0xbb61, 0xbb61, 0xbb61, 0xbb63, 0xbb6f, 0xbb61,
+-      0xbb61, 0xbb61, 0xbb61, 0xbb61, 0xbb61, 0xbb61, 0xbb61, 0xbb61,
+-      0xbb61, 0x080c, 0x1519, 0x0036, 0x0046, 0x20e1, 0x0005, 0x3d18,
+-      0x3e20, 0x2c10, 0x080c, 0x1870, 0x004e, 0x003e, 0x0005, 0x6010,
+-      0x00d6, 0x2068, 0x6810, 0x6a14, 0x0006, 0x0046, 0x0056, 0x6c7c,
+-      0xa422, 0x6d80, 0x2200, 0xa52b, 0x602c, 0xa420, 0x642e, 0x6028,
+-      0xa529, 0x652a, 0x005e, 0x004e, 0x000e, 0xa20d, 0x1178, 0x684c,
+-      0xd0fc, 0x0120, 0x2009, 0x0041, 0x00de, 0x0490, 0x6003, 0x0007,
+-      0x6017, 0x0000, 0x080c, 0x7103, 0x00de, 0x0005, 0x0006, 0x00f6,
+-      0x2c78, 0x080c, 0x56c3, 0x00fe, 0x000e, 0x0120, 0x6003, 0x0002,
+-      0x00de, 0x0005, 0x2009, 0xc60d, 0x210c, 0xd19c, 0x0118, 0x6003,
+-      0x0007, 0x0010, 0x6003, 0x0006, 0x0021, 0x080c, 0x7105, 0x00de,
+-      0x0005, 0xd2fc, 0x0140, 0x8002, 0x8000, 0x8212, 0xa291, 0x0000,
+-      0x2009, 0x0009, 0x0010, 0x2009, 0x0015, 0x6a6a, 0x6866, 0x0005,
+-      0xa182, 0x0040, 0x0208, 0x0062, 0xa186, 0x0013, 0x0120, 0xa186,
+-      0x0014, 0x190c, 0x1519, 0x6020, 0xd0dc, 0x090c, 0x1519, 0x0005,
+-      0xbbe3, 0xbbea, 0xbbf6, 0xbc02, 0xbbe3, 0xbbe3, 0xbbe3, 0xbc11,
+-      0xbbe3, 0xbbe5, 0xbbe5, 0xbbe3, 0xbbe3, 0xbbe3, 0xbbe3, 0xbbe5,
+-      0xbbe3, 0xbbe5, 0xbbe3, 0x080c, 0x1519, 0x6020, 0xd0dc, 0x090c,
+-      0x1519, 0x0005, 0x6003, 0x0001, 0x6106, 0x080c, 0x7999, 0x0126,
+-      0x2091, 0x8000, 0x080c, 0x7e94, 0x012e, 0x0005, 0x6003, 0x0001,
+-      0x6106, 0x080c, 0x7999, 0x0126, 0x2091, 0x8000, 0x080c, 0x7e94,
+-      0x012e, 0x0005, 0x6003, 0x0003, 0x6106, 0x2c10, 0x080c, 0x2068,
+-      0x0126, 0x2091, 0x8000, 0x080c, 0x79fc, 0x080c, 0x7f6e, 0x012e,
+-      0x0005, 0xa016, 0x080c, 0x1870, 0x0005, 0x0126, 0x2091, 0x8000,
+-      0x0036, 0x00d6, 0xa182, 0x0040, 0x0023, 0x00de, 0x003e, 0x012e,
+-      0x0005, 0xbc31, 0xbc33, 0xbc45, 0xbc60, 0xbc31, 0xbc31, 0xbc31,
+-      0xbc75, 0xbc31, 0xbc31, 0xbc31, 0xbc31, 0xbc31, 0xbc31, 0xbc31,
+-      0xbc31, 0x080c, 0x1519, 0x6010, 0x2068, 0x684c, 0xd0fc, 0x01f8,
+-      0xa09c, 0x0003, 0xa39e, 0x0003, 0x01d0, 0x6003, 0x0001, 0x6106,
+-      0x080c, 0x7999, 0x080c, 0x7e94, 0x0498, 0x6010, 0x2068, 0x684c,
+-      0xd0fc, 0x0168, 0xa09c, 0x0003, 0xa39e, 0x0003, 0x0140, 0x6003,
+-      0x0001, 0x6106, 0x080c, 0x7999, 0x080c, 0x7e94, 0x0408, 0x6013,
+-      0x0000, 0x6017, 0x0000, 0x2019, 0x0004, 0x080c, 0xc134, 0x00c0,
+-      0x6010, 0x2068, 0x684c, 0xd0fc, 0x0d90, 0xa09c, 0x0003, 0xa39e,
+-      0x0003, 0x0d68, 0x6003, 0x0003, 0x6106, 0x2c10, 0x080c, 0x2068,
+-      0x080c, 0x79fc, 0x080c, 0x7f6e, 0x0018, 0xa016, 0x080c, 0x1870,
+-      0x0005, 0x080c, 0x7db1, 0x6110, 0x81ff, 0x0158, 0x00d6, 0x2168,
+-      0x080c, 0xc4ca, 0x0036, 0x2019, 0x0029, 0x080c, 0xc134, 0x003e,
+-      0x00de, 0x080c, 0xae4d, 0x080c, 0x7e94, 0x0005, 0x080c, 0x7e47,
+-      0x6110, 0x81ff, 0x0158, 0x00d6, 0x2168, 0x080c, 0xc4ca, 0x0036,
+-      0x2019, 0x0029, 0x080c, 0xc134, 0x003e, 0x00de, 0x080c, 0xae4d,
+-      0x080c, 0x7f6e, 0x0005, 0xa182, 0x0085, 0x0002, 0xbcaf, 0xbcad,
+-      0xbcad, 0xbcbb, 0xbcad, 0xbcad, 0xbcad, 0x080c, 0x1519, 0x6003,
+-      0x000b, 0x6106, 0x080c, 0x7999, 0x0126, 0x2091, 0x8000, 0x080c,
+-      0x7e94, 0x012e, 0x0005, 0x0026, 0x00e6, 0x080c, 0xc36b, 0x0118,
+-      0x080c, 0x95dc, 0x00c8, 0x2071, 0xcc80, 0x7224, 0x6212, 0x7220,
+-      0x080c, 0xbfe2, 0x0118, 0x6007, 0x0086, 0x0040, 0x6007, 0x0087,
+-      0x7224, 0xa296, 0xffff, 0x1110, 0x6007, 0x0086, 0x6003, 0x0001,
+-      0x080c, 0x7999, 0x080c, 0x7e94, 0x00ee, 0x002e, 0x0005, 0xa186,
+-      0x0013, 0x1160, 0x6004, 0xa08a, 0x0085, 0x0a0c, 0x1519, 0xa08a,
+-      0x008c, 0x1a0c, 0x1519, 0xa082, 0x0085, 0x00a2, 0xa186, 0x0027,
+-      0x0130, 0xa186, 0x0014, 0x0118, 0x080c, 0x9623, 0x0050, 0x2001,
+-      0x0007, 0x080c, 0x52be, 0x080c, 0x7db1, 0x080c, 0xae4d, 0x080c,
+-      0x7e94, 0x0005, 0xbd09, 0xbd0b, 0xbd0b, 0xbd09, 0xbd09, 0xbd09,
+-      0xbd09, 0x080c, 0x1519, 0x080c, 0x7db1, 0x080c, 0xae4d, 0x080c,
+-      0x7e94, 0x0005, 0xa182, 0x0085, 0x0a0c, 0x1519, 0xa182, 0x008c,
+-      0x1a0c, 0x1519, 0xa182, 0x0085, 0x0002, 0xbd24, 0xbd24, 0xbd24,
+-      0xbd26, 0xbd24, 0xbd24, 0xbd24, 0x080c, 0x1519, 0x0005, 0xa186,
+-      0x0013, 0x0148, 0xa186, 0x0014, 0x0130, 0xa186, 0x0027, 0x0118,
+-      0x080c, 0x9623, 0x0030, 0x080c, 0x7db1, 0x080c, 0xae4d, 0x080c,
+-      0x7e94, 0x0005, 0x0036, 0x080c, 0xc3d5, 0x603f, 0x0000, 0x2019,
+-      0x000b, 0x0031, 0x601f, 0x0006, 0x6003, 0x0007, 0x003e, 0x0005,
+-      0x0126, 0x0036, 0x2091, 0x8000, 0x0086, 0x2c40, 0x0096, 0x2049,
+-      0x0000, 0x080c, 0x8fc9, 0x009e, 0x008e, 0x1578, 0x0076, 0x2c38,
+-      0x080c, 0x9068, 0x007e, 0x1548, 0x6000, 0xa086, 0x0000, 0x0528,
+-      0x601c, 0xa086, 0x0007, 0x0508, 0x00d6, 0x6000, 0xa086, 0x0004,
+-      0x1150, 0x080c, 0xc3d5, 0x601f, 0x0007, 0x2001, 0xc8fd, 0x2004,
+-      0x6016, 0x080c, 0x1953, 0x6010, 0x2068, 0x080c, 0xac8a, 0x0110,
+-      0x080c, 0xc134, 0x00de, 0x6013, 0x0000, 0x080c, 0xc3d5, 0x601f,
+-      0x0007, 0x2001, 0xc8fd, 0x2004, 0x6016, 0x003e, 0x012e, 0x0005,
+-      0x00f6, 0x00c6, 0x0036, 0x0156, 0x2079, 0xcc80, 0x7938, 0x783c,
+-      0x080c, 0x29c7, 0x15b0, 0x0016, 0x00c6, 0x080c, 0x533d, 0x1578,
+-      0x001e, 0x002e, 0x0026, 0x0016, 0x2019, 0x0029, 0x080c, 0x912b,
+-      0x080c, 0x7b16, 0x0076, 0x2039, 0x0000, 0x080c, 0x7a0e, 0x007e,
+-      0x001e, 0x0076, 0x2039, 0x0000, 0x080c, 0xbeea, 0x007e, 0x080c,
+-      0x553e, 0x0026, 0x6204, 0xa294, 0xff00, 0x8217, 0xa286, 0x0006,
+-      0x0118, 0xa286, 0x0004, 0x1118, 0x62a0, 0x080c, 0x2eff, 0x002e,
+-      0x001e, 0x080c, 0x4f47, 0x6612, 0x6516, 0xa006, 0x0010, 0x00ce,
+-      0x001e, 0x015e, 0x003e, 0x00ce, 0x00fe, 0x0005, 0x00c6, 0x00d6,
+-      0x00e6, 0x0016, 0x2009, 0xc621, 0x2104, 0xa086, 0x0074, 0x1904,
+-      0xbe23, 0x2069, 0xcc8e, 0x690c, 0xa182, 0x0100, 0x06c0, 0x6908,
+-      0xa184, 0x8000, 0x05e8, 0x2001, 0xc8e5, 0x2004, 0xa005, 0x1160,
+-      0x6018, 0x2070, 0x7010, 0xa084, 0x00ff, 0x0118, 0x7000, 0xd0f4,
+-      0x0118, 0xa184, 0x0800, 0x0560, 0x6910, 0xa18a, 0x0001, 0x0610,
+-      0x6914, 0x2069, 0xccae, 0x6904, 0x81ff, 0x1198, 0x690c, 0xa182,
+-      0x0100, 0x02a8, 0x6908, 0x81ff, 0x1178, 0x6910, 0xa18a, 0x0001,
+-      0x0288, 0x6918, 0xa18a, 0x0001, 0x0298, 0x00d0, 0x6013, 0x0100,
+-      0x00a0, 0x6013, 0x0300, 0x0088, 0x6013, 0x0500, 0x0070, 0x6013,
+-      0x0700, 0x0058, 0x6013, 0x0900, 0x0040, 0x6013, 0x0b00, 0x0028,
+-      0x6013, 0x0f00, 0x0010, 0x6013, 0x2d00, 0xa085, 0x0001, 0x0008,
+-      0xa006, 0x001e, 0x00ee, 0x00de, 0x00ce, 0x0005, 0x00c6, 0x00d6,
+-      0x0026, 0x0036, 0x0156, 0x6218, 0x2268, 0x6b04, 0xa394, 0x00ff,
+-      0xa286, 0x0006, 0x0190, 0xa286, 0x0004, 0x0178, 0xa394, 0xff00,
+-      0x8217, 0xa286, 0x0006, 0x0148, 0xa286, 0x0004, 0x0130, 0x00c6,
+-      0x2d60, 0x080c, 0x534c, 0x00ce, 0x04c0, 0x2011, 0xcc96, 0xad98,
+-      0x000a, 0x20a9, 0x0004, 0x080c, 0xa0fc, 0x1580, 0x2011, 0xcc9a,
+-      0xad98, 0x0006, 0x20a9, 0x0004, 0x080c, 0xa0fc, 0x1538, 0x0046,
+-      0x0016, 0x6aa0, 0xa294, 0x00ff, 0x8227, 0xa006, 0x2009, 0xc653,
+-      0x210c, 0xd1a4, 0x0138, 0x2009, 0x0029, 0x080c, 0xc183, 0x6800,
+-      0xc0e5, 0x6802, 0x2019, 0x0029, 0x080c, 0x7b16, 0x0076, 0x2039,
+-      0x0000, 0x080c, 0x7a0e, 0x2c08, 0x080c, 0xbeea, 0x007e, 0x2001,
+-      0x0007, 0x080c, 0x52be, 0x001e, 0x004e, 0xa006, 0x015e, 0x003e,
+-      0x002e, 0x00de, 0x00ce, 0x0005, 0x00d6, 0x2069, 0xcc8e, 0x6800,
+-      0xa086, 0x0800, 0x0118, 0x6013, 0x0000, 0x0008, 0xa006, 0x00de,
+-      0x0005, 0x00c6, 0x00f6, 0x0016, 0x0026, 0x0036, 0x0156, 0x2079,
+-      0xcc8c, 0x7930, 0x7834, 0x080c, 0x29c7, 0x11a0, 0x080c, 0x533d,
+-      0x1188, 0x2011, 0xcc90, 0xac98, 0x000a, 0x20a9, 0x0004, 0x080c,
+-      0xa0fc, 0x1140, 0x2011, 0xcc94, 0xac98, 0x0006, 0x20a9, 0x0004,
+-      0x080c, 0xa0fc, 0x015e, 0x003e, 0x002e, 0x001e, 0x00fe, 0x00ce,
+-      0x0005, 0x00c6, 0x0006, 0x0016, 0x0026, 0x0036, 0x0156, 0x2011,
+-      0xcc83, 0x2204, 0x8211, 0x220c, 0x080c, 0x29c7, 0x11a0, 0x080c,
+-      0x533d, 0x1188, 0x2011, 0xcc96, 0xac98, 0x000a, 0x20a9, 0x0004,
+-      0x080c, 0xa0fc, 0x1140, 0x2011, 0xcc9a, 0xac98, 0x0006, 0x20a9,
+-      0x0004, 0x080c, 0xa0fc, 0x015e, 0x003e, 0x002e, 0x001e, 0x000e,
+-      0x00ce, 0x0005, 0x00e6, 0x00c6, 0x0086, 0x0076, 0x0066, 0x0056,
+-      0x0046, 0x0026, 0x0126, 0x2091, 0x8000, 0x2740, 0x2029, 0xc930,
+-      0x252c, 0x2021, 0xc936, 0x2424, 0x2061, 0xce00, 0x2071, 0xc600,
+-      0x7648, 0x7068, 0x81ff, 0x0150, 0x0006, 0xa186, 0xca3c, 0x000e,
+-      0x0128, 0x8001, 0xa602, 0x1a04, 0xbf6b, 0x0018, 0xa606, 0x0904,
+-      0xbf6b, 0x2100, 0xac06, 0x0904, 0xbf62, 0x080c, 0xc1ab, 0x0904,
+-      0xbf62, 0x671c, 0xa786, 0x0001, 0x0904, 0xbfb4, 0xa786, 0x0004,
+-      0x0904, 0xbfb4, 0xa786, 0x0007, 0x05e8, 0x2500, 0xac06, 0x05d0,
+-      0x2400, 0xac06, 0x05b8, 0x080c, 0xc1bb, 0x15a0, 0x88ff, 0x0118,
+-      0x6050, 0xa906, 0x1578, 0x00d6, 0x6000, 0xa086, 0x0004, 0x1120,
+-      0x0016, 0x080c, 0x1953, 0x001e, 0xa786, 0x0008, 0x1148, 0x080c,
+-      0xae88, 0x1130, 0x080c, 0x9c02, 0x00de, 0x080c, 0xae4d, 0x00d0,
+-      0x6010, 0x2068, 0x080c, 0xac8a, 0x0190, 0xa786, 0x0003, 0x1528,
+-      0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000, 0x080c, 0xc4ca, 0x0016,
+-      0x080c, 0xaefc, 0x080c, 0x580a, 0x001e, 0x080c, 0xae41, 0x00de,
+-      0x080c, 0xae4d, 0xace0, 0x0018, 0x2001, 0xc617, 0x2004, 0xac02,
+-      0x1210, 0x0804, 0xbefe, 0x012e, 0x002e, 0x004e, 0x005e, 0x006e,
+-      0x007e, 0x008e, 0x00ce, 0x00ee, 0x0005, 0xa786, 0x0006, 0x1150,
+-      0xa386, 0x0005, 0x0128, 0x080c, 0xc4ca, 0x080c, 0xc134, 0x08f8,
+-      0x00de, 0x0c00, 0xa786, 0x0009, 0x1548, 0x6000, 0xa086, 0x0004,
+-      0x1128, 0x00c6, 0x080c, 0x761a, 0x00ce, 0x00e8, 0x6000, 0xa086,
+-      0x0003, 0x11c8, 0x080c, 0x7e47, 0x00e6, 0x00d6, 0x6110, 0x2168,
+-      0x080c, 0xac8a, 0x0140, 0x6018, 0x2070, 0x70b3, 0x0000, 0x70b7,
+-      0x0000, 0x080c, 0x580a, 0x00de, 0x00ee, 0x00c6, 0x080c, 0x95dc,
+-      0x00ce, 0x080c, 0x7f6e, 0x00de, 0x0804, 0xbf62, 0xa786, 0x000a,
+-      0x0904, 0xbf52, 0x0804, 0xbf50, 0x080c, 0xc1bb, 0x1904, 0xbf62,
+-      0x81ff, 0x0904, 0xbf62, 0xa180, 0x0001, 0x2004, 0xa086, 0x0018,
+-      0x0138, 0xa180, 0x0001, 0x2004, 0xa086, 0x002d, 0x1904, 0xbf62,
+-      0x6000, 0xa086, 0x0002, 0x1904, 0xbf62, 0x080c, 0xae77, 0x0138,
+-      0x080c, 0xae88, 0x1904, 0xbf62, 0x080c, 0x9c02, 0x0038, 0x080c,
+-      0x2e6c, 0x080c, 0xae88, 0x1110, 0x080c, 0x9c02, 0x080c, 0xae4d,
+-      0x0804, 0xbf62, 0x00c6, 0x00e6, 0x0016, 0x2c08, 0x2170, 0xa006,
+-      0x080c, 0xc155, 0x001e, 0x0120, 0x601c, 0xa084, 0x000f, 0x001b,
+-      0x00ee, 0x00ce, 0x0005, 0xbffb, 0xbffb, 0xbffb, 0xbffb, 0xbffb,
+-      0xbffb, 0xbffd, 0xbffb, 0xa006, 0x0005, 0x0046, 0x0016, 0x7018,
+-      0xa080, 0x0028, 0x2024, 0xa4a4, 0x00ff, 0x8427, 0x2c00, 0x2009,
+-      0x0020, 0x080c, 0xc183, 0x001e, 0x004e, 0x0036, 0x2019, 0x0002,
+-      0x080c, 0xbd48, 0x003e, 0xa085, 0x0001, 0x0005, 0x2001, 0x0001,
+-      0x080c, 0x527f, 0x0156, 0x0016, 0x0026, 0x0036, 0x20a9, 0x0004,
+-      0x2019, 0xc605, 0x2011, 0xcc96, 0x080c, 0xa0fc, 0x003e, 0x002e,
+-      0x001e, 0x015e, 0xa005, 0x0005, 0x00f6, 0x00e6, 0x00c6, 0x0086,
+-      0x0076, 0x0066, 0x0026, 0x0126, 0x2091, 0x8000, 0x2740, 0x2061,
+-      0xce00, 0x2079, 0x0001, 0x8fff, 0x0904, 0xc08a, 0x2071, 0xc600,
+-      0x7648, 0x7068, 0x8001, 0xa602, 0x1a04, 0xc08a, 0x88ff, 0x0128,
+-      0x2800, 0xac06, 0x15b0, 0x2079, 0x0000, 0x080c, 0xc1ab, 0x0588,
+-      0x2400, 0xac06, 0x0570, 0x671c, 0xa786, 0x0006, 0x1550, 0xa786,
+-      0x0007, 0x0538, 0x88ff, 0x1140, 0x6018, 0xa206, 0x1510, 0x85ff,
+-      0x0118, 0x6050, 0xa106, 0x11e8, 0x00d6, 0x6000, 0xa086, 0x0004,
+-      0x1150, 0x080c, 0xc3d5, 0x601f, 0x0007, 0x2001, 0xc8fd, 0x2004,
+-      0x6016, 0x080c, 0x1953, 0x6010, 0x2068, 0x080c, 0xac8a, 0x0120,
+-      0x0046, 0x080c, 0xc134, 0x004e, 0x00de, 0x080c, 0xae4d, 0x88ff,
+-      0x1198, 0xace0, 0x0018, 0x2001, 0xc617, 0x2004, 0xac02, 0x1210,
+-      0x0804, 0xc03b, 0xa006, 0x012e, 0x002e, 0x006e, 0x007e, 0x008e,
+-      0x00ce, 0x00ee, 0x00fe, 0x0005, 0xa8c5, 0x0001, 0x0ca0, 0x0076,
+-      0x0056, 0x0086, 0x2041, 0x0000, 0x2029, 0x0001, 0x2c20, 0x2019,
+-      0x0002, 0x6218, 0x0096, 0x2049, 0x0000, 0x080c, 0x8fc9, 0x009e,
+-      0x008e, 0x2039, 0x0000, 0x080c, 0x9068, 0x080c, 0xc02c, 0x005e,
+-      0x007e, 0x0005, 0x0026, 0x0046, 0x0056, 0x0076, 0x00c6, 0x0156,
+-      0x2c20, 0x2128, 0x20a9, 0x007f, 0x2009, 0x0000, 0x0016, 0x0036,
+-      0x080c, 0x533d, 0x11b0, 0x2c10, 0x0056, 0x0086, 0x2041, 0x0000,
+-      0x2508, 0x2029, 0x0001, 0x0096, 0x2049, 0x0000, 0x080c, 0x8fc9,
+-      0x009e, 0x008e, 0x2039, 0x0000, 0x080c, 0x9068, 0x080c, 0xc02c,
+-      0x005e, 0x003e, 0x001e, 0x8108, 0x1f04, 0xc0be, 0x015e, 0x00ce,
+-      0x007e, 0x005e, 0x004e, 0x002e, 0x0005, 0x0076, 0x0056, 0x6218,
+-      0x0086, 0x2041, 0x0000, 0x2029, 0x0001, 0x2019, 0x0048, 0x0096,
+-      0x2049, 0x0000, 0x080c, 0x8fc9, 0x009e, 0x008e, 0x2039, 0x0000,
+-      0x080c, 0x9068, 0x2c20, 0x080c, 0xc02c, 0x005e, 0x007e, 0x0005,
+-      0x0026, 0x0046, 0x0056, 0x0076, 0x00c6, 0x0156, 0x2c20, 0x20a9,
+-      0x007f, 0x2009, 0x0000, 0x0016, 0x0036, 0x080c, 0x533d, 0x11c0,
+-      0x2c10, 0x0086, 0x2041, 0x0000, 0x2828, 0x0046, 0x2021, 0x0001,
+-      0x080c, 0xc3b7, 0x004e, 0x0096, 0x2049, 0x0000, 0x080c, 0x8fc9,
+-      0x009e, 0x008e, 0x2039, 0x0000, 0x080c, 0x9068, 0x080c, 0xc02c,
+-      0x003e, 0x001e, 0x8108, 0x1f04, 0xc10b, 0x015e, 0x00ce, 0x007e,
+-      0x005e, 0x004e, 0x002e, 0x0005, 0x0016, 0x00f6, 0x3800, 0xd08c,
+-      0x0130, 0xad82, 0x1000, 0x02b0, 0xad82, 0xc600, 0x0230, 0xad82,
+-      0xfe00, 0x0280, 0xad82, 0xffff, 0x1268, 0x6800, 0xa07d, 0x0138,
+-      0x6803, 0x0000, 0x6b52, 0x080c, 0x580a, 0x2f68, 0x0cb0, 0x6b52,
+-      0x080c, 0x580a, 0x00fe, 0x001e, 0x0005, 0x00e6, 0x0046, 0x0036,
+-      0x2061, 0xce00, 0xa005, 0x1138, 0x2071, 0xc600, 0x7448, 0x7068,
+-      0x8001, 0xa402, 0x12d8, 0x2100, 0xac06, 0x0168, 0x6000, 0xa086,
+-      0x0000, 0x0148, 0x6008, 0xa206, 0x1130, 0x6018, 0xa1a0, 0x0006,
+-      0x2424, 0xa406, 0x0140, 0xace0, 0x0018, 0x2001, 0xc617, 0x2004,
+-      0xac02, 0x1220, 0x0c40, 0xa085, 0x0001, 0x0008, 0xa006, 0x003e,
+-      0x004e, 0x00ee, 0x0005, 0x00d6, 0x0006, 0x080c, 0x1602, 0x000e,
+-      0x090c, 0x1519, 0x6837, 0x010d, 0x685e, 0x0026, 0x2010, 0x080c,
+-      0xac7a, 0x2001, 0x0000, 0x0120, 0x2200, 0xa080, 0x0014, 0x2004,
+-      0x002e, 0x684a, 0x6956, 0x6c46, 0x684f, 0x0000, 0x2001, 0xc905,
+-      0x2004, 0x6852, 0xa006, 0x68b2, 0x6802, 0x683a, 0x685a, 0x080c,
+-      0x580a, 0x00de, 0x0005, 0x6700, 0xa786, 0x0000, 0x0158, 0xa786,
+-      0x0001, 0x0140, 0xa786, 0x000a, 0x0128, 0xa786, 0x0009, 0x0110,
+-      0xa085, 0x0001, 0x0005, 0x00e6, 0x6018, 0x2070, 0x70a0, 0xa206,
+-      0x00ee, 0x0005, 0x0016, 0x6004, 0xa08e, 0x001e, 0x11a0, 0x8007,
+-      0x6130, 0xa18c, 0x00ff, 0xa105, 0x6032, 0x6007, 0x0085, 0x6003,
+-      0x000b, 0x601f, 0x0005, 0x2001, 0xc8fe, 0x2004, 0x6016, 0x080c,
+-      0x7999, 0x080c, 0x7e94, 0x001e, 0x0005, 0xe000, 0xe000, 0x0005,
+-      0x6020, 0xd0e4, 0x0158, 0xd0cc, 0x0118, 0x080c, 0xaf65, 0x0030,
+-      0x080c, 0xc3d5, 0x080c, 0x7103, 0x080c, 0x95dc, 0x0005, 0xa280,
+-      0x0007, 0x2004, 0xa084, 0x000f, 0x0002, 0xc1fe, 0xc1fe, 0xc1fe,
+-      0xc203, 0xc1fe, 0xc200, 0xc200, 0xc1fe, 0xc200, 0xa006, 0x0005,
+-      0x00c6, 0x2260, 0x00ce, 0xa085, 0x0001, 0x0005, 0xa280, 0x0007,
+-      0x2004, 0xa084, 0x000f, 0x0002, 0xc215, 0xc215, 0xc215, 0xc215,
+-      0xc215, 0xc215, 0xc220, 0xc215, 0xc215, 0x6007, 0x003b, 0x602b,
+-      0x0009, 0x6013, 0x2a00, 0x6003, 0x0001, 0x080c, 0x7999, 0x0005,
+-      0x00c6, 0x2260, 0x080c, 0xc3d5, 0x603f, 0x0000, 0x6020, 0xc0f4,
+-      0xc0cc, 0x6022, 0x6037, 0x0000, 0x00ce, 0x00d6, 0x2268, 0xa186,
+-      0x0007, 0x1904, 0xc27b, 0x6810, 0xa005, 0x0138, 0xa080, 0x0013,
+-      0x2004, 0xd0fc, 0x1110, 0x00de, 0x08c0, 0x6007, 0x003a, 0x6003,
+-      0x0001, 0x080c, 0x7999, 0x080c, 0x7e94, 0x00c6, 0x2d60, 0x6100,
+-      0xa186, 0x0002, 0x1904, 0xc304, 0x6010, 0xa005, 0x1138, 0x6000,
+-      0xa086, 0x0007, 0x190c, 0x1519, 0x0804, 0xc304, 0xa08c, 0xf000,
+-      0x1130, 0x0028, 0x2068, 0x6800, 0xa005, 0x1de0, 0x2d00, 0xa080,
+-      0x0013, 0x2004, 0xa084, 0x0003, 0xa086, 0x0002, 0x1180, 0x6010,
+-      0x2068, 0x684c, 0xc0dc, 0xc0f4, 0x684e, 0x6850, 0xc0f4, 0xc0fc,
+-      0x6852, 0x2009, 0x0043, 0x080c, 0xbbc0, 0x0804, 0xc304, 0x2009,
+-      0x0041, 0x0804, 0xc2fe, 0xa186, 0x0005, 0x15f0, 0x6810, 0xa080,
+-      0x0013, 0x2004, 0xd0bc, 0x1118, 0x00de, 0x0804, 0xc215, 0xd0b4,
+-      0x0128, 0xd0fc, 0x090c, 0x1519, 0x0804, 0xc233, 0x6007, 0x003a,
+-      0x6003, 0x0001, 0x080c, 0x7999, 0x080c, 0x7e94, 0x00c6, 0x2d60,
+-      0x6100, 0xa186, 0x0002, 0x0120, 0xa186, 0x0004, 0x1904, 0xc304,
+-      0x2071, 0xc96a, 0x7000, 0xa086, 0x0003, 0x1128, 0x7004, 0xac06,
+-      0x1110, 0x7003, 0x0000, 0x6810, 0xa080, 0x0013, 0x200c, 0xc1f4,
+-      0xc1dc, 0x2102, 0x8000, 0x200c, 0xc1f4, 0xc1fc, 0xc1bc, 0x2102,
+-      0x2009, 0x0042, 0x0804, 0xc2fe, 0x0036, 0x00d6, 0x00d6, 0x080c,
+-      0x1602, 0x003e, 0x090c, 0x1519, 0x6837, 0x010d, 0x6803, 0x0000,
+-      0x683b, 0x0000, 0x685b, 0x0000, 0x6b5e, 0x6857, 0x0045, 0x2c00,
+-      0x6862, 0x6034, 0x6872, 0x2360, 0x6020, 0xc0dd, 0x6022, 0x6018,
+-      0xa080, 0x0028, 0x2004, 0xa084, 0x00ff, 0x8007, 0x6350, 0x6b4a,
+-      0x6846, 0x684f, 0x0000, 0x6853, 0x0000, 0x6d6a, 0x6e66, 0x686f,
+-      0x0001, 0x080c, 0x580a, 0x2019, 0x0045, 0x6008, 0x2068, 0x080c,
+-      0xbd48, 0x2d00, 0x600a, 0x601f, 0x0006, 0x6003, 0x0007, 0x6017,
+-      0x0000, 0x603f, 0x0000, 0x00de, 0x003e, 0x0038, 0x603f, 0x0000,
+-      0x6003, 0x0007, 0x080c, 0xbbc0, 0x00ce, 0x00de, 0x0005, 0xa186,
+-      0x0013, 0x1128, 0x6004, 0xa082, 0x0085, 0x2008, 0x00c2, 0xa186,
+-      0x0027, 0x1178, 0x080c, 0x7db1, 0x0036, 0x00d6, 0x6010, 0x2068,
+-      0x2019, 0x0004, 0x080c, 0xc134, 0x00de, 0x003e, 0x080c, 0x7e94,
+-      0x0005, 0xa186, 0x0014, 0x0d70, 0x080c, 0x9623, 0x0005, 0xc330,
+-      0xc32e, 0xc32e, 0xc32e, 0xc32e, 0xc32e, 0xc330, 0x080c, 0x1519,
+-      0x080c, 0x7db1, 0x6003, 0x000c, 0x080c, 0x7e94, 0x0005, 0xa182,
+-      0x008c, 0x1220, 0xa182, 0x0085, 0x0208, 0x001a, 0x080c, 0x9623,
+-      0x0005, 0xc348, 0xc348, 0xc348, 0xc348, 0xc34a, 0xc368, 0xc348,
+-      0x080c, 0x1519, 0x00d6, 0x2c68, 0x080c, 0x9586, 0x01a0, 0x6003,
+-      0x0001, 0x6007, 0x001e, 0x2009, 0xcc8e, 0x210c, 0x6136, 0x2009,
+-      0xcc8f, 0x210c, 0x613a, 0x600b, 0xffff, 0x6918, 0x611a, 0x601f,
+-      0x0004, 0x080c, 0x7999, 0x2d60, 0x080c, 0x95dc, 0x00de, 0x0005,
+-      0x080c, 0x95dc, 0x0005, 0x00e6, 0x6018, 0x2070, 0x7000, 0xd0ec,
+-      0x00ee, 0x0005, 0x6010, 0xa08c, 0xf000, 0x0904, 0xc3b6, 0xa080,
+-      0x0013, 0x200c, 0xd1ec, 0x05d0, 0x2001, 0xc672, 0x2004, 0xd0ec,
+-      0x05a8, 0x6003, 0x0002, 0x6020, 0xc0e5, 0x6022, 0xd1ac, 0x0180,
+-      0x00f6, 0x2c78, 0x080c, 0x56bf, 0x00fe, 0x0150, 0x2001, 0xc8ff,
+-      0x2004, 0x603e, 0x2009, 0xc672, 0x210c, 0xd1f4, 0x11e8, 0x0080,
+-      0x2009, 0xc672, 0x210c, 0xd1f4, 0x0128, 0x6020, 0xc0e4, 0x6022,
+-      0xa006, 0x00a0, 0x2001, 0xc8ff, 0x200c, 0x8103, 0xa100, 0x603e,
+-      0x6018, 0xa088, 0x002f, 0x2104, 0xa005, 0x0118, 0xa088, 0x0003,
+-      0x0cd0, 0x2c0a, 0x600f, 0x0000, 0xa085, 0x0001, 0x0005, 0x0016,
+-      0x00c6, 0x00e6, 0x6150, 0xa2f0, 0x002f, 0x2e04, 0x2060, 0x8cff,
+-      0x0180, 0x84ff, 0x1118, 0x6050, 0xa106, 0x1138, 0x600c, 0x2072,
+-      0x080c, 0x7103, 0x080c, 0x95dc, 0x0010, 0xacf0, 0x0003, 0x2e64,
+-      0x0c70, 0x00ee, 0x00ce, 0x001e, 0x0005, 0x00d6, 0x6018, 0xa0e8,
+-      0x002f, 0x2d04, 0xa005, 0x0140, 0xac06, 0x0120, 0x2d04, 0xa0e8,
+-      0x0003, 0x0cb8, 0x600c, 0x206a, 0x00de, 0x0005, 0x0026, 0x0036,
+-      0x0156, 0x2011, 0xc628, 0x2204, 0xa084, 0x00ff, 0x2019, 0xcc8e,
+-      0x2334, 0xa636, 0x11d8, 0x8318, 0x2334, 0x2204, 0xa084, 0xff00,
+-      0xa636, 0x11a0, 0x2011, 0xcc90, 0x6018, 0xa098, 0x000a, 0x20a9,
+-      0x0004, 0x080c, 0xa0fc, 0x1150, 0x2011, 0xcc94, 0x6018, 0xa098,
+-      0x0006, 0x20a9, 0x0004, 0x080c, 0xa0fc, 0x1100, 0x015e, 0x003e,
+-      0x002e, 0x0005, 0x00e6, 0x2071, 0xc600, 0x080c, 0x4f02, 0x080c,
+-      0x2c62, 0x00ee, 0x0005, 0x00d6, 0x080c, 0x15e5, 0x0500, 0x2d10,
+-      0xa290, 0x000d, 0x2013, 0x0134, 0x8210, 0x2013, 0x0000, 0x8210,
+-      0x703c, 0x2012, 0x8210, 0x7038, 0x2012, 0x8210, 0x2218, 0x7048,
+-      0x2012, 0x8210, 0x704c, 0x2012, 0x8210, 0x7050, 0x2012, 0x8210,
+-      0x7054, 0x2012, 0x2300, 0x080c, 0x3e8f, 0x080c, 0x580a, 0x00de,
+-      0x0005, 0x00d6, 0x0026, 0x080c, 0x1602, 0x090c, 0x1519, 0xad90,
+-      0x000e, 0x20a9, 0x000c, 0x22a0, 0xa016, 0x42a4, 0xa186, 0x0046,
+-      0x1118, 0x6837, 0x0136, 0x0038, 0x6837, 0x0138, 0xa186, 0x0041,
+-      0x0110, 0x684b, 0x0001, 0x7038, 0xa084, 0xff00, 0x7240, 0xa294,
+-      0xff00, 0x8007, 0xa215, 0x6a6a, 0xa186, 0x0046, 0x1168, 0x7038,
+-      0xa084, 0x00ff, 0x723c, 0xa294, 0xff00, 0xa215, 0x6a6e, 0x723c,
+-      0xa294, 0x00ff, 0x6a72, 0x0060, 0x7040, 0xa084, 0x00ff, 0x7244,
+-      0xa294, 0xff00, 0xa215, 0x6a6e, 0x7244, 0xa294, 0x00ff, 0x6a72,
+-      0xa186, 0x0046, 0x1118, 0xae90, 0x0012, 0x0010, 0xae90, 0x001a,
+-      0x2204, 0x8007, 0x6876, 0x8210, 0x2204, 0x8007, 0x687a, 0x8210,
+-      0x2204, 0x8007, 0x687e, 0x8210, 0x2204, 0x8007, 0x6882, 0x8210,
+-      0xa186, 0x0046, 0x1118, 0xae90, 0x0016, 0x0010, 0xae90, 0x001e,
+-      0x2204, 0x8007, 0x6886, 0x8210, 0x2204, 0x8007, 0x688a, 0x8210,
+-      0x2204, 0x8007, 0x688e, 0x8210, 0x2204, 0x8007, 0x6892, 0x8210,
+-      0xa186, 0x0046, 0x1118, 0xae90, 0x0022, 0x0010, 0xae90, 0x002a,
+-      0x00d6, 0xade8, 0x0025, 0x20a9, 0x0008, 0x2204, 0x8007, 0x206a,
+-      0x8210, 0x8d68, 0x1f04, 0xc4bd, 0x00de, 0x002e, 0x080c, 0x580a,
+-      0x00de, 0x0005, 0x00e6, 0x6018, 0x2070, 0x7000, 0xd0fc, 0x0108,
+-      0x0011, 0x00ee, 0x0005, 0x6850, 0xc0e5, 0x6852, 0x0005, 0x00e6,
+-      0x00c6, 0x0076, 0x0066, 0x0056, 0x0046, 0x0026, 0x0016, 0x0126,
+-      0x2091, 0x8000, 0x2029, 0xc930, 0x252c, 0x2021, 0xc936, 0x2424,
+-      0x2061, 0xce00, 0x2071, 0xc600, 0x7648, 0x7068, 0xa606, 0x0578,
+-      0x671c, 0xa786, 0x0001, 0x0118, 0xa786, 0x0008, 0x1500, 0x2500,
+-      0xac06, 0x01e8, 0x2400, 0xac06, 0x01d0, 0x080c, 0xc1ab, 0x01b8,
+-      0x080c, 0xc1bb, 0x11a0, 0x6000, 0xa086, 0x0004, 0x1120, 0x0016,
+-      0x080c, 0x1953, 0x001e, 0x080c, 0xae77, 0x1110, 0x080c, 0x2e6c,
+-      0x080c, 0xae88, 0x1110, 0x080c, 0x9c02, 0x080c, 0xae4d, 0xace0,
+-      0x0018, 0x2001, 0xc617, 0x2004, 0xac02, 0x1208, 0x0858, 0x012e,
+-      0x001e, 0x002e, 0x004e, 0x005e, 0x006e, 0x007e, 0x00ce, 0x00ee,
+-      0x0005, 0x0126, 0x0006, 0x00e6, 0x0016, 0x2091, 0x8000, 0x2071,
+-      0xc640, 0xd5a4, 0x0118, 0x7034, 0x8000, 0x7036, 0xd5b4, 0x0118,
+-      0x7030, 0x8000, 0x7032, 0xd5ac, 0x0178, 0x2500, 0xa084, 0x0007,
+-      0xa08e, 0x0003, 0x0148, 0xa08e, 0x0004, 0x0130, 0xa08e, 0x0005,
+-      0x0118, 0x2071, 0xc64a, 0x04c9, 0x001e, 0x00ee, 0x000e, 0x012e,
+-      0x0005, 0x0126, 0x0006, 0x00e6, 0x0016, 0x2091, 0x8000, 0x2071,
+-      0xc640, 0xd5a4, 0x0118, 0x7034, 0x8000, 0x7036, 0xd5b4, 0x0118,
+-      0x7030, 0x8000, 0x7032, 0xd5ac, 0x0178, 0x2500, 0xa084, 0x0007,
+-      0xa08e, 0x0003, 0x0148, 0xa08e, 0x0004, 0x0130, 0xa08e, 0x0005,
+-      0x0118, 0x2071, 0xc64a, 0x0089, 0x001e, 0x00ee, 0x000e, 0x012e,
+-      0x0005, 0x0126, 0x0006, 0x00e6, 0x2091, 0x8000, 0x2071, 0xc642,
+-      0x0021, 0x00ee, 0x000e, 0x012e, 0x0005, 0x2e04, 0x8000, 0x2072,
+-      0x1220, 0x8e70, 0x2e04, 0x8000, 0x2072, 0x0005, 0x00e6, 0x2071,
+-      0xc640, 0x0c99, 0x00ee, 0x0005, 0x00e6, 0x2071, 0xc644, 0x0c69,
+-      0x00ee, 0x0005, 0x0126, 0x0006, 0x00e6, 0x2091, 0x8000, 0x2071,
+-      0xc640, 0x7044, 0x8000, 0x7046, 0x00ee, 0x000e, 0x012e, 0x0005,
+-      0x0001, 0x0002, 0x0004, 0x0008, 0x0010, 0x0020, 0x0040, 0x0080,
+-      0x0100, 0x0200, 0x0400, 0x0800, 0x1000, 0x2000, 0x4000, 0x8000,
+-      0x28b5
++      0x080c, 0x53f8, 0x6007, 0x000a, 0x00de, 0x0804, 0xb403, 0x6007,
++      0x000b, 0x00de, 0x0804, 0xb403, 0x080c, 0x2e46, 0x6007, 0x0001,
++      0x0804, 0xb403, 0x080c, 0xc391, 0x1904, 0xb607, 0x080c, 0x2f69,
++      0x1904, 0xb607, 0x6618, 0x00d6, 0x2668, 0x6e04, 0x00de, 0xa686,
++      0x0707, 0x0d50, 0x0026, 0x6218, 0xa290, 0x0028, 0x2214, 0x2009,
++      0x0000, 0x080c, 0x2e8b, 0x002e, 0x6007, 0x000c, 0x0804, 0xb403,
++      0x080c, 0x5724, 0x1140, 0x2001, 0xc635, 0x2004, 0xa084, 0x0009,
++      0xa086, 0x0008, 0x1110, 0x0804, 0xb24c, 0x080c, 0x56a6, 0x6618,
++      0xa6b0, 0x0001, 0x2634, 0xa684, 0x00ff, 0xa082, 0x0006, 0x06e8,
++      0x1138, 0x0026, 0x2001, 0x0006, 0x080c, 0x52d7, 0x002e, 0x0050,
++      0xa6b4, 0xff00, 0x8637, 0xa686, 0x0004, 0x0120, 0xa686, 0x0006,
++      0x1904, 0xb2f4, 0x080c, 0xbebf, 0x1120, 0x6007, 0x000e, 0x0804,
++      0xb403, 0x0046, 0x6418, 0xa4a0, 0x0028, 0x2424, 0xa4a4, 0x00ff,
++      0x8427, 0x0046, 0x080c, 0x2e46, 0x004e, 0x0016, 0xa006, 0x2009,
++      0xc653, 0x210c, 0xd1a4, 0x0158, 0x2009, 0x0029, 0x080c, 0xc1a9,
++      0x6018, 0x00d6, 0x2068, 0x6800, 0xc0e5, 0x6802, 0x00de, 0x001e,
++      0x004e, 0x6007, 0x0001, 0x0804, 0xb403, 0x2001, 0x0001, 0x080c,
++      0x5298, 0x0156, 0x0016, 0x0026, 0x0036, 0x20a9, 0x0004, 0x2019,
++      0xc605, 0x2011, 0xcc90, 0x080c, 0xa11c, 0x003e, 0x002e, 0x001e,
++      0x015e, 0xa005, 0x0168, 0xa6b4, 0xff00, 0x8637, 0xa682, 0x0004,
++      0x0a04, 0xb2f4, 0xa682, 0x0007, 0x0a04, 0xb342, 0x0804, 0xb2f4,
++      0x6013, 0x1900, 0x6007, 0x0009, 0x0804, 0xb403, 0x080c, 0x5724,
++      0x1140, 0x2001, 0xc635, 0x2004, 0xa084, 0x0009, 0xa086, 0x0008,
++      0x1110, 0x0804, 0xb24c, 0x080c, 0x56a6, 0x6618, 0xa6b0, 0x0001,
++      0x2634, 0xa684, 0x00ff, 0xa082, 0x0006, 0x06b8, 0xa6b4, 0xff00,
++      0x8637, 0xa686, 0x0004, 0x0120, 0xa686, 0x0006, 0x1904, 0xb2f4,
++      0x080c, 0xbee7, 0x1138, 0x080c, 0xbdf4, 0x1120, 0x6007, 0x0010,
++      0x0804, 0xb403, 0x0046, 0x6418, 0xa4a0, 0x0028, 0x2424, 0xa4a4,
++      0x00ff, 0x8427, 0x0046, 0x080c, 0x2e46, 0x004e, 0x0016, 0xa006,
++      0x2009, 0xc653, 0x210c, 0xd1a4, 0x0158, 0x2009, 0x0029, 0x080c,
++      0xc1a9, 0x6018, 0x00d6, 0x2068, 0x6800, 0xc0e5, 0x6802, 0x00de,
++      0x001e, 0x004e, 0x6007, 0x0001, 0x00f0, 0x080c, 0xc03c, 0x0140,
++      0xa6b4, 0xff00, 0x8637, 0xa686, 0x0006, 0x0950, 0x0804, 0xb2f4,
++      0x6013, 0x1900, 0x6007, 0x0009, 0x0070, 0x080c, 0x2f69, 0x1904,
++      0xb607, 0x080c, 0xc391, 0x1904, 0xb607, 0x080c, 0xb66b, 0x1904,
++      0xb2f4, 0x6007, 0x0012, 0x6003, 0x0001, 0x080c, 0x79f8, 0x0005,
++      0x6007, 0x0001, 0x6003, 0x0001, 0x080c, 0x79f8, 0x0cc0, 0x6007,
++      0x0005, 0x0cc0, 0x080c, 0xc391, 0x1904, 0xb607, 0x080c, 0x2f69,
++      0x1904, 0xb607, 0x080c, 0xb66b, 0x1904, 0xb2f4, 0x6007, 0x0020,
++      0x6003, 0x0001, 0x080c, 0x79f8, 0x0005, 0x080c, 0x2f69, 0x1904,
++      0xb607, 0x6007, 0x0023, 0x6003, 0x0001, 0x080c, 0x79f8, 0x0005,
++      0x080c, 0xc391, 0x1904, 0xb607, 0x080c, 0x2f69, 0x1904, 0xb607,
++      0x080c, 0xb66b, 0x1904, 0xb2f4, 0x0016, 0x0026, 0x2011, 0xcc91,
++      0x2214, 0xa286, 0xffff, 0x0190, 0x2c08, 0x080c, 0xac9a, 0x01e0,
++      0x2260, 0x2011, 0xcc90, 0x2214, 0x6008, 0xa206, 0x11a8, 0x6018,
++      0xa190, 0x0006, 0x2214, 0xa206, 0x01e8, 0x0070, 0x2011, 0xcc90,
++      0x2214, 0x2c08, 0xa006, 0x080c, 0xc17b, 0x11a0, 0x2011, 0xcc91,
++      0x2214, 0xa286, 0xffff, 0x01c0, 0x2160, 0x6007, 0x0026, 0x6013,
++      0x1700, 0x2011, 0xcc89, 0x2214, 0xa296, 0xffff, 0x1180, 0x6007,
++      0x0025, 0x0068, 0x601c, 0xa086, 0x0007, 0x1d70, 0x6004, 0xa086,
++      0x0024, 0x1110, 0x080c, 0x95fc, 0x2160, 0x6007, 0x0025, 0x6003,
++      0x0001, 0x080c, 0x79f8, 0x002e, 0x001e, 0x0005, 0x2001, 0x0001,
++      0x080c, 0x5298, 0x0156, 0x0016, 0x0026, 0x0036, 0x20a9, 0x0004,
++      0x2019, 0xc605, 0x2011, 0xcc96, 0x080c, 0xa11c, 0x003e, 0x002e,
++      0x001e, 0x015e, 0x0120, 0x6007, 0x0031, 0x0804, 0xb403, 0x080c,
++      0x9e0e, 0x080c, 0x5f3b, 0x11b0, 0x0006, 0x0026, 0x0036, 0x080c,
++      0x5f57, 0x1158, 0x2001, 0xc8e6, 0x2003, 0x0001, 0x2001, 0xc600,
++      0x2003, 0x0001, 0x080c, 0x5e73, 0x0010, 0x080c, 0x5f12, 0x003e,
++      0x002e, 0x000e, 0x0005, 0x080c, 0x2f69, 0x1904, 0xb607, 0x080c,
++      0xb66b, 0x1904, 0xb2f4, 0x6106, 0x080c, 0xb687, 0x6007, 0x002b,
++      0x0804, 0xb403, 0x6007, 0x002c, 0x0804, 0xb403, 0x080c, 0xc391,
++      0x1904, 0xb607, 0x080c, 0x2f69, 0x1904, 0xb607, 0x080c, 0xb66b,
++      0x1904, 0xb2f4, 0x6106, 0x080c, 0xb68b, 0x1120, 0x6007, 0x002e,
++      0x0804, 0xb403, 0x6007, 0x002f, 0x0804, 0xb403, 0x080c, 0x2f69,
++      0x1904, 0xb607, 0x00e6, 0x00d6, 0x00c6, 0x6018, 0xa080, 0x0001,
++      0x200c, 0xa184, 0x00ff, 0xa086, 0x0006, 0x0158, 0xa184, 0xff00,
++      0x8007, 0xa086, 0x0006, 0x0128, 0x00ce, 0x00de, 0x00ee, 0x0804,
++      0xb408, 0x2001, 0xc672, 0x2004, 0xd0e4, 0x0904, 0xb55d, 0x2071,
++      0xcc8c, 0x7010, 0x6036, 0x7014, 0x603a, 0x7108, 0x720c, 0x2001,
++      0xc653, 0x2004, 0xd0a4, 0x0140, 0x6018, 0x2068, 0x6810, 0xa106,
++      0x1118, 0x6814, 0xa206, 0x01f8, 0x2001, 0xc653, 0x2004, 0xd0ac,
++      0x1590, 0x2069, 0xc600, 0x6874, 0xa206, 0x1568, 0x6870, 0xa106,
++      0x1550, 0x7210, 0x080c, 0xac9a, 0x0558, 0x080c, 0xc215, 0x0540,
++      0x622a, 0x6007, 0x0036, 0x6003, 0x0001, 0x080c, 0x79b2, 0x00ce,
++      0x00de, 0x00ee, 0x0005, 0x7214, 0xa286, 0xffff, 0x0150, 0x080c,
++      0xac9a, 0x01b0, 0xa280, 0x0002, 0x2004, 0x7110, 0xa106, 0x1180,
++      0x0c08, 0x7210, 0x2c08, 0xa085, 0x0001, 0x080c, 0xc17b, 0x2c10,
++      0x2160, 0x0130, 0x08b8, 0x6007, 0x0037, 0x6013, 0x1500, 0x08d8,
++      0x6007, 0x0037, 0x6013, 0x1700, 0x08b0, 0x6007, 0x0012, 0x0898,
++      0x080c, 0x2f69, 0x1904, 0xb607, 0x6018, 0xa080, 0x0001, 0x2004,
++      0xa084, 0xff00, 0x8007, 0xa086, 0x0006, 0x1904, 0xb408, 0x00e6,
++      0x00d6, 0x00c6, 0x2001, 0xc672, 0x2004, 0xd0e4, 0x0904, 0xb5c9,
++      0x2069, 0xc600, 0x2071, 0xcc8c, 0x7008, 0x6036, 0x720c, 0x623a,
++      0xa286, 0xffff, 0x1150, 0x7208, 0x00c6, 0x2c08, 0xa085, 0x0001,
++      0x080c, 0xc17b, 0x2c10, 0x00ce, 0x0588, 0x080c, 0xac9a, 0x0570,
++      0x00c6, 0x0026, 0x2260, 0x080c, 0xa96d, 0x002e, 0x00ce, 0x7118,
++      0xa18c, 0xff00, 0x810f, 0xa186, 0x0001, 0x0158, 0xa186, 0x0005,
++      0x0118, 0xa186, 0x0007, 0x1178, 0xa280, 0x0004, 0x2004, 0xa005,
++      0x0150, 0x0056, 0x7510, 0x7614, 0x080c, 0xc22c, 0x005e, 0x00ce,
++      0x00de, 0x00ee, 0x0005, 0x6007, 0x003b, 0x602b, 0x0009, 0x6013,
++      0x2a00, 0x6003, 0x0001, 0x080c, 0x79b2, 0x0c88, 0x6007, 0x003b,
++      0x602b, 0x0009, 0x6013, 0x1700, 0x6003, 0x0001, 0x080c, 0x79b2,
++      0x0c30, 0x6007, 0x003b, 0x602b, 0x000b, 0x6013, 0x0000, 0x0804,
++      0xb533, 0x00e6, 0x0026, 0x080c, 0x5724, 0x0558, 0x080c, 0x56a6,
++      0x080c, 0xc40c, 0x1520, 0x2071, 0xc600, 0x70d4, 0xc085, 0x70d6,
++      0x00f6, 0x2079, 0x0100, 0x72a0, 0xa284, 0x00ff, 0x7072, 0x78e6,
++      0xa284, 0xff00, 0x7274, 0xa205, 0x7076, 0x78ea, 0x00fe, 0x70df,
++      0x0000, 0x2001, 0xc653, 0x2004, 0xd0a4, 0x0120, 0x2011, 0xc940,
++      0x2013, 0x07d0, 0xd0ac, 0x1128, 0x080c, 0x2c62, 0x0010, 0x080c,
++      0xc438, 0x002e, 0x00ee, 0x080c, 0x95fc, 0x0804, 0xb407, 0x080c,
++      0x95fc, 0x0005, 0x2600, 0x0002, 0xb615, 0xb649, 0xb65a, 0xb615,
++      0xb615, 0xb617, 0xb630, 0xb615, 0xb615, 0x080c, 0x1519, 0x080c,
++      0xc391, 0x1d68, 0x080c, 0x2f69, 0x1d50, 0x080c, 0xb66b, 0x1138,
++      0x6007, 0x0045, 0x6003, 0x0001, 0x080c, 0x79f8, 0x0005, 0x080c,
++      0x2e46, 0x6007, 0x0001, 0x6003, 0x0001, 0x080c, 0x79f8, 0x0005,
++      0x080c, 0x2f69, 0x19a0, 0x080c, 0x76a8, 0x1160, 0x2e00, 0xa080,
++      0x0010, 0x2004, 0x8007, 0xd084, 0x0110, 0x080c, 0xc441, 0x080c,
++      0x95fc, 0x0005, 0x2009, 0x0046, 0x080c, 0xc467, 0x080c, 0x95fc,
++      0x0005, 0x080c, 0x2f69, 0x1904, 0xb607, 0x2009, 0x0041, 0x080c,
++      0xc467, 0x6007, 0x0047, 0x6003, 0x0001, 0x080c, 0x79f8, 0x080c,
++      0x7ead, 0x0005, 0x080c, 0x2f69, 0x1904, 0xb607, 0x2009, 0x0042,
++      0x080c, 0xc467, 0x6007, 0x0047, 0x6003, 0x0001, 0x080c, 0x79f8,
++      0x080c, 0x7ead, 0x0005, 0x00d6, 0x0066, 0x6618, 0x2668, 0x6e04,
++      0xa6b4, 0xff00, 0x8637, 0xa686, 0x0006, 0x0170, 0xa686, 0x0004,
++      0x0158, 0x6e04, 0xa6b4, 0x00ff, 0xa686, 0x0006, 0x0128, 0xa686,
++      0x0004, 0x0110, 0xa085, 0x0001, 0x006e, 0x00de, 0x0005, 0x00d6,
++      0x0449, 0x00de, 0x0005, 0x00d6, 0x0491, 0x11f0, 0x680c, 0xa08c,
++      0xff00, 0x6820, 0xa084, 0x00ff, 0xa115, 0x6212, 0x6824, 0x602a,
++      0xd1e4, 0x0118, 0x2009, 0x0001, 0x0060, 0xd1ec, 0x0168, 0x6920,
++      0xa18c, 0x00ff, 0x6824, 0x080c, 0x29c7, 0x1130, 0x2110, 0x2009,
++      0x0000, 0x080c, 0x2e8b, 0x0018, 0xa085, 0x0001, 0x0008, 0xa006,
++      0x00de, 0x0005, 0x2069, 0xcc8d, 0x6800, 0xa082, 0x0010, 0x1228,
++      0x6013, 0x0000, 0xa085, 0x0001, 0x0008, 0xa006, 0x0005, 0x6013,
++      0x0000, 0x2069, 0xcc8c, 0x6808, 0xa084, 0xff00, 0xa086, 0x0800,
++      0x1140, 0x6800, 0xa084, 0x00ff, 0xa08e, 0x0014, 0x0110, 0xa08e,
++      0x0010, 0x0005, 0x6004, 0xa0b2, 0x0080, 0x1a0c, 0x1519, 0xa1b6,
++      0x0013, 0x1130, 0x2008, 0xa1b2, 0x0040, 0x1a04, 0xb7d4, 0x0092,
++      0xa1b6, 0x0027, 0x0120, 0xa1b6, 0x0014, 0x190c, 0x1519, 0x2001,
++      0x0007, 0x080c, 0x52d7, 0x080c, 0x7dca, 0x080c, 0xae6d, 0x080c,
++      0x7ead, 0x0005, 0xb732, 0xb734, 0xb732, 0xb732, 0xb732, 0xb734,
++      0xb746, 0xb7cd, 0xb796, 0xb7cd, 0xb7a9, 0xb7cd, 0xb746, 0xb7cd,
++      0xb7c5, 0xb7cd, 0xb7c5, 0xb7cd, 0xb7cd, 0xb732, 0xb732, 0xb732,
++      0xb732, 0xb732, 0xb732, 0xb732, 0xb732, 0xb732, 0xb732, 0xb732,
++      0xb734, 0xb732, 0xb7cd, 0xb732, 0xb732, 0xb7cd, 0xb732, 0xb7ca,
++      0xb7cd, 0xb732, 0xb732, 0xb732, 0xb732, 0xb7cd, 0xb7cd, 0xb732,
++      0xb7cd, 0xb7cd, 0xb732, 0xb740, 0xb732, 0xb732, 0xb732, 0xb732,
++      0xb7c9, 0xb7cd, 0xb732, 0xb732, 0xb7cd, 0xb7cd, 0xb732, 0xb732,
++      0xb732, 0xb732, 0x080c, 0x1519, 0x080c, 0x7dca, 0x2001, 0xc8fd,
++      0x2004, 0x6016, 0x6003, 0x0002, 0x080c, 0x7ead, 0x0804, 0xb7d3,
++      0x2001, 0x0000, 0x080c, 0x5298, 0x0804, 0xb7cd, 0x00f6, 0x2079,
++      0xc652, 0x7804, 0x00fe, 0xd0ac, 0x1904, 0xb7cd, 0x2001, 0x0000,
++      0x080c, 0x5298, 0x6018, 0xa080, 0x0004, 0x2004, 0xa086, 0x00ff,
++      0x1140, 0x00f6, 0x2079, 0xc600, 0x7898, 0x8000, 0x789a, 0x00fe,
++      0x00e0, 0x00c6, 0x6018, 0x2060, 0x6000, 0xd0f4, 0x1140, 0x6010,
++      0xa005, 0x0128, 0x00ce, 0x080c, 0x4108, 0x0804, 0xb7cd, 0x00ce,
++      0x2001, 0xc600, 0x2004, 0xa086, 0x0002, 0x1138, 0x00f6, 0x2079,
++      0xc600, 0x7898, 0x8000, 0x789a, 0x00fe, 0x2001, 0x0002, 0x080c,
++      0x52aa, 0x080c, 0x7dca, 0x601f, 0x0001, 0x6003, 0x0001, 0x6007,
++      0x0002, 0x080c, 0x79f8, 0x080c, 0x7ead, 0x00c6, 0x6118, 0x2160,
++      0x2009, 0x0001, 0x080c, 0x6fd2, 0x00ce, 0x04e8, 0x6618, 0x00d6,
++      0x2668, 0x6e04, 0x00de, 0xa6b4, 0xff00, 0x8637, 0xa686, 0x0006,
++      0x0560, 0xa686, 0x0004, 0x0548, 0x080c, 0x7682, 0x2001, 0x0004,
++      0x0410, 0x2001, 0xc600, 0x2004, 0xa086, 0x0003, 0x1110, 0x080c,
++      0x4108, 0x2001, 0x0006, 0x04a1, 0x6618, 0x00d6, 0x2668, 0x6e04,
++      0x00de, 0xa6b4, 0xff00, 0x8637, 0xa686, 0x0006, 0x0170, 0x2001,
++      0x0006, 0x0048, 0x2001, 0x0004, 0x0030, 0x2001, 0x0006, 0x0401,
++      0x0020, 0x0018, 0x0010, 0x080c, 0x52d7, 0x080c, 0x7dca, 0x080c,
++      0x95fc, 0x080c, 0x7ead, 0x0005, 0x2600, 0x0002, 0xb7df, 0xb7df,
++      0xb7df, 0xb7df, 0xb7df, 0xb7e1, 0xb7df, 0xb7e1, 0xb7df, 0x080c,
++      0x1519, 0x080c, 0x7dca, 0x080c, 0x95fc, 0x080c, 0x7ead, 0x0005,
++      0x0016, 0x00d6, 0x6118, 0x2168, 0x6900, 0xd184, 0x0140, 0x080c,
++      0x52aa, 0x2001, 0x0000, 0x080c, 0x5298, 0x080c, 0x2e6c, 0x00de,
++      0x001e, 0x0005, 0x00d6, 0x6618, 0x2668, 0x6804, 0xa084, 0xff00,
++      0x8007, 0x00de, 0xa0b2, 0x000c, 0x1a0c, 0x1519, 0xa1b6, 0x0015,
++      0x1110, 0x003b, 0x0028, 0xa1b6, 0x0016, 0x190c, 0x1519, 0x006b,
++      0x0005, 0x9cf3, 0x9cf3, 0x9cf3, 0x9cf3, 0x9cf3, 0x9cf3, 0xb86a,
++      0xb829, 0x9cf3, 0x9cf3, 0x9cf3, 0x9cf3, 0x9cf3, 0x9cf3, 0x9cf3,
++      0x9cf3, 0x9cf3, 0x9cf3, 0xb86a, 0xb871, 0x9cf3, 0x9cf3, 0x9cf3,
++      0x9cf3, 0x00f6, 0x2079, 0xc652, 0x7804, 0xd0ac, 0x11e0, 0x6018,
++      0xa07d, 0x01c8, 0x7800, 0xd0f4, 0x1118, 0x7810, 0xa005, 0x1198,
++      0x2001, 0x0000, 0x080c, 0x5298, 0x2001, 0x0002, 0x080c, 0x52aa,
++      0x601f, 0x0001, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x79f8,
++      0x080c, 0x7ead, 0x00e8, 0x2011, 0xcc83, 0x2204, 0x8211, 0x220c,
++      0x080c, 0x29c7, 0x11a8, 0x00c6, 0x080c, 0x5356, 0x0120, 0x00ce,
++      0x080c, 0x95fc, 0x0068, 0x6010, 0x0006, 0x6014, 0x0006, 0x080c,
++      0x4f60, 0x000e, 0x6016, 0x000e, 0x6012, 0x00ce, 0x080c, 0x95fc,
++      0x00fe, 0x0005, 0x6604, 0xa6b6, 0x001e, 0x1110, 0x080c, 0x95fc,
++      0x0005, 0x080c, 0x9fcf, 0x1138, 0x6003, 0x0001, 0x6007, 0x0001,
++      0x080c, 0x79f8, 0x0010, 0x080c, 0x95fc, 0x0005, 0x6004, 0xa08a,
++      0x0080, 0x1a0c, 0x1519, 0x080c, 0x7dca, 0x080c, 0xae6d, 0x080c,
++      0x7ead, 0x0005, 0xa182, 0x0040, 0x0002, 0xb8a0, 0xb8a0, 0xb8a0,
++      0xb8a0, 0xb8a2, 0xb8a0, 0xb8a0, 0xb8a0, 0xb8a0, 0xb8a0, 0xb8a0,
++      0xb8a0, 0xb8a0, 0xb8a0, 0xb8a0, 0xb8a0, 0xb8a0, 0xb8a0, 0xb8a0,
++      0x080c, 0x1519, 0x00d6, 0x00e6, 0x00f6, 0x0156, 0x0046, 0x0026,
++      0x6218, 0xa280, 0x002f, 0x2004, 0xa005, 0x0120, 0x2021, 0x0000,
++      0x080c, 0xc3dd, 0x6106, 0x2071, 0xcc80, 0x7444, 0xa4a4, 0xff00,
++      0x0904, 0xb906, 0xa486, 0x2000, 0x1130, 0x2009, 0x0001, 0x2011,
++      0x0200, 0x080c, 0x7147, 0x080c, 0x1602, 0x090c, 0x1519, 0x6003,
++      0x0007, 0x2d00, 0x6837, 0x010d, 0x6803, 0x0000, 0x683b, 0x0000,
++      0x6c5a, 0x2c00, 0x685e, 0x6008, 0x68b2, 0x6018, 0x2078, 0x78a0,
++      0x8007, 0x7130, 0x694a, 0x0016, 0xa084, 0xff00, 0x6846, 0x684f,
++      0x0000, 0x6853, 0x0000, 0x6857, 0x0036, 0x080c, 0x5823, 0x001e,
++      0xa486, 0x2000, 0x1130, 0x2019, 0x0017, 0x080c, 0xc126, 0x0804,
++      0xb963, 0xa486, 0x0400, 0x1130, 0x2019, 0x0002, 0x080c, 0xc0d8,
++      0x0804, 0xb963, 0xa486, 0x0200, 0x1110, 0x080c, 0xc0bd, 0xa486,
++      0x1000, 0x1110, 0x080c, 0xc10b, 0x0804, 0xb963, 0x2069, 0xc9bc,
++      0x6a00, 0xd284, 0x0904, 0xb9ca, 0xa284, 0x0300, 0x1904, 0xb9c3,
++      0x6804, 0xa005, 0x0904, 0xb9ab, 0x2d78, 0x6003, 0x0007, 0x080c,
++      0x15e5, 0x0904, 0xb96a, 0x7800, 0xd08c, 0x1118, 0x7804, 0x8001,
++      0x7806, 0x6013, 0x0000, 0x6803, 0x0000, 0x6837, 0x0116, 0x683b,
++      0x0000, 0x6008, 0x68b2, 0x2c00, 0x684a, 0x6018, 0x2078, 0x78a0,
++      0x8007, 0x7130, 0x6986, 0x6846, 0x7928, 0x698a, 0x792c, 0x698e,
++      0x7930, 0x6992, 0x7934, 0x6996, 0x6853, 0x003d, 0x7244, 0xa294,
++      0x0003, 0xa286, 0x0002, 0x1118, 0x684f, 0x0040, 0x0040, 0xa286,
++      0x0001, 0x1118, 0x684f, 0x0080, 0x0010, 0x684f, 0x0000, 0x20a9,
++      0x000a, 0x2001, 0xcc90, 0xad90, 0x0015, 0x200c, 0x810f, 0x2112,
++      0x8000, 0x8210, 0x1f04, 0xb955, 0x200c, 0x6982, 0x8000, 0x200c,
++      0x697e, 0x080c, 0x5823, 0x002e, 0x004e, 0x015e, 0x00fe, 0x00ee,
++      0x00de, 0x0005, 0x2001, 0xc60e, 0x2004, 0xd084, 0x0120, 0x080c,
++      0x1602, 0x1904, 0xb91b, 0x6013, 0x0100, 0x6003, 0x0001, 0x6007,
++      0x0041, 0x080c, 0x79b2, 0x080c, 0x7ead, 0x0c28, 0x2069, 0xcc92,
++      0x2d04, 0xa084, 0xff00, 0xa086, 0x1200, 0x11a8, 0x2069, 0xcc80,
++      0x686c, 0xa084, 0x00ff, 0x0016, 0x6110, 0xa18c, 0x0700, 0xa10d,
++      0x6112, 0x001e, 0x6003, 0x0001, 0x6007, 0x0043, 0x080c, 0x79b2,
++      0x080c, 0x7ead, 0x0840, 0x6868, 0x602a, 0x686c, 0x602e, 0x6013,
++      0x0200, 0x6003, 0x0001, 0x6007, 0x0041, 0x080c, 0x79b2, 0x080c,
++      0x7ead, 0x0804, 0xb963, 0x2001, 0xc60d, 0x2004, 0xd0ec, 0x0120,
++      0x2011, 0x8049, 0x080c, 0x4096, 0x6013, 0x0300, 0x0010, 0x6013,
++      0x0100, 0x6003, 0x0001, 0x6007, 0x0041, 0x080c, 0x79b2, 0x080c,
++      0x7ead, 0x0804, 0xb963, 0x6013, 0x0500, 0x0c98, 0x6013, 0x0600,
++      0x0804, 0xb97e, 0x6013, 0x0200, 0x0804, 0xb97e, 0xa186, 0x0013,
++      0x1170, 0x6004, 0xa08a, 0x0040, 0x0a0c, 0x1519, 0xa08a, 0x0053,
++      0x1a0c, 0x1519, 0xa082, 0x0040, 0x2008, 0x0804, 0xba58, 0xa186,
++      0x0051, 0x0138, 0xa186, 0x0047, 0x11d8, 0x6004, 0xa086, 0x0041,
++      0x0518, 0x2001, 0x0109, 0x2004, 0xd084, 0x01f0, 0x0126, 0x2091,
++      0x2800, 0x0006, 0x0016, 0x0026, 0x080c, 0x788c, 0x002e, 0x001e,
++      0x000e, 0x012e, 0x6000, 0xa086, 0x0002, 0x1170, 0x0804, 0xba9b,
++      0xa186, 0x0027, 0x0120, 0xa186, 0x0014, 0x190c, 0x1519, 0x6004,
++      0xa082, 0x0040, 0x2008, 0x001a, 0x080c, 0x9643, 0x0005, 0xba22,
++      0xba24, 0xba24, 0xba48, 0xba22, 0xba22, 0xba22, 0xba22, 0xba22,
++      0xba22, 0xba22, 0xba22, 0xba22, 0xba22, 0xba22, 0xba22, 0xba22,
++      0xba22, 0xba22, 0x080c, 0x1519, 0x080c, 0x7dca, 0x080c, 0x7ead,
++      0x0036, 0x00d6, 0x6010, 0xa06d, 0x01c0, 0xad84, 0xf000, 0x01a8,
++      0x6003, 0x0002, 0x6018, 0x2004, 0xd0bc, 0x1178, 0x2019, 0x0004,
++      0x080c, 0xc15a, 0x6013, 0x0000, 0x6014, 0xa005, 0x1120, 0x2001,
++      0xc8fe, 0x2004, 0x6016, 0x6003, 0x0007, 0x00de, 0x003e, 0x0005,
++      0x00d6, 0x080c, 0x7dca, 0x080c, 0x7ead, 0x080c, 0xacaa, 0x0120,
++      0x6010, 0x2068, 0x080c, 0x1619, 0x080c, 0xae6d, 0x00de, 0x0005,
++      0x0002, 0xba6c, 0xba89, 0xba75, 0xba95, 0xba6c, 0xba6c, 0xba6c,
++      0xba6c, 0xba6c, 0xba6c, 0xba6c, 0xba6c, 0xba6c, 0xba6c, 0xba6c,
++      0xba6c, 0xba6c, 0xba6c, 0xba6c, 0x080c, 0x1519, 0x6010, 0xa088,
++      0x0013, 0x2104, 0xa085, 0x0400, 0x200a, 0x080c, 0x7dca, 0x6010,
++      0xa080, 0x0013, 0x2004, 0xd0b4, 0x0138, 0x6003, 0x0007, 0x2009,
++      0x0043, 0x080c, 0x962c, 0x0010, 0x6003, 0x0002, 0x080c, 0x7ead,
++      0x0005, 0x080c, 0x7dca, 0x080c, 0xc398, 0x1120, 0x080c, 0x711c,
++      0x080c, 0x95fc, 0x080c, 0x7ead, 0x0005, 0x080c, 0x7dca, 0x2009,
++      0x0041, 0x0804, 0xbbe4, 0xa182, 0x0040, 0x0002, 0xbab1, 0xbab3,
++      0xbab1, 0xbab1, 0xbab1, 0xbab1, 0xbab1, 0xbab4, 0xbab1, 0xbab1,
++      0xbab1, 0xbab1, 0xbab1, 0xbab1, 0xbab1, 0xbab1, 0xbab1, 0xbabf,
++      0xbab1, 0x080c, 0x1519, 0x0005, 0x6003, 0x0004, 0x6110, 0x20e1,
++      0x0005, 0x3d18, 0x3e20, 0x2c10, 0x080c, 0x1870, 0x0005, 0x00d6,
++      0x080c, 0x711c, 0x00de, 0x080c, 0xc3fb, 0x080c, 0x95fc, 0x0005,
++      0xa182, 0x0040, 0x0002, 0xbade, 0xbade, 0xbade, 0xbade, 0xbade,
++      0xbade, 0xbade, 0xbae0, 0xbade, 0xbae3, 0xbb1c, 0xbade, 0xbade,
++      0xbade, 0xbade, 0xbb1c, 0xbade, 0xbade, 0xbade, 0x080c, 0x1519,
++      0x080c, 0x9643, 0x0005, 0x2001, 0xc672, 0x2004, 0xd0e4, 0x0158,
++      0x2001, 0x0100, 0x2004, 0xa082, 0x0005, 0x0228, 0x2001, 0x011f,
++      0x2004, 0x6036, 0x0010, 0x6037, 0x0000, 0x080c, 0x7e60, 0x080c,
++      0x7f87, 0x6010, 0x00d6, 0x2068, 0x684c, 0xd0fc, 0x0150, 0xa08c,
++      0x0003, 0xa18e, 0x0002, 0x0168, 0x2009, 0x0041, 0x00de, 0x0804,
++      0xbbe4, 0x6003, 0x0007, 0x6017, 0x0000, 0x080c, 0x711c, 0x00de,
++      0x0005, 0x080c, 0xc398, 0x0110, 0x00de, 0x0005, 0x080c, 0x711c,
++      0x080c, 0x95fc, 0x00de, 0x0ca0, 0x0036, 0x080c, 0x7e60, 0x080c,
++      0x7f87, 0x6010, 0x00d6, 0x2068, 0x6018, 0x2004, 0xd0bc, 0x0188,
++      0x684c, 0xa084, 0x0003, 0xa086, 0x0002, 0x0140, 0x687c, 0x632c,
++      0xa31a, 0x632e, 0x6880, 0x6328, 0xa31b, 0x632a, 0x6003, 0x0002,
++      0x0080, 0x2019, 0x0004, 0x080c, 0xc15a, 0x6014, 0xa005, 0x1128,
++      0x2001, 0xc8fe, 0x2004, 0x8003, 0x6016, 0x6013, 0x0000, 0x6003,
++      0x0007, 0x00de, 0x003e, 0x0005, 0xa186, 0x0013, 0x1150, 0x6004,
++      0xa086, 0x0042, 0x190c, 0x1519, 0x080c, 0x7dca, 0x080c, 0x7ead,
++      0x0005, 0xa186, 0x0027, 0x0118, 0xa186, 0x0014, 0x1180, 0x6004,
++      0xa086, 0x0042, 0x190c, 0x1519, 0x2001, 0x0007, 0x080c, 0x52d7,
++      0x080c, 0x7dca, 0x080c, 0xae6d, 0x080c, 0x7ead, 0x0005, 0xa182,
++      0x0040, 0x0002, 0xbb85, 0xbb85, 0xbb85, 0xbb85, 0xbb85, 0xbb85,
++      0xbb85, 0xbb87, 0xbb93, 0xbb85, 0xbb85, 0xbb85, 0xbb85, 0xbb85,
++      0xbb85, 0xbb85, 0xbb85, 0xbb85, 0xbb85, 0x080c, 0x1519, 0x0036,
++      0x0046, 0x20e1, 0x0005, 0x3d18, 0x3e20, 0x2c10, 0x080c, 0x1870,
++      0x004e, 0x003e, 0x0005, 0x6010, 0x00d6, 0x2068, 0x6810, 0x6a14,
++      0x0006, 0x0046, 0x0056, 0x6c7c, 0xa422, 0x6d80, 0x2200, 0xa52b,
++      0x602c, 0xa420, 0x642e, 0x6028, 0xa529, 0x652a, 0x005e, 0x004e,
++      0x000e, 0xa20d, 0x1178, 0x684c, 0xd0fc, 0x0120, 0x2009, 0x0041,
++      0x00de, 0x0490, 0x6003, 0x0007, 0x6017, 0x0000, 0x080c, 0x711c,
++      0x00de, 0x0005, 0x0006, 0x00f6, 0x2c78, 0x080c, 0x56dc, 0x00fe,
++      0x000e, 0x0120, 0x6003, 0x0002, 0x00de, 0x0005, 0x2009, 0xc60d,
++      0x210c, 0xd19c, 0x0118, 0x6003, 0x0007, 0x0010, 0x6003, 0x0006,
++      0x0021, 0x080c, 0x711e, 0x00de, 0x0005, 0xd2fc, 0x0140, 0x8002,
++      0x8000, 0x8212, 0xa291, 0x0000, 0x2009, 0x0009, 0x0010, 0x2009,
++      0x0015, 0x6a6a, 0x6866, 0x0005, 0xa182, 0x0040, 0x0208, 0x0062,
++      0xa186, 0x0013, 0x0120, 0xa186, 0x0014, 0x190c, 0x1519, 0x6020,
++      0xd0dc, 0x090c, 0x1519, 0x0005, 0xbc07, 0xbc0e, 0xbc1a, 0xbc26,
++      0xbc07, 0xbc07, 0xbc07, 0xbc35, 0xbc07, 0xbc09, 0xbc09, 0xbc07,
++      0xbc07, 0xbc07, 0xbc07, 0xbc09, 0xbc07, 0xbc09, 0xbc07, 0x080c,
++      0x1519, 0x6020, 0xd0dc, 0x090c, 0x1519, 0x0005, 0x6003, 0x0001,
++      0x6106, 0x080c, 0x79b2, 0x0126, 0x2091, 0x8000, 0x080c, 0x7ead,
++      0x012e, 0x0005, 0x6003, 0x0001, 0x6106, 0x080c, 0x79b2, 0x0126,
++      0x2091, 0x8000, 0x080c, 0x7ead, 0x012e, 0x0005, 0x6003, 0x0003,
++      0x6106, 0x2c10, 0x080c, 0x2068, 0x0126, 0x2091, 0x8000, 0x080c,
++      0x7a15, 0x080c, 0x7f87, 0x012e, 0x0005, 0xa016, 0x080c, 0x1870,
++      0x0005, 0x0126, 0x2091, 0x8000, 0x0036, 0x00d6, 0xa182, 0x0040,
++      0x0023, 0x00de, 0x003e, 0x012e, 0x0005, 0xbc55, 0xbc57, 0xbc69,
++      0xbc84, 0xbc55, 0xbc55, 0xbc55, 0xbc99, 0xbc55, 0xbc55, 0xbc55,
++      0xbc55, 0xbc55, 0xbc55, 0xbc55, 0xbc55, 0x080c, 0x1519, 0x6010,
++      0x2068, 0x684c, 0xd0fc, 0x01f8, 0xa09c, 0x0003, 0xa39e, 0x0003,
++      0x01d0, 0x6003, 0x0001, 0x6106, 0x080c, 0x79b2, 0x080c, 0x7ead,
++      0x0498, 0x6010, 0x2068, 0x684c, 0xd0fc, 0x0168, 0xa09c, 0x0003,
++      0xa39e, 0x0003, 0x0140, 0x6003, 0x0001, 0x6106, 0x080c, 0x79b2,
++      0x080c, 0x7ead, 0x0408, 0x6013, 0x0000, 0x6017, 0x0000, 0x2019,
++      0x0004, 0x080c, 0xc15a, 0x00c0, 0x6010, 0x2068, 0x684c, 0xd0fc,
++      0x0d90, 0xa09c, 0x0003, 0xa39e, 0x0003, 0x0d68, 0x6003, 0x0003,
++      0x6106, 0x2c10, 0x080c, 0x2068, 0x080c, 0x7a15, 0x080c, 0x7f87,
++      0x0018, 0xa016, 0x080c, 0x1870, 0x0005, 0x080c, 0x7dca, 0x6110,
++      0x81ff, 0x0158, 0x00d6, 0x2168, 0x080c, 0xc4f0, 0x0036, 0x2019,
++      0x0029, 0x080c, 0xc15a, 0x003e, 0x00de, 0x080c, 0xae6d, 0x080c,
++      0x7ead, 0x0005, 0x080c, 0x7e60, 0x6110, 0x81ff, 0x0158, 0x00d6,
++      0x2168, 0x080c, 0xc4f0, 0x0036, 0x2019, 0x0029, 0x080c, 0xc15a,
++      0x003e, 0x00de, 0x080c, 0xae6d, 0x080c, 0x7f87, 0x0005, 0xa182,
++      0x0085, 0x0002, 0xbcd3, 0xbcd1, 0xbcd1, 0xbcdf, 0xbcd1, 0xbcd1,
++      0xbcd1, 0x080c, 0x1519, 0x6003, 0x000b, 0x6106, 0x080c, 0x79b2,
++      0x0126, 0x2091, 0x8000, 0x080c, 0x7ead, 0x012e, 0x0005, 0x0026,
++      0x00e6, 0x080c, 0xc391, 0x0118, 0x080c, 0x95fc, 0x00d8, 0x2071,
++      0xcc80, 0x7224, 0x6212, 0x7220, 0x080c, 0xc008, 0x0118, 0x6007,
++      0x0086, 0x0040, 0x6007, 0x0087, 0x7224, 0xa296, 0xffff, 0x1110,
++      0x6007, 0x0086, 0x6003, 0x0001, 0x080c, 0x79b2, 0x080c, 0x7ead,
++      0x080c, 0x7f87, 0x00ee, 0x002e, 0x0005, 0xa186, 0x0013, 0x1160,
++      0x6004, 0xa08a, 0x0085, 0x0a0c, 0x1519, 0xa08a, 0x008c, 0x1a0c,
++      0x1519, 0xa082, 0x0085, 0x00a2, 0xa186, 0x0027, 0x0130, 0xa186,
++      0x0014, 0x0118, 0x080c, 0x9643, 0x0050, 0x2001, 0x0007, 0x080c,
++      0x52d7, 0x080c, 0x7dca, 0x080c, 0xae6d, 0x080c, 0x7ead, 0x0005,
++      0xbd2f, 0xbd31, 0xbd31, 0xbd2f, 0xbd2f, 0xbd2f, 0xbd2f, 0x080c,
++      0x1519, 0x080c, 0x7dca, 0x080c, 0xae6d, 0x080c, 0x7ead, 0x0005,
++      0xa182, 0x0085, 0x0a0c, 0x1519, 0xa182, 0x008c, 0x1a0c, 0x1519,
++      0xa182, 0x0085, 0x0002, 0xbd4a, 0xbd4a, 0xbd4a, 0xbd4c, 0xbd4a,
++      0xbd4a, 0xbd4a, 0x080c, 0x1519, 0x0005, 0xa186, 0x0013, 0x0148,
++      0xa186, 0x0014, 0x0130, 0xa186, 0x0027, 0x0118, 0x080c, 0x9643,
++      0x0030, 0x080c, 0x7dca, 0x080c, 0xae6d, 0x080c, 0x7ead, 0x0005,
++      0x0036, 0x080c, 0xc3fb, 0x603f, 0x0000, 0x2019, 0x000b, 0x0031,
++      0x601f, 0x0006, 0x6003, 0x0007, 0x003e, 0x0005, 0x0126, 0x0036,
++      0x2091, 0x8000, 0x0086, 0x2c40, 0x0096, 0x2049, 0x0000, 0x080c,
++      0x8fe2, 0x009e, 0x008e, 0x1578, 0x0076, 0x2c38, 0x080c, 0x9088,
++      0x007e, 0x1548, 0x6000, 0xa086, 0x0000, 0x0528, 0x601c, 0xa086,
++      0x0007, 0x0508, 0x00d6, 0x6000, 0xa086, 0x0004, 0x1150, 0x080c,
++      0xc3fb, 0x601f, 0x0007, 0x2001, 0xc8fd, 0x2004, 0x6016, 0x080c,
++      0x1953, 0x6010, 0x2068, 0x080c, 0xacaa, 0x0110, 0x080c, 0xc15a,
++      0x00de, 0x6013, 0x0000, 0x080c, 0xc3fb, 0x601f, 0x0007, 0x2001,
++      0xc8fd, 0x2004, 0x6016, 0x003e, 0x012e, 0x0005, 0x00f6, 0x00c6,
++      0x0036, 0x0156, 0x2079, 0xcc80, 0x7938, 0x783c, 0x080c, 0x29c7,
++      0x15b0, 0x0016, 0x00c6, 0x080c, 0x5356, 0x1578, 0x001e, 0x002e,
++      0x0026, 0x0016, 0x2019, 0x0029, 0x080c, 0x914b, 0x080c, 0x7b2f,
++      0x0076, 0x2039, 0x0000, 0x080c, 0x7a27, 0x007e, 0x001e, 0x0076,
++      0x2039, 0x0000, 0x080c, 0xbf10, 0x007e, 0x080c, 0x5557, 0x0026,
++      0x6204, 0xa294, 0xff00, 0x8217, 0xa286, 0x0006, 0x0118, 0xa286,
++      0x0004, 0x1118, 0x62a0, 0x080c, 0x2eff, 0x002e, 0x001e, 0x080c,
++      0x4f60, 0x6612, 0x6516, 0xa006, 0x0010, 0x00ce, 0x001e, 0x015e,
++      0x003e, 0x00ce, 0x00fe, 0x0005, 0x00c6, 0x00d6, 0x00e6, 0x0016,
++      0x2009, 0xc621, 0x2104, 0xa086, 0x0074, 0x1904, 0xbe49, 0x2069,
++      0xcc8e, 0x690c, 0xa182, 0x0100, 0x06c0, 0x6908, 0xa184, 0x8000,
++      0x05e8, 0x2001, 0xc8e5, 0x2004, 0xa005, 0x1160, 0x6018, 0x2070,
++      0x7010, 0xa084, 0x00ff, 0x0118, 0x7000, 0xd0f4, 0x0118, 0xa184,
++      0x0800, 0x0560, 0x6910, 0xa18a, 0x0001, 0x0610, 0x6914, 0x2069,
++      0xccae, 0x6904, 0x81ff, 0x1198, 0x690c, 0xa182, 0x0100, 0x02a8,
++      0x6908, 0x81ff, 0x1178, 0x6910, 0xa18a, 0x0001, 0x0288, 0x6918,
++      0xa18a, 0x0001, 0x0298, 0x00d0, 0x6013, 0x0100, 0x00a0, 0x6013,
++      0x0300, 0x0088, 0x6013, 0x0500, 0x0070, 0x6013, 0x0700, 0x0058,
++      0x6013, 0x0900, 0x0040, 0x6013, 0x0b00, 0x0028, 0x6013, 0x0f00,
++      0x0010, 0x6013, 0x2d00, 0xa085, 0x0001, 0x0008, 0xa006, 0x001e,
++      0x00ee, 0x00de, 0x00ce, 0x0005, 0x00c6, 0x00d6, 0x0026, 0x0036,
++      0x0156, 0x6218, 0x2268, 0x6b04, 0xa394, 0x00ff, 0xa286, 0x0006,
++      0x0190, 0xa286, 0x0004, 0x0178, 0xa394, 0xff00, 0x8217, 0xa286,
++      0x0006, 0x0148, 0xa286, 0x0004, 0x0130, 0x00c6, 0x2d60, 0x080c,
++      0x5365, 0x00ce, 0x04c0, 0x2011, 0xcc96, 0xad98, 0x000a, 0x20a9,
++      0x0004, 0x080c, 0xa11c, 0x1580, 0x2011, 0xcc9a, 0xad98, 0x0006,
++      0x20a9, 0x0004, 0x080c, 0xa11c, 0x1538, 0x0046, 0x0016, 0x6aa0,
++      0xa294, 0x00ff, 0x8227, 0xa006, 0x2009, 0xc653, 0x210c, 0xd1a4,
++      0x0138, 0x2009, 0x0029, 0x080c, 0xc1a9, 0x6800, 0xc0e5, 0x6802,
++      0x2019, 0x0029, 0x080c, 0x7b2f, 0x0076, 0x2039, 0x0000, 0x080c,
++      0x7a27, 0x2c08, 0x080c, 0xbf10, 0x007e, 0x2001, 0x0007, 0x080c,
++      0x52d7, 0x001e, 0x004e, 0xa006, 0x015e, 0x003e, 0x002e, 0x00de,
++      0x00ce, 0x0005, 0x00d6, 0x2069, 0xcc8e, 0x6800, 0xa086, 0x0800,
++      0x0118, 0x6013, 0x0000, 0x0008, 0xa006, 0x00de, 0x0005, 0x00c6,
++      0x00f6, 0x0016, 0x0026, 0x0036, 0x0156, 0x2079, 0xcc8c, 0x7930,
++      0x7834, 0x080c, 0x29c7, 0x11a0, 0x080c, 0x5356, 0x1188, 0x2011,
++      0xcc90, 0xac98, 0x000a, 0x20a9, 0x0004, 0x080c, 0xa11c, 0x1140,
++      0x2011, 0xcc94, 0xac98, 0x0006, 0x20a9, 0x0004, 0x080c, 0xa11c,
++      0x015e, 0x003e, 0x002e, 0x001e, 0x00fe, 0x00ce, 0x0005, 0x00c6,
++      0x0006, 0x0016, 0x0026, 0x0036, 0x0156, 0x2011, 0xcc83, 0x2204,
++      0x8211, 0x220c, 0x080c, 0x29c7, 0x11a0, 0x080c, 0x5356, 0x1188,
++      0x2011, 0xcc96, 0xac98, 0x000a, 0x20a9, 0x0004, 0x080c, 0xa11c,
++      0x1140, 0x2011, 0xcc9a, 0xac98, 0x0006, 0x20a9, 0x0004, 0x080c,
++      0xa11c, 0x015e, 0x003e, 0x002e, 0x001e, 0x000e, 0x00ce, 0x0005,
++      0x00e6, 0x00c6, 0x0086, 0x0076, 0x0066, 0x0056, 0x0046, 0x0026,
++      0x0126, 0x2091, 0x8000, 0x2740, 0x2029, 0xc930, 0x252c, 0x2021,
++      0xc936, 0x2424, 0x2061, 0xce00, 0x2071, 0xc600, 0x7648, 0x7068,
++      0x81ff, 0x0150, 0x0006, 0xa186, 0xca3c, 0x000e, 0x0128, 0x8001,
++      0xa602, 0x1a04, 0xbf91, 0x0018, 0xa606, 0x0904, 0xbf91, 0x2100,
++      0xac06, 0x0904, 0xbf88, 0x080c, 0xc1d1, 0x0904, 0xbf88, 0x671c,
++      0xa786, 0x0001, 0x0904, 0xbfda, 0xa786, 0x0004, 0x0904, 0xbfda,
++      0xa786, 0x0007, 0x05e8, 0x2500, 0xac06, 0x05d0, 0x2400, 0xac06,
++      0x05b8, 0x080c, 0xc1e1, 0x15a0, 0x88ff, 0x0118, 0x6050, 0xa906,
++      0x1578, 0x00d6, 0x6000, 0xa086, 0x0004, 0x1120, 0x0016, 0x080c,
++      0x1953, 0x001e, 0xa786, 0x0008, 0x1148, 0x080c, 0xaea8, 0x1130,
++      0x080c, 0x9c22, 0x00de, 0x080c, 0xae6d, 0x00d0, 0x6010, 0x2068,
++      0x080c, 0xacaa, 0x0190, 0xa786, 0x0003, 0x1528, 0x6837, 0x0103,
++      0x6b4a, 0x6847, 0x0000, 0x080c, 0xc4f0, 0x0016, 0x080c, 0xaf1c,
++      0x080c, 0x5823, 0x001e, 0x080c, 0xae61, 0x00de, 0x080c, 0xae6d,
++      0xace0, 0x0018, 0x2001, 0xc617, 0x2004, 0xac02, 0x1210, 0x0804,
++      0xbf24, 0x012e, 0x002e, 0x004e, 0x005e, 0x006e, 0x007e, 0x008e,
++      0x00ce, 0x00ee, 0x0005, 0xa786, 0x0006, 0x1150, 0xa386, 0x0005,
++      0x0128, 0x080c, 0xc4f0, 0x080c, 0xc15a, 0x08f8, 0x00de, 0x0c00,
++      0xa786, 0x0009, 0x1548, 0x6000, 0xa086, 0x0004, 0x1128, 0x00c6,
++      0x080c, 0x7633, 0x00ce, 0x00e8, 0x6000, 0xa086, 0x0003, 0x11c8,
++      0x080c, 0x7e60, 0x00e6, 0x00d6, 0x6110, 0x2168, 0x080c, 0xacaa,
++      0x0140, 0x6018, 0x2070, 0x70b3, 0x0000, 0x70b7, 0x0000, 0x080c,
++      0x5823, 0x00de, 0x00ee, 0x00c6, 0x080c, 0x95fc, 0x00ce, 0x080c,
++      0x7f87, 0x00de, 0x0804, 0xbf88, 0xa786, 0x000a, 0x0904, 0xbf78,
++      0x0804, 0xbf76, 0x080c, 0xc1e1, 0x1904, 0xbf88, 0x81ff, 0x0904,
++      0xbf88, 0xa180, 0x0001, 0x2004, 0xa086, 0x0018, 0x0138, 0xa180,
++      0x0001, 0x2004, 0xa086, 0x002d, 0x1904, 0xbf88, 0x6000, 0xa086,
++      0x0002, 0x1904, 0xbf88, 0x080c, 0xae97, 0x0138, 0x080c, 0xaea8,
++      0x1904, 0xbf88, 0x080c, 0x9c22, 0x0038, 0x080c, 0x2e6c, 0x080c,
++      0xaea8, 0x1110, 0x080c, 0x9c22, 0x080c, 0xae6d, 0x0804, 0xbf88,
++      0x00c6, 0x00e6, 0x0016, 0x2c08, 0x2170, 0xa006, 0x080c, 0xc17b,
++      0x001e, 0x0120, 0x601c, 0xa084, 0x000f, 0x001b, 0x00ee, 0x00ce,
++      0x0005, 0xc021, 0xc021, 0xc021, 0xc021, 0xc021, 0xc021, 0xc023,
++      0xc021, 0xa006, 0x0005, 0x0046, 0x0016, 0x7018, 0xa080, 0x0028,
++      0x2024, 0xa4a4, 0x00ff, 0x8427, 0x2c00, 0x2009, 0x0020, 0x080c,
++      0xc1a9, 0x001e, 0x004e, 0x0036, 0x2019, 0x0002, 0x080c, 0xbd6e,
++      0x003e, 0xa085, 0x0001, 0x0005, 0x2001, 0x0001, 0x080c, 0x5298,
++      0x0156, 0x0016, 0x0026, 0x0036, 0x20a9, 0x0004, 0x2019, 0xc605,
++      0x2011, 0xcc96, 0x080c, 0xa11c, 0x003e, 0x002e, 0x001e, 0x015e,
++      0xa005, 0x0005, 0x00f6, 0x00e6, 0x00c6, 0x0086, 0x0076, 0x0066,
++      0x0026, 0x0126, 0x2091, 0x8000, 0x2740, 0x2061, 0xce00, 0x2079,
++      0x0001, 0x8fff, 0x0904, 0xc0b0, 0x2071, 0xc600, 0x7648, 0x7068,
++      0x8001, 0xa602, 0x1a04, 0xc0b0, 0x88ff, 0x0128, 0x2800, 0xac06,
++      0x15b0, 0x2079, 0x0000, 0x080c, 0xc1d1, 0x0588, 0x2400, 0xac06,
++      0x0570, 0x671c, 0xa786, 0x0006, 0x1550, 0xa786, 0x0007, 0x0538,
++      0x88ff, 0x1140, 0x6018, 0xa206, 0x1510, 0x85ff, 0x0118, 0x6050,
++      0xa106, 0x11e8, 0x00d6, 0x6000, 0xa086, 0x0004, 0x1150, 0x080c,
++      0xc3fb, 0x601f, 0x0007, 0x2001, 0xc8fd, 0x2004, 0x6016, 0x080c,
++      0x1953, 0x6010, 0x2068, 0x080c, 0xacaa, 0x0120, 0x0046, 0x080c,
++      0xc15a, 0x004e, 0x00de, 0x080c, 0xae6d, 0x88ff, 0x1198, 0xace0,
++      0x0018, 0x2001, 0xc617, 0x2004, 0xac02, 0x1210, 0x0804, 0xc061,
++      0xa006, 0x012e, 0x002e, 0x006e, 0x007e, 0x008e, 0x00ce, 0x00ee,
++      0x00fe, 0x0005, 0xa8c5, 0x0001, 0x0ca0, 0x0076, 0x0056, 0x0086,
++      0x2041, 0x0000, 0x2029, 0x0001, 0x2c20, 0x2019, 0x0002, 0x6218,
++      0x0096, 0x2049, 0x0000, 0x080c, 0x8fe2, 0x009e, 0x008e, 0x2039,
++      0x0000, 0x080c, 0x9088, 0x080c, 0xc052, 0x005e, 0x007e, 0x0005,
++      0x0026, 0x0046, 0x0056, 0x0076, 0x00c6, 0x0156, 0x2c20, 0x2128,
++      0x20a9, 0x007f, 0x2009, 0x0000, 0x0016, 0x0036, 0x080c, 0x5356,
++      0x11b0, 0x2c10, 0x0056, 0x0086, 0x2041, 0x0000, 0x2508, 0x2029,
++      0x0001, 0x0096, 0x2049, 0x0000, 0x080c, 0x8fe2, 0x009e, 0x008e,
++      0x2039, 0x0000, 0x080c, 0x9088, 0x080c, 0xc052, 0x005e, 0x003e,
++      0x001e, 0x8108, 0x1f04, 0xc0e4, 0x015e, 0x00ce, 0x007e, 0x005e,
++      0x004e, 0x002e, 0x0005, 0x0076, 0x0056, 0x6218, 0x0086, 0x2041,
++      0x0000, 0x2029, 0x0001, 0x2019, 0x0048, 0x0096, 0x2049, 0x0000,
++      0x080c, 0x8fe2, 0x009e, 0x008e, 0x2039, 0x0000, 0x080c, 0x9088,
++      0x2c20, 0x080c, 0xc052, 0x005e, 0x007e, 0x0005, 0x0026, 0x0046,
++      0x0056, 0x0076, 0x00c6, 0x0156, 0x2c20, 0x20a9, 0x007f, 0x2009,
++      0x0000, 0x0016, 0x0036, 0x080c, 0x5356, 0x11c0, 0x2c10, 0x0086,
++      0x2041, 0x0000, 0x2828, 0x0046, 0x2021, 0x0001, 0x080c, 0xc3dd,
++      0x004e, 0x0096, 0x2049, 0x0000, 0x080c, 0x8fe2, 0x009e, 0x008e,
++      0x2039, 0x0000, 0x080c, 0x9088, 0x080c, 0xc052, 0x003e, 0x001e,
++      0x8108, 0x1f04, 0xc131, 0x015e, 0x00ce, 0x007e, 0x005e, 0x004e,
++      0x002e, 0x0005, 0x0016, 0x00f6, 0x3800, 0xd08c, 0x0130, 0xad82,
++      0x1000, 0x02b0, 0xad82, 0xc600, 0x0230, 0xad82, 0xfe00, 0x0280,
++      0xad82, 0xffff, 0x1268, 0x6800, 0xa07d, 0x0138, 0x6803, 0x0000,
++      0x6b52, 0x080c, 0x5823, 0x2f68, 0x0cb0, 0x6b52, 0x080c, 0x5823,
++      0x00fe, 0x001e, 0x0005, 0x00e6, 0x0046, 0x0036, 0x2061, 0xce00,
++      0xa005, 0x1138, 0x2071, 0xc600, 0x7448, 0x7068, 0x8001, 0xa402,
++      0x12d8, 0x2100, 0xac06, 0x0168, 0x6000, 0xa086, 0x0000, 0x0148,
++      0x6008, 0xa206, 0x1130, 0x6018, 0xa1a0, 0x0006, 0x2424, 0xa406,
++      0x0140, 0xace0, 0x0018, 0x2001, 0xc617, 0x2004, 0xac02, 0x1220,
++      0x0c40, 0xa085, 0x0001, 0x0008, 0xa006, 0x003e, 0x004e, 0x00ee,
++      0x0005, 0x00d6, 0x0006, 0x080c, 0x1602, 0x000e, 0x090c, 0x1519,
++      0x6837, 0x010d, 0x685e, 0x0026, 0x2010, 0x080c, 0xac9a, 0x2001,
++      0x0000, 0x0120, 0x2200, 0xa080, 0x0014, 0x2004, 0x002e, 0x684a,
++      0x6956, 0x6c46, 0x684f, 0x0000, 0x2001, 0xc905, 0x2004, 0x6852,
++      0xa006, 0x68b2, 0x6802, 0x683a, 0x685a, 0x080c, 0x5823, 0x00de,
++      0x0005, 0x6700, 0xa786, 0x0000, 0x0158, 0xa786, 0x0001, 0x0140,
++      0xa786, 0x000a, 0x0128, 0xa786, 0x0009, 0x0110, 0xa085, 0x0001,
++      0x0005, 0x00e6, 0x6018, 0x2070, 0x70a0, 0xa206, 0x00ee, 0x0005,
++      0x0016, 0x6004, 0xa08e, 0x001e, 0x11a0, 0x8007, 0x6130, 0xa18c,
++      0x00ff, 0xa105, 0x6032, 0x6007, 0x0085, 0x6003, 0x000b, 0x601f,
++      0x0005, 0x2001, 0xc8fe, 0x2004, 0x6016, 0x080c, 0x79b2, 0x080c,
++      0x7ead, 0x001e, 0x0005, 0xe000, 0xe000, 0x0005, 0x6020, 0xd0e4,
++      0x0158, 0xd0cc, 0x0118, 0x080c, 0xaf85, 0x0030, 0x080c, 0xc3fb,
++      0x080c, 0x711c, 0x080c, 0x95fc, 0x0005, 0xa280, 0x0007, 0x2004,
++      0xa084, 0x000f, 0x0002, 0xc224, 0xc224, 0xc224, 0xc229, 0xc224,
++      0xc226, 0xc226, 0xc224, 0xc226, 0xa006, 0x0005, 0x00c6, 0x2260,
++      0x00ce, 0xa085, 0x0001, 0x0005, 0xa280, 0x0007, 0x2004, 0xa084,
++      0x000f, 0x0002, 0xc23b, 0xc23b, 0xc23b, 0xc23b, 0xc23b, 0xc23b,
++      0xc246, 0xc23b, 0xc23b, 0x6007, 0x003b, 0x602b, 0x0009, 0x6013,
++      0x2a00, 0x6003, 0x0001, 0x080c, 0x79b2, 0x0005, 0x00c6, 0x2260,
++      0x080c, 0xc3fb, 0x603f, 0x0000, 0x6020, 0xc0f4, 0xc0cc, 0x6022,
++      0x6037, 0x0000, 0x00ce, 0x00d6, 0x2268, 0xa186, 0x0007, 0x1904,
++      0xc2a1, 0x6810, 0xa005, 0x0138, 0xa080, 0x0013, 0x2004, 0xd0fc,
++      0x1110, 0x00de, 0x08c0, 0x6007, 0x003a, 0x6003, 0x0001, 0x080c,
++      0x79b2, 0x080c, 0x7ead, 0x00c6, 0x2d60, 0x6100, 0xa186, 0x0002,
++      0x1904, 0xc32a, 0x6010, 0xa005, 0x1138, 0x6000, 0xa086, 0x0007,
++      0x190c, 0x1519, 0x0804, 0xc32a, 0xa08c, 0xf000, 0x1130, 0x0028,
++      0x2068, 0x6800, 0xa005, 0x1de0, 0x2d00, 0xa080, 0x0013, 0x2004,
++      0xa084, 0x0003, 0xa086, 0x0002, 0x1180, 0x6010, 0x2068, 0x684c,
++      0xc0dc, 0xc0f4, 0x684e, 0x6850, 0xc0f4, 0xc0fc, 0x6852, 0x2009,
++      0x0043, 0x080c, 0xbbe4, 0x0804, 0xc32a, 0x2009, 0x0041, 0x0804,
++      0xc324, 0xa186, 0x0005, 0x15f0, 0x6810, 0xa080, 0x0013, 0x2004,
++      0xd0bc, 0x1118, 0x00de, 0x0804, 0xc23b, 0xd0b4, 0x0128, 0xd0fc,
++      0x090c, 0x1519, 0x0804, 0xc259, 0x6007, 0x003a, 0x6003, 0x0001,
++      0x080c, 0x79b2, 0x080c, 0x7ead, 0x00c6, 0x2d60, 0x6100, 0xa186,
++      0x0002, 0x0120, 0xa186, 0x0004, 0x1904, 0xc32a, 0x2071, 0xc96a,
++      0x7000, 0xa086, 0x0003, 0x1128, 0x7004, 0xac06, 0x1110, 0x7003,
++      0x0000, 0x6810, 0xa080, 0x0013, 0x200c, 0xc1f4, 0xc1dc, 0x2102,
++      0x8000, 0x200c, 0xc1f4, 0xc1fc, 0xc1bc, 0x2102, 0x2009, 0x0042,
++      0x0804, 0xc324, 0x0036, 0x00d6, 0x00d6, 0x080c, 0x1602, 0x003e,
++      0x090c, 0x1519, 0x6837, 0x010d, 0x6803, 0x0000, 0x683b, 0x0000,
++      0x685b, 0x0000, 0x6b5e, 0x6857, 0x0045, 0x2c00, 0x6862, 0x6034,
++      0x6872, 0x2360, 0x6020, 0xc0dd, 0x6022, 0x6018, 0xa080, 0x0028,
++      0x2004, 0xa084, 0x00ff, 0x8007, 0x6350, 0x6b4a, 0x6846, 0x684f,
++      0x0000, 0x6853, 0x0000, 0x6d6a, 0x6e66, 0x686f, 0x0001, 0x080c,
++      0x5823, 0x2019, 0x0045, 0x6008, 0x2068, 0x080c, 0xbd6e, 0x2d00,
++      0x600a, 0x601f, 0x0006, 0x6003, 0x0007, 0x6017, 0x0000, 0x603f,
++      0x0000, 0x00de, 0x003e, 0x0038, 0x603f, 0x0000, 0x6003, 0x0007,
++      0x080c, 0xbbe4, 0x00ce, 0x00de, 0x0005, 0xa186, 0x0013, 0x1128,
++      0x6004, 0xa082, 0x0085, 0x2008, 0x00c2, 0xa186, 0x0027, 0x1178,
++      0x080c, 0x7dca, 0x0036, 0x00d6, 0x6010, 0x2068, 0x2019, 0x0004,
++      0x080c, 0xc15a, 0x00de, 0x003e, 0x080c, 0x7ead, 0x0005, 0xa186,
++      0x0014, 0x0d70, 0x080c, 0x9643, 0x0005, 0xc356, 0xc354, 0xc354,
++      0xc354, 0xc354, 0xc354, 0xc356, 0x080c, 0x1519, 0x080c, 0x7dca,
++      0x6003, 0x000c, 0x080c, 0x7ead, 0x0005, 0xa182, 0x008c, 0x1220,
++      0xa182, 0x0085, 0x0208, 0x001a, 0x080c, 0x9643, 0x0005, 0xc36e,
++      0xc36e, 0xc36e, 0xc36e, 0xc370, 0xc38e, 0xc36e, 0x080c, 0x1519,
++      0x00d6, 0x2c68, 0x080c, 0x95a6, 0x01a0, 0x6003, 0x0001, 0x6007,
++      0x001e, 0x2009, 0xcc8e, 0x210c, 0x6136, 0x2009, 0xcc8f, 0x210c,
++      0x613a, 0x600b, 0xffff, 0x6918, 0x611a, 0x601f, 0x0004, 0x080c,
++      0x79b2, 0x2d60, 0x080c, 0x95fc, 0x00de, 0x0005, 0x080c, 0x95fc,
++      0x0005, 0x00e6, 0x6018, 0x2070, 0x7000, 0xd0ec, 0x00ee, 0x0005,
++      0x6010, 0xa08c, 0xf000, 0x0904, 0xc3dc, 0xa080, 0x0013, 0x200c,
++      0xd1ec, 0x05d0, 0x2001, 0xc672, 0x2004, 0xd0ec, 0x05a8, 0x6003,
++      0x0002, 0x6020, 0xc0e5, 0x6022, 0xd1ac, 0x0180, 0x00f6, 0x2c78,
++      0x080c, 0x56d8, 0x00fe, 0x0150, 0x2001, 0xc8ff, 0x2004, 0x603e,
++      0x2009, 0xc672, 0x210c, 0xd1f4, 0x11e8, 0x0080, 0x2009, 0xc672,
++      0x210c, 0xd1f4, 0x0128, 0x6020, 0xc0e4, 0x6022, 0xa006, 0x00a0,
++      0x2001, 0xc8ff, 0x200c, 0x8103, 0xa100, 0x603e, 0x6018, 0xa088,
++      0x002f, 0x2104, 0xa005, 0x0118, 0xa088, 0x0003, 0x0cd0, 0x2c0a,
++      0x600f, 0x0000, 0xa085, 0x0001, 0x0005, 0x0016, 0x00c6, 0x00e6,
++      0x6150, 0xa2f0, 0x002f, 0x2e04, 0x2060, 0x8cff, 0x0180, 0x84ff,
++      0x1118, 0x6050, 0xa106, 0x1138, 0x600c, 0x2072, 0x080c, 0x711c,
++      0x080c, 0x95fc, 0x0010, 0xacf0, 0x0003, 0x2e64, 0x0c70, 0x00ee,
++      0x00ce, 0x001e, 0x0005, 0x00d6, 0x6018, 0xa0e8, 0x002f, 0x2d04,
++      0xa005, 0x0140, 0xac06, 0x0120, 0x2d04, 0xa0e8, 0x0003, 0x0cb8,
++      0x600c, 0x206a, 0x00de, 0x0005, 0x0026, 0x0036, 0x0156, 0x2011,
++      0xc628, 0x2204, 0xa084, 0x00ff, 0x2019, 0xcc8e, 0x2334, 0xa636,
++      0x11d8, 0x8318, 0x2334, 0x2204, 0xa084, 0xff00, 0xa636, 0x11a0,
++      0x2011, 0xcc90, 0x6018, 0xa098, 0x000a, 0x20a9, 0x0004, 0x080c,
++      0xa11c, 0x1150, 0x2011, 0xcc94, 0x6018, 0xa098, 0x0006, 0x20a9,
++      0x0004, 0x080c, 0xa11c, 0x1100, 0x015e, 0x003e, 0x002e, 0x0005,
++      0x00e6, 0x2071, 0xc600, 0x080c, 0x4f1b, 0x080c, 0x2c62, 0x00ee,
++      0x0005, 0x00d6, 0x080c, 0x15e5, 0x0500, 0x2d10, 0xa290, 0x000d,
++      0x2013, 0x0134, 0x8210, 0x2013, 0x0000, 0x8210, 0x703c, 0x2012,
++      0x8210, 0x7038, 0x2012, 0x8210, 0x2218, 0x7048, 0x2012, 0x8210,
++      0x704c, 0x2012, 0x8210, 0x7050, 0x2012, 0x8210, 0x7054, 0x2012,
++      0x2300, 0x080c, 0x3e91, 0x080c, 0x5823, 0x00de, 0x0005, 0x00d6,
++      0x0026, 0x080c, 0x1602, 0x090c, 0x1519, 0xad90, 0x000e, 0x20a9,
++      0x000c, 0x22a0, 0xa016, 0x42a4, 0xa186, 0x0046, 0x1118, 0x6837,
++      0x0136, 0x0038, 0x6837, 0x0138, 0xa186, 0x0041, 0x0110, 0x684b,
++      0x0001, 0x7038, 0xa084, 0xff00, 0x7240, 0xa294, 0xff00, 0x8007,
++      0xa215, 0x6a6a, 0xa186, 0x0046, 0x1168, 0x7038, 0xa084, 0x00ff,
++      0x723c, 0xa294, 0xff00, 0xa215, 0x6a6e, 0x723c, 0xa294, 0x00ff,
++      0x6a72, 0x0060, 0x7040, 0xa084, 0x00ff, 0x7244, 0xa294, 0xff00,
++      0xa215, 0x6a6e, 0x7244, 0xa294, 0x00ff, 0x6a72, 0xa186, 0x0046,
++      0x1118, 0xae90, 0x0012, 0x0010, 0xae90, 0x001a, 0x2204, 0x8007,
++      0x6876, 0x8210, 0x2204, 0x8007, 0x687a, 0x8210, 0x2204, 0x8007,
++      0x687e, 0x8210, 0x2204, 0x8007, 0x6882, 0x8210, 0xa186, 0x0046,
++      0x1118, 0xae90, 0x0016, 0x0010, 0xae90, 0x001e, 0x2204, 0x8007,
++      0x6886, 0x8210, 0x2204, 0x8007, 0x688a, 0x8210, 0x2204, 0x8007,
++      0x688e, 0x8210, 0x2204, 0x8007, 0x6892, 0x8210, 0xa186, 0x0046,
++      0x1118, 0xae90, 0x0022, 0x0010, 0xae90, 0x002a, 0x00d6, 0xade8,
++      0x0025, 0x20a9, 0x0008, 0x2204, 0x8007, 0x206a, 0x8210, 0x8d68,
++      0x1f04, 0xc4e3, 0x00de, 0x002e, 0x080c, 0x5823, 0x00de, 0x0005,
++      0x00e6, 0x6018, 0x2070, 0x7000, 0xd0fc, 0x0108, 0x0011, 0x00ee,
++      0x0005, 0x6850, 0xc0e5, 0x6852, 0x0005, 0x00e6, 0x00c6, 0x0076,
++      0x0066, 0x0056, 0x0046, 0x0026, 0x0016, 0x0126, 0x2091, 0x8000,
++      0x2029, 0xc930, 0x252c, 0x2021, 0xc936, 0x2424, 0x2061, 0xce00,
++      0x2071, 0xc600, 0x7648, 0x7068, 0xa606, 0x0578, 0x671c, 0xa786,
++      0x0001, 0x0118, 0xa786, 0x0008, 0x1500, 0x2500, 0xac06, 0x01e8,
++      0x2400, 0xac06, 0x01d0, 0x080c, 0xc1d1, 0x01b8, 0x080c, 0xc1e1,
++      0x11a0, 0x6000, 0xa086, 0x0004, 0x1120, 0x0016, 0x080c, 0x1953,
++      0x001e, 0x080c, 0xae97, 0x1110, 0x080c, 0x2e6c, 0x080c, 0xaea8,
++      0x1110, 0x080c, 0x9c22, 0x080c, 0xae6d, 0xace0, 0x0018, 0x2001,
++      0xc617, 0x2004, 0xac02, 0x1208, 0x0858, 0x012e, 0x001e, 0x002e,
++      0x004e, 0x005e, 0x006e, 0x007e, 0x00ce, 0x00ee, 0x0005, 0x0126,
++      0x0006, 0x00e6, 0x0016, 0x2091, 0x8000, 0x2071, 0xc640, 0xd5a4,
++      0x0118, 0x7034, 0x8000, 0x7036, 0xd5b4, 0x0118, 0x7030, 0x8000,
++      0x7032, 0xd5ac, 0x0178, 0x2500, 0xa084, 0x0007, 0xa08e, 0x0003,
++      0x0148, 0xa08e, 0x0004, 0x0130, 0xa08e, 0x0005, 0x0118, 0x2071,
++      0xc64a, 0x04c9, 0x001e, 0x00ee, 0x000e, 0x012e, 0x0005, 0x0126,
++      0x0006, 0x00e6, 0x0016, 0x2091, 0x8000, 0x2071, 0xc640, 0xd5a4,
++      0x0118, 0x7034, 0x8000, 0x7036, 0xd5b4, 0x0118, 0x7030, 0x8000,
++      0x7032, 0xd5ac, 0x0178, 0x2500, 0xa084, 0x0007, 0xa08e, 0x0003,
++      0x0148, 0xa08e, 0x0004, 0x0130, 0xa08e, 0x0005, 0x0118, 0x2071,
++      0xc64a, 0x0089, 0x001e, 0x00ee, 0x000e, 0x012e, 0x0005, 0x0126,
++      0x0006, 0x00e6, 0x2091, 0x8000, 0x2071, 0xc642, 0x0021, 0x00ee,
++      0x000e, 0x012e, 0x0005, 0x2e04, 0x8000, 0x2072, 0x1220, 0x8e70,
++      0x2e04, 0x8000, 0x2072, 0x0005, 0x00e6, 0x2071, 0xc640, 0x0c99,
++      0x00ee, 0x0005, 0x00e6, 0x2071, 0xc644, 0x0c69, 0x00ee, 0x0005,
++      0x0126, 0x0006, 0x00e6, 0x2091, 0x8000, 0x2071, 0xc640, 0x7044,
++      0x8000, 0x7046, 0x00ee, 0x000e, 0x012e, 0x0005, 0x0001, 0x0002,
++      0x0004, 0x0008, 0x0010, 0x0020, 0x0040, 0x0080, 0x0100, 0x0200,
++      0x0400, 0x0800, 0x1000, 0x2000, 0x4000, 0x8000, 0xaedc
+ };
+ #ifdef UNIQUE_FW_NAME
+-unsigned short fw2200ip_length01 = 0xb5b9;
++unsigned short fw2200ip_length01 = 0xb5df;
+ #else
+-unsigned short risc_code_length01 = 0xb5b9;
++unsigned short risc_code_length01 = 0xb5df;
+ #endif
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/ql2300flx_fw.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/ql2300flx_fw.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/ql2300flx_fw.h       1969-12-31 16:00:00.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/ql2300flx_fw.h    2004-04-22 19:42:21.000000000 -0700
+@@ -0,0 +1,6903 @@
++/******************************************************************************\r
++ *                  QLOGIC LINUX SOFTWARE\r
++ *\r
++ * QLogic ISP2x00 device driver for Linux 2.4.x\r
++ * Copyright (C) 2003 QLogic Corporation\r
++ * (www.qlogic.com)\r
++ *\r
++ * This program is free software; you can redistribute it and/or modify it\r
++ * under the terms of the GNU General Public License as published by the\r
++ * Free Software Foundation; either version 2, or (at your option) any\r
++ * later version.\r
++ *\r
++ * This program is distributed in the hope that it will be useful, but\r
++ * WITHOUT ANY WARRANTY; without even the implied warranty of\r
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
++ * General Public License for more details.\r
++ *\r
++ ******************************************************************************/\r
++\r
++/************************************************************************\r
++ *                                                                    *\r
++ *               --- ISP2300 Initiator/Target Firmware ---              *\r
++ *             with Fabric (Public Loop), Point-point,                *\r
++ *             expanded LUN addressing for FCTAPE, and 2K port logins   *\r
++ *                                            FibreLite enabled       *\r
++ *                                                                    *\r
++ ********************************************************************** */\r
++/*\r
++ *    Firmware Version 3.02.28 (13:56 Apr 03, 2004)\r
++ */\r
++\r
++#ifdef UNIQUE_FW_NAME\r
++unsigned short fw2300flx_version = 3*1024+2;\r
++#else\r
++unsigned short risc_code_version = 3*1024+2;\r
++#endif\r
++\r
++#ifdef UNIQUE_FW_NAME\r
++unsigned char fw2300flx_version_str[] = {3, 2,28};\r
++#else\r
++unsigned char firmware_version[] = {3, 2,28};\r
++#endif\r
++\r
++#ifdef UNIQUE_FW_NAME\r
++#define fw2300flx_VERSION_STRING "3.02.28"\r
++#else\r
++#define FW_VERSION_STRING "3.02.28"\r
++#endif\r
++\r
++#ifdef UNIQUE_FW_NAME\r
++unsigned short fw2300flx_addr01 = 0x0800 ;\r
++#else\r
++unsigned short risc_code_addr01 = 0x0800 ;\r
++#endif\r
++\r
++#ifdef UNIQUE_FW_NAME\r
++unsigned short fw2300flx_code01[] = { \r
++#else\r
++unsigned short risc_code01[] = { \r
++#endif\r
++      0x0470, 0x0000, 0x0000, 0xd59a, 0x0000, 0x0003, 0x0002, 0x001c,\r
++      0x0317, 0x2043, 0x4f50, 0x5952, 0x4947, 0x4854, 0x2032, 0x3030,\r
++      0x3120, 0x514c, 0x4f47, 0x4943, 0x2043, 0x4f52, 0x504f, 0x5241,\r
++      0x5449, 0x4f4e, 0x2049, 0x5350, 0x3233, 0x3030, 0x2046, 0x6972,\r
++      0x6d77, 0x6172, 0x6520, 0x2056, 0x6572, 0x7369, 0x6f6e, 0x2030,\r
++      0x332e, 0x3032, 0x2e32, 0x3820, 0x2020, 0x2020, 0x2400, 0x20a9,\r
++      0x000f, 0x2001, 0x0000, 0x400f, 0x2091, 0x2200, 0x20a9, 0x000f,\r
++      0x2001, 0x0000, 0x400f, 0x2091, 0x2400, 0x20a9, 0x000f, 0x2001,\r
++      0x0000, 0x400f, 0x2091, 0x2600, 0x20a9, 0x000f, 0x2001, 0x0000,\r
++      0x400f, 0x2091, 0x2800, 0x20a9, 0x000f, 0x2001, 0x0000, 0x400f,\r
++      0x2091, 0x2a00, 0x20a9, 0x000f, 0x2001, 0x0000, 0x400f, 0x2091,\r
++      0x2c00, 0x20a9, 0x000f, 0x2001, 0x0000, 0x400f, 0x2091, 0x2e00,\r
++      0x20a9, 0x000f, 0x2001, 0x0000, 0x400f, 0x2091, 0x2000, 0x2001,\r
++      0x0000, 0x20c1, 0x0004, 0x20c9, 0x1bff, 0x2059, 0x0000, 0x2b78,\r
++      0x7883, 0x0004, 0x2089, 0x2b4e, 0x2051, 0x1800, 0x2a70, 0x20e1,\r
++      0x0001, 0x20e9, 0x0001, 0x2009, 0x0000, 0x080c, 0x0e2f, 0x2029,\r
++      0x2480, 0x2031, 0xffff, 0x2039, 0x2450, 0x2021, 0x0050, 0x20e9,\r
++      0x0001, 0x20a1, 0x0000, 0x20a9, 0x0800, 0x900e, 0x4104, 0x20e9,\r
++      0x0001, 0x20a1, 0x1000, 0x900e, 0x2001, 0x0cc0, 0x9084, 0x0fff,\r
++      0x20a8, 0x4104, 0x2001, 0x0000, 0x9086, 0x0000, 0x0120, 0x21a8,\r
++      0x4104, 0x8001, 0x1de0, 0x756a, 0x766e, 0x7766, 0x7472, 0x7476,\r
++      0x00e6, 0x2071, 0x1a98, 0x2472, 0x00ee, 0x20a1, 0x1cd0, 0x716c,\r
++      0x810d, 0x810d, 0x810d, 0x810d, 0x918c, 0x000f, 0x2001, 0x0001,\r
++      0x9112, 0x900e, 0x21a8, 0x4104, 0x8211, 0x1de0, 0x716c, 0x3400,\r
++      0x8001, 0x9102, 0x0120, 0x0218, 0x20a8, 0x900e, 0x4104, 0x2009,\r
++      0x1800, 0x810d, 0x810d, 0x810d, 0x810d, 0x810d, 0x918c, 0x001f,\r
++      0x2001, 0x0001, 0x9112, 0x20e9, 0x0001, 0x20a1, 0x0800, 0x900e,\r
++      0x20a9, 0x0800, 0x4104, 0x8211, 0x1dd8, 0x080c, 0x0f03, 0x080c,\r
++      0x5cdf, 0x080c, 0x9dc8, 0x080c, 0x10ba, 0x080c, 0x129f, 0x080c,\r
++      0x1a53, 0x080c, 0x0d46, 0x080c, 0x103f, 0x080c, 0x3238, 0x080c,\r
++      0x72aa, 0x080c, 0x661d, 0x080c, 0x7f73, 0x080c, 0x230a, 0x080c,\r
++      0x82a0, 0x080c, 0x7933, 0x080c, 0x2147, 0x080c, 0x227b, 0x080c,\r
++      0x22ff, 0x2091, 0x3009, 0x7883, 0x0000, 0x1004, 0x091d, 0x7880,\r
++      0x9086, 0x0002, 0x1190, 0x7883, 0x4000, 0x7837, 0x4000, 0x7833,\r
++      0x0010, 0x0e04, 0x0911, 0x2091, 0x5000, 0x2091, 0x4080, 0x2001,\r
++      0x0089, 0x2004, 0xd084, 0x190c, 0x1187, 0x2071, 0x1800, 0x7003,\r
++      0x0000, 0x2071, 0x1800, 0x7000, 0x908e, 0x0003, 0x1168, 0x080c,\r
++      0x499e, 0x080c, 0x325f, 0x080c, 0x731b, 0x080c, 0x6add, 0x080c,\r
++      0x7f9c, 0x080c, 0x2ab8, 0x0c68, 0x000b, 0x0c88, 0x0940, 0x0941,\r
++      0x0ad8, 0x093e, 0x0b8f, 0x0d45, 0x0d45, 0x0d45, 0x080c, 0x0db4,\r
++      0x0005, 0x0126, 0x00f6, 0x2091, 0x8000, 0x7000, 0x9086, 0x0001,\r
++      0x1904, 0x0aab, 0x080c, 0x0e71, 0x080c, 0x6fb2, 0x0150, 0x080c,\r
++      0x6fd5, 0x15a0, 0x2079, 0x0100, 0x7828, 0x9085, 0x1800, 0x782a,\r
++      0x0468, 0x080c, 0x6ee4, 0x7000, 0x9086, 0x0001, 0x1904, 0x0aab,\r
++      0x7094, 0x9086, 0x0028, 0x1904, 0x0aab, 0x080c, 0x7f6b, 0x080c,\r
++      0x7f5d, 0x2001, 0x0161, 0x2003, 0x0001, 0x2079, 0x0100, 0x7827,\r
++      0xffff, 0x7a28, 0x9295, 0x5e2f, 0x7a2a, 0x2011, 0x6e33, 0x080c,\r
++      0x8038, 0x2011, 0x6e26, 0x080c, 0x810c, 0x2011, 0x5b3a, 0x080c,\r
++      0x8038, 0x2011, 0x8030, 0x901e, 0x7392, 0x04d0, 0x080c, 0x53e7,\r
++      0x2079, 0x0100, 0x7844, 0x9005, 0x1904, 0x0aab, 0x2011, 0x5b3a,\r
++      0x080c, 0x8038, 0x2011, 0x6e33, 0x080c, 0x8038, 0x2011, 0x6e26,\r
++      0x080c, 0x810c, 0x2001, 0x0265, 0x2001, 0x0205, 0x2003, 0x0000,\r
++      0x7840, 0x9084, 0xfffb, 0x7842, 0x2001, 0x1977, 0x2004, 0x9005,\r
++      0x1140, 0x00c6, 0x2061, 0x0100, 0x080c, 0x5c87, 0x00ce, 0x0804,\r
++      0x0aab, 0x780f, 0x006b, 0x7a28, 0x080c, 0x6fba, 0x0118, 0x9295,\r
++      0x5e2f, 0x0010, 0x9295, 0x402f, 0x7a2a, 0x2011, 0x8010, 0x73d4,\r
++      0x2001, 0x1978, 0x2003, 0x0001, 0x080c, 0x297e, 0x080c, 0x48d9,\r
++      0x7244, 0xc284, 0x7246, 0x2001, 0x180c, 0x200c, 0xc1ac, 0xc1cc,\r
++      0x2102, 0x080c, 0x963f, 0x2011, 0x0004, 0x080c, 0xbb27, 0x080c,\r
++      0x6461, 0x080c, 0x6fb2, 0x1120, 0x080c, 0x29c2, 0x02e0, 0x0400,\r
++      0x080c, 0x5c8e, 0x0140, 0x7093, 0x0001, 0x70cf, 0x0000, 0x080c,\r
++      0x55b4, 0x0804, 0x0aab, 0x080c, 0x5386, 0xd094, 0x0188, 0x2011,\r
++      0x180c, 0x2204, 0xc0cd, 0x2012, 0x080c, 0x538a, 0xd0d4, 0x1118,\r
++      0x080c, 0x29c2, 0x1270, 0x2011, 0x180c, 0x2204, 0xc0bc, 0x0088,\r
++      0x080c, 0x538a, 0xd0d4, 0x1db8, 0x2011, 0x180c, 0x2204, 0xc0bd,\r
++      0x0040, 0x2011, 0x180c, 0x2204, 0xc0bd, 0x2012, 0x080c, 0x655a,\r
++      0x0008, 0x2012, 0x080c, 0x6520, 0x0120, 0x7a0c, 0xc2b4, 0x7a0e,\r
++      0x00a8, 0x707b, 0x0000, 0x080c, 0x6fb2, 0x1130, 0x70ac, 0x9005,\r
++      0x1168, 0x080c, 0xbf63, 0x0050, 0x080c, 0xbf63, 0x70d8, 0xd09c,\r
++      0x1128, 0x70ac, 0x9005, 0x0110, 0x080c, 0x5c64, 0x70e3, 0x0000,\r
++      0x70df, 0x0000, 0x70a3, 0x0000, 0x080c, 0x29ca, 0x0228, 0x2011,\r
++      0x0101, 0x2204, 0xc0c4, 0x2012, 0x72d8, 0x080c, 0x6fb2, 0x1178,\r
++      0x9016, 0x0016, 0x2009, 0x0002, 0x2019, 0x193e, 0x211a, 0x001e,\r
++      0x705b, 0xffff, 0x705f, 0x00ef, 0x707f, 0x0000, 0x0020, 0x2019,\r
++      0x193e, 0x201b, 0x0000, 0x2079, 0x1853, 0x7804, 0xd0ac, 0x0108,\r
++      0xc295, 0x72da, 0x080c, 0x6fb2, 0x0118, 0x9296, 0x0004, 0x0548,\r
++      0x2011, 0x0001, 0x080c, 0xbb27, 0x70a7, 0x0000, 0x70ab, 0xffff,\r
++      0x7003, 0x0002, 0x2079, 0x0100, 0x7827, 0x0003, 0x7828, 0x9085,\r
++      0x0003, 0x782a, 0x00fe, 0x080c, 0x2dbb, 0x2011, 0x0005, 0x080c,\r
++      0x9771, 0x080c, 0x8973, 0x080c, 0x6fb2, 0x0148, 0x00c6, 0x2061,\r
++      0x0100, 0x0016, 0x2009, 0x0002, 0x61e2, 0x001e, 0x00ce, 0x012e,\r
++      0x0420, 0x70a7, 0x0000, 0x70ab, 0xffff, 0x7003, 0x0002, 0x00f6,\r
++      0x2079, 0x0100, 0x7827, 0x0003, 0x7828, 0x9085, 0x0003, 0x782a,\r
++      0x00fe, 0x2011, 0x0005, 0x080c, 0x9771, 0x080c, 0x8973, 0x080c,\r
++      0x6fb2, 0x0148, 0x00c6, 0x2061, 0x0100, 0x0016, 0x2009, 0x0002,\r
++      0x61e2, 0x001e, 0x00ce, 0x00fe, 0x012e, 0x0005, 0x00c6, 0x00b6,\r
++      0x080c, 0x6fb2, 0x1118, 0x20a9, 0x0800, 0x0010, 0x20a9, 0x0782,\r
++      0x080c, 0x6fb2, 0x1110, 0x900e, 0x0010, 0x2009, 0x007e, 0x86ff,\r
++      0x0138, 0x9180, 0x1000, 0x2004, 0x905d, 0x0110, 0xb800, 0xd0bc,\r
++      0x090c, 0x30d5, 0x8108, 0x1f04, 0x0abf, 0x707b, 0x0000, 0x707c,\r
++      0x9084, 0x00ff, 0x707e, 0x70af, 0x0000, 0x00be, 0x00ce, 0x0005,\r
++      0x00b6, 0x0126, 0x2091, 0x8000, 0x7000, 0x9086, 0x0002, 0x1904,\r
++      0x0b8c, 0x70a8, 0x9086, 0xffff, 0x0130, 0x080c, 0x2dbb, 0x080c,\r
++      0x8973, 0x0804, 0x0b8c, 0x70d8, 0xd0ac, 0x1110, 0xd09c, 0x0540,\r
++      0xd084, 0x0530, 0x0006, 0x2001, 0x0103, 0x2003, 0x002b, 0x000e,\r
++      0xd08c, 0x01f0, 0x70dc, 0x9086, 0xffff, 0x01b0, 0x080c, 0x2f46,\r
++      0x080c, 0x8973, 0x70d8, 0xd094, 0x1904, 0x0b8c, 0x2011, 0x0001,\r
++      0x080c, 0xc212, 0x0110, 0x2011, 0x0003, 0x901e, 0x080c, 0x2f80,\r
++      0x080c, 0x8973, 0x0804, 0x0b8c, 0x70e0, 0x9005, 0x1904, 0x0b8c,\r
++      0x70a4, 0x9005, 0x1904, 0x0b8c, 0x70d8, 0xd0a4, 0x0118, 0xd0b4,\r
++      0x0904, 0x0b8c, 0x080c, 0x6520, 0x1904, 0x0b8c, 0x080c, 0x6573,\r
++      0x1904, 0x0b8c, 0x080c, 0x655a, 0x01c0, 0x0156, 0x00c6, 0x20a9,\r
++      0x007f, 0x900e, 0x0016, 0x080c, 0x623e, 0x1118, 0xb800, 0xd0ec,\r
++      0x1138, 0x001e, 0x8108, 0x1f04, 0x0b32, 0x00ce, 0x015e, 0x0028,\r
++      0x001e, 0x00ce, 0x015e, 0x0804, 0x0b8c, 0x0006, 0x2001, 0x0103,\r
++      0x2003, 0x006b, 0x000e, 0x2011, 0x1984, 0x080c, 0x0f73, 0x2011,\r
++      0x199e, 0x080c, 0x0f73, 0x7030, 0xc08c, 0x7032, 0x7003, 0x0003,\r
++      0x70ab, 0xffff, 0x080c, 0x0e53, 0x9006, 0x080c, 0x260c, 0x0036,\r
++      0x0046, 0x2019, 0xffff, 0x2021, 0x0006, 0x080c, 0x4a76, 0x004e,\r
++      0x003e, 0x00f6, 0x2079, 0x0100, 0x080c, 0x6fd5, 0x0150, 0x080c,\r
++      0x6fb2, 0x7828, 0x0118, 0x9084, 0xe1ff, 0x0010, 0x9084, 0xffdf,\r
++      0x782a, 0x00fe, 0x2001, 0x19b9, 0x2004, 0x9086, 0x0005, 0x1120,\r
++      0x2011, 0x0000, 0x080c, 0x9771, 0x2011, 0x0000, 0x080c, 0x977b,\r
++      0x080c, 0x8973, 0x080c, 0x8a4e, 0x012e, 0x00be, 0x0005, 0x0016,\r
++      0x0046, 0x00f6, 0x0126, 0x2091, 0x8000, 0x2079, 0x0100, 0x7904,\r
++      0x918c, 0xfffd, 0x7906, 0x2009, 0x00f7, 0x080c, 0x5c4d, 0x7940,\r
++      0x918c, 0x0010, 0x7942, 0x7924, 0xd1b4, 0x0110, 0x7827, 0x0040,\r
++      0xd19c, 0x0110, 0x7827, 0x0008, 0x0006, 0x0036, 0x0156, 0x7954,\r
++      0xd1ac, 0x1904, 0x0c1c, 0x2001, 0x1978, 0x2004, 0x9005, 0x1518,\r
++      0x080c, 0x2a45, 0x1148, 0x2001, 0x0001, 0x080c, 0x29ad, 0x2001,\r
++      0x0001, 0x080c, 0x2990, 0x00b8, 0x080c, 0x2a4d, 0x1138, 0x9006,\r
++      0x080c, 0x29ad, 0x9006, 0x080c, 0x2990, 0x0068, 0x080c, 0x2a55,\r
++      0x1d50, 0x2001, 0x1969, 0x2004, 0xd0fc, 0x0108, 0x0020, 0x080c,\r
++      0x27a7, 0x0804, 0x0cfc, 0x080c, 0x6fc3, 0x0148, 0x080c, 0x6fd5,\r
++      0x1118, 0x080c, 0x72a5, 0x0050, 0x080c, 0x6fba, 0x0dd0, 0x080c,\r
++      0x72a0, 0x080c, 0x7296, 0x080c, 0x6ee4, 0x0058, 0x080c, 0x6fb2,\r
++      0x0140, 0x2009, 0x00f8, 0x080c, 0x5c4d, 0x7843, 0x0090, 0x7843,\r
++      0x0010, 0x20a9, 0x09c4, 0x7820, 0xd09c, 0x1138, 0x080c, 0x6fb2,\r
++      0x0138, 0x7824, 0xd0ac, 0x1904, 0x0d01, 0x1f04, 0x0bfb, 0x0070,\r
++      0x7824, 0x080c, 0x6fcc, 0x0118, 0xd0ac, 0x1904, 0x0d01, 0x9084,\r
++      0x1800, 0x0d98, 0x7003, 0x0001, 0x0804, 0x0d01, 0x2001, 0x0001,\r
++      0x080c, 0x260c, 0x0804, 0x0d14, 0x2001, 0x1978, 0x2004, 0x9005,\r
++      0x1518, 0x080c, 0x2a45, 0x1148, 0x2001, 0x0001, 0x080c, 0x29ad,\r
++      0x2001, 0x0001, 0x080c, 0x2990, 0x00b8, 0x080c, 0x2a4d, 0x1138,\r
++      0x9006, 0x080c, 0x29ad, 0x9006, 0x080c, 0x2990, 0x0068, 0x080c,\r
++      0x2a55, 0x1d50, 0x2001, 0x1969, 0x2004, 0xd0fc, 0x0108, 0x0020,\r
++      0x080c, 0x27a7, 0x0804, 0x0cfc, 0x7850, 0x9085, 0x0040, 0x7852,\r
++      0x7938, 0x7850, 0x9084, 0xfbcf, 0x7852, 0x080c, 0x2a5d, 0x9085,\r
++      0x2000, 0x7852, 0x793a, 0x20a9, 0x0046, 0x1d04, 0x0c55, 0x080c,\r
++      0x80ec, 0x1f04, 0x0c55, 0x7850, 0x9085, 0x0400, 0x9084, 0xdfbf,\r
++      0x7852, 0x793a, 0x080c, 0x6fc3, 0x0148, 0x080c, 0x6fd5, 0x1118,\r
++      0x080c, 0x72a5, 0x0050, 0x080c, 0x6fba, 0x0dd0, 0x080c, 0x72a0,\r
++      0x080c, 0x7296, 0x080c, 0x6ee4, 0x0020, 0x2009, 0x00f8, 0x080c,\r
++      0x5c4d, 0x20a9, 0x0028, 0xa001, 0x1f04, 0x0c7b, 0x7850, 0x9085,\r
++      0x1400, 0x7852, 0x080c, 0x6fb2, 0x0120, 0x7843, 0x0090, 0x7843,\r
++      0x0010, 0x2021, 0xe678, 0x2019, 0xea60, 0x0d0c, 0x80ec, 0x7820,\r
++      0xd09c, 0x1588, 0x080c, 0x6fb2, 0x0904, 0x0ce1, 0x7824, 0xd0ac,\r
++      0x1904, 0x0d01, 0x080c, 0x6fd5, 0x1530, 0x0046, 0x2021, 0x0320,\r
++      0x8421, 0x1df0, 0x004e, 0x7827, 0x1800, 0x080c, 0x2a5d, 0x7824,\r
++      0x9084, 0x1800, 0x1168, 0x9484, 0x0fff, 0x1140, 0x2001, 0x1810,\r
++      0x2004, 0x9084, 0x9000, 0x0110, 0x080c, 0x0d22, 0x8421, 0x1158,\r
++      0x1d04, 0x0cbc, 0x080c, 0x80ec, 0x080c, 0x72a0, 0x080c, 0x7296,\r
++      0x7003, 0x0001, 0x04f0, 0x8319, 0x1940, 0x1d04, 0x0cc9, 0x080c,\r
++      0x80ec, 0x2009, 0x196c, 0x2104, 0x9005, 0x0118, 0x8001, 0x200a,\r
++      0x1178, 0x200b, 0x000a, 0x7827, 0x0048, 0x20a9, 0x0002, 0x080c,\r
++      0x2a3e, 0x7924, 0x080c, 0x2a5d, 0xd19c, 0x0110, 0x080c, 0x297e,\r
++      0x00d8, 0x080c, 0x6fc3, 0x1140, 0x94a2, 0x03e8, 0x1128, 0x080c,\r
++      0x6f8a, 0x7003, 0x0001, 0x00a8, 0x7827, 0x1800, 0x080c, 0x2a5d,\r
++      0x7824, 0x080c, 0x6fcc, 0x0110, 0xd0ac, 0x1158, 0x9084, 0x1800,\r
++      0x0950, 0x7003, 0x0001, 0x0028, 0x2001, 0x0001, 0x080c, 0x260c,\r
++      0x0078, 0x2009, 0x180c, 0x210c, 0xd19c, 0x1120, 0x7904, 0x918d,\r
++      0x0002, 0x7906, 0x7827, 0x0048, 0x7828, 0x9085, 0x0028, 0x782a,\r
++      0x7850, 0x9085, 0x0400, 0x7852, 0x2001, 0x1978, 0x2003, 0x0000,\r
++      0x9006, 0x78f2, 0x015e, 0x003e, 0x000e, 0x012e, 0x00fe, 0x004e,\r
++      0x001e, 0x0005, 0x0006, 0x0016, 0x0036, 0x0046, 0x00b6, 0x00c6,\r
++      0x00d6, 0x00e6, 0x00f6, 0x0156, 0x0069, 0x0d0c, 0x80ec, 0x015e,\r
++      0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be, 0x004e, 0x003e, 0x001e,\r
++      0x000e, 0x0005, 0x00e6, 0x2071, 0x1894, 0x7004, 0x9086, 0x0001,\r
++      0x1110, 0x080c, 0x325f, 0x00ee, 0x0005, 0x0005, 0x2a70, 0x2061,\r
++      0x197c, 0x2063, 0x0003, 0x6007, 0x0002, 0x600b, 0x001c, 0x600f,\r
++      0x0317, 0x2001, 0x194d, 0x900e, 0x2102, 0x7192, 0x2001, 0x0100,\r
++      0x2004, 0x9082, 0x0002, 0x0218, 0x705b, 0xffff, 0x0008, 0x715a,\r
++      0x7063, 0xffff, 0x717a, 0x717e, 0x080c, 0xbf63, 0x70e7, 0x00c0,\r
++      0x2061, 0x193d, 0x6003, 0x0909, 0x6106, 0x600b, 0x8800, 0x600f,\r
++      0x0200, 0x6013, 0x00ff, 0x6017, 0x000f, 0x611a, 0x601f, 0x07d0,\r
++      0x2061, 0x1945, 0x6003, 0x8000, 0x6106, 0x610a, 0x600f, 0x0200,\r
++      0x6013, 0x00ff, 0x6116, 0x601b, 0x0001, 0x611e, 0x2061, 0x195a,\r
++      0x6003, 0x514c, 0x6007, 0x4f47, 0x600b, 0x4943, 0x600f, 0x2020,\r
++      0x2001, 0x182b, 0x2102, 0x0005, 0x9016, 0x080c, 0x623e, 0x1178,\r
++      0xb804, 0x90c4, 0x00ff, 0x98c6, 0x0006, 0x0128, 0x90c4, 0xff00,\r
++      0x98c6, 0x0600, 0x1120, 0x9186, 0x0080, 0x0108, 0x8210, 0x8108,\r
++      0x9186, 0x0800, 0x1d50, 0x2208, 0x0005, 0x2091, 0x8000, 0x2079,\r
++      0x0000, 0x000e, 0x00f6, 0x0010, 0x2091, 0x8000, 0x0e04, 0x0db6,\r
++      0x0006, 0x0016, 0x2001, 0x8002, 0x0006, 0x2079, 0x0000, 0x000e,\r
++      0x7882, 0x7836, 0x001e, 0x798e, 0x000e, 0x788a, 0x000e, 0x7886,\r
++      0x3900, 0x789a, 0x7833, 0x0012, 0x2091, 0x5000, 0x0156, 0x00d6,\r
++      0x0036, 0x0026, 0x2079, 0x0300, 0x2069, 0x1a72, 0x7a08, 0x226a,\r
++      0x2069, 0x1a73, 0x7a18, 0x226a, 0x8d68, 0x7a1c, 0x226a, 0x782c,\r
++      0x2019, 0x1a80, 0x201a, 0x2019, 0x1a83, 0x9016, 0x7808, 0xd09c,\r
++      0x0168, 0x7820, 0x201a, 0x8210, 0x8318, 0x9386, 0x1a98, 0x0108,\r
++      0x0ca8, 0x7808, 0xd09c, 0x0110, 0x2011, 0xdead, 0x2019, 0x1a81,\r
++      0x782c, 0x201a, 0x8318, 0x221a, 0x7803, 0x0000, 0x2069, 0x1a52,\r
++      0x901e, 0x20a9, 0x0020, 0x7b26, 0x7a28, 0x226a, 0x8d68, 0x8318,\r
++      0x1f04, 0x0e03, 0x002e, 0x003e, 0x00de, 0x015e, 0x2079, 0x1800,\r
++      0x7803, 0x0005, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084,\r
++      0x0180, 0x2001, 0x19ea, 0x2004, 0x9005, 0x0128, 0x2001, 0x008b,\r
++      0x2004, 0xd0fc, 0x0dd8, 0x2001, 0x008a, 0x2003, 0x0002, 0x2003,\r
++      0x1001, 0x080c, 0x5395, 0x1108, 0x0099, 0x0cd8, 0x0005, 0x918c,\r
++      0x03ff, 0x2001, 0x0003, 0x2004, 0x9084, 0x0600, 0x1118, 0x918d,\r
++      0x2800, 0x0010, 0x918d, 0x2000, 0x2001, 0x017f, 0x2102, 0x0005,\r
++      0x0026, 0x0126, 0x2011, 0x0080, 0x080c, 0x0ecb, 0x20a9, 0x0900,\r
++      0x080c, 0x0eec, 0x2011, 0x0040, 0x080c, 0x0ecb, 0x20a9, 0x0900,\r
++      0x080c, 0x0eec, 0x0c78, 0x0026, 0x080c, 0x0ed8, 0x1118, 0x2011,\r
++      0x0040, 0x0098, 0x2011, 0x010e, 0x2214, 0x9294, 0x0007, 0x9296,\r
++      0x0007, 0x0118, 0x2011, 0xa880, 0x0010, 0x2011, 0x6840, 0xd0e4,\r
++      0x70eb, 0x0000, 0x1128, 0x70eb, 0x0fa0, 0x080c, 0x0edd, 0x002e,\r
++      0x0005, 0x0026, 0x080c, 0x0ed8, 0x0128, 0xd0a4, 0x1138, 0x2011,\r
++      0xcdd5, 0x0010, 0x2011, 0x0080, 0x080c, 0x0edd, 0x002e, 0x0005,\r
++      0x0026, 0x70eb, 0x0000, 0x080c, 0x0ed8, 0x1148, 0x080c, 0x2a55,\r
++      0x1118, 0x2011, 0x8484, 0x0058, 0x2011, 0x8282, 0x0040, 0x080c,\r
++      0x2a55, 0x1118, 0x2011, 0xcdc5, 0x0010, 0x2011, 0xcac2, 0x080c,\r
++      0x0edd, 0x002e, 0x0005, 0x00e6, 0x0006, 0x2071, 0x1800, 0xd0b4,\r
++      0x70e4, 0x1110, 0xc0e4, 0x0048, 0x0006, 0x3b00, 0x9084, 0xff3f,\r
++      0x20d8, 0x000e, 0x70eb, 0x0000, 0xc0e5, 0x0079, 0x000e, 0x00ee,\r
++      0x0005, 0x00e6, 0x2071, 0x1800, 0xd0e4, 0x70e4, 0x1110, 0xc0dc,\r
++      0x0008, 0xc0dd, 0x0011, 0x00ee, 0x0005, 0x70e6, 0x7000, 0x9084,\r
++      0x0007, 0x000b, 0x0005, 0x0e9a, 0x0e71, 0x0e71, 0x0e53, 0x0e80,\r
++      0x0e71, 0x0e71, 0x0e80, 0x0016, 0x3b08, 0x3a00, 0x9104, 0x918d,\r
++      0x00c0, 0x21d8, 0x9084, 0xff3f, 0x9205, 0x20d0, 0x001e, 0x0005,\r
++      0x2001, 0x1839, 0x2004, 0xd0dc, 0x0005, 0x9e86, 0x1800, 0x190c,\r
++      0x0db4, 0x70e4, 0xd0e4, 0x0108, 0xc2e5, 0x72e6, 0xd0e4, 0x1118,\r
++      0x9294, 0x00c0, 0x0c01, 0x0005, 0x1d04, 0x0eec, 0x2091, 0x6000,\r
++      0x1f04, 0x0eec, 0x0005, 0x890e, 0x810e, 0x810f, 0x9194, 0x003f,\r
++      0x918c, 0xffc0, 0x0005, 0x0006, 0x2200, 0x914d, 0x894f, 0x894d,\r
++      0x894d, 0x000e, 0x0005, 0x01d6, 0x0146, 0x0036, 0x0096, 0x2061,\r
++      0x1883, 0x600b, 0x0000, 0x600f, 0x0000, 0x6003, 0x0000, 0x6007,\r
++      0x0000, 0x2009, 0xffc0, 0x2105, 0x0006, 0x2001, 0xaaaa, 0x200f,\r
++      0x2019, 0x5555, 0x9016, 0x2049, 0x0bff, 0xab02, 0xa001, 0xa001,\r
++      0xa800, 0x9306, 0x1138, 0x2105, 0x9306, 0x0120, 0x8210, 0x99c8,\r
++      0x0400, 0x0c98, 0x000e, 0x200f, 0x2001, 0x1893, 0x928a, 0x000e,\r
++      0x1638, 0x928a, 0x0006, 0x2011, 0x0006, 0x1210, 0x2011, 0x0000,\r
++      0x2202, 0x9006, 0x2008, 0x82ff, 0x01b0, 0x8200, 0x600a, 0x600f,\r
++      0xffff, 0x6003, 0x0002, 0x6007, 0x0000, 0x0026, 0x2019, 0x0010,\r
++      0x9280, 0x0001, 0x20e8, 0x21a0, 0x21a8, 0x4104, 0x8319, 0x1de0,\r
++      0x8211, 0x1da0, 0x002e, 0x009e, 0x003e, 0x014e, 0x01de, 0x0005,\r
++      0x2011, 0x000e, 0x08e8, 0x0016, 0x0026, 0x0096, 0x3348, 0x080c,\r
++      0x0ef3, 0x2100, 0x9300, 0x2098, 0x22e0, 0x009e, 0x002e, 0x001e,\r
++      0x0036, 0x3518, 0x20a9, 0x0001, 0x4002, 0x8007, 0x4004, 0x8319,\r
++      0x1dd8, 0x003e, 0x0005, 0x20e9, 0x0001, 0x71b4, 0x81ff, 0x11c0,\r
++      0x9006, 0x2009, 0x0200, 0x20a9, 0x0002, 0x9298, 0x0018, 0x23a0,\r
++      0x4001, 0x2009, 0x0700, 0x20a9, 0x0002, 0x9298, 0x0008, 0x23a0,\r
++      0x4001, 0x7078, 0x8007, 0x717c, 0x810f, 0x20a9, 0x0002, 0x4001,\r
++      0x9298, 0x000c, 0x23a0, 0x900e, 0x080c, 0x0d94, 0x2001, 0x0000,\r
++      0x810f, 0x20a9, 0x0002, 0x4001, 0x0005, 0x89ff, 0x0140, 0xa804,\r
++      0xa807, 0x0000, 0x0006, 0x080c, 0x101d, 0x009e, 0x0cb0, 0x0005,\r
++      0x00e6, 0x2071, 0x1800, 0x080c, 0x1096, 0x090c, 0x0db4, 0x00ee,\r
++      0x0005, 0x0086, 0x00e6, 0x0006, 0x0026, 0x0036, 0x0126, 0x2091,\r
++      0x8000, 0x00c9, 0x2071, 0x1800, 0x73bc, 0x702c, 0x9016, 0x9045,\r
++      0x0158, 0x8210, 0x9906, 0x090c, 0x0db4, 0x2300, 0x9202, 0x0120,\r
++      0x1a0c, 0x0db4, 0xa000, 0x0c98, 0x012e, 0x003e, 0x002e, 0x000e,\r
++      0x00ee, 0x008e, 0x0005, 0x0086, 0x00e6, 0x0006, 0x0126, 0x2091,\r
++      0x8000, 0x2071, 0x1906, 0x7010, 0x9005, 0x0140, 0x7018, 0x9045,\r
++      0x0128, 0x9906, 0x090c, 0x0db4, 0xa000, 0x0cc8, 0x012e, 0x000e,\r
++      0x00ee, 0x008e, 0x0005, 0x00e6, 0x2071, 0x1800, 0x0126, 0x2091,\r
++      0x8000, 0x70bc, 0x8001, 0x0270, 0x70be, 0x702c, 0x2048, 0x9085,\r
++      0x0001, 0xa800, 0x702e, 0xa803, 0x0000, 0xa807, 0x0000, 0x012e,\r
++      0x00ee, 0x0005, 0x904e, 0x0cd8, 0x00e6, 0x0126, 0x2091, 0x8000,\r
++      0x2071, 0x1800, 0x70bc, 0x90ca, 0x0040, 0x0268, 0x8001, 0x70be,\r
++      0x702c, 0x2048, 0xa800, 0x702e, 0xa803, 0x0000, 0xa807, 0x0000,\r
++      0x012e, 0x00ee, 0x0005, 0x904e, 0x0cd8, 0x00e6, 0x0126, 0x2091,\r
++      0x8000, 0x0016, 0x890e, 0x810e, 0x810f, 0x9184, 0x003f, 0xa862,\r
++      0x9184, 0xffc0, 0xa85e, 0x001e, 0x0020, 0x00e6, 0x0126, 0x2091,\r
++      0x8000, 0x2071, 0x1800, 0x702c, 0xa802, 0x2900, 0x702e, 0x70bc,\r
++      0x8000, 0x70be, 0x080c, 0x7f5d, 0x012e, 0x00ee, 0x0005, 0x2071,\r
++      0x1800, 0x9026, 0x2009, 0x0000, 0x2049, 0x0400, 0x2900, 0x702e,\r
++      0x8940, 0x2800, 0xa802, 0xa95e, 0xa863, 0x0001, 0x8420, 0x9886,\r
++      0x0440, 0x0120, 0x2848, 0x9188, 0x0040, 0x0c90, 0x2071, 0x1883,\r
++      0x7000, 0x9005, 0x11a0, 0x2001, 0x0492, 0xa802, 0x2048, 0x2009,\r
++      0x2480, 0x8940, 0x2800, 0xa802, 0xa95e, 0xa863, 0x0001, 0x8420,\r
++      0x9886, 0x0800, 0x0120, 0x2848, 0x9188, 0x0040, 0x0c90, 0x2071,\r
++      0x1883, 0x7104, 0x7200, 0x82ff, 0x01d0, 0x7308, 0x8318, 0x831f,\r
++      0x831b, 0x831b, 0x7312, 0x8319, 0x2001, 0x0800, 0xa802, 0x2048,\r
++      0x8900, 0xa802, 0x2040, 0xa95e, 0xaa62, 0x8420, 0x2300, 0x9906,\r
++      0x0130, 0x2848, 0x9188, 0x0040, 0x9291, 0x0000, 0x0c88, 0xa803,\r
++      0x0000, 0x2071, 0x1800, 0x74ba, 0x74be, 0x0005, 0x00e6, 0x0016,\r
++      0x9984, 0xfc00, 0x01e8, 0x908c, 0xf800, 0x1168, 0x9982, 0x0400,\r
++      0x02b8, 0x9982, 0x0440, 0x0278, 0x9982, 0x0492, 0x0288, 0x9982,\r
++      0x0800, 0x1270, 0x0040, 0x9982, 0x0800, 0x0250, 0x2071, 0x1883,\r
++      0x7010, 0x9902, 0x1228, 0x9085, 0x0001, 0x001e, 0x00ee, 0x0005,\r
++      0x9006, 0x0cd8, 0x00e6, 0x2071, 0x19e9, 0x7007, 0x0000, 0x9006,\r
++      0x701e, 0x7022, 0x7002, 0x2071, 0x0000, 0x7010, 0x9085, 0x8044,\r
++      0x7012, 0x2071, 0x0080, 0x9006, 0x20a9, 0x0040, 0x7022, 0x1f04,\r
++      0x10ce, 0x702b, 0x0020, 0x00ee, 0x0005, 0x0126, 0x2091, 0x8000,\r
++      0x00e6, 0xa06f, 0x0000, 0x2071, 0x19e9, 0x701c, 0x9088, 0x19f3,\r
++      0x280a, 0x8000, 0x9084, 0x003f, 0x701e, 0x7120, 0x9106, 0x090c,\r
++      0x0db4, 0x7004, 0x9005, 0x1128, 0x00f6, 0x2079, 0x0080, 0x00a9,\r
++      0x00fe, 0x00ee, 0x012e, 0x0005, 0x0126, 0x2091, 0x8000, 0x00e6,\r
++      0x2071, 0x19e9, 0x7004, 0x9005, 0x1128, 0x00f6, 0x2079, 0x0080,\r
++      0x0021, 0x00fe, 0x00ee, 0x012e, 0x0005, 0x7004, 0x9086, 0x0000,\r
++      0x1110, 0x7007, 0x0006, 0x7000, 0x0002, 0x1117, 0x1115, 0x1115,\r
++      0x1115, 0x128e, 0x128e, 0x128e, 0x128e, 0x080c, 0x0db4, 0x701c,\r
++      0x7120, 0x9106, 0x1148, 0x792c, 0x9184, 0x0001, 0x1120, 0xd1fc,\r
++      0x1110, 0x7007, 0x0000, 0x0005, 0x0096, 0x9180, 0x19f3, 0x2004,\r
++      0x700a, 0x2048, 0x8108, 0x918c, 0x003f, 0x7122, 0x782b, 0x0026,\r
++      0xa88c, 0x7802, 0xa890, 0x7806, 0xa894, 0x780a, 0xa898, 0x780e,\r
++      0xa878, 0x700e, 0xa870, 0x7016, 0xa874, 0x701a, 0xa868, 0x009e,\r
++      0xd084, 0x0120, 0x7007, 0x0001, 0x0029, 0x0005, 0x7007, 0x0002,\r
++      0x00b1, 0x0005, 0x0016, 0x0026, 0x710c, 0x2011, 0x0040, 0x9182,\r
++      0x0040, 0x1210, 0x2110, 0x9006, 0x700e, 0x7212, 0x8203, 0x7812,\r
++      0x782b, 0x0020, 0x782b, 0x0041, 0x002e, 0x001e, 0x0005, 0x0016,\r
++      0x0026, 0x0136, 0x0146, 0x0156, 0x7014, 0x20e0, 0x7018, 0x2098,\r
++      0x20e9, 0x0000, 0x20a1, 0x0088, 0x782b, 0x0026, 0x710c, 0x2011,\r
++      0x0040, 0x9182, 0x0040, 0x1210, 0x2110, 0x9006, 0x700e, 0x22a8,\r
++      0x4006, 0x8203, 0x7812, 0x782b, 0x0020, 0x3300, 0x701a, 0x782b,\r
++      0x0001, 0x015e, 0x014e, 0x013e, 0x002e, 0x001e, 0x0005, 0x2009,\r
++      0x19e9, 0x2104, 0xc095, 0x200a, 0x080c, 0x10f4, 0x0005, 0x0016,\r
++      0x00e6, 0x2071, 0x19e9, 0x00f6, 0x2079, 0x0080, 0x792c, 0xd1bc,\r
++      0x190c, 0x0dad, 0x782b, 0x0002, 0xd1fc, 0x0120, 0x918c, 0x0700,\r
++      0x7004, 0x0023, 0x00fe, 0x00ee, 0x001e, 0x0005, 0x1105, 0x11ad,\r
++      0x11e1, 0x0db4, 0x0db4, 0x129a, 0x0db4, 0x918c, 0x0700, 0x1550,\r
++      0x0136, 0x0146, 0x0156, 0x7014, 0x20e8, 0x7018, 0x20a0, 0x20e1,\r
++      0x0000, 0x2099, 0x0088, 0x782b, 0x0040, 0x7010, 0x20a8, 0x4005,\r
++      0x3400, 0x701a, 0x015e, 0x014e, 0x013e, 0x700c, 0x9005, 0x0578,\r
++      0x7800, 0x7802, 0x7804, 0x7806, 0x080c, 0x114a, 0x0005, 0x7008,\r
++      0x0096, 0x2048, 0xa86f, 0x0100, 0x009e, 0x7007, 0x0000, 0x080c,\r
++      0x1105, 0x0005, 0x7008, 0x0096, 0x2048, 0xa86f, 0x0200, 0x009e,\r
++      0x0ca0, 0x918c, 0x0700, 0x1150, 0x700c, 0x9005, 0x0180, 0x7800,\r
++      0x7802, 0x7804, 0x7806, 0x080c, 0x115f, 0x0005, 0x7008, 0x0096,\r
++      0x2048, 0xa86f, 0x0200, 0x009e, 0x7007, 0x0000, 0x0080, 0x0096,\r
++      0x7008, 0x2048, 0x7800, 0xa88e, 0x7804, 0xa892, 0x7808, 0xa896,\r
++      0x780c, 0xa89a, 0xa86f, 0x0100, 0x009e, 0x7007, 0x0000, 0x0096,\r
++      0x00d6, 0x7008, 0x2048, 0x2001, 0x18af, 0x2004, 0x9906, 0x1128,\r
++      0xa89c, 0x080f, 0x00de, 0x009e, 0x00a0, 0x00de, 0x009e, 0x0096,\r
++      0x00d6, 0x7008, 0x2048, 0x0081, 0x0150, 0xa89c, 0x0086, 0x2940,\r
++      0x080f, 0x008e, 0x00de, 0x009e, 0x080c, 0x10f4, 0x0005, 0x00de,\r
++      0x009e, 0x080c, 0x10f4, 0x0005, 0xa8a8, 0xd08c, 0x0005, 0x0096,\r
++      0xa0a0, 0x904d, 0x090c, 0x0db4, 0xa06c, 0x908e, 0x0100, 0x0130,\r
++      0xa87b, 0x0030, 0xa883, 0x0000, 0xa897, 0x4002, 0x080c, 0x687f,\r
++      0xa09f, 0x0000, 0xa0a3, 0x0000, 0x2848, 0x080c, 0x101d, 0x009e,\r
++      0x0005, 0x00a6, 0xa0a0, 0x904d, 0x090c, 0x0db4, 0xa06c, 0x908e,\r
++      0x0100, 0x0128, 0xa87b, 0x0001, 0xa883, 0x0000, 0x00c0, 0xa80c,\r
++      0x2050, 0xb004, 0x9005, 0x0198, 0xa80e, 0x2050, 0x8006, 0x8006,\r
++      0x8007, 0x908c, 0x003f, 0x9084, 0xffc0, 0x9080, 0x0002, 0xa076,\r
++      0xa172, 0xb000, 0xa07a, 0x2810, 0x080c, 0x10d5, 0x00e8, 0xa97c,\r
++      0xa894, 0x0016, 0x0006, 0x080c, 0x687f, 0x000e, 0x001e, 0xd1fc,\r
++      0x1138, 0xd1f4, 0x0128, 0x00c6, 0x2060, 0x080c, 0x9e32, 0x00ce,\r
++      0x7008, 0x2048, 0xa89f, 0x0000, 0xa8a3, 0x0000, 0x080c, 0x101d,\r
++      0x7007, 0x0000, 0x080c, 0x10f4, 0x00ae, 0x0005, 0x0126, 0x2091,\r
++      0x8000, 0x782b, 0x1001, 0x7007, 0x0005, 0x7000, 0xc094, 0x7002,\r
++      0x012e, 0x0005, 0x7007, 0x0000, 0x080c, 0x1105, 0x0005, 0x0126,\r
++      0x2091, 0x2200, 0x2079, 0x0300, 0x2071, 0x1a33, 0x7003, 0x0000,\r
++      0x78bf, 0x00f6, 0x781b, 0x4800, 0x00c1, 0x7803, 0x0003, 0x780f,\r
++      0x0000, 0x20a9, 0x0254, 0x2061, 0xd8e3, 0x2c0d, 0x7912, 0xe104,\r
++      0x9ce0, 0x0002, 0x7916, 0x1f04, 0x12b5, 0x7807, 0x0007, 0x7803,\r
++      0x0000, 0x7803, 0x0001, 0x012e, 0x0005, 0x00c6, 0x7803, 0x0000,\r
++      0x7808, 0xd09c, 0x0110, 0x7820, 0x0cd8, 0x2001, 0x1a34, 0x2003,\r
++      0x0000, 0x78ab, 0x0004, 0x78ac, 0xd0ac, 0x1de8, 0x78ab, 0x0002,\r
++      0x7807, 0x0007, 0x7827, 0x0030, 0x782b, 0x0400, 0x7827, 0x0031,\r
++      0x782b, 0x1a52, 0x781f, 0xff00, 0x781b, 0xb700, 0x2001, 0x0200,\r
++      0x2004, 0xd0dc, 0x0110, 0x781f, 0x0303, 0x2061, 0x1a52, 0x602f,\r
++      0x1cd0, 0x2001, 0x1819, 0x2004, 0x9082, 0x1cd0, 0x6032, 0x603b,\r
++      0x1f26, 0x2001, 0x3138, 0xd0fc, 0x190c, 0x0db4, 0x2001, 0x0003,\r
++      0x2004, 0xd0d4, 0x1118, 0x783f, 0x3138, 0x0020, 0x9084, 0xc000,\r
++      0x783f, 0xb138, 0x00ce, 0x0005, 0x0126, 0x2091, 0x2200, 0x7908,\r
++      0x9184, 0x0070, 0x190c, 0x0dad, 0xd19c, 0x0158, 0x7820, 0x908c,\r
++      0xf000, 0x15e8, 0x908a, 0x0024, 0x1a0c, 0x0db4, 0x0023, 0x012e,\r
++      0x0005, 0x012e, 0x0005, 0x1347, 0x1347, 0x135e, 0x1363, 0x1367,\r
++      0x136c, 0x1394, 0x1398, 0x13a6, 0x13aa, 0x1347, 0x1434, 0x1438,\r
++      0x149b, 0x1347, 0x1347, 0x1347, 0x1347, 0x1347, 0x1347, 0x1347,\r
++      0x1347, 0x1347, 0x1347, 0x1347, 0x1347, 0x1347, 0x136e, 0x1347,\r
++      0x1347, 0x1347, 0x1347, 0x1347, 0x1347, 0x134b, 0x1349, 0x080c,\r
++      0x0db4, 0x080c, 0x0dad, 0x080c, 0x14a2, 0x2009, 0x1a4b, 0x2104,\r
++      0x8000, 0x200a, 0x080c, 0x7a07, 0x080c, 0x1958, 0x0005, 0x2009,\r
++      0x0048, 0x2060, 0x080c, 0x9eac, 0x012e, 0x0005, 0x7004, 0xc085,\r
++      0xc0b5, 0x7006, 0x0005, 0x7004, 0xc085, 0x7006, 0x0005, 0x080c,\r
++      0x14a2, 0x080c, 0x15de, 0x0005, 0x080c, 0x0db4, 0x080c, 0x14a2,\r
++      0x2060, 0x6014, 0x0096, 0x2048, 0xa83b, 0xffff, 0x009e, 0x2009,\r
++      0x0048, 0x080c, 0x9eac, 0x2001, 0x015d, 0x2003, 0x0000, 0x2009,\r
++      0x03e8, 0x8109, 0x0160, 0x2001, 0x0201, 0x2004, 0x9005, 0x0dc8,\r
++      0x2001, 0x0218, 0x2004, 0xd0ec, 0x1110, 0x080c, 0x14a7, 0x2001,\r
++      0x0307, 0x2003, 0x8000, 0x0005, 0x7004, 0xc095, 0x7006, 0x0005,\r
++      0x080c, 0x14a2, 0x2060, 0x6014, 0x0096, 0x2048, 0xa83b, 0xffff,\r
++      0x009e, 0x2009, 0x0048, 0x080c, 0x9eac, 0x0005, 0x080c, 0x14a2,\r
++      0x080c, 0x0db4, 0x080c, 0x14a2, 0x080c, 0x141f, 0x7827, 0x0018,\r
++      0x79ac, 0xd1dc, 0x0540, 0x7827, 0x0015, 0x7828, 0x782b, 0x0000,\r
++      0x9065, 0x0138, 0x2001, 0x020d, 0x2003, 0x0050, 0x2003, 0x0020,\r
++      0x0400, 0x7004, 0x9005, 0x1180, 0x78ab, 0x0004, 0x7827, 0x0018,\r
++      0x782b, 0x0000, 0xd1bc, 0x090c, 0x0db4, 0x2001, 0x020d, 0x2003,\r
++      0x0050, 0x2003, 0x0020, 0x0480, 0x78ab, 0x0004, 0x7803, 0x0001,\r
++      0x080c, 0x1438, 0x0005, 0x7828, 0x782b, 0x0000, 0x9065, 0x090c,\r
++      0x0db4, 0x6014, 0x2048, 0x78ab, 0x0004, 0x918c, 0x0700, 0x0198,\r
++      0x080c, 0x7a07, 0x080c, 0x1958, 0x080c, 0xbb17, 0x0158, 0xa9ac,\r
++      0xa936, 0xa9b0, 0xa93a, 0xa83f, 0xffff, 0xa843, 0xffff, 0xa880,\r
++      0xc0bd, 0xa882, 0x0005, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be,\r
++      0xd0bc, 0x6024, 0x190c, 0xbefc, 0x2029, 0x00c8, 0x8529, 0x0128,\r
++      0x2001, 0x0201, 0x2004, 0x9005, 0x0dc8, 0x7dbc, 0x080c, 0xd88c,\r
++      0xd5a4, 0x1118, 0x080c, 0x14a7, 0x0005, 0x080c, 0x7a07, 0x080c,\r
++      0x1958, 0x0005, 0x781f, 0x0300, 0x7803, 0x0001, 0x0005, 0x0016,\r
++      0x0066, 0x0076, 0x00f6, 0x2079, 0x0300, 0x7908, 0x918c, 0x0007,\r
++      0x9186, 0x0003, 0x0120, 0x2001, 0x0016, 0x080c, 0x1518, 0x00fe,\r
++      0x007e, 0x006e, 0x001e, 0x0005, 0x7004, 0xc09d, 0x7006, 0x0005,\r
++      0x7104, 0x9184, 0x0004, 0x190c, 0x0db4, 0xd184, 0x1189, 0xd19c,\r
++      0x0158, 0xc19c, 0x7106, 0x2001, 0x020d, 0x2003, 0x0050, 0x2003,\r
++      0x0020, 0x080c, 0x14a7, 0x0005, 0x81ff, 0x190c, 0x0db4, 0x0005,\r
++      0xc184, 0xd1b4, 0xc1b4, 0x7106, 0x0016, 0x00e6, 0x15e0, 0x2071,\r
++      0x0200, 0x080c, 0x15d2, 0x6014, 0x9005, 0x05a8, 0x0096, 0x2048,\r
++      0xa864, 0x009e, 0x9084, 0x00ff, 0x908e, 0x0029, 0x0160, 0x908e,\r
++      0x0048, 0x1548, 0x601c, 0xd084, 0x11d8, 0x00f6, 0x2c78, 0x080c,\r
++      0x1648, 0x00fe, 0x00a8, 0x00f6, 0x2c78, 0x080c, 0x1790, 0x00fe,\r
++      0x2009, 0x01f4, 0x8109, 0x0160, 0x2001, 0x0201, 0x2004, 0x9005,\r
++      0x0dc8, 0x2001, 0x0218, 0x2004, 0xd0ec, 0x1110, 0x0401, 0x0040,\r
++      0x2001, 0x020d, 0x2003, 0x0020, 0x080c, 0x12c5, 0x7803, 0x0001,\r
++      0x00ee, 0x001e, 0x0005, 0x2001, 0x020d, 0x2003, 0x0050, 0x2003,\r
++      0x0020, 0x0069, 0x0ca8, 0x0031, 0x2060, 0x2009, 0x0053, 0x080c,\r
++      0x9eac, 0x0005, 0x7808, 0xd09c, 0x0de8, 0x7820, 0x0005, 0x080c,\r
++      0x141f, 0x00d6, 0x2069, 0x0200, 0x2009, 0x01f4, 0x8109, 0x0510,\r
++      0x6804, 0x9005, 0x0dd8, 0x2001, 0x015d, 0x2003, 0x0000, 0x79bc,\r
++      0xd1a4, 0x1528, 0x79b8, 0x918c, 0x0fff, 0x0180, 0x9182, 0x0841,\r
++      0x1268, 0x9188, 0x0007, 0x918c, 0x0ff8, 0x810c, 0x810c, 0x810c,\r
++      0x080c, 0x150a, 0x6827, 0x0001, 0x8109, 0x1dd0, 0x04d9, 0x6827,\r
++      0x0002, 0x04c1, 0x6804, 0x9005, 0x1130, 0x682c, 0xd0e4, 0x1500,\r
++      0x6804, 0x9005, 0x0de8, 0x79b8, 0xd1ec, 0x1130, 0x08c0, 0x080c,\r
++      0x7a07, 0x080c, 0x1958, 0x0090, 0x7827, 0x0015, 0x782b, 0x0000,\r
++      0x7827, 0x0018, 0x782b, 0x0000, 0x2001, 0x020d, 0x2003, 0x0020,\r
++      0x2001, 0x0307, 0x2003, 0x0300, 0x7803, 0x0001, 0x00de, 0x0005,\r
++      0x682c, 0x9084, 0x5400, 0x9086, 0x5400, 0x0d30, 0x7827, 0x0015,\r
++      0x782b, 0x0000, 0x7803, 0x0001, 0x6800, 0x9085, 0x1800, 0x6802,\r
++      0x00de, 0x0005, 0x6824, 0x9084, 0x0003, 0x1de0, 0x0005, 0x2001,\r
++      0x0030, 0x2c08, 0x621c, 0x0021, 0x7830, 0x9086, 0x0041, 0x0005,\r
++      0x00f6, 0x2079, 0x0300, 0x0006, 0x7808, 0xd09c, 0x0140, 0x0016,\r
++      0x0026, 0x00c6, 0x080c, 0x130c, 0x00ce, 0x002e, 0x001e, 0x000e,\r
++      0x0006, 0x7832, 0x7936, 0x7a3a, 0x781b, 0x8080, 0x0059, 0x1118,\r
++      0x000e, 0x00fe, 0x0005, 0x000e, 0x792c, 0x3900, 0x8000, 0x2004,\r
++      0x080c, 0x0db4, 0x2009, 0x180c, 0x2104, 0xc0f4, 0x200a, 0x2009,\r
++      0xff00, 0x8109, 0x0904, 0x1596, 0x7a18, 0x9284, 0x0030, 0x0904,\r
++      0x1591, 0x9284, 0x0048, 0x9086, 0x0008, 0x1904, 0x1591, 0x2001,\r
++      0x0109, 0x2004, 0xd08c, 0x01f0, 0x0006, 0x01c6, 0x01d6, 0x0136,\r
++      0x0146, 0x0156, 0x0126, 0x2091, 0x2800, 0x00f6, 0x0026, 0x0016,\r
++      0x2009, 0x1a4d, 0x2104, 0x8000, 0x0208, 0x200a, 0x080c, 0x83aa,\r
++      0x001e, 0x002e, 0x00fe, 0x012e, 0x015e, 0x014e, 0x013e, 0x01de,\r
++      0x01ce, 0x000e, 0x2001, 0x009b, 0x2004, 0xd0fc, 0x01d0, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x00f6, 0x0016,\r
++      0x2009, 0x1a4e, 0x2104, 0x8000, 0x0208, 0x200a, 0x080c, 0x1d4a,\r
++      0x001e, 0x00fe, 0x015e, 0x014e, 0x013e, 0x01de, 0x01ce, 0x012e,\r
++      0x000e, 0x7818, 0xd0bc, 0x1904, 0x1541, 0x0005, 0x2001, 0x180c,\r
++      0x2004, 0xd0f4, 0x1528, 0x7a18, 0x9284, 0x0030, 0x0508, 0x9284,\r
++      0x0048, 0x9086, 0x0008, 0x11e0, 0x2001, 0x19c7, 0x2004, 0x9005,\r
++      0x01b8, 0x2001, 0x1a36, 0x2004, 0x9086, 0x0000, 0x0188, 0x2009,\r
++      0x1a4c, 0x2104, 0x8000, 0x0208, 0x200a, 0x080c, 0x9430, 0x2009,\r
++      0x180c, 0x2104, 0xc0f5, 0x200a, 0x2009, 0xff00, 0x0804, 0x1541,\r
++      0x9085, 0x0001, 0x0005, 0x7832, 0x7936, 0x7a3a, 0x781b, 0x8080,\r
++      0x080c, 0x153a, 0x1108, 0x0005, 0x792c, 0x3900, 0x8000, 0x2004,\r
++      0x080c, 0x0db4, 0x7037, 0x0001, 0x7150, 0x7037, 0x0002, 0x7050,\r
++      0x2060, 0xd1bc, 0x1110, 0x7054, 0x2060, 0x0005, 0x00e6, 0x0016,\r
++      0x2071, 0x0200, 0x0c79, 0x6124, 0xd1dc, 0x01f8, 0x701c, 0xd08c,\r
++      0x0904, 0x163d, 0x7017, 0x0000, 0x2001, 0x0264, 0x2004, 0xd0bc,\r
++      0x0904, 0x163d, 0x2001, 0x0268, 0x00c6, 0x2064, 0x6104, 0x6038,\r
++      0x00ce, 0x918e, 0x0039, 0x1904, 0x163d, 0x9c06, 0x15f0, 0x0126,\r
++      0x2091, 0x2600, 0x080c, 0x794e, 0x012e, 0x7358, 0x745c, 0x6014,\r
++      0x905d, 0x0598, 0x2b48, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be,\r
++      0xd0bc, 0x190c, 0xbed7, 0xab42, 0xac3e, 0x2001, 0x1875, 0x2004,\r
++      0xd0b4, 0x1170, 0x601c, 0xd0e4, 0x1158, 0x6010, 0x00b6, 0x2058,\r
++      0xb800, 0x00be, 0xd0bc, 0x1120, 0xa83b, 0x7fff, 0xa837, 0xffff,\r
++      0x080c, 0x1f46, 0x1190, 0x080c, 0x17eb, 0x2a00, 0xa816, 0x0130,\r
++      0x2800, 0xa80e, 0x2c05, 0xa80a, 0x2c00, 0xa812, 0x7037, 0x0020,\r
++      0x781f, 0x0300, 0x001e, 0x00ee, 0x0005, 0x7037, 0x0050, 0x7037,\r
++      0x0020, 0x001e, 0x00ee, 0x080c, 0x14a7, 0x0005, 0x080c, 0x0db4,\r
++      0x0016, 0x2009, 0x00a0, 0x8109, 0xa001, 0xa001, 0xa001, 0x1dd8,\r
++      0x001e, 0x2ff0, 0x0126, 0x2091, 0x2200, 0x00c6, 0x3e60, 0x6014,\r
++      0x2048, 0x2940, 0x903e, 0x2730, 0xa864, 0x2068, 0xa81a, 0x9d84,\r
++      0x000f, 0x9088, 0x1f26, 0x2165, 0x0002, 0x167c, 0x16c9, 0x167c,\r
++      0x167c, 0x167c, 0x16ab, 0x167c, 0x1680, 0x1675, 0x16c0, 0x167c,\r
++      0x167c, 0x167c, 0x1785, 0x1694, 0x168a, 0xa964, 0x918c, 0x00ff,\r
++      0x918e, 0x0048, 0x0904, 0x16c0, 0x9085, 0x0001, 0x0804, 0x177c,\r
++      0xa87c, 0xd0bc, 0x0dc8, 0xa890, 0xa842, 0xa88c, 0xa83e, 0xa888,\r
++      0x0804, 0x16d0, 0xa87c, 0xd0bc, 0x0d78, 0xa890, 0xa842, 0xa88c,\r
++      0xa83e, 0xa888, 0x0804, 0x171f, 0xa87c, 0xd0bc, 0x0d28, 0xa890,\r
++      0xa842, 0xa88c, 0xa83e, 0xa804, 0x9045, 0x090c, 0x0db4, 0xa164,\r
++      0xa91a, 0x91ec, 0x000f, 0x9d80, 0x1f26, 0x2065, 0xa888, 0xd19c,\r
++      0x1904, 0x171f, 0x0428, 0xa87c, 0xd0ac, 0x0970, 0xa804, 0x9045,\r
++      0x090c, 0x0db4, 0xa164, 0xa91a, 0x91ec, 0x000f, 0x9d80, 0x1f26,\r
++      0x2065, 0x9006, 0xa842, 0xa83e, 0xd19c, 0x1904, 0x171f, 0x0080,\r
++      0xa87c, 0xd0ac, 0x0904, 0x167c, 0x9006, 0xa842, 0xa83e, 0x0804,\r
++      0x171f, 0xa87c, 0xd0ac, 0x0904, 0x167c, 0x9006, 0xa842, 0xa83e,\r
++      0x2c05, 0x908a, 0x0036, 0x1a0c, 0x0db4, 0x9082, 0x001b, 0x0002,\r
++      0x16f3, 0x16f3, 0x16f5, 0x16f3, 0x16f3, 0x16f3, 0x16fb, 0x16f3,\r
++      0x16f3, 0x16f3, 0x1701, 0x16f3, 0x16f3, 0x16f3, 0x1707, 0x16f3,\r
++      0x16f3, 0x16f3, 0x170d, 0x16f3, 0x16f3, 0x16f3, 0x1713, 0x16f3,\r
++      0x16f3, 0x16f3, 0x1719, 0x080c, 0x0db4, 0xa574, 0xa478, 0xa37c,\r
++      0xa280, 0x0804, 0x1764, 0xa584, 0xa488, 0xa38c, 0xa290, 0x0804,\r
++      0x1764, 0xa594, 0xa498, 0xa39c, 0xa2a0, 0x0804, 0x1764, 0xa5a4,\r
++      0xa4a8, 0xa3ac, 0xa2b0, 0x0804, 0x1764, 0xa5b4, 0xa4b8, 0xa3bc,\r
++      0xa2c0, 0x0804, 0x1764, 0xa5c4, 0xa4c8, 0xa3cc, 0xa2d0, 0x0804,\r
++      0x1764, 0xa5d4, 0xa4d8, 0xa3dc, 0xa2e0, 0x0804, 0x1764, 0x2c05,\r
++      0x908a, 0x0034, 0x1a0c, 0x0db4, 0x9082, 0x001b, 0x0002, 0x1742,\r
++      0x1740, 0x1740, 0x1740, 0x1740, 0x1740, 0x1749, 0x1740, 0x1740,\r
++      0x1740, 0x1740, 0x1740, 0x1750, 0x1740, 0x1740, 0x1740, 0x1740,\r
++      0x1740, 0x1757, 0x1740, 0x1740, 0x1740, 0x1740, 0x1740, 0x175e,\r
++      0x080c, 0x0db4, 0xa56c, 0xa470, 0xa774, 0xa678, 0xa37c, 0xa280,\r
++      0x00d8, 0xa584, 0xa488, 0xa78c, 0xa690, 0xa394, 0xa298, 0x00a0,\r
++      0xa59c, 0xa4a0, 0xa7a4, 0xa6a8, 0xa3ac, 0xa2b0, 0x0068, 0xa5b4,\r
++      0xa4b8, 0xa7bc, 0xa6c0, 0xa3c4, 0xa2c8, 0x0030, 0xa5cc, 0xa4d0,\r
++      0xa7d4, 0xa6d8, 0xa3dc, 0xa2e0, 0xab2e, 0xaa32, 0xad1e, 0xac22,\r
++      0xaf26, 0xae2a, 0xa988, 0x8c60, 0x2c1d, 0xa8ac, 0xaab0, 0xa836,\r
++      0xaa3a, 0x8109, 0xa916, 0x1158, 0x3e60, 0x601c, 0xc085, 0x601e,\r
++      0xa87c, 0xc0dd, 0xa87e, 0x9006, 0x00ce, 0x012e, 0x0005, 0x2800,\r
++      0xa80e, 0xab0a, 0x2c00, 0xa812, 0x0c78, 0x0804, 0x167c, 0x0016,\r
++      0x2009, 0x00a0, 0x8109, 0xa001, 0xa001, 0xa001, 0x1dd8, 0x001e,\r
++      0x2ff0, 0x0126, 0x2091, 0x2200, 0x00c6, 0x3e60, 0x6014, 0x2048,\r
++      0x2940, 0xa80e, 0x2061, 0x1f21, 0xa813, 0x1f21, 0x2c05, 0xa80a,\r
++      0xa964, 0xa91a, 0xa87c, 0xd0ac, 0x090c, 0x0db4, 0x9006, 0xa842,\r
++      0xa83e, 0x2c05, 0x908a, 0x0034, 0x1a0c, 0x0db4, 0xadcc, 0xacd0,\r
++      0xafd4, 0xaed8, 0xabdc, 0xaae0, 0xab2e, 0xaa32, 0xad1e, 0xac22,\r
++      0xaf26, 0xae2a, 0xa8ac, 0xaab0, 0xa836, 0xaa3a, 0xa988, 0xa864,\r
++      0x9084, 0x00ff, 0x9086, 0x0008, 0x1120, 0x8109, 0xa916, 0x0128,\r
++      0x0078, 0x918a, 0x0002, 0xa916, 0x1158, 0x3e60, 0x601c, 0xc085,\r
++      0x601e, 0xa87c, 0xc0dd, 0xa87e, 0x9006, 0x00ce, 0x012e, 0x0005,\r
++      0xa804, 0x9045, 0x090c, 0x0db4, 0xa80e, 0xa064, 0xa81a, 0x9084,\r
++      0x000f, 0x9080, 0x1f26, 0x2015, 0x82ff, 0x090c, 0x0db4, 0xaa12,\r
++      0x2205, 0xa80a, 0x0c10, 0x903e, 0x2730, 0xa880, 0xd0fc, 0x1190,\r
++      0x2d00, 0x0002, 0x18e0, 0x1842, 0x1842, 0x18e0, 0x18e0, 0x18da,\r
++      0x18e0, 0x1842, 0x1891, 0x1891, 0x1891, 0x18e0, 0x18e0, 0x18e0,\r
++      0x18d7, 0x1891, 0xc0fc, 0xa882, 0xab2c, 0xaa30, 0xad1c, 0xac20,\r
++      0xdd9c, 0x0904, 0x18e2, 0x2c05, 0x908a, 0x0034, 0x1a0c, 0x0db4,\r
++      0x9082, 0x001b, 0x0002, 0x182e, 0x182c, 0x182c, 0x182c, 0x182c,\r
++      0x182c, 0x1832, 0x182c, 0x182c, 0x182c, 0x182c, 0x182c, 0x1836,\r
++      0x182c, 0x182c, 0x182c, 0x182c, 0x182c, 0x183a, 0x182c, 0x182c,\r
++      0x182c, 0x182c, 0x182c, 0x183e, 0x080c, 0x0db4, 0xa774, 0xa678,\r
++      0x0804, 0x18e2, 0xa78c, 0xa690, 0x0804, 0x18e2, 0xa7a4, 0xa6a8,\r
++      0x0804, 0x18e2, 0xa7bc, 0xa6c0, 0x0804, 0x18e2, 0xa7d4, 0xa6d8,\r
++      0x0804, 0x18e2, 0x2c05, 0x908a, 0x0036, 0x1a0c, 0x0db4, 0x9082,\r
++      0x001b, 0x0002, 0x1865, 0x1865, 0x1867, 0x1865, 0x1865, 0x1865,\r
++      0x186d, 0x1865, 0x1865, 0x1865, 0x1873, 0x1865, 0x1865, 0x1865,\r
++      0x1879, 0x1865, 0x1865, 0x1865, 0x187f, 0x1865, 0x1865, 0x1865,\r
++      0x1885, 0x1865, 0x1865, 0x1865, 0x188b, 0x080c, 0x0db4, 0xa574,\r
++      0xa478, 0xa37c, 0xa280, 0x0804, 0x18e2, 0xa584, 0xa488, 0xa38c,\r
++      0xa290, 0x0804, 0x18e2, 0xa594, 0xa498, 0xa39c, 0xa2a0, 0x0804,\r
++      0x18e2, 0xa5a4, 0xa4a8, 0xa3ac, 0xa2b0, 0x0804, 0x18e2, 0xa5b4,\r
++      0xa4b8, 0xa3bc, 0xa2c0, 0x0804, 0x18e2, 0xa5c4, 0xa4c8, 0xa3cc,\r
++      0xa2d0, 0x0804, 0x18e2, 0xa5d4, 0xa4d8, 0xa3dc, 0xa2e0, 0x0804,\r
++      0x18e2, 0x2c05, 0x908a, 0x0034, 0x1a0c, 0x0db4, 0x9082, 0x001b,\r
++      0x0002, 0x18b4, 0x18b2, 0x18b2, 0x18b2, 0x18b2, 0x18b2, 0x18bb,\r
++      0x18b2, 0x18b2, 0x18b2, 0x18b2, 0x18b2, 0x18c2, 0x18b2, 0x18b2,\r
++      0x18b2, 0x18b2, 0x18b2, 0x18c9, 0x18b2, 0x18b2, 0x18b2, 0x18b2,\r
++      0x18b2, 0x18d0, 0x080c, 0x0db4, 0xa56c, 0xa470, 0xa774, 0xa678,\r
++      0xa37c, 0xa280, 0x0438, 0xa584, 0xa488, 0xa78c, 0xa690, 0xa394,\r
++      0xa298, 0x0400, 0xa59c, 0xa4a0, 0xa7a4, 0xa6a8, 0xa3ac, 0xa2b0,\r
++      0x00c8, 0xa5b4, 0xa4b8, 0xa7bc, 0xa6c0, 0xa3c4, 0xa2c8, 0x0090,\r
++      0xa5cc, 0xa4d0, 0xa7d4, 0xa6d8, 0xa3dc, 0xa2e0, 0x0058, 0x9d86,\r
++      0x000e, 0x1130, 0x080c, 0x1ede, 0x1904, 0x17eb, 0x900e, 0x0050,\r
++      0x080c, 0x0db4, 0xab2e, 0xaa32, 0xad1e, 0xac22, 0xaf26, 0xae2a,\r
++      0x080c, 0x1ede, 0x0005, 0x6014, 0x2048, 0x6118, 0x810c, 0x810c,\r
++      0x810c, 0x81ff, 0x1118, 0xa887, 0x0001, 0x0008, 0xa986, 0x601b,\r
++      0x0002, 0xa974, 0xd1dc, 0x1108, 0x0005, 0xa934, 0xa88c, 0x9106,\r
++      0x1158, 0xa938, 0xa890, 0x9106, 0x1138, 0x601c, 0xc084, 0x601e,\r
++      0x2009, 0x0048, 0x0804, 0x9eac, 0x0005, 0x0126, 0x00c6, 0x2091,\r
++      0x2200, 0x00ce, 0x7908, 0x918c, 0x0007, 0x9186, 0x0000, 0x05b0,\r
++      0x9186, 0x0003, 0x0598, 0x6020, 0x6023, 0x0000, 0x0006, 0x2031,\r
++      0x0008, 0x00c6, 0x781f, 0x0808, 0x7808, 0xd09c, 0x0120, 0x080c,\r
++      0x130c, 0x8631, 0x1db8, 0x00ce, 0x781f, 0x0800, 0x2031, 0x0168,\r
++      0x00c6, 0x7808, 0xd09c, 0x190c, 0x130c, 0x00ce, 0x2001, 0x0038,\r
++      0x080c, 0x19e5, 0x7930, 0x9186, 0x0040, 0x0160, 0x9186, 0x0042,\r
++      0x190c, 0x0db4, 0x2001, 0x001e, 0x8001, 0x1df0, 0x8631, 0x1d40,\r
++      0x080c, 0x19f4, 0x000e, 0x6022, 0x012e, 0x0005, 0x080c, 0x19e1,\r
++      0x7827, 0x0015, 0x7828, 0x9c06, 0x1db8, 0x782b, 0x0000, 0x0ca0,\r
++      0x00f6, 0x2079, 0x0300, 0x7803, 0x0000, 0x78ab, 0x0004, 0x00fe,\r
++      0x080c, 0x6fb2, 0x11b0, 0x2001, 0x0138, 0x2003, 0x0000, 0x2001,\r
++      0x0160, 0x2003, 0x0000, 0x2011, 0x012c, 0xa001, 0xa001, 0x8211,\r
++      0x1de0, 0x0081, 0x0066, 0x2031, 0x0000, 0x080c, 0x7062, 0x006e,\r
++      0x0005, 0x0479, 0x0039, 0x2001, 0x0160, 0x2502, 0x2001, 0x0138,\r
++      0x2202, 0x0005, 0x00e6, 0x2071, 0x0200, 0x080c, 0x2a69, 0x2009,\r
++      0x003c, 0x080c, 0x2268, 0x2001, 0x015d, 0x2003, 0x0000, 0x7000,\r
++      0x9084, 0x003c, 0x1de0, 0x080c, 0x7f5d, 0x70a0, 0x70a2, 0x7098,\r
++      0x709a, 0x709c, 0x709e, 0x2001, 0x020d, 0x2003, 0x0020, 0x00f6,\r
++      0x2079, 0x0300, 0x080c, 0x12c5, 0x7803, 0x0001, 0x00fe, 0x00ee,\r
++      0x0005, 0x2001, 0x0138, 0x2014, 0x2003, 0x0000, 0x2001, 0x0160,\r
++      0x202c, 0x2003, 0x0000, 0x080c, 0x6fb2, 0x1108, 0x0005, 0x2021,\r
++      0x0260, 0x2001, 0x0141, 0x201c, 0xd3dc, 0x1168, 0x2001, 0x0109,\r
++      0x201c, 0x939c, 0x0048, 0x1160, 0x2001, 0x0111, 0x201c, 0x83ff,\r
++      0x1110, 0x8421, 0x1d70, 0x2001, 0x015d, 0x2003, 0x0000, 0x0005,\r
++      0x0046, 0x2021, 0x0019, 0x2003, 0x0048, 0xa001, 0xa001, 0x201c,\r
++      0x939c, 0x0048, 0x0120, 0x8421, 0x1db0, 0x004e, 0x0c60, 0x004e,\r
++      0x0c40, 0x601c, 0xc084, 0x601e, 0x0005, 0x2c08, 0x621c, 0x080c,\r
++      0x1518, 0x7930, 0x0005, 0x2c08, 0x621c, 0x080c, 0x15c3, 0x7930,\r
++      0x0005, 0x8001, 0x1df0, 0x0005, 0x2031, 0x0005, 0x781c, 0x9084,\r
++      0x0007, 0x0170, 0x2001, 0x0038, 0x0c41, 0x9186, 0x0040, 0x0904,\r
++      0x1a52, 0x2001, 0x001e, 0x0c69, 0x8631, 0x1d80, 0x080c, 0x0db4,\r
++      0x781f, 0x0202, 0x2001, 0x015d, 0x2003, 0x0000, 0x2001, 0x0b10,\r
++      0x0c01, 0x781c, 0xd084, 0x0110, 0x0861, 0x04e0, 0x2001, 0x0030,\r
++      0x0891, 0x9186, 0x0040, 0x0568, 0x781c, 0xd084, 0x1da8, 0x781f,\r
++      0x0101, 0x2001, 0x0014, 0x0869, 0x2001, 0x0037, 0x0821, 0x9186,\r
++      0x0040, 0x0140, 0x2001, 0x0030, 0x080c, 0x19eb, 0x9186, 0x0040,\r
++      0x190c, 0x0db4, 0x00d6, 0x2069, 0x0200, 0x692c, 0xd1f4, 0x1170,\r
++      0xd1c4, 0x0160, 0xd19c, 0x0130, 0x6800, 0x9085, 0x1800, 0x6802,\r
++      0x00de, 0x0080, 0x6908, 0x9184, 0x0007, 0x1db0, 0x00de, 0x781f,\r
++      0x0100, 0x791c, 0x9184, 0x0007, 0x090c, 0x0db4, 0xa001, 0xa001,\r
++      0x781f, 0x0200, 0x0005, 0x0126, 0x2091, 0x2400, 0x2071, 0x1a36,\r
++      0x2079, 0x0090, 0x012e, 0x0005, 0x9280, 0x0005, 0x2004, 0x2048,\r
++      0xa97c, 0xd1dc, 0x1904, 0x1ae7, 0xa964, 0x9184, 0x0007, 0x0002,\r
++      0x1a70, 0x1ad2, 0x1a87, 0x1a87, 0x1a87, 0x1aba, 0x1a9a, 0x1a89,\r
++      0x918c, 0x00ff, 0x9186, 0x0008, 0x1170, 0xa87c, 0xd0b4, 0x0904,\r
++      0x1d05, 0x9006, 0xa842, 0xa83e, 0xa988, 0x2900, 0xa85a, 0xa813,\r
++      0x1f21, 0x0804, 0x1ae3, 0x9186, 0x0048, 0x0904, 0x1ad2, 0x080c,\r
++      0x0db4, 0xa87c, 0xd0b4, 0x0904, 0x1d05, 0xa890, 0xa842, 0xa83a,\r
++      0xa88c, 0xa83e, 0xa836, 0xa8ac, 0xa846, 0xa8b0, 0xa84a, 0xa988,\r
++      0x0804, 0x1ada, 0xa864, 0x9084, 0x00ff, 0x9086, 0x001e, 0x1d38,\r
++      0xa87c, 0xd0b4, 0x0904, 0x1d05, 0xa890, 0xa842, 0xa83a, 0xa88c,\r
++      0xa83e, 0xa836, 0xa8ac, 0xa846, 0xa8b0, 0xa84a, 0xa804, 0xa85a,\r
++      0x2040, 0xa064, 0x9084, 0x000f, 0x9080, 0x1f26, 0x2005, 0xa812,\r
++      0xa988, 0x0448, 0x918c, 0x00ff, 0x9186, 0x0015, 0x1540, 0xa87c,\r
++      0xd0b4, 0x0904, 0x1d05, 0xa804, 0xa85a, 0x2040, 0xa064, 0x9084,\r
++      0x000f, 0x9080, 0x1f26, 0x2005, 0xa812, 0xa988, 0x9006, 0xa842,\r
++      0xa83e, 0x0088, 0xa87c, 0xd0b4, 0x0904, 0x1d05, 0xa988, 0x9006,\r
++      0xa842, 0xa83e, 0x2900, 0xa85a, 0xa864, 0x9084, 0x000f, 0x9080,\r
++      0x1f26, 0x2005, 0xa812, 0xa916, 0xa87c, 0xc0dd, 0xa87e, 0x0005,\r
++      0x00f6, 0x2079, 0x0090, 0x782c, 0xd0fc, 0x190c, 0x1d4a, 0x00e6,\r
++      0x2071, 0x1a36, 0x7000, 0x9005, 0x1904, 0x1b50, 0x7206, 0x9280,\r
++      0x0005, 0x204c, 0x9280, 0x0004, 0x2004, 0x782b, 0x0004, 0x00f6,\r
++      0x2079, 0x0200, 0x7803, 0x0040, 0x00fe, 0x00b6, 0x2058, 0xb86c,\r
++      0x7836, 0xb890, 0x00be, 0x00f6, 0x2079, 0x0200, 0x7803, 0x0040,\r
++      0xa001, 0xa001, 0xa001, 0xa001, 0xa001, 0xa001, 0x781a, 0x2079,\r
++      0x0100, 0x8004, 0x78d6, 0x00fe, 0xa814, 0x2050, 0xa858, 0x2040,\r
++      0xa810, 0x2060, 0xa064, 0x90ec, 0x000f, 0xa944, 0x791a, 0x7116,\r
++      0xa848, 0x781e, 0x701a, 0x9006, 0x700e, 0x7012, 0x7004, 0xa940,\r
++      0xa838, 0x9106, 0x1500, 0xa93c, 0xa834, 0x9106, 0x11e0, 0x0006,\r
++      0x0016, 0xa938, 0xa834, 0x9105, 0x0118, 0x001e, 0x000e, 0x0098,\r
++      0x001e, 0x000e, 0x8aff, 0x01c8, 0x0126, 0x2091, 0x8000, 0x2009,\r
++      0x0306, 0x200b, 0x0808, 0x00d9, 0x0108, 0x00c9, 0x012e, 0x9006,\r
++      0x00ee, 0x00fe, 0x0005, 0x0036, 0x0046, 0xab38, 0xac34, 0x080c,\r
++      0x1f46, 0x004e, 0x003e, 0x0d30, 0x0c98, 0x9085, 0x0001, 0x0c80,\r
++      0x2009, 0x0306, 0x200b, 0x4800, 0x7027, 0x0000, 0x0005, 0x0076,\r
++      0x0066, 0x0056, 0x0046, 0x0036, 0x0026, 0x8aff, 0x0904, 0x1cfe,\r
++      0x700c, 0x7214, 0x923a, 0x7010, 0x7218, 0x9203, 0x0a04, 0x1cfd,\r
++      0x9705, 0x0904, 0x1cfd, 0x903e, 0x2730, 0xa880, 0xd0fc, 0x1190,\r
++      0x2d00, 0x0002, 0x1c92, 0x1bd2, 0x1bd2, 0x1c92, 0x1c92, 0x1c6f,\r
++      0x1c92, 0x1bd2, 0x1c76, 0x1c21, 0x1c21, 0x1c92, 0x1c92, 0x1c92,\r
++      0x1c69, 0x1c21, 0xc0fc, 0xa882, 0xab2c, 0xaa30, 0xad1c, 0xac20,\r
++      0xdd9c, 0x0904, 0x1c94, 0x2c05, 0x908a, 0x0034, 0x1a0c, 0x0db4,\r
++      0x9082, 0x001b, 0x0002, 0x1bbe, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc,\r
++      0x1bbc, 0x1bc2, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bc6,\r
++      0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bbc, 0x1bca, 0x1bbc, 0x1bbc,\r
++      0x1bbc, 0x1bbc, 0x1bbc, 0x1bce, 0x080c, 0x0db4, 0xa774, 0xa678,\r
++      0x0804, 0x1c94, 0xa78c, 0xa690, 0x0804, 0x1c94, 0xa7a4, 0xa6a8,\r
++      0x0804, 0x1c94, 0xa7bc, 0xa6c0, 0x0804, 0x1c94, 0xa7d4, 0xa6d8,\r
++      0x0804, 0x1c94, 0x2c05, 0x908a, 0x0036, 0x1a0c, 0x0db4, 0x9082,\r
++      0x001b, 0x0002, 0x1bf5, 0x1bf5, 0x1bf7, 0x1bf5, 0x1bf5, 0x1bf5,\r
++      0x1bfd, 0x1bf5, 0x1bf5, 0x1bf5, 0x1c03, 0x1bf5, 0x1bf5, 0x1bf5,\r
++      0x1c09, 0x1bf5, 0x1bf5, 0x1bf5, 0x1c0f, 0x1bf5, 0x1bf5, 0x1bf5,\r
++      0x1c15, 0x1bf5, 0x1bf5, 0x1bf5, 0x1c1b, 0x080c, 0x0db4, 0xa574,\r
++      0xa478, 0xa37c, 0xa280, 0x0804, 0x1c94, 0xa584, 0xa488, 0xa38c,\r
++      0xa290, 0x0804, 0x1c94, 0xa594, 0xa498, 0xa39c, 0xa2a0, 0x0804,\r
++      0x1c94, 0xa5a4, 0xa4a8, 0xa3ac, 0xa2b0, 0x0804, 0x1c94, 0xa5b4,\r
++      0xa4b8, 0xa3bc, 0xa2c0, 0x0804, 0x1c94, 0xa5c4, 0xa4c8, 0xa3cc,\r
++      0xa2d0, 0x0804, 0x1c94, 0xa5d4, 0xa4d8, 0xa3dc, 0xa2e0, 0x0804,\r
++      0x1c94, 0x2c05, 0x908a, 0x0034, 0x1a0c, 0x0db4, 0x9082, 0x001b,\r
++      0x0002, 0x1c44, 0x1c42, 0x1c42, 0x1c42, 0x1c42, 0x1c42, 0x1c4c,\r
++      0x1c42, 0x1c42, 0x1c42, 0x1c42, 0x1c42, 0x1c54, 0x1c42, 0x1c42,\r
++      0x1c42, 0x1c42, 0x1c42, 0x1c5b, 0x1c42, 0x1c42, 0x1c42, 0x1c42,\r
++      0x1c42, 0x1c62, 0x080c, 0x0db4, 0xa56c, 0xa470, 0xa774, 0xa678,\r
++      0xa37c, 0xa280, 0x0804, 0x1c94, 0xa584, 0xa488, 0xa78c, 0xa690,\r
++      0xa394, 0xa298, 0x0804, 0x1c94, 0xa59c, 0xa4a0, 0xa7a4, 0xa6a8,\r
++      0xa3ac, 0xa2b0, 0x04c8, 0xa5b4, 0xa4b8, 0xa7bc, 0xa6c0, 0xa3c4,\r
++      0xa2c8, 0x0490, 0xa5cc, 0xa4d0, 0xa7d4, 0xa6d8, 0xa3dc, 0xa2e0,\r
++      0x0458, 0xa864, 0x9084, 0x00ff, 0x9086, 0x001e, 0x1518, 0x080c,\r
++      0x1ede, 0x1904, 0x1b6d, 0x900e, 0x0804, 0x1cfe, 0xab64, 0x939c,\r
++      0x00ff, 0x9386, 0x0048, 0x1180, 0x00c6, 0x7004, 0x2060, 0x6004,\r
++      0x9086, 0x0043, 0x00ce, 0x0904, 0x1c21, 0xab9c, 0x9016, 0xad8c,\r
++      0xac90, 0xaf94, 0xae98, 0x0040, 0x9386, 0x0008, 0x0904, 0x1c21,\r
++      0x080c, 0x0db4, 0x080c, 0x0db4, 0x2009, 0x030f, 0x2104, 0xd0fc,\r
++      0x0530, 0x0066, 0x2009, 0x0306, 0x2104, 0x9084, 0x0030, 0x15c8,\r
++      0x2031, 0x1000, 0x200b, 0x4000, 0x2600, 0x9302, 0x928b, 0x0000,\r
++      0xa82e, 0xa932, 0x0278, 0x9105, 0x0168, 0x2011, 0x0000, 0x2618,\r
++      0x2600, 0x9500, 0xa81e, 0x9481, 0x0000, 0xa822, 0xa880, 0xc0fd,\r
++      0xa882, 0x0020, 0xa82f, 0x0000, 0xa833, 0x0000, 0x006e, 0x7b12,\r
++      0x7a16, 0x7d02, 0x7c06, 0x7f0a, 0x7e0e, 0x782b, 0x0001, 0x7000,\r
++      0x8000, 0x7002, 0xa83c, 0x9300, 0xa83e, 0xa840, 0x9201, 0xa842,\r
++      0x700c, 0x9300, 0x700e, 0x7010, 0x9201, 0x7012, 0x080c, 0x1ede,\r
++      0x0428, 0x2031, 0x0080, 0x9584, 0x007f, 0x0108, 0x9632, 0x7124,\r
++      0x7000, 0x9086, 0x0000, 0x1198, 0xc185, 0x7126, 0x2009, 0x0306,\r
++      0x2104, 0xd0b4, 0x1904, 0x1ca4, 0x200b, 0x4040, 0x2009, 0x1a4f,\r
++      0x2104, 0x8000, 0x0a04, 0x1ca4, 0x200a, 0x0804, 0x1ca4, 0xc18d,\r
++      0x7126, 0xd184, 0x1d58, 0x0804, 0x1ca4, 0x9006, 0x002e, 0x003e,\r
++      0x004e, 0x005e, 0x006e, 0x007e, 0x0005, 0x080c, 0x0db4, 0x0026,\r
++      0x2001, 0x0105, 0x2003, 0x0010, 0x782b, 0x0004, 0x7003, 0x0000,\r
++      0x7004, 0x0016, 0x080c, 0x1b60, 0x001e, 0x2060, 0x6014, 0x2048,\r
++      0x080c, 0xbb17, 0x0118, 0xa880, 0xc0bd, 0xa882, 0x6020, 0x9086,\r
++      0x0006, 0x1180, 0x2061, 0x0100, 0x62c8, 0x2001, 0x00fa, 0x8001,\r
++      0x1df0, 0x60c8, 0x9206, 0x1dc0, 0x60c4, 0xa89a, 0x60c8, 0xa896,\r
++      0x7004, 0x2060, 0x00c6, 0x080c, 0xb74a, 0x00ce, 0x2001, 0x19c7,\r
++      0x2004, 0x9c06, 0x1160, 0x2009, 0x0040, 0x080c, 0x2268, 0x080c,\r
++      0x98ea, 0x2011, 0x0000, 0x080c, 0x977b, 0x080c, 0x8a4e, 0x002e,\r
++      0x0804, 0x1e8e, 0x0126, 0x2091, 0x2400, 0xa858, 0x2040, 0x792c,\r
++      0x782b, 0x0002, 0x9184, 0x0700, 0x1904, 0x1d07, 0x7000, 0x0002,\r
++      0x1e8e, 0x1d5c, 0x1ddc, 0x1e8c, 0x8001, 0x7002, 0x7027, 0x0000,\r
++      0xd19c, 0x1158, 0x8aff, 0x0904, 0x1da9, 0x080c, 0x1b67, 0x0904,\r
++      0x1e8e, 0x080c, 0x1b67, 0x0804, 0x1e8e, 0x782b, 0x0004, 0xd194,\r
++      0x0148, 0xa880, 0xc0fc, 0xa882, 0x8aff, 0x1518, 0xa87c, 0xc0f5,\r
++      0xa87e, 0x00f8, 0x0026, 0x0036, 0xab3c, 0xaa40, 0x0016, 0x7910,\r
++      0xa82c, 0x9100, 0xa82e, 0x7914, 0xa830, 0x9101, 0xa832, 0x001e,\r
++      0x7810, 0x931a, 0x7814, 0x9213, 0x7800, 0xa81e, 0x7804, 0xa822,\r
++      0xab3e, 0xaa42, 0x003e, 0x002e, 0x080c, 0x1ef9, 0xa880, 0xc0fd,\r
++      0xa882, 0x2a00, 0xa816, 0x2800, 0xa85a, 0x2c00, 0xa812, 0x7003,\r
++      0x0000, 0x2009, 0x0306, 0x200b, 0x4800, 0x7027, 0x0000, 0x0804,\r
++      0x1e8e, 0x00f6, 0x0026, 0x781c, 0x0006, 0x7818, 0x0006, 0x2079,\r
++      0x0100, 0x7a14, 0x9284, 0x1984, 0x9085, 0x0012, 0x7816, 0x0036,\r
++      0x2019, 0x1000, 0x8319, 0x090c, 0x0db4, 0x7820, 0xd0bc, 0x1dd0,\r
++      0x003e, 0x79c8, 0x000e, 0x9102, 0x001e, 0x0006, 0x0016, 0x79c4,\r
++      0x000e, 0x9103, 0x78c6, 0x000e, 0x78ca, 0x9284, 0x1984, 0x9085,\r
++      0x0012, 0x7816, 0x002e, 0x00fe, 0x782b, 0x0008, 0x7003, 0x0000,\r
++      0x080c, 0x1b60, 0x0804, 0x1e8e, 0x8001, 0x7002, 0x7024, 0x8004,\r
++      0x7026, 0xd194, 0x0170, 0x782c, 0xd0fc, 0x1904, 0x1d4f, 0xd19c,\r
++      0x1904, 0x1e8a, 0x8aff, 0x0904, 0x1e8e, 0x080c, 0x1b67, 0x0804,\r
++      0x1e8e, 0x0026, 0x0036, 0xab3c, 0xaa40, 0x080c, 0x1ef9, 0xdd9c,\r
++      0x1904, 0x1e49, 0x2c05, 0x908a, 0x0036, 0x1a0c, 0x0db4, 0x9082,\r
++      0x001b, 0x0002, 0x1e1d, 0x1e1d, 0x1e1f, 0x1e1d, 0x1e1d, 0x1e1d,\r
++      0x1e25, 0x1e1d, 0x1e1d, 0x1e1d, 0x1e2b, 0x1e1d, 0x1e1d, 0x1e1d,\r
++      0x1e31, 0x1e1d, 0x1e1d, 0x1e1d, 0x1e37, 0x1e1d, 0x1e1d, 0x1e1d,\r
++      0x1e3d, 0x1e1d, 0x1e1d, 0x1e1d, 0x1e43, 0x080c, 0x0db4, 0xa07c,\r
++      0x931a, 0xa080, 0x9213, 0x0804, 0x1d7e, 0xa08c, 0x931a, 0xa090,\r
++      0x9213, 0x0804, 0x1d7e, 0xa09c, 0x931a, 0xa0a0, 0x9213, 0x0804,\r
++      0x1d7e, 0xa0ac, 0x931a, 0xa0b0, 0x9213, 0x0804, 0x1d7e, 0xa0bc,\r
++      0x931a, 0xa0c0, 0x9213, 0x0804, 0x1d7e, 0xa0cc, 0x931a, 0xa0d0,\r
++      0x9213, 0x0804, 0x1d7e, 0xa0dc, 0x931a, 0xa0e0, 0x9213, 0x0804,\r
++      0x1d7e, 0x2c05, 0x908a, 0x0034, 0x1a0c, 0x0db4, 0x9082, 0x001b,\r
++      0x0002, 0x1e6c, 0x1e6a, 0x1e6a, 0x1e6a, 0x1e6a, 0x1e6a, 0x1e72,\r
++      0x1e6a, 0x1e6a, 0x1e6a, 0x1e6a, 0x1e6a, 0x1e78, 0x1e6a, 0x1e6a,\r
++      0x1e6a, 0x1e6a, 0x1e6a, 0x1e7e, 0x1e6a, 0x1e6a, 0x1e6a, 0x1e6a,\r
++      0x1e6a, 0x1e84, 0x080c, 0x0db4, 0xa07c, 0x931a, 0xa080, 0x9213,\r
++      0x0804, 0x1d7e, 0xa094, 0x931a, 0xa098, 0x9213, 0x0804, 0x1d7e,\r
++      0xa0ac, 0x931a, 0xa0b0, 0x9213, 0x0804, 0x1d7e, 0xa0c4, 0x931a,\r
++      0xa0c8, 0x9213, 0x0804, 0x1d7e, 0xa0dc, 0x931a, 0xa0e0, 0x9213,\r
++      0x0804, 0x1d7e, 0x0804, 0x1d7a, 0x080c, 0x0db4, 0x012e, 0x0005,\r
++      0x00f6, 0x00e6, 0x2071, 0x1a36, 0x7000, 0x9086, 0x0000, 0x0904,\r
++      0x1ed9, 0x2079, 0x0090, 0x2009, 0x0207, 0x210c, 0xd194, 0x01b8,\r
++      0x2009, 0x020c, 0x210c, 0x9184, 0x0003, 0x0188, 0x080c, 0xd8d5,\r
++      0x2001, 0x0133, 0x2004, 0x9005, 0x090c, 0x0db4, 0x0016, 0x2009,\r
++      0x0040, 0x080c, 0x2268, 0x001e, 0x2001, 0x020c, 0x2102, 0x2009,\r
++      0x0206, 0x2104, 0x2009, 0x0203, 0x210c, 0x9106, 0x1120, 0x2009,\r
++      0x0040, 0x080c, 0x2268, 0x782c, 0xd0fc, 0x09a8, 0x080c, 0x1d4a,\r
++      0x7000, 0x9086, 0x0000, 0x1978, 0x782b, 0x0004, 0x782c, 0xd0ac,\r
++      0x1de8, 0x2009, 0x0040, 0x080c, 0x2268, 0x782b, 0x0002, 0x7003,\r
++      0x0000, 0x080c, 0x1b60, 0x00ee, 0x00fe, 0x0005, 0xa880, 0xd0fc,\r
++      0x11a8, 0x8c60, 0x2c05, 0x9005, 0x0110, 0x8a51, 0x0005, 0xa004,\r
++      0x9005, 0x0168, 0xa85a, 0x2040, 0xa064, 0x9084, 0x000f, 0x9080,\r
++      0x1f26, 0x2065, 0x8cff, 0x090c, 0x0db4, 0x8a51, 0x0005, 0x2050,\r
++      0x0005, 0xa880, 0xd0fc, 0x11b8, 0x8a50, 0x8c61, 0x2c05, 0x9005,\r
++      0x1190, 0x2800, 0x9906, 0x0120, 0xa000, 0x9005, 0x1108, 0x2900,\r
++      0x2040, 0xa85a, 0xa064, 0x9084, 0x000f, 0x9080, 0x1f36, 0x2065,\r
++      0x8cff, 0x090c, 0x0db4, 0x0005, 0x0000, 0x001d, 0x0021, 0x0025,\r
++      0x0029, 0x002d, 0x0031, 0x0035, 0x0000, 0x001b, 0x0021, 0x0027,\r
++      0x002d, 0x0033, 0x0000, 0x0000, 0x0023, 0x0000, 0x0000, 0x1f19,\r
++      0x1f15, 0x0000, 0x0000, 0x1f23, 0x0000, 0x1f19, 0x1f20, 0x1f20,\r
++      0x1f1d, 0x0000, 0x0000, 0x0000, 0x1f23, 0x1f20, 0x0000, 0x1f1b,\r
++      0x1f1b, 0x0000, 0x0000, 0x1f23, 0x0000, 0x1f1b, 0x1f21, 0x1f21,\r
++      0x1f21, 0x0000, 0x0000, 0x0000, 0x1f23, 0x1f21, 0x00c6, 0x00d6,\r
++      0x0086, 0xab42, 0xac3e, 0xa888, 0x9055, 0x0904, 0x2125, 0x2940,\r
++      0xa064, 0x90ec, 0x000f, 0x9084, 0x00ff, 0x9086, 0x0008, 0x1118,\r
++      0x2061, 0x1f21, 0x00d0, 0x9de0, 0x1f26, 0x9d86, 0x0007, 0x0130,\r
++      0x9d86, 0x000e, 0x0118, 0x9d86, 0x000f, 0x1120, 0xa08c, 0x9422,\r
++      0xa090, 0x931b, 0x2c05, 0x9065, 0x1140, 0x0310, 0x0804, 0x2125,\r
++      0xa004, 0x9045, 0x0904, 0x2125, 0x08d8, 0x2c05, 0x9005, 0x0904,\r
++      0x200d, 0xdd9c, 0x1904, 0x1fc9, 0x908a, 0x0036, 0x1a0c, 0x0db4,\r
++      0x9082, 0x001b, 0x0002, 0x1f9e, 0x1f9e, 0x1fa0, 0x1f9e, 0x1f9e,\r
++      0x1f9e, 0x1fa6, 0x1f9e, 0x1f9e, 0x1f9e, 0x1fac, 0x1f9e, 0x1f9e,\r
++      0x1f9e, 0x1fb2, 0x1f9e, 0x1f9e, 0x1f9e, 0x1fb8, 0x1f9e, 0x1f9e,\r
++      0x1f9e, 0x1fbe, 0x1f9e, 0x1f9e, 0x1f9e, 0x1fc4, 0x080c, 0x0db4,\r
++      0xa07c, 0x9422, 0xa080, 0x931b, 0x0804, 0x2003, 0xa08c, 0x9422,\r
++      0xa090, 0x931b, 0x0804, 0x2003, 0xa09c, 0x9422, 0xa0a0, 0x931b,\r
++      0x0804, 0x2003, 0xa0ac, 0x9422, 0xa0b0, 0x931b, 0x0804, 0x2003,\r
++      0xa0bc, 0x9422, 0xa0c0, 0x931b, 0x0804, 0x2003, 0xa0cc, 0x9422,\r
++      0xa0d0, 0x931b, 0x0804, 0x2003, 0xa0dc, 0x9422, 0xa0e0, 0x931b,\r
++      0x04d0, 0x908a, 0x0034, 0x1a0c, 0x0db4, 0x9082, 0x001b, 0x0002,\r
++      0x1feb, 0x1fe9, 0x1fe9, 0x1fe9, 0x1fe9, 0x1fe9, 0x1ff0, 0x1fe9,\r
++      0x1fe9, 0x1fe9, 0x1fe9, 0x1fe9, 0x1ff5, 0x1fe9, 0x1fe9, 0x1fe9,\r
++      0x1fe9, 0x1fe9, 0x1ffa, 0x1fe9, 0x1fe9, 0x1fe9, 0x1fe9, 0x1fe9,\r
++      0x1fff, 0x080c, 0x0db4, 0xa07c, 0x9422, 0xa080, 0x931b, 0x0098,\r
++      0xa094, 0x9422, 0xa098, 0x931b, 0x0070, 0xa0ac, 0x9422, 0xa0b0,\r
++      0x931b, 0x0048, 0xa0c4, 0x9422, 0xa0c8, 0x931b, 0x0020, 0xa0dc,\r
++      0x9422, 0xa0e0, 0x931b, 0x0630, 0x2300, 0x9405, 0x0160, 0x8a51,\r
++      0x0904, 0x2125, 0x8c60, 0x0804, 0x1f75, 0xa004, 0x9045, 0x0904,\r
++      0x2125, 0x0804, 0x1f50, 0x8a51, 0x0904, 0x2125, 0x8c60, 0x2c05,\r
++      0x9005, 0x1158, 0xa004, 0x9045, 0x0904, 0x2125, 0xa064, 0x90ec,\r
++      0x000f, 0x9de0, 0x1f26, 0x2c05, 0x2060, 0xa880, 0xc0fc, 0xa882,\r
++      0x0804, 0x211a, 0x2c05, 0x8422, 0x8420, 0x831a, 0x9399, 0x0000,\r
++      0xac2e, 0xab32, 0xdd9c, 0x1904, 0x20b7, 0x9082, 0x001b, 0x0002,\r
++      0x2053, 0x2053, 0x2055, 0x2053, 0x2053, 0x2053, 0x2063, 0x2053,\r
++      0x2053, 0x2053, 0x2071, 0x2053, 0x2053, 0x2053, 0x207f, 0x2053,\r
++      0x2053, 0x2053, 0x208d, 0x2053, 0x2053, 0x2053, 0x209b, 0x2053,\r
++      0x2053, 0x2053, 0x20a9, 0x080c, 0x0db4, 0xa17c, 0x2400, 0x9122,\r
++      0xa180, 0x2300, 0x911b, 0x0a0c, 0x0db4, 0xa074, 0x9420, 0xa078,\r
++      0x9319, 0x0804, 0x2115, 0xa18c, 0x2400, 0x9122, 0xa190, 0x2300,\r
++      0x911b, 0x0a0c, 0x0db4, 0xa084, 0x9420, 0xa088, 0x9319, 0x0804,\r
++      0x2115, 0xa19c, 0x2400, 0x9122, 0xa1a0, 0x2300, 0x911b, 0x0a0c,\r
++      0x0db4, 0xa094, 0x9420, 0xa098, 0x9319, 0x0804, 0x2115, 0xa1ac,\r
++      0x2400, 0x9122, 0xa1b0, 0x2300, 0x911b, 0x0a0c, 0x0db4, 0xa0a4,\r
++      0x9420, 0xa0a8, 0x9319, 0x0804, 0x2115, 0xa1bc, 0x2400, 0x9122,\r
++      0xa1c0, 0x2300, 0x911b, 0x0a0c, 0x0db4, 0xa0b4, 0x9420, 0xa0b8,\r
++      0x9319, 0x0804, 0x2115, 0xa1cc, 0x2400, 0x9122, 0xa1d0, 0x2300,\r
++      0x911b, 0x0a0c, 0x0db4, 0xa0c4, 0x9420, 0xa0c8, 0x9319, 0x0804,\r
++      0x2115, 0xa1dc, 0x2400, 0x9122, 0xa1e0, 0x2300, 0x911b, 0x0a0c,\r
++      0x0db4, 0xa0d4, 0x9420, 0xa0d8, 0x9319, 0x0804, 0x2115, 0x9082,\r
++      0x001b, 0x0002, 0x20d5, 0x20d3, 0x20d3, 0x20d3, 0x20d3, 0x20d3,\r
++      0x20e2, 0x20d3, 0x20d3, 0x20d3, 0x20d3, 0x20d3, 0x20ef, 0x20d3,\r
++      0x20d3, 0x20d3, 0x20d3, 0x20d3, 0x20fc, 0x20d3, 0x20d3, 0x20d3,\r
++      0x20d3, 0x20d3, 0x2109, 0x080c, 0x0db4, 0xa17c, 0x2400, 0x9122,\r
++      0xa180, 0x2300, 0x911b, 0x0a0c, 0x0db4, 0xa06c, 0x9420, 0xa070,\r
++      0x9319, 0x0498, 0xa194, 0x2400, 0x9122, 0xa198, 0x2300, 0x911b,\r
++      0x0a0c, 0x0db4, 0xa084, 0x9420, 0xa088, 0x9319, 0x0430, 0xa1ac,\r
++      0x2400, 0x9122, 0xa1b0, 0x2300, 0x911b, 0x0a0c, 0x0db4, 0xa09c,\r
++      0x9420, 0xa0a0, 0x9319, 0x00c8, 0xa1c4, 0x2400, 0x9122, 0xa1c8,\r
++      0x2300, 0x911b, 0x0a0c, 0x0db4, 0xa0b4, 0x9420, 0xa0b8, 0x9319,\r
++      0x0060, 0xa1dc, 0x2400, 0x9122, 0xa1e0, 0x2300, 0x911b, 0x0a0c,\r
++      0x0db4, 0xa0cc, 0x9420, 0xa0d0, 0x9319, 0xac1e, 0xab22, 0xa880,\r
++      0xc0fd, 0xa882, 0x2800, 0xa85a, 0x2c00, 0xa812, 0x2a00, 0xa816,\r
++      0x000e, 0x000e, 0x000e, 0x9006, 0x0028, 0x008e, 0x00de, 0x00ce,\r
++      0x9085, 0x0001, 0x0005, 0x2001, 0x0005, 0x2004, 0xd0bc, 0x190c,\r
++      0x0dad, 0x9084, 0x0007, 0x0002, 0x2146, 0x1d4a, 0x2146, 0x213c,\r
++      0x213f, 0x2142, 0x213f, 0x2142, 0x080c, 0x1d4a, 0x0005, 0x080c,\r
++      0x118f, 0x0005, 0x080c, 0x1d4a, 0x080c, 0x118f, 0x0005, 0x0126,\r
++      0x2091, 0x2600, 0x2079, 0x0200, 0x2071, 0x0260, 0x2069, 0x1800,\r
++      0x7817, 0x0000, 0x789b, 0x0814, 0x78a3, 0x0406, 0x789f, 0x0410,\r
++      0x2009, 0x013b, 0x200b, 0x0400, 0x781b, 0x0002, 0x783b, 0x001f,\r
++      0x7837, 0x0020, 0x7803, 0x1600, 0x012e, 0x0005, 0x2091, 0x2600,\r
++      0x781c, 0xd0a4, 0x190c, 0x2265, 0x7900, 0xd1dc, 0x1118, 0x9084,\r
++      0x0006, 0x001a, 0x9084, 0x000e, 0x0002, 0x218d, 0x2185, 0x794e,\r
++      0x2185, 0x2187, 0x2187, 0x2187, 0x2187, 0x7934, 0x2185, 0x2189,\r
++      0x2185, 0x2187, 0x2185, 0x2187, 0x2185, 0x080c, 0x0db4, 0x0031,\r
++      0x0020, 0x080c, 0x7934, 0x080c, 0x794e, 0x0005, 0x0006, 0x0016,\r
++      0x0026, 0x080c, 0xd8d5, 0x7930, 0x9184, 0x0003, 0x01c0, 0x2001,\r
++      0x19c7, 0x2004, 0x9005, 0x0170, 0x2001, 0x0133, 0x2004, 0x9005,\r
++      0x090c, 0x0db4, 0x00c6, 0x2001, 0x19c7, 0x2064, 0x080c, 0xb74a,\r
++      0x00ce, 0x00f8, 0x2009, 0x0040, 0x080c, 0x2268, 0x00d0, 0x9184,\r
++      0x0014, 0x01a0, 0x6a00, 0x9286, 0x0003, 0x0160, 0x080c, 0x6fb2,\r
++      0x1138, 0x080c, 0x7296, 0x080c, 0x5cd1, 0x080c, 0x6ee4, 0x0010,\r
++      0x080c, 0x5b90, 0x080c, 0x79fd, 0x0041, 0x0018, 0x9184, 0x9540,\r
++      0x1dc8, 0x002e, 0x001e, 0x000e, 0x0005, 0x00e6, 0x0036, 0x0046,\r
++      0x0056, 0x2071, 0x1a33, 0x080c, 0x1958, 0x005e, 0x004e, 0x003e,\r
++      0x00ee, 0x0005, 0x0126, 0x2091, 0x2e00, 0x2071, 0x1800, 0x7128,\r
++      0x2001, 0x1940, 0x2102, 0x2001, 0x1948, 0x2102, 0x2001, 0x013b,\r
++      0x2102, 0x2079, 0x0200, 0x2001, 0x0201, 0x789e, 0x78a3, 0x0200,\r
++      0x9198, 0x0007, 0x831c, 0x831c, 0x831c, 0x9398, 0x0005, 0x2320,\r
++      0x9182, 0x0204, 0x1230, 0x2011, 0x0008, 0x8423, 0x8423, 0x8423,\r
++      0x0488, 0x9182, 0x024c, 0x1240, 0x2011, 0x0007, 0x8403, 0x8003,\r
++      0x9400, 0x9400, 0x9420, 0x0430, 0x9182, 0x02bc, 0x1238, 0x2011,\r
++      0x0006, 0x8403, 0x8003, 0x9400, 0x9420, 0x00e0, 0x9182, 0x034c,\r
++      0x1230, 0x2011, 0x0005, 0x8403, 0x8003, 0x9420, 0x0098, 0x9182,\r
++      0x042c, 0x1228, 0x2011, 0x0004, 0x8423, 0x8423, 0x0058, 0x9182,\r
++      0x059c, 0x1228, 0x2011, 0x0003, 0x8403, 0x9420, 0x0018, 0x2011,\r
++      0x0002, 0x8423, 0x9482, 0x0228, 0x8002, 0x8020, 0x8301, 0x9402,\r
++      0x0110, 0x0208, 0x8321, 0x8217, 0x8203, 0x9405, 0x789a, 0x012e,\r
++      0x0005, 0x0006, 0x00d6, 0x2069, 0x0200, 0x6814, 0x9084, 0xffc0,\r
++      0x910d, 0x6916, 0x00de, 0x000e, 0x0005, 0x00d6, 0x2069, 0x0200,\r
++      0x9005, 0x6810, 0x0110, 0xc0a5, 0x0008, 0xc0a4, 0x6812, 0x00de,\r
++      0x0005, 0x0006, 0x00d6, 0x2069, 0x0200, 0x6810, 0x9084, 0xfff8,\r
++      0x910d, 0x6912, 0x00de, 0x000e, 0x0005, 0x7938, 0x080c, 0x0dad,\r
++      0x00f6, 0x2079, 0x0200, 0x7902, 0xa001, 0xa001, 0xa001, 0xa001,\r
++      0xa001, 0xa001, 0x7902, 0xa001, 0xa001, 0xa001, 0xa001, 0xa001,\r
++      0xa001, 0x00fe, 0x0005, 0x0126, 0x2091, 0x2800, 0x2061, 0x0100,\r
++      0x2071, 0x1800, 0x2009, 0x0000, 0x080c, 0x2a63, 0x080c, 0x297e,\r
++      0x6054, 0x8004, 0x8004, 0x8004, 0x8004, 0x9084, 0x000c, 0x6150,\r
++      0x918c, 0xfff3, 0x9105, 0x6052, 0x6050, 0x9084, 0xb17f, 0x9085,\r
++      0x2000, 0x6052, 0x2009, 0x196e, 0x2011, 0x196f, 0x6358, 0x939c,\r
++      0x38f0, 0x2320, 0x080c, 0x29c2, 0x1238, 0x939d, 0x4003, 0x94a5,\r
++      0x8603, 0x230a, 0x2412, 0x0030, 0x939d, 0x0203, 0x94a5, 0x8603,\r
++      0x230a, 0x2412, 0x9006, 0x080c, 0x29ad, 0x9006, 0x080c, 0x2990,\r
++      0x20a9, 0x0012, 0x1d04, 0x22ba, 0x2091, 0x6000, 0x1f04, 0x22ba,\r
++      0x602f, 0x0100, 0x602f, 0x0000, 0x6050, 0x9085, 0x0400, 0x9084,\r
++      0xdfff, 0x6052, 0x6024, 0x6026, 0x080c, 0x269c, 0x2009, 0x00ef,\r
++      0x6132, 0x6136, 0x080c, 0x26ac, 0x60e7, 0x0000, 0x61ea, 0x60e3,\r
++      0x0002, 0x604b, 0xf7f7, 0x6043, 0x0000, 0x602f, 0x0080, 0x602f,\r
++      0x0000, 0x6007, 0x149f, 0x60bb, 0x0000, 0x20a9, 0x0018, 0x60bf,\r
++      0x0000, 0x1f04, 0x22e7, 0x60bb, 0x0000, 0x60bf, 0x0108, 0x60bf,\r
++      0x0012, 0x60bf, 0x0320, 0x60bf, 0x0018, 0x601b, 0x00f0, 0x601f,\r
++      0x001e, 0x600f, 0x006b, 0x602b, 0x402f, 0x012e, 0x0005, 0x00f6,\r
++      0x2079, 0x0140, 0x78c3, 0x0080, 0x78c3, 0x0083, 0x78c3, 0x0000,\r
++      0x00fe, 0x0005, 0x2001, 0x1834, 0x2003, 0x0000, 0x2001, 0x1833,\r
++      0x2003, 0x0001, 0x0005, 0x0126, 0x2091, 0x2800, 0x0006, 0x0016,\r
++      0x0026, 0x6124, 0x9184, 0x5e2c, 0x1118, 0x9184, 0x0007, 0x002a,\r
++      0x9195, 0x0004, 0x9284, 0x0007, 0x0002, 0x2347, 0x232d, 0x2330,\r
++      0x2333, 0x2338, 0x233a, 0x233e, 0x2342, 0x080c, 0x82dd, 0x00b8,\r
++      0x080c, 0x83aa, 0x00a0, 0x080c, 0x83aa, 0x080c, 0x82dd, 0x0078,\r
++      0x0099, 0x0068, 0x080c, 0x82dd, 0x0079, 0x0048, 0x080c, 0x83aa,\r
++      0x0059, 0x0028, 0x080c, 0x83aa, 0x080c, 0x82dd, 0x0029, 0x002e,\r
++      0x001e, 0x000e, 0x012e, 0x0005, 0x00a6, 0x6124, 0x6028, 0xd09c,\r
++      0x0118, 0xd19c, 0x1904, 0x2595, 0xd1f4, 0x190c, 0x0dad, 0x080c,\r
++      0x6fb2, 0x0904, 0x23a2, 0x080c, 0xc212, 0x1120, 0x7000, 0x9086,\r
++      0x0003, 0x0570, 0x6024, 0x9084, 0x1800, 0x0550, 0x080c, 0x6fd5,\r
++      0x0118, 0x080c, 0x6fc3, 0x1520, 0x6027, 0x0020, 0x6043, 0x0000,\r
++      0x080c, 0xc212, 0x0168, 0x080c, 0x6fd5, 0x1150, 0x2001, 0x1978,\r
++      0x2003, 0x0001, 0x6027, 0x1800, 0x080c, 0x6e33, 0x0804, 0x2598,\r
++      0x70a0, 0x9005, 0x1150, 0x70a3, 0x0001, 0x00d6, 0x2069, 0x0140,\r
++      0x080c, 0x7009, 0x00de, 0x1904, 0x2598, 0x080c, 0x72a0, 0x0428,\r
++      0x080c, 0x6fd5, 0x1590, 0x6024, 0x9084, 0x1800, 0x1108, 0x0468,\r
++      0x080c, 0x72a0, 0x080c, 0x7296, 0x080c, 0x5cd1, 0x080c, 0x6ee4,\r
++      0x0804, 0x2595, 0xd1ac, 0x1508, 0x6024, 0xd0dc, 0x1170, 0xd0e4,\r
++      0x1178, 0xd0d4, 0x1190, 0xd0cc, 0x0130, 0x7094, 0x9086, 0x0028,\r
++      0x1110, 0x080c, 0x7185, 0x0804, 0x2595, 0x080c, 0x729b, 0x0048,\r
++      0x2001, 0x194e, 0x2003, 0x0002, 0x0020, 0x080c, 0x70eb, 0x0804,\r
++      0x2595, 0x080c, 0x721f, 0x0804, 0x2595, 0xd1ac, 0x0904, 0x24b6,\r
++      0x080c, 0x6fb2, 0x11c0, 0x6027, 0x0020, 0x0006, 0x0026, 0x0036,\r
++      0x080c, 0x6fcc, 0x1158, 0x080c, 0x7296, 0x080c, 0x5cd1, 0x080c,\r
++      0x6ee4, 0x003e, 0x002e, 0x000e, 0x00ae, 0x0005, 0x003e, 0x002e,\r
++      0x000e, 0x080c, 0x6f8a, 0x0016, 0x0046, 0x00c6, 0x644c, 0x9486,\r
++      0xf0f0, 0x1138, 0x2061, 0x0100, 0x644a, 0x6043, 0x0090, 0x6043,\r
++      0x0010, 0x74d6, 0x948c, 0xff00, 0x7038, 0xd084, 0x0178, 0x9186,\r
++      0xf800, 0x1160, 0x7044, 0xd084, 0x1148, 0xc085, 0x7046, 0x0036,\r
++      0x2418, 0x2011, 0x8016, 0x080c, 0x48d9, 0x003e, 0x080c, 0xc20b,\r
++      0x1904, 0x2493, 0x9196, 0xff00, 0x05a8, 0x705c, 0x9084, 0x00ff,\r
++      0x810f, 0x81ff, 0x0110, 0x9116, 0x0568, 0x7130, 0xd184, 0x1550,\r
++      0x080c, 0x3133, 0x0128, 0xc18d, 0x7132, 0x080c, 0x655a, 0x1510,\r
++      0x6240, 0x9294, 0x0010, 0x0130, 0x6248, 0x9294, 0xff00, 0x9296,\r
++      0xff00, 0x01c0, 0x7030, 0xd08c, 0x0904, 0x2493, 0x7038, 0xd08c,\r
++      0x1140, 0x2001, 0x180c, 0x200c, 0xd1ac, 0x1904, 0x2493, 0xc1ad,\r
++      0x2102, 0x0036, 0x73d4, 0x2011, 0x8013, 0x080c, 0x48d9, 0x003e,\r
++      0x0804, 0x2493, 0x7038, 0xd08c, 0x1140, 0x2001, 0x180c, 0x200c,\r
++      0xd1ac, 0x1904, 0x2493, 0xc1ad, 0x2102, 0x0036, 0x73d4, 0x2011,\r
++      0x8013, 0x080c, 0x48d9, 0x003e, 0x7130, 0xc185, 0x7132, 0x2011,\r
++      0x1854, 0x220c, 0x00f0, 0x0016, 0x2009, 0x0001, 0x2011, 0x0100,\r
++      0x080c, 0x822f, 0x2019, 0x000e, 0x00c6, 0x2061, 0x0000, 0x080c,\r
++      0xd4a6, 0x00ce, 0x9484, 0x00ff, 0x9080, 0x3138, 0x200d, 0x918c,\r
++      0xff00, 0x810f, 0x2120, 0x9006, 0x2009, 0x000e, 0x080c, 0xd52a,\r
++      0x001e, 0xd1ac, 0x1148, 0x0016, 0x2009, 0x0002, 0x2019, 0x0004,\r
++      0x080c, 0x2fa5, 0x001e, 0x0078, 0x0156, 0x00b6, 0x20a9, 0x007f,\r
++      0x900e, 0x080c, 0x623e, 0x1110, 0x080c, 0x5ceb, 0x8108, 0x1f04,\r
++      0x2489, 0x00be, 0x015e, 0x00ce, 0x004e, 0x080c, 0x9db8, 0x60e3,\r
++      0x0000, 0x001e, 0x2001, 0x1800, 0x2014, 0x9296, 0x0004, 0x1170,\r
++      0xd19c, 0x11a0, 0x2011, 0x180c, 0x2214, 0xd29c, 0x1120, 0x6204,\r
++      0x9295, 0x0002, 0x6206, 0x6228, 0xc29d, 0x622a, 0x2003, 0x0001,\r
++      0x2001, 0x1825, 0x2003, 0x0000, 0x6027, 0x0020, 0xd194, 0x0904,\r
++      0x2595, 0x0016, 0x6220, 0xd2b4, 0x0904, 0x253e, 0x080c, 0x80b8,\r
++      0x080c, 0x93ac, 0x6027, 0x0004, 0x00f6, 0x2019, 0x19c1, 0x2304,\r
++      0x907d, 0x0904, 0x250d, 0x7804, 0x9086, 0x0032, 0x15f0, 0x00d6,\r
++      0x00c6, 0x00e6, 0x0096, 0x2069, 0x0140, 0x782c, 0x685e, 0x7808,\r
++      0x685a, 0x6043, 0x0002, 0x2001, 0x0003, 0x8001, 0x1df0, 0x6043,\r
++      0x0000, 0x2001, 0x003c, 0x8001, 0x1df0, 0x080c, 0x2b24, 0x2001,\r
++      0x001e, 0x8001, 0x0240, 0x20a9, 0x0009, 0x080c, 0x2a3e, 0x6904,\r
++      0xd1dc, 0x1140, 0x0cb0, 0x2001, 0x0100, 0x080c, 0x2b14, 0x9006,\r
++      0x080c, 0x2b14, 0x080c, 0x886e, 0x080c, 0x8973, 0x7814, 0x2048,\r
++      0xa867, 0x0103, 0x2f60, 0x080c, 0x9e32, 0x009e, 0x00ee, 0x00ce,\r
++      0x00de, 0x00fe, 0x001e, 0x00ae, 0x0005, 0x00fe, 0x00d6, 0x2069,\r
++      0x0140, 0x6804, 0x9084, 0x4000, 0x0110, 0x080c, 0x2b24, 0x00de,\r
++      0x00c6, 0x2061, 0x19b8, 0x6028, 0x080c, 0xc212, 0x0120, 0x909a,\r
++      0x0003, 0x1258, 0x0018, 0x909a, 0x00c8, 0x1238, 0x8000, 0x602a,\r
++      0x00ce, 0x080c, 0x9388, 0x0804, 0x2594, 0x2061, 0x0100, 0x62c0,\r
++      0x080c, 0x9c43, 0x2019, 0x19c1, 0x2304, 0x9065, 0x0120, 0x2009,\r
++      0x0027, 0x080c, 0x9eac, 0x00ce, 0x0804, 0x2594, 0xd2bc, 0x0904,\r
++      0x2581, 0x080c, 0x80c5, 0x6014, 0x9084, 0x1984, 0x9085, 0x0010,\r
++      0x6016, 0x6027, 0x0004, 0x00d6, 0x2069, 0x0140, 0x6804, 0x9084,\r
++      0x4000, 0x0110, 0x080c, 0x2b24, 0x00de, 0x00c6, 0x2061, 0x19b8,\r
++      0x6044, 0x080c, 0xc212, 0x0120, 0x909a, 0x0003, 0x1628, 0x0018,\r
++      0x909a, 0x00c8, 0x1608, 0x8000, 0x6046, 0x603c, 0x00ce, 0x9005,\r
++      0x0558, 0x2009, 0x07d0, 0x080c, 0x80bd, 0x9080, 0x0008, 0x2004,\r
++      0x9086, 0x0006, 0x1138, 0x6114, 0x918c, 0x1984, 0x918d, 0x0012,\r
++      0x6116, 0x00d0, 0x6114, 0x918c, 0x1984, 0x918d, 0x0016, 0x6116,\r
++      0x0098, 0x6027, 0x0004, 0x0080, 0x0036, 0x2019, 0x0001, 0x080c,\r
++      0x96d8, 0x003e, 0x2019, 0x19c7, 0x2304, 0x9065, 0x0120, 0x2009,\r
++      0x004f, 0x080c, 0x9eac, 0x00ce, 0x001e, 0xd19c, 0x0904, 0x2607,\r
++      0x7038, 0xd0ac, 0x1904, 0x25dc, 0x0016, 0x0156, 0x6027, 0x0008,\r
++      0x6050, 0x9085, 0x0040, 0x6052, 0x6050, 0x9084, 0xfbcf, 0x6052,\r
++      0x080c, 0x2a5d, 0x9085, 0x2000, 0x6052, 0x20a9, 0x0012, 0x1d04,\r
++      0x25af, 0x080c, 0x80ec, 0x1f04, 0x25af, 0x6050, 0x9085, 0x0400,\r
++      0x9084, 0xdfbf, 0x6052, 0x20a9, 0x0028, 0xa001, 0x1f04, 0x25bd,\r
++      0x6150, 0x9185, 0x1400, 0x6052, 0x20a9, 0x0366, 0x1d04, 0x25c6,\r
++      0x080c, 0x80ec, 0x6020, 0xd09c, 0x1130, 0x015e, 0x6152, 0x001e,\r
++      0x6027, 0x0008, 0x04a0, 0x080c, 0x2a25, 0x1f04, 0x25c6, 0x015e,\r
++      0x6152, 0x001e, 0x6027, 0x0008, 0x0016, 0x6028, 0xc09c, 0x602a,\r
++      0x080c, 0x9db8, 0x60e3, 0x0000, 0x080c, 0xd8b4, 0x080c, 0xd8cf,\r
++      0x080c, 0x538a, 0xd0fc, 0x1138, 0x080c, 0xc20b, 0x1120, 0x9085,\r
++      0x0001, 0x080c, 0x6ff9, 0x9006, 0x080c, 0x2b14, 0x2009, 0x0002,\r
++      0x080c, 0x2a63, 0x00e6, 0x2071, 0x1800, 0x7003, 0x0004, 0x080c,\r
++      0x0e80, 0x00ee, 0x6027, 0x0008, 0x080c, 0x0b8f, 0x001e, 0x918c,\r
++      0xffd0, 0x6126, 0x00ae, 0x0005, 0x0006, 0x0016, 0x0026, 0x0036,\r
++      0x00e6, 0x00f6, 0x0126, 0x2091, 0x8000, 0x2071, 0x1800, 0x71cc,\r
++      0x70ce, 0x9116, 0x0904, 0x265b, 0x81ff, 0x01a0, 0x2009, 0x0000,\r
++      0x080c, 0x2a63, 0x2011, 0x8011, 0x2019, 0x010e, 0x231c, 0x939e,\r
++      0x0007, 0x1118, 0x2019, 0x0001, 0x0010, 0x2019, 0x0000, 0x080c,\r
++      0x48d9, 0x0448, 0x2001, 0x1979, 0x200c, 0x81ff, 0x1140, 0x2001,\r
++      0x0109, 0x2004, 0xd0b4, 0x0118, 0x2019, 0x0003, 0x0008, 0x2118,\r
++      0x2011, 0x8012, 0x080c, 0x48d9, 0x080c, 0x0e80, 0x080c, 0x538a,\r
++      0xd0fc, 0x1188, 0x080c, 0xc20b, 0x1170, 0x00c6, 0x080c, 0x26f7,\r
++      0x080c, 0x963f, 0x2061, 0x0100, 0x2019, 0x0028, 0x2009, 0x0002,\r
++      0x080c, 0x2fa5, 0x00ce, 0x012e, 0x00fe, 0x00ee, 0x003e, 0x002e,\r
++      0x001e, 0x000e, 0x0005, 0x2028, 0x918c, 0x00ff, 0x2130, 0x9094,\r
++      0xff00, 0x11f0, 0x2011, 0x1836, 0x2214, 0xd2ac, 0x11c8, 0x81ff,\r
++      0x01e8, 0x2011, 0x181e, 0x2204, 0x9106, 0x1190, 0x2011, 0x181f,\r
++      0x2214, 0x9294, 0xff00, 0x9584, 0xff00, 0x9206, 0x1148, 0x2011,\r
++      0x181f, 0x2214, 0x9294, 0x00ff, 0x9584, 0x00ff, 0x9206, 0x1120,\r
++      0x2500, 0x080c, 0x7c57, 0x0048, 0x9584, 0x00ff, 0x9080, 0x3138,\r
++      0x200d, 0x918c, 0xff00, 0x810f, 0x9006, 0x0005, 0x9080, 0x3138,\r
++      0x200d, 0x918c, 0x00ff, 0x0005, 0x00d6, 0x2069, 0x0140, 0x2001,\r
++      0x1817, 0x2003, 0x00ef, 0x20a9, 0x0010, 0x9006, 0x6852, 0x6856,\r
++      0x1f04, 0x26a7, 0x00de, 0x0005, 0x0006, 0x00d6, 0x0026, 0x2069,\r
++      0x0140, 0x2001, 0x1817, 0x2102, 0x8114, 0x8214, 0x8214, 0x8214,\r
++      0x20a9, 0x0010, 0x6853, 0x0000, 0x9006, 0x82ff, 0x1128, 0x9184,\r
++      0x000f, 0x9080, 0xdd89, 0x2005, 0x6856, 0x8211, 0x1f04, 0x26bc,\r
++      0x002e, 0x00de, 0x000e, 0x0005, 0x00c6, 0x2061, 0x1800, 0x6030,\r
++      0x0110, 0xc09d, 0x0008, 0xc09c, 0x6032, 0x00ce, 0x0005, 0x0156,\r
++      0x00d6, 0x0026, 0x0016, 0x0006, 0x2069, 0x0140, 0x6980, 0x9116,\r
++      0x0180, 0x9112, 0x1230, 0x8212, 0x8210, 0x22a8, 0x2001, 0x0402,\r
++      0x0018, 0x22a8, 0x2001, 0x0404, 0x680e, 0x1f04, 0x26ec, 0x680f,\r
++      0x0000, 0x000e, 0x001e, 0x002e, 0x00de, 0x015e, 0x0005, 0x080c,\r
++      0x5386, 0xd0c4, 0x0150, 0xd0a4, 0x0140, 0x9006, 0x0046, 0x2020,\r
++      0x2009, 0x002e, 0x080c, 0xd52a, 0x004e, 0x0005, 0x00f6, 0x0016,\r
++      0x0026, 0x2079, 0x0140, 0x78c4, 0xd0dc, 0x0904, 0x2763, 0x080c,\r
++      0x29c2, 0x0660, 0x9084, 0x0700, 0x908e, 0x0600, 0x1120, 0x2011,\r
++      0x4000, 0x900e, 0x0458, 0x908e, 0x0500, 0x1120, 0x2011, 0x8000,\r
++      0x900e, 0x0420, 0x908e, 0x0400, 0x1120, 0x9016, 0x2009, 0x0001,\r
++      0x00e8, 0x908e, 0x0300, 0x1120, 0x9016, 0x2009, 0x0002, 0x00b0,\r
++      0x908e, 0x0200, 0x1120, 0x9016, 0x2009, 0x0004, 0x0078, 0x908e,\r
++      0x0100, 0x1548, 0x9016, 0x2009, 0x0008, 0x0040, 0x9084, 0x0700,\r
++      0x908e, 0x0300, 0x1500, 0x2011, 0x0030, 0x0058, 0x2300, 0x9080,\r
++      0x0020, 0x2018, 0x080c, 0x8270, 0x928c, 0xff00, 0x0110, 0x2011,\r
++      0x00ff, 0x2200, 0x8007, 0x9085, 0x004c, 0x78c2, 0x2009, 0x0138,\r
++      0x220a, 0x080c, 0x6fb2, 0x1118, 0x2009, 0x193e, 0x220a, 0x002e,\r
++      0x001e, 0x00fe, 0x0005, 0x78c3, 0x0000, 0x0cc8, 0x0126, 0x2091,\r
++      0x2800, 0x0006, 0x0016, 0x0026, 0x2001, 0x0170, 0x200c, 0x8000,\r
++      0x2014, 0x9184, 0x0003, 0x0110, 0x080c, 0x0dad, 0x002e, 0x001e,\r
++      0x000e, 0x012e, 0x0005, 0x2001, 0x0171, 0x2004, 0xd0dc, 0x0168,\r
++      0x2001, 0x0170, 0x200c, 0x918c, 0x00ff, 0x918e, 0x004c, 0x1128,\r
++      0x200c, 0x918c, 0xff00, 0x810f, 0x0005, 0x900e, 0x2001, 0x0227,\r
++      0x2004, 0x8007, 0x9084, 0x00ff, 0x8004, 0x9108, 0x2001, 0x0226,\r
++      0x2004, 0x8007, 0x9084, 0x00ff, 0x8004, 0x9108, 0x0005, 0x0018,\r
++      0x000c, 0x0018, 0x0020, 0x1000, 0x0800, 0x1000, 0x1800, 0x0156,\r
++      0x0006, 0x0016, 0x0026, 0x00e6, 0x2001, 0x1961, 0x2004, 0x908a,\r
++      0x0007, 0x1a0c, 0x0db4, 0x0033, 0x00ee, 0x002e, 0x001e, 0x000e,\r
++      0x015e, 0x0005, 0x27c1, 0x27df, 0x2803, 0x2805, 0x282e, 0x2830,\r
++      0x2832, 0x2001, 0x0001, 0x080c, 0x260c, 0x080c, 0x2a20, 0x2001,\r
++      0x1963, 0x2003, 0x0000, 0x7828, 0x9084, 0xe1d7, 0x782a, 0x9006,\r
++      0x20a9, 0x0009, 0x080c, 0x29de, 0x2001, 0x1961, 0x2003, 0x0006,\r
++      0x2009, 0x001e, 0x2011, 0x2833, 0x080c, 0x80ca, 0x0005, 0x2009,\r
++      0x1966, 0x200b, 0x0000, 0x2001, 0x196b, 0x2003, 0x0036, 0x2001,\r
++      0x196a, 0x2003, 0x002a, 0x2001, 0x1963, 0x2003, 0x0001, 0x9006,\r
++      0x080c, 0x2990, 0x2001, 0xffff, 0x20a9, 0x0009, 0x080c, 0x29de,\r
++      0x2001, 0x1961, 0x2003, 0x0006, 0x2009, 0x001e, 0x2011, 0x2833,\r
++      0x080c, 0x80ca, 0x0005, 0x080c, 0x0db4, 0x2001, 0x196b, 0x2003,\r
++      0x0036, 0x2001, 0x1963, 0x2003, 0x0003, 0x7a38, 0x9294, 0x0005,\r
++      0x9296, 0x0004, 0x0110, 0x9006, 0x0010, 0x2001, 0x0001, 0x080c,\r
++      0x2990, 0x2001, 0x1967, 0x2003, 0x0000, 0x2001, 0xffff, 0x20a9,\r
++      0x0009, 0x080c, 0x29de, 0x2001, 0x1961, 0x2003, 0x0006, 0x2009,\r
++      0x001e, 0x2011, 0x2833, 0x080c, 0x80ca, 0x0005, 0x080c, 0x0db4,\r
++      0x080c, 0x0db4, 0x0005, 0x0006, 0x0016, 0x0026, 0x00e6, 0x00f6,\r
++      0x0156, 0x0126, 0x2091, 0x8000, 0x2079, 0x0100, 0x2001, 0x1963,\r
++      0x2004, 0x908a, 0x0007, 0x1a0c, 0x0db4, 0x0043, 0x012e, 0x015e,\r
++      0x00fe, 0x00ee, 0x002e, 0x001e, 0x000e, 0x0005, 0x2855, 0x2875,\r
++      0x28b5, 0x28e5, 0x2909, 0x2919, 0x291b, 0x080c, 0x29d2, 0x11b0,\r
++      0x7850, 0x9084, 0xefff, 0x7852, 0x2009, 0x1969, 0x2104, 0x7a38,\r
++      0x9294, 0x0005, 0x9296, 0x0004, 0x0110, 0xc08d, 0x0008, 0xc085,\r
++      0x200a, 0x2001, 0x1961, 0x2003, 0x0001, 0x0030, 0x080c, 0x293f,\r
++      0x2001, 0xffff, 0x080c, 0x27d0, 0x0005, 0x080c, 0x291d, 0x05e0,\r
++      0x2009, 0x196a, 0x2104, 0x8001, 0x200a, 0x080c, 0x29d2, 0x1178,\r
++      0x7850, 0x9084, 0xefff, 0x7852, 0x7a38, 0x9294, 0x0005, 0x9296,\r
++      0x0005, 0x0518, 0x2009, 0x1969, 0x2104, 0xc085, 0x200a, 0x2009,\r
++      0x1966, 0x2104, 0x8000, 0x200a, 0x9086, 0x0005, 0x0118, 0x080c,\r
++      0x2925, 0x00c0, 0x200b, 0x0000, 0x7a38, 0x9294, 0x0006, 0x9296,\r
++      0x0004, 0x0110, 0x9006, 0x0010, 0x2001, 0x0001, 0x080c, 0x29ad,\r
++      0x2001, 0x1963, 0x2003, 0x0002, 0x0028, 0x2001, 0x1961, 0x2003,\r
++      0x0003, 0x0010, 0x080c, 0x27f2, 0x0005, 0x080c, 0x291d, 0x0560,\r
++      0x2009, 0x196a, 0x2104, 0x8001, 0x200a, 0x080c, 0x29d2, 0x1168,\r
++      0x7850, 0x9084, 0xefff, 0x7852, 0x2001, 0x1961, 0x2003, 0x0003,\r
++      0x2001, 0x1962, 0x2003, 0x0000, 0x00b8, 0x2009, 0x196a, 0x2104,\r
++      0x9005, 0x1118, 0x080c, 0x2962, 0x0010, 0x080c, 0x2932, 0x080c,\r
++      0x2925, 0x2009, 0x1966, 0x200b, 0x0000, 0x2001, 0x1963, 0x2003,\r
++      0x0001, 0x080c, 0x27f2, 0x0000, 0x0005, 0x04b9, 0x0508, 0x080c,\r
++      0x29d2, 0x11b8, 0x7850, 0x9084, 0xefff, 0x7852, 0x2009, 0x1967,\r
++      0x2104, 0x8000, 0x200a, 0x9086, 0x0007, 0x0108, 0x0078, 0x2001,\r
++      0x196c, 0x2003, 0x000a, 0x2009, 0x1969, 0x2104, 0xc0fd, 0x200a,\r
++      0x0038, 0x0419, 0x2001, 0x1963, 0x2003, 0x0004, 0x080c, 0x281d,\r
++      0x0005, 0x0099, 0x0168, 0x080c, 0x29d2, 0x1138, 0x7850, 0x9084,\r
++      0xefff, 0x7852, 0x080c, 0x2809, 0x0018, 0x0079, 0x080c, 0x281d,\r
++      0x0005, 0x080c, 0x0db4, 0x080c, 0x0db4, 0x2009, 0x196b, 0x2104,\r
++      0x8001, 0x200a, 0x090c, 0x297e, 0x0005, 0x7a38, 0x9294, 0x0005,\r
++      0x9296, 0x0005, 0x0110, 0x9006, 0x0010, 0x2001, 0x0001, 0x080c,\r
++      0x29ad, 0x0005, 0x7a38, 0x9294, 0x0006, 0x9296, 0x0006, 0x0110,\r
++      0x9006, 0x0010, 0x2001, 0x0001, 0x080c, 0x2990, 0x0005, 0x2009,\r
++      0x1966, 0x2104, 0x8000, 0x200a, 0x9086, 0x0005, 0x0108, 0x0068,\r
++      0x200b, 0x0000, 0x7a38, 0x9294, 0x0006, 0x9296, 0x0006, 0x0110,\r
++      0x9006, 0x0010, 0x2001, 0x0001, 0x04d9, 0x7a38, 0x9294, 0x0005,\r
++      0x9296, 0x0005, 0x0110, 0x9006, 0x0010, 0x2001, 0x0001, 0x080c,\r
++      0x29ad, 0x0005, 0x0086, 0x2001, 0x1969, 0x2004, 0x9084, 0x7fff,\r
++      0x090c, 0x0db4, 0x2009, 0x1968, 0x2144, 0x8846, 0x280a, 0x9844,\r
++      0x0dd8, 0xd08c, 0x1120, 0xd084, 0x1120, 0x080c, 0x0db4, 0x9006,\r
++      0x0010, 0x2001, 0x0001, 0x00a1, 0x008e, 0x0005, 0x0006, 0x0156,\r
++      0x2001, 0x1961, 0x20a9, 0x0009, 0x2003, 0x0000, 0x8000, 0x1f04,\r
++      0x2984, 0x2001, 0x1968, 0x2003, 0x8000, 0x015e, 0x000e, 0x0005,\r
++      0x00f6, 0x2079, 0x0100, 0x9085, 0x0000, 0x0158, 0x7838, 0x9084,\r
++      0xfff9, 0x9085, 0x0004, 0x783a, 0x2009, 0x196e, 0x210c, 0x795a,\r
++      0x0050, 0x7838, 0x9084, 0xfffb, 0x9085, 0x0006, 0x783a, 0x2009,\r
++      0x196f, 0x210c, 0x795a, 0x00fe, 0x0005, 0x00f6, 0x2079, 0x0100,\r
++      0x9085, 0x0000, 0x0138, 0x7838, 0x9084, 0xfffa, 0x9085, 0x0004,\r
++      0x783a, 0x0030, 0x7838, 0x9084, 0xfffb, 0x9085, 0x0005, 0x783a,\r
++      0x00fe, 0x0005, 0x0006, 0x2001, 0x0100, 0x2004, 0x9082, 0x0007,\r
++      0x000e, 0x0005, 0x0006, 0x2001, 0x0100, 0x2004, 0x9082, 0x0009,\r
++      0x000e, 0x0005, 0x0156, 0x20a9, 0x0064, 0x7820, 0x080c, 0x2a5d,\r
++      0xd09c, 0x1110, 0x1f04, 0x29d5, 0x015e, 0x0005, 0x0126, 0x0016,\r
++      0x0006, 0x2091, 0x8000, 0x7850, 0x9085, 0x0040, 0x7852, 0x7850,\r
++      0x9084, 0xfbcf, 0x7852, 0x080c, 0x2a5d, 0x9085, 0x2000, 0x7852,\r
++      0x000e, 0x2008, 0x9186, 0x0000, 0x1118, 0x783b, 0x0007, 0x0090,\r
++      0x9186, 0x0001, 0x1118, 0x783b, 0x0006, 0x0060, 0x9186, 0x0002,\r
++      0x1118, 0x783b, 0x0005, 0x0030, 0x9186, 0x0003, 0x1118, 0x783b,\r
++      0x0004, 0x0000, 0x0006, 0x1d04, 0x2a0b, 0x080c, 0x80ec, 0x1f04,\r
++      0x2a0b, 0x7850, 0x9085, 0x0400, 0x9084, 0xdfbf, 0x7852, 0x080c,\r
++      0x2a5d, 0x9085, 0x1000, 0x7852, 0x000e, 0x001e, 0x012e, 0x0005,\r
++      0x7850, 0x9084, 0xffcf, 0x7852, 0x0005, 0x0006, 0x0156, 0x00f6,\r
++      0x2079, 0x0100, 0x20a9, 0x000a, 0x7854, 0xd0ac, 0x1130, 0x7820,\r
++      0xd0e4, 0x1140, 0x1f04, 0x2a2f, 0x0028, 0x7854, 0xd08c, 0x1110,\r
++      0x1f04, 0x2a35, 0x00fe, 0x015e, 0x000e, 0x0005, 0x1d04, 0x2a3e,\r
++      0x080c, 0x80ec, 0x1f04, 0x2a3e, 0x0005, 0x0006, 0x2001, 0x196d,\r
++      0x2004, 0x9086, 0x0000, 0x000e, 0x0005, 0x0006, 0x2001, 0x196d,\r
++      0x2004, 0x9086, 0x0001, 0x000e, 0x0005, 0x0006, 0x2001, 0x196d,\r
++      0x2004, 0x9086, 0x0002, 0x000e, 0x0005, 0xa001, 0xa001, 0xa001,\r
++      0xa001, 0xa001, 0x0005, 0x0006, 0x2001, 0x1979, 0x2102, 0x000e,\r
++      0x0005, 0x2009, 0x0171, 0x2104, 0xd0dc, 0x0140, 0x2009, 0x0170,\r
++      0x2104, 0x200b, 0x0080, 0xa001, 0xa001, 0x200a, 0x0005, 0x0036,\r
++      0x0046, 0x2001, 0x0141, 0x200c, 0x918c, 0xff00, 0x9186, 0x2000,\r
++      0x0118, 0x9186, 0x0100, 0x1588, 0x2009, 0x00a2, 0x080c, 0x0e2f,\r
++      0x2019, 0x0160, 0x2324, 0x2011, 0x0003, 0x2009, 0x0169, 0x2104,\r
++      0x9084, 0x0007, 0x210c, 0x918c, 0x0007, 0x910e, 0x1db0, 0x9086,\r
++      0x0003, 0x11b8, 0x2304, 0x9402, 0x02a0, 0x1d60, 0x8211, 0x1d68,\r
++      0x84ff, 0x0170, 0x2001, 0x0141, 0x200c, 0x918c, 0xff00, 0x9186,\r
++      0x0100, 0x0130, 0x2009, 0x180c, 0x2104, 0xc0dd, 0x200a, 0x0008,\r
++      0x0419, 0x2009, 0x0000, 0x080c, 0x0e2f, 0x004e, 0x003e, 0x0005,\r
++      0x2001, 0x180c, 0x2004, 0xd0dc, 0x01b0, 0x2001, 0x0160, 0x2004,\r
++      0x9005, 0x0140, 0x2001, 0x0141, 0x2004, 0x9084, 0xff00, 0x9086,\r
++      0x0100, 0x1148, 0x0126, 0x2091, 0x8000, 0x0016, 0x0026, 0x0021,\r
++      0x002e, 0x001e, 0x012e, 0x0005, 0x00c6, 0x2061, 0x0100, 0x6014,\r
++      0x0006, 0x2001, 0x0161, 0x2003, 0x0000, 0x6017, 0x0018, 0xa001,\r
++      0xa001, 0x602f, 0x0008, 0x6104, 0x918e, 0x0010, 0x6106, 0x918e,\r
++      0x0010, 0x6106, 0x6017, 0x0040, 0x04b9, 0x001e, 0x9184, 0x0003,\r
++      0x01e0, 0x0036, 0x0016, 0x2019, 0x0141, 0x6124, 0x918c, 0x0028,\r
++      0x1120, 0x2304, 0x9084, 0x2800, 0x0dc0, 0x001e, 0x919c, 0xffe4,\r
++      0x9184, 0x0001, 0x0118, 0x9385, 0x0009, 0x6016, 0x9184, 0x0002,\r
++      0x0118, 0x9385, 0x0012, 0x6016, 0x003e, 0x2001, 0x180c, 0x200c,\r
++      0xc1dc, 0x2102, 0x00ce, 0x0005, 0x0016, 0x0026, 0x080c, 0x6fcc,\r
++      0x0108, 0xc0bc, 0x2009, 0x0140, 0x2114, 0x9294, 0x0001, 0x9215,\r
++      0x220a, 0x002e, 0x001e, 0x0005, 0x0016, 0x0026, 0x2009, 0x0140,\r
++      0x2114, 0x9294, 0x0001, 0x9285, 0x1000, 0x200a, 0x220a, 0x002e,\r
++      0x001e, 0x0005, 0x0016, 0x0026, 0x2009, 0x0140, 0x2114, 0x9294,\r
++      0x0001, 0x9215, 0x220a, 0x002e, 0x001e, 0x0005, 0x0006, 0x0016,\r
++      0x2009, 0x0140, 0x2104, 0x1128, 0x080c, 0x6fcc, 0x0110, 0xc0bc,\r
++      0x0008, 0xc0bd, 0x200a, 0x001e, 0x000e, 0x0005, 0x2dba, 0x2dba,\r
++      0x2bde, 0x2bde, 0x2bea, 0x2bea, 0x2bf6, 0x2bf6, 0x2c04, 0x2c04,\r
++      0x2c10, 0x2c10, 0x2c1e, 0x2c1e, 0x2c2c, 0x2c2c, 0x2c3e, 0x2c3e,\r
++      0x2c4a, 0x2c4a, 0x2c58, 0x2c58, 0x2c76, 0x2c76, 0x2c96, 0x2c96,\r
++      0x2c66, 0x2c66, 0x2c86, 0x2c86, 0x2ca4, 0x2ca4, 0x2c3c, 0x2c3c,\r
++      0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c,\r
++      0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c,\r
++      0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c,\r
++      0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2cb6, 0x2cb6,\r
++      0x2cc2, 0x2cc2, 0x2cd0, 0x2cd0, 0x2cde, 0x2cde, 0x2cee, 0x2cee,\r
++      0x2cfc, 0x2cfc, 0x2d0c, 0x2d0c, 0x2d1c, 0x2d1c, 0x2d2e, 0x2d2e,\r
++      0x2d3c, 0x2d3c, 0x2d4c, 0x2d4c, 0x2d6e, 0x2d6e, 0x2d90, 0x2d90,\r
++      0x2d5c, 0x2d5c, 0x2d7f, 0x2d7f, 0x2d9f, 0x2d9f, 0x2c3c, 0x2c3c,\r
++      0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c,\r
++      0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c,\r
++      0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c,\r
++      0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c,\r
++      0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c,\r
++      0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x2c3c, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2313,\r
++      0x0804, 0x2db2, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136,\r
++      0x0146, 0x0156, 0x080c, 0x212b, 0x0804, 0x2db2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x212b,\r
++      0x080c, 0x2313, 0x0804, 0x2db2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2166, 0x0804, 0x2db2,\r
++      0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156,\r
++      0x080c, 0x2313, 0x080c, 0x2166, 0x0804, 0x2db2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x212b,\r
++      0x080c, 0x2166, 0x0804, 0x2db2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x212b, 0x080c, 0x2313,\r
++      0x080c, 0x2166, 0x0804, 0x2db2, 0xa001, 0x0cf0, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x130c,\r
++      0x0804, 0x2db2, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136,\r
++      0x0146, 0x0156, 0x080c, 0x2313, 0x080c, 0x130c, 0x0804, 0x2db2,\r
++      0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156,\r
++      0x080c, 0x212b, 0x080c, 0x130c, 0x0804, 0x2db2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2313,\r
++      0x080c, 0x130c, 0x080c, 0x2166, 0x0804, 0x2db2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x212b,\r
++      0x080c, 0x2313, 0x080c, 0x130c, 0x0804, 0x2db2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x212b,\r
++      0x080c, 0x130c, 0x080c, 0x2166, 0x0804, 0x2db2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x130c,\r
++      0x080c, 0x2166, 0x0804, 0x2db2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x212b, 0x080c, 0x2313,\r
++      0x080c, 0x130c, 0x080c, 0x2166, 0x0804, 0x2db2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2766,\r
++      0x0804, 0x2db2, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136,\r
++      0x0146, 0x0156, 0x080c, 0x2766, 0x080c, 0x2313, 0x0804, 0x2db2,\r
++      0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156,\r
++      0x080c, 0x2766, 0x080c, 0x212b, 0x0804, 0x2db2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2766,\r
++      0x080c, 0x212b, 0x080c, 0x2313, 0x0804, 0x2db2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2766,\r
++      0x080c, 0x2166, 0x0804, 0x2db2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2766, 0x080c, 0x2313,\r
++      0x080c, 0x2166, 0x0804, 0x2db2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2766, 0x080c, 0x212b,\r
++      0x080c, 0x2166, 0x0804, 0x2db2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2766, 0x080c, 0x212b,\r
++      0x080c, 0x2313, 0x080c, 0x2166, 0x0804, 0x2db2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2766,\r
++      0x080c, 0x130c, 0x0804, 0x2db2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2766, 0x080c, 0x2313,\r
++      0x080c, 0x130c, 0x0804, 0x2db2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2766, 0x080c, 0x212b,\r
++      0x080c, 0x130c, 0x0804, 0x2db2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2766, 0x080c, 0x2313,\r
++      0x080c, 0x130c, 0x080c, 0x2166, 0x0804, 0x2db2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2766,\r
++      0x080c, 0x212b, 0x080c, 0x2313, 0x080c, 0x130c, 0x0498, 0x0106,\r
++      0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,\r
++      0x2766, 0x080c, 0x212b, 0x080c, 0x130c, 0x080c, 0x2166, 0x0410,\r
++      0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156,\r
++      0x080c, 0x2766, 0x080c, 0x130c, 0x080c, 0x2166, 0x0098, 0x0106,\r
++      0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,\r
++      0x2766, 0x080c, 0x212b, 0x080c, 0x2313, 0x080c, 0x130c, 0x080c,\r
++      0x2166, 0x0000, 0x015e, 0x014e, 0x013e, 0x01de, 0x01ce, 0x012e,\r
++      0x000e, 0x010e, 0x000d, 0x00b6, 0x00c6, 0x0026, 0x0046, 0x9026,\r
++      0x080c, 0x6520, 0x1904, 0x2ec1, 0x72d8, 0x2001, 0x194d, 0x2004,\r
++      0x9005, 0x1110, 0xd29c, 0x0148, 0xd284, 0x1138, 0xd2bc, 0x1904,\r
++      0x2ec1, 0x080c, 0x2ec6, 0x0804, 0x2ec1, 0xd2cc, 0x1904, 0x2ec1,\r
++      0x080c, 0x6fb2, 0x1120, 0x70ab, 0xffff, 0x0804, 0x2ec1, 0xd294,\r
++      0x0120, 0x70ab, 0xffff, 0x0804, 0x2ec1, 0x080c, 0x312e, 0x0160,\r
++      0x080c, 0xc212, 0x0128, 0x2001, 0x1817, 0x203c, 0x0804, 0x2e53,\r
++      0x70ab, 0xffff, 0x0804, 0x2ec1, 0x2001, 0x1817, 0x203c, 0x7290,\r
++      0xd284, 0x0904, 0x2e53, 0xd28c, 0x1904, 0x2e53, 0x0036, 0x73a8,\r
++      0x938e, 0xffff, 0x1110, 0x2019, 0x0001, 0x8314, 0x92e0, 0x1c80,\r
++      0x2c04, 0x938c, 0x0001, 0x0120, 0x9084, 0xff00, 0x8007, 0x0010,\r
++      0x9084, 0x00ff, 0x970e, 0x05a8, 0x908e, 0x0000, 0x0590, 0x908e,\r
++      0x00ff, 0x1150, 0x7230, 0xd284, 0x1588, 0x7290, 0xc28d, 0x7292,\r
++      0x70ab, 0xffff, 0x003e, 0x0478, 0x0026, 0x2011, 0x0010, 0x080c,\r
++      0x6586, 0x002e, 0x0118, 0x70ab, 0xffff, 0x0410, 0x900e, 0x080c,\r
++      0x2663, 0x080c, 0x61de, 0x11c0, 0x080c, 0x6562, 0x1168, 0x7030,\r
++      0xd08c, 0x0130, 0xb800, 0xd0bc, 0x0138, 0x080c, 0x645e, 0x0120,\r
++      0x080c, 0x2edf, 0x0148, 0x0028, 0x080c, 0x301f, 0x080c, 0x2f0b,\r
++      0x0118, 0x8318, 0x0804, 0x2e05, 0x73aa, 0x0010, 0x70ab, 0xffff,\r
++      0x003e, 0x0804, 0x2ec1, 0x9780, 0x3138, 0x203d, 0x97bc, 0xff00,\r
++      0x873f, 0x2041, 0x007e, 0x70a8, 0x9096, 0xffff, 0x1118, 0x900e,\r
++      0x28a8, 0x0050, 0x9812, 0x0220, 0x2008, 0x9802, 0x20a8, 0x0020,\r
++      0x70ab, 0xffff, 0x0804, 0x2ec1, 0x2700, 0x0156, 0x0016, 0x9106,\r
++      0x0904, 0x2eb6, 0x0026, 0x2011, 0x0010, 0x080c, 0x6586, 0x002e,\r
++      0x0120, 0x2009, 0xffff, 0x0804, 0x2ebe, 0xc484, 0x080c, 0x623e,\r
++      0x0138, 0x080c, 0xc212, 0x1590, 0x080c, 0x61de, 0x15b8, 0x0008,\r
++      0xc485, 0x080c, 0x6562, 0x1130, 0x7030, 0xd08c, 0x01f8, 0xb800,\r
++      0xd0bc, 0x11e0, 0x7290, 0xd28c, 0x0180, 0x080c, 0x6562, 0x9082,\r
++      0x0006, 0x02e0, 0xd484, 0x1118, 0x080c, 0x6202, 0x0028, 0x080c,\r
++      0x30aa, 0x01a0, 0x080c, 0x30d5, 0x0088, 0x080c, 0x301f, 0x080c,\r
++      0xc212, 0x1160, 0x080c, 0x2f0b, 0x0188, 0x0040, 0x080c, 0xc212,\r
++      0x1118, 0x080c, 0x30aa, 0x0110, 0x0451, 0x0140, 0x001e, 0x8108,\r
++      0x015e, 0x1f04, 0x2e6c, 0x70ab, 0xffff, 0x0018, 0x001e, 0x015e,\r
++      0x71aa, 0x004e, 0x002e, 0x00ce, 0x00be, 0x0005, 0x00c6, 0x0016,\r
++      0x70ab, 0x0001, 0x2009, 0x007e, 0x080c, 0x61de, 0x1168, 0xb813,\r
++      0x00ff, 0xb817, 0xfffe, 0x080c, 0x301f, 0x04a9, 0x0128, 0x70d8,\r
++      0xc0bd, 0x70da, 0x080c, 0xbf63, 0x001e, 0x00ce, 0x0005, 0x0016,\r
++      0x0076, 0x00d6, 0x00c6, 0x2001, 0x1858, 0x2004, 0x9084, 0x00ff,\r
++      0xb842, 0x080c, 0x9e7f, 0x01d0, 0x2b00, 0x6012, 0x080c, 0xbf8c,\r
++      0x6023, 0x0001, 0x9006, 0x080c, 0x617b, 0x2001, 0x0000, 0x080c,\r
++      0x618f, 0x0126, 0x2091, 0x8000, 0x70a4, 0x8000, 0x70a6, 0x012e,\r
++      0x2009, 0x0004, 0x080c, 0x9eac, 0x9085, 0x0001, 0x00ce, 0x00de,\r
++      0x007e, 0x001e, 0x0005, 0x0016, 0x0076, 0x00d6, 0x00c6, 0x2001,\r
++      0x1858, 0x2004, 0x9084, 0x00ff, 0xb842, 0x080c, 0x9e7f, 0x0548,\r
++      0x2b00, 0x6012, 0xb800, 0xc0c4, 0xb802, 0xb8a0, 0x9086, 0x007e,\r
++      0x0140, 0xb804, 0x9084, 0x00ff, 0x9086, 0x0006, 0x1110, 0x080c,\r
++      0x2fda, 0x080c, 0xbf8c, 0x6023, 0x0001, 0x9006, 0x080c, 0x617b,\r
++      0x2001, 0x0002, 0x080c, 0x618f, 0x0126, 0x2091, 0x8000, 0x70a4,\r
++      0x8000, 0x70a6, 0x012e, 0x2009, 0x0002, 0x080c, 0x9eac, 0x9085,\r
++      0x0001, 0x00ce, 0x00de, 0x007e, 0x001e, 0x0005, 0x00b6, 0x00c6,\r
++      0x0026, 0x2009, 0x0080, 0x080c, 0x61de, 0x1140, 0xb813, 0x00ff,\r
++      0xb817, 0xfffc, 0x0039, 0x0110, 0x70df, 0xffff, 0x002e, 0x00ce,\r
++      0x00be, 0x0005, 0x0016, 0x0076, 0x00d6, 0x00c6, 0x080c, 0x9ddc,\r
++      0x01d0, 0x2b00, 0x6012, 0x080c, 0xbf8c, 0x6023, 0x0001, 0x9006,\r
++      0x080c, 0x617b, 0x2001, 0x0002, 0x080c, 0x618f, 0x0126, 0x2091,\r
++      0x8000, 0x70e0, 0x8000, 0x70e2, 0x012e, 0x2009, 0x0002, 0x080c,\r
++      0x9eac, 0x9085, 0x0001, 0x00ce, 0x00de, 0x007e, 0x001e, 0x0005,\r
++      0x00c6, 0x00d6, 0x0126, 0x2091, 0x8000, 0x2009, 0x007f, 0x080c,\r
++      0x61de, 0x11b8, 0xb813, 0x00ff, 0xb817, 0xfffd, 0xb8bf, 0x0004,\r
++      0x080c, 0x9ddc, 0x0170, 0x2b00, 0x6012, 0x6316, 0x6023, 0x0001,\r
++      0x620a, 0x080c, 0xbf8c, 0x2009, 0x0022, 0x080c, 0x9eac, 0x9085,\r
++      0x0001, 0x012e, 0x00de, 0x00ce, 0x0005, 0x00e6, 0x00c6, 0x0066,\r
++      0x0036, 0x0026, 0x00b6, 0x21f0, 0x080c, 0x857c, 0x080c, 0x850b,\r
++      0x080c, 0x9c8a, 0x080c, 0xad77, 0x3e08, 0x2130, 0x81ff, 0x0120,\r
++      0x20a9, 0x007e, 0x900e, 0x0018, 0x20a9, 0x007f, 0x900e, 0x0016,\r
++      0x080c, 0x623e, 0x1140, 0x9686, 0x0002, 0x1118, 0xb800, 0xd0bc,\r
++      0x1110, 0x080c, 0x5ceb, 0x001e, 0x8108, 0x1f04, 0x2fbf, 0x9686,\r
++      0x0001, 0x190c, 0x3102, 0x00be, 0x002e, 0x003e, 0x006e, 0x00ce,\r
++      0x00ee, 0x0005, 0x00e6, 0x00c6, 0x0046, 0x0036, 0x0026, 0x0016,\r
++      0x00b6, 0x6210, 0x2258, 0xbaa0, 0x0026, 0x2019, 0x0029, 0x080c,\r
++      0x8571, 0x0076, 0x2039, 0x0000, 0x080c, 0x8469, 0x2c08, 0x080c,\r
++      0xd29b, 0x007e, 0x001e, 0xba10, 0xbb14, 0xbcb0, 0x080c, 0x5ceb,\r
++      0xba12, 0xbb16, 0xbcb2, 0x00be, 0x001e, 0x002e, 0x003e, 0x004e,\r
++      0x00ce, 0x00ee, 0x0005, 0x00e6, 0x0006, 0x00b6, 0x6010, 0x2058,\r
++      0xb8a0, 0x00be, 0x9086, 0x0080, 0x0150, 0x2071, 0x1800, 0x70a4,\r
++      0x9005, 0x0110, 0x8001, 0x70a6, 0x000e, 0x00ee, 0x0005, 0x2071,\r
++      0x1800, 0x70e0, 0x9005, 0x0dc0, 0x8001, 0x70e2, 0x0ca8, 0xb800,\r
++      0xc08c, 0xb802, 0x0005, 0x00f6, 0x00e6, 0x00c6, 0x00b6, 0x0046,\r
++      0x0036, 0x0026, 0x0016, 0x0156, 0x2178, 0x81ff, 0x1118, 0x20a9,\r
++      0x0001, 0x0070, 0x080c, 0x5386, 0xd0c4, 0x0138, 0x0030, 0x9006,\r
++      0x2020, 0x2009, 0x002d, 0x080c, 0xd52a, 0x20a9, 0x0800, 0x9016,\r
++      0x0026, 0x928e, 0x007e, 0x0904, 0x3089, 0x928e, 0x007f, 0x0904,\r
++      0x3089, 0x928e, 0x0080, 0x05e8, 0x9288, 0x1000, 0x210c, 0x81ff,\r
++      0x05c0, 0x8fff, 0x1148, 0x2001, 0x195f, 0x0006, 0x2003, 0x0001,\r
++      0x04f1, 0x000e, 0x2003, 0x0000, 0x00b6, 0x00c6, 0x2158, 0x2001,\r
++      0x0001, 0x080c, 0x652c, 0x00ce, 0x00be, 0x2019, 0x0029, 0x080c,\r
++      0x8571, 0x0076, 0x2039, 0x0000, 0x080c, 0x8469, 0x00b6, 0x00c6,\r
++      0x0026, 0x2158, 0xba04, 0x9294, 0x00ff, 0x9286, 0x0006, 0x1118,\r
++      0xb807, 0x0404, 0x0028, 0x2001, 0x0004, 0x8007, 0x9215, 0xba06,\r
++      0x002e, 0x00ce, 0x00be, 0x0016, 0x2c08, 0x080c, 0xd29b, 0x001e,\r
++      0x007e, 0x002e, 0x8210, 0x1f04, 0x3040, 0x015e, 0x001e, 0x002e,\r
++      0x003e, 0x004e, 0x00be, 0x00ce, 0x00ee, 0x00fe, 0x0005, 0x0046,\r
++      0x0026, 0x0016, 0x080c, 0x5386, 0xd0c4, 0x0140, 0xd0a4, 0x0130,\r
++      0x9006, 0x2220, 0x2009, 0x0029, 0x080c, 0xd52a, 0x001e, 0x002e,\r
++      0x004e, 0x0005, 0x0016, 0x0026, 0x0036, 0x00c6, 0x7290, 0x82ff,\r
++      0x01e8, 0x080c, 0x655a, 0x11d0, 0x2100, 0x080c, 0x2696, 0x81ff,\r
++      0x01b8, 0x2019, 0x0001, 0x8314, 0x92e0, 0x1c80, 0x2c04, 0xd384,\r
++      0x0120, 0x9084, 0xff00, 0x8007, 0x0010, 0x9084, 0x00ff, 0x9116,\r
++      0x0138, 0x9096, 0x00ff, 0x0110, 0x8318, 0x0c68, 0x9085, 0x0001,\r
++      0x00ce, 0x003e, 0x002e, 0x001e, 0x0005, 0x0016, 0x00c6, 0x0126,\r
++      0x2091, 0x8000, 0x0036, 0x2019, 0x0029, 0x00a9, 0x003e, 0x9180,\r
++      0x1000, 0x2004, 0x9065, 0x0158, 0x0016, 0x00c6, 0x2061, 0x1a80,\r
++      0x001e, 0x6112, 0x080c, 0x2fda, 0x001e, 0x080c, 0x6202, 0x012e,\r
++      0x00ce, 0x001e, 0x0005, 0x0016, 0x0026, 0x2110, 0x080c, 0x9926,\r
++      0x080c, 0xd7e2, 0x002e, 0x001e, 0x0005, 0x2001, 0x1836, 0x2004,\r
++      0xd0cc, 0x0005, 0x00c6, 0x00b6, 0x080c, 0x6fb2, 0x1118, 0x20a9,\r
++      0x0800, 0x0010, 0x20a9, 0x0782, 0x080c, 0x6fb2, 0x1110, 0x900e,\r
++      0x0010, 0x2009, 0x007e, 0x9180, 0x1000, 0x2004, 0x905d, 0x0130,\r
++      0x86ff, 0x0110, 0xb800, 0xd0bc, 0x090c, 0x6202, 0x8108, 0x1f04,\r
++      0x3113, 0x2061, 0x1800, 0x607b, 0x0000, 0x607c, 0x9084, 0x00ff,\r
++      0x607e, 0x60af, 0x0000, 0x00be, 0x00ce, 0x0005, 0x2001, 0x1875,\r
++      0x2004, 0xd0bc, 0x0005, 0x2011, 0x1854, 0x2214, 0xd2ec, 0x0005,\r
++      0x7eef, 0x7de8, 0x7ce4, 0x80e2, 0x7be1, 0x80e0, 0x80dc, 0x80da,\r
++      0x7ad9, 0x80d6, 0x80d5, 0x80d4, 0x80d3, 0x80d2, 0x80d1, 0x79ce,\r
++      0x78cd, 0x80cc, 0x80cb, 0x80ca, 0x80c9, 0x80c7, 0x80c6, 0x77c5,\r
++      0x76c3, 0x80bc, 0x80ba, 0x75b9, 0x80b6, 0x74b5, 0x73b4, 0x72b3,\r
++      0x80b2, 0x80b1, 0x80ae, 0x71ad, 0x80ac, 0x70ab, 0x6faa, 0x6ea9,\r
++      0x80a7, 0x6da6, 0x6ca5, 0x6ba3, 0x6a9f, 0x699e, 0x689d, 0x809b,\r
++      0x8098, 0x6797, 0x6690, 0x658f, 0x6488, 0x6384, 0x6282, 0x8081,\r
++      0x8080, 0x617c, 0x607a, 0x8079, 0x5f76, 0x8075, 0x8074, 0x8073,\r
++      0x8072, 0x8071, 0x806e, 0x5e6d, 0x806c, 0x5d6b, 0x5c6a, 0x5b69,\r
++      0x8067, 0x5a66, 0x5965, 0x5863, 0x575c, 0x565a, 0x5559, 0x8056,\r
++      0x8055, 0x5454, 0x5353, 0x5252, 0x5151, 0x504e, 0x4f4d, 0x804c,\r
++      0x804b, 0x4e4a, 0x4d49, 0x8047, 0x4c46, 0x8045, 0x8043, 0x803c,\r
++      0x803a, 0x8039, 0x8036, 0x4b35, 0x8034, 0x4a33, 0x4932, 0x4831,\r
++      0x802e, 0x472d, 0x462c, 0x452b, 0x442a, 0x4329, 0x4227, 0x8026,\r
++      0x8025, 0x4123, 0x401f, 0x3f1e, 0x3e1d, 0x3d1b, 0x3c18, 0x8017,\r
++      0x8010, 0x3b0f, 0x3a08, 0x8004, 0x3902, 0x8001, 0x8000, 0x8000,\r
++      0x3800, 0x3700, 0x3600, 0x8000, 0x3500, 0x8000, 0x8000, 0x8000,\r
++      0x3400, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x3300,\r
++      0x3200, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x3100,\r
++      0x3000, 0x8000, 0x8000, 0x2f00, 0x8000, 0x2e00, 0x2d00, 0x2c00,\r
++      0x8000, 0x8000, 0x8000, 0x2b00, 0x8000, 0x2a00, 0x2900, 0x2800,\r
++      0x8000, 0x2700, 0x2600, 0x2500, 0x2400, 0x2300, 0x2200, 0x8000,\r
++      0x8000, 0x2100, 0x2000, 0x1f00, 0x1e00, 0x1d00, 0x1c00, 0x8000,\r
++      0x8000, 0x1b00, 0x1a00, 0x8000, 0x1900, 0x8000, 0x8000, 0x8000,\r
++      0x8000, 0x8000, 0x8000, 0x1800, 0x8000, 0x1700, 0x1600, 0x1500,\r
++      0x8000, 0x1400, 0x1300, 0x1200, 0x1100, 0x1000, 0x0f00, 0x8000,\r
++      0x8000, 0x0e00, 0x0d00, 0x0c00, 0x0b00, 0x0a00, 0x0900, 0x8000,\r
++      0x8000, 0x0800, 0x0700, 0x8000, 0x0600, 0x8000, 0x8000, 0x8000,\r
++      0x0500, 0x0400, 0x0300, 0x8000, 0x0200, 0x8000, 0x8000, 0x8000,\r
++      0x0100, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000,\r
++      0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000,\r
++      0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000,\r
++      0x2071, 0x1894, 0x7003, 0x0002, 0x9006, 0x7016, 0x701a, 0x704a,\r
++      0x704e, 0x700e, 0x7042, 0x7046, 0x703b, 0x18b0, 0x703f, 0x18b0,\r
++      0x7007, 0x0001, 0x080c, 0x1004, 0x090c, 0x0db4, 0x2900, 0x706a,\r
++      0xa867, 0x0002, 0xa8ab, 0xdcb0, 0x080c, 0x1004, 0x090c, 0x0db4,\r
++      0x2900, 0x706e, 0xa867, 0x0002, 0xa8ab, 0xdcb0, 0x0005, 0x2071,\r
++      0x1894, 0x7004, 0x0002, 0x3267, 0x3268, 0x327b, 0x328f, 0x0005,\r
++      0x1004, 0x3278, 0x0e04, 0x3278, 0x2079, 0x0000, 0x0126, 0x2091,\r
++      0x8000, 0x700c, 0x9005, 0x1128, 0x700f, 0x0001, 0x012e, 0x0468,\r
++      0x0005, 0x012e, 0x0ce8, 0x2079, 0x0000, 0x2061, 0x18ae, 0x2c4c,\r
++      0xa86c, 0x908e, 0x0100, 0x0128, 0x9086, 0x0200, 0x0904, 0x3363,\r
++      0x0005, 0x7018, 0x2048, 0x2061, 0x1800, 0x701c, 0x0807, 0x7014,\r
++      0x2048, 0xa864, 0x9094, 0x00ff, 0x9296, 0x0029, 0x1120, 0xaa78,\r
++      0xd2fc, 0x0128, 0x0005, 0x9086, 0x0103, 0x0108, 0x0005, 0x2079,\r
++      0x0000, 0x2061, 0x1800, 0x701c, 0x0807, 0x2061, 0x1800, 0x7880,\r
++      0x908a, 0x0040, 0x1210, 0x61cc, 0x0042, 0x2100, 0x908a, 0x003f,\r
++      0x1a04, 0x3360, 0x61cc, 0x0804, 0x32f5, 0x3337, 0x336f, 0x3379,\r
++      0x337d, 0x3387, 0x338d, 0x3391, 0x33a1, 0x33a4, 0x33ae, 0x33b3,\r
++      0x33b8, 0x33c3, 0x33ce, 0x33dd, 0x33ec, 0x33fa, 0x3411, 0x342c,\r
++      0x3360, 0x34d5, 0x3513, 0x35b9, 0x35ca, 0x35ed, 0x3360, 0x3360,\r
++      0x3360, 0x3625, 0x3641, 0x364a, 0x3679, 0x367f, 0x3360, 0x36c5,\r
++      0x3360, 0x3360, 0x3360, 0x3360, 0x3360, 0x36d0, 0x36d9, 0x36e1,\r
++      0x36e3, 0x3360, 0x3360, 0x3360, 0x3360, 0x3360, 0x3360, 0x370f,\r
++      0x3360, 0x3360, 0x3360, 0x3360, 0x3360, 0x372c, 0x3787, 0x3360,\r
++      0x3360, 0x3360, 0x3360, 0x3360, 0x3360, 0x0002, 0x37b1, 0x37b4,\r
++      0x3813, 0x382c, 0x385c, 0x3afa, 0x3360, 0x4f5f, 0x3360, 0x3360,\r
++      0x3360, 0x3360, 0x3360, 0x3360, 0x3360, 0x3360, 0x33ae, 0x33b3,\r
++      0x401b, 0x53aa, 0x4031, 0x4fee, 0x503f, 0x5142, 0x3360, 0x51a4,\r
++      0x51e0, 0x5211, 0x5315, 0x523e, 0x5295, 0x3360, 0x4035, 0x41d6,\r
++      0x41ec, 0x4211, 0x4276, 0x42ea, 0x430a, 0x4381, 0x43dd, 0x4439,\r
++      0x443c, 0x4461, 0x4501, 0x4567, 0x456f, 0x46a1, 0x4803, 0x4837,\r
++      0x4a81, 0x3360, 0x4a9f, 0x4b62, 0x4c38, 0x3360, 0x3360, 0x3360,\r
++      0x3360, 0x4c9e, 0x4cb9, 0x456f, 0x4eff, 0x714c, 0x0000, 0x2021,\r
++      0x4000, 0x080c, 0x48b5, 0x0126, 0x2091, 0x8000, 0x0e04, 0x3341,\r
++      0x0010, 0x012e, 0x0cc0, 0x7c36, 0x9486, 0x4000, 0x0118, 0x7833,\r
++      0x0011, 0x0010, 0x7833, 0x0010, 0x7c82, 0x7986, 0x7a8a, 0x7b8e,\r
++      0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x1187,\r
++      0x7007, 0x0001, 0x2091, 0x5000, 0x700f, 0x0000, 0x012e, 0x0005,\r
++      0x2021, 0x4001, 0x08b0, 0x2021, 0x4002, 0x0898, 0x2021, 0x4003,\r
++      0x0880, 0x2021, 0x4005, 0x0868, 0x2021, 0x4006, 0x0850, 0x2039,\r
++      0x0001, 0x902e, 0x2520, 0x7b88, 0x7a8c, 0x7884, 0x7990, 0x0804,\r
++      0x48c2, 0x7883, 0x0004, 0x7884, 0x0807, 0x2039, 0x0001, 0x902e,\r
++      0x2520, 0x7b88, 0x7a8c, 0x7884, 0x7990, 0x0804, 0x48c5, 0x7984,\r
++      0x7888, 0x2114, 0x200a, 0x0804, 0x3337, 0x7984, 0x2114, 0x0804,\r
++      0x3337, 0x20e1, 0x0000, 0x2099, 0x0021, 0x20e9, 0x0000, 0x20a1,\r
++      0x0021, 0x20a9, 0x001f, 0x4003, 0x7984, 0x7a88, 0x7b8c, 0x0804,\r
++      0x3337, 0x7884, 0x2060, 0x04d8, 0x2009, 0x0003, 0x2011, 0x0002,\r
++      0x2019, 0x001c, 0x789b, 0x0317, 0x0804, 0x3337, 0x2039, 0x0001,\r
++      0x7d98, 0x7c9c, 0x0800, 0x2039, 0x0001, 0x7d98, 0x7c9c, 0x0848,\r
++      0x79a0, 0x9182, 0x0040, 0x0210, 0x0804, 0x336c, 0x2138, 0x7d98,\r
++      0x7c9c, 0x0804, 0x3373, 0x79a0, 0x9182, 0x0040, 0x0210, 0x0804,\r
++      0x336c, 0x2138, 0x7d98, 0x7c9c, 0x0804, 0x3381, 0x79a0, 0x9182,\r
++      0x0040, 0x0210, 0x0804, 0x336c, 0x21e8, 0x7984, 0x7888, 0x20a9,\r
++      0x0001, 0x21a0, 0x4004, 0x0804, 0x3337, 0x2061, 0x0800, 0xe10c,\r
++      0x9006, 0x2c15, 0x9200, 0x8c60, 0x8109, 0x1dd8, 0x2010, 0x9005,\r
++      0x0904, 0x3337, 0x0804, 0x3366, 0x79a0, 0x9182, 0x0040, 0x0210,\r
++      0x0804, 0x336c, 0x21e0, 0x20a9, 0x0001, 0x7984, 0x2198, 0x4012,\r
++      0x0804, 0x3337, 0x2069, 0x1853, 0x7884, 0x7990, 0x911a, 0x1a04,\r
++      0x336c, 0x8019, 0x0904, 0x336c, 0x684a, 0x6942, 0x788c, 0x6852,\r
++      0x7888, 0x6856, 0x9006, 0x685a, 0x685e, 0x080c, 0x72c7, 0x0804,\r
++      0x3337, 0x2069, 0x1853, 0x7884, 0x7994, 0x911a, 0x1a04, 0x336c,\r
++      0x8019, 0x0904, 0x336c, 0x684e, 0x6946, 0x788c, 0x6862, 0x7888,\r
++      0x6866, 0x9006, 0x686a, 0x686e, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0x6664, 0x012e, 0x0804, 0x3337, 0x902e, 0x2520, 0x81ff, 0x0120,\r
++      0x2009, 0x0001, 0x0804, 0x3369, 0x7984, 0x7b88, 0x7a8c, 0x20a9,\r
++      0x0005, 0x20e9, 0x0001, 0x20a1, 0x189c, 0x4101, 0x080c, 0x4879,\r
++      0x1120, 0x2009, 0x0002, 0x0804, 0x3369, 0x2009, 0x0020, 0xa85c,\r
++      0x9080, 0x0019, 0xaf60, 0x080c, 0x48c2, 0x701f, 0x3450, 0x0005,\r
++      0xa864, 0x2008, 0x9084, 0x00ff, 0x9096, 0x0011, 0x0168, 0x9096,\r
++      0x0019, 0x0150, 0x9096, 0x0015, 0x0138, 0x9096, 0x0048, 0x0120,\r
++      0x9096, 0x0029, 0x1904, 0x3369, 0x810f, 0x918c, 0x00ff, 0x0904,\r
++      0x3369, 0x7112, 0x7010, 0x8001, 0x0560, 0x7012, 0x080c, 0x4879,\r
++      0x1120, 0x2009, 0x0002, 0x0804, 0x3369, 0x2009, 0x0020, 0x7068,\r
++      0x2040, 0xa28c, 0xa390, 0xa494, 0xa598, 0x9290, 0x0040, 0x9399,\r
++      0x0000, 0x94a1, 0x0000, 0x95a9, 0x0000, 0xa85c, 0x9080, 0x0019,\r
++      0xaf60, 0x080c, 0x48c2, 0x701f, 0x348e, 0x0005, 0xa864, 0x9084,\r
++      0x00ff, 0x9096, 0x0002, 0x0120, 0x9096, 0x000a, 0x1904, 0x3369,\r
++      0x0888, 0x7014, 0x2048, 0xa868, 0xc0fd, 0xa86a, 0xa864, 0x9084,\r
++      0x00ff, 0x9096, 0x0029, 0x1160, 0xc2fd, 0xaa7a, 0x080c, 0x5ddd,\r
++      0x0150, 0x0126, 0x2091, 0x8000, 0xa87a, 0xa982, 0x012e, 0x0050,\r
++      0x080c, 0x60f4, 0x1128, 0x7007, 0x0003, 0x701f, 0x34ba, 0x0005,\r
++      0x080c, 0x6ac6, 0x0126, 0x2091, 0x8000, 0x20a9, 0x0005, 0x20e1,\r
++      0x0001, 0x2099, 0x189c, 0x400a, 0x2100, 0x9210, 0x9399, 0x0000,\r
++      0x94a1, 0x0000, 0x95a9, 0x0000, 0xa85c, 0x9080, 0x0019, 0x2009,\r
++      0x0020, 0x012e, 0xaf60, 0x0804, 0x48c5, 0x2091, 0x8000, 0x7837,\r
++      0x4000, 0x7833, 0x0010, 0x7883, 0x4000, 0x7887, 0x4953, 0x788b,\r
++      0x5020, 0x788f, 0x2020, 0x2009, 0x017f, 0x2104, 0x7892, 0x3f00,\r
++      0x7896, 0x2061, 0x0100, 0x6200, 0x2061, 0x0200, 0x603c, 0x8007,\r
++      0x9205, 0x789a, 0x2009, 0x04fd, 0x2104, 0x789e, 0x2091, 0x5000,\r
++      0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x0180, 0x2001,\r
++      0x19ea, 0x2004, 0x9005, 0x0128, 0x2001, 0x008b, 0x2004, 0xd0fc,\r
++      0x0dd8, 0x2001, 0x008a, 0x2003, 0x0002, 0x2003, 0x1001, 0x2071,\r
++      0x0080, 0x0804, 0x0427, 0x81ff, 0x1904, 0x3369, 0x7984, 0x080c,\r
++      0x623e, 0x1904, 0x336c, 0x7e98, 0x9684, 0x3fff, 0x9082, 0x4000,\r
++      0x1a04, 0x336c, 0x7c88, 0x7d8c, 0x080c, 0x63a1, 0x080c, 0x6370,\r
++      0x0000, 0x1518, 0x2061, 0x1cd0, 0x0126, 0x2091, 0x8000, 0x6000,\r
++      0x9086, 0x0000, 0x0148, 0x6014, 0x904d, 0x0130, 0xa86c, 0x9406,\r
++      0x1118, 0xa870, 0x9506, 0x0150, 0x012e, 0x9ce0, 0x0018, 0x2001,\r
++      0x1819, 0x2004, 0x9c02, 0x1a04, 0x3369, 0x0c30, 0x080c, 0xb74a,\r
++      0x012e, 0x0904, 0x3369, 0x0804, 0x3337, 0x900e, 0x2001, 0x0005,\r
++      0x080c, 0x6ac6, 0x0126, 0x2091, 0x8000, 0x080c, 0xbe0c, 0x080c,\r
++      0x688c, 0x012e, 0x0804, 0x3337, 0x00a6, 0x2950, 0xb198, 0x080c,\r
++      0x623e, 0x1904, 0x35a6, 0xb6a4, 0x9684, 0x3fff, 0x9082, 0x4000,\r
++      0x16e8, 0xb49c, 0xb5a0, 0x080c, 0x63a1, 0x080c, 0x6370, 0x1520,\r
++      0x2061, 0x1cd0, 0x0126, 0x2091, 0x8000, 0x6000, 0x9086, 0x0000,\r
++      0x0148, 0x6014, 0x904d, 0x0130, 0xa86c, 0x9406, 0x1118, 0xa870,\r
++      0x9506, 0x0158, 0x012e, 0x9ce0, 0x0018, 0x2001, 0x1819, 0x2004,\r
++      0x9c02, 0x2009, 0x000d, 0x12b0, 0x0c28, 0x080c, 0xb74a, 0x012e,\r
++      0x2009, 0x0003, 0x0178, 0x00e0, 0x900e, 0x2001, 0x0005, 0x080c,\r
++      0x6ac6, 0x0126, 0x2091, 0x8000, 0x080c, 0xbe0c, 0x080c, 0x687f,\r
++      0x012e, 0x0070, 0xb097, 0x4005, 0xb19a, 0x0010, 0xb097, 0x4006,\r
++      0x900e, 0x9085, 0x0001, 0x2001, 0x0030, 0x2a48, 0x00ae, 0x0005,\r
++      0xb097, 0x4000, 0x9006, 0x918d, 0x0001, 0x2008, 0x2a48, 0x00ae,\r
++      0x0005, 0x81ff, 0x1904, 0x3369, 0x080c, 0x4890, 0x0904, 0x336c,\r
++      0x080c, 0x6305, 0x0904, 0x3369, 0x080c, 0x63a7, 0x0904, 0x3369,\r
++      0x0804, 0x4301, 0x81ff, 0x1904, 0x3369, 0x080c, 0x48ac, 0x0904,\r
++      0x336c, 0x080c, 0x6435, 0x0904, 0x3369, 0x2019, 0x0005, 0x79a8,\r
++      0x080c, 0x63c2, 0x0904, 0x3369, 0x7888, 0x908a, 0x1000, 0x1a04,\r
++      0x336c, 0x8003, 0x800b, 0x810b, 0x9108, 0x080c, 0x8046, 0x7984,\r
++      0xd184, 0x1904, 0x3337, 0x0804, 0x4301, 0x0126, 0x2091, 0x8000,\r
++      0x81ff, 0x0118, 0x2009, 0x0001, 0x0450, 0x2029, 0x07ff, 0x6458,\r
++      0x2400, 0x9506, 0x01f8, 0x2508, 0x080c, 0x623e, 0x11d8, 0x080c,\r
++      0x6435, 0x1128, 0x2009, 0x0002, 0x62bc, 0x2518, 0x00c0, 0x2019,\r
++      0x0004, 0x900e, 0x080c, 0x63c2, 0x1118, 0x2009, 0x0006, 0x0078,\r
++      0x7884, 0x908a, 0x1000, 0x1270, 0x8003, 0x800b, 0x810b, 0x9108,\r
++      0x080c, 0x8046, 0x8529, 0x1ae0, 0x012e, 0x0804, 0x3337, 0x012e,\r
++      0x0804, 0x3369, 0x012e, 0x0804, 0x336c, 0x080c, 0x4890, 0x0904,\r
++      0x336c, 0x080c, 0x6305, 0x0904, 0x3369, 0xbaa0, 0x2019, 0x0005,\r
++      0x00c6, 0x9066, 0x080c, 0x8571, 0x0076, 0x903e, 0x080c, 0x8469,\r
++      0x900e, 0x080c, 0xd29b, 0x007e, 0x00ce, 0x080c, 0x63a1, 0x0804,\r
++      0x3337, 0x080c, 0x4890, 0x0904, 0x336c, 0x080c, 0x63a1, 0x2208,\r
++      0x0804, 0x3337, 0x0156, 0x00d6, 0x00e6, 0x2069, 0x1906, 0x6810,\r
++      0x6914, 0x910a, 0x1208, 0x900e, 0x6816, 0x9016, 0x901e, 0x20a9,\r
++      0x007e, 0x2069, 0x1000, 0x2d04, 0x905d, 0x0118, 0xb84c, 0x0059,\r
++      0x9210, 0x8d68, 0x1f04, 0x365b, 0x2300, 0x9218, 0x00ee, 0x00de,\r
++      0x015e, 0x0804, 0x3337, 0x00f6, 0x0016, 0x907d, 0x0138, 0x9006,\r
++      0x8000, 0x2f0c, 0x81ff, 0x0110, 0x2178, 0x0cd0, 0x001e, 0x00fe,\r
++      0x0005, 0x2069, 0x1906, 0x6910, 0x62b8, 0x0804, 0x3337, 0x81ff,\r
++      0x0120, 0x2009, 0x0001, 0x0804, 0x3369, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x539a, 0x0128, 0x2009, 0x0007, 0x012e, 0x0804, 0x3369,\r
++      0x012e, 0x6158, 0x9190, 0x3138, 0x2215, 0x9294, 0x00ff, 0x6378,\r
++      0x83ff, 0x0108, 0x627c, 0x67d8, 0x97c4, 0x000a, 0x98c6, 0x000a,\r
++      0x1118, 0x2031, 0x0001, 0x00e8, 0x97c4, 0x0022, 0x98c6, 0x0022,\r
++      0x1118, 0x2031, 0x0003, 0x00a8, 0x97c4, 0x0012, 0x98c6, 0x0012,\r
++      0x1118, 0x2031, 0x0002, 0x0068, 0x080c, 0x6fb2, 0x1118, 0x2031,\r
++      0x0004, 0x0038, 0xd79c, 0x0120, 0x2009, 0x0005, 0x0804, 0x3369,\r
++      0x9036, 0x7e9a, 0x7f9e, 0x0804, 0x3337, 0x6148, 0x624c, 0x2019,\r
++      0x1957, 0x231c, 0x2001, 0x1958, 0x2004, 0x789a, 0x0804, 0x3337,\r
++      0x0126, 0x2091, 0x8000, 0x6138, 0x623c, 0x6340, 0x012e, 0x0804,\r
++      0x3337, 0x080c, 0x48ac, 0x0904, 0x336c, 0xba44, 0xbb38, 0x0804,\r
++      0x3337, 0x080c, 0x0db4, 0x080c, 0x48ac, 0x2110, 0x0904, 0x336c,\r
++      0xb804, 0x908c, 0x00ff, 0x918e, 0x0006, 0x0140, 0x9084, 0xff00,\r
++      0x9086, 0x0600, 0x2009, 0x0009, 0x1904, 0x3369, 0x0126, 0x2091,\r
++      0x8000, 0x2019, 0x0005, 0x00c6, 0x9066, 0x080c, 0x9926, 0x080c,\r
++      0x8571, 0x0076, 0x903e, 0x080c, 0x8469, 0x900e, 0x080c, 0xd29b,\r
++      0x007e, 0x00ce, 0xb807, 0x0407, 0x012e, 0x0804, 0x3337, 0x6148,\r
++      0x624c, 0x7884, 0x604a, 0x7b88, 0x634e, 0x2069, 0x1853, 0x831f,\r
++      0x9305, 0x6816, 0x788c, 0x2069, 0x1957, 0x2d1c, 0x206a, 0x7e98,\r
++      0x9682, 0x0014, 0x1210, 0x2031, 0x07d0, 0x2069, 0x1958, 0x2d04,\r
++      0x266a, 0x789a, 0x0804, 0x3337, 0x0126, 0x2091, 0x8000, 0x6138,\r
++      0x7884, 0x603a, 0x910e, 0xd1b4, 0x190c, 0x0e9b, 0xd0c4, 0x01a8,\r
++      0x00d6, 0x78a8, 0x2009, 0x196e, 0x200a, 0x78ac, 0x2011, 0x196f,\r
++      0x2012, 0x2069, 0x0100, 0x6838, 0x9086, 0x0007, 0x1118, 0x2214,\r
++      0x6a5a, 0x0010, 0x210c, 0x695a, 0x00de, 0x7888, 0x603e, 0x2011,\r
++      0x0114, 0x220c, 0x7888, 0xd08c, 0x0118, 0x918d, 0x0080, 0x0010,\r
++      0x918c, 0xff7f, 0x2112, 0x6140, 0x788c, 0x6042, 0x910e, 0xd1e4,\r
++      0x190c, 0x0eb1, 0x6040, 0xd0cc, 0x0120, 0x78b0, 0x2011, 0x0114,\r
++      0x2012, 0x012e, 0x0804, 0x3337, 0x00f6, 0x2079, 0x1800, 0x7a38,\r
++      0xa898, 0x9084, 0xfebf, 0x9215, 0xa89c, 0x9084, 0xfebf, 0x8002,\r
++      0x9214, 0x7838, 0x9084, 0x0140, 0x9215, 0x7a3a, 0xa897, 0x4000,\r
++      0x900e, 0x9085, 0x0001, 0x2001, 0x0000, 0x00fe, 0x0005, 0x7898,\r
++      0x9005, 0x01a8, 0x7888, 0x9025, 0x0904, 0x336c, 0x788c, 0x902d,\r
++      0x0904, 0x336c, 0x900e, 0x080c, 0x623e, 0x1120, 0xba44, 0xbb38,\r
++      0xbc46, 0xbd3a, 0x9186, 0x07ff, 0x0190, 0x8108, 0x0ca0, 0x080c,\r
++      0x48ac, 0x0904, 0x336c, 0x7888, 0x900d, 0x0904, 0x336c, 0x788c,\r
++      0x9005, 0x0904, 0x336c, 0xba44, 0xb946, 0xbb38, 0xb83a, 0x0804,\r
++      0x3337, 0x2011, 0xbc09, 0x0010, 0x2011, 0xbc05, 0x080c, 0x539a,\r
++      0x1904, 0x3369, 0x00c6, 0x2061, 0x0100, 0x7984, 0x9186, 0x00ff,\r
++      0x1130, 0x2001, 0x1817, 0x2004, 0x9085, 0xff00, 0x0088, 0x9182,\r
++      0x007f, 0x16e0, 0x9188, 0x3138, 0x210d, 0x918c, 0x00ff, 0x2001,\r
++      0x1817, 0x2004, 0x0026, 0x9116, 0x002e, 0x0580, 0x810f, 0x9105,\r
++      0x0126, 0x2091, 0x8000, 0x0006, 0x080c, 0x9ddc, 0x000e, 0x0510,\r
++      0x602e, 0x620a, 0x7984, 0x00b6, 0x080c, 0x61e4, 0x2b08, 0x00be,\r
++      0x1500, 0x6112, 0x6023, 0x0001, 0x080c, 0x4879, 0x01d0, 0x9006,\r
++      0xa866, 0x7007, 0x0003, 0xa832, 0xa868, 0xc0fd, 0xa86a, 0x701f,\r
++      0x380c, 0x2900, 0x6016, 0x2009, 0x0032, 0x080c, 0x9eac, 0x012e,\r
++      0x00ce, 0x0005, 0x012e, 0x00ce, 0x0804, 0x3369, 0x00ce, 0x0804,\r
++      0x336c, 0x080c, 0x9e32, 0x0cb0, 0xa830, 0x9086, 0x0100, 0x0904,\r
++      0x3369, 0x0804, 0x3337, 0x2061, 0x1a41, 0x0126, 0x2091, 0x8000,\r
++      0x6000, 0xd084, 0x0170, 0x6104, 0x6208, 0x2061, 0x1800, 0x6350,\r
++      0x6070, 0x789a, 0x60bc, 0x789e, 0x60b8, 0x78aa, 0x012e, 0x0804,\r
++      0x3337, 0x900e, 0x2110, 0x0c88, 0x81ff, 0x1904, 0x3369, 0x080c,\r
++      0x6fb2, 0x0904, 0x3369, 0x0126, 0x2091, 0x8000, 0x6250, 0x6070,\r
++      0x9202, 0x0248, 0x9085, 0x0001, 0x080c, 0x26cc, 0x080c, 0x55b4,\r
++      0x012e, 0x0804, 0x3337, 0x012e, 0x0804, 0x336c, 0x0006, 0x0016,\r
++      0x00c6, 0x00e6, 0x2001, 0x197a, 0x2070, 0x2061, 0x1853, 0x6008,\r
++      0x2072, 0x900e, 0x2011, 0x1400, 0x080c, 0x8270, 0x7206, 0x00ee,\r
++      0x00ce, 0x001e, 0x000e, 0x0005, 0x0126, 0x2091, 0x8000, 0x81ff,\r
++      0x0128, 0x012e, 0x2021, 0x400b, 0x0804, 0x3339, 0x7884, 0xd0fc,\r
++      0x0148, 0x2001, 0x002a, 0x2004, 0x9082, 0x00e1, 0x0288, 0x012e,\r
++      0x0804, 0x336c, 0x2001, 0x002a, 0x2004, 0x2069, 0x1853, 0x6908,\r
++      0x9102, 0x1230, 0x012e, 0x0804, 0x336c, 0x012e, 0x0804, 0x3369,\r
++      0x080c, 0x9db1, 0x0dd0, 0x7884, 0xd0fc, 0x0904, 0x38d7, 0x00c6,\r
++      0x080c, 0x4879, 0x00ce, 0x0d88, 0xa867, 0x0000, 0x7884, 0xa80a,\r
++      0x7898, 0xa80e, 0x789c, 0xa812, 0x2001, 0x002e, 0x2004, 0xa81a,\r
++      0x2001, 0x002f, 0x2004, 0xa81e, 0x2001, 0x0030, 0x2004, 0xa822,\r
++      0x2001, 0x0031, 0x2004, 0xa826, 0x2001, 0x0034, 0x2004, 0xa82a,\r
++      0x2001, 0x0035, 0x2004, 0xa82e, 0x2001, 0x002a, 0x2004, 0x9080,\r
++      0x0003, 0x9084, 0x00fc, 0x8004, 0xa816, 0x080c, 0x3a5d, 0x0928,\r
++      0x7014, 0x2048, 0xad2c, 0xac28, 0xab1c, 0xaa18, 0xa930, 0xa808,\r
++      0xd0b4, 0x1120, 0x2029, 0x0000, 0x2021, 0x0000, 0x8906, 0x8006,\r
++      0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x001b, 0x080c,\r
++      0x48c2, 0x701f, 0x399a, 0x7023, 0x0001, 0x012e, 0x0005, 0x0046,\r
++      0x0086, 0x0096, 0x00a6, 0x00b6, 0x00c6, 0x00d6, 0x00e6, 0x00f6,\r
++      0x080c, 0x3846, 0x2001, 0x1970, 0x2003, 0x0000, 0x2021, 0x000a,\r
++      0x2061, 0x0100, 0x6104, 0x0016, 0x60bb, 0x0000, 0x60bf, 0x32e1,\r
++      0x60bf, 0x0012, 0x080c, 0x3acc, 0x080c, 0x3a8b, 0x00f6, 0x00e6,\r
++      0x0086, 0x2940, 0x2071, 0x1a36, 0x2079, 0x0090, 0x00d6, 0x2069,\r
++      0x0000, 0x6884, 0xd0b4, 0x0140, 0x2001, 0x0035, 0x2004, 0x780e,\r
++      0x2001, 0x0034, 0x2004, 0x780a, 0x00de, 0x2011, 0x0001, 0x080c,\r
++      0x3e5f, 0x008e, 0x00ee, 0x00fe, 0x080c, 0x3d8c, 0x080c, 0x3c91,\r
++      0x05b8, 0x2001, 0x020b, 0x2004, 0x9084, 0x0140, 0x1db8, 0x080c,\r
++      0x3ed3, 0x00f6, 0x2079, 0x0300, 0x78bc, 0x00fe, 0x908c, 0x0070,\r
++      0x1560, 0x2071, 0x0200, 0x7037, 0x0000, 0x7050, 0x9084, 0xff00,\r
++      0x9086, 0x3200, 0x1510, 0x7037, 0x0001, 0x7050, 0x9084, 0xff00,\r
++      0x9086, 0xe100, 0x11d0, 0x7037, 0x0000, 0x7054, 0x7037, 0x0000,\r
++      0x715c, 0x9106, 0x1190, 0x2001, 0x181f, 0x2004, 0x9106, 0x1168,\r
++      0x00c6, 0x2061, 0x0100, 0x6024, 0x9084, 0x1e00, 0x00ce, 0x0138,\r
++      0x080c, 0x3c9b, 0x080c, 0x3a86, 0x0058, 0x080c, 0x3a86, 0x080c,\r
++      0x3df7, 0x080c, 0x3d82, 0x2001, 0x020b, 0x2004, 0xd0e4, 0x0dd8,\r
++      0x2001, 0x032a, 0x2003, 0x0004, 0x2061, 0x0100, 0x6027, 0x0002,\r
++      0x001e, 0x6106, 0x2011, 0x020d, 0x2013, 0x0020, 0x60bb, 0x0000,\r
++      0x60bf, 0x0108, 0x60bf, 0x0012, 0x2001, 0x0004, 0x200c, 0x918c,\r
++      0xfffd, 0x2102, 0x080c, 0x129f, 0x2009, 0x0028, 0x080c, 0x2268,\r
++      0x2001, 0x0227, 0x200c, 0x2102, 0x00fe, 0x00ee, 0x00de, 0x00ce,\r
++      0x00be, 0x00ae, 0x009e, 0x008e, 0x004e, 0x2001, 0x1970, 0x2004,\r
++      0x9005, 0x1118, 0x012e, 0x0804, 0x3337, 0x012e, 0x2021, 0x400c,\r
++      0x0804, 0x3339, 0x0016, 0x0026, 0x0036, 0x0046, 0x0056, 0x0076,\r
++      0x0086, 0x0096, 0x00d6, 0x0156, 0x7014, 0x2048, 0x7020, 0x20a8,\r
++      0x8000, 0x7022, 0xa804, 0x9005, 0x0904, 0x39f6, 0x2048, 0x1f04,\r
++      0x39aa, 0x7068, 0x2040, 0xa28c, 0xa390, 0xa494, 0xa598, 0xa930,\r
++      0xa808, 0xd0b4, 0x1120, 0x2029, 0x0000, 0x2021, 0x0000, 0x0096,\r
++      0x7014, 0x2048, 0xa864, 0x009e, 0x9086, 0x0103, 0x0170, 0x8906,\r
++      0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x001b,\r
++      0x080c, 0x48c2, 0x701f, 0x399a, 0x00b0, 0x8906, 0x8006, 0x8007,\r
++      0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x001b, 0x21a8, 0x27e0,\r
++      0x2098, 0x27e8, 0x20a0, 0x0006, 0x080c, 0x0f68, 0x000e, 0x080c,\r
++      0x48c5, 0x701f, 0x399a, 0x015e, 0x00de, 0x009e, 0x008e, 0x007e,\r
++      0x005e, 0x004e, 0x003e, 0x002e, 0x001e, 0x0005, 0x7014, 0x2048,\r
++      0xa864, 0x9086, 0x0103, 0x1118, 0x701f, 0x3a5b, 0x0450, 0x7014,\r
++      0x2048, 0xa868, 0xc0fd, 0xa86a, 0x2009, 0x007f, 0x080c, 0x61de,\r
++      0x0110, 0x9006, 0x0030, 0xb813, 0x00ff, 0xb817, 0xfffd, 0x080c,\r
++      0xbfdb, 0x015e, 0x00de, 0x009e, 0x008e, 0x007e, 0x005e, 0x004e,\r
++      0x003e, 0x002e, 0x001e, 0x0904, 0x3369, 0x0016, 0x0026, 0x0036,\r
++      0x0046, 0x0056, 0x0076, 0x0086, 0x0096, 0x00d6, 0x0156, 0x701f,\r
++      0x3a2d, 0x7007, 0x0003, 0x0804, 0x39eb, 0xa830, 0x9086, 0x0100,\r
++      0x2021, 0x400c, 0x0904, 0x3339, 0x0076, 0xad10, 0xac0c, 0xab24,\r
++      0xaa20, 0xa930, 0xa808, 0xd0b4, 0x1120, 0x2029, 0x0000, 0x2021,\r
++      0x0000, 0x8906, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0,\r
++      0x9080, 0x001b, 0x21a8, 0x27e0, 0x2098, 0x27e8, 0x20a0, 0x0006,\r
++      0x080c, 0x0f68, 0x000e, 0x080c, 0x48c5, 0x007e, 0x701f, 0x399a,\r
++      0x7023, 0x0001, 0x0005, 0x0804, 0x3337, 0x0156, 0x00c6, 0xa814,\r
++      0x908a, 0x001e, 0x0218, 0xa833, 0x001e, 0x0010, 0xa832, 0x0078,\r
++      0x81ff, 0x0168, 0x0016, 0x080c, 0x4879, 0x001e, 0x0130, 0xa800,\r
++      0x2040, 0xa008, 0xa80a, 0x2100, 0x0c58, 0x9006, 0x0010, 0x9085,\r
++      0x0001, 0x00ce, 0x015e, 0x0005, 0x0006, 0x00f6, 0x2079, 0x0000,\r
++      0x7880, 0x9086, 0x0044, 0x00fe, 0x000e, 0x0005, 0x2001, 0x1970,\r
++      0x2003, 0x0001, 0x0005, 0x00f6, 0x00e6, 0x00c6, 0x2061, 0x0200,\r
++      0x2001, 0x197b, 0x2004, 0x601a, 0x2061, 0x0100, 0x2001, 0x197a,\r
++      0x2004, 0x60ce, 0x6104, 0xc1ac, 0x6106, 0x080c, 0x4879, 0xa813,\r
++      0x0019, 0xa817, 0x0001, 0x2900, 0xa85a, 0x2001, 0x002e, 0x2004,\r
++      0xa866, 0x2001, 0x002f, 0x2004, 0xa86a, 0x2061, 0x0090, 0x2079,\r
++      0x0100, 0x2001, 0x197a, 0x2004, 0x6036, 0x2009, 0x0040, 0x080c,\r
++      0x2268, 0x2001, 0x002a, 0x2004, 0x9084, 0xfff8, 0xa86e, 0x601a,\r
++      0xa873, 0x0000, 0x601f, 0x0000, 0x78ca, 0x9006, 0x600a, 0x600e,\r
++      0x00ce, 0x00ee, 0x00fe, 0x0005, 0x00e6, 0x080c, 0x4879, 0x2940,\r
++      0xa013, 0x0019, 0xa017, 0x0001, 0x2800, 0xa05a, 0x2001, 0x0030,\r
++      0x2004, 0xa866, 0x2001, 0x0031, 0x2004, 0xa86a, 0x2001, 0x002a,\r
++      0x2004, 0x9084, 0xfff8, 0xa86e, 0xa873, 0x0000, 0x2001, 0x032a,\r
++      0x2003, 0x0004, 0x2001, 0x0300, 0x2003, 0x0000, 0x2001, 0x020d,\r
++      0x2003, 0x0000, 0x2001, 0x0004, 0x200c, 0x918d, 0x0002, 0x2102,\r
++      0x00ee, 0x0005, 0x0126, 0x2091, 0x8000, 0x81ff, 0x0148, 0x080c,\r
++      0x2a55, 0x1130, 0x9006, 0x080c, 0x29ad, 0x9006, 0x080c, 0x2990,\r
++      0x7884, 0x9084, 0x0007, 0x0002, 0x3b17, 0x3b20, 0x3b29, 0x3b14,\r
++      0x3b14, 0x3b14, 0x3b14, 0x3b14, 0x012e, 0x0804, 0x336c, 0x2009,\r
++      0x0114, 0x2104, 0x9085, 0x0800, 0x200a, 0x080c, 0x3ce5, 0x00c0,\r
++      0x2009, 0x0114, 0x2104, 0x9085, 0x4000, 0x200a, 0x080c, 0x3ce5,\r
++      0x0078, 0x080c, 0x6fb2, 0x1128, 0x012e, 0x2009, 0x0016, 0x0804,\r
++      0x3369, 0x81ff, 0x0128, 0x012e, 0x2021, 0x400b, 0x0804, 0x3339,\r
++      0x0086, 0x0096, 0x00a6, 0x00b6, 0x00c6, 0x00d6, 0x00e6, 0x00f6,\r
++      0x080c, 0x3846, 0x2009, 0x0101, 0x210c, 0x0016, 0x7ec8, 0x7dcc,\r
++      0x9006, 0x2068, 0x2060, 0x2058, 0x080c, 0x3fae, 0x080c, 0x3efe,\r
++      0x903e, 0x2720, 0x00f6, 0x00e6, 0x0086, 0x2940, 0x2071, 0x1a36,\r
++      0x2079, 0x0090, 0x00d6, 0x2069, 0x0000, 0x6884, 0xd0b4, 0x0120,\r
++      0x68d4, 0x780e, 0x68d0, 0x780a, 0x00de, 0x2011, 0x0001, 0x080c,\r
++      0x3e5f, 0x080c, 0x2a5d, 0x080c, 0x2a5d, 0x080c, 0x2a5d, 0x080c,\r
++      0x2a5d, 0x080c, 0x3e5f, 0x008e, 0x00ee, 0x00fe, 0x080c, 0x3d8c,\r
++      0x2009, 0x9c40, 0x8109, 0x11b0, 0x080c, 0x3c9b, 0x2001, 0x0004,\r
++      0x200c, 0x918c, 0xfffd, 0x2102, 0x001e, 0x00fe, 0x00ee, 0x00de,\r
++      0x00ce, 0x00be, 0x00ae, 0x009e, 0x008e, 0x2009, 0x0017, 0x080c,\r
++      0x3369, 0x0cf8, 0x2001, 0x020b, 0x2004, 0x9084, 0x0140, 0x1d10,\r
++      0x00f6, 0x2079, 0x0000, 0x7884, 0x00fe, 0xd0bc, 0x0178, 0x2001,\r
++      0x0201, 0x200c, 0x81ff, 0x0150, 0x080c, 0x3d6a, 0x2d00, 0x9c05,\r
++      0x9b05, 0x0120, 0x080c, 0x3c9b, 0x0804, 0x3c48, 0x080c, 0x3ed3,\r
++      0x080c, 0x3df7, 0x080c, 0x3d4d, 0x080c, 0x3d82, 0x00f6, 0x2079,\r
++      0x0100, 0x7824, 0xd0ac, 0x0130, 0x8b58, 0x080c, 0x3c9b, 0x00fe,\r
++      0x0804, 0x3c48, 0x00fe, 0x080c, 0x3c91, 0x1150, 0x8d68, 0x2001,\r
++      0x0032, 0x2602, 0x2001, 0x0033, 0x2502, 0x080c, 0x3c9b, 0x0080,\r
++      0x87ff, 0x0138, 0x2001, 0x0201, 0x2004, 0x9005, 0x1908, 0x8739,\r
++      0x0038, 0x2001, 0x1a33, 0x2004, 0x9086, 0x0000, 0x1904, 0x3b98,\r
++      0x2001, 0x032f, 0x2003, 0x00f6, 0x8631, 0x1208, 0x8529, 0x2500,\r
++      0x9605, 0x0904, 0x3c48, 0x7884, 0xd0bc, 0x0128, 0x2d00, 0x9c05,\r
++      0x9b05, 0x1904, 0x3c48, 0xa013, 0x0019, 0x2001, 0x032a, 0x2003,\r
++      0x0004, 0x7884, 0xd0ac, 0x1148, 0x2001, 0x1a33, 0x2003, 0x0003,\r
++      0x2001, 0x032a, 0x2003, 0x0009, 0x0030, 0xa017, 0x0001, 0x78b4,\r
++      0x9005, 0x0108, 0xa016, 0x2800, 0xa05a, 0x2009, 0x0040, 0x080c,\r
++      0x2268, 0x2900, 0xa85a, 0xa813, 0x0019, 0x7884, 0xd0a4, 0x1180,\r
++      0xa817, 0x0000, 0x00c6, 0x20a9, 0x0004, 0x2061, 0x0090, 0x602b,\r
++      0x0008, 0x2001, 0x0203, 0x2004, 0x1f04, 0x3c1f, 0x00ce, 0x0030,\r
++      0xa817, 0x0001, 0x78b0, 0x9005, 0x0108, 0xa816, 0x00f6, 0x00c6,\r
++      0x2079, 0x0100, 0x2061, 0x0090, 0x7827, 0x0002, 0x2001, 0x002a,\r
++      0x2004, 0x9084, 0xfff8, 0x601a, 0x0006, 0x2001, 0x002b, 0x2004,\r
++      0x601e, 0x78c6, 0x000e, 0x78ca, 0x00ce, 0x00fe, 0x0804, 0x3b52,\r
++      0x001e, 0x00c6, 0x2001, 0x032a, 0x2003, 0x0004, 0x2061, 0x0100,\r
++      0x6027, 0x0002, 0x6106, 0x2011, 0x020d, 0x2013, 0x0020, 0x2001,\r
++      0x0004, 0x200c, 0x918c, 0xfffd, 0x2102, 0x080c, 0x129f, 0x7884,\r
++      0x9084, 0x0003, 0x9086, 0x0002, 0x01a0, 0x2009, 0x0028, 0x080c,\r
++      0x2268, 0x2001, 0x0227, 0x200c, 0x2102, 0x6050, 0x9084, 0xb7ef,\r
++      0x6052, 0x602f, 0x0000, 0x604b, 0xf7f7, 0x6043, 0x0090, 0x6043,\r
++      0x0010, 0x00ce, 0x2d08, 0x2c10, 0x2b18, 0x2b00, 0x9c05, 0x9d05,\r
++      0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be, 0x00ae, 0x009e, 0x008e,\r
++      0x1118, 0x012e, 0x0804, 0x3337, 0x012e, 0x2021, 0x400c, 0x0804,\r
++      0x3339, 0x9085, 0x0001, 0x1d04, 0x3c9a, 0x2091, 0x6000, 0x8420,\r
++      0x9486, 0x0064, 0x0005, 0x2001, 0x0105, 0x2003, 0x0010, 0x2001,\r
++      0x032a, 0x2003, 0x0004, 0x2001, 0x1a33, 0x2003, 0x0000, 0x0071,\r
++      0x2009, 0x0048, 0x080c, 0x2268, 0x2001, 0x0227, 0x2024, 0x2402,\r
++      0x2001, 0x0109, 0x2003, 0x4000, 0x9026, 0x0005, 0x00f6, 0x00e6,\r
++      0x2071, 0x1a36, 0x7000, 0x9086, 0x0000, 0x0520, 0x2079, 0x0090,\r
++      0x2009, 0x0206, 0x2104, 0x2009, 0x0203, 0x210c, 0x9106, 0x1120,\r
++      0x2009, 0x0040, 0x080c, 0x2268, 0x782c, 0xd0fc, 0x0d88, 0x080c,\r
++      0x3ed3, 0x7000, 0x9086, 0x0000, 0x1d58, 0x782b, 0x0004, 0x782c,\r
++      0xd0ac, 0x1de8, 0x2009, 0x0040, 0x080c, 0x2268, 0x782b, 0x0002,\r
++      0x7003, 0x0000, 0x00ee, 0x00fe, 0x0005, 0x00f6, 0x2079, 0x0100,\r
++      0x2001, 0x1817, 0x200c, 0x7932, 0x7936, 0x080c, 0x26ac, 0x7850,\r
++      0x9084, 0xfbff, 0x9085, 0x0030, 0x7852, 0x2019, 0x01f4, 0x8319,\r
++      0x1df0, 0x9084, 0xffcf, 0x9085, 0x2000, 0x7852, 0x20a9, 0x0046,\r
++      0x1d04, 0x3d00, 0x2091, 0x6000, 0x1f04, 0x3d00, 0x7850, 0x9085,\r
++      0x0400, 0x9084, 0xdfff, 0x7852, 0x2001, 0x0021, 0x2004, 0x9084,\r
++      0x0003, 0x9086, 0x0001, 0x1120, 0x7850, 0x9084, 0xdfff, 0x7852,\r
++      0x784b, 0xf7f7, 0x7843, 0x0090, 0x7843, 0x0010, 0x20a9, 0x0028,\r
++      0xa001, 0x1f04, 0x3d20, 0x7850, 0x9085, 0x1400, 0x7852, 0x2019,\r
++      0x61a8, 0x7854, 0xa001, 0xa001, 0xd08c, 0x1110, 0x8319, 0x1dc8,\r
++      0x7827, 0x0048, 0x7850, 0x9085, 0x0400, 0x7852, 0x7843, 0x0040,\r
++      0x2019, 0x01f4, 0xa001, 0xa001, 0x8319, 0x1de0, 0x2001, 0x0100,\r
++      0x080c, 0x2b14, 0x7827, 0x0020, 0x7843, 0x0000, 0x9006, 0x080c,\r
++      0x2b14, 0x7827, 0x0048, 0x00fe, 0x0005, 0x7884, 0xd0ac, 0x11c8,\r
++      0x00f6, 0x00e6, 0x2071, 0x1a33, 0x2079, 0x0320, 0x2001, 0x0201,\r
++      0x2004, 0x9005, 0x0160, 0x7000, 0x9086, 0x0000, 0x1140, 0x0051,\r
++      0xd0bc, 0x0108, 0x8738, 0x7003, 0x0003, 0x782b, 0x0019, 0x00ee,\r
++      0x00fe, 0x0005, 0x00f6, 0x2079, 0x0300, 0x78bc, 0x00fe, 0x908c,\r
++      0x0070, 0x0178, 0x2009, 0x0032, 0x260a, 0x2009, 0x0033, 0x250a,\r
++      0xd0b4, 0x0108, 0x8c60, 0xd0ac, 0x0108, 0x8d68, 0xd0a4, 0x0108,\r
++      0x8b58, 0x0005, 0x00f6, 0x2079, 0x0200, 0x781c, 0xd084, 0x0110,\r
++      0x7837, 0x0050, 0x00fe, 0x0005, 0x00e6, 0x2071, 0x0100, 0x2001,\r
++      0x197b, 0x2004, 0x70e2, 0x080c, 0x3a7c, 0x1188, 0x2001, 0x181f,\r
++      0x2004, 0x2009, 0x181e, 0x210c, 0x918c, 0x00ff, 0x706e, 0x716a,\r
++      0x7066, 0x918d, 0x3200, 0x7162, 0x7073, 0xe109, 0x0080, 0x702c,\r
++      0x9085, 0x0002, 0x702e, 0x2009, 0x1817, 0x210c, 0x716e, 0x7063,\r
++      0x0100, 0x7166, 0x719e, 0x706b, 0x0000, 0x7073, 0x0809, 0x7077,\r
++      0x0008, 0x7078, 0x9080, 0x0100, 0x707a, 0x7080, 0x8000, 0x7082,\r
++      0x7087, 0xaaaa, 0x9006, 0x708a, 0x708e, 0x707e, 0x70d6, 0x70ab,\r
++      0x0036, 0x70af, 0x95d5, 0x7014, 0x9084, 0x1984, 0x9085, 0x0092,\r
++      0x7016, 0x080c, 0x3ed3, 0x00f6, 0x2071, 0x1a33, 0x2079, 0x0320,\r
++      0x00d6, 0x2069, 0x0000, 0x6884, 0xd0b4, 0x0120, 0x689c, 0x780e,\r
++      0x6898, 0x780a, 0x00de, 0x2009, 0x03e8, 0x8109, 0x1df0, 0x792c,\r
++      0xd1fc, 0x0110, 0x782b, 0x0004, 0x2011, 0x0011, 0x080c, 0x3e5f,\r
++      0x2011, 0x0001, 0x080c, 0x3e5f, 0x00fe, 0x00ee, 0x0005, 0x00f6,\r
++      0x00e6, 0x2071, 0x1a33, 0x2079, 0x0320, 0x792c, 0xd1fc, 0x0904,\r
++      0x3e5c, 0x782b, 0x0002, 0x9026, 0xd19c, 0x1904, 0x3e58, 0x7000,\r
++      0x0002, 0x3e5c, 0x3e0d, 0x3e3d, 0x3e58, 0xd1bc, 0x1170, 0xd1dc,\r
++      0x1190, 0x8001, 0x7002, 0x2011, 0x0001, 0x080c, 0x3e5f, 0x0904,\r
++      0x3e5c, 0x080c, 0x3e5f, 0x0804, 0x3e5c, 0x00f6, 0x2079, 0x0300,\r
++      0x78bf, 0x0000, 0x00fe, 0x7810, 0x7914, 0x782b, 0x0004, 0x7812,\r
++      0x7916, 0x2001, 0x0201, 0x200c, 0x81ff, 0x0de8, 0x080c, 0x3d6a,\r
++      0x2009, 0x0001, 0x00f6, 0x2079, 0x0300, 0x78b8, 0x00fe, 0xd0ec,\r
++      0x0110, 0x2009, 0x0011, 0x792a, 0x00f8, 0x8001, 0x7002, 0x9184,\r
++      0x0880, 0x1140, 0x782c, 0xd0fc, 0x1904, 0x3e01, 0x2011, 0x0001,\r
++      0x00b1, 0x0090, 0xa010, 0x9092, 0x0004, 0x9086, 0x0015, 0x1120,\r
++      0xa000, 0xa05a, 0x2011, 0x0031, 0xa212, 0xd1dc, 0x1960, 0x0828,\r
++      0x782b, 0x0004, 0x7003, 0x0000, 0x00ee, 0x00fe, 0x0005, 0xa014,\r
++      0x9005, 0x0550, 0x8001, 0x0036, 0x0096, 0xa016, 0xa058, 0x2048,\r
++      0xa010, 0x2009, 0x0031, 0x911a, 0x831c, 0x831c, 0x938a, 0x0007,\r
++      0x1a0c, 0x0db4, 0x9398, 0x3e8d, 0x231d, 0x083f, 0x9080, 0x0004,\r
++      0x7a2a, 0x7100, 0x8108, 0x7102, 0x009e, 0x003e, 0x908a, 0x0035,\r
++      0x1140, 0x0096, 0xa058, 0x2048, 0xa804, 0xa05a, 0x2001, 0x0019,\r
++      0x009e, 0xa012, 0x9085, 0x0001, 0x0005, 0x3eca, 0x3ec1, 0x3eb8,\r
++      0x3eaf, 0x3ea6, 0x3e9d, 0x3e94, 0xa964, 0x7902, 0xa968, 0x7906,\r
++      0xa96c, 0x7912, 0xa970, 0x7916, 0x0005, 0xa974, 0x7902, 0xa978,\r
++      0x7906, 0xa97c, 0x7912, 0xa980, 0x7916, 0x0005, 0xa984, 0x7902,\r
++      0xa988, 0x7906, 0xa98c, 0x7912, 0xa990, 0x7916, 0x0005, 0xa994,\r
++      0x7902, 0xa998, 0x7906, 0xa99c, 0x7912, 0xa9a0, 0x7916, 0x0005,\r
++      0xa9a4, 0x7902, 0xa9a8, 0x7906, 0xa9ac, 0x7912, 0xa9b0, 0x7916,\r
++      0x0005, 0xa9b4, 0x7902, 0xa9b8, 0x7906, 0xa9bc, 0x7912, 0xa9c0,\r
++      0x7916, 0x0005, 0xa9c4, 0x7902, 0xa9c8, 0x7906, 0xa9cc, 0x7912,\r
++      0xa9d0, 0x7916, 0x0005, 0x00f6, 0x00e6, 0x0086, 0x2071, 0x1a36,\r
++      0x2079, 0x0090, 0x792c, 0xd1fc, 0x01e8, 0x782b, 0x0002, 0x2940,\r
++      0x9026, 0x7000, 0x0002, 0x3efa, 0x3ee6, 0x3ef1, 0x8001, 0x7002,\r
++      0xd19c, 0x1180, 0x2011, 0x0001, 0x080c, 0x3e5f, 0x190c, 0x3e5f,\r
++      0x0048, 0x8001, 0x7002, 0x782c, 0xd0fc, 0x1d38, 0x2011, 0x0001,\r
++      0x080c, 0x3e5f, 0x008e, 0x00ee, 0x00fe, 0x0005, 0x00f6, 0x00e6,\r
++      0x00c6, 0x0086, 0x2061, 0x0200, 0x2001, 0x197b, 0x2004, 0x601a,\r
++      0x2061, 0x0100, 0x2001, 0x197a, 0x2004, 0x60ce, 0x6104, 0xc1ac,\r
++      0x6106, 0x2001, 0x002c, 0x2004, 0x9005, 0x0520, 0x2038, 0x2001,\r
++      0x002e, 0x2024, 0x2001, 0x002f, 0x201c, 0x080c, 0x4879, 0xa813,\r
++      0x0019, 0xaf16, 0x2900, 0xa85a, 0x978a, 0x0007, 0x0220, 0x2138,\r
++      0x2009, 0x0007, 0x0010, 0x2708, 0x903e, 0x0096, 0xa858, 0x2048,\r
++      0xa85c, 0x9080, 0x0019, 0x009e, 0x080c, 0x3f76, 0x1d68, 0x2900,\r
++      0xa85a, 0x00d0, 0x080c, 0x4879, 0xa813, 0x0019, 0xa817, 0x0001,\r
++      0x2900, 0xa85a, 0x2001, 0x002e, 0x2004, 0xa866, 0x2001, 0x002f,\r
++      0x2004, 0xa86a, 0x2001, 0x002a, 0x2004, 0x9084, 0xfff8, 0xa86e,\r
++      0x2001, 0x002b, 0x2004, 0xa872, 0x2061, 0x0090, 0x2079, 0x0100,\r
++      0x2001, 0x197a, 0x2004, 0x6036, 0x2009, 0x0040, 0x080c, 0x2268,\r
++      0x2001, 0x002a, 0x2004, 0x9084, 0xfff8, 0x601a, 0x0006, 0x2001,\r
++      0x002b, 0x2004, 0x601e, 0x78c6, 0x000e, 0x78ca, 0x9006, 0x600a,\r
++      0x600e, 0x008e, 0x00ce, 0x00ee, 0x00fe, 0x0005, 0x00e6, 0x2071,\r
++      0x0080, 0xaa60, 0x22e8, 0x20a0, 0x20e1, 0x0000, 0x2099, 0x0088,\r
++      0x702b, 0x0026, 0x7402, 0x7306, 0x9006, 0x700a, 0x700e, 0x810b,\r
++      0x810b, 0x21a8, 0x810b, 0x7112, 0x702b, 0x0041, 0x702c, 0xd0fc,\r
++      0x0de8, 0x702b, 0x0002, 0x702b, 0x0040, 0x4005, 0x7400, 0x7304,\r
++      0x87ff, 0x0190, 0x0086, 0x0096, 0x2940, 0x0086, 0x080c, 0x4879,\r
++      0x008e, 0xa058, 0x00a6, 0x2050, 0x2900, 0xb006, 0xa05a, 0x00ae,\r
++      0x009e, 0x008e, 0x9085, 0x0001, 0x00ee, 0x0005, 0x00e6, 0x2001,\r
++      0x002d, 0x2004, 0x9005, 0x0528, 0x2038, 0x2001, 0x0030, 0x2024,\r
++      0x2001, 0x0031, 0x201c, 0x080c, 0x4879, 0x2940, 0xa813, 0x0019,\r
++      0xaf16, 0x2900, 0xa85a, 0x978a, 0x0007, 0x0220, 0x2138, 0x2009,\r
++      0x0007, 0x0010, 0x2708, 0x903e, 0x0096, 0xa858, 0x2048, 0xa85c,\r
++      0x9080, 0x0019, 0x009e, 0x080c, 0x3f76, 0x1d68, 0x2900, 0xa85a,\r
++      0x00d8, 0x080c, 0x4879, 0x2940, 0xa013, 0x0019, 0xa017, 0x0001,\r
++      0x2800, 0xa05a, 0x2001, 0x0030, 0x2004, 0xa066, 0x2001, 0x0031,\r
++      0x2004, 0xa06a, 0x2001, 0x002a, 0x2004, 0x9084, 0xfff8, 0xa06e,\r
++      0x2001, 0x002b, 0x2004, 0xa072, 0x2001, 0x032a, 0x2003, 0x0004,\r
++      0x7884, 0xd0ac, 0x1180, 0x2001, 0x0101, 0x200c, 0x918d, 0x0200,\r
++      0x2102, 0xa017, 0x0000, 0x2001, 0x1a33, 0x2003, 0x0003, 0x2001,\r
++      0x032a, 0x2003, 0x0009, 0x2001, 0x0300, 0x2003, 0x0000, 0x2001,\r
++      0x020d, 0x2003, 0x0000, 0x2001, 0x0004, 0x200c, 0x918d, 0x0002,\r
++      0x2102, 0x00ee, 0x0005, 0x0126, 0x2091, 0x8000, 0x20a9, 0x0013,\r
++      0x20a1, 0x1840, 0x20e9, 0x0001, 0x9006, 0x4004, 0x2009, 0x013c,\r
++      0x200a, 0x012e, 0x7880, 0x9086, 0x0052, 0x0108, 0x0005, 0x0804,\r
++      0x3337, 0x7d98, 0x7c9c, 0x0804, 0x342e, 0x080c, 0x6fb2, 0x190c,\r
++      0x5c96, 0x2069, 0x1853, 0x2d00, 0x2009, 0x0030, 0x7a8c, 0x7b88,\r
++      0x7c9c, 0x7d98, 0x2039, 0x0001, 0x080c, 0x48c2, 0x701f, 0x4049,\r
++      0x0005, 0x080c, 0x5395, 0x1130, 0x3b00, 0x3a08, 0xc194, 0xc095,\r
++      0x20d8, 0x21d0, 0x2069, 0x1853, 0x6800, 0x9005, 0x0904, 0x336c,\r
++      0x6804, 0xd094, 0x00c6, 0x2061, 0x0100, 0x6104, 0x0138, 0x6200,\r
++      0x9292, 0x0005, 0x0218, 0x918c, 0xffdf, 0x0010, 0x918d, 0x0020,\r
++      0x6106, 0x00ce, 0xd08c, 0x00c6, 0x2061, 0x0100, 0x6104, 0x0118,\r
++      0x918d, 0x0010, 0x0010, 0x918c, 0xffef, 0x6106, 0x00ce, 0xd084,\r
++      0x0158, 0x6a28, 0x928a, 0x007f, 0x1a04, 0x336c, 0x9288, 0x3138,\r
++      0x210d, 0x918c, 0x00ff, 0x6162, 0xd0dc, 0x0130, 0x6828, 0x908a,\r
++      0x007f, 0x1a04, 0x336c, 0x605a, 0x6888, 0x9084, 0x0030, 0x8004,\r
++      0x8004, 0x8004, 0x8004, 0x0006, 0x2009, 0x1982, 0x9080, 0x279f,\r
++      0x2005, 0x200a, 0x000e, 0x2009, 0x1983, 0x9080, 0x27a3, 0x2005,\r
++      0x200a, 0x6808, 0x908a, 0x0100, 0x0a04, 0x336c, 0x908a, 0x0841,\r
++      0x1a04, 0x336c, 0x9084, 0x0007, 0x1904, 0x336c, 0x680c, 0x9005,\r
++      0x0904, 0x336c, 0x6810, 0x9005, 0x0904, 0x336c, 0x6848, 0x6940,\r
++      0x910a, 0x1a04, 0x336c, 0x8001, 0x0904, 0x336c, 0x684c, 0x6944,\r
++      0x910a, 0x1a04, 0x336c, 0x8001, 0x0904, 0x336c, 0x2009, 0x1952,\r
++      0x200b, 0x0000, 0x2001, 0x1875, 0x2004, 0xd0c4, 0x0140, 0x7884,\r
++      0x200a, 0x2009, 0x017f, 0x200a, 0x3b00, 0xc085, 0x20d8, 0x6814,\r
++      0x908c, 0x00ff, 0x614a, 0x8007, 0x9084, 0x00ff, 0x604e, 0x080c,\r
++      0x72c7, 0x080c, 0x662f, 0x080c, 0x6664, 0x6808, 0x602a, 0x080c,\r
++      0x21da, 0x2009, 0x0170, 0x200b, 0x0080, 0xa001, 0xa001, 0x200b,\r
++      0x0000, 0x0036, 0x6b08, 0x080c, 0x2706, 0x003e, 0x6000, 0x9086,\r
++      0x0000, 0x1904, 0x41c6, 0x6818, 0x691c, 0x6a20, 0x6b24, 0x8007,\r
++      0x810f, 0x8217, 0x831f, 0x6016, 0x611a, 0x621e, 0x6322, 0x6c04,\r
++      0xd4f4, 0x0148, 0x6830, 0x6934, 0x6a38, 0x6b3c, 0x8007, 0x810f,\r
++      0x8217, 0x831f, 0x0010, 0x9084, 0xf0ff, 0x6006, 0x610a, 0x620e,\r
++      0x6312, 0x8007, 0x810f, 0x8217, 0x831f, 0x20a9, 0x0004, 0x20a1,\r
++      0x1984, 0x20e9, 0x0001, 0x4001, 0x20a9, 0x0004, 0x20a1, 0x199e,\r
++      0x20e9, 0x0001, 0x4001, 0x080c, 0x8141, 0x00c6, 0x900e, 0x20a9,\r
++      0x0001, 0x6b70, 0xd384, 0x0510, 0x0068, 0x2009, 0x0100, 0x210c,\r
++      0x918e, 0x0008, 0x1110, 0x839d, 0x0010, 0x83f5, 0x3e18, 0x12b0,\r
++      0x3508, 0x8109, 0x080c, 0x7892, 0x6878, 0x6016, 0x6874, 0x2008,\r
++      0x9084, 0xff00, 0x8007, 0x600a, 0x9184, 0x00ff, 0x6006, 0x8108,\r
++      0x1118, 0x6003, 0x0003, 0x0010, 0x6003, 0x0001, 0x1f04, 0x4135,\r
++      0x00ce, 0x00c6, 0x2061, 0x196d, 0x2063, 0x0001, 0x9006, 0x080c,\r
++      0x29ad, 0x9006, 0x080c, 0x2990, 0x0000, 0x00ce, 0x00e6, 0x2c70,\r
++      0x080c, 0x0e80, 0x00ee, 0x6888, 0xd0ec, 0x0130, 0x2011, 0x0114,\r
++      0x2204, 0x9085, 0x0100, 0x2012, 0x6a80, 0x9284, 0x0030, 0x9086,\r
++      0x0030, 0x1128, 0x9294, 0xffcf, 0x9295, 0x0020, 0x6a82, 0x2001,\r
++      0x194d, 0x6a80, 0x9294, 0x0030, 0x928e, 0x0000, 0x0170, 0x928e,\r
++      0x0010, 0x0118, 0x928e, 0x0020, 0x0140, 0x2003, 0xaaaa, 0x080c,\r
++      0x277b, 0x2001, 0x193e, 0x2102, 0x0008, 0x2102, 0x00c6, 0x2061,\r
++      0x0100, 0x602f, 0x0040, 0x602f, 0x0000, 0x00ce, 0x080c, 0x6fb2,\r
++      0x0128, 0x080c, 0x4c92, 0x0110, 0x080c, 0x26cc, 0x60d0, 0x9005,\r
++      0x01c0, 0x6003, 0x0001, 0x2009, 0x41ae, 0x00d0, 0x080c, 0x6fb2,\r
++      0x1168, 0x2011, 0x6e33, 0x080c, 0x8038, 0x2011, 0x6e26, 0x080c,\r
++      0x810c, 0x080c, 0x729b, 0x080c, 0x6ee4, 0x0040, 0x080c, 0x5b90,\r
++      0x0028, 0x6003, 0x0004, 0x2009, 0x41c6, 0x0010, 0x0804, 0x3337,\r
++      0x2001, 0x0170, 0x2004, 0x9084, 0x00ff, 0x9086, 0x004c, 0x1118,\r
++      0x2091, 0x30bd, 0x0817, 0x2091, 0x303d, 0x0817, 0x6000, 0x9086,\r
++      0x0000, 0x0904, 0x3369, 0x2069, 0x1853, 0x7890, 0x6842, 0x7894,\r
++      0x6846, 0x2d00, 0x2009, 0x0030, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98,\r
++      0x2039, 0x0001, 0x0804, 0x48c5, 0x9006, 0x080c, 0x26cc, 0x81ff,\r
++      0x1904, 0x3369, 0x080c, 0x6fb2, 0x11b0, 0x080c, 0x7296, 0x080c,\r
++      0x5cd1, 0x080c, 0x3133, 0x0118, 0x6130, 0xc18d, 0x6132, 0x080c,\r
++      0xc212, 0x0130, 0x080c, 0x6fd5, 0x1118, 0x080c, 0x6f8a, 0x0038,\r
++      0x080c, 0x6ee4, 0x0020, 0x080c, 0x5c96, 0x080c, 0x5b90, 0x0804,\r
++      0x3337, 0x81ff, 0x1904, 0x3369, 0x080c, 0x6fb2, 0x1110, 0x0804,\r
++      0x3369, 0x6190, 0x81ff, 0x01a8, 0x704f, 0x0000, 0x2001, 0x1c80,\r
++      0x2009, 0x0040, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x0126, 0x2091,\r
++      0x8000, 0x2039, 0x0001, 0x080c, 0x48c5, 0x701f, 0x3335, 0x012e,\r
++      0x0005, 0x704f, 0x0001, 0x00d6, 0x2069, 0x1c80, 0x20a9, 0x0040,\r
++      0x20e9, 0x0001, 0x20a1, 0x1c80, 0x2019, 0xffff, 0x4304, 0x6558,\r
++      0x9588, 0x3138, 0x210d, 0x918c, 0x00ff, 0x216a, 0x900e, 0x2011,\r
++      0x0002, 0x2100, 0x9506, 0x01a8, 0x080c, 0x623e, 0x1190, 0xb814,\r
++      0x821c, 0x0238, 0x9398, 0x1c80, 0x9085, 0xff00, 0x8007, 0x201a,\r
++      0x0038, 0x9398, 0x1c80, 0x2324, 0x94a4, 0xff00, 0x9405, 0x201a,\r
++      0x8210, 0x8108, 0x9182, 0x0080, 0x1208, 0x0c18, 0x8201, 0x8007,\r
++      0x2d0c, 0x9105, 0x206a, 0x00de, 0x20a9, 0x0040, 0x20a1, 0x1c80,\r
++      0x2099, 0x1c80, 0x080c, 0x5c21, 0x0804, 0x421e, 0x080c, 0x48ac,\r
++      0x0904, 0x336c, 0x080c, 0x4879, 0x1120, 0x2009, 0x0002, 0x0804,\r
++      0x3369, 0x080c, 0x5386, 0xd0b4, 0x0558, 0x7884, 0x908e, 0x007e,\r
++      0x0538, 0x908e, 0x007f, 0x0520, 0x908e, 0x0080, 0x0508, 0x080c,\r
++      0x312e, 0x1148, 0xb800, 0xd08c, 0x11d8, 0xb804, 0x9084, 0x00ff,\r
++      0x9086, 0x0006, 0x11a8, 0xa867, 0x0000, 0xa868, 0xc0fd, 0xa86a,\r
++      0x080c, 0xbce0, 0x1120, 0x2009, 0x0003, 0x0804, 0x3369, 0x7007,\r
++      0x0003, 0x701f, 0x42ac, 0x0005, 0x080c, 0x48ac, 0x0904, 0x336c,\r
++      0x20a9, 0x002b, 0xb8b4, 0x20e0, 0xb8b8, 0x2098, 0xa860, 0x20e8,\r
++      0xa85c, 0x9080, 0x0002, 0x20a0, 0x4003, 0x20a9, 0x0008, 0x9080,\r
++      0x0006, 0x20a0, 0xb8b4, 0x20e0, 0xb8b8, 0x9080, 0x0006, 0x2098,\r
++      0x080c, 0x0f68, 0x0070, 0x20a9, 0x0004, 0xa85c, 0x9080, 0x000a,\r
++      0x20a0, 0xb8b4, 0x20e0, 0xb8b8, 0x9080, 0x000a, 0x2098, 0x080c,\r
++      0x0f68, 0x8906, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0,\r
++      0x9080, 0x0002, 0x2009, 0x002b, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98,\r
++      0x0804, 0x48c5, 0x81ff, 0x1904, 0x3369, 0x080c, 0x4890, 0x0904,\r
++      0x336c, 0x080c, 0x63b0, 0x0904, 0x3369, 0x0058, 0xa878, 0x9005,\r
++      0x0120, 0x2009, 0x0004, 0x0804, 0x3369, 0xa974, 0xaa94, 0x0804,\r
++      0x3337, 0x080c, 0x538e, 0x0904, 0x3337, 0x701f, 0x42f6, 0x7007,\r
++      0x0003, 0x0005, 0x81ff, 0x1904, 0x3369, 0x7888, 0x908a, 0x1000,\r
++      0x1a04, 0x336c, 0x080c, 0x48ac, 0x0904, 0x336c, 0x080c, 0x6562,\r
++      0x0120, 0x080c, 0x656a, 0x1904, 0x336c, 0x080c, 0x6435, 0x0904,\r
++      0x3369, 0x2019, 0x0004, 0x900e, 0x080c, 0x63c2, 0x0904, 0x3369,\r
++      0x7984, 0x7a88, 0x04c9, 0x08a8, 0xa89c, 0x908a, 0x1000, 0x12f8,\r
++      0x080c, 0x48aa, 0x01e0, 0x080c, 0x6562, 0x0118, 0x080c, 0x656a,\r
++      0x11b0, 0x080c, 0x6435, 0x2009, 0x0002, 0x0168, 0x2009, 0x0002,\r
++      0x2019, 0x0004, 0x080c, 0x63c2, 0x2009, 0x0003, 0x0120, 0xa998,\r
++      0xaa9c, 0x00d1, 0x0060, 0xa897, 0x4005, 0xa99a, 0x0010, 0xa897,\r
++      0x4006, 0x900e, 0x9085, 0x0001, 0x2001, 0x0030, 0x0005, 0xa897,\r
++      0x4000, 0x080c, 0x538e, 0x0110, 0x9006, 0x0018, 0x900e, 0x9085,\r
++      0x0001, 0x2001, 0x0000, 0x0005, 0x9186, 0x00ff, 0x0110, 0x0071,\r
++      0x0060, 0x2029, 0x007e, 0x2061, 0x1800, 0x6458, 0x2400, 0x9506,\r
++      0x0110, 0x2508, 0x0019, 0x8529, 0x1ec8, 0x0005, 0x080c, 0x623e,\r
++      0x1138, 0x2200, 0x8003, 0x800b, 0x810b, 0x9108, 0x080c, 0x8046,\r
++      0x0005, 0x81ff, 0x1904, 0x3369, 0x798c, 0x2001, 0x1951, 0x918c,\r
++      0x8000, 0x2102, 0x080c, 0x4890, 0x0904, 0x336c, 0x080c, 0x6562,\r
++      0x0120, 0x080c, 0x656a, 0x1904, 0x336c, 0x080c, 0x6305, 0x0904,\r
++      0x3369, 0x080c, 0x63b9, 0x0904, 0x3369, 0x2001, 0x1951, 0x2004,\r
++      0xd0fc, 0x1904, 0x3337, 0x0804, 0x4301, 0xa9a0, 0x2001, 0x1951,\r
++      0x918c, 0x8000, 0xc18d, 0x2102, 0x080c, 0x489d, 0x01a0, 0x080c,\r
++      0x6562, 0x0118, 0x080c, 0x656a, 0x1170, 0x080c, 0x6305, 0x2009,\r
++      0x0002, 0x0128, 0x080c, 0x63b9, 0x1170, 0x2009, 0x0003, 0xa897,\r
++      0x4005, 0xa99a, 0x0010, 0xa897, 0x4006, 0x900e, 0x9085, 0x0001,\r
++      0x2001, 0x0030, 0x0005, 0xa897, 0x4000, 0x2001, 0x1951, 0x2004,\r
++      0xd0fc, 0x1128, 0x080c, 0x538e, 0x0110, 0x9006, 0x0018, 0x900e,\r
++      0x9085, 0x0001, 0x2001, 0x0000, 0x0005, 0x81ff, 0x1904, 0x3369,\r
++      0x798c, 0x2001, 0x1950, 0x918c, 0x8000, 0x2102, 0x080c, 0x4890,\r
++      0x0904, 0x336c, 0x080c, 0x6562, 0x0120, 0x080c, 0x656a, 0x1904,\r
++      0x336c, 0x080c, 0x6305, 0x0904, 0x3369, 0x080c, 0x63a7, 0x0904,\r
++      0x3369, 0x2001, 0x1950, 0x2004, 0xd0fc, 0x1904, 0x3337, 0x0804,\r
++      0x4301, 0xa9a0, 0x2001, 0x1950, 0x918c, 0x8000, 0xc18d, 0x2102,\r
++      0x080c, 0x489d, 0x01a0, 0x080c, 0x6562, 0x0118, 0x080c, 0x656a,\r
++      0x1170, 0x080c, 0x6305, 0x2009, 0x0002, 0x0128, 0x080c, 0x63a7,\r
++      0x1170, 0x2009, 0x0003, 0xa897, 0x4005, 0xa99a, 0x0010, 0xa897,\r
++      0x4006, 0x900e, 0x9085, 0x0001, 0x2001, 0x0030, 0x0005, 0xa897,\r
++      0x4000, 0x2001, 0x1950, 0x2004, 0xd0fc, 0x1128, 0x080c, 0x538e,\r
++      0x0110, 0x9006, 0x0018, 0x900e, 0x9085, 0x0001, 0x2001, 0x0000,\r
++      0x0005, 0x6100, 0x0804, 0x3337, 0x080c, 0x48ac, 0x0904, 0x336c,\r
++      0x080c, 0x539a, 0x1904, 0x3369, 0x79a8, 0xd184, 0x1158, 0xb834,\r
++      0x8007, 0x789e, 0xb830, 0x8007, 0x789a, 0xbb2c, 0x831f, 0xba28,\r
++      0x8217, 0x0050, 0xb824, 0x8007, 0x789e, 0xb820, 0x8007, 0x789a,\r
++      0xbb1c, 0x831f, 0xba18, 0x8217, 0xb900, 0x918c, 0x0200, 0x0804,\r
++      0x3337, 0x78a8, 0x909c, 0x0003, 0xd0b4, 0x1148, 0x939a, 0x0003,\r
++      0x1a04, 0x3369, 0x6258, 0x7884, 0x9206, 0x1904, 0x44b1, 0x2031,\r
++      0x1848, 0x2009, 0x013c, 0x2136, 0x2001, 0x1840, 0x2009, 0x000c,\r
++      0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x2039, 0x0001, 0x0006, 0x78a8,\r
++      0x9084, 0x0080, 0x11c8, 0x0006, 0x0036, 0x2001, 0x1a4f, 0x201c,\r
++      0x7b9a, 0x2003, 0x0000, 0x2001, 0x1a50, 0x201c, 0x7b9e, 0x2003,\r
++      0x0000, 0x2001, 0x1a51, 0x201c, 0x7ba2, 0x2003, 0x0000, 0x003e,\r
++      0x000e, 0x000e, 0x0804, 0x48c5, 0x000e, 0x2031, 0x0000, 0x2061,\r
++      0x18ae, 0x2c44, 0xa66a, 0xa17a, 0xa772, 0xa076, 0xa28e, 0xa392,\r
++      0xa496, 0xa59a, 0x080c, 0x10d5, 0x7007, 0x0002, 0x701f, 0x44d1,\r
++      0x0005, 0x81ff, 0x1904, 0x3369, 0x080c, 0x48ac, 0x0904, 0x336c,\r
++      0x080c, 0x6562, 0x1904, 0x3369, 0x00c6, 0x080c, 0x4879, 0x00ce,\r
++      0x0904, 0x3369, 0xa867, 0x0000, 0xa868, 0xc0fd, 0xa86a, 0x7ea8,\r
++      0x080c, 0xbc86, 0x0904, 0x3369, 0x7007, 0x0003, 0x701f, 0x44eb,\r
++      0x0005, 0x080c, 0x401b, 0x0006, 0x0036, 0x2001, 0x1a4f, 0x201c,\r
++      0x7b9a, 0x2003, 0x0000, 0x2001, 0x1a50, 0x201c, 0x7b9e, 0x2003,\r
++      0x0000, 0x2001, 0x1a51, 0x201c, 0x7ba2, 0x2003, 0x0000, 0x003e,\r
++      0x000e, 0x0804, 0x3337, 0xa830, 0x9086, 0x0100, 0x0904, 0x3369,\r
++      0x8906, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080,\r
++      0x001b, 0x2009, 0x000c, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x0804,\r
++      0x48c5, 0x9006, 0x080c, 0x26cc, 0x78a8, 0x9084, 0x00ff, 0x9086,\r
++      0x00ff, 0x0118, 0x81ff, 0x1904, 0x3369, 0x080c, 0x6fb2, 0x0110,\r
++      0x080c, 0x5c96, 0x7888, 0x908a, 0x1000, 0x1a04, 0x336c, 0x7984,\r
++      0x9186, 0x00ff, 0x0138, 0x9182, 0x007f, 0x1a04, 0x336c, 0x2100,\r
++      0x080c, 0x2696, 0x0026, 0x00c6, 0x0126, 0x2091, 0x8000, 0x2061,\r
++      0x19cb, 0x601b, 0x0000, 0x601f, 0x0000, 0x6073, 0x0000, 0x6077,\r
++      0x0000, 0x080c, 0x6fb2, 0x1158, 0x080c, 0x7296, 0x080c, 0x5cd1,\r
++      0x9085, 0x0001, 0x080c, 0x6ff9, 0x080c, 0x6ee4, 0x00d0, 0x080c,\r
++      0x9db8, 0x2061, 0x0100, 0x2001, 0x1817, 0x2004, 0x9084, 0x00ff,\r
++      0x810f, 0x9105, 0x604a, 0x6043, 0x0090, 0x6043, 0x0010, 0x2009,\r
++      0x196a, 0x200b, 0x0000, 0x2009, 0x002d, 0x2011, 0x5bbc, 0x080c,\r
++      0x80ca, 0x7984, 0x080c, 0x6fb2, 0x1110, 0x2009, 0x00ff, 0x7a88,\r
++      0x080c, 0x4364, 0x012e, 0x00ce, 0x002e, 0x0804, 0x3337, 0x7984,\r
++      0x080c, 0x61de, 0x2b08, 0x1904, 0x336c, 0x0804, 0x3337, 0x81ff,\r
++      0x0120, 0x2009, 0x0001, 0x0804, 0x3369, 0x60d8, 0xd0ac, 0x1130,\r
++      0xd09c, 0x1120, 0x2009, 0x0005, 0x0804, 0x3369, 0x080c, 0x4879,\r
++      0x1120, 0x2009, 0x0002, 0x0804, 0x3369, 0x7984, 0x9192, 0x0021,\r
++      0x1a04, 0x336c, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0xa85c, 0x9080,\r
++      0x0019, 0x702a, 0xaf60, 0x7736, 0x080c, 0x48c2, 0x701f, 0x459f,\r
++      0x7880, 0x9086, 0x006e, 0x0110, 0x701f, 0x4e44, 0x0005, 0x2009,\r
++      0x0080, 0x080c, 0x623e, 0x1118, 0x080c, 0x6562, 0x0120, 0x2021,\r
++      0x400a, 0x0804, 0x3339, 0x00d6, 0x0096, 0xa964, 0xaa6c, 0xab70,\r
++      0xac74, 0xad78, 0xae7c, 0xa884, 0x90be, 0x0100, 0x0904, 0x4638,\r
++      0x90be, 0x0112, 0x0904, 0x4638, 0x90be, 0x0113, 0x0904, 0x4638,\r
++      0x90be, 0x0114, 0x0904, 0x4638, 0x90be, 0x0117, 0x0904, 0x4638,\r
++      0x90be, 0x011a, 0x0904, 0x4638, 0x90be, 0x011c, 0x0904, 0x4638,\r
++      0x90be, 0x0121, 0x0904, 0x461f, 0x90be, 0x0131, 0x0904, 0x461f,\r
++      0x90be, 0x0171, 0x0904, 0x4638, 0x90be, 0x0173, 0x0904, 0x4638,\r
++      0x90be, 0x01a1, 0x1128, 0xa894, 0x8007, 0xa896, 0x0804, 0x4643,\r
++      0x90be, 0x0212, 0x0904, 0x462c, 0x90be, 0x0213, 0x05e8, 0x90be,\r
++      0x0214, 0x0500, 0x90be, 0x0217, 0x0188, 0x90be, 0x021a, 0x1120,\r
++      0xa89c, 0x8007, 0xa89e, 0x04e0, 0x90be, 0x021f, 0x05c8, 0x90be,\r
++      0x0300, 0x05b0, 0x009e, 0x00de, 0x0804, 0x336c, 0x7028, 0x9080,\r
++      0x0010, 0x2098, 0x20a0, 0x7034, 0x20e0, 0x20e8, 0x20a9, 0x0007,\r
++      0x080c, 0x4681, 0x7028, 0x9080, 0x000e, 0x2098, 0x20a0, 0x7034,\r
++      0x20e0, 0x20e8, 0x20a9, 0x0001, 0x080c, 0x4681, 0x00c8, 0x7028,\r
++      0x9080, 0x000c, 0x2098, 0x20a0, 0x7034, 0x20e0, 0x20e8, 0x20a9,\r
++      0x0001, 0x080c, 0x468e, 0x00b8, 0x7028, 0x9080, 0x000e, 0x2098,\r
++      0x20a0, 0x7034, 0x20e0, 0x20e8, 0x20a9, 0x0001, 0x080c, 0x468e,\r
++      0x7028, 0x9080, 0x000c, 0x2098, 0x20a0, 0x7034, 0x20e0, 0x20e8,\r
++      0x20a9, 0x0001, 0x04f1, 0x00c6, 0x080c, 0x4879, 0x0550, 0xa868,\r
++      0xc0fd, 0xa86a, 0xa867, 0x0119, 0x9006, 0xa882, 0xa87f, 0x0020,\r
++      0xa88b, 0x0001, 0x810b, 0xa9ae, 0xa8b2, 0xaab6, 0xabba, 0xacbe,\r
++      0xadc2, 0xa9c6, 0xa8ca, 0x00ce, 0x009e, 0x00de, 0xa866, 0xa822,\r
++      0xa868, 0xc0fd, 0xa86a, 0xa804, 0x2048, 0x080c, 0xbca1, 0x1120,\r
++      0x2009, 0x0003, 0x0804, 0x3369, 0x7007, 0x0003, 0x701f, 0x4678,\r
++      0x0005, 0x00ce, 0x009e, 0x00de, 0x2009, 0x0002, 0x0804, 0x3369,\r
++      0xa820, 0x9086, 0x8001, 0x1904, 0x3337, 0x2009, 0x0004, 0x0804,\r
++      0x3369, 0x0016, 0x0026, 0x3510, 0x20a9, 0x0002, 0x4002, 0x4104,\r
++      0x4004, 0x8211, 0x1dc8, 0x002e, 0x001e, 0x0005, 0x0016, 0x0026,\r
++      0x0036, 0x0046, 0x3520, 0x20a9, 0x0004, 0x4002, 0x4304, 0x4204,\r
++      0x4104, 0x4004, 0x8421, 0x1db8, 0x004e, 0x003e, 0x002e, 0x001e,\r
++      0x0005, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x3369, 0x60d8,\r
++      0xd0ac, 0x1160, 0xd09c, 0x0120, 0x2009, 0x0016, 0x0804, 0x3369,\r
++      0xd09c, 0x1120, 0x2009, 0x0005, 0x0804, 0x3369, 0x7984, 0x78a8,\r
++      0x2040, 0x080c, 0x9db1, 0x1120, 0x9182, 0x007f, 0x0a04, 0x336c,\r
++      0x9186, 0x00ff, 0x0904, 0x336c, 0x9182, 0x0800, 0x1a04, 0x336c,\r
++      0x7a8c, 0x7b88, 0x6078, 0x9306, 0x1140, 0x607c, 0x924e, 0x0904,\r
++      0x336c, 0x99cc, 0xff00, 0x0904, 0x336c, 0x0126, 0x2091, 0x8000,\r
++      0x0026, 0x2011, 0x8008, 0x080c, 0x6586, 0x002e, 0x0140, 0x918d,\r
++      0x8000, 0x080c, 0x65d0, 0x1118, 0x2001, 0x4009, 0x0458, 0x080c,\r
++      0x4793, 0x0560, 0x90c6, 0x4000, 0x1170, 0x00c6, 0x0006, 0x900e,\r
++      0x080c, 0x645e, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d,\r
++      0x000e, 0x00ce, 0x00b8, 0x90c6, 0x4007, 0x1110, 0x2408, 0x0090,\r
++      0x90c6, 0x4008, 0x1118, 0x2708, 0x2610, 0x0060, 0x90c6, 0x4009,\r
++      0x1108, 0x0040, 0x90c6, 0x4006, 0x1108, 0x0020, 0x2001, 0x4005,\r
++      0x2009, 0x000a, 0x2020, 0x012e, 0x0804, 0x3339, 0x2b00, 0x7026,\r
++      0x0016, 0x00b6, 0x00c6, 0x00e6, 0x2c70, 0x080c, 0x9e7f, 0x0904,\r
++      0x4760, 0x2b00, 0x6012, 0x080c, 0xbf8c, 0x2e58, 0x00ee, 0x00e6,\r
++      0x00c6, 0x080c, 0x4879, 0x00ce, 0x2b70, 0x1158, 0x080c, 0x9e32,\r
++      0x00ee, 0x00ce, 0x00be, 0x001e, 0x012e, 0x2009, 0x0002, 0x0804,\r
++      0x3369, 0x900e, 0xa966, 0xa96a, 0x2900, 0x6016, 0xa932, 0xa868,\r
++      0xc0fd, 0xd88c, 0x0108, 0xc0f5, 0xa86a, 0x080c, 0x2fda, 0x6023,\r
++      0x0001, 0x9006, 0x080c, 0x617b, 0x2001, 0x0002, 0x080c, 0x618f,\r
++      0x2009, 0x0002, 0x080c, 0x9eac, 0x78a8, 0xd094, 0x0138, 0x00ee,\r
++      0x7024, 0x00e6, 0x2058, 0xb8bc, 0xc08d, 0xb8be, 0x9085, 0x0001,\r
++      0x00ee, 0x00ce, 0x00be, 0x001e, 0x012e, 0x1120, 0x2009, 0x0003,\r
++      0x0804, 0x3369, 0x7007, 0x0003, 0x701f, 0x476f, 0x0005, 0xa830,\r
++      0x2008, 0x918e, 0xdead, 0x1120, 0x2021, 0x4009, 0x0804, 0x3339,\r
++      0x9086, 0x0100, 0x7024, 0x2058, 0x1138, 0x2009, 0x0004, 0xba04,\r
++      0x9294, 0x00ff, 0x0804, 0x52e3, 0x900e, 0xa868, 0xd0f4, 0x1904,\r
++      0x3337, 0x080c, 0x645e, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108,\r
++      0xc18d, 0x0804, 0x3337, 0x00e6, 0x00d6, 0x0096, 0x83ff, 0x0904,\r
++      0x47db, 0x902e, 0x080c, 0x9db1, 0x0130, 0x9026, 0x20a9, 0x0800,\r
++      0x2071, 0x1000, 0x0030, 0x2021, 0x007f, 0x20a9, 0x0781, 0x2071,\r
++      0x107f, 0x2e04, 0x9005, 0x11b0, 0x2100, 0x9406, 0x15e8, 0x2428,\r
++      0x94ce, 0x007f, 0x1120, 0x92ce, 0xfffd, 0x1528, 0x0030, 0x94ce,\r
++      0x0080, 0x1130, 0x92ce, 0xfffc, 0x11f0, 0x93ce, 0x00ff, 0x11d8,\r
++      0xc5fd, 0x0450, 0x2058, 0xbf10, 0x2700, 0x9306, 0x11b8, 0xbe14,\r
++      0x2600, 0x9206, 0x1198, 0x2400, 0x9106, 0x1150, 0xd884, 0x0568,\r
++      0xd894, 0x1558, 0x080c, 0x6562, 0x1540, 0x2001, 0x4000, 0x0430,\r
++      0x2001, 0x4007, 0x0418, 0x2001, 0x4006, 0x0400, 0x2400, 0x9106,\r
++      0x1158, 0xbe14, 0x87ff, 0x1128, 0x86ff, 0x0948, 0x080c, 0x9db1,\r
++      0x1930, 0x2001, 0x4008, 0x0090, 0x8420, 0x8e70, 0x1f04, 0x47a9,\r
++      0x85ff, 0x1130, 0x2001, 0x4009, 0x0048, 0x2001, 0x0001, 0x0030,\r
++      0x080c, 0x61de, 0x1dd0, 0xbb12, 0xba16, 0x9006, 0x9005, 0x009e,\r
++      0x00de, 0x00ee, 0x0005, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804,\r
++      0x3369, 0x080c, 0x4879, 0x1120, 0x2009, 0x0002, 0x0804, 0x3369,\r
++      0xa867, 0x0000, 0xa868, 0xc0fd, 0xa86a, 0x7884, 0x9005, 0x0904,\r
++      0x336c, 0x9096, 0x00ff, 0x0120, 0x9092, 0x0004, 0x1a04, 0x336c,\r
++      0x2010, 0x2918, 0x080c, 0x2f80, 0x1120, 0x2009, 0x0003, 0x0804,\r
++      0x3369, 0x7007, 0x0003, 0x701f, 0x482e, 0x0005, 0xa830, 0x9086,\r
++      0x0100, 0x1904, 0x3337, 0x2009, 0x0004, 0x0804, 0x3369, 0x7984,\r
++      0x080c, 0x9db1, 0x1120, 0x9182, 0x007f, 0x0a04, 0x336c, 0x9186,\r
++      0x00ff, 0x0904, 0x336c, 0x9182, 0x0800, 0x1a04, 0x336c, 0x2001,\r
++      0x9000, 0x080c, 0x533e, 0x1904, 0x3369, 0x0804, 0x3337, 0xa998,\r
++      0x080c, 0x9db1, 0x1118, 0x9182, 0x007f, 0x0280, 0x9186, 0x00ff,\r
++      0x0168, 0x9182, 0x0800, 0x1250, 0x2001, 0x9000, 0x080c, 0x533e,\r
++      0x11a8, 0x0060, 0xa897, 0x4005, 0xa99a, 0x0010, 0xa897, 0x4006,\r
++      0x900e, 0x9085, 0x0001, 0x2001, 0x0030, 0x0005, 0xa897, 0x4000,\r
++      0x900e, 0x9085, 0x0001, 0x2001, 0x0000, 0x0005, 0x2009, 0x000a,\r
++      0x0c48, 0x080c, 0x0feb, 0x0198, 0x9006, 0xa802, 0x7014, 0x9005,\r
++      0x1120, 0x2900, 0x7016, 0x701a, 0x0040, 0x7018, 0xa802, 0x0086,\r
++      0x2040, 0x2900, 0xa006, 0x701a, 0x008e, 0x9085, 0x0001, 0x0005,\r
++      0x7984, 0x080c, 0x623e, 0x1130, 0x7e88, 0x9684, 0x3fff, 0x9082,\r
++      0x4000, 0x0208, 0x905e, 0x8bff, 0x0005, 0xa998, 0x080c, 0x623e,\r
++      0x1130, 0xae9c, 0x9684, 0x3fff, 0x9082, 0x4000, 0x0208, 0x905e,\r
++      0x8bff, 0x0005, 0xae98, 0x0008, 0x7e84, 0x2608, 0x080c, 0x623e,\r
++      0x1108, 0x0008, 0x905e, 0x8bff, 0x0005, 0x0016, 0x7114, 0x81ff,\r
++      0x0128, 0x2148, 0xa904, 0x080c, 0x101d, 0x0cc8, 0x7116, 0x711a,\r
++      0x001e, 0x0005, 0x2031, 0x0001, 0x0010, 0x2031, 0x0000, 0x2061,\r
++      0x18ae, 0x2c44, 0xa66a, 0xa17a, 0xa772, 0xa076, 0xa28e, 0xa392,\r
++      0xa496, 0xa59a, 0x080c, 0x10d5, 0x7007, 0x0002, 0x701f, 0x3337,\r
++      0x0005, 0x00f6, 0x0126, 0x2091, 0x8000, 0x2079, 0x0000, 0x2001,\r
++      0x18a6, 0x2004, 0x9005, 0x1190, 0x0e04, 0x48f6, 0x7a36, 0x7833,\r
++      0x0012, 0x7a82, 0x7b86, 0x7c8a, 0x2091, 0x4080, 0x2001, 0x0089,\r
++      0x2004, 0xd084, 0x190c, 0x1187, 0x0804, 0x495c, 0x0016, 0x0086,\r
++      0x0096, 0x00c6, 0x00e6, 0x2071, 0x1894, 0x7044, 0x9005, 0x1540,\r
++      0x7148, 0x9182, 0x0010, 0x0288, 0x7038, 0x2060, 0x080c, 0x0feb,\r
++      0x0904, 0x4954, 0xa84b, 0x0000, 0x2900, 0x7046, 0x2001, 0x0002,\r
++      0x9080, 0x1f26, 0x2005, 0xa846, 0x0098, 0x7038, 0x90e0, 0x0004,\r
++      0x2001, 0x18b0, 0x9c82, 0x18f0, 0x0210, 0x2061, 0x18b0, 0x2c00,\r
++      0x703a, 0x7148, 0x81ff, 0x1108, 0x703e, 0x8108, 0x714a, 0x0460,\r
++      0x7148, 0x8108, 0x714a, 0x7044, 0x2040, 0xa144, 0x2105, 0x0016,\r
++      0x908a, 0x0036, 0x1a0c, 0x0db4, 0x2060, 0x001e, 0x8108, 0x2105,\r
++      0x9005, 0xa146, 0x1520, 0x080c, 0x0feb, 0x1130, 0x8109, 0xa946,\r
++      0x7148, 0x8109, 0x714a, 0x00d8, 0x9006, 0xa806, 0xa84a, 0xa046,\r
++      0x2800, 0xa802, 0x2900, 0xa006, 0x7046, 0x2001, 0x0002, 0x9080,\r
++      0x1f26, 0x2005, 0xa846, 0x0058, 0x2262, 0x6306, 0x640a, 0x00ee,\r
++      0x00ce, 0x009e, 0x008e, 0x001e, 0x012e, 0x00fe, 0x0005, 0x2c00,\r
++      0x9082, 0x001b, 0x0002, 0x497e, 0x497e, 0x4980, 0x497e, 0x497e,\r
++      0x497e, 0x4984, 0x497e, 0x497e, 0x497e, 0x4988, 0x497e, 0x497e,\r
++      0x497e, 0x498c, 0x497e, 0x497e, 0x497e, 0x4990, 0x497e, 0x497e,\r
++      0x497e, 0x4994, 0x497e, 0x497e, 0x497e, 0x4999, 0x080c, 0x0db4,\r
++      0xa276, 0xa37a, 0xa47e, 0x0898, 0xa286, 0xa38a, 0xa48e, 0x0878,\r
++      0xa296, 0xa39a, 0xa49e, 0x0858, 0xa2a6, 0xa3aa, 0xa4ae, 0x0838,\r
++      0xa2b6, 0xa3ba, 0xa4be, 0x0818, 0xa2c6, 0xa3ca, 0xa4ce, 0x0804,\r
++      0x4957, 0xa2d6, 0xa3da, 0xa4de, 0x0804, 0x4957, 0x00e6, 0x2071,\r
++      0x1894, 0x7048, 0x9005, 0x0904, 0x4a30, 0x0126, 0x2091, 0x8000,\r
++      0x0e04, 0x4a2f, 0x00f6, 0x2079, 0x0000, 0x00c6, 0x0096, 0x0086,\r
++      0x0076, 0x9006, 0x2038, 0x7040, 0x2048, 0x9005, 0x0500, 0xa948,\r
++      0x2105, 0x0016, 0x908a, 0x0036, 0x1a0c, 0x0db4, 0x2060, 0x001e,\r
++      0x8108, 0x2105, 0x9005, 0xa94a, 0x1904, 0x4a32, 0xa804, 0x9005,\r
++      0x090c, 0x0db4, 0x7042, 0x2938, 0x2040, 0xa003, 0x0000, 0x2001,\r
++      0x0002, 0x9080, 0x1f26, 0x2005, 0xa04a, 0x0804, 0x4a32, 0x703c,\r
++      0x2060, 0x2c14, 0x6304, 0x6408, 0x650c, 0x2200, 0x7836, 0x7833,\r
++      0x0012, 0x7882, 0x2300, 0x7886, 0x2400, 0x788a, 0x2091, 0x4080,\r
++      0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x1187, 0x87ff, 0x0118,\r
++      0x2748, 0x080c, 0x101d, 0x7048, 0x8001, 0x704a, 0x9005, 0x1170,\r
++      0x7040, 0x2048, 0x9005, 0x0128, 0x080c, 0x101d, 0x9006, 0x7042,\r
++      0x7046, 0x703b, 0x18b0, 0x703f, 0x18b0, 0x0420, 0x7040, 0x9005,\r
++      0x1508, 0x7238, 0x2c00, 0x9206, 0x0148, 0x9c80, 0x0004, 0x90fa,\r
++      0x18f0, 0x0210, 0x2001, 0x18b0, 0x703e, 0x00a0, 0x9006, 0x703e,\r
++      0x703a, 0x7044, 0x9005, 0x090c, 0x0db4, 0x2048, 0xa800, 0x9005,\r
++      0x1de0, 0x2900, 0x7042, 0x2001, 0x0002, 0x9080, 0x1f26, 0x2005,\r
++      0xa84a, 0x0000, 0x007e, 0x008e, 0x009e, 0x00ce, 0x00fe, 0x012e,\r
++      0x00ee, 0x0005, 0x2c00, 0x9082, 0x001b, 0x0002, 0x4a51, 0x4a51,\r
++      0x4a53, 0x4a51, 0x4a51, 0x4a51, 0x4a58, 0x4a51, 0x4a51, 0x4a51,\r
++      0x4a5d, 0x4a51, 0x4a51, 0x4a51, 0x4a62, 0x4a51, 0x4a51, 0x4a51,\r
++      0x4a67, 0x4a51, 0x4a51, 0x4a51, 0x4a6c, 0x4a51, 0x4a51, 0x4a51,\r
++      0x4a71, 0x080c, 0x0db4, 0xaa74, 0xab78, 0xac7c, 0x0804, 0x49dd,\r
++      0xaa84, 0xab88, 0xac8c, 0x0804, 0x49dd, 0xaa94, 0xab98, 0xac9c,\r
++      0x0804, 0x49dd, 0xaaa4, 0xaba8, 0xacac, 0x0804, 0x49dd, 0xaab4,\r
++      0xabb8, 0xacbc, 0x0804, 0x49dd, 0xaac4, 0xabc8, 0xaccc, 0x0804,\r
++      0x49dd, 0xaad4, 0xabd8, 0xacdc, 0x0804, 0x49dd, 0x0026, 0x080c,\r
++      0x5386, 0xd0c4, 0x0120, 0x2011, 0x8014, 0x080c, 0x48d9, 0x002e,\r
++      0x0005, 0x81ff, 0x1904, 0x3369, 0x0126, 0x2091, 0x8000, 0x6030,\r
++      0xc08d, 0xc085, 0xc0ac, 0x6032, 0x080c, 0x6fb2, 0x1158, 0x080c,\r
++      0x7296, 0x080c, 0x5cd1, 0x9085, 0x0001, 0x080c, 0x6ff9, 0x080c,\r
++      0x6ee4, 0x0010, 0x080c, 0x5b90, 0x012e, 0x0804, 0x3337, 0x81ff,\r
++      0x0120, 0x2009, 0x0001, 0x0804, 0x3369, 0x080c, 0x539a, 0x0120,\r
++      0x2009, 0x0007, 0x0804, 0x3369, 0x080c, 0x655a, 0x0120, 0x2009,\r
++      0x0008, 0x0804, 0x3369, 0x0026, 0x2011, 0x0010, 0x080c, 0x6586,\r
++      0x002e, 0x0140, 0x7984, 0x080c, 0x65d0, 0x1120, 0x2009, 0x4009,\r
++      0x0804, 0x3369, 0x080c, 0x312e, 0x0128, 0x7984, 0x080c, 0x61de,\r
++      0x1904, 0x336c, 0x080c, 0x48ac, 0x0904, 0x336c, 0x2b00, 0x7026,\r
++      0x080c, 0x6562, 0x7888, 0x1170, 0x9084, 0x0005, 0x1158, 0x900e,\r
++      0x080c, 0x645e, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d,\r
++      0x0804, 0x3337, 0x080c, 0x4879, 0x0904, 0x3369, 0x9006, 0xa866,\r
++      0xa832, 0xa868, 0xc0fd, 0xa86a, 0x080c, 0xbd3a, 0x0904, 0x3369,\r
++      0x7888, 0xd094, 0x0118, 0xb8bc, 0xc08d, 0xb8be, 0x7007, 0x0003,\r
++      0x701f, 0x4b47, 0x0005, 0x2061, 0x1800, 0x080c, 0x539a, 0x2009,\r
++      0x0007, 0x1578, 0x080c, 0x655a, 0x0118, 0x2009, 0x0008, 0x0448,\r
++      0x080c, 0x312e, 0x0120, 0xa998, 0x080c, 0x61de, 0x1530, 0x080c,\r
++      0x48aa, 0x0518, 0x080c, 0x6562, 0xa89c, 0x1168, 0x9084, 0x0005,\r
++      0x1150, 0x900e, 0x080c, 0x645e, 0x1108, 0xc185, 0xb800, 0xd0bc,\r
++      0x0108, 0xc18d, 0x00d0, 0xa868, 0xc0fc, 0xa86a, 0x080c, 0xbd3a,\r
++      0x11e0, 0xa89c, 0xd094, 0x0118, 0xb8bc, 0xc08d, 0xb8be, 0x2009,\r
++      0x0003, 0xa897, 0x4005, 0xa99a, 0x0010, 0xa897, 0x4006, 0x900e,\r
++      0x9085, 0x0001, 0x2001, 0x0030, 0x0005, 0xa897, 0x4000, 0xa99a,\r
++      0x9006, 0x918d, 0x0001, 0x2008, 0x0005, 0x9006, 0x0005, 0xa830,\r
++      0x2008, 0x918e, 0xdead, 0x1120, 0x2021, 0x4009, 0x0804, 0x3339,\r
++      0x9086, 0x0100, 0x7024, 0x2058, 0x1110, 0x0804, 0x52e3, 0x900e,\r
++      0x080c, 0x645e, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d,\r
++      0x0804, 0x3337, 0x080c, 0x539a, 0x0120, 0x2009, 0x0007, 0x0804,\r
++      0x3369, 0x7f84, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x080c, 0x4879,\r
++      0x1120, 0x2009, 0x0002, 0x0804, 0x3369, 0x900e, 0x2130, 0x7126,\r
++      0x7132, 0xa860, 0x20e8, 0x7036, 0xa85c, 0x9080, 0x0005, 0x702a,\r
++      0x20a0, 0x080c, 0x623e, 0x1904, 0x4be5, 0x080c, 0x6562, 0x0120,\r
++      0x080c, 0x656a, 0x1904, 0x4be5, 0x080c, 0x655a, 0x1130, 0x080c,\r
++      0x645e, 0x1118, 0xd79c, 0x0904, 0x4be5, 0xd794, 0x1110, 0xd784,\r
++      0x01a8, 0xb8b4, 0x20e0, 0xb8b8, 0x9080, 0x0006, 0x2098, 0x3400,\r
++      0xd794, 0x0160, 0x20a9, 0x0008, 0x4003, 0x2098, 0x20a0, 0x3d00,\r
++      0x20e0, 0x20a9, 0x0002, 0x080c, 0x468e, 0x0048, 0x20a9, 0x0004,\r
++      0x4003, 0x2098, 0x20a0, 0x3d00, 0x20e0, 0x080c, 0x468e, 0x4104,\r
++      0xd794, 0x0528, 0xb8b4, 0x20e0, 0xb8b8, 0x2060, 0x9c80, 0x0000,\r
++      0x2098, 0x20a9, 0x0002, 0x4003, 0x9c80, 0x0003, 0x2098, 0x20a9,\r
++      0x0001, 0x4005, 0x9c80, 0x0004, 0x2098, 0x3400, 0x20a9, 0x0002,\r
++      0x4003, 0x2098, 0x20a0, 0x3d00, 0x20e0, 0x080c, 0x4681, 0x9c80,\r
++      0x0026, 0x2098, 0xb8b4, 0x20e0, 0x20a9, 0x0002, 0x4003, 0xd794,\r
++      0x0110, 0x96b0, 0x000b, 0x96b0, 0x0005, 0x8108, 0x080c, 0x9db1,\r
++      0x0118, 0x9186, 0x0800, 0x0040, 0xd78c, 0x0120, 0x9186, 0x0800,\r
++      0x0170, 0x0018, 0x9186, 0x007e, 0x0150, 0xd794, 0x0118, 0x9686,\r
++      0x0020, 0x0010, 0x9686, 0x0028, 0x0150, 0x0804, 0x4b81, 0x86ff,\r
++      0x1120, 0x7124, 0x810b, 0x0804, 0x3337, 0x7033, 0x0001, 0x7122,\r
++      0x7024, 0x9600, 0x7026, 0x772e, 0x2061, 0x18ae, 0x2c44, 0xa06b,\r
++      0x0000, 0xa67a, 0x7034, 0xa072, 0x7028, 0xa076, 0xa28e, 0xa392,\r
++      0xa496, 0xa59a, 0x080c, 0x10d5, 0x7007, 0x0002, 0x701f, 0x4c21,\r
++      0x0005, 0x7030, 0x9005, 0x1180, 0x7120, 0x7028, 0x20a0, 0x772c,\r
++      0x9036, 0x7034, 0x20e8, 0x2061, 0x18ae, 0x2c44, 0xa28c, 0xa390,\r
++      0xa494, 0xa598, 0x0804, 0x4b81, 0x7124, 0x810b, 0x0804, 0x3337,\r
++      0x2029, 0x007e, 0x7984, 0x7a88, 0x7b8c, 0x7c98, 0x9184, 0xff00,\r
++      0x8007, 0x90e2, 0x0020, 0x0a04, 0x336c, 0x9502, 0x0a04, 0x336c,\r
++      0x9184, 0x00ff, 0x90e2, 0x0020, 0x0a04, 0x336c, 0x9502, 0x0a04,\r
++      0x336c, 0x9284, 0xff00, 0x8007, 0x90e2, 0x0020, 0x0a04, 0x336c,\r
++      0x9502, 0x0a04, 0x336c, 0x9284, 0x00ff, 0x90e2, 0x0020, 0x0a04,\r
++      0x336c, 0x9502, 0x0a04, 0x336c, 0x9384, 0xff00, 0x8007, 0x90e2,\r
++      0x0020, 0x0a04, 0x336c, 0x9502, 0x0a04, 0x336c, 0x9384, 0x00ff,\r
++      0x90e2, 0x0020, 0x0a04, 0x336c, 0x9502, 0x0a04, 0x336c, 0x9484,\r
++      0xff00, 0x8007, 0x90e2, 0x0020, 0x0a04, 0x336c, 0x9502, 0x0a04,\r
++      0x336c, 0x9484, 0x00ff, 0x90e2, 0x0020, 0x0a04, 0x336c, 0x9502,\r
++      0x0a04, 0x336c, 0x2061, 0x195a, 0x6102, 0x6206, 0x630a, 0x640e,\r
++      0x0804, 0x3337, 0x0006, 0x080c, 0x5386, 0xd0cc, 0x000e, 0x0005,\r
++      0x0006, 0x080c, 0x538a, 0xd0bc, 0x000e, 0x0005, 0x6170, 0x7a84,\r
++      0x6300, 0x82ff, 0x1118, 0x7986, 0x0804, 0x3337, 0x83ff, 0x1904,\r
++      0x336c, 0x2001, 0xfff0, 0x9200, 0x1a04, 0x336c, 0x2019, 0xffff,\r
++      0x6074, 0x9302, 0x9200, 0x0a04, 0x336c, 0x7986, 0x6272, 0x0804,\r
++      0x3337, 0x080c, 0x539a, 0x1904, 0x3369, 0x7c88, 0x7d84, 0x7e98,\r
++      0x7f8c, 0x080c, 0x4879, 0x0904, 0x3369, 0x900e, 0x901e, 0x7326,\r
++      0x7332, 0xa860, 0x20e8, 0x7036, 0xa85c, 0x9080, 0x0003, 0x702a,\r
++      0x20a0, 0x91d8, 0x1000, 0x2b5c, 0x8bff, 0x0178, 0x080c, 0x6562,\r
++      0x0118, 0x080c, 0x656a, 0x1148, 0x20a9, 0x0001, 0xb814, 0x4004,\r
++      0xb810, 0x4004, 0x4104, 0x9398, 0x0003, 0x8108, 0x9182, 0x0800,\r
++      0x0120, 0x9386, 0x003c, 0x0170, 0x0c20, 0x83ff, 0x1148, 0x7224,\r
++      0x900e, 0x2001, 0x0003, 0x080c, 0x8270, 0x2208, 0x0804, 0x3337,\r
++      0x7033, 0x0001, 0x7122, 0x7024, 0x9300, 0x7026, 0x2061, 0x18ae,\r
++      0x2c44, 0xa06b, 0x0000, 0xa37a, 0x7028, 0xa076, 0x7034, 0xa072,\r
++      0xa48e, 0xa592, 0xa696, 0xa79a, 0x080c, 0x10d5, 0x7007, 0x0002,\r
++      0x701f, 0x4d13, 0x0005, 0x7030, 0x9005, 0x1178, 0x7120, 0x7028,\r
++      0x20a0, 0x901e, 0x7034, 0x20e8, 0x2061, 0x18ae, 0x2c44, 0xa48c,\r
++      0xa590, 0xa694, 0xa798, 0x0804, 0x4cd1, 0x7224, 0x900e, 0x2001,\r
++      0x0003, 0x080c, 0x8270, 0x2208, 0x0804, 0x3337, 0x00f6, 0x00e6,\r
++      0x080c, 0x539a, 0x2009, 0x0007, 0x1904, 0x4da6, 0x2071, 0x1894,\r
++      0x745c, 0x84ff, 0x2009, 0x000e, 0x1904, 0x4da6, 0xac9c, 0xad98,\r
++      0xaea4, 0xafa0, 0x0096, 0x080c, 0x1004, 0x2009, 0x0002, 0x0904,\r
++      0x4da6, 0x2900, 0x705e, 0x900e, 0x901e, 0x7356, 0x7362, 0xa860,\r
++      0x7066, 0xa85c, 0x9080, 0x0003, 0x705a, 0x20a0, 0x91d8, 0x1000,\r
++      0x2b5c, 0x8bff, 0x0178, 0x080c, 0x6562, 0x0118, 0x080c, 0x656a,\r
++      0x1148, 0xb814, 0x20a9, 0x0001, 0x4004, 0xb810, 0x4004, 0x4104,\r
++      0x9398, 0x0003, 0x8108, 0x9182, 0x0800, 0x0120, 0x9386, 0x003c,\r
++      0x01e8, 0x0c20, 0x83ff, 0x11c0, 0x7254, 0x900e, 0x2001, 0x0003,\r
++      0x080c, 0x8270, 0x2208, 0x009e, 0xa897, 0x4000, 0xa99a, 0x715c,\r
++      0x81ff, 0x090c, 0x0db4, 0x2148, 0x080c, 0x101d, 0x9006, 0x705e,\r
++      0x918d, 0x0001, 0x2008, 0x0418, 0x7063, 0x0001, 0x7152, 0x7054,\r
++      0x9300, 0x7056, 0x2061, 0x18af, 0x2c44, 0xa37a, 0x7058, 0xa076,\r
++      0x7064, 0xa072, 0xa48e, 0xa592, 0xa696, 0xa79a, 0xa09f, 0x4db2,\r
++      0x000e, 0xa0a2, 0x080c, 0x10d5, 0x9006, 0x0048, 0x009e, 0xa897,\r
++      0x4005, 0xa99a, 0x900e, 0x9085, 0x0001, 0x2001, 0x0030, 0x00ee,\r
++      0x00fe, 0x0005, 0x00f6, 0xa0a0, 0x904d, 0x090c, 0x0db4, 0x00e6,\r
++      0x2071, 0x1894, 0xa06c, 0x908e, 0x0100, 0x0138, 0xa87b, 0x0030,\r
++      0xa883, 0x0000, 0xa897, 0x4002, 0x00d8, 0x7060, 0x9005, 0x1158,\r
++      0x7150, 0x7058, 0x20a0, 0x901e, 0x7064, 0x20e8, 0xa48c, 0xa590,\r
++      0xa694, 0xa798, 0x0428, 0xa87b, 0x0000, 0xa883, 0x0000, 0xa897,\r
++      0x4000, 0x7254, 0x900e, 0x2001, 0x0003, 0x080c, 0x8270, 0xaa9a,\r
++      0x715c, 0x81ff, 0x090c, 0x0db4, 0x2148, 0x080c, 0x101d, 0x705f,\r
++      0x0000, 0xa0a0, 0x2048, 0x0126, 0x2091, 0x8000, 0x080c, 0x688c,\r
++      0x012e, 0xa09f, 0x0000, 0xa0a3, 0x0000, 0x00ee, 0x00fe, 0x0005,\r
++      0x91d8, 0x1000, 0x2b5c, 0x8bff, 0x0178, 0x080c, 0x6562, 0x0118,\r
++      0x080c, 0x656a, 0x1148, 0xb814, 0x20a9, 0x0001, 0x4004, 0xb810,\r
++      0x4004, 0x4104, 0x9398, 0x0003, 0x8108, 0x9182, 0x0800, 0x0120,\r
++      0x9386, 0x003c, 0x0518, 0x0c20, 0x83ff, 0x11f0, 0x7154, 0x810c,\r
++      0xa99a, 0xa897, 0x4000, 0x715c, 0x81ff, 0x090c, 0x0db4, 0x2148,\r
++      0x080c, 0x101d, 0x9006, 0x705e, 0x918d, 0x0001, 0x2008, 0xa0a0,\r
++      0x2048, 0x0126, 0x2091, 0x8000, 0x080c, 0x688c, 0x012e, 0xa09f,\r
++      0x0000, 0xa0a3, 0x0000, 0x0070, 0x7063, 0x0001, 0x7152, 0x7054,\r
++      0x9300, 0x7056, 0xa37a, 0xa48e, 0xa592, 0xa696, 0xa79a, 0x080c,\r
++      0x10d5, 0x9006, 0x00ee, 0x0005, 0x0096, 0xa88c, 0x90be, 0x7000,\r
++      0x0148, 0x90be, 0x7100, 0x0130, 0x90be, 0x7200, 0x0118, 0x009e,\r
++      0x0804, 0x336c, 0xa884, 0xa988, 0x080c, 0x2663, 0x1518, 0x080c,\r
++      0x61de, 0x1500, 0x7126, 0xbe12, 0xbd16, 0xae7c, 0x080c, 0x4879,\r
++      0x01c8, 0x080c, 0x4879, 0x01b0, 0x009e, 0xa867, 0x0000, 0xa868,\r
++      0xc0fd, 0xa86a, 0xa823, 0x0000, 0xa804, 0x2048, 0x080c, 0xbcc1,\r
++      0x1120, 0x2009, 0x0003, 0x0804, 0x3369, 0x7007, 0x0003, 0x701f,\r
++      0x4e7f, 0x0005, 0x009e, 0x2009, 0x0002, 0x0804, 0x3369, 0x7124,\r
++      0x080c, 0x30d5, 0xa820, 0x9086, 0x8001, 0x1120, 0x2009, 0x0004,\r
++      0x0804, 0x3369, 0x2900, 0x7022, 0xa804, 0x0096, 0x2048, 0x8906,\r
++      0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x009e, 0x9080,\r
++      0x0002, 0x0076, 0x0006, 0x2098, 0x20a0, 0x27e0, 0x27e8, 0x20a9,\r
++      0x002a, 0x080c, 0x0f68, 0xaa6c, 0xab70, 0xac74, 0xad78, 0x2061,\r
++      0x18ae, 0x2c44, 0xa06b, 0x0000, 0xae64, 0xaf8c, 0x97c6, 0x7000,\r
++      0x0118, 0x97c6, 0x7100, 0x1148, 0x96c2, 0x0004, 0x0600, 0x2009,\r
++      0x0004, 0x000e, 0x007e, 0x0804, 0x48c5, 0x97c6, 0x7200, 0x11b8,\r
++      0x96c2, 0x0054, 0x02a0, 0x000e, 0x007e, 0x2061, 0x18ae, 0x2c44,\r
++      0xa076, 0xa772, 0xa07b, 0x002a, 0xa28e, 0xa392, 0xa496, 0xa59a,\r
++      0x080c, 0x10d5, 0x7007, 0x0002, 0x701f, 0x4edb, 0x0005, 0x000e,\r
++      0x007e, 0x0804, 0x336c, 0x7020, 0x2048, 0xa804, 0x2048, 0xa804,\r
++      0x2048, 0x8906, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0,\r
++      0x9080, 0x0002, 0x2098, 0x20a0, 0x27e0, 0x27e8, 0x20a9, 0x002a,\r
++      0x080c, 0x0f68, 0x2100, 0x2238, 0x2061, 0x18ae, 0x2c44, 0xa28c,\r
++      0xa390, 0xa494, 0xa598, 0x2009, 0x002a, 0x0804, 0x48c5, 0x81ff,\r
++      0x1904, 0x3369, 0x798c, 0x2001, 0x194f, 0x918c, 0x8000, 0x2102,\r
++      0x080c, 0x4890, 0x0904, 0x336c, 0x080c, 0x6562, 0x0120, 0x080c,\r
++      0x656a, 0x1904, 0x336c, 0x080c, 0x6305, 0x0904, 0x3369, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0x63cb, 0x012e, 0x0904, 0x3369, 0x2001,\r
++      0x194f, 0x2004, 0xd0fc, 0x1904, 0x3337, 0x0804, 0x4301, 0xa9a0,\r
++      0x2001, 0x194f, 0x918c, 0x8000, 0xc18d, 0x2102, 0x080c, 0x489d,\r
++      0x01a0, 0x080c, 0x6562, 0x0118, 0x080c, 0x656a, 0x1170, 0x080c,\r
++      0x6305, 0x2009, 0x0002, 0x0128, 0x080c, 0x63cb, 0x1170, 0x2009,\r
++      0x0003, 0xa897, 0x4005, 0xa99a, 0x0010, 0xa897, 0x4006, 0x900e,\r
++      0x9085, 0x0001, 0x2001, 0x0030, 0x0005, 0xa897, 0x4000, 0x2001,\r
++      0x194f, 0x2004, 0xd0fc, 0x1128, 0x080c, 0x538e, 0x0110, 0x9006,\r
++      0x0018, 0x900e, 0x9085, 0x0001, 0x2001, 0x0000, 0x0005, 0x78a8,\r
++      0xd08c, 0x1118, 0xd084, 0x0904, 0x4276, 0x080c, 0x48ac, 0x0904,\r
++      0x336c, 0x080c, 0x4879, 0x1120, 0x2009, 0x0002, 0x0804, 0x3369,\r
++      0x080c, 0x6562, 0x0130, 0x908e, 0x0004, 0x0118, 0x908e, 0x0005,\r
++      0x15a0, 0x78a8, 0xd08c, 0x0120, 0xb800, 0xc08c, 0xb802, 0x0028,\r
++      0x080c, 0x5386, 0xd0b4, 0x0904, 0x42b0, 0x7884, 0x908e, 0x007e,\r
++      0x0904, 0x42b0, 0x908e, 0x007f, 0x0904, 0x42b0, 0x908e, 0x0080,\r
++      0x0904, 0x42b0, 0xb800, 0xd08c, 0x1904, 0x42b0, 0xa867, 0x0000,\r
++      0xa868, 0xc0fd, 0xa86a, 0x080c, 0xbce0, 0x1120, 0x2009, 0x0003,\r
++      0x0804, 0x3369, 0x7007, 0x0003, 0x701f, 0x4fa7, 0x0005, 0x080c,\r
++      0x48ac, 0x0904, 0x336c, 0x0804, 0x42b0, 0x080c, 0x312e, 0x0108,\r
++      0x0005, 0x2009, 0x1833, 0x210c, 0x81ff, 0x0120, 0x2009, 0x0001,\r
++      0x0804, 0x3369, 0x080c, 0x539a, 0x0120, 0x2009, 0x0007, 0x0804,\r
++      0x3369, 0x080c, 0x655a, 0x0120, 0x2009, 0x0008, 0x0804, 0x3369,\r
++      0xb89c, 0xd0a4, 0x1118, 0xd0ac, 0x1904, 0x42b0, 0x9006, 0xa866,\r
++      0xa832, 0xa868, 0xc0fd, 0xa86a, 0x080c, 0xbd3a, 0x1120, 0x2009,\r
++      0x0003, 0x0804, 0x3369, 0x7007, 0x0003, 0x701f, 0x4fe0, 0x0005,\r
++      0xa830, 0x9086, 0x0100, 0x1120, 0x2009, 0x0004, 0x0804, 0x52e3,\r
++      0x080c, 0x48ac, 0x0904, 0x336c, 0x0804, 0x4f79, 0x81ff, 0x2009,\r
++      0x0001, 0x1904, 0x3369, 0x080c, 0x539a, 0x2009, 0x0007, 0x1904,\r
++      0x3369, 0x080c, 0x655a, 0x0120, 0x2009, 0x0008, 0x0804, 0x3369,\r
++      0x080c, 0x48ac, 0x0904, 0x336c, 0x080c, 0x6562, 0x2009, 0x0009,\r
++      0x1904, 0x3369, 0x080c, 0x4879, 0x2009, 0x0002, 0x0904, 0x3369,\r
++      0x9006, 0xa866, 0xa832, 0xa868, 0xc0fd, 0xa86a, 0x7988, 0x9194,\r
++      0xff00, 0x918c, 0x00ff, 0x9006, 0x82ff, 0x1128, 0xc0ed, 0xa952,\r
++      0x798c, 0xa956, 0x0038, 0x928e, 0x0100, 0x1904, 0x336c, 0xc0e5,\r
++      0xa952, 0xa956, 0xa83e, 0x080c, 0xbf8d, 0x2009, 0x0003, 0x0904,\r
++      0x3369, 0x7007, 0x0003, 0x701f, 0x5036, 0x0005, 0xa830, 0x9086,\r
++      0x0100, 0x2009, 0x0004, 0x0904, 0x3369, 0x0804, 0x3337, 0x7aa8,\r
++      0x9284, 0xc000, 0x0148, 0xd2ec, 0x01a0, 0x080c, 0x539a, 0x1188,\r
++      0x2009, 0x0014, 0x0804, 0x3369, 0xd2dc, 0x1568, 0x81ff, 0x2009,\r
++      0x0001, 0x1904, 0x3369, 0x080c, 0x539a, 0x2009, 0x0007, 0x1904,\r
++      0x3369, 0xd2f4, 0x0130, 0x9284, 0x5000, 0x080c, 0x5361, 0x0804,\r
++      0x3337, 0xd2fc, 0x0158, 0x080c, 0x48ac, 0x0904, 0x336c, 0x7984,\r
++      0x9284, 0x9000, 0x080c, 0x533e, 0x0804, 0x3337, 0x080c, 0x48ac,\r
++      0x0904, 0x336c, 0xb804, 0x9084, 0x00ff, 0x9086, 0x0006, 0x2009,\r
++      0x0009, 0x1904, 0x511f, 0x080c, 0x4879, 0x2009, 0x0002, 0x0904,\r
++      0x511f, 0xa85c, 0x9080, 0x001b, 0xaf60, 0x2009, 0x0008, 0x7a8c,\r
++      0x7b88, 0x7c9c, 0x7d98, 0x080c, 0x48c2, 0x701f, 0x5090, 0x0005,\r
++      0xa86c, 0x9086, 0x0500, 0x1138, 0xa870, 0x9005, 0x1120, 0xa874,\r
++      0x9084, 0xff00, 0x0110, 0x1904, 0x336c, 0xa866, 0xa832, 0xa868,\r
++      0xc0fd, 0xa86a, 0x080c, 0x48ac, 0x1110, 0x0804, 0x336c, 0x2009,\r
++      0x0043, 0x080c, 0xbff5, 0x2009, 0x0003, 0x0904, 0x511f, 0x7007,\r
++      0x0003, 0x701f, 0x50b4, 0x0005, 0xa830, 0x9086, 0x0100, 0x2009,\r
++      0x0004, 0x0904, 0x511f, 0x7984, 0x7aa8, 0x9284, 0x1000, 0x080c,\r
++      0x533e, 0x0804, 0x3337, 0x00c6, 0xaab0, 0x9284, 0xc000, 0x0140,\r
++      0xd2ec, 0x0168, 0x080c, 0x539a, 0x1150, 0x2009, 0x0014, 0x04f0,\r
++      0x2061, 0x1800, 0x080c, 0x539a, 0x2009, 0x0007, 0x15b8, 0xd2f4,\r
++      0x0128, 0x9284, 0x5000, 0x080c, 0x5361, 0x0050, 0xd2fc, 0x0178,\r
++      0x080c, 0x48aa, 0x0588, 0xa998, 0x9284, 0x9000, 0x080c, 0x533e,\r
++      0xa87b, 0x0000, 0xa883, 0x0000, 0xa897, 0x4000, 0x0438, 0x080c,\r
++      0x48aa, 0x0510, 0x080c, 0x6562, 0x2009, 0x0009, 0x11b8, 0xa8c4,\r
++      0x9086, 0x0500, 0x11c8, 0xa8c8, 0x9005, 0x11b0, 0xa8cc, 0x9084,\r
++      0xff00, 0x1190, 0x080c, 0x48aa, 0x1108, 0x0070, 0x2009, 0x004b,\r
++      0x080c, 0xbff5, 0x2009, 0x0003, 0x0108, 0x0078, 0x0429, 0x19c0,\r
++      0xa897, 0x4005, 0xa99a, 0x0010, 0xa897, 0x4006, 0x900e, 0x9085,\r
++      0x0001, 0x2001, 0x0030, 0x00ce, 0x0005, 0x9006, 0x0ce0, 0x7aa8,\r
++      0xd2dc, 0x0904, 0x3369, 0x0016, 0x7984, 0x9284, 0x1000, 0xc0fd,\r
++      0x080c, 0x533e, 0x001e, 0x1904, 0x3369, 0x0804, 0x3337, 0x00f6,\r
++      0x2d78, 0x0011, 0x00fe, 0x0005, 0xaab0, 0xd2dc, 0x0150, 0x0016,\r
++      0xa998, 0x9284, 0x1000, 0xc0fd, 0x080c, 0x533e, 0x001e, 0x9085,\r
++      0x0001, 0x0005, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x3369,\r
++      0x080c, 0x539a, 0x0120, 0x2009, 0x0007, 0x0804, 0x3369, 0x7984,\r
++      0x7ea8, 0x96b4, 0x00ff, 0x080c, 0x623e, 0x1904, 0x336c, 0x9186,\r
++      0x007f, 0x0138, 0x080c, 0x6562, 0x0120, 0x2009, 0x0009, 0x0804,\r
++      0x3369, 0x080c, 0x4879, 0x1120, 0x2009, 0x0002, 0x0804, 0x3369,\r
++      0xa867, 0x0000, 0xa868, 0xc0fd, 0xa86a, 0x2001, 0x0100, 0x8007,\r
++      0xa80a, 0x080c, 0xbcfa, 0x1120, 0x2009, 0x0003, 0x0804, 0x3369,\r
++      0x7007, 0x0003, 0x701f, 0x517d, 0x0005, 0xa808, 0x8007, 0x9086,\r
++      0x0100, 0x1120, 0x2009, 0x0004, 0x0804, 0x3369, 0xa8e0, 0xa866,\r
++      0xa810, 0x8007, 0x9084, 0x00ff, 0x800c, 0xa814, 0x8007, 0x9084,\r
++      0x00ff, 0x8004, 0x9080, 0x0002, 0x9108, 0x8906, 0x8006, 0x8007,\r
++      0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x0004, 0x7a8c, 0x7b88,\r
++      0x7c9c, 0x7d98, 0x0804, 0x48c5, 0x080c, 0x4879, 0x1120, 0x2009,\r
++      0x0002, 0x0804, 0x3369, 0x7984, 0x9194, 0xff00, 0x918c, 0x00ff,\r
++      0x8217, 0x82ff, 0x1118, 0x7023, 0x1984, 0x0040, 0x92c6, 0x0001,\r
++      0x1118, 0x7023, 0x199e, 0x0010, 0x0804, 0x336c, 0x2009, 0x001a,\r
++      0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0xa85c, 0x9080, 0x0019, 0xaf60,\r
++      0x080c, 0x48c2, 0x701f, 0x51cd, 0x0005, 0x2001, 0x182d, 0x2003,\r
++      0x0001, 0xa85c, 0x9080, 0x0019, 0x2098, 0xa860, 0x20e0, 0x20a9,\r
++      0x001a, 0x7020, 0x20a0, 0x20e9, 0x0001, 0x4003, 0x0804, 0x3337,\r
++      0x080c, 0x4879, 0x1120, 0x2009, 0x0002, 0x0804, 0x3369, 0x7984,\r
++      0x9194, 0xff00, 0x918c, 0x00ff, 0x8217, 0x82ff, 0x1118, 0x2099,\r
++      0x1984, 0x0040, 0x92c6, 0x0001, 0x1118, 0x2099, 0x199e, 0x0010,\r
++      0x0804, 0x336c, 0xa85c, 0x9080, 0x0019, 0x20a0, 0xa860, 0x20e8,\r
++      0x20a9, 0x001a, 0x20e1, 0x0001, 0x4003, 0x2009, 0x001a, 0x7a8c,\r
++      0x7b88, 0x7c9c, 0x7d98, 0xa85c, 0x9080, 0x0019, 0xaf60, 0x0804,\r
++      0x48c5, 0x7884, 0x908a, 0x1000, 0x1a04, 0x336c, 0x0126, 0x2091,\r
++      0x8000, 0x8003, 0x800b, 0x810b, 0x9108, 0x00c6, 0x2061, 0x19cb,\r
++      0x6142, 0x00ce, 0x012e, 0x0804, 0x3337, 0x00c6, 0x080c, 0x6fb2,\r
++      0x1160, 0x080c, 0x7296, 0x080c, 0x5cd1, 0x9085, 0x0001, 0x080c,\r
++      0x6ff9, 0x080c, 0x6ee4, 0x080c, 0x0db4, 0x2061, 0x1800, 0x6030,\r
++      0xc09d, 0x6032, 0x080c, 0x5b90, 0x00ce, 0x0005, 0x00c6, 0x2001,\r
++      0x1800, 0x2004, 0x908e, 0x0000, 0x0904, 0x3369, 0x7884, 0x9005,\r
++      0x0188, 0x7888, 0x2061, 0x196d, 0x2c0c, 0x2062, 0x080c, 0x2a45,\r
++      0x01a0, 0x080c, 0x2a4d, 0x0188, 0x080c, 0x2a55, 0x0170, 0x2162,\r
++      0x0804, 0x336c, 0x2061, 0x0100, 0x6038, 0x9086, 0x0007, 0x1118,\r
++      0x2009, 0x0001, 0x0010, 0x2009, 0x0000, 0x7884, 0x9086, 0x0002,\r
++      0x1548, 0x2061, 0x0100, 0x6028, 0xc09c, 0x602a, 0x0026, 0x2011,\r
++      0x0003, 0x080c, 0x9771, 0x2011, 0x0002, 0x080c, 0x977b, 0x002e,\r
++      0x080c, 0x9662, 0x0036, 0x901e, 0x080c, 0x96d8, 0x003e, 0x60e3,\r
++      0x0000, 0x080c, 0xd8b4, 0x080c, 0xd8cf, 0x9085, 0x0001, 0x080c,\r
++      0x6ff9, 0x9006, 0x080c, 0x2b14, 0x2001, 0x1800, 0x2003, 0x0004,\r
++      0x6027, 0x0008, 0x00ce, 0x0804, 0x3337, 0x81ff, 0x0120, 0x2009,\r
++      0x0001, 0x0804, 0x3369, 0x080c, 0x539a, 0x0120, 0x2009, 0x0007,\r
++      0x0804, 0x3369, 0x7984, 0x7ea8, 0x96b4, 0x00ff, 0x080c, 0x623e,\r
++      0x1904, 0x336c, 0x9186, 0x007f, 0x0138, 0x080c, 0x6562, 0x0120,\r
++      0x2009, 0x0009, 0x0804, 0x3369, 0x080c, 0x4879, 0x1120, 0x2009,\r
++      0x0002, 0x0804, 0x3369, 0xa867, 0x0000, 0xa868, 0xc0fd, 0xa86a,\r
++      0x080c, 0xbcfd, 0x1120, 0x2009, 0x0003, 0x0804, 0x3369, 0x7007,\r
++      0x0003, 0x701f, 0x52cc, 0x0005, 0xa830, 0x9086, 0x0100, 0x1120,\r
++      0x2009, 0x0004, 0x0804, 0x3369, 0xa8e0, 0xa866, 0xa834, 0x8007,\r
++      0x800c, 0xa85c, 0x9080, 0x000c, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98,\r
++      0xaf60, 0x0804, 0x48c5, 0xa898, 0x9086, 0x000d, 0x1904, 0x3369,\r
++      0x2021, 0x4005, 0x0126, 0x2091, 0x8000, 0x0e04, 0x52f0, 0x0010,\r
++      0x012e, 0x0cc0, 0x7c36, 0x9486, 0x4000, 0x0118, 0x7833, 0x0011,\r
++      0x0010, 0x7833, 0x0010, 0x7883, 0x4005, 0xa998, 0x7986, 0xa9a4,\r
++      0x799a, 0xa9a8, 0x799e, 0x080c, 0x48b5, 0x2091, 0x4080, 0x2001,\r
++      0x0089, 0x2004, 0xd084, 0x190c, 0x1187, 0x7007, 0x0001, 0x2091,\r
++      0x5000, 0x700f, 0x0000, 0x012e, 0x0005, 0x0126, 0x2091, 0x8000,\r
++      0x00c6, 0x2061, 0x19cb, 0x7984, 0x6152, 0x614e, 0x6057, 0x0000,\r
++      0x604b, 0x0009, 0x7898, 0x606a, 0x789c, 0x6066, 0x7888, 0x6062,\r
++      0x788c, 0x605e, 0x2001, 0x19d9, 0x2044, 0x2001, 0x19e0, 0xa076,\r
++      0xa060, 0xa072, 0xa07b, 0x0001, 0xa07f, 0x0002, 0xa06b, 0x0000,\r
++      0xa09f, 0x0000, 0x00ce, 0x012e, 0x0804, 0x3337, 0x0126, 0x2091,\r
++      0x8000, 0x00b6, 0x00c6, 0x90e4, 0xc000, 0x0128, 0x0006, 0x080c,\r
++      0xbb64, 0x000e, 0x1198, 0xd0e4, 0x0160, 0x9180, 0x1000, 0x2004,\r
++      0x905d, 0x0160, 0x080c, 0x5ceb, 0x080c, 0x9db1, 0x0110, 0xb817,\r
++      0x0000, 0x9006, 0x00ce, 0x00be, 0x012e, 0x0005, 0x9085, 0x0001,\r
++      0x0cc8, 0x0126, 0x2091, 0x8000, 0x0156, 0x2010, 0x900e, 0x20a9,\r
++      0x0800, 0x0016, 0x9180, 0x1000, 0x2004, 0x9005, 0x0180, 0x9186,\r
++      0x007e, 0x0168, 0x9186, 0x007f, 0x0150, 0x9186, 0x0080, 0x0138,\r
++      0x9186, 0x00ff, 0x0120, 0x0026, 0x2200, 0x0801, 0x002e, 0x001e,\r
++      0x8108, 0x1f04, 0x5369, 0x015e, 0x012e, 0x0005, 0x2001, 0x1854,\r
++      0x2004, 0x0005, 0x2001, 0x1873, 0x2004, 0x0005, 0x0006, 0x2001,\r
++      0x1810, 0x2004, 0xd0d4, 0x000e, 0x0005, 0x2001, 0x180e, 0x2004,\r
++      0xd0b4, 0x0005, 0x2001, 0x1800, 0x2004, 0x9086, 0x0003, 0x0005,\r
++      0x0016, 0x00e6, 0x2071, 0x1894, 0x7108, 0x910d, 0x710a, 0x00ee,\r
++      0x001e, 0x0005, 0x79a4, 0x9182, 0x0081, 0x1a04, 0x336c, 0x810c,\r
++      0x0016, 0x080c, 0x4879, 0x080c, 0x0ef3, 0x2100, 0x2238, 0x7d84,\r
++      0x7c88, 0x7b8c, 0x7a90, 0x001e, 0x080c, 0x48c2, 0x701f, 0x53c1,\r
++      0x0005, 0x2079, 0x0000, 0x7d94, 0x7c98, 0x7ba8, 0x7aac, 0x79a4,\r
++      0x810c, 0x2061, 0x18ae, 0x2c44, 0xa770, 0xa074, 0x2071, 0x1894,\r
++      0x080c, 0x48c5, 0x701f, 0x53d5, 0x0005, 0x2061, 0x18ae, 0x2c44,\r
++      0x0016, 0x0026, 0xa270, 0xa174, 0x080c, 0x0efb, 0x002e, 0x001e,\r
++      0x080c, 0x0fa8, 0x9006, 0xa802, 0xa806, 0x0804, 0x3337, 0x0126,\r
++      0x0156, 0x0136, 0x0146, 0x01c6, 0x01d6, 0x00c6, 0x00d6, 0x00e6,\r
++      0x00f6, 0x2061, 0x0100, 0x2069, 0x0200, 0x2071, 0x1800, 0x6044,\r
++      0xd0a4, 0x11e8, 0xd084, 0x0118, 0x080c, 0x5590, 0x0068, 0xd08c,\r
++      0x0118, 0x080c, 0x5499, 0x0040, 0xd094, 0x0118, 0x080c, 0x5469,\r
++      0x0018, 0xd09c, 0x0108, 0x0099, 0x00fe, 0x00ee, 0x00de, 0x00ce,\r
++      0x01de, 0x01ce, 0x014e, 0x013e, 0x015e, 0x012e, 0x0005, 0x0016,\r
++      0x6128, 0xd19c, 0x1110, 0xc19d, 0x612a, 0x001e, 0x0c68, 0x0006,\r
++      0x7094, 0x9005, 0x000e, 0x0120, 0x7097, 0x0000, 0x708f, 0x0000,\r
++      0x624c, 0x9286, 0xf0f0, 0x1150, 0x6048, 0x9086, 0xf0f0, 0x0130,\r
++      0x624a, 0x6043, 0x0090, 0x6043, 0x0010, 0x0490, 0x9294, 0xff00,\r
++      0x9296, 0xf700, 0x0178, 0x7138, 0xd1a4, 0x1160, 0x6240, 0x9295,\r
++      0x0100, 0x6242, 0x9294, 0x0010, 0x0128, 0x2009, 0x00f7, 0x080c,\r
++      0x5c4d, 0x00f0, 0x6040, 0x9084, 0x0010, 0x9085, 0x0140, 0x6042,\r
++      0x6043, 0x0000, 0x7083, 0x0000, 0x709f, 0x0001, 0x70c3, 0x0000,\r
++      0x70db, 0x0000, 0x2009, 0x1c80, 0x200b, 0x0000, 0x7093, 0x0000,\r
++      0x7087, 0x000f, 0x2009, 0x000f, 0x2011, 0x5b33, 0x080c, 0x80ca,\r
++      0x0005, 0x2001, 0x1875, 0x2004, 0xd08c, 0x0110, 0x705b, 0xffff,\r
++      0x7084, 0x9005, 0x1528, 0x2011, 0x5b33, 0x080c, 0x8038, 0x6040,\r
++      0x9094, 0x0010, 0x9285, 0x0020, 0x6042, 0x20a9, 0x00c8, 0x6044,\r
++      0xd08c, 0x1168, 0x1f04, 0x547f, 0x6242, 0x7097, 0x0000, 0x6040,\r
++      0x9094, 0x0010, 0x9285, 0x0080, 0x6042, 0x6242, 0x0048, 0x6242,\r
++      0x7097, 0x0000, 0x708b, 0x0000, 0x9006, 0x080c, 0x5cd6, 0x0000,\r
++      0x0005, 0x7088, 0x908a, 0x0003, 0x1a0c, 0x0db4, 0x000b, 0x0005,\r
++      0x54a3, 0x54f4, 0x558f, 0x00f6, 0x0016, 0x6900, 0x918c, 0x0800,\r
++      0x708b, 0x0001, 0x2001, 0x015d, 0x2003, 0x0000, 0x6803, 0x00fc,\r
++      0x20a9, 0x0004, 0x6800, 0x9084, 0x00fc, 0x0120, 0x1f04, 0x54b2,\r
++      0x080c, 0x0db4, 0x68a0, 0x68a2, 0x689c, 0x689e, 0x6898, 0x689a,\r
++      0xa001, 0x918d, 0x1600, 0x6902, 0x001e, 0x6837, 0x0020, 0x080c,\r
++      0x5cb2, 0x2079, 0x1c00, 0x7833, 0x1101, 0x7837, 0x0000, 0x20e1,\r
++      0x0001, 0x2099, 0x1805, 0x20e9, 0x0001, 0x20a1, 0x1c0e, 0x20a9,\r
++      0x0004, 0x4003, 0x080c, 0x9c3f, 0x20e1, 0x0001, 0x2099, 0x1c00,\r
++      0x20e9, 0x0000, 0x20a1, 0x0240, 0x20a9, 0x0014, 0x4003, 0x60c3,\r
++      0x000c, 0x600f, 0x0000, 0x080c, 0x5b64, 0x00fe, 0x9006, 0x708e,\r
++      0x6043, 0x0008, 0x6042, 0x0005, 0x00f6, 0x708c, 0x708f, 0x0000,\r
++      0x9025, 0x0904, 0x556c, 0x6020, 0xd0b4, 0x1904, 0x556a, 0x719c,\r
++      0x81ff, 0x0904, 0x5558, 0x9486, 0x000c, 0x1904, 0x5565, 0x9480,\r
++      0x0018, 0x8004, 0x20a8, 0x080c, 0x5cab, 0x2011, 0x0260, 0x2019,\r
++      0x1c00, 0x220c, 0x2304, 0x9106, 0x11e8, 0x8210, 0x8318, 0x1f04,\r
++      0x5511, 0x6043, 0x0004, 0x2061, 0x0140, 0x605b, 0xbc94, 0x605f,\r
++      0xf0f0, 0x2061, 0x0100, 0x6043, 0x0006, 0x708b, 0x0002, 0x7097,\r
++      0x0002, 0x2009, 0x07d0, 0x2011, 0x5b3a, 0x080c, 0x80ca, 0x080c,\r
++      0x5cb2, 0x04c0, 0x080c, 0x5cab, 0x2079, 0x0260, 0x7930, 0x918e,\r
++      0x1101, 0x1558, 0x7834, 0x9005, 0x1540, 0x7900, 0x918c, 0x00ff,\r
++      0x1118, 0x7804, 0x9005, 0x0190, 0x080c, 0x5cab, 0x2011, 0x026e,\r
++      0x2019, 0x1805, 0x20a9, 0x0004, 0x220c, 0x2304, 0x9102, 0x0230,\r
++      0x11a0, 0x8210, 0x8318, 0x1f04, 0x554c, 0x0078, 0x709f, 0x0000,\r
++      0x080c, 0x5cab, 0x20e1, 0x0000, 0x2099, 0x0260, 0x20e9, 0x0001,\r
++      0x20a1, 0x1c00, 0x20a9, 0x0014, 0x4003, 0x6043, 0x0008, 0x6043,\r
++      0x0000, 0x0010, 0x00fe, 0x0005, 0x6040, 0x9085, 0x0100, 0x6042,\r
++      0x6020, 0xd0b4, 0x1db8, 0x080c, 0x9c3f, 0x20e1, 0x0001, 0x2099,\r
++      0x1c00, 0x20e9, 0x0000, 0x20a1, 0x0240, 0x20a9, 0x0014, 0x4003,\r
++      0x60c3, 0x000c, 0x2011, 0x19c2, 0x2013, 0x0000, 0x708f, 0x0000,\r
++      0x60a3, 0x0056, 0x60a7, 0x9575, 0x080c, 0x93a3, 0x08d8, 0x0005,\r
++      0x7094, 0x908a, 0x001d, 0x1a0c, 0x0db4, 0x000b, 0x0005, 0x55c1,\r
++      0x55d4, 0x55fd, 0x561d, 0x5643, 0x5672, 0x5698, 0x56d0, 0x56f6,\r
++      0x5724, 0x575f, 0x5797, 0x57b5, 0x57e0, 0x5802, 0x581d, 0x5827,\r
++      0x585b, 0x5881, 0x58b0, 0x58d6, 0x590e, 0x5952, 0x598f, 0x59b0,\r
++      0x5a09, 0x5a2b, 0x5a59, 0x5a59, 0x00c6, 0x2061, 0x1800, 0x6003,\r
++      0x0007, 0x2061, 0x0100, 0x6004, 0x9084, 0xfff9, 0x6006, 0x00ce,\r
++      0x0005, 0x2061, 0x0140, 0x605b, 0xbc94, 0x605f, 0xf0f0, 0x2061,\r
++      0x0100, 0x6043, 0x0002, 0x7097, 0x0001, 0x2009, 0x07d0, 0x2011,\r
++      0x5b3a, 0x080c, 0x80ca, 0x0005, 0x00f6, 0x708c, 0x9086, 0x0014,\r
++      0x1510, 0x6042, 0x6020, 0xd0b4, 0x11f0, 0x080c, 0x5cab, 0x2079,\r
++      0x0260, 0x7a30, 0x9296, 0x1102, 0x11a0, 0x7834, 0x9005, 0x1188,\r
++      0x7a38, 0xd2fc, 0x0128, 0x70c0, 0x9005, 0x1110, 0x70c3, 0x0001,\r
++      0x2011, 0x5b3a, 0x080c, 0x8038, 0x7097, 0x0010, 0x080c, 0x5827,\r
++      0x0010, 0x708f, 0x0000, 0x00fe, 0x0005, 0x00f6, 0x7097, 0x0003,\r
++      0x6043, 0x0004, 0x2011, 0x5b3a, 0x080c, 0x8038, 0x080c, 0x5c2f,\r
++      0x2079, 0x0240, 0x7833, 0x1102, 0x7837, 0x0000, 0x20a9, 0x0008,\r
++      0x9f88, 0x000e, 0x200b, 0x0000, 0x8108, 0x1f04, 0x5612, 0x60c3,\r
++      0x0014, 0x080c, 0x5b64, 0x00fe, 0x0005, 0x00f6, 0x708c, 0x9005,\r
++      0x0500, 0x2011, 0x5b3a, 0x080c, 0x8038, 0x9086, 0x0014, 0x11b8,\r
++      0x080c, 0x5cab, 0x2079, 0x0260, 0x7a30, 0x9296, 0x1102, 0x1178,\r
++      0x7834, 0x9005, 0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70c0, 0x9005,\r
++      0x1110, 0x70c3, 0x0001, 0x7097, 0x0004, 0x0029, 0x0010, 0x080c,\r
++      0x5c87, 0x00fe, 0x0005, 0x00f6, 0x7097, 0x0005, 0x080c, 0x5c2f,\r
++      0x2079, 0x0240, 0x7833, 0x1103, 0x7837, 0x0000, 0x080c, 0x5cab,\r
++      0x080c, 0x5c8e, 0x1170, 0x7080, 0x9005, 0x1158, 0x7158, 0x9186,\r
++      0xffff, 0x0138, 0x2011, 0x0008, 0x080c, 0x5ae7, 0x0168, 0x080c,\r
++      0x5c64, 0x20a9, 0x0008, 0x20e1, 0x0000, 0x2099, 0x026e, 0x20e9,\r
++      0x0000, 0x20a1, 0x024e, 0x4003, 0x60c3, 0x0014, 0x080c, 0x5b64,\r
++      0x00fe, 0x0005, 0x00f6, 0x708c, 0x9005, 0x0500, 0x2011, 0x5b3a,\r
++      0x080c, 0x8038, 0x9086, 0x0014, 0x11b8, 0x080c, 0x5cab, 0x2079,\r
++      0x0260, 0x7a30, 0x9296, 0x1103, 0x1178, 0x7834, 0x9005, 0x1160,\r
++      0x7a38, 0xd2fc, 0x0128, 0x70c0, 0x9005, 0x1110, 0x70c3, 0x0001,\r
++      0x7097, 0x0006, 0x0029, 0x0010, 0x080c, 0x5c87, 0x00fe, 0x0005,\r
++      0x00f6, 0x7097, 0x0007, 0x080c, 0x5c2f, 0x2079, 0x0240, 0x7833,\r
++      0x1104, 0x7837, 0x0000, 0x080c, 0x5cab, 0x080c, 0x5c8e, 0x11b8,\r
++      0x7080, 0x9005, 0x11a0, 0x7160, 0x9186, 0xffff, 0x0180, 0x9180,\r
++      0x3138, 0x200d, 0x918c, 0xff00, 0x810f, 0x2011, 0x0008, 0x080c,\r
++      0x5ae7, 0x0180, 0x080c, 0x4c98, 0x0110, 0x080c, 0x26cc, 0x20a9,\r
++      0x0008, 0x20e1, 0x0000, 0x2099, 0x026e, 0x20e9, 0x0000, 0x20a1,\r
++      0x024e, 0x4003, 0x60c3, 0x0014, 0x080c, 0x5b64, 0x00fe, 0x0005,\r
++      0x00f6, 0x708c, 0x9005, 0x0500, 0x2011, 0x5b3a, 0x080c, 0x8038,\r
++      0x9086, 0x0014, 0x11b8, 0x080c, 0x5cab, 0x2079, 0x0260, 0x7a30,\r
++      0x9296, 0x1104, 0x1178, 0x7834, 0x9005, 0x1160, 0x7a38, 0xd2fc,\r
++      0x0128, 0x70c0, 0x9005, 0x1110, 0x70c3, 0x0001, 0x7097, 0x0008,\r
++      0x0029, 0x0010, 0x080c, 0x5c87, 0x00fe, 0x0005, 0x00f6, 0x7097,\r
++      0x0009, 0x080c, 0x5c2f, 0x2079, 0x0240, 0x7833, 0x1105, 0x7837,\r
++      0x0100, 0x080c, 0x5c8e, 0x1150, 0x7080, 0x9005, 0x1138, 0x080c,\r
++      0x5a5a, 0x1188, 0x9085, 0x0001, 0x080c, 0x26cc, 0x20a9, 0x0008,\r
++      0x080c, 0x5cab, 0x20e1, 0x0000, 0x2099, 0x026e, 0x20e9, 0x0000,\r
++      0x20a1, 0x024e, 0x4003, 0x60c3, 0x0014, 0x080c, 0x5b64, 0x0010,\r
++      0x080c, 0x55b4, 0x00fe, 0x0005, 0x00f6, 0x708c, 0x9005, 0x05a8,\r
++      0x2011, 0x5b3a, 0x080c, 0x8038, 0x9086, 0x0014, 0x1560, 0x080c,\r
++      0x5cab, 0x2079, 0x0260, 0x7a30, 0x9296, 0x1105, 0x1520, 0x7834,\r
++      0x9084, 0x0100, 0x2011, 0x0100, 0x921e, 0x1160, 0x7a38, 0xd2fc,\r
++      0x0128, 0x70c0, 0x9005, 0x1110, 0x70c3, 0x0001, 0x7097, 0x000a,\r
++      0x00b1, 0x0098, 0x9005, 0x1178, 0x7a38, 0xd2fc, 0x0128, 0x70c0,\r
++      0x9005, 0x1110, 0x70c3, 0x0001, 0x7093, 0x0000, 0x7097, 0x000e,\r
++      0x080c, 0x5802, 0x0010, 0x080c, 0x5c87, 0x00fe, 0x0005, 0x00f6,\r
++      0x7097, 0x000b, 0x2011, 0x1c0e, 0x20e9, 0x0001, 0x22a0, 0x20a9,\r
++      0x0040, 0x2019, 0xffff, 0x4304, 0x080c, 0x5c2f, 0x2079, 0x0240,\r
++      0x7833, 0x1106, 0x7837, 0x0000, 0x080c, 0x5c8e, 0x0118, 0x2013,\r
++      0x0000, 0x0020, 0x705c, 0x9085, 0x0100, 0x2012, 0x20a9, 0x0040,\r
++      0x2009, 0x024e, 0x2011, 0x1c0e, 0x220e, 0x8210, 0x8108, 0x9186,\r
++      0x0260, 0x1128, 0x6810, 0x8000, 0x6812, 0x2009, 0x0240, 0x1f04,\r
++      0x5784, 0x60c3, 0x0084, 0x080c, 0x5b64, 0x00fe, 0x0005, 0x00f6,\r
++      0x708c, 0x9005, 0x01c0, 0x2011, 0x5b3a, 0x080c, 0x8038, 0x9086,\r
++      0x0084, 0x1178, 0x080c, 0x5cab, 0x2079, 0x0260, 0x7a30, 0x9296,\r
++      0x1106, 0x1138, 0x7834, 0x9005, 0x1120, 0x7097, 0x000c, 0x0029,\r
++      0x0010, 0x080c, 0x5c87, 0x00fe, 0x0005, 0x00f6, 0x7097, 0x000d,\r
++      0x080c, 0x5c2f, 0x2079, 0x0240, 0x7833, 0x1107, 0x7837, 0x0000,\r
++      0x080c, 0x5cab, 0x20a9, 0x0040, 0x2011, 0x026e, 0x2009, 0x024e,\r
++      0x220e, 0x8210, 0x8108, 0x9186, 0x0260, 0x1150, 0x6810, 0x8000,\r
++      0x6812, 0x2009, 0x0240, 0x6814, 0x8000, 0x6816, 0x2011, 0x0260,\r
++      0x1f04, 0x57c8, 0x60c3, 0x0084, 0x080c, 0x5b64, 0x00fe, 0x0005,\r
++      0x00f6, 0x708c, 0x9005, 0x01e0, 0x2011, 0x5b3a, 0x080c, 0x8038,\r
++      0x9086, 0x0084, 0x1198, 0x080c, 0x5cab, 0x2079, 0x0260, 0x7a30,\r
++      0x9296, 0x1107, 0x1158, 0x7834, 0x9005, 0x1140, 0x7093, 0x0001,\r
++      0x080c, 0x5c01, 0x7097, 0x000e, 0x0029, 0x0010, 0x080c, 0x5c87,\r
++      0x00fe, 0x0005, 0x918d, 0x0001, 0x080c, 0x5cd6, 0x7097, 0x000f,\r
++      0x708f, 0x0000, 0x2061, 0x0140, 0x605b, 0xbc85, 0x605f, 0xb5b5,\r
++      0x2061, 0x0100, 0x6043, 0x0005, 0x6043, 0x0004, 0x2009, 0x07d0,\r
++      0x2011, 0x5b3a, 0x080c, 0x802c, 0x0005, 0x708c, 0x9005, 0x0130,\r
++      0x2011, 0x5b3a, 0x080c, 0x8038, 0x7097, 0x0000, 0x0005, 0x7097,\r
++      0x0011, 0x080c, 0x9c3f, 0x080c, 0x5cab, 0x20e1, 0x0000, 0x2099,\r
++      0x0260, 0x20e9, 0x0000, 0x20a1, 0x0240, 0x748c, 0x9480, 0x0018,\r
++      0x9080, 0x0007, 0x9084, 0x03f8, 0x8004, 0x20a8, 0x4003, 0x080c,\r
++      0x5c8e, 0x11a0, 0x7178, 0x81ff, 0x0188, 0x900e, 0x707c, 0x9084,\r
++      0x00ff, 0x0160, 0x080c, 0x2663, 0x9186, 0x007e, 0x0138, 0x9186,\r
++      0x0080, 0x0120, 0x2011, 0x0008, 0x080c, 0x5ae7, 0x60c3, 0x0014,\r
++      0x080c, 0x5b64, 0x0005, 0x00f6, 0x708c, 0x9005, 0x0500, 0x2011,\r
++      0x5b3a, 0x080c, 0x8038, 0x9086, 0x0014, 0x11b8, 0x080c, 0x5cab,\r
++      0x2079, 0x0260, 0x7a30, 0x9296, 0x1103, 0x1178, 0x7834, 0x9005,\r
++      0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70c0, 0x9005, 0x1110, 0x70c3,\r
++      0x0001, 0x7097, 0x0012, 0x0029, 0x0010, 0x708f, 0x0000, 0x00fe,\r
++      0x0005, 0x00f6, 0x7097, 0x0013, 0x080c, 0x5c3d, 0x2079, 0x0240,\r
++      0x7833, 0x1103, 0x7837, 0x0000, 0x080c, 0x5cab, 0x080c, 0x5c8e,\r
++      0x1170, 0x7080, 0x9005, 0x1158, 0x7158, 0x9186, 0xffff, 0x0138,\r
++      0x2011, 0x0008, 0x080c, 0x5ae7, 0x0168, 0x080c, 0x5c64, 0x20a9,\r
++      0x0008, 0x20e1, 0x0000, 0x2099, 0x026e, 0x20e9, 0x0000, 0x20a1,\r
++      0x024e, 0x4003, 0x60c3, 0x0014, 0x080c, 0x5b64, 0x00fe, 0x0005,\r
++      0x00f6, 0x708c, 0x9005, 0x0500, 0x2011, 0x5b3a, 0x080c, 0x8038,\r
++      0x9086, 0x0014, 0x11b8, 0x080c, 0x5cab, 0x2079, 0x0260, 0x7a30,\r
++      0x9296, 0x1104, 0x1178, 0x7834, 0x9005, 0x1160, 0x7a38, 0xd2fc,\r
++      0x0128, 0x70c0, 0x9005, 0x1110, 0x70c3, 0x0001, 0x7097, 0x0014,\r
++      0x0029, 0x0010, 0x708f, 0x0000, 0x00fe, 0x0005, 0x00f6, 0x7097,\r
++      0x0015, 0x080c, 0x5c3d, 0x2079, 0x0240, 0x7833, 0x1104, 0x7837,\r
++      0x0000, 0x080c, 0x5cab, 0x080c, 0x5c8e, 0x11b8, 0x7080, 0x9005,\r
++      0x11a0, 0x7160, 0x9186, 0xffff, 0x0180, 0x9180, 0x3138, 0x200d,\r
++      0x918c, 0xff00, 0x810f, 0x2011, 0x0008, 0x080c, 0x5ae7, 0x0180,\r
++      0x080c, 0x4c98, 0x0110, 0x080c, 0x26cc, 0x20a9, 0x0008, 0x20e1,\r
++      0x0000, 0x2099, 0x026e, 0x20e9, 0x0000, 0x20a1, 0x024e, 0x4003,\r
++      0x60c3, 0x0014, 0x080c, 0x5b64, 0x00fe, 0x0005, 0x00f6, 0x708c,\r
++      0x9005, 0x05f0, 0x2011, 0x5b3a, 0x080c, 0x8038, 0x9086, 0x0014,\r
++      0x15a8, 0x080c, 0x5cab, 0x2079, 0x0260, 0x7a30, 0x9296, 0x1105,\r
++      0x1568, 0x7834, 0x9084, 0x0100, 0x2011, 0x0100, 0x921e, 0x1168,\r
++      0x9085, 0x0001, 0x080c, 0x5cd6, 0x7a38, 0xd2fc, 0x0128, 0x70c0,\r
++      0x9005, 0x1110, 0x70c3, 0x0001, 0x0080, 0x9005, 0x11b8, 0x7a38,\r
++      0xd2fc, 0x0128, 0x70c0, 0x9005, 0x1110, 0x70c3, 0x0001, 0x9085,\r
++      0x0001, 0x080c, 0x5cd6, 0x7093, 0x0000, 0x7a38, 0xd2f4, 0x0110,\r
++      0x70db, 0x0008, 0x7097, 0x0016, 0x0029, 0x0010, 0x708f, 0x0000,\r
++      0x00fe, 0x0005, 0x080c, 0x9c3f, 0x080c, 0x5cab, 0x20e1, 0x0000,\r
++      0x2099, 0x0260, 0x20e9, 0x0000, 0x20a1, 0x0240, 0x20a9, 0x000e,\r
++      0x4003, 0x2011, 0x026d, 0x2204, 0x9084, 0x0100, 0x2011, 0x024d,\r
++      0x2012, 0x2011, 0x026e, 0x7097, 0x0017, 0x080c, 0x5c8e, 0x1150,\r
++      0x7080, 0x9005, 0x1138, 0x080c, 0x5a5a, 0x1188, 0x9085, 0x0001,\r
++      0x080c, 0x26cc, 0x20a9, 0x0008, 0x080c, 0x5cab, 0x20e1, 0x0000,\r
++      0x2099, 0x026e, 0x20e9, 0x0000, 0x20a1, 0x024e, 0x4003, 0x60c3,\r
++      0x0014, 0x080c, 0x5b64, 0x0010, 0x080c, 0x55b4, 0x0005, 0x00f6,\r
++      0x708c, 0x9005, 0x01d8, 0x2011, 0x5b3a, 0x080c, 0x8038, 0x9086,\r
++      0x0084, 0x1190, 0x080c, 0x5cab, 0x2079, 0x0260, 0x7a30, 0x9296,\r
++      0x1106, 0x1150, 0x7834, 0x9005, 0x1138, 0x9006, 0x080c, 0x5cd6,\r
++      0x7097, 0x0018, 0x0029, 0x0010, 0x708f, 0x0000, 0x00fe, 0x0005,\r
++      0x00f6, 0x7097, 0x0019, 0x080c, 0x5c3d, 0x2079, 0x0240, 0x7833,\r
++      0x1106, 0x7837, 0x0000, 0x080c, 0x5cab, 0x2009, 0x026e, 0x2039,\r
++      0x1c0e, 0x20a9, 0x0040, 0x213e, 0x8738, 0x8108, 0x9186, 0x0280,\r
++      0x1128, 0x6814, 0x8000, 0x6816, 0x2009, 0x0260, 0x1f04, 0x59c3,\r
++      0x2039, 0x1c0e, 0x080c, 0x5c8e, 0x11e8, 0x2728, 0x2514, 0x8207,\r
++      0x9084, 0x00ff, 0x8000, 0x2018, 0x9294, 0x00ff, 0x8007, 0x9205,\r
++      0x202a, 0x705c, 0x2310, 0x8214, 0x92a0, 0x1c0e, 0x2414, 0x938c,\r
++      0x0001, 0x0118, 0x9294, 0xff00, 0x0018, 0x9294, 0x00ff, 0x8007,\r
++      0x9215, 0x2222, 0x20a9, 0x0040, 0x2009, 0x024e, 0x270e, 0x8738,\r
++      0x8108, 0x9186, 0x0260, 0x1128, 0x6810, 0x8000, 0x6812, 0x2009,\r
++      0x0240, 0x1f04, 0x59f6, 0x60c3, 0x0084, 0x080c, 0x5b64, 0x00fe,\r
++      0x0005, 0x00f6, 0x708c, 0x9005, 0x01e0, 0x2011, 0x5b3a, 0x080c,\r
++      0x8038, 0x9086, 0x0084, 0x1198, 0x080c, 0x5cab, 0x2079, 0x0260,\r
++      0x7a30, 0x9296, 0x1107, 0x1158, 0x7834, 0x9005, 0x1140, 0x7093,\r
++      0x0001, 0x080c, 0x5c01, 0x7097, 0x001a, 0x0029, 0x0010, 0x708f,\r
++      0x0000, 0x00fe, 0x0005, 0x9085, 0x0001, 0x080c, 0x5cd6, 0x7097,\r
++      0x001b, 0x080c, 0x9c3f, 0x080c, 0x5cab, 0x2011, 0x0260, 0x2009,\r
++      0x0240, 0x748c, 0x9480, 0x0018, 0x9080, 0x0007, 0x9084, 0x03f8,\r
++      0x8004, 0x20a8, 0x220e, 0x8210, 0x8108, 0x9186, 0x0260, 0x1150,\r
++      0x6810, 0x8000, 0x6812, 0x2009, 0x0240, 0x6814, 0x8000, 0x6816,\r
++      0x2011, 0x0260, 0x1f04, 0x5a42, 0x60c3, 0x0084, 0x080c, 0x5b64,\r
++      0x0005, 0x0005, 0x0086, 0x0096, 0x2029, 0x1854, 0x252c, 0x20a9,\r
++      0x0008, 0x2041, 0x1c0e, 0x20e9, 0x0001, 0x28a0, 0x080c, 0x5cab,\r
++      0x20e1, 0x0000, 0x2099, 0x026e, 0x4003, 0x20a9, 0x0008, 0x2011,\r
++      0x0007, 0xd5d4, 0x0108, 0x9016, 0x2800, 0x9200, 0x200c, 0x91a6,\r
++      0xffff, 0x1148, 0xd5d4, 0x0110, 0x8210, 0x0008, 0x8211, 0x1f04,\r
++      0x5a74, 0x0804, 0x5ae3, 0x82ff, 0x1160, 0xd5d4, 0x0120, 0x91a6,\r
++      0x3fff, 0x0d90, 0x0020, 0x91a6, 0x3fff, 0x0904, 0x5ae3, 0x918d,\r
++      0xc000, 0x20a9, 0x0010, 0x2019, 0x0001, 0xd5d4, 0x0110, 0x2019,\r
++      0x0010, 0x2120, 0xd5d4, 0x0110, 0x8423, 0x0008, 0x8424, 0x1240,\r
++      0xd5d4, 0x0110, 0x8319, 0x0008, 0x8318, 0x1f04, 0x5a9a, 0x04d8,\r
++      0x23a8, 0x2021, 0x0001, 0x8426, 0x8425, 0x1f04, 0x5aac, 0x2328,\r
++      0x8529, 0x92be, 0x0007, 0x0158, 0x0006, 0x2039, 0x0007, 0x2200,\r
++      0x973a, 0x000e, 0x27a8, 0x95a8, 0x0010, 0x1f04, 0x5abb, 0x755a,\r
++      0x95c8, 0x3138, 0x292d, 0x95ac, 0x00ff, 0x757e, 0x6532, 0x6536,\r
++      0x0016, 0x2508, 0x080c, 0x26ac, 0x001e, 0x60e7, 0x0000, 0x65ea,\r
++      0x2018, 0x2304, 0x9405, 0x201a, 0x7083, 0x0001, 0x20e9, 0x0000,\r
++      0x20a1, 0x024e, 0x20e1, 0x0001, 0x2898, 0x20a9, 0x0008, 0x4003,\r
++      0x9085, 0x0001, 0x0008, 0x9006, 0x009e, 0x008e, 0x0005, 0x0156,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x22a8, 0x20e1, 0x0000, 0x2099,\r
++      0x026e, 0x20e9, 0x0000, 0x2011, 0x024e, 0x22a0, 0x4003, 0x014e,\r
++      0x013e, 0x01de, 0x01ce, 0x015e, 0x2118, 0x9026, 0x2001, 0x0007,\r
++      0x939a, 0x0010, 0x0218, 0x8420, 0x8001, 0x0cd0, 0x2118, 0x84ff,\r
++      0x0120, 0x939a, 0x0010, 0x8421, 0x1de0, 0x2021, 0x0001, 0x83ff,\r
++      0x0118, 0x8423, 0x8319, 0x1de8, 0x9238, 0x2029, 0x026e, 0x9528,\r
++      0x2504, 0x942c, 0x11b8, 0x9405, 0x203a, 0x715a, 0x91a0, 0x3138,\r
++      0x242d, 0x95ac, 0x00ff, 0x757e, 0x6532, 0x6536, 0x0016, 0x2508,\r
++      0x080c, 0x26ac, 0x001e, 0x60e7, 0x0000, 0x65ea, 0x7083, 0x0001,\r
++      0x9084, 0x0000, 0x0005, 0x00e6, 0x2071, 0x1800, 0x7087, 0x0000,\r
++      0x00ee, 0x0005, 0x00e6, 0x00f6, 0x2079, 0x0100, 0x2071, 0x0140,\r
++      0x080c, 0x5bf0, 0x080c, 0x93ac, 0x7004, 0x9084, 0x4000, 0x0110,\r
++      0x080c, 0x2b24, 0x0126, 0x2091, 0x8000, 0x2071, 0x1825, 0x2073,\r
++      0x0000, 0x7840, 0x0026, 0x0016, 0x2009, 0x00f7, 0x080c, 0x5c4d,\r
++      0x001e, 0x9094, 0x0010, 0x9285, 0x0080, 0x7842, 0x7a42, 0x002e,\r
++      0x012e, 0x00fe, 0x00ee, 0x0005, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0x29ca, 0x0228, 0x2011, 0x0101, 0x2204, 0xc0c5, 0x2012, 0x2011,\r
++      0x19c2, 0x2013, 0x0000, 0x708f, 0x0000, 0x012e, 0x60a3, 0x0056,\r
++      0x60a7, 0x9575, 0x080c, 0x93a3, 0x6144, 0xd184, 0x0120, 0x7194,\r
++      0x918d, 0x2000, 0x0018, 0x7188, 0x918d, 0x1000, 0x2011, 0x196a,\r
++      0x2112, 0x2009, 0x07d0, 0x2011, 0x5b3a, 0x080c, 0x80ca, 0x0005,\r
++      0x0016, 0x0026, 0x00c6, 0x0126, 0x2091, 0x8000, 0x080c, 0x9db8,\r
++      0x2009, 0x00f7, 0x080c, 0x5c4d, 0x2061, 0x19cb, 0x900e, 0x611a,\r
++      0x611e, 0x6172, 0x6176, 0x2061, 0x1800, 0x6003, 0x0001, 0x2061,\r
++      0x0100, 0x6043, 0x0090, 0x6043, 0x0010, 0x2009, 0x196a, 0x200b,\r
++      0x0000, 0x2009, 0x002d, 0x2011, 0x5bbc, 0x080c, 0x802c, 0x012e,\r
++      0x00ce, 0x002e, 0x001e, 0x0005, 0x00e6, 0x0006, 0x0126, 0x2091,\r
++      0x8000, 0x0471, 0x2071, 0x0100, 0x080c, 0x93ac, 0x2071, 0x0140,\r
++      0x7004, 0x9084, 0x4000, 0x0110, 0x080c, 0x2b24, 0x080c, 0x6fba,\r
++      0x0188, 0x080c, 0x6fd5, 0x1170, 0x080c, 0x72a0, 0x0016, 0x080c,\r
++      0x277b, 0x2001, 0x193e, 0x2102, 0x001e, 0x080c, 0x729b, 0x080c,\r
++      0x6ee4, 0x0050, 0x2009, 0x0001, 0x080c, 0x2a63, 0x2001, 0x0001,\r
++      0x080c, 0x260c, 0x080c, 0x5b90, 0x012e, 0x000e, 0x00ee, 0x0005,\r
++      0x2001, 0x180e, 0x2004, 0xd0bc, 0x0158, 0x0026, 0x0036, 0x2011,\r
++      0x8017, 0x2001, 0x196a, 0x201c, 0x080c, 0x48d9, 0x003e, 0x002e,\r
++      0x0005, 0x20a9, 0x0012, 0x20e9, 0x0001, 0x20a1, 0x1c80, 0x080c,\r
++      0x5cab, 0x20e9, 0x0000, 0x2099, 0x026e, 0x0099, 0x20a9, 0x0020,\r
++      0x080c, 0x5ca5, 0x2099, 0x0260, 0x20a1, 0x1c92, 0x0051, 0x20a9,\r
++      0x000e, 0x080c, 0x5ca8, 0x2099, 0x0260, 0x20a1, 0x1cb2, 0x0009,\r
++      0x0005, 0x0016, 0x0026, 0x3410, 0x3308, 0x2104, 0x8007, 0x2012,\r
++      0x8108, 0x8210, 0x1f04, 0x5c25, 0x002e, 0x001e, 0x0005, 0x080c,\r
++      0x9c3f, 0x20e1, 0x0001, 0x2099, 0x1c00, 0x20e9, 0x0000, 0x20a1,\r
++      0x0240, 0x20a9, 0x000c, 0x4003, 0x0005, 0x080c, 0x9c3f, 0x080c,\r
++      0x5cab, 0x20e1, 0x0000, 0x2099, 0x0260, 0x20e9, 0x0000, 0x20a1,\r
++      0x0240, 0x20a9, 0x000c, 0x4003, 0x0005, 0x00c6, 0x0006, 0x2061,\r
++      0x0100, 0x810f, 0x2001, 0x1833, 0x2004, 0x9005, 0x1138, 0x2001,\r
++      0x1817, 0x2004, 0x9084, 0x00ff, 0x9105, 0x0010, 0x9185, 0x00f7,\r
++      0x604a, 0x000e, 0x00ce, 0x0005, 0x0016, 0x0046, 0x080c, 0x655e,\r
++      0x0158, 0x9006, 0x2020, 0x2009, 0x002a, 0x080c, 0xd52a, 0x2001,\r
++      0x180c, 0x200c, 0xc195, 0x2102, 0x2019, 0x002a, 0x900e, 0x080c,\r
++      0x2fa5, 0x080c, 0xc212, 0x0140, 0x0036, 0x2019, 0xffff, 0x2021,\r
++      0x0007, 0x080c, 0x4a76, 0x003e, 0x004e, 0x001e, 0x0005, 0x080c,\r
++      0x5b90, 0x7097, 0x0000, 0x708f, 0x0000, 0x0005, 0x0006, 0x2001,\r
++      0x180c, 0x2004, 0xd09c, 0x0100, 0x000e, 0x0005, 0x0006, 0x0016,\r
++      0x0126, 0x2091, 0x8000, 0x2001, 0x0101, 0x200c, 0x918d, 0x0006,\r
++      0x2102, 0x012e, 0x001e, 0x000e, 0x0005, 0x2009, 0x0001, 0x0020,\r
++      0x2009, 0x0002, 0x0008, 0x900e, 0x6814, 0x9084, 0xffc0, 0x910d,\r
++      0x6916, 0x0005, 0x00f6, 0x0156, 0x0146, 0x01d6, 0x9006, 0x20a9,\r
++      0x0080, 0x20e9, 0x0001, 0x20a1, 0x1c00, 0x4004, 0x2079, 0x1c00,\r
++      0x7803, 0x2200, 0x7807, 0x00ef, 0x780f, 0x00ef, 0x7813, 0x0138,\r
++      0x7823, 0xffff, 0x7827, 0xffff, 0x01de, 0x014e, 0x015e, 0x00fe,\r
++      0x0005, 0x2001, 0x1800, 0x2003, 0x0001, 0x0005, 0x2001, 0x1977,\r
++      0x0118, 0x2003, 0x0001, 0x0010, 0x2003, 0x0000, 0x0005, 0x0156,\r
++      0x20a9, 0x0800, 0x2009, 0x1000, 0x9006, 0x200a, 0x8108, 0x1f04,\r
++      0x5ce5, 0x015e, 0x0005, 0x00d6, 0x0036, 0x0156, 0x0136, 0x0146,\r
++      0x2069, 0x1853, 0x9006, 0xb802, 0xb8be, 0xb807, 0x0707, 0xb80a,\r
++      0xb80e, 0xb812, 0x9198, 0x3138, 0x231d, 0x939c, 0x00ff, 0xbb16,\r
++      0x0016, 0x0026, 0xb8b2, 0x080c, 0x9db1, 0x1120, 0x9192, 0x007e,\r
++      0x1208, 0xbbb2, 0x20a9, 0x0004, 0xb8b4, 0x20e8, 0xb9b8, 0x9198,\r
++      0x0006, 0x9006, 0x23a0, 0x4004, 0x20a9, 0x0004, 0x9198, 0x000a,\r
++      0x23a0, 0x4004, 0x002e, 0x001e, 0xb83e, 0xb842, 0xb84e, 0xb852,\r
++      0xb856, 0xb85a, 0xb85e, 0xb862, 0xb866, 0xb86a, 0xb86f, 0x0100,\r
++      0xb872, 0xb876, 0xb87a, 0xb88a, 0xb88e, 0xb893, 0x0008, 0xb896,\r
++      0xb89a, 0xb89e, 0xb8ae, 0xb9a2, 0x0096, 0xb8a4, 0x904d, 0x0110,\r
++      0x080c, 0x101d, 0xb8a7, 0x0000, 0x009e, 0x9006, 0xb84a, 0x6810,\r
++      0xb83a, 0x680c, 0xb846, 0x6814, 0x9084, 0x00ff, 0xb842, 0x014e,\r
++      0x013e, 0x015e, 0x003e, 0x00de, 0x0005, 0x0126, 0x2091, 0x8000,\r
++      0xa974, 0xae78, 0x9684, 0x3fff, 0x9082, 0x4000, 0x1a04, 0x5dbb,\r
++      0x9182, 0x0800, 0x1a04, 0x5dbf, 0x2001, 0x180c, 0x2004, 0x9084,\r
++      0x0003, 0x1904, 0x5dc5, 0x9188, 0x1000, 0x2104, 0x905d, 0x0518,\r
++      0xb804, 0x9084, 0x00ff, 0x908e, 0x0006, 0x1508, 0xb8a4, 0x900d,\r
++      0x1904, 0x5dd7, 0xb850, 0x900d, 0x1148, 0xa802, 0x2900, 0xb852,\r
++      0xb84e, 0x080c, 0x840e, 0x9006, 0x012e, 0x0005, 0x00a6, 0x2150,\r
++      0x2900, 0xb002, 0xa803, 0x0000, 0x00ae, 0xb852, 0x0c90, 0x2001,\r
++      0x0005, 0x900e, 0x04b8, 0x2001, 0x0028, 0x900e, 0x0498, 0x9082,\r
++      0x0006, 0x1290, 0x080c, 0x9db1, 0x1160, 0xb8a0, 0x9084, 0xff80,\r
++      0x1140, 0xb900, 0xd1fc, 0x0990, 0x2001, 0x0029, 0x2009, 0x1000,\r
++      0x0408, 0x2001, 0x0028, 0x00a8, 0x2009, 0x180c, 0x210c, 0xd18c,\r
++      0x0118, 0x2001, 0x0004, 0x0068, 0xd184, 0x0118, 0x2001, 0x0004,\r
++      0x0040, 0x2001, 0x0029, 0xb900, 0xd1fc, 0x0118, 0x2009, 0x1000,\r
++      0x0048, 0x900e, 0x0038, 0x2001, 0x0029, 0x900e, 0x0018, 0x2001,\r
++      0x0029, 0x900e, 0x9005, 0x012e, 0x0005, 0x2001, 0x180c, 0x2004,\r
++      0xd084, 0x19d0, 0x9188, 0x1000, 0x2104, 0x905d, 0x09a8, 0x080c,\r
++      0x6562, 0x1990, 0xb800, 0xd0bc, 0x0978, 0x0804, 0x5d6e, 0x080c,\r
++      0x63da, 0x0904, 0x5d87, 0x0804, 0x5d72, 0x00b6, 0x00e6, 0x0126,\r
++      0x2091, 0x8000, 0xa974, 0x9182, 0x0800, 0x1a04, 0x5e58, 0x9188,\r
++      0x1000, 0x2104, 0x905d, 0x0904, 0x5e30, 0xb8a0, 0x9086, 0x007f,\r
++      0x0178, 0x080c, 0x656a, 0x0160, 0xa994, 0x81ff, 0x0130, 0x908e,\r
++      0x0004, 0x0130, 0x908e, 0x0005, 0x0118, 0x080c, 0x6562, 0x1598,\r
++      0xa87c, 0xd0fc, 0x01e0, 0xa894, 0x9005, 0x01c8, 0x2060, 0x0026,\r
++      0x2010, 0x080c, 0xbb05, 0x002e, 0x1120, 0x2001, 0x0008, 0x0804,\r
++      0x5e5a, 0x6020, 0x9086, 0x000a, 0x0120, 0x2001, 0x0008, 0x0804,\r
++      0x5e5a, 0x601a, 0x6003, 0x0008, 0x2900, 0x6016, 0x0058, 0x080c,\r
++      0x9ddc, 0x05e8, 0x2b00, 0x6012, 0x2900, 0x6016, 0x600b, 0xffff,\r
++      0x6023, 0x000a, 0x2009, 0x0003, 0x080c, 0x9eac, 0x9006, 0x0458,\r
++      0x2001, 0x0028, 0x0438, 0x9082, 0x0006, 0x1290, 0x080c, 0x9db1,\r
++      0x1160, 0xb8a0, 0x9084, 0xff80, 0x1140, 0xb900, 0xd1fc, 0x0900,\r
++      0x2001, 0x0029, 0x2009, 0x1000, 0x00a8, 0x2001, 0x0028, 0x0090,\r
++      0x2009, 0x180c, 0x210c, 0xd18c, 0x0118, 0x2001, 0x0004, 0x0050,\r
++      0xd184, 0x0118, 0x2001, 0x0004, 0x0028, 0x2001, 0x0029, 0x0010,\r
++      0x2001, 0x0029, 0x9005, 0x012e, 0x00ee, 0x00be, 0x0005, 0x2001,\r
++      0x002c, 0x0cc0, 0x00f6, 0x00b6, 0x0126, 0x2091, 0x8000, 0xa8e0,\r
++      0x9005, 0x1550, 0xa8dc, 0x9082, 0x0101, 0x1630, 0xa8c8, 0x9005,\r
++      0x1518, 0xa8c4, 0x9082, 0x0101, 0x12f8, 0xa974, 0x2079, 0x1800,\r
++      0x9182, 0x0800, 0x12e8, 0x7830, 0x9084, 0x0003, 0x1130, 0xaa98,\r
++      0xab94, 0xa878, 0x9084, 0x0007, 0x00ea, 0x7930, 0xd18c, 0x0118,\r
++      0x2001, 0x0004, 0x0038, 0xd184, 0x0118, 0x2001, 0x0004, 0x0010,\r
++      0x2001, 0x0029, 0x900e, 0x0038, 0x2001, 0x002c, 0x900e, 0x0018,\r
++      0x2001, 0x0029, 0x900e, 0x9006, 0x0008, 0x9005, 0x012e, 0x00be,\r
++      0x00fe, 0x0005, 0x5eef, 0x5eaa, 0x5ec1, 0x5eef, 0x5eef, 0x5eef,\r
++      0x5eef, 0x5eef, 0x2100, 0x9082, 0x007e, 0x1278, 0x080c, 0x61de,\r
++      0x0148, 0x9046, 0xb810, 0x9306, 0x1904, 0x5ef7, 0xb814, 0x9206,\r
++      0x15f0, 0x0028, 0xbb12, 0xba16, 0x0010, 0x080c, 0x4793, 0x0150,\r
++      0x04b0, 0x080c, 0x623e, 0x1598, 0xb810, 0x9306, 0x1580, 0xb814,\r
++      0x9206, 0x1568, 0x080c, 0x9ddc, 0x0530, 0x2b00, 0x6012, 0x080c,\r
++      0xbf8c, 0x2900, 0x6016, 0x600b, 0xffff, 0x6023, 0x000a, 0xa878,\r
++      0x9086, 0x0001, 0x1170, 0x080c, 0x2fda, 0x9006, 0x080c, 0x617b,\r
++      0x2001, 0x0002, 0x080c, 0x618f, 0x2001, 0x0200, 0xb86e, 0xb893,\r
++      0x0002, 0x2009, 0x0003, 0x080c, 0x9eac, 0x9006, 0x0068, 0x2001,\r
++      0x0001, 0x900e, 0x0038, 0x2001, 0x002c, 0x900e, 0x0018, 0x2001,\r
++      0x0028, 0x900e, 0x9005, 0x0000, 0x012e, 0x00be, 0x00fe, 0x0005,\r
++      0x00b6, 0x00f6, 0x00e6, 0x0126, 0x2091, 0x8000, 0xa894, 0x90c6,\r
++      0x0015, 0x0904, 0x60cc, 0x90c6, 0x0056, 0x0904, 0x60d0, 0x90c6,\r
++      0x0066, 0x0904, 0x60d4, 0x90c6, 0x0067, 0x0904, 0x60d8, 0x90c6,\r
++      0x0068, 0x0904, 0x60dc, 0x90c6, 0x0071, 0x0904, 0x60e0, 0x90c6,\r
++      0x0074, 0x0904, 0x60e4, 0x90c6, 0x007c, 0x0904, 0x60e8, 0x90c6,\r
++      0x007e, 0x0904, 0x60ec, 0x90c6, 0x0037, 0x0904, 0x60f0, 0x9016,\r
++      0x2079, 0x1800, 0xa974, 0x9186, 0x00ff, 0x0904, 0x60c7, 0x9182,\r
++      0x0800, 0x1a04, 0x60c7, 0x080c, 0x623e, 0x1198, 0xb804, 0x9084,\r
++      0x00ff, 0x9082, 0x0006, 0x1268, 0xa894, 0x90c6, 0x006f, 0x0148,\r
++      0x080c, 0x9db1, 0x1904, 0x60b0, 0xb8a0, 0x9084, 0xff80, 0x1904,\r
++      0x60b0, 0xa894, 0x90c6, 0x006f, 0x0158, 0x90c6, 0x005e, 0x0904,\r
++      0x6010, 0x90c6, 0x0064, 0x0904, 0x6039, 0x2008, 0x0804, 0x5fd3,\r
++      0xa998, 0xa8b0, 0x2040, 0x080c, 0x9db1, 0x1120, 0x9182, 0x007f,\r
++      0x0a04, 0x5fd3, 0x9186, 0x00ff, 0x0904, 0x5fd3, 0x9182, 0x0800,\r
++      0x1a04, 0x5fd3, 0xaaa0, 0xab9c, 0x7878, 0x9306, 0x1188, 0x787c,\r
++      0x0096, 0x924e, 0x1128, 0x2208, 0x2310, 0x009e, 0x0804, 0x5fd3,\r
++      0x99cc, 0xff00, 0x009e, 0x1120, 0x2208, 0x2310, 0x0804, 0x5fd3,\r
++      0x080c, 0x4793, 0x0904, 0x5fdc, 0x900e, 0x9016, 0x90c6, 0x4000,\r
++      0x1558, 0x0006, 0x080c, 0x645e, 0x1108, 0xc185, 0xb800, 0xd0bc,\r
++      0x0108, 0xc18d, 0x20a9, 0x0004, 0xa860, 0x20e8, 0xa85c, 0x9080,\r
++      0x0031, 0x20a0, 0xb8b4, 0x20e0, 0xb8b8, 0x9080, 0x0006, 0x2098,\r
++      0x080c, 0x0f68, 0x20a9, 0x0004, 0xa860, 0x20e8, 0xa85c, 0x9080,\r
++      0x0035, 0x20a0, 0xb8b4, 0x20e0, 0xb8b8, 0x9080, 0x000a, 0x2098,\r
++      0x080c, 0x0f68, 0x000e, 0x00c8, 0x90c6, 0x4007, 0x1110, 0x2408,\r
++      0x00a0, 0x90c6, 0x4008, 0x1118, 0x2708, 0x2610, 0x0070, 0x90c6,\r
++      0x4009, 0x1108, 0x0050, 0x90c6, 0x4006, 0x0138, 0x2001, 0x4005,\r
++      0x2009, 0x000a, 0x0010, 0x2001, 0x4006, 0xa896, 0xa99a, 0xaa9e,\r
++      0x2001, 0x0030, 0x900e, 0x0470, 0x080c, 0x9ddc, 0x1130, 0x2001,\r
++      0x4005, 0x2009, 0x0003, 0x9016, 0x0c80, 0x2b00, 0x6012, 0x080c,\r
++      0xbf8c, 0x2900, 0x6016, 0x6023, 0x0001, 0xa868, 0xd88c, 0x0108,\r
++      0xc0f5, 0xa86a, 0x0126, 0x2091, 0x8000, 0x080c, 0x2fda, 0x012e,\r
++      0x9006, 0x080c, 0x617b, 0x2001, 0x0002, 0x080c, 0x618f, 0x2009,\r
++      0x0002, 0x080c, 0x9eac, 0xa8b0, 0xd094, 0x0118, 0xb8bc, 0xc08d,\r
++      0xb8be, 0x9006, 0x9005, 0x012e, 0x00ee, 0x00fe, 0x00be, 0x0005,\r
++      0x080c, 0x539a, 0x0118, 0x2009, 0x0007, 0x00f8, 0xa998, 0xaeb0,\r
++      0x080c, 0x623e, 0x1904, 0x5fce, 0x9186, 0x007f, 0x0130, 0x080c,\r
++      0x6562, 0x0118, 0x2009, 0x0009, 0x0080, 0x0096, 0x080c, 0x0feb,\r
++      0x1120, 0x009e, 0x2009, 0x0002, 0x0040, 0x2900, 0x009e, 0xa806,\r
++      0x080c, 0xbcfd, 0x19b0, 0x2009, 0x0003, 0x2001, 0x4005, 0x0804,\r
++      0x5fd5, 0xa998, 0xaeb0, 0x080c, 0x623e, 0x1904, 0x5fce, 0x0096,\r
++      0x080c, 0x0feb, 0x1128, 0x009e, 0x2009, 0x0002, 0x0804, 0x608d,\r
++      0x2900, 0x009e, 0xa806, 0x0096, 0x2048, 0x20a9, 0x002b, 0xb8b4,\r
++      0x20e0, 0xb8b8, 0x2098, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0002,\r
++      0x20a0, 0x4003, 0x20a9, 0x0008, 0x9080, 0x0006, 0x20a0, 0xbbb8,\r
++      0x9398, 0x0006, 0x2398, 0x080c, 0x0f68, 0x009e, 0xa87b, 0x0000,\r
++      0xa883, 0x0000, 0xa897, 0x4000, 0xd684, 0x1168, 0x080c, 0x5386,\r
++      0xd0b4, 0x1118, 0xa89b, 0x000b, 0x00e0, 0xb800, 0xd08c, 0x0118,\r
++      0xa89b, 0x000c, 0x00b0, 0x080c, 0x6562, 0x0118, 0xa89b, 0x0009,\r
++      0x0080, 0x080c, 0x539a, 0x0118, 0xa89b, 0x0007, 0x0050, 0x080c,\r
++      0xbce0, 0x1904, 0x6009, 0x2009, 0x0003, 0x2001, 0x4005, 0x0804,\r
++      0x5fd5, 0xa87b, 0x0030, 0xa897, 0x4005, 0xa804, 0x8006, 0x8006,\r
++      0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x0002, 0x2009,\r
++      0x002b, 0xaaa0, 0xab9c, 0xaca8, 0xada4, 0x2031, 0x0000, 0x2041,\r
++      0x122f, 0x080c, 0xa334, 0x1904, 0x6009, 0x2009, 0x0002, 0x08e8,\r
++      0x2001, 0x0028, 0x900e, 0x0804, 0x600a, 0x2009, 0x180c, 0x210c,\r
++      0xd18c, 0x0118, 0x2001, 0x0004, 0x0038, 0xd184, 0x0118, 0x2001,\r
++      0x0004, 0x0010, 0x2001, 0x0029, 0x900e, 0x0804, 0x600a, 0x2001,\r
++      0x0029, 0x900e, 0x0804, 0x600a, 0x080c, 0x355c, 0x0804, 0x600b,\r
++      0x080c, 0x50c3, 0x0804, 0x600b, 0x080c, 0x432c, 0x0804, 0x600b,\r
++      0x080c, 0x43a5, 0x0804, 0x600b, 0x080c, 0x4401, 0x0804, 0x600b,\r
++      0x080c, 0x484f, 0x0804, 0x600b, 0x080c, 0x4afb, 0x0804, 0x600b,\r
++      0x080c, 0x4d2e, 0x0804, 0x600b, 0x080c, 0x4f27, 0x0804, 0x600b,\r
++      0x080c, 0x376c, 0x0804, 0x600b, 0x00b6, 0xa974, 0xae78, 0x9684,\r
++      0x3fff, 0x9082, 0x4000, 0x1618, 0x9182, 0x0800, 0x1268, 0x9188,\r
++      0x1000, 0x2104, 0x905d, 0x0140, 0x080c, 0x6562, 0x1148, 0x00e9,\r
++      0x080c, 0x6369, 0x9006, 0x00b0, 0x2001, 0x0028, 0x900e, 0x0090,\r
++      0x9082, 0x0006, 0x1240, 0xb900, 0xd1fc, 0x0d88, 0x2001, 0x0029,\r
++      0x2009, 0x1000, 0x0038, 0x2001, 0x0029, 0x900e, 0x0018, 0x2001,\r
++      0x0029, 0x900e, 0x9005, 0x00be, 0x0005, 0x0126, 0x2091, 0x8000,\r
++      0xb850, 0x900d, 0x0150, 0x2900, 0x0096, 0x2148, 0xa802, 0x009e,\r
++      0xa803, 0x0000, 0xb852, 0x012e, 0x0005, 0x2900, 0xb852, 0xb84e,\r
++      0xa803, 0x0000, 0x0cc0, 0x0126, 0x2091, 0x8000, 0xb84c, 0x9005,\r
++      0x0170, 0x00e6, 0x2071, 0x19b8, 0x7004, 0x9086, 0x0002, 0x0168,\r
++      0x00ee, 0xb84c, 0xa802, 0x2900, 0xb84e, 0x012e, 0x0005, 0x2900,\r
++      0xb852, 0xb84e, 0xa803, 0x0000, 0x0cc0, 0x701c, 0x9b06, 0x1d80,\r
++      0xb84c, 0x00a6, 0x2050, 0xb000, 0xa802, 0x2900, 0xb002, 0x00ae,\r
++      0x00ee, 0x012e, 0x0005, 0x0126, 0x2091, 0x8000, 0xb84c, 0x904d,\r
++      0x0130, 0xa800, 0x9005, 0x1108, 0xb852, 0xb84e, 0x9905, 0x012e,\r
++      0x0005, 0xb84c, 0x904d, 0x0130, 0xa800, 0x9005, 0x1108, 0xb852,\r
++      0xb84e, 0x9905, 0x0005, 0x00b6, 0x0126, 0x00c6, 0x0026, 0x2091,\r
++      0x8000, 0x6210, 0x2258, 0xba00, 0x9005, 0x0110, 0xc285, 0x0008,\r
++      0xc284, 0xba02, 0x002e, 0x00ce, 0x012e, 0x00be, 0x0005, 0x00b6,\r
++      0x0126, 0x00c6, 0x2091, 0x8000, 0x6210, 0x2258, 0xba04, 0x0006,\r
++      0x9086, 0x0006, 0x1170, 0xb89c, 0xd0ac, 0x0158, 0x080c, 0x655e,\r
++      0x0140, 0x9284, 0xff00, 0x8007, 0x9086, 0x0007, 0x1110, 0x2011,\r
++      0x0600, 0x000e, 0x9294, 0xff00, 0x9215, 0xba06, 0x0006, 0x9086,\r
++      0x0006, 0x1120, 0xba90, 0x82ff, 0x090c, 0x0db4, 0x000e, 0x00ce,\r
++      0x012e, 0x00be, 0x0005, 0x00b6, 0x0126, 0x00c6, 0x2091, 0x8000,\r
++      0x6210, 0x2258, 0xba04, 0x0006, 0x9086, 0x0006, 0x1168, 0xb89c,\r
++      0xd0a4, 0x0150, 0x080c, 0x655a, 0x1138, 0x9284, 0x00ff, 0x9086,\r
++      0x0007, 0x1110, 0x2011, 0x0006, 0x000e, 0x9294, 0x00ff, 0x8007,\r
++      0x9215, 0xba06, 0x00ce, 0x012e, 0x00be, 0x0005, 0x9182, 0x0800,\r
++      0x0218, 0x9085, 0x0001, 0x0005, 0x00d6, 0x0026, 0x9190, 0x1000,\r
++      0x2204, 0x905d, 0x1180, 0x0096, 0x080c, 0x0feb, 0x2958, 0x009e,\r
++      0x0160, 0x2b00, 0x2012, 0xb85c, 0xb8ba, 0xb860, 0xb8b6, 0x9006,\r
++      0xb8a6, 0x080c, 0x5ceb, 0x9006, 0x0010, 0x9085, 0x0001, 0x002e,\r
++      0x00de, 0x0005, 0x00b6, 0x0096, 0x0126, 0x2091, 0x8000, 0x0026,\r
++      0x9182, 0x0800, 0x0218, 0x9085, 0x0001, 0x0458, 0x00d6, 0x9190,\r
++      0x1000, 0x2204, 0x905d, 0x0518, 0x2013, 0x0000, 0xb8a4, 0x904d,\r
++      0x0110, 0x080c, 0x101d, 0x00d6, 0x00c6, 0xb8ac, 0x2060, 0x8cff,\r
++      0x0168, 0x600c, 0x0006, 0x6014, 0x2048, 0x080c, 0xbb17, 0x0110,\r
++      0x080c, 0x0f9d, 0x080c, 0x9e32, 0x00ce, 0x0c88, 0x00ce, 0x00de,\r
++      0x2b48, 0xb8b8, 0xb85e, 0xb8b4, 0xb862, 0x080c, 0x102d, 0x00de,\r
++      0x9006, 0x002e, 0x012e, 0x009e, 0x00be, 0x0005, 0x0016, 0x9182,\r
++      0x0800, 0x0218, 0x9085, 0x0001, 0x0030, 0x9188, 0x1000, 0x2104,\r
++      0x905d, 0x0dc0, 0x9006, 0x001e, 0x0005, 0x00d6, 0x0156, 0x0136,\r
++      0x0146, 0x9006, 0xb80a, 0xb80e, 0xb800, 0xc08c, 0xb802, 0x080c,\r
++      0x6fb2, 0x1510, 0xb8a0, 0x9086, 0x007e, 0x0120, 0x080c, 0x9db1,\r
++      0x11d8, 0x0078, 0x7040, 0xd0e4, 0x01b8, 0x00c6, 0x2061, 0x1953,\r
++      0x7048, 0x2062, 0x704c, 0x6006, 0x7050, 0x600a, 0x7054, 0x600e,\r
++      0x00ce, 0x703c, 0x2069, 0x0140, 0x9005, 0x1110, 0x2001, 0x0001,\r
++      0x6886, 0x2069, 0x1800, 0x68b2, 0x7040, 0xb85e, 0x7048, 0xb862,\r
++      0x704c, 0xb866, 0x20e1, 0x0000, 0x2099, 0x0276, 0xb8b4, 0x20e8,\r
++      0xb8b8, 0x9088, 0x000a, 0x21a0, 0x20a9, 0x0004, 0x4003, 0x2099,\r
++      0x027a, 0x9088, 0x0006, 0x21a0, 0x20a9, 0x0004, 0x4003, 0x2069,\r
++      0x0200, 0x6817, 0x0001, 0x7040, 0xb86a, 0x7144, 0xb96e, 0x7048,\r
++      0xb872, 0x7050, 0xb876, 0x2069, 0x0200, 0x6817, 0x0000, 0xb8a0,\r
++      0x9086, 0x007e, 0x1110, 0x7144, 0xb96e, 0x9182, 0x0211, 0x1218,\r
++      0x2009, 0x0008, 0x0400, 0x9182, 0x0259, 0x1218, 0x2009, 0x0007,\r
++      0x00d0, 0x9182, 0x02c1, 0x1218, 0x2009, 0x0006, 0x00a0, 0x9182,\r
++      0x0349, 0x1218, 0x2009, 0x0005, 0x0070, 0x9182, 0x0421, 0x1218,\r
++      0x2009, 0x0004, 0x0040, 0x9182, 0x0581, 0x1218, 0x2009, 0x0003,\r
++      0x0010, 0x2009, 0x0002, 0xb992, 0x014e, 0x013e, 0x015e, 0x00de,\r
++      0x0005, 0x0016, 0x0026, 0x00e6, 0x2071, 0x0260, 0x7034, 0xb896,\r
++      0x703c, 0xb89a, 0x7054, 0xb89e, 0x0036, 0xbbbc, 0xc384, 0xba00,\r
++      0x2009, 0x1873, 0x210c, 0xd0bc, 0x0120, 0xd1ec, 0x0110, 0xc2ad,\r
++      0x0008, 0xc2ac, 0xd0c4, 0x0148, 0xd1e4, 0x0138, 0xc2bd, 0xd0cc,\r
++      0x0128, 0xd38c, 0x1108, 0xc385, 0x0008, 0xc2bc, 0xba02, 0xbbbe,\r
++      0x003e, 0x00ee, 0x002e, 0x001e, 0x0005, 0x0096, 0x0126, 0x2091,\r
++      0x8000, 0xb8a4, 0x904d, 0x0578, 0xa900, 0x81ff, 0x15c0, 0xaa04,\r
++      0x9282, 0x0010, 0x16c8, 0x0136, 0x0146, 0x01c6, 0x01d6, 0x8906,\r
++      0x8006, 0x8007, 0x908c, 0x003f, 0x21e0, 0x9084, 0xffc0, 0x9080,\r
++      0x0004, 0x2098, 0x2009, 0x0010, 0x20a9, 0x0001, 0x4002, 0x9086,\r
++      0xffff, 0x0120, 0x8109, 0x1dd0, 0x080c, 0x0db4, 0x3c00, 0x20e8,\r
++      0x3300, 0x8001, 0x20a0, 0x4604, 0x8210, 0xaa06, 0x01de, 0x01ce,\r
++      0x014e, 0x013e, 0x0060, 0x080c, 0x0feb, 0x0170, 0x2900, 0xb8a6,\r
++      0xa803, 0x0000, 0x080c, 0x63fa, 0xa807, 0x0001, 0xae12, 0x9085,\r
++      0x0001, 0x012e, 0x009e, 0x0005, 0x9006, 0x0cd8, 0x0126, 0x2091,\r
++      0x8000, 0x0096, 0xb8a4, 0x904d, 0x0188, 0xa800, 0x9005, 0x1150,\r
++      0x080c, 0x6409, 0x1158, 0xa804, 0x908a, 0x0002, 0x0218, 0x8001,\r
++      0xa806, 0x0020, 0x080c, 0x101d, 0xb8a7, 0x0000, 0x009e, 0x012e,\r
++      0x0005, 0x0126, 0x2091, 0x8000, 0x080c, 0x840e, 0x012e, 0x0005,\r
++      0x901e, 0x0010, 0x2019, 0x0001, 0x900e, 0x0126, 0x2091, 0x8000,\r
++      0xb84c, 0x2048, 0xb800, 0xd0dc, 0x1170, 0x89ff, 0x0500, 0x83ff,\r
++      0x0120, 0xa878, 0x9606, 0x0158, 0x0030, 0xa86c, 0x9406, 0x1118,\r
++      0xa870, 0x9506, 0x0120, 0x2908, 0xa800, 0x2048, 0x0c70, 0x080c,\r
++      0x97b0, 0xaa00, 0xb84c, 0x9906, 0x1110, 0xba4e, 0x0020, 0x00a6,\r
++      0x2150, 0xb202, 0x00ae, 0x82ff, 0x1110, 0xb952, 0x89ff, 0x012e,\r
++      0x0005, 0x9016, 0x0489, 0x1110, 0x2011, 0x0001, 0x0005, 0x080c,\r
++      0x645e, 0x0128, 0x080c, 0xbbd4, 0x0010, 0x9085, 0x0001, 0x0005,\r
++      0x080c, 0x645e, 0x0128, 0x080c, 0xbb79, 0x0010, 0x9085, 0x0001,\r
++      0x0005, 0x080c, 0x645e, 0x0128, 0x080c, 0xbbd1, 0x0010, 0x9085,\r
++      0x0001, 0x0005, 0x080c, 0x645e, 0x0128, 0x080c, 0xbb98, 0x0010,\r
++      0x9085, 0x0001, 0x0005, 0x080c, 0x645e, 0x0128, 0x080c, 0xbc15,\r
++      0x0010, 0x9085, 0x0001, 0x0005, 0xb8a4, 0x900d, 0x1118, 0x9085,\r
++      0x0001, 0x0005, 0x0136, 0x01c6, 0xa800, 0x9005, 0x11b8, 0x890e,\r
++      0x810e, 0x810f, 0x9184, 0x003f, 0x20e0, 0x9184, 0xffc0, 0x9080,\r
++      0x0004, 0x2098, 0x20a9, 0x0001, 0x2009, 0x0010, 0x4002, 0x9606,\r
++      0x0128, 0x8109, 0x1dd8, 0x9085, 0x0001, 0x0008, 0x9006, 0x01ce,\r
++      0x013e, 0x0005, 0x0146, 0x01d6, 0xa860, 0x20e8, 0xa85c, 0x9080,\r
++      0x0004, 0x20a0, 0x20a9, 0x0010, 0x2009, 0xffff, 0x4104, 0x01de,\r
++      0x014e, 0x0136, 0x01c6, 0xa800, 0x9005, 0x11b8, 0x890e, 0x810e,\r
++      0x810f, 0x9184, 0x003f, 0x20e0, 0x9184, 0xffc0, 0x9080, 0x0004,\r
++      0x2098, 0x20a9, 0x0001, 0x2009, 0x0010, 0x4002, 0x9606, 0x0128,\r
++      0x8109, 0x1dd8, 0x9085, 0x0001, 0x0068, 0x0146, 0x01d6, 0x3300,\r
++      0x8001, 0x20a0, 0x3c00, 0x20e8, 0x2001, 0xffff, 0x4004, 0x01de,\r
++      0x014e, 0x9006, 0x01ce, 0x013e, 0x0005, 0x0096, 0x0126, 0x2091,\r
++      0x8000, 0xb8a4, 0x904d, 0x1128, 0x080c, 0x0feb, 0x0168, 0x2900,\r
++      0xb8a6, 0x080c, 0x63fa, 0xa803, 0x0001, 0xa807, 0x0000, 0x9085,\r
++      0x0001, 0x012e, 0x009e, 0x0005, 0x9006, 0x0cd8, 0x0096, 0x0126,\r
++      0x2091, 0x8000, 0xb8a4, 0x904d, 0x0130, 0xb8a7, 0x0000, 0x080c,\r
++      0x101d, 0x9085, 0x0001, 0x012e, 0x009e, 0x0005, 0xb89c, 0xd0a4,\r
++      0x0005, 0x00b6, 0x00f6, 0x080c, 0x6fb2, 0x01b0, 0x71c0, 0x81ff,\r
++      0x1198, 0x71d8, 0xd19c, 0x0180, 0x2001, 0x007e, 0x9080, 0x1000,\r
++      0x2004, 0x905d, 0x0148, 0xb804, 0x9084, 0x00ff, 0x9086, 0x0006,\r
++      0x1118, 0xb800, 0xc0ed, 0xb802, 0x2079, 0x1853, 0x7804, 0x00d0,\r
++      0x0156, 0x20a9, 0x007f, 0x900e, 0x0016, 0x080c, 0x623e, 0x1168,\r
++      0xb804, 0x9084, 0xff00, 0x8007, 0x9096, 0x0004, 0x0118, 0x9086,\r
++      0x0006, 0x1118, 0xb800, 0xc0ed, 0xb802, 0x001e, 0x8108, 0x1f04,\r
++      0x6484, 0x015e, 0x080c, 0x6520, 0x0120, 0x2001, 0x1956, 0x200c,\r
++      0x0030, 0x2079, 0x1853, 0x7804, 0x0030, 0x2009, 0x07d0, 0x2011,\r
++      0x64ae, 0x080c, 0x80ca, 0x00fe, 0x00be, 0x0005, 0x00b6, 0x2011,\r
++      0x64ae, 0x080c, 0x8038, 0x080c, 0x6520, 0x01d8, 0x2001, 0x107e,\r
++      0x2004, 0x2058, 0xb900, 0xc1ec, 0xb902, 0x080c, 0x655e, 0x0130,\r
++      0x2009, 0x07d0, 0x2011, 0x64ae, 0x080c, 0x80ca, 0x00e6, 0x2071,\r
++      0x1800, 0x9006, 0x707a, 0x705c, 0x707e, 0x080c, 0x2dbb, 0x00ee,\r
++      0x04b0, 0x0156, 0x00c6, 0x20a9, 0x007f, 0x900e, 0x0016, 0x080c,\r
++      0x623e, 0x1538, 0xb800, 0xd0ec, 0x0520, 0x0046, 0xbaa0, 0x2220,\r
++      0x9006, 0x2009, 0x0029, 0x080c, 0xd52a, 0xb800, 0xc0e5, 0xc0ec,\r
++      0xb802, 0x080c, 0x655a, 0x2001, 0x0707, 0x1128, 0xb804, 0x9084,\r
++      0x00ff, 0x9085, 0x0700, 0xb806, 0x2019, 0x0029, 0x080c, 0x8571,\r
++      0x0076, 0x903e, 0x080c, 0x8469, 0x900e, 0x080c, 0xd29b, 0x007e,\r
++      0x004e, 0x001e, 0x8108, 0x1f04, 0x64d6, 0x00ce, 0x015e, 0x00be,\r
++      0x0005, 0x00b6, 0x6010, 0x2058, 0xb800, 0xc0ec, 0xb802, 0x00be,\r
++      0x0005, 0x7810, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0ac, 0x0005,\r
++      0x6010, 0x00b6, 0x905d, 0x0108, 0xb800, 0x00be, 0xd0bc, 0x0005,\r
++      0x00b6, 0x00f6, 0x2001, 0x107e, 0x2004, 0x905d, 0x0110, 0xb800,\r
++      0xd0ec, 0x00fe, 0x00be, 0x0005, 0x0126, 0x0026, 0x2091, 0x8000,\r
++      0x0006, 0xbaa0, 0x9290, 0x1000, 0x2204, 0x9b06, 0x190c, 0x0db4,\r
++      0x000e, 0xba00, 0x9005, 0x0110, 0xc2fd, 0x0008, 0xc2fc, 0xba02,\r
++      0x002e, 0x012e, 0x0005, 0x2011, 0x1836, 0x2204, 0xd0cc, 0x0138,\r
++      0x2001, 0x1954, 0x200c, 0x2011, 0x6550, 0x080c, 0x80ca, 0x0005,\r
++      0x2011, 0x6550, 0x080c, 0x8038, 0x2011, 0x1836, 0x2204, 0xc0cc,\r
++      0x2012, 0x0005, 0x080c, 0x5386, 0xd0ac, 0x0005, 0x080c, 0x5386,\r
++      0xd0a4, 0x0005, 0x0016, 0xb904, 0x9184, 0x00ff, 0x908e, 0x0006,\r
++      0x001e, 0x0005, 0x0016, 0xb904, 0x9184, 0xff00, 0x8007, 0x908e,\r
++      0x0006, 0x001e, 0x0005, 0x00b6, 0x00f6, 0x080c, 0xc212, 0x0158,\r
++      0x70d8, 0x9084, 0x0028, 0x0138, 0x2001, 0x107f, 0x2004, 0x905d,\r
++      0x0110, 0xb8bc, 0xd094, 0x00fe, 0x00be, 0x0005, 0x0006, 0x0016,\r
++      0x0036, 0x0046, 0x0076, 0x00b6, 0x2001, 0x1817, 0x203c, 0x9780,\r
++      0x3138, 0x203d, 0x97bc, 0xff00, 0x873f, 0x9006, 0x2018, 0x2008,\r
++      0x9284, 0x8000, 0x0110, 0x2019, 0x0001, 0x9294, 0x7fff, 0x2100,\r
++      0x9706, 0x0190, 0x91a0, 0x1000, 0x2404, 0x905d, 0x0168, 0xb804,\r
++      0x9084, 0x00ff, 0x9086, 0x0006, 0x1138, 0x83ff, 0x0118, 0xb89c,\r
++      0xd0a4, 0x0110, 0x8211, 0x0158, 0x8108, 0x83ff, 0x0120, 0x9182,\r
++      0x0800, 0x0e28, 0x0068, 0x9182, 0x007e, 0x0e08, 0x0048, 0x00be,\r
++      0x007e, 0x004e, 0x003e, 0x001e, 0x9085, 0x0001, 0x000e, 0x0005,\r
++      0x00be, 0x007e, 0x004e, 0x003e, 0x001e, 0x9006, 0x000e, 0x0005,\r
++      0x0046, 0x0056, 0x0076, 0x00b6, 0x2100, 0x9084, 0x7fff, 0x9080,\r
++      0x1000, 0x2004, 0x905d, 0x0130, 0xb804, 0x9084, 0x00ff, 0x9086,\r
++      0x0006, 0x0550, 0x9184, 0x8000, 0x0580, 0x2001, 0x1817, 0x203c,\r
++      0x9780, 0x3138, 0x203d, 0x97bc, 0xff00, 0x873f, 0x9006, 0x2020,\r
++      0x2400, 0x9706, 0x01a0, 0x94a8, 0x1000, 0x2504, 0x905d, 0x0178,\r
++      0xb804, 0x9084, 0x00ff, 0x9086, 0x0006, 0x1148, 0xb89c, 0xd0a4,\r
++      0x0130, 0xb814, 0x9206, 0x1118, 0xb810, 0x9306, 0x0128, 0x8420,\r
++      0x9482, 0x0800, 0x0e28, 0x0048, 0x918c, 0x7fff, 0x00be, 0x007e,\r
++      0x005e, 0x004e, 0x9085, 0x0001, 0x0005, 0x918c, 0x7fff, 0x00be,\r
++      0x007e, 0x005e, 0x004e, 0x9006, 0x0005, 0x2071, 0x1906, 0x7003,\r
++      0x0001, 0x7007, 0x0000, 0x9006, 0x7012, 0x7016, 0x701a, 0x701e,\r
++      0x700a, 0x7046, 0x2001, 0x1919, 0x2003, 0x0000, 0x0005, 0x0016,\r
++      0x00e6, 0x2071, 0x191a, 0x900e, 0x710a, 0x080c, 0x5386, 0xd0fc,\r
++      0x1140, 0x080c, 0x5386, 0x900e, 0xd09c, 0x0108, 0x8108, 0x7102,\r
++      0x0400, 0x2001, 0x1873, 0x200c, 0x9184, 0x0007, 0x9006, 0x0002,\r
++      0x6639, 0x6639, 0x6639, 0x6639, 0x6639, 0x6650, 0x665e, 0x6639,\r
++      0x7003, 0x0003, 0x2009, 0x1874, 0x210c, 0x9184, 0xff00, 0x8007,\r
++      0x9005, 0x1110, 0x2001, 0x0002, 0x7006, 0x0018, 0x7003, 0x0005,\r
++      0x0c88, 0x00ee, 0x001e, 0x0005, 0x00e6, 0x2071, 0x0050, 0x684c,\r
++      0x9005, 0x1150, 0x00e6, 0x2071, 0x1906, 0x7028, 0xc085, 0x702a,\r
++      0x00ee, 0x9085, 0x0001, 0x0488, 0x6844, 0x9005, 0x0158, 0x080c,\r
++      0x7308, 0x6a60, 0x9200, 0x7002, 0x6864, 0x9101, 0x7006, 0x9006,\r
++      0x7012, 0x7016, 0x6860, 0x7002, 0x6864, 0x7006, 0x6868, 0x700a,\r
++      0x686c, 0x700e, 0x6844, 0x9005, 0x1110, 0x7012, 0x7016, 0x684c,\r
++      0x701a, 0x701c, 0x9085, 0x0040, 0x701e, 0x7037, 0x0019, 0x702b,\r
++      0x0001, 0x00e6, 0x2071, 0x1906, 0x7028, 0xc084, 0x702a, 0x7007,\r
++      0x0001, 0x700b, 0x0000, 0x00ee, 0x9006, 0x00ee, 0x0005, 0xa868,\r
++      0xd0fc, 0x11d8, 0x00e6, 0x0026, 0x2001, 0x191a, 0x2004, 0x9005,\r
++      0x0904, 0x6891, 0xa87c, 0xd0bc, 0x1904, 0x6891, 0xa978, 0xa874,\r
++      0x9105, 0x1904, 0x6891, 0x2001, 0x191a, 0x2004, 0x0002, 0x6891,\r
++      0x66ea, 0x6726, 0x6726, 0x6891, 0x6726, 0x0005, 0xa868, 0xd0fc,\r
++      0x1500, 0x00e6, 0x0026, 0x2009, 0x191a, 0x210c, 0x81ff, 0x0904,\r
++      0x6891, 0xa87c, 0xd0cc, 0x0904, 0x6891, 0xa880, 0x9084, 0x00ff,\r
++      0x9086, 0x0001, 0x1904, 0x6891, 0x9186, 0x0003, 0x0904, 0x6726,\r
++      0x9186, 0x0005, 0x0904, 0x6726, 0xa84f, 0x8021, 0xa853, 0x0017,\r
++      0x0028, 0x0005, 0xa84f, 0x8020, 0xa853, 0x0016, 0x2071, 0x1906,\r
++      0x701c, 0x9005, 0x1904, 0x6a51, 0x0e04, 0x6a9c, 0x2071, 0x0000,\r
++      0xa84c, 0x7082, 0xa850, 0x7032, 0xa86c, 0x7086, 0x7036, 0xa870,\r
++      0x708a, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c,\r
++      0x1187, 0x2071, 0x1800, 0x2011, 0x0001, 0xa804, 0x900d, 0x702c,\r
++      0x1158, 0xa802, 0x2900, 0x702e, 0x70bc, 0x9200, 0x70be, 0x080c,\r
++      0x7f5d, 0x002e, 0x00ee, 0x0005, 0x0096, 0x2148, 0xa904, 0xa802,\r
++      0x8210, 0x2900, 0x81ff, 0x1dc8, 0x009e, 0x0c58, 0xa84f, 0x0000,\r
++      0x00f6, 0x2079, 0x0050, 0x2071, 0x1906, 0xa803, 0x0000, 0x7010,\r
++      0x9005, 0x1904, 0x6815, 0x782c, 0x908c, 0x0780, 0x190c, 0x6bc3,\r
++      0x8004, 0x8004, 0x8004, 0x9084, 0x0003, 0x0002, 0x6744, 0x6815,\r
++      0x6769, 0x67b0, 0x080c, 0x0db4, 0x2071, 0x1800, 0x2900, 0x7822,\r
++      0xa804, 0x900d, 0x1170, 0x2071, 0x19cb, 0x703c, 0x9005, 0x1328,\r
++      0x2001, 0x191b, 0x2004, 0x8005, 0x703e, 0x00fe, 0x002e, 0x00ee,\r
++      0x0005, 0x9016, 0x702c, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900,\r
++      0x81ff, 0x1dc8, 0x702e, 0x70bc, 0x9200, 0x70be, 0x080c, 0x7f5d,\r
++      0x0c10, 0x2071, 0x1800, 0x2900, 0x7822, 0xa804, 0x900d, 0x1580,\r
++      0x7824, 0x00e6, 0x2071, 0x0040, 0x712c, 0xd19c, 0x1148, 0x2009,\r
++      0x182f, 0x210c, 0x918a, 0x0040, 0x0218, 0x7022, 0x00ee, 0x0058,\r
++      0x00ee, 0x2048, 0x702c, 0xa802, 0x2900, 0x702e, 0x70bc, 0x8000,\r
++      0x70be, 0x080c, 0x7f5d, 0x782c, 0x9094, 0x0780, 0x190c, 0x6bc3,\r
++      0xd0a4, 0x19f0, 0x2071, 0x19cb, 0x703c, 0x9005, 0x1328, 0x2001,\r
++      0x191b, 0x2004, 0x8005, 0x703e, 0x00fe, 0x002e, 0x00ee, 0x0005,\r
++      0x9016, 0x702c, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff,\r
++      0x1dc8, 0x702e, 0x70bc, 0x9200, 0x70be, 0x080c, 0x7f5d, 0x0800,\r
++      0x0096, 0x00e6, 0x7824, 0x2048, 0x2071, 0x1800, 0x702c, 0xa802,\r
++      0x2900, 0x702e, 0x70bc, 0x8000, 0x70be, 0x080c, 0x7f5d, 0x782c,\r
++      0x9094, 0x0780, 0x190c, 0x6bc3, 0xd0a4, 0x1d60, 0x00ee, 0x782c,\r
++      0x9094, 0x0780, 0x190c, 0x6bc3, 0xd09c, 0x11a0, 0x009e, 0x2900,\r
++      0x7822, 0xa804, 0x900d, 0x1560, 0x2071, 0x19cb, 0x703c, 0x9005,\r
++      0x1328, 0x2001, 0x191b, 0x2004, 0x8005, 0x703e, 0x00fe, 0x002e,\r
++      0x00ee, 0x0005, 0x009e, 0x2908, 0x7010, 0x8000, 0x7012, 0x7018,\r
++      0x904d, 0x711a, 0x0110, 0xa902, 0x0008, 0x711e, 0x2148, 0xa804,\r
++      0x900d, 0x1170, 0x2071, 0x19cb, 0x703c, 0x9005, 0x1328, 0x2001,\r
++      0x191b, 0x2004, 0x8005, 0x703e, 0x00fe, 0x002e, 0x00ee, 0x0005,\r
++      0x2071, 0x1800, 0x9016, 0x702c, 0x2148, 0xa904, 0xa802, 0x8210,\r
++      0x2900, 0x81ff, 0x1dc8, 0x702e, 0x70bc, 0x9200, 0x70be, 0x080c,\r
++      0x7f5d, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x2908, 0x7010, 0x8000,\r
++      0x7012, 0x7018, 0x904d, 0x711a, 0x0110, 0xa902, 0x0008, 0x711e,\r
++      0x2148, 0xa804, 0x900d, 0x1904, 0x686a, 0x782c, 0x9094, 0x0780,\r
++      0x190c, 0x6bc3, 0xd09c, 0x1198, 0x701c, 0x904d, 0x0180, 0x7010,\r
++      0x8001, 0x7012, 0x1108, 0x701a, 0xa800, 0x701e, 0x2900, 0x7822,\r
++      0x782c, 0x9094, 0x0780, 0x190c, 0x6bc3, 0xd09c, 0x0d68, 0x782c,\r
++      0x9094, 0x0780, 0x190c, 0x6bc3, 0xd0a4, 0x01b0, 0x00e6, 0x7824,\r
++      0x2048, 0x2071, 0x1800, 0x702c, 0xa802, 0x2900, 0x702e, 0x70bc,\r
++      0x8000, 0x70be, 0x080c, 0x7f5d, 0x782c, 0x9094, 0x0780, 0x190c,\r
++      0x6bc3, 0xd0a4, 0x1d60, 0x00ee, 0x2071, 0x19cb, 0x703c, 0x9005,\r
++      0x1328, 0x2001, 0x191b, 0x2004, 0x8005, 0x703e, 0x00fe, 0x002e,\r
++      0x00ee, 0x0005, 0x00e6, 0x2071, 0x1800, 0x9016, 0x702c, 0x2148,\r
++      0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e, 0x70bc,\r
++      0x9200, 0x70be, 0x080c, 0x7f5d, 0x00ee, 0x0804, 0x6825, 0xa868,\r
++      0xd0fc, 0x1904, 0x68cd, 0x0096, 0xa804, 0xa807, 0x0000, 0x904d,\r
++      0x190c, 0x0f9d, 0x009e, 0x0018, 0xa868, 0xd0fc, 0x15f0, 0x00e6,\r
++      0x0026, 0xa84f, 0x0000, 0x00f6, 0x2079, 0x0050, 0x2071, 0x1800,\r
++      0x70e8, 0x8001, 0x01d0, 0x1678, 0x2071, 0x1906, 0xa803, 0x0000,\r
++      0x7010, 0x9005, 0x1904, 0x69cb, 0x782c, 0x908c, 0x0780, 0x190c,\r
++      0x6bc3, 0x8004, 0x8004, 0x8004, 0x9084, 0x0003, 0x0002, 0x68ce,\r
++      0x69cb, 0x68e9, 0x695a, 0x080c, 0x0db4, 0x70eb, 0x0fa0, 0x71e4,\r
++      0x8107, 0x9106, 0x9094, 0x00c0, 0x9184, 0xff3f, 0x9205, 0x70e6,\r
++      0x3b08, 0x3a00, 0x9104, 0x918d, 0x00c0, 0x21d8, 0x9084, 0xff3f,\r
++      0x9205, 0x20d0, 0x0888, 0x70ea, 0x0878, 0x0005, 0x2071, 0x1800,\r
++      0x2900, 0x7822, 0xa804, 0x900d, 0x1120, 0x00fe, 0x002e, 0x00ee,\r
++      0x0005, 0x9016, 0x702c, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900,\r
++      0x81ff, 0x1dc8, 0x702e, 0x70bc, 0x9200, 0x70be, 0x080c, 0x7f5d,\r
++      0x0c60, 0x2071, 0x1800, 0x2900, 0x7822, 0xa804, 0x900d, 0x1904,\r
++      0x6949, 0x7830, 0x8007, 0x9084, 0x001f, 0x9082, 0x0005, 0x1220,\r
++      0x00fe, 0x002e, 0x00ee, 0x0005, 0x7824, 0x00e6, 0x2071, 0x0040,\r
++      0x712c, 0xd19c, 0x1148, 0x2009, 0x182f, 0x210c, 0x918a, 0x0040,\r
++      0x0218, 0x7022, 0x00ee, 0x0058, 0x00ee, 0x2048, 0x702c, 0xa802,\r
++      0x2900, 0x702e, 0x70bc, 0x8000, 0x70be, 0x080c, 0x7f5d, 0x782c,\r
++      0x9094, 0x0780, 0x190c, 0x6bc3, 0xd0a4, 0x19f0, 0x0e04, 0x6940,\r
++      0x7838, 0x7938, 0x910e, 0x1de0, 0x00d6, 0x2069, 0x0000, 0x6836,\r
++      0x6833, 0x0013, 0x00de, 0x2001, 0x1917, 0x200c, 0xc184, 0x2102,\r
++      0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x1187,\r
++      0x2009, 0x1919, 0x200b, 0x0000, 0x00fe, 0x002e, 0x00ee, 0x0005,\r
++      0x2001, 0x1917, 0x200c, 0xc185, 0x2102, 0x00fe, 0x002e, 0x00ee,\r
++      0x0005, 0x9016, 0x702c, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900,\r
++      0x81ff, 0x1dc8, 0x702e, 0x70bc, 0x9200, 0x70be, 0x080c, 0x7f5d,\r
++      0x0804, 0x68fc, 0x0096, 0x00e6, 0x7824, 0x2048, 0x2071, 0x1800,\r
++      0x702c, 0xa802, 0x2900, 0x702e, 0x70bc, 0x8000, 0x70be, 0x080c,\r
++      0x7f5d, 0x782c, 0x9094, 0x0780, 0x190c, 0x6bc3, 0xd0a4, 0x1d60,\r
++      0x00ee, 0x0e04, 0x699e, 0x7838, 0x7938, 0x910e, 0x1de0, 0x00d6,\r
++      0x2069, 0x0000, 0x6836, 0x6833, 0x0013, 0x00de, 0x7044, 0xc084,\r
++      0x7046, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c,\r
++      0x1187, 0x2009, 0x1919, 0x200b, 0x0000, 0x782c, 0x9094, 0x0780,\r
++      0x190c, 0x6bc3, 0xd09c, 0x1170, 0x009e, 0x2900, 0x7822, 0xa804,\r
++      0x900d, 0x11e0, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x7044, 0xc085,\r
++      0x7046, 0x0c58, 0x009e, 0x2908, 0x7010, 0x8000, 0x7012, 0x7018,\r
++      0x904d, 0x711a, 0x0110, 0xa902, 0x0008, 0x711e, 0x2148, 0xa804,\r
++      0x900d, 0x1120, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x2071, 0x1800,\r
++      0x9016, 0x702c, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff,\r
++      0x1dc8, 0x702e, 0x70bc, 0x9200, 0x70be, 0x080c, 0x7f5d, 0x00fe,\r
++      0x002e, 0x00ee, 0x0005, 0x2908, 0x7010, 0x8000, 0x7012, 0x7018,\r
++      0x904d, 0x711a, 0x0110, 0xa902, 0x0008, 0x711e, 0x2148, 0xa804,\r
++      0x900d, 0x1904, 0x6a3c, 0x782c, 0x9094, 0x0780, 0x190c, 0x6bc3,\r
++      0xd09c, 0x11b0, 0x701c, 0x904d, 0x0198, 0xa84c, 0x9005, 0x1180,\r
++      0x7010, 0x8001, 0x7012, 0x1108, 0x701a, 0xa800, 0x701e, 0x2900,\r
++      0x7822, 0x782c, 0x9094, 0x0780, 0x190c, 0x6bc3, 0xd09c, 0x0d50,\r
++      0x782c, 0x9094, 0x0780, 0x190c, 0x6bc3, 0xd0a4, 0x05c8, 0x00e6,\r
++      0x7824, 0x2048, 0x2071, 0x1800, 0x702c, 0xa802, 0x2900, 0x702e,\r
++      0x70bc, 0x8000, 0x70be, 0x080c, 0x7f5d, 0x782c, 0x9094, 0x0780,\r
++      0x190c, 0x6bc3, 0xd0a4, 0x1d60, 0x00ee, 0x0e04, 0x6a35, 0x7838,\r
++      0x7938, 0x910e, 0x1de0, 0x00d6, 0x2069, 0x0000, 0x6836, 0x6833,\r
++      0x0013, 0x00de, 0x7044, 0xc084, 0x7046, 0x2091, 0x4080, 0x2001,\r
++      0x0089, 0x2004, 0xd084, 0x190c, 0x1187, 0x2009, 0x1919, 0x200b,\r
++      0x0000, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x7044, 0xc085, 0x7046,\r
++      0x00fe, 0x002e, 0x00ee, 0x0005, 0x00e6, 0x2071, 0x1800, 0x9016,\r
++      0x702c, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8,\r
++      0x702e, 0x70bc, 0x9200, 0x70be, 0x080c, 0x7f5d, 0x00ee, 0x0804,\r
++      0x69db, 0x2071, 0x1906, 0xa803, 0x0000, 0x2908, 0x7010, 0x8000,\r
++      0x7012, 0x7018, 0x904d, 0x711a, 0x0110, 0xa902, 0x0008, 0x711e,\r
++      0x2148, 0xa804, 0x900d, 0x1128, 0x1e04, 0x6a7c, 0x002e, 0x00ee,\r
++      0x0005, 0x2071, 0x1800, 0x9016, 0x702c, 0x2148, 0xa904, 0xa802,\r
++      0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e, 0x70bc, 0x9200, 0x70be,\r
++      0x080c, 0x7f5d, 0x0e04, 0x6a66, 0x2071, 0x1906, 0x701c, 0x2048,\r
++      0xa84c, 0x900d, 0x0d18, 0x2071, 0x0000, 0x7182, 0xa850, 0x7032,\r
++      0xa86c, 0x7086, 0x7036, 0xa870, 0x708a, 0x2091, 0x4080, 0x2001,\r
++      0x0089, 0x2004, 0xd084, 0x190c, 0x1187, 0x2071, 0x1906, 0x080c,\r
++      0x6baf, 0x002e, 0x00ee, 0x0005, 0x2071, 0x1906, 0xa803, 0x0000,\r
++      0x2908, 0x7010, 0x8000, 0x7012, 0x7018, 0x904d, 0x711a, 0x0110,\r
++      0xa902, 0x0008, 0x711e, 0x2148, 0xa804, 0x900d, 0x1118, 0x002e,\r
++      0x00ee, 0x0005, 0x2071, 0x1800, 0x9016, 0x702c, 0x2148, 0xa904,\r
++      0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e, 0x70bc, 0x9200,\r
++      0x70be, 0x080c, 0x7f5d, 0x002e, 0x00ee, 0x0005, 0x0006, 0xa87c,\r
++      0x0006, 0xa867, 0x0103, 0x20a9, 0x001c, 0xa860, 0x20e8, 0xa85c,\r
++      0x9080, 0x001d, 0x20a0, 0x9006, 0x4004, 0x000e, 0x9084, 0x00ff,\r
++      0xa87e, 0x000e, 0xa87a, 0xa982, 0x0005, 0x2071, 0x1906, 0x7004,\r
++      0x0002, 0x6ae7, 0x6ae8, 0x6bae, 0x6ae8, 0x0db4, 0x6bae, 0x0005,\r
++      0x2001, 0x191a, 0x2004, 0x0002, 0x6af2, 0x6af2, 0x6b47, 0x6b48,\r
++      0x6af2, 0x6b48, 0x0126, 0x2091, 0x8000, 0x1e0c, 0x6bce, 0x701c,\r
++      0x904d, 0x01e0, 0xa84c, 0x9005, 0x01d8, 0x0e04, 0x6b16, 0xa94c,\r
++      0x2071, 0x0000, 0x7182, 0xa850, 0x7032, 0xa86c, 0x7086, 0x7036,\r
++      0xa870, 0x708a, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084,\r
++      0x190c, 0x1187, 0x2071, 0x1906, 0x080c, 0x6baf, 0x012e, 0x0470,\r
++      0x2001, 0x005b, 0x2004, 0x9094, 0x0780, 0x190c, 0x6bc3, 0xd09c,\r
++      0x2071, 0x1906, 0x1510, 0x2071, 0x1906, 0x700f, 0x0001, 0xa964,\r
++      0x9184, 0x00ff, 0x9086, 0x0003, 0x1130, 0x810f, 0x918c, 0x00ff,\r
++      0x8101, 0x0108, 0x710e, 0x2900, 0x00d6, 0x2069, 0x0050, 0x6822,\r
++      0x00de, 0x2071, 0x1906, 0x701c, 0x2048, 0x7010, 0x8001, 0x7012,\r
++      0xa800, 0x701e, 0x9005, 0x1108, 0x701a, 0x012e, 0x0005, 0x0005,\r
++      0x00d6, 0x2008, 0x2069, 0x19cb, 0x683c, 0x9005, 0x0760, 0x0158,\r
++      0x9186, 0x0003, 0x0540, 0x2001, 0x1814, 0x2004, 0x2009, 0x1a98,\r
++      0x210c, 0x9102, 0x1500, 0x0126, 0x2091, 0x8000, 0x2069, 0x0050,\r
++      0x693c, 0x6838, 0x9106, 0x0190, 0x0e04, 0x6b7a, 0x2069, 0x0000,\r
++      0x6837, 0x8040, 0x6833, 0x0012, 0x6883, 0x8040, 0x2091, 0x4080,\r
++      0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x1187, 0x2069, 0x19cb,\r
++      0x683f, 0xffff, 0x012e, 0x00de, 0x0126, 0x2091, 0x8000, 0x1e0c,\r
++      0x6c3f, 0x701c, 0x904d, 0x0540, 0x2001, 0x005b, 0x2004, 0x9094,\r
++      0x0780, 0x15c9, 0xd09c, 0x1500, 0x2071, 0x1906, 0x700f, 0x0001,\r
++      0xa964, 0x9184, 0x00ff, 0x9086, 0x0003, 0x1130, 0x810f, 0x918c,\r
++      0x00ff, 0x8101, 0x0108, 0x710e, 0x2900, 0x00d6, 0x2069, 0x0050,\r
++      0x6822, 0x00de, 0x701c, 0x2048, 0x7010, 0x8001, 0x7012, 0xa800,\r
++      0x701e, 0x9005, 0x1108, 0x701a, 0x012e, 0x0005, 0x0005, 0x0126,\r
++      0x2091, 0x8000, 0x701c, 0x904d, 0x0160, 0x7010, 0x8001, 0x7012,\r
++      0xa800, 0x701e, 0x9005, 0x1108, 0x701a, 0x012e, 0x080c, 0x101d,\r
++      0x0005, 0x012e, 0x0005, 0x2091, 0x8000, 0x0e04, 0x6bc5, 0x0006,\r
++      0x0016, 0x2001, 0x8004, 0x0006, 0x0804, 0x0dbd, 0x0096, 0x00f6,\r
++      0x2079, 0x0050, 0x7044, 0xd084, 0x01e0, 0xc084, 0x7046, 0x7838,\r
++      0x7938, 0x910e, 0x1de0, 0x00d6, 0x2069, 0x0000, 0x6836, 0x6833,\r
++      0x0013, 0x00de, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084,\r
++      0x190c, 0x1187, 0x2009, 0x1919, 0x200b, 0x0000, 0x00fe, 0x009e,\r
++      0x0005, 0x782c, 0x9094, 0x0780, 0x1971, 0xd0a4, 0x0db8, 0x2009,\r
++      0x1919, 0x2104, 0x8000, 0x200a, 0x9082, 0x000f, 0x0e78, 0x00e6,\r
++      0x2071, 0x1800, 0x7824, 0x00e6, 0x2071, 0x0040, 0x712c, 0xd19c,\r
++      0x1148, 0x2009, 0x182f, 0x210c, 0x918a, 0x0040, 0x0218, 0x7022,\r
++      0x00ee, 0x0058, 0x00ee, 0x2048, 0x702c, 0xa802, 0x2900, 0x702e,\r
++      0x70bc, 0x8000, 0x70be, 0x080c, 0x7f5d, 0x782c, 0x9094, 0x0780,\r
++      0x190c, 0x6bc3, 0xd0a4, 0x19f0, 0x7838, 0x7938, 0x910e, 0x1de0,\r
++      0x00d6, 0x2069, 0x0000, 0x6836, 0x6833, 0x0013, 0x00de, 0x2091,\r
++      0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x1187, 0x2009,\r
++      0x1919, 0x200b, 0x0000, 0x00ee, 0x00fe, 0x009e, 0x0005, 0x00f6,\r
++      0x2079, 0x0050, 0x7044, 0xd084, 0x01b8, 0xc084, 0x7046, 0x7838,\r
++      0x7938, 0x910e, 0x1de0, 0x00d6, 0x2069, 0x0000, 0x6836, 0x6833,\r
++      0x0013, 0x00de, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084,\r
++      0x190c, 0x1187, 0x00fe, 0x0005, 0x782c, 0x9094, 0x0780, 0x190c,\r
++      0x6bc3, 0xd0a4, 0x0db8, 0x00e6, 0x2071, 0x1800, 0x7824, 0x2048,\r
++      0x702c, 0xa802, 0x2900, 0x702e, 0x70bc, 0x8000, 0x70be, 0x080c,\r
++      0x7f5d, 0x782c, 0x9094, 0x0780, 0x190c, 0x6bc3, 0xd0a4, 0x1d70,\r
++      0x00d6, 0x2069, 0x0050, 0x693c, 0x2069, 0x191a, 0x6808, 0x690a,\r
++      0x2069, 0x19cb, 0x9102, 0x1118, 0x683c, 0x9005, 0x1328, 0x2001,\r
++      0x191b, 0x200c, 0x810d, 0x693e, 0x00de, 0x00ee, 0x00fe, 0x0005,\r
++      0x7094, 0x908a, 0x0029, 0x1a0c, 0x0db4, 0x9082, 0x001d, 0x001b,\r
++      0x6027, 0x1e00, 0x0005, 0x6d67, 0x6ced, 0x6d09, 0x6d33, 0x6d56,\r
++      0x6d96, 0x6da8, 0x6d09, 0x6d7e, 0x6ca8, 0x6cd6, 0x6ca7, 0x0005,\r
++      0x00d6, 0x2069, 0x0200, 0x6804, 0x9005, 0x1180, 0x6808, 0x9005,\r
++      0x1518, 0x7097, 0x0028, 0x2069, 0x1960, 0x2d04, 0x7002, 0x080c,\r
++      0x70eb, 0x6028, 0x9085, 0x0600, 0x602a, 0x00b0, 0x7097, 0x0028,\r
++      0x2069, 0x1960, 0x2d04, 0x7002, 0x6028, 0x9085, 0x0600, 0x602a,\r
++      0x00e6, 0x0036, 0x0046, 0x0056, 0x2071, 0x1a33, 0x080c, 0x1958,\r
++      0x005e, 0x004e, 0x003e, 0x00ee, 0x00de, 0x0005, 0x00d6, 0x2069,\r
++      0x0200, 0x6804, 0x9005, 0x1178, 0x6808, 0x9005, 0x1160, 0x7097,\r
++      0x0028, 0x2069, 0x1960, 0x2d04, 0x7002, 0x080c, 0x7185, 0x6028,\r
++      0x9085, 0x0600, 0x602a, 0x00de, 0x0005, 0x0006, 0x2001, 0x0090,\r
++      0x080c, 0x2b14, 0x000e, 0x6124, 0xd1e4, 0x1190, 0x080c, 0x6e15,\r
++      0xd1d4, 0x1160, 0xd1dc, 0x1138, 0xd1cc, 0x0150, 0x7097, 0x0020,\r
++      0x080c, 0x6e15, 0x0028, 0x7097, 0x001d, 0x0010, 0x7097, 0x001f,\r
++      0x0005, 0x2001, 0x0088, 0x080c, 0x2b14, 0x6124, 0xd1cc, 0x11e8,\r
++      0xd1dc, 0x11c0, 0xd1e4, 0x1198, 0x9184, 0x1e00, 0x11d8, 0x080c,\r
++      0x1982, 0x60e3, 0x0001, 0x600c, 0xc0b4, 0x600e, 0x080c, 0x6fde,\r
++      0x2001, 0x0080, 0x080c, 0x2b14, 0x7097, 0x0028, 0x0058, 0x7097,\r
++      0x001e, 0x0040, 0x7097, 0x001d, 0x0028, 0x7097, 0x0020, 0x0010,\r
++      0x7097, 0x001f, 0x0005, 0x080c, 0x1982, 0x60e3, 0x0001, 0x600c,\r
++      0xc0b4, 0x600e, 0x080c, 0x6fde, 0x2001, 0x0080, 0x080c, 0x2b14,\r
++      0x6124, 0xd1d4, 0x1180, 0xd1dc, 0x1158, 0xd1e4, 0x1130, 0x9184,\r
++      0x1e00, 0x1158, 0x7097, 0x0028, 0x0040, 0x7097, 0x001e, 0x0028,\r
++      0x7097, 0x001d, 0x0010, 0x7097, 0x001f, 0x0005, 0x2001, 0x00a0,\r
++      0x080c, 0x2b14, 0x6124, 0xd1dc, 0x1138, 0xd1e4, 0x0138, 0x080c,\r
++      0x1982, 0x7097, 0x001e, 0x0010, 0x7097, 0x001d, 0x0005, 0x080c,\r
++      0x6e98, 0x6124, 0xd1dc, 0x1188, 0x080c, 0x6e15, 0x0016, 0x080c,\r
++      0x1982, 0x001e, 0xd1d4, 0x1128, 0xd1e4, 0x0138, 0x7097, 0x001e,\r
++      0x0020, 0x7097, 0x001f, 0x080c, 0x6e15, 0x0005, 0x0006, 0x2001,\r
++      0x00a0, 0x080c, 0x2b14, 0x000e, 0x6124, 0xd1d4, 0x1160, 0xd1cc,\r
++      0x1150, 0xd1dc, 0x1128, 0xd1e4, 0x0140, 0x7097, 0x001e, 0x0028,\r
++      0x7097, 0x001d, 0x0010, 0x7097, 0x0021, 0x0005, 0x080c, 0x6e98,\r
++      0x6124, 0xd1d4, 0x1150, 0xd1dc, 0x1128, 0xd1e4, 0x0140, 0x7097,\r
++      0x001e, 0x0028, 0x7097, 0x001d, 0x0010, 0x7097, 0x001f, 0x0005,\r
++      0x0006, 0x2001, 0x0090, 0x080c, 0x2b14, 0x000e, 0x6124, 0xd1d4,\r
++      0x1178, 0xd1cc, 0x1150, 0xd1dc, 0x1128, 0xd1e4, 0x0158, 0x7097,\r
++      0x001e, 0x0040, 0x7097, 0x001d, 0x0028, 0x7097, 0x0020, 0x0010,\r
++      0x7097, 0x001f, 0x0005, 0x0016, 0x00c6, 0x00d6, 0x00e6, 0x0126,\r
++      0x2061, 0x0100, 0x2069, 0x0140, 0x2071, 0x1800, 0x2091, 0x8000,\r
++      0x080c, 0x6fb2, 0x11d8, 0x2001, 0x180c, 0x200c, 0xd1b4, 0x01b0,\r
++      0xc1b4, 0x2102, 0x6027, 0x0200, 0x080c, 0x2a5d, 0x6024, 0xd0cc,\r
++      0x0148, 0x2001, 0x00a0, 0x080c, 0x2b14, 0x080c, 0x7296, 0x080c,\r
++      0x5cd1, 0x0428, 0x6028, 0xc0cd, 0x602a, 0x0408, 0x080c, 0x6fcc,\r
++      0x0150, 0x080c, 0x6fc3, 0x1138, 0x2001, 0x0001, 0x080c, 0x260c,\r
++      0x080c, 0x6f8a, 0x00a0, 0x080c, 0x6e95, 0x0178, 0x2001, 0x0001,\r
++      0x080c, 0x260c, 0x7094, 0x9086, 0x001e, 0x0120, 0x7094, 0x9086,\r
++      0x0022, 0x1118, 0x7097, 0x0025, 0x0010, 0x7097, 0x0021, 0x012e,\r
++      0x00ee, 0x00de, 0x00ce, 0x001e, 0x0005, 0x0026, 0x2011, 0x6e26,\r
++      0x080c, 0x810c, 0x002e, 0x0016, 0x0026, 0x2009, 0x0064, 0x2011,\r
++      0x6e26, 0x080c, 0x8103, 0x002e, 0x001e, 0x0005, 0x00e6, 0x00f6,\r
++      0x0016, 0x080c, 0x93ac, 0x2071, 0x1800, 0x080c, 0x6dc3, 0x001e,\r
++      0x00fe, 0x00ee, 0x0005, 0x0016, 0x0026, 0x0036, 0x00c6, 0x00d6,\r
++      0x00e6, 0x00f6, 0x0126, 0x080c, 0x93ac, 0x2061, 0x0100, 0x2069,\r
++      0x0140, 0x2071, 0x1800, 0x2091, 0x8000, 0x6028, 0xc09c, 0x602a,\r
++      0x2011, 0x0003, 0x080c, 0x9771, 0x2011, 0x0002, 0x080c, 0x977b,\r
++      0x080c, 0x9662, 0x080c, 0x80b8, 0x0036, 0x901e, 0x080c, 0x96d8,\r
++      0x003e, 0x60e3, 0x0000, 0x080c, 0xd8b4, 0x080c, 0xd8cf, 0x2009,\r
++      0x0004, 0x080c, 0x2a63, 0x080c, 0x297e, 0x2001, 0x1800, 0x2003,\r
++      0x0004, 0x6027, 0x0008, 0x2011, 0x6e26, 0x080c, 0x810c, 0x080c,\r
++      0x6fcc, 0x0118, 0x9006, 0x080c, 0x2b14, 0x080c, 0x0b8f, 0x2001,\r
++      0x0001, 0x080c, 0x260c, 0x012e, 0x00fe, 0x00ee, 0x00de, 0x00ce,\r
++      0x003e, 0x002e, 0x001e, 0x0005, 0x0026, 0x00e6, 0x2011, 0x6e33,\r
++      0x2071, 0x19cb, 0x701c, 0x9206, 0x1118, 0x7018, 0x9005, 0x0110,\r
++      0x9085, 0x0001, 0x00ee, 0x002e, 0x0005, 0x6020, 0xd09c, 0x0005,\r
++      0x6800, 0x9084, 0xfffe, 0x9086, 0x00c0, 0x01b8, 0x2001, 0x00c0,\r
++      0x080c, 0x2b14, 0x0156, 0x20a9, 0x002d, 0x1d04, 0x6ea5, 0x2091,\r
++      0x6000, 0x1f04, 0x6ea5, 0x015e, 0x00d6, 0x2069, 0x1800, 0x6898,\r
++      0x8001, 0x0220, 0x0118, 0x689a, 0x00de, 0x0005, 0x689b, 0x0014,\r
++      0x68e4, 0xd0dc, 0x0dc8, 0x6800, 0x9086, 0x0001, 0x1da8, 0x080c,\r
++      0x8118, 0x0c90, 0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100, 0x2069,\r
++      0x0140, 0x2071, 0x1800, 0x080c, 0x72a5, 0x2001, 0x193e, 0x2003,\r
++      0x0000, 0x9006, 0x7096, 0x60e2, 0x6886, 0x080c, 0x26d7, 0x9006,\r
++      0x080c, 0x2b14, 0x080c, 0x5b90, 0x6027, 0xffff, 0x602b, 0x182f,\r
++      0x00ee, 0x00de, 0x00ce, 0x0005, 0x00c6, 0x00d6, 0x00e6, 0x2061,\r
++      0x0100, 0x2069, 0x0140, 0x2071, 0x1800, 0x2001, 0x194e, 0x200c,\r
++      0x9186, 0x0000, 0x0158, 0x9186, 0x0001, 0x0158, 0x9186, 0x0002,\r
++      0x0158, 0x9186, 0x0003, 0x0158, 0x0804, 0x6f7a, 0x7097, 0x0022,\r
++      0x0040, 0x7097, 0x0021, 0x0028, 0x7097, 0x0023, 0x0010, 0x7097,\r
++      0x0024, 0x60e3, 0x0000, 0x6887, 0x0001, 0x2001, 0x0001, 0x080c,\r
++      0x26d7, 0x0026, 0x080c, 0x9db8, 0x002e, 0x7000, 0x908e, 0x0004,\r
++      0x0118, 0x602b, 0x0028, 0x0010, 0x602b, 0x0020, 0x0156, 0x0126,\r
++      0x2091, 0x8000, 0x20a9, 0x0005, 0x6024, 0xd0ac, 0x0150, 0x012e,\r
++      0x015e, 0x080c, 0xc212, 0x0118, 0x9006, 0x080c, 0x2b3e, 0x0804,\r
++      0x6f86, 0x6800, 0x9084, 0x00a1, 0xc0bd, 0x6802, 0x080c, 0x2a5d,\r
++      0x6904, 0xd1d4, 0x1140, 0x2001, 0x0100, 0x080c, 0x2b14, 0x1f04,\r
++      0x6f24, 0x080c, 0x7009, 0x012e, 0x015e, 0x080c, 0x6fc3, 0x01a8,\r
++      0x6044, 0x9005, 0x0168, 0x6050, 0x0006, 0x9085, 0x0020, 0x6052,\r
++      0x080c, 0x7009, 0x9006, 0x8001, 0x1df0, 0x000e, 0x6052, 0x0028,\r
++      0x6804, 0xd0d4, 0x1110, 0x080c, 0x7009, 0x080c, 0xc212, 0x0118,\r
++      0x9006, 0x080c, 0x2b3e, 0x0016, 0x0026, 0x7000, 0x908e, 0x0004,\r
++      0x0130, 0x2009, 0x00c8, 0x2011, 0x6e33, 0x080c, 0x80ca, 0x002e,\r
++      0x001e, 0x080c, 0x7f54, 0x7034, 0xc085, 0x7036, 0x2001, 0x194e,\r
++      0x2003, 0x0004, 0x080c, 0x6c90, 0x080c, 0x6fc3, 0x0138, 0x6804,\r
++      0xd0d4, 0x1120, 0xd0dc, 0x1100, 0x080c, 0x729b, 0x00ee, 0x00de,\r
++      0x00ce, 0x0005, 0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100, 0x2069,\r
++      0x0140, 0x2071, 0x1800, 0x080c, 0x7f6b, 0x080c, 0x7f5d, 0x080c,\r
++      0x72a5, 0x2001, 0x193e, 0x2003, 0x0000, 0x9006, 0x7096, 0x60e2,\r
++      0x6886, 0x080c, 0x26d7, 0x9006, 0x080c, 0x2b14, 0x6043, 0x0090,\r
++      0x6043, 0x0010, 0x6027, 0xffff, 0x602b, 0x182f, 0x00ee, 0x00de,\r
++      0x00ce, 0x0005, 0x0006, 0x2001, 0x194d, 0x2004, 0x9086, 0xaaaa,\r
++      0x000e, 0x0005, 0x0006, 0x080c, 0x538a, 0x9084, 0x0030, 0x9086,\r
++      0x0000, 0x000e, 0x0005, 0x0006, 0x080c, 0x538a, 0x9084, 0x0030,\r
++      0x9086, 0x0030, 0x000e, 0x0005, 0x0006, 0x080c, 0x538a, 0x9084,\r
++      0x0030, 0x9086, 0x0010, 0x000e, 0x0005, 0x0006, 0x080c, 0x538a,\r
++      0x9084, 0x0030, 0x9086, 0x0020, 0x000e, 0x0005, 0x0036, 0x0016,\r
++      0x2001, 0x180c, 0x2004, 0x908c, 0x0013, 0x0180, 0x0020, 0x080c,\r
++      0x26f7, 0x900e, 0x0028, 0x080c, 0x655a, 0x1dc8, 0x2009, 0x0002,\r
++      0x2019, 0x0028, 0x080c, 0x2fa5, 0x9006, 0x0019, 0x001e, 0x003e,\r
++      0x0005, 0x00e6, 0x2071, 0x180c, 0x2e04, 0x0130, 0x080c, 0xc20b,\r
++      0x1128, 0x9085, 0x0010, 0x0010, 0x9084, 0xffef, 0x2072, 0x00ee,\r
++      0x0005, 0x6050, 0x0006, 0x60ec, 0x0006, 0x600c, 0x0006, 0x6004,\r
++      0x0006, 0x6028, 0x0006, 0x0016, 0x6138, 0x6050, 0x9084, 0xfbff,\r
++      0x9085, 0x2000, 0x6052, 0x613a, 0x20a9, 0x0012, 0x1d04, 0x701e,\r
++      0x2091, 0x6000, 0x1f04, 0x701e, 0x602f, 0x0100, 0x602f, 0x0000,\r
++      0x6050, 0x9085, 0x0400, 0x9084, 0xdfff, 0x6052, 0x613a, 0x001e,\r
++      0x602f, 0x0040, 0x602f, 0x0000, 0x000e, 0x602a, 0x000e, 0x6006,\r
++      0x000e, 0x600e, 0x000e, 0x60ee, 0x60e3, 0x0000, 0x6887, 0x0001,\r
++      0x2001, 0x0001, 0x080c, 0x26d7, 0x2001, 0x00a0, 0x0006, 0x080c,\r
++      0xc212, 0x000e, 0x0130, 0x080c, 0x2b32, 0x9006, 0x080c, 0x2b3e,\r
++      0x0010, 0x080c, 0x2b14, 0x000e, 0x6052, 0x6050, 0x0006, 0xc0e5,\r
++      0x6052, 0x00f6, 0x2079, 0x0100, 0x080c, 0x29d2, 0x00fe, 0x000e,\r
++      0x6052, 0x0005, 0x0156, 0x0016, 0x0026, 0x0036, 0x00c6, 0x00d6,\r
++      0x00e6, 0x2061, 0x0100, 0x2069, 0x0140, 0x2071, 0x1800, 0x6020,\r
++      0x9084, 0x0080, 0x0138, 0x2001, 0x180c, 0x200c, 0xc1c5, 0x2102,\r
++      0x0804, 0x70dd, 0x2001, 0x180c, 0x200c, 0xc1c4, 0x2102, 0x6028,\r
++      0x9084, 0xe1ff, 0x602a, 0x6027, 0x0200, 0x2001, 0x0090, 0x080c,\r
++      0x2b14, 0x20a9, 0x0366, 0x6024, 0xd0cc, 0x1518, 0x1d04, 0x708b,\r
++      0x2091, 0x6000, 0x1f04, 0x708b, 0x2011, 0x0003, 0x080c, 0x9771,\r
++      0x2011, 0x0002, 0x080c, 0x977b, 0x080c, 0x9662, 0x901e, 0x080c,\r
++      0x96d8, 0x2001, 0x00a0, 0x080c, 0x2b14, 0x080c, 0x7296, 0x080c,\r
++      0x5cd1, 0x080c, 0xc212, 0x0110, 0x080c, 0x0d22, 0x9085, 0x0001,\r
++      0x0490, 0x86ff, 0x1110, 0x080c, 0x1982, 0x60e3, 0x0000, 0x2001,\r
++      0x0002, 0x080c, 0x26d7, 0x60e2, 0x2001, 0x0080, 0x080c, 0x2b14,\r
++      0x20a9, 0x0366, 0x6027, 0x1e00, 0x2009, 0x1e00, 0x080c, 0x2a5d,\r
++      0x6024, 0x910c, 0x0138, 0x1d04, 0x70c2, 0x2091, 0x6000, 0x1f04,\r
++      0x70c2, 0x0810, 0x6028, 0x9085, 0x1e00, 0x602a, 0x70b0, 0x9005,\r
++      0x1118, 0x6887, 0x0001, 0x0008, 0x6886, 0x080c, 0xc212, 0x0110,\r
++      0x080c, 0x0d22, 0x9006, 0x00ee, 0x00de, 0x00ce, 0x003e, 0x002e,\r
++      0x001e, 0x015e, 0x0005, 0x0156, 0x0016, 0x0026, 0x0036, 0x00c6,\r
++      0x00d6, 0x00e6, 0x2061, 0x0100, 0x2071, 0x1800, 0x7000, 0x9086,\r
++      0x0003, 0x1168, 0x2001, 0x020b, 0x2004, 0x9084, 0x5540, 0x9086,\r
++      0x5540, 0x1128, 0x2069, 0x1a49, 0x2d04, 0x8000, 0x206a, 0x2069,\r
++      0x0140, 0x6020, 0x9084, 0x00c0, 0x0120, 0x6884, 0x9005, 0x1904,\r
++      0x7150, 0x2001, 0x0088, 0x080c, 0x2b14, 0x9006, 0x60e2, 0x6886,\r
++      0x080c, 0x26d7, 0x2069, 0x0200, 0x6804, 0x9005, 0x1118, 0x6808,\r
++      0x9005, 0x01c0, 0x6028, 0x9084, 0xfbff, 0x602a, 0x6027, 0x0400,\r
++      0x2069, 0x1960, 0x7000, 0x206a, 0x7097, 0x0026, 0x7003, 0x0001,\r
++      0x20a9, 0x0002, 0x1d04, 0x7132, 0x2091, 0x6000, 0x1f04, 0x7132,\r
++      0x0804, 0x717d, 0x2069, 0x0140, 0x20a9, 0x0384, 0x6027, 0x1e00,\r
++      0x2009, 0x1e00, 0x080c, 0x2a5d, 0x6024, 0x910c, 0x0508, 0x9084,\r
++      0x1a00, 0x11f0, 0x1d04, 0x713e, 0x2091, 0x6000, 0x1f04, 0x713e,\r
++      0x2011, 0x0003, 0x080c, 0x9771, 0x2011, 0x0002, 0x080c, 0x977b,\r
++      0x080c, 0x9662, 0x901e, 0x080c, 0x96d8, 0x2001, 0x00a0, 0x080c,\r
++      0x2b14, 0x080c, 0x7296, 0x080c, 0x5cd1, 0x9085, 0x0001, 0x00a8,\r
++      0x2001, 0x0080, 0x080c, 0x2b14, 0x2069, 0x0140, 0x60e3, 0x0000,\r
++      0x70b0, 0x9005, 0x1118, 0x6887, 0x0001, 0x0008, 0x6886, 0x2001,\r
++      0x0002, 0x080c, 0x26d7, 0x60e2, 0x9006, 0x00ee, 0x00de, 0x00ce,\r
++      0x003e, 0x002e, 0x001e, 0x015e, 0x0005, 0x0156, 0x0016, 0x0026,\r
++      0x0036, 0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100, 0x2071, 0x1800,\r
++      0x6020, 0x9084, 0x00c0, 0x01c8, 0x2011, 0x0003, 0x080c, 0x9771,\r
++      0x2011, 0x0002, 0x080c, 0x977b, 0x080c, 0x9662, 0x901e, 0x080c,\r
++      0x96d8, 0x2069, 0x0140, 0x2001, 0x00a0, 0x080c, 0x2b14, 0x080c,\r
++      0x7296, 0x080c, 0x5cd1, 0x0804, 0x7217, 0x2001, 0x180c, 0x200c,\r
++      0xd1b4, 0x1160, 0xc1b5, 0x2102, 0x080c, 0x6e1b, 0x2069, 0x0140,\r
++      0x2001, 0x0080, 0x080c, 0x2b14, 0x60e3, 0x0000, 0x2069, 0x0200,\r
++      0x6804, 0x9005, 0x1118, 0x6808, 0x9005, 0x0180, 0x6028, 0x9084,\r
++      0xfdff, 0x602a, 0x6027, 0x0200, 0x2069, 0x1960, 0x7000, 0x206a,\r
++      0x7097, 0x0027, 0x7003, 0x0001, 0x0804, 0x7217, 0x6027, 0x1e00,\r
++      0x2009, 0x1e00, 0x080c, 0x2a5d, 0x6024, 0x910c, 0x01c8, 0x9084,\r
++      0x1c00, 0x11b0, 0x1d04, 0x71d6, 0x0006, 0x0016, 0x00c6, 0x00d6,\r
++      0x00e6, 0x080c, 0x7f9c, 0x00ee, 0x00de, 0x00ce, 0x001e, 0x000e,\r
++      0x00e6, 0x2071, 0x19cb, 0x7018, 0x00ee, 0x9005, 0x19f8, 0x01f8,\r
++      0x0026, 0x2011, 0x6e33, 0x080c, 0x8038, 0x2011, 0x6e26, 0x080c,\r
++      0x810c, 0x002e, 0x2069, 0x0140, 0x60e3, 0x0000, 0x70b0, 0x9005,\r
++      0x1118, 0x6887, 0x0001, 0x0008, 0x6886, 0x2001, 0x0002, 0x080c,\r
++      0x26d7, 0x60e2, 0x2001, 0x180c, 0x200c, 0xc1b4, 0x2102, 0x00ee,\r
++      0x00de, 0x00ce, 0x003e, 0x002e, 0x001e, 0x015e, 0x0005, 0x0156,\r
++      0x0016, 0x0026, 0x0036, 0x0046, 0x00c6, 0x00e6, 0x2061, 0x0100,\r
++      0x2071, 0x1800, 0x080c, 0xc20b, 0x1904, 0x7284, 0x7130, 0xd184,\r
++      0x1170, 0x080c, 0x3133, 0x0138, 0xc18d, 0x7132, 0x2011, 0x1854,\r
++      0x2214, 0xd2ac, 0x1120, 0x7030, 0xd08c, 0x0904, 0x7284, 0x2011,\r
++      0x1854, 0x220c, 0x0438, 0x0016, 0x2019, 0x000e, 0x080c, 0xd4a6,\r
++      0x0156, 0x00b6, 0x20a9, 0x007f, 0x900e, 0x9186, 0x007e, 0x01a0,\r
++      0x9186, 0x0080, 0x0188, 0x080c, 0x623e, 0x1170, 0x2120, 0x9006,\r
++      0x0016, 0x2009, 0x000e, 0x080c, 0xd52a, 0x2009, 0x0001, 0x2011,\r
++      0x0100, 0x080c, 0x822f, 0x001e, 0x8108, 0x1f04, 0x724d, 0x00be,\r
++      0x015e, 0x001e, 0xd1ac, 0x1148, 0x0016, 0x2009, 0x0002, 0x2019,\r
++      0x0004, 0x080c, 0x2fa5, 0x001e, 0x0078, 0x0156, 0x00b6, 0x20a9,\r
++      0x007f, 0x900e, 0x080c, 0x623e, 0x1110, 0x080c, 0x5ceb, 0x8108,\r
++      0x1f04, 0x727a, 0x00be, 0x015e, 0x080c, 0x1982, 0x080c, 0x9db8,\r
++      0x60e3, 0x0000, 0x080c, 0x5cd1, 0x080c, 0x6ee4, 0x00ee, 0x00ce,\r
++      0x004e, 0x003e, 0x002e, 0x001e, 0x015e, 0x0005, 0x2001, 0x194e,\r
++      0x2003, 0x0001, 0x0005, 0x2001, 0x194e, 0x2003, 0x0000, 0x0005,\r
++      0x2001, 0x194d, 0x2003, 0xaaaa, 0x0005, 0x2001, 0x194d, 0x2003,\r
++      0x0000, 0x0005, 0x2071, 0x18f0, 0x7003, 0x0000, 0x7007, 0x0000,\r
++      0x080c, 0x1004, 0x090c, 0x0db4, 0xa8ab, 0xdcb0, 0x2900, 0x704e,\r
++      0x080c, 0x1004, 0x090c, 0x0db4, 0xa8ab, 0xdcb0, 0x2900, 0x7052,\r
++      0xa867, 0x0000, 0xa86b, 0x0001, 0xa89f, 0x0000, 0x0005, 0x00e6,\r
++      0x2071, 0x0040, 0x6848, 0x9005, 0x1118, 0x9085, 0x0001, 0x04b0,\r
++      0x6840, 0x9005, 0x0150, 0x04a1, 0x6a50, 0x9200, 0x7002, 0x6854,\r
++      0x9101, 0x7006, 0x9006, 0x7012, 0x7016, 0x6850, 0x7002, 0x6854,\r
++      0x7006, 0x6858, 0x700a, 0x685c, 0x700e, 0x6840, 0x9005, 0x1110,\r
++      0x7012, 0x7016, 0x6848, 0x701a, 0x701c, 0x9085, 0x0040, 0x701e,\r
++      0x2001, 0x0019, 0x7036, 0x702b, 0x0001, 0x2001, 0x0004, 0x200c,\r
++      0x918c, 0xfff7, 0x918d, 0x8000, 0x2102, 0x00d6, 0x2069, 0x18f0,\r
++      0x6807, 0x0001, 0x00de, 0x080c, 0x7897, 0x9006, 0x00ee, 0x0005,\r
++      0x900e, 0x0156, 0x20a9, 0x0006, 0x8003, 0x2011, 0x0100, 0x2214,\r
++      0x9296, 0x0008, 0x1110, 0x818d, 0x0010, 0x81f5, 0x3e08, 0x1f04,\r
++      0x730c, 0x015e, 0x0005, 0x2079, 0x0040, 0x2071, 0x18f0, 0x7004,\r
++      0x0002, 0x732b, 0x732c, 0x7363, 0x73be, 0x74ff, 0x7329, 0x7329,\r
++      0x7529, 0x080c, 0x0db4, 0x0005, 0x2079, 0x0040, 0x782c, 0x908c,\r
++      0x0780, 0x190c, 0x7923, 0xd0a4, 0x01f0, 0x7824, 0x2048, 0x9006,\r
++      0xa802, 0xa806, 0xa864, 0x9084, 0x00ff, 0x908a, 0x0040, 0x0608,\r
++      0x00b8, 0x2001, 0x1800, 0x200c, 0x9186, 0x0003, 0x1160, 0x7104,\r
++      0x9186, 0x0004, 0x0140, 0x9186, 0x0007, 0x0128, 0x9186, 0x0003,\r
++      0x19e8, 0x080c, 0x73be, 0x782c, 0xd09c, 0x090c, 0x7897, 0x0005,\r
++      0x9082, 0x005a, 0x1218, 0x2100, 0x003b, 0x0c18, 0x080c, 0x73f4,\r
++      0x0c90, 0x00e3, 0x08f0, 0x0005, 0x73f4, 0x73f4, 0x73f4, 0x73f4,\r
++      0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x7416, 0x73f4, 0x73f4, 0x73f4,\r
++      0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x73f4,\r
++      0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x73f4,\r
++      0x7400, 0x73f4, 0x75fe, 0x73f4, 0x73f4, 0x73f4, 0x7416, 0x73f4,\r
++      0x7400, 0x763f, 0x7680, 0x76c7, 0x76db, 0x73f4, 0x73f4, 0x7416,\r
++      0x7400, 0x73f4, 0x73f4, 0x74d3, 0x7786, 0x77a1, 0x73f4, 0x7416,\r
++      0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x74c9, 0x77a1, 0x73f4, 0x73f4,\r
++      0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x742a,\r
++      0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x73f4,\r
++      0x73f4, 0x78c7, 0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x743e,\r
++      0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x73f4, 0x2079, 0x0040,\r
++      0x7004, 0x9086, 0x0003, 0x1198, 0x782c, 0x080c, 0x78c0, 0xd0a4,\r
++      0x0170, 0x7824, 0x2048, 0x9006, 0xa802, 0xa806, 0xa864, 0x9084,\r
++      0x00ff, 0x908a, 0x001a, 0x1210, 0x002b, 0x0c50, 0x00e9, 0x080c,\r
++      0x7897, 0x0005, 0x73f4, 0x7400, 0x75ea, 0x73f4, 0x7400, 0x73f4,\r
++      0x7400, 0x7400, 0x73f4, 0x7400, 0x75ea, 0x7400, 0x7400, 0x7400,\r
++      0x7400, 0x7400, 0x73f4, 0x7400, 0x75ea, 0x73f4, 0x73f4, 0x7400,\r
++      0x73f4, 0x73f4, 0x73f4, 0x7400, 0x00e6, 0x2071, 0x18f0, 0x2009,\r
++      0x0400, 0x0071, 0x00ee, 0x0005, 0x2009, 0x1000, 0x0049, 0x0005,\r
++      0x2009, 0x2000, 0x0029, 0x0005, 0x2009, 0x0800, 0x0009, 0x0005,\r
++      0x7007, 0x0001, 0xa868, 0x9084, 0x00ff, 0x9105, 0xa86a, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0x688c, 0x012e, 0x0005, 0xa864, 0x8007,\r
++      0x9084, 0x00ff, 0x0d08, 0x8001, 0x1120, 0x7007, 0x0001, 0x0804,\r
++      0x75a8, 0x7007, 0x0003, 0x7012, 0x2900, 0x7016, 0x701a, 0x704b,\r
++      0x75a8, 0x0005, 0xa864, 0x8007, 0x9084, 0x00ff, 0x0968, 0x8001,\r
++      0x1120, 0x7007, 0x0001, 0x0804, 0x75c3, 0x7007, 0x0003, 0x7012,\r
++      0x2900, 0x7016, 0x701a, 0x704b, 0x75c3, 0x0005, 0xa864, 0x8007,\r
++      0x9084, 0x00ff, 0x9086, 0x0001, 0x1904, 0x73fc, 0x7007, 0x0001,\r
++      0x2009, 0x1833, 0x210c, 0x81ff, 0x1904, 0x74a0, 0xa994, 0x9186,\r
++      0x006f, 0x0188, 0x9186, 0x0074, 0x15b0, 0x0026, 0x2011, 0x0010,\r
++      0x080c, 0x6586, 0x002e, 0x0578, 0x0016, 0xa998, 0x080c, 0x65d0,\r
++      0x001e, 0x1548, 0x0400, 0x080c, 0x6fb2, 0x0140, 0xa897, 0x4005,\r
++      0xa89b, 0x0016, 0x2001, 0x0030, 0x900e, 0x0438, 0x0026, 0x2011,\r
++      0x8008, 0x080c, 0x6586, 0x002e, 0x01b0, 0x0016, 0x0026, 0x0036,\r
++      0xa998, 0xaaa0, 0xab9c, 0x918d, 0x8000, 0x080c, 0x65d0, 0x003e,\r
++      0x002e, 0x001e, 0x1140, 0xa897, 0x4005, 0xa89b, 0x4009, 0x2001,\r
++      0x0030, 0x900e, 0x0050, 0xa868, 0x9084, 0x00ff, 0xa86a, 0xa883,\r
++      0x0000, 0x080c, 0x5f00, 0x1108, 0x0005, 0x0126, 0x2091, 0x8000,\r
++      0xa867, 0x0139, 0xa87a, 0xa982, 0x080c, 0x688c, 0x012e, 0x0ca0,\r
++      0xa994, 0x9186, 0x0071, 0x0904, 0x744e, 0x9186, 0x0064, 0x0904,\r
++      0x744e, 0x9186, 0x007c, 0x0904, 0x744e, 0x9186, 0x0028, 0x0904,\r
++      0x744e, 0x9186, 0x0038, 0x0904, 0x744e, 0x9186, 0x0078, 0x0904,\r
++      0x744e, 0x9186, 0x005f, 0x0904, 0x744e, 0x9186, 0x0056, 0x0904,\r
++      0x744e, 0xa897, 0x4005, 0xa89b, 0x0001, 0x2001, 0x0030, 0x900e,\r
++      0x0860, 0xa87c, 0x9084, 0x00c0, 0x9086, 0x00c0, 0x1120, 0x7007,\r
++      0x0001, 0x0804, 0x77b8, 0x2900, 0x7016, 0x701a, 0x20a9, 0x0004,\r
++      0xa860, 0x20e0, 0xa85c, 0x9080, 0x0030, 0x2098, 0x7050, 0x2040,\r
++      0xa060, 0x20e8, 0xa05c, 0x9080, 0x0023, 0x20a0, 0x4003, 0xa888,\r
++      0x7012, 0x9082, 0x0401, 0x1a04, 0x7404, 0xaab4, 0x928a, 0x0002,\r
++      0x1a04, 0x7404, 0x82ff, 0x1138, 0xa8b8, 0xa9bc, 0x9105, 0x0118,\r
++      0x2001, 0x7566, 0x0018, 0x9280, 0x755c, 0x2005, 0x7056, 0x7010,\r
++      0x9015, 0x0904, 0x7547, 0x080c, 0x1004, 0x1118, 0x7007, 0x0004,\r
++      0x0005, 0x2900, 0x7022, 0x7054, 0x2060, 0xe000, 0xa866, 0x7050,\r
++      0x2040, 0xa95c, 0xe004, 0x9100, 0xa076, 0xa860, 0xa072, 0xe008,\r
++      0x920a, 0x1210, 0x900e, 0x2200, 0x7112, 0xe20c, 0x8003, 0x800b,\r
++      0x9296, 0x0004, 0x0108, 0x9108, 0xa17a, 0x810b, 0xa17e, 0x080c,\r
++      0x10d5, 0xa06c, 0x908e, 0x0100, 0x0170, 0x9086, 0x0200, 0x0118,\r
++      0x7007, 0x0007, 0x0005, 0x7020, 0x2048, 0x080c, 0x101d, 0x7014,\r
++      0x2048, 0x0804, 0x7404, 0x7020, 0x2048, 0x7018, 0xa802, 0xa807,\r
++      0x0000, 0x2908, 0x2048, 0xa906, 0x711a, 0x0804, 0x74ff, 0x7014,\r
++      0x2048, 0x7007, 0x0001, 0xa8b4, 0x9005, 0x1128, 0xa8b8, 0xa9bc,\r
++      0x9105, 0x0108, 0x00b9, 0xa864, 0x9084, 0x00ff, 0x9086, 0x001e,\r
++      0x0904, 0x77b8, 0x0804, 0x75a8, 0x755e, 0x7562, 0x0002, 0x001d,\r
++      0x0007, 0x0004, 0x000a, 0x001b, 0x0005, 0x0006, 0x000a, 0x001d,\r
++      0x0005, 0x0004, 0x0076, 0x0066, 0xafb8, 0xaebc, 0xa804, 0x2050,\r
++      0xb0c0, 0xb0e2, 0xb0bc, 0xb0de, 0xb0b8, 0xb0d2, 0xb0b4, 0xb0ce,\r
++      0xb6da, 0xb7d6, 0xb0b0, 0xb0ca, 0xb0ac, 0xb0c6, 0xb0a8, 0xb0ba,\r
++      0xb0a4, 0xb0b6, 0xb6c2, 0xb7be, 0xb0a0, 0xb0b2, 0xb09c, 0xb0ae,\r
++      0xb098, 0xb0a2, 0xb094, 0xb09e, 0xb6aa, 0xb7a6, 0xb090, 0xb09a,\r
++      0xb08c, 0xb096, 0xb088, 0xb08a, 0xb084, 0xb086, 0xb692, 0xb78e,\r
++      0xb080, 0xb082, 0xb07c, 0xb07e, 0xb078, 0xb072, 0xb074, 0xb06e,\r
++      0xb67a, 0xb776, 0xb004, 0x9055, 0x1958, 0x006e, 0x007e, 0x0005,\r
++      0x2009, 0x1833, 0x210c, 0x81ff, 0x1178, 0x080c, 0x5d4d, 0x1108,\r
++      0x0005, 0x080c, 0x6ac6, 0x0126, 0x2091, 0x8000, 0x080c, 0xbe06,\r
++      0x080c, 0x688c, 0x012e, 0x0ca0, 0x080c, 0xc20b, 0x1d70, 0x2001,\r
++      0x0028, 0x900e, 0x0c70, 0x2009, 0x1833, 0x210c, 0x81ff, 0x11d8,\r
++      0xa888, 0x9005, 0x01e0, 0xa883, 0x0000, 0xa87c, 0xd0f4, 0x0120,\r
++      0x080c, 0x5e62, 0x1138, 0x0005, 0x9006, 0xa87a, 0x080c, 0x5ddd,\r
++      0x1108, 0x0005, 0x0126, 0x2091, 0x8000, 0xa87a, 0xa982, 0x080c,\r
++      0x688c, 0x012e, 0x0cb0, 0x2001, 0x0028, 0x900e, 0x0c98, 0x2001,\r
++      0x0000, 0x0c80, 0x7018, 0xa802, 0x2908, 0x2048, 0xa906, 0x711a,\r
++      0x7010, 0x8001, 0x7012, 0x0118, 0x7007, 0x0003, 0x0030, 0x7014,\r
++      0x2048, 0x7007, 0x0001, 0x7048, 0x080f, 0x0005, 0x00b6, 0x7007,\r
++      0x0001, 0xa974, 0xa878, 0x9084, 0x00ff, 0x9096, 0x0004, 0x0540,\r
++      0x20a9, 0x0001, 0x9096, 0x0001, 0x0190, 0x900e, 0x20a9, 0x0800,\r
++      0x9096, 0x0002, 0x0160, 0x9005, 0x11d8, 0xa974, 0x080c, 0x623e,\r
++      0x11b8, 0x0066, 0xae80, 0x080c, 0x634e, 0x006e, 0x0088, 0x0046,\r
++      0x2011, 0x180c, 0x2224, 0xc484, 0x2412, 0x004e, 0x00c6, 0x080c,\r
++      0x623e, 0x1110, 0x080c, 0x644e, 0x8108, 0x1f04, 0x7627, 0x00ce,\r
++      0xa87c, 0xd084, 0x1120, 0x080c, 0x101d, 0x00be, 0x0005, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0x688c, 0x012e, 0x00be, 0x0005, 0x0126,\r
++      0x2091, 0x8000, 0x7007, 0x0001, 0x080c, 0x655e, 0x0580, 0x2061,\r
++      0x1a41, 0x6100, 0xd184, 0x0178, 0xa888, 0x9084, 0x00ff, 0x1550,\r
++      0x6000, 0xd084, 0x0520, 0x6004, 0x9005, 0x1538, 0x6003, 0x0000,\r
++      0x600b, 0x0000, 0x00c8, 0x2011, 0x0001, 0xa890, 0x9005, 0x1110,\r
++      0x2001, 0x001e, 0x8000, 0x6016, 0xa888, 0x9084, 0x00ff, 0x0178,\r
++      0x6006, 0xa888, 0x8007, 0x9084, 0x00ff, 0x0148, 0x600a, 0xa888,\r
++      0x8000, 0x1108, 0xc28d, 0x6202, 0x012e, 0x0804, 0x7881, 0x012e,\r
++      0x0804, 0x787b, 0x012e, 0x0804, 0x7875, 0x012e, 0x0804, 0x7878,\r
++      0x0126, 0x2091, 0x8000, 0x7007, 0x0001, 0x080c, 0x655e, 0x05e0,\r
++      0x2061, 0x1a41, 0x6000, 0xd084, 0x05b8, 0x6204, 0x6308, 0xd08c,\r
++      0x1530, 0xac78, 0x9484, 0x0003, 0x0170, 0xa988, 0x918c, 0x00ff,\r
++      0x8001, 0x1120, 0x2100, 0x9210, 0x0620, 0x0028, 0x8001, 0x1508,\r
++      0x2100, 0x9212, 0x02f0, 0x9484, 0x000c, 0x0188, 0xa988, 0x810f,\r
++      0x918c, 0x00ff, 0x9082, 0x0004, 0x1120, 0x2100, 0x9318, 0x0288,\r
++      0x0030, 0x9082, 0x0004, 0x1168, 0x2100, 0x931a, 0x0250, 0xa890,\r
++      0x9005, 0x0110, 0x8000, 0x6016, 0x6206, 0x630a, 0x012e, 0x0804,\r
++      0x7881, 0x012e, 0x0804, 0x787e, 0x012e, 0x0804, 0x787b, 0x0126,\r
++      0x2091, 0x8000, 0x7007, 0x0001, 0x2061, 0x1a41, 0x6300, 0xd38c,\r
++      0x1120, 0x6308, 0x8318, 0x0220, 0x630a, 0x012e, 0x0804, 0x788f,\r
++      0x012e, 0x0804, 0x787e, 0x00b6, 0x0126, 0x00c6, 0x2091, 0x8000,\r
++      0x7007, 0x0001, 0xa87c, 0xd0ac, 0x0148, 0x00c6, 0x2061, 0x1a41,\r
++      0x6000, 0x9084, 0xfcff, 0x6002, 0x00ce, 0x0440, 0xa888, 0x9005,\r
++      0x05d8, 0xa88c, 0x9065, 0x0598, 0x2001, 0x1833, 0x2004, 0x9005,\r
++      0x0118, 0x080c, 0x9e62, 0x0068, 0x6017, 0xf400, 0x605b, 0x0000,\r
++      0xa97c, 0xd1a4, 0x0110, 0xa980, 0x615a, 0x2009, 0x0041, 0x080c,\r
++      0x9eac, 0xa988, 0x918c, 0xff00, 0x9186, 0x2000, 0x1138, 0x0026,\r
++      0x900e, 0x2011, 0xfdff, 0x080c, 0x822f, 0x002e, 0xa87c, 0xd0c4,\r
++      0x0148, 0x2061, 0x1a41, 0x6000, 0xd08c, 0x1120, 0x6008, 0x8000,\r
++      0x0208, 0x600a, 0x00ce, 0x012e, 0x00be, 0x0804, 0x7881, 0x00ce,\r
++      0x012e, 0x00be, 0x0804, 0x787b, 0xa984, 0x9186, 0x002e, 0x0d30,\r
++      0x9186, 0x002d, 0x0d18, 0x9186, 0x0045, 0x0510, 0x9186, 0x002a,\r
++      0x1130, 0x2001, 0x180c, 0x200c, 0xc194, 0x2102, 0x08b8, 0x9186,\r
++      0x0020, 0x0158, 0x9186, 0x0029, 0x1d10, 0xa974, 0x080c, 0x623e,\r
++      0x1968, 0xb800, 0xc0e4, 0xb802, 0x0848, 0xa88c, 0x9065, 0x09b8,\r
++      0x6007, 0x0024, 0x2001, 0x1957, 0x2004, 0x601a, 0x0804, 0x7716,\r
++      0xa88c, 0x9065, 0x0960, 0x00e6, 0xa890, 0x9075, 0x2001, 0x1833,\r
++      0x2004, 0x9005, 0x0150, 0x080c, 0x9e62, 0x8eff, 0x0118, 0x2e60,\r
++      0x080c, 0x9e62, 0x00ee, 0x0804, 0x7716, 0x6024, 0xc0dc, 0xc0d5,\r
++      0x6026, 0x2e60, 0x6007, 0x003a, 0xa8a0, 0x9005, 0x0130, 0x6007,\r
++      0x003b, 0xa8a4, 0x602e, 0xa8a8, 0x6016, 0x6003, 0x0001, 0x080c,\r
++      0x83f1, 0x080c, 0x8973, 0x00ee, 0x0804, 0x7716, 0x2061, 0x1a41,\r
++      0x6000, 0xd084, 0x0190, 0xd08c, 0x1904, 0x788f, 0x0126, 0x2091,\r
++      0x8000, 0x6204, 0x8210, 0x0220, 0x6206, 0x012e, 0x0804, 0x788f,\r
++      0x012e, 0xa883, 0x0016, 0x0804, 0x7888, 0xa883, 0x0007, 0x0804,\r
++      0x7888, 0xa864, 0x8007, 0x9084, 0x00ff, 0x0130, 0x8001, 0x1138,\r
++      0x7007, 0x0001, 0x0069, 0x0005, 0x080c, 0x73fc, 0x0040, 0x7007,\r
++      0x0003, 0x7012, 0x2900, 0x7016, 0x701a, 0x704b, 0x77b8, 0x0005,\r
++      0x00b6, 0x00e6, 0x0126, 0x2091, 0x8000, 0x903e, 0x2061, 0x1800,\r
++      0x61cc, 0x81ff, 0x1904, 0x783a, 0x6130, 0xd194, 0x1904, 0x7864,\r
++      0xa878, 0x2070, 0x9e82, 0x1cd0, 0x0a04, 0x782e, 0x6064, 0x9e02,\r
++      0x1a04, 0x782e, 0x7120, 0x9186, 0x0006, 0x1904, 0x7820, 0x7010,\r
++      0x905d, 0x0904, 0x783a, 0xb800, 0xd0e4, 0x1904, 0x785e, 0x2061,\r
++      0x1a41, 0x6100, 0x9184, 0x0301, 0x9086, 0x0001, 0x15a0, 0x7024,\r
++      0xd0dc, 0x1904, 0x7867, 0xa883, 0x0000, 0xa803, 0x0000, 0x2908,\r
++      0x7014, 0x9005, 0x1198, 0x7116, 0xa87c, 0xd0f4, 0x1904, 0x786a,\r
++      0x080c, 0x5386, 0xd09c, 0x1118, 0xa87c, 0xc0cc, 0xa87e, 0x2e60,\r
++      0x080c, 0x814f, 0x012e, 0x00ee, 0x00be, 0x0005, 0x2048, 0xa800,\r
++      0x9005, 0x1de0, 0xa902, 0x2148, 0xa87c, 0xd0f4, 0x1904, 0x786a,\r
++      0x012e, 0x00ee, 0x00be, 0x0005, 0x012e, 0x00ee, 0xa883, 0x0006,\r
++      0x00be, 0x0804, 0x7888, 0xd184, 0x0db8, 0xd1c4, 0x1190, 0x00a0,\r
++      0xa974, 0x080c, 0x623e, 0x15d0, 0xb800, 0xd0e4, 0x15b8, 0x7120,\r
++      0x9186, 0x0007, 0x1118, 0xa883, 0x0002, 0x0490, 0xa883, 0x0008,\r
++      0x0478, 0xa883, 0x000e, 0x0460, 0xa883, 0x0017, 0x0448, 0xa883,\r
++      0x0035, 0x0430, 0x080c, 0x538a, 0xd0fc, 0x01e8, 0xa878, 0x2070,\r
++      0x9e82, 0x1cd0, 0x02c0, 0x6064, 0x9e02, 0x12a8, 0x7120, 0x9186,\r
++      0x0006, 0x1188, 0x7010, 0x905d, 0x0170, 0xb800, 0xd0bc, 0x0158,\r
++      0x2039, 0x0001, 0x7000, 0x9086, 0x0007, 0x1904, 0x77c4, 0x7003,\r
++      0x0002, 0x0804, 0x77c4, 0xa883, 0x0028, 0x0010, 0xa883, 0x0029,\r
++      0x012e, 0x00ee, 0x00be, 0x0420, 0xa883, 0x002a, 0x0cc8, 0xa883,\r
++      0x0045, 0x0cb0, 0x2e60, 0x2019, 0x0002, 0x601b, 0x0014, 0x080c,\r
++      0xd0e5, 0x012e, 0x00ee, 0x00be, 0x0005, 0x2009, 0x003e, 0x0058,\r
++      0x2009, 0x0004, 0x0040, 0x2009, 0x0006, 0x0028, 0x2009, 0x0016,\r
++      0x0010, 0x2009, 0x0001, 0xa884, 0x9084, 0xff00, 0x9105, 0xa886,\r
++      0x0126, 0x2091, 0x8000, 0x080c, 0x688c, 0x012e, 0x0005, 0x080c,\r
++      0x101d, 0x0005, 0x00d6, 0x080c, 0x8146, 0x00de, 0x0005, 0x00d6,\r
++      0x00e6, 0x0126, 0x2091, 0x8000, 0x2071, 0x0040, 0x702c, 0xd084,\r
++      0x01d8, 0x908c, 0x0780, 0x190c, 0x7923, 0xd09c, 0x11a8, 0x2071,\r
++      0x1800, 0x70bc, 0x90ea, 0x0040, 0x0278, 0x8001, 0x70be, 0x702c,\r
++      0x2048, 0xa800, 0x702e, 0x9006, 0xa802, 0xa806, 0x2071, 0x0040,\r
++      0x2900, 0x7022, 0x702c, 0x0c28, 0x012e, 0x00ee, 0x00de, 0x0005,\r
++      0x0006, 0x9084, 0x0780, 0x190c, 0x7923, 0x000e, 0x0005, 0x00d6,\r
++      0x00c6, 0x0036, 0x0026, 0x0016, 0x00b6, 0x7007, 0x0001, 0xaa74,\r
++      0x9282, 0x0004, 0x1a04, 0x7914, 0xa97c, 0x9188, 0x1000, 0x2104,\r
++      0x905d, 0xb804, 0xd284, 0x0140, 0x05e8, 0x8007, 0x9084, 0x00ff,\r
++      0x9084, 0x0006, 0x1108, 0x04b0, 0x2b10, 0x080c, 0x9ddc, 0x1118,\r
++      0x080c, 0x9e7f, 0x05a8, 0x6212, 0xa874, 0x0002, 0x78f2, 0x78f7,\r
++      0x78fa, 0x7900, 0x2019, 0x0002, 0x080c, 0xd4a6, 0x0060, 0x080c,\r
++      0xd442, 0x0048, 0x2019, 0x0002, 0xa980, 0x080c, 0xd45d, 0x0018,\r
++      0xa980, 0x080c, 0xd442, 0x080c, 0x9e32, 0xa887, 0x0000, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0x688c, 0x012e, 0x00be, 0x001e, 0x002e,\r
++      0x003e, 0x00ce, 0x00de, 0x0005, 0xa887, 0x0006, 0x0c80, 0xa887,\r
++      0x0002, 0x0c68, 0xa887, 0x0005, 0x0c50, 0xa887, 0x0004, 0x0c38,\r
++      0xa887, 0x0007, 0x0c20, 0x2091, 0x8000, 0x0e04, 0x7925, 0x0006,\r
++      0x0016, 0x2001, 0x8003, 0x0006, 0x0804, 0x0dbd, 0x2001, 0x1833,\r
++      0x2004, 0x9005, 0x0005, 0x0005, 0x00f6, 0x2079, 0x0300, 0x2001,\r
++      0x0200, 0x200c, 0xc1e5, 0xc1dc, 0x2102, 0x2009, 0x0218, 0x210c,\r
++      0xd1ec, 0x1120, 0x080c, 0x14a7, 0x00fe, 0x0005, 0x2001, 0x020d,\r
++      0x2003, 0x0020, 0x781f, 0x0300, 0x00fe, 0x0005, 0x781c, 0xd08c,\r
++      0x0904, 0x79a5, 0x68bc, 0x90aa, 0x0005, 0x0a04, 0x7f54, 0x7d44,\r
++      0x7c40, 0x9584, 0x00f6, 0x1510, 0x9484, 0x7000, 0x0140, 0x908a,\r
++      0x2000, 0x1260, 0x9584, 0x0700, 0x8007, 0x0804, 0x79ac, 0x7000,\r
++      0x9084, 0xff00, 0x9086, 0x8100, 0x0da8, 0x00b0, 0x9484, 0x0fff,\r
++      0x1130, 0x7000, 0x9084, 0xff00, 0x9086, 0x8100, 0x11c0, 0x080c,\r
++      0xd88c, 0x080c, 0x7e99, 0x7817, 0x0140, 0x00a8, 0x9584, 0x0076,\r
++      0x1118, 0x080c, 0x7ef7, 0x19c0, 0xd5a4, 0x0148, 0x0046, 0x0056,\r
++      0x080c, 0x7a07, 0x080c, 0x21cd, 0x005e, 0x004e, 0x0020, 0x080c,\r
++      0xd88c, 0x7817, 0x0140, 0x080c, 0x6fb2, 0x0168, 0x2001, 0x0111,\r
++      0x2004, 0xd08c, 0x0140, 0x688f, 0x0000, 0x2001, 0x0110, 0x2003,\r
++      0x0008, 0x2003, 0x0000, 0x080c, 0x79e8, 0x2001, 0x19c1, 0x2004,\r
++      0x9005, 0x090c, 0x8973, 0x0005, 0x0002, 0x79be, 0x7cbb, 0x79b5,\r
++      0x79b5, 0x79b5, 0x79b5, 0x79b5, 0x79b5, 0x7817, 0x0140, 0x2001,\r
++      0x19c1, 0x2004, 0x9005, 0x090c, 0x8973, 0x0005, 0x7000, 0x908c,\r
++      0xff00, 0x9194, 0xf000, 0x810f, 0x9484, 0x0fff, 0x688e, 0x9286,\r
++      0x2000, 0x1150, 0x6800, 0x9086, 0x0001, 0x1118, 0x080c, 0x53e7,\r
++      0x0070, 0x080c, 0x7a27, 0x0058, 0x9286, 0x3000, 0x1118, 0x080c,\r
++      0x7bf6, 0x0028, 0x9286, 0x8000, 0x1110, 0x080c, 0x7dc9, 0x7817,\r
++      0x0140, 0x2001, 0x19c1, 0x2004, 0x9005, 0x090c, 0x8973, 0x0005,\r
++      0x2001, 0x1810, 0x2004, 0xd08c, 0x0178, 0x2001, 0x1800, 0x2004,\r
++      0x9086, 0x0003, 0x1148, 0x0026, 0x0036, 0x2011, 0x8048, 0x2518,\r
++      0x080c, 0x48d9, 0x003e, 0x002e, 0x0005, 0x0036, 0x0046, 0x0056,\r
++      0x00f6, 0x2079, 0x0200, 0x2019, 0xfffe, 0x7c30, 0x0050, 0x0036,\r
++      0x0046, 0x0056, 0x00f6, 0x2079, 0x0200, 0x7d44, 0x7c40, 0x2019,\r
++      0xffff, 0x2001, 0x1810, 0x2004, 0xd08c, 0x0160, 0x2001, 0x1800,\r
++      0x2004, 0x9086, 0x0003, 0x1130, 0x0026, 0x2011, 0x8048, 0x080c,\r
++      0x48d9, 0x002e, 0x00fe, 0x005e, 0x004e, 0x003e, 0x0005, 0x00b6,\r
++      0x00c6, 0x7010, 0x9084, 0xff00, 0x8007, 0x9096, 0x0001, 0x0120,\r
++      0x9096, 0x0023, 0x1904, 0x7bc7, 0x9186, 0x0023, 0x15c0, 0x080c,\r
++      0x7e5e, 0x0904, 0x7bc7, 0x6120, 0x9186, 0x0001, 0x0150, 0x9186,\r
++      0x0004, 0x0138, 0x9186, 0x0008, 0x0120, 0x9186, 0x000a, 0x1904,\r
++      0x7bc7, 0x7124, 0x610a, 0x7030, 0x908e, 0x0200, 0x1130, 0x2009,\r
++      0x0015, 0x080c, 0x9eac, 0x0804, 0x7bc7, 0x908e, 0x0214, 0x0118,\r
++      0x908e, 0x0210, 0x1130, 0x2009, 0x0015, 0x080c, 0x9eac, 0x0804,\r
++      0x7bc7, 0x908e, 0x0100, 0x1904, 0x7bc7, 0x7034, 0x9005, 0x1904,\r
++      0x7bc7, 0x2009, 0x0016, 0x080c, 0x9eac, 0x0804, 0x7bc7, 0x9186,\r
++      0x0022, 0x1904, 0x7bc7, 0x7030, 0x908e, 0x0300, 0x1580, 0x68d8,\r
++      0xd0a4, 0x0528, 0xc0b5, 0x68da, 0x7100, 0x918c, 0x00ff, 0x697a,\r
++      0x7004, 0x687e, 0x00f6, 0x2079, 0x0100, 0x79e6, 0x78ea, 0x0006,\r
++      0x9084, 0x00ff, 0x0016, 0x2008, 0x080c, 0x26ac, 0x7932, 0x7936,\r
++      0x001e, 0x000e, 0x00fe, 0x080c, 0x2663, 0x695a, 0x703c, 0x00e6,\r
++      0x2071, 0x0140, 0x7086, 0x2071, 0x1800, 0x70b2, 0x00ee, 0x7034,\r
++      0x9005, 0x1904, 0x7bc7, 0x2009, 0x0017, 0x0804, 0x7b77, 0x908e,\r
++      0x0400, 0x1190, 0x7034, 0x9005, 0x1904, 0x7bc7, 0x080c, 0x6fb2,\r
++      0x0120, 0x2009, 0x001d, 0x0804, 0x7b77, 0x68d8, 0xc0a5, 0x68da,\r
++      0x2009, 0x0030, 0x0804, 0x7b77, 0x908e, 0x0500, 0x1140, 0x7034,\r
++      0x9005, 0x1904, 0x7bc7, 0x2009, 0x0018, 0x0804, 0x7b77, 0x908e,\r
++      0x2010, 0x1120, 0x2009, 0x0019, 0x0804, 0x7b77, 0x908e, 0x2110,\r
++      0x1120, 0x2009, 0x001a, 0x0804, 0x7b77, 0x908e, 0x5200, 0x1140,\r
++      0x7034, 0x9005, 0x1904, 0x7bc7, 0x2009, 0x001b, 0x0804, 0x7b77,\r
++      0x908e, 0x5000, 0x1140, 0x7034, 0x9005, 0x1904, 0x7bc7, 0x2009,\r
++      0x001c, 0x0804, 0x7b77, 0x908e, 0x1300, 0x1120, 0x2009, 0x0034,\r
++      0x0804, 0x7b77, 0x908e, 0x1200, 0x1140, 0x7034, 0x9005, 0x1904,\r
++      0x7bc7, 0x2009, 0x0024, 0x0804, 0x7b77, 0x908c, 0xff00, 0x918e,\r
++      0x2400, 0x1170, 0x2009, 0x002d, 0x2001, 0x1810, 0x2004, 0xd09c,\r
++      0x0904, 0x7b77, 0x080c, 0xc8b8, 0x1904, 0x7bc7, 0x0804, 0x7b75,\r
++      0x908c, 0xff00, 0x918e, 0x5300, 0x1120, 0x2009, 0x002a, 0x0804,\r
++      0x7b77, 0x908e, 0x0f00, 0x1120, 0x2009, 0x0020, 0x0804, 0x7b77,\r
++      0x908e, 0x6104, 0x1528, 0x2029, 0x0205, 0x2011, 0x026d, 0x8208,\r
++      0x2204, 0x9082, 0x0004, 0x8004, 0x8004, 0x20a8, 0x2011, 0x8015,\r
++      0x211c, 0x8108, 0x0046, 0x2124, 0x080c, 0x48d9, 0x004e, 0x8108,\r
++      0x0f04, 0x7b43, 0x9186, 0x0280, 0x1d88, 0x2504, 0x8000, 0x202a,\r
++      0x2009, 0x0260, 0x0c58, 0x202b, 0x0000, 0x2009, 0x0023, 0x0478,\r
++      0x908e, 0x6000, 0x1118, 0x2009, 0x003f, 0x0448, 0x908e, 0x7800,\r
++      0x1118, 0x2009, 0x0045, 0x0418, 0x908e, 0x1000, 0x1118, 0x2009,\r
++      0x004e, 0x00e8, 0x908e, 0x6300, 0x1118, 0x2009, 0x004a, 0x00b8,\r
++      0x908c, 0xff00, 0x918e, 0x5600, 0x1118, 0x2009, 0x004f, 0x0078,\r
++      0x908c, 0xff00, 0x918e, 0x5700, 0x1118, 0x2009, 0x0050, 0x0038,\r
++      0x2009, 0x001d, 0x6838, 0xd0d4, 0x0110, 0x2009, 0x004c, 0x0016,\r
++      0x2011, 0x0263, 0x2204, 0x8211, 0x220c, 0x080c, 0x2663, 0x1904,\r
++      0x7bca, 0x080c, 0x61de, 0x1904, 0x7bca, 0xbe12, 0xbd16, 0x001e,\r
++      0x0016, 0x080c, 0x6fb2, 0x01c0, 0x68d8, 0xd08c, 0x1148, 0x7000,\r
++      0x9084, 0x00ff, 0x1188, 0x7004, 0x9084, 0xff00, 0x1168, 0x0040,\r
++      0x6878, 0x9606, 0x1148, 0x687c, 0x9506, 0x9084, 0xff00, 0x1120,\r
++      0x9584, 0x00ff, 0xb8b2, 0x0080, 0xb8b0, 0x9005, 0x1168, 0x9186,\r
++      0x0046, 0x1150, 0x6878, 0x9606, 0x1138, 0x687c, 0x9506, 0x9084,\r
++      0xff00, 0x1110, 0x001e, 0x0098, 0x080c, 0x9ddc, 0x01a8, 0x2b08,\r
++      0x6112, 0x6023, 0x0004, 0x7120, 0x610a, 0x001e, 0x9186, 0x004c,\r
++      0x1110, 0x6023, 0x000a, 0x0016, 0x001e, 0x080c, 0x9eac, 0x00ce,\r
++      0x00be, 0x0005, 0x001e, 0x0cd8, 0x2001, 0x180e, 0x2004, 0xd0ec,\r
++      0x0120, 0x2011, 0x8049, 0x080c, 0x48d9, 0x080c, 0x9e7f, 0x0d90,\r
++      0x2b08, 0x6112, 0x6023, 0x0004, 0x7120, 0x610a, 0x001e, 0x0016,\r
++      0x9186, 0x0017, 0x0118, 0x9186, 0x0030, 0x1128, 0x6007, 0x0009,\r
++      0x6017, 0x2900, 0x0020, 0x6007, 0x0051, 0x6017, 0x0000, 0x602f,\r
++      0x0009, 0x6003, 0x0001, 0x080c, 0x8439, 0x08a0, 0x080c, 0x30fd,\r
++      0x1140, 0x7010, 0x9084, 0xff00, 0x8007, 0x908e, 0x0008, 0x1108,\r
++      0x0009, 0x0005, 0x00b6, 0x00c6, 0x0046, 0x7000, 0x908c, 0xff00,\r
++      0x810f, 0x9186, 0x0033, 0x11e8, 0x080c, 0x7e5e, 0x0904, 0x7c53,\r
++      0x7124, 0x610a, 0x7030, 0x908e, 0x0200, 0x1140, 0x7034, 0x9005,\r
++      0x15d0, 0x2009, 0x0015, 0x080c, 0x9eac, 0x04a8, 0x908e, 0x0100,\r
++      0x1590, 0x7034, 0x9005, 0x1578, 0x2009, 0x0016, 0x080c, 0x9eac,\r
++      0x0450, 0x9186, 0x0032, 0x1538, 0x7030, 0x908e, 0x1400, 0x1518,\r
++      0x2009, 0x0038, 0x0016, 0x2011, 0x0263, 0x2204, 0x8211, 0x220c,\r
++      0x080c, 0x2663, 0x11b8, 0x080c, 0x61de, 0x11a0, 0xbe12, 0xbd16,\r
++      0x080c, 0x9ddc, 0x0178, 0x2b08, 0x6112, 0x080c, 0xbf8c, 0x6023,\r
++      0x0004, 0x7120, 0x610a, 0x001e, 0x080c, 0x9eac, 0x080c, 0x8973,\r
++      0x0010, 0x00ce, 0x001e, 0x004e, 0x00ce, 0x00be, 0x0005, 0x00b6,\r
++      0x0046, 0x00e6, 0x00d6, 0x2028, 0x2130, 0x9696, 0x00ff, 0x11b8,\r
++      0x9592, 0xfffc, 0x02a0, 0x9596, 0xfffd, 0x1120, 0x2009, 0x007f,\r
++      0x0804, 0x7cb5, 0x9596, 0xfffe, 0x1120, 0x2009, 0x007e, 0x0804,\r
++      0x7cb5, 0x9596, 0xfffc, 0x1118, 0x2009, 0x0080, 0x04f0, 0x2011,\r
++      0x0000, 0x2019, 0x1836, 0x231c, 0xd3ac, 0x0130, 0x9026, 0x20a9,\r
++      0x0800, 0x2071, 0x1000, 0x0030, 0x2021, 0x0081, 0x20a9, 0x077f,\r
++      0x2071, 0x1081, 0x2e1c, 0x93dd, 0x0000, 0x1140, 0x82ff, 0x11d0,\r
++      0x9496, 0x00ff, 0x01b8, 0x2410, 0xc2fd, 0x00a0, 0xbf10, 0x2600,\r
++      0x9706, 0xb814, 0x1120, 0x9546, 0x1110, 0x2408, 0x00b0, 0x9745,\r
++      0x1148, 0x94c6, 0x007e, 0x0130, 0x94c6, 0x007f, 0x0118, 0x94c6,\r
++      0x0080, 0x1d20, 0x8420, 0x8e70, 0x1f04, 0x7c8a, 0x82ff, 0x1118,\r
++      0x9085, 0x0001, 0x0018, 0xc2fc, 0x2208, 0x9006, 0x00de, 0x00ee,\r
++      0x004e, 0x00be, 0x0005, 0x7000, 0x908c, 0xff00, 0x810f, 0x9184,\r
++      0x000f, 0x0002, 0x7cd2, 0x7cd2, 0x7cd2, 0x7e70, 0x7cd2, 0x7cdb,\r
++      0x7d06, 0x7d94, 0x7cd2, 0x7cd2, 0x7cd2, 0x7cd2, 0x7cd2, 0x7cd2,\r
++      0x7cd2, 0x7cd2, 0x7817, 0x0140, 0x2001, 0x19c1, 0x2004, 0x9005,\r
++      0x090c, 0x8973, 0x0005, 0x00b6, 0x7110, 0xd1bc, 0x01e8, 0x7120,\r
++      0x2160, 0x9c8c, 0x0007, 0x11c0, 0x9c8a, 0x1cd0, 0x02a8, 0x6864,\r
++      0x9c02, 0x1290, 0x7008, 0x9084, 0x00ff, 0x6110, 0x2158, 0xb910,\r
++      0x9106, 0x1150, 0x700c, 0xb914, 0x9106, 0x1130, 0x7124, 0x610a,\r
++      0x2009, 0x0046, 0x080c, 0x9eac, 0x7817, 0x0140, 0x2001, 0x19c1,\r
++      0x2004, 0x9005, 0x090c, 0x8973, 0x00be, 0x0005, 0x00b6, 0x00c6,\r
++      0x9484, 0x0fff, 0x0904, 0x7d6a, 0x7110, 0xd1bc, 0x1904, 0x7d6a,\r
++      0x7108, 0x700c, 0x2028, 0x918c, 0x00ff, 0x2130, 0x9094, 0xff00,\r
++      0x15b0, 0x81ff, 0x15a0, 0x9080, 0x3138, 0x200d, 0x918c, 0xff00,\r
++      0x810f, 0x2001, 0x0080, 0x9106, 0x0904, 0x7d6a, 0x080c, 0x61de,\r
++      0x1904, 0x7d6a, 0xbe12, 0xbd16, 0xb800, 0xd0ec, 0x15d8, 0xba04,\r
++      0x9294, 0xff00, 0x9286, 0x0600, 0x11a0, 0x080c, 0x9ddc, 0x05e8,\r
++      0x2b08, 0x7028, 0x604a, 0x702c, 0x6046, 0x6112, 0x6023, 0x0006,\r
++      0x7120, 0x610a, 0x7130, 0x6156, 0x2009, 0x0044, 0x080c, 0xcb14,\r
++      0x0408, 0x080c, 0x6562, 0x1138, 0xb807, 0x0606, 0x0c30, 0x190c,\r
++      0x7c57, 0x11c0, 0x0898, 0x080c, 0x9ddc, 0x2b08, 0x0198, 0x6112,\r
++      0x6023, 0x0004, 0x7120, 0x610a, 0x9286, 0x0400, 0x1118, 0x6007,\r
++      0x0005, 0x0010, 0x6007, 0x0001, 0x6003, 0x0001, 0x080c, 0x8439,\r
++      0x080c, 0x8973, 0x7817, 0x0140, 0x2001, 0x19c1, 0x2004, 0x9005,\r
++      0x090c, 0x8973, 0x00ce, 0x00be, 0x0005, 0x2001, 0x180e, 0x2004,\r
++      0xd0ec, 0x0120, 0x2011, 0x8049, 0x080c, 0x48d9, 0x080c, 0x9e7f,\r
++      0x0d48, 0x2b08, 0x6112, 0x6023, 0x0006, 0x7120, 0x610a, 0x7130,\r
++      0x6156, 0x6017, 0xf300, 0x6003, 0x0001, 0x6007, 0x0041, 0x080c,\r
++      0x83f1, 0x080c, 0x8973, 0x08b0, 0x00b6, 0x7110, 0xd1bc, 0x01e8,\r
++      0x7020, 0x2060, 0x9c84, 0x0007, 0x11c0, 0x9c82, 0x1cd0, 0x02a8,\r
++      0x6864, 0x9c02, 0x1290, 0x7008, 0x9084, 0x00ff, 0x6110, 0x2158,\r
++      0xb910, 0x9106, 0x1150, 0x700c, 0xb914, 0x9106, 0x1130, 0x7124,\r
++      0x610a, 0x2009, 0x0045, 0x080c, 0x9eac, 0x7817, 0x0140, 0x2001,\r
++      0x19c1, 0x2004, 0x9005, 0x090c, 0x8973, 0x00be, 0x0005, 0x6120,\r
++      0x9186, 0x0002, 0x0128, 0x9186, 0x0005, 0x0110, 0x9085, 0x0001,\r
++      0x0005, 0x080c, 0x30fd, 0x1168, 0x7010, 0x9084, 0xff00, 0x8007,\r
++      0x9086, 0x0000, 0x1130, 0x9184, 0x000f, 0x908a, 0x0006, 0x1208,\r
++      0x000b, 0x0005, 0x7de0, 0x7de1, 0x7de0, 0x7de0, 0x7e40, 0x7e4f,\r
++      0x0005, 0x00b6, 0x7110, 0xd1bc, 0x0120, 0x702c, 0xd084, 0x0904,\r
++      0x7e3e, 0x700c, 0x7108, 0x080c, 0x2663, 0x1904, 0x7e3e, 0x080c,\r
++      0x61de, 0x1904, 0x7e3e, 0xbe12, 0xbd16, 0x7110, 0xd1bc, 0x01d8,\r
++      0x080c, 0x6562, 0x0118, 0x9086, 0x0004, 0x1588, 0x00c6, 0x080c,\r
++      0x7e5e, 0x00ce, 0x05d8, 0x080c, 0x9ddc, 0x2b08, 0x05b8, 0x6112,\r
++      0x080c, 0xbf8c, 0x6023, 0x0002, 0x7120, 0x610a, 0x2009, 0x0088,\r
++      0x080c, 0x9eac, 0x0458, 0x080c, 0x6562, 0x0148, 0x9086, 0x0004,\r
++      0x0130, 0x080c, 0x656a, 0x0118, 0x9086, 0x0004, 0x1180, 0x080c,\r
++      0x9ddc, 0x2b08, 0x01d8, 0x6112, 0x080c, 0xbf8c, 0x6023, 0x0005,\r
++      0x7120, 0x610a, 0x2009, 0x0088, 0x080c, 0x9eac, 0x0078, 0x080c,\r
++      0x9ddc, 0x2b08, 0x0158, 0x6112, 0x080c, 0xbf8c, 0x6023, 0x0004,\r
++      0x7120, 0x610a, 0x2009, 0x0001, 0x080c, 0x9eac, 0x00be, 0x0005,\r
++      0x7110, 0xd1bc, 0x0158, 0x00d1, 0x0148, 0x080c, 0x7dbf, 0x1130,\r
++      0x7124, 0x610a, 0x2009, 0x0089, 0x080c, 0x9eac, 0x0005, 0x7110,\r
++      0xd1bc, 0x0158, 0x0059, 0x0148, 0x080c, 0x7dbf, 0x1130, 0x7124,\r
++      0x610a, 0x2009, 0x008a, 0x080c, 0x9eac, 0x0005, 0x7020, 0x2060,\r
++      0x9c84, 0x0007, 0x1158, 0x9c82, 0x1cd0, 0x0240, 0x2001, 0x1819,\r
++      0x2004, 0x9c02, 0x1218, 0x9085, 0x0001, 0x0005, 0x9006, 0x0ce8,\r
++      0x00b6, 0x7110, 0xd1bc, 0x11d8, 0x7024, 0x2060, 0x9c84, 0x0007,\r
++      0x11b0, 0x9c82, 0x1cd0, 0x0298, 0x6864, 0x9c02, 0x1280, 0x7008,\r
++      0x9084, 0x00ff, 0x6110, 0x2158, 0xb910, 0x9106, 0x1140, 0x700c,\r
++      0xb914, 0x9106, 0x1120, 0x2009, 0x0051, 0x080c, 0x9eac, 0x7817,\r
++      0x0140, 0x2001, 0x19c1, 0x2004, 0x9005, 0x090c, 0x8973, 0x00be,\r
++      0x0005, 0x2031, 0x0105, 0x0069, 0x0005, 0x2031, 0x0206, 0x0049,\r
++      0x0005, 0x2031, 0x0207, 0x0029, 0x0005, 0x2031, 0x0213, 0x0009,\r
++      0x0005, 0x00c6, 0x0096, 0x00f6, 0x7000, 0x9084, 0xf000, 0x9086,\r
++      0xc000, 0x05d0, 0x080c, 0x9ddc, 0x05b8, 0x0066, 0x00c6, 0x0046,\r
++      0x2011, 0x0263, 0x2204, 0x8211, 0x220c, 0x080c, 0x2663, 0x15a0,\r
++      0x080c, 0x61de, 0x1588, 0xbe12, 0xbd16, 0x2b00, 0x004e, 0x00ce,\r
++      0x6012, 0x080c, 0xbf8c, 0x080c, 0x0feb, 0x0510, 0x2900, 0x605a,\r
++      0x9006, 0xa802, 0xa866, 0xac6a, 0xa85c, 0x90f8, 0x001b, 0x20a9,\r
++      0x000e, 0xa860, 0x20e8, 0x20e1, 0x0000, 0x2fa0, 0x2e98, 0x4003,\r
++      0x006e, 0x6616, 0x6007, 0x003e, 0x6023, 0x0001, 0x6003, 0x0001,\r
++      0x080c, 0x8439, 0x080c, 0x8973, 0x00fe, 0x009e, 0x00ce, 0x0005,\r
++      0x080c, 0x9e32, 0x006e, 0x0cc0, 0x004e, 0x00ce, 0x0cc8, 0x00c6,\r
++      0x7000, 0x908c, 0xff00, 0x9184, 0xf000, 0x810f, 0x9086, 0x2000,\r
++      0x1904, 0x7f4e, 0x9186, 0x0022, 0x15f0, 0x2001, 0x0111, 0x2004,\r
++      0x9005, 0x1904, 0x7f50, 0x7030, 0x908e, 0x0400, 0x0904, 0x7f50,\r
++      0x908e, 0x6000, 0x05e8, 0x908e, 0x5400, 0x05d0, 0x908e, 0x0300,\r
++      0x11d8, 0x2009, 0x1836, 0x210c, 0xd18c, 0x1590, 0xd1a4, 0x1580,\r
++      0x080c, 0x6520, 0x0558, 0x68ac, 0x9084, 0x00ff, 0x7100, 0x918c,\r
++      0x00ff, 0x9106, 0x1518, 0x687c, 0x69ac, 0x918c, 0xff00, 0x9105,\r
++      0x7104, 0x9106, 0x11d8, 0x00e0, 0x2009, 0x0103, 0x210c, 0xd1b4,\r
++      0x11a8, 0x908e, 0x5200, 0x09e8, 0x908e, 0x0500, 0x09d0, 0x908e,\r
++      0x5000, 0x09b8, 0x0058, 0x9186, 0x0023, 0x1140, 0x080c, 0x7e5e,\r
++      0x0128, 0x6004, 0x9086, 0x0002, 0x0118, 0x0000, 0x9006, 0x0010,\r
++      0x9085, 0x0001, 0x00ce, 0x0005, 0x00f6, 0x2079, 0x0200, 0x7800,\r
++      0xc0e5, 0xc0cc, 0x7802, 0x00fe, 0x0005, 0x00f6, 0x2079, 0x1800,\r
++      0x7834, 0xd084, 0x1130, 0x2079, 0x0200, 0x7800, 0x9085, 0x1200,\r
++      0x7802, 0x00fe, 0x0005, 0x00e6, 0x2071, 0x1800, 0x7034, 0xc084,\r
++      0x7036, 0x00ee, 0x0005, 0x2071, 0x19cb, 0x7003, 0x0003, 0x700f,\r
++      0x0361, 0x9006, 0x701a, 0x7072, 0x7012, 0x7017, 0x1cd0, 0x7007,\r
++      0x0000, 0x7026, 0x702b, 0x93c2, 0x7032, 0x7037, 0x9430, 0x703f,\r
++      0xffff, 0x7042, 0x7047, 0x5225, 0x704a, 0x705b, 0x80d3, 0x080c,\r
++      0x1004, 0x090c, 0x0db4, 0x2900, 0x703a, 0xa867, 0x0003, 0xa86f,\r
++      0x0100, 0xa8ab, 0xdcb0, 0x0005, 0x2071, 0x19cb, 0x1d04, 0x8027,\r
++      0x2091, 0x6000, 0x700c, 0x8001, 0x700e, 0x1510, 0x2001, 0x1875,\r
++      0x2004, 0xd0c4, 0x0158, 0x3a00, 0xd08c, 0x1140, 0x20d1, 0x0000,\r
++      0x20d1, 0x0001, 0x20d1, 0x0000, 0x080c, 0x0db4, 0x700f, 0x0361,\r
++      0x7007, 0x0001, 0x0126, 0x2091, 0x8000, 0x080c, 0x8118, 0x7040,\r
++      0x900d, 0x0148, 0x8109, 0x7142, 0x1130, 0x7044, 0x080f, 0x0018,\r
++      0x0126, 0x2091, 0x8000, 0x7024, 0x900d, 0x0188, 0x7020, 0x8001,\r
++      0x7022, 0x1168, 0x7023, 0x0009, 0x8109, 0x7126, 0x9186, 0x03e8,\r
++      0x1110, 0x7028, 0x080f, 0x81ff, 0x1110, 0x7028, 0x080f, 0x7030,\r
++      0x900d, 0x0180, 0x702c, 0x8001, 0x702e, 0x1160, 0x702f, 0x0009,\r
++      0x8109, 0x7132, 0x0128, 0x9184, 0x007f, 0x090c, 0x953d, 0x0010,\r
++      0x7034, 0x080f, 0x703c, 0x9005, 0x0118, 0x0310, 0x8001, 0x703e,\r
++      0x704c, 0x900d, 0x0168, 0x7048, 0x8001, 0x704a, 0x1148, 0x704b,\r
++      0x0009, 0x8109, 0x714e, 0x1120, 0x7150, 0x714e, 0x7058, 0x080f,\r
++      0x7018, 0x900d, 0x01d8, 0x0016, 0x7070, 0x900d, 0x0158, 0x706c,\r
++      0x8001, 0x706e, 0x1138, 0x706f, 0x0009, 0x8109, 0x7172, 0x1110,\r
++      0x7074, 0x080f, 0x001e, 0x7008, 0x8001, 0x700a, 0x1138, 0x700b,\r
++      0x0009, 0x8109, 0x711a, 0x1110, 0x701c, 0x080f, 0x012e, 0x7004,\r
++      0x0002, 0x804f, 0x8050, 0x806c, 0x00e6, 0x2071, 0x19cb, 0x7018,\r
++      0x9005, 0x1120, 0x711a, 0x721e, 0x700b, 0x0009, 0x00ee, 0x0005,\r
++      0x00e6, 0x0006, 0x2071, 0x19cb, 0x701c, 0x9206, 0x1120, 0x701a,\r
++      0x701e, 0x7072, 0x7076, 0x000e, 0x00ee, 0x0005, 0x00e6, 0x2071,\r
++      0x19cb, 0xb888, 0x9102, 0x0208, 0xb98a, 0x00ee, 0x0005, 0x0005,\r
++      0x00b6, 0x7110, 0x080c, 0x623e, 0x1168, 0xb888, 0x8001, 0x0250,\r
++      0xb88a, 0x1140, 0x0126, 0x2091, 0x8000, 0x0016, 0x080c, 0x8973,\r
++      0x001e, 0x012e, 0x8108, 0x9182, 0x0800, 0x0218, 0x900e, 0x7007,\r
++      0x0002, 0x7112, 0x00be, 0x0005, 0x7014, 0x2060, 0x0126, 0x2091,\r
++      0x8000, 0x6040, 0x9005, 0x0128, 0x8001, 0x6042, 0x1110, 0x080c,\r
++      0xbe1d, 0x6018, 0x9005, 0x0528, 0x8001, 0x601a, 0x1510, 0x6120,\r
++      0x9186, 0x0003, 0x0118, 0x9186, 0x0006, 0x11c8, 0x080c, 0xbb17,\r
++      0x01b0, 0x6014, 0x2048, 0xa884, 0x908a, 0x199a, 0x0280, 0x9082,\r
++      0x1999, 0xa886, 0x908a, 0x199a, 0x0210, 0x2001, 0x1999, 0x8003,\r
++      0x800b, 0x810b, 0x9108, 0x611a, 0xa87c, 0xd0e4, 0x0110, 0x080c,\r
++      0xb815, 0x012e, 0x9c88, 0x0018, 0x7116, 0x2001, 0x1819, 0x2004,\r
++      0x9102, 0x0220, 0x7017, 0x1cd0, 0x7007, 0x0000, 0x0005, 0x00e6,\r
++      0x2071, 0x19cb, 0x7027, 0x07d0, 0x7023, 0x0009, 0x00ee, 0x0005,\r
++      0x2001, 0x19d4, 0x2003, 0x0000, 0x0005, 0x00e6, 0x2071, 0x19cb,\r
++      0x7132, 0x702f, 0x0009, 0x00ee, 0x0005, 0x2011, 0x19d7, 0x2013,\r
++      0x0000, 0x0005, 0x00e6, 0x2071, 0x19cb, 0x711a, 0x721e, 0x700b,\r
++      0x0009, 0x00ee, 0x0005, 0x0086, 0x0026, 0x7054, 0x8000, 0x7056,\r
++      0x2001, 0x19d9, 0x2044, 0xa06c, 0x9086, 0x0000, 0x0150, 0x7068,\r
++      0xa09a, 0x7064, 0xa096, 0x7060, 0xa092, 0x705c, 0xa08e, 0x080c,\r
++      0x10d5, 0x002e, 0x008e, 0x0005, 0x0006, 0x0016, 0x0096, 0x00a6,\r
++      0x00b6, 0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x0156, 0x080c, 0x7f9c,\r
++      0x015e, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be, 0x00ae, 0x009e,\r
++      0x001e, 0x000e, 0x0005, 0x00e6, 0x2071, 0x19cb, 0x7172, 0x7276,\r
++      0x706f, 0x0009, 0x00ee, 0x0005, 0x00e6, 0x0006, 0x2071, 0x19cb,\r
++      0x7074, 0x9206, 0x1110, 0x7072, 0x7076, 0x000e, 0x00ee, 0x0005,\r
++      0x2069, 0x1800, 0x69e4, 0xd1e4, 0x1518, 0x0026, 0xd1ec, 0x0140,\r
++      0x6a50, 0x6870, 0x9202, 0x0288, 0x8117, 0x9294, 0x00c0, 0x0088,\r
++      0x9184, 0x0007, 0x01a0, 0x8109, 0x9184, 0x0007, 0x0110, 0x69e6,\r
++      0x0070, 0x8107, 0x9084, 0x0007, 0x910d, 0x8107, 0x9106, 0x9094,\r
++      0x00c0, 0x9184, 0xff3f, 0x9205, 0x68e6, 0x080c, 0x0ecb, 0x002e,\r
++      0x0005, 0x00c6, 0x2061, 0x1a41, 0x00ce, 0x0005, 0x9184, 0x000f,\r
++      0x8003, 0x8003, 0x8003, 0x9080, 0x1a41, 0x2060, 0x0005, 0xa884,\r
++      0x908a, 0x199a, 0x1638, 0x9005, 0x1150, 0x00c6, 0x2061, 0x1a41,\r
++      0x6014, 0x00ce, 0x9005, 0x1130, 0x2001, 0x001e, 0x0018, 0x908e,\r
++      0xffff, 0x01b0, 0x8003, 0x800b, 0x810b, 0x9108, 0x611a, 0xa87c,\r
++      0x908c, 0x00c0, 0x918e, 0x00c0, 0x0904, 0x81d9, 0xd0b4, 0x1168,\r
++      0xd0bc, 0x1904, 0x81b2, 0x2009, 0x0006, 0x080c, 0x8206, 0x0005,\r
++      0x900e, 0x0c60, 0x2001, 0x1999, 0x08b0, 0xd0fc, 0x0160, 0x908c,\r
++      0x0003, 0x0120, 0x918e, 0x0003, 0x1904, 0x8200, 0x908c, 0x2020,\r
++      0x918e, 0x2020, 0x01a8, 0x6024, 0xd0d4, 0x11e8, 0x2009, 0x1875,\r
++      0x2104, 0xd084, 0x1138, 0x87ff, 0x1120, 0x2009, 0x0043, 0x0804,\r
++      0x9eac, 0x0005, 0x87ff, 0x1de8, 0x2009, 0x0042, 0x0804, 0x9eac,\r
++      0x6110, 0x00b6, 0x2158, 0xb900, 0x00be, 0xd1ac, 0x0d20, 0x6024,\r
++      0xc0cd, 0x6026, 0x0c00, 0xc0d4, 0x6026, 0xa890, 0x602e, 0xa88c,\r
++      0x6032, 0x08e0, 0xd0fc, 0x0160, 0x908c, 0x0003, 0x0120, 0x918e,\r
++      0x0003, 0x1904, 0x8200, 0x908c, 0x2020, 0x918e, 0x2020, 0x0170,\r
++      0x0076, 0x00f6, 0x2c78, 0x080c, 0x1648, 0x00fe, 0x007e, 0x87ff,\r
++      0x1120, 0x2009, 0x0042, 0x080c, 0x9eac, 0x0005, 0x6110, 0x00b6,\r
++      0x2158, 0xb900, 0x00be, 0xd1ac, 0x0d58, 0x6124, 0xc1cd, 0x6126,\r
++      0x0c38, 0xd0fc, 0x0188, 0x908c, 0x2020, 0x918e, 0x2020, 0x01a8,\r
++      0x9084, 0x0003, 0x908e, 0x0002, 0x0148, 0x87ff, 0x1120, 0x2009,\r
++      0x0041, 0x080c, 0x9eac, 0x0005, 0x00b9, 0x0ce8, 0x87ff, 0x1dd8,\r
++      0x2009, 0x0043, 0x080c, 0x9eac, 0x0cb0, 0x6110, 0x00b6, 0x2158,\r
++      0xb900, 0x00be, 0xd1ac, 0x0d20, 0x6124, 0xc1cd, 0x6126, 0x0c00,\r
++      0x2009, 0x0004, 0x0019, 0x0005, 0x2009, 0x0001, 0x0096, 0x080c,\r
++      0xbb17, 0x0518, 0x6014, 0x2048, 0xa982, 0xa800, 0x6016, 0x9186,\r
++      0x0001, 0x1188, 0xa97c, 0x918c, 0x8100, 0x918e, 0x8100, 0x1158,\r
++      0x00c6, 0x2061, 0x1a41, 0x6200, 0xd28c, 0x1120, 0x6204, 0x8210,\r
++      0x0208, 0x6206, 0x00ce, 0x080c, 0x66c6, 0x6014, 0x904d, 0x0076,\r
++      0x2039, 0x0000, 0x190c, 0x814f, 0x007e, 0x009e, 0x0005, 0x0156,\r
++      0x00c6, 0x2061, 0x1a41, 0x6000, 0x81ff, 0x0110, 0x9205, 0x0008,\r
++      0x9204, 0x6002, 0x00ce, 0x015e, 0x0005, 0x6800, 0xd08c, 0x1138,\r
++      0x6808, 0x9005, 0x0120, 0x8001, 0x680a, 0x9085, 0x0001, 0x0005,\r
++      0x0126, 0x2091, 0x8000, 0x0036, 0x0046, 0x20a9, 0x0010, 0x9006,\r
++      0x8004, 0x2019, 0x0100, 0x231c, 0x93a6, 0x0008, 0x1118, 0x8086,\r
++      0x818e, 0x0020, 0x80f6, 0x3e00, 0x81f6, 0x3e08, 0x1208, 0x9200,\r
++      0x1f04, 0x8251, 0x93a6, 0x0008, 0x1118, 0x8086, 0x818e, 0x0020,\r
++      0x80f6, 0x3e00, 0x81f6, 0x3e08, 0x004e, 0x003e, 0x012e, 0x0005,\r
++      0x0126, 0x2091, 0x8000, 0x0076, 0x0156, 0x20a9, 0x0010, 0x9005,\r
++      0x0510, 0x911a, 0x1600, 0x8213, 0x2039, 0x0100, 0x273c, 0x97be,\r
++      0x0008, 0x1110, 0x818d, 0x0010, 0x81f5, 0x3e08, 0x0228, 0x911a,\r
++      0x1220, 0x1f04, 0x827b, 0x0028, 0x911a, 0x2308, 0x8210, 0x1f04,\r
++      0x827b, 0x0006, 0x3200, 0x9084, 0xefff, 0x2080, 0x000e, 0x015e,\r
++      0x007e, 0x012e, 0x0005, 0x0006, 0x3200, 0x9085, 0x1000, 0x0ca8,\r
++      0x0126, 0x2091, 0x2800, 0x2079, 0x19b8, 0x012e, 0x00d6, 0x2069,\r
++      0x19b8, 0x6803, 0x0005, 0x0156, 0x0146, 0x01d6, 0x20e9, 0x0000,\r
++      0x2069, 0x0200, 0x080c, 0x9c3f, 0x0401, 0x080c, 0x9c2a, 0x00e9,\r
++      0x080c, 0x9c2d, 0x00d1, 0x080c, 0x9c30, 0x00b9, 0x080c, 0x9c33,\r
++      0x00a1, 0x080c, 0x9c36, 0x0089, 0x080c, 0x9c39, 0x0071, 0x080c,\r
++      0x9c3c, 0x0059, 0x01de, 0x014e, 0x015e, 0x2069, 0x0004, 0x2d04,\r
++      0x9085, 0x8001, 0x206a, 0x00de, 0x0005, 0x20a9, 0x0020, 0x20a1,\r
++      0x0240, 0x2001, 0x0000, 0x4004, 0x0005, 0x00c6, 0x6027, 0x0001,\r
++      0x7804, 0x9084, 0x0007, 0x0002, 0x82ee, 0x8312, 0x8351, 0x82f4,\r
++      0x8312, 0x82ee, 0x82ec, 0x82ec, 0x080c, 0x0db4, 0x080c, 0x80b8,\r
++      0x080c, 0x8973, 0x00ce, 0x0005, 0x62c0, 0x82ff, 0x1110, 0x00ce,\r
++      0x0005, 0x2011, 0x5b3a, 0x080c, 0x8038, 0x7828, 0x9092, 0x00c8,\r
++      0x1228, 0x8000, 0x782a, 0x080c, 0x5b7a, 0x0c88, 0x62c0, 0x080c,\r
++      0x9c43, 0x080c, 0x5b3a, 0x7807, 0x0003, 0x7827, 0x0000, 0x782b,\r
++      0x0000, 0x0c28, 0x080c, 0x80b8, 0x6220, 0xd2a4, 0x0160, 0x782b,\r
++      0x0000, 0x7824, 0x9065, 0x090c, 0x0db4, 0x2009, 0x0013, 0x080c,\r
++      0x9eac, 0x00ce, 0x0005, 0x00c6, 0x7824, 0x9065, 0x090c, 0x0db4,\r
++      0x7828, 0x9092, 0xc350, 0x12c0, 0x8000, 0x782a, 0x00ce, 0x080c,\r
++      0x29ca, 0x0278, 0x00c6, 0x7924, 0x2160, 0x6010, 0x906d, 0x090c,\r
++      0x0db4, 0x7807, 0x0000, 0x7827, 0x0000, 0x00ce, 0x080c, 0x8973,\r
++      0x0c00, 0x080c, 0x9388, 0x08e8, 0x2011, 0x0130, 0x2214, 0x080c,\r
++      0x9c43, 0x080c, 0xd8c9, 0x2009, 0x0014, 0x080c, 0x9eac, 0x00ce,\r
++      0x0880, 0x2001, 0x19d4, 0x2003, 0x0000, 0x62c0, 0x82ff, 0x1160,\r
++      0x782b, 0x0000, 0x7824, 0x9065, 0x090c, 0x0db4, 0x2009, 0x0013,\r
++      0x080c, 0x9efe, 0x00ce, 0x0005, 0x00b6, 0x00c6, 0x00d6, 0x7824,\r
++      0x9005, 0x090c, 0x0db4, 0x7828, 0x9092, 0xc350, 0x1648, 0x8000,\r
++      0x782a, 0x00de, 0x00ce, 0x00be, 0x080c, 0x29ca, 0x02f0, 0x00b6,\r
++      0x00c6, 0x00d6, 0x781c, 0x905d, 0x090c, 0x0db4, 0xb800, 0xc0dc,\r
++      0xb802, 0x7924, 0x2160, 0x080c, 0x9e32, 0xb93c, 0x81ff, 0x090c,\r
++      0x0db4, 0x8109, 0xb93e, 0x7807, 0x0000, 0x7827, 0x0000, 0x00de,\r
++      0x00ce, 0x00be, 0x080c, 0x8973, 0x0868, 0x080c, 0x9388, 0x0850,\r
++      0x2011, 0x0130, 0x2214, 0x080c, 0x9c43, 0x080c, 0xd8c9, 0x7824,\r
++      0x9065, 0x2009, 0x0014, 0x080c, 0x9eac, 0x00de, 0x00ce, 0x00be,\r
++      0x0804, 0x8362, 0x00c6, 0x2001, 0x009b, 0x2004, 0xd0fc, 0x190c,\r
++      0x1d4a, 0x6024, 0x6027, 0x0002, 0xd0f4, 0x1580, 0x62c8, 0x60c4,\r
++      0x9205, 0x1170, 0x783c, 0x9065, 0x0130, 0x2009, 0x0049, 0x080c,\r
++      0x9eac, 0x00ce, 0x0005, 0x2011, 0x19d7, 0x2013, 0x0000, 0x0cc8,\r
++      0x793c, 0x81ff, 0x0dc0, 0x7944, 0x9192, 0x7530, 0x12f0, 0x8108,\r
++      0x7946, 0x793c, 0x9188, 0x0008, 0x210c, 0x918e, 0x0006, 0x1138,\r
++      0x6014, 0x9084, 0x1984, 0x9085, 0x0012, 0x6016, 0x0c10, 0x6014,\r
++      0x9084, 0x1984, 0x9085, 0x0016, 0x6016, 0x08d8, 0x793c, 0x2160,\r
++      0x2009, 0x004a, 0x080c, 0x9eac, 0x08a0, 0x7848, 0xc085, 0x784a,\r
++      0x0880, 0x0006, 0x0016, 0x00c6, 0x0126, 0x2091, 0x8000, 0x600f,\r
++      0x0000, 0x2c08, 0x2061, 0x19b8, 0x6020, 0x8000, 0x6022, 0x6010,\r
++      0x9005, 0x0148, 0x9080, 0x0003, 0x2102, 0x6112, 0x012e, 0x00ce,\r
++      0x001e, 0x000e, 0x0005, 0x6116, 0x6112, 0x0cc0, 0x00d6, 0x2069,\r
++      0x19b8, 0xb800, 0xd0d4, 0x0168, 0x6820, 0x8000, 0x6822, 0x9086,\r
++      0x0001, 0x1110, 0x2b00, 0x681e, 0x00de, 0x0804, 0x8973, 0x00de,\r
++      0x0005, 0xc0d5, 0xb802, 0x6818, 0x9005, 0x0168, 0xb856, 0xb85b,\r
++      0x0000, 0x0086, 0x0006, 0x2b00, 0x681a, 0x008e, 0xa05a, 0x008e,\r
++      0x2069, 0x19b8, 0x0c08, 0xb856, 0xb85a, 0x2b00, 0x681a, 0x681e,\r
++      0x08d8, 0x0006, 0x0016, 0x00c6, 0x0126, 0x2091, 0x8000, 0x600f,\r
++      0x0000, 0x2c08, 0x2061, 0x19b8, 0x6020, 0x8000, 0x6022, 0x6008,\r
++      0x9005, 0x0148, 0x9080, 0x0003, 0x2102, 0x610a, 0x012e, 0x00ce,\r
++      0x001e, 0x000e, 0x0005, 0x610e, 0x610a, 0x0cc0, 0x00c6, 0x600f,\r
++      0x0000, 0x2c08, 0x2061, 0x19b8, 0x6034, 0x9005, 0x0130, 0x9080,\r
++      0x0003, 0x2102, 0x6136, 0x00ce, 0x0005, 0x613a, 0x6136, 0x00ce,\r
++      0x0005, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x00b6, 0x0096, 0x0076,\r
++      0x0066, 0x0056, 0x0036, 0x0026, 0x0016, 0x0006, 0x0126, 0x902e,\r
++      0x2071, 0x19b8, 0x7638, 0x2660, 0x2678, 0x2091, 0x8000, 0x8cff,\r
++      0x0904, 0x84e0, 0x6010, 0x2058, 0xb8a0, 0x9206, 0x1904, 0x84db,\r
++      0x87ff, 0x0120, 0x6054, 0x9106, 0x1904, 0x84db, 0x703c, 0x9c06,\r
++      0x1178, 0x0036, 0x2019, 0x0001, 0x080c, 0x96d8, 0x7033, 0x0000,\r
++      0x9006, 0x703e, 0x7042, 0x7046, 0x704a, 0x003e, 0x2029, 0x0001,\r
++      0x7038, 0x9c36, 0x1110, 0x660c, 0x763a, 0x7034, 0x9c36, 0x1140,\r
++      0x2c00, 0x9f36, 0x0118, 0x2f00, 0x7036, 0x0010, 0x7037, 0x0000,\r
++      0x660c, 0x0066, 0x2c00, 0x9f06, 0x0110, 0x7e0e, 0x0008, 0x2678,\r
++      0x600f, 0x0000, 0x080c, 0xbb17, 0x01c8, 0x6014, 0x2048, 0x6020,\r
++      0x9086, 0x0003, 0x1590, 0xa867, 0x0103, 0xab7a, 0xa877, 0x0000,\r
++      0x0016, 0x0036, 0x0076, 0x080c, 0xbe06, 0x080c, 0xd7d3, 0x080c,\r
++      0x688c, 0x007e, 0x003e, 0x001e, 0x080c, 0xbd00, 0x080c, 0x9e62,\r
++      0x00ce, 0x0804, 0x847f, 0x2c78, 0x600c, 0x2060, 0x0804, 0x847f,\r
++      0x85ff, 0x0120, 0x0036, 0x080c, 0x8a4e, 0x003e, 0x012e, 0x000e,\r
++      0x001e, 0x002e, 0x003e, 0x005e, 0x006e, 0x007e, 0x009e, 0x00be,\r
++      0x00ce, 0x00de, 0x00ee, 0x00fe, 0x0005, 0x6020, 0x9086, 0x0006,\r
++      0x1158, 0x0016, 0x0036, 0x0076, 0x080c, 0xd7d3, 0x080c, 0xd4d5,\r
++      0x007e, 0x003e, 0x001e, 0x0890, 0x6020, 0x9086, 0x000a, 0x0904,\r
++      0x84c5, 0x0804, 0x84c3, 0x0006, 0x0066, 0x0096, 0x00c6, 0x00d6,\r
++      0x00f6, 0x9036, 0x0126, 0x2091, 0x8000, 0x2079, 0x19b8, 0x7838,\r
++      0x9065, 0x0904, 0x855b, 0x600c, 0x0006, 0x600f, 0x0000, 0x783c,\r
++      0x9c06, 0x1168, 0x0036, 0x2019, 0x0001, 0x080c, 0x96d8, 0x7833,\r
++      0x0000, 0x901e, 0x7b3e, 0x7b42, 0x7b46, 0x7b4a, 0x003e, 0x080c,\r
++      0xbb17, 0x0520, 0x6014, 0x2048, 0x6020, 0x9086, 0x0003, 0x1568,\r
++      0x3e08, 0x918e, 0x0002, 0x1188, 0x6010, 0x9005, 0x0170, 0x00b6,\r
++      0x2058, 0xb800, 0x00be, 0xd0bc, 0x0140, 0x6040, 0x9005, 0x1180,\r
++      0x2001, 0x1959, 0x2004, 0x6042, 0x0058, 0xa867, 0x0103, 0xab7a,\r
++      0xa877, 0x0000, 0x080c, 0x687f, 0x080c, 0xbd00, 0x080c, 0x9e62,\r
++      0x000e, 0x0804, 0x8518, 0x7e3a, 0x7e36, 0x012e, 0x00fe, 0x00de,\r
++      0x00ce, 0x009e, 0x006e, 0x000e, 0x0005, 0x6020, 0x9086, 0x0006,\r
++      0x1118, 0x080c, 0xd4d5, 0x0c50, 0x6020, 0x9086, 0x000a, 0x09f8,\r
++      0x08e0, 0x0016, 0x0026, 0x0086, 0x9046, 0x0099, 0x080c, 0x865a,\r
++      0x008e, 0x002e, 0x001e, 0x0005, 0x00f6, 0x0126, 0x2079, 0x19b8,\r
++      0x2091, 0x8000, 0x080c, 0x86f1, 0x080c, 0x877f, 0x012e, 0x00fe,\r
++      0x0005, 0x00b6, 0x0096, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0066,\r
++      0x0016, 0x0006, 0x0126, 0x2091, 0x8000, 0x2071, 0x19b8, 0x7614,\r
++      0x2660, 0x2678, 0x8cff, 0x0904, 0x861f, 0x6010, 0x2058, 0xb8a0,\r
++      0x9206, 0x1904, 0x861a, 0x88ff, 0x0120, 0x6054, 0x9106, 0x1904,\r
++      0x861a, 0x7024, 0x9c06, 0x1558, 0x2069, 0x0100, 0x6820, 0xd0a4,\r
++      0x1508, 0x080c, 0x80b8, 0x080c, 0x93ac, 0x68c3, 0x0000, 0x080c,\r
++      0x98da, 0x7027, 0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0x9384,\r
++      0x1000, 0x0138, 0x2001, 0x0100, 0x080c, 0x2b14, 0x9006, 0x080c,\r
++      0x2b14, 0x2069, 0x0100, 0x6824, 0xd084, 0x0110, 0x6827, 0x0001,\r
++      0x003e, 0x0028, 0x6003, 0x0009, 0x630a, 0x0804, 0x861a, 0x7014,\r
++      0x9c36, 0x1110, 0x660c, 0x7616, 0x7010, 0x9c36, 0x1140, 0x2c00,\r
++      0x9f36, 0x0118, 0x2f00, 0x7012, 0x0010, 0x7013, 0x0000, 0x660c,\r
++      0x0066, 0x2c00, 0x9f06, 0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f,\r
++      0x0000, 0x6014, 0x2048, 0x080c, 0xbb17, 0x01e8, 0x6020, 0x9086,\r
++      0x0003, 0x1580, 0x080c, 0xbd1d, 0x1118, 0x080c, 0xa7c0, 0x0098,\r
++      0xa867, 0x0103, 0xab7a, 0xa877, 0x0000, 0x0016, 0x0036, 0x0086,\r
++      0x080c, 0xbe06, 0x080c, 0xd7d3, 0x080c, 0x688c, 0x008e, 0x003e,\r
++      0x001e, 0x080c, 0xbd00, 0x080c, 0x9e62, 0x080c, 0x97b0, 0x00ce,\r
++      0x0804, 0x859a, 0x2c78, 0x600c, 0x2060, 0x0804, 0x859a, 0x012e,\r
++      0x000e, 0x001e, 0x006e, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x009e,\r
++      0x00be, 0x0005, 0x6020, 0x9086, 0x0006, 0x1158, 0x0016, 0x0036,\r
++      0x0086, 0x080c, 0xd7d3, 0x080c, 0xd4d5, 0x008e, 0x003e, 0x001e,\r
++      0x08d0, 0x080c, 0xa7c0, 0x6020, 0x9086, 0x0002, 0x1160, 0x6004,\r
++      0x0006, 0x9086, 0x0085, 0x000e, 0x0904, 0x8600, 0x9086, 0x008b,\r
++      0x0904, 0x8600, 0x0840, 0x6020, 0x9086, 0x0005, 0x1920, 0x6004,\r
++      0x0006, 0x9086, 0x0085, 0x000e, 0x09c8, 0x9086, 0x008b, 0x09b0,\r
++      0x0804, 0x8613, 0x00b6, 0x00a6, 0x0096, 0x00c6, 0x0006, 0x0126,\r
++      0x2091, 0x8000, 0x9280, 0x1000, 0x2004, 0x905d, 0x0904, 0x86ea,\r
++      0x00f6, 0x00e6, 0x00d6, 0x0066, 0x2071, 0x19b8, 0xbe54, 0x7018,\r
++      0x9b06, 0x1108, 0x761a, 0x701c, 0x9b06, 0x1130, 0x86ff, 0x1118,\r
++      0x7018, 0x701e, 0x0008, 0x761e, 0xb858, 0x904d, 0x0108, 0xae56,\r
++      0x96d5, 0x0000, 0x0110, 0x2900, 0xb05a, 0xb857, 0x0000, 0xb85b,\r
++      0x0000, 0xb800, 0xc0d4, 0xc0dc, 0xb802, 0x080c, 0x6171, 0x0904,\r
++      0x86e6, 0x7624, 0x86ff, 0x0904, 0x86d5, 0x9680, 0x0005, 0x2004,\r
++      0x9906, 0x15d8, 0x00d6, 0x2069, 0x0100, 0x68c0, 0x9005, 0x0560,\r
++      0x080c, 0x80b8, 0x080c, 0x93ac, 0x68c3, 0x0000, 0x080c, 0x98da,\r
++      0x7027, 0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0x9384, 0x1000,\r
++      0x0138, 0x2001, 0x0100, 0x080c, 0x2b14, 0x9006, 0x080c, 0x2b14,\r
++      0x2069, 0x0100, 0x6824, 0xd084, 0x0110, 0x6827, 0x0001, 0x003e,\r
++      0x00de, 0x00c6, 0xb83c, 0x9005, 0x0110, 0x8001, 0xb83e, 0x2660,\r
++      0x080c, 0x9e62, 0x00ce, 0x0048, 0x00de, 0x00c6, 0x2660, 0x6003,\r
++      0x0009, 0x630a, 0x00ce, 0x0804, 0x868d, 0x89ff, 0x0158, 0xa867,\r
++      0x0103, 0xab7a, 0xa877, 0x0000, 0x080c, 0xbe06, 0x080c, 0xd7d3,\r
++      0x080c, 0x688c, 0x080c, 0x97b0, 0x0804, 0x868d, 0x006e, 0x00de,\r
++      0x00ee, 0x00fe, 0x012e, 0x000e, 0x00ce, 0x009e, 0x00ae, 0x00be,\r
++      0x0005, 0x0096, 0x0006, 0x0066, 0x00c6, 0x00d6, 0x9036, 0x7814,\r
++      0x9065, 0x0904, 0x8752, 0x600c, 0x0006, 0x600f, 0x0000, 0x7824,\r
++      0x9c06, 0x1570, 0x2069, 0x0100, 0x6820, 0xd0a4, 0x1508, 0x080c,\r
++      0x80b8, 0x080c, 0x93ac, 0x68c3, 0x0000, 0x080c, 0x98da, 0x7827,\r
++      0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0x9384, 0x1000, 0x0138,\r
++      0x2001, 0x0100, 0x080c, 0x2b14, 0x9006, 0x080c, 0x2b14, 0x2069,\r
++      0x0100, 0x6824, 0xd084, 0x0110, 0x6827, 0x0001, 0x003e, 0x0040,\r
++      0x080c, 0x6518, 0x1520, 0x6003, 0x0009, 0x630a, 0x2c30, 0x00f8,\r
++      0x6014, 0x2048, 0x080c, 0xbb15, 0x01b0, 0x6020, 0x9086, 0x0003,\r
++      0x1508, 0x080c, 0xbd1d, 0x1118, 0x080c, 0xa7c0, 0x0060, 0x080c,\r
++      0x6518, 0x1168, 0xa867, 0x0103, 0xab7a, 0xa877, 0x0000, 0x080c,\r
++      0x688c, 0x080c, 0xbd00, 0x080c, 0x9e62, 0x080c, 0x97b0, 0x000e,\r
++      0x0804, 0x86f8, 0x7e16, 0x7e12, 0x00de, 0x00ce, 0x006e, 0x000e,\r
++      0x009e, 0x0005, 0x6020, 0x9086, 0x0006, 0x1118, 0x080c, 0xd4d5,\r
++      0x0c50, 0x080c, 0xa7c0, 0x6020, 0x9086, 0x0002, 0x1150, 0x6004,\r
++      0x0006, 0x9086, 0x0085, 0x000e, 0x0990, 0x9086, 0x008b, 0x0978,\r
++      0x08d0, 0x6020, 0x9086, 0x0005, 0x19b0, 0x6004, 0x0006, 0x9086,\r
++      0x0085, 0x000e, 0x0d18, 0x9086, 0x008b, 0x0d00, 0x0860, 0x0006,\r
++      0x0066, 0x0096, 0x00b6, 0x00c6, 0x00d6, 0x7818, 0x905d, 0x0904,\r
++      0x87ff, 0xb854, 0x0006, 0x9006, 0xb856, 0xb85a, 0xb800, 0xc0d4,\r
++      0xc0dc, 0xb802, 0x080c, 0x6171, 0x0904, 0x87fc, 0x7e24, 0x86ff,\r
++      0x0904, 0x87ef, 0x9680, 0x0005, 0x2004, 0x9906, 0x1904, 0x87ef,\r
++      0x00d6, 0x2069, 0x0100, 0x68c0, 0x9005, 0x0904, 0x87e6, 0x080c,\r
++      0x80b8, 0x080c, 0x93ac, 0x68c3, 0x0000, 0x080c, 0x98da, 0x7827,\r
++      0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0x9384, 0x1000, 0x0138,\r
++      0x2001, 0x0100, 0x080c, 0x2b14, 0x9006, 0x080c, 0x2b14, 0x2069,\r
++      0x0100, 0x6824, 0xd084, 0x0110, 0x6827, 0x0001, 0x003e, 0x00de,\r
++      0x00c6, 0x3e08, 0x918e, 0x0002, 0x1168, 0xb800, 0xd0bc, 0x0150,\r
++      0x9680, 0x0010, 0x200c, 0x81ff, 0x1518, 0x2009, 0x1959, 0x210c,\r
++      0x2102, 0x00f0, 0xb83c, 0x9005, 0x0110, 0x8001, 0xb83e, 0x2660,\r
++      0x600f, 0x0000, 0x080c, 0x9e62, 0x00ce, 0x0048, 0x00de, 0x00c6,\r
++      0x2660, 0x6003, 0x0009, 0x630a, 0x00ce, 0x0804, 0x8792, 0x89ff,\r
++      0x0138, 0xa867, 0x0103, 0xab7a, 0xa877, 0x0000, 0x080c, 0x688c,\r
++      0x080c, 0x97b0, 0x0804, 0x8792, 0x000e, 0x0804, 0x8786, 0x781e,\r
++      0x781a, 0x00de, 0x00ce, 0x00be, 0x009e, 0x006e, 0x000e, 0x0005,\r
++      0x00e6, 0x00d6, 0x0096, 0x0066, 0xb800, 0xd0dc, 0x01a0, 0xb84c,\r
++      0x904d, 0x0188, 0xa878, 0x9606, 0x1170, 0x2071, 0x19b8, 0x7024,\r
++      0x9035, 0x0148, 0x9080, 0x0005, 0x2004, 0x9906, 0x1120, 0xb800,\r
++      0xc0dc, 0xb802, 0x0029, 0x006e, 0x009e, 0x00de, 0x00ee, 0x0005,\r
++      0x00f6, 0x2079, 0x0100, 0x78c0, 0x9005, 0x1138, 0x00c6, 0x2660,\r
++      0x6003, 0x0009, 0x630a, 0x00ce, 0x04b8, 0x080c, 0x93ac, 0x78c3,\r
++      0x0000, 0x080c, 0x98da, 0x7027, 0x0000, 0x0036, 0x2079, 0x0140,\r
++      0x7b04, 0x9384, 0x1000, 0x0138, 0x2001, 0x0100, 0x080c, 0x2b14,\r
++      0x9006, 0x080c, 0x2b14, 0x2079, 0x0100, 0x7824, 0xd084, 0x0110,\r
++      0x7827, 0x0001, 0x080c, 0x98da, 0x003e, 0x080c, 0x6171, 0x00c6,\r
++      0xb83c, 0x9005, 0x0110, 0x8001, 0xb83e, 0x2660, 0x080c, 0x9e32,\r
++      0x00ce, 0xa867, 0x0103, 0xab7a, 0xa877, 0x0000, 0x080c, 0xbe06,\r
++      0x080c, 0x688c, 0x080c, 0x97b0, 0x00fe, 0x0005, 0x00b6, 0x00e6,\r
++      0x00c6, 0x2011, 0x0101, 0x2204, 0xc0c4, 0x2012, 0x2001, 0x180c,\r
++      0x2014, 0xc2e4, 0x2202, 0x2071, 0x19b8, 0x7004, 0x9084, 0x0007,\r
++      0x0002, 0x888b, 0x888f, 0x88a6, 0x88cf, 0x890d, 0x888b, 0x88a6,\r
++      0x8889, 0x080c, 0x0db4, 0x00ce, 0x00ee, 0x00be, 0x0005, 0x7024,\r
++      0x9065, 0x0148, 0x7020, 0x8001, 0x7022, 0x600c, 0x9015, 0x0158,\r
++      0x7216, 0x600f, 0x0000, 0x7007, 0x0000, 0x7027, 0x0000, 0x00ce,\r
++      0x00ee, 0x00be, 0x0005, 0x7216, 0x7212, 0x0ca8, 0x6010, 0x2058,\r
++      0x080c, 0x6171, 0xb800, 0xc0dc, 0xb802, 0x7007, 0x0000, 0x7027,\r
++      0x0000, 0x7020, 0x8001, 0x7022, 0x1148, 0x2001, 0x180c, 0x2014,\r
++      0xd2ec, 0x1180, 0x00ce, 0x00ee, 0x00be, 0x0005, 0xb854, 0x9015,\r
++      0x0120, 0x721e, 0x080c, 0x8973, 0x0ca8, 0x7218, 0x721e, 0x080c,\r
++      0x8973, 0x0c80, 0xc2ec, 0x2202, 0x080c, 0x8a4e, 0x0c58, 0x7024,\r
++      0x9065, 0x05b8, 0x700c, 0x9c06, 0x1160, 0x080c, 0x97b0, 0x600c,\r
++      0x9015, 0x0120, 0x720e, 0x600f, 0x0000, 0x0448, 0x720e, 0x720a,\r
++      0x0430, 0x7014, 0x9c06, 0x1160, 0x080c, 0x97b0, 0x600c, 0x9015,\r
++      0x0120, 0x7216, 0x600f, 0x0000, 0x00d0, 0x7216, 0x7212, 0x00b8,\r
++      0x6020, 0x9086, 0x0003, 0x1198, 0x6010, 0x2058, 0x080c, 0x6171,\r
++      0xb800, 0xc0dc, 0xb802, 0x080c, 0x97b0, 0x701c, 0x9065, 0x0138,\r
++      0xb854, 0x9015, 0x0110, 0x721e, 0x0010, 0x7218, 0x721e, 0x7027,\r
++      0x0000, 0x00ce, 0x00ee, 0x00be, 0x0005, 0x7024, 0x9065, 0x0140,\r
++      0x080c, 0x97b0, 0x600c, 0x9015, 0x0158, 0x720e, 0x600f, 0x0000,\r
++      0x080c, 0x98da, 0x7027, 0x0000, 0x00ce, 0x00ee, 0x00be, 0x0005,\r
++      0x720e, 0x720a, 0x0ca8, 0x00d6, 0x2069, 0x19b8, 0x6830, 0x9084,\r
++      0x0003, 0x0002, 0x8930, 0x8932, 0x8956, 0x892e, 0x080c, 0x0db4,\r
++      0x00de, 0x0005, 0x00c6, 0x6840, 0x9086, 0x0001, 0x01b8, 0x683c,\r
++      0x9065, 0x0130, 0x600c, 0x9015, 0x0170, 0x6a3a, 0x600f, 0x0000,\r
++      0x6833, 0x0000, 0x683f, 0x0000, 0x2011, 0x19d7, 0x2013, 0x0000,\r
++      0x00ce, 0x00de, 0x0005, 0x683a, 0x6836, 0x0c90, 0x6843, 0x0000,\r
++      0x6838, 0x9065, 0x0d68, 0x6003, 0x0003, 0x0c50, 0x00c6, 0x9006,\r
++      0x6842, 0x6846, 0x684a, 0x683c, 0x9065, 0x0160, 0x600c, 0x9015,\r
++      0x0130, 0x6a3a, 0x600f, 0x0000, 0x683f, 0x0000, 0x0018, 0x683e,\r
++      0x683a, 0x6836, 0x00ce, 0x00de, 0x0005, 0x2001, 0x180c, 0x200c,\r
++      0xc1e5, 0x2102, 0x0005, 0x2001, 0x180c, 0x200c, 0xd1ec, 0x0120,\r
++      0xc1ec, 0x2102, 0x080c, 0x8a4e, 0x2001, 0x19c4, 0x2004, 0x9086,\r
++      0x0001, 0x0d58, 0x00d6, 0x2069, 0x19b8, 0x6804, 0x9084, 0x0007,\r
++      0x0002, 0x8993, 0x8a36, 0x8a36, 0x8a36, 0x8a36, 0x8a38, 0x8a36,\r
++      0x8991, 0x080c, 0x0db4, 0x6820, 0x9005, 0x1110, 0x00de, 0x0005,\r
++      0x00c6, 0x680c, 0x9065, 0x0150, 0x6807, 0x0004, 0x6826, 0x682b,\r
++      0x0000, 0x080c, 0x8aa4, 0x00ce, 0x00de, 0x0005, 0x6814, 0x9065,\r
++      0x0150, 0x6807, 0x0001, 0x6826, 0x682b, 0x0000, 0x080c, 0x8aa4,\r
++      0x00ce, 0x00de, 0x0005, 0x00b6, 0x00e6, 0x6a1c, 0x92dd, 0x0000,\r
++      0x0904, 0x8a22, 0xb84c, 0x900d, 0x0118, 0xb888, 0x9005, 0x01a0,\r
++      0xb854, 0x905d, 0x0120, 0x920e, 0x0904, 0x8a22, 0x0028, 0x6818,\r
++      0x920e, 0x0904, 0x8a22, 0x2058, 0xb84c, 0x900d, 0x0d88, 0xb888,\r
++      0x9005, 0x1d70, 0x2b00, 0x681e, 0xbb3c, 0xb838, 0x9302, 0x1e40,\r
++      0x080c, 0x9e09, 0x0904, 0x8a22, 0x8318, 0xbb3e, 0x6116, 0x2b10,\r
++      0x6212, 0x0096, 0x2148, 0xa880, 0x9084, 0x00ff, 0x605e, 0xa883,\r
++      0x0000, 0xa884, 0x009e, 0x908a, 0x199a, 0x0210, 0x2001, 0x1999,\r
++      0x8003, 0x801b, 0x831b, 0x9318, 0x631a, 0x6114, 0x0096, 0x2148,\r
++      0xa964, 0x009e, 0x918c, 0x00ff, 0x918e, 0x0048, 0x0538, 0x00f6,\r
++      0x2c78, 0x2061, 0x0100, 0xbab0, 0x629a, 0x2069, 0x0200, 0x2071,\r
++      0x0240, 0x080c, 0x8fdc, 0x2069, 0x19b8, 0xbb00, 0xc3dd, 0xbb02,\r
++      0x6807, 0x0002, 0x2f18, 0x6b26, 0x682b, 0x0000, 0x7823, 0x0003,\r
++      0x7803, 0x0001, 0x7807, 0x0040, 0x00fe, 0x00ee, 0x00be, 0x00ce,\r
++      0x00de, 0x0005, 0x00ee, 0x00be, 0x00ce, 0x0cd0, 0xbb00, 0xc3dd,\r
++      0xbb02, 0x6807, 0x0006, 0x2f18, 0x6b26, 0x682b, 0x0000, 0x080c,\r
++      0x9c63, 0x00ee, 0x00be, 0x00ce, 0x00de, 0x0005, 0x00de, 0x0005,\r
++      0x00c6, 0x680c, 0x9065, 0x0138, 0x6807, 0x0004, 0x6826, 0x682b,\r
++      0x0000, 0x080c, 0x8aa4, 0x00ce, 0x00de, 0x0005, 0x2001, 0x180c,\r
++      0x2014, 0xc2ed, 0x2202, 0x00de, 0x00fe, 0x0005, 0x00f6, 0x00d6,\r
++      0x2069, 0x19b8, 0x6830, 0x9086, 0x0000, 0x1548, 0x2001, 0x180c,\r
++      0x2014, 0xd2e4, 0x0130, 0xc2e4, 0x2202, 0x080c, 0x8982, 0x2069,\r
++      0x19b8, 0x2001, 0x180c, 0x200c, 0xd1c4, 0x11e0, 0x6838, 0x907d,\r
++      0x01b0, 0x6a04, 0x9296, 0x0000, 0x1588, 0x6833, 0x0001, 0x683e,\r
++      0x6847, 0x0000, 0x684b, 0x0000, 0x0126, 0x00f6, 0x2091, 0x2400,\r
++      0x002e, 0x080c, 0x1ae8, 0x1178, 0x012e, 0x080c, 0x9209, 0x00de,\r
++      0x00fe, 0x0005, 0xc1c4, 0x2102, 0x0066, 0x2031, 0x0001, 0x080c,\r
++      0x7062, 0x006e, 0x08d8, 0x012e, 0x6843, 0x0000, 0x7803, 0x0002,\r
++      0x780c, 0x9015, 0x0140, 0x6a3a, 0x780f, 0x0000, 0x6833, 0x0000,\r
++      0x683f, 0x0000, 0x0c20, 0x683a, 0x6836, 0x0cc0, 0x6a04, 0x9296,\r
++      0x0006, 0x0958, 0x0804, 0x8a46, 0x6020, 0x9084, 0x000f, 0x000b,\r
++      0x0005, 0x8ab8, 0x8abd, 0x8f16, 0x8fa5, 0x8abd, 0x8f16, 0x8fa5,\r
++      0x8ab8, 0x8abd, 0x8ab8, 0x8ab8, 0x8ab8, 0x8ab8, 0x8ab8, 0x8ab8,\r
++      0x080c, 0x886e, 0x080c, 0x8973, 0x0005, 0x00b6, 0x0156, 0x0136,\r
++      0x0146, 0x01c6, 0x01d6, 0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x2069,\r
++      0x0200, 0x2071, 0x0240, 0x6004, 0x908a, 0x0053, 0x1a0c, 0x0db4,\r
++      0x6110, 0x2158, 0xb9b0, 0x2c78, 0x2061, 0x0100, 0x619a, 0x908a,\r
++      0x0040, 0x1a04, 0x8b29, 0x005b, 0x00fe, 0x00ee, 0x00de, 0x00ce,\r
++      0x01de, 0x01ce, 0x014e, 0x013e, 0x015e, 0x00be, 0x0005, 0x8ca0,\r
++      0x8cdb, 0x8d04, 0x8da7, 0x8dc8, 0x8dce, 0x8ddb, 0x8de3, 0x8def,\r
++      0x8df5, 0x8e06, 0x8df5, 0x8e5d, 0x8de3, 0x8e69, 0x8e6f, 0x8def,\r
++      0x8e6f, 0x8e7b, 0x8b27, 0x8b27, 0x8b27, 0x8b27, 0x8b27, 0x8b27,\r
++      0x8b27, 0x8b27, 0x8b27, 0x8b27, 0x8b27, 0x958f, 0x95b2, 0x95c3,\r
++      0x95e3, 0x9615, 0x8ddb, 0x8b27, 0x8ddb, 0x8df5, 0x8b27, 0x8d04,\r
++      0x8da7, 0x8b27, 0x99c7, 0x8df5, 0x8b27, 0x99e3, 0x8df5, 0x8b27,\r
++      0x8def, 0x8c9a, 0x8b4a, 0x8b27, 0x99ff, 0x9a6c, 0x9b43, 0x8b27,\r
++      0x9b50, 0x8dd8, 0x9b7b, 0x8b27, 0x961f, 0x9ba8, 0x8b27, 0x080c,\r
++      0x0db4, 0x2100, 0x005b, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x01de,\r
++      0x01ce, 0x014e, 0x013e, 0x015e, 0x00be, 0x0005, 0x8b48, 0x8b48,\r
++      0x8b48, 0x8b71, 0x8c1d, 0x8c28, 0x8b48, 0x8b48, 0x8b48, 0x8c6f,\r
++      0x8c7b, 0x8b8c, 0x8b48, 0x8ba7, 0x8bdb, 0x9d25, 0x9d6a, 0x8df5,\r
++      0x080c, 0x0db4, 0x00d6, 0x0096, 0x080c, 0x8e8e, 0x7003, 0x2414,\r
++      0x7007, 0x0018, 0x700b, 0x0800, 0x7814, 0x2048, 0xa83c, 0x700e,\r
++      0xa850, 0x7022, 0xa854, 0x7026, 0x60c3, 0x0018, 0x080c, 0x9380,\r
++      0x009e, 0x00de, 0x0005, 0x7810, 0x00b6, 0x2058, 0xb8a0, 0x00be,\r
++      0x080c, 0x9db1, 0x1118, 0x9084, 0xff80, 0x0110, 0x9085, 0x0001,\r
++      0x0005, 0x00d6, 0x0096, 0x080c, 0x8e8e, 0x7003, 0x0500, 0x7814,\r
++      0x2048, 0xa874, 0x700a, 0xa878, 0x700e, 0xa87c, 0x7012, 0xa880,\r
++      0x7016, 0xa884, 0x701a, 0xa888, 0x701e, 0x60c3, 0x0010, 0x080c,\r
++      0x9380, 0x009e, 0x00de, 0x0005, 0x00d6, 0x0096, 0x080c, 0x8e8e,\r
++      0x7003, 0x0500, 0x7814, 0x2048, 0xa8cc, 0x700a, 0xa8d0, 0x700e,\r
++      0xa8d4, 0x7012, 0xa8d8, 0x7016, 0xa8dc, 0x701a, 0xa8e0, 0x701e,\r
++      0x60c3, 0x0010, 0x080c, 0x9380, 0x009e, 0x00de, 0x0005, 0x00d6,\r
++      0x0096, 0x0126, 0x2091, 0x8000, 0x080c, 0x8e8e, 0x20e9, 0x0000,\r
++      0x2001, 0x1974, 0x2003, 0x0000, 0x7814, 0x2048, 0xa814, 0x8003,\r
++      0x60c2, 0xa830, 0x20a8, 0xa860, 0x20e0, 0xa85c, 0x9080, 0x001b,\r
++      0x2098, 0x2001, 0x1974, 0x0016, 0x200c, 0x2001, 0x0001, 0x080c,\r
++      0x224d, 0x080c, 0xc81a, 0x9006, 0x080c, 0x224d, 0x001e, 0xa804,\r
++      0x9005, 0x0110, 0x2048, 0x0c28, 0x04d9, 0x080c, 0x9380, 0x012e,\r
++      0x009e, 0x00de, 0x0005, 0x00d6, 0x0096, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x8ed9, 0x20e9, 0x0000, 0x2001, 0x1974, 0x2003, 0x0000,\r
++      0x7814, 0x2048, 0xa86f, 0x0200, 0xa873, 0x0000, 0xa814, 0x8003,\r
++      0x60c2, 0xa830, 0x20a8, 0xa860, 0x20e0, 0xa85c, 0x9080, 0x001b,\r
++      0x2098, 0x2001, 0x1974, 0x0016, 0x200c, 0x080c, 0xc81a, 0x001e,\r
++      0xa804, 0x9005, 0x0110, 0x2048, 0x0c60, 0x0051, 0x7814, 0x2048,\r
++      0x080c, 0x0f9d, 0x080c, 0x9380, 0x012e, 0x009e, 0x00de, 0x0005,\r
++      0x60c0, 0x8004, 0x9084, 0x0003, 0x9005, 0x0130, 0x9082, 0x0004,\r
++      0x20a3, 0x0000, 0x8000, 0x1de0, 0x0005, 0x080c, 0x8e8e, 0x7003,\r
++      0x7800, 0x7808, 0x8007, 0x700a, 0x60c3, 0x0008, 0x0804, 0x9380,\r
++      0x00d6, 0x00e6, 0x080c, 0x8ed9, 0x7814, 0x9084, 0xff00, 0x2073,\r
++      0x0200, 0x8e70, 0x8e70, 0x9095, 0x0010, 0x2272, 0x8e70, 0x2073,\r
++      0x0034, 0x8e70, 0x2069, 0x1805, 0x20a9, 0x0004, 0x2d76, 0x8d68,\r
++      0x8e70, 0x1f04, 0x8c3e, 0x2069, 0x1801, 0x20a9, 0x0004, 0x2d76,\r
++      0x8d68, 0x8e70, 0x1f04, 0x8c47, 0x2069, 0x1984, 0x9086, 0xdf00,\r
++      0x0110, 0x2069, 0x199e, 0x20a9, 0x001a, 0x9e86, 0x0260, 0x1148,\r
++      0x00c6, 0x2061, 0x0200, 0x6010, 0x8000, 0x6012, 0x00ce, 0x2071,\r
++      0x0240, 0x2d04, 0x8007, 0x2072, 0x8d68, 0x8e70, 0x1f04, 0x8c55,\r
++      0x60c3, 0x004c, 0x080c, 0x9380, 0x00ee, 0x00de, 0x0005, 0x080c,\r
++      0x8e8e, 0x7003, 0x6300, 0x7007, 0x0028, 0x7808, 0x700e, 0x60c3,\r
++      0x0008, 0x0804, 0x9380, 0x00d6, 0x0026, 0x0016, 0x080c, 0x8ed9,\r
++      0x7003, 0x0200, 0x7814, 0x700e, 0x00e6, 0x9ef0, 0x0004, 0x2009,\r
++      0x0001, 0x2011, 0x000c, 0x2073, 0x0800, 0x8e70, 0x2073, 0x0000,\r
++      0x00ee, 0x7206, 0x710a, 0x62c2, 0x080c, 0x9380, 0x001e, 0x002e,\r
++      0x00de, 0x0005, 0x2001, 0x1817, 0x2004, 0x609a, 0x0804, 0x9380,\r
++      0x080c, 0x8e8e, 0x7003, 0x5200, 0x2069, 0x1853, 0x6804, 0xd084,\r
++      0x0130, 0x6828, 0x0016, 0x080c, 0x2696, 0x710e, 0x001e, 0x20a9,\r
++      0x0004, 0x20e1, 0x0001, 0x2099, 0x1805, 0x20e9, 0x0000, 0x20a1,\r
++      0x0250, 0x4003, 0x20a9, 0x0004, 0x2099, 0x1801, 0x20a1, 0x0254,\r
++      0x4003, 0x080c, 0x9db1, 0x1120, 0xb8a0, 0x9082, 0x007f, 0x0248,\r
++      0x2001, 0x181e, 0x2004, 0x7032, 0x2001, 0x181f, 0x2004, 0x7036,\r
++      0x0030, 0x2001, 0x1817, 0x2004, 0x9084, 0x00ff, 0x7036, 0x60c3,\r
++      0x001c, 0x0804, 0x9380, 0x080c, 0x8e8e, 0x7003, 0x0500, 0x080c,\r
++      0x9db1, 0x1120, 0xb8a0, 0x9082, 0x007f, 0x0248, 0x2001, 0x181e,\r
++      0x2004, 0x700a, 0x2001, 0x181f, 0x2004, 0x700e, 0x0030, 0x2001,\r
++      0x1817, 0x2004, 0x9084, 0x00ff, 0x700e, 0x20a9, 0x0004, 0x20e1,\r
++      0x0001, 0x2099, 0x1805, 0x20e9, 0x0000, 0x20a1, 0x0250, 0x4003,\r
++      0x60c3, 0x0010, 0x0804, 0x9380, 0x080c, 0x8e8e, 0x9006, 0x080c,\r
++      0x652c, 0xb8a0, 0x9086, 0x007e, 0x1130, 0x7003, 0x0400, 0x620c,\r
++      0xc2b4, 0x620e, 0x0058, 0x7814, 0x0096, 0x904d, 0x0120, 0x9006,\r
++      0xa89a, 0xa8a6, 0xa8aa, 0x009e, 0x7003, 0x0300, 0xb8a0, 0x9086,\r
++      0x007e, 0x1904, 0x8d6f, 0x00d6, 0x2069, 0x193d, 0x2001, 0x1836,\r
++      0x2004, 0xd0a4, 0x0178, 0x6800, 0x700a, 0x6808, 0x9084, 0x2000,\r
++      0x7012, 0x680c, 0x7016, 0x701f, 0x2710, 0x6818, 0x7022, 0x681c,\r
++      0x7026, 0x0080, 0x6800, 0x700a, 0x6804, 0x700e, 0x6808, 0x080c,\r
++      0x6fb2, 0x1118, 0x9084, 0x37ff, 0x0010, 0x9084, 0x3fff, 0x7012,\r
++      0x680c, 0x7016, 0x00de, 0x20a9, 0x0004, 0x20e1, 0x0001, 0x2099,\r
++      0x1805, 0x20e9, 0x0000, 0x20a1, 0x0256, 0x4003, 0x20a9, 0x0004,\r
++      0x2099, 0x1801, 0x20a1, 0x025a, 0x4003, 0x00d6, 0x080c, 0x9c2a,\r
++      0x2069, 0x1945, 0x2071, 0x024e, 0x6800, 0xc0dd, 0x7002, 0x080c,\r
++      0x538a, 0xd0e4, 0x0110, 0x680c, 0x700e, 0x00de, 0x04a0, 0x2001,\r
++      0x1836, 0x2004, 0xd0a4, 0x0168, 0x0016, 0x2009, 0x0002, 0x60e0,\r
++      0x9106, 0x0130, 0x2100, 0x60e3, 0x0000, 0x080c, 0x26d7, 0x61e2,\r
++      0x001e, 0x20e1, 0x0001, 0x2099, 0x193d, 0x20e9, 0x0000, 0x20a1,\r
++      0x024e, 0x20a9, 0x0008, 0x4003, 0x20a9, 0x0004, 0x2099, 0x1805,\r
++      0x20a1, 0x0256, 0x4003, 0x20a9, 0x0004, 0x2099, 0x1801, 0x20a1,\r
++      0x025a, 0x4003, 0x080c, 0x9c2a, 0x20a1, 0x024e, 0x20a9, 0x0008,\r
++      0x2099, 0x1945, 0x4003, 0x60c3, 0x0074, 0x0804, 0x9380, 0x080c,\r
++      0x8e8e, 0x7003, 0x2010, 0x7007, 0x0014, 0x700b, 0x0800, 0x700f,\r
++      0x2000, 0x9006, 0x00f6, 0x2079, 0x1853, 0x7904, 0x00fe, 0xd1ac,\r
++      0x1110, 0x9085, 0x0020, 0x0010, 0x9085, 0x0010, 0x9085, 0x0002,\r
++      0x00d6, 0x0804, 0x8e3e, 0x7026, 0x60c3, 0x0014, 0x0804, 0x9380,\r
++      0x080c, 0x8e8e, 0x7003, 0x5000, 0x0804, 0x8d1e, 0x080c, 0x8e8e,\r
++      0x7003, 0x2110, 0x7007, 0x0014, 0x60c3, 0x0014, 0x0804, 0x9380,\r
++      0x080c, 0x8ed0, 0x0010, 0x080c, 0x8ed9, 0x7003, 0x0200, 0x60c3,\r
++      0x0004, 0x0804, 0x9380, 0x080c, 0x8ed9, 0x7003, 0x0100, 0x700b,\r
++      0x0003, 0x700f, 0x2a00, 0x60c3, 0x0008, 0x0804, 0x9380, 0x080c,\r
++      0x8ed9, 0x7003, 0x0200, 0x0804, 0x8d1e, 0x080c, 0x8ed9, 0x7003,\r
++      0x0100, 0x782c, 0x9005, 0x0110, 0x700a, 0x0010, 0x700b, 0x0003,\r
++      0x7814, 0x700e, 0x60c3, 0x0008, 0x0804, 0x9380, 0x00d6, 0x080c,\r
++      0x8ed9, 0x7003, 0x0210, 0x7007, 0x0014, 0x700b, 0x0800, 0xb894,\r
++      0x9086, 0x0014, 0x1198, 0xb99c, 0x9184, 0x0030, 0x0190, 0xb998,\r
++      0x9184, 0xc000, 0x1140, 0xd1ec, 0x0118, 0x700f, 0x2100, 0x0058,\r
++      0x700f, 0x0100, 0x0040, 0x700f, 0x0400, 0x0028, 0x700f, 0x0700,\r
++      0x0010, 0x700f, 0x0800, 0x00f6, 0x2079, 0x1853, 0x7904, 0x00fe,\r
++      0xd1ac, 0x1110, 0x9085, 0x0020, 0x0010, 0x9085, 0x0010, 0x2009,\r
++      0x1875, 0x210c, 0xd184, 0x1110, 0x9085, 0x0002, 0x0026, 0x2009,\r
++      0x1873, 0x210c, 0xd1e4, 0x0150, 0xc0c5, 0xbabc, 0xd28c, 0x1108,\r
++      0xc0cd, 0x9094, 0x0030, 0x9296, 0x0010, 0x0140, 0xd1ec, 0x0130,\r
++      0x9094, 0x0030, 0x9296, 0x0010, 0x0108, 0xc0bd, 0x002e, 0x7026,\r
++      0x60c3, 0x0014, 0x00de, 0x0804, 0x9380, 0x080c, 0x8ed9, 0x7003,\r
++      0x0210, 0x7007, 0x0014, 0x700f, 0x0100, 0x60c3, 0x0014, 0x0804,\r
++      0x9380, 0x080c, 0x8ed9, 0x7003, 0x0200, 0x0804, 0x8ca4, 0x080c,\r
++      0x8ed9, 0x7003, 0x0100, 0x700b, 0x0003, 0x700f, 0x2a00, 0x60c3,\r
++      0x0008, 0x0804, 0x9380, 0x080c, 0x8ed9, 0x7003, 0x0100, 0x700b,\r
++      0x000b, 0x60c3, 0x0008, 0x0804, 0x9380, 0x0026, 0x00d6, 0x0036,\r
++      0x0046, 0x2019, 0x3200, 0x2021, 0x0800, 0x0040, 0x0026, 0x00d6,\r
++      0x0036, 0x0046, 0x2019, 0x2200, 0x2021, 0x0100, 0x080c, 0x9c3f,\r
++      0xb810, 0x9305, 0x7002, 0xb814, 0x7006, 0x2069, 0x1800, 0x6878,\r
++      0x700a, 0x687c, 0x700e, 0x9485, 0x0029, 0x7012, 0x004e, 0x003e,\r
++      0x00de, 0x080c, 0x936e, 0x721a, 0x9f95, 0x0000, 0x7222, 0x7027,\r
++      0xffff, 0x2071, 0x024c, 0x002e, 0x0005, 0x0026, 0x080c, 0x9c3f,\r
++      0x7003, 0x02ff, 0x7007, 0xfffc, 0x00d6, 0x2069, 0x1800, 0x6878,\r
++      0x700a, 0x687c, 0x700e, 0x00de, 0x7013, 0x2029, 0x0c10, 0x7003,\r
++      0x0100, 0x7007, 0x0000, 0x700b, 0xfc02, 0x700f, 0x0000, 0x0005,\r
++      0x0026, 0x00d6, 0x0036, 0x0046, 0x2019, 0x3300, 0x2021, 0x0800,\r
++      0x0040, 0x0026, 0x00d6, 0x0036, 0x0046, 0x2019, 0x2300, 0x2021,\r
++      0x0100, 0x080c, 0x9c3f, 0xb810, 0x9305, 0x7002, 0xb814, 0x7006,\r
++      0x2069, 0x1800, 0xb810, 0x9005, 0x1140, 0xb814, 0x9005, 0x1128,\r
++      0x700b, 0x00ff, 0x700f, 0xfffe, 0x0020, 0x6878, 0x700a, 0x687c,\r
++      0x700e, 0x0000, 0x9485, 0x0098, 0x7012, 0x004e, 0x003e, 0x00de,\r
++      0x080c, 0x936e, 0x721a, 0x7a08, 0x7222, 0x2f10, 0x7226, 0x2071,\r
++      0x024c, 0x002e, 0x0005, 0x080c, 0x936e, 0x721a, 0x7a08, 0x7222,\r
++      0x7814, 0x7026, 0x2071, 0x024c, 0x002e, 0x0005, 0x00b6, 0x00c6,\r
++      0x00d6, 0x00e6, 0x00f6, 0x2069, 0x0200, 0x2071, 0x0240, 0x6004,\r
++      0x908a, 0x0085, 0x0a0c, 0x0db4, 0x908a, 0x0092, 0x1a0c, 0x0db4,\r
++      0x6110, 0x2158, 0xb9b0, 0x2c78, 0x2061, 0x0100, 0x619a, 0x9082,\r
++      0x0085, 0x0033, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be, 0x0005,\r
++      0x8f47, 0x8f56, 0x8f61, 0x8f45, 0x8f45, 0x8f45, 0x8f47, 0x8f45,\r
++      0x8f45, 0x8f45, 0x8f45, 0x8f45, 0x8f45, 0x080c, 0x0db4, 0x0411,\r
++      0x60c3, 0x0000, 0x0026, 0x080c, 0x29ca, 0x0228, 0x2011, 0x0101,\r
++      0x2204, 0xc0c5, 0x2012, 0x002e, 0x0804, 0x9380, 0x0431, 0x7808,\r
++      0x700a, 0x7814, 0x700e, 0x7017, 0xffff, 0x60c3, 0x000c, 0x0804,\r
++      0x9380, 0x0479, 0x7003, 0x0003, 0x7007, 0x0300, 0x60c3, 0x0004,\r
++      0x0804, 0x9380, 0x0026, 0x080c, 0x9c3f, 0xb810, 0x9085, 0x8100,\r
++      0x7002, 0xb814, 0x7006, 0x2069, 0x1800, 0x6878, 0x700a, 0x687c,\r
++      0x700e, 0x7013, 0x0009, 0x0804, 0x8ea9, 0x0026, 0x080c, 0x9c3f,\r
++      0xb810, 0x9085, 0x8400, 0x7002, 0xb814, 0x7006, 0x2069, 0x1800,\r
++      0x6878, 0x700a, 0x687c, 0x700e, 0x2001, 0x0099, 0x7012, 0x0804,\r
++      0x8f0b, 0x0026, 0x080c, 0x9c3f, 0xb810, 0x9085, 0x8500, 0x7002,\r
++      0xb814, 0x7006, 0x2069, 0x1800, 0x6878, 0x700a, 0x687c, 0x700e,\r
++      0x2001, 0x0099, 0x7012, 0x0804, 0x8f0b, 0x00b6, 0x00c6, 0x00d6,\r
++      0x00e6, 0x00f6, 0x2c78, 0x2069, 0x0200, 0x2071, 0x0240, 0x7804,\r
++      0x908a, 0x0040, 0x0a0c, 0x0db4, 0x908a, 0x0054, 0x1a0c, 0x0db4,\r
++      0x7910, 0x2158, 0xb9b0, 0x2061, 0x0100, 0x619a, 0x9082, 0x0040,\r
++      0x0033, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be, 0x0005, 0x8fdc,\r
++      0x9098, 0x906b, 0x91ba, 0x8fda, 0x8fda, 0x8fda, 0x8fda, 0x8fda,\r
++      0x8fda, 0x8fda, 0x978d, 0x9795, 0x979d, 0x97a5, 0x8fda, 0x9b87,\r
++      0x8fda, 0x9785, 0x080c, 0x0db4, 0x0096, 0x780b, 0xffff, 0x080c,\r
++      0x9047, 0x7914, 0x2148, 0xa978, 0x7956, 0xae64, 0x96b4, 0x00ff,\r
++      0x9686, 0x0008, 0x1148, 0xa8b4, 0x7032, 0xa8b8, 0x7036, 0xa8bc,\r
++      0x703a, 0xa8c0, 0x703e, 0x0008, 0x7132, 0xa97c, 0x9184, 0x000f,\r
++      0x1118, 0x2001, 0x0005, 0x0040, 0xd184, 0x0118, 0x2001, 0x0004,\r
++      0x0018, 0x9084, 0x0006, 0x8004, 0x2010, 0x785c, 0x9084, 0x00ff,\r
++      0x8007, 0x9205, 0x7042, 0xd1ac, 0x0158, 0x7047, 0x0002, 0x9686,\r
++      0x0008, 0x1118, 0x080c, 0x1787, 0x0010, 0x080c, 0x1648, 0x0050,\r
++      0xd1b4, 0x0118, 0x7047, 0x0001, 0x0028, 0x7047, 0x0000, 0x9016,\r
++      0x2230, 0x0010, 0xaab0, 0xaeac, 0x726a, 0x766e, 0x20a9, 0x0008,\r
++      0x20e9, 0x0000, 0xa860, 0x20e0, 0xa85c, 0x9080, 0x0023, 0x2098,\r
++      0x20a1, 0x0252, 0x2069, 0x0200, 0x6813, 0x0018, 0x4003, 0x6813,\r
++      0x0008, 0x60c3, 0x0020, 0x6017, 0x0009, 0x2001, 0x19d4, 0x2003,\r
++      0x07d0, 0x2001, 0x19d3, 0x2003, 0x0009, 0x009e, 0x0005, 0x6813,\r
++      0x0008, 0xba8c, 0x8210, 0xb8bc, 0xd084, 0x0128, 0x7a46, 0x7b14,\r
++      0x7b4a, 0x722e, 0x732a, 0x9294, 0x00ff, 0xba8e, 0x8217, 0x721a,\r
++      0xba10, 0x9295, 0x0600, 0x7202, 0xba14, 0x7206, 0x2069, 0x1800,\r
++      0x6a78, 0x720a, 0x6a7c, 0x720e, 0x7013, 0x0829, 0x2f10, 0x7222,\r
++      0x7027, 0xffff, 0x0005, 0x00d6, 0x0096, 0x0081, 0x7814, 0x2048,\r
++      0xa890, 0x7002, 0xa88c, 0x7006, 0xa8b0, 0x700a, 0xa8ac, 0x700e,\r
++      0x60c3, 0x000c, 0x009e, 0x00de, 0x0804, 0x9380, 0x6813, 0x0008,\r
++      0xb810, 0x9085, 0x0500, 0x7002, 0xb814, 0x7006, 0x2069, 0x1800,\r
++      0x6878, 0x700a, 0x687c, 0x700e, 0x7013, 0x0889, 0x080c, 0x936e,\r
++      0x721a, 0x7a08, 0x7222, 0x2f10, 0x7226, 0x2071, 0x024c, 0x0005,\r
++      0x00d6, 0x0096, 0x080c, 0x9198, 0x7814, 0x2048, 0x080c, 0xbb15,\r
++      0x1130, 0x7814, 0x9084, 0x0700, 0x8007, 0x0033, 0x0010, 0x9006,\r
++      0x001b, 0x009e, 0x00de, 0x0005, 0x90b6, 0x911f, 0x912f, 0x9155,\r
++      0x9161, 0x9172, 0x917a, 0x90b4, 0x080c, 0x0db4, 0x0016, 0x0036,\r
++      0xa97c, 0x918c, 0x0003, 0x0118, 0x9186, 0x0003, 0x1198, 0xaba8,\r
++      0x7824, 0xd0cc, 0x1168, 0x7316, 0xa898, 0x701a, 0xa894, 0x701e,\r
++      0x003e, 0x001e, 0x2001, 0x1982, 0x2004, 0x60c2, 0x0804, 0x9380,\r
++      0xc3e5, 0x0c88, 0x9186, 0x0001, 0x190c, 0x0db4, 0xaba8, 0x7824,\r
++      0xd0cc, 0x1904, 0x911c, 0x7316, 0xa898, 0x701a, 0xa894, 0x701e,\r
++      0xa8a4, 0x7026, 0xa8ac, 0x702e, 0x2009, 0x0018, 0x9384, 0x0300,\r
++      0x0570, 0xd3c4, 0x0110, 0xa8ac, 0x9108, 0xd3cc, 0x0110, 0xa8a4,\r
++      0x9108, 0x6810, 0x9085, 0x0010, 0x6812, 0x2011, 0x0258, 0x20e9,\r
++      0x0000, 0x22a0, 0x0156, 0x20a9, 0x0008, 0xa860, 0x20e0, 0xa85c,\r
++      0x9080, 0x002c, 0x2098, 0x4003, 0x6810, 0x8000, 0x6812, 0x2011,\r
++      0x0240, 0x22a0, 0x20a9, 0x0005, 0x4003, 0x6810, 0xc084, 0x6812,\r
++      0x015e, 0x9184, 0x0003, 0x0118, 0x2019, 0x0245, 0x201a, 0x61c2,\r
++      0x003e, 0x001e, 0x0804, 0x9380, 0xc3e5, 0x0804, 0x90db, 0x2011,\r
++      0x0008, 0x2001, 0x180f, 0x2004, 0xd0a4, 0x0110, 0x2011, 0x0028,\r
++      0x7824, 0xd0cc, 0x1110, 0x7216, 0x0470, 0x0ce8, 0xc2e5, 0x2011,\r
++      0x0302, 0x0016, 0x782c, 0x701a, 0x7930, 0x711e, 0x9105, 0x0108,\r
++      0xc2dd, 0x001e, 0x7824, 0xd0cc, 0x0108, 0xc2e5, 0x7216, 0x7027,\r
++      0x0012, 0x702f, 0x0008, 0x7043, 0x7000, 0x7047, 0x0500, 0x704f,\r
++      0x000a, 0x2069, 0x0200, 0x6813, 0x0009, 0x2071, 0x0240, 0x700b,\r
++      0x2500, 0x60c3, 0x0032, 0x0804, 0x9380, 0x2011, 0x0028, 0x7824,\r
++      0xd0cc, 0x1128, 0x7216, 0x60c3, 0x0018, 0x0804, 0x9380, 0x0cd0,\r
++      0xc2e5, 0x2011, 0x0100, 0x7824, 0xd0cc, 0x0108, 0xc2e5, 0x7216,\r
++      0x702f, 0x0008, 0x7858, 0x9084, 0x00ff, 0x7036, 0x60c3, 0x0020,\r
++      0x0804, 0x9380, 0x2011, 0x0008, 0x7824, 0xd0cc, 0x0108, 0xc2e5,\r
++      0x7216, 0x0c08, 0x0036, 0x7b14, 0x9384, 0xff00, 0x7816, 0x9384,\r
++      0x00ff, 0x8001, 0x1138, 0x7824, 0xd0cc, 0x0108, 0xc2e5, 0x7216,\r
++      0x003e, 0x0888, 0x0046, 0x2021, 0x0800, 0x0006, 0x7824, 0xd0cc,\r
++      0x000e, 0x0108, 0xc4e5, 0x7416, 0x004e, 0x701e, 0x003e, 0x0818,\r
++      0x00d6, 0x6813, 0x0008, 0xb810, 0x9085, 0x0700, 0x7002, 0xb814,\r
++      0x7006, 0x2069, 0x1800, 0x6878, 0x700a, 0x687c, 0x700e, 0x7824,\r
++      0xd0cc, 0x1168, 0x7013, 0x0898, 0x080c, 0x936e, 0x721a, 0x7a08,\r
++      0x7222, 0x2f10, 0x7226, 0x2071, 0x024c, 0x00de, 0x0005, 0x7013,\r
++      0x0889, 0x0c90, 0x0016, 0x7814, 0x9084, 0x0700, 0x8007, 0x0013,\r
++      0x001e, 0x0005, 0x91ca, 0x91ca, 0x91cc, 0x91ca, 0x91ca, 0x91ca,\r
++      0x91e6, 0x91ca, 0x080c, 0x0db4, 0x7914, 0x918c, 0x08ff, 0x918d,\r
++      0xf600, 0x7916, 0x2009, 0x0003, 0x00b9, 0x2069, 0x1853, 0x6804,\r
++      0xd0bc, 0x0130, 0x682c, 0x9084, 0x00ff, 0x8007, 0x7032, 0x0010,\r
++      0x7033, 0x3f00, 0x60c3, 0x0001, 0x0804, 0x9380, 0x2009, 0x0003,\r
++      0x0019, 0x7033, 0x7f00, 0x0cb0, 0x0016, 0x080c, 0x9c3f, 0x001e,\r
++      0xb810, 0x9085, 0x0100, 0x7002, 0xb814, 0x7006, 0x2069, 0x1800,\r
++      0x6a78, 0x720a, 0x6a7c, 0x720e, 0x7013, 0x0888, 0x918d, 0x0008,\r
++      0x7116, 0x080c, 0x936e, 0x721a, 0x7a08, 0x7222, 0x2f10, 0x7226,\r
++      0x0005, 0x00b6, 0x0096, 0x00e6, 0x00d6, 0x00c6, 0x0056, 0x0046,\r
++      0x0036, 0x2061, 0x0100, 0x2071, 0x1800, 0x7810, 0x2058, 0xb8a0,\r
++      0x2028, 0xb910, 0xba14, 0x7378, 0x747c, 0x7820, 0x90be, 0x0006,\r
++      0x0904, 0x92dd, 0x90be, 0x000a, 0x1904, 0x9299, 0xb8b0, 0x609e,\r
++      0x7814, 0x2048, 0xa87c, 0xd0fc, 0x0558, 0xaf90, 0x9784, 0xff00,\r
++      0x9105, 0x6062, 0x873f, 0x9784, 0xff00, 0x0006, 0x7814, 0x2048,\r
++      0xa878, 0xc0fc, 0x9005, 0x000e, 0x1160, 0xaf94, 0x87ff, 0x0198,\r
++      0x2039, 0x0098, 0x9705, 0x6072, 0x7808, 0x6082, 0x2f00, 0x6086,\r
++      0x0038, 0x9185, 0x2200, 0x6062, 0x6073, 0x0129, 0x6077, 0x0000,\r
++      0xb8b0, 0x609e, 0x0050, 0x2039, 0x0029, 0x9705, 0x6072, 0x0cc0,\r
++      0x9185, 0x0200, 0x6062, 0x6073, 0x2029, 0xa87c, 0xd0fc, 0x0118,\r
++      0xaf94, 0x87ff, 0x1120, 0x2f00, 0x6082, 0x7808, 0x6086, 0x6266,\r
++      0x636a, 0x646e, 0x6077, 0x0000, 0xb88c, 0x8000, 0x9084, 0x00ff,\r
++      0xb88e, 0x8007, 0x607a, 0x607f, 0x0000, 0xa838, 0x608a, 0xa834,\r
++      0x608e, 0xa848, 0x60c6, 0xa844, 0x60ca, 0xb86c, 0x60ce, 0x60af,\r
++      0x95d5, 0x60d7, 0x0000, 0x080c, 0x9c24, 0x2009, 0x07d0, 0x60c4,\r
++      0x9084, 0xfff0, 0x9005, 0x0110, 0x2009, 0x1b58, 0x080c, 0x80bd,\r
++      0x003e, 0x004e, 0x005e, 0x00ce, 0x00de, 0x00ee, 0x009e, 0x00be,\r
++      0x0005, 0x7804, 0x9086, 0x0040, 0x0904, 0x9319, 0x9185, 0x0100,\r
++      0x6062, 0x6266, 0x636a, 0x646e, 0x6073, 0x0809, 0x6077, 0x0008,\r
++      0x60af, 0x95d5, 0x60d7, 0x0000, 0xb88c, 0x8000, 0x9084, 0x00ff,\r
++      0xb88e, 0x8007, 0x607a, 0x607f, 0x0000, 0x2f00, 0x6082, 0x7808,\r
++      0x6086, 0x7814, 0x2048, 0xa838, 0x608a, 0xa834, 0x608e, 0xa848,\r
++      0x60c6, 0xa844, 0x60ca, 0xb86c, 0x60ce, 0xbab0, 0x629e, 0x080c,\r
++      0x9c24, 0x2009, 0x07d0, 0x60c4, 0x9084, 0xfff0, 0x9005, 0x0110,\r
++      0x2009, 0x1b58, 0x080c, 0x80bd, 0x003e, 0x004e, 0x005e, 0x00ce,\r
++      0x00de, 0x00ee, 0x009e, 0x00be, 0x0005, 0x7814, 0x2048, 0xa87c,\r
++      0x9084, 0x0003, 0x9086, 0x0002, 0x0904, 0x9335, 0x9185, 0x0100,\r
++      0x6062, 0x6266, 0x636a, 0x646e, 0x6073, 0x0880, 0x6077, 0x0008,\r
++      0xb88c, 0x8000, 0x9084, 0x00ff, 0xb88e, 0x8007, 0x607a, 0x7838,\r
++      0x607e, 0x2f00, 0x6086, 0x7808, 0x6082, 0xa890, 0x608a, 0xa88c,\r
++      0x608e, 0xa8b0, 0x60c6, 0xa8ac, 0x60ca, 0xa8ac, 0x7930, 0x9108,\r
++      0x7932, 0xa8b0, 0x792c, 0x9109, 0x792e, 0xb86c, 0x60ce, 0x60af,\r
++      0x95d5, 0x60d7, 0x0000, 0xbab0, 0x629e, 0x080c, 0x9c01, 0x0804,\r
++      0x92c9, 0xb8bc, 0xd084, 0x0148, 0xb88c, 0x7814, 0x2048, 0xb88c,\r
++      0x7846, 0xa836, 0x2900, 0xa83a, 0xb04a, 0x9185, 0x0600, 0x6062,\r
++      0x6266, 0x636a, 0x646e, 0x6073, 0x0829, 0x6077, 0x0000, 0x60af,\r
++      0x9575, 0x60d7, 0x0000, 0x0804, 0x92ac, 0x9185, 0x0700, 0x6062,\r
++      0x6266, 0x636a, 0x646e, 0x7824, 0xd0cc, 0x7826, 0x0118, 0x6073,\r
++      0x0889, 0x0010, 0x6073, 0x0898, 0x6077, 0x0000, 0xb88c, 0x8000,\r
++      0x9084, 0x00ff, 0xb88e, 0x8007, 0x607a, 0x607f, 0x0000, 0x2f00,\r
++      0x6086, 0x7808, 0x6082, 0xa838, 0x608a, 0xa834, 0x608e, 0xa848,\r
++      0x60c6, 0xa844, 0x60ca, 0xb86c, 0x60ce, 0x60af, 0x95d5, 0x60d7,\r
++      0x0000, 0xbab0, 0x629e, 0x7824, 0xd0cc, 0x0120, 0x080c, 0x9c24,\r
++      0x0804, 0x92c9, 0x080c, 0x9c01, 0x0804, 0x92c9, 0x7a10, 0x00b6,\r
++      0x2258, 0xba8c, 0x8210, 0x9294, 0x00ff, 0xba8e, 0x00be, 0x8217,\r
++      0x0005, 0x00d6, 0x2069, 0x19b8, 0x6843, 0x0001, 0x00de, 0x0005,\r
++      0x60a3, 0x0056, 0x60a7, 0x9575, 0x00f1, 0x080c, 0x80af, 0x0005,\r
++      0x0016, 0x2001, 0x180c, 0x200c, 0x9184, 0x0600, 0x9086, 0x0600,\r
++      0x0128, 0x0089, 0x080c, 0x80af, 0x001e, 0x0005, 0xc1e5, 0x2001,\r
++      0x180c, 0x2102, 0x2001, 0x19b9, 0x2003, 0x0000, 0x2001, 0x19c1,\r
++      0x2003, 0x0000, 0x0c88, 0x0006, 0x6014, 0x9084, 0x1804, 0x9085,\r
++      0x0009, 0x6016, 0x000e, 0x0005, 0x0016, 0x00c6, 0x0006, 0x2061,\r
++      0x0100, 0x61a4, 0x60a7, 0x95f5, 0x6014, 0x9084, 0x1804, 0x9085,\r
++      0x0008, 0x6016, 0x000e, 0xa001, 0xa001, 0xa001, 0x61a6, 0x00ce,\r
++      0x001e, 0x0005, 0x00c6, 0x00d6, 0x0016, 0x0026, 0x2061, 0x0100,\r
++      0x2069, 0x0140, 0x080c, 0x6fb2, 0x11e8, 0x2001, 0x19d4, 0x2004,\r
++      0x9005, 0x1904, 0x9412, 0x0066, 0x2031, 0x0001, 0x080c, 0x7062,\r
++      0x006e, 0x1160, 0x2061, 0x0100, 0x6020, 0xd0b4, 0x1120, 0x6024,\r
++      0xd084, 0x090c, 0x0db4, 0x080c, 0x80af, 0x0460, 0x00c6, 0x2061,\r
++      0x19b8, 0x00d0, 0x6904, 0x9194, 0x4000, 0x0548, 0x080c, 0x93ac,\r
++      0x080c, 0x2b24, 0x00c6, 0x2061, 0x19b8, 0x6128, 0x9192, 0x0008,\r
++      0x1258, 0x8108, 0x612a, 0x6124, 0x00ce, 0x81ff, 0x0198, 0x080c,\r
++      0x80af, 0x080c, 0x93a3, 0x0070, 0x6124, 0x91e5, 0x0000, 0x0140,\r
++      0x080c, 0xd8c9, 0x080c, 0x80b8, 0x2009, 0x0014, 0x080c, 0x9eac,\r
++      0x00ce, 0x0000, 0x002e, 0x001e, 0x00de, 0x00ce, 0x0005, 0x2001,\r
++      0x19d4, 0x2004, 0x9005, 0x1db0, 0x00c6, 0x2061, 0x19b8, 0x6128,\r
++      0x9192, 0x0003, 0x1e08, 0x8108, 0x612a, 0x00ce, 0x080c, 0x80af,\r
++      0x080c, 0x5b90, 0x2009, 0x1852, 0x2114, 0x8210, 0x220a, 0x0c10,\r
++      0x0096, 0x00c6, 0x00d6, 0x00e6, 0x0016, 0x0026, 0x080c, 0x80c5,\r
++      0x2071, 0x19b8, 0x713c, 0x81ff, 0x0904, 0x94a2, 0x2061, 0x0100,\r
++      0x2069, 0x0140, 0x080c, 0x6fb2, 0x11b0, 0x0036, 0x2019, 0x0002,\r
++      0x080c, 0x96d8, 0x003e, 0x713c, 0x2160, 0x080c, 0xd8c9, 0x2009,\r
++      0x004a, 0x080c, 0x9eac, 0x0066, 0x2031, 0x0001, 0x080c, 0x7062,\r
++      0x006e, 0x0804, 0x94a2, 0x080c, 0x94ae, 0x0904, 0x94a2, 0x6904,\r
++      0xd1f4, 0x0904, 0x94a9, 0x080c, 0x2b24, 0x00c6, 0x703c, 0x9065,\r
++      0x090c, 0x0db4, 0x6020, 0x00ce, 0x9086, 0x0006, 0x1528, 0x61c8,\r
++      0x60c4, 0x9105, 0x1508, 0x2009, 0x180c, 0x2104, 0xd0d4, 0x01e0,\r
++      0x6214, 0x9294, 0x1800, 0x1128, 0x6224, 0x9294, 0x0002, 0x1510,\r
++      0x0030, 0xc0d4, 0x200a, 0xd0cc, 0x0110, 0x080c, 0x2a77, 0x6014,\r
++      0x9084, 0xe7fd, 0x9085, 0x0010, 0x6016, 0x703c, 0x2060, 0x2009,\r
++      0x0049, 0x080c, 0x9eac, 0x0070, 0x0036, 0x2019, 0x0001, 0x080c,\r
++      0x96d8, 0x003e, 0x713c, 0x2160, 0x080c, 0xd8c9, 0x2009, 0x004a,\r
++      0x080c, 0x9eac, 0x002e, 0x001e, 0x00ee, 0x00de, 0x00ce, 0x009e,\r
++      0x0005, 0xd1ec, 0x1904, 0x9463, 0x0804, 0x9465, 0x00d6, 0x00c6,\r
++      0x0096, 0x703c, 0x9065, 0x090c, 0x0db4, 0x2001, 0x1836, 0x2004,\r
++      0xd09c, 0x1904, 0x953a, 0x2001, 0x0306, 0x200c, 0x9184, 0x0030,\r
++      0x0904, 0x953a, 0x9184, 0x0048, 0x9086, 0x0008, 0x1904, 0x953a,\r
++      0x2001, 0x020b, 0x2004, 0xd0fc, 0x0904, 0x953a, 0xd08c, 0x0904,\r
++      0x953a, 0x2009, 0x1a50, 0x2104, 0x8000, 0x0208, 0x200a, 0x2069,\r
++      0x0100, 0x6914, 0x918c, 0x0184, 0x918d, 0x0010, 0x6916, 0x69c8,\r
++      0x2011, 0x0020, 0x68c8, 0x9106, 0x1570, 0x8211, 0x1dd8, 0x2001,\r
++      0x0306, 0x2003, 0x4800, 0x2001, 0x009a, 0x2003, 0x0004, 0x2001,\r
++      0x1a36, 0x2003, 0x0000, 0x2001, 0x1a3f, 0x2003, 0x0000, 0x6a88,\r
++      0x698c, 0x2200, 0x9105, 0x1120, 0x2c10, 0x080c, 0x1a5c, 0x0040,\r
++      0x6014, 0x2048, 0xaa3a, 0xa936, 0x6ac4, 0x69c8, 0xa946, 0xaa4a,\r
++      0x0126, 0x00c6, 0x2091, 0x2400, 0x002e, 0x080c, 0x1ae8, 0x190c,\r
++      0x0db4, 0x012e, 0x0090, 0x2009, 0x1a51, 0x2104, 0x8000, 0x0208,\r
++      0x200a, 0x69c8, 0x2011, 0x0020, 0x8211, 0x1df0, 0x68c8, 0x9106,\r
++      0x1dc0, 0x69c4, 0x68c8, 0x9105, 0x0160, 0x6824, 0xd08c, 0x0110,\r
++      0x6827, 0x0002, 0x7048, 0xc085, 0x704a, 0x0079, 0x7048, 0xc084,\r
++      0x704a, 0x2009, 0x07d0, 0x080c, 0x80bd, 0x9006, 0x009e, 0x00ce,\r
++      0x00de, 0x0005, 0x9085, 0x0001, 0x0cc8, 0x0026, 0x00e6, 0x2071,\r
++      0x19b8, 0x7048, 0xd084, 0x01c0, 0x713c, 0x81ff, 0x01a8, 0x2071,\r
++      0x0100, 0x9188, 0x0008, 0x2114, 0x928e, 0x0006, 0x1138, 0x7014,\r
++      0x9084, 0x1984, 0x9085, 0x0012, 0x7016, 0x0030, 0x7014, 0x9084,\r
++      0x1984, 0x9085, 0x0016, 0x7016, 0x00ee, 0x002e, 0x0005, 0x00b6,\r
++      0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0056, 0x0046, 0x0006, 0x0126,\r
++      0x2091, 0x8000, 0x6010, 0x2058, 0xbca0, 0x2071, 0x19b8, 0x7018,\r
++      0x2058, 0x8bff, 0x0190, 0xb8a0, 0x9406, 0x0118, 0xb854, 0x2058,\r
++      0x0cc0, 0x6014, 0x0096, 0x2048, 0xac6c, 0xad70, 0xae78, 0x009e,\r
++      0x080c, 0x6370, 0x0110, 0x9085, 0x0001, 0x012e, 0x000e, 0x004e,\r
++      0x005e, 0x006e, 0x00ce, 0x00de, 0x00ee, 0x00be, 0x0005, 0x080c,\r
++      0x8e8e, 0x7003, 0x1200, 0x7838, 0x7012, 0x783c, 0x7016, 0x00c6,\r
++      0x7820, 0x9086, 0x0004, 0x1148, 0x7810, 0x9005, 0x0130, 0x00b6,\r
++      0x2058, 0xb810, 0xb914, 0x00be, 0x0020, 0x2061, 0x1800, 0x6078,\r
++      0x617c, 0x9084, 0x00ff, 0x700a, 0x710e, 0x00ce, 0x60c3, 0x002c,\r
++      0x0804, 0x9380, 0x080c, 0x8e8e, 0x7003, 0x0f00, 0x7808, 0xd09c,\r
++      0x0128, 0xb810, 0x9084, 0x00ff, 0x700a, 0xb814, 0x700e, 0x60c3,\r
++      0x0008, 0x0804, 0x9380, 0x0156, 0x080c, 0x8ed9, 0x7003, 0x0200,\r
++      0x2011, 0x1848, 0x63f0, 0x2312, 0x20a9, 0x0006, 0x2011, 0x1840,\r
++      0x2019, 0x1841, 0x9ef0, 0x0002, 0x2376, 0x8e70, 0x2276, 0x8e70,\r
++      0x9398, 0x0002, 0x9290, 0x0002, 0x1f04, 0x95d4, 0x60c3, 0x001c,\r
++      0x015e, 0x0804, 0x9380, 0x0016, 0x0026, 0x080c, 0x8eb5, 0x080c,\r
++      0x8ec7, 0x9e80, 0x0004, 0x20e9, 0x0000, 0x20a0, 0x7814, 0x0096,\r
++      0x2048, 0xa800, 0x2048, 0xa860, 0x20e0, 0xa85c, 0x9080, 0x0021,\r
++      0x2098, 0x009e, 0x7808, 0x9088, 0x0002, 0x21a8, 0x9192, 0x0010,\r
++      0x1250, 0x4003, 0x9080, 0x0004, 0x8003, 0x60c2, 0x080c, 0x9380,\r
++      0x002e, 0x001e, 0x0005, 0x20a9, 0x0010, 0x4003, 0x080c, 0x9c2a,\r
++      0x20a1, 0x0240, 0x22a8, 0x4003, 0x0c68, 0x080c, 0x8e8e, 0x7003,\r
++      0x6200, 0x7808, 0x700e, 0x60c3, 0x0008, 0x0804, 0x9380, 0x0016,\r
++      0x0026, 0x080c, 0x8e8e, 0x20e9, 0x0000, 0x20a1, 0x024c, 0x7814,\r
++      0x0096, 0x2048, 0xa800, 0x2048, 0xa860, 0x20e0, 0xa85c, 0x9080,\r
++      0x0023, 0x2098, 0x009e, 0x7808, 0x9088, 0x0002, 0x21a8, 0x4003,\r
++      0x8003, 0x60c2, 0x080c, 0x9380, 0x002e, 0x001e, 0x0005, 0x00e6,\r
++      0x00c6, 0x0006, 0x0126, 0x2091, 0x8000, 0x2071, 0x19b8, 0x700c,\r
++      0x2060, 0x8cff, 0x0178, 0x080c, 0xbd1d, 0x1110, 0x080c, 0xa7c0,\r
++      0x600c, 0x0006, 0x080c, 0xbf84, 0x080c, 0x9e32, 0x080c, 0x97b0,\r
++      0x00ce, 0x0c78, 0x2c00, 0x700e, 0x700a, 0x012e, 0x000e, 0x00ce,\r
++      0x00ee, 0x0005, 0x0126, 0x0156, 0x00f6, 0x00e6, 0x00d6, 0x00c6,\r
++      0x0066, 0x0026, 0x0016, 0x0006, 0x2091, 0x8000, 0x2001, 0x180c,\r
++      0x200c, 0x918c, 0xe7ff, 0x2102, 0x2069, 0x0100, 0x2079, 0x0140,\r
++      0x2071, 0x19b8, 0x7024, 0x2060, 0x8cff, 0x01f8, 0x080c, 0x93ac,\r
++      0x6ac0, 0x68c3, 0x0000, 0x080c, 0x80b8, 0x00c6, 0x2061, 0x0100,\r
++      0x080c, 0x9c43, 0x00ce, 0x20a9, 0x01f4, 0x0461, 0x2009, 0x0013,\r
++      0x080c, 0x9eac, 0x000e, 0x001e, 0x002e, 0x006e, 0x00ce, 0x00de,\r
++      0x00ee, 0x00fe, 0x015e, 0x012e, 0x0005, 0x2001, 0x1800, 0x2004,\r
++      0x9096, 0x0001, 0x0d78, 0x9096, 0x0004, 0x0d60, 0x080c, 0x80b8,\r
++      0x6814, 0x9084, 0x0001, 0x0110, 0x68a7, 0x95f5, 0x6817, 0x0008,\r
++      0x68c3, 0x0000, 0x2011, 0x5b3a, 0x080c, 0x8038, 0x20a9, 0x01f4,\r
++      0x0009, 0x08c0, 0x6824, 0xd094, 0x0140, 0x6827, 0x0004, 0x7804,\r
++      0x9084, 0x4000, 0x190c, 0x2b24, 0x0090, 0xd084, 0x0118, 0x6827,\r
++      0x0001, 0x0010, 0x1f04, 0x96ba, 0x7804, 0x9084, 0x1000, 0x0138,\r
++      0x2001, 0x0100, 0x080c, 0x2b14, 0x9006, 0x080c, 0x2b14, 0x0005,\r
++      0x0126, 0x0156, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0026,\r
++      0x0016, 0x0006, 0x2091, 0x8000, 0x2001, 0x180c, 0x200c, 0x918c,\r
++      0xdbff, 0x2102, 0x2069, 0x0100, 0x2079, 0x0140, 0x2071, 0x19b8,\r
++      0x703c, 0x2060, 0x8cff, 0x0904, 0x9766, 0x9386, 0x0002, 0x1128,\r
++      0x6814, 0x9084, 0x0002, 0x0904, 0x9766, 0x68af, 0x95f5, 0x6817,\r
++      0x0010, 0x2009, 0x00fa, 0x8109, 0x1df0, 0x69c6, 0x68cb, 0x0008,\r
++      0x080c, 0x80c5, 0x080c, 0x1e90, 0x0046, 0x2009, 0x00a5, 0x080c,\r
++      0x0e2f, 0x2021, 0x0169, 0x2404, 0x9084, 0x000f, 0x9086, 0x0004,\r
++      0x11f8, 0x68af, 0x95f5, 0x68c6, 0x68cb, 0x0008, 0x00e6, 0x00f6,\r
++      0x2079, 0x0090, 0x2071, 0x1a36, 0x6814, 0x9084, 0x1984, 0x9085,\r
++      0x0012, 0x6816, 0x782b, 0x0008, 0x7003, 0x0000, 0x00fe, 0x00ee,\r
++      0x9386, 0x0002, 0x1128, 0x7884, 0x9005, 0x1110, 0x7887, 0x0001,\r
++      0x2001, 0x1952, 0x200c, 0x080c, 0x0e2f, 0x004e, 0x20a9, 0x03e8,\r
++      0x6824, 0xd094, 0x0140, 0x6827, 0x0004, 0x7804, 0x9084, 0x4000,\r
++      0x190c, 0x2b24, 0x0090, 0xd08c, 0x0118, 0x6827, 0x0002, 0x0010,\r
++      0x1f04, 0x9740, 0x7804, 0x9084, 0x1000, 0x0138, 0x2001, 0x0100,\r
++      0x080c, 0x2b14, 0x9006, 0x080c, 0x2b14, 0x6827, 0x4000, 0x6824,\r
++      0x83ff, 0x1120, 0x2009, 0x0049, 0x080c, 0x9eac, 0x000e, 0x001e,\r
++      0x002e, 0x006e, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x015e, 0x012e,\r
++      0x0005, 0x00d6, 0x0126, 0x2091, 0x8000, 0x2069, 0x19b8, 0x6a06,\r
++      0x012e, 0x00de, 0x0005, 0x00d6, 0x0126, 0x2091, 0x8000, 0x2069,\r
++      0x19b8, 0x6a32, 0x012e, 0x00de, 0x0005, 0x080c, 0x9047, 0x7854,\r
++      0x7032, 0x7042, 0x7047, 0x1000, 0x00f8, 0x080c, 0x9047, 0x7854,\r
++      0x7032, 0x7042, 0x7047, 0x4000, 0x00b8, 0x080c, 0x9047, 0x7854,\r
++      0x7032, 0x7042, 0x7047, 0x2000, 0x0078, 0x080c, 0x9047, 0x7854,\r
++      0x7032, 0x7042, 0x7047, 0x0400, 0x0038, 0x080c, 0x9047, 0x7854,\r
++      0x7032, 0x7042, 0x7047, 0x0200, 0x60c3, 0x0020, 0x0804, 0x9380,\r
++      0x00e6, 0x2071, 0x19b8, 0x7020, 0x9005, 0x0110, 0x8001, 0x7022,\r
++      0x00ee, 0x0005, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0076, 0x0066,\r
++      0x0006, 0x0126, 0x2091, 0x8000, 0x2071, 0x19b8, 0x7614, 0x2660,\r
++      0x2678, 0x2039, 0x0001, 0x87ff, 0x0904, 0x9855, 0x8cff, 0x0904,\r
++      0x9855, 0x6020, 0x9086, 0x0006, 0x1904, 0x9850, 0x88ff, 0x0138,\r
++      0x2800, 0x9c06, 0x1904, 0x9850, 0x2039, 0x0000, 0x0050, 0x6010,\r
++      0x9b06, 0x1904, 0x9850, 0x85ff, 0x0120, 0x6054, 0x9106, 0x1904,\r
++      0x9850, 0x7024, 0x9c06, 0x15b0, 0x2069, 0x0100, 0x68c0, 0x9005,\r
++      0x1160, 0x6824, 0xd084, 0x0148, 0x6827, 0x0001, 0x080c, 0x80b8,\r
++      0x080c, 0x98da, 0x7027, 0x0000, 0x0428, 0x080c, 0x80b8, 0x6820,\r
++      0xd0b4, 0x0110, 0x68a7, 0x95f5, 0x6817, 0x0008, 0x68c3, 0x0000,\r
++      0x080c, 0x98da, 0x7027, 0x0000, 0x0036, 0x2069, 0x0140, 0x6b04,\r
++      0x9384, 0x1000, 0x0138, 0x2001, 0x0100, 0x080c, 0x2b14, 0x9006,\r
++      0x080c, 0x2b14, 0x2069, 0x0100, 0x6824, 0xd084, 0x0110, 0x6827,\r
++      0x0001, 0x003e, 0x7014, 0x9c36, 0x1110, 0x660c, 0x7616, 0x7010,\r
++      0x9c36, 0x1140, 0x2c00, 0x9f36, 0x0118, 0x2f00, 0x7012, 0x0010,\r
++      0x7013, 0x0000, 0x660c, 0x0066, 0x2c00, 0x9f06, 0x0110, 0x7e0e,\r
++      0x0008, 0x2678, 0x89ff, 0x1168, 0x600f, 0x0000, 0x6014, 0x0096,\r
++      0x2048, 0x080c, 0xbb15, 0x0110, 0x080c, 0xd4d5, 0x009e, 0x080c,\r
++      0x9e62, 0x080c, 0x97b0, 0x88ff, 0x1190, 0x00ce, 0x0804, 0x97cb,\r
++      0x2c78, 0x600c, 0x2060, 0x0804, 0x97cb, 0x9006, 0x012e, 0x000e,\r
++      0x006e, 0x007e, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x0005, 0x601b,\r
++      0x0000, 0x00ce, 0x98c5, 0x0001, 0x0c88, 0x00f6, 0x00e6, 0x00d6,\r
++      0x0096, 0x00c6, 0x0066, 0x0026, 0x0006, 0x0126, 0x2091, 0x8000,\r
++      0x2071, 0x19b8, 0x7638, 0x2660, 0x2678, 0x8cff, 0x0904, 0x98c9,\r
++      0x6020, 0x9086, 0x0006, 0x1904, 0x98c4, 0x87ff, 0x0128, 0x2700,\r
++      0x9c06, 0x1904, 0x98c4, 0x0040, 0x6010, 0x9b06, 0x15e8, 0x85ff,\r
++      0x0118, 0x6054, 0x9106, 0x15c0, 0x703c, 0x9c06, 0x1168, 0x0036,\r
++      0x2019, 0x0001, 0x080c, 0x96d8, 0x7033, 0x0000, 0x9006, 0x703e,\r
++      0x7042, 0x7046, 0x704a, 0x003e, 0x7038, 0x9c36, 0x1110, 0x660c,\r
++      0x763a, 0x7034, 0x9c36, 0x1140, 0x2c00, 0x9f36, 0x0118, 0x2f00,\r
++      0x7036, 0x0010, 0x7037, 0x0000, 0x660c, 0x0066, 0x2c00, 0x9f06,\r
++      0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f, 0x0000, 0x6014, 0x2048,\r
++      0x080c, 0xbb15, 0x0110, 0x080c, 0xd4d5, 0x080c, 0x9e62, 0x87ff,\r
++      0x1198, 0x00ce, 0x0804, 0x9875, 0x2c78, 0x600c, 0x2060, 0x0804,\r
++      0x9875, 0x9006, 0x012e, 0x000e, 0x002e, 0x006e, 0x00ce, 0x009e,\r
++      0x00de, 0x00ee, 0x00fe, 0x0005, 0x601b, 0x0000, 0x00ce, 0x97bd,\r
++      0x0001, 0x0c80, 0x00e6, 0x2071, 0x19b8, 0x2001, 0x1800, 0x2004,\r
++      0x9086, 0x0002, 0x1118, 0x7007, 0x0005, 0x0010, 0x7007, 0x0000,\r
++      0x00ee, 0x0005, 0x00f6, 0x00e6, 0x00c6, 0x0066, 0x0026, 0x0006,\r
++      0x0126, 0x2091, 0x8000, 0x2071, 0x19b8, 0x2c10, 0x7638, 0x2660,\r
++      0x2678, 0x8cff, 0x0518, 0x2200, 0x9c06, 0x11e0, 0x7038, 0x9c36,\r
++      0x1110, 0x660c, 0x763a, 0x7034, 0x9c36, 0x1140, 0x2c00, 0x9f36,\r
++      0x0118, 0x2f00, 0x7036, 0x0010, 0x7037, 0x0000, 0x660c, 0x2c00,\r
++      0x9f06, 0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f, 0x0000, 0x9085,\r
++      0x0001, 0x0020, 0x2c78, 0x600c, 0x2060, 0x08d8, 0x012e, 0x000e,\r
++      0x002e, 0x006e, 0x00ce, 0x00ee, 0x00fe, 0x0005, 0x0096, 0x00f6,\r
++      0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0026, 0x0006, 0x0126, 0x2091,\r
++      0x8000, 0x2071, 0x19b8, 0x760c, 0x2660, 0x2678, 0x8cff, 0x0904,\r
++      0x99b6, 0x6010, 0x00b6, 0x2058, 0xb8a0, 0x00be, 0x9206, 0x1904,\r
++      0x99b1, 0x7024, 0x9c06, 0x1520, 0x2069, 0x0100, 0x68c0, 0x9005,\r
++      0x0904, 0x998d, 0x080c, 0x93ac, 0x68c3, 0x0000, 0x080c, 0x98da,\r
++      0x7027, 0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0x9384, 0x1000,\r
++      0x0138, 0x2001, 0x0100, 0x080c, 0x2b14, 0x9006, 0x080c, 0x2b14,\r
++      0x2069, 0x0100, 0x6824, 0xd084, 0x0110, 0x6827, 0x0001, 0x003e,\r
++      0x700c, 0x9c36, 0x1110, 0x660c, 0x760e, 0x7008, 0x9c36, 0x1140,\r
++      0x2c00, 0x9f36, 0x0118, 0x2f00, 0x700a, 0x0010, 0x700b, 0x0000,\r
++      0x660c, 0x0066, 0x2c00, 0x9f06, 0x0110, 0x7e0e, 0x0008, 0x2678,\r
++      0x600f, 0x0000, 0x080c, 0xbd0c, 0x1158, 0x080c, 0x3003, 0x080c,\r
++      0xbd1d, 0x11f0, 0x080c, 0xa7c0, 0x00d8, 0x080c, 0x98da, 0x08c0,\r
++      0x080c, 0xbd1d, 0x1118, 0x080c, 0xa7c0, 0x0090, 0x6014, 0x2048,\r
++      0x080c, 0xbb15, 0x0168, 0x6020, 0x9086, 0x0003, 0x1508, 0xa867,\r
++      0x0103, 0xab7a, 0xa877, 0x0000, 0x080c, 0x687f, 0x080c, 0xbd00,\r
++      0x080c, 0xbf84, 0x080c, 0x9e62, 0x080c, 0x97b0, 0x00ce, 0x0804,\r
++      0x9936, 0x2c78, 0x600c, 0x2060, 0x0804, 0x9936, 0x012e, 0x000e,\r
++      0x002e, 0x006e, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x009e, 0x0005,\r
++      0x6020, 0x9086, 0x0006, 0x1d20, 0x080c, 0xd4d5, 0x0c08, 0x00d6,\r
++      0x080c, 0x8ed9, 0x7003, 0x0200, 0x7007, 0x0014, 0x60c3, 0x0014,\r
++      0x20e1, 0x0001, 0x2099, 0x195a, 0x20e9, 0x0000, 0x20a1, 0x0250,\r
++      0x20a9, 0x0004, 0x4003, 0x7023, 0x0004, 0x7027, 0x7878, 0x080c,\r
++      0x9380, 0x00de, 0x0005, 0x080c, 0x8ed9, 0x700b, 0x0800, 0x7814,\r
++      0x9084, 0xff00, 0x700e, 0x7814, 0x9084, 0x00ff, 0x7022, 0x782c,\r
++      0x7026, 0x7858, 0x9084, 0x00ff, 0x9085, 0x0200, 0x7002, 0x7858,\r
++      0x9084, 0xff00, 0x8007, 0x7006, 0x60c2, 0x0804, 0x9380, 0x00b6,\r
++      0x00d6, 0x0016, 0x00d6, 0x2f68, 0x2009, 0x0035, 0x080c, 0xc18a,\r
++      0x00de, 0x1904, 0x9a64, 0x080c, 0x8e8e, 0x7003, 0x1300, 0x782c,\r
++      0x080c, 0x9b66, 0x2068, 0x6820, 0x9086, 0x0003, 0x0560, 0x7810,\r
++      0x2058, 0xbaa0, 0x080c, 0x9db1, 0x11d8, 0x9286, 0x007e, 0x1128,\r
++      0x700b, 0x00ff, 0x700f, 0xfffe, 0x0498, 0x9286, 0x007f, 0x1128,\r
++      0x700b, 0x00ff, 0x700f, 0xfffd, 0x0458, 0x9284, 0xff80, 0x0180,\r
++      0x9286, 0x0080, 0x1128, 0x700b, 0x00ff, 0x700f, 0xfffc, 0x0400,\r
++      0x92d8, 0x1000, 0x2b5c, 0xb810, 0x700a, 0xb814, 0x700e, 0x00c0,\r
++      0x6098, 0x700e, 0x00a8, 0x080c, 0x9db1, 0x1130, 0x7810, 0x2058,\r
++      0xb8a0, 0x9082, 0x007e, 0x0250, 0x00d6, 0x2069, 0x181e, 0x2d04,\r
++      0x700a, 0x8d68, 0x2d04, 0x700e, 0x00de, 0x0010, 0x6034, 0x700e,\r
++      0x7838, 0x7012, 0x783c, 0x7016, 0x60c3, 0x000c, 0x001e, 0x00de,\r
++      0x080c, 0x9380, 0x00be, 0x0005, 0x781b, 0x0001, 0x7803, 0x0006,\r
++      0x001e, 0x00de, 0x00be, 0x0005, 0x792c, 0x9180, 0x0008, 0x200c,\r
++      0x9186, 0x0006, 0x01c0, 0x9186, 0x0003, 0x0904, 0x9ade, 0x9186,\r
++      0x0005, 0x0904, 0x9ac7, 0x9186, 0x0004, 0x05d8, 0x9186, 0x0008,\r
++      0x0904, 0x9acf, 0x7807, 0x0037, 0x782f, 0x0003, 0x7817, 0x1700,\r
++      0x080c, 0x9b43, 0x0005, 0x080c, 0x9b04, 0x00d6, 0x0026, 0x792c,\r
++      0x2168, 0x2009, 0x4000, 0x6800, 0x0002, 0x9aa8, 0x9ab3, 0x9aaa,\r
++      0x9ab3, 0x9aaf, 0x9aa8, 0x9aa8, 0x9ab3, 0x9ab3, 0x9ab3, 0x9ab3,\r
++      0x9aa8, 0x9aa8, 0x9aa8, 0x9aa8, 0x9aa8, 0x9ab3, 0x9aa8, 0x9ab3,\r
++      0x080c, 0x0db4, 0x6824, 0xd0e4, 0x0110, 0xd0cc, 0x0110, 0x900e,\r
++      0x0010, 0x2009, 0x2000, 0x682c, 0x7022, 0x6830, 0x7026, 0x0804,\r
++      0x9afd, 0x080c, 0x9b04, 0x00d6, 0x0026, 0x792c, 0x2168, 0x2009,\r
++      0x4000, 0x6a00, 0x9286, 0x0002, 0x1108, 0x900e, 0x04b0, 0x04e1,\r
++      0x00d6, 0x0026, 0x792c, 0x2168, 0x2009, 0x4000, 0x0470, 0x04a1,\r
++      0x00d6, 0x0026, 0x792c, 0x2168, 0x2009, 0x4000, 0x9286, 0x0005,\r
++      0x0118, 0x9286, 0x0002, 0x1108, 0x900e, 0x00f8, 0x0429, 0x00d6,\r
++      0x0026, 0x792c, 0x2168, 0x6814, 0x0096, 0x2048, 0xa9ac, 0xa834,\r
++      0x9112, 0xa9b0, 0xa838, 0x009e, 0x9103, 0x7022, 0x7226, 0x792c,\r
++      0x9180, 0x0000, 0x2004, 0x908e, 0x0002, 0x0130, 0x908e, 0x0004,\r
++      0x0118, 0x2009, 0x4000, 0x0008, 0x900e, 0x712a, 0x60c3, 0x0018,\r
++      0x002e, 0x00de, 0x0804, 0x9380, 0x00b6, 0x0036, 0x0046, 0x0056,\r
++      0x0066, 0x080c, 0x8ed9, 0x9006, 0x7003, 0x0200, 0x7938, 0x710a,\r
++      0x793c, 0x710e, 0x7810, 0x2058, 0xb8a0, 0x080c, 0x9db1, 0x1118,\r
++      0x9092, 0x007e, 0x0268, 0x00d6, 0x2069, 0x181e, 0x2d2c, 0x8d68,\r
++      0x2d34, 0x90d8, 0x1000, 0x2b5c, 0xbb10, 0xbc14, 0x00de, 0x0028,\r
++      0x901e, 0x6498, 0x2029, 0x0000, 0x6634, 0x782c, 0x9080, 0x0008,\r
++      0x2004, 0x9086, 0x0003, 0x1128, 0x7512, 0x7616, 0x731a, 0x741e,\r
++      0x0020, 0x7312, 0x7416, 0x751a, 0x761e, 0x006e, 0x005e, 0x004e,\r
++      0x003e, 0x00be, 0x0005, 0x080c, 0x8ed9, 0x7003, 0x0100, 0x782c,\r
++      0x700a, 0x7814, 0x700e, 0x700e, 0x60c3, 0x0008, 0x0804, 0x9380,\r
++      0x080c, 0x8e85, 0x7003, 0x1400, 0x7838, 0x700a, 0x0079, 0x783c,\r
++      0x700e, 0x782c, 0x7012, 0x7830, 0x7016, 0x7834, 0x9084, 0x00ff,\r
++      0x8007, 0x701a, 0x60c3, 0x0010, 0x0804, 0x9380, 0x00e6, 0x2071,\r
++      0x0240, 0x0006, 0x00f6, 0x2078, 0x7810, 0x00b6, 0x2058, 0xb8bc,\r
++      0xd084, 0x0120, 0x7848, 0x702a, 0x7844, 0x702e, 0x00be, 0x00fe,\r
++      0x000e, 0x00ee, 0x0005, 0x080c, 0x8ed0, 0x7003, 0x0100, 0x782c,\r
++      0x700a, 0x7814, 0x700e, 0x60c3, 0x0008, 0x0804, 0x9380, 0x0021,\r
++      0x60c3, 0x0000, 0x0804, 0x9380, 0x00d6, 0x080c, 0x9c3f, 0xb810,\r
++      0x9085, 0x0300, 0x7002, 0xb814, 0x7006, 0x2069, 0x1800, 0x6878,\r
++      0x700a, 0x687c, 0x700e, 0x7013, 0x0819, 0x080c, 0x936e, 0x721a,\r
++      0x2f10, 0x7222, 0x7a08, 0x7226, 0x2071, 0x024c, 0x00de, 0x0005,\r
++      0x00a9, 0x7914, 0x712a, 0x60c3, 0x0000, 0x60a7, 0x9575, 0x0026,\r
++      0x080c, 0x29ca, 0x0228, 0x2011, 0x0101, 0x2204, 0xc0c5, 0x2012,\r
++      0x002e, 0x080c, 0x93a3, 0x080c, 0x80af, 0x0005, 0x0036, 0x0096,\r
++      0x00d6, 0x00e6, 0x7858, 0x2048, 0xaa7c, 0x9296, 0x00c0, 0x9294,\r
++      0xfffd, 0xaa7e, 0xaa80, 0x9294, 0x0300, 0xaa82, 0xa96c, 0x9194,\r
++      0x00ff, 0xab74, 0x9384, 0x00ff, 0x908d, 0xc200, 0xa96e, 0x9384,\r
++      0xff00, 0x9215, 0xaa76, 0xa870, 0xaa78, 0xa87a, 0xaa72, 0x00d6,\r
++      0x2069, 0x0200, 0x080c, 0x9c3f, 0x00de, 0x20e9, 0x0000, 0x20a1,\r
++      0x0240, 0x20a9, 0x000a, 0xa860, 0x20e0, 0xa85c, 0x9080, 0x001b,\r
++      0x2098, 0x4003, 0x60a3, 0x0035, 0xaa68, 0x9294, 0x7000, 0x9286,\r
++      0x3000, 0x0110, 0x60a3, 0x0037, 0x00ee, 0x00de, 0x009e, 0x003e,\r
++      0x0005, 0x900e, 0x7814, 0x0096, 0x2048, 0xa87c, 0xd0fc, 0x01c0,\r
++      0x9084, 0x0003, 0x11a8, 0x2001, 0x180c, 0x2004, 0xd0bc, 0x0180,\r
++      0x7824, 0xd0cc, 0x1168, 0xd0c4, 0x1158, 0xa8a8, 0x9005, 0x1140,\r
++      0x2001, 0x180c, 0x200c, 0xc1d5, 0x2102, 0x2009, 0x1983, 0x210c,\r
++      0x009e, 0x918d, 0x0092, 0x0010, 0x2009, 0x0096, 0x60ab, 0x0036,\r
++      0x6116, 0x0005, 0x2009, 0x0009, 0x00a0, 0x2009, 0x000a, 0x0088,\r
++      0x2009, 0x000b, 0x0070, 0x2009, 0x000c, 0x0058, 0x2009, 0x000d,\r
++      0x0040, 0x2009, 0x000e, 0x0028, 0x2009, 0x000f, 0x0010, 0x2009,\r
++      0x0008, 0x6912, 0x0005, 0x00d6, 0x9290, 0x0018, 0x8214, 0x20e9,\r
++      0x0000, 0x2069, 0x0200, 0x6813, 0x0000, 0x22a8, 0x9284, 0x00e0,\r
++      0x0128, 0x20a9, 0x0020, 0x9292, 0x0020, 0x0008, 0x9016, 0x20a1,\r
++      0x0240, 0x9006, 0x4004, 0x82ff, 0x0120, 0x6810, 0x8000, 0x6812,\r
++      0x0c60, 0x00de, 0x0005, 0x00d6, 0x0096, 0x6014, 0x2048, 0xa878,\r
++      0x6056, 0x9006, 0xa836, 0xa83a, 0xa99c, 0xa946, 0xa84a, 0x6023,\r
++      0x0003, 0x6007, 0x0040, 0x6003, 0x0003, 0x600b, 0xffff, 0xa817,\r
++      0x0001, 0xa842, 0xa83e, 0x2900, 0xa85a, 0xa813, 0x1f24, 0x080c,\r
++      0x8456, 0x0126, 0x2091, 0x8000, 0x080c, 0x8a4e, 0x012e, 0x009e,\r
++      0x00de, 0x0005, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x00a6, 0x0096,\r
++      0x0066, 0x0126, 0x2091, 0x8000, 0x2071, 0x19b8, 0x760c, 0x2660,\r
++      0x2678, 0x8cff, 0x0904, 0x9d11, 0x7024, 0x9c06, 0x1520, 0x2069,\r
++      0x0100, 0x68c0, 0x9005, 0x0904, 0x9ce8, 0x080c, 0x93ac, 0x68c3,\r
++      0x0000, 0x080c, 0x98da, 0x7027, 0x0000, 0x0036, 0x2069, 0x0140,\r
++      0x6b04, 0x9384, 0x1000, 0x0138, 0x2001, 0x0100, 0x080c, 0x2b14,\r
++      0x9006, 0x080c, 0x2b14, 0x2069, 0x0100, 0x6824, 0xd084, 0x0110,\r
++      0x6827, 0x0001, 0x003e, 0x700c, 0x9c36, 0x1110, 0x660c, 0x760e,\r
++      0x7008, 0x9c36, 0x1140, 0x2c00, 0x9f36, 0x0118, 0x2f00, 0x700a,\r
++      0x0010, 0x700b, 0x0000, 0x660c, 0x0066, 0x2c00, 0x9f06, 0x0110,\r
++      0x7e0e, 0x0008, 0x2678, 0x600f, 0x0000, 0x080c, 0xbd0c, 0x1158,\r
++      0x080c, 0x3003, 0x080c, 0xbd1d, 0x11f0, 0x080c, 0xa7c0, 0x00d8,\r
++      0x080c, 0x98da, 0x08c0, 0x080c, 0xbd1d, 0x1118, 0x080c, 0xa7c0,\r
++      0x0090, 0x6014, 0x2048, 0x080c, 0xbb15, 0x0168, 0x6020, 0x9086,\r
++      0x0003, 0x1520, 0xa867, 0x0103, 0xab7a, 0xa877, 0x0000, 0x080c,\r
++      0x688c, 0x080c, 0xbd00, 0x080c, 0xbf84, 0x080c, 0x9e62, 0x080c,\r
++      0x97b0, 0x00ce, 0x0804, 0x9c99, 0x2c78, 0x600c, 0x2060, 0x0804,\r
++      0x9c99, 0x700f, 0x0000, 0x700b, 0x0000, 0x012e, 0x006e, 0x009e,\r
++      0x00ae, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x0005, 0x6020, 0x9086,\r
++      0x0006, 0x1d08, 0x080c, 0xd4d5, 0x08f0, 0x00d6, 0x0156, 0x080c,\r
++      0x8ed9, 0x7a14, 0x82ff, 0x0138, 0x7003, 0x0100, 0x700b, 0x0003,\r
++      0x60c3, 0x0008, 0x0490, 0x7003, 0x0200, 0x7007, 0x0000, 0x2069,\r
++      0x1800, 0x901e, 0x6800, 0x9086, 0x0004, 0x1110, 0xc38d, 0x0060,\r
++      0x080c, 0x6fb2, 0x1110, 0xc3ad, 0x0008, 0xc3a5, 0x6ad8, 0xd29c,\r
++      0x1110, 0xd2ac, 0x0108, 0xc39d, 0x730e, 0x2011, 0x1848, 0x63f0,\r
++      0x2312, 0x20a9, 0x0006, 0x2011, 0x1840, 0x2019, 0x1841, 0x2071,\r
++      0x0250, 0x2376, 0x8e70, 0x2276, 0x8e70, 0x9398, 0x0002, 0x9290,\r
++      0x0002, 0x1f04, 0x9d59, 0x60c3, 0x0020, 0x080c, 0x9380, 0x015e,\r
++      0x00de, 0x0005, 0x0156, 0x080c, 0x8ed9, 0x7a14, 0x82ff, 0x0168,\r
++      0x9286, 0xffff, 0x0118, 0x9282, 0x000e, 0x1238, 0x7003, 0x0100,\r
++      0x700b, 0x0003, 0x60c3, 0x0008, 0x0488, 0x7003, 0x0200, 0x7007,\r
++      0x001c, 0x700f, 0x0001, 0x2011, 0x198e, 0x2204, 0x8007, 0x701a,\r
++      0x8210, 0x2204, 0x8007, 0x701e, 0x0421, 0x1120, 0xb8a0, 0x9082,\r
++      0x007f, 0x0248, 0x2001, 0x181e, 0x2004, 0x7022, 0x2001, 0x181f,\r
++      0x2004, 0x7026, 0x0030, 0x2001, 0x1817, 0x2004, 0x9084, 0x00ff,\r
++      0x7026, 0x20a9, 0x0004, 0x20e1, 0x0001, 0x2099, 0x1805, 0x20e9,\r
++      0x0000, 0x20a1, 0x0256, 0x4003, 0x60c3, 0x001c, 0x015e, 0x0804,\r
++      0x9380, 0x0006, 0x2001, 0x1836, 0x2004, 0xd0ac, 0x000e, 0x0005,\r
++      0x2011, 0x0003, 0x080c, 0x9771, 0x2011, 0x0002, 0x080c, 0x977b,\r
++      0x080c, 0x9662, 0x0036, 0x901e, 0x080c, 0x96d8, 0x003e, 0x0005,\r
++      0x2071, 0x1883, 0x7000, 0x9005, 0x0140, 0x2001, 0x0976, 0x2071,\r
++      0x1800, 0x7072, 0x7076, 0x7067, 0xffe0, 0x2071, 0x1800, 0x7070,\r
++      0x7052, 0x7057, 0x1cd0, 0x0005, 0x00e6, 0x0126, 0x2071, 0x1800,\r
++      0x2091, 0x8000, 0x7550, 0x9582, 0x0010, 0x0608, 0x7054, 0x2060,\r
++      0x6000, 0x9086, 0x0000, 0x0148, 0x9ce0, 0x0018, 0x7064, 0x9c02,\r
++      0x1208, 0x0cb0, 0x2061, 0x1cd0, 0x0c98, 0x6003, 0x0008, 0x8529,\r
++      0x7552, 0x9ca8, 0x0018, 0x7064, 0x9502, 0x1230, 0x7556, 0x9085,\r
++      0x0001, 0x012e, 0x00ee, 0x0005, 0x7057, 0x1cd0, 0x0cc0, 0x9006,\r
++      0x0cc0, 0x00e6, 0x2071, 0x1800, 0x7550, 0x9582, 0x0010, 0x0600,\r
++      0x7054, 0x2060, 0x6000, 0x9086, 0x0000, 0x0148, 0x9ce0, 0x0018,\r
++      0x7064, 0x9c02, 0x1208, 0x0cb0, 0x2061, 0x1cd0, 0x0c98, 0x6003,\r
++      0x0008, 0x8529, 0x7552, 0x9ca8, 0x0018, 0x7064, 0x9502, 0x1228,\r
++      0x7556, 0x9085, 0x0001, 0x00ee, 0x0005, 0x7057, 0x1cd0, 0x0cc8,\r
++      0x9006, 0x0cc8, 0x9c82, 0x1cd0, 0x0a0c, 0x0db4, 0x2001, 0x1819,\r
++      0x2004, 0x9c02, 0x1a0c, 0x0db4, 0x9006, 0x6006, 0x600a, 0x600e,\r
++      0x6016, 0x601a, 0x6012, 0x6023, 0x0000, 0x6003, 0x0000, 0x601e,\r
++      0x6056, 0x605a, 0x6026, 0x602a, 0x602e, 0x6032, 0x6036, 0x603a,\r
++      0x603e, 0x6042, 0x2061, 0x1800, 0x6050, 0x8000, 0x6052, 0x9086,\r
++      0x0001, 0x0108, 0x0005, 0x0126, 0x2091, 0x8000, 0x080c, 0x8973,\r
++      0x012e, 0x0cc0, 0x0006, 0x6000, 0x9086, 0x0000, 0x01b0, 0x601c,\r
++      0xd084, 0x190c, 0x190d, 0x6017, 0x0000, 0x6023, 0x0007, 0x2001,\r
++      0x1957, 0x2004, 0x0006, 0x9082, 0x0051, 0x000e, 0x0208, 0x8004,\r
++      0x601a, 0x080c, 0xd787, 0x6043, 0x0000, 0x000e, 0x0005, 0x00e6,\r
++      0x0126, 0x2071, 0x1800, 0x2091, 0x8000, 0x7550, 0x9582, 0x0001,\r
++      0x0608, 0x7054, 0x2060, 0x6000, 0x9086, 0x0000, 0x0148, 0x9ce0,\r
++      0x0018, 0x7064, 0x9c02, 0x1208, 0x0cb0, 0x2061, 0x1cd0, 0x0c98,\r
++      0x6003, 0x0008, 0x8529, 0x7552, 0x9ca8, 0x0018, 0x7064, 0x9502,\r
++      0x1230, 0x7556, 0x9085, 0x0001, 0x012e, 0x00ee, 0x0005, 0x7057,\r
++      0x1cd0, 0x0cc0, 0x9006, 0x0cc0, 0x6020, 0x9084, 0x000f, 0x0002,\r
++      0x9ebf, 0x9ec8, 0x9ee3, 0x9efe, 0xc238, 0xc255, 0xc270, 0x9ebf,\r
++      0x9ec8, 0x9ebf, 0x9f1a, 0x9ebf, 0x9ebf, 0x9ebf, 0x9ebf, 0x9186,\r
++      0x0013, 0x1128, 0x080c, 0x886e, 0x080c, 0x8973, 0x0005, 0x0005,\r
++      0x0066, 0x6000, 0x90b2, 0x0016, 0x1a0c, 0x0db4, 0x0013, 0x006e,\r
++      0x0005, 0x9ee1, 0xa639, 0xa807, 0x9ee1, 0xa895, 0xa1fd, 0x9ee1,\r
++      0x9ee1, 0xa5bb, 0xae37, 0x9ee1, 0x9ee1, 0x9ee1, 0x9ee1, 0x9ee1,\r
++      0x9ee1, 0x080c, 0x0db4, 0x0066, 0x6000, 0x90b2, 0x0016, 0x1a0c,\r
++      0x0db4, 0x0013, 0x006e, 0x0005, 0x9efc, 0xb50b, 0x9efc, 0x9efc,\r
++      0x9efc, 0x9efc, 0x9efc, 0x9efc, 0xb4b0, 0xb68d, 0x9efc, 0xb54c,\r
++      0xb5cb, 0xb54c, 0xb5cb, 0x9efc, 0x080c, 0x0db4, 0x6000, 0x9082,\r
++      0x0016, 0x1a0c, 0x0db4, 0x6000, 0x0002, 0x9f18, 0xae7e, 0xaf63,\r
++      0xb093, 0xb23e, 0x9f18, 0x9f18, 0x9f18, 0xae52, 0xb43c, 0xb43f,\r
++      0x9f18, 0x9f18, 0x9f18, 0x9f18, 0xb46e, 0x9f18, 0x9f18, 0x9f18,\r
++      0x080c, 0x0db4, 0x0066, 0x6000, 0x90b2, 0x0016, 0x1a0c, 0x0db4,\r
++      0x0013, 0x006e, 0x0005, 0x9f33, 0x9f33, 0x9f76, 0xa015, 0xa0aa,\r
++      0x9f33, 0x9f33, 0x9f33, 0x9f35, 0x9f33, 0x9f33, 0x9f33, 0x9f33,\r
++      0x9f33, 0x9f33, 0x9f33, 0x080c, 0x0db4, 0x9186, 0x004c, 0x0588,\r
++      0x9186, 0x0003, 0x190c, 0x0db4, 0x0096, 0x601c, 0xc0ed, 0x601e,\r
++      0x6003, 0x0003, 0x6106, 0x6014, 0x2048, 0xa87c, 0x9084, 0xa000,\r
++      0xc0b5, 0xa87e, 0xa8ac, 0xa846, 0xa8b0, 0xa84a, 0x9006, 0xa836,\r
++      0xa83a, 0xa884, 0x9092, 0x199a, 0x0210, 0x2001, 0x1999, 0x8003,\r
++      0x8013, 0x8213, 0x9210, 0x621a, 0x009e, 0x2c10, 0x080c, 0x1a5c,\r
++      0x080c, 0x8456, 0x0126, 0x2091, 0x8000, 0x080c, 0x8a4e, 0x012e,\r
++      0x0005, 0x6010, 0x00b6, 0x2058, 0xbca0, 0x00be, 0x2c00, 0x080c,\r
++      0xa0cc, 0x080c, 0xc22a, 0x6003, 0x0007, 0x0005, 0x00d6, 0x0096,\r
++      0x00f6, 0x2079, 0x1800, 0x7a8c, 0x6014, 0x2048, 0xa87c, 0xd0ec,\r
++      0x1110, 0x9290, 0x0018, 0xac78, 0xc4fc, 0x0046, 0xa8e0, 0x9005,\r
++      0x1140, 0xa8dc, 0x921a, 0x0140, 0x0220, 0xa87b, 0x0007, 0x2010,\r
++      0x0028, 0xa87b, 0x0015, 0x0010, 0xa87b, 0x0000, 0x8214, 0xa883,\r
++      0x0000, 0xaa02, 0x0006, 0x0016, 0x0026, 0x00c6, 0x00d6, 0x00e6,\r
++      0x00f6, 0x2400, 0x9005, 0x1108, 0x009a, 0x2100, 0x9086, 0x0015,\r
++      0x1118, 0x2001, 0x0001, 0x0038, 0x2100, 0x9086, 0x0016, 0x0118,\r
++      0x2001, 0x0001, 0x002a, 0x94a4, 0x0007, 0x8423, 0x9405, 0x0002,\r
++      0x9fdd, 0x9fdd, 0x9fd8, 0x9fdb, 0x9fdd, 0x9fd5, 0x9fc8, 0x9fc8,\r
++      0x9fc8, 0x9fc8, 0x9fc8, 0x9fc8, 0x9fc8, 0x9fc8, 0x9fc8, 0x9fc8,\r
++      0x00fe, 0x00ee, 0x00de, 0x00ce, 0x002e, 0x001e, 0x000e, 0x004e,\r
++      0x00fe, 0x009e, 0x00de, 0x080c, 0x0db4, 0x080c, 0xaa76, 0x0028,\r
++      0x080c, 0xab99, 0x0010, 0x080c, 0xac88, 0x00fe, 0x00ee, 0x00de,\r
++      0x00ce, 0x002e, 0x001e, 0x2c00, 0xa896, 0x000e, 0x080c, 0xa18a,\r
++      0x0530, 0xa804, 0xa80e, 0x00a6, 0x2050, 0xb100, 0x00ae, 0x8006,\r
++      0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x0002,\r
++      0xaacc, 0xabd0, 0xacd4, 0xadd8, 0x2031, 0x0000, 0x2041, 0x1249,\r
++      0x080c, 0xa334, 0x0160, 0x000e, 0x9005, 0x0120, 0x00fe, 0x009e,\r
++      0x00de, 0x0005, 0x00fe, 0x009e, 0x00de, 0x0804, 0x9e32, 0x2001,\r
++      0x002c, 0x900e, 0x080c, 0xa1f0, 0x0c70, 0x91b6, 0x0015, 0x0170,\r
++      0x91b6, 0x0016, 0x0158, 0x91b2, 0x0047, 0x0a0c, 0x0db4, 0x91b2,\r
++      0x0050, 0x1a0c, 0x0db4, 0x9182, 0x0047, 0x00ca, 0x2001, 0x0109,\r
++      0x2004, 0xd08c, 0x0198, 0x0126, 0x2091, 0x2800, 0x0006, 0x0016,\r
++      0x0026, 0x080c, 0x83aa, 0x002e, 0x001e, 0x000e, 0x012e, 0xa001,\r
++      0x6000, 0x9086, 0x0002, 0x1110, 0x0804, 0x9f76, 0x0005, 0xa048,\r
++      0xa048, 0xa04a, 0xa080, 0xa048, 0xa048, 0xa048, 0xa048, 0xa093,\r
++      0x080c, 0x0db4, 0x00d6, 0x0016, 0x0096, 0x080c, 0x8923, 0x080c,\r
++      0x8a4e, 0x6003, 0x0004, 0x6114, 0x2148, 0xa87c, 0xd0fc, 0x01c0,\r
++      0xa878, 0xc0fc, 0x9005, 0x1158, 0xa894, 0x9005, 0x0140, 0x2001,\r
++      0x0000, 0x900e, 0x080c, 0xa1f0, 0x080c, 0x9e32, 0x00a8, 0x6003,\r
++      0x0002, 0xa8a4, 0xa9a8, 0x9105, 0x1178, 0xa8ae, 0xa8b2, 0x0c78,\r
++      0xa87f, 0x0020, 0xa88c, 0xa88a, 0xa8a4, 0xa8ae, 0xa8a8, 0xa8b2,\r
++      0xa8c7, 0x0000, 0xa8cb, 0x0000, 0x009e, 0x001e, 0x00de, 0x0005,\r
++      0x080c, 0x8923, 0x00d6, 0x0096, 0x6114, 0x2148, 0x080c, 0xbb17,\r
++      0x0120, 0xa87b, 0x0006, 0x080c, 0x688c, 0x009e, 0x00de, 0x080c,\r
++      0x9e32, 0x0804, 0x8a4e, 0x080c, 0x8923, 0x080c, 0x2fda, 0x080c,\r
++      0xc227, 0x00d6, 0x0096, 0x6114, 0x2148, 0x080c, 0xbb17, 0x0120,\r
++      0xa87b, 0x0029, 0x080c, 0x688c, 0x009e, 0x00de, 0x080c, 0x9e32,\r
++      0x0804, 0x8a4e, 0x9182, 0x0047, 0x0002, 0xa0ba, 0xa0bc, 0xa0ba,\r
++      0xa0ba, 0xa0ba, 0xa0ba, 0xa0ba, 0xa0ba, 0xa0ba, 0xa0ba, 0xa0ba,\r
++      0xa0ba, 0xa0bc, 0x080c, 0x0db4, 0x00d6, 0x0096, 0x080c, 0x150f,\r
++      0x6114, 0x2148, 0xa87b, 0x0000, 0xa883, 0x0000, 0x080c, 0x688c,\r
++      0x009e, 0x00de, 0x0804, 0x9e32, 0x0026, 0x0036, 0x0056, 0x0066,\r
++      0x0096, 0x00a6, 0x00f6, 0x0006, 0x080c, 0x0feb, 0x000e, 0x090c,\r
++      0x0db4, 0xa960, 0x21e8, 0xa95c, 0x9188, 0x0019, 0x21a0, 0x900e,\r
++      0x20a9, 0x0020, 0x4104, 0xa87a, 0x2079, 0x1800, 0x798c, 0x9188,\r
++      0x0018, 0x918c, 0x0fff, 0xa972, 0xac76, 0x2950, 0x00a6, 0x2001,\r
++      0x0205, 0x2003, 0x0000, 0x901e, 0x2029, 0x0001, 0x9182, 0x0034,\r
++      0x1228, 0x2011, 0x001f, 0x080c, 0xb712, 0x04c0, 0x2130, 0x2009,\r
++      0x0034, 0x2011, 0x001f, 0x080c, 0xb712, 0x96b2, 0x0034, 0xb004,\r
++      0x904d, 0x0110, 0x080c, 0x0f9d, 0x080c, 0x0feb, 0x01d0, 0x8528,\r
++      0xa867, 0x0110, 0xa86b, 0x0000, 0x2920, 0xb406, 0x968a, 0x003d,\r
++      0x1230, 0x2608, 0x2011, 0x001b, 0x080c, 0xb712, 0x00b8, 0x96b2,\r
++      0x003c, 0x2009, 0x003c, 0x2950, 0x2011, 0x001b, 0x080c, 0xb712,\r
++      0x0c18, 0x2001, 0x0205, 0x2003, 0x0000, 0x00ae, 0x852f, 0x95ad,\r
++      0x0050, 0xb566, 0xb070, 0xc0fd, 0xb072, 0x0048, 0x2001, 0x0205,\r
++      0x2003, 0x0000, 0x00ae, 0x852f, 0x95ad, 0x0050, 0xb566, 0x2a48,\r
++      0xa804, 0xa807, 0x0000, 0x0006, 0x080c, 0x688c, 0x000e, 0x2048,\r
++      0x9005, 0x1db0, 0x00fe, 0x00ae, 0x009e, 0x006e, 0x005e, 0x003e,\r
++      0x002e, 0x0005, 0x00d6, 0x00f6, 0x0096, 0x0006, 0x080c, 0x0feb,\r
++      0x000e, 0x090c, 0x0db4, 0xa960, 0x21e8, 0xa95c, 0x9188, 0x0019,\r
++      0x21a0, 0x900e, 0x20a9, 0x0020, 0x4104, 0xaa66, 0xa87a, 0x2079,\r
++      0x1800, 0x798c, 0x810c, 0x9188, 0x000c, 0x9182, 0x001a, 0x0210,\r
++      0x2009, 0x001a, 0x21a8, 0x810b, 0xa972, 0xac76, 0x2e98, 0xa85c,\r
++      0x9080, 0x001f, 0x20a0, 0x2001, 0x0205, 0x200c, 0x918d, 0x0080,\r
++      0x2102, 0x4003, 0x2003, 0x0000, 0x080c, 0x688c, 0x009e, 0x00fe,\r
++      0x00de, 0x0005, 0x0016, 0x00d6, 0x00f6, 0x0096, 0x0016, 0x2001,\r
++      0x0205, 0x200c, 0x918d, 0x0080, 0x2102, 0x001e, 0x2079, 0x0200,\r
++      0x2e98, 0xa87c, 0xd0ec, 0x0118, 0x9e80, 0x000c, 0x2098, 0x2021,\r
++      0x003e, 0x901e, 0x9282, 0x0020, 0x0218, 0x2011, 0x0020, 0x2018,\r
++      0x9486, 0x003e, 0x1170, 0x0096, 0x080c, 0x0feb, 0x2900, 0x009e,\r
++      0x05c0, 0xa806, 0x2048, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0002,\r
++      0x20a0, 0x3300, 0x908e, 0x0260, 0x0140, 0x2009, 0x0280, 0x9102,\r
++      0x920a, 0x0218, 0x2010, 0x2100, 0x9318, 0x2200, 0x9402, 0x1228,\r
++      0x2400, 0x9202, 0x2410, 0x9318, 0x9006, 0x2020, 0x22a8, 0xa800,\r
++      0x9200, 0xa802, 0x20e1, 0x0000, 0x4003, 0x83ff, 0x0180, 0x3300,\r
++      0x9086, 0x0280, 0x1130, 0x7814, 0x8000, 0x9085, 0x0080, 0x7816,\r
++      0x2e98, 0x2310, 0x84ff, 0x0904, 0xa19f, 0x0804, 0xa1a1, 0x9085,\r
++      0x0001, 0x7817, 0x0000, 0x009e, 0x00fe, 0x00de, 0x001e, 0x0005,\r
++      0x00d6, 0x0036, 0x0096, 0x6314, 0x2348, 0xa87a, 0xa982, 0x080c,\r
++      0x687f, 0x009e, 0x003e, 0x00de, 0x0005, 0x91b6, 0x0015, 0x1118,\r
++      0x080c, 0x9e32, 0x0030, 0x91b6, 0x0016, 0x190c, 0x0db4, 0x080c,\r
++      0x9e32, 0x0005, 0x20a9, 0x000e, 0x20e1, 0x0000, 0x2e98, 0x6014,\r
++      0x0096, 0x2048, 0xa860, 0x20e8, 0xa85c, 0x20a0, 0x009e, 0x4003,\r
++      0x0136, 0x9080, 0x001b, 0x2011, 0x0006, 0x20a9, 0x0001, 0x3418,\r
++      0x8318, 0x23a0, 0x4003, 0x3318, 0x8318, 0x2398, 0x8211, 0x1db8,\r
++      0x2011, 0x0006, 0x013e, 0x20a0, 0x3318, 0x8318, 0x2398, 0x4003,\r
++      0x3418, 0x8318, 0x23a0, 0x8211, 0x1db8, 0x0096, 0x080c, 0xbb17,\r
++      0x0130, 0x6014, 0x2048, 0xa807, 0x0000, 0xa867, 0x0103, 0x009e,\r
++      0x0804, 0x9e32, 0x0096, 0x00d6, 0x0036, 0x7330, 0x9386, 0x0200,\r
++      0x11a8, 0x6010, 0x00b6, 0x2058, 0xb8bf, 0x0000, 0x00be, 0x6014,\r
++      0x9005, 0x0130, 0x2048, 0xa807, 0x0000, 0xa867, 0x0103, 0xab32,\r
++      0x080c, 0x9e32, 0x003e, 0x00de, 0x009e, 0x0005, 0x0011, 0x1d48,\r
++      0x0cc8, 0x0006, 0x0016, 0x080c, 0xc212, 0x0188, 0x6014, 0x9005,\r
++      0x1170, 0x600b, 0x0003, 0x601b, 0x0000, 0x6043, 0x0000, 0x2009,\r
++      0x0022, 0x080c, 0xa611, 0x9006, 0x001e, 0x000e, 0x0005, 0x9085,\r
++      0x0001, 0x0cd0, 0x0096, 0x0016, 0x20a9, 0x0014, 0x9e80, 0x000c,\r
++      0x20e1, 0x0000, 0x2098, 0x6014, 0x2048, 0xa860, 0x20e8, 0xa85c,\r
++      0x9080, 0x0002, 0x20a0, 0x4003, 0x2001, 0x0205, 0x2003, 0x0001,\r
++      0x2099, 0x0260, 0x20a9, 0x0016, 0x4003, 0x20a9, 0x000a, 0xa804,\r
++      0x2048, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0002, 0x20a0, 0x4003,\r
++      0x2001, 0x0205, 0x2003, 0x0002, 0x2099, 0x0260, 0x20a9, 0x0020,\r
++      0x4003, 0x2003, 0x0000, 0x6014, 0x2048, 0xa800, 0x2048, 0xa867,\r
++      0x0103, 0x080c, 0x9e32, 0x001e, 0x009e, 0x0005, 0x0096, 0x0016,\r
++      0x900e, 0x7030, 0x9086, 0x0100, 0x0140, 0x7038, 0x9084, 0x00ff,\r
++      0x800c, 0x703c, 0x9084, 0x00ff, 0x8004, 0x9080, 0x0004, 0x9108,\r
++      0x810b, 0x2011, 0x0002, 0x2019, 0x000c, 0x6014, 0x2048, 0x080c,\r
++      0xb712, 0x080c, 0xbb17, 0x0140, 0x6014, 0x2048, 0xa807, 0x0000,\r
++      0xa864, 0xa8e2, 0xa867, 0x0103, 0x080c, 0x9e32, 0x001e, 0x009e,\r
++      0x0005, 0x0016, 0x0096, 0x7030, 0x9086, 0x0100, 0x1118, 0x2009,\r
++      0x0004, 0x0010, 0x7034, 0x800c, 0x810b, 0x2011, 0x000c, 0x2019,\r
++      0x000c, 0x6014, 0x2048, 0xa804, 0x0096, 0x9005, 0x0108, 0x2048,\r
++      0x080c, 0xb712, 0x009e, 0x080c, 0xbb17, 0x0148, 0xa804, 0x9005,\r
++      0x1158, 0xa807, 0x0000, 0xa864, 0xa8e2, 0xa867, 0x0103, 0x080c,\r
++      0x9e32, 0x009e, 0x001e, 0x0005, 0x0086, 0x2040, 0xa030, 0x8007,\r
++      0x9086, 0x0100, 0x1118, 0x080c, 0xa7c0, 0x00e0, 0xa034, 0x8007,\r
++      0x800c, 0x8806, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0,\r
++      0x9080, 0x000c, 0xa87b, 0x0000, 0xa883, 0x0000, 0xa897, 0x4000,\r
++      0xaaa0, 0xab9c, 0xaca8, 0xada4, 0x2031, 0x0000, 0x2041, 0x122f,\r
++      0x0019, 0x0d08, 0x008e, 0x0898, 0x0096, 0x0006, 0x080c, 0x0feb,\r
++      0x000e, 0x01b0, 0xa8ab, 0x0dcb, 0xa876, 0x000e, 0xa8a2, 0x0006,\r
++      0xae6a, 0x2800, 0xa89e, 0xa97a, 0xaf72, 0xaa8e, 0xab92, 0xac96,\r
++      0xad9a, 0x0086, 0x2940, 0x080c, 0x10d5, 0x008e, 0x9085, 0x0001,\r
++      0x009e, 0x0005, 0x00e6, 0x00d6, 0x0026, 0x7008, 0x9084, 0x00ff,\r
++      0x6210, 0x00b6, 0x2258, 0xba10, 0x00be, 0x9206, 0x1520, 0x700c,\r
++      0x6210, 0x00b6, 0x2258, 0xba14, 0x00be, 0x9206, 0x11e0, 0x6043,\r
++      0x0000, 0x2c68, 0x0016, 0x2009, 0x0035, 0x080c, 0xc18a, 0x001e,\r
++      0x1158, 0x622c, 0x2268, 0x2071, 0x026c, 0x6b20, 0x9386, 0x0003,\r
++      0x0130, 0x9386, 0x0006, 0x0128, 0x080c, 0x9e32, 0x0020, 0x0039,\r
++      0x0010, 0x080c, 0xa446, 0x002e, 0x00de, 0x00ee, 0x0005, 0x0096,\r
++      0x6814, 0x2048, 0x9186, 0x0015, 0x0904, 0xa42e, 0x918e, 0x0016,\r
++      0x1904, 0xa444, 0x700c, 0x908c, 0xff00, 0x9186, 0x1700, 0x0120,\r
++      0x9186, 0x0300, 0x1904, 0xa408, 0x89ff, 0x1138, 0x6800, 0x9086,\r
++      0x000f, 0x0904, 0xa3eb, 0x0804, 0xa442, 0x6808, 0x9086, 0xffff,\r
++      0x1904, 0xa430, 0xa87c, 0x9084, 0x0060, 0x9086, 0x0020, 0x1128,\r
++      0xa83c, 0xa940, 0x9105, 0x1904, 0xa430, 0x6824, 0xd0b4, 0x1904,\r
++      0xa430, 0x080c, 0xbd00, 0x685c, 0xa882, 0xa87c, 0xc0dc, 0xc0f4,\r
++      0xc0d4, 0xa87e, 0x0026, 0x900e, 0x6a18, 0x2001, 0x000a, 0x080c,\r
++      0x8270, 0xa884, 0x920a, 0x0208, 0x8011, 0xaa86, 0x82ff, 0x002e,\r
++      0x1138, 0x00c6, 0x2d60, 0x080c, 0xb83c, 0x00ce, 0x0804, 0xa442,\r
++      0x00c6, 0xa868, 0xd0fc, 0x1118, 0x080c, 0x5d4d, 0x0010, 0x080c,\r
++      0x60f4, 0x00ce, 0x1904, 0xa430, 0x00c6, 0x2d60, 0x080c, 0x9e32,\r
++      0x00ce, 0x0804, 0xa442, 0x00c6, 0x080c, 0x9e7f, 0x0198, 0x6017,\r
++      0x0000, 0x6810, 0x6012, 0x080c, 0xbf8c, 0x6023, 0x0003, 0x6904,\r
++      0x00c6, 0x2d60, 0x080c, 0x9e32, 0x00ce, 0x080c, 0x9eac, 0x00ce,\r
++      0x0804, 0xa442, 0x2001, 0x1959, 0x2004, 0x6842, 0x00ce, 0x04d0,\r
++      0x7008, 0x9086, 0x000b, 0x11c8, 0x6010, 0x00b6, 0x2058, 0xb900,\r
++      0xc1bc, 0xb902, 0x00be, 0x00c6, 0x2d60, 0xa87b, 0x0003, 0x080c,\r
++      0xc1cc, 0x6007, 0x0085, 0x6003, 0x000b, 0x6023, 0x0002, 0x080c,\r
++      0x83f1, 0x080c, 0x8973, 0x00ce, 0x00e8, 0x700c, 0x9086, 0x2a00,\r
++      0x1138, 0x2001, 0x1959, 0x2004, 0x6842, 0x00a0, 0x0479, 0x00a0,\r
++      0x89ff, 0x090c, 0x0db4, 0x00c6, 0x00d6, 0x2d60, 0xa867, 0x0103,\r
++      0xa87b, 0x0003, 0x080c, 0x66a7, 0x080c, 0xbd00, 0x080c, 0x9e62,\r
++      0x00de, 0x00ce, 0x080c, 0x9e32, 0x009e, 0x0005, 0x9186, 0x0015,\r
++      0x1128, 0x2001, 0x1959, 0x2004, 0x6842, 0x0068, 0x918e, 0x0016,\r
++      0x1160, 0x00c6, 0x2d00, 0x2060, 0x080c, 0xd787, 0x080c, 0x8204,\r
++      0x080c, 0x9e32, 0x00ce, 0x080c, 0x9e32, 0x0005, 0x0026, 0x0036,\r
++      0x0046, 0x7228, 0xacb0, 0xabac, 0xd2f4, 0x0130, 0x2001, 0x1959,\r
++      0x2004, 0x6842, 0x0804, 0xa4c0, 0x00c6, 0x2d60, 0x080c, 0xb73d,\r
++      0x00ce, 0x6804, 0x9086, 0x0050, 0x1168, 0x00c6, 0x2d00, 0x2060,\r
++      0x6003, 0x0001, 0x6007, 0x0050, 0x080c, 0x83f1, 0x080c, 0x8973,\r
++      0x00ce, 0x04f0, 0x6800, 0x9086, 0x000f, 0x01a8, 0x89ff, 0x090c,\r
++      0x0db4, 0x6800, 0x9086, 0x0004, 0x1190, 0xa87c, 0xd0ac, 0x0178,\r
++      0xa843, 0x0fff, 0xa83f, 0x0fff, 0xa880, 0xc0fc, 0xa882, 0x2001,\r
++      0x0001, 0x6832, 0x0400, 0x2001, 0x0007, 0x6832, 0x00e0, 0xa87c,\r
++      0xd0b4, 0x1150, 0xd0ac, 0x0db8, 0x6824, 0xd0f4, 0x1d48, 0xa838,\r
++      0xa934, 0x9105, 0x0d80, 0x0c20, 0xd2ec, 0x1d68, 0x7024, 0x9306,\r
++      0x1118, 0x7020, 0x9406, 0x0d38, 0x7020, 0x683e, 0x7024, 0x683a,\r
++      0x2001, 0x0005, 0x6832, 0x080c, 0xbe83, 0x080c, 0x8973, 0x0010,\r
++      0x080c, 0x9e32, 0x004e, 0x003e, 0x002e, 0x0005, 0x00e6, 0x00d6,\r
++      0x0026, 0x7008, 0x9084, 0x00ff, 0x6210, 0x00b6, 0x2258, 0xba10,\r
++      0x00be, 0x9206, 0x1904, 0xa52b, 0x700c, 0x6210, 0x00b6, 0x2258,\r
++      0xba14, 0x00be, 0x9206, 0x1904, 0xa52b, 0x6038, 0x2068, 0x6824,\r
++      0xc0dc, 0x6826, 0x6a20, 0x9286, 0x0007, 0x0904, 0xa52b, 0x9286,\r
++      0x0002, 0x0904, 0xa52b, 0x9286, 0x0000, 0x05e8, 0x6808, 0x633c,\r
++      0x9306, 0x15c8, 0x2071, 0x026c, 0x9186, 0x0015, 0x0570, 0x918e,\r
++      0x0016, 0x1100, 0x00c6, 0x6038, 0x2060, 0x6104, 0x9186, 0x004b,\r
++      0x01c0, 0x9186, 0x004c, 0x01a8, 0x9186, 0x004d, 0x0190, 0x9186,\r
++      0x004e, 0x0178, 0x9186, 0x0052, 0x0160, 0x6014, 0x0096, 0x2048,\r
++      0x080c, 0xbb17, 0x090c, 0x0db4, 0xa87b, 0x0003, 0x009e, 0x080c,\r
++      0xc1cc, 0x6007, 0x0085, 0x6003, 0x000b, 0x6023, 0x0002, 0x080c,\r
++      0x83f1, 0x080c, 0x8973, 0x00ce, 0x0030, 0x6038, 0x2070, 0x2001,\r
++      0x1959, 0x2004, 0x7042, 0x080c, 0x9e32, 0x002e, 0x00de, 0x00ee,\r
++      0x0005, 0x00b6, 0x0096, 0x00f6, 0x6014, 0x2048, 0x6010, 0x2058,\r
++      0x91b6, 0x0015, 0x0130, 0xba08, 0xbb0c, 0xbc00, 0xc48c, 0xbc02,\r
++      0x0460, 0x0096, 0x0156, 0x0036, 0x0026, 0x2b48, 0x9e90, 0x0010,\r
++      0x2019, 0x000a, 0x20a9, 0x0004, 0x080c, 0xae0d, 0x002e, 0x003e,\r
++      0x015e, 0x009e, 0x1904, 0xa59a, 0x0096, 0x0156, 0x0036, 0x0026,\r
++      0x2b48, 0x9e90, 0x0014, 0x2019, 0x0006, 0x20a9, 0x0004, 0x080c,\r
++      0xae0d, 0x002e, 0x003e, 0x015e, 0x009e, 0x15a0, 0x7238, 0xba0a,\r
++      0x733c, 0xbb0e, 0xbc00, 0xc48d, 0xbc02, 0xa804, 0x9005, 0x1128,\r
++      0x00fe, 0x009e, 0x00be, 0x0804, 0xa235, 0x0096, 0x2048, 0xaa12,\r
++      0xab16, 0xac0a, 0x009e, 0x8006, 0x8006, 0x8007, 0x90bc, 0x003f,\r
++      0x9084, 0xffc0, 0x9080, 0x0002, 0x2009, 0x002b, 0xaaa0, 0xab9c,\r
++      0xaca8, 0xada4, 0x2031, 0x0000, 0x2041, 0x122f, 0x080c, 0xa334,\r
++      0x0130, 0x00fe, 0x009e, 0x080c, 0x9e32, 0x00be, 0x0005, 0x080c,\r
++      0xa7c0, 0x0cb8, 0x2b78, 0x00f6, 0x080c, 0x2fda, 0x080c, 0xc227,\r
++      0x00fe, 0x00c6, 0x080c, 0x9ddc, 0x2f00, 0x6012, 0x6017, 0x0000,\r
++      0x6023, 0x0001, 0x6007, 0x0001, 0x6003, 0x0001, 0x2001, 0x0007,\r
++      0x080c, 0x618f, 0x080c, 0x61bb, 0x080c, 0x8439, 0x080c, 0x8973,\r
++      0x00ce, 0x0804, 0xa56d, 0x2100, 0x91b2, 0x0053, 0x1a0c, 0x0db4,\r
++      0x91b2, 0x0040, 0x1a04, 0xa623, 0x0002, 0xa611, 0xa611, 0xa607,\r
++      0xa611, 0xa611, 0xa611, 0xa605, 0xa605, 0xa605, 0xa605, 0xa605,\r
++      0xa605, 0xa605, 0xa605, 0xa605, 0xa605, 0xa605, 0xa605, 0xa605,\r
++      0xa605, 0xa605, 0xa605, 0xa605, 0xa605, 0xa605, 0xa605, 0xa605,\r
++      0xa605, 0xa605, 0xa605, 0xa605, 0xa611, 0xa605, 0xa611, 0xa611,\r
++      0xa605, 0xa605, 0xa605, 0xa605, 0xa605, 0xa607, 0xa605, 0xa605,\r
++      0xa605, 0xa605, 0xa605, 0xa605, 0xa605, 0xa605, 0xa605, 0xa611,\r
++      0xa611, 0xa605, 0xa605, 0xa605, 0xa605, 0xa605, 0xa605, 0xa605,\r
++      0xa605, 0xa605, 0xa611, 0xa605, 0xa605, 0x080c, 0x0db4, 0x0066,\r
++      0x00b6, 0x6610, 0x2658, 0xb8bc, 0xc08c, 0xb8be, 0x00be, 0x006e,\r
++      0x0000, 0x6003, 0x0001, 0x6106, 0x9186, 0x0032, 0x0118, 0x080c,\r
++      0x8439, 0x0010, 0x080c, 0x83f1, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0x8973, 0x012e, 0x0005, 0x2600, 0x0002, 0xa637, 0xa637, 0xa637,\r
++      0xa611, 0xa611, 0xa637, 0xa637, 0xa637, 0xa637, 0xa611, 0xa637,\r
++      0xa611, 0xa637, 0xa611, 0xa637, 0xa637, 0xa637, 0xa637, 0x080c,\r
++      0x0db4, 0x6004, 0x90b2, 0x0053, 0x1a0c, 0x0db4, 0x91b6, 0x0013,\r
++      0x0904, 0xa6fb, 0x91b6, 0x0027, 0x1904, 0xa6b6, 0x080c, 0x886e,\r
++      0x6004, 0x080c, 0xbd0c, 0x01b0, 0x080c, 0xbd1d, 0x01a8, 0x908e,\r
++      0x0021, 0x0904, 0xa6b3, 0x908e, 0x0022, 0x1130, 0x080c, 0xa261,\r
++      0x0904, 0xa6af, 0x0804, 0xa6b0, 0x908e, 0x003d, 0x0904, 0xa6b3,\r
++      0x0804, 0xa6a9, 0x080c, 0x3003, 0x2001, 0x0007, 0x080c, 0x618f,\r
++      0x6010, 0x00b6, 0x2058, 0xb9a0, 0x00be, 0x080c, 0xa7c0, 0x9186,\r
++      0x007e, 0x1148, 0x2001, 0x1836, 0x2014, 0xc285, 0x080c, 0x6fb2,\r
++      0x1108, 0xc2ad, 0x2202, 0x0036, 0x0026, 0x2019, 0x0028, 0x2110,\r
++      0x080c, 0xd7e2, 0x002e, 0x003e, 0x0016, 0x0026, 0x0036, 0x2110,\r
++      0x2019, 0x0028, 0x080c, 0x8571, 0x0076, 0x903e, 0x080c, 0x8469,\r
++      0x6010, 0x00b6, 0x905d, 0x0100, 0x00be, 0x2c08, 0x080c, 0xd29b,\r
++      0x007e, 0x003e, 0x002e, 0x001e, 0x080c, 0xc227, 0x0016, 0x080c,\r
++      0xbf84, 0x080c, 0x9e32, 0x001e, 0x080c, 0x30d5, 0x080c, 0x8973,\r
++      0x0030, 0x080c, 0xbf84, 0x080c, 0x9e32, 0x080c, 0x8973, 0x0005,\r
++      0x080c, 0xa7c0, 0x0cb0, 0x080c, 0xa7fc, 0x0c98, 0x9186, 0x0014,\r
++      0x1db0, 0x080c, 0x886e, 0x6004, 0x908e, 0x0022, 0x1118, 0x080c,\r
++      0xa261, 0x0d68, 0x080c, 0x2fda, 0x080c, 0xc227, 0x080c, 0xbd0c,\r
++      0x1190, 0x080c, 0x3003, 0x6010, 0x00b6, 0x2058, 0xb9a0, 0x00be,\r
++      0x080c, 0xa7c0, 0x9186, 0x007e, 0x1128, 0x2001, 0x1836, 0x200c,\r
++      0xc185, 0x2102, 0x0870, 0x080c, 0xbd1d, 0x1118, 0x080c, 0xa7c0,\r
++      0x0840, 0x6004, 0x908e, 0x0032, 0x1160, 0x00e6, 0x00f6, 0x2071,\r
++      0x1894, 0x2079, 0x0000, 0x080c, 0x3369, 0x00fe, 0x00ee, 0x0804,\r
++      0xa6a9, 0x6004, 0x908e, 0x0021, 0x0d48, 0x908e, 0x0022, 0x090c,\r
++      0xa7c0, 0x0804, 0xa6a9, 0x90b2, 0x0040, 0x1a04, 0xa7a9, 0x2008,\r
++      0x0002, 0xa743, 0xa744, 0xa747, 0xa74a, 0xa74d, 0xa750, 0xa741,\r
++      0xa741, 0xa741, 0xa741, 0xa741, 0xa741, 0xa741, 0xa741, 0xa741,\r
++      0xa741, 0xa741, 0xa741, 0xa741, 0xa741, 0xa741, 0xa741, 0xa741,\r
++      0xa741, 0xa741, 0xa741, 0xa741, 0xa741, 0xa741, 0xa741, 0xa753,\r
++      0xa75e, 0xa741, 0xa760, 0xa75e, 0xa741, 0xa741, 0xa741, 0xa741,\r
++      0xa741, 0xa75e, 0xa75e, 0xa741, 0xa741, 0xa741, 0xa741, 0xa741,\r
++      0xa741, 0xa741, 0xa741, 0xa790, 0xa75e, 0xa741, 0xa75a, 0xa741,\r
++      0xa741, 0xa741, 0xa75b, 0xa741, 0xa741, 0xa741, 0xa75e, 0xa787,\r
++      0xa741, 0x080c, 0x0db4, 0x00d0, 0x2001, 0x000b, 0x0410, 0x2001,\r
++      0x0003, 0x00f8, 0x2001, 0x0005, 0x00e0, 0x2001, 0x0001, 0x00c8,\r
++      0x2001, 0x0009, 0x00b0, 0x080c, 0x886e, 0x6003, 0x0005, 0x080c,\r
++      0x8973, 0x0070, 0x0018, 0x0010, 0x080c, 0x618f, 0x0804, 0xa7a1,\r
++      0x080c, 0x886e, 0x080c, 0xc22a, 0x6003, 0x0004, 0x080c, 0x8973,\r
++      0x0005, 0x080c, 0x618f, 0x080c, 0x886e, 0x6003, 0x0002, 0x0036,\r
++      0x2019, 0x185e, 0x2304, 0x9084, 0xff00, 0x1120, 0x2001, 0x1957,\r
++      0x201c, 0x0040, 0x8007, 0x909a, 0x0004, 0x0ec0, 0x8003, 0x801b,\r
++      0x831b, 0x9318, 0x631a, 0x003e, 0x080c, 0x8973, 0x0c08, 0x080c,\r
++      0x886e, 0x080c, 0xbf84, 0x080c, 0x9e32, 0x080c, 0x8973, 0x08c0,\r
++      0x00e6, 0x00f6, 0x2071, 0x1894, 0x2079, 0x0000, 0x080c, 0x3369,\r
++      0x00fe, 0x00ee, 0x080c, 0x886e, 0x080c, 0x9e32, 0x080c, 0x8973,\r
++      0x0838, 0x080c, 0x886e, 0x6003, 0x0002, 0x080c, 0xc22a, 0x0804,\r
++      0x8973, 0x2600, 0x2008, 0x0002, 0xa7be, 0xa7be, 0xa7be, 0xa7a1,\r
++      0xa7a1, 0xa7be, 0xa7be, 0xa7be, 0xa7be, 0xa7a1, 0xa7be, 0xa7a1,\r
++      0xa7be, 0xa7a1, 0xa7be, 0xa7be, 0xa7be, 0xa7be, 0x080c, 0x0db4,\r
++      0x00e6, 0x0096, 0x0026, 0x0016, 0x080c, 0xbb17, 0x0568, 0x6014,\r
++      0x2048, 0xa864, 0x9086, 0x0139, 0x11a8, 0xa894, 0x9086, 0x0056,\r
++      0x1148, 0x080c, 0x512f, 0x0130, 0x2001, 0x0000, 0x900e, 0x2011,\r
++      0x4000, 0x0028, 0x2001, 0x0030, 0x900e, 0x2011, 0x4005, 0x080c,\r
++      0xc0f1, 0x0090, 0xa868, 0xd0fc, 0x0178, 0xa807, 0x0000, 0x0016,\r
++      0x6004, 0x908e, 0x0021, 0x0168, 0x908e, 0x003d, 0x0150, 0x001e,\r
++      0xa867, 0x0103, 0xa833, 0x0100, 0x001e, 0x002e, 0x009e, 0x00ee,\r
++      0x0005, 0x001e, 0x0009, 0x0cc0, 0x0096, 0x6014, 0x2048, 0xa800,\r
++      0x2048, 0xa867, 0x0103, 0xa823, 0x8001, 0x009e, 0x0005, 0x00b6,\r
++      0x6610, 0x2658, 0xb804, 0x9084, 0x00ff, 0x90b2, 0x000c, 0x1a0c,\r
++      0x0db4, 0x6604, 0x96b6, 0x004d, 0x1120, 0x080c, 0xc010, 0x0804,\r
++      0xa884, 0x6604, 0x96b6, 0x0043, 0x1120, 0x080c, 0xc059, 0x0804,\r
++      0xa884, 0x6604, 0x96b6, 0x004b, 0x1120, 0x080c, 0xc085, 0x0804,\r
++      0xa884, 0x6604, 0x96b6, 0x0033, 0x1120, 0x080c, 0xbfa6, 0x0804,\r
++      0xa884, 0x6604, 0x96b6, 0x0028, 0x1120, 0x080c, 0xbd56, 0x0804,\r
++      0xa884, 0x6604, 0x96b6, 0x0029, 0x1120, 0x080c, 0xbd97, 0x0804,\r
++      0xa884, 0x6604, 0x96b6, 0x001f, 0x1118, 0x080c, 0xa20a, 0x04e0,\r
++      0x6604, 0x96b6, 0x0000, 0x1118, 0x080c, 0xa531, 0x04a8, 0x6604,\r
++      0x96b6, 0x0022, 0x1118, 0x080c, 0xa242, 0x0470, 0x6604, 0x96b6,\r
++      0x0035, 0x1118, 0x080c, 0xa352, 0x0438, 0x6604, 0x96b6, 0x0039,\r
++      0x1118, 0x080c, 0xa4c6, 0x0400, 0x6604, 0x96b6, 0x003d, 0x1118,\r
++      0x080c, 0xa27a, 0x00c8, 0x6604, 0x96b6, 0x0044, 0x1118, 0x080c,\r
++      0xa2b6, 0x0090, 0x6604, 0x96b6, 0x0049, 0x1118, 0x080c, 0xa2e1,\r
++      0x0058, 0x91b6, 0x0015, 0x1110, 0x0063, 0x0030, 0x91b6, 0x0016,\r
++      0x1128, 0x00be, 0x0804, 0xab42, 0x00be, 0x0005, 0x080c, 0x9ec7,\r
++      0x0cd8, 0xa8a1, 0xa8a4, 0xa8a1, 0xa8e8, 0xa8a1, 0xaa76, 0xab4f,\r
++      0xa8a1, 0xa8a1, 0xab1c, 0xa8a1, 0xab30, 0x0096, 0x080c, 0x150f,\r
++      0x6014, 0x2048, 0xa800, 0x2048, 0xa867, 0x0103, 0x009e, 0x0804,\r
++      0x9e32, 0xa001, 0xa001, 0x0005, 0x00e6, 0x2071, 0x1800, 0x708c,\r
++      0x9086, 0x0074, 0x1540, 0x080c, 0xd26c, 0x11b0, 0x6010, 0x00b6,\r
++      0x2058, 0x7030, 0xd08c, 0x0128, 0xb800, 0xd0bc, 0x0110, 0xc0c5,\r
++      0xb802, 0x00e9, 0x00be, 0x2001, 0x0006, 0x080c, 0x618f, 0x080c,\r
++      0x3003, 0x080c, 0x9e32, 0x0088, 0x2001, 0x000a, 0x080c, 0x618f,\r
++      0x080c, 0x3003, 0x6003, 0x0001, 0x6007, 0x0001, 0x080c, 0x8439,\r
++      0x080c, 0x8973, 0x0010, 0x080c, 0xaa61, 0x00ee, 0x0005, 0x00d6,\r
++      0xb800, 0xd084, 0x0158, 0x9006, 0x080c, 0x617b, 0x2069, 0x1853,\r
++      0x6804, 0x0020, 0x2001, 0x0006, 0x080c, 0x61bb, 0x00de, 0x0005,\r
++      0x00b6, 0x0096, 0x00d6, 0x2011, 0x1823, 0x2204, 0x9086, 0x0074,\r
++      0x1904, 0xaa3a, 0x6010, 0x2058, 0xbaa0, 0x9286, 0x007e, 0x1120,\r
++      0x080c, 0xac93, 0x0804, 0xa99f, 0x00d6, 0x080c, 0x6fb2, 0x0198,\r
++      0x0026, 0x2011, 0x0010, 0x080c, 0x6586, 0x002e, 0x05c8, 0x080c,\r
++      0x539a, 0x1540, 0x6014, 0x2048, 0xa807, 0x0000, 0xa867, 0x0103,\r
++      0xa833, 0xdead, 0x00f8, 0x0026, 0x2011, 0x8008, 0x080c, 0x6586,\r
++      0x002e, 0x0530, 0x6014, 0x2048, 0xa864, 0x9084, 0x00ff, 0x9086,\r
++      0x0039, 0x1140, 0x2001, 0x0030, 0x900e, 0x2011, 0x4009, 0x080c,\r
++      0xc0f1, 0x0040, 0x6014, 0x2048, 0xa807, 0x0000, 0xa867, 0x0103,\r
++      0xa833, 0xdead, 0x6010, 0x2058, 0xb9a0, 0x0016, 0x080c, 0x3003,\r
++      0x080c, 0x9e32, 0x001e, 0x080c, 0x30d5, 0x00de, 0x0804, 0xaa3b,\r
++      0x00de, 0x080c, 0xac88, 0x6010, 0x2058, 0xbaa0, 0x9286, 0x0080,\r
++      0x1510, 0x6014, 0x9005, 0x01a8, 0x2048, 0xa864, 0x9084, 0x00ff,\r
++      0x9086, 0x0039, 0x1140, 0x2001, 0x0000, 0x900e, 0x2011, 0x4000,\r
++      0x080c, 0xc0f1, 0x0030, 0xa807, 0x0000, 0xa867, 0x0103, 0xa833,\r
++      0x0200, 0x2001, 0x0006, 0x080c, 0x618f, 0x080c, 0x3003, 0x080c,\r
++      0x9e32, 0x0804, 0xaa3b, 0x080c, 0xaa49, 0x6014, 0x9005, 0x0190,\r
++      0x2048, 0xa868, 0xd0f4, 0x01e8, 0xa864, 0x9084, 0x00ff, 0x9086,\r
++      0x0039, 0x1d08, 0x2001, 0x0000, 0x900e, 0x2011, 0x4000, 0x080c,\r
++      0xc0f1, 0x08f8, 0x080c, 0xaa3f, 0x0160, 0x9006, 0x080c, 0x617b,\r
++      0x2001, 0x0004, 0x080c, 0x61bb, 0x2001, 0x0007, 0x080c, 0x618f,\r
++      0x08a0, 0x2001, 0x0004, 0x080c, 0x618f, 0x6003, 0x0001, 0x6007,\r
++      0x0003, 0x080c, 0x8439, 0x080c, 0x8973, 0x0804, 0xaa3b, 0xb85c,\r
++      0xd0e4, 0x01d0, 0x080c, 0xbf26, 0x080c, 0x6fb2, 0x0118, 0xd0dc,\r
++      0x1904, 0xa961, 0x2011, 0x1836, 0x2204, 0xc0ad, 0x2012, 0x2001,\r
++      0x0002, 0x00f6, 0x2079, 0x0100, 0x78e3, 0x0000, 0x080c, 0x26d7,\r
++      0x78e2, 0x00fe, 0x0804, 0xa961, 0x080c, 0xbf63, 0x2011, 0x1836,\r
++      0x2204, 0xc0a5, 0x2012, 0x0006, 0x080c, 0xd3c5, 0x000e, 0x1904,\r
++      0xa961, 0xc0b5, 0x2012, 0x2001, 0x0006, 0x080c, 0x618f, 0x9006,\r
++      0x080c, 0x617b, 0x00c6, 0x2001, 0x180f, 0x2004, 0xd09c, 0x0520,\r
++      0x00f6, 0x2079, 0x0100, 0x00e6, 0x2071, 0x1800, 0x700c, 0x9084,\r
++      0x00ff, 0x78e6, 0x707a, 0x7010, 0x78ea, 0x707e, 0x908c, 0x00ff,\r
++      0x00ee, 0x780c, 0xc0b5, 0x780e, 0x00fe, 0x080c, 0x26ac, 0x00f6,\r
++      0x2100, 0x900e, 0x080c, 0x2663, 0x795a, 0x00fe, 0x9186, 0x0081,\r
++      0x01d8, 0x2009, 0x0081, 0x00c8, 0x2009, 0x00ef, 0x00f6, 0x2079,\r
++      0x0100, 0x79ea, 0x7932, 0x7936, 0x780c, 0xc0b5, 0x780e, 0x00fe,\r
++      0x080c, 0x26ac, 0x00f6, 0x2079, 0x1800, 0x797e, 0x2100, 0x900e,\r
++      0x080c, 0x2663, 0x795a, 0x00fe, 0x8108, 0x080c, 0x61de, 0x2b00,\r
++      0x00ce, 0x1904, 0xa961, 0x6012, 0x2009, 0x180f, 0x210c, 0xd19c,\r
++      0x0150, 0x2009, 0x027c, 0x210c, 0x918c, 0x00ff, 0xb912, 0x2009,\r
++      0x027d, 0x210c, 0xb916, 0x2001, 0x0002, 0x080c, 0x618f, 0x6023,\r
++      0x0001, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x8439, 0x080c,\r
++      0x8973, 0x0008, 0x0431, 0x00de, 0x009e, 0x00be, 0x0005, 0x2001,\r
++      0x1810, 0x2004, 0xd0a4, 0x0120, 0x2001, 0x1854, 0x2004, 0xd0ac,\r
++      0x0005, 0x00e6, 0x080c, 0xd83b, 0x0190, 0x2071, 0x0260, 0x7108,\r
++      0x720c, 0x918c, 0x00ff, 0x1118, 0x9284, 0xff00, 0x0140, 0x6010,\r
++      0x2058, 0xb8a0, 0x9084, 0xff80, 0x1110, 0xb912, 0xba16, 0x00ee,\r
++      0x0005, 0x2030, 0x2001, 0x0007, 0x080c, 0x618f, 0x080c, 0x539a,\r
++      0x1120, 0x2001, 0x0007, 0x080c, 0x61bb, 0x080c, 0x3003, 0x6020,\r
++      0x9086, 0x000a, 0x1108, 0x0005, 0x0804, 0x9e32, 0x00b6, 0x00e6,\r
++      0x0026, 0x0016, 0x2071, 0x1800, 0x708c, 0x9086, 0x0014, 0x1904,\r
++      0xab13, 0x00d6, 0x080c, 0x6fb2, 0x0198, 0x0026, 0x2011, 0x0010,\r
++      0x080c, 0x6586, 0x002e, 0x05c8, 0x080c, 0x539a, 0x1540, 0x6014,\r
++      0x2048, 0xa807, 0x0000, 0xa867, 0x0103, 0xa833, 0xdead, 0x00f8,\r
++      0x0026, 0x2011, 0x8008, 0x080c, 0x6586, 0x002e, 0x0530, 0x6014,\r
++      0x2048, 0xa864, 0x9084, 0x00ff, 0x9086, 0x0039, 0x1140, 0x2001,\r
++      0x0030, 0x900e, 0x2011, 0x4009, 0x080c, 0xc0f1, 0x0040, 0x6014,\r
++      0x2048, 0xa807, 0x0000, 0xa867, 0x0103, 0xa833, 0xdead, 0x6010,\r
++      0x2058, 0xb9a0, 0x0016, 0x080c, 0x3003, 0x080c, 0x9e32, 0x001e,\r
++      0x080c, 0x30d5, 0x00de, 0x0804, 0xab17, 0x00de, 0x080c, 0x539a,\r
++      0x1170, 0x6014, 0x9005, 0x1158, 0x0036, 0x0046, 0x6010, 0x2058,\r
++      0xbba0, 0x2021, 0x0006, 0x080c, 0x4a76, 0x004e, 0x003e, 0x00d6,\r
++      0x6010, 0x2058, 0x080c, 0x62d9, 0x080c, 0xa8d7, 0x00de, 0x080c,\r
++      0xad59, 0x1588, 0x6010, 0x2058, 0xb890, 0x9005, 0x0560, 0x2001,\r
++      0x0006, 0x080c, 0x618f, 0x0096, 0x6014, 0x904d, 0x01d0, 0xa864,\r
++      0x9084, 0x00ff, 0x9086, 0x0039, 0x1140, 0x2001, 0x0000, 0x900e,\r
++      0x2011, 0x4000, 0x080c, 0xc0f1, 0x0060, 0xa864, 0x9084, 0x00ff,\r
++      0x9086, 0x0029, 0x0130, 0xa807, 0x0000, 0xa867, 0x0103, 0xa833,\r
++      0x0200, 0x009e, 0x080c, 0x3003, 0x6020, 0x9086, 0x000a, 0x0138,\r
++      0x080c, 0x9e32, 0x0020, 0x080c, 0xa7c0, 0x080c, 0xaa61, 0x001e,\r
++      0x002e, 0x00ee, 0x00be, 0x0005, 0x2011, 0x1823, 0x2204, 0x9086,\r
++      0x0014, 0x1160, 0x2001, 0x0002, 0x080c, 0x618f, 0x6003, 0x0001,\r
++      0x6007, 0x0001, 0x080c, 0x8439, 0x0804, 0x8973, 0x0804, 0xaa61,\r
++      0x2030, 0x2011, 0x1823, 0x2204, 0x9086, 0x0004, 0x1148, 0x96b6,\r
++      0x000b, 0x1120, 0x2001, 0x0007, 0x080c, 0x618f, 0x0804, 0x9e32,\r
++      0x0804, 0xaa61, 0x0002, 0xa8a1, 0xab5a, 0xa8a1, 0xab99, 0xa8a1,\r
++      0xac44, 0xab4f, 0xa8a1, 0xa8a1, 0xac57, 0xa8a1, 0xac67, 0x6604,\r
++      0x9686, 0x0003, 0x0904, 0xaa76, 0x96b6, 0x001e, 0x1110, 0x080c,\r
++      0x9e32, 0x0005, 0x00b6, 0x00d6, 0x00c6, 0x080c, 0xac77, 0x11a0,\r
++      0x9006, 0x080c, 0x617b, 0x080c, 0x2fda, 0x080c, 0xc227, 0x2001,\r
++      0x0002, 0x080c, 0x618f, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c,\r
++      0x8439, 0x080c, 0x8973, 0x0408, 0x2009, 0x026e, 0x2104, 0x9086,\r
++      0x0009, 0x1160, 0x6010, 0x2058, 0xb840, 0x9084, 0x00ff, 0x9005,\r
++      0x0170, 0x8001, 0xb842, 0x601b, 0x000a, 0x0078, 0x2009, 0x026f,\r
++      0x2104, 0x9084, 0xff00, 0x9086, 0x1900, 0x1108, 0x08a0, 0x080c,\r
++      0x2fda, 0x080c, 0xc227, 0x080c, 0xaa61, 0x00ce, 0x00de, 0x00be,\r
++      0x0005, 0x0096, 0x00b6, 0x0026, 0x9016, 0x080c, 0xac85, 0x00d6,\r
++      0x2069, 0x194d, 0x2d04, 0x9005, 0x0168, 0x6010, 0x2058, 0xb8a0,\r
++      0x9086, 0x007e, 0x1138, 0x2069, 0x181f, 0x2d04, 0x8000, 0x206a,\r
++      0x00de, 0x0010, 0x00de, 0x0088, 0x9006, 0x080c, 0x617b, 0x2001,\r
++      0x0002, 0x080c, 0x618f, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c,\r
++      0x8439, 0x080c, 0x8973, 0x0804, 0xac14, 0x080c, 0xbb17, 0x01b0,\r
++      0x6014, 0x2048, 0xa864, 0x2010, 0x9086, 0x0139, 0x1138, 0x6007,\r
++      0x0016, 0x2001, 0x0002, 0x080c, 0xc14b, 0x00b0, 0x6014, 0x2048,\r
++      0xa864, 0xd0fc, 0x0118, 0x2001, 0x0001, 0x0ca8, 0x2001, 0x180e,\r
++      0x2004, 0xd0dc, 0x0148, 0x6010, 0x2058, 0xb840, 0x9084, 0x00ff,\r
++      0x9005, 0x1110, 0x9006, 0x0c38, 0x080c, 0xa7c0, 0x2009, 0x026e,\r
++      0x2134, 0x96b4, 0x00ff, 0x9686, 0x0005, 0x0510, 0x9686, 0x000b,\r
++      0x01c8, 0x2009, 0x026f, 0x2104, 0x9084, 0xff00, 0x1118, 0x9686,\r
++      0x0009, 0x01b0, 0x9086, 0x1900, 0x1168, 0x9686, 0x0009, 0x0180,\r
++      0x2001, 0x0004, 0x080c, 0x618f, 0x2001, 0x0028, 0x601a, 0x6007,\r
++      0x0052, 0x0010, 0x080c, 0xaa61, 0x002e, 0x00be, 0x009e, 0x0005,\r
++      0x9286, 0x0139, 0x0160, 0x6014, 0x2048, 0x080c, 0xbb17, 0x0140,\r
++      0xa864, 0x9086, 0x0139, 0x0118, 0xa868, 0xd0fc, 0x0108, 0x0c50,\r
++      0x6010, 0x2058, 0xb840, 0x9084, 0x00ff, 0x9005, 0x0138, 0x8001,\r
++      0xb842, 0x601b, 0x000a, 0x6007, 0x0016, 0x08f0, 0xb8a0, 0x9086,\r
++      0x007e, 0x1138, 0x00e6, 0x2071, 0x1800, 0x080c, 0x5c64, 0x00ee,\r
++      0x0010, 0x080c, 0x2fda, 0x0870, 0x080c, 0xac85, 0x1160, 0x2001,\r
++      0x0004, 0x080c, 0x618f, 0x6003, 0x0001, 0x6007, 0x0003, 0x080c,\r
++      0x8439, 0x0804, 0x8973, 0x080c, 0xa7c0, 0x0804, 0xaa61, 0x0469,\r
++      0x1160, 0x2001, 0x0008, 0x080c, 0x618f, 0x6003, 0x0001, 0x6007,\r
++      0x0005, 0x080c, 0x8439, 0x0804, 0x8973, 0x0804, 0xaa61, 0x00e9,\r
++      0x1160, 0x2001, 0x000a, 0x080c, 0x618f, 0x6003, 0x0001, 0x6007,\r
++      0x0001, 0x080c, 0x8439, 0x0804, 0x8973, 0x0804, 0xaa61, 0x2009,\r
++      0x026e, 0x2104, 0x9086, 0x0003, 0x1138, 0x2009, 0x026f, 0x2104,\r
++      0x9084, 0xff00, 0x9086, 0x2a00, 0x0005, 0x9085, 0x0001, 0x0005,\r
++      0x00b6, 0x00c6, 0x0016, 0x6110, 0x2158, 0x080c, 0x624d, 0x001e,\r
++      0x00ce, 0x00be, 0x0005, 0x00b6, 0x00f6, 0x00e6, 0x00d6, 0x0036,\r
++      0x0016, 0x6010, 0x2058, 0x2009, 0x1836, 0x2104, 0x9085, 0x0003,\r
++      0x200a, 0x080c, 0xad2b, 0x0560, 0x2009, 0x1836, 0x2104, 0xc0cd,\r
++      0x200a, 0x080c, 0x655e, 0x0158, 0x9006, 0x2020, 0x2009, 0x002a,\r
++      0x080c, 0xd52a, 0x2001, 0x180c, 0x200c, 0xc195, 0x2102, 0x2019,\r
++      0x002a, 0x2009, 0x0001, 0x080c, 0x2fa5, 0x00e6, 0x2071, 0x1800,\r
++      0x080c, 0x2dbb, 0x00ee, 0x00c6, 0x0156, 0x20a9, 0x0781, 0x2009,\r
++      0x007f, 0x080c, 0x30d5, 0x8108, 0x1f04, 0xacc9, 0x015e, 0x00ce,\r
++      0x080c, 0xac88, 0x2071, 0x0260, 0x2079, 0x0200, 0x7817, 0x0001,\r
++      0x2001, 0x1836, 0x200c, 0xc1c5, 0x7018, 0xd0fc, 0x0110, 0xd0dc,\r
++      0x0118, 0x7038, 0xd0dc, 0x1108, 0xc1c4, 0x7817, 0x0000, 0x2001,\r
++      0x1836, 0x2102, 0x2079, 0x0100, 0x2e04, 0x9084, 0x00ff, 0x2069,\r
++      0x181e, 0x206a, 0x78e6, 0x0006, 0x8e70, 0x2e04, 0x2069, 0x181f,\r
++      0x206a, 0x78ea, 0x7832, 0x7836, 0x2010, 0x9084, 0xff00, 0x001e,\r
++      0x9105, 0x2009, 0x182b, 0x200a, 0x2200, 0x9084, 0x00ff, 0x2008,\r
++      0x080c, 0x26ac, 0x080c, 0x6fb2, 0x0170, 0x2071, 0x0260, 0x2069,\r
++      0x1953, 0x7048, 0x206a, 0x704c, 0x6806, 0x7050, 0x680a, 0x7054,\r
++      0x680e, 0x080c, 0xbf26, 0x0040, 0x2001, 0x0006, 0x080c, 0x618f,\r
++      0x080c, 0x3003, 0x080c, 0x9e32, 0x001e, 0x003e, 0x00de, 0x00ee,\r
++      0x00fe, 0x00be, 0x0005, 0x0096, 0x0026, 0x0036, 0x00e6, 0x0156,\r
++      0x2019, 0x182b, 0x231c, 0x83ff, 0x01f0, 0x2071, 0x0260, 0x7200,\r
++      0x9294, 0x00ff, 0x7004, 0x9084, 0xff00, 0x9205, 0x9306, 0x1198,\r
++      0x2011, 0x0276, 0x20a9, 0x0004, 0x2b48, 0x2019, 0x000a, 0x080c,\r
++      0xae0d, 0x1148, 0x2011, 0x027a, 0x20a9, 0x0004, 0x2019, 0x0006,\r
++      0x080c, 0xae0d, 0x1100, 0x015e, 0x00ee, 0x003e, 0x002e, 0x009e,\r
++      0x0005, 0x00e6, 0x2071, 0x0260, 0x7034, 0x9086, 0x0014, 0x11a8,\r
++      0x7038, 0x9086, 0x0800, 0x1188, 0x703c, 0xd0ec, 0x0160, 0x9084,\r
++      0x0f00, 0x9086, 0x0100, 0x1138, 0x7054, 0xd0a4, 0x1110, 0xd0ac,\r
++      0x0110, 0x9006, 0x0010, 0x9085, 0x0001, 0x00ee, 0x0005, 0x00e6,\r
++      0x0096, 0x00c6, 0x0076, 0x0056, 0x0046, 0x0026, 0x0006, 0x0126,\r
++      0x2091, 0x8000, 0x2029, 0x19c1, 0x252c, 0x2021, 0x19c7, 0x2424,\r
++      0x2061, 0x1cd0, 0x2071, 0x1800, 0x7250, 0x7070, 0x9202, 0x1a04,\r
++      0xade5, 0x080c, 0xd55b, 0x0904, 0xadde, 0x6720, 0x9786, 0x0007,\r
++      0x0904, 0xadde, 0x2500, 0x9c06, 0x0904, 0xadde, 0x2400, 0x9c06,\r
++      0x05e8, 0x3e08, 0x9186, 0x0002, 0x1148, 0x6010, 0x9005, 0x0130,\r
++      0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc, 0x1580, 0x00c6, 0x6000,\r
++      0x9086, 0x0004, 0x1110, 0x080c, 0x190d, 0x9786, 0x000a, 0x0148,\r
++      0x080c, 0xbd1d, 0x1130, 0x00ce, 0x080c, 0xa7c0, 0x080c, 0x9e62,\r
++      0x00e8, 0x6014, 0x2048, 0x080c, 0xbb17, 0x01a8, 0x9786, 0x0003,\r
++      0x1530, 0xa867, 0x0103, 0xa87c, 0xd0cc, 0x0130, 0x0096, 0xa878,\r
++      0x2048, 0x080c, 0x0f9d, 0x009e, 0xab7a, 0xa877, 0x0000, 0x080c,\r
++      0x687f, 0x080c, 0xbd00, 0x080c, 0x9e62, 0x00ce, 0x9ce0, 0x0018,\r
++      0x7064, 0x9c02, 0x1210, 0x0804, 0xad8c, 0x012e, 0x000e, 0x002e,\r
++      0x004e, 0x005e, 0x007e, 0x00ce, 0x009e, 0x00ee, 0x0005, 0x9786,\r
++      0x0006, 0x1118, 0x080c, 0xd4d5, 0x0c30, 0x9786, 0x000a, 0x0998,\r
++      0x0880, 0x220c, 0x2304, 0x9106, 0x1130, 0x8210, 0x8318, 0x1f04,\r
++      0xadf9, 0x9006, 0x0005, 0x2304, 0x9102, 0x0218, 0x2001, 0x0001,\r
++      0x0008, 0x9006, 0x918d, 0x0001, 0x0005, 0x0136, 0x01c6, 0x0016,\r
++      0x8906, 0x8006, 0x8007, 0x908c, 0x003f, 0x21e0, 0x9084, 0xffc0,\r
++      0x9300, 0x2098, 0x3518, 0x20a9, 0x0001, 0x220c, 0x4002, 0x910e,\r
++      0x1140, 0x8210, 0x8319, 0x1dc8, 0x9006, 0x001e, 0x01ce, 0x013e,\r
++      0x0005, 0x220c, 0x9102, 0x0218, 0x2001, 0x0001, 0x0010, 0x2001,\r
++      0x0000, 0x918d, 0x0001, 0x001e, 0x01ce, 0x013e, 0x0005, 0x6004,\r
++      0x908a, 0x0053, 0x1a0c, 0x0db4, 0x080c, 0xbd0c, 0x0120, 0x080c,\r
++      0xbd1d, 0x0168, 0x0028, 0x080c, 0x3003, 0x080c, 0xbd1d, 0x0138,\r
++      0x080c, 0x886e, 0x080c, 0x9e32, 0x080c, 0x8973, 0x0005, 0x080c,\r
++      0xa7c0, 0x0cb0, 0x9182, 0x0054, 0x1220, 0x9182, 0x0040, 0x0208,\r
++      0x000a, 0x0005, 0xae6e, 0xae6e, 0xae6e, 0xae6e, 0xae6e, 0xae6e,\r
++      0xae6e, 0xae6e, 0xae6e, 0xae6e, 0xae6e, 0xae70, 0xae70, 0xae70,\r
++      0xae70, 0xae6e, 0xae6e, 0xae6e, 0xae70, 0xae6e, 0x080c, 0x0db4,\r
++      0x600b, 0xffff, 0x6003, 0x0001, 0x6106, 0x080c, 0x83f1, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0x8973, 0x012e, 0x0005, 0x9186, 0x0013,\r
++      0x1128, 0x6004, 0x9082, 0x0040, 0x0804, 0xaf25, 0x9186, 0x0027,\r
++      0x1520, 0x080c, 0x886e, 0x080c, 0x2fda, 0x080c, 0xc227, 0x0096,\r
++      0x6114, 0x2148, 0x080c, 0xbb17, 0x0198, 0x080c, 0xbd1d, 0x1118,\r
++      0x080c, 0xa7c0, 0x0068, 0xa867, 0x0103, 0xa87b, 0x0029, 0xa877,\r
++      0x0000, 0xa97c, 0xc1c5, 0xa97e, 0x080c, 0x688c, 0x080c, 0xbd00,\r
++      0x009e, 0x080c, 0x9e32, 0x0804, 0x8973, 0x9186, 0x0014, 0x1120,\r
++      0x6004, 0x9082, 0x0040, 0x04a0, 0x9186, 0x0046, 0x0150, 0x9186,\r
++      0x0045, 0x0138, 0x9186, 0x0053, 0x0120, 0x9186, 0x0048, 0x190c,\r
++      0x0db4, 0x2001, 0x0109, 0x2004, 0xd084, 0x0508, 0x0126, 0x2091,\r
++      0x2800, 0x0006, 0x0016, 0x0026, 0x0036, 0x00f6, 0x00e6, 0x00c6,\r
++      0x2079, 0x19b8, 0x2071, 0x1800, 0x2061, 0x0100, 0x080c, 0x82dd,\r
++      0x00ce, 0x00ee, 0x00fe, 0x003e, 0x002e, 0x001e, 0x000e, 0x012e,\r
++      0xa001, 0x6000, 0x9086, 0x0002, 0x1110, 0x0804, 0xaf63, 0x0005,\r
++      0x0002, 0xaeff, 0xaefd, 0xaefd, 0xaefd, 0xaefd, 0xaefd, 0xaefd,\r
++      0xaefd, 0xaefd, 0xaefd, 0xaefd, 0xaf1a, 0xaf1a, 0xaf1a, 0xaf1a,\r
++      0xaefd, 0xaf1a, 0xaefd, 0xaf1a, 0xaefd, 0x080c, 0x0db4, 0x080c,\r
++      0x886e, 0x0096, 0x6114, 0x2148, 0x080c, 0xbb17, 0x0168, 0xa867,\r
++      0x0103, 0xa87b, 0x0006, 0xa877, 0x0000, 0xa880, 0xc0ec, 0xa882,\r
++      0x080c, 0x688c, 0x080c, 0xbd00, 0x009e, 0x080c, 0x9e32, 0x080c,\r
++      0x8973, 0x0005, 0x080c, 0x886e, 0x080c, 0xbd1d, 0x090c, 0xa7c0,\r
++      0x080c, 0x9e32, 0x080c, 0x8973, 0x0005, 0x0002, 0xaf3c, 0xaf3a,\r
++      0xaf3a, 0xaf3a, 0xaf3a, 0xaf3a, 0xaf3a, 0xaf3a, 0xaf3a, 0xaf3a,\r
++      0xaf3a, 0xaf53, 0xaf53, 0xaf53, 0xaf53, 0xaf3a, 0xaf5d, 0xaf3a,\r
++      0xaf53, 0xaf3a, 0x080c, 0x0db4, 0x0096, 0x080c, 0x886e, 0x6014,\r
++      0x2048, 0x2001, 0x1959, 0x2004, 0x6042, 0xa97c, 0xd1ac, 0x0140,\r
++      0x6003, 0x0004, 0xa87c, 0x9085, 0x0400, 0xa87e, 0x009e, 0x0005,\r
++      0x6003, 0x0002, 0x0cb8, 0x080c, 0x886e, 0x080c, 0xc22a, 0x080c,\r
++      0xc22f, 0x6003, 0x000f, 0x0804, 0x8973, 0x080c, 0x886e, 0x080c,\r
++      0x9e32, 0x0804, 0x8973, 0x9182, 0x0054, 0x1220, 0x9182, 0x0040,\r
++      0x0208, 0x000a, 0x0005, 0xaf7f, 0xaf7f, 0xaf7f, 0xaf7f, 0xaf7f,\r
++      0xaf81, 0xb05e, 0xaf7f, 0xb092, 0xaf7f, 0xaf7f, 0xaf7f, 0xaf7f,\r
++      0xaf7f, 0xaf7f, 0xaf7f, 0xaf7f, 0xaf7f, 0xaf7f, 0xb092, 0x080c,\r
++      0x0db4, 0x00b6, 0x0096, 0x6114, 0x2148, 0x7644, 0x96b4, 0x0fff,\r
++      0x86ff, 0x1528, 0x6010, 0x2058, 0xb800, 0xd0bc, 0x1904, 0xb04d,\r
++      0xa87b, 0x0000, 0xa867, 0x0103, 0xae76, 0xa87c, 0xd0ac, 0x0128,\r
++      0xa834, 0xa938, 0x9115, 0x190c, 0xb227, 0x080c, 0x66a7, 0x6210,\r
++      0x2258, 0xba3c, 0x82ff, 0x0110, 0x8211, 0xba3e, 0x7044, 0xd0e4,\r
++      0x1904, 0xb031, 0x080c, 0x9e32, 0x009e, 0x00be, 0x0005, 0x968c,\r
++      0x0c00, 0x0150, 0x6010, 0x2058, 0xb800, 0xd0bc, 0x1904, 0xb035,\r
++      0x7348, 0xab92, 0x734c, 0xab8e, 0x968c, 0x00ff, 0x9186, 0x0002,\r
++      0x0508, 0x9186, 0x0028, 0x1118, 0xa87b, 0x001c, 0x00e8, 0xd6dc,\r
++      0x01a0, 0xa87b, 0x0015, 0xa87c, 0xd0ac, 0x0170, 0xa938, 0xaa34,\r
++      0x2100, 0x9205, 0x0148, 0x7048, 0x9106, 0x1118, 0x704c, 0x9206,\r
++      0x0118, 0xa992, 0xaa8e, 0xc6dc, 0x0038, 0xd6d4, 0x0118, 0xa87b,\r
++      0x0007, 0x0010, 0xa87b, 0x0000, 0xa867, 0x0103, 0xae76, 0x901e,\r
++      0xd6c4, 0x01d8, 0x9686, 0x0100, 0x1130, 0x7064, 0x9005, 0x1118,\r
++      0xc6c4, 0x0804, 0xaf88, 0x735c, 0xab86, 0x83ff, 0x0170, 0x938a,\r
++      0x0009, 0x0210, 0x2019, 0x0008, 0x0036, 0x2308, 0x2019, 0x0018,\r
++      0x2011, 0x0025, 0x080c, 0xb712, 0x003e, 0xd6cc, 0x0904, 0xaf9d,\r
++      0x7154, 0xa98a, 0x81ff, 0x0904, 0xaf9d, 0x9192, 0x0021, 0x1278,\r
++      0x8304, 0x9098, 0x0018, 0x2011, 0x0029, 0x080c, 0xb712, 0x2011,\r
++      0x0205, 0x2013, 0x0000, 0x080c, 0xc1b7, 0x0804, 0xaf9d, 0xa868,\r
++      0xd0fc, 0x0120, 0x2009, 0x0020, 0xa98a, 0x0c50, 0x00a6, 0x2950,\r
++      0x080c, 0xb6b1, 0x00ae, 0x080c, 0xc1b7, 0x080c, 0xb702, 0x0804,\r
++      0xaf9f, 0x080c, 0xbe10, 0x0804, 0xafac, 0xa87c, 0xd0ac, 0x0904,\r
++      0xafb8, 0xa880, 0xd0bc, 0x1904, 0xafb8, 0x7348, 0xa838, 0x9306,\r
++      0x11c8, 0x734c, 0xa834, 0x931e, 0x0904, 0xafb8, 0xd6d4, 0x0190,\r
++      0xab38, 0x9305, 0x0904, 0xafb8, 0x0068, 0xa87c, 0xd0ac, 0x0904,\r
++      0xaf90, 0xa838, 0xa934, 0x9105, 0x0904, 0xaf90, 0xa880, 0xd0bc,\r
++      0x1904, 0xaf90, 0x080c, 0xbe4a, 0x0804, 0xafac, 0x0096, 0x00f6,\r
++      0x6003, 0x0003, 0x6007, 0x0043, 0x2079, 0x026c, 0x7c04, 0x7b00,\r
++      0x7e0c, 0x7d08, 0x6014, 0x2048, 0xa87c, 0xd0ac, 0x0140, 0x6003,\r
++      0x0002, 0x00fe, 0x009e, 0x0005, 0x2130, 0x2228, 0x0058, 0x2400,\r
++      0xa9ac, 0x910a, 0x2300, 0xaab0, 0x9213, 0x2600, 0x9102, 0x2500,\r
++      0x9203, 0x0e90, 0xac36, 0xab3a, 0xae46, 0xad4a, 0x00fe, 0x6043,\r
++      0x0000, 0x2c10, 0x080c, 0x1a5c, 0x080c, 0x8456, 0x080c, 0x8a4e,\r
++      0x009e, 0x0005, 0x0005, 0x9182, 0x0054, 0x1220, 0x9182, 0x0040,\r
++      0x0208, 0x000a, 0x0005, 0xb0af, 0xb0af, 0xb0af, 0xb0af, 0xb0af,\r
++      0xb0b1, 0xb147, 0xb0af, 0xb0af, 0xb15e, 0xb1ea, 0xb0af, 0xb0af,\r
++      0xb0af, 0xb0af, 0xb1ff, 0xb0af, 0xb0af, 0xb0af, 0xb0af, 0x080c,\r
++      0x0db4, 0x0076, 0x00a6, 0x00e6, 0x0096, 0x2071, 0x0260, 0x6114,\r
++      0x2150, 0x7644, 0xb676, 0x96b4, 0x0fff, 0xb77c, 0xc7e5, 0xb77e,\r
++      0x6210, 0x00b6, 0x2258, 0xba3c, 0x82ff, 0x0110, 0x8211, 0xba3e,\r
++      0x00be, 0x86ff, 0x0904, 0xb142, 0x9694, 0xff00, 0x9284, 0x0c00,\r
++      0x0120, 0x7048, 0xb092, 0x704c, 0xb08e, 0x9284, 0x0300, 0x0904,\r
++      0xb142, 0x080c, 0x0feb, 0x090c, 0x0db4, 0x2900, 0xb07a, 0xb77c,\r
++      0xc7cd, 0xb77e, 0xa867, 0x0103, 0xb068, 0xa86a, 0xb06c, 0xa86e,\r
++      0xb070, 0xa872, 0xae76, 0x968c, 0x0c00, 0x0120, 0x7348, 0xab92,\r
++      0x734c, 0xab8e, 0x968c, 0x00ff, 0x9186, 0x0002, 0x0180, 0x9186,\r
++      0x0028, 0x1118, 0xa87b, 0x001c, 0x0060, 0xd6dc, 0x0118, 0xa87b,\r
++      0x0015, 0x0038, 0xd6d4, 0x0118, 0xa87b, 0x0007, 0x0010, 0xa87b,\r
++      0x0000, 0xaf7e, 0xb080, 0xa882, 0xb084, 0xa886, 0x901e, 0xd6c4,\r
++      0x0190, 0x735c, 0xab86, 0x83ff, 0x0170, 0x938a, 0x0009, 0x0210,\r
++      0x2019, 0x0008, 0x0036, 0x2308, 0x2019, 0x0018, 0x2011, 0x0025,\r
++      0x080c, 0xb712, 0x003e, 0xd6cc, 0x01e8, 0x7154, 0xa98a, 0x81ff,\r
++      0x01c8, 0x9192, 0x0021, 0x1260, 0x8304, 0x9098, 0x0018, 0x2011,\r
++      0x0029, 0x080c, 0xb712, 0x2011, 0x0205, 0x2013, 0x0000, 0x0050,\r
++      0xb068, 0xd0fc, 0x0120, 0x2009, 0x0020, 0xa98a, 0x0c68, 0x2950,\r
++      0x080c, 0xb6b1, 0x009e, 0x00ee, 0x00ae, 0x007e, 0x0005, 0x00f6,\r
++      0x00a6, 0x6003, 0x0003, 0x2079, 0x026c, 0x7c04, 0x7b00, 0x7e0c,\r
++      0x7d08, 0x6014, 0x2050, 0xb436, 0xb33a, 0xb646, 0xb54a, 0x00ae,\r
++      0x00fe, 0x2c10, 0x080c, 0x1a5c, 0x0804, 0x9379, 0x6003, 0x0002,\r
++      0x6004, 0x9086, 0x0040, 0x11c8, 0x0096, 0x6014, 0x2048, 0xa87c,\r
++      0xd0ac, 0x0160, 0x601c, 0xd084, 0x1130, 0x00f6, 0x2c00, 0x2078,\r
++      0x080c, 0x1648, 0x00fe, 0x6003, 0x0004, 0x0010, 0x6003, 0x0002,\r
++      0x009e, 0x080c, 0x886e, 0x080c, 0x8973, 0x0096, 0x2001, 0x1959,\r
++      0x2004, 0x6042, 0x080c, 0x8923, 0x080c, 0x8a4e, 0x6114, 0x2148,\r
++      0xa97c, 0xd1e4, 0x0904, 0xb1e5, 0xd1cc, 0x05a8, 0xa978, 0xa868,\r
++      0xd0fc, 0x0538, 0x0016, 0xa87c, 0x0006, 0xa880, 0x0006, 0xa860,\r
++      0x20e8, 0xa85c, 0x9080, 0x0019, 0x20a0, 0x810e, 0x810e, 0x810f,\r
++      0x9184, 0x003f, 0x20e0, 0x9184, 0xffc0, 0x9080, 0x0019, 0x2098,\r
++      0x0156, 0x20a9, 0x0020, 0x4003, 0x015e, 0x000e, 0xa882, 0x000e,\r
++      0xa87e, 0x001e, 0xa874, 0x0006, 0x2148, 0x080c, 0x0f9d, 0x001e,\r
++      0x0440, 0x0016, 0x080c, 0x0f9d, 0x009e, 0xa974, 0x0016, 0x080c,\r
++      0xb702, 0x001e, 0x00f0, 0xa867, 0x0103, 0xa974, 0x9184, 0x00ff,\r
++      0x90b6, 0x0002, 0x0180, 0x9086, 0x0028, 0x1118, 0xa87b, 0x001c,\r
++      0x0060, 0xd1dc, 0x0118, 0xa87b, 0x0015, 0x0038, 0xd1d4, 0x0118,\r
++      0xa87b, 0x0007, 0x0010, 0xa87b, 0x0000, 0x0016, 0x080c, 0x66a7,\r
++      0x001e, 0xd1e4, 0x1120, 0x080c, 0x9e32, 0x009e, 0x0005, 0x080c,\r
++      0xbe10, 0x0cd8, 0x6004, 0x9086, 0x0040, 0x1120, 0x080c, 0x886e,\r
++      0x080c, 0x8973, 0x2019, 0x0001, 0x080c, 0x96d8, 0x6003, 0x0002,\r
++      0x080c, 0xc22f, 0x080c, 0x8923, 0x080c, 0x8a4e, 0x0005, 0x6004,\r
++      0x9086, 0x0040, 0x1120, 0x080c, 0x886e, 0x080c, 0x8973, 0x2019,\r
++      0x0001, 0x080c, 0x96d8, 0x080c, 0x8923, 0x080c, 0x2fda, 0x080c,\r
++      0xc227, 0x0096, 0x6114, 0x2148, 0x080c, 0xbb17, 0x0150, 0xa867,\r
++      0x0103, 0xa87b, 0x0029, 0xa877, 0x0000, 0x080c, 0x688c, 0x080c,\r
++      0xbd00, 0x009e, 0x080c, 0x9e32, 0x080c, 0x8a4e, 0x0005, 0xa87b,\r
++      0x0015, 0xd1fc, 0x0180, 0xa87b, 0x0007, 0x8002, 0x8000, 0x810a,\r
++      0x9189, 0x0000, 0x0006, 0x0016, 0x2009, 0x1a4a, 0x2104, 0x8000,\r
++      0x200a, 0x001e, 0x000e, 0xa992, 0xa88e, 0x0005, 0x9182, 0x0054,\r
++      0x1220, 0x9182, 0x0040, 0x0208, 0x000a, 0x0005, 0xb25a, 0xb25a,\r
++      0xb25a, 0xb25a, 0xb25a, 0xb25c, 0xb25a, 0xb25a, 0xb302, 0xb25a,\r
++      0xb25a, 0xb25a, 0xb25a, 0xb25a, 0xb25a, 0xb25a, 0xb25a, 0xb25a,\r
++      0xb25a, 0xb433, 0x080c, 0x0db4, 0x0076, 0x00a6, 0x00e6, 0x0096,\r
++      0x2071, 0x0260, 0x6114, 0x2150, 0x7644, 0xb676, 0x96b4, 0x0fff,\r
++      0xb77c, 0xc7e5, 0xb77e, 0x6210, 0x00b6, 0x2258, 0xba3c, 0x82ff,\r
++      0x0110, 0x8211, 0xba3e, 0x00be, 0x86ff, 0x0904, 0xb2fb, 0x9694,\r
++      0xff00, 0x9284, 0x0c00, 0x0120, 0x7048, 0xb092, 0x704c, 0xb08e,\r
++      0x9284, 0x0300, 0x0904, 0xb2fb, 0x9686, 0x0100, 0x1130, 0x7064,\r
++      0x9005, 0x1118, 0xc6c4, 0xb676, 0x0c38, 0x080c, 0x0feb, 0x090c,\r
++      0x0db4, 0x2900, 0xb07a, 0xb77c, 0x97bd, 0x0200, 0xb77e, 0xa867,\r
++      0x0103, 0xb068, 0xa86a, 0xb06c, 0xa86e, 0xb070, 0xa872, 0x7044,\r
++      0x9084, 0xf000, 0x9635, 0xae76, 0x968c, 0x0c00, 0x0120, 0x7348,\r
++      0xab92, 0x734c, 0xab8e, 0x968c, 0x00ff, 0x9186, 0x0002, 0x0180,\r
++      0x9186, 0x0028, 0x1118, 0xa87b, 0x001c, 0x0060, 0xd6dc, 0x0118,\r
++      0xa87b, 0x0015, 0x0038, 0xd6d4, 0x0118, 0xa87b, 0x0007, 0x0010,\r
++      0xa87b, 0x0000, 0xaf7e, 0xb080, 0xa882, 0xb084, 0xa886, 0x901e,\r
++      0xd6c4, 0x0190, 0x735c, 0xab86, 0x83ff, 0x0170, 0x938a, 0x0009,\r
++      0x0210, 0x2019, 0x0008, 0x0036, 0x2308, 0x2019, 0x0018, 0x2011,\r
++      0x0025, 0x080c, 0xb712, 0x003e, 0xd6cc, 0x01e8, 0x7154, 0xa98a,\r
++      0x81ff, 0x01c8, 0x9192, 0x0021, 0x1260, 0x8304, 0x9098, 0x0018,\r
++      0x2011, 0x0029, 0x080c, 0xb712, 0x2011, 0x0205, 0x2013, 0x0000,\r
++      0x0050, 0xb068, 0xd0fc, 0x0120, 0x2009, 0x0020, 0xa98a, 0x0c68,\r
++      0x2950, 0x080c, 0xb6b1, 0x080c, 0x18eb, 0x009e, 0x00ee, 0x00ae,\r
++      0x007e, 0x0005, 0x2001, 0x1959, 0x2004, 0x6042, 0x0096, 0x6114,\r
++      0x2148, 0xa83c, 0xa940, 0x9105, 0x1118, 0xa87c, 0xc0dc, 0xa87e,\r
++      0x6003, 0x0002, 0xa97c, 0xd1e4, 0x0904, 0xb42e, 0x6043, 0x0000,\r
++      0x6010, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc, 0x1500, 0xd1cc,\r
++      0x0904, 0xb3fd, 0xa978, 0xa868, 0xd0fc, 0x0904, 0xb3be, 0x0016,\r
++      0xa87c, 0x0006, 0xa880, 0x0006, 0x00a6, 0x2150, 0xb174, 0x9184,\r
++      0x00ff, 0x90b6, 0x0002, 0x0904, 0xb38c, 0x9086, 0x0028, 0x1904,\r
++      0xb378, 0xa87b, 0x001c, 0xb07b, 0x001c, 0x0804, 0xb394, 0x6024,\r
++      0xd0f4, 0x11d0, 0xa838, 0xaa34, 0x9205, 0x09c8, 0xa838, 0xaa90,\r
++      0x9206, 0x1120, 0xa88c, 0xaa34, 0x9206, 0x0988, 0x6024, 0xd0d4,\r
++      0x1148, 0xa9ac, 0xa834, 0x9102, 0x603a, 0xa9b0, 0xa838, 0x9103,\r
++      0x603e, 0x6024, 0xc0f5, 0x6026, 0x6010, 0x00b6, 0x2058, 0xb83c,\r
++      0x8000, 0xb83e, 0x00be, 0x9006, 0xa876, 0xa892, 0xa88e, 0xa87c,\r
++      0xc0e4, 0xa87e, 0xd0cc, 0x0140, 0xc0cc, 0xa87e, 0x0096, 0xa878,\r
++      0x2048, 0x080c, 0x0f9d, 0x009e, 0x080c, 0xbe4a, 0x0804, 0xb42e,\r
++      0xd1dc, 0x0158, 0xa87b, 0x0015, 0xb07b, 0x0015, 0x080c, 0xc0da,\r
++      0x0118, 0xb174, 0xc1dc, 0xb176, 0x0078, 0xd1d4, 0x0128, 0xa87b,\r
++      0x0007, 0xb07b, 0x0007, 0x0040, 0xa87c, 0xd0ac, 0x0128, 0xa834,\r
++      0xa938, 0x9115, 0x190c, 0xb227, 0xa87c, 0xb07e, 0xa890, 0xb092,\r
++      0xa88c, 0xb08e, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0019, 0x20a0,\r
++      0x20a9, 0x0020, 0x8a06, 0x8006, 0x8007, 0x9094, 0x003f, 0x22e0,\r
++      0x9084, 0xffc0, 0x9080, 0x0019, 0x2098, 0x4003, 0x00ae, 0x000e,\r
++      0xa882, 0x000e, 0xa87e, 0x080c, 0xc1b7, 0x001e, 0xa874, 0x0006,\r
++      0x2148, 0x080c, 0x0f9d, 0x001e, 0x0804, 0xb42a, 0x0016, 0x00a6,\r
++      0x2150, 0xb174, 0x9184, 0x00ff, 0x90b6, 0x0002, 0x01e0, 0x9086,\r
++      0x0028, 0x1128, 0xa87b, 0x001c, 0xb07b, 0x001c, 0x00e0, 0xd1dc,\r
++      0x0158, 0xa87b, 0x0015, 0xb07b, 0x0015, 0x080c, 0xc0da, 0x0118,\r
++      0xb174, 0xc1dc, 0xb176, 0x0078, 0xd1d4, 0x0128, 0xa87b, 0x0007,\r
++      0xb07b, 0x0007, 0x0040, 0xa87c, 0xd0ac, 0x0128, 0xa834, 0xa938,\r
++      0x9115, 0x190c, 0xb227, 0xa890, 0xb092, 0xa88c, 0xb08e, 0xa87c,\r
++      0xb07e, 0x00ae, 0x080c, 0x0f9d, 0x009e, 0x080c, 0xc1b7, 0xa974,\r
++      0x0016, 0x080c, 0xb702, 0x001e, 0x0468, 0xa867, 0x0103, 0xa974,\r
++      0x9184, 0x00ff, 0x90b6, 0x0002, 0x01b0, 0x9086, 0x0028, 0x1118,\r
++      0xa87b, 0x001c, 0x00d0, 0xd1dc, 0x0148, 0xa87b, 0x0015, 0x080c,\r
++      0xc0da, 0x0118, 0xa974, 0xc1dc, 0xa976, 0x0078, 0xd1d4, 0x0118,\r
++      0xa87b, 0x0007, 0x0050, 0xa87b, 0x0000, 0xa87c, 0xd0ac, 0x0128,\r
++      0xa834, 0xa938, 0x9115, 0x190c, 0xb227, 0xa974, 0x0016, 0x080c,\r
++      0x66a7, 0x001e, 0xd1e4, 0x1120, 0x080c, 0x9e32, 0x009e, 0x0005,\r
++      0x080c, 0xbe10, 0x0cd8, 0x6114, 0x0096, 0x2148, 0xa97c, 0xd1e4,\r
++      0x190c, 0x18f9, 0x009e, 0x0005, 0x080c, 0x886e, 0x0010, 0x080c,\r
++      0x8923, 0x080c, 0xbb17, 0x01f0, 0x0096, 0x6114, 0x2148, 0x080c,\r
++      0xbd1d, 0x1118, 0x080c, 0xa7c0, 0x00a0, 0xa867, 0x0103, 0x2009,\r
++      0x180c, 0x210c, 0xd18c, 0x11b8, 0xd184, 0x1190, 0x6108, 0xa97a,\r
++      0x918e, 0x0029, 0x1110, 0x080c, 0xd7d3, 0xa877, 0x0000, 0x080c,\r
++      0x688c, 0x009e, 0x080c, 0x9e32, 0x080c, 0x8973, 0x0804, 0x8a4e,\r
++      0xa87b, 0x0004, 0x0c90, 0xa87b, 0x0004, 0x0c78, 0x9182, 0x0054,\r
++      0x1220, 0x9182, 0x0040, 0x0208, 0x000a, 0x0005, 0xb48a, 0xb48a,\r
++      0xb48a, 0xb48a, 0xb48a, 0xb48c, 0xb48a, 0xb48a, 0xb48a, 0xb48a,\r
++      0xb48a, 0xb48a, 0xb48a, 0xb48a, 0xb48a, 0xb48a, 0xb48a, 0xb48a,\r
++      0xb48a, 0xb48a, 0x080c, 0x0db4, 0x080c, 0x538e, 0x01f8, 0x6014,\r
++      0x7144, 0x918c, 0x0fff, 0x9016, 0xd1c4, 0x0118, 0x7264, 0x9294,\r
++      0x00ff, 0x0096, 0x904d, 0x0188, 0xa87b, 0x0000, 0xa864, 0x9086,\r
++      0x0139, 0x0128, 0xa867, 0x0103, 0xa976, 0xaa96, 0x0030, 0xa897,\r
++      0x4000, 0xa99a, 0xaa9e, 0x080c, 0x688c, 0x009e, 0x0804, 0x9e32,\r
++      0x9182, 0x0085, 0x0002, 0xb4c2, 0xb4c0, 0xb4c0, 0xb4ce, 0xb4c0,\r
++      0xb4c0, 0xb4c0, 0xb4c0, 0xb4c0, 0xb4c0, 0xb4c0, 0xb4c0, 0xb4c0,\r
++      0x080c, 0x0db4, 0x6003, 0x0001, 0x6106, 0x080c, 0x83f1, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0x8973, 0x012e, 0x0005, 0x0026, 0x0056,\r
++      0x00d6, 0x00e6, 0x2071, 0x0260, 0x7224, 0x6216, 0x7220, 0x080c,\r
++      0xbb05, 0x01a0, 0x2268, 0x6800, 0x9086, 0x0000, 0x0178, 0x6010,\r
++      0x6d10, 0x952e, 0x1158, 0x00c6, 0x2d60, 0x080c, 0xb73d, 0x00ce,\r
++      0x0128, 0x6803, 0x0002, 0x6007, 0x0086, 0x0010, 0x6007, 0x0087,\r
++      0x6003, 0x0001, 0x080c, 0x83f1, 0x080c, 0x8973, 0x9280, 0x0004,\r
++      0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc, 0x0140, 0x6824, 0xd0ec,\r
++      0x0128, 0x00c6, 0x2260, 0x080c, 0xbe4a, 0x00ce, 0x00ee, 0x00de,\r
++      0x005e, 0x002e, 0x0005, 0x9186, 0x0013, 0x1160, 0x6004, 0x908a,\r
++      0x0085, 0x0a0c, 0x0db4, 0x908a, 0x0092, 0x1a0c, 0x0db4, 0x9082,\r
++      0x0085, 0x00e2, 0x9186, 0x0027, 0x0120, 0x9186, 0x0014, 0x190c,\r
++      0x0db4, 0x080c, 0x886e, 0x0096, 0x6014, 0x2048, 0x080c, 0xbb17,\r
++      0x0140, 0xa867, 0x0103, 0xa877, 0x0000, 0xa87b, 0x0029, 0x080c,\r
++      0x688c, 0x009e, 0x080c, 0x9e62, 0x0804, 0x8973, 0xb543, 0xb545,\r
++      0xb545, 0xb543, 0xb543, 0xb543, 0xb543, 0xb543, 0xb543, 0xb543,\r
++      0xb543, 0xb543, 0xb543, 0x080c, 0x0db4, 0x080c, 0x886e, 0x080c,\r
++      0x9e62, 0x080c, 0x8973, 0x0005, 0x9186, 0x0013, 0x1128, 0x6004,\r
++      0x9082, 0x0085, 0x2008, 0x04b8, 0x9186, 0x0027, 0x11f8, 0x080c,\r
++      0x886e, 0x080c, 0x2fda, 0x080c, 0xc227, 0x0096, 0x6014, 0x2048,\r
++      0x080c, 0xbb17, 0x0150, 0xa867, 0x0103, 0xa877, 0x0000, 0xa87b,\r
++      0x0029, 0x080c, 0x688c, 0x080c, 0xbd00, 0x009e, 0x080c, 0x9e32,\r
++      0x080c, 0x8973, 0x0005, 0x080c, 0x9ec7, 0x0ce0, 0x9186, 0x0014,\r
++      0x1dd0, 0x080c, 0x886e, 0x0096, 0x6014, 0x2048, 0x080c, 0xbb17,\r
++      0x0d60, 0xa867, 0x0103, 0xa877, 0x0000, 0xa87b, 0x0006, 0xa880,\r
++      0xc0ec, 0xa882, 0x08f0, 0x0002, 0xb59b, 0xb599, 0xb599, 0xb599,\r
++      0xb599, 0xb599, 0xb5b3, 0xb599, 0xb599, 0xb599, 0xb599, 0xb599,\r
++      0xb599, 0x080c, 0x0db4, 0x080c, 0x886e, 0x6034, 0x908c, 0xff00,\r
++      0x810f, 0x9186, 0x0039, 0x0118, 0x9186, 0x0035, 0x1118, 0x2001,\r
++      0x1957, 0x0010, 0x2001, 0x1958, 0x2004, 0x601a, 0x6003, 0x000c,\r
++      0x080c, 0x8973, 0x0005, 0x080c, 0x886e, 0x6034, 0x908c, 0xff00,\r
++      0x810f, 0x9186, 0x0039, 0x0118, 0x9186, 0x0035, 0x1118, 0x2001,\r
++      0x1957, 0x0010, 0x2001, 0x1958, 0x2004, 0x601a, 0x6003, 0x000e,\r
++      0x080c, 0x8973, 0x0005, 0x9182, 0x0092, 0x1220, 0x9182, 0x0085,\r
++      0x0208, 0x0012, 0x0804, 0x9ec7, 0xb5e1, 0xb5e1, 0xb5e1, 0xb5e1,\r
++      0xb5e3, 0xb630, 0xb5e1, 0xb5e1, 0xb5e1, 0xb5e1, 0xb5e1, 0xb5e1,\r
++      0xb5e1, 0x080c, 0x0db4, 0x0096, 0x6010, 0x00b6, 0x2058, 0xb800,\r
++      0x00be, 0xd0bc, 0x0168, 0x6034, 0x908c, 0xff00, 0x810f, 0x9186,\r
++      0x0039, 0x0118, 0x9186, 0x0035, 0x1118, 0x009e, 0x0804, 0xb644,\r
++      0x080c, 0xbb17, 0x1118, 0x080c, 0xbd00, 0x0068, 0x6014, 0x2048,\r
++      0xa87c, 0xd0e4, 0x1110, 0x080c, 0xbd00, 0xa867, 0x0103, 0x080c,\r
++      0xc1f2, 0x080c, 0x688c, 0x00d6, 0x2c68, 0x080c, 0x9ddc, 0x01d0,\r
++      0x6003, 0x0001, 0x6007, 0x001e, 0x600b, 0xffff, 0x2009, 0x026e,\r
++      0x210c, 0x613a, 0x2009, 0x026f, 0x210c, 0x613e, 0x6910, 0x6112,\r
++      0x080c, 0xbf8c, 0x6954, 0x6156, 0x6023, 0x0001, 0x080c, 0x83f1,\r
++      0x080c, 0x8973, 0x2d60, 0x00de, 0x080c, 0x9e32, 0x009e, 0x0005,\r
++      0x6010, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc, 0x05a0, 0x6034,\r
++      0x908c, 0xff00, 0x810f, 0x9186, 0x0035, 0x0130, 0x9186, 0x001e,\r
++      0x0118, 0x9186, 0x0039, 0x1538, 0x00d6, 0x2c68, 0x080c, 0xc18a,\r
++      0x11f0, 0x080c, 0x9ddc, 0x01d8, 0x6106, 0x6003, 0x0001, 0x6023,\r
++      0x0001, 0x6910, 0x6112, 0x692c, 0x612e, 0x6930, 0x6132, 0x6934,\r
++      0x918c, 0x00ff, 0x6136, 0x6938, 0x613a, 0x693c, 0x613e, 0x6954,\r
++      0x6156, 0x080c, 0xbf8c, 0x080c, 0x83f1, 0x080c, 0x8973, 0x2d60,\r
++      0x00de, 0x0804, 0x9e32, 0x0096, 0x6014, 0x2048, 0x080c, 0xbb17,\r
++      0x01c8, 0xa867, 0x0103, 0xa880, 0xd0b4, 0x0128, 0xc0ec, 0xa882,\r
++      0xa87b, 0x0006, 0x0048, 0xd0bc, 0x0118, 0xa87b, 0x0002, 0x0020,\r
++      0xa87b, 0x0005, 0x080c, 0xbe0c, 0xa877, 0x0000, 0x080c, 0x688c,\r
++      0x080c, 0xbd00, 0x009e, 0x0804, 0x9e32, 0x0016, 0x0096, 0x6014,\r
++      0x2048, 0x080c, 0xbb17, 0x0140, 0xa867, 0x0103, 0xa87b, 0x0028,\r
++      0xa877, 0x0000, 0x080c, 0x688c, 0x009e, 0x001e, 0x9186, 0x0013,\r
++      0x0148, 0x9186, 0x0014, 0x0130, 0x9186, 0x0027, 0x0118, 0x080c,\r
++      0x9ec7, 0x0030, 0x080c, 0x886e, 0x080c, 0x9e62, 0x080c, 0x8973,\r
++      0x0005, 0x0056, 0x0066, 0x0096, 0x00a6, 0x2029, 0x0001, 0x9182,\r
++      0x0101, 0x1208, 0x0010, 0x2009, 0x0100, 0x2130, 0x8304, 0x9098,\r
++      0x0018, 0x2009, 0x0020, 0x2011, 0x0029, 0x080c, 0xb712, 0x96b2,\r
++      0x0020, 0xb004, 0x904d, 0x0110, 0x080c, 0x0f9d, 0x080c, 0x0feb,\r
++      0x0520, 0x8528, 0xa867, 0x0110, 0xa86b, 0x0000, 0x2920, 0xb406,\r
++      0x968a, 0x003d, 0x1228, 0x2608, 0x2011, 0x001b, 0x0499, 0x00a8,\r
++      0x96b2, 0x003c, 0x2009, 0x003c, 0x2950, 0x2011, 0x001b, 0x0451,\r
++      0x0c28, 0x2001, 0x0205, 0x2003, 0x0000, 0x00ae, 0x852f, 0x95ad,\r
++      0x0003, 0xb566, 0x95ac, 0x0000, 0x0048, 0x2001, 0x0205, 0x2003,\r
++      0x0000, 0x00ae, 0x852f, 0x95ad, 0x0003, 0xb566, 0x009e, 0x006e,\r
++      0x005e, 0x0005, 0x00a6, 0x89ff, 0x0158, 0xa804, 0x9055, 0x0130,\r
++      0xa807, 0x0000, 0x080c, 0x688c, 0x2a48, 0x0cb8, 0x080c, 0x688c,\r
++      0x00ae, 0x0005, 0x00f6, 0x2079, 0x0200, 0x7814, 0x9085, 0x0080,\r
++      0x7816, 0xd184, 0x0108, 0x8108, 0x810c, 0x20a9, 0x0001, 0xa860,\r
++      0x20e8, 0xa85c, 0x9200, 0x20a0, 0x20e1, 0x0000, 0x2300, 0x9e00,\r
++      0x2098, 0x4003, 0x8318, 0x9386, 0x0020, 0x1148, 0x2018, 0x2300,\r
++      0x9e00, 0x2098, 0x7814, 0x8000, 0x9085, 0x0080, 0x7816, 0x8109,\r
++      0x1d80, 0x7817, 0x0000, 0x00fe, 0x0005, 0x0066, 0x0126, 0x2091,\r
++      0x8000, 0x2031, 0x0001, 0x6020, 0x9084, 0x000f, 0x0083, 0x012e,\r
++      0x006e, 0x0005, 0x0126, 0x2091, 0x8000, 0x0066, 0x2031, 0x0000,\r
++      0x6020, 0x9084, 0x000f, 0x001b, 0x006e, 0x012e, 0x0005, 0xb778,\r
++      0xb778, 0xb773, 0xb79a, 0xb766, 0xb773, 0xb79a, 0xb773, 0xb766,\r
++      0xb766, 0xb773, 0xb773, 0xb773, 0xb766, 0xb766, 0x080c, 0x0db4,\r
++      0x0036, 0x2019, 0x0010, 0x080c, 0xd0e5, 0x6023, 0x0006, 0x6003,\r
++      0x0007, 0x003e, 0x0005, 0x9006, 0x0005, 0x9085, 0x0001, 0x0005,\r
++      0x0096, 0x86ff, 0x11d8, 0x6014, 0x2048, 0x080c, 0xbb17, 0x01c0,\r
++      0xa864, 0x9086, 0x0139, 0x1128, 0xa87b, 0x0005, 0xa883, 0x0000,\r
++      0x0028, 0x900e, 0x2001, 0x0005, 0x080c, 0x6ac6, 0x080c, 0xbe0c,\r
++      0x080c, 0x687f, 0x080c, 0x9e62, 0x9085, 0x0001, 0x009e, 0x0005,\r
++      0x9006, 0x0ce0, 0x6000, 0x908a, 0x0016, 0x1a0c, 0x0db4, 0x0002,\r
++      0xb7b0, 0xb7de, 0xb7b2, 0xb7ff, 0xb7d9, 0xb7b0, 0xb773, 0xb778,\r
++      0xb778, 0xb773, 0xb773, 0xb773, 0xb773, 0xb773, 0xb773, 0xb773,\r
++      0x080c, 0x0db4, 0x86ff, 0x1510, 0x6020, 0x9086, 0x0006, 0x01f0,\r
++      0x0096, 0x6014, 0x2048, 0x080c, 0xbb17, 0x0158, 0xa87c, 0xd0cc,\r
++      0x0130, 0x0096, 0xa878, 0x2048, 0x080c, 0x0f9d, 0x009e, 0x080c,\r
++      0xbe0c, 0x009e, 0x080c, 0xc1cc, 0x6007, 0x0085, 0x6003, 0x000b,\r
++      0x6023, 0x0002, 0x080c, 0x83f1, 0x080c, 0x8973, 0x9085, 0x0001,\r
++      0x0005, 0x0066, 0x080c, 0x190d, 0x006e, 0x08a0, 0x00e6, 0x2071,\r
++      0x19b8, 0x7024, 0x9c06, 0x1120, 0x080c, 0x9662, 0x00ee, 0x0850,\r
++      0x6020, 0x9084, 0x000f, 0x9086, 0x0006, 0x1150, 0x0086, 0x0096,\r
++      0x2049, 0x0001, 0x2c40, 0x080c, 0x97ba, 0x009e, 0x008e, 0x0010,\r
++      0x080c, 0x955f, 0x00ee, 0x1904, 0xb7b2, 0x0804, 0xb773, 0x0036,\r
++      0x00e6, 0x2071, 0x19b8, 0x703c, 0x9c06, 0x1138, 0x901e, 0x080c,\r
++      0x96d8, 0x00ee, 0x003e, 0x0804, 0xb7b2, 0x080c, 0x98ea, 0x00ee,\r
++      0x003e, 0x1904, 0xb7b2, 0x0804, 0xb773, 0x00c6, 0x6020, 0x9084,\r
++      0x000f, 0x0013, 0x00ce, 0x0005, 0xb832, 0xb8fb, 0xba62, 0xb83c,\r
++      0x9e62, 0xb832, 0xd0d7, 0xc234, 0xb8fb, 0xb82b, 0xbae1, 0xb82b,\r
++      0xb82b, 0xb82b, 0xb82b, 0x080c, 0x0db4, 0x080c, 0xbd1d, 0x1110,\r
++      0x080c, 0xa7c0, 0x0005, 0x080c, 0x886e, 0x080c, 0x8973, 0x0804,\r
++      0x9e32, 0x601b, 0x0001, 0x0005, 0x080c, 0xbb17, 0x0130, 0x6014,\r
++      0x0096, 0x2048, 0x2c00, 0xa896, 0x009e, 0x6000, 0x908a, 0x0016,\r
++      0x1a0c, 0x0db4, 0x0002, 0xb85b, 0xb85d, 0xb881, 0xb895, 0xb8b9,\r
++      0xb85b, 0xb832, 0xb832, 0xb832, 0xb895, 0xb895, 0xb85b, 0xb85b,\r
++      0xb85b, 0xb85b, 0xb89f, 0x080c, 0x0db4, 0x00e6, 0x6014, 0x0096,\r
++      0x2048, 0xa880, 0xc0b5, 0xa882, 0x009e, 0x2071, 0x19b8, 0x7024,\r
++      0x9c06, 0x01a0, 0x080c, 0x955f, 0x080c, 0xc1cc, 0x6007, 0x0085,\r
++      0x6003, 0x000b, 0x6023, 0x0002, 0x2001, 0x1958, 0x2004, 0x601a,\r
++      0x080c, 0x83f1, 0x080c, 0x8973, 0x00ee, 0x0005, 0x601b, 0x0001,\r
++      0x0cd8, 0x0096, 0x6014, 0x2048, 0xa880, 0xc0b5, 0xa882, 0x009e,\r
++      0x080c, 0xc1cc, 0x6007, 0x0085, 0x6003, 0x000b, 0x6023, 0x0002,\r
++      0x080c, 0x83f1, 0x080c, 0x8973, 0x0005, 0x0096, 0x601b, 0x0001,\r
++      0x6014, 0x2048, 0xa880, 0xc0b5, 0xa882, 0x009e, 0x0005, 0x080c,\r
++      0x538e, 0x01a8, 0x6014, 0x0096, 0x904d, 0x0180, 0xa864, 0xa867,\r
++      0x0103, 0xa87b, 0x0006, 0x9086, 0x0139, 0x1140, 0xa867, 0x0139,\r
++      0xa897, 0x4005, 0xa89b, 0x0004, 0x080c, 0x688c, 0x009e, 0x0804,\r
++      0x9e32, 0x6014, 0x0096, 0x904d, 0x05c8, 0xa97c, 0xd1e4, 0x05b0,\r
++      0x2001, 0x180f, 0x2004, 0xd0c4, 0x0110, 0x009e, 0x0005, 0xa884,\r
++      0x009e, 0x8003, 0x800b, 0x810b, 0x9108, 0x611a, 0x2001, 0x0030,\r
++      0x2c08, 0x080c, 0x1518, 0x2001, 0x030c, 0x2004, 0x9086, 0x0041,\r
++      0x11a0, 0x6014, 0x0096, 0x904d, 0x090c, 0x0db4, 0xa880, 0xd0f4,\r
++      0x1130, 0xc0f5, 0xa882, 0x009e, 0x601b, 0x0002, 0x0070, 0x009e,\r
++      0x2001, 0x0037, 0x2c08, 0x080c, 0x1518, 0x6000, 0x9086, 0x0004,\r
++      0x1120, 0x2009, 0x0048, 0x080c, 0x9eac, 0x0005, 0x009e, 0x080c,\r
++      0x190d, 0x0804, 0xb881, 0x6000, 0x908a, 0x0016, 0x1a0c, 0x0db4,\r
++      0x000b, 0x0005, 0xb912, 0xb839, 0xb914, 0xb912, 0xb914, 0xb914,\r
++      0xb833, 0xb912, 0xb82d, 0xb82d, 0xb912, 0xb912, 0xb912, 0xb912,\r
++      0xb912, 0xb912, 0x080c, 0x0db4, 0x6010, 0x00b6, 0x2058, 0xb804,\r
++      0x9084, 0x00ff, 0x00be, 0x908a, 0x000c, 0x1a0c, 0x0db4, 0x00b6,\r
++      0x0013, 0x00be, 0x0005, 0xb92f, 0xb9fc, 0xb931, 0xb971, 0xb931,\r
++      0xb971, 0xb931, 0xb93f, 0xb92f, 0xb971, 0xb92f, 0xb960, 0x080c,\r
++      0x0db4, 0x6004, 0x908e, 0x0016, 0x05c0, 0x908e, 0x0004, 0x05a8,\r
++      0x908e, 0x0002, 0x0590, 0x908e, 0x0052, 0x0904, 0xb9f8, 0x6004,\r
++      0x080c, 0xbd1d, 0x0904, 0xba15, 0x908e, 0x0004, 0x1110, 0x080c,\r
++      0x3003, 0x908e, 0x0021, 0x0904, 0xba19, 0x908e, 0x0022, 0x0904,\r
++      0xba5d, 0x908e, 0x003d, 0x0904, 0xba19, 0x908e, 0x0039, 0x0904,\r
++      0xba1d, 0x908e, 0x0035, 0x0904, 0xba1d, 0x908e, 0x001e, 0x0178,\r
++      0x908e, 0x0001, 0x1140, 0x6010, 0x2058, 0xb804, 0x9084, 0x00ff,\r
++      0x9086, 0x0006, 0x0110, 0x080c, 0x2fda, 0x080c, 0xa7c0, 0x0804,\r
++      0x9e62, 0x00c6, 0x00d6, 0x6104, 0x9186, 0x0016, 0x0904, 0xb9e9,\r
++      0x9186, 0x0002, 0x1904, 0xb9be, 0x2001, 0x1836, 0x2004, 0xd08c,\r
++      0x11c8, 0x080c, 0x6fb2, 0x11b0, 0x080c, 0xc212, 0x0138, 0x080c,\r
++      0x6fd5, 0x1120, 0x080c, 0x6ec2, 0x0804, 0xba46, 0x2001, 0x194e,\r
++      0x2003, 0x0001, 0x2001, 0x1800, 0x2003, 0x0001, 0x080c, 0x6ee4,\r
++      0x0804, 0xba46, 0x6010, 0x2058, 0x2001, 0x1836, 0x2004, 0xd0ac,\r
++      0x1904, 0xba46, 0xb8a0, 0x9084, 0xff80, 0x1904, 0xba46, 0xb840,\r
++      0x9084, 0x00ff, 0x9005, 0x0190, 0x8001, 0xb842, 0x6017, 0x0000,\r
++      0x6023, 0x0007, 0x601b, 0x0398, 0x6043, 0x0000, 0x080c, 0x9ddc,\r
++      0x0128, 0x2b00, 0x6012, 0x6023, 0x0001, 0x0458, 0x00de, 0x00ce,\r
++      0x6004, 0x908e, 0x0002, 0x11a0, 0x6010, 0x2058, 0xb8a0, 0x9086,\r
++      0x007e, 0x1170, 0x2009, 0x1836, 0x2104, 0xc085, 0x200a, 0x00e6,\r
++      0x2071, 0x1800, 0x080c, 0x5c64, 0x00ee, 0x080c, 0xa7c0, 0x0030,\r
++      0x080c, 0xa7c0, 0x080c, 0x2fda, 0x080c, 0xc227, 0x00e6, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0x3003, 0x012e, 0x00ee, 0x080c, 0x9e62,\r
++      0x0005, 0x2001, 0x0002, 0x080c, 0x618f, 0x6003, 0x0001, 0x6007,\r
++      0x0002, 0x080c, 0x8439, 0x080c, 0x8973, 0x00de, 0x00ce, 0x0c80,\r
++      0x080c, 0x3003, 0x0804, 0xb96d, 0x00c6, 0x00d6, 0x6104, 0x9186,\r
++      0x0016, 0x0d38, 0x6010, 0x2058, 0xb840, 0x9084, 0x00ff, 0x9005,\r
++      0x0904, 0xb9be, 0x8001, 0xb842, 0x6003, 0x0001, 0x080c, 0x8439,\r
++      0x080c, 0x8973, 0x00de, 0x00ce, 0x0898, 0x080c, 0xa7c0, 0x0804,\r
++      0xb96f, 0x080c, 0xa7fc, 0x0804, 0xb96f, 0x00d6, 0x2c68, 0x6104,\r
++      0x080c, 0xc18a, 0x00de, 0x0118, 0x080c, 0x9e32, 0x00f0, 0x6004,\r
++      0x8007, 0x6134, 0x918c, 0x00ff, 0x9105, 0x6036, 0x6007, 0x0085,\r
++      0x6003, 0x000b, 0x6023, 0x0002, 0x603c, 0x600a, 0x2001, 0x1958,\r
++      0x2004, 0x601a, 0x602c, 0x2c08, 0x2060, 0x6024, 0xc0b5, 0x6026,\r
++      0x2160, 0x080c, 0x83f1, 0x080c, 0x8973, 0x0005, 0x00de, 0x00ce,\r
++      0x080c, 0xa7c0, 0x080c, 0x2fda, 0x00e6, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x3003, 0x6017, 0x0000, 0x6023, 0x0007, 0x601b, 0x0398,\r
++      0x6043, 0x0000, 0x012e, 0x00ee, 0x0005, 0x080c, 0xa261, 0x1904,\r
++      0xba15, 0x0005, 0x6000, 0x908a, 0x0016, 0x1a0c, 0x0db4, 0x0096,\r
++      0x00d6, 0x001b, 0x00de, 0x009e, 0x0005, 0xba7d, 0xba7d, 0xba7d,\r
++      0xba7d, 0xba7d, 0xba7d, 0xba7d, 0xba7d, 0xba7d, 0xb832, 0xba7d,\r
++      0xb839, 0xba7f, 0xb839, 0xba8c, 0xba7d, 0x080c, 0x0db4, 0x6004,\r
++      0x9086, 0x008b, 0x0148, 0x6007, 0x008b, 0x6003, 0x000d, 0x080c,\r
++      0x83f1, 0x080c, 0x8973, 0x0005, 0x080c, 0xc206, 0x0118, 0x080c,\r
++      0xc219, 0x0010, 0x080c, 0xc227, 0x080c, 0xbd00, 0x080c, 0xbb17,\r
++      0x0570, 0x080c, 0x2fda, 0x080c, 0xbb17, 0x0168, 0x6014, 0x2048,\r
++      0xa867, 0x0103, 0xa87b, 0x0006, 0xa877, 0x0000, 0xa880, 0xc0ed,\r
++      0xa882, 0x080c, 0x688c, 0x2c68, 0x080c, 0x9ddc, 0x0150, 0x6810,\r
++      0x6012, 0x080c, 0xbf8c, 0x00c6, 0x2d60, 0x080c, 0x9e62, 0x00ce,\r
++      0x0008, 0x2d60, 0x6017, 0x0000, 0x6023, 0x0001, 0x6007, 0x0001,\r
++      0x6003, 0x0001, 0x080c, 0x8439, 0x080c, 0x8973, 0x00c8, 0x080c,\r
++      0xc206, 0x0138, 0x6034, 0x9086, 0x4000, 0x1118, 0x080c, 0x2fda,\r
++      0x08d0, 0x6034, 0x908c, 0xff00, 0x810f, 0x9186, 0x0039, 0x0118,\r
++      0x9186, 0x0035, 0x1118, 0x080c, 0x2fda, 0x0868, 0x080c, 0x9e62,\r
++      0x0005, 0x6000, 0x908a, 0x0016, 0x1a0c, 0x0db4, 0x0002, 0xbaf7,\r
++      0xbaf7, 0xbaf9, 0xbaf9, 0xbaf9, 0xbaf7, 0xbaf7, 0x9e62, 0xbaf7,\r
++      0xbaf7, 0xbaf7, 0xbaf7, 0xbaf7, 0xbaf7, 0xbaf7, 0xbaf7, 0x080c,\r
++      0x0db4, 0x080c, 0x98ea, 0x6114, 0x0096, 0x2148, 0xa87b, 0x0006,\r
++      0x080c, 0x688c, 0x009e, 0x0804, 0x9e32, 0x9284, 0x0007, 0x1158,\r
++      0x9282, 0x1cd0, 0x0240, 0x2001, 0x1819, 0x2004, 0x9202, 0x1218,\r
++      0x9085, 0x0001, 0x0005, 0x9006, 0x0ce8, 0x0096, 0x0028, 0x0096,\r
++      0x0006, 0x6014, 0x2048, 0x000e, 0x0006, 0x9984, 0xf000, 0x9086,\r
++      0xf000, 0x0110, 0x080c, 0x1096, 0x000e, 0x009e, 0x0005, 0x00e6,\r
++      0x00c6, 0x0036, 0x0006, 0x0126, 0x2091, 0x8000, 0x2061, 0x1cd0,\r
++      0x2071, 0x1800, 0x7350, 0x7070, 0x9302, 0x1640, 0x6020, 0x9206,\r
++      0x11f8, 0x080c, 0xc212, 0x0180, 0x9286, 0x0001, 0x1168, 0x6004,\r
++      0x9086, 0x0004, 0x1148, 0x080c, 0x2fda, 0x080c, 0xc227, 0x00c6,\r
++      0x080c, 0x9e62, 0x00ce, 0x0060, 0x080c, 0xbf06, 0x0148, 0x080c,\r
++      0xbd1d, 0x1110, 0x080c, 0xa7c0, 0x00c6, 0x080c, 0x9e32, 0x00ce,\r
++      0x9ce0, 0x0018, 0x7064, 0x9c02, 0x1208, 0x08a0, 0x012e, 0x000e,\r
++      0x003e, 0x00ce, 0x00ee, 0x0005, 0x00e6, 0x00c6, 0x0016, 0x9188,\r
++      0x1000, 0x210c, 0x81ff, 0x0128, 0x2061, 0x1a80, 0x6112, 0x080c,\r
++      0x2fda, 0x9006, 0x0010, 0x9085, 0x0001, 0x001e, 0x00ce, 0x00ee,\r
++      0x0005, 0x00c6, 0x0126, 0x2091, 0x8000, 0x080c, 0x9ddc, 0x01b0,\r
++      0x6656, 0x2b00, 0x6012, 0x080c, 0x538e, 0x0118, 0x080c, 0xbc44,\r
++      0x0168, 0x080c, 0xbf8c, 0x6023, 0x0003, 0x2009, 0x004b, 0x080c,\r
++      0x9eac, 0x9085, 0x0001, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8,\r
++      0x00c6, 0x0126, 0x2091, 0x8000, 0xbaa0, 0x080c, 0x9e7f, 0x0560,\r
++      0x6057, 0x0000, 0x2b00, 0x6012, 0x080c, 0xbf8c, 0x6023, 0x0003,\r
++      0x0016, 0x080c, 0x8571, 0x0076, 0x903e, 0x080c, 0x8469, 0x2c08,\r
++      0x080c, 0xd29b, 0x007e, 0x001e, 0xd184, 0x0128, 0x080c, 0x9e32,\r
++      0x9085, 0x0001, 0x0070, 0x080c, 0x538e, 0x0128, 0xd18c, 0x1170,\r
++      0x080c, 0xbc44, 0x0148, 0x2009, 0x004c, 0x080c, 0x9eac, 0x9085,\r
++      0x0001, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8, 0x2900, 0x6016,\r
++      0x0c90, 0x2009, 0x004d, 0x0010, 0x2009, 0x004e, 0x00f6, 0x00c6,\r
++      0x0046, 0x0016, 0x080c, 0x9ddc, 0x2c78, 0x0590, 0x7e56, 0x2b00,\r
++      0x7812, 0x7823, 0x0003, 0x2021, 0x0005, 0x080c, 0xbc56, 0x9186,\r
++      0x004d, 0x0118, 0x9186, 0x004e, 0x0148, 0x2001, 0x1951, 0x200c,\r
++      0xd1fc, 0x0168, 0x2f60, 0x080c, 0x9e32, 0x00d0, 0x2001, 0x1950,\r
++      0x200c, 0xd1fc, 0x0120, 0x2f60, 0x080c, 0x9e32, 0x0088, 0x2f60,\r
++      0x080c, 0x538e, 0x0138, 0xd18c, 0x1118, 0x04f1, 0x0148, 0x0010,\r
++      0x2900, 0x7816, 0x001e, 0x0016, 0x080c, 0x9eac, 0x9085, 0x0001,\r
++      0x001e, 0x004e, 0x00ce, 0x00fe, 0x0005, 0x00f6, 0x00c6, 0x0046,\r
++      0x080c, 0x9ddc, 0x2c78, 0x0508, 0x7e56, 0x2b00, 0x7812, 0x7823,\r
++      0x0003, 0x0096, 0x2021, 0x0004, 0x0489, 0x009e, 0x2001, 0x194f,\r
++      0x200c, 0xd1fc, 0x0120, 0x2f60, 0x080c, 0x9e32, 0x0060, 0x2f60,\r
++      0x080c, 0x538e, 0x0120, 0xd18c, 0x1160, 0x0071, 0x0130, 0x2009,\r
++      0x0052, 0x080c, 0x9eac, 0x9085, 0x0001, 0x004e, 0x00ce, 0x00fe,\r
++      0x0005, 0x2900, 0x7816, 0x0c98, 0x00c6, 0x080c, 0x4879, 0x00ce,\r
++      0x1120, 0x080c, 0x9e32, 0x9006, 0x0005, 0xa867, 0x0000, 0xa86b,\r
++      0x8000, 0x2900, 0x6016, 0x9085, 0x0001, 0x0005, 0x0096, 0x0076,\r
++      0x0126, 0x2091, 0x8000, 0x080c, 0x6372, 0x0158, 0x2001, 0xbc5b,\r
++      0x0006, 0x900e, 0x2400, 0x080c, 0x6ac6, 0x080c, 0x688c, 0x000e,\r
++      0x0807, 0x2418, 0x080c, 0x8808, 0xbaa0, 0x0086, 0x2041, 0x0001,\r
++      0x2039, 0x0001, 0x2608, 0x080c, 0x8589, 0x008e, 0x080c, 0x8469,\r
++      0x2f08, 0x2648, 0x080c, 0xd29b, 0xb93c, 0x81ff, 0x090c, 0x865a,\r
++      0x080c, 0x8973, 0x012e, 0x007e, 0x009e, 0x0005, 0x00c6, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0x9ddc, 0x0190, 0x660a, 0x2b08, 0x6112,\r
++      0x080c, 0xbf8c, 0x6023, 0x0001, 0x2900, 0x6016, 0x2009, 0x001f,\r
++      0x080c, 0x9eac, 0x9085, 0x0001, 0x012e, 0x00ce, 0x0005, 0x9006,\r
++      0x0cd8, 0x00c6, 0x0126, 0x2091, 0x8000, 0x080c, 0x9e7f, 0x01b8,\r
++      0x660a, 0x2b08, 0x6112, 0x080c, 0xbf8c, 0x6023, 0x0008, 0x2900,\r
++      0x6016, 0x00f6, 0x2c78, 0x080c, 0x1648, 0x00fe, 0x2009, 0x0021,\r
++      0x080c, 0x9eac, 0x9085, 0x0001, 0x012e, 0x00ce, 0x0005, 0x9006,\r
++      0x0cd8, 0x2009, 0x003d, 0x00c6, 0x0126, 0x0016, 0x2091, 0x8000,\r
++      0x080c, 0x9ddc, 0x0198, 0x660a, 0x2b08, 0x6112, 0x080c, 0xbf8c,\r
++      0x6023, 0x0001, 0x2900, 0x6016, 0x001e, 0x0016, 0x080c, 0x9eac,\r
++      0x9085, 0x0001, 0x001e, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd0,\r
++      0x00c6, 0x0126, 0x2091, 0x8000, 0x080c, 0x9e7f, 0x0188, 0x2b08,\r
++      0x6112, 0x080c, 0xbf8c, 0x6023, 0x0001, 0x2900, 0x6016, 0x2009,\r
++      0x0000, 0x080c, 0x9eac, 0x9085, 0x0001, 0x012e, 0x00ce, 0x0005,\r
++      0x9006, 0x0cd8, 0x2009, 0x0044, 0x0830, 0x2009, 0x0049, 0x0818,\r
++      0x0026, 0x00b6, 0x6210, 0x2258, 0xba3c, 0x82ff, 0x0110, 0x8211,\r
++      0xba3e, 0x00be, 0x002e, 0x0005, 0x0006, 0x0016, 0x6004, 0x908e,\r
++      0x0002, 0x0140, 0x908e, 0x0003, 0x0128, 0x908e, 0x0004, 0x0110,\r
++      0x9085, 0x0001, 0x001e, 0x000e, 0x0005, 0x0006, 0x0096, 0x6020,\r
++      0x9086, 0x0004, 0x0190, 0x6014, 0x904d, 0x080c, 0xbb17, 0x0168,\r
++      0xa864, 0x9086, 0x0139, 0x0158, 0x6020, 0x9086, 0x0003, 0x0128,\r
++      0xa868, 0xd0fc, 0x0110, 0x9006, 0x0010, 0x9085, 0x0001, 0x009e,\r
++      0x000e, 0x0005, 0x00c6, 0x0126, 0x2091, 0x8000, 0x080c, 0x9e7f,\r
++      0x0198, 0x2b08, 0x6112, 0x080c, 0xbf8c, 0x6023, 0x0001, 0x2900,\r
++      0x6016, 0x080c, 0x2fda, 0x2009, 0x0028, 0x080c, 0x9eac, 0x9085,\r
++      0x0001, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8, 0x9186, 0x0015,\r
++      0x11a8, 0x2011, 0x1823, 0x2204, 0x9086, 0x0074, 0x1178, 0x00b6,\r
++      0x080c, 0xaa49, 0x00be, 0x080c, 0xac88, 0x6003, 0x0001, 0x6007,\r
++      0x0029, 0x080c, 0x8439, 0x080c, 0x8973, 0x0078, 0x6014, 0x0096,\r
++      0x2048, 0xa868, 0x009e, 0xd0fc, 0x0148, 0x2001, 0x0001, 0x080c,\r
++      0xc14b, 0x080c, 0xa7c0, 0x080c, 0x9e32, 0x0005, 0x0096, 0x6014,\r
++      0x904d, 0x090c, 0x0db4, 0xa87b, 0x0030, 0xa883, 0x0000, 0xa897,\r
++      0x4005, 0xa89b, 0x0004, 0xa867, 0x0139, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x688c, 0x012e, 0x009e, 0x080c, 0x9e32, 0x0c30, 0x0096,\r
++      0x9186, 0x0016, 0x1128, 0x2001, 0x0004, 0x080c, 0x618f, 0x00e8,\r
++      0x9186, 0x0015, 0x1510, 0x2011, 0x1823, 0x2204, 0x9086, 0x0014,\r
++      0x11e0, 0x6010, 0x00b6, 0x2058, 0x080c, 0x62d9, 0x00be, 0x080c,\r
++      0xad59, 0x1198, 0x6010, 0x00b6, 0x2058, 0xb890, 0x00be, 0x9005,\r
++      0x0160, 0x2001, 0x0006, 0x080c, 0x618f, 0x6014, 0x2048, 0xa868,\r
++      0xd0fc, 0x0170, 0x080c, 0xa235, 0x0048, 0x6014, 0x2048, 0xa868,\r
++      0xd0fc, 0x0528, 0x080c, 0xa7c0, 0x080c, 0x9e32, 0x009e, 0x0005,\r
++      0x6014, 0x6310, 0x2358, 0x904d, 0x090c, 0x0db4, 0xa87b, 0x0000,\r
++      0xa883, 0x0000, 0xa897, 0x4000, 0x900e, 0x080c, 0x645e, 0x1108,\r
++      0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d, 0xa99a, 0x0126, 0x2091,\r
++      0x8000, 0x080c, 0x688c, 0x012e, 0x080c, 0x9e32, 0x08f8, 0x6014,\r
++      0x904d, 0x090c, 0x0db4, 0xa87b, 0x0030, 0xa883, 0x0000, 0xa897,\r
++      0x4005, 0xa89b, 0x0004, 0xa867, 0x0139, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x688c, 0x012e, 0x080c, 0x9e32, 0x0840, 0xa878, 0x9086,\r
++      0x0005, 0x1108, 0x0009, 0x0005, 0xa880, 0xc0ad, 0xa882, 0x0005,\r
++      0x6043, 0x0000, 0x6017, 0x0000, 0x6003, 0x0001, 0x6007, 0x0050,\r
++      0x080c, 0x83f1, 0x080c, 0x8973, 0x0005, 0x00c6, 0x6010, 0x00b6,\r
++      0x2058, 0xb800, 0x00be, 0xd0bc, 0x0120, 0x6020, 0x9084, 0x000f,\r
++      0x0013, 0x00ce, 0x0005, 0xb832, 0xbe3c, 0xbe3c, 0xbe3f, 0xd579,\r
++      0xd594, 0xd597, 0xb832, 0xb832, 0xb832, 0xb832, 0xb832, 0xb832,\r
++      0xb832, 0xb832, 0x080c, 0x0db4, 0xa001, 0xa001, 0x0005, 0x0096,\r
++      0x6014, 0x904d, 0x0118, 0xa87c, 0xd0e4, 0x1110, 0x009e, 0x0010,\r
++      0x009e, 0x0005, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc,\r
++      0x0550, 0x2001, 0x1833, 0x2004, 0x9005, 0x1540, 0x00f6, 0x2c78,\r
++      0x080c, 0x9ddc, 0x0508, 0x7810, 0x6012, 0x080c, 0xbf8c, 0x7820,\r
++      0x9086, 0x0003, 0x0128, 0x7808, 0x603a, 0x2f00, 0x603e, 0x0020,\r
++      0x7808, 0x603e, 0x2f00, 0x603a, 0x602e, 0x6023, 0x0001, 0x6007,\r
++      0x0035, 0x6003, 0x0001, 0x7954, 0x6156, 0x080c, 0x83f1, 0x080c,\r
++      0x8973, 0x2f60, 0x00fe, 0x0005, 0x2f60, 0x00fe, 0x2001, 0x1959,\r
++      0x2004, 0x6042, 0x0005, 0x0016, 0x0096, 0x6814, 0x2048, 0xa87c,\r
++      0xd0e4, 0x0180, 0xc0e4, 0xa87e, 0xa877, 0x0000, 0xa893, 0x0000,\r
++      0xa88f, 0x0000, 0xd0cc, 0x0130, 0xc0cc, 0xa87e, 0xa878, 0x2048,\r
++      0x080c, 0x0f9d, 0x6830, 0x6036, 0x908e, 0x0001, 0x0148, 0x6803,\r
++      0x0002, 0x9086, 0x0005, 0x0170, 0x9006, 0x602e, 0x6032, 0x00d0,\r
++      0x681c, 0xc085, 0x681e, 0x6803, 0x0004, 0x6824, 0xc0f4, 0x9085,\r
++      0x0c00, 0x6826, 0x6814, 0x2048, 0xa8ac, 0x6938, 0x9102, 0xa8b0,\r
++      0x693c, 0x9103, 0x1e48, 0x683c, 0x602e, 0x6838, 0x9084, 0xfffc,\r
++      0x683a, 0x6032, 0x2d00, 0x603a, 0x6808, 0x603e, 0x6910, 0x6112,\r
++      0x6954, 0x6156, 0x6023, 0x0001, 0x6007, 0x0039, 0x6003, 0x0001,\r
++      0x080c, 0x83f1, 0x080c, 0x8973, 0x009e, 0x001e, 0x0005, 0x6024,\r
++      0xd0d4, 0x0510, 0xd0f4, 0x11f8, 0x6038, 0x940a, 0x603c, 0x9303,\r
++      0x0230, 0x9105, 0x0120, 0x6024, 0xc0d4, 0xc0f5, 0x0098, 0x643a,\r
++      0x633e, 0xac3e, 0xab42, 0x0046, 0x0036, 0x2400, 0xacac, 0x9402,\r
++      0xa836, 0x2300, 0xabb0, 0x9303, 0xa83a, 0x003e, 0x004e, 0x6024,\r
++      0xc0d4, 0x0000, 0x6026, 0x0005, 0xd0f4, 0x1138, 0xa83c, 0x603a,\r
++      0xa840, 0x603e, 0x6024, 0xc0f5, 0x6026, 0x0005, 0x0006, 0x0016,\r
++      0x6004, 0x908e, 0x0034, 0x01b8, 0x908e, 0x0035, 0x01a0, 0x908e,\r
++      0x0036, 0x0188, 0x908e, 0x0037, 0x0170, 0x908e, 0x0038, 0x0158,\r
++      0x908e, 0x0039, 0x0140, 0x908e, 0x003a, 0x0128, 0x908e, 0x003b,\r
++      0x0110, 0x9085, 0x0001, 0x001e, 0x000e, 0x0005, 0x0006, 0x0016,\r
++      0x0026, 0x0036, 0x00e6, 0x2001, 0x1953, 0x200c, 0x8000, 0x2014,\r
++      0x2001, 0x0032, 0x080c, 0x8270, 0x2001, 0x1957, 0x82ff, 0x1110,\r
++      0x2011, 0x0014, 0x2202, 0x2001, 0x1955, 0x200c, 0x8000, 0x2014,\r
++      0x2071, 0x193d, 0x711a, 0x721e, 0x2001, 0x0064, 0x080c, 0x8270,\r
++      0x2001, 0x1958, 0x82ff, 0x1110, 0x2011, 0x0014, 0x2202, 0x2001,\r
++      0x1959, 0x9288, 0x000a, 0x2102, 0x2001, 0x1a61, 0x2102, 0x2001,\r
++      0x0032, 0x080c, 0x1518, 0x080c, 0x6543, 0x00ee, 0x003e, 0x002e,\r
++      0x001e, 0x000e, 0x0005, 0x0006, 0x0016, 0x00e6, 0x2001, 0x1957,\r
++      0x2003, 0x0028, 0x2001, 0x1958, 0x2003, 0x0014, 0x2071, 0x193d,\r
++      0x701b, 0x0000, 0x701f, 0x07d0, 0x2001, 0x1959, 0x2009, 0x001e,\r
++      0x2102, 0x2001, 0x1a61, 0x2102, 0x2001, 0x0032, 0x080c, 0x1518,\r
++      0x00ee, 0x001e, 0x000e, 0x0005, 0x0096, 0x6058, 0x904d, 0x0110,\r
++      0x080c, 0x101d, 0x009e, 0x0005, 0x0005, 0x00c6, 0x0126, 0x2091,\r
++      0x8000, 0x080c, 0x9ddc, 0x0180, 0x2b08, 0x6112, 0x0ca9, 0x6023,\r
++      0x0001, 0x2900, 0x6016, 0x2009, 0x0033, 0x080c, 0x9eac, 0x9085,\r
++      0x0001, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8, 0x0096, 0x00e6,\r
++      0x00f6, 0x2071, 0x1800, 0x9186, 0x0015, 0x1500, 0x708c, 0x9086,\r
++      0x0018, 0x11e0, 0x6014, 0x2048, 0xaa3c, 0xd2e4, 0x1160, 0x2c78,\r
++      0x080c, 0x8b63, 0x01d8, 0x7078, 0xaa50, 0x9206, 0x1160, 0x707c,\r
++      0xaa54, 0x9206, 0x1140, 0x6210, 0x00b6, 0x2258, 0xbaa0, 0x00be,\r
++      0x900e, 0x080c, 0x3023, 0x080c, 0xa235, 0x0020, 0x080c, 0xa7c0,\r
++      0x080c, 0x9e32, 0x00fe, 0x00ee, 0x009e, 0x0005, 0x705c, 0xaa54,\r
++      0x9206, 0x0d48, 0x0c80, 0x00c6, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0x9ddc, 0x0188, 0x2b08, 0x6112, 0x080c, 0xbf8c, 0x6023, 0x0001,\r
++      0x2900, 0x6016, 0x2009, 0x004d, 0x080c, 0x9eac, 0x9085, 0x0001,\r
++      0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8, 0x00c6, 0x0126, 0x2091,\r
++      0x8000, 0x0016, 0x080c, 0x9ddc, 0x0180, 0x2b08, 0x6112, 0x080c,\r
++      0xbf8c, 0x6023, 0x0001, 0x2900, 0x6016, 0x001e, 0x080c, 0x9eac,\r
++      0x9085, 0x0001, 0x012e, 0x00ce, 0x0005, 0x001e, 0x9006, 0x0cd0,\r
++      0x0016, 0x0026, 0x0036, 0x0046, 0x0056, 0x0066, 0x0096, 0x00e6,\r
++      0x00f6, 0x2071, 0x1800, 0x9186, 0x0015, 0x1568, 0x718c, 0x6014,\r
++      0x2048, 0xa814, 0x8003, 0x9106, 0x1530, 0x20e1, 0x0000, 0x2001,\r
++      0x1971, 0x2003, 0x0000, 0x6014, 0x2048, 0xa830, 0x20a8, 0x8906,\r
++      0x8006, 0x8007, 0x9094, 0x003f, 0x22e8, 0x9084, 0xffc0, 0x9080,\r
++      0x001b, 0x20a0, 0x2001, 0x1971, 0x0016, 0x200c, 0x080c, 0xc7ce,\r
++      0x001e, 0xa804, 0x9005, 0x0110, 0x2048, 0x0c38, 0x6014, 0x2048,\r
++      0xa867, 0x0103, 0x0010, 0x080c, 0xa7c0, 0x080c, 0x9e32, 0x00fe,\r
++      0x00ee, 0x009e, 0x006e, 0x005e, 0x004e, 0x003e, 0x002e, 0x001e,\r
++      0x0005, 0x0096, 0x00e6, 0x00f6, 0x2071, 0x1800, 0x9186, 0x0015,\r
++      0x11b8, 0x708c, 0x9086, 0x0004, 0x1198, 0x6014, 0x2048, 0x2c78,\r
++      0x080c, 0x8b63, 0x01a8, 0x7078, 0xaa74, 0x9206, 0x1130, 0x707c,\r
++      0xaa78, 0x9206, 0x1110, 0x080c, 0x2fda, 0x080c, 0xa235, 0x0020,\r
++      0x080c, 0xa7c0, 0x080c, 0x9e32, 0x00fe, 0x00ee, 0x009e, 0x0005,\r
++      0x705c, 0xaa78, 0x9206, 0x0d78, 0x0c80, 0x0096, 0x00e6, 0x00f6,\r
++      0x2071, 0x1800, 0x9186, 0x0015, 0x1550, 0x708c, 0x9086, 0x0004,\r
++      0x1530, 0x6014, 0x2048, 0x2c78, 0x080c, 0x8b63, 0x05f0, 0x7078,\r
++      0xaacc, 0x9206, 0x1180, 0x707c, 0xaad0, 0x9206, 0x1160, 0x080c,\r
++      0x2fda, 0x0016, 0xa998, 0xaab0, 0x9284, 0x1000, 0xc0fd, 0x080c,\r
++      0x533e, 0x001e, 0x0010, 0x080c, 0x512f, 0x080c, 0xbb17, 0x0508,\r
++      0xa87b, 0x0000, 0xa883, 0x0000, 0xa897, 0x4000, 0x0080, 0x080c,\r
++      0xbb17, 0x01b8, 0x6014, 0x2048, 0x080c, 0x512f, 0x1d70, 0xa87b,\r
++      0x0030, 0xa883, 0x0000, 0xa897, 0x4005, 0xa89b, 0x0004, 0x0126,\r
++      0x2091, 0x8000, 0xa867, 0x0139, 0x080c, 0x688c, 0x012e, 0x080c,\r
++      0x9e32, 0x00fe, 0x00ee, 0x009e, 0x0005, 0x705c, 0xaad0, 0x9206,\r
++      0x0930, 0x0888, 0x0016, 0x0026, 0xa87c, 0xd0ac, 0x0178, 0xa938,\r
++      0xaa34, 0x2100, 0x9205, 0x0150, 0xa890, 0x9106, 0x1118, 0xa88c,\r
++      0x9206, 0x0120, 0xa992, 0xaa8e, 0x9085, 0x0001, 0x002e, 0x001e,\r
++      0x0005, 0x00b6, 0x00d6, 0x0036, 0x080c, 0xbb17, 0x0904, 0xc147,\r
++      0x0096, 0x6314, 0x2348, 0xa87a, 0xa982, 0x929e, 0x4000, 0x1580,\r
++      0x6310, 0x00c6, 0x2358, 0x2009, 0x0000, 0xa868, 0xd0f4, 0x1140,\r
++      0x080c, 0x645e, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d,\r
++      0xaa96, 0xa99a, 0x20a9, 0x0004, 0xa860, 0x20e8, 0xa85c, 0x9080,\r
++      0x0031, 0x20a0, 0xb8b4, 0x20e0, 0xb8b8, 0x9080, 0x0006, 0x2098,\r
++      0x080c, 0x0f68, 0x20a9, 0x0004, 0xa85c, 0x9080, 0x0035, 0x20a0,\r
++      0xb8b8, 0x9080, 0x000a, 0x2098, 0x080c, 0x0f68, 0x00ce, 0x0090,\r
++      0xaa96, 0x3918, 0x9398, 0x0007, 0x231c, 0x6004, 0x9086, 0x0016,\r
++      0x0110, 0xa89b, 0x0004, 0xaba2, 0x6310, 0x2358, 0xb804, 0x9084,\r
++      0x00ff, 0xa89e, 0x080c, 0x687f, 0x6017, 0x0000, 0x009e, 0x003e,\r
++      0x00de, 0x00be, 0x0005, 0x0026, 0x0036, 0x0046, 0x00b6, 0x0096,\r
++      0x00f6, 0x6214, 0x2248, 0x6210, 0x2258, 0x2079, 0x0260, 0x9096,\r
++      0x0000, 0x11a0, 0xb814, 0x9084, 0x00ff, 0x900e, 0x080c, 0x2663,\r
++      0x2118, 0x831f, 0x939c, 0xff00, 0x7838, 0x9084, 0x00ff, 0x931d,\r
++      0x7c3c, 0x2011, 0x8018, 0x080c, 0x48d9, 0x00a8, 0x9096, 0x0001,\r
++      0x1148, 0x89ff, 0x0180, 0xa89b, 0x000d, 0x7838, 0xa8a6, 0x783c,\r
++      0xa8aa, 0x0048, 0x9096, 0x0002, 0x1130, 0xa89b, 0x000d, 0x7838,\r
++      0xa8a6, 0x783c, 0xa8aa, 0x00fe, 0x009e, 0x00be, 0x004e, 0x003e,\r
++      0x002e, 0x0005, 0x00c6, 0x0026, 0x0016, 0x9186, 0x0035, 0x0110,\r
++      0x6a38, 0x0008, 0x6a2c, 0x080c, 0xbb05, 0x01f0, 0x2260, 0x6120,\r
++      0x9186, 0x0003, 0x0118, 0x9186, 0x0006, 0x1190, 0x6838, 0x9206,\r
++      0x0140, 0x683c, 0x9206, 0x1160, 0x6108, 0x6838, 0x9106, 0x1140,\r
++      0x0020, 0x6008, 0x693c, 0x9106, 0x1118, 0x6010, 0x6910, 0x9106,\r
++      0x001e, 0x002e, 0x00ce, 0x0005, 0x9085, 0x0001, 0x0cc8, 0xa974,\r
++      0xd1cc, 0x0188, 0x918c, 0x00ff, 0x918e, 0x0002, 0x1160, 0xa9a8,\r
++      0x918c, 0x0f00, 0x810f, 0x918e, 0x0001, 0x1128, 0xa834, 0xa938,\r
++      0x9115, 0x190c, 0xb227, 0x0005, 0x0036, 0x2019, 0x0001, 0x0010,\r
++      0x0036, 0x901e, 0x0499, 0x01e0, 0x080c, 0xbb17, 0x01c8, 0x080c,\r
++      0xbd00, 0x6037, 0x4000, 0x6014, 0x6017, 0x0000, 0x0096, 0x2048,\r
++      0xa87c, 0x080c, 0xbd1d, 0x1118, 0x080c, 0xa7c0, 0x0040, 0xa867,\r
++      0x0103, 0xa877, 0x0000, 0x83ff, 0x1129, 0x080c, 0x688c, 0x009e,\r
++      0x003e, 0x0005, 0xa880, 0xd0b4, 0x0128, 0xa87b, 0x0006, 0xc0ec,\r
++      0xa882, 0x0048, 0xd0bc, 0x0118, 0xa87b, 0x0002, 0x0020, 0xa87b,\r
++      0x0005, 0x080c, 0xbe0c, 0xa877, 0x0000, 0x0005, 0x2001, 0x1810,\r
++      0x2004, 0xd0ec, 0x0005, 0x0006, 0x2001, 0x1810, 0x2004, 0xd0f4,\r
++      0x000e, 0x0005, 0x0006, 0x2001, 0x1810, 0x2004, 0xd0e4, 0x000e,\r
++      0x0005, 0x0036, 0x0046, 0x6010, 0x00b6, 0x2058, 0xbba0, 0x00be,\r
++      0x2021, 0x0007, 0x080c, 0x4a76, 0x004e, 0x003e, 0x0005, 0x0c51,\r
++      0x1d81, 0x0005, 0x2001, 0x1957, 0x2004, 0x601a, 0x0005, 0x2001,\r
++      0x1959, 0x2004, 0x6042, 0x0005, 0x080c, 0x9e32, 0x0804, 0x8973,\r
++      0x00b6, 0x0066, 0x6000, 0x90b2, 0x0016, 0x1a0c, 0x0db4, 0x001b,\r
++      0x006e, 0x00be, 0x0005, 0xc253, 0xc92b, 0xca86, 0xc253, 0xc253,\r
++      0xc253, 0xc253, 0xc253, 0xc28a, 0xcb08, 0xc253, 0xc253, 0xc253,\r
++      0xc253, 0xc253, 0xc253, 0x080c, 0x0db4, 0x0066, 0x6000, 0x90b2,\r
++      0x0016, 0x1a0c, 0x0db4, 0x0013, 0x006e, 0x0005, 0xc26e, 0xd070,\r
++      0xc26e, 0xc26e, 0xc26e, 0xc26e, 0xc26e, 0xc26e, 0xd01d, 0xd0c4,\r
++      0xc26e, 0xd6b4, 0xd6ea, 0xd6b4, 0xd6ea, 0xc26e, 0x080c, 0x0db4,\r
++      0x6000, 0x9082, 0x0016, 0x1a0c, 0x0db4, 0x6000, 0x000a, 0x0005,\r
++      0xc288, 0xcce5, 0xcdd5, 0xcdf7, 0xceb6, 0xc288, 0xcf94, 0xcf3e,\r
++      0xcb14, 0xcff3, 0xd008, 0xc288, 0xc288, 0xc288, 0xc288, 0xc288,\r
++      0x080c, 0x0db4, 0x91b2, 0x0053, 0x1a0c, 0x0db4, 0x2100, 0x91b2,\r
++      0x0040, 0x1a04, 0xc6cc, 0x0002, 0xc2d4, 0xc4bd, 0xc2d4, 0xc2d4,\r
++      0xc2d4, 0xc4c6, 0xc2d4, 0xc2d4, 0xc2d4, 0xc2d4, 0xc2d4, 0xc2d4,\r
++      0xc2d4, 0xc2d4, 0xc2d4, 0xc2d4, 0xc2d4, 0xc2d4, 0xc2d4, 0xc2d4,\r
++      0xc2d4, 0xc2d4, 0xc2d4, 0xc2d6, 0xc339, 0xc348, 0xc3ac, 0xc3d7,\r
++      0xc44f, 0xc4a8, 0xc2d4, 0xc2d4, 0xc4c9, 0xc2d4, 0xc2d4, 0xc4de,\r
++      0xc4eb, 0xc2d4, 0xc2d4, 0xc2d4, 0xc2d4, 0xc2d4, 0xc56e, 0xc2d4,\r
++      0xc2d4, 0xc582, 0xc2d4, 0xc2d4, 0xc53d, 0xc2d4, 0xc2d4, 0xc2d4,\r
++      0xc59a, 0xc2d4, 0xc2d4, 0xc2d4, 0xc617, 0xc2d4, 0xc2d4, 0xc2d4,\r
++      0xc2d4, 0xc2d4, 0xc2d4, 0xc694, 0x080c, 0x0db4, 0x080c, 0x6520,\r
++      0x1150, 0x2001, 0x1836, 0x2004, 0xd0cc, 0x1128, 0x9084, 0x0009,\r
++      0x9086, 0x0008, 0x1140, 0x6007, 0x0009, 0x602f, 0x0009, 0x6017,\r
++      0x0000, 0x0804, 0xc4b6, 0x080c, 0x6509, 0x00e6, 0x00c6, 0x0036,\r
++      0x0026, 0x0016, 0x6210, 0x2258, 0xbaa0, 0x0026, 0x2019, 0x0029,\r
++      0x080c, 0x8571, 0x0076, 0x903e, 0x080c, 0x8469, 0x2c08, 0x080c,\r
++      0xd29b, 0x007e, 0x001e, 0x001e, 0x002e, 0x003e, 0x00ce, 0x00ee,\r
++      0x6610, 0x2658, 0x080c, 0x624d, 0xbe04, 0x9684, 0x00ff, 0x9082,\r
++      0x0006, 0x1268, 0x0016, 0x0026, 0x6210, 0x00b6, 0x2258, 0xbaa0,\r
++      0x00be, 0x2c08, 0x080c, 0xd862, 0x002e, 0x001e, 0x1178, 0x080c,\r
++      0xd1ce, 0x1904, 0xc3a4, 0x080c, 0xd16a, 0x1120, 0x6007, 0x0008,\r
++      0x0804, 0xc4b6, 0x6007, 0x0009, 0x0804, 0xc4b6, 0x080c, 0xd3c5,\r
++      0x0128, 0x080c, 0xd1ce, 0x0d78, 0x0804, 0xc3a4, 0x6017, 0x1900,\r
++      0x0c88, 0x080c, 0x30fd, 0x1904, 0xc6c9, 0x6106, 0x080c, 0xd11f,\r
++      0x6007, 0x0006, 0x0804, 0xc4b6, 0x6007, 0x0007, 0x0804, 0xc4b6,\r
++      0x080c, 0xd726, 0x1904, 0xc6c9, 0x080c, 0x30fd, 0x1904, 0xc6c9,\r
++      0x00d6, 0x6610, 0x2658, 0xbe04, 0x9684, 0x00ff, 0x9082, 0x0006,\r
++      0x1220, 0x2001, 0x0001, 0x080c, 0x617b, 0x96b4, 0xff00, 0x8637,\r
++      0x9686, 0x0006, 0x0188, 0x9686, 0x0004, 0x0170, 0xbe04, 0x96b4,\r
++      0x00ff, 0x9686, 0x0006, 0x0140, 0x9686, 0x0004, 0x0128, 0x9686,\r
++      0x0005, 0x0110, 0x00de, 0x0480, 0x00e6, 0x2071, 0x0260, 0x7034,\r
++      0x9084, 0x0003, 0x1140, 0x7034, 0x9082, 0x0014, 0x0220, 0x7030,\r
++      0x9084, 0x0003, 0x0130, 0x00ee, 0x6017, 0x0000, 0x602f, 0x0007,\r
++      0x00b0, 0x00ee, 0x080c, 0xd231, 0x1190, 0x9686, 0x0006, 0x1140,\r
++      0x0026, 0x6210, 0x2258, 0xbaa0, 0x900e, 0x080c, 0x3023, 0x002e,\r
++      0x080c, 0x62d9, 0x6007, 0x000a, 0x00de, 0x0804, 0xc4b6, 0x6007,\r
++      0x000b, 0x00de, 0x0804, 0xc4b6, 0x080c, 0x2fda, 0x080c, 0xc227,\r
++      0x6007, 0x0001, 0x0804, 0xc4b6, 0x080c, 0xd726, 0x1904, 0xc6c9,\r
++      0x080c, 0x30fd, 0x1904, 0xc6c9, 0x2071, 0x0260, 0x7034, 0x90b4,\r
++      0x0003, 0x1948, 0x90b2, 0x0014, 0x0a30, 0x7030, 0x9084, 0x0003,\r
++      0x1910, 0x6610, 0x2658, 0xbe04, 0x9686, 0x0707, 0x09e8, 0x0026,\r
++      0x6210, 0x2258, 0xbaa0, 0x900e, 0x080c, 0x3023, 0x002e, 0x6007,\r
++      0x000c, 0x2001, 0x0001, 0x080c, 0xd842, 0x0804, 0xc4b6, 0x080c,\r
++      0x6520, 0x1140, 0x2001, 0x1836, 0x2004, 0x9084, 0x0009, 0x9086,\r
++      0x0008, 0x1110, 0x0804, 0xc2e3, 0x080c, 0x6509, 0x6610, 0x2658,\r
++      0xbe04, 0x9684, 0x00ff, 0x9082, 0x0006, 0x06c0, 0x1138, 0x0026,\r
++      0x2001, 0x0006, 0x080c, 0x61bb, 0x002e, 0x0050, 0x96b4, 0xff00,\r
++      0x8637, 0x9686, 0x0004, 0x0120, 0x9686, 0x0006, 0x1904, 0xc3a4,\r
++      0x080c, 0xd23e, 0x1120, 0x6007, 0x000e, 0x0804, 0xc4b6, 0x0046,\r
++      0x6410, 0x2458, 0xbca0, 0x0046, 0x080c, 0x2fda, 0x080c, 0xc227,\r
++      0x004e, 0x0016, 0x9006, 0x2009, 0x1854, 0x210c, 0x0048, 0x2009,\r
++      0x0029, 0x080c, 0xd52a, 0x6010, 0x2058, 0xb800, 0xc0e5, 0xb802,\r
++      0x001e, 0x004e, 0x6007, 0x0001, 0x0804, 0xc4b6, 0x2001, 0x0001,\r
++      0x080c, 0x617b, 0x0156, 0x0016, 0x0026, 0x0036, 0x20a9, 0x0004,\r
++      0x2019, 0x1805, 0x2011, 0x0270, 0x080c, 0xadf9, 0x003e, 0x002e,\r
++      0x001e, 0x015e, 0x9005, 0x0168, 0x96b4, 0xff00, 0x8637, 0x9682,\r
++      0x0004, 0x0a04, 0xc3a4, 0x9682, 0x0007, 0x0a04, 0xc400, 0x0804,\r
++      0xc3a4, 0x6017, 0x1900, 0x6007, 0x0009, 0x0804, 0xc4b6, 0x080c,\r
++      0x6520, 0x1140, 0x2001, 0x1836, 0x2004, 0x9084, 0x0009, 0x9086,\r
++      0x0008, 0x1110, 0x0804, 0xc2e3, 0x080c, 0x6509, 0x6610, 0x2658,\r
++      0xbe04, 0x9684, 0x00ff, 0x9082, 0x0006, 0x0690, 0x0150, 0x96b4,\r
++      0xff00, 0x8637, 0x9686, 0x0004, 0x0120, 0x9686, 0x0006, 0x1904,\r
++      0xc3a4, 0x080c, 0xd26c, 0x1130, 0x080c, 0xd16a, 0x1118, 0x6007,\r
++      0x0010, 0x04e0, 0x0046, 0x6410, 0x2458, 0xbca0, 0x0046, 0x080c,\r
++      0x2fda, 0x080c, 0xc227, 0x004e, 0x0016, 0x9006, 0x2009, 0x1854,\r
++      0x210c, 0x0048, 0x2009, 0x0029, 0x080c, 0xd52a, 0x6010, 0x2058,\r
++      0xb800, 0xc0e5, 0xb802, 0x001e, 0x004e, 0x6007, 0x0001, 0x00f0,\r
++      0x080c, 0xd3c5, 0x0140, 0x96b4, 0xff00, 0x8637, 0x9686, 0x0006,\r
++      0x0980, 0x0804, 0xc3a4, 0x6017, 0x1900, 0x6007, 0x0009, 0x0070,\r
++      0x080c, 0x30fd, 0x1904, 0xc6c9, 0x080c, 0xd726, 0x1904, 0xc6c9,\r
++      0x080c, 0xc869, 0x1904, 0xc3a4, 0x6007, 0x0012, 0x6003, 0x0001,\r
++      0x080c, 0x8439, 0x080c, 0x8973, 0x0005, 0x6007, 0x0001, 0x6003,\r
++      0x0001, 0x080c, 0x8439, 0x080c, 0x8973, 0x0cb0, 0x6007, 0x0005,\r
++      0x0c68, 0x080c, 0xd726, 0x1904, 0xc6c9, 0x080c, 0x30fd, 0x1904,\r
++      0xc6c9, 0x080c, 0xc869, 0x1904, 0xc3a4, 0x6007, 0x0020, 0x6003,\r
++      0x0001, 0x080c, 0x8439, 0x080c, 0x8973, 0x0005, 0x080c, 0x30fd,\r
++      0x1904, 0xc6c9, 0x6007, 0x0023, 0x6003, 0x0001, 0x080c, 0x8439,\r
++      0x080c, 0x8973, 0x0005, 0x080c, 0xd726, 0x1904, 0xc6c9, 0x080c,\r
++      0x30fd, 0x1904, 0xc6c9, 0x080c, 0xc869, 0x1904, 0xc3a4, 0x0016,\r
++      0x0026, 0x00e6, 0x2071, 0x0260, 0x7244, 0x9286, 0xffff, 0x0180,\r
++      0x2c08, 0x080c, 0xbb05, 0x01b0, 0x2260, 0x7240, 0x6008, 0x9206,\r
++      0x1188, 0x6010, 0x9190, 0x0004, 0x2214, 0x9206, 0x01b8, 0x0050,\r
++      0x7240, 0x2c08, 0x9006, 0x080c, 0xd4fc, 0x1180, 0x7244, 0x9286,\r
++      0xffff, 0x01b0, 0x2160, 0x6007, 0x0026, 0x6017, 0x1700, 0x7214,\r
++      0x9296, 0xffff, 0x1180, 0x6007, 0x0025, 0x0068, 0x6020, 0x9086,\r
++      0x0007, 0x1d80, 0x6004, 0x9086, 0x0024, 0x1110, 0x080c, 0x9e32,\r
++      0x2160, 0x6007, 0x0025, 0x6003, 0x0001, 0x080c, 0x8439, 0x080c,\r
++      0x8973, 0x00ee, 0x002e, 0x001e, 0x0005, 0x2001, 0x0001, 0x080c,\r
++      0x617b, 0x0156, 0x0016, 0x0026, 0x0036, 0x20a9, 0x0004, 0x2019,\r
++      0x1805, 0x2011, 0x0276, 0x080c, 0xadf9, 0x003e, 0x002e, 0x001e,\r
++      0x015e, 0x0120, 0x6007, 0x0031, 0x0804, 0xc4b6, 0x080c, 0xaa61,\r
++      0x080c, 0x6fb2, 0x1190, 0x0006, 0x0026, 0x0036, 0x080c, 0x6fcc,\r
++      0x1138, 0x080c, 0x7296, 0x080c, 0x5cd1, 0x080c, 0x6ee4, 0x0010,\r
++      0x080c, 0x6f8a, 0x003e, 0x002e, 0x000e, 0x0005, 0x080c, 0x30fd,\r
++      0x1904, 0xc6c9, 0x080c, 0xc869, 0x1904, 0xc3a4, 0x6106, 0x080c,\r
++      0xc885, 0x1120, 0x6007, 0x002b, 0x0804, 0xc4b6, 0x6007, 0x002c,\r
++      0x0804, 0xc4b6, 0x080c, 0xd726, 0x1904, 0xc6c9, 0x080c, 0x30fd,\r
++      0x1904, 0xc6c9, 0x080c, 0xc869, 0x1904, 0xc3a4, 0x6106, 0x080c,\r
++      0xc88a, 0x1120, 0x6007, 0x002e, 0x0804, 0xc4b6, 0x6007, 0x002f,\r
++      0x0804, 0xc4b6, 0x080c, 0x30fd, 0x1904, 0xc6c9, 0x00e6, 0x00d6,\r
++      0x00c6, 0x6010, 0x2058, 0xb904, 0x9184, 0x00ff, 0x9086, 0x0006,\r
++      0x0158, 0x9184, 0xff00, 0x8007, 0x9086, 0x0006, 0x0128, 0x00ce,\r
++      0x00de, 0x00ee, 0x0804, 0xc4bd, 0x080c, 0x538a, 0xd0e4, 0x0904,\r
++      0xc614, 0x2071, 0x026c, 0x7010, 0x603a, 0x7014, 0x603e, 0x7108,\r
++      0x720c, 0x080c, 0x655e, 0x0140, 0x6010, 0x2058, 0xb810, 0x9106,\r
++      0x1118, 0xb814, 0x9206, 0x0510, 0x080c, 0x655a, 0x15b8, 0x2069,\r
++      0x1800, 0x687c, 0x9206, 0x1590, 0x6878, 0x9106, 0x1578, 0x7210,\r
++      0x080c, 0xbb05, 0x0590, 0x080c, 0xc754, 0x0578, 0x080c, 0xd5a6,\r
++      0x0560, 0x622e, 0x6007, 0x0036, 0x6003, 0x0001, 0x080c, 0x83f1,\r
++      0x080c, 0x8973, 0x00ce, 0x00de, 0x00ee, 0x0005, 0x7214, 0x9286,\r
++      0xffff, 0x0150, 0x080c, 0xbb05, 0x01c0, 0x9280, 0x0002, 0x2004,\r
++      0x7110, 0x9106, 0x1190, 0x08e0, 0x7210, 0x2c08, 0x9085, 0x0001,\r
++      0x080c, 0xd4fc, 0x2c10, 0x2160, 0x0140, 0x0890, 0x6007, 0x0037,\r
++      0x602f, 0x0009, 0x6017, 0x1500, 0x08b8, 0x6007, 0x0037, 0x602f,\r
++      0x0003, 0x6017, 0x1700, 0x0880, 0x6007, 0x0012, 0x0868, 0x080c,\r
++      0x30fd, 0x1904, 0xc6c9, 0x6010, 0x2058, 0xb804, 0x9084, 0xff00,\r
++      0x8007, 0x9086, 0x0006, 0x1904, 0xc4bd, 0x00e6, 0x00d6, 0x00c6,\r
++      0x080c, 0x538a, 0xd0e4, 0x0904, 0xc68c, 0x2069, 0x1800, 0x2071,\r
++      0x026c, 0x7008, 0x603a, 0x720c, 0x623e, 0x9286, 0xffff, 0x1150,\r
++      0x7208, 0x00c6, 0x2c08, 0x9085, 0x0001, 0x080c, 0xd4fc, 0x2c10,\r
++      0x00ce, 0x05e8, 0x080c, 0xbb05, 0x05d0, 0x7108, 0x9280, 0x0002,\r
++      0x2004, 0x9106, 0x15a0, 0x00c6, 0x0026, 0x2260, 0x080c, 0xb73d,\r
++      0x002e, 0x00ce, 0x7118, 0x918c, 0xff00, 0x810f, 0x9186, 0x0001,\r
++      0x0178, 0x9186, 0x0005, 0x0118, 0x9186, 0x0007, 0x1198, 0x9280,\r
++      0x0005, 0x2004, 0x9005, 0x0170, 0x080c, 0xc754, 0x0904, 0xc60d,\r
++      0x0056, 0x7510, 0x7614, 0x080c, 0xd5bf, 0x005e, 0x00ce, 0x00de,\r
++      0x00ee, 0x0005, 0x6007, 0x003b, 0x602f, 0x0009, 0x6017, 0x2a00,\r
++      0x6003, 0x0001, 0x080c, 0x83f1, 0x080c, 0x8973, 0x0c78, 0x6007,\r
++      0x003b, 0x602f, 0x0003, 0x6017, 0x0300, 0x6003, 0x0001, 0x080c,\r
++      0x83f1, 0x080c, 0x8973, 0x0c10, 0x6007, 0x003b, 0x602f, 0x000b,\r
++      0x6017, 0x0000, 0x0804, 0xc5e4, 0x00e6, 0x0026, 0x080c, 0x6520,\r
++      0x0550, 0x080c, 0x6509, 0x080c, 0xd798, 0x1518, 0x2071, 0x1800,\r
++      0x70d8, 0x9085, 0x0003, 0x70da, 0x00f6, 0x2079, 0x0100, 0x72ac,\r
++      0x9284, 0x00ff, 0x707a, 0x78e6, 0x9284, 0xff00, 0x727c, 0x9205,\r
++      0x707e, 0x78ea, 0x00fe, 0x70e3, 0x0000, 0x080c, 0x655e, 0x0120,\r
++      0x2011, 0x19d1, 0x2013, 0x07d0, 0xd0ac, 0x1128, 0x080c, 0x2dbb,\r
++      0x0010, 0x080c, 0xd7ca, 0x002e, 0x00ee, 0x080c, 0x9e32, 0x0804,\r
++      0xc4bc, 0x080c, 0x9e32, 0x0005, 0x2600, 0x0002, 0xc6e0, 0xc6e0,\r
++      0xc6e0, 0xc6e0, 0xc6e0, 0xc6e2, 0xc6e0, 0xc6e0, 0xc6e0, 0xc6e0,\r
++      0xc6ff, 0xc6e0, 0xc6e0, 0xc6e0, 0xc711, 0xc71e, 0xc74f, 0xc6e0,\r
++      0x080c, 0x0db4, 0x080c, 0xd726, 0x1d20, 0x080c, 0x30fd, 0x1d08,\r
++      0x080c, 0xc869, 0x1148, 0x7038, 0x6016, 0x6007, 0x0045, 0x6003,\r
++      0x0001, 0x080c, 0x8439, 0x0005, 0x080c, 0x2fda, 0x080c, 0xc227,\r
++      0x6007, 0x0001, 0x6003, 0x0001, 0x080c, 0x8439, 0x0005, 0x080c,\r
++      0xd726, 0x1938, 0x080c, 0x30fd, 0x1920, 0x080c, 0xc869, 0x1d60,\r
++      0x703c, 0x6016, 0x6007, 0x004a, 0x6003, 0x0001, 0x080c, 0x8439,\r
++      0x0005, 0x080c, 0xc771, 0x0904, 0xc6c9, 0x6007, 0x004e, 0x6003,\r
++      0x0001, 0x080c, 0x8439, 0x080c, 0x8973, 0x0005, 0x6007, 0x004f,\r
++      0x6017, 0x0000, 0x7134, 0x918c, 0x00ff, 0x81ff, 0x0508, 0x9186,\r
++      0x0001, 0x1160, 0x7140, 0x2001, 0x198e, 0x2004, 0x9106, 0x11b0,\r
++      0x7144, 0x2001, 0x198f, 0x2004, 0x9106, 0x0190, 0x9186, 0x0002,\r
++      0x1168, 0x2011, 0x0276, 0x20a9, 0x0004, 0x6010, 0x0096, 0x2048,\r
++      0x2019, 0x000a, 0x080c, 0xae0d, 0x009e, 0x0110, 0x6017, 0x0001,\r
++      0x6003, 0x0001, 0x080c, 0x8439, 0x080c, 0x8973, 0x0005, 0x6007,\r
++      0x0050, 0x703c, 0x6016, 0x0ca0, 0x0016, 0x00e6, 0x2071, 0x0260,\r
++      0x00b6, 0x00c6, 0x2260, 0x6010, 0x2058, 0xb8bc, 0xd084, 0x0150,\r
++      0x7128, 0x6048, 0x9106, 0x1120, 0x712c, 0x6044, 0x9106, 0x0110,\r
++      0x9006, 0x0010, 0x9085, 0x0001, 0x00ce, 0x00be, 0x00ee, 0x001e,\r
++      0x0005, 0x0016, 0x0096, 0x0086, 0x00e6, 0x01c6, 0x01d6, 0x0126,\r
++      0x2091, 0x8000, 0x2071, 0x1800, 0x708c, 0x908a, 0x00f9, 0x16e8,\r
++      0x20e1, 0x0000, 0x2001, 0x1971, 0x2003, 0x0000, 0x080c, 0x1004,\r
++      0x05a0, 0x2900, 0x6016, 0x708c, 0x8004, 0xa816, 0x908a, 0x001e,\r
++      0x02d0, 0xa833, 0x001e, 0x20a9, 0x001e, 0xa860, 0x20e8, 0xa85c,\r
++      0x9080, 0x001b, 0x20a0, 0x2001, 0x1971, 0x0016, 0x200c, 0x0471,\r
++      0x001e, 0x2940, 0x080c, 0x1004, 0x01c0, 0x2900, 0xa006, 0x2100,\r
++      0x81ff, 0x0180, 0x0c18, 0xa832, 0x20a8, 0xa860, 0x20e8, 0xa85c,\r
++      0x9080, 0x001b, 0x20a0, 0x2001, 0x1971, 0x0016, 0x200c, 0x00b1,\r
++      0x001e, 0x0000, 0x9085, 0x0001, 0x0048, 0x2071, 0x1800, 0x708f,\r
++      0x0000, 0x6014, 0x2048, 0x080c, 0x0f9d, 0x9006, 0x012e, 0x01de,\r
++      0x01ce, 0x00ee, 0x008e, 0x009e, 0x001e, 0x0005, 0x0006, 0x0016,\r
++      0x0026, 0x0036, 0x00c6, 0x918c, 0xffff, 0x11a8, 0x080c, 0x2241,\r
++      0x2099, 0x026c, 0x2001, 0x0014, 0x3518, 0x9312, 0x1218, 0x23a8,\r
++      0x4003, 0x00f8, 0x20a8, 0x4003, 0x22a8, 0x8108, 0x080c, 0x2241,\r
++      0x2099, 0x0260, 0x0ca8, 0x080c, 0x2241, 0x2061, 0x1971, 0x6004,\r
++      0x2098, 0x6008, 0x3518, 0x9312, 0x1218, 0x23a8, 0x4003, 0x0048,\r
++      0x20a8, 0x4003, 0x22a8, 0x8108, 0x080c, 0x2241, 0x2099, 0x0260,\r
++      0x0ca8, 0x2061, 0x1971, 0x2019, 0x0280, 0x3300, 0x931e, 0x0110,\r
++      0x6006, 0x0020, 0x2001, 0x0260, 0x6006, 0x8108, 0x2162, 0x9292,\r
++      0x0021, 0x9296, 0xffff, 0x620a, 0x00ce, 0x003e, 0x002e, 0x001e,\r
++      0x000e, 0x0005, 0x0006, 0x0016, 0x0026, 0x0036, 0x00c6, 0x81ff,\r
++      0x11b8, 0x080c, 0x2259, 0x20a1, 0x024c, 0x2001, 0x0014, 0x3518,\r
++      0x9312, 0x1218, 0x23a8, 0x4003, 0x0418, 0x20a8, 0x4003, 0x82ff,\r
++      0x01f8, 0x22a8, 0x8108, 0x080c, 0x2259, 0x20a1, 0x0240, 0x0c98,\r
++      0x080c, 0x2259, 0x2061, 0x1974, 0x6004, 0x20a0, 0x6008, 0x3518,\r
++      0x9312, 0x1218, 0x23a8, 0x4003, 0x0058, 0x20a8, 0x4003, 0x82ff,\r
++      0x0138, 0x22a8, 0x8108, 0x080c, 0x2259, 0x20a1, 0x0240, 0x0c98,\r
++      0x2061, 0x1974, 0x2019, 0x0260, 0x3400, 0x931e, 0x0110, 0x6006,\r
++      0x0020, 0x2001, 0x0240, 0x6006, 0x8108, 0x2162, 0x9292, 0x0021,\r
++      0x9296, 0xffff, 0x620a, 0x00ce, 0x003e, 0x002e, 0x001e, 0x000e,\r
++      0x0005, 0x00b6, 0x0066, 0x6610, 0x2658, 0xbe04, 0x96b4, 0xff00,\r
++      0x8637, 0x9686, 0x0006, 0x0170, 0x9686, 0x0004, 0x0158, 0xbe04,\r
++      0x96b4, 0x00ff, 0x9686, 0x0006, 0x0128, 0x9686, 0x0004, 0x0110,\r
++      0x9085, 0x0001, 0x006e, 0x00be, 0x0005, 0x00d6, 0x080c, 0xc901,\r
++      0x00de, 0x0005, 0x00d6, 0x080c, 0xc90e, 0x1520, 0x680c, 0x908c,\r
++      0xff00, 0x6820, 0x9084, 0x00ff, 0x9115, 0x6216, 0x6824, 0x602e,\r
++      0xd1e4, 0x0130, 0x9006, 0x080c, 0xd842, 0x2009, 0x0001, 0x0078,\r
++      0xd1ec, 0x0180, 0x6920, 0x918c, 0x00ff, 0x6824, 0x080c, 0x2663,\r
++      0x1148, 0x2001, 0x0001, 0x080c, 0xd842, 0x2110, 0x900e, 0x080c,\r
++      0x3023, 0x0018, 0x9085, 0x0001, 0x0008, 0x9006, 0x00de, 0x0005,\r
++      0x00b6, 0x00c6, 0x080c, 0x9e7f, 0x05a8, 0x0016, 0x0026, 0x00c6,\r
++      0x2011, 0x0263, 0x2204, 0x8211, 0x220c, 0x080c, 0x2663, 0x1578,\r
++      0x080c, 0x61de, 0x1560, 0xbe12, 0xbd16, 0x00ce, 0x002e, 0x001e,\r
++      0x2b00, 0x6012, 0x080c, 0xd726, 0x11d8, 0x080c, 0x30fd, 0x11c0,\r
++      0x080c, 0xc869, 0x0510, 0x2001, 0x0007, 0x080c, 0x618f, 0x2001,\r
++      0x0007, 0x080c, 0x61bb, 0x6017, 0x0000, 0x6023, 0x0001, 0x6007,\r
++      0x0001, 0x6003, 0x0001, 0x080c, 0x8439, 0x080c, 0x8973, 0x0010,\r
++      0x080c, 0x9e32, 0x9085, 0x0001, 0x00ce, 0x00be, 0x0005, 0x080c,\r
++      0x9e32, 0x00ce, 0x002e, 0x001e, 0x0ca8, 0x080c, 0x9e32, 0x9006,\r
++      0x0c98, 0x2069, 0x026d, 0x6800, 0x9082, 0x0010, 0x1228, 0x6017,\r
++      0x0000, 0x9085, 0x0001, 0x0008, 0x9006, 0x0005, 0x6017, 0x0000,\r
++      0x2069, 0x026c, 0x6808, 0x9084, 0xff00, 0x9086, 0x0800, 0x1190,\r
++      0x6904, 0x9186, 0x0018, 0x0118, 0x9186, 0x0014, 0x1158, 0x810f,\r
++      0x6800, 0x9084, 0x00ff, 0x910d, 0x615a, 0x908e, 0x0014, 0x0110,\r
++      0x908e, 0x0010, 0x0005, 0x6004, 0x90b2, 0x0053, 0x1a0c, 0x0db4,\r
++      0x91b6, 0x0013, 0x1130, 0x2008, 0x91b2, 0x0040, 0x1a04, 0xca56,\r
++      0x0092, 0x91b6, 0x0027, 0x0120, 0x91b6, 0x0014, 0x190c, 0x0db4,\r
++      0x2001, 0x0007, 0x080c, 0x61bb, 0x080c, 0x886e, 0x080c, 0x9e62,\r
++      0x080c, 0x8973, 0x0005, 0xc98b, 0xc98d, 0xc98b, 0xc98b, 0xc98b,\r
++      0xc98d, 0xc99c, 0xca4f, 0xc9ee, 0xca4f, 0xca00, 0xca4f, 0xc99c,\r
++      0xca4f, 0xca47, 0xca4f, 0xca47, 0xca4f, 0xca4f, 0xc98b, 0xc98b,\r
++      0xc98b, 0xc98b, 0xc98b, 0xc98b, 0xc98b, 0xc98b, 0xc98b, 0xc98b,\r
++      0xc98b, 0xc98d, 0xc98b, 0xca4f, 0xc98b, 0xc98b, 0xca4f, 0xc98b,\r
++      0xca4c, 0xca4f, 0xc98b, 0xc98b, 0xc98b, 0xc98b, 0xca4f, 0xca4f,\r
++      0xc98b, 0xca4f, 0xca4f, 0xc98b, 0xc997, 0xc98b, 0xc98b, 0xc98b,\r
++      0xc98b, 0xca4b, 0xca4f, 0xc98b, 0xc98b, 0xca4f, 0xca4f, 0xc98b,\r
++      0xc98b, 0xc98b, 0xc98b, 0x080c, 0x0db4, 0x080c, 0x886e, 0x080c,\r
++      0xc22a, 0x6003, 0x0002, 0x080c, 0x8973, 0x0804, 0xca55, 0x9006,\r
++      0x080c, 0x617b, 0x0804, 0xca4f, 0x080c, 0x655a, 0x1904, 0xca4f,\r
++      0x9006, 0x080c, 0x617b, 0x6010, 0x2058, 0xb810, 0x9086, 0x00ff,\r
++      0x1140, 0x00f6, 0x2079, 0x1800, 0x78a4, 0x8000, 0x78a6, 0x00fe,\r
++      0x0428, 0x6010, 0x2058, 0xb8b0, 0x9005, 0x1178, 0x080c, 0xc212,\r
++      0x1904, 0xca4f, 0x0036, 0x0046, 0xbba0, 0x2021, 0x0007, 0x080c,\r
++      0x4a76, 0x004e, 0x003e, 0x0804, 0xca4f, 0x080c, 0x312e, 0x1904,\r
++      0xca4f, 0x2001, 0x1800, 0x2004, 0x9086, 0x0002, 0x1138, 0x00f6,\r
++      0x2079, 0x1800, 0x78a4, 0x8000, 0x78a6, 0x00fe, 0x2001, 0x0002,\r
++      0x080c, 0x618f, 0x080c, 0x886e, 0x6023, 0x0001, 0x6003, 0x0001,\r
++      0x6007, 0x0002, 0x080c, 0x8439, 0x080c, 0x8973, 0x6110, 0x2158,\r
++      0x2009, 0x0001, 0x080c, 0x8046, 0x0804, 0xca55, 0x6610, 0x2658,\r
++      0xbe04, 0x96b4, 0xff00, 0x8637, 0x9686, 0x0006, 0x0904, 0xca4f,\r
++      0x9686, 0x0004, 0x0904, 0xca4f, 0x2001, 0x0004, 0x0804, 0xca4d,\r
++      0x2001, 0x1800, 0x2004, 0x9086, 0x0003, 0x1158, 0x0036, 0x0046,\r
++      0x6010, 0x2058, 0xbba0, 0x2021, 0x0006, 0x080c, 0x4a76, 0x004e,\r
++      0x003e, 0x2001, 0x0006, 0x080c, 0xca73, 0x6610, 0x2658, 0xbe04,\r
++      0x0066, 0x96b4, 0xff00, 0x8637, 0x9686, 0x0006, 0x006e, 0x0168,\r
++      0x2001, 0x0006, 0x080c, 0x61bb, 0x9284, 0x00ff, 0x908e, 0x0007,\r
++      0x1120, 0x2001, 0x0006, 0x080c, 0x618f, 0x080c, 0x655a, 0x11f8,\r
++      0x2001, 0x1836, 0x2004, 0xd0a4, 0x01d0, 0xbe04, 0x96b4, 0x00ff,\r
++      0x9686, 0x0006, 0x01a0, 0x00f6, 0x2079, 0x1800, 0x78a4, 0x8000,\r
++      0x78a6, 0x00fe, 0x0804, 0xc9d6, 0x2001, 0x0004, 0x0030, 0x2001,\r
++      0x0006, 0x0449, 0x0020, 0x0018, 0x0010, 0x080c, 0x61bb, 0x080c,\r
++      0x886e, 0x080c, 0x9e32, 0x080c, 0x8973, 0x0005, 0x2600, 0x0002,\r
++      0xca6a, 0xca6a, 0xca6a, 0xca6a, 0xca6a, 0xca6c, 0xca6a, 0xca6a,\r
++      0xca6a, 0xca6a, 0xca6c, 0xca6a, 0xca6a, 0xca6a, 0xca6c, 0xca6c,\r
++      0xca6c, 0xca6c, 0x080c, 0x0db4, 0x080c, 0x886e, 0x080c, 0x9e32,\r
++      0x080c, 0x8973, 0x0005, 0x0016, 0x00b6, 0x00d6, 0x6110, 0x2158,\r
++      0xb900, 0xd184, 0x0138, 0x080c, 0x618f, 0x9006, 0x080c, 0x617b,\r
++      0x080c, 0x3003, 0x00de, 0x00be, 0x001e, 0x0005, 0x6610, 0x2658,\r
++      0xb804, 0x9084, 0xff00, 0x8007, 0x90b2, 0x000c, 0x1a0c, 0x0db4,\r
++      0x91b6, 0x0015, 0x1110, 0x003b, 0x0028, 0x91b6, 0x0016, 0x190c,\r
++      0x0db4, 0x006b, 0x0005, 0xa8a1, 0xa8a1, 0xa8a1, 0xa8a1, 0xa8a1,\r
++      0xa8a1, 0xcaf2, 0xcab3, 0xa8a1, 0xa8a1, 0xa8a1, 0xa8a1, 0xa8a1,\r
++      0xa8a1, 0xa8a1, 0xa8a1, 0xa8a1, 0xa8a1, 0xcaf2, 0xcaf9, 0xa8a1,\r
++      0xa8a1, 0xa8a1, 0xa8a1, 0x00f6, 0x080c, 0x655a, 0x11d8, 0x080c,\r
++      0xc212, 0x11c0, 0x6010, 0x905d, 0x01a8, 0xb8b0, 0x9005, 0x0190,\r
++      0x9006, 0x080c, 0x617b, 0x2001, 0x0002, 0x080c, 0x618f, 0x6023,\r
++      0x0001, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x8439, 0x080c,\r
++      0x8973, 0x00f0, 0x2011, 0x0263, 0x2204, 0x8211, 0x220c, 0x080c,\r
++      0x2663, 0x11b0, 0x080c, 0x623e, 0x0118, 0x080c, 0x9e32, 0x0080,\r
++      0xb810, 0x0006, 0xb814, 0x0006, 0xb8b0, 0x0006, 0x080c, 0x5ceb,\r
++      0x000e, 0xb8b2, 0x000e, 0xb816, 0x000e, 0xb812, 0x080c, 0x9e32,\r
++      0x00fe, 0x0005, 0x6604, 0x96b6, 0x001e, 0x1110, 0x080c, 0x9e32,\r
++      0x0005, 0x080c, 0xac85, 0x1148, 0x6003, 0x0001, 0x6007, 0x0001,\r
++      0x080c, 0x8439, 0x080c, 0x8973, 0x0010, 0x080c, 0x9e32, 0x0005,\r
++      0x6004, 0x908a, 0x0053, 0x1a0c, 0x0db4, 0x080c, 0x886e, 0x080c,\r
++      0x9e62, 0x080c, 0x8973, 0x0005, 0x9182, 0x0040, 0x0002, 0xcb2a,\r
++      0xcb2a, 0xcb2a, 0xcb2a, 0xcb2c, 0xcb2a, 0xcb2a, 0xcb2a, 0xcb2a,\r
++      0xcb2a, 0xcb2a, 0xcb2a, 0xcb2a, 0xcb2a, 0xcb2a, 0xcb2a, 0xcb2a,\r
++      0xcb2a, 0xcb2a, 0x080c, 0x0db4, 0x0096, 0x00b6, 0x00d6, 0x00e6,\r
++      0x00f6, 0x0046, 0x0026, 0x6210, 0x2258, 0xb8ac, 0x9005, 0x11a8,\r
++      0x6106, 0x2071, 0x0260, 0x7444, 0x94a4, 0xff00, 0x0904, 0xcb92,\r
++      0x080c, 0xd836, 0x1170, 0x9486, 0x2000, 0x1158, 0x2009, 0x0001,\r
++      0x2011, 0x0200, 0x080c, 0x822f, 0x0020, 0x9026, 0x080c, 0xd76b,\r
++      0x0c38, 0x080c, 0x0feb, 0x090c, 0x0db4, 0x6003, 0x0007, 0xa867,\r
++      0x010d, 0x9006, 0xa802, 0xa86a, 0xac8a, 0x2c00, 0xa88e, 0x6008,\r
++      0xa8e2, 0x6010, 0x2058, 0xb8a0, 0x7130, 0xa97a, 0x0016, 0xa876,\r
++      0xa87f, 0x0000, 0xa883, 0x0000, 0xa887, 0x0036, 0x080c, 0x688c,\r
++      0x001e, 0x080c, 0xd836, 0x1904, 0xcbf2, 0x9486, 0x2000, 0x1130,\r
++      0x2019, 0x0017, 0x080c, 0xd4a6, 0x0804, 0xcbf2, 0x9486, 0x0200,\r
++      0x1120, 0x080c, 0xd442, 0x0804, 0xcbf2, 0x9486, 0x0400, 0x0120,\r
++      0x9486, 0x1000, 0x1904, 0xcbf2, 0x2019, 0x0002, 0x080c, 0xd45d,\r
++      0x0804, 0xcbf2, 0x2069, 0x1a41, 0x6a00, 0xd284, 0x0904, 0xcc5c,\r
++      0x9284, 0x0300, 0x1904, 0xcc55, 0x6804, 0x9005, 0x0904, 0xcc3d,\r
++      0x2d78, 0x6003, 0x0007, 0x080c, 0x1004, 0x0904, 0xcbfe, 0x7800,\r
++      0xd08c, 0x1118, 0x7804, 0x8001, 0x7806, 0x6017, 0x0000, 0x2001,\r
++      0x180f, 0x2004, 0xd084, 0x1904, 0xcc60, 0x9006, 0xa802, 0xa867,\r
++      0x0116, 0xa86a, 0x6008, 0xa8e2, 0x2c00, 0xa87a, 0x6010, 0x2058,\r
++      0xb8a0, 0x7130, 0xa9b6, 0xa876, 0xb928, 0xa9ba, 0xb92c, 0xa9be,\r
++      0xb930, 0xa9c2, 0xb934, 0xa9c6, 0xa883, 0x003d, 0x7044, 0x9084,\r
++      0x0003, 0x9080, 0xcbfa, 0x2005, 0xa87e, 0x20a9, 0x000a, 0x2001,\r
++      0x0270, 0xaa5c, 0x9290, 0x0021, 0x2009, 0x0205, 0x200b, 0x0080,\r
++      0x20e1, 0x0000, 0xab60, 0x23e8, 0x2098, 0x22a0, 0x4003, 0x200b,\r
++      0x0000, 0x2001, 0x027a, 0x200c, 0xa9b2, 0x8000, 0x200c, 0xa9ae,\r
++      0x080c, 0x688c, 0x002e, 0x004e, 0x00fe, 0x00ee, 0x00de, 0x00be,\r
++      0x009e, 0x0005, 0x0000, 0x0080, 0x0040, 0x0000, 0x2001, 0x1810,\r
++      0x2004, 0xd084, 0x0120, 0x080c, 0x0feb, 0x1904, 0xcba7, 0x6017,\r
++      0xf100, 0x6003, 0x0001, 0x6007, 0x0041, 0x080c, 0x83f1, 0x080c,\r
++      0x8973, 0x0c00, 0x2069, 0x0260, 0x6848, 0x9084, 0xff00, 0x9086,\r
++      0x1200, 0x1198, 0x686c, 0x9084, 0x00ff, 0x0016, 0x6114, 0x918c,\r
++      0xf700, 0x910d, 0x6116, 0x001e, 0x6003, 0x0001, 0x6007, 0x0043,\r
++      0x080c, 0x83f1, 0x080c, 0x8973, 0x0828, 0x6868, 0x602e, 0x686c,\r
++      0x6032, 0x6017, 0xf200, 0x6003, 0x0001, 0x6007, 0x0041, 0x080c,\r
++      0x83f1, 0x080c, 0x8973, 0x0804, 0xcbf2, 0x2001, 0x180e, 0x2004,\r
++      0xd0ec, 0x0120, 0x2011, 0x8049, 0x080c, 0x48d9, 0x6017, 0xf300,\r
++      0x0010, 0x6017, 0xf100, 0x6003, 0x0001, 0x6007, 0x0041, 0x080c,\r
++      0x83f1, 0x080c, 0x8973, 0x0804, 0xcbf2, 0x6017, 0xf500, 0x0c98,\r
++      0x6017, 0xf600, 0x0804, 0xcc12, 0x6017, 0xf200, 0x0804, 0xcc12,\r
++      0xa867, 0x0146, 0xa86b, 0x0000, 0x6008, 0xa886, 0x2c00, 0xa87a,\r
++      0x7044, 0x9084, 0x0003, 0x9080, 0xcbfa, 0x2005, 0xa87e, 0x2928,\r
++      0x6010, 0x2058, 0xb8a0, 0xa876, 0xb828, 0xa88a, 0xb82c, 0xa88e,\r
++      0xb830, 0xa892, 0xb834, 0xa896, 0xa883, 0x003d, 0x2009, 0x0205,\r
++      0x2104, 0x9085, 0x0080, 0x200a, 0x20e1, 0x0000, 0x2011, 0x0210,\r
++      0x2214, 0x9294, 0x0fff, 0xaaa2, 0x9282, 0x0111, 0x1a0c, 0x0db4,\r
++      0x8210, 0x821c, 0x2001, 0x026c, 0x2098, 0xa860, 0x20e8, 0xa85c,\r
++      0x9080, 0x0029, 0x20a0, 0x2011, 0xccdc, 0x2041, 0x0001, 0x223d,\r
++      0x9784, 0x00ff, 0x9322, 0x1208, 0x2300, 0x20a8, 0x4003, 0x931a,\r
++      0x0530, 0x8210, 0xd7fc, 0x1130, 0x8d68, 0x2d0a, 0x2001, 0x0260,\r
++      0x2098, 0x0c68, 0x2950, 0x080c, 0x1004, 0x0170, 0x2900, 0xb002,\r
++      0xa867, 0x0147, 0xa86b, 0x0000, 0xa860, 0x20e8, 0xa85c, 0x9080,\r
++      0x001b, 0x20a0, 0x8840, 0x08d8, 0x2548, 0xa800, 0x902d, 0x0118,\r
++      0x080c, 0x101d, 0x0cc8, 0x080c, 0x101d, 0x0804, 0xcbfe, 0x2548,\r
++      0x8847, 0x9885, 0x0046, 0xa866, 0x2009, 0x0205, 0x200b, 0x0000,\r
++      0x080c, 0xd4d5, 0x0804, 0xcbf2, 0x8010, 0x0004, 0x801a, 0x0006,\r
++      0x8018, 0x0008, 0x8016, 0x000a, 0x8014, 0x9186, 0x0013, 0x1160,\r
++      0x6004, 0x908a, 0x0054, 0x1a0c, 0x0db4, 0x9082, 0x0040, 0x0a0c,\r
++      0x0db4, 0x2008, 0x0804, 0xcd8d, 0x9186, 0x0051, 0x0108, 0x00c0,\r
++      0x2001, 0x0109, 0x2004, 0xd084, 0x0904, 0xcd3e, 0x0126, 0x2091,\r
++      0x2800, 0x0006, 0x0016, 0x0026, 0x080c, 0x82dd, 0x002e, 0x001e,\r
++      0x000e, 0x012e, 0x6000, 0x9086, 0x0002, 0x1580, 0x0804, 0xcdd5,\r
++      0x9186, 0x0027, 0x0530, 0x9186, 0x0048, 0x0128, 0x9186, 0x0014,\r
++      0x0500, 0x190c, 0x0db4, 0x2001, 0x0109, 0x2004, 0xd084, 0x01f0,\r
++      0x00c6, 0x0126, 0x2091, 0x2800, 0x00c6, 0x2061, 0x0100, 0x0006,\r
++      0x0016, 0x0026, 0x080c, 0x82dd, 0x002e, 0x001e, 0x000e, 0x00ce,\r
++      0x012e, 0x00ce, 0x6000, 0x9086, 0x0004, 0x190c, 0x0db4, 0x0804,\r
++      0xceb6, 0x6004, 0x9082, 0x0040, 0x2008, 0x001a, 0x080c, 0x9ec7,\r
++      0x0005, 0xcd54, 0xcd56, 0xcd56, 0xcd7d, 0xcd54, 0xcd54, 0xcd54,\r
++      0xcd54, 0xcd54, 0xcd54, 0xcd54, 0xcd54, 0xcd54, 0xcd54, 0xcd54,\r
++      0xcd54, 0xcd54, 0xcd54, 0xcd54, 0x080c, 0x0db4, 0x080c, 0x886e,\r
++      0x080c, 0x8973, 0x0036, 0x0096, 0x6014, 0x904d, 0x01d8, 0x080c,\r
++      0xbb17, 0x01c0, 0x6003, 0x0002, 0x6010, 0x00b6, 0x2058, 0xb800,\r
++      0x00be, 0xd0bc, 0x1178, 0x2019, 0x0004, 0x080c, 0xd4d5, 0x6017,\r
++      0x0000, 0x6018, 0x9005, 0x1120, 0x2001, 0x1958, 0x2004, 0x601a,\r
++      0x6003, 0x0007, 0x009e, 0x003e, 0x0005, 0x0096, 0x080c, 0x886e,\r
++      0x080c, 0x8973, 0x080c, 0xbb17, 0x0120, 0x6014, 0x2048, 0x080c,\r
++      0x101d, 0x080c, 0x9e62, 0x009e, 0x0005, 0x0002, 0xcda1, 0xcdb8,\r
++      0xcda3, 0xcdcf, 0xcda1, 0xcda1, 0xcda1, 0xcda1, 0xcda1, 0xcda1,\r
++      0xcda1, 0xcda1, 0xcda1, 0xcda1, 0xcda1, 0xcda1, 0xcda1, 0xcda1,\r
++      0xcda1, 0x080c, 0x0db4, 0x0096, 0x080c, 0x886e, 0x6014, 0x2048,\r
++      0xa87c, 0xd0b4, 0x0138, 0x6003, 0x0007, 0x2009, 0x0043, 0x080c,\r
++      0x9eac, 0x0010, 0x6003, 0x0004, 0x080c, 0x8973, 0x009e, 0x0005,\r
++      0x080c, 0x886e, 0x080c, 0xbb17, 0x0138, 0x6114, 0x0096, 0x2148,\r
++      0xa97c, 0x009e, 0xd1ec, 0x1138, 0x080c, 0x8204, 0x080c, 0x9e32,\r
++      0x080c, 0x8973, 0x0005, 0x080c, 0xd72f, 0x0db0, 0x0cc8, 0x080c,\r
++      0x886e, 0x2009, 0x0041, 0x0804, 0xcf3e, 0x9182, 0x0040, 0x0002,\r
++      0xcdeb, 0xcded, 0xcdeb, 0xcdeb, 0xcdeb, 0xcdeb, 0xcdeb, 0xcdeb,\r
++      0xcdeb, 0xcdeb, 0xcdeb, 0xcdeb, 0xcdeb, 0xcdeb, 0xcdeb, 0xcdeb,\r
++      0xcdeb, 0xcdee, 0xcdeb, 0x080c, 0x0db4, 0x0005, 0x00d6, 0x080c,\r
++      0x8204, 0x00de, 0x080c, 0xd787, 0x080c, 0x9e32, 0x0005, 0x9182,\r
++      0x0040, 0x0002, 0xce0d, 0xce0d, 0xce0d, 0xce0d, 0xce0d, 0xce0d,\r
++      0xce0d, 0xce0d, 0xce0d, 0xce0f, 0xce7e, 0xce0d, 0xce0d, 0xce0d,\r
++      0xce0d, 0xce7e, 0xce0d, 0xce0d, 0xce0d, 0x080c, 0x0db4, 0x2001,\r
++      0x0105, 0x2004, 0x9084, 0x1800, 0x01c8, 0x2001, 0x0132, 0x200c,\r
++      0x2001, 0x0131, 0x2004, 0x9105, 0x1904, 0xce7e, 0x2009, 0x180c,\r
++      0x2104, 0xd0d4, 0x0904, 0xce7e, 0xc0d4, 0x200a, 0x2009, 0x0105,\r
++      0x2104, 0x9084, 0xe7fd, 0x9085, 0x0010, 0x200a, 0x2001, 0x1873,\r
++      0x2004, 0xd0e4, 0x1528, 0x603b, 0x0000, 0x080c, 0x8923, 0x6014,\r
++      0x0096, 0x2048, 0xa87c, 0xd0fc, 0x0188, 0x908c, 0x0003, 0x918e,\r
++      0x0002, 0x0508, 0x2001, 0x180c, 0x2004, 0xd0d4, 0x11e0, 0x080c,\r
++      0x8a4e, 0x2009, 0x0041, 0x009e, 0x0804, 0xcf3e, 0x080c, 0x8a4e,\r
++      0x6003, 0x0007, 0x601b, 0x0000, 0x080c, 0x8204, 0x009e, 0x0005,\r
++      0x2001, 0x0100, 0x2004, 0x9082, 0x0005, 0x0aa8, 0x2001, 0x011f,\r
++      0x2004, 0x603a, 0x0890, 0x2001, 0x180c, 0x200c, 0xc1d4, 0x2102,\r
++      0xd1cc, 0x0110, 0x080c, 0x2a77, 0x080c, 0x8a4e, 0x6014, 0x2048,\r
++      0xa97c, 0xd1ec, 0x1130, 0x080c, 0x8204, 0x080c, 0x9e32, 0x009e,\r
++      0x0005, 0x080c, 0xd72f, 0x0db8, 0x009e, 0x0005, 0x2001, 0x180c,\r
++      0x200c, 0xc1d4, 0x2102, 0x0036, 0x080c, 0x8923, 0x080c, 0x8a4e,\r
++      0x6014, 0x0096, 0x2048, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be,\r
++      0xd0bc, 0x0188, 0xa87c, 0x9084, 0x0003, 0x9086, 0x0002, 0x0140,\r
++      0xa8ac, 0x6330, 0x931a, 0x6332, 0xa8b0, 0x632c, 0x931b, 0x632e,\r
++      0x6003, 0x0002, 0x0080, 0x2019, 0x0004, 0x080c, 0xd4d5, 0x6018,\r
++      0x9005, 0x1128, 0x2001, 0x1958, 0x2004, 0x8003, 0x601a, 0x6017,\r
++      0x0000, 0x6003, 0x0007, 0x009e, 0x003e, 0x0005, 0x9182, 0x0040,\r
++      0x0002, 0xcecd, 0xcecd, 0xcecd, 0xcecd, 0xcecd, 0xcecd, 0xcecd,\r
++      0xcecd, 0xcecf, 0xcecd, 0xcecd, 0xcecd, 0xcecd, 0xcecd, 0xcecd,\r
++      0xcecd, 0xcecd, 0xcecd, 0xcecd, 0xcf1a, 0x080c, 0x0db4, 0x6014,\r
++      0x0096, 0x2048, 0xa834, 0xaa38, 0x6110, 0x00b6, 0x2158, 0xb900,\r
++      0x00be, 0xd1bc, 0x1190, 0x920d, 0x1518, 0xa87c, 0xd0fc, 0x0128,\r
++      0x2009, 0x0041, 0x009e, 0x0804, 0xcf3e, 0x6003, 0x0007, 0x601b,\r
++      0x0000, 0x080c, 0x8204, 0x009e, 0x0005, 0x6124, 0xd1f4, 0x1d58,\r
++      0x0006, 0x0046, 0xacac, 0x9422, 0xa9b0, 0x2200, 0x910b, 0x6030,\r
++      0x9420, 0x6432, 0x602c, 0x9109, 0x612e, 0x004e, 0x000e, 0x08d8,\r
++      0x6110, 0x00b6, 0x2158, 0xb900, 0x00be, 0xd1bc, 0x1178, 0x2009,\r
++      0x180e, 0x210c, 0xd19c, 0x0118, 0x6003, 0x0007, 0x0010, 0x6003,\r
++      0x0006, 0x00e9, 0x080c, 0x8206, 0x009e, 0x0005, 0x6003, 0x0002,\r
++      0x009e, 0x0005, 0x6024, 0xd0f4, 0x0128, 0x080c, 0x150f, 0x1904,\r
++      0xcecf, 0x0005, 0x6014, 0x0096, 0x2048, 0xa834, 0xa938, 0x009e,\r
++      0x9105, 0x1120, 0x080c, 0x150f, 0x1904, 0xcecf, 0x0005, 0xd2fc,\r
++      0x0140, 0x8002, 0x8000, 0x8212, 0x9291, 0x0000, 0x2009, 0x0009,\r
++      0x0010, 0x2009, 0x0015, 0xaa9a, 0xa896, 0x0005, 0x9182, 0x0040,\r
++      0x0208, 0x0062, 0x9186, 0x0013, 0x0120, 0x9186, 0x0014, 0x190c,\r
++      0x0db4, 0x6024, 0xd0dc, 0x090c, 0x0db4, 0x0005, 0xcf61, 0xcf6d,\r
++      0xcf79, 0xcf85, 0xcf61, 0xcf61, 0xcf61, 0xcf61, 0xcf68, 0xcf63,\r
++      0xcf63, 0xcf61, 0xcf61, 0xcf61, 0xcf61, 0xcf63, 0xcf61, 0xcf63,\r
++      0xcf61, 0x080c, 0x0db4, 0x6024, 0xd0dc, 0x090c, 0x0db4, 0x0005,\r
++      0x6014, 0x9005, 0x190c, 0x0db4, 0x0005, 0x6003, 0x0001, 0x6106,\r
++      0x080c, 0x83f1, 0x0126, 0x2091, 0x8000, 0x080c, 0x8973, 0x012e,\r
++      0x0005, 0x6003, 0x0001, 0x6106, 0x080c, 0x83f1, 0x0126, 0x2091,\r
++      0x8000, 0x080c, 0x8973, 0x012e, 0x0005, 0x6003, 0x0003, 0x6106,\r
++      0x2c10, 0x080c, 0x1a5c, 0x0126, 0x2091, 0x8000, 0x080c, 0x8456,\r
++      0x080c, 0x8a4e, 0x012e, 0x0005, 0x0126, 0x2091, 0x8000, 0x0036,\r
++      0x0096, 0x9182, 0x0040, 0x0023, 0x009e, 0x003e, 0x012e, 0x0005,\r
++      0xcfb0, 0xcfb2, 0xcfc4, 0xcfde, 0xcfb0, 0xcfb0, 0xcfb0, 0xcfb0,\r
++      0xcfb0, 0xcfb0, 0xcfb0, 0xcfb0, 0xcfb0, 0xcfb0, 0xcfb0, 0xcfb0,\r
++      0x080c, 0x0db4, 0x6014, 0x2048, 0xa87c, 0xd0fc, 0x01f8, 0x909c,\r
++      0x0003, 0x939e, 0x0003, 0x01d0, 0x6003, 0x0001, 0x6106, 0x080c,\r
++      0x83f1, 0x080c, 0x8973, 0x0470, 0x6014, 0x2048, 0xa87c, 0xd0fc,\r
++      0x0168, 0x909c, 0x0003, 0x939e, 0x0003, 0x0140, 0x6003, 0x0001,\r
++      0x6106, 0x080c, 0x83f1, 0x080c, 0x8973, 0x00e0, 0x901e, 0x6316,\r
++      0x631a, 0x2019, 0x0004, 0x080c, 0xd4d5, 0x00a0, 0x6014, 0x2048,\r
++      0xa87c, 0xd0fc, 0x0d98, 0x909c, 0x0003, 0x939e, 0x0003, 0x0d70,\r
++      0x6003, 0x0003, 0x6106, 0x2c10, 0x080c, 0x1a5c, 0x080c, 0x8456,\r
++      0x080c, 0x8a4e, 0x0005, 0x080c, 0x886e, 0x6114, 0x81ff, 0x0158,\r
++      0x0096, 0x2148, 0x080c, 0xd7d3, 0x0036, 0x2019, 0x0029, 0x080c,\r
++      0xd4d5, 0x003e, 0x009e, 0x080c, 0x9e62, 0x080c, 0x8973, 0x0005,\r
++      0x080c, 0x8923, 0x6114, 0x81ff, 0x0158, 0x0096, 0x2148, 0x080c,\r
++      0xd7d3, 0x0036, 0x2019, 0x0029, 0x080c, 0xd4d5, 0x003e, 0x009e,\r
++      0x080c, 0x9e62, 0x080c, 0x8a4e, 0x0005, 0x9182, 0x0085, 0x0002,\r
++      0xd02f, 0xd02d, 0xd02d, 0xd03b, 0xd02d, 0xd02d, 0xd02d, 0xd02d,\r
++      0xd02d, 0xd02d, 0xd02d, 0xd02d, 0xd02d, 0x080c, 0x0db4, 0x6003,\r
++      0x000b, 0x6106, 0x080c, 0x83f1, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0x8973, 0x012e, 0x0005, 0x0026, 0x00e6, 0x080c, 0xd726, 0x0118,\r
++      0x080c, 0x9e32, 0x0450, 0x2071, 0x0260, 0x7224, 0x6216, 0x2001,\r
++      0x180e, 0x2004, 0xd0e4, 0x0150, 0x6010, 0x00b6, 0x2058, 0xbca0,\r
++      0x00be, 0x2c00, 0x2011, 0x014e, 0x080c, 0xa152, 0x7220, 0x080c,\r
++      0xd37b, 0x0118, 0x6007, 0x0086, 0x0040, 0x6007, 0x0087, 0x7224,\r
++      0x9296, 0xffff, 0x1110, 0x6007, 0x0086, 0x6003, 0x0001, 0x080c,\r
++      0x83f1, 0x080c, 0x8973, 0x080c, 0x8a4e, 0x00ee, 0x002e, 0x0005,\r
++      0x9186, 0x0013, 0x1160, 0x6004, 0x908a, 0x0085, 0x0a0c, 0x0db4,\r
++      0x908a, 0x0092, 0x1a0c, 0x0db4, 0x9082, 0x0085, 0x00a2, 0x9186,\r
++      0x0027, 0x0130, 0x9186, 0x0014, 0x0118, 0x080c, 0x9ec7, 0x0050,\r
++      0x2001, 0x0007, 0x080c, 0x61bb, 0x080c, 0x886e, 0x080c, 0x9e62,\r
++      0x080c, 0x8973, 0x0005, 0xd0a0, 0xd0a2, 0xd0a2, 0xd0a0, 0xd0a0,\r
++      0xd0a0, 0xd0a0, 0xd0a0, 0xd0a0, 0xd0a0, 0xd0a0, 0xd0a0, 0xd0a0,\r
++      0x080c, 0x0db4, 0x080c, 0x886e, 0x080c, 0x9e62, 0x080c, 0x8973,\r
++      0x0005, 0x9182, 0x0085, 0x0a0c, 0x0db4, 0x9182, 0x0092, 0x1a0c,\r
++      0x0db4, 0x9182, 0x0085, 0x0002, 0xd0c1, 0xd0c1, 0xd0c1, 0xd0c3,\r
++      0xd0c1, 0xd0c1, 0xd0c1, 0xd0c1, 0xd0c1, 0xd0c1, 0xd0c1, 0xd0c1,\r
++      0xd0c1, 0x080c, 0x0db4, 0x0005, 0x9186, 0x0013, 0x0148, 0x9186,\r
++      0x0014, 0x0130, 0x9186, 0x0027, 0x0118, 0x080c, 0x9ec7, 0x0030,\r
++      0x080c, 0x886e, 0x080c, 0x9e62, 0x080c, 0x8973, 0x0005, 0x0036,\r
++      0x080c, 0xd787, 0x6043, 0x0000, 0x2019, 0x000b, 0x0031, 0x6023,\r
++      0x0006, 0x6003, 0x0007, 0x003e, 0x0005, 0x0126, 0x0036, 0x2091,\r
++      0x8000, 0x0086, 0x2c40, 0x0096, 0x904e, 0x080c, 0x97ba, 0x009e,\r
++      0x008e, 0x1550, 0x0076, 0x2c38, 0x080c, 0x9865, 0x007e, 0x1520,\r
++      0x6000, 0x9086, 0x0000, 0x0500, 0x6020, 0x9086, 0x0007, 0x01e0,\r
++      0x0096, 0x601c, 0xd084, 0x0140, 0x080c, 0xd787, 0x080c, 0xc22a,\r
++      0x080c, 0x190d, 0x6023, 0x0007, 0x6014, 0x2048, 0x080c, 0xbb17,\r
++      0x0110, 0x080c, 0xd4d5, 0x009e, 0x6017, 0x0000, 0x080c, 0xd787,\r
++      0x6023, 0x0007, 0x080c, 0xc22a, 0x003e, 0x012e, 0x0005, 0x00f6,\r
++      0x00c6, 0x00b6, 0x0036, 0x0156, 0x2079, 0x0260, 0x7938, 0x783c,\r
++      0x080c, 0x2663, 0x15c8, 0x0016, 0x00c6, 0x080c, 0x623e, 0x1590,\r
++      0x001e, 0x00c6, 0x2160, 0x080c, 0xc227, 0x00ce, 0x002e, 0x0026,\r
++      0x0016, 0x2019, 0x0029, 0x080c, 0x9926, 0x080c, 0x8571, 0x0076,\r
++      0x903e, 0x080c, 0x8469, 0x007e, 0x001e, 0x0076, 0x903e, 0x080c,\r
++      0xd29b, 0x007e, 0x0026, 0xba04, 0x9294, 0xff00, 0x8217, 0x9286,\r
++      0x0006, 0x0118, 0x9286, 0x0004, 0x1118, 0xbaa0, 0x080c, 0x3097,\r
++      0x002e, 0xbcb0, 0x001e, 0x080c, 0x5ceb, 0xbe12, 0xbd16, 0xbcb2,\r
++      0x9006, 0x0010, 0x00ce, 0x001e, 0x015e, 0x003e, 0x00be, 0x00ce,\r
++      0x00fe, 0x0005, 0x00c6, 0x00d6, 0x00b6, 0x0016, 0x2009, 0x1823,\r
++      0x2104, 0x9086, 0x0074, 0x1904, 0xd1c3, 0x2069, 0x0260, 0x6944,\r
++      0x9182, 0x0100, 0x06e0, 0x6940, 0x9184, 0x8000, 0x0904, 0xd1c0,\r
++      0x2001, 0x194d, 0x2004, 0x9005, 0x1140, 0x6010, 0x2058, 0xb8b0,\r
++      0x9005, 0x0118, 0x9184, 0x0800, 0x0598, 0x6948, 0x918a, 0x0001,\r
++      0x0648, 0x080c, 0xd83b, 0x0118, 0x6978, 0xd1fc, 0x11b8, 0x2009,\r
++      0x0205, 0x200b, 0x0001, 0x693c, 0x81ff, 0x1198, 0x6944, 0x9182,\r
++      0x0100, 0x02a8, 0x6940, 0x81ff, 0x1178, 0x6948, 0x918a, 0x0001,\r
++      0x0288, 0x6950, 0x918a, 0x0001, 0x0298, 0x00d0, 0x6017, 0x0100,\r
++      0x00a0, 0x6017, 0x0300, 0x0088, 0x6017, 0x0500, 0x0070, 0x6017,\r
++      0x0700, 0x0058, 0x6017, 0x0900, 0x0040, 0x6017, 0x0b00, 0x0028,\r
++      0x6017, 0x0f00, 0x0010, 0x6017, 0x2d00, 0x9085, 0x0001, 0x0008,\r
++      0x9006, 0x001e, 0x00be, 0x00de, 0x00ce, 0x0005, 0x00c6, 0x00b6,\r
++      0x0026, 0x0036, 0x0156, 0x6210, 0x2258, 0xbb04, 0x9394, 0x00ff,\r
++      0x9286, 0x0006, 0x0180, 0x9286, 0x0004, 0x0168, 0x9394, 0xff00,\r
++      0x8217, 0x9286, 0x0006, 0x0138, 0x9286, 0x0004, 0x0120, 0x080c,\r
++      0x624d, 0x0804, 0xd22a, 0x2011, 0x0276, 0x20a9, 0x0004, 0x0096,\r
++      0x2b48, 0x2019, 0x000a, 0x080c, 0xae0d, 0x009e, 0x15a0, 0x2011,\r
++      0x027a, 0x20a9, 0x0004, 0x0096, 0x2b48, 0x2019, 0x0006, 0x080c,\r
++      0xae0d, 0x009e, 0x1540, 0x0046, 0x0016, 0xbaa0, 0x2220, 0x9006,\r
++      0x2009, 0x1854, 0x210c, 0x0038, 0x2009, 0x0029, 0x080c, 0xd52a,\r
++      0xb800, 0xc0e5, 0xb802, 0x2019, 0x0029, 0x080c, 0x8571, 0x0076,\r
++      0x2039, 0x0000, 0x080c, 0x8469, 0x2c08, 0x080c, 0xd29b, 0x007e,\r
++      0x2001, 0x0007, 0x080c, 0x61bb, 0x2001, 0x0007, 0x080c, 0x618f,\r
++      0x001e, 0x004e, 0x9006, 0x015e, 0x003e, 0x002e, 0x00be, 0x00ce,\r
++      0x0005, 0x00d6, 0x2069, 0x026e, 0x6800, 0x9086, 0x0800, 0x0118,\r
++      0x6017, 0x0000, 0x0008, 0x9006, 0x00de, 0x0005, 0x00b6, 0x00f6,\r
++      0x0016, 0x0026, 0x0036, 0x0156, 0x2079, 0x026c, 0x7930, 0x7834,\r
++      0x080c, 0x2663, 0x11d0, 0x080c, 0x623e, 0x11b8, 0x2011, 0x0270,\r
++      0x20a9, 0x0004, 0x0096, 0x2b48, 0x2019, 0x000a, 0x080c, 0xae0d,\r
++      0x009e, 0x1158, 0x2011, 0x0274, 0x20a9, 0x0004, 0x0096, 0x2b48,\r
++      0x2019, 0x0006, 0x080c, 0xae0d, 0x009e, 0x015e, 0x003e, 0x002e,\r
++      0x001e, 0x00fe, 0x00be, 0x0005, 0x00b6, 0x0006, 0x0016, 0x0026,\r
++      0x0036, 0x0156, 0x2011, 0x0263, 0x2204, 0x8211, 0x220c, 0x080c,\r
++      0x2663, 0x11d0, 0x080c, 0x623e, 0x11b8, 0x2011, 0x0276, 0x20a9,\r
++      0x0004, 0x0096, 0x2b48, 0x2019, 0x000a, 0x080c, 0xae0d, 0x009e,\r
++      0x1158, 0x2011, 0x027a, 0x20a9, 0x0004, 0x0096, 0x2b48, 0x2019,\r
++      0x0006, 0x080c, 0xae0d, 0x009e, 0x015e, 0x003e, 0x002e, 0x001e,\r
++      0x000e, 0x00be, 0x0005, 0x00e6, 0x00c6, 0x0086, 0x0076, 0x0066,\r
++      0x0056, 0x0046, 0x0026, 0x0126, 0x2091, 0x8000, 0x2740, 0x2029,\r
++      0x19c1, 0x252c, 0x2021, 0x19c7, 0x2424, 0x2061, 0x1cd0, 0x2071,\r
++      0x1800, 0x7650, 0x7070, 0x81ff, 0x0150, 0x0006, 0x9186, 0x1a80,\r
++      0x000e, 0x0128, 0x8001, 0x9602, 0x1a04, 0xd334, 0x0018, 0x9606,\r
++      0x0904, 0xd334, 0x2100, 0x9c06, 0x0904, 0xd32b, 0x080c, 0xd56b,\r
++      0x1904, 0xd32b, 0x080c, 0xd858, 0x0904, 0xd32b, 0x080c, 0xd55b,\r
++      0x0904, 0xd32b, 0x6720, 0x9786, 0x0001, 0x1148, 0x080c, 0x312e,\r
++      0x0904, 0xd34f, 0x6004, 0x9086, 0x0000, 0x1904, 0xd34f, 0x9786,\r
++      0x0004, 0x0904, 0xd34f, 0x9786, 0x0007, 0x0904, 0xd32b, 0x2500,\r
++      0x9c06, 0x0904, 0xd32b, 0x2400, 0x9c06, 0x05e8, 0x88ff, 0x0118,\r
++      0x6054, 0x9906, 0x15c0, 0x0096, 0x6000, 0x9086, 0x0004, 0x1120,\r
++      0x0016, 0x080c, 0x190d, 0x001e, 0x9786, 0x000a, 0x0148, 0x080c,\r
++      0xbd1d, 0x1130, 0x080c, 0xa7c0, 0x009e, 0x080c, 0x9e62, 0x0418,\r
++      0x6014, 0x2048, 0x080c, 0xbb17, 0x01d8, 0x9786, 0x0003, 0x1570,\r
++      0xa867, 0x0103, 0xa87c, 0xd0cc, 0x0130, 0x0096, 0xa878, 0x2048,\r
++      0x080c, 0x0f9d, 0x009e, 0xab7a, 0xa877, 0x0000, 0x080c, 0xd7d3,\r
++      0x0016, 0x080c, 0xbe06, 0x080c, 0x687f, 0x001e, 0x080c, 0xbd00,\r
++      0x009e, 0x080c, 0x9e62, 0x9ce0, 0x0018, 0x2001, 0x1819, 0x2004,\r
++      0x9c02, 0x1210, 0x0804, 0xd2af, 0x012e, 0x002e, 0x004e, 0x005e,\r
++      0x006e, 0x007e, 0x008e, 0x00ce, 0x00ee, 0x0005, 0x9786, 0x0006,\r
++      0x1150, 0x9386, 0x0005, 0x0128, 0x080c, 0xd7d3, 0x080c, 0xd4d5,\r
++      0x08f8, 0x009e, 0x0c00, 0x9786, 0x000a, 0x0920, 0x0808, 0x81ff,\r
++      0x09d0, 0x9180, 0x0001, 0x2004, 0x9086, 0x0018, 0x0130, 0x9180,\r
++      0x0001, 0x2004, 0x9086, 0x002d, 0x1970, 0x6000, 0x9086, 0x0002,\r
++      0x1950, 0x080c, 0xbd0c, 0x0130, 0x080c, 0xbd1d, 0x1920, 0x080c,\r
++      0xa7c0, 0x0038, 0x080c, 0x3003, 0x080c, 0xbd1d, 0x1110, 0x080c,\r
++      0xa7c0, 0x080c, 0x9e62, 0x0804, 0xd32b, 0xa864, 0x9084, 0x00ff,\r
++      0x9086, 0x0039, 0x0005, 0x00c6, 0x00e6, 0x0016, 0x2c08, 0x2170,\r
++      0x9006, 0x080c, 0xd4fc, 0x001e, 0x0120, 0x6020, 0x9084, 0x000f,\r
++      0x001b, 0x00ee, 0x00ce, 0x0005, 0xd39a, 0xd39a, 0xd39a, 0xd39a,\r
++      0xd39a, 0xd39a, 0xd39c, 0xd39a, 0xd39a, 0xd39a, 0xd39a, 0x9e62,\r
++      0x9e62, 0xd39a, 0x9006, 0x0005, 0x0036, 0x0046, 0x0016, 0x7010,\r
++      0x00b6, 0x2058, 0xbca0, 0x00be, 0x2c00, 0x2009, 0x0020, 0x080c,\r
++      0xd52a, 0x001e, 0x004e, 0x2019, 0x0002, 0x080c, 0xd0e5, 0x003e,\r
++      0x9085, 0x0001, 0x0005, 0x0096, 0x080c, 0xbb17, 0x0140, 0x6014,\r
++      0x904d, 0x080c, 0xb74a, 0x687b, 0x0005, 0x080c, 0x688c, 0x009e,\r
++      0x080c, 0x9e62, 0x9085, 0x0001, 0x0005, 0x2001, 0x0001, 0x080c,\r
++      0x617b, 0x0156, 0x0016, 0x0026, 0x0036, 0x20a9, 0x0004, 0x2019,\r
++      0x1805, 0x2011, 0x0276, 0x080c, 0xadf9, 0x003e, 0x002e, 0x001e,\r
++      0x015e, 0x9005, 0x0005, 0x00f6, 0x00e6, 0x00c6, 0x0086, 0x0076,\r
++      0x0066, 0x00b6, 0x0126, 0x2091, 0x8000, 0x2740, 0x2061, 0x1cd0,\r
++      0x2079, 0x0001, 0x8fff, 0x0904, 0xd435, 0x2071, 0x1800, 0x7650,\r
++      0x7070, 0x8001, 0x9602, 0x1a04, 0xd435, 0x88ff, 0x0120, 0x2800,\r
++      0x9c06, 0x1590, 0x2078, 0x080c, 0xd55b, 0x0570, 0x2400, 0x9c06,\r
++      0x0558, 0x6720, 0x9786, 0x0006, 0x1538, 0x9786, 0x0007, 0x0520,\r
++      0x88ff, 0x1140, 0x6010, 0x9b06, 0x11f8, 0x85ff, 0x0118, 0x6054,\r
++      0x9106, 0x11d0, 0x0096, 0x601c, 0xd084, 0x0140, 0x080c, 0xd787,\r
++      0x080c, 0xc22a, 0x080c, 0x190d, 0x6023, 0x0007, 0x6014, 0x2048,\r
++      0x080c, 0xbb17, 0x0120, 0x0046, 0x080c, 0xd4d5, 0x004e, 0x009e,\r
++      0x080c, 0x9e62, 0x88ff, 0x1198, 0x9ce0, 0x0018, 0x2001, 0x1819,\r
++      0x2004, 0x9c02, 0x1210, 0x0804, 0xd3ea, 0x9006, 0x012e, 0x00be,\r
++      0x006e, 0x007e, 0x008e, 0x00ce, 0x00ee, 0x00fe, 0x0005, 0x98c5,\r
++      0x0001, 0x0ca0, 0x00b6, 0x0076, 0x0056, 0x0086, 0x9046, 0x2029,\r
++      0x0001, 0x2c20, 0x2019, 0x0002, 0x6210, 0x2258, 0x0096, 0x904e,\r
++      0x080c, 0x97ba, 0x009e, 0x008e, 0x903e, 0x080c, 0x9865, 0x080c,\r
++      0xd3db, 0x005e, 0x007e, 0x00be, 0x0005, 0x00b6, 0x0046, 0x0056,\r
++      0x0076, 0x00c6, 0x0156, 0x2c20, 0x2128, 0x20a9, 0x007f, 0x900e,\r
++      0x0016, 0x0036, 0x080c, 0x623e, 0x1190, 0x0056, 0x0086, 0x9046,\r
++      0x2508, 0x2029, 0x0001, 0x0096, 0x904e, 0x080c, 0x97ba, 0x009e,\r
++      0x008e, 0x903e, 0x080c, 0x9865, 0x080c, 0xd3db, 0x005e, 0x003e,\r
++      0x001e, 0x8108, 0x1f04, 0xd468, 0x015e, 0x00ce, 0x007e, 0x005e,\r
++      0x004e, 0x00be, 0x0005, 0x00b6, 0x0076, 0x0056, 0x6210, 0x2258,\r
++      0x0086, 0x9046, 0x2029, 0x0001, 0x2019, 0x0048, 0x0096, 0x904e,\r
++      0x080c, 0x97ba, 0x009e, 0x008e, 0x903e, 0x080c, 0x9865, 0x2c20,\r
++      0x080c, 0xd3db, 0x005e, 0x007e, 0x00be, 0x0005, 0x00b6, 0x0046,\r
++      0x0056, 0x0076, 0x00c6, 0x0156, 0x2c20, 0x20a9, 0x0800, 0x900e,\r
++      0x0016, 0x0036, 0x080c, 0x623e, 0x11a0, 0x0086, 0x9046, 0x2828,\r
++      0x0046, 0x2021, 0x0001, 0x080c, 0xd76b, 0x004e, 0x0096, 0x904e,\r
++      0x080c, 0x97ba, 0x009e, 0x008e, 0x903e, 0x080c, 0x9865, 0x080c,\r
++      0xd3db, 0x003e, 0x001e, 0x8108, 0x1f04, 0xd4b0, 0x015e, 0x00ce,\r
++      0x007e, 0x005e, 0x004e, 0x00be, 0x0005, 0x0016, 0x00f6, 0x080c,\r
++      0xbb15, 0x0198, 0xa864, 0x9084, 0x00ff, 0x9086, 0x0046, 0x0180,\r
++      0xa800, 0x907d, 0x0138, 0xa803, 0x0000, 0xab82, 0x080c, 0x688c,\r
++      0x2f48, 0x0cb0, 0xab82, 0x080c, 0x688c, 0x00fe, 0x001e, 0x0005,\r
++      0xa800, 0x907d, 0x0130, 0xa803, 0x0000, 0x080c, 0x688c, 0x2f48,\r
++      0x0cb8, 0x080c, 0x688c, 0x0c88, 0x00e6, 0x0046, 0x0036, 0x2061,\r
++      0x1cd0, 0x9005, 0x1138, 0x2071, 0x1800, 0x7450, 0x7070, 0x8001,\r
++      0x9402, 0x12d8, 0x2100, 0x9c06, 0x0168, 0x6000, 0x9086, 0x0000,\r
++      0x0148, 0x6008, 0x9206, 0x1130, 0x6010, 0x91a0, 0x0004, 0x2424,\r
++      0x9406, 0x0140, 0x9ce0, 0x0018, 0x2001, 0x1819, 0x2004, 0x9c02,\r
++      0x1220, 0x0c40, 0x9085, 0x0001, 0x0008, 0x9006, 0x003e, 0x004e,\r
++      0x00ee, 0x0005, 0x0096, 0x0006, 0x080c, 0x0feb, 0x000e, 0x090c,\r
++      0x0db4, 0xaae2, 0xa867, 0x010d, 0xa88e, 0x0026, 0x2010, 0x080c,\r
++      0xbb05, 0x2001, 0x0000, 0x0120, 0x2200, 0x9080, 0x0015, 0x2004,\r
++      0x002e, 0xa87a, 0x9186, 0x0020, 0x0110, 0xa8e3, 0xffff, 0xa986,\r
++      0xac76, 0xa87f, 0x0000, 0x2001, 0x195f, 0x2004, 0xa882, 0x9006,\r
++      0xa802, 0xa86a, 0xa88a, 0x0126, 0x2091, 0x8000, 0x080c, 0x688c,\r
++      0x012e, 0x009e, 0x0005, 0x6700, 0x9786, 0x0000, 0x0158, 0x9786,\r
++      0x0001, 0x0140, 0x9786, 0x000a, 0x0128, 0x9786, 0x0009, 0x0110,\r
++      0x9085, 0x0001, 0x0005, 0x00e6, 0x6010, 0x9075, 0x0138, 0x00b6,\r
++      0x2058, 0xb8a0, 0x00be, 0x9206, 0x00ee, 0x0005, 0x9085, 0x0001,\r
++      0x0cd8, 0x0016, 0x6004, 0x908e, 0x001e, 0x11a0, 0x8007, 0x6134,\r
++      0x918c, 0x00ff, 0x9105, 0x6036, 0x6007, 0x0085, 0x6003, 0x000b,\r
++      0x6023, 0x0005, 0x2001, 0x1958, 0x2004, 0x601a, 0x080c, 0x83f1,\r
++      0x080c, 0x8973, 0x001e, 0x0005, 0xa001, 0xa001, 0x0005, 0x6024,\r
++      0xd0e4, 0x0158, 0xd0cc, 0x0118, 0x080c, 0xbe4a, 0x0030, 0x080c,\r
++      0xd787, 0x080c, 0x8204, 0x080c, 0x9e32, 0x0005, 0x9280, 0x0008,\r
++      0x2004, 0x9084, 0x000f, 0x0002, 0xd5ba, 0xd5ba, 0xd5ba, 0xd5bc,\r
++      0xd5ba, 0xd5bc, 0xd5bc, 0xd5ba, 0xd5bc, 0xd5ba, 0xd5ba, 0xd5ba,\r
++      0xd5ba, 0xd5ba, 0x9006, 0x0005, 0x9085, 0x0001, 0x0005, 0x9280,\r
++      0x0008, 0x2004, 0x9084, 0x000f, 0x0002, 0xd5d3, 0xd5d3, 0xd5d3,\r
++      0xd5d3, 0xd5d3, 0xd5d3, 0xd5e0, 0xd5d3, 0xd5d3, 0xd5d3, 0xd5d3,\r
++      0xd5d3, 0xd5d3, 0xd5d3, 0x6007, 0x003b, 0x602f, 0x0009, 0x6017,\r
++      0x2a00, 0x6003, 0x0001, 0x080c, 0x83f1, 0x080c, 0x8973, 0x0005,\r
++      0x0096, 0x00c6, 0x2260, 0x080c, 0xd787, 0x6043, 0x0000, 0x6024,\r
++      0xc0f4, 0xc0e4, 0x6026, 0x603b, 0x0000, 0x00ce, 0x00d6, 0x2268,\r
++      0x9186, 0x0007, 0x1904, 0xd639, 0x6814, 0x9005, 0x0138, 0x2048,\r
++      0xa87c, 0xd0fc, 0x1118, 0x00de, 0x009e, 0x08a8, 0x6007, 0x003a,\r
++      0x6003, 0x0001, 0x080c, 0x83f1, 0x080c, 0x8973, 0x00c6, 0x2d60,\r
++      0x6100, 0x9186, 0x0002, 0x1904, 0xd6b0, 0x6014, 0x9005, 0x1138,\r
++      0x6000, 0x9086, 0x0007, 0x190c, 0x0db4, 0x0804, 0xd6b0, 0x2048,\r
++      0x080c, 0xbb17, 0x1130, 0x0028, 0x2048, 0xa800, 0x9005, 0x1de0,\r
++      0x2900, 0x2048, 0xa87c, 0x9084, 0x0003, 0x9086, 0x0002, 0x1168,\r
++      0xa87c, 0xc0dc, 0xc0f4, 0xa87e, 0xa880, 0xc0fc, 0xa882, 0x2009,\r
++      0x0043, 0x080c, 0xcf3e, 0x0804, 0xd6b0, 0x2009, 0x0041, 0x0804,\r
++      0xd6aa, 0x9186, 0x0005, 0x15a0, 0x6814, 0x2048, 0xa87c, 0xd0bc,\r
++      0x1120, 0x00de, 0x009e, 0x0804, 0xd5d3, 0xd0b4, 0x0128, 0xd0fc,\r
++      0x090c, 0x0db4, 0x0804, 0xd5f4, 0x6007, 0x003a, 0x6003, 0x0001,\r
++      0x080c, 0x83f1, 0x080c, 0x8973, 0x00c6, 0x2d60, 0x6100, 0x9186,\r
++      0x0002, 0x0120, 0x9186, 0x0004, 0x1904, 0xd6b0, 0x6814, 0x2048,\r
++      0xa97c, 0xc1f4, 0xc1dc, 0xa97e, 0xa980, 0xc1fc, 0xc1bc, 0xa982,\r
++      0x00f6, 0x2c78, 0x080c, 0x1648, 0x00fe, 0x2009, 0x0042, 0x04d0,\r
++      0x0036, 0x080c, 0x0feb, 0x090c, 0x0db4, 0xa867, 0x010d, 0x9006,\r
++      0xa802, 0xa86a, 0xa88a, 0x2d18, 0xab8e, 0xa887, 0x0045, 0x2c00,\r
++      0xa892, 0x6038, 0xa8a2, 0x2360, 0x6024, 0xc0dd, 0x6026, 0x6010,\r
++      0x00b6, 0x2058, 0xb8a0, 0x00be, 0x2004, 0x6354, 0xab7a, 0xa876,\r
++      0x9006, 0xa87e, 0xa882, 0xad9a, 0xae96, 0xa89f, 0x0001, 0x080c,\r
++      0x688c, 0x2019, 0x0045, 0x6008, 0x2068, 0x080c, 0xd0e5, 0x2d00,\r
++      0x600a, 0x6023, 0x0006, 0x6003, 0x0007, 0x901e, 0x631a, 0x6342,\r
++      0x003e, 0x0038, 0x6043, 0x0000, 0x6003, 0x0007, 0x080c, 0xcf3e,\r
++      0x00ce, 0x00de, 0x009e, 0x0005, 0x9186, 0x0013, 0x1128, 0x6004,\r
++      0x9082, 0x0085, 0x2008, 0x00c2, 0x9186, 0x0027, 0x1178, 0x080c,\r
++      0x886e, 0x0036, 0x0096, 0x6014, 0x2048, 0x2019, 0x0004, 0x080c,\r
++      0xd4d5, 0x009e, 0x003e, 0x080c, 0x8973, 0x0005, 0x9186, 0x0014,\r
++      0x0d70, 0x080c, 0x9ec7, 0x0005, 0xd6e3, 0xd6e1, 0xd6e1, 0xd6e1,\r
++      0xd6e1, 0xd6e1, 0xd6e3, 0xd6e1, 0xd6e1, 0xd6e1, 0xd6e1, 0xd6e1,\r
++      0xd6e1, 0x080c, 0x0db4, 0x080c, 0x886e, 0x6003, 0x000c, 0x080c,\r
++      0x8973, 0x0005, 0x9182, 0x0092, 0x1220, 0x9182, 0x0085, 0x0208,\r
++      0x001a, 0x080c, 0x9ec7, 0x0005, 0xd701, 0xd701, 0xd701, 0xd701,\r
++      0xd703, 0xd723, 0xd701, 0xd701, 0xd701, 0xd701, 0xd701, 0xd701,\r
++      0xd701, 0x080c, 0x0db4, 0x00d6, 0x2c68, 0x080c, 0x9ddc, 0x01b0,\r
++      0x6003, 0x0001, 0x6007, 0x001e, 0x2009, 0x026e, 0x210c, 0x613a,\r
++      0x2009, 0x026f, 0x210c, 0x613e, 0x600b, 0xffff, 0x6910, 0x6112,\r
++      0x6023, 0x0004, 0x080c, 0x83f1, 0x080c, 0x8973, 0x2d60, 0x080c,\r
++      0x9e32, 0x00de, 0x0005, 0x080c, 0x9e32, 0x0005, 0x00e6, 0x6010,\r
++      0x00b6, 0x2058, 0xb800, 0x00be, 0xd0ec, 0x00ee, 0x0005, 0x2009,\r
++      0x1873, 0x210c, 0xd1ec, 0x05b0, 0x6003, 0x0002, 0x6024, 0xc0e5,\r
++      0x6026, 0xd0cc, 0x0150, 0x2001, 0x1959, 0x2004, 0x6042, 0x2009,\r
++      0x1873, 0x210c, 0xd1f4, 0x1520, 0x00a0, 0x2009, 0x1873, 0x210c,\r
++      0xd1f4, 0x0128, 0x6024, 0xc0e4, 0x6026, 0x9006, 0x00d8, 0x2001,\r
++      0x1959, 0x200c, 0x2001, 0x1957, 0x2004, 0x9100, 0x9080, 0x000a,\r
++      0x6042, 0x6010, 0x00b6, 0x2058, 0xb8ac, 0x00be, 0x0008, 0x2104,\r
++      0x9005, 0x0118, 0x9088, 0x0003, 0x0cd0, 0x2c0a, 0x600f, 0x0000,\r
++      0x9085, 0x0001, 0x0005, 0x0016, 0x00c6, 0x00e6, 0x6154, 0xb8ac,\r
++      0x2060, 0x8cff, 0x0180, 0x84ff, 0x1118, 0x6054, 0x9106, 0x1138,\r
++      0x600c, 0x2072, 0x080c, 0x8204, 0x080c, 0x9e32, 0x0010, 0x9cf0,\r
++      0x0003, 0x2e64, 0x0c70, 0x00ee, 0x00ce, 0x001e, 0x0005, 0x00d6,\r
++      0x00b6, 0x6010, 0x2058, 0xb8ac, 0x2068, 0x9005, 0x0130, 0x9c06,\r
++      0x0110, 0x680c, 0x0cd0, 0x600c, 0x680e, 0x00be, 0x00de, 0x0005,\r
++      0x0026, 0x0036, 0x0156, 0x2011, 0x182b, 0x2204, 0x9084, 0x00ff,\r
++      0x2019, 0x026e, 0x2334, 0x9636, 0x1508, 0x8318, 0x2334, 0x2204,\r
++      0x9084, 0xff00, 0x9636, 0x11d0, 0x2011, 0x0270, 0x20a9, 0x0004,\r
++      0x6010, 0x0096, 0x2048, 0x2019, 0x000a, 0x080c, 0xae0d, 0x009e,\r
++      0x1168, 0x2011, 0x0274, 0x20a9, 0x0004, 0x6010, 0x0096, 0x2048,\r
++      0x2019, 0x0006, 0x080c, 0xae0d, 0x009e, 0x1100, 0x015e, 0x003e,\r
++      0x002e, 0x0005, 0x00e6, 0x2071, 0x1800, 0x080c, 0x5c64, 0x080c,\r
++      0x2dbb, 0x00ee, 0x0005, 0x00e6, 0x6010, 0x00b6, 0x2058, 0xb800,\r
++      0x00be, 0xd0fc, 0x0108, 0x0011, 0x00ee, 0x0005, 0xa880, 0xc0e5,\r
++      0xa882, 0x0005, 0x00e6, 0x00d6, 0x00c6, 0x0076, 0x0066, 0x0056,\r
++      0x0046, 0x0026, 0x0016, 0x0126, 0x2091, 0x8000, 0x2029, 0x19c1,\r
++      0x252c, 0x2021, 0x19c7, 0x2424, 0x2061, 0x1cd0, 0x2071, 0x1800,\r
++      0x7650, 0x7070, 0x9606, 0x0578, 0x6720, 0x9786, 0x0001, 0x0118,\r
++      0x9786, 0x0008, 0x1500, 0x2500, 0x9c06, 0x01e8, 0x2400, 0x9c06,\r
++      0x01d0, 0x080c, 0xd55b, 0x01b8, 0x080c, 0xd56b, 0x11a0, 0x6000,\r
++      0x9086, 0x0004, 0x1120, 0x0016, 0x080c, 0x190d, 0x001e, 0x080c,\r
++      0xbd0c, 0x1110, 0x080c, 0x3003, 0x080c, 0xbd1d, 0x1110, 0x080c,\r
++      0xa7c0, 0x080c, 0x9e62, 0x9ce0, 0x0018, 0x2001, 0x1819, 0x2004,\r
++      0x9c02, 0x1208, 0x0858, 0x012e, 0x001e, 0x002e, 0x004e, 0x005e,\r
++      0x006e, 0x007e, 0x00ce, 0x00de, 0x00ee, 0x0005, 0x2001, 0x1810,\r
++      0x2004, 0xd0dc, 0x0005, 0x0006, 0x2001, 0x1836, 0x2004, 0xd09c,\r
++      0x000e, 0x0005, 0x0006, 0x0036, 0x0046, 0x080c, 0xc212, 0x0168,\r
++      0x2019, 0xffff, 0x9005, 0x0128, 0x6010, 0x00b6, 0x2058, 0xbba0,\r
++      0x00be, 0x2021, 0x0004, 0x080c, 0x4a76, 0x004e, 0x003e, 0x000e,\r
++      0x6004, 0x9086, 0x0001, 0x1128, 0x080c, 0x9926, 0x080c, 0x9e62,\r
++      0x9006, 0x0005, 0x00e6, 0x00c6, 0x00b6, 0x0046, 0x2061, 0x1cd0,\r
++      0x2071, 0x1800, 0x7450, 0x7070, 0x8001, 0x9402, 0x12b8, 0x2100,\r
++      0x9c06, 0x0148, 0x6000, 0x9086, 0x0000, 0x0128, 0x6010, 0x2058,\r
++      0xb8a0, 0x9206, 0x0140, 0x9ce0, 0x0018, 0x2001, 0x1819, 0x2004,\r
++      0x9c02, 0x1220, 0x0c60, 0x9085, 0x0001, 0x0008, 0x9006, 0x004e,\r
++      0x00be, 0x00ce, 0x00ee, 0x0005, 0x0126, 0x0006, 0x00e6, 0x0016,\r
++      0x2091, 0x8000, 0x2071, 0x1840, 0xd5a4, 0x0118, 0x7034, 0x8000,\r
++      0x7036, 0xd5b4, 0x0118, 0x7030, 0x8000, 0x7032, 0xd5ac, 0x0178,\r
++      0x2500, 0x9084, 0x0007, 0x908e, 0x0003, 0x0148, 0x908e, 0x0004,\r
++      0x0130, 0x908e, 0x0005, 0x0118, 0x2071, 0x184a, 0x0089, 0x001e,\r
++      0x00ee, 0x000e, 0x012e, 0x0005, 0x0126, 0x0006, 0x00e6, 0x2091,\r
++      0x8000, 0x2071, 0x1842, 0x0021, 0x00ee, 0x000e, 0x012e, 0x0005,\r
++      0x2e04, 0x8000, 0x2072, 0x1220, 0x8e70, 0x2e04, 0x8000, 0x2072,\r
++      0x0005, 0x00e6, 0x2071, 0x1840, 0x0c99, 0x00ee, 0x0005, 0x00e6,\r
++      0x2071, 0x1844, 0x0c69, 0x00ee, 0x0005, 0x0126, 0x0006, 0x00e6,\r
++      0x2091, 0x8000, 0x2071, 0x1840, 0x7044, 0x8000, 0x7046, 0x00ee,\r
++      0x000e, 0x012e, 0x0005, 0x0003, 0x000b, 0x04a6, 0x0000, 0xc000,\r
++      0x0001, 0x8064, 0x0008, 0x0010, 0x0000, 0x8066, 0x0000, 0x0101,\r
++      0x0008, 0x4407, 0x0003, 0x8060, 0x0000, 0x0400, 0x0000, 0x580d,\r
++      0x000b, 0x798e, 0x0003, 0x50db, 0x000b, 0x4c0a, 0x0003, 0xbac0,\r
++      0x0009, 0x008a, 0x0000, 0x0c0a, 0x000b, 0x15fe, 0x0008, 0x340a,\r
++      0x0003, 0xc4c0, 0x0009, 0x7000, 0x0000, 0xffa0, 0x0001, 0x2000,\r
++      0x0000, 0x1627, 0x0003, 0x808c, 0x0008, 0x0001, 0x0000, 0x0000,\r
++      0x0007, 0x4047, 0x000a, 0x808c, 0x0008, 0x0002, 0x0000, 0x0821,\r
++      0x0003, 0x4022, 0x0000, 0x0022, 0x000b, 0x4122, 0x0008, 0x4447,\r
++      0x0002, 0x0e4f, 0x000b, 0x0bfe, 0x0008, 0x11a0, 0x0001, 0x122d,\r
++      0x000b, 0x0ca0, 0x0001, 0x122d, 0x000b, 0x9180, 0x0001, 0x0004,\r
++      0x0000, 0x8060, 0x0000, 0x0400, 0x0000, 0x7f62, 0x0008, 0x8066,\r
++      0x0000, 0x0009, 0x0008, 0x4430, 0x000b, 0x808c, 0x0008, 0x0000,\r
++      0x0008, 0x0060, 0x0008, 0x8062, 0x0008, 0x0004, 0x0000, 0x8066,\r
++      0x0000, 0x0411, 0x0000, 0x4438, 0x0003, 0x03fe, 0x0000, 0x43e0,\r
++      0x0001, 0x0e2a, 0x000b, 0xc2c0, 0x0009, 0x00ff, 0x0008, 0x02e0,\r
++      0x0001, 0x0e2a, 0x000b, 0x9180, 0x0001, 0x0005, 0x0008, 0x8060,\r
++      0x0000, 0x0400, 0x0000, 0x7f62, 0x0008, 0x8066, 0x0000, 0x0019,\r
++      0x0000, 0x4447, 0x000b, 0x0240, 0x0002, 0x0a27, 0x000b, 0x00fe,\r
++      0x0000, 0x322a, 0x000b, 0x112a, 0x0000, 0x002e, 0x0008, 0x022c,\r
++      0x0008, 0x3a44, 0x0002, 0x0c0a, 0x000b, 0x808c, 0x0008, 0x0002,\r
++      0x0000, 0x1760, 0x0008, 0x8062, 0x0008, 0x000f, 0x0008, 0x8066,\r
++      0x0000, 0x0011, 0x0008, 0x4458, 0x0003, 0x01fe, 0x0008, 0x42e0,\r
++      0x0009, 0x0e1d, 0x0003, 0x00fe, 0x0000, 0x43e0, 0x0001, 0x0e1d,\r
++      0x0003, 0x1734, 0x0000, 0x1530, 0x0000, 0x1632, 0x0008, 0x0d2a,\r
++      0x0008, 0x9880, 0x0001, 0x0010, 0x0000, 0x8060, 0x0000, 0x0400,\r
++      0x0000, 0x7f62, 0x0008, 0x8066, 0x0000, 0x1e0a, 0x0008, 0x446a,\r
++      0x000b, 0x808a, 0x0008, 0x0003, 0x0008, 0x1a60, 0x0000, 0x8062,\r
++      0x0008, 0x0002, 0x0000, 0x5870, 0x000b, 0x8066, 0x0000, 0x3679,\r
++      0x0000, 0x4473, 0x0003, 0x5874, 0x0003, 0x3efe, 0x0008, 0x7f4f,\r
++      0x0002, 0x087a, 0x000b, 0x0d00, 0x0000, 0x0082, 0x0004, 0x8054,\r
++      0x0008, 0x0011, 0x0008, 0x8074, 0x0000, 0x1010, 0x0008, 0x1efe,\r
++      0x0000, 0x300a, 0x000b, 0x00b8, 0x0004, 0x000a, 0x000b, 0x00fe,\r
++      0x0000, 0x348a, 0x000b, 0x1a60, 0x0000, 0x8062, 0x0008, 0x0007,\r
++      0x0000, 0x8066, 0x0000, 0x0231, 0x0008, 0x4489, 0x0003, 0x03fe,\r
++      0x0000, 0x04d0, 0x0001, 0x0cb0, 0x0003, 0x82c0, 0x0001, 0x1f00,\r
++      0x0000, 0xffa0, 0x0001, 0x0400, 0x0000, 0x089f, 0x0003, 0x14b0,\r
++      0x0003, 0x01fe, 0x0008, 0x0580, 0x0009, 0x7f06, 0x0000, 0x02fe,\r
++      0x0008, 0xffc0, 0x0001, 0x00ff, 0x0008, 0x0690, 0x0001, 0x109f,\r
++      0x0003, 0x7f08, 0x0008, 0x84c0, 0x0001, 0xff00, 0x0008, 0x08b0,\r
++      0x000b, 0x00fe, 0x0000, 0x34a6, 0x0003, 0x8072, 0x0000, 0x1010,\r
++      0x0008, 0x3944, 0x0002, 0x08a1, 0x000b, 0x00aa, 0x000b, 0x8072,\r
++      0x0000, 0x2020, 0x0008, 0x3945, 0x000a, 0x08a6, 0x0003, 0x3946,\r
++      0x000a, 0x0cb7, 0x000b, 0x0000, 0x0007, 0x3943, 0x000a, 0x08b7,\r
++      0x0003, 0x00aa, 0x000b, 0x00fe, 0x0000, 0x34b5, 0x000b, 0x8072,\r
++      0x0000, 0x1000, 0x0000, 0x00b7, 0x000b, 0x8072, 0x0000, 0x2000,\r
++      0x0000, 0x4000, 0x000f, 0x1c60, 0x0000, 0x1b62, 0x0000, 0x8066,\r
++      0x0000, 0x0231, 0x0008, 0x44bc, 0x0003, 0x58bd, 0x0003, 0x0140,\r
++      0x0008, 0x0242, 0x0000, 0x1f43, 0x0002, 0x0ccb, 0x0003, 0x0d44,\r
++      0x0000, 0x0d46, 0x0008, 0x0348, 0x0008, 0x044a, 0x0008, 0x030a,\r
++      0x0008, 0x040c, 0x0000, 0x0d06, 0x0000, 0x0d08, 0x0008, 0x00cf,\r
++      0x000b, 0x0344, 0x0008, 0x0446, 0x0008, 0x0548, 0x0008, 0x064a,\r
++      0x0000, 0x58cf, 0x0003, 0x3efe, 0x0008, 0x7f4f, 0x0002, 0x08d6,\r
++      0x000b, 0x8000, 0x0000, 0x0001, 0x0000, 0x0082, 0x0004, 0x8054,\r
++      0x0008, 0x0001, 0x0000, 0x8074, 0x0000, 0x2020, 0x0008, 0x4000,\r
++      0x000f, 0x3a40, 0x000a, 0x0c0d, 0x0003, 0x2b24, 0x0008, 0x2b24,\r
++      0x0008, 0x58df, 0x000b, 0x8054, 0x0008, 0x0002, 0x0000, 0x1242,\r
++      0x0002, 0x092d, 0x000b, 0x3a45, 0x000a, 0x091c, 0x0003, 0x8072,\r
++      0x0000, 0x1000, 0x0000, 0x3945, 0x000a, 0x08ec, 0x000b, 0x8072,\r
++      0x0000, 0x3010, 0x0000, 0x1e10, 0x000a, 0x7f3c, 0x0000, 0x0917,\r
++      0x000b, 0x1d00, 0x0002, 0x7f3a, 0x0000, 0x0d60, 0x0000, 0x7f62,\r
++      0x0008, 0x8066, 0x0000, 0x0009, 0x0008, 0x44f5, 0x000b, 0x00fe,\r
++      0x0000, 0x3514, 0x000b, 0x1c60, 0x0000, 0x8062, 0x0008, 0x0001,\r
++      0x0000, 0x8066, 0x0000, 0x0009, 0x0008, 0x44fd, 0x0003, 0x00fe,\r
++      0x0000, 0x3204, 0x000b, 0x0038, 0x0000, 0x0060, 0x0008, 0x8062,\r
++      0x0008, 0x0019, 0x0000, 0x8066, 0x0000, 0x0009, 0x0008, 0x4506,\r
++      0x0003, 0x80c0, 0x0009, 0x00ff, 0x0008, 0x7f3e, 0x0008, 0x0d60,\r
++      0x0000, 0x0efe, 0x0008, 0x1f80, 0x0001, 0x7f62, 0x0008, 0x8066,\r
++      0x0000, 0x0009, 0x0008, 0x4510, 0x000b, 0x003a, 0x0008, 0x1dfe,\r
++      0x0000, 0x00f1, 0x0003, 0x0036, 0x0008, 0x00b8, 0x0004, 0x012d,\r
++      0x0003, 0x8074, 0x0000, 0x2000, 0x0000, 0x8072, 0x0000, 0x2000,\r
++      0x0000, 0x012d, 0x0003, 0x3a44, 0x0002, 0x0a30, 0x000b, 0x8074,\r
++      0x0000, 0x1000, 0x0000, 0x8072, 0x0000, 0x1000, 0x0000, 0x2d0e,\r
++      0x0000, 0x2d0e, 0x0000, 0x3601, 0x0003, 0x26fe, 0x0008, 0x26fe,\r
++      0x0008, 0x2700, 0x0008, 0x2700, 0x0008, 0x00d0, 0x0009, 0x0d3f,\r
++      0x0003, 0x8074, 0x0000, 0x4040, 0x0008, 0x592d, 0x000b, 0x50db,\r
++      0x000b, 0x3a46, 0x000a, 0x0d3f, 0x0003, 0x3a47, 0x0002, 0x093a,\r
++      0x000b, 0x8054, 0x0008, 0x0004, 0x0000, 0x8074, 0x0000, 0x8000,\r
++      0x0000, 0x8072, 0x0000, 0x3000, 0x0008, 0x0182, 0x0003, 0x92c0,\r
++      0x0009, 0x0fc8, 0x0000, 0x080a, 0x0003, 0x1246, 0x000a, 0x0dfb,\r
++      0x000b, 0x1a60, 0x0000, 0x8062, 0x0008, 0x0002, 0x0000, 0x8066,\r
++      0x0000, 0x362a, 0x0000, 0x4544, 0x0003, 0x2000, 0x0000, 0x2000,\r
++      0x0000, 0x2102, 0x0000, 0x2102, 0x0000, 0x2204, 0x0000, 0x2204,\r
++      0x0000, 0x2306, 0x0000, 0x2306, 0x0000, 0x2408, 0x0000, 0x2408,\r
++      0x0000, 0x250a, 0x0000, 0x250a, 0x0000, 0x260c, 0x0000, 0x260c,\r
++      0x0000, 0x270e, 0x0000, 0x270e, 0x0000, 0x2810, 0x0000, 0x2810,\r
++      0x0000, 0x2912, 0x0000, 0x2912, 0x0000, 0x1a60, 0x0000, 0x8062,\r
++      0x0008, 0x0007, 0x0000, 0x8066, 0x0000, 0x0052, 0x0000, 0x455e,\r
++      0x000b, 0x92c0, 0x0009, 0x0780, 0x0008, 0x0e17, 0x0003, 0x124b,\r
++      0x0002, 0x0967, 0x0003, 0x2e4d, 0x0002, 0x2e4d, 0x0002, 0x0a01,\r
++      0x0003, 0x3a46, 0x000a, 0x0d74, 0x0003, 0x5969, 0x000b, 0x8054,\r
++      0x0008, 0x0004, 0x0000, 0x1243, 0x000a, 0x097e, 0x000b, 0x8010,\r
++      0x0008, 0x000d, 0x0000, 0x01ef, 0x0004, 0x1810, 0x0000, 0x01ef,\r
++      0x0004, 0x017e, 0x0003, 0x194d, 0x000a, 0x0978, 0x000b, 0x1243,\r
++      0x000a, 0x0a0b, 0x0003, 0x5978, 0x000b, 0x8054, 0x0008, 0x0004,\r
++      0x0000, 0x01e4, 0x000c, 0x1810, 0x0000, 0x01ef, 0x0004, 0x8074,\r
++      0x0000, 0xf000, 0x0008, 0x8072, 0x0000, 0x3000, 0x0008, 0x0d30,\r
++      0x0000, 0x3a42, 0x0002, 0x0d88, 0x0003, 0x15fe, 0x0008, 0x3451,\r
++      0x000b, 0x000a, 0x000b, 0x8074, 0x0000, 0x0501, 0x0000, 0x8010,\r
++      0x0008, 0x000c, 0x0008, 0x01ef, 0x0004, 0x000a, 0x000b, 0xbbe0,\r
++      0x0009, 0x0030, 0x0008, 0x0d9e, 0x000b, 0x18fe, 0x0000, 0x3ce0,\r
++      0x0009, 0x099b, 0x0003, 0x15fe, 0x0008, 0x3ce0, 0x0009, 0x099b,\r
++      0x0003, 0x01df, 0x0004, 0x8076, 0x0008, 0x0040, 0x0000, 0x01dc,\r
++      0x000b, 0x8076, 0x0008, 0x0041, 0x0008, 0x01dc, 0x000b, 0xbbe0,\r
++      0x0009, 0x0032, 0x0000, 0x0da3, 0x0003, 0x3c1e, 0x0008, 0x01dc,\r
++      0x000b, 0xbbe0, 0x0009, 0x0037, 0x0000, 0x0dc1, 0x000b, 0x18fe,\r
++      0x0000, 0x3ce0, 0x0009, 0x0d9b, 0x000b, 0x8076, 0x0008, 0x0040,\r
++      0x0000, 0x1a60, 0x0000, 0x8062, 0x0008, 0x000d, 0x0000, 0x2604,\r
++      0x0008, 0x2604, 0x0008, 0x2706, 0x0008, 0x2706, 0x0008, 0x2808,\r
++      0x0000, 0x2808, 0x0000, 0x290a, 0x0000, 0x290a, 0x0000, 0x8066,\r
++      0x0000, 0x0422, 0x0000, 0x45b8, 0x0003, 0x01e4, 0x000c, 0x8054,\r
++      0x0008, 0x0004, 0x0000, 0x8074, 0x0000, 0xf000, 0x0008, 0x8072,\r
++      0x0000, 0xb000, 0x0000, 0x0182, 0x0003, 0xbbe0, 0x0009, 0x0038,\r
++      0x0000, 0x0dd3, 0x000b, 0x18fe, 0x0000, 0x3ce0, 0x0009, 0x09d0,\r
++      0x0003, 0x15fe, 0x0008, 0x3ce0, 0x0009, 0x0d97, 0x000b, 0x01df,\r
++      0x0004, 0x8076, 0x0008, 0x0040, 0x0000, 0x8072, 0x0000, 0x8000,\r
++      0x0000, 0x0227, 0x0003, 0x8076, 0x0008, 0x0042, 0x0008, 0x01dc,\r
++      0x000b, 0xbbe0, 0x0009, 0x0016, 0x0000, 0x0ddc, 0x000b, 0x3a44,\r
++      0x0002, 0x0c0c, 0x000b, 0x8072, 0x0000, 0x8000, 0x0000, 0x8000,\r
++      0x000f, 0x000a, 0x000b, 0x8072, 0x0000, 0x8000, 0x0000, 0x000a,\r
++      0x000b, 0x3d30, 0x000a, 0x7f00, 0x0000, 0xbc80, 0x0001, 0x0007,\r
++      0x0000, 0x01e8, 0x0003, 0x1930, 0x000a, 0x7f00, 0x0000, 0x9880,\r
++      0x0001, 0x0007, 0x0000, 0x8060, 0x0000, 0x0400, 0x0000, 0x7f62,\r
++      0x0008, 0x8066, 0x0000, 0x000a, 0x0008, 0x45ed, 0x0003, 0x4000,\r
++      0x000f, 0x21ef, 0x0003, 0x0870, 0x0008, 0x4000, 0x000f, 0xbac0,\r
++      0x0009, 0x0090, 0x0008, 0x09f8, 0x0003, 0x8074, 0x0000, 0x0706,\r
++      0x0000, 0x01fa, 0x0003, 0x8074, 0x0000, 0x0703, 0x0000, 0x4000,\r
++      0x000f, 0x8010, 0x0008, 0x0023, 0x0000, 0x0235, 0x0003, 0x8010,\r
++      0x0008, 0x0008, 0x0000, 0x0235, 0x0003, 0x8010, 0x0008, 0x0022,\r
++      0x0008, 0x0235, 0x0003, 0x01e4, 0x000c, 0x8010, 0x0008, 0x0007,\r
++      0x0000, 0x01ef, 0x0004, 0x1810, 0x0000, 0x01ef, 0x0004, 0x0241,\r
++      0x0003, 0x01e4, 0x000c, 0x8010, 0x0008, 0x001b, 0x0008, 0x01ef,\r
++      0x0004, 0x1810, 0x0000, 0x01ef, 0x0004, 0x8074, 0x0000, 0xf080,\r
++      0x0000, 0x8072, 0x0000, 0x3000, 0x0008, 0x0d30, 0x0000, 0x000a,\r
++      0x000b, 0x8010, 0x0008, 0x0009, 0x0008, 0x0235, 0x0003, 0x8010,\r
++      0x0008, 0x0005, 0x0008, 0x0235, 0x0003, 0x808c, 0x0008, 0x0001,\r
++      0x0000, 0x8010, 0x0008, 0x0004, 0x0000, 0x4143, 0x000a, 0x085f,\r
++      0x0003, 0x3a44, 0x0002, 0x0c0a, 0x000b, 0x0d2a, 0x0008, 0x0235,\r
++      0x0003, 0x8010, 0x0008, 0x0003, 0x0008, 0x0239, 0x0003, 0x8010,\r
++      0x0008, 0x000b, 0x0000, 0x0239, 0x0003, 0x8010, 0x0008, 0x0002,\r
++      0x0000, 0x0239, 0x0003, 0x3a47, 0x0002, 0x0d2d, 0x0003, 0x8010,\r
++      0x0008, 0x0006, 0x0008, 0x0239, 0x0003, 0x8074, 0x0000, 0xf000,\r
++      0x0008, 0x8072, 0x0000, 0x3000, 0x0008, 0x01ef, 0x0004, 0x01f2,\r
++      0x0004, 0x3a40, 0x000a, 0x080a, 0x0003, 0x8010, 0x0008, 0x000c,\r
++      0x0008, 0x01ef, 0x0004, 0x000a, 0x000b, 0x8074, 0x0000, 0xf080,\r
++      0x0000, 0x8072, 0x0000, 0x3000, 0x0008, 0x0d30, 0x0000, 0x2e4d,\r
++      0x0002, 0x2e4d, 0x0002, 0x0a4c, 0x0003, 0x8054, 0x0008, 0x0019,\r
++      0x0000, 0x000a, 0x000b, 0x8054, 0x0008, 0x0009, 0x0008, 0x000a,\r
++      0x000b, 0x3a44, 0x0002, 0x0c0a, 0x000b, 0x022a, 0x000b, 0x15b6,\r
++      0xf4ac, 0x0001, 0x0002, 0x0004, 0x0008, 0x0010, 0x0020, 0x0040,\r
++      0x0080, 0x0100, 0x0200, 0x0400, 0x0800, 0x1000, 0x2000, 0x4000,\r
++      0x8000, 0x89e3\r
++};\r
++#ifdef UNIQUE_FW_NAME\r
++unsigned short fw2300flx_length01 = 0xd59a;\r
++#else\r
++unsigned short risc_code_length01 = 0xd59a;\r
++#endif\r
++\r
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/ql2300ipx_fw.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/ql2300ipx_fw.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/ql2300ipx_fw.h       1969-12-31 16:00:00.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/ql2300ipx_fw.h    2004-04-22 19:42:21.000000000 -0700
+@@ -0,0 +1,7548 @@
++/******************************************************************************\r
++ *                  QLOGIC LINUX SOFTWARE\r
++ *\r
++ * QLogic ISP2x00 device driver for Linux 2.4.x\r
++ * Copyright (C) 2003 QLogic Corporation\r
++ * (www.qlogic.com)\r
++ *\r
++ * This program is free software; you can redistribute it and/or modify it\r
++ * under the terms of the GNU General Public License as published by the\r
++ * Free Software Foundation; either version 2, or (at your option) any\r
++ * later version.\r
++ *\r
++ * This program is distributed in the hope that it will be useful, but\r
++ * WITHOUT ANY WARRANTY; without even the implied warranty of\r
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
++ * General Public License for more details.\r
++ *\r
++ ******************************************************************************/\r
++\r
++/************************************************************************\r
++ *                                                                    *\r
++ *          --- ISP2300 Initiator/Target Firmware ---                 *\r
++ *            with support for Internet Protocol                      *\r
++ *            and 2K port logins.                                     *\r
++ *                                                                    *\r
++ ************************************************************************\r
++ */\r
++/*\r
++ *    Firmware Version 3.02.28 (13:56 Apr 03, 2004)\r
++ */\r
++\r
++#ifdef UNIQUE_FW_NAME\r
++unsigned short fw2300ipx_version = 3*1024+2;\r
++#else\r
++unsigned short risc_code_version = 3*1024+2;\r
++#endif\r
++\r
++#ifdef UNIQUE_FW_NAME\r
++unsigned char fw2300ipx_version_str[] = {3, 2,28};\r
++#else\r
++unsigned char firmware_version[] = {3, 2,28};\r
++#endif\r
++\r
++#ifdef UNIQUE_FW_NAME\r
++#define fw2300ipx_VERSION_STRING "3.02.28"\r
++#else\r
++#define FW_VERSION_STRING "3.02.28"\r
++#endif\r
++\r
++#ifdef UNIQUE_FW_NAME\r
++unsigned short fw2300ipx_addr01 = 0x0800 ;\r
++#else\r
++unsigned short risc_code_addr01 = 0x0800 ;\r
++#endif\r
++\r
++#ifdef UNIQUE_FW_NAME\r
++unsigned short fw2300ipx_code01[] = { \r
++#else\r
++unsigned short risc_code01[] = { \r
++#endif\r
++      0x0470, 0x0000, 0x0000, 0xe9c7, 0x0000, 0x0003, 0x0002, 0x001c,\r
++      0x0137, 0x2043, 0x4f50, 0x5952, 0x4947, 0x4854, 0x2032, 0x3030,\r
++      0x3120, 0x514c, 0x4f47, 0x4943, 0x2043, 0x4f52, 0x504f, 0x5241,\r
++      0x5449, 0x4f4e, 0x2049, 0x5350, 0x3233, 0x3030, 0x2046, 0x6972,\r
++      0x6d77, 0x6172, 0x6520, 0x2056, 0x6572, 0x7369, 0x6f6e, 0x2030,\r
++      0x332e, 0x3032, 0x2e32, 0x3820, 0x2020, 0x2020, 0x2400, 0x20a9,\r
++      0x000f, 0x2001, 0x0000, 0x400f, 0x2091, 0x2200, 0x20a9, 0x000f,\r
++      0x2001, 0x0000, 0x400f, 0x2091, 0x2400, 0x20a9, 0x000f, 0x2001,\r
++      0x0000, 0x400f, 0x2091, 0x2600, 0x20a9, 0x000f, 0x2001, 0x0000,\r
++      0x400f, 0x2091, 0x2800, 0x20a9, 0x000f, 0x2001, 0x0000, 0x400f,\r
++      0x2091, 0x2a00, 0x20a9, 0x000f, 0x2001, 0x0000, 0x400f, 0x2091,\r
++      0x2c00, 0x20a9, 0x000f, 0x2001, 0x0000, 0x400f, 0x2091, 0x2e00,\r
++      0x20a9, 0x000f, 0x2001, 0x0000, 0x400f, 0x2091, 0x2000, 0x2001,\r
++      0x0000, 0x20c1, 0x0004, 0x20c9, 0x1bff, 0x2059, 0x0000, 0x2b78,\r
++      0x7883, 0x0004, 0x2089, 0x2d29, 0x2051, 0x1800, 0x2a70, 0x20e1,\r
++      0x0001, 0x20e9, 0x0001, 0x2009, 0x0000, 0x080c, 0x0e51, 0x2029,\r
++      0x4d00, 0x2031, 0xffff, 0x2039, 0x4cd0, 0x2021, 0x0200, 0x20e9,\r
++      0x0001, 0x20a1, 0x0000, 0x20a9, 0x0800, 0x900e, 0x4104, 0x20e9,\r
++      0x0001, 0x20a1, 0x1000, 0x900e, 0x2001, 0x0cc0, 0x9084, 0x0fff,\r
++      0x20a8, 0x4104, 0x2001, 0x0000, 0x9086, 0x0000, 0x0120, 0x21a8,\r
++      0x4104, 0x8001, 0x1de0, 0x756e, 0x7672, 0x776a, 0x7476, 0x747a,\r
++      0x00e6, 0x2071, 0x1ac8, 0x2472, 0x00ee, 0x20a1, 0x1cd0, 0x7170,\r
++      0x810d, 0x810d, 0x810d, 0x810d, 0x918c, 0x000f, 0x2001, 0x0001,\r
++      0x9112, 0x900e, 0x21a8, 0x4104, 0x8211, 0x1de0, 0x7170, 0x3400,\r
++      0x8001, 0x9102, 0x0120, 0x0218, 0x20a8, 0x900e, 0x4104, 0x2009,\r
++      0x1800, 0x810d, 0x810d, 0x810d, 0x810d, 0x810d, 0x918c, 0x001f,\r
++      0x2001, 0x0001, 0x9112, 0x20e9, 0x0001, 0x20a1, 0x0800, 0x900e,\r
++      0x20a9, 0x0800, 0x4104, 0x8211, 0x1dd8, 0x080c, 0x0f17, 0x080c,\r
++      0x6028, 0x080c, 0xadf7, 0x080c, 0x10ce, 0x080c, 0x12ed, 0x080c,\r
++      0x1ba4, 0x080c, 0x0d69, 0x080c, 0x1053, 0x080c, 0x3425, 0x080c,\r
++      0x76b8, 0x080c, 0x6996, 0x080c, 0x86f6, 0x080c, 0x842a, 0x080c,\r
++      0x2478, 0x080c, 0x8f98, 0x080c, 0x7d82, 0x080c, 0x22b1, 0x080c,\r
++      0x23e5, 0x080c, 0x246d, 0x2091, 0x3009, 0x7883, 0x0000, 0x1004,\r
++      0x091f, 0x7880, 0x9086, 0x0002, 0x1190, 0x7883, 0x4000, 0x7837,\r
++      0x4000, 0x7833, 0x0010, 0x0e04, 0x0913, 0x2091, 0x5000, 0x2091,\r
++      0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x119b, 0x2071,\r
++      0x1800, 0x7003, 0x0000, 0x2071, 0x1800, 0x7000, 0x908e, 0x0003,\r
++      0x1178, 0x080c, 0x4bc9, 0x080c, 0x344c, 0x080c, 0x7729, 0x080c,\r
++      0x6ed7, 0x080c, 0x87d4, 0x080c, 0x8453, 0x080c, 0x2c93, 0x0c58,\r
++      0x000b, 0x0c78, 0x0944, 0x0945, 0x0ae7, 0x0942, 0x0bae, 0x0d68,\r
++      0x0d68, 0x0d68, 0x080c, 0x0dd5, 0x0005, 0x0126, 0x00f6, 0x2091,\r
++      0x8000, 0x7000, 0x9086, 0x0001, 0x1904, 0x0aba, 0x080c, 0x56de,\r
++      0x1130, 0x0026, 0x2011, 0x0080, 0x080c, 0x0edf, 0x002e, 0x080c,\r
++      0x73bc, 0x0150, 0x080c, 0x73df, 0x15a0, 0x2079, 0x0100, 0x7828,\r
++      0x9085, 0x1800, 0x782a, 0x0468, 0x080c, 0x72ee, 0x7000, 0x9086,\r
++      0x0001, 0x1904, 0x0aba, 0x7098, 0x9086, 0x0028, 0x1904, 0x0aba,\r
++      0x080c, 0x8422, 0x080c, 0x8414, 0x2001, 0x0161, 0x2003, 0x0001,\r
++      0x2079, 0x0100, 0x7827, 0xffff, 0x7a28, 0x9295, 0x5e2f, 0x7a2a,\r
++      0x2011, 0x7252, 0x080c, 0x84f3, 0x2011, 0x7245, 0x080c, 0x85cd,\r
++      0x2011, 0x5e83, 0x080c, 0x84f3, 0x2011, 0x8030, 0x901e, 0x7396,\r
++      0x04d0, 0x080c, 0x5730, 0x2079, 0x0100, 0x7844, 0x9005, 0x1904,\r
++      0x0aba, 0x2011, 0x5e83, 0x080c, 0x84f3, 0x2011, 0x7252, 0x080c,\r
++      0x84f3, 0x2011, 0x7245, 0x080c, 0x85cd, 0x2001, 0x0265, 0x2001,\r
++      0x0205, 0x2003, 0x0000, 0x7840, 0x9084, 0xfffb, 0x7842, 0x2001,\r
++      0x19a6, 0x2004, 0x9005, 0x1140, 0x00c6, 0x2061, 0x0100, 0x080c,\r
++      0x5fd0, 0x00ce, 0x0804, 0x0aba, 0x780f, 0x006b, 0x7a28, 0x080c,\r
++      0x73c4, 0x0118, 0x9295, 0x5e2f, 0x0010, 0x9295, 0x402f, 0x7a2a,\r
++      0x2011, 0x8010, 0x73d8, 0x2001, 0x19a7, 0x2003, 0x0001, 0x080c,\r
++      0x2b59, 0x080c, 0x4b04, 0x7248, 0xc284, 0x724a, 0x2001, 0x180c,\r
++      0x200c, 0xc1ac, 0xc1cc, 0x2102, 0x080c, 0xa51d, 0x2011, 0x0004,\r
++      0x080c, 0xcb45, 0x080c, 0x6822, 0x080c, 0x73bc, 0x1120, 0x080c,\r
++      0x2b9d, 0x02e0, 0x0400, 0x080c, 0x5fd7, 0x0140, 0x7097, 0x0001,\r
++      0x70d3, 0x0000, 0x080c, 0x58fd, 0x0804, 0x0aba, 0x080c, 0x56cf,\r
++      0xd094, 0x0188, 0x2011, 0x180c, 0x2204, 0xc0cd, 0x2012, 0x080c,\r
++      0x56d3, 0xd0d4, 0x1118, 0x080c, 0x2b9d, 0x1270, 0x2011, 0x180c,\r
++      0x2204, 0xc0bc, 0x00a8, 0x080c, 0x56d3, 0xd0d4, 0x1db8, 0x2011,\r
++      0x180c, 0x2204, 0xc0bd, 0x0060, 0x2011, 0x180c, 0x2204, 0xc0bd,\r
++      0x2012, 0x080c, 0x696a, 0x1128, 0xd0a4, 0x0118, 0x2204, 0xc0fd,\r
++      0x2012, 0x080c, 0x6930, 0x0120, 0x7a0c, 0xc2b4, 0x7a0e, 0x00a8,\r
++      0x707f, 0x0000, 0x080c, 0x73bc, 0x1130, 0x70b0, 0x9005, 0x1168,\r
++      0x080c, 0xcf81, 0x0050, 0x080c, 0xcf81, 0x70dc, 0xd09c, 0x1128,\r
++      0x70b0, 0x9005, 0x0110, 0x080c, 0x5fad, 0x70e7, 0x0000, 0x70e3,\r
++      0x0000, 0x70a7, 0x0000, 0x080c, 0x2ba5, 0x0228, 0x2011, 0x0101,\r
++      0x2204, 0xc0c4, 0x2012, 0x72dc, 0x080c, 0x73bc, 0x1178, 0x9016,\r
++      0x0016, 0x080c, 0x2956, 0x2019, 0x196d, 0x211a, 0x001e, 0x705f,\r
++      0xffff, 0x7063, 0x00ef, 0x7083, 0x0000, 0x0020, 0x2019, 0x196d,\r
++      0x201b, 0x0000, 0x2079, 0x1847, 0x7804, 0xd0ac, 0x0108, 0xc295,\r
++      0x72de, 0x080c, 0x73bc, 0x0118, 0x9296, 0x0004, 0x0548, 0x2011,\r
++      0x0001, 0x080c, 0xcb45, 0x70ab, 0x0000, 0x70af, 0xffff, 0x7003,\r
++      0x0002, 0x2079, 0x0100, 0x7827, 0x0003, 0x7828, 0x9085, 0x0003,\r
++      0x782a, 0x00fe, 0x080c, 0x2f96, 0x2011, 0x0005, 0x080c, 0xa653,\r
++      0x080c, 0x968d, 0x080c, 0x73bc, 0x0148, 0x00c6, 0x2061, 0x0100,\r
++      0x0016, 0x080c, 0x2956, 0x61e2, 0x001e, 0x00ce, 0x012e, 0x0420,\r
++      0x70ab, 0x0000, 0x70af, 0xffff, 0x7003, 0x0002, 0x00f6, 0x2079,\r
++      0x0100, 0x7827, 0x0003, 0x7828, 0x9085, 0x0003, 0x782a, 0x00fe,\r
++      0x2011, 0x0005, 0x080c, 0xa653, 0x080c, 0x968d, 0x080c, 0x73bc,\r
++      0x0148, 0x00c6, 0x2061, 0x0100, 0x0016, 0x080c, 0x2956, 0x61e2,\r
++      0x001e, 0x00ce, 0x00fe, 0x012e, 0x0005, 0x00c6, 0x00b6, 0x080c,\r
++      0x73bc, 0x1118, 0x20a9, 0x0800, 0x0010, 0x20a9, 0x0782, 0x080c,\r
++      0x73bc, 0x1110, 0x900e, 0x0010, 0x2009, 0x007e, 0x86ff, 0x0138,\r
++      0x9180, 0x1000, 0x2004, 0x905d, 0x0110, 0xb800, 0xd0bc, 0x090c,\r
++      0x32bb, 0x8108, 0x1f04, 0x0ace, 0x707f, 0x0000, 0x7080, 0x9084,\r
++      0x00ff, 0x7082, 0x70b3, 0x0000, 0x00be, 0x00ce, 0x0005, 0x00b6,\r
++      0x0126, 0x2091, 0x8000, 0x7000, 0x9086, 0x0002, 0x1904, 0x0bab,\r
++      0x70ac, 0x9086, 0xffff, 0x0130, 0x080c, 0x2f96, 0x080c, 0x968d,\r
++      0x0804, 0x0bab, 0x70dc, 0xd0ac, 0x1110, 0xd09c, 0x0558, 0xd084,\r
++      0x0548, 0x0006, 0x2001, 0x0103, 0x2003, 0x002b, 0x000e, 0xd08c,\r
++      0x0508, 0x080c, 0x331e, 0x11d0, 0x70e0, 0x9086, 0xffff, 0x01b0,\r
++      0x080c, 0x312b, 0x080c, 0x968d, 0x70dc, 0xd094, 0x1904, 0x0bab,\r
++      0x2011, 0x0001, 0x080c, 0xd230, 0x0110, 0x2011, 0x0003, 0x901e,\r
++      0x080c, 0x3165, 0x080c, 0x968d, 0x0804, 0x0bab, 0x70e4, 0x9005,\r
++      0x1904, 0x0bab, 0x70a8, 0x9005, 0x1904, 0x0bab, 0x70dc, 0xd0a4,\r
++      0x0118, 0xd0b4, 0x0904, 0x0bab, 0x080c, 0x6930, 0x1904, 0x0bab,\r
++      0x080c, 0x6983, 0x1904, 0x0bab, 0x080c, 0x696a, 0x01c0, 0x0156,\r
++      0x00c6, 0x20a9, 0x007f, 0x900e, 0x0016, 0x080c, 0x65ff, 0x1118,\r
++      0xb800, 0xd0ec, 0x1138, 0x001e, 0x8108, 0x1f04, 0x0b44, 0x00ce,\r
++      0x015e, 0x0028, 0x001e, 0x00ce, 0x015e, 0x0804, 0x0bab, 0x0006,\r
++      0x2001, 0x0103, 0x2003, 0x002b, 0x000e, 0x2011, 0x19b3, 0x080c,\r
++      0x0f87, 0x2011, 0x19cd, 0x080c, 0x0f87, 0x7030, 0xc08c, 0x7032,\r
++      0x7003, 0x0003, 0x70af, 0xffff, 0x080c, 0x56de, 0x1130, 0x0026,\r
++      0x2011, 0x0040, 0x080c, 0x0edf, 0x002e, 0x9006, 0x080c, 0x27ea,\r
++      0x080c, 0x331e, 0x0118, 0x080c, 0x4ca1, 0x0050, 0x0036, 0x0046,\r
++      0x2019, 0xffff, 0x2021, 0x0006, 0x080c, 0x4cbb, 0x004e, 0x003e,\r
++      0x00f6, 0x2079, 0x0100, 0x080c, 0x73df, 0x0150, 0x080c, 0x73bc,\r
++      0x7828, 0x0118, 0x9084, 0xe1ff, 0x0010, 0x9084, 0xffdf, 0x782a,\r
++      0x00fe, 0x2001, 0x19e8, 0x2004, 0x9086, 0x0005, 0x1120, 0x2011,\r
++      0x0000, 0x080c, 0xa653, 0x2011, 0x0000, 0x080c, 0xa65d, 0x080c,\r
++      0x968d, 0x080c, 0x97b9, 0x012e, 0x00be, 0x0005, 0x0016, 0x0046,\r
++      0x00f6, 0x0126, 0x2091, 0x8000, 0x2079, 0x0100, 0x7904, 0x918c,\r
++      0xfffd, 0x7906, 0x2009, 0x00f7, 0x080c, 0x5f96, 0x7940, 0x918c,\r
++      0x0010, 0x7942, 0x7924, 0xd1b4, 0x0110, 0x7827, 0x0040, 0xd19c,\r
++      0x0110, 0x7827, 0x0008, 0x0006, 0x0036, 0x0156, 0x7954, 0xd1ac,\r
++      0x1904, 0x0c3b, 0x2001, 0x19a7, 0x2004, 0x9005, 0x1518, 0x080c,\r
++      0x2c20, 0x1148, 0x2001, 0x0001, 0x080c, 0x2b88, 0x2001, 0x0001,\r
++      0x080c, 0x2b6b, 0x00b8, 0x080c, 0x2c28, 0x1138, 0x9006, 0x080c,\r
++      0x2b88, 0x9006, 0x080c, 0x2b6b, 0x0068, 0x080c, 0x2c30, 0x1d50,\r
++      0x2001, 0x1998, 0x2004, 0xd0fc, 0x0108, 0x0020, 0x080c, 0x2982,\r
++      0x0804, 0x0d1a, 0x080c, 0x73cd, 0x0148, 0x080c, 0x73df, 0x1118,\r
++      0x080c, 0x76b3, 0x0050, 0x080c, 0x73c4, 0x0dd0, 0x080c, 0x76ae,\r
++      0x080c, 0x76a4, 0x080c, 0x72ee, 0x0058, 0x080c, 0x73bc, 0x0140,\r
++      0x2009, 0x00f8, 0x080c, 0x5f96, 0x7843, 0x0090, 0x7843, 0x0010,\r
++      0x20a9, 0x09c4, 0x7820, 0xd09c, 0x1138, 0x080c, 0x73bc, 0x0138,\r
++      0x7824, 0xd0ac, 0x1904, 0x0d1f, 0x1f04, 0x0c1a, 0x0070, 0x7824,\r
++      0x080c, 0x73d6, 0x0118, 0xd0ac, 0x1904, 0x0d1f, 0x9084, 0x1800,\r
++      0x0d98, 0x7003, 0x0001, 0x0804, 0x0d1f, 0x2001, 0x0001, 0x080c,\r
++      0x27ea, 0x0804, 0x0d32, 0x2001, 0x19a7, 0x2004, 0x9005, 0x1518,\r
++      0x080c, 0x2c20, 0x1148, 0x2001, 0x0001, 0x080c, 0x2b88, 0x2001,\r
++      0x0001, 0x080c, 0x2b6b, 0x00b8, 0x080c, 0x2c28, 0x1138, 0x9006,\r
++      0x080c, 0x2b88, 0x9006, 0x080c, 0x2b6b, 0x0068, 0x080c, 0x2c30,\r
++      0x1d50, 0x2001, 0x1998, 0x2004, 0xd0fc, 0x0108, 0x0020, 0x080c,\r
++      0x2982, 0x0804, 0x0d1a, 0x7850, 0x9085, 0x0040, 0x7852, 0x7938,\r
++      0x7850, 0x9084, 0xfbcf, 0x7852, 0x080c, 0x2c38, 0x9085, 0x2000,\r
++      0x7852, 0x793a, 0x20a9, 0x0046, 0x1d04, 0x0c74, 0x080c, 0x85ad,\r
++      0x1f04, 0x0c74, 0x7850, 0x9085, 0x0400, 0x9084, 0xdfbf, 0x7852,\r
++      0x793a, 0x080c, 0x73cd, 0x0148, 0x080c, 0x73df, 0x1118, 0x080c,\r
++      0x76b3, 0x0050, 0x080c, 0x73c4, 0x0dd0, 0x080c, 0x76ae, 0x080c,\r
++      0x76a4, 0x080c, 0x72ee, 0x0020, 0x2009, 0x00f8, 0x080c, 0x5f96,\r
++      0x20a9, 0x0028, 0xa001, 0x1f04, 0x0c9a, 0x7850, 0x9085, 0x1400,\r
++      0x7852, 0x080c, 0x73bc, 0x0120, 0x7843, 0x0090, 0x7843, 0x0010,\r
++      0x2021, 0xe678, 0x2019, 0xea60, 0x0d0c, 0x85ad, 0x7820, 0xd09c,\r
++      0x1580, 0x080c, 0x73bc, 0x0904, 0x0cff, 0x7824, 0xd0ac, 0x1904,\r
++      0x0d1f, 0x080c, 0x73df, 0x1528, 0x0046, 0x2021, 0x0320, 0x8421,\r
++      0x1df0, 0x004e, 0x7827, 0x1800, 0x080c, 0x2c38, 0x7824, 0x9084,\r
++      0x1800, 0x1160, 0x9484, 0x0fff, 0x1138, 0x2001, 0x1810, 0x2004,\r
++      0xd0fc, 0x0110, 0x080c, 0x0d45, 0x8421, 0x1158, 0x1d04, 0x0cda,\r
++      0x080c, 0x85ad, 0x080c, 0x76ae, 0x080c, 0x76a4, 0x7003, 0x0001,\r
++      0x04f0, 0x8319, 0x1948, 0x1d04, 0x0ce7, 0x080c, 0x85ad, 0x2009,\r
++      0x199b, 0x2104, 0x9005, 0x0118, 0x8001, 0x200a, 0x1178, 0x200b,\r
++      0x000a, 0x7827, 0x0048, 0x20a9, 0x0002, 0x080c, 0x2c19, 0x7924,\r
++      0x080c, 0x2c38, 0xd19c, 0x0110, 0x080c, 0x2b59, 0x00d8, 0x080c,\r
++      0x73cd, 0x1140, 0x94a2, 0x03e8, 0x1128, 0x080c, 0x7394, 0x7003,\r
++      0x0001, 0x00a8, 0x7827, 0x1800, 0x080c, 0x2c38, 0x7824, 0x080c,\r
++      0x73d6, 0x0110, 0xd0ac, 0x1158, 0x9084, 0x1800, 0x0950, 0x7003,\r
++      0x0001, 0x0028, 0x2001, 0x0001, 0x080c, 0x27ea, 0x0078, 0x2009,\r
++      0x180c, 0x210c, 0xd19c, 0x1120, 0x7904, 0x918d, 0x0002, 0x7906,\r
++      0x7827, 0x0048, 0x7828, 0x9085, 0x0028, 0x782a, 0x7850, 0x9085,\r
++      0x0400, 0x7852, 0x2001, 0x19a7, 0x2003, 0x0000, 0x9006, 0x78f2,\r
++      0x015e, 0x003e, 0x000e, 0x080c, 0x56de, 0x1110, 0x080c, 0x0e62,\r
++      0x012e, 0x00fe, 0x004e, 0x001e, 0x0005, 0x0006, 0x0016, 0x0036,\r
++      0x0046, 0x00b6, 0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x0156, 0x0069,\r
++      0x0d0c, 0x85ad, 0x015e, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be,\r
++      0x004e, 0x003e, 0x001e, 0x000e, 0x0005, 0x00e6, 0x2071, 0x189e,\r
++      0x7004, 0x9086, 0x0001, 0x1110, 0x080c, 0x344c, 0x00ee, 0x0005,\r
++      0x0005, 0x2a70, 0x2061, 0x19ab, 0x2063, 0x0003, 0x6007, 0x0002,\r
++      0x600b, 0x001c, 0x600f, 0x0137, 0x2001, 0x197c, 0x900e, 0x2102,\r
++      0x7196, 0x2001, 0x0100, 0x2004, 0x9082, 0x0002, 0x0218, 0x705f,\r
++      0xffff, 0x0008, 0x715e, 0x7067, 0xffff, 0x717e, 0x7182, 0x080c,\r
++      0xcf81, 0x2061, 0x196c, 0x6003, 0x0909, 0x6106, 0x600b, 0x8800,\r
++      0x600f, 0x0200, 0x6013, 0x00ff, 0x6017, 0x001f, 0x611a, 0x601f,\r
++      0x07d0, 0x2061, 0x1974, 0x6003, 0x8000, 0x6106, 0x610a, 0x600f,\r
++      0x0200, 0x6013, 0x00ff, 0x6116, 0x601b, 0x0001, 0x611e, 0x2061,\r
++      0x1989, 0x6003, 0x514c, 0x6007, 0x4f47, 0x600b, 0x4943, 0x600f,\r
++      0x2020, 0x2001, 0x182c, 0x2102, 0x0005, 0x9016, 0x080c, 0x65ff,\r
++      0x1178, 0xb804, 0x90c4, 0x00ff, 0x98c6, 0x0006, 0x0128, 0x90c4,\r
++      0xff00, 0x98c6, 0x0600, 0x1120, 0x9186, 0x0080, 0x0108, 0x8210,\r
++      0x8108, 0x9186, 0x0800, 0x1d50, 0x2208, 0x0005, 0x2091, 0x8000,\r
++      0x2079, 0x0000, 0x000e, 0x00f6, 0x0010, 0x2091, 0x8000, 0x0e04,\r
++      0x0dd7, 0x0006, 0x0016, 0x2001, 0x8002, 0x0006, 0x2079, 0x0000,\r
++      0x000e, 0x7882, 0x7836, 0x001e, 0x798e, 0x000e, 0x788a, 0x000e,\r
++      0x7886, 0x3900, 0x789a, 0x7833, 0x0012, 0x2091, 0x5000, 0x0156,\r
++      0x00d6, 0x0036, 0x0026, 0x2079, 0x0300, 0x2069, 0x1aa2, 0x7a08,\r
++      0x226a, 0x2069, 0x1aa3, 0x7a18, 0x226a, 0x8d68, 0x7a1c, 0x226a,\r
++      0x782c, 0x2019, 0x1ab0, 0x201a, 0x2019, 0x1ab3, 0x9016, 0x7808,\r
++      0xd09c, 0x0168, 0x7820, 0x201a, 0x8210, 0x8318, 0x9386, 0x1ac8,\r
++      0x0108, 0x0ca8, 0x7808, 0xd09c, 0x0110, 0x2011, 0xdead, 0x2019,\r
++      0x1ab1, 0x782c, 0x201a, 0x8318, 0x221a, 0x7803, 0x0000, 0x2069,\r
++      0x1a82, 0x901e, 0x20a9, 0x0020, 0x7b26, 0x7a28, 0x226a, 0x8d68,\r
++      0x8318, 0x1f04, 0x0e24, 0x002e, 0x003e, 0x00de, 0x015e, 0x2079,\r
++      0x1800, 0x7803, 0x0005, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004,\r
++      0xd084, 0x0180, 0x2001, 0x1a19, 0x2004, 0x9005, 0x0128, 0x2001,\r
++      0x008b, 0x2004, 0xd0fc, 0x0dd8, 0x2001, 0x008a, 0x2003, 0x0002,\r
++      0x2003, 0x1001, 0x080c, 0x56de, 0x1110, 0x080c, 0x0e99, 0x0cd0,\r
++      0x0005, 0x918c, 0x03ff, 0x2001, 0x0003, 0x2004, 0x9084, 0x0600,\r
++      0x1118, 0x918d, 0x2800, 0x0010, 0x918d, 0x2000, 0x2001, 0x017f,\r
++      0x2102, 0x0005, 0x00f6, 0x0006, 0x2079, 0x1827, 0x2f04, 0x8000,\r
++      0x207a, 0x080c, 0x2c30, 0x1150, 0x0006, 0x2001, 0x1998, 0x2004,\r
++      0xd0fc, 0x000e, 0x1118, 0x9082, 0x7530, 0x0010, 0x9082, 0x000f,\r
++      0x0258, 0x9006, 0x207a, 0x2079, 0x182a, 0x2f04, 0x9084, 0x0001,\r
++      0x9086, 0x0001, 0x207a, 0x0090, 0x2079, 0x182a, 0x2f7c, 0x8fff,\r
++      0x1138, 0x0026, 0x2011, 0x0080, 0x080c, 0x0edf, 0x002e, 0x0030,\r
++      0x0026, 0x2011, 0x0000, 0x080c, 0x0edf, 0x002e, 0x000e, 0x00fe,\r
++      0x0005, 0x0026, 0x0126, 0x2011, 0x0080, 0x080c, 0x0edf, 0x20a9,\r
++      0x0fff, 0x080c, 0x0f00, 0x2011, 0x0040, 0x04c9, 0x20a9, 0x0fff,\r
++      0x080c, 0x0f00, 0x0c80, 0x7038, 0xd0b4, 0x1128, 0x0026, 0x2011,\r
++      0x0040, 0x0469, 0x002e, 0x0005, 0x7038, 0xd0b4, 0x1128, 0x0026,\r
++      0x2011, 0x0080, 0x0421, 0x002e, 0x0005, 0x0026, 0x70ef, 0x0000,\r
++      0x0459, 0x1148, 0x080c, 0x2c30, 0x1118, 0x2011, 0x8484, 0x0058,\r
++      0x2011, 0x8282, 0x0040, 0x080c, 0x2c30, 0x1118, 0x2011, 0xcdc5,\r
++      0x0010, 0x2011, 0xcac2, 0x00e9, 0x002e, 0x0005, 0xd0b4, 0x0130,\r
++      0x0006, 0x3b00, 0x9084, 0xff3f, 0x20d8, 0x000e, 0x0005, 0x0016,\r
++      0x3b08, 0x3a00, 0x9104, 0x918d, 0x00c0, 0x21d8, 0x9084, 0xff3f,\r
++      0x9205, 0x20d0, 0x001e, 0x0005, 0x2001, 0x183a, 0x2004, 0xd0dc,\r
++      0x0005, 0x9e86, 0x1800, 0x190c, 0x0dd5, 0x70e8, 0xd0e4, 0x0108,\r
++      0xc2e5, 0x72ea, 0xd0e4, 0x1118, 0x9294, 0x00c0, 0x0c01, 0x0005,\r
++      0x1d04, 0x0f00, 0x2091, 0x6000, 0x1f04, 0x0f00, 0x0005, 0x890e,\r
++      0x810e, 0x810f, 0x9194, 0x003f, 0x918c, 0xffc0, 0x0005, 0x0006,\r
++      0x2200, 0x914d, 0x894f, 0x894d, 0x894d, 0x000e, 0x0005, 0x01d6,\r
++      0x0146, 0x0036, 0x0096, 0x2061, 0x188d, 0x600b, 0x0000, 0x600f,\r
++      0x0000, 0x6003, 0x0000, 0x6007, 0x0000, 0x2009, 0xffc0, 0x2105,\r
++      0x0006, 0x2001, 0xaaaa, 0x200f, 0x2019, 0x5555, 0x9016, 0x2049,\r
++      0x0bff, 0xab02, 0xa001, 0xa001, 0xa800, 0x9306, 0x1138, 0x2105,\r
++      0x9306, 0x0120, 0x8210, 0x99c8, 0x0400, 0x0c98, 0x000e, 0x200f,\r
++      0x2001, 0x189d, 0x928a, 0x000e, 0x1638, 0x928a, 0x0006, 0x2011,\r
++      0x0006, 0x1210, 0x2011, 0x0000, 0x2202, 0x9006, 0x2008, 0x82ff,\r
++      0x01b0, 0x8200, 0x600a, 0x600f, 0xffff, 0x6003, 0x0002, 0x6007,\r
++      0x0000, 0x0026, 0x2019, 0x0010, 0x9280, 0x0001, 0x20e8, 0x21a0,\r
++      0x21a8, 0x4104, 0x8319, 0x1de0, 0x8211, 0x1da0, 0x002e, 0x009e,\r
++      0x003e, 0x014e, 0x01de, 0x0005, 0x2011, 0x000e, 0x08e8, 0x0016,\r
++      0x0026, 0x0096, 0x3348, 0x080c, 0x0f07, 0x2100, 0x9300, 0x2098,\r
++      0x22e0, 0x009e, 0x002e, 0x001e, 0x0036, 0x3518, 0x20a9, 0x0001,\r
++      0x4002, 0x8007, 0x4004, 0x8319, 0x1dd8, 0x003e, 0x0005, 0x20e9,\r
++      0x0001, 0x71b8, 0x81ff, 0x11c0, 0x9006, 0x2009, 0x0200, 0x20a9,\r
++      0x0002, 0x9298, 0x0018, 0x23a0, 0x4001, 0x2009, 0x0700, 0x20a9,\r
++      0x0002, 0x9298, 0x0008, 0x23a0, 0x4001, 0x707c, 0x8007, 0x7180,\r
++      0x810f, 0x20a9, 0x0002, 0x4001, 0x9298, 0x000c, 0x23a0, 0x900e,\r
++      0x080c, 0x0db5, 0x2001, 0x0000, 0x810f, 0x20a9, 0x0002, 0x4001,\r
++      0x0005, 0x89ff, 0x0140, 0xa804, 0xa807, 0x0000, 0x0006, 0x080c,\r
++      0x1031, 0x009e, 0x0cb0, 0x0005, 0x00e6, 0x2071, 0x1800, 0x080c,\r
++      0x10aa, 0x090c, 0x0dd5, 0x00ee, 0x0005, 0x0086, 0x00e6, 0x0006,\r
++      0x0026, 0x0036, 0x0126, 0x2091, 0x8000, 0x00c9, 0x2071, 0x1800,\r
++      0x73c0, 0x702c, 0x9016, 0x9045, 0x0158, 0x8210, 0x9906, 0x090c,\r
++      0x0dd5, 0x2300, 0x9202, 0x0120, 0x1a0c, 0x0dd5, 0xa000, 0x0c98,\r
++      0x012e, 0x003e, 0x002e, 0x000e, 0x00ee, 0x008e, 0x0005, 0x0086,\r
++      0x00e6, 0x0006, 0x0126, 0x2091, 0x8000, 0x2071, 0x1910, 0x7010,\r
++      0x9005, 0x0140, 0x7018, 0x9045, 0x0128, 0x9906, 0x090c, 0x0dd5,\r
++      0xa000, 0x0cc8, 0x012e, 0x000e, 0x00ee, 0x008e, 0x0005, 0x00e6,\r
++      0x2071, 0x1800, 0x0126, 0x2091, 0x8000, 0x70c0, 0x8001, 0x0270,\r
++      0x70c2, 0x702c, 0x2048, 0x9085, 0x0001, 0xa800, 0x702e, 0xa803,\r
++      0x0000, 0xa807, 0x0000, 0x012e, 0x00ee, 0x0005, 0x904e, 0x0cd8,\r
++      0x00e6, 0x0126, 0x2091, 0x8000, 0x2071, 0x1800, 0x70c0, 0x90ca,\r
++      0x0020, 0x0268, 0x8001, 0x70c2, 0x702c, 0x2048, 0xa800, 0x702e,\r
++      0xa803, 0x0000, 0xa807, 0x0000, 0x012e, 0x00ee, 0x0005, 0x904e,\r
++      0x0cd8, 0x00e6, 0x0126, 0x2091, 0x8000, 0x0016, 0x890e, 0x810e,\r
++      0x810f, 0x9184, 0x003f, 0xa862, 0x9184, 0xffc0, 0xa85e, 0x001e,\r
++      0x0020, 0x00e6, 0x0126, 0x2091, 0x8000, 0x2071, 0x1800, 0x702c,\r
++      0xa802, 0x2900, 0x702e, 0x70c0, 0x8000, 0x70c2, 0x080c, 0x8414,\r
++      0x012e, 0x00ee, 0x0005, 0x2071, 0x1800, 0x9026, 0x2009, 0x0000,\r
++      0x2049, 0x0400, 0x2900, 0x702e, 0x8940, 0x2800, 0xa802, 0xa95e,\r
++      0xa863, 0x0001, 0x8420, 0x9886, 0x0440, 0x0120, 0x2848, 0x9188,\r
++      0x0040, 0x0c90, 0x2071, 0x188d, 0x7000, 0x9005, 0x11a0, 0x2001,\r
++      0x0534, 0xa802, 0x2048, 0x2009, 0x4d00, 0x8940, 0x2800, 0xa802,\r
++      0xa95e, 0xa863, 0x0001, 0x8420, 0x9886, 0x0800, 0x0120, 0x2848,\r
++      0x9188, 0x0040, 0x0c90, 0x2071, 0x188d, 0x7104, 0x7200, 0x82ff,\r
++      0x01d0, 0x7308, 0x8318, 0x831f, 0x831b, 0x831b, 0x7312, 0x8319,\r
++      0x2001, 0x0800, 0xa802, 0x2048, 0x8900, 0xa802, 0x2040, 0xa95e,\r
++      0xaa62, 0x8420, 0x2300, 0x9906, 0x0130, 0x2848, 0x9188, 0x0040,\r
++      0x9291, 0x0000, 0x0c88, 0xa803, 0x0000, 0x2071, 0x1800, 0x74be,\r
++      0x74c2, 0x0005, 0x00e6, 0x0016, 0x9984, 0xfc00, 0x01e8, 0x908c,\r
++      0xf800, 0x1168, 0x9982, 0x0400, 0x02b8, 0x9982, 0x0440, 0x0278,\r
++      0x9982, 0x0534, 0x0288, 0x9982, 0x0800, 0x1270, 0x0040, 0x9982,\r
++      0x0800, 0x0250, 0x2071, 0x188d, 0x7010, 0x9902, 0x1228, 0x9085,\r
++      0x0001, 0x001e, 0x00ee, 0x0005, 0x9006, 0x0cd8, 0x00e6, 0x2071,\r
++      0x1a18, 0x7007, 0x0000, 0x9006, 0x701e, 0x7022, 0x7002, 0x2071,\r
++      0x0000, 0x7010, 0x9085, 0x8044, 0x7012, 0x2071, 0x0080, 0x9006,\r
++      0x20a9, 0x0040, 0x7022, 0x1f04, 0x10e2, 0x702b, 0x0020, 0x00ee,\r
++      0x0005, 0x0126, 0x2091, 0x8000, 0x00e6, 0xa06f, 0x0000, 0x2071,\r
++      0x1a18, 0x701c, 0x9088, 0x1a22, 0x280a, 0x8000, 0x9084, 0x003f,\r
++      0x701e, 0x7120, 0x9106, 0x090c, 0x0dd5, 0x7004, 0x9005, 0x1128,\r
++      0x00f6, 0x2079, 0x0080, 0x00a9, 0x00fe, 0x00ee, 0x012e, 0x0005,\r
++      0x0126, 0x2091, 0x8000, 0x00e6, 0x2071, 0x1a18, 0x7004, 0x9005,\r
++      0x1128, 0x00f6, 0x2079, 0x0080, 0x0021, 0x00fe, 0x00ee, 0x012e,\r
++      0x0005, 0x7004, 0x9086, 0x0000, 0x1110, 0x7007, 0x0006, 0x7000,\r
++      0x0002, 0x112b, 0x12ae, 0x1129, 0x1129, 0x12a2, 0x12a2, 0x12a2,\r
++      0x12a2, 0x080c, 0x0dd5, 0x701c, 0x7120, 0x9106, 0x1148, 0x792c,\r
++      0x9184, 0x0001, 0x1120, 0xd1fc, 0x1110, 0x7007, 0x0000, 0x0005,\r
++      0x0096, 0x9180, 0x1a22, 0x2004, 0x700a, 0x2048, 0x8108, 0x918c,\r
++      0x003f, 0x7122, 0x782b, 0x0026, 0xa88c, 0x7802, 0xa890, 0x7806,\r
++      0xa894, 0x780a, 0xa898, 0x780e, 0xa878, 0x700e, 0xa870, 0x7016,\r
++      0xa874, 0x701a, 0xa868, 0x009e, 0xd084, 0x0120, 0x7007, 0x0001,\r
++      0x0029, 0x0005, 0x7007, 0x0002, 0x00b1, 0x0005, 0x0016, 0x0026,\r
++      0x710c, 0x2011, 0x0040, 0x9182, 0x0040, 0x1210, 0x2110, 0x9006,\r
++      0x700e, 0x7212, 0x8203, 0x7812, 0x782b, 0x0020, 0x782b, 0x0041,\r
++      0x002e, 0x001e, 0x0005, 0x0016, 0x0026, 0x0136, 0x0146, 0x0156,\r
++      0x7014, 0x20e0, 0x7018, 0x2098, 0x20e9, 0x0000, 0x20a1, 0x0088,\r
++      0x782b, 0x0026, 0x710c, 0x2011, 0x0040, 0x9182, 0x0040, 0x1210,\r
++      0x2110, 0x9006, 0x700e, 0x22a8, 0x4006, 0x8203, 0x7812, 0x782b,\r
++      0x0020, 0x3300, 0x701a, 0x782b, 0x0001, 0x015e, 0x014e, 0x013e,\r
++      0x002e, 0x001e, 0x0005, 0x2009, 0x1a18, 0x2104, 0xc095, 0x200a,\r
++      0x080c, 0x1108, 0x0005, 0x0016, 0x00e6, 0x2071, 0x1a18, 0x00f6,\r
++      0x2079, 0x0080, 0x792c, 0xd1bc, 0x190c, 0x0dce, 0x782b, 0x0002,\r
++      0xd1fc, 0x0120, 0x918c, 0x0700, 0x7004, 0x0023, 0x00fe, 0x00ee,\r
++      0x001e, 0x0005, 0x1119, 0x11c1, 0x11f5, 0x12cd, 0x0dd5, 0x12e8,\r
++      0x0dd5, 0x918c, 0x0700, 0x1550, 0x0136, 0x0146, 0x0156, 0x7014,\r
++      0x20e8, 0x7018, 0x20a0, 0x20e1, 0x0000, 0x2099, 0x0088, 0x782b,\r
++      0x0040, 0x7010, 0x20a8, 0x4005, 0x3400, 0x701a, 0x015e, 0x014e,\r
++      0x013e, 0x700c, 0x9005, 0x0578, 0x7800, 0x7802, 0x7804, 0x7806,\r
++      0x080c, 0x115e, 0x0005, 0x7008, 0x0096, 0x2048, 0xa86f, 0x0100,\r
++      0x009e, 0x7007, 0x0000, 0x080c, 0x1119, 0x0005, 0x7008, 0x0096,\r
++      0x2048, 0xa86f, 0x0200, 0x009e, 0x0ca0, 0x918c, 0x0700, 0x1150,\r
++      0x700c, 0x9005, 0x0180, 0x7800, 0x7802, 0x7804, 0x7806, 0x080c,\r
++      0x1173, 0x0005, 0x7008, 0x0096, 0x2048, 0xa86f, 0x0200, 0x009e,\r
++      0x7007, 0x0000, 0x0080, 0x0096, 0x7008, 0x2048, 0x7800, 0xa88e,\r
++      0x7804, 0xa892, 0x7808, 0xa896, 0x780c, 0xa89a, 0xa86f, 0x0100,\r
++      0x009e, 0x7007, 0x0000, 0x0096, 0x00d6, 0x7008, 0x2048, 0x2001,\r
++      0x18b9, 0x2004, 0x9906, 0x1128, 0xa89c, 0x080f, 0x00de, 0x009e,\r
++      0x00a0, 0x00de, 0x009e, 0x0096, 0x00d6, 0x7008, 0x2048, 0x0081,\r
++      0x0150, 0xa89c, 0x0086, 0x2940, 0x080f, 0x008e, 0x00de, 0x009e,\r
++      0x080c, 0x1108, 0x0005, 0x00de, 0x009e, 0x080c, 0x1108, 0x0005,\r
++      0xa8a8, 0xd08c, 0x0005, 0x0096, 0xa0a0, 0x904d, 0x090c, 0x0dd5,\r
++      0xa06c, 0x908e, 0x0100, 0x0130, 0xa87b, 0x0030, 0xa883, 0x0000,\r
++      0xa897, 0x4002, 0x080c, 0x6c75, 0xa09f, 0x0000, 0xa0a3, 0x0000,\r
++      0x2848, 0x080c, 0x1031, 0x009e, 0x0005, 0x00a6, 0xa0a0, 0x904d,\r
++      0x090c, 0x0dd5, 0xa06c, 0x908e, 0x0100, 0x0128, 0xa87b, 0x0001,\r
++      0xa883, 0x0000, 0x00c0, 0xa80c, 0x2050, 0xb004, 0x9005, 0x0198,\r
++      0xa80e, 0x2050, 0x8006, 0x8006, 0x8007, 0x908c, 0x003f, 0x9084,\r
++      0xffc0, 0x9080, 0x0002, 0xa076, 0xa172, 0xb000, 0xa07a, 0x2810,\r
++      0x080c, 0x10e9, 0x00e8, 0xa97c, 0xa894, 0x0016, 0x0006, 0x080c,\r
++      0x6c75, 0x000e, 0x001e, 0xd1fc, 0x1138, 0xd1f4, 0x0128, 0x00c6,\r
++      0x2060, 0x080c, 0xae61, 0x00ce, 0x7008, 0x2048, 0xa89f, 0x0000,\r
++      0xa8a3, 0x0000, 0x080c, 0x1031, 0x7007, 0x0000, 0x080c, 0x1108,\r
++      0x00ae, 0x0005, 0x0126, 0x2091, 0x8000, 0x782b, 0x1001, 0x7007,\r
++      0x0005, 0x7000, 0xc094, 0x7002, 0x012e, 0x0005, 0x0096, 0x2001,\r
++      0x192e, 0x204c, 0xa87c, 0x7812, 0xa88c, 0x7802, 0xa890, 0x7806,\r
++      0xa894, 0x780a, 0xa898, 0x780e, 0x782b, 0x0020, 0x0126, 0x2091,\r
++      0x8000, 0x782b, 0x0041, 0x7007, 0x0003, 0x7000, 0xc084, 0x7002,\r
++      0x2900, 0x700a, 0x012e, 0x009e, 0x0005, 0x20e1, 0x0000, 0x2099,\r
++      0x0088, 0x782b, 0x0040, 0x0096, 0x2001, 0x192e, 0x204c, 0xaa7c,\r
++      0x009e, 0x080c, 0x8a0c, 0x2009, 0x188c, 0x2104, 0x9084, 0xfffc,\r
++      0x200a, 0x080c, 0x887f, 0x7007, 0x0000, 0x080c, 0x1119, 0x0005,\r
++      0x7007, 0x0000, 0x080c, 0x1119, 0x0005, 0x0126, 0x2091, 0x2200,\r
++      0x2079, 0x0300, 0x2071, 0x1a62, 0x7003, 0x0000, 0x78bf, 0x00f6,\r
++      0x781b, 0x4800, 0x00c1, 0x7803, 0x0003, 0x780f, 0x0000, 0x20a9,\r
++      0x03d0, 0x2061, 0xea18, 0x2c0d, 0x7912, 0xe104, 0x9ce0, 0x0002,\r
++      0x7916, 0x1f04, 0x1303, 0x7807, 0x0007, 0x7803, 0x0000, 0x7803,\r
++      0x0001, 0x012e, 0x0005, 0x00c6, 0x7803, 0x0000, 0x7808, 0xd09c,\r
++      0x0120, 0x7820, 0x080c, 0x1362, 0x0cc8, 0x2001, 0x1a63, 0x2003,\r
++      0x0000, 0x78ab, 0x0004, 0x78ac, 0xd0ac, 0x1de8, 0x78ab, 0x0002,\r
++      0x7807, 0x0007, 0x7827, 0x0030, 0x782b, 0x0400, 0x7827, 0x0031,\r
++      0x782b, 0x1a82, 0x781f, 0xff00, 0x781b, 0xb700, 0x2001, 0x0200,\r
++      0x2004, 0xd0dc, 0x0110, 0x781f, 0x0303, 0x2061, 0x1a82, 0x602f,\r
++      0x1cd0, 0x2001, 0x181a, 0x2004, 0x9082, 0x1cd0, 0x6032, 0x603b,\r
++      0x2090, 0x2001, 0x3325, 0xd0fc, 0x190c, 0x0dd5, 0x2001, 0x0003,\r
++      0x2004, 0xd0d4, 0x1118, 0x783f, 0x3325, 0x0020, 0x9084, 0xc000,\r
++      0x783f, 0xb325, 0x604f, 0x193c, 0x2001, 0x1927, 0x2004, 0x6042,\r
++      0x00ce, 0x0005, 0x9086, 0x000d, 0x11d0, 0x7808, 0xd09c, 0x01b8,\r
++      0x7820, 0x0026, 0x2010, 0x080c, 0xcb23, 0x0180, 0x2260, 0x6000,\r
++      0x9086, 0x0004, 0x1158, 0x0016, 0x6120, 0x9186, 0x0009, 0x0108,\r
++      0x0020, 0x2009, 0x004c, 0x080c, 0xaedc, 0x001e, 0x002e, 0x0005,\r
++      0x0126, 0x2091, 0x2200, 0x7908, 0x9184, 0x0070, 0x190c, 0x0dce,\r
++      0xd19c, 0x0158, 0x7820, 0x908c, 0xf000, 0x15e8, 0x908a, 0x0024,\r
++      0x1a0c, 0x0dd5, 0x0023, 0x012e, 0x0005, 0x012e, 0x0005, 0x13bb,\r
++      0x13bb, 0x13d2, 0x13d7, 0x13db, 0x13e0, 0x1408, 0x140c, 0x141a,\r
++      0x141e, 0x13bb, 0x14e9, 0x14ed, 0x1552, 0x1559, 0x13bb, 0x155a,\r
++      0x155b, 0x1566, 0x156d, 0x13bb, 0x13bb, 0x13bb, 0x13bb, 0x13bb,\r
++      0x13bb, 0x13bb, 0x13e2, 0x13bb, 0x13bb, 0x13bb, 0x13bb, 0x13bb,\r
++      0x13bb, 0x13bf, 0x13bd, 0x080c, 0x0dd5, 0x080c, 0x0dce, 0x080c,\r
++      0x1578, 0x2009, 0x1a7b, 0x2104, 0x8000, 0x200a, 0x080c, 0x7e56,\r
++      0x080c, 0x1aa9, 0x0005, 0x2009, 0x0048, 0x2060, 0x080c, 0xaedc,\r
++      0x012e, 0x0005, 0x7004, 0xc085, 0xc0b5, 0x7006, 0x0005, 0x7004,\r
++      0xc085, 0x7006, 0x0005, 0x080c, 0x1578, 0x080c, 0x16bb, 0x0005,\r
++      0x080c, 0x0dd5, 0x080c, 0x1578, 0x2060, 0x6014, 0x0096, 0x2048,\r
++      0xa83b, 0xffff, 0x009e, 0x2009, 0x0048, 0x080c, 0xaedc, 0x2001,\r
++      0x015d, 0x2003, 0x0000, 0x2009, 0x03e8, 0x8109, 0x0160, 0x2001,\r
++      0x0201, 0x2004, 0x9005, 0x0dc8, 0x2001, 0x0218, 0x2004, 0xd0ec,\r
++      0x1110, 0x080c, 0x157d, 0x2001, 0x0307, 0x2003, 0x8000, 0x0005,\r
++      0x7004, 0xc095, 0x7006, 0x0005, 0x080c, 0x1578, 0x2060, 0x6014,\r
++      0x0096, 0x2048, 0xa83b, 0xffff, 0x009e, 0x2009, 0x0048, 0x080c,\r
++      0xaedc, 0x0005, 0x080c, 0x1578, 0x080c, 0x0dd5, 0x080c, 0x1578,\r
++      0x080c, 0x14d4, 0x7827, 0x0018, 0x79ac, 0xd1dc, 0x0904, 0x1487,\r
++      0x7827, 0x0015, 0x7828, 0x782b, 0x0000, 0x9065, 0x0140, 0x2001,\r
++      0x020d, 0x2003, 0x0050, 0x2003, 0x0020, 0x0804, 0x148d, 0x7004,\r
++      0x9005, 0x01c8, 0x1188, 0x78ab, 0x0004, 0x7827, 0x0018, 0x782b,\r
++      0x0000, 0xd1bc, 0x090c, 0x0dd5, 0x2001, 0x020d, 0x2003, 0x0050,\r
++      0x2003, 0x0020, 0x0804, 0x14b9, 0x78ab, 0x0004, 0x7803, 0x0001,\r
++      0x080c, 0x14ed, 0x0005, 0x7827, 0x0018, 0xa001, 0x7828, 0x7827,\r
++      0x0011, 0xa001, 0x7928, 0x9106, 0x0110, 0x79ac, 0x08e0, 0x00e6,\r
++      0x2071, 0x0200, 0x702c, 0xd0c4, 0x0140, 0x00ee, 0x080c, 0x1aa9,\r
++      0x080c, 0x1313, 0x7803, 0x0001, 0x0005, 0x7037, 0x0001, 0xa001,\r
++      0x7150, 0x00ee, 0x918c, 0xff00, 0x9186, 0x0500, 0x0110, 0x79ac,\r
++      0x0810, 0x7004, 0xc09d, 0x7006, 0x78ab, 0x0004, 0x7803, 0x0001,\r
++      0x080c, 0x14ed, 0x2001, 0x020d, 0x2003, 0x0020, 0x0005, 0x7828,\r
++      0x782b, 0x0000, 0x9065, 0x090c, 0x0dd5, 0x6014, 0x2048, 0x78ab,\r
++      0x0004, 0x918c, 0x0700, 0x0198, 0x080c, 0x7e56, 0x080c, 0x1aa9,\r
++      0x080c, 0xcb35, 0x0158, 0xa9ac, 0xa936, 0xa9b0, 0xa93a, 0xa83f,\r
++      0xffff, 0xa843, 0xffff, 0xa880, 0xc0bd, 0xa882, 0x0005, 0x6020,\r
++      0x9086, 0x0009, 0x1128, 0x2009, 0x004c, 0x080c, 0xaedc, 0x0048,\r
++      0x6010, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc, 0x6024, 0x190c,\r
++      0xcf1a, 0x2029, 0x00c8, 0x8529, 0x0128, 0x2001, 0x0201, 0x2004,\r
++      0x9005, 0x0dc8, 0x7dbc, 0x080c, 0xe9c1, 0xd5a4, 0x1118, 0x080c,\r
++      0x157d, 0x0005, 0x080c, 0x7e56, 0x080c, 0x1aa9, 0x0005, 0x781f,\r
++      0x0300, 0x7803, 0x0001, 0x0005, 0x0016, 0x0066, 0x0076, 0x00f6,\r
++      0x2079, 0x0300, 0x7908, 0x918c, 0x0007, 0x9186, 0x0003, 0x0120,\r
++      0x2001, 0x0016, 0x080c, 0x15ee, 0x00fe, 0x007e, 0x006e, 0x001e,\r
++      0x0005, 0x7004, 0xc09d, 0x7006, 0x0005, 0x7104, 0x9184, 0x0004,\r
++      0x190c, 0x0dd5, 0xd184, 0x1189, 0xd19c, 0x0158, 0xc19c, 0x7106,\r
++      0x2001, 0x020d, 0x2003, 0x0050, 0x2003, 0x0020, 0x080c, 0x157d,\r
++      0x0005, 0x81ff, 0x190c, 0x0dd5, 0x0005, 0xc184, 0xd1b4, 0xc1b4,\r
++      0x7106, 0x0016, 0x00e6, 0x15f0, 0x2071, 0x0200, 0x080c, 0x16a8,\r
++      0x05c8, 0x6014, 0x9005, 0x05b0, 0x0096, 0x2048, 0xa864, 0x009e,\r
++      0x9084, 0x00ff, 0x908e, 0x0029, 0x0160, 0x908e, 0x0048, 0x1550,\r
++      0x601c, 0xd084, 0x11e0, 0x00f6, 0x2c78, 0x080c, 0x1725, 0x00fe,\r
++      0x00b0, 0x00f6, 0x2c78, 0x080c, 0x18ac, 0x00fe, 0x2009, 0x01f4,\r
++      0x8109, 0x0168, 0x2001, 0x0201, 0x2004, 0x9005, 0x0dc8, 0x2001,\r
++      0x0218, 0x2004, 0xd0ec, 0x1118, 0x080c, 0x157d, 0x0040, 0x2001,\r
++      0x020d, 0x2003, 0x0020, 0x080c, 0x1313, 0x7803, 0x0001, 0x00ee,\r
++      0x001e, 0x0005, 0x2001, 0x020d, 0x2003, 0x0050, 0x2003, 0x0020,\r
++      0x0461, 0x0ca8, 0x0429, 0x2060, 0x2009, 0x0053, 0x080c, 0xaedc,\r
++      0x0005, 0x0005, 0x0005, 0x00e1, 0x2008, 0x00d1, 0x0006, 0x7004,\r
++      0xc09d, 0x7006, 0x000e, 0x080c, 0x8d69, 0x0005, 0x0089, 0x9005,\r
++      0x0118, 0x080c, 0x896c, 0x0cd0, 0x0005, 0x2001, 0x0036, 0x2009,\r
++      0x1820, 0x210c, 0x2011, 0x181f, 0x2214, 0x080c, 0x15ee, 0x0005,\r
++      0x7808, 0xd09c, 0x0de8, 0x7820, 0x0005, 0x080c, 0x14d4, 0x00d6,\r
++      0x2069, 0x0200, 0x2009, 0x01f4, 0x8109, 0x0510, 0x6804, 0x9005,\r
++      0x0dd8, 0x2001, 0x015d, 0x2003, 0x0000, 0x79bc, 0xd1a4, 0x1528,\r
++      0x79b8, 0x918c, 0x0fff, 0x0180, 0x9182, 0x0841, 0x1268, 0x9188,\r
++      0x0007, 0x918c, 0x0ff8, 0x810c, 0x810c, 0x810c, 0x080c, 0x15e0,\r
++      0x6827, 0x0001, 0x8109, 0x1dd0, 0x04d9, 0x6827, 0x0002, 0x04c1,\r
++      0x6804, 0x9005, 0x1130, 0x682c, 0xd0e4, 0x1500, 0x6804, 0x9005,\r
++      0x0de8, 0x79b8, 0xd1ec, 0x1130, 0x08c0, 0x080c, 0x7e56, 0x080c,\r
++      0x1aa9, 0x0090, 0x7827, 0x0015, 0x782b, 0x0000, 0x7827, 0x0018,\r
++      0x782b, 0x0000, 0x2001, 0x020d, 0x2003, 0x0020, 0x2001, 0x0307,\r
++      0x2003, 0x0300, 0x7803, 0x0001, 0x00de, 0x0005, 0x682c, 0x9084,\r
++      0x5400, 0x9086, 0x5400, 0x0d30, 0x7827, 0x0015, 0x782b, 0x0000,\r
++      0x7803, 0x0001, 0x6800, 0x9085, 0x1800, 0x6802, 0x00de, 0x0005,\r
++      0x6824, 0x9084, 0x0003, 0x1de0, 0x0005, 0x2001, 0x0030, 0x2c08,\r
++      0x621c, 0x0021, 0x7830, 0x9086, 0x0041, 0x0005, 0x00f6, 0x2079,\r
++      0x0300, 0x0006, 0x7808, 0xd09c, 0x0140, 0x0016, 0x0026, 0x00c6,\r
++      0x080c, 0x1380, 0x00ce, 0x002e, 0x001e, 0x000e, 0x0006, 0x7832,\r
++      0x7936, 0x7a3a, 0x781b, 0x8080, 0x0059, 0x1118, 0x000e, 0x00fe,\r
++      0x0005, 0x000e, 0x792c, 0x3900, 0x8000, 0x2004, 0x080c, 0x0dd5,\r
++      0x2009, 0x180c, 0x2104, 0xc0f4, 0x200a, 0x2009, 0xff00, 0x8109,\r
++      0x0904, 0x166c, 0x7a18, 0x9284, 0x0030, 0x0904, 0x1667, 0x9284,\r
++      0x0048, 0x9086, 0x0008, 0x1904, 0x1667, 0x2001, 0x0109, 0x2004,\r
++      0xd08c, 0x01f0, 0x0006, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156,\r
++      0x0126, 0x2091, 0x2800, 0x00f6, 0x0026, 0x0016, 0x2009, 0x1a7d,\r
++      0x2104, 0x8000, 0x0208, 0x200a, 0x080c, 0x90a2, 0x001e, 0x002e,\r
++      0x00fe, 0x012e, 0x015e, 0x014e, 0x013e, 0x01de, 0x01ce, 0x000e,\r
++      0x2001, 0x009b, 0x2004, 0xd0fc, 0x01d0, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x00f6, 0x0016, 0x2009, 0x1a7e,\r
++      0x2104, 0x8000, 0x0208, 0x200a, 0x080c, 0x1eb4, 0x001e, 0x00fe,\r
++      0x015e, 0x014e, 0x013e, 0x01de, 0x01ce, 0x012e, 0x000e, 0x7818,\r
++      0xd0bc, 0x1904, 0x1617, 0x0005, 0x2001, 0x180c, 0x2004, 0xd0f4,\r
++      0x1528, 0x7a18, 0x9284, 0x0030, 0x0508, 0x9284, 0x0048, 0x9086,\r
++      0x0008, 0x11e0, 0x2001, 0x19f6, 0x2004, 0x9005, 0x01b8, 0x2001,\r
++      0x1a66, 0x2004, 0x9086, 0x0000, 0x0188, 0x2009, 0x1a7c, 0x2104,\r
++      0x8000, 0x0208, 0x200a, 0x080c, 0xa2f7, 0x2009, 0x180c, 0x2104,\r
++      0xc0f5, 0x200a, 0x2009, 0xff00, 0x0804, 0x1617, 0x9085, 0x0001,\r
++      0x0005, 0x7832, 0x7936, 0x7a3a, 0x781b, 0x8080, 0x080c, 0x1610,\r
++      0x1108, 0x0005, 0x792c, 0x3900, 0x8000, 0x2004, 0x080c, 0x0dd5,\r
++      0x7037, 0x0001, 0x7150, 0x7037, 0x0002, 0x7050, 0x2060, 0xd1bc,\r
++      0x1110, 0x7054, 0x2060, 0x918c, 0xff00, 0x9186, 0x0500, 0x0110,\r
++      0x9085, 0x0001, 0x0005, 0x00e6, 0x0016, 0x2071, 0x0200, 0x0c41,\r
++      0x6124, 0xd1dc, 0x01f8, 0x701c, 0xd08c, 0x0904, 0x171a, 0x7017,\r
++      0x0000, 0x2001, 0x0264, 0x2004, 0xd0bc, 0x0904, 0x171a, 0x2001,\r
++      0x0268, 0x00c6, 0x2064, 0x6104, 0x6038, 0x00ce, 0x918e, 0x0039,\r
++      0x1904, 0x171a, 0x9c06, 0x15f0, 0x0126, 0x2091, 0x2600, 0x080c,\r
++      0x7d9d, 0x012e, 0x7358, 0x745c, 0x6014, 0x905d, 0x0598, 0x2b48,\r
++      0x6010, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc, 0x190c, 0xcef5,\r
++      0xab42, 0xac3e, 0x2001, 0x1869, 0x2004, 0xd0b4, 0x1170, 0x601c,\r
++      0xd0e4, 0x1158, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc,\r
++      0x1120, 0xa83b, 0x7fff, 0xa837, 0xffff, 0x080c, 0x20b0, 0x1190,\r
++      0x080c, 0x1907, 0x2a00, 0xa816, 0x0130, 0x2800, 0xa80e, 0x2c05,\r
++      0xa80a, 0x2c00, 0xa812, 0x7037, 0x0020, 0x781f, 0x0300, 0x001e,\r
++      0x00ee, 0x0005, 0x7037, 0x0050, 0x7037, 0x0020, 0x001e, 0x00ee,\r
++      0x080c, 0x157d, 0x0005, 0x080c, 0x0dd5, 0x2ff0, 0x0126, 0x2091,\r
++      0x2200, 0x00c6, 0x3e60, 0x6014, 0x2048, 0x2940, 0x903e, 0x2730,\r
++      0xa864, 0x2068, 0xa81a, 0x9d84, 0x000f, 0x9088, 0x2090, 0x2165,\r
++      0x0002, 0x1750, 0x17be, 0x1750, 0x1750, 0x1754, 0x179f, 0x1750,\r
++      0x1774, 0x1749, 0x17b5, 0x1750, 0x1750, 0x1759, 0x18aa, 0x1788,\r
++      0x177e, 0xa964, 0x918c, 0x00ff, 0x918e, 0x0048, 0x0904, 0x17b5,\r
++      0x9085, 0x0001, 0x0804, 0x18a1, 0xa87c, 0xd0ac, 0x0dc8, 0x0804,\r
++      0x17c5, 0xa87c, 0xd0ac, 0x0da0, 0x0804, 0x1830, 0xa898, 0x901d,\r
++      0x1108, 0xab9c, 0x9016, 0xaab2, 0xaa3e, 0xaa42, 0x3e00, 0x9080,\r
++      0x0008, 0x2004, 0x9080, 0x8f30, 0x2005, 0x9005, 0x090c, 0x0dd5,\r
++      0x2004, 0xa8ae, 0x0804, 0x1889, 0xa87c, 0xd0bc, 0x09c8, 0xa890,\r
++      0xa842, 0xa88c, 0xa83e, 0xa888, 0x0804, 0x17c5, 0xa87c, 0xd0bc,\r
++      0x0978, 0xa890, 0xa842, 0xa88c, 0xa83e, 0xa888, 0x0804, 0x1830,\r
++      0xa87c, 0xd0bc, 0x0928, 0xa890, 0xa842, 0xa88c, 0xa83e, 0xa804,\r
++      0x9045, 0x090c, 0x0dd5, 0xa164, 0xa91a, 0x91ec, 0x000f, 0x9d80,\r
++      0x2090, 0x2065, 0xa888, 0xd19c, 0x1904, 0x1830, 0x0430, 0xa87c,\r
++      0xd0ac, 0x0904, 0x1750, 0xa804, 0x9045, 0x090c, 0x0dd5, 0xa164,\r
++      0xa91a, 0x91ec, 0x000f, 0x9d80, 0x2090, 0x2065, 0x9006, 0xa842,\r
++      0xa83e, 0xd19c, 0x1904, 0x1830, 0x0080, 0xa87c, 0xd0ac, 0x0904,\r
++      0x1750, 0x9006, 0xa842, 0xa83e, 0x0804, 0x1830, 0xa87c, 0xd0ac,\r
++      0x0904, 0x1750, 0x9006, 0xa842, 0xa83e, 0x2c05, 0x908a, 0x0036,\r
++      0x1a0c, 0x0dd5, 0x9082, 0x001b, 0x0002, 0x17e8, 0x17e8, 0x17ea,\r
++      0x17e8, 0x17e8, 0x17e8, 0x17f4, 0x17e8, 0x17e8, 0x17e8, 0x17fe,\r
++      0x17e8, 0x17e8, 0x17e8, 0x1808, 0x17e8, 0x17e8, 0x17e8, 0x1812,\r
++      0x17e8, 0x17e8, 0x17e8, 0x181c, 0x17e8, 0x17e8, 0x17e8, 0x1826,\r
++      0x080c, 0x0dd5, 0xa574, 0xa478, 0x9d86, 0x0024, 0x0904, 0x175e,\r
++      0xa37c, 0xa280, 0x0804, 0x1889, 0xa584, 0xa488, 0x9d86, 0x0024,\r
++      0x0904, 0x175e, 0xa38c, 0xa290, 0x0804, 0x1889, 0xa594, 0xa498,\r
++      0x9d86, 0x0024, 0x0904, 0x175e, 0xa39c, 0xa2a0, 0x0804, 0x1889,\r
++      0xa5a4, 0xa4a8, 0x9d86, 0x0024, 0x0904, 0x175e, 0xa3ac, 0xa2b0,\r
++      0x0804, 0x1889, 0xa5b4, 0xa4b8, 0x9d86, 0x0024, 0x0904, 0x175e,\r
++      0xa3bc, 0xa2c0, 0x0804, 0x1889, 0xa5c4, 0xa4c8, 0x9d86, 0x0024,\r
++      0x0904, 0x175e, 0xa3cc, 0xa2d0, 0x0804, 0x1889, 0xa5d4, 0xa4d8,\r
++      0x9d86, 0x0024, 0x0904, 0x175e, 0xa3dc, 0xa2e0, 0x0804, 0x1889,\r
++      0x2c05, 0x908a, 0x0034, 0x1a0c, 0x0dd5, 0x9082, 0x001b, 0x0002,\r
++      0x1853, 0x1851, 0x1851, 0x1851, 0x1851, 0x1851, 0x185e, 0x1851,\r
++      0x1851, 0x1851, 0x1851, 0x1851, 0x1869, 0x1851, 0x1851, 0x1851,\r
++      0x1851, 0x1851, 0x1874, 0x1851, 0x1851, 0x1851, 0x1851, 0x1851,\r
++      0x187f, 0x080c, 0x0dd5, 0xa56c, 0xa470, 0xa774, 0xa678, 0x9d86,\r
++      0x002c, 0x0904, 0x175e, 0xa37c, 0xa280, 0x0458, 0xa584, 0xa488,\r
++      0xa78c, 0xa690, 0x9d86, 0x002c, 0x0904, 0x175e, 0xa394, 0xa298,\r
++      0x0400, 0xa59c, 0xa4a0, 0xa7a4, 0xa6a8, 0x9d86, 0x002c, 0x0904,\r
++      0x175e, 0xa3ac, 0xa2b0, 0x00a8, 0xa5b4, 0xa4b8, 0xa7bc, 0xa6c0,\r
++      0x9d86, 0x002c, 0x0904, 0x175e, 0xa3c4, 0xa2c8, 0x0050, 0xa5cc,\r
++      0xa4d0, 0xa7d4, 0xa6d8, 0x9d86, 0x002c, 0x0904, 0x175e, 0xa3dc,\r
++      0xa2e0, 0xab2e, 0xaa32, 0xad1e, 0xac22, 0xaf26, 0xae2a, 0xa988,\r
++      0x8c60, 0x2c1d, 0xa8ac, 0xaab0, 0xa836, 0xaa3a, 0x8109, 0xa916,\r
++      0x1158, 0x3e60, 0x601c, 0xc085, 0x601e, 0xa87c, 0xc0dd, 0xa87e,\r
++      0x9006, 0x00ce, 0x012e, 0x0005, 0x2800, 0xa80e, 0xab0a, 0x2c00,\r
++      0xa812, 0x0c78, 0x0804, 0x1750, 0x2ff0, 0x0126, 0x2091, 0x2200,\r
++      0x00c6, 0x3e60, 0x6014, 0x2048, 0x2940, 0xa80e, 0x2061, 0x208b,\r
++      0xa813, 0x208b, 0x2c05, 0xa80a, 0xa964, 0xa91a, 0xa87c, 0xd0ac,\r
++      0x090c, 0x0dd5, 0x9006, 0xa842, 0xa83e, 0x2c05, 0x908a, 0x0034,\r
++      0x1a0c, 0x0dd5, 0xadcc, 0xacd0, 0xafd4, 0xaed8, 0xabdc, 0xaae0,\r
++      0xab2e, 0xaa32, 0xad1e, 0xac22, 0xaf26, 0xae2a, 0xa8ac, 0xaab0,\r
++      0xa836, 0xaa3a, 0xa988, 0xa864, 0x9084, 0x00ff, 0x9086, 0x0008,\r
++      0x1120, 0x8109, 0xa916, 0x0128, 0x0078, 0x918a, 0x0002, 0xa916,\r
++      0x1158, 0x3e60, 0x601c, 0xc085, 0x601e, 0xa87c, 0xc0dd, 0xa87e,\r
++      0x9006, 0x00ce, 0x012e, 0x0005, 0xa804, 0x9045, 0x090c, 0x0dd5,\r
++      0xa80e, 0xa064, 0xa81a, 0x9084, 0x000f, 0x9080, 0x2090, 0x2015,\r
++      0x82ff, 0x090c, 0x0dd5, 0xaa12, 0x2205, 0xa80a, 0x0c10, 0x903e,\r
++      0x2730, 0xa880, 0xd0fc, 0x1190, 0x2d00, 0x0002, 0x1a31, 0x195e,\r
++      0x195e, 0x1a31, 0x195e, 0x1a2b, 0x1a31, 0x195e, 0x19ce, 0x19ce,\r
++      0x19ce, 0x1a31, 0x19ce, 0x1a31, 0x1a28, 0x19ce, 0xc0fc, 0xa882,\r
++      0xab2c, 0xaa30, 0xad1c, 0xac20, 0xdd9c, 0x0904, 0x1a33, 0x2c05,\r
++      0x908a, 0x0034, 0x1a0c, 0x0dd5, 0x9082, 0x001b, 0x0002, 0x194a,\r
++      0x1948, 0x1948, 0x1948, 0x1948, 0x1948, 0x194e, 0x1948, 0x1948,\r
++      0x1948, 0x1948, 0x1948, 0x1952, 0x1948, 0x1948, 0x1948, 0x1948,\r
++      0x1948, 0x1956, 0x1948, 0x1948, 0x1948, 0x1948, 0x1948, 0x195a,\r
++      0x080c, 0x0dd5, 0xa774, 0xa678, 0x0804, 0x1a33, 0xa78c, 0xa690,\r
++      0x0804, 0x1a33, 0xa7a4, 0xa6a8, 0x0804, 0x1a33, 0xa7bc, 0xa6c0,\r
++      0x0804, 0x1a33, 0xa7d4, 0xa6d8, 0x0804, 0x1a33, 0xa898, 0x901d,\r
++      0x1108, 0xab9c, 0x9016, 0x2c05, 0x908a, 0x0036, 0x1a0c, 0x0dd5,\r
++      0x9082, 0x001b, 0x0002, 0x1986, 0x1986, 0x1988, 0x1986, 0x1986,\r
++      0x1986, 0x1992, 0x1986, 0x1986, 0x1986, 0x199c, 0x1986, 0x1986,\r
++      0x1986, 0x19a6, 0x1986, 0x1986, 0x1986, 0x19b0, 0x1986, 0x1986,\r
++      0x1986, 0x19ba, 0x1986, 0x1986, 0x1986, 0x19c4, 0x080c, 0x0dd5,\r
++      0xa574, 0xa478, 0x9d86, 0x0004, 0x0904, 0x1a33, 0xa37c, 0xa280,\r
++      0x0804, 0x1a33, 0xa584, 0xa488, 0x9d86, 0x0004, 0x0904, 0x1a33,\r
++      0xa38c, 0xa290, 0x0804, 0x1a33, 0xa594, 0xa498, 0x9d86, 0x0004,\r
++      0x0904, 0x1a33, 0xa39c, 0xa2a0, 0x0804, 0x1a33, 0xa5a4, 0xa4a8,\r
++      0x9d86, 0x0004, 0x0904, 0x1a33, 0xa3ac, 0xa2b0, 0x0804, 0x1a33,\r
++      0xa5b4, 0xa4b8, 0x9d86, 0x0004, 0x0904, 0x1a33, 0xa3bc, 0xa2c0,\r
++      0x0804, 0x1a33, 0xa5c4, 0xa4c8, 0x9d86, 0x0004, 0x0904, 0x1a33,\r
++      0xa3cc, 0xa2d0, 0x0804, 0x1a33, 0xa5d4, 0xa4d8, 0x9d86, 0x0004,\r
++      0x0904, 0x1a33, 0xa3dc, 0xa2e0, 0x0804, 0x1a33, 0xa898, 0x901d,\r
++      0x1108, 0xab9c, 0x9016, 0x2c05, 0x908a, 0x0034, 0x1a0c, 0x0dd5,\r
++      0x9082, 0x001b, 0x0002, 0x19f6, 0x19f4, 0x19f4, 0x19f4, 0x19f4,\r
++      0x19f4, 0x1a00, 0x19f4, 0x19f4, 0x19f4, 0x19f4, 0x19f4, 0x1a0a,\r
++      0x19f4, 0x19f4, 0x19f4, 0x19f4, 0x19f4, 0x1a14, 0x19f4, 0x19f4,\r
++      0x19f4, 0x19f4, 0x19f4, 0x1a1e, 0x080c, 0x0dd5, 0xa56c, 0xa470,\r
++      0xa774, 0xa678, 0x9d86, 0x000c, 0x05b0, 0xa37c, 0xa280, 0x0498,\r
++      0xa584, 0xa488, 0xa78c, 0xa690, 0x9d86, 0x000c, 0x0560, 0xa394,\r
++      0xa298, 0x0448, 0xa59c, 0xa4a0, 0xa7a4, 0xa6a8, 0x9d86, 0x000c,\r
++      0x0510, 0xa3ac, 0xa2b0, 0x00f8, 0xa5b4, 0xa4b8, 0xa7bc, 0xa6c0,\r
++      0x9d86, 0x000c, 0x01c0, 0xa3c4, 0xa2c8, 0x00a8, 0xa5cc, 0xa4d0,\r
++      0xa7d4, 0xa6d8, 0x9d86, 0x000c, 0x0170, 0xa3dc, 0xa2e0, 0x0058,\r
++      0x9d86, 0x000e, 0x1130, 0x080c, 0x2048, 0x1904, 0x1907, 0x900e,\r
++      0x0050, 0x080c, 0x0dd5, 0xab2e, 0xaa32, 0xad1e, 0xac22, 0xaf26,\r
++      0xae2a, 0x080c, 0x2048, 0x0005, 0x6014, 0x2048, 0x6118, 0x810c,\r
++      0x810c, 0x810c, 0x81ff, 0x1118, 0xa887, 0x0001, 0x0008, 0xa986,\r
++      0x601b, 0x0002, 0xa974, 0xd1dc, 0x1108, 0x0005, 0xa934, 0xa88c,\r
++      0x9106, 0x1158, 0xa938, 0xa890, 0x9106, 0x1138, 0x601c, 0xc084,\r
++      0x601e, 0x2009, 0x0048, 0x0804, 0xaedc, 0x0005, 0x0126, 0x00c6,\r
++      0x2091, 0x2200, 0x00ce, 0x7908, 0x918c, 0x0007, 0x9186, 0x0000,\r
++      0x05b0, 0x9186, 0x0003, 0x0598, 0x6020, 0x6023, 0x0000, 0x0006,\r
++      0x2031, 0x0008, 0x00c6, 0x781f, 0x0808, 0x7808, 0xd09c, 0x0120,\r
++      0x080c, 0x1380, 0x8631, 0x1db8, 0x00ce, 0x781f, 0x0800, 0x2031,\r
++      0x0168, 0x00c6, 0x7808, 0xd09c, 0x190c, 0x1380, 0x00ce, 0x2001,\r
++      0x0038, 0x080c, 0x1b36, 0x7930, 0x9186, 0x0040, 0x0160, 0x9186,\r
++      0x0042, 0x190c, 0x0dd5, 0x2001, 0x001e, 0x8001, 0x1df0, 0x8631,\r
++      0x1d40, 0x080c, 0x1b45, 0x000e, 0x6022, 0x012e, 0x0005, 0x080c,\r
++      0x1b32, 0x7827, 0x0015, 0x7828, 0x9c06, 0x1db8, 0x782b, 0x0000,\r
++      0x0ca0, 0x00f6, 0x2079, 0x0300, 0x7803, 0x0000, 0x78ab, 0x0004,\r
++      0x00fe, 0x080c, 0x73bc, 0x11b0, 0x2001, 0x0138, 0x2003, 0x0000,\r
++      0x2001, 0x0160, 0x2003, 0x0000, 0x2011, 0x012c, 0xa001, 0xa001,\r
++      0x8211, 0x1de0, 0x0081, 0x0066, 0x2031, 0x0000, 0x080c, 0x746c,\r
++      0x006e, 0x0005, 0x0479, 0x0039, 0x2001, 0x0160, 0x2502, 0x2001,\r
++      0x0138, 0x2202, 0x0005, 0x00e6, 0x2071, 0x0200, 0x080c, 0x2c44,\r
++      0x2009, 0x003c, 0x080c, 0x23d2, 0x2001, 0x015d, 0x2003, 0x0000,\r
++      0x7000, 0x9084, 0x003c, 0x1de0, 0x080c, 0x8414, 0x70a0, 0x70a2,\r
++      0x7098, 0x709a, 0x709c, 0x709e, 0x2001, 0x020d, 0x2003, 0x0020,\r
++      0x00f6, 0x2079, 0x0300, 0x080c, 0x1313, 0x7803, 0x0001, 0x00fe,\r
++      0x00ee, 0x0005, 0x2001, 0x0138, 0x2014, 0x2003, 0x0000, 0x2001,\r
++      0x0160, 0x202c, 0x2003, 0x0000, 0x080c, 0x73bc, 0x1108, 0x0005,\r
++      0x2021, 0x0260, 0x2001, 0x0141, 0x201c, 0xd3dc, 0x1168, 0x2001,\r
++      0x0109, 0x201c, 0x939c, 0x0048, 0x1160, 0x2001, 0x0111, 0x201c,\r
++      0x83ff, 0x1110, 0x8421, 0x1d70, 0x2001, 0x015d, 0x2003, 0x0000,\r
++      0x0005, 0x0046, 0x2021, 0x0019, 0x2003, 0x0048, 0xa001, 0xa001,\r
++      0x201c, 0x939c, 0x0048, 0x0120, 0x8421, 0x1db0, 0x004e, 0x0c60,\r
++      0x004e, 0x0c40, 0x601c, 0xc084, 0x601e, 0x0005, 0x2c08, 0x621c,\r
++      0x080c, 0x15ee, 0x7930, 0x0005, 0x2c08, 0x621c, 0x080c, 0x1699,\r
++      0x7930, 0x0005, 0x8001, 0x1df0, 0x0005, 0x2031, 0x0005, 0x781c,\r
++      0x9084, 0x0007, 0x0170, 0x2001, 0x0038, 0x0c41, 0x9186, 0x0040,\r
++      0x0904, 0x1ba3, 0x2001, 0x001e, 0x0c69, 0x8631, 0x1d80, 0x080c,\r
++      0x0dd5, 0x781f, 0x0202, 0x2001, 0x015d, 0x2003, 0x0000, 0x2001,\r
++      0x0b10, 0x0c01, 0x781c, 0xd084, 0x0110, 0x0861, 0x04e0, 0x2001,\r
++      0x0030, 0x0891, 0x9186, 0x0040, 0x0568, 0x781c, 0xd084, 0x1da8,\r
++      0x781f, 0x0101, 0x2001, 0x0014, 0x0869, 0x2001, 0x0037, 0x0821,\r
++      0x9186, 0x0040, 0x0140, 0x2001, 0x0030, 0x080c, 0x1b3c, 0x9186,\r
++      0x0040, 0x190c, 0x0dd5, 0x00d6, 0x2069, 0x0200, 0x692c, 0xd1f4,\r
++      0x1170, 0xd1c4, 0x0160, 0xd19c, 0x0130, 0x6800, 0x9085, 0x1800,\r
++      0x6802, 0x00de, 0x0080, 0x6908, 0x9184, 0x0007, 0x1db0, 0x00de,\r
++      0x781f, 0x0100, 0x791c, 0x9184, 0x0007, 0x090c, 0x0dd5, 0xa001,\r
++      0xa001, 0x781f, 0x0200, 0x0005, 0x0126, 0x2091, 0x2400, 0x2071,\r
++      0x1a66, 0x2079, 0x0090, 0x012e, 0x0005, 0x9280, 0x0005, 0x2004,\r
++      0x2048, 0xa97c, 0xd1dc, 0x1904, 0x1c45, 0xa964, 0x9184, 0x0007,\r
++      0x0002, 0x1bc1, 0x1c30, 0x1bd8, 0x1bda, 0x1bd8, 0x1c18, 0x1bf8,\r
++      0x1be7, 0x918c, 0x00ff, 0x9186, 0x0008, 0x1170, 0xa87c, 0xd0b4,\r
++      0x0904, 0x1e6f, 0x9006, 0xa842, 0xa83e, 0xa988, 0x2900, 0xa85a,\r
++      0xa813, 0x208b, 0x0804, 0x1c41, 0x9186, 0x0048, 0x0904, 0x1c30,\r
++      0x080c, 0x0dd5, 0x9184, 0x00ff, 0x9086, 0x0013, 0x0904, 0x1c30,\r
++      0x9184, 0x00ff, 0x9086, 0x001b, 0x0904, 0x1c30, 0x0c88, 0xa87c,\r
++      0xd0b4, 0x0904, 0x1e6f, 0xa890, 0xa842, 0xa83a, 0xa88c, 0xa83e,\r
++      0xa836, 0xa8ac, 0xa846, 0xa8b0, 0xa84a, 0xa988, 0x0804, 0x1c38,\r
++      0xa864, 0x9084, 0x00ff, 0x9086, 0x001e, 0x19d0, 0xa87c, 0xd0b4,\r
++      0x0904, 0x1e6f, 0xa890, 0xa842, 0xa83a, 0xa88c, 0xa83e, 0xa836,\r
++      0xa8ac, 0xa846, 0xa8b0, 0xa84a, 0xa804, 0xa85a, 0x2040, 0xa064,\r
++      0x9084, 0x000f, 0x9080, 0x2090, 0x2005, 0xa812, 0xa988, 0x0448,\r
++      0x918c, 0x00ff, 0x9186, 0x0015, 0x1540, 0xa87c, 0xd0b4, 0x0904,\r
++      0x1e6f, 0xa804, 0xa85a, 0x2040, 0xa064, 0x9084, 0x000f, 0x9080,\r
++      0x2090, 0x2005, 0xa812, 0xa988, 0x9006, 0xa842, 0xa83e, 0x0088,\r
++      0xa87c, 0xd0b4, 0x0904, 0x1e6f, 0xa988, 0x9006, 0xa842, 0xa83e,\r
++      0x2900, 0xa85a, 0xa864, 0x9084, 0x000f, 0x9080, 0x2090, 0x2005,\r
++      0xa812, 0xa916, 0xa87c, 0xc0dd, 0xa87e, 0x0005, 0x00f6, 0x2079,\r
++      0x0090, 0x782c, 0xd0fc, 0x190c, 0x1eb4, 0x00e6, 0x2071, 0x1a66,\r
++      0x7000, 0x9005, 0x1904, 0x1cae, 0x7206, 0x9280, 0x0005, 0x204c,\r
++      0x9280, 0x0004, 0x2004, 0x782b, 0x0004, 0x00f6, 0x2079, 0x0200,\r
++      0x7803, 0x0040, 0x00fe, 0x00b6, 0x2058, 0xb86c, 0x7836, 0xb890,\r
++      0x00be, 0x00f6, 0x2079, 0x0200, 0x7803, 0x0040, 0xa001, 0xa001,\r
++      0xa001, 0xa001, 0xa001, 0xa001, 0x781a, 0x2079, 0x0100, 0x8004,\r
++      0x78d6, 0x00fe, 0xa814, 0x2050, 0xa858, 0x2040, 0xa810, 0x2060,\r
++      0xa064, 0x90ec, 0x000f, 0xa944, 0x791a, 0x7116, 0xa848, 0x781e,\r
++      0x701a, 0x9006, 0x700e, 0x7012, 0x7004, 0xa940, 0xa838, 0x9106,\r
++      0x1500, 0xa93c, 0xa834, 0x9106, 0x11e0, 0x0006, 0x0016, 0xa938,\r
++      0xa834, 0x9105, 0x0118, 0x001e, 0x000e, 0x0098, 0x001e, 0x000e,\r
++      0x8aff, 0x01c8, 0x0126, 0x2091, 0x8000, 0x2009, 0x0306, 0x200b,\r
++      0x0808, 0x00d9, 0x0108, 0x00c9, 0x012e, 0x9006, 0x00ee, 0x00fe,\r
++      0x0005, 0x0036, 0x0046, 0xab38, 0xac34, 0x080c, 0x20b0, 0x004e,\r
++      0x003e, 0x0d30, 0x0c98, 0x9085, 0x0001, 0x0c80, 0x2009, 0x0306,\r
++      0x200b, 0x4800, 0x7027, 0x0000, 0x0005, 0x0076, 0x0066, 0x0056,\r
++      0x0046, 0x0036, 0x0026, 0x8aff, 0x0904, 0x1e68, 0x700c, 0x7214,\r
++      0x923a, 0x7010, 0x7218, 0x9203, 0x0a04, 0x1e67, 0x9705, 0x0904,\r
++      0x1e67, 0x903e, 0x2730, 0xa880, 0xd0fc, 0x1190, 0x2d00, 0x0002,\r
++      0x1df1, 0x1d30, 0x1d30, 0x1df1, 0x1df1, 0x1dce, 0x1df1, 0x1d30,\r
++      0x1dd5, 0x1d7f, 0x1d7f, 0x1df1, 0x1df1, 0x1df1, 0x1dc8, 0x1d7f,\r
++      0xc0fc, 0xa882, 0xab2c, 0xaa30, 0xad1c, 0xac20, 0xdd9c, 0x0904,\r
++      0x1dfe, 0x2c05, 0x908a, 0x0034, 0x1a0c, 0x0dd5, 0x9082, 0x001b,\r
++      0x0002, 0x1d1c, 0x1d1a, 0x1d1a, 0x1d1a, 0x1d1a, 0x1d1a, 0x1d20,\r
++      0x1d1a, 0x1d1a, 0x1d1a, 0x1d1a, 0x1d1a, 0x1d24, 0x1d1a, 0x1d1a,\r
++      0x1d1a, 0x1d1a, 0x1d1a, 0x1d28, 0x1d1a, 0x1d1a, 0x1d1a, 0x1d1a,\r
++      0x1d1a, 0x1d2c, 0x080c, 0x0dd5, 0xa774, 0xa678, 0x0804, 0x1dfe,\r
++      0xa78c, 0xa690, 0x0804, 0x1dfe, 0xa7a4, 0xa6a8, 0x0804, 0x1dfe,\r
++      0xa7bc, 0xa6c0, 0x0804, 0x1dfe, 0xa7d4, 0xa6d8, 0x0804, 0x1dfe,\r
++      0x2c05, 0x908a, 0x0036, 0x1a0c, 0x0dd5, 0x9082, 0x001b, 0x0002,\r
++      0x1d53, 0x1d53, 0x1d55, 0x1d53, 0x1d53, 0x1d53, 0x1d5b, 0x1d53,\r
++      0x1d53, 0x1d53, 0x1d61, 0x1d53, 0x1d53, 0x1d53, 0x1d67, 0x1d53,\r
++      0x1d53, 0x1d53, 0x1d6d, 0x1d53, 0x1d53, 0x1d53, 0x1d73, 0x1d53,\r
++      0x1d53, 0x1d53, 0x1d79, 0x080c, 0x0dd5, 0xa574, 0xa478, 0xa37c,\r
++      0xa280, 0x0804, 0x1dfe, 0xa584, 0xa488, 0xa38c, 0xa290, 0x0804,\r
++      0x1dfe, 0xa594, 0xa498, 0xa39c, 0xa2a0, 0x0804, 0x1dfe, 0xa5a4,\r
++      0xa4a8, 0xa3ac, 0xa2b0, 0x0804, 0x1dfe, 0xa5b4, 0xa4b8, 0xa3bc,\r
++      0xa2c0, 0x0804, 0x1dfe, 0xa5c4, 0xa4c8, 0xa3cc, 0xa2d0, 0x0804,\r
++      0x1dfe, 0xa5d4, 0xa4d8, 0xa3dc, 0xa2e0, 0x0804, 0x1dfe, 0x2c05,\r
++      0x908a, 0x0034, 0x1a0c, 0x0dd5, 0x9082, 0x001b, 0x0002, 0x1da2,\r
++      0x1da0, 0x1da0, 0x1da0, 0x1da0, 0x1da0, 0x1daa, 0x1da0, 0x1da0,\r
++      0x1da0, 0x1da0, 0x1da0, 0x1db2, 0x1da0, 0x1da0, 0x1da0, 0x1da0,\r
++      0x1da0, 0x1dba, 0x1da0, 0x1da0, 0x1da0, 0x1da0, 0x1da0, 0x1dc1,\r
++      0x080c, 0x0dd5, 0xa56c, 0xa470, 0xa774, 0xa678, 0xa37c, 0xa280,\r
++      0x0804, 0x1dfe, 0xa584, 0xa488, 0xa78c, 0xa690, 0xa394, 0xa298,\r
++      0x0804, 0x1dfe, 0xa59c, 0xa4a0, 0xa7a4, 0xa6a8, 0xa3ac, 0xa2b0,\r
++      0x0804, 0x1dfe, 0xa5b4, 0xa4b8, 0xa7bc, 0xa6c0, 0xa3c4, 0xa2c8,\r
++      0x04e8, 0xa5cc, 0xa4d0, 0xa7d4, 0xa6d8, 0xa3dc, 0xa2e0, 0x04b0,\r
++      0xa864, 0x9084, 0x00ff, 0x9086, 0x001e, 0x1518, 0x080c, 0x2048,\r
++      0x1904, 0x1ccb, 0x900e, 0x0804, 0x1e68, 0xab64, 0x939c, 0x00ff,\r
++      0x9386, 0x0048, 0x1180, 0x00c6, 0x7004, 0x2060, 0x6004, 0x9086,\r
++      0x0043, 0x00ce, 0x0904, 0x1d7f, 0xab9c, 0x9016, 0xad8c, 0xac90,\r
++      0xaf94, 0xae98, 0x0098, 0x9386, 0x0008, 0x0904, 0x1d7f, 0x080c,\r
++      0x0dd5, 0xa964, 0x918c, 0x00ff, 0x9186, 0x0013, 0x0904, 0x1d30,\r
++      0x9186, 0x001b, 0x0904, 0x1d7f, 0x080c, 0x0dd5, 0x2009, 0x030f,\r
++      0x2104, 0xd0fc, 0x0530, 0x0066, 0x2009, 0x0306, 0x2104, 0x9084,\r
++      0x0030, 0x15c8, 0x2031, 0x1000, 0x200b, 0x4000, 0x2600, 0x9302,\r
++      0x928b, 0x0000, 0xa82e, 0xa932, 0x0278, 0x9105, 0x0168, 0x2011,\r
++      0x0000, 0x2618, 0x2600, 0x9500, 0xa81e, 0x9481, 0x0000, 0xa822,\r
++      0xa880, 0xc0fd, 0xa882, 0x0020, 0xa82f, 0x0000, 0xa833, 0x0000,\r
++      0x006e, 0x7b12, 0x7a16, 0x7d02, 0x7c06, 0x7f0a, 0x7e0e, 0x782b,\r
++      0x0001, 0x7000, 0x8000, 0x7002, 0xa83c, 0x9300, 0xa83e, 0xa840,\r
++      0x9201, 0xa842, 0x700c, 0x9300, 0x700e, 0x7010, 0x9201, 0x7012,\r
++      0x080c, 0x2048, 0x0428, 0x2031, 0x0080, 0x9584, 0x007f, 0x0108,\r
++      0x9632, 0x7124, 0x7000, 0x9086, 0x0000, 0x1198, 0xc185, 0x7126,\r
++      0x2009, 0x0306, 0x2104, 0xd0b4, 0x1904, 0x1e0e, 0x200b, 0x4040,\r
++      0x2009, 0x1a7f, 0x2104, 0x8000, 0x0a04, 0x1e0e, 0x200a, 0x0804,\r
++      0x1e0e, 0xc18d, 0x7126, 0xd184, 0x1d58, 0x0804, 0x1e0e, 0x9006,\r
++      0x002e, 0x003e, 0x004e, 0x005e, 0x006e, 0x007e, 0x0005, 0x080c,\r
++      0x0dd5, 0x0026, 0x2001, 0x0105, 0x2003, 0x0010, 0x782b, 0x0004,\r
++      0x7003, 0x0000, 0x7004, 0x0016, 0x080c, 0x1cbe, 0x001e, 0x2060,\r
++      0x6014, 0x2048, 0x080c, 0xcb35, 0x0118, 0xa880, 0xc0bd, 0xa882,\r
++      0x6020, 0x9086, 0x0006, 0x1180, 0x2061, 0x0100, 0x62c8, 0x2001,\r
++      0x00fa, 0x8001, 0x1df0, 0x60c8, 0x9206, 0x1dc0, 0x60c4, 0xa89a,\r
++      0x60c8, 0xa896, 0x7004, 0x2060, 0x00c6, 0x080c, 0xc768, 0x00ce,\r
++      0x2001, 0x19f6, 0x2004, 0x9c06, 0x1160, 0x2009, 0x0040, 0x080c,\r
++      0x23d2, 0x080c, 0xa7cc, 0x2011, 0x0000, 0x080c, 0xa65d, 0x080c,\r
++      0x97b9, 0x002e, 0x0804, 0x1ff8, 0x0126, 0x2091, 0x2400, 0xa858,\r
++      0x2040, 0x792c, 0x782b, 0x0002, 0x9184, 0x0700, 0x1904, 0x1e71,\r
++      0x7000, 0x0002, 0x1ff8, 0x1ec6, 0x1f46, 0x1ff6, 0x8001, 0x7002,\r
++      0x7027, 0x0000, 0xd19c, 0x1158, 0x8aff, 0x0904, 0x1f13, 0x080c,\r
++      0x1cc5, 0x0904, 0x1ff8, 0x080c, 0x1cc5, 0x0804, 0x1ff8, 0x782b,\r
++      0x0004, 0xd194, 0x0148, 0xa880, 0xc0fc, 0xa882, 0x8aff, 0x1518,\r
++      0xa87c, 0xc0f5, 0xa87e, 0x00f8, 0x0026, 0x0036, 0xab3c, 0xaa40,\r
++      0x0016, 0x7910, 0xa82c, 0x9100, 0xa82e, 0x7914, 0xa830, 0x9101,\r
++      0xa832, 0x001e, 0x7810, 0x931a, 0x7814, 0x9213, 0x7800, 0xa81e,\r
++      0x7804, 0xa822, 0xab3e, 0xaa42, 0x003e, 0x002e, 0x080c, 0x2063,\r
++      0xa880, 0xc0fd, 0xa882, 0x2a00, 0xa816, 0x2800, 0xa85a, 0x2c00,\r
++      0xa812, 0x7003, 0x0000, 0x2009, 0x0306, 0x200b, 0x4800, 0x7027,\r
++      0x0000, 0x0804, 0x1ff8, 0x00f6, 0x0026, 0x781c, 0x0006, 0x7818,\r
++      0x0006, 0x2079, 0x0100, 0x7a14, 0x9284, 0x1984, 0x9085, 0x0012,\r
++      0x7816, 0x0036, 0x2019, 0x1000, 0x8319, 0x090c, 0x0dd5, 0x7820,\r
++      0xd0bc, 0x1dd0, 0x003e, 0x79c8, 0x000e, 0x9102, 0x001e, 0x0006,\r
++      0x0016, 0x79c4, 0x000e, 0x9103, 0x78c6, 0x000e, 0x78ca, 0x9284,\r
++      0x1984, 0x9085, 0x0012, 0x7816, 0x002e, 0x00fe, 0x782b, 0x0008,\r
++      0x7003, 0x0000, 0x080c, 0x1cbe, 0x0804, 0x1ff8, 0x8001, 0x7002,\r
++      0x7024, 0x8004, 0x7026, 0xd194, 0x0170, 0x782c, 0xd0fc, 0x1904,\r
++      0x1eb9, 0xd19c, 0x1904, 0x1ff4, 0x8aff, 0x0904, 0x1ff8, 0x080c,\r
++      0x1cc5, 0x0804, 0x1ff8, 0x0026, 0x0036, 0xab3c, 0xaa40, 0x080c,\r
++      0x2063, 0xdd9c, 0x1904, 0x1fb3, 0x2c05, 0x908a, 0x0036, 0x1a0c,\r
++      0x0dd5, 0x9082, 0x001b, 0x0002, 0x1f87, 0x1f87, 0x1f89, 0x1f87,\r
++      0x1f87, 0x1f87, 0x1f8f, 0x1f87, 0x1f87, 0x1f87, 0x1f95, 0x1f87,\r
++      0x1f87, 0x1f87, 0x1f9b, 0x1f87, 0x1f87, 0x1f87, 0x1fa1, 0x1f87,\r
++      0x1f87, 0x1f87, 0x1fa7, 0x1f87, 0x1f87, 0x1f87, 0x1fad, 0x080c,\r
++      0x0dd5, 0xa07c, 0x931a, 0xa080, 0x9213, 0x0804, 0x1ee8, 0xa08c,\r
++      0x931a, 0xa090, 0x9213, 0x0804, 0x1ee8, 0xa09c, 0x931a, 0xa0a0,\r
++      0x9213, 0x0804, 0x1ee8, 0xa0ac, 0x931a, 0xa0b0, 0x9213, 0x0804,\r
++      0x1ee8, 0xa0bc, 0x931a, 0xa0c0, 0x9213, 0x0804, 0x1ee8, 0xa0cc,\r
++      0x931a, 0xa0d0, 0x9213, 0x0804, 0x1ee8, 0xa0dc, 0x931a, 0xa0e0,\r
++      0x9213, 0x0804, 0x1ee8, 0x2c05, 0x908a, 0x0034, 0x1a0c, 0x0dd5,\r
++      0x9082, 0x001b, 0x0002, 0x1fd6, 0x1fd4, 0x1fd4, 0x1fd4, 0x1fd4,\r
++      0x1fd4, 0x1fdc, 0x1fd4, 0x1fd4, 0x1fd4, 0x1fd4, 0x1fd4, 0x1fe2,\r
++      0x1fd4, 0x1fd4, 0x1fd4, 0x1fd4, 0x1fd4, 0x1fe8, 0x1fd4, 0x1fd4,\r
++      0x1fd4, 0x1fd4, 0x1fd4, 0x1fee, 0x080c, 0x0dd5, 0xa07c, 0x931a,\r
++      0xa080, 0x9213, 0x0804, 0x1ee8, 0xa094, 0x931a, 0xa098, 0x9213,\r
++      0x0804, 0x1ee8, 0xa0ac, 0x931a, 0xa0b0, 0x9213, 0x0804, 0x1ee8,\r
++      0xa0c4, 0x931a, 0xa0c8, 0x9213, 0x0804, 0x1ee8, 0xa0dc, 0x931a,\r
++      0xa0e0, 0x9213, 0x0804, 0x1ee8, 0x0804, 0x1ee4, 0x080c, 0x0dd5,\r
++      0x012e, 0x0005, 0x00f6, 0x00e6, 0x2071, 0x1a66, 0x7000, 0x9086,\r
++      0x0000, 0x0904, 0x2043, 0x2079, 0x0090, 0x2009, 0x0207, 0x210c,\r
++      0xd194, 0x01b8, 0x2009, 0x020c, 0x210c, 0x9184, 0x0003, 0x0188,\r
++      0x080c, 0xea0a, 0x2001, 0x0133, 0x2004, 0x9005, 0x090c, 0x0dd5,\r
++      0x0016, 0x2009, 0x0040, 0x080c, 0x23d2, 0x001e, 0x2001, 0x020c,\r
++      0x2102, 0x2009, 0x0206, 0x2104, 0x2009, 0x0203, 0x210c, 0x9106,\r
++      0x1120, 0x2009, 0x0040, 0x080c, 0x23d2, 0x782c, 0xd0fc, 0x09a8,\r
++      0x080c, 0x1eb4, 0x7000, 0x9086, 0x0000, 0x1978, 0x782b, 0x0004,\r
++      0x782c, 0xd0ac, 0x1de8, 0x2009, 0x0040, 0x080c, 0x23d2, 0x782b,\r
++      0x0002, 0x7003, 0x0000, 0x080c, 0x1cbe, 0x00ee, 0x00fe, 0x0005,\r
++      0xa880, 0xd0fc, 0x11a8, 0x8c60, 0x2c05, 0x9005, 0x0110, 0x8a51,\r
++      0x0005, 0xa004, 0x9005, 0x0168, 0xa85a, 0x2040, 0xa064, 0x9084,\r
++      0x000f, 0x9080, 0x2090, 0x2065, 0x8cff, 0x090c, 0x0dd5, 0x8a51,\r
++      0x0005, 0x2050, 0x0005, 0xa880, 0xd0fc, 0x11b8, 0x8a50, 0x8c61,\r
++      0x2c05, 0x9005, 0x1190, 0x2800, 0x9906, 0x0120, 0xa000, 0x9005,\r
++      0x1108, 0x2900, 0x2040, 0xa85a, 0xa064, 0x9084, 0x000f, 0x9080,\r
++      0x20a0, 0x2065, 0x8cff, 0x090c, 0x0dd5, 0x0005, 0x0000, 0x001d,\r
++      0x0021, 0x0025, 0x0029, 0x002d, 0x0031, 0x0035, 0x0000, 0x001b,\r
++      0x0021, 0x0027, 0x002d, 0x0033, 0x0000, 0x0000, 0x0023, 0x0000,\r
++      0x0000, 0x2083, 0x207f, 0x2083, 0x2083, 0x208d, 0x0000, 0x2083,\r
++      0x208a, 0x208a, 0x2087, 0x208a, 0x208a, 0x0000, 0x208d, 0x208a,\r
++      0x0000, 0x2085, 0x2085, 0x0000, 0x2085, 0x208d, 0x0000, 0x2085,\r
++      0x208b, 0x208b, 0x208b, 0x0000, 0x208b, 0x0000, 0x208d, 0x208b,\r
++      0x00c6, 0x00d6, 0x0086, 0xab42, 0xac3e, 0xa888, 0x9055, 0x0904,\r
++      0x228f, 0x2940, 0xa064, 0x90ec, 0x000f, 0x9084, 0x00ff, 0x9086,\r
++      0x0008, 0x1118, 0x2061, 0x208b, 0x00d0, 0x9de0, 0x2090, 0x9d86,\r
++      0x0007, 0x0130, 0x9d86, 0x000e, 0x0118, 0x9d86, 0x000f, 0x1120,\r
++      0xa08c, 0x9422, 0xa090, 0x931b, 0x2c05, 0x9065, 0x1140, 0x0310,\r
++      0x0804, 0x228f, 0xa004, 0x9045, 0x0904, 0x228f, 0x08d8, 0x2c05,\r
++      0x9005, 0x0904, 0x2177, 0xdd9c, 0x1904, 0x2133, 0x908a, 0x0036,\r
++      0x1a0c, 0x0dd5, 0x9082, 0x001b, 0x0002, 0x2108, 0x2108, 0x210a,\r
++      0x2108, 0x2108, 0x2108, 0x2110, 0x2108, 0x2108, 0x2108, 0x2116,\r
++      0x2108, 0x2108, 0x2108, 0x211c, 0x2108, 0x2108, 0x2108, 0x2122,\r
++      0x2108, 0x2108, 0x2108, 0x2128, 0x2108, 0x2108, 0x2108, 0x212e,\r
++      0x080c, 0x0dd5, 0xa07c, 0x9422, 0xa080, 0x931b, 0x0804, 0x216d,\r
++      0xa08c, 0x9422, 0xa090, 0x931b, 0x0804, 0x216d, 0xa09c, 0x9422,\r
++      0xa0a0, 0x931b, 0x0804, 0x216d, 0xa0ac, 0x9422, 0xa0b0, 0x931b,\r
++      0x0804, 0x216d, 0xa0bc, 0x9422, 0xa0c0, 0x931b, 0x0804, 0x216d,\r
++      0xa0cc, 0x9422, 0xa0d0, 0x931b, 0x0804, 0x216d, 0xa0dc, 0x9422,\r
++      0xa0e0, 0x931b, 0x04d0, 0x908a, 0x0034, 0x1a0c, 0x0dd5, 0x9082,\r
++      0x001b, 0x0002, 0x2155, 0x2153, 0x2153, 0x2153, 0x2153, 0x2153,\r
++      0x215a, 0x2153, 0x2153, 0x2153, 0x2153, 0x2153, 0x215f, 0x2153,\r
++      0x2153, 0x2153, 0x2153, 0x2153, 0x2164, 0x2153, 0x2153, 0x2153,\r
++      0x2153, 0x2153, 0x2169, 0x080c, 0x0dd5, 0xa07c, 0x9422, 0xa080,\r
++      0x931b, 0x0098, 0xa094, 0x9422, 0xa098, 0x931b, 0x0070, 0xa0ac,\r
++      0x9422, 0xa0b0, 0x931b, 0x0048, 0xa0c4, 0x9422, 0xa0c8, 0x931b,\r
++      0x0020, 0xa0dc, 0x9422, 0xa0e0, 0x931b, 0x0630, 0x2300, 0x9405,\r
++      0x0160, 0x8a51, 0x0904, 0x228f, 0x8c60, 0x0804, 0x20df, 0xa004,\r
++      0x9045, 0x0904, 0x228f, 0x0804, 0x20ba, 0x8a51, 0x0904, 0x228f,\r
++      0x8c60, 0x2c05, 0x9005, 0x1158, 0xa004, 0x9045, 0x0904, 0x228f,\r
++      0xa064, 0x90ec, 0x000f, 0x9de0, 0x2090, 0x2c05, 0x2060, 0xa880,\r
++      0xc0fc, 0xa882, 0x0804, 0x2284, 0x2c05, 0x8422, 0x8420, 0x831a,\r
++      0x9399, 0x0000, 0xac2e, 0xab32, 0xdd9c, 0x1904, 0x2221, 0x9082,\r
++      0x001b, 0x0002, 0x21bd, 0x21bd, 0x21bf, 0x21bd, 0x21bd, 0x21bd,\r
++      0x21cd, 0x21bd, 0x21bd, 0x21bd, 0x21db, 0x21bd, 0x21bd, 0x21bd,\r
++      0x21e9, 0x21bd, 0x21bd, 0x21bd, 0x21f7, 0x21bd, 0x21bd, 0x21bd,\r
++      0x2205, 0x21bd, 0x21bd, 0x21bd, 0x2213, 0x080c, 0x0dd5, 0xa17c,\r
++      0x2400, 0x9122, 0xa180, 0x2300, 0x911b, 0x0a0c, 0x0dd5, 0xa074,\r
++      0x9420, 0xa078, 0x9319, 0x0804, 0x227f, 0xa18c, 0x2400, 0x9122,\r
++      0xa190, 0x2300, 0x911b, 0x0a0c, 0x0dd5, 0xa084, 0x9420, 0xa088,\r
++      0x9319, 0x0804, 0x227f, 0xa19c, 0x2400, 0x9122, 0xa1a0, 0x2300,\r
++      0x911b, 0x0a0c, 0x0dd5, 0xa094, 0x9420, 0xa098, 0x9319, 0x0804,\r
++      0x227f, 0xa1ac, 0x2400, 0x9122, 0xa1b0, 0x2300, 0x911b, 0x0a0c,\r
++      0x0dd5, 0xa0a4, 0x9420, 0xa0a8, 0x9319, 0x0804, 0x227f, 0xa1bc,\r
++      0x2400, 0x9122, 0xa1c0, 0x2300, 0x911b, 0x0a0c, 0x0dd5, 0xa0b4,\r
++      0x9420, 0xa0b8, 0x9319, 0x0804, 0x227f, 0xa1cc, 0x2400, 0x9122,\r
++      0xa1d0, 0x2300, 0x911b, 0x0a0c, 0x0dd5, 0xa0c4, 0x9420, 0xa0c8,\r
++      0x9319, 0x0804, 0x227f, 0xa1dc, 0x2400, 0x9122, 0xa1e0, 0x2300,\r
++      0x911b, 0x0a0c, 0x0dd5, 0xa0d4, 0x9420, 0xa0d8, 0x9319, 0x0804,\r
++      0x227f, 0x9082, 0x001b, 0x0002, 0x223f, 0x223d, 0x223d, 0x223d,\r
++      0x223d, 0x223d, 0x224c, 0x223d, 0x223d, 0x223d, 0x223d, 0x223d,\r
++      0x2259, 0x223d, 0x223d, 0x223d, 0x223d, 0x223d, 0x2266, 0x223d,\r
++      0x223d, 0x223d, 0x223d, 0x223d, 0x2273, 0x080c, 0x0dd5, 0xa17c,\r
++      0x2400, 0x9122, 0xa180, 0x2300, 0x911b, 0x0a0c, 0x0dd5, 0xa06c,\r
++      0x9420, 0xa070, 0x9319, 0x0498, 0xa194, 0x2400, 0x9122, 0xa198,\r
++      0x2300, 0x911b, 0x0a0c, 0x0dd5, 0xa084, 0x9420, 0xa088, 0x9319,\r
++      0x0430, 0xa1ac, 0x2400, 0x9122, 0xa1b0, 0x2300, 0x911b, 0x0a0c,\r
++      0x0dd5, 0xa09c, 0x9420, 0xa0a0, 0x9319, 0x00c8, 0xa1c4, 0x2400,\r
++      0x9122, 0xa1c8, 0x2300, 0x911b, 0x0a0c, 0x0dd5, 0xa0b4, 0x9420,\r
++      0xa0b8, 0x9319, 0x0060, 0xa1dc, 0x2400, 0x9122, 0xa1e0, 0x2300,\r
++      0x911b, 0x0a0c, 0x0dd5, 0xa0cc, 0x9420, 0xa0d0, 0x9319, 0xac1e,\r
++      0xab22, 0xa880, 0xc0fd, 0xa882, 0x2800, 0xa85a, 0x2c00, 0xa812,\r
++      0x2a00, 0xa816, 0x000e, 0x000e, 0x000e, 0x9006, 0x0028, 0x008e,\r
++      0x00de, 0x00ce, 0x9085, 0x0001, 0x0005, 0x2001, 0x0005, 0x2004,\r
++      0xd0bc, 0x190c, 0x0dce, 0x9084, 0x0007, 0x0002, 0x22b0, 0x1eb4,\r
++      0x22b0, 0x22a6, 0x22a9, 0x22ac, 0x22a9, 0x22ac, 0x080c, 0x1eb4,\r
++      0x0005, 0x080c, 0x11a3, 0x0005, 0x080c, 0x1eb4, 0x080c, 0x11a3,\r
++      0x0005, 0x0126, 0x2091, 0x2600, 0x2079, 0x0200, 0x2071, 0x0260,\r
++      0x2069, 0x1800, 0x7817, 0x0000, 0x789b, 0x0814, 0x78a3, 0x0406,\r
++      0x789f, 0x0410, 0x2009, 0x013b, 0x200b, 0x0400, 0x781b, 0x0002,\r
++      0x783b, 0x001f, 0x7837, 0x0020, 0x7803, 0x1600, 0x012e, 0x0005,\r
++      0x2091, 0x2600, 0x781c, 0xd0a4, 0x190c, 0x23cf, 0x7900, 0xd1dc,\r
++      0x1118, 0x9084, 0x0006, 0x001a, 0x9084, 0x000e, 0x0002, 0x22f7,\r
++      0x22ef, 0x7d9d, 0x22ef, 0x22f1, 0x22f1, 0x22f1, 0x22f1, 0x7d83,\r
++      0x22ef, 0x22f3, 0x22ef, 0x22f1, 0x22ef, 0x22f1, 0x22ef, 0x080c,\r
++      0x0dd5, 0x0031, 0x0020, 0x080c, 0x7d83, 0x080c, 0x7d9d, 0x0005,\r
++      0x0006, 0x0016, 0x0026, 0x080c, 0xea0a, 0x7930, 0x9184, 0x0003,\r
++      0x01c0, 0x2001, 0x19f6, 0x2004, 0x9005, 0x0170, 0x2001, 0x0133,\r
++      0x2004, 0x9005, 0x090c, 0x0dd5, 0x00c6, 0x2001, 0x19f6, 0x2064,\r
++      0x080c, 0xc768, 0x00ce, 0x00f8, 0x2009, 0x0040, 0x080c, 0x23d2,\r
++      0x00d0, 0x9184, 0x0014, 0x01a0, 0x6a00, 0x9286, 0x0003, 0x0160,\r
++      0x080c, 0x73bc, 0x1138, 0x080c, 0x76a4, 0x080c, 0x601a, 0x080c,\r
++      0x72ee, 0x0010, 0x080c, 0x5ed9, 0x080c, 0x7e4c, 0x0041, 0x0018,\r
++      0x9184, 0x9540, 0x1dc8, 0x002e, 0x001e, 0x000e, 0x0005, 0x00e6,\r
++      0x0036, 0x0046, 0x0056, 0x2071, 0x1a62, 0x080c, 0x1aa9, 0x005e,\r
++      0x004e, 0x003e, 0x00ee, 0x0005, 0x0126, 0x2091, 0x2e00, 0x2071,\r
++      0x1800, 0x7128, 0x2001, 0x196f, 0x2102, 0x2001, 0x1977, 0x2102,\r
++      0x2001, 0x013b, 0x2102, 0x2079, 0x0200, 0x2001, 0x0201, 0x789e,\r
++      0x78a3, 0x0200, 0x9198, 0x0007, 0x831c, 0x831c, 0x831c, 0x9398,\r
++      0x0005, 0x2320, 0x9182, 0x0204, 0x1230, 0x2011, 0x0008, 0x8423,\r
++      0x8423, 0x8423, 0x0488, 0x9182, 0x024c, 0x1240, 0x2011, 0x0007,\r
++      0x8403, 0x8003, 0x9400, 0x9400, 0x9420, 0x0430, 0x9182, 0x02bc,\r
++      0x1238, 0x2011, 0x0006, 0x8403, 0x8003, 0x9400, 0x9420, 0x00e0,\r
++      0x9182, 0x034c, 0x1230, 0x2011, 0x0005, 0x8403, 0x8003, 0x9420,\r
++      0x0098, 0x9182, 0x042c, 0x1228, 0x2011, 0x0004, 0x8423, 0x8423,\r
++      0x0058, 0x9182, 0x059c, 0x1228, 0x2011, 0x0003, 0x8403, 0x9420,\r
++      0x0018, 0x2011, 0x0002, 0x8423, 0x9482, 0x0228, 0x8002, 0x8020,\r
++      0x8301, 0x9402, 0x0110, 0x0208, 0x8321, 0x8217, 0x8203, 0x9405,\r
++      0x789a, 0x012e, 0x0005, 0x0006, 0x00d6, 0x2069, 0x0200, 0x6814,\r
++      0x9084, 0xffc0, 0x910d, 0x6916, 0x00de, 0x000e, 0x0005, 0x00d6,\r
++      0x2069, 0x0200, 0x9005, 0x6810, 0x0110, 0xc0a5, 0x0008, 0xc0a4,\r
++      0x6812, 0x00de, 0x0005, 0x0006, 0x00d6, 0x2069, 0x0200, 0x6810,\r
++      0x9084, 0xfff8, 0x910d, 0x6912, 0x00de, 0x000e, 0x0005, 0x7938,\r
++      0x080c, 0x0dce, 0x00f6, 0x2079, 0x0200, 0x7902, 0xa001, 0xa001,\r
++      0xa001, 0xa001, 0xa001, 0xa001, 0x7902, 0xa001, 0xa001, 0xa001,\r
++      0xa001, 0xa001, 0xa001, 0x00fe, 0x0005, 0x0126, 0x2091, 0x2800,\r
++      0x2061, 0x0100, 0x2071, 0x1800, 0x2009, 0x0000, 0x080c, 0x2c3e,\r
++      0x080c, 0x2b59, 0x6054, 0x8004, 0x8004, 0x8004, 0x8004, 0x9084,\r
++      0x000c, 0x6150, 0x918c, 0xfff3, 0x9105, 0x6052, 0x6050, 0x9084,\r
++      0xb17f, 0x9085, 0x2000, 0x6052, 0x2009, 0x199d, 0x2011, 0x199e,\r
++      0x6358, 0x939c, 0x38f0, 0x2320, 0x080c, 0x2b9d, 0x1238, 0x939d,\r
++      0x4003, 0x94a5, 0x8603, 0x230a, 0x2412, 0x0030, 0x939d, 0x0203,\r
++      0x94a5, 0x8603, 0x230a, 0x2412, 0x9006, 0x080c, 0x2b88, 0x9006,\r
++      0x080c, 0x2b6b, 0x20a9, 0x0012, 0x1d04, 0x2424, 0x2091, 0x6000,\r
++      0x1f04, 0x2424, 0x602f, 0x0100, 0x602f, 0x0000, 0x6050, 0x9085,\r
++      0x0400, 0x9084, 0xdfff, 0x6052, 0x6024, 0x6026, 0x080c, 0x2877,\r
++      0x2009, 0x00ef, 0x6132, 0x6136, 0x080c, 0x2887, 0x60e7, 0x0000,\r
++      0x61ea, 0x60e3, 0x0008, 0x604b, 0xf7f7, 0x6043, 0x0000, 0x602f,\r
++      0x0080, 0x602f, 0x0000, 0x6007, 0x349f, 0x60bb, 0x0000, 0x20a9,\r
++      0x0018, 0x60bf, 0x0000, 0x1f04, 0x2451, 0x60bb, 0x0000, 0x60bf,\r
++      0x0108, 0x60bf, 0x0012, 0x60bf, 0x0405, 0x60bf, 0x0014, 0x60bf,\r
++      0x0320, 0x60bf, 0x0018, 0x601b, 0x00f0, 0x601f, 0x001e, 0x600f,\r
++      0x006b, 0x602b, 0x402f, 0x012e, 0x0005, 0x00f6, 0x2079, 0x0140,\r
++      0x78c3, 0x0080, 0x78c3, 0x0083, 0x78c3, 0x0000, 0x00fe, 0x0005,\r
++      0x2001, 0x1835, 0x2003, 0x0000, 0x2001, 0x1834, 0x2003, 0x0001,\r
++      0x0005, 0x0126, 0x2091, 0x2800, 0x0006, 0x0016, 0x0026, 0x6124,\r
++      0x0066, 0x2031, 0x1837, 0x2634, 0x96b4, 0x0028, 0x006e, 0x1138,\r
++      0x6020, 0xd1bc, 0x0120, 0xd0bc, 0x1168, 0xd0b4, 0x1198, 0x9184,\r
++      0x5e2c, 0x1118, 0x9184, 0x0007, 0x00aa, 0x9195, 0x0004, 0x9284,\r
++      0x0007, 0x0082, 0x0016, 0x2001, 0x188b, 0x200c, 0xd184, 0x001e,\r
++      0x0d70, 0x0c98, 0x0016, 0x2001, 0x188b, 0x200c, 0xd194, 0x001e,\r
++      0x0d30, 0x0c58, 0x24d4, 0x24ba, 0x24bd, 0x24c0, 0x24c5, 0x24c7,\r
++      0x24cb, 0x24cf, 0x080c, 0x8fd5, 0x00b8, 0x080c, 0x90a2, 0x00a0,\r
++      0x080c, 0x90a2, 0x080c, 0x8fd5, 0x0078, 0x0099, 0x0068, 0x080c,\r
++      0x8fd5, 0x0079, 0x0048, 0x080c, 0x90a2, 0x0059, 0x0028, 0x080c,\r
++      0x90a2, 0x080c, 0x8fd5, 0x0029, 0x002e, 0x001e, 0x000e, 0x012e,\r
++      0x0005, 0x00a6, 0x6124, 0x6028, 0xd09c, 0x0118, 0xd19c, 0x1904,\r
++      0x273c, 0xd1f4, 0x190c, 0x0dce, 0x080c, 0x73bc, 0x0904, 0x252f,\r
++      0x080c, 0xd230, 0x1120, 0x7000, 0x9086, 0x0003, 0x0570, 0x6024,\r
++      0x9084, 0x1800, 0x0550, 0x080c, 0x73df, 0x0118, 0x080c, 0x73cd,\r
++      0x1520, 0x6027, 0x0020, 0x6043, 0x0000, 0x080c, 0xd230, 0x0168,\r
++      0x080c, 0x73df, 0x1150, 0x2001, 0x19a7, 0x2003, 0x0001, 0x6027,\r
++      0x1800, 0x080c, 0x7252, 0x0804, 0x273f, 0x70a4, 0x9005, 0x1150,\r
++      0x70a7, 0x0001, 0x00d6, 0x2069, 0x0140, 0x080c, 0x7413, 0x00de,\r
++      0x1904, 0x273f, 0x080c, 0x76ae, 0x0428, 0x080c, 0x73df, 0x1590,\r
++      0x6024, 0x9084, 0x1800, 0x1108, 0x0468, 0x080c, 0x76ae, 0x080c,\r
++      0x76a4, 0x080c, 0x601a, 0x080c, 0x72ee, 0x0804, 0x273c, 0xd1ac,\r
++      0x1508, 0x6024, 0xd0dc, 0x1170, 0xd0e4, 0x1178, 0xd0d4, 0x1190,\r
++      0xd0cc, 0x0130, 0x7098, 0x9086, 0x0028, 0x1110, 0x080c, 0x7591,\r
++      0x0804, 0x273c, 0x080c, 0x76a9, 0x0048, 0x2001, 0x197d, 0x2003,\r
++      0x0002, 0x0020, 0x080c, 0x74f6, 0x0804, 0x273c, 0x080c, 0x762c,\r
++      0x0804, 0x273c, 0x6220, 0xd1bc, 0x0138, 0xd2bc, 0x1904, 0x27af,\r
++      0xd2b4, 0x1904, 0x27c2, 0x0000, 0xd1ac, 0x0904, 0x2651, 0x0036,\r
++      0x6328, 0xc3bc, 0x632a, 0x003e, 0x080c, 0x73bc, 0x11c0, 0x6027,\r
++      0x0020, 0x0006, 0x0026, 0x0036, 0x080c, 0x73d6, 0x1158, 0x080c,\r
++      0x76a4, 0x080c, 0x601a, 0x080c, 0x72ee, 0x003e, 0x002e, 0x000e,\r
++      0x00ae, 0x0005, 0x003e, 0x002e, 0x000e, 0x080c, 0x7394, 0x0016,\r
++      0x0046, 0x00c6, 0x644c, 0x9486, 0xf0f0, 0x1138, 0x2061, 0x0100,\r
++      0x644a, 0x6043, 0x0090, 0x6043, 0x0010, 0x74da, 0x948c, 0xff00,\r
++      0x7038, 0xd084, 0x0178, 0x9186, 0xf800, 0x1160, 0x7048, 0xd084,\r
++      0x1148, 0xc085, 0x704a, 0x0036, 0x2418, 0x2011, 0x8016, 0x080c,\r
++      0x4b04, 0x003e, 0x080c, 0xd229, 0x1904, 0x262e, 0x9196, 0xff00,\r
++      0x05a8, 0x7060, 0x9084, 0x00ff, 0x810f, 0x81ff, 0x0110, 0x9116,\r
++      0x0568, 0x7130, 0xd184, 0x1550, 0x080c, 0x3319, 0x0128, 0xc18d,\r
++      0x7132, 0x080c, 0x696a, 0x1510, 0x6240, 0x9294, 0x0010, 0x0130,\r
++      0x6248, 0x9294, 0xff00, 0x9296, 0xff00, 0x01c0, 0x7030, 0xd08c,\r
++      0x0904, 0x262e, 0x7038, 0xd08c, 0x1140, 0x2001, 0x180c, 0x200c,\r
++      0xd1ac, 0x1904, 0x262e, 0xc1ad, 0x2102, 0x0036, 0x73d8, 0x2011,\r
++      0x8013, 0x080c, 0x4b04, 0x003e, 0x0804, 0x262e, 0x7038, 0xd08c,\r
++      0x1140, 0x2001, 0x180c, 0x200c, 0xd1ac, 0x1904, 0x262e, 0xc1ad,\r
++      0x2102, 0x0036, 0x73d8, 0x2011, 0x8013, 0x080c, 0x4b04, 0x003e,\r
++      0x7130, 0xc185, 0x7132, 0x2011, 0x1848, 0x220c, 0xd1a4, 0x01f0,\r
++      0x0016, 0x2009, 0x0001, 0x2011, 0x0100, 0x080c, 0x86dd, 0x2019,\r
++      0x000e, 0x00c6, 0x2061, 0x0000, 0x080c, 0xe522, 0x00ce, 0x9484,\r
++      0x00ff, 0x9080, 0x3325, 0x200d, 0x918c, 0xff00, 0x810f, 0x2120,\r
++      0x9006, 0x2009, 0x000e, 0x080c, 0xe5ae, 0x001e, 0x0016, 0x2009,\r
++      0x0002, 0x2019, 0x0004, 0x080c, 0x318a, 0x001e, 0x0078, 0x0156,\r
++      0x00b6, 0x20a9, 0x007f, 0x900e, 0x080c, 0x65ff, 0x1110, 0x080c,\r
++      0x6034, 0x8108, 0x1f04, 0x2624, 0x00be, 0x015e, 0x00ce, 0x004e,\r
++      0x080c, 0xadd2, 0x60e3, 0x0000, 0x001e, 0x2001, 0x1800, 0x2014,\r
++      0x9296, 0x0004, 0x1170, 0xd19c, 0x11a0, 0x2011, 0x180c, 0x2214,\r
++      0xd29c, 0x1120, 0x6204, 0x9295, 0x0002, 0x6206, 0x6228, 0xc29d,\r
++      0x622a, 0x2003, 0x0001, 0x2001, 0x1826, 0x2003, 0x0000, 0x6027,\r
++      0x0020, 0xd194, 0x0904, 0x273c, 0x0016, 0x6220, 0xd2b4, 0x0904,\r
++      0x26d9, 0x080c, 0x8579, 0x080c, 0xa273, 0x6027, 0x0004, 0x00f6,\r
++      0x2019, 0x19f0, 0x2304, 0x907d, 0x0904, 0x26a8, 0x7804, 0x9086,\r
++      0x0032, 0x15f0, 0x00d6, 0x00c6, 0x00e6, 0x0096, 0x2069, 0x0140,\r
++      0x782c, 0x685e, 0x7808, 0x685a, 0x6043, 0x0002, 0x2001, 0x0003,\r
++      0x8001, 0x1df0, 0x6043, 0x0000, 0x2001, 0x003c, 0x8001, 0x1df0,\r
++      0x080c, 0x2cff, 0x2001, 0x001e, 0x8001, 0x0240, 0x20a9, 0x0009,\r
++      0x080c, 0x2c19, 0x6904, 0xd1dc, 0x1140, 0x0cb0, 0x2001, 0x0100,\r
++      0x080c, 0x2cef, 0x9006, 0x080c, 0x2cef, 0x080c, 0x9588, 0x080c,\r
++      0x968d, 0x7814, 0x2048, 0xa867, 0x0103, 0x2f60, 0x080c, 0xae61,\r
++      0x009e, 0x00ee, 0x00ce, 0x00de, 0x00fe, 0x001e, 0x00ae, 0x0005,\r
++      0x00fe, 0x00d6, 0x2069, 0x0140, 0x6804, 0x9084, 0x4000, 0x0110,\r
++      0x080c, 0x2cff, 0x00de, 0x00c6, 0x2061, 0x19e7, 0x6028, 0x080c,\r
++      0xd230, 0x0120, 0x909a, 0x0003, 0x1258, 0x0018, 0x909a, 0x00c8,\r
++      0x1238, 0x8000, 0x602a, 0x00ce, 0x080c, 0xa24f, 0x0804, 0x273b,\r
++      0x2061, 0x0100, 0x62c0, 0x080c, 0xac5d, 0x2019, 0x19f0, 0x2304,\r
++      0x9065, 0x0120, 0x2009, 0x0027, 0x080c, 0xaedc, 0x00ce, 0x0804,\r
++      0x273b, 0xd2bc, 0x0904, 0x2722, 0x080c, 0x8586, 0x6014, 0x9084,\r
++      0x1984, 0x9085, 0x0010, 0x6016, 0x6027, 0x0004, 0x00d6, 0x2069,\r
++      0x0140, 0x6804, 0x9084, 0x4000, 0x0110, 0x080c, 0x2cff, 0x00de,\r
++      0x00c6, 0x2061, 0x19e7, 0x6044, 0x080c, 0xd230, 0x0120, 0x909a,\r
++      0x0003, 0x1658, 0x0018, 0x909a, 0x00c8, 0x1638, 0x8000, 0x6046,\r
++      0x603c, 0x00ce, 0x9005, 0x05b8, 0x2009, 0x07d0, 0x080c, 0x857e,\r
++      0x9080, 0x0008, 0x2004, 0x9086, 0x0006, 0x1138, 0x6114, 0x918c,\r
++      0x1984, 0x918d, 0x0012, 0x6116, 0x0430, 0x9080, 0x0008, 0x2004,\r
++      0x9086, 0x0009, 0x0d98, 0x6114, 0x918c, 0x1984, 0x918d, 0x0016,\r
++      0x6116, 0x00c8, 0x6027, 0x0004, 0x00b0, 0x0036, 0x2019, 0x0001,\r
++      0x080c, 0xa5b6, 0x003e, 0x2019, 0x19f6, 0x2304, 0x9065, 0x0150,\r
++      0x2009, 0x004f, 0x6020, 0x9086, 0x0009, 0x1110, 0x2009, 0x004f,\r
++      0x080c, 0xaedc, 0x00ce, 0x001e, 0xd19c, 0x0904, 0x27aa, 0x7038,\r
++      0xd0ac, 0x1904, 0x2783, 0x0016, 0x0156, 0x6027, 0x0008, 0x6050,\r
++      0x9085, 0x0040, 0x6052, 0x6050, 0x9084, 0xfbcf, 0x6052, 0x080c,\r
++      0x2c38, 0x9085, 0x2000, 0x6052, 0x20a9, 0x0012, 0x1d04, 0x2756,\r
++      0x080c, 0x85ad, 0x1f04, 0x2756, 0x6050, 0x9085, 0x0400, 0x9084,\r
++      0xdfbf, 0x6052, 0x20a9, 0x0028, 0xa001, 0x1f04, 0x2764, 0x6150,\r
++      0x9185, 0x1400, 0x6052, 0x20a9, 0x0366, 0x1d04, 0x276d, 0x080c,\r
++      0x85ad, 0x6020, 0xd09c, 0x1130, 0x015e, 0x6152, 0x001e, 0x6027,\r
++      0x0008, 0x0480, 0x080c, 0x2c00, 0x1f04, 0x276d, 0x015e, 0x6152,\r
++      0x001e, 0x6027, 0x0008, 0x0016, 0x6028, 0xc09c, 0x602a, 0x080c,\r
++      0xadd2, 0x60e3, 0x0000, 0x080c, 0xe9e9, 0x080c, 0xea04, 0x080c,\r
++      0x56d3, 0xd0fc, 0x1138, 0x080c, 0xd229, 0x1120, 0x9085, 0x0001,\r
++      0x080c, 0x7403, 0x9006, 0x080c, 0x2cef, 0x2009, 0x0002, 0x080c,\r
++      0x2c3e, 0x2001, 0x1800, 0x2003, 0x0004, 0x6027, 0x0008, 0x080c,\r
++      0x0bae, 0x001e, 0x918c, 0xffd0, 0x6126, 0x00ae, 0x0005, 0x0016,\r
++      0x2001, 0x188b, 0x200c, 0xd184, 0x001e, 0x0904, 0x255c, 0x0016,\r
++      0x2009, 0x27bb, 0x00d0, 0x2001, 0x188b, 0x200c, 0xc184, 0x2102,\r
++      0x001e, 0x0c40, 0x0016, 0x2001, 0x188b, 0x200c, 0xd194, 0x001e,\r
++      0x0904, 0x255c, 0x0016, 0x2009, 0x27ce, 0x0038, 0x2001, 0x188b,\r
++      0x200c, 0xc194, 0x2102, 0x001e, 0x08a8, 0x6028, 0xc0bc, 0x602a,\r
++      0x2001, 0x0156, 0x2003, 0xbc91, 0x8000, 0x2003, 0xffff, 0x6043,\r
++      0x0001, 0x080c, 0x2c38, 0x6027, 0x0080, 0x6017, 0x0000, 0x6043,\r
++      0x0000, 0x0817, 0x0006, 0x0016, 0x0026, 0x0036, 0x00e6, 0x00f6,\r
++      0x0126, 0x2091, 0x8000, 0x2071, 0x1800, 0x71d0, 0x70d2, 0x9116,\r
++      0x05e8, 0x81ff, 0x01a0, 0x2009, 0x0000, 0x080c, 0x2c3e, 0x2011,\r
++      0x8011, 0x2019, 0x010e, 0x231c, 0x939e, 0x0007, 0x1118, 0x2019,\r
++      0x0001, 0x0010, 0x2019, 0x0000, 0x080c, 0x4b04, 0x0438, 0x2001,\r
++      0x19a8, 0x200c, 0x81ff, 0x1140, 0x2001, 0x0109, 0x2004, 0xd0b4,\r
++      0x0118, 0x2019, 0x0003, 0x0008, 0x2118, 0x2011, 0x8012, 0x080c,\r
++      0x4b04, 0x080c, 0x56d3, 0xd0fc, 0x1188, 0x080c, 0xd229, 0x1170,\r
++      0x00c6, 0x080c, 0x28d2, 0x080c, 0xa51d, 0x2061, 0x0100, 0x2019,\r
++      0x0028, 0x2009, 0x0002, 0x080c, 0x318a, 0x00ce, 0x012e, 0x00fe,\r
++      0x00ee, 0x003e, 0x002e, 0x001e, 0x000e, 0x0005, 0x2028, 0x918c,\r
++      0x00ff, 0x2130, 0x9094, 0xff00, 0x11f0, 0x2011, 0x1837, 0x2214,\r
++      0xd2ac, 0x11c8, 0x81ff, 0x01e8, 0x2011, 0x181f, 0x2204, 0x9106,\r
++      0x1190, 0x2011, 0x1820, 0x2214, 0x9294, 0xff00, 0x9584, 0xff00,\r
++      0x9206, 0x1148, 0x2011, 0x1820, 0x2214, 0x9294, 0x00ff, 0x9584,\r
++      0x00ff, 0x9206, 0x1120, 0x2500, 0x080c, 0x80be, 0x0048, 0x9584,\r
++      0x00ff, 0x9080, 0x3325, 0x200d, 0x918c, 0xff00, 0x810f, 0x9006,\r
++      0x0005, 0x9080, 0x3325, 0x200d, 0x918c, 0x00ff, 0x0005, 0x00d6,\r
++      0x2069, 0x0140, 0x2001, 0x1818, 0x2003, 0x00ef, 0x20a9, 0x0010,\r
++      0x9006, 0x6852, 0x6856, 0x1f04, 0x2882, 0x00de, 0x0005, 0x0006,\r
++      0x00d6, 0x0026, 0x2069, 0x0140, 0x2001, 0x1818, 0x2102, 0x8114,\r
++      0x8214, 0x8214, 0x8214, 0x20a9, 0x0010, 0x6853, 0x0000, 0x9006,\r
++      0x82ff, 0x1128, 0x9184, 0x000f, 0x9080, 0xf1b6, 0x2005, 0x6856,\r
++      0x8211, 0x1f04, 0x2897, 0x002e, 0x00de, 0x000e, 0x0005, 0x00c6,\r
++      0x2061, 0x1800, 0x6030, 0x0110, 0xc09d, 0x0008, 0xc09c, 0x6032,\r
++      0x00ce, 0x0005, 0x0156, 0x00d6, 0x0026, 0x0016, 0x0006, 0x2069,\r
++      0x0140, 0x6980, 0x9116, 0x0180, 0x9112, 0x1230, 0x8212, 0x8210,\r
++      0x22a8, 0x2001, 0x0402, 0x0018, 0x22a8, 0x2001, 0x0404, 0x680e,\r
++      0x1f04, 0x28c7, 0x680f, 0x0000, 0x000e, 0x001e, 0x002e, 0x00de,\r
++      0x015e, 0x0005, 0x080c, 0x56cf, 0xd0c4, 0x0150, 0xd0a4, 0x0140,\r
++      0x9006, 0x0046, 0x2020, 0x2009, 0x002e, 0x080c, 0xe5ae, 0x004e,\r
++      0x0005, 0x00f6, 0x0016, 0x0026, 0x2079, 0x0140, 0x78c4, 0xd0dc,\r
++      0x0904, 0x293e, 0x080c, 0x2b9d, 0x0660, 0x9084, 0x0700, 0x908e,\r
++      0x0600, 0x1120, 0x2011, 0x4000, 0x900e, 0x0458, 0x908e, 0x0500,\r
++      0x1120, 0x2011, 0x8000, 0x900e, 0x0420, 0x908e, 0x0400, 0x1120,\r
++      0x9016, 0x2009, 0x0001, 0x00e8, 0x908e, 0x0300, 0x1120, 0x9016,\r
++      0x2009, 0x0002, 0x00b0, 0x908e, 0x0200, 0x1120, 0x9016, 0x2009,\r
++      0x0004, 0x0078, 0x908e, 0x0100, 0x1548, 0x9016, 0x2009, 0x0008,\r
++      0x0040, 0x9084, 0x0700, 0x908e, 0x0300, 0x1500, 0x2011, 0x0030,\r
++      0x0058, 0x2300, 0x9080, 0x0020, 0x2018, 0x080c, 0x8f68, 0x928c,\r
++      0xff00, 0x0110, 0x2011, 0x00ff, 0x2200, 0x8007, 0x9085, 0x004c,\r
++      0x78c2, 0x2009, 0x0138, 0x220a, 0x080c, 0x73bc, 0x1118, 0x2009,\r
++      0x196d, 0x220a, 0x002e, 0x001e, 0x00fe, 0x0005, 0x78c3, 0x0000,\r
++      0x0cc8, 0x0126, 0x2091, 0x2800, 0x0006, 0x0016, 0x0026, 0x2001,\r
++      0x0170, 0x200c, 0x8000, 0x2014, 0x9184, 0x0003, 0x0110, 0x080c,\r
++      0x0dce, 0x002e, 0x001e, 0x000e, 0x012e, 0x0005, 0x2001, 0x0171,\r
++      0x2004, 0xd0dc, 0x0168, 0x2001, 0x0170, 0x200c, 0x918c, 0x00ff,\r
++      0x918e, 0x004c, 0x1128, 0x200c, 0x918c, 0xff00, 0x810f, 0x0005,\r
++      0x900e, 0x2001, 0x0227, 0x2004, 0x8007, 0x9084, 0x00ff, 0x8004,\r
++      0x9108, 0x2001, 0x0226, 0x2004, 0x8007, 0x9084, 0x00ff, 0x8004,\r
++      0x9108, 0x0005, 0x0018, 0x000c, 0x0018, 0x0020, 0x1000, 0x0800,\r
++      0x1000, 0x1800, 0x0156, 0x0006, 0x0016, 0x0026, 0x00e6, 0x2001,\r
++      0x1990, 0x2004, 0x908a, 0x0007, 0x1a0c, 0x0dd5, 0x0033, 0x00ee,\r
++      0x002e, 0x001e, 0x000e, 0x015e, 0x0005, 0x299c, 0x29ba, 0x29de,\r
++      0x29e0, 0x2a09, 0x2a0b, 0x2a0d, 0x2001, 0x0001, 0x080c, 0x27ea,\r
++      0x080c, 0x2bfb, 0x2001, 0x1992, 0x2003, 0x0000, 0x7828, 0x9084,\r
++      0xe1d7, 0x782a, 0x9006, 0x20a9, 0x0009, 0x080c, 0x2bb9, 0x2001,\r
++      0x1990, 0x2003, 0x0006, 0x2009, 0x001e, 0x2011, 0x2a0e, 0x080c,\r
++      0x858b, 0x0005, 0x2009, 0x1995, 0x200b, 0x0000, 0x2001, 0x199a,\r
++      0x2003, 0x0036, 0x2001, 0x1999, 0x2003, 0x002a, 0x2001, 0x1992,\r
++      0x2003, 0x0001, 0x9006, 0x080c, 0x2b6b, 0x2001, 0xffff, 0x20a9,\r
++      0x0009, 0x080c, 0x2bb9, 0x2001, 0x1990, 0x2003, 0x0006, 0x2009,\r
++      0x001e, 0x2011, 0x2a0e, 0x080c, 0x858b, 0x0005, 0x080c, 0x0dd5,\r
++      0x2001, 0x199a, 0x2003, 0x0036, 0x2001, 0x1992, 0x2003, 0x0003,\r
++      0x7a38, 0x9294, 0x0005, 0x9296, 0x0004, 0x0110, 0x9006, 0x0010,\r
++      0x2001, 0x0001, 0x080c, 0x2b6b, 0x2001, 0x1996, 0x2003, 0x0000,\r
++      0x2001, 0xffff, 0x20a9, 0x0009, 0x080c, 0x2bb9, 0x2001, 0x1990,\r
++      0x2003, 0x0006, 0x2009, 0x001e, 0x2011, 0x2a0e, 0x080c, 0x858b,\r
++      0x0005, 0x080c, 0x0dd5, 0x080c, 0x0dd5, 0x0005, 0x0006, 0x0016,\r
++      0x0026, 0x00e6, 0x00f6, 0x0156, 0x0126, 0x2091, 0x8000, 0x2079,\r
++      0x0100, 0x2001, 0x1992, 0x2004, 0x908a, 0x0007, 0x1a0c, 0x0dd5,\r
++      0x0043, 0x012e, 0x015e, 0x00fe, 0x00ee, 0x002e, 0x001e, 0x000e,\r
++      0x0005, 0x2a30, 0x2a50, 0x2a90, 0x2ac0, 0x2ae4, 0x2af4, 0x2af6,\r
++      0x080c, 0x2bad, 0x11b0, 0x7850, 0x9084, 0xefff, 0x7852, 0x2009,\r
++      0x1998, 0x2104, 0x7a38, 0x9294, 0x0005, 0x9296, 0x0004, 0x0110,\r
++      0xc08d, 0x0008, 0xc085, 0x200a, 0x2001, 0x1990, 0x2003, 0x0001,\r
++      0x0030, 0x080c, 0x2b1a, 0x2001, 0xffff, 0x080c, 0x29ab, 0x0005,\r
++      0x080c, 0x2af8, 0x05e0, 0x2009, 0x1999, 0x2104, 0x8001, 0x200a,\r
++      0x080c, 0x2bad, 0x1178, 0x7850, 0x9084, 0xefff, 0x7852, 0x7a38,\r
++      0x9294, 0x0005, 0x9296, 0x0005, 0x0518, 0x2009, 0x1998, 0x2104,\r
++      0xc085, 0x200a, 0x2009, 0x1995, 0x2104, 0x8000, 0x200a, 0x9086,\r
++      0x0005, 0x0118, 0x080c, 0x2b00, 0x00c0, 0x200b, 0x0000, 0x7a38,\r
++      0x9294, 0x0006, 0x9296, 0x0004, 0x0110, 0x9006, 0x0010, 0x2001,\r
++      0x0001, 0x080c, 0x2b88, 0x2001, 0x1992, 0x2003, 0x0002, 0x0028,\r
++      0x2001, 0x1990, 0x2003, 0x0003, 0x0010, 0x080c, 0x29cd, 0x0005,\r
++      0x080c, 0x2af8, 0x0560, 0x2009, 0x1999, 0x2104, 0x8001, 0x200a,\r
++      0x080c, 0x2bad, 0x1168, 0x7850, 0x9084, 0xefff, 0x7852, 0x2001,\r
++      0x1990, 0x2003, 0x0003, 0x2001, 0x1991, 0x2003, 0x0000, 0x00b8,\r
++      0x2009, 0x1999, 0x2104, 0x9005, 0x1118, 0x080c, 0x2b3d, 0x0010,\r
++      0x080c, 0x2b0d, 0x080c, 0x2b00, 0x2009, 0x1995, 0x200b, 0x0000,\r
++      0x2001, 0x1992, 0x2003, 0x0001, 0x080c, 0x29cd, 0x0000, 0x0005,\r
++      0x04b9, 0x0508, 0x080c, 0x2bad, 0x11b8, 0x7850, 0x9084, 0xefff,\r
++      0x7852, 0x2009, 0x1996, 0x2104, 0x8000, 0x200a, 0x9086, 0x0007,\r
++      0x0108, 0x0078, 0x2001, 0x199b, 0x2003, 0x000a, 0x2009, 0x1998,\r
++      0x2104, 0xc0fd, 0x200a, 0x0038, 0x0419, 0x2001, 0x1992, 0x2003,\r
++      0x0004, 0x080c, 0x29f8, 0x0005, 0x0099, 0x0168, 0x080c, 0x2bad,\r
++      0x1138, 0x7850, 0x9084, 0xefff, 0x7852, 0x080c, 0x29e4, 0x0018,\r
++      0x0079, 0x080c, 0x29f8, 0x0005, 0x080c, 0x0dd5, 0x080c, 0x0dd5,\r
++      0x2009, 0x199a, 0x2104, 0x8001, 0x200a, 0x090c, 0x2b59, 0x0005,\r
++      0x7a38, 0x9294, 0x0005, 0x9296, 0x0005, 0x0110, 0x9006, 0x0010,\r
++      0x2001, 0x0001, 0x080c, 0x2b88, 0x0005, 0x7a38, 0x9294, 0x0006,\r
++      0x9296, 0x0006, 0x0110, 0x9006, 0x0010, 0x2001, 0x0001, 0x080c,\r
++      0x2b6b, 0x0005, 0x2009, 0x1995, 0x2104, 0x8000, 0x200a, 0x9086,\r
++      0x0005, 0x0108, 0x0068, 0x200b, 0x0000, 0x7a38, 0x9294, 0x0006,\r
++      0x9296, 0x0006, 0x0110, 0x9006, 0x0010, 0x2001, 0x0001, 0x04d9,\r
++      0x7a38, 0x9294, 0x0005, 0x9296, 0x0005, 0x0110, 0x9006, 0x0010,\r
++      0x2001, 0x0001, 0x080c, 0x2b88, 0x0005, 0x0086, 0x2001, 0x1998,\r
++      0x2004, 0x9084, 0x7fff, 0x090c, 0x0dd5, 0x2009, 0x1997, 0x2144,\r
++      0x8846, 0x280a, 0x9844, 0x0dd8, 0xd08c, 0x1120, 0xd084, 0x1120,\r
++      0x080c, 0x0dd5, 0x9006, 0x0010, 0x2001, 0x0001, 0x00a1, 0x008e,\r
++      0x0005, 0x0006, 0x0156, 0x2001, 0x1990, 0x20a9, 0x0009, 0x2003,\r
++      0x0000, 0x8000, 0x1f04, 0x2b5f, 0x2001, 0x1997, 0x2003, 0x8000,\r
++      0x015e, 0x000e, 0x0005, 0x00f6, 0x2079, 0x0100, 0x9085, 0x0000,\r
++      0x0158, 0x7838, 0x9084, 0xfff9, 0x9085, 0x0004, 0x783a, 0x2009,\r
++      0x199d, 0x210c, 0x795a, 0x0050, 0x7838, 0x9084, 0xfffb, 0x9085,\r
++      0x0006, 0x783a, 0x2009, 0x199e, 0x210c, 0x795a, 0x00fe, 0x0005,\r
++      0x00f6, 0x2079, 0x0100, 0x9085, 0x0000, 0x0138, 0x7838, 0x9084,\r
++      0xfffa, 0x9085, 0x0004, 0x783a, 0x0030, 0x7838, 0x9084, 0xfffb,\r
++      0x9085, 0x0005, 0x783a, 0x00fe, 0x0005, 0x0006, 0x2001, 0x0100,\r
++      0x2004, 0x9082, 0x0007, 0x000e, 0x0005, 0x0006, 0x2001, 0x0100,\r
++      0x2004, 0x9082, 0x0009, 0x000e, 0x0005, 0x0156, 0x20a9, 0x0064,\r
++      0x7820, 0x080c, 0x2c38, 0xd09c, 0x1110, 0x1f04, 0x2bb0, 0x015e,\r
++      0x0005, 0x0126, 0x0016, 0x0006, 0x2091, 0x8000, 0x7850, 0x9085,\r
++      0x0040, 0x7852, 0x7850, 0x9084, 0xfbcf, 0x7852, 0x080c, 0x2c38,\r
++      0x9085, 0x2000, 0x7852, 0x000e, 0x2008, 0x9186, 0x0000, 0x1118,\r
++      0x783b, 0x0007, 0x0090, 0x9186, 0x0001, 0x1118, 0x783b, 0x0006,\r
++      0x0060, 0x9186, 0x0002, 0x1118, 0x783b, 0x0005, 0x0030, 0x9186,\r
++      0x0003, 0x1118, 0x783b, 0x0004, 0x0000, 0x0006, 0x1d04, 0x2be6,\r
++      0x080c, 0x85ad, 0x1f04, 0x2be6, 0x7850, 0x9085, 0x0400, 0x9084,\r
++      0xdfbf, 0x7852, 0x080c, 0x2c38, 0x9085, 0x1000, 0x7852, 0x000e,\r
++      0x001e, 0x012e, 0x0005, 0x7850, 0x9084, 0xffcf, 0x7852, 0x0005,\r
++      0x0006, 0x0156, 0x00f6, 0x2079, 0x0100, 0x20a9, 0x000a, 0x7854,\r
++      0xd0ac, 0x1130, 0x7820, 0xd0e4, 0x1140, 0x1f04, 0x2c0a, 0x0028,\r
++      0x7854, 0xd08c, 0x1110, 0x1f04, 0x2c10, 0x00fe, 0x015e, 0x000e,\r
++      0x0005, 0x1d04, 0x2c19, 0x080c, 0x85ad, 0x1f04, 0x2c19, 0x0005,\r
++      0x0006, 0x2001, 0x199c, 0x2004, 0x9086, 0x0000, 0x000e, 0x0005,\r
++      0x0006, 0x2001, 0x199c, 0x2004, 0x9086, 0x0001, 0x000e, 0x0005,\r
++      0x0006, 0x2001, 0x199c, 0x2004, 0x9086, 0x0002, 0x000e, 0x0005,\r
++      0xa001, 0xa001, 0xa001, 0xa001, 0xa001, 0x0005, 0x0006, 0x2001,\r
++      0x19a8, 0x2102, 0x000e, 0x0005, 0x2009, 0x0171, 0x2104, 0xd0dc,\r
++      0x0140, 0x2009, 0x0170, 0x2104, 0x200b, 0x0080, 0xa001, 0xa001,\r
++      0x200a, 0x0005, 0x0036, 0x0046, 0x2001, 0x0141, 0x200c, 0x918c,\r
++      0xff00, 0x9186, 0x2000, 0x0118, 0x9186, 0x0100, 0x1588, 0x2009,\r
++      0x00a2, 0x080c, 0x0e51, 0x2019, 0x0160, 0x2324, 0x2011, 0x0003,\r
++      0x2009, 0x0169, 0x2104, 0x9084, 0x0007, 0x210c, 0x918c, 0x0007,\r
++      0x910e, 0x1db0, 0x9086, 0x0003, 0x11b8, 0x2304, 0x9402, 0x02a0,\r
++      0x1d60, 0x8211, 0x1d68, 0x84ff, 0x0170, 0x2001, 0x0141, 0x200c,\r
++      0x918c, 0xff00, 0x9186, 0x0100, 0x0130, 0x2009, 0x180c, 0x2104,\r
++      0xc0dd, 0x200a, 0x0008, 0x0419, 0x2009, 0x0000, 0x080c, 0x0e51,\r
++      0x004e, 0x003e, 0x0005, 0x2001, 0x180c, 0x2004, 0xd0dc, 0x01b0,\r
++      0x2001, 0x0160, 0x2004, 0x9005, 0x0140, 0x2001, 0x0141, 0x2004,\r
++      0x9084, 0xff00, 0x9086, 0x0100, 0x1148, 0x0126, 0x2091, 0x8000,\r
++      0x0016, 0x0026, 0x0021, 0x002e, 0x001e, 0x012e, 0x0005, 0x00c6,\r
++      0x2061, 0x0100, 0x6014, 0x0006, 0x2001, 0x0161, 0x2003, 0x0000,\r
++      0x6017, 0x0018, 0xa001, 0xa001, 0x602f, 0x0008, 0x6104, 0x918e,\r
++      0x0010, 0x6106, 0x918e, 0x0010, 0x6106, 0x6017, 0x0040, 0x04b9,\r
++      0x001e, 0x9184, 0x0003, 0x01e0, 0x0036, 0x0016, 0x2019, 0x0141,\r
++      0x6124, 0x918c, 0x0028, 0x1120, 0x2304, 0x9084, 0x2800, 0x0dc0,\r
++      0x001e, 0x919c, 0xffe4, 0x9184, 0x0001, 0x0118, 0x9385, 0x0009,\r
++      0x6016, 0x9184, 0x0002, 0x0118, 0x9385, 0x0012, 0x6016, 0x003e,\r
++      0x2001, 0x180c, 0x200c, 0xc1dc, 0x2102, 0x00ce, 0x0005, 0x0016,\r
++      0x0026, 0x080c, 0x73d6, 0x0108, 0xc0bc, 0x2009, 0x0140, 0x2114,\r
++      0x9294, 0x0001, 0x9215, 0x220a, 0x002e, 0x001e, 0x0005, 0x0016,\r
++      0x0026, 0x2009, 0x0140, 0x2114, 0x9294, 0x0001, 0x9285, 0x1000,\r
++      0x200a, 0x220a, 0x002e, 0x001e, 0x0005, 0x0016, 0x0026, 0x2009,\r
++      0x0140, 0x2114, 0x9294, 0x0001, 0x9215, 0x220a, 0x002e, 0x001e,\r
++      0x0005, 0x0006, 0x0016, 0x2009, 0x0140, 0x2104, 0x1128, 0x080c,\r
++      0x73d6, 0x0110, 0xc0bc, 0x0008, 0xc0bd, 0x200a, 0x001e, 0x000e,\r
++      0x0005, 0x2f95, 0x2f95, 0x2db9, 0x2db9, 0x2dc5, 0x2dc5, 0x2dd1,\r
++      0x2dd1, 0x2ddf, 0x2ddf, 0x2deb, 0x2deb, 0x2df9, 0x2df9, 0x2e07,\r
++      0x2e07, 0x2e19, 0x2e19, 0x2e25, 0x2e25, 0x2e33, 0x2e33, 0x2e51,\r
++      0x2e51, 0x2e71, 0x2e71, 0x2e41, 0x2e41, 0x2e61, 0x2e61, 0x2e7f,\r
++      0x2e7f, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17,\r
++      0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17,\r
++      0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17,\r
++      0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17,\r
++      0x2e17, 0x2e91, 0x2e91, 0x2e9d, 0x2e9d, 0x2eab, 0x2eab, 0x2eb9,\r
++      0x2eb9, 0x2ec9, 0x2ec9, 0x2ed7, 0x2ed7, 0x2ee7, 0x2ee7, 0x2ef7,\r
++      0x2ef7, 0x2f09, 0x2f09, 0x2f17, 0x2f17, 0x2f27, 0x2f27, 0x2f49,\r
++      0x2f49, 0x2f6b, 0x2f6b, 0x2f37, 0x2f37, 0x2f5a, 0x2f5a, 0x2f7a,\r
++      0x2f7a, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17,\r
++      0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17,\r
++      0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17,\r
++      0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17,\r
++      0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17,\r
++      0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17, 0x2e17,\r
++      0x2e17, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x2481, 0x0804, 0x2f8d, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2295, 0x0804,\r
++      0x2f8d, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x2295, 0x080c, 0x2481, 0x0804, 0x2f8d, 0x0106,\r
++      0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,\r
++      0x22d0, 0x0804, 0x2f8d, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0x2481, 0x080c, 0x22d0, 0x0804,\r
++      0x2f8d, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x2295, 0x080c, 0x22d0, 0x0804, 0x2f8d, 0x0106,\r
++      0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,\r
++      0x2295, 0x080c, 0x2481, 0x080c, 0x22d0, 0x0804, 0x2f8d, 0xa001,\r
++      0x0cf0, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x1380, 0x0804, 0x2f8d, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2481, 0x080c,\r
++      0x1380, 0x0804, 0x2f8d, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0x2295, 0x080c, 0x1380, 0x0804,\r
++      0x2f8d, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x2481, 0x080c, 0x1380, 0x080c, 0x22d0, 0x0804,\r
++      0x2f8d, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x2295, 0x080c, 0x2481, 0x080c, 0x1380, 0x0804,\r
++      0x2f8d, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x2295, 0x080c, 0x1380, 0x080c, 0x22d0, 0x0804,\r
++      0x2f8d, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x1380, 0x080c, 0x22d0, 0x0804, 0x2f8d, 0x0106,\r
++      0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,\r
++      0x2295, 0x080c, 0x2481, 0x080c, 0x1380, 0x080c, 0x22d0, 0x0804,\r
++      0x2f8d, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x2941, 0x0804, 0x2f8d, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2941, 0x080c,\r
++      0x2481, 0x0804, 0x2f8d, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0x2941, 0x080c, 0x2295, 0x0804,\r
++      0x2f8d, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x2941, 0x080c, 0x2295, 0x080c, 0x2481, 0x0804,\r
++      0x2f8d, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x2941, 0x080c, 0x22d0, 0x0804, 0x2f8d, 0x0106,\r
++      0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,\r
++      0x2941, 0x080c, 0x2481, 0x080c, 0x22d0, 0x0804, 0x2f8d, 0x0106,\r
++      0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,\r
++      0x2941, 0x080c, 0x2295, 0x080c, 0x22d0, 0x0804, 0x2f8d, 0x0106,\r
++      0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,\r
++      0x2941, 0x080c, 0x2295, 0x080c, 0x2481, 0x080c, 0x22d0, 0x0804,\r
++      0x2f8d, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x2941, 0x080c, 0x1380, 0x0804, 0x2f8d, 0x0106,\r
++      0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,\r
++      0x2941, 0x080c, 0x2481, 0x080c, 0x1380, 0x0804, 0x2f8d, 0x0106,\r
++      0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,\r
++      0x2941, 0x080c, 0x2295, 0x080c, 0x1380, 0x0804, 0x2f8d, 0x0106,\r
++      0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,\r
++      0x2941, 0x080c, 0x2481, 0x080c, 0x1380, 0x080c, 0x22d0, 0x0804,\r
++      0x2f8d, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x2941, 0x080c, 0x2295, 0x080c, 0x2481, 0x080c,\r
++      0x1380, 0x0498, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136,\r
++      0x0146, 0x0156, 0x080c, 0x2941, 0x080c, 0x2295, 0x080c, 0x1380,\r
++      0x080c, 0x22d0, 0x0410, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0x2941, 0x080c, 0x1380, 0x080c,\r
++      0x22d0, 0x0098, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136,\r
++      0x0146, 0x0156, 0x080c, 0x2941, 0x080c, 0x2295, 0x080c, 0x2481,\r
++      0x080c, 0x1380, 0x080c, 0x22d0, 0x0000, 0x015e, 0x014e, 0x013e,\r
++      0x01de, 0x01ce, 0x012e, 0x000e, 0x010e, 0x000d, 0x00b6, 0x00c6,\r
++      0x0026, 0x0046, 0x9026, 0x080c, 0x6930, 0x1904, 0x30a6, 0x72dc,\r
++      0x2001, 0x197c, 0x2004, 0x9005, 0x1110, 0xd29c, 0x0148, 0xd284,\r
++      0x1138, 0xd2bc, 0x1904, 0x30a6, 0x080c, 0x30ab, 0x0804, 0x30a6,\r
++      0xd2cc, 0x1904, 0x30a6, 0x080c, 0x73bc, 0x1120, 0x70af, 0xffff,\r
++      0x0804, 0x30a6, 0xd294, 0x0120, 0x70af, 0xffff, 0x0804, 0x30a6,\r
++      0x080c, 0x3314, 0x0160, 0x080c, 0xd230, 0x0128, 0x2001, 0x1818,\r
++      0x203c, 0x0804, 0x3033, 0x70af, 0xffff, 0x0804, 0x30a6, 0x2001,\r
++      0x1818, 0x203c, 0x7294, 0xd284, 0x0904, 0x3033, 0xd28c, 0x1904,\r
++      0x3033, 0x0036, 0x73ac, 0x938e, 0xffff, 0x1110, 0x2019, 0x0001,\r
++      0x8314, 0x92e0, 0x1c80, 0x2c04, 0x938c, 0x0001, 0x0120, 0x9084,\r
++      0xff00, 0x8007, 0x0010, 0x9084, 0x00ff, 0x970e, 0x05d0, 0x908e,\r
++      0x0000, 0x05b8, 0x908e, 0x00ff, 0x1150, 0x7230, 0xd284, 0x15b0,\r
++      0x7294, 0xc28d, 0x7296, 0x70af, 0xffff, 0x003e, 0x04a0, 0x900e,\r
++      0x080c, 0x283e, 0x080c, 0x659e, 0x1538, 0x9006, 0xb8bb, 0x0520,\r
++      0xb8ac, 0x9005, 0x0148, 0x00c6, 0x2060, 0x080c, 0x8981, 0x00ce,\r
++      0x090c, 0x8d25, 0xb8af, 0x0000, 0x080c, 0x6972, 0x1168, 0x7030,\r
++      0xd08c, 0x0130, 0xb800, 0xd0bc, 0x0138, 0x080c, 0x681f, 0x0120,\r
++      0x080c, 0x30c4, 0x0148, 0x0028, 0x080c, 0x3204, 0x080c, 0x30f0,\r
++      0x0118, 0x8318, 0x0804, 0x2fe0, 0x73ae, 0x0010, 0x70af, 0xffff,\r
++      0x003e, 0x0804, 0x30a6, 0x9780, 0x3325, 0x203d, 0x97bc, 0xff00,\r
++      0x873f, 0x2041, 0x007e, 0x70ac, 0x9096, 0xffff, 0x1118, 0x900e,\r
++      0x28a8, 0x0050, 0x9812, 0x0220, 0x2008, 0x9802, 0x20a8, 0x0020,\r
++      0x70af, 0xffff, 0x0804, 0x30a6, 0x2700, 0x0156, 0x0016, 0x9106,\r
++      0x0904, 0x309b, 0xc484, 0x080c, 0x65ff, 0x0148, 0x080c, 0xd230,\r
++      0x1904, 0x309b, 0x080c, 0x659e, 0x1904, 0x30a3, 0x0008, 0xc485,\r
++      0xb8bb, 0x0520, 0xb8ac, 0x9005, 0x0148, 0x00c6, 0x2060, 0x080c,\r
++      0x8981, 0x00ce, 0x090c, 0x8d25, 0xb8af, 0x0000, 0x080c, 0x6972,\r
++      0x1130, 0x7030, 0xd08c, 0x01f8, 0xb800, 0xd0bc, 0x11e0, 0x7294,\r
++      0xd28c, 0x0180, 0x080c, 0x6972, 0x9082, 0x0006, 0x02e0, 0xd484,\r
++      0x1118, 0x080c, 0x65c3, 0x0028, 0x080c, 0x3290, 0x01a0, 0x080c,\r
++      0x32bb, 0x0088, 0x080c, 0x3204, 0x080c, 0xd230, 0x1160, 0x080c,\r
++      0x30f0, 0x0188, 0x0040, 0x080c, 0xd230, 0x1118, 0x080c, 0x3290,\r
++      0x0110, 0x0451, 0x0140, 0x001e, 0x8108, 0x015e, 0x1f04, 0x304c,\r
++      0x70af, 0xffff, 0x0018, 0x001e, 0x015e, 0x71ae, 0x004e, 0x002e,\r
++      0x00ce, 0x00be, 0x0005, 0x00c6, 0x0016, 0x70af, 0x0001, 0x2009,\r
++      0x007e, 0x080c, 0x659e, 0x1168, 0xb813, 0x00ff, 0xb817, 0xfffe,\r
++      0x080c, 0x3204, 0x04a9, 0x0128, 0x70dc, 0xc0bd, 0x70de, 0x080c,\r
++      0xcf81, 0x001e, 0x00ce, 0x0005, 0x0016, 0x0076, 0x00d6, 0x00c6,\r
++      0x2001, 0x184c, 0x2004, 0x9084, 0x00ff, 0xb842, 0x080c, 0xaeaf,\r
++      0x01d0, 0x2b00, 0x6012, 0x080c, 0xcfaa, 0x6023, 0x0001, 0x9006,\r
++      0x080c, 0x653b, 0x2001, 0x0000, 0x080c, 0x654f, 0x0126, 0x2091,\r
++      0x8000, 0x70a8, 0x8000, 0x70aa, 0x012e, 0x2009, 0x0004, 0x080c,\r
++      0xaedc, 0x9085, 0x0001, 0x00ce, 0x00de, 0x007e, 0x001e, 0x0005,\r
++      0x0016, 0x0076, 0x00d6, 0x00c6, 0x2001, 0x184c, 0x2004, 0x9084,\r
++      0x00ff, 0xb842, 0x080c, 0xaeaf, 0x0548, 0x2b00, 0x6012, 0xb800,\r
++      0xc0c4, 0xb802, 0xb8a0, 0x9086, 0x007e, 0x0140, 0xb804, 0x9084,\r
++      0x00ff, 0x9086, 0x0006, 0x1110, 0x080c, 0x31bf, 0x080c, 0xcfaa,\r
++      0x6023, 0x0001, 0x9006, 0x080c, 0x653b, 0x2001, 0x0002, 0x080c,\r
++      0x654f, 0x0126, 0x2091, 0x8000, 0x70a8, 0x8000, 0x70aa, 0x012e,\r
++      0x2009, 0x0002, 0x080c, 0xaedc, 0x9085, 0x0001, 0x00ce, 0x00de,\r
++      0x007e, 0x001e, 0x0005, 0x00b6, 0x00c6, 0x0026, 0x2009, 0x0080,\r
++      0x080c, 0x659e, 0x1140, 0xb813, 0x00ff, 0xb817, 0xfffc, 0x0039,\r
++      0x0110, 0x70e3, 0xffff, 0x002e, 0x00ce, 0x00be, 0x0005, 0x0016,\r
++      0x0076, 0x00d6, 0x00c6, 0x080c, 0xae0b, 0x01d0, 0x2b00, 0x6012,\r
++      0x080c, 0xcfaa, 0x6023, 0x0001, 0x9006, 0x080c, 0x653b, 0x2001,\r
++      0x0002, 0x080c, 0x654f, 0x0126, 0x2091, 0x8000, 0x70e4, 0x8000,\r
++      0x70e6, 0x012e, 0x2009, 0x0002, 0x080c, 0xaedc, 0x9085, 0x0001,\r
++      0x00ce, 0x00de, 0x007e, 0x001e, 0x0005, 0x00c6, 0x00d6, 0x0126,\r
++      0x2091, 0x8000, 0x2009, 0x007f, 0x080c, 0x659e, 0x11b8, 0xb813,\r
++      0x00ff, 0xb817, 0xfffd, 0xb8cf, 0x0004, 0x080c, 0xae0b, 0x0170,\r
++      0x2b00, 0x6012, 0x6316, 0x6023, 0x0001, 0x620a, 0x080c, 0xcfaa,\r
++      0x2009, 0x0022, 0x080c, 0xaedc, 0x9085, 0x0001, 0x012e, 0x00de,\r
++      0x00ce, 0x0005, 0x00e6, 0x00c6, 0x0066, 0x0036, 0x0026, 0x00b6,\r
++      0x21f0, 0x080c, 0x9296, 0x080c, 0x921b, 0x080c, 0xaca4, 0x080c,\r
++      0xbd77, 0x3e08, 0x2130, 0x81ff, 0x0120, 0x20a9, 0x007e, 0x900e,\r
++      0x0018, 0x20a9, 0x007f, 0x900e, 0x0016, 0x080c, 0x65ff, 0x1140,\r
++      0x9686, 0x0002, 0x1118, 0xb800, 0xd0bc, 0x1110, 0x080c, 0x6034,\r
++      0x001e, 0x8108, 0x1f04, 0x31a4, 0x9686, 0x0001, 0x190c, 0x32e8,\r
++      0x00be, 0x002e, 0x003e, 0x006e, 0x00ce, 0x00ee, 0x0005, 0x00e6,\r
++      0x00c6, 0x0046, 0x0036, 0x0026, 0x0016, 0x00b6, 0x6210, 0x2258,\r
++      0xbaa0, 0x0026, 0x2019, 0x0029, 0x080c, 0x928b, 0x0076, 0x2039,\r
++      0x0000, 0x080c, 0x9168, 0x2c08, 0x080c, 0xe2eb, 0x007e, 0x001e,\r
++      0xba10, 0xbb14, 0xbcc0, 0x080c, 0x6034, 0xba12, 0xbb16, 0xbcc2,\r
++      0x00be, 0x001e, 0x002e, 0x003e, 0x004e, 0x00ce, 0x00ee, 0x0005,\r
++      0x00e6, 0x0006, 0x00b6, 0x6010, 0x2058, 0xb8a0, 0x00be, 0x9086,\r
++      0x0080, 0x0150, 0x2071, 0x1800, 0x70a8, 0x9005, 0x0110, 0x8001,\r
++      0x70aa, 0x000e, 0x00ee, 0x0005, 0x2071, 0x1800, 0x70e4, 0x9005,\r
++      0x0dc0, 0x8001, 0x70e6, 0x0ca8, 0xb800, 0xc08c, 0xb802, 0x0005,\r
++      0x00f6, 0x00e6, 0x00c6, 0x00b6, 0x0046, 0x0036, 0x0026, 0x0016,\r
++      0x0156, 0x2178, 0x81ff, 0x1118, 0x20a9, 0x0001, 0x0078, 0x080c,\r
++      0x56cf, 0xd0c4, 0x0140, 0xd0a4, 0x0130, 0x9006, 0x2020, 0x2009,\r
++      0x002d, 0x080c, 0xe5ae, 0x20a9, 0x0800, 0x9016, 0x0026, 0x928e,\r
++      0x007e, 0x0904, 0x326f, 0x928e, 0x007f, 0x0904, 0x326f, 0x928e,\r
++      0x0080, 0x05e8, 0x9288, 0x1000, 0x210c, 0x81ff, 0x05c0, 0x8fff,\r
++      0x1148, 0x2001, 0x198e, 0x0006, 0x2003, 0x0001, 0x04f1, 0x000e,\r
++      0x2003, 0x0000, 0x00b6, 0x00c6, 0x2158, 0x2001, 0x0001, 0x080c,\r
++      0x693c, 0x00ce, 0x00be, 0x2019, 0x0029, 0x080c, 0x928b, 0x0076,\r
++      0x2039, 0x0000, 0x080c, 0x9168, 0x00b6, 0x00c6, 0x0026, 0x2158,\r
++      0xba04, 0x9294, 0x00ff, 0x9286, 0x0006, 0x1118, 0xb807, 0x0404,\r
++      0x0028, 0x2001, 0x0004, 0x8007, 0x9215, 0xba06, 0x002e, 0x00ce,\r
++      0x00be, 0x0016, 0x2c08, 0x080c, 0xe2eb, 0x001e, 0x007e, 0x002e,\r
++      0x8210, 0x1f04, 0x3226, 0x015e, 0x001e, 0x002e, 0x003e, 0x004e,\r
++      0x00be, 0x00ce, 0x00ee, 0x00fe, 0x0005, 0x0046, 0x0026, 0x0016,\r
++      0x080c, 0x56cf, 0xd0c4, 0x0140, 0xd0a4, 0x0130, 0x9006, 0x2220,\r
++      0x2009, 0x0029, 0x080c, 0xe5ae, 0x001e, 0x002e, 0x004e, 0x0005,\r
++      0x0016, 0x0026, 0x0036, 0x00c6, 0x7294, 0x82ff, 0x01e8, 0x080c,\r
++      0x696a, 0x11d0, 0x2100, 0x080c, 0x2871, 0x81ff, 0x01b8, 0x2019,\r
++      0x0001, 0x8314, 0x92e0, 0x1c80, 0x2c04, 0xd384, 0x0120, 0x9084,\r
++      0xff00, 0x8007, 0x0010, 0x9084, 0x00ff, 0x9116, 0x0138, 0x9096,\r
++      0x00ff, 0x0110, 0x8318, 0x0c68, 0x9085, 0x0001, 0x00ce, 0x003e,\r
++      0x002e, 0x001e, 0x0005, 0x0016, 0x00c6, 0x0126, 0x2091, 0x8000,\r
++      0x0036, 0x2019, 0x0029, 0x00a9, 0x003e, 0x9180, 0x1000, 0x2004,\r
++      0x9065, 0x0158, 0x0016, 0x00c6, 0x2061, 0x1ab0, 0x001e, 0x6112,\r
++      0x080c, 0x31bf, 0x001e, 0x080c, 0x65c3, 0x012e, 0x00ce, 0x001e,\r
++      0x0005, 0x0016, 0x0026, 0x2110, 0x080c, 0xa808, 0x080c, 0xe917,\r
++      0x002e, 0x001e, 0x0005, 0x2001, 0x1837, 0x2004, 0xd0cc, 0x0005,\r
++      0x00c6, 0x00b6, 0x080c, 0x73bc, 0x1118, 0x20a9, 0x0800, 0x0010,\r
++      0x20a9, 0x0782, 0x080c, 0x73bc, 0x1110, 0x900e, 0x0010, 0x2009,\r
++      0x007e, 0x9180, 0x1000, 0x2004, 0x905d, 0x0130, 0x86ff, 0x0110,\r
++      0xb800, 0xd0bc, 0x090c, 0x65c3, 0x8108, 0x1f04, 0x32f9, 0x2061,\r
++      0x1800, 0x607f, 0x0000, 0x6080, 0x9084, 0x00ff, 0x6082, 0x60b3,\r
++      0x0000, 0x00be, 0x00ce, 0x0005, 0x2001, 0x1869, 0x2004, 0xd0bc,\r
++      0x0005, 0x2011, 0x1848, 0x2214, 0xd2ec, 0x0005, 0x0026, 0x2011,\r
++      0x1867, 0x2214, 0xd2dc, 0x002e, 0x0005, 0x7eef, 0x7de8, 0x7ce4,\r
++      0x80e2, 0x7be1, 0x80e0, 0x80dc, 0x80da, 0x7ad9, 0x80d6, 0x80d5,\r
++      0x80d4, 0x80d3, 0x80d2, 0x80d1, 0x79ce, 0x78cd, 0x80cc, 0x80cb,\r
++      0x80ca, 0x80c9, 0x80c7, 0x80c6, 0x77c5, 0x76c3, 0x80bc, 0x80ba,\r
++      0x75b9, 0x80b6, 0x74b5, 0x73b4, 0x72b3, 0x80b2, 0x80b1, 0x80ae,\r
++      0x71ad, 0x80ac, 0x70ab, 0x6faa, 0x6ea9, 0x80a7, 0x6da6, 0x6ca5,\r
++      0x6ba3, 0x6a9f, 0x699e, 0x689d, 0x809b, 0x8098, 0x6797, 0x6690,\r
++      0x658f, 0x6488, 0x6384, 0x6282, 0x8081, 0x8080, 0x617c, 0x607a,\r
++      0x8079, 0x5f76, 0x8075, 0x8074, 0x8073, 0x8072, 0x8071, 0x806e,\r
++      0x5e6d, 0x806c, 0x5d6b, 0x5c6a, 0x5b69, 0x8067, 0x5a66, 0x5965,\r
++      0x5863, 0x575c, 0x565a, 0x5559, 0x8056, 0x8055, 0x5454, 0x5353,\r
++      0x5252, 0x5151, 0x504e, 0x4f4d, 0x804c, 0x804b, 0x4e4a, 0x4d49,\r
++      0x8047, 0x4c46, 0x8045, 0x8043, 0x803c, 0x803a, 0x8039, 0x8036,\r
++      0x4b35, 0x8034, 0x4a33, 0x4932, 0x4831, 0x802e, 0x472d, 0x462c,\r
++      0x452b, 0x442a, 0x4329, 0x4227, 0x8026, 0x8025, 0x4123, 0x401f,\r
++      0x3f1e, 0x3e1d, 0x3d1b, 0x3c18, 0x8017, 0x8010, 0x3b0f, 0x3a08,\r
++      0x8004, 0x3902, 0x8001, 0x8000, 0x8000, 0x3800, 0x3700, 0x3600,\r
++      0x8000, 0x3500, 0x8000, 0x8000, 0x8000, 0x3400, 0x8000, 0x8000,\r
++      0x8000, 0x8000, 0x8000, 0x8000, 0x3300, 0x3200, 0x8000, 0x8000,\r
++      0x8000, 0x8000, 0x8000, 0x8000, 0x3100, 0x3000, 0x8000, 0x8000,\r
++      0x2f00, 0x8000, 0x2e00, 0x2d00, 0x2c00, 0x8000, 0x8000, 0x8000,\r
++      0x2b00, 0x8000, 0x2a00, 0x2900, 0x2800, 0x8000, 0x2700, 0x2600,\r
++      0x2500, 0x2400, 0x2300, 0x2200, 0x8000, 0x8000, 0x2100, 0x2000,\r
++      0x1f00, 0x1e00, 0x1d00, 0x1c00, 0x8000, 0x8000, 0x1b00, 0x1a00,\r
++      0x8000, 0x1900, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000,\r
++      0x1800, 0x8000, 0x1700, 0x1600, 0x1500, 0x8000, 0x1400, 0x1300,\r
++      0x1200, 0x1100, 0x1000, 0x0f00, 0x8000, 0x8000, 0x0e00, 0x0d00,\r
++      0x0c00, 0x0b00, 0x0a00, 0x0900, 0x8000, 0x8000, 0x0800, 0x0700,\r
++      0x8000, 0x0600, 0x8000, 0x8000, 0x8000, 0x0500, 0x0400, 0x0300,\r
++      0x8000, 0x0200, 0x8000, 0x8000, 0x8000, 0x0100, 0x8000, 0x8000,\r
++      0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0x8000, 0x8000, 0x8000,\r
++      0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000,\r
++      0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x2071, 0x189e, 0x7003,\r
++      0x0002, 0x9006, 0x7016, 0x701a, 0x704a, 0x704e, 0x700e, 0x7042,\r
++      0x7046, 0x703b, 0x18ba, 0x703f, 0x18ba, 0x7007, 0x0001, 0x080c,\r
++      0x1018, 0x090c, 0x0dd5, 0x2900, 0x706a, 0xa867, 0x0002, 0xa8ab,\r
++      0xdcb0, 0x080c, 0x1018, 0x090c, 0x0dd5, 0x2900, 0x706e, 0xa867,\r
++      0x0002, 0xa8ab, 0xdcb0, 0x0005, 0x2071, 0x189e, 0x7004, 0x0002,\r
++      0x3454, 0x3455, 0x3468, 0x347c, 0x0005, 0x1004, 0x3465, 0x0e04,\r
++      0x3465, 0x2079, 0x0000, 0x0126, 0x2091, 0x8000, 0x700c, 0x9005,\r
++      0x1128, 0x700f, 0x0001, 0x012e, 0x0468, 0x0005, 0x012e, 0x0ce8,\r
++      0x2079, 0x0000, 0x2061, 0x18b8, 0x2c4c, 0xa86c, 0x908e, 0x0100,\r
++      0x0128, 0x9086, 0x0200, 0x0904, 0x3550, 0x0005, 0x7018, 0x2048,\r
++      0x2061, 0x1800, 0x701c, 0x0807, 0x7014, 0x2048, 0xa864, 0x9094,\r
++      0x00ff, 0x9296, 0x0029, 0x1120, 0xaa78, 0xd2fc, 0x0128, 0x0005,\r
++      0x9086, 0x0103, 0x0108, 0x0005, 0x2079, 0x0000, 0x2061, 0x1800,\r
++      0x701c, 0x0807, 0x2061, 0x1800, 0x7880, 0x908a, 0x0040, 0x1210,\r
++      0x61d0, 0x0042, 0x2100, 0x908a, 0x003f, 0x1a04, 0x354d, 0x61d0,\r
++      0x0804, 0x34e2, 0x3524, 0x355c, 0x3566, 0x356a, 0x3574, 0x357a,\r
++      0x357e, 0x358e, 0x3591, 0x359b, 0x35a0, 0x35a5, 0x35b0, 0x35bb,\r
++      0x35ca, 0x35d9, 0x35e7, 0x35fe, 0x3619, 0x354d, 0x36c2, 0x3700,\r
++      0x37a6, 0x37b7, 0x37da, 0x354d, 0x354d, 0x354d, 0x3812, 0x382e,\r
++      0x3837, 0x3866, 0x386c, 0x354d, 0x38b2, 0x354d, 0x354d, 0x354d,\r
++      0x354d, 0x354d, 0x38bd, 0x38c6, 0x38ce, 0x38d0, 0x354d, 0x354d,\r
++      0x354d, 0x354d, 0x354d, 0x354d, 0x38fc, 0x354d, 0x354d, 0x354d,\r
++      0x354d, 0x354d, 0x3919, 0x397a, 0x354d, 0x354d, 0x354d, 0x354d,\r
++      0x354d, 0x354d, 0x0002, 0x39a4, 0x39a7, 0x3a06, 0x3a1f, 0x3a4f,\r
++      0x3ced, 0x354d, 0x52a8, 0x354d, 0x354d, 0x354d, 0x354d, 0x354d,\r
++      0x354d, 0x354d, 0x354d, 0x359b, 0x35a0, 0x420e, 0x56f3, 0x422c,\r
++      0x5337, 0x5388, 0x548b, 0x354d, 0x54ed, 0x5529, 0x555a, 0x565e,\r
++      0x5587, 0x55de, 0x354d, 0x4230, 0x43f1, 0x4407, 0x442c, 0x4491,\r
++      0x4505, 0x4525, 0x459c, 0x45f8, 0x4654, 0x4657, 0x467c, 0x4719,\r
++      0x477f, 0x4787, 0x48b9, 0x4a2e, 0x4a62, 0x4cc6, 0x354d, 0x4ce4,\r
++      0x4d90, 0x4e72, 0x4ecc, 0x354d, 0x4f81, 0x354d, 0x4fe7, 0x5002,\r
++      0x4787, 0x5248, 0x714c, 0x0000, 0x2021, 0x4000, 0x080c, 0x4ae0,\r
++      0x0126, 0x2091, 0x8000, 0x0e04, 0x352e, 0x0010, 0x012e, 0x0cc0,\r
++      0x7c36, 0x9486, 0x4000, 0x0118, 0x7833, 0x0011, 0x0010, 0x7833,\r
++      0x0010, 0x7c82, 0x7986, 0x7a8a, 0x7b8e, 0x2091, 0x4080, 0x2001,\r
++      0x0089, 0x2004, 0xd084, 0x190c, 0x119b, 0x7007, 0x0001, 0x2091,\r
++      0x5000, 0x700f, 0x0000, 0x012e, 0x0005, 0x2021, 0x4001, 0x08b0,\r
++      0x2021, 0x4002, 0x0898, 0x2021, 0x4003, 0x0880, 0x2021, 0x4005,\r
++      0x0868, 0x2021, 0x4006, 0x0850, 0x2039, 0x0001, 0x902e, 0x2520,\r
++      0x7b88, 0x7a8c, 0x7884, 0x7990, 0x0804, 0x4aed, 0x7883, 0x0004,\r
++      0x7884, 0x0807, 0x2039, 0x0001, 0x902e, 0x2520, 0x7b88, 0x7a8c,\r
++      0x7884, 0x7990, 0x0804, 0x4af0, 0x7984, 0x7888, 0x2114, 0x200a,\r
++      0x0804, 0x3524, 0x7984, 0x2114, 0x0804, 0x3524, 0x20e1, 0x0000,\r
++      0x2099, 0x0021, 0x20e9, 0x0000, 0x20a1, 0x0021, 0x20a9, 0x001f,\r
++      0x4003, 0x7984, 0x7a88, 0x7b8c, 0x0804, 0x3524, 0x7884, 0x2060,\r
++      0x04d8, 0x2009, 0x0003, 0x2011, 0x0002, 0x2019, 0x001c, 0x789b,\r
++      0x0137, 0x0804, 0x3524, 0x2039, 0x0001, 0x7d98, 0x7c9c, 0x0800,\r
++      0x2039, 0x0001, 0x7d98, 0x7c9c, 0x0848, 0x79a0, 0x9182, 0x0040,\r
++      0x0210, 0x0804, 0x3559, 0x2138, 0x7d98, 0x7c9c, 0x0804, 0x3560,\r
++      0x79a0, 0x9182, 0x0040, 0x0210, 0x0804, 0x3559, 0x2138, 0x7d98,\r
++      0x7c9c, 0x0804, 0x356e, 0x79a0, 0x9182, 0x0040, 0x0210, 0x0804,\r
++      0x3559, 0x21e8, 0x7984, 0x7888, 0x20a9, 0x0001, 0x21a0, 0x4004,\r
++      0x0804, 0x3524, 0x2061, 0x0800, 0xe10c, 0x9006, 0x2c15, 0x9200,\r
++      0x8c60, 0x8109, 0x1dd8, 0x2010, 0x9005, 0x0904, 0x3524, 0x0804,\r
++      0x3553, 0x79a0, 0x9182, 0x0040, 0x0210, 0x0804, 0x3559, 0x21e0,\r
++      0x20a9, 0x0001, 0x7984, 0x2198, 0x4012, 0x0804, 0x3524, 0x2069,\r
++      0x1847, 0x7884, 0x7990, 0x911a, 0x1a04, 0x3559, 0x8019, 0x0904,\r
++      0x3559, 0x684a, 0x6942, 0x788c, 0x6852, 0x7888, 0x6856, 0x9006,\r
++      0x685a, 0x685e, 0x080c, 0x76d5, 0x0804, 0x3524, 0x2069, 0x1847,\r
++      0x7884, 0x7994, 0x911a, 0x1a04, 0x3559, 0x8019, 0x0904, 0x3559,\r
++      0x684e, 0x6946, 0x788c, 0x6862, 0x7888, 0x6866, 0x9006, 0x686a,\r
++      0x686e, 0x0126, 0x2091, 0x8000, 0x080c, 0x69dc, 0x012e, 0x0804,\r
++      0x3524, 0x902e, 0x2520, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804,\r
++      0x3556, 0x7984, 0x7b88, 0x7a8c, 0x20a9, 0x0005, 0x20e9, 0x0001,\r
++      0x20a1, 0x18a6, 0x4101, 0x080c, 0x4aa4, 0x1120, 0x2009, 0x0002,\r
++      0x0804, 0x3556, 0x2009, 0x0020, 0xa85c, 0x9080, 0x0019, 0xaf60,\r
++      0x080c, 0x4aed, 0x701f, 0x363d, 0x0005, 0xa864, 0x2008, 0x9084,\r
++      0x00ff, 0x9096, 0x0011, 0x0168, 0x9096, 0x0019, 0x0150, 0x9096,\r
++      0x0015, 0x0138, 0x9096, 0x0048, 0x0120, 0x9096, 0x0029, 0x1904,\r
++      0x3556, 0x810f, 0x918c, 0x00ff, 0x0904, 0x3556, 0x7112, 0x7010,\r
++      0x8001, 0x0560, 0x7012, 0x080c, 0x4aa4, 0x1120, 0x2009, 0x0002,\r
++      0x0804, 0x3556, 0x2009, 0x0020, 0x7068, 0x2040, 0xa28c, 0xa390,\r
++      0xa494, 0xa598, 0x9290, 0x0040, 0x9399, 0x0000, 0x94a1, 0x0000,\r
++      0x95a9, 0x0000, 0xa85c, 0x9080, 0x0019, 0xaf60, 0x080c, 0x4aed,\r
++      0x701f, 0x367b, 0x0005, 0xa864, 0x9084, 0x00ff, 0x9096, 0x0002,\r
++      0x0120, 0x9096, 0x000a, 0x1904, 0x3556, 0x0888, 0x7014, 0x2048,\r
++      0xa868, 0xc0fd, 0xa86a, 0xa864, 0x9084, 0x00ff, 0x9096, 0x0029,\r
++      0x1160, 0xc2fd, 0xaa7a, 0x080c, 0x618b, 0x0150, 0x0126, 0x2091,\r
++      0x8000, 0xa87a, 0xa982, 0x012e, 0x0050, 0x080c, 0x64b4, 0x1128,\r
++      0x7007, 0x0003, 0x701f, 0x36a7, 0x0005, 0x080c, 0x6ec0, 0x0126,\r
++      0x2091, 0x8000, 0x20a9, 0x0005, 0x20e1, 0x0001, 0x2099, 0x18a6,\r
++      0x400a, 0x2100, 0x9210, 0x9399, 0x0000, 0x94a1, 0x0000, 0x95a9,\r
++      0x0000, 0xa85c, 0x9080, 0x0019, 0x2009, 0x0020, 0x012e, 0xaf60,\r
++      0x0804, 0x4af0, 0x2091, 0x8000, 0x7837, 0x4000, 0x7833, 0x0010,\r
++      0x7883, 0x4000, 0x7887, 0x4953, 0x788b, 0x5020, 0x788f, 0x2020,\r
++      0x2009, 0x017f, 0x2104, 0x7892, 0x3f00, 0x7896, 0x2061, 0x0100,\r
++      0x6200, 0x2061, 0x0200, 0x603c, 0x8007, 0x9205, 0x789a, 0x2009,\r
++      0x04fd, 0x2104, 0x789e, 0x2091, 0x5000, 0x2091, 0x4080, 0x2001,\r
++      0x0089, 0x2004, 0xd084, 0x0180, 0x2001, 0x1a19, 0x2004, 0x9005,\r
++      0x0128, 0x2001, 0x008b, 0x2004, 0xd0fc, 0x0dd8, 0x2001, 0x008a,\r
++      0x2003, 0x0002, 0x2003, 0x1001, 0x2071, 0x0080, 0x0804, 0x0427,\r
++      0x81ff, 0x1904, 0x3556, 0x7984, 0x080c, 0x65ff, 0x1904, 0x3559,\r
++      0x7e98, 0x9684, 0x3fff, 0x9082, 0x4000, 0x1a04, 0x3559, 0x7c88,\r
++      0x7d8c, 0x080c, 0x6762, 0x080c, 0x6731, 0x0000, 0x1518, 0x2061,\r
++      0x1cd0, 0x0126, 0x2091, 0x8000, 0x6000, 0x9086, 0x0000, 0x0148,\r
++      0x6014, 0x904d, 0x0130, 0xa86c, 0x9406, 0x1118, 0xa870, 0x9506,\r
++      0x0150, 0x012e, 0x9ce0, 0x0018, 0x2001, 0x181a, 0x2004, 0x9c02,\r
++      0x1a04, 0x3556, 0x0c30, 0x080c, 0xc768, 0x012e, 0x0904, 0x3556,\r
++      0x0804, 0x3524, 0x900e, 0x2001, 0x0005, 0x080c, 0x6ec0, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0xce2a, 0x080c, 0x6c81, 0x012e, 0x0804,\r
++      0x3524, 0x00a6, 0x2950, 0xb198, 0x080c, 0x65ff, 0x1904, 0x3793,\r
++      0xb6a4, 0x9684, 0x3fff, 0x9082, 0x4000, 0x16e8, 0xb49c, 0xb5a0,\r
++      0x080c, 0x6762, 0x080c, 0x6731, 0x1520, 0x2061, 0x1cd0, 0x0126,\r
++      0x2091, 0x8000, 0x6000, 0x9086, 0x0000, 0x0148, 0x6014, 0x904d,\r
++      0x0130, 0xa86c, 0x9406, 0x1118, 0xa870, 0x9506, 0x0158, 0x012e,\r
++      0x9ce0, 0x0018, 0x2001, 0x181a, 0x2004, 0x9c02, 0x2009, 0x000d,\r
++      0x12b0, 0x0c28, 0x080c, 0xc768, 0x012e, 0x2009, 0x0003, 0x0178,\r
++      0x00e0, 0x900e, 0x2001, 0x0005, 0x080c, 0x6ec0, 0x0126, 0x2091,\r
++      0x8000, 0x080c, 0xce2a, 0x080c, 0x6c75, 0x012e, 0x0070, 0xb097,\r
++      0x4005, 0xb19a, 0x0010, 0xb097, 0x4006, 0x900e, 0x9085, 0x0001,\r
++      0x2001, 0x0030, 0x2a48, 0x00ae, 0x0005, 0xb097, 0x4000, 0x9006,\r
++      0x918d, 0x0001, 0x2008, 0x2a48, 0x00ae, 0x0005, 0x81ff, 0x1904,\r
++      0x3556, 0x080c, 0x4abb, 0x0904, 0x3559, 0x080c, 0x66c6, 0x0904,\r
++      0x3556, 0x080c, 0x6768, 0x0904, 0x3556, 0x0804, 0x451c, 0x81ff,\r
++      0x1904, 0x3556, 0x080c, 0x4ad7, 0x0904, 0x3559, 0x080c, 0x67f6,\r
++      0x0904, 0x3556, 0x2019, 0x0005, 0x79a8, 0x080c, 0x6783, 0x0904,\r
++      0x3556, 0x7888, 0x908a, 0x1000, 0x1a04, 0x3559, 0x8003, 0x800b,\r
++      0x810b, 0x9108, 0x080c, 0x8501, 0x7984, 0xd184, 0x1904, 0x3524,\r
++      0x0804, 0x451c, 0x0126, 0x2091, 0x8000, 0x81ff, 0x0118, 0x2009,\r
++      0x0001, 0x0450, 0x2029, 0x07ff, 0x645c, 0x2400, 0x9506, 0x01f8,\r
++      0x2508, 0x080c, 0x65ff, 0x11d8, 0x080c, 0x67f6, 0x1128, 0x2009,\r
++      0x0002, 0x62c0, 0x2518, 0x00c0, 0x2019, 0x0004, 0x900e, 0x080c,\r
++      0x6783, 0x1118, 0x2009, 0x0006, 0x0078, 0x7884, 0x908a, 0x1000,\r
++      0x1270, 0x8003, 0x800b, 0x810b, 0x9108, 0x080c, 0x8501, 0x8529,\r
++      0x1ae0, 0x012e, 0x0804, 0x3524, 0x012e, 0x0804, 0x3556, 0x012e,\r
++      0x0804, 0x3559, 0x080c, 0x4abb, 0x0904, 0x3559, 0x080c, 0x66c6,\r
++      0x0904, 0x3556, 0xbaa0, 0x2019, 0x0005, 0x00c6, 0x9066, 0x080c,\r
++      0x928b, 0x0076, 0x903e, 0x080c, 0x9168, 0x900e, 0x080c, 0xe2eb,\r
++      0x007e, 0x00ce, 0x080c, 0x6762, 0x0804, 0x3524, 0x080c, 0x4abb,\r
++      0x0904, 0x3559, 0x080c, 0x6762, 0x2208, 0x0804, 0x3524, 0x0156,\r
++      0x00d6, 0x00e6, 0x2069, 0x1910, 0x6810, 0x6914, 0x910a, 0x1208,\r
++      0x900e, 0x6816, 0x9016, 0x901e, 0x20a9, 0x007e, 0x2069, 0x1000,\r
++      0x2d04, 0x905d, 0x0118, 0xb84c, 0x0059, 0x9210, 0x8d68, 0x1f04,\r
++      0x3848, 0x2300, 0x9218, 0x00ee, 0x00de, 0x015e, 0x0804, 0x3524,\r
++      0x00f6, 0x0016, 0x907d, 0x0138, 0x9006, 0x8000, 0x2f0c, 0x81ff,\r
++      0x0110, 0x2178, 0x0cd0, 0x001e, 0x00fe, 0x0005, 0x2069, 0x1910,\r
++      0x6910, 0x62bc, 0x0804, 0x3524, 0x81ff, 0x0120, 0x2009, 0x0001,\r
++      0x0804, 0x3556, 0x0126, 0x2091, 0x8000, 0x080c, 0x56e3, 0x0128,\r
++      0x2009, 0x0007, 0x012e, 0x0804, 0x3556, 0x012e, 0x615c, 0x9190,\r
++      0x3325, 0x2215, 0x9294, 0x00ff, 0x637c, 0x83ff, 0x0108, 0x6280,\r
++      0x67dc, 0x97c4, 0x000a, 0x98c6, 0x000a, 0x1118, 0x2031, 0x0001,\r
++      0x00e8, 0x97c4, 0x0022, 0x98c6, 0x0022, 0x1118, 0x2031, 0x0003,\r
++      0x00a8, 0x97c4, 0x0012, 0x98c6, 0x0012, 0x1118, 0x2031, 0x0002,\r
++      0x0068, 0x080c, 0x73bc, 0x1118, 0x2031, 0x0004, 0x0038, 0xd79c,\r
++      0x0120, 0x2009, 0x0005, 0x0804, 0x3556, 0x9036, 0x7e9a, 0x7f9e,\r
++      0x0804, 0x3524, 0x614c, 0x6250, 0x2019, 0x1986, 0x231c, 0x2001,\r
++      0x1987, 0x2004, 0x789a, 0x0804, 0x3524, 0x0126, 0x2091, 0x8000,\r
++      0x6138, 0x623c, 0x6340, 0x012e, 0x0804, 0x3524, 0x080c, 0x4ad7,\r
++      0x0904, 0x3559, 0xba44, 0xbb38, 0x0804, 0x3524, 0x080c, 0x0dd5,\r
++      0x080c, 0x4ad7, 0x2110, 0x0904, 0x3559, 0xb804, 0x908c, 0x00ff,\r
++      0x918e, 0x0006, 0x0140, 0x9084, 0xff00, 0x9086, 0x0600, 0x2009,\r
++      0x0009, 0x1904, 0x3556, 0x0126, 0x2091, 0x8000, 0x2019, 0x0005,\r
++      0x00c6, 0x9066, 0x080c, 0xa808, 0x080c, 0x928b, 0x0076, 0x903e,\r
++      0x080c, 0x9168, 0x900e, 0x080c, 0xe2eb, 0x007e, 0x00ce, 0xb807,\r
++      0x0407, 0x012e, 0x0804, 0x3524, 0x614c, 0x6250, 0x7884, 0x604e,\r
++      0x7b88, 0x6352, 0x2069, 0x1847, 0x831f, 0x9305, 0x6816, 0x788c,\r
++      0x2069, 0x1986, 0x2d1c, 0x206a, 0x7e98, 0x9682, 0x0014, 0x1210,\r
++      0x2031, 0x07d0, 0x2069, 0x1987, 0x2d04, 0x266a, 0x789a, 0x0804,\r
++      0x3524, 0x0126, 0x2091, 0x8000, 0x7884, 0x603a, 0xd0c4, 0x01a8,\r
++      0x00d6, 0x78a8, 0x2009, 0x199d, 0x200a, 0x78ac, 0x2011, 0x199e,\r
++      0x2012, 0x2069, 0x0100, 0x6838, 0x9086, 0x0007, 0x1118, 0x2214,\r
++      0x6a5a, 0x0010, 0x210c, 0x695a, 0x00de, 0x7884, 0xd0b4, 0x0120,\r
++      0x3b00, 0x9084, 0xff3f, 0x20d8, 0x7888, 0x603e, 0x2011, 0x0114,\r
++      0x220c, 0x7888, 0xd08c, 0x0118, 0x918d, 0x0080, 0x0010, 0x918c,\r
++      0xff7f, 0x2112, 0x788c, 0x6042, 0x9084, 0x0020, 0x0130, 0x78b4,\r
++      0x6046, 0x9084, 0x0001, 0x090c, 0x420e, 0x6040, 0xd0cc, 0x0120,\r
++      0x78b0, 0x2011, 0x0114, 0x2012, 0x012e, 0x0804, 0x3524, 0x00f6,\r
++      0x2079, 0x1800, 0x7a38, 0xa898, 0x9084, 0xfebf, 0x9215, 0xa89c,\r
++      0x9084, 0xfebf, 0x8002, 0x9214, 0x7838, 0x9084, 0x0140, 0x9215,\r
++      0x7a3a, 0xa897, 0x4000, 0x900e, 0x9085, 0x0001, 0x2001, 0x0000,\r
++      0x00fe, 0x0005, 0x7898, 0x9005, 0x01a8, 0x7888, 0x9025, 0x0904,\r
++      0x3559, 0x788c, 0x902d, 0x0904, 0x3559, 0x900e, 0x080c, 0x65ff,\r
++      0x1120, 0xba44, 0xbb38, 0xbc46, 0xbd3a, 0x9186, 0x07ff, 0x0190,\r
++      0x8108, 0x0ca0, 0x080c, 0x4ad7, 0x0904, 0x3559, 0x7888, 0x900d,\r
++      0x0904, 0x3559, 0x788c, 0x9005, 0x0904, 0x3559, 0xba44, 0xb946,\r
++      0xbb38, 0xb83a, 0x0804, 0x3524, 0x2011, 0xbc09, 0x0010, 0x2011,\r
++      0xbc05, 0x080c, 0x56e3, 0x1904, 0x3556, 0x00c6, 0x2061, 0x0100,\r
++      0x7984, 0x9186, 0x00ff, 0x1130, 0x2001, 0x1818, 0x2004, 0x9085,\r
++      0xff00, 0x0088, 0x9182, 0x007f, 0x16e0, 0x9188, 0x3325, 0x210d,\r
++      0x918c, 0x00ff, 0x2001, 0x1818, 0x2004, 0x0026, 0x9116, 0x002e,\r
++      0x0580, 0x810f, 0x9105, 0x0126, 0x2091, 0x8000, 0x0006, 0x080c,\r
++      0xae0b, 0x000e, 0x0510, 0x602e, 0x620a, 0x7984, 0x00b6, 0x080c,\r
++      0x65a4, 0x2b08, 0x00be, 0x1500, 0x6112, 0x6023, 0x0001, 0x080c,\r
++      0x4aa4, 0x01d0, 0x9006, 0xa866, 0x7007, 0x0003, 0xa832, 0xa868,\r
++      0xc0fd, 0xa86a, 0x701f, 0x39ff, 0x2900, 0x6016, 0x2009, 0x0032,\r
++      0x080c, 0xaedc, 0x012e, 0x00ce, 0x0005, 0x012e, 0x00ce, 0x0804,\r
++      0x3556, 0x00ce, 0x0804, 0x3559, 0x080c, 0xae61, 0x0cb0, 0xa830,\r
++      0x9086, 0x0100, 0x0904, 0x3556, 0x0804, 0x3524, 0x2061, 0x1a71,\r
++      0x0126, 0x2091, 0x8000, 0x6000, 0xd084, 0x0170, 0x6104, 0x6208,\r
++      0x2061, 0x1800, 0x6354, 0x6074, 0x789a, 0x60c0, 0x789e, 0x60bc,\r
++      0x78aa, 0x012e, 0x0804, 0x3524, 0x900e, 0x2110, 0x0c88, 0x81ff,\r
++      0x1904, 0x3556, 0x080c, 0x73bc, 0x0904, 0x3556, 0x0126, 0x2091,\r
++      0x8000, 0x6254, 0x6074, 0x9202, 0x0248, 0x9085, 0x0001, 0x080c,\r
++      0x28a7, 0x080c, 0x58fd, 0x012e, 0x0804, 0x3524, 0x012e, 0x0804,\r
++      0x3559, 0x0006, 0x0016, 0x00c6, 0x00e6, 0x2001, 0x19a9, 0x2070,\r
++      0x2061, 0x1847, 0x6008, 0x2072, 0x900e, 0x2011, 0x1400, 0x080c,\r
++      0x8f68, 0x7206, 0x00ee, 0x00ce, 0x001e, 0x000e, 0x0005, 0x0126,\r
++      0x2091, 0x8000, 0x81ff, 0x0128, 0x012e, 0x2021, 0x400b, 0x0804,\r
++      0x3526, 0x7884, 0xd0fc, 0x0148, 0x2001, 0x002a, 0x2004, 0x9082,\r
++      0x00e1, 0x0288, 0x012e, 0x0804, 0x3559, 0x2001, 0x002a, 0x2004,\r
++      0x2069, 0x1847, 0x6908, 0x9102, 0x1230, 0x012e, 0x0804, 0x3559,\r
++      0x012e, 0x0804, 0x3556, 0x080c, 0xadcb, 0x0dd0, 0x7884, 0xd0fc,\r
++      0x0904, 0x3aca, 0x00c6, 0x080c, 0x4aa4, 0x00ce, 0x0d88, 0xa867,\r
++      0x0000, 0x7884, 0xa80a, 0x7898, 0xa80e, 0x789c, 0xa812, 0x2001,\r
++      0x002e, 0x2004, 0xa81a, 0x2001, 0x002f, 0x2004, 0xa81e, 0x2001,\r
++      0x0030, 0x2004, 0xa822, 0x2001, 0x0031, 0x2004, 0xa826, 0x2001,\r
++      0x0034, 0x2004, 0xa82a, 0x2001, 0x0035, 0x2004, 0xa82e, 0x2001,\r
++      0x002a, 0x2004, 0x9080, 0x0003, 0x9084, 0x00fc, 0x8004, 0xa816,\r
++      0x080c, 0x3c50, 0x0928, 0x7014, 0x2048, 0xad2c, 0xac28, 0xab1c,\r
++      0xaa18, 0xa930, 0xa808, 0xd0b4, 0x1120, 0x2029, 0x0000, 0x2021,\r
++      0x0000, 0x8906, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0,\r
++      0x9080, 0x001b, 0x080c, 0x4aed, 0x701f, 0x3b8d, 0x7023, 0x0001,\r
++      0x012e, 0x0005, 0x0046, 0x0086, 0x0096, 0x00a6, 0x00b6, 0x00c6,\r
++      0x00d6, 0x00e6, 0x00f6, 0x080c, 0x3a39, 0x2001, 0x199f, 0x2003,\r
++      0x0000, 0x2021, 0x000a, 0x2061, 0x0100, 0x6104, 0x0016, 0x60bb,\r
++      0x0000, 0x60bf, 0x32e1, 0x60bf, 0x0012, 0x080c, 0x3cbf, 0x080c,\r
++      0x3c7e, 0x00f6, 0x00e6, 0x0086, 0x2940, 0x2071, 0x1a66, 0x2079,\r
++      0x0090, 0x00d6, 0x2069, 0x0000, 0x6884, 0xd0b4, 0x0140, 0x2001,\r
++      0x0035, 0x2004, 0x780e, 0x2001, 0x0034, 0x2004, 0x780a, 0x00de,\r
++      0x2011, 0x0001, 0x080c, 0x4052, 0x008e, 0x00ee, 0x00fe, 0x080c,\r
++      0x3f7f, 0x080c, 0x3e84, 0x05b8, 0x2001, 0x020b, 0x2004, 0x9084,\r
++      0x0140, 0x1db8, 0x080c, 0x40c6, 0x00f6, 0x2079, 0x0300, 0x78bc,\r
++      0x00fe, 0x908c, 0x0070, 0x1560, 0x2071, 0x0200, 0x7037, 0x0000,\r
++      0x7050, 0x9084, 0xff00, 0x9086, 0x3200, 0x1510, 0x7037, 0x0001,\r
++      0x7050, 0x9084, 0xff00, 0x9086, 0xe100, 0x11d0, 0x7037, 0x0000,\r
++      0x7054, 0x7037, 0x0000, 0x715c, 0x9106, 0x1190, 0x2001, 0x1820,\r
++      0x2004, 0x9106, 0x1168, 0x00c6, 0x2061, 0x0100, 0x6024, 0x9084,\r
++      0x1e00, 0x00ce, 0x0138, 0x080c, 0x3e8e, 0x080c, 0x3c79, 0x0058,\r
++      0x080c, 0x3c79, 0x080c, 0x3fea, 0x080c, 0x3f75, 0x2001, 0x020b,\r
++      0x2004, 0xd0e4, 0x0dd8, 0x2001, 0x032a, 0x2003, 0x0004, 0x2061,\r
++      0x0100, 0x6027, 0x0002, 0x001e, 0x6106, 0x2011, 0x020d, 0x2013,\r
++      0x0020, 0x60bb, 0x0000, 0x60bf, 0x0108, 0x60bf, 0x0012, 0x2001,\r
++      0x0004, 0x200c, 0x918c, 0xfffd, 0x2102, 0x080c, 0x12ed, 0x2009,\r
++      0x0028, 0x080c, 0x23d2, 0x2001, 0x0227, 0x200c, 0x2102, 0x00fe,\r
++      0x00ee, 0x00de, 0x00ce, 0x00be, 0x00ae, 0x009e, 0x008e, 0x004e,\r
++      0x2001, 0x199f, 0x2004, 0x9005, 0x1118, 0x012e, 0x0804, 0x3524,\r
++      0x012e, 0x2021, 0x400c, 0x0804, 0x3526, 0x0016, 0x0026, 0x0036,\r
++      0x0046, 0x0056, 0x0076, 0x0086, 0x0096, 0x00d6, 0x0156, 0x7014,\r
++      0x2048, 0x7020, 0x20a8, 0x8000, 0x7022, 0xa804, 0x9005, 0x0904,\r
++      0x3be9, 0x2048, 0x1f04, 0x3b9d, 0x7068, 0x2040, 0xa28c, 0xa390,\r
++      0xa494, 0xa598, 0xa930, 0xa808, 0xd0b4, 0x1120, 0x2029, 0x0000,\r
++      0x2021, 0x0000, 0x0096, 0x7014, 0x2048, 0xa864, 0x009e, 0x9086,\r
++      0x0103, 0x0170, 0x8906, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084,\r
++      0xffc0, 0x9080, 0x001b, 0x080c, 0x4aed, 0x701f, 0x3b8d, 0x00b0,\r
++      0x8906, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080,\r
++      0x001b, 0x21a8, 0x27e0, 0x2098, 0x27e8, 0x20a0, 0x0006, 0x080c,\r
++      0x0f7c, 0x000e, 0x080c, 0x4af0, 0x701f, 0x3b8d, 0x015e, 0x00de,\r
++      0x009e, 0x008e, 0x007e, 0x005e, 0x004e, 0x003e, 0x002e, 0x001e,\r
++      0x0005, 0x7014, 0x2048, 0xa864, 0x9086, 0x0103, 0x1118, 0x701f,\r
++      0x3c4e, 0x0450, 0x7014, 0x2048, 0xa868, 0xc0fd, 0xa86a, 0x2009,\r
++      0x007f, 0x080c, 0x659e, 0x0110, 0x9006, 0x0030, 0xb813, 0x00ff,\r
++      0xb817, 0xfffd, 0x080c, 0xcff9, 0x015e, 0x00de, 0x009e, 0x008e,\r
++      0x007e, 0x005e, 0x004e, 0x003e, 0x002e, 0x001e, 0x0904, 0x3556,\r
++      0x0016, 0x0026, 0x0036, 0x0046, 0x0056, 0x0076, 0x0086, 0x0096,\r
++      0x00d6, 0x0156, 0x701f, 0x3c20, 0x7007, 0x0003, 0x0804, 0x3bde,\r
++      0xa830, 0x9086, 0x0100, 0x2021, 0x400c, 0x0904, 0x3526, 0x0076,\r
++      0xad10, 0xac0c, 0xab24, 0xaa20, 0xa930, 0xa808, 0xd0b4, 0x1120,\r
++      0x2029, 0x0000, 0x2021, 0x0000, 0x8906, 0x8006, 0x8007, 0x90bc,\r
++      0x003f, 0x9084, 0xffc0, 0x9080, 0x001b, 0x21a8, 0x27e0, 0x2098,\r
++      0x27e8, 0x20a0, 0x0006, 0x080c, 0x0f7c, 0x000e, 0x080c, 0x4af0,\r
++      0x007e, 0x701f, 0x3b8d, 0x7023, 0x0001, 0x0005, 0x0804, 0x3524,\r
++      0x0156, 0x00c6, 0xa814, 0x908a, 0x001e, 0x0218, 0xa833, 0x001e,\r
++      0x0010, 0xa832, 0x0078, 0x81ff, 0x0168, 0x0016, 0x080c, 0x4aa4,\r
++      0x001e, 0x0130, 0xa800, 0x2040, 0xa008, 0xa80a, 0x2100, 0x0c58,\r
++      0x9006, 0x0010, 0x9085, 0x0001, 0x00ce, 0x015e, 0x0005, 0x0006,\r
++      0x00f6, 0x2079, 0x0000, 0x7880, 0x9086, 0x0044, 0x00fe, 0x000e,\r
++      0x0005, 0x2001, 0x199f, 0x2003, 0x0001, 0x0005, 0x00f6, 0x00e6,\r
++      0x00c6, 0x2061, 0x0200, 0x2001, 0x19aa, 0x2004, 0x601a, 0x2061,\r
++      0x0100, 0x2001, 0x19a9, 0x2004, 0x60ce, 0x6104, 0xc1ac, 0x6106,\r
++      0x080c, 0x4aa4, 0xa813, 0x0019, 0xa817, 0x0001, 0x2900, 0xa85a,\r
++      0x2001, 0x002e, 0x2004, 0xa866, 0x2001, 0x002f, 0x2004, 0xa86a,\r
++      0x2061, 0x0090, 0x2079, 0x0100, 0x2001, 0x19a9, 0x2004, 0x6036,\r
++      0x2009, 0x0040, 0x080c, 0x23d2, 0x2001, 0x002a, 0x2004, 0x9084,\r
++      0xfff8, 0xa86e, 0x601a, 0xa873, 0x0000, 0x601f, 0x0000, 0x78ca,\r
++      0x9006, 0x600a, 0x600e, 0x00ce, 0x00ee, 0x00fe, 0x0005, 0x00e6,\r
++      0x080c, 0x4aa4, 0x2940, 0xa013, 0x0019, 0xa017, 0x0001, 0x2800,\r
++      0xa05a, 0x2001, 0x0030, 0x2004, 0xa866, 0x2001, 0x0031, 0x2004,\r
++      0xa86a, 0x2001, 0x002a, 0x2004, 0x9084, 0xfff8, 0xa86e, 0xa873,\r
++      0x0000, 0x2001, 0x032a, 0x2003, 0x0004, 0x2001, 0x0300, 0x2003,\r
++      0x0000, 0x2001, 0x020d, 0x2003, 0x0000, 0x2001, 0x0004, 0x200c,\r
++      0x918d, 0x0002, 0x2102, 0x00ee, 0x0005, 0x0126, 0x2091, 0x8000,\r
++      0x81ff, 0x0148, 0x080c, 0x2c30, 0x1130, 0x9006, 0x080c, 0x2b88,\r
++      0x9006, 0x080c, 0x2b6b, 0x7884, 0x9084, 0x0007, 0x0002, 0x3d0a,\r
++      0x3d13, 0x3d1c, 0x3d07, 0x3d07, 0x3d07, 0x3d07, 0x3d07, 0x012e,\r
++      0x0804, 0x3559, 0x2009, 0x0114, 0x2104, 0x9085, 0x0800, 0x200a,\r
++      0x080c, 0x3ed8, 0x00c0, 0x2009, 0x0114, 0x2104, 0x9085, 0x4000,\r
++      0x200a, 0x080c, 0x3ed8, 0x0078, 0x080c, 0x73bc, 0x1128, 0x012e,\r
++      0x2009, 0x0016, 0x0804, 0x3556, 0x81ff, 0x0128, 0x012e, 0x2021,\r
++      0x400b, 0x0804, 0x3526, 0x0086, 0x0096, 0x00a6, 0x00b6, 0x00c6,\r
++      0x00d6, 0x00e6, 0x00f6, 0x080c, 0x3a39, 0x2009, 0x0101, 0x210c,\r
++      0x0016, 0x7ec8, 0x7dcc, 0x9006, 0x2068, 0x2060, 0x2058, 0x080c,\r
++      0x41a1, 0x080c, 0x40f1, 0x903e, 0x2720, 0x00f6, 0x00e6, 0x0086,\r
++      0x2940, 0x2071, 0x1a66, 0x2079, 0x0090, 0x00d6, 0x2069, 0x0000,\r
++      0x6884, 0xd0b4, 0x0120, 0x68d4, 0x780e, 0x68d0, 0x780a, 0x00de,\r
++      0x2011, 0x0001, 0x080c, 0x4052, 0x080c, 0x2c38, 0x080c, 0x2c38,\r
++      0x080c, 0x2c38, 0x080c, 0x2c38, 0x080c, 0x4052, 0x008e, 0x00ee,\r
++      0x00fe, 0x080c, 0x3f7f, 0x2009, 0x9c40, 0x8109, 0x11b0, 0x080c,\r
++      0x3e8e, 0x2001, 0x0004, 0x200c, 0x918c, 0xfffd, 0x2102, 0x001e,\r
++      0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be, 0x00ae, 0x009e, 0x008e,\r
++      0x2009, 0x0017, 0x080c, 0x3556, 0x0cf8, 0x2001, 0x020b, 0x2004,\r
++      0x9084, 0x0140, 0x1d10, 0x00f6, 0x2079, 0x0000, 0x7884, 0x00fe,\r
++      0xd0bc, 0x0178, 0x2001, 0x0201, 0x200c, 0x81ff, 0x0150, 0x080c,\r
++      0x3f5d, 0x2d00, 0x9c05, 0x9b05, 0x0120, 0x080c, 0x3e8e, 0x0804,\r
++      0x3e3b, 0x080c, 0x40c6, 0x080c, 0x3fea, 0x080c, 0x3f40, 0x080c,\r
++      0x3f75, 0x00f6, 0x2079, 0x0100, 0x7824, 0xd0ac, 0x0130, 0x8b58,\r
++      0x080c, 0x3e8e, 0x00fe, 0x0804, 0x3e3b, 0x00fe, 0x080c, 0x3e84,\r
++      0x1150, 0x8d68, 0x2001, 0x0032, 0x2602, 0x2001, 0x0033, 0x2502,\r
++      0x080c, 0x3e8e, 0x0080, 0x87ff, 0x0138, 0x2001, 0x0201, 0x2004,\r
++      0x9005, 0x1908, 0x8739, 0x0038, 0x2001, 0x1a62, 0x2004, 0x9086,\r
++      0x0000, 0x1904, 0x3d8b, 0x2001, 0x032f, 0x2003, 0x00f6, 0x8631,\r
++      0x1208, 0x8529, 0x2500, 0x9605, 0x0904, 0x3e3b, 0x7884, 0xd0bc,\r
++      0x0128, 0x2d00, 0x9c05, 0x9b05, 0x1904, 0x3e3b, 0xa013, 0x0019,\r
++      0x2001, 0x032a, 0x2003, 0x0004, 0x7884, 0xd0ac, 0x1148, 0x2001,\r
++      0x1a62, 0x2003, 0x0003, 0x2001, 0x032a, 0x2003, 0x0009, 0x0030,\r
++      0xa017, 0x0001, 0x78b4, 0x9005, 0x0108, 0xa016, 0x2800, 0xa05a,\r
++      0x2009, 0x0040, 0x080c, 0x23d2, 0x2900, 0xa85a, 0xa813, 0x0019,\r
++      0x7884, 0xd0a4, 0x1180, 0xa817, 0x0000, 0x00c6, 0x20a9, 0x0004,\r
++      0x2061, 0x0090, 0x602b, 0x0008, 0x2001, 0x0203, 0x2004, 0x1f04,\r
++      0x3e12, 0x00ce, 0x0030, 0xa817, 0x0001, 0x78b0, 0x9005, 0x0108,\r
++      0xa816, 0x00f6, 0x00c6, 0x2079, 0x0100, 0x2061, 0x0090, 0x7827,\r
++      0x0002, 0x2001, 0x002a, 0x2004, 0x9084, 0xfff8, 0x601a, 0x0006,\r
++      0x2001, 0x002b, 0x2004, 0x601e, 0x78c6, 0x000e, 0x78ca, 0x00ce,\r
++      0x00fe, 0x0804, 0x3d45, 0x001e, 0x00c6, 0x2001, 0x032a, 0x2003,\r
++      0x0004, 0x2061, 0x0100, 0x6027, 0x0002, 0x6106, 0x2011, 0x020d,\r
++      0x2013, 0x0020, 0x2001, 0x0004, 0x200c, 0x918c, 0xfffd, 0x2102,\r
++      0x080c, 0x12ed, 0x7884, 0x9084, 0x0003, 0x9086, 0x0002, 0x01a0,\r
++      0x2009, 0x0028, 0x080c, 0x23d2, 0x2001, 0x0227, 0x200c, 0x2102,\r
++      0x6050, 0x9084, 0xb7ef, 0x6052, 0x602f, 0x0000, 0x604b, 0xf7f7,\r
++      0x6043, 0x0090, 0x6043, 0x0010, 0x00ce, 0x2d08, 0x2c10, 0x2b18,\r
++      0x2b00, 0x9c05, 0x9d05, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be,\r
++      0x00ae, 0x009e, 0x008e, 0x1118, 0x012e, 0x0804, 0x3524, 0x012e,\r
++      0x2021, 0x400c, 0x0804, 0x3526, 0x9085, 0x0001, 0x1d04, 0x3e8d,\r
++      0x2091, 0x6000, 0x8420, 0x9486, 0x0064, 0x0005, 0x2001, 0x0105,\r
++      0x2003, 0x0010, 0x2001, 0x032a, 0x2003, 0x0004, 0x2001, 0x1a62,\r
++      0x2003, 0x0000, 0x0071, 0x2009, 0x0048, 0x080c, 0x23d2, 0x2001,\r
++      0x0227, 0x2024, 0x2402, 0x2001, 0x0109, 0x2003, 0x4000, 0x9026,\r
++      0x0005, 0x00f6, 0x00e6, 0x2071, 0x1a66, 0x7000, 0x9086, 0x0000,\r
++      0x0520, 0x2079, 0x0090, 0x2009, 0x0206, 0x2104, 0x2009, 0x0203,\r
++      0x210c, 0x9106, 0x1120, 0x2009, 0x0040, 0x080c, 0x23d2, 0x782c,\r
++      0xd0fc, 0x0d88, 0x080c, 0x40c6, 0x7000, 0x9086, 0x0000, 0x1d58,\r
++      0x782b, 0x0004, 0x782c, 0xd0ac, 0x1de8, 0x2009, 0x0040, 0x080c,\r
++      0x23d2, 0x782b, 0x0002, 0x7003, 0x0000, 0x00ee, 0x00fe, 0x0005,\r
++      0x00f6, 0x2079, 0x0100, 0x2001, 0x1818, 0x200c, 0x7932, 0x7936,\r
++      0x080c, 0x2887, 0x7850, 0x9084, 0xfbff, 0x9085, 0x0030, 0x7852,\r
++      0x2019, 0x01f4, 0x8319, 0x1df0, 0x9084, 0xffcf, 0x9085, 0x2000,\r
++      0x7852, 0x20a9, 0x0046, 0x1d04, 0x3ef3, 0x2091, 0x6000, 0x1f04,\r
++      0x3ef3, 0x7850, 0x9085, 0x0400, 0x9084, 0xdfff, 0x7852, 0x2001,\r
++      0x0021, 0x2004, 0x9084, 0x0003, 0x9086, 0x0001, 0x1120, 0x7850,\r
++      0x9084, 0xdfff, 0x7852, 0x784b, 0xf7f7, 0x7843, 0x0090, 0x7843,\r
++      0x0010, 0x20a9, 0x0028, 0xa001, 0x1f04, 0x3f13, 0x7850, 0x9085,\r
++      0x1400, 0x7852, 0x2019, 0x61a8, 0x7854, 0xa001, 0xa001, 0xd08c,\r
++      0x1110, 0x8319, 0x1dc8, 0x7827, 0x0048, 0x7850, 0x9085, 0x0400,\r
++      0x7852, 0x7843, 0x0040, 0x2019, 0x01f4, 0xa001, 0xa001, 0x8319,\r
++      0x1de0, 0x2001, 0x0100, 0x080c, 0x2cef, 0x7827, 0x0020, 0x7843,\r
++      0x0000, 0x9006, 0x080c, 0x2cef, 0x7827, 0x0048, 0x00fe, 0x0005,\r
++      0x7884, 0xd0ac, 0x11c8, 0x00f6, 0x00e6, 0x2071, 0x1a62, 0x2079,\r
++      0x0320, 0x2001, 0x0201, 0x2004, 0x9005, 0x0160, 0x7000, 0x9086,\r
++      0x0000, 0x1140, 0x0051, 0xd0bc, 0x0108, 0x8738, 0x7003, 0x0003,\r
++      0x782b, 0x0019, 0x00ee, 0x00fe, 0x0005, 0x00f6, 0x2079, 0x0300,\r
++      0x78bc, 0x00fe, 0x908c, 0x0070, 0x0178, 0x2009, 0x0032, 0x260a,\r
++      0x2009, 0x0033, 0x250a, 0xd0b4, 0x0108, 0x8c60, 0xd0ac, 0x0108,\r
++      0x8d68, 0xd0a4, 0x0108, 0x8b58, 0x0005, 0x00f6, 0x2079, 0x0200,\r
++      0x781c, 0xd084, 0x0110, 0x7837, 0x0050, 0x00fe, 0x0005, 0x00e6,\r
++      0x2071, 0x0100, 0x2001, 0x19aa, 0x2004, 0x70e2, 0x080c, 0x3c6f,\r
++      0x1188, 0x2001, 0x1820, 0x2004, 0x2009, 0x181f, 0x210c, 0x918c,\r
++      0x00ff, 0x706e, 0x716a, 0x7066, 0x918d, 0x3200, 0x7162, 0x7073,\r
++      0xe109, 0x0080, 0x702c, 0x9085, 0x0002, 0x702e, 0x2009, 0x1818,\r
++      0x210c, 0x716e, 0x7063, 0x0100, 0x7166, 0x719e, 0x706b, 0x0000,\r
++      0x7073, 0x0809, 0x7077, 0x0008, 0x7078, 0x9080, 0x0100, 0x707a,\r
++      0x7080, 0x8000, 0x7082, 0x7087, 0xaaaa, 0x9006, 0x708a, 0x708e,\r
++      0x707e, 0x70d6, 0x70ab, 0x0036, 0x70af, 0x95d5, 0x7014, 0x9084,\r
++      0x1984, 0x9085, 0x0092, 0x7016, 0x080c, 0x40c6, 0x00f6, 0x2071,\r
++      0x1a62, 0x2079, 0x0320, 0x00d6, 0x2069, 0x0000, 0x6884, 0xd0b4,\r
++      0x0120, 0x689c, 0x780e, 0x6898, 0x780a, 0x00de, 0x2009, 0x03e8,\r
++      0x8109, 0x1df0, 0x792c, 0xd1fc, 0x0110, 0x782b, 0x0004, 0x2011,\r
++      0x0011, 0x080c, 0x4052, 0x2011, 0x0001, 0x080c, 0x4052, 0x00fe,\r
++      0x00ee, 0x0005, 0x00f6, 0x00e6, 0x2071, 0x1a62, 0x2079, 0x0320,\r
++      0x792c, 0xd1fc, 0x0904, 0x404f, 0x782b, 0x0002, 0x9026, 0xd19c,\r
++      0x1904, 0x404b, 0x7000, 0x0002, 0x404f, 0x4000, 0x4030, 0x404b,\r
++      0xd1bc, 0x1170, 0xd1dc, 0x1190, 0x8001, 0x7002, 0x2011, 0x0001,\r
++      0x080c, 0x4052, 0x0904, 0x404f, 0x080c, 0x4052, 0x0804, 0x404f,\r
++      0x00f6, 0x2079, 0x0300, 0x78bf, 0x0000, 0x00fe, 0x7810, 0x7914,\r
++      0x782b, 0x0004, 0x7812, 0x7916, 0x2001, 0x0201, 0x200c, 0x81ff,\r
++      0x0de8, 0x080c, 0x3f5d, 0x2009, 0x0001, 0x00f6, 0x2079, 0x0300,\r
++      0x78b8, 0x00fe, 0xd0ec, 0x0110, 0x2009, 0x0011, 0x792a, 0x00f8,\r
++      0x8001, 0x7002, 0x9184, 0x0880, 0x1140, 0x782c, 0xd0fc, 0x1904,\r
++      0x3ff4, 0x2011, 0x0001, 0x00b1, 0x0090, 0xa010, 0x9092, 0x0004,\r
++      0x9086, 0x0015, 0x1120, 0xa000, 0xa05a, 0x2011, 0x0031, 0xa212,\r
++      0xd1dc, 0x1960, 0x0828, 0x782b, 0x0004, 0x7003, 0x0000, 0x00ee,\r
++      0x00fe, 0x0005, 0xa014, 0x9005, 0x0550, 0x8001, 0x0036, 0x0096,\r
++      0xa016, 0xa058, 0x2048, 0xa010, 0x2009, 0x0031, 0x911a, 0x831c,\r
++      0x831c, 0x938a, 0x0007, 0x1a0c, 0x0dd5, 0x9398, 0x4080, 0x231d,\r
++      0x083f, 0x9080, 0x0004, 0x7a2a, 0x7100, 0x8108, 0x7102, 0x009e,\r
++      0x003e, 0x908a, 0x0035, 0x1140, 0x0096, 0xa058, 0x2048, 0xa804,\r
++      0xa05a, 0x2001, 0x0019, 0x009e, 0xa012, 0x9085, 0x0001, 0x0005,\r
++      0x40bd, 0x40b4, 0x40ab, 0x40a2, 0x4099, 0x4090, 0x4087, 0xa964,\r
++      0x7902, 0xa968, 0x7906, 0xa96c, 0x7912, 0xa970, 0x7916, 0x0005,\r
++      0xa974, 0x7902, 0xa978, 0x7906, 0xa97c, 0x7912, 0xa980, 0x7916,\r
++      0x0005, 0xa984, 0x7902, 0xa988, 0x7906, 0xa98c, 0x7912, 0xa990,\r
++      0x7916, 0x0005, 0xa994, 0x7902, 0xa998, 0x7906, 0xa99c, 0x7912,\r
++      0xa9a0, 0x7916, 0x0005, 0xa9a4, 0x7902, 0xa9a8, 0x7906, 0xa9ac,\r
++      0x7912, 0xa9b0, 0x7916, 0x0005, 0xa9b4, 0x7902, 0xa9b8, 0x7906,\r
++      0xa9bc, 0x7912, 0xa9c0, 0x7916, 0x0005, 0xa9c4, 0x7902, 0xa9c8,\r
++      0x7906, 0xa9cc, 0x7912, 0xa9d0, 0x7916, 0x0005, 0x00f6, 0x00e6,\r
++      0x0086, 0x2071, 0x1a66, 0x2079, 0x0090, 0x792c, 0xd1fc, 0x01e8,\r
++      0x782b, 0x0002, 0x2940, 0x9026, 0x7000, 0x0002, 0x40ed, 0x40d9,\r
++      0x40e4, 0x8001, 0x7002, 0xd19c, 0x1180, 0x2011, 0x0001, 0x080c,\r
++      0x4052, 0x190c, 0x4052, 0x0048, 0x8001, 0x7002, 0x782c, 0xd0fc,\r
++      0x1d38, 0x2011, 0x0001, 0x080c, 0x4052, 0x008e, 0x00ee, 0x00fe,\r
++      0x0005, 0x00f6, 0x00e6, 0x00c6, 0x0086, 0x2061, 0x0200, 0x2001,\r
++      0x19aa, 0x2004, 0x601a, 0x2061, 0x0100, 0x2001, 0x19a9, 0x2004,\r
++      0x60ce, 0x6104, 0xc1ac, 0x6106, 0x2001, 0x002c, 0x2004, 0x9005,\r
++      0x0520, 0x2038, 0x2001, 0x002e, 0x2024, 0x2001, 0x002f, 0x201c,\r
++      0x080c, 0x4aa4, 0xa813, 0x0019, 0xaf16, 0x2900, 0xa85a, 0x978a,\r
++      0x0007, 0x0220, 0x2138, 0x2009, 0x0007, 0x0010, 0x2708, 0x903e,\r
++      0x0096, 0xa858, 0x2048, 0xa85c, 0x9080, 0x0019, 0x009e, 0x080c,\r
++      0x4169, 0x1d68, 0x2900, 0xa85a, 0x00d0, 0x080c, 0x4aa4, 0xa813,\r
++      0x0019, 0xa817, 0x0001, 0x2900, 0xa85a, 0x2001, 0x002e, 0x2004,\r
++      0xa866, 0x2001, 0x002f, 0x2004, 0xa86a, 0x2001, 0x002a, 0x2004,\r
++      0x9084, 0xfff8, 0xa86e, 0x2001, 0x002b, 0x2004, 0xa872, 0x2061,\r
++      0x0090, 0x2079, 0x0100, 0x2001, 0x19a9, 0x2004, 0x6036, 0x2009,\r
++      0x0040, 0x080c, 0x23d2, 0x2001, 0x002a, 0x2004, 0x9084, 0xfff8,\r
++      0x601a, 0x0006, 0x2001, 0x002b, 0x2004, 0x601e, 0x78c6, 0x000e,\r
++      0x78ca, 0x9006, 0x600a, 0x600e, 0x008e, 0x00ce, 0x00ee, 0x00fe,\r
++      0x0005, 0x00e6, 0x2071, 0x0080, 0xaa60, 0x22e8, 0x20a0, 0x20e1,\r
++      0x0000, 0x2099, 0x0088, 0x702b, 0x0026, 0x7402, 0x7306, 0x9006,\r
++      0x700a, 0x700e, 0x810b, 0x810b, 0x21a8, 0x810b, 0x7112, 0x702b,\r
++      0x0041, 0x702c, 0xd0fc, 0x0de8, 0x702b, 0x0002, 0x702b, 0x0040,\r
++      0x4005, 0x7400, 0x7304, 0x87ff, 0x0190, 0x0086, 0x0096, 0x2940,\r
++      0x0086, 0x080c, 0x4aa4, 0x008e, 0xa058, 0x00a6, 0x2050, 0x2900,\r
++      0xb006, 0xa05a, 0x00ae, 0x009e, 0x008e, 0x9085, 0x0001, 0x00ee,\r
++      0x0005, 0x00e6, 0x2001, 0x002d, 0x2004, 0x9005, 0x0528, 0x2038,\r
++      0x2001, 0x0030, 0x2024, 0x2001, 0x0031, 0x201c, 0x080c, 0x4aa4,\r
++      0x2940, 0xa813, 0x0019, 0xaf16, 0x2900, 0xa85a, 0x978a, 0x0007,\r
++      0x0220, 0x2138, 0x2009, 0x0007, 0x0010, 0x2708, 0x903e, 0x0096,\r
++      0xa858, 0x2048, 0xa85c, 0x9080, 0x0019, 0x009e, 0x080c, 0x4169,\r
++      0x1d68, 0x2900, 0xa85a, 0x00d8, 0x080c, 0x4aa4, 0x2940, 0xa013,\r
++      0x0019, 0xa017, 0x0001, 0x2800, 0xa05a, 0x2001, 0x0030, 0x2004,\r
++      0xa066, 0x2001, 0x0031, 0x2004, 0xa06a, 0x2001, 0x002a, 0x2004,\r
++      0x9084, 0xfff8, 0xa06e, 0x2001, 0x002b, 0x2004, 0xa072, 0x2001,\r
++      0x032a, 0x2003, 0x0004, 0x7884, 0xd0ac, 0x1180, 0x2001, 0x0101,\r
++      0x200c, 0x918d, 0x0200, 0x2102, 0xa017, 0x0000, 0x2001, 0x1a62,\r
++      0x2003, 0x0003, 0x2001, 0x032a, 0x2003, 0x0009, 0x2001, 0x0300,\r
++      0x2003, 0x0000, 0x2001, 0x020d, 0x2003, 0x0000, 0x2001, 0x0004,\r
++      0x200c, 0x918d, 0x0002, 0x2102, 0x00ee, 0x0005, 0x0126, 0x2091,\r
++      0x8000, 0x20a9, 0x0007, 0x20a1, 0x1840, 0x20e9, 0x0001, 0x9006,\r
++      0x4004, 0x20a9, 0x000c, 0x20a1, 0xfff4, 0x20e9, 0x0000, 0x9006,\r
++      0x4004, 0x2009, 0x013c, 0x200a, 0x012e, 0x7880, 0x9086, 0x0052,\r
++      0x0108, 0x0005, 0x0804, 0x3524, 0x7d98, 0x7c9c, 0x0804, 0x361b,\r
++      0x080c, 0x73bc, 0x190c, 0x5fdf, 0x6040, 0x9084, 0x0020, 0x09b1,\r
++      0x2069, 0x1847, 0x2d00, 0x2009, 0x0030, 0x7a8c, 0x7b88, 0x7c9c,\r
++      0x7d98, 0x2039, 0x0001, 0x080c, 0x4aed, 0x701f, 0x4248, 0x0005,\r
++      0x080c, 0x56de, 0x1130, 0x3b00, 0x3a08, 0xc194, 0xc095, 0x20d8,\r
++      0x21d0, 0x2069, 0x1847, 0x6800, 0x9005, 0x0904, 0x3559, 0x6804,\r
++      0xd0ac, 0x0118, 0xd0a4, 0x0904, 0x3559, 0xd094, 0x00c6, 0x2061,\r
++      0x0100, 0x6104, 0x0138, 0x6200, 0x9292, 0x0005, 0x0218, 0x918c,\r
++      0xffdf, 0x0010, 0x918d, 0x0020, 0x6106, 0x00ce, 0xd08c, 0x00c6,\r
++      0x2061, 0x0100, 0x6104, 0x0118, 0x918d, 0x0010, 0x0010, 0x918c,\r
++      0xffef, 0x6106, 0x00ce, 0xd084, 0x0158, 0x6a28, 0x928a, 0x007f,\r
++      0x1a04, 0x3559, 0x9288, 0x3325, 0x210d, 0x918c, 0x00ff, 0x6166,\r
++      0xd0dc, 0x0130, 0x6828, 0x908a, 0x007f, 0x1a04, 0x3559, 0x605e,\r
++      0x6888, 0x9084, 0x0030, 0x8004, 0x8004, 0x8004, 0x8004, 0x0006,\r
++      0x2009, 0x19b1, 0x9080, 0x297a, 0x2005, 0x200a, 0x000e, 0x2009,\r
++      0x19b2, 0x9080, 0x297e, 0x2005, 0x200a, 0x6808, 0x908a, 0x0100,\r
++      0x0a04, 0x3559, 0x908a, 0x0841, 0x1a04, 0x3559, 0x9084, 0x0007,\r
++      0x1904, 0x3559, 0x680c, 0x9005, 0x0904, 0x3559, 0x6810, 0x9005,\r
++      0x0904, 0x3559, 0x6848, 0x6940, 0x910a, 0x1a04, 0x3559, 0x8001,\r
++      0x0904, 0x3559, 0x684c, 0x6944, 0x910a, 0x1a04, 0x3559, 0x8001,\r
++      0x0904, 0x3559, 0x2009, 0x1981, 0x200b, 0x0000, 0x2001, 0x1869,\r
++      0x2004, 0xd0c4, 0x0140, 0x7884, 0x200a, 0x2009, 0x017f, 0x200a,\r
++      0x3b00, 0xc085, 0x20d8, 0x6814, 0x908c, 0x00ff, 0x614e, 0x8007,\r
++      0x9084, 0x00ff, 0x6052, 0x080c, 0x76d5, 0x080c, 0x69a8, 0x080c,\r
++      0x69dc, 0x6808, 0x602a, 0x080c, 0x2344, 0x2009, 0x0170, 0x200b,\r
++      0x0080, 0xa001, 0xa001, 0x200b, 0x0000, 0x0036, 0x6b08, 0x080c,\r
++      0x28e1, 0x003e, 0x6000, 0x9086, 0x0000, 0x1904, 0x43df, 0x6818,\r
++      0x691c, 0x6a20, 0x6b24, 0x8007, 0x810f, 0x8217, 0x831f, 0x6016,\r
++      0x611a, 0x621e, 0x6322, 0x6c04, 0xd4f4, 0x0148, 0x6830, 0x6934,\r
++      0x6a38, 0x6b3c, 0x8007, 0x810f, 0x8217, 0x831f, 0x0010, 0x9084,\r
++      0xf0ff, 0x6006, 0x610a, 0x620e, 0x6312, 0x8007, 0x810f, 0x8217,\r
++      0x831f, 0x20a9, 0x0004, 0x20a1, 0x19b3, 0x20e9, 0x0001, 0x4001,\r
++      0x20a9, 0x0004, 0x20a1, 0x19cd, 0x20e9, 0x0001, 0x4001, 0x080c,\r
++      0x85ef, 0x00c6, 0x900e, 0x20a9, 0x0001, 0x6b70, 0xd384, 0x0510,\r
++      0x0068, 0x2009, 0x0100, 0x210c, 0x918e, 0x0008, 0x1110, 0x839d,\r
++      0x0010, 0x83f5, 0x3e18, 0x12b0, 0x3508, 0x8109, 0x080c, 0x7c8b,\r
++      0x6878, 0x6016, 0x6874, 0x2008, 0x9084, 0xff00, 0x8007, 0x600a,\r
++      0x9184, 0x00ff, 0x6006, 0x8108, 0x1118, 0x6003, 0x0003, 0x0010,\r
++      0x6003, 0x0001, 0x1f04, 0x4339, 0x00ce, 0x00c6, 0x2061, 0x199c,\r
++      0x6a88, 0x9284, 0xc000, 0x2010, 0x9286, 0x0000, 0x1158, 0x2063,\r
++      0x0000, 0x2001, 0x0001, 0x080c, 0x2b88, 0x2001, 0x0001, 0x080c,\r
++      0x2b6b, 0x0088, 0x9286, 0x4000, 0x1148, 0x2063, 0x0001, 0x9006,\r
++      0x080c, 0x2b88, 0x9006, 0x080c, 0x2b6b, 0x0028, 0x9286, 0x8000,\r
++      0x1d30, 0x2063, 0x0002, 0x00ce, 0x6888, 0xd0ec, 0x0130, 0x2011,\r
++      0x0114, 0x2204, 0x9085, 0x0100, 0x2012, 0x6a80, 0x9284, 0x0030,\r
++      0x9086, 0x0030, 0x1128, 0x9294, 0xffcf, 0x9295, 0x0020, 0x6a82,\r
++      0x2001, 0x197c, 0x6a80, 0x9294, 0x0030, 0x928e, 0x0000, 0x0170,\r
++      0x928e, 0x0010, 0x0118, 0x928e, 0x0020, 0x0140, 0x2003, 0xaaaa,\r
++      0x080c, 0x2956, 0x2001, 0x196d, 0x2102, 0x0008, 0x2102, 0x00c6,\r
++      0x2061, 0x0100, 0x602f, 0x0040, 0x602f, 0x0000, 0x00ce, 0x080c,\r
++      0x73bc, 0x0128, 0x080c, 0x4fdb, 0x0110, 0x080c, 0x28a7, 0x60d4,\r
++      0x9005, 0x01c0, 0x6003, 0x0001, 0x2009, 0x43c7, 0x00e0, 0x080c,\r
++      0x73bc, 0x1168, 0x2011, 0x7252, 0x080c, 0x84f3, 0x2011, 0x7245,\r
++      0x080c, 0x85cd, 0x080c, 0x76a9, 0x080c, 0x72ee, 0x0040, 0x080c,\r
++      0x5ed9, 0x0028, 0x6003, 0x0004, 0x2009, 0x43df, 0x0020, 0x080c,\r
++      0x68d4, 0x0804, 0x3524, 0x2001, 0x0170, 0x2004, 0x9084, 0x00ff,\r
++      0x9086, 0x004c, 0x1118, 0x2091, 0x30bd, 0x0817, 0x2091, 0x303d,\r
++      0x0817, 0x6000, 0x9086, 0x0000, 0x0904, 0x3556, 0x2069, 0x1847,\r
++      0x7890, 0x6842, 0x7894, 0x6846, 0x2d00, 0x2009, 0x0030, 0x7a8c,\r
++      0x7b88, 0x7c9c, 0x7d98, 0x2039, 0x0001, 0x0804, 0x4af0, 0x9006,\r
++      0x080c, 0x28a7, 0x81ff, 0x1904, 0x3556, 0x080c, 0x73bc, 0x11b0,\r
++      0x080c, 0x76a4, 0x080c, 0x601a, 0x080c, 0x3319, 0x0118, 0x6130,\r
++      0xc18d, 0x6132, 0x080c, 0xd230, 0x0130, 0x080c, 0x73df, 0x1118,\r
++      0x080c, 0x7394, 0x0038, 0x080c, 0x72ee, 0x0020, 0x080c, 0x5fdf,\r
++      0x080c, 0x5ed9, 0x0804, 0x3524, 0x81ff, 0x1904, 0x3556, 0x080c,\r
++      0x73bc, 0x1110, 0x0804, 0x3556, 0x6194, 0x81ff, 0x01a8, 0x704f,\r
++      0x0000, 0x2001, 0x1c80, 0x2009, 0x0040, 0x7a8c, 0x7b88, 0x7c9c,\r
++      0x7d98, 0x0126, 0x2091, 0x8000, 0x2039, 0x0001, 0x080c, 0x4af0,\r
++      0x701f, 0x3522, 0x012e, 0x0005, 0x704f, 0x0001, 0x00d6, 0x2069,\r
++      0x1c80, 0x20a9, 0x0040, 0x20e9, 0x0001, 0x20a1, 0x1c80, 0x2019,\r
++      0xffff, 0x4304, 0x655c, 0x9588, 0x3325, 0x210d, 0x918c, 0x00ff,\r
++      0x216a, 0x900e, 0x2011, 0x0002, 0x2100, 0x9506, 0x01a8, 0x080c,\r
++      0x65ff, 0x1190, 0xb814, 0x821c, 0x0238, 0x9398, 0x1c80, 0x9085,\r
++      0xff00, 0x8007, 0x201a, 0x0038, 0x9398, 0x1c80, 0x2324, 0x94a4,\r
++      0xff00, 0x9405, 0x201a, 0x8210, 0x8108, 0x9182, 0x0080, 0x1208,\r
++      0x0c18, 0x8201, 0x8007, 0x2d0c, 0x9105, 0x206a, 0x00de, 0x20a9,\r
++      0x0040, 0x20a1, 0x1c80, 0x2099, 0x1c80, 0x080c, 0x5f6a, 0x0804,\r
++      0x4439, 0x080c, 0x4ad7, 0x0904, 0x3559, 0x080c, 0x4aa4, 0x1120,\r
++      0x2009, 0x0002, 0x0804, 0x3556, 0x080c, 0x56cf, 0xd0b4, 0x0558,\r
++      0x7884, 0x908e, 0x007e, 0x0538, 0x908e, 0x007f, 0x0520, 0x908e,\r
++      0x0080, 0x0508, 0x080c, 0x3314, 0x1148, 0xb800, 0xd08c, 0x11d8,\r
++      0xb804, 0x9084, 0x00ff, 0x9086, 0x0006, 0x11a8, 0xa867, 0x0000,\r
++      0xa868, 0xc0fd, 0xa86a, 0x080c, 0xccfe, 0x1120, 0x2009, 0x0003,\r
++      0x0804, 0x3556, 0x7007, 0x0003, 0x701f, 0x44c7, 0x0005, 0x080c,\r
++      0x4ad7, 0x0904, 0x3559, 0x20a9, 0x002b, 0xb8c4, 0x20e0, 0xb8c8,\r
++      0x2098, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0002, 0x20a0, 0x4003,\r
++      0x20a9, 0x0008, 0x9080, 0x0006, 0x20a0, 0xb8c4, 0x20e0, 0xb8c8,\r
++      0x9080, 0x0006, 0x2098, 0x080c, 0x0f7c, 0x0070, 0x20a9, 0x0004,\r
++      0xa85c, 0x9080, 0x000a, 0x20a0, 0xb8c4, 0x20e0, 0xb8c8, 0x9080,\r
++      0x000a, 0x2098, 0x080c, 0x0f7c, 0x8906, 0x8006, 0x8007, 0x90bc,\r
++      0x003f, 0x9084, 0xffc0, 0x9080, 0x0002, 0x2009, 0x002b, 0x7a8c,\r
++      0x7b88, 0x7c9c, 0x7d98, 0x0804, 0x4af0, 0x81ff, 0x1904, 0x3556,\r
++      0x080c, 0x4abb, 0x0904, 0x3559, 0x080c, 0x6771, 0x0904, 0x3556,\r
++      0x0058, 0xa878, 0x9005, 0x0120, 0x2009, 0x0004, 0x0804, 0x3556,\r
++      0xa974, 0xaa94, 0x0804, 0x3524, 0x080c, 0x56d7, 0x0904, 0x3524,\r
++      0x701f, 0x4511, 0x7007, 0x0003, 0x0005, 0x81ff, 0x1904, 0x3556,\r
++      0x7888, 0x908a, 0x1000, 0x1a04, 0x3559, 0x080c, 0x4ad7, 0x0904,\r
++      0x3559, 0x080c, 0x6972, 0x0120, 0x080c, 0x697a, 0x1904, 0x3559,\r
++      0x080c, 0x67f6, 0x0904, 0x3556, 0x2019, 0x0004, 0x900e, 0x080c,\r
++      0x6783, 0x0904, 0x3556, 0x7984, 0x7a88, 0x04c9, 0x08a8, 0xa89c,\r
++      0x908a, 0x1000, 0x12f8, 0x080c, 0x4ad5, 0x01e0, 0x080c, 0x6972,\r
++      0x0118, 0x080c, 0x697a, 0x11b0, 0x080c, 0x67f6, 0x2009, 0x0002,\r
++      0x0168, 0x2009, 0x0002, 0x2019, 0x0004, 0x080c, 0x6783, 0x2009,\r
++      0x0003, 0x0120, 0xa998, 0xaa9c, 0x00d1, 0x0060, 0xa897, 0x4005,\r
++      0xa99a, 0x0010, 0xa897, 0x4006, 0x900e, 0x9085, 0x0001, 0x2001,\r
++      0x0030, 0x0005, 0xa897, 0x4000, 0x080c, 0x56d7, 0x0110, 0x9006,\r
++      0x0018, 0x900e, 0x9085, 0x0001, 0x2001, 0x0000, 0x0005, 0x9186,\r
++      0x00ff, 0x0110, 0x0071, 0x0060, 0x2029, 0x007e, 0x2061, 0x1800,\r
++      0x645c, 0x2400, 0x9506, 0x0110, 0x2508, 0x0019, 0x8529, 0x1ec8,\r
++      0x0005, 0x080c, 0x65ff, 0x1138, 0x2200, 0x8003, 0x800b, 0x810b,\r
++      0x9108, 0x080c, 0x8501, 0x0005, 0x81ff, 0x1904, 0x3556, 0x798c,\r
++      0x2001, 0x1980, 0x918c, 0x8000, 0x2102, 0x080c, 0x4abb, 0x0904,\r
++      0x3559, 0x080c, 0x6972, 0x0120, 0x080c, 0x697a, 0x1904, 0x3559,\r
++      0x080c, 0x66c6, 0x0904, 0x3556, 0x080c, 0x677a, 0x0904, 0x3556,\r
++      0x2001, 0x1980, 0x2004, 0xd0fc, 0x1904, 0x3524, 0x0804, 0x451c,\r
++      0xa9a0, 0x2001, 0x1980, 0x918c, 0x8000, 0xc18d, 0x2102, 0x080c,\r
++      0x4ac8, 0x01a0, 0x080c, 0x6972, 0x0118, 0x080c, 0x697a, 0x1170,\r
++      0x080c, 0x66c6, 0x2009, 0x0002, 0x0128, 0x080c, 0x677a, 0x1170,\r
++      0x2009, 0x0003, 0xa897, 0x4005, 0xa99a, 0x0010, 0xa897, 0x4006,\r
++      0x900e, 0x9085, 0x0001, 0x2001, 0x0030, 0x0005, 0xa897, 0x4000,\r
++      0x2001, 0x1980, 0x2004, 0xd0fc, 0x1128, 0x080c, 0x56d7, 0x0110,\r
++      0x9006, 0x0018, 0x900e, 0x9085, 0x0001, 0x2001, 0x0000, 0x0005,\r
++      0x81ff, 0x1904, 0x3556, 0x798c, 0x2001, 0x197f, 0x918c, 0x8000,\r
++      0x2102, 0x080c, 0x4abb, 0x0904, 0x3559, 0x080c, 0x6972, 0x0120,\r
++      0x080c, 0x697a, 0x1904, 0x3559, 0x080c, 0x66c6, 0x0904, 0x3556,\r
++      0x080c, 0x6768, 0x0904, 0x3556, 0x2001, 0x197f, 0x2004, 0xd0fc,\r
++      0x1904, 0x3524, 0x0804, 0x451c, 0xa9a0, 0x2001, 0x197f, 0x918c,\r
++      0x8000, 0xc18d, 0x2102, 0x080c, 0x4ac8, 0x01a0, 0x080c, 0x6972,\r
++      0x0118, 0x080c, 0x697a, 0x1170, 0x080c, 0x66c6, 0x2009, 0x0002,\r
++      0x0128, 0x080c, 0x6768, 0x1170, 0x2009, 0x0003, 0xa897, 0x4005,\r
++      0xa99a, 0x0010, 0xa897, 0x4006, 0x900e, 0x9085, 0x0001, 0x2001,\r
++      0x0030, 0x0005, 0xa897, 0x4000, 0x2001, 0x197f, 0x2004, 0xd0fc,\r
++      0x1128, 0x080c, 0x56d7, 0x0110, 0x9006, 0x0018, 0x900e, 0x9085,\r
++      0x0001, 0x2001, 0x0000, 0x0005, 0x6100, 0x0804, 0x3524, 0x080c,\r
++      0x4ad7, 0x0904, 0x3559, 0x080c, 0x56e3, 0x1904, 0x3556, 0x79a8,\r
++      0xd184, 0x1158, 0xb834, 0x8007, 0x789e, 0xb830, 0x8007, 0x789a,\r
++      0xbb2c, 0x831f, 0xba28, 0x8217, 0x0050, 0xb824, 0x8007, 0x789e,\r
++      0xb820, 0x8007, 0x789a, 0xbb1c, 0x831f, 0xba18, 0x8217, 0xb900,\r
++      0x918c, 0x0200, 0x0804, 0x3524, 0x78a8, 0x909c, 0x0003, 0xd0b4,\r
++      0x1148, 0x939a, 0x0003, 0x1a04, 0x3556, 0x625c, 0x7884, 0x9206,\r
++      0x1904, 0x46c9, 0x080c, 0x85d9, 0x2001, 0xfff4, 0x2009, 0x000c,\r
++      0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x2039, 0x0000, 0x0006, 0x78a8,\r
++      0x9084, 0x0080, 0x11c8, 0x0006, 0x0036, 0x2001, 0x1a7f, 0x201c,\r
++      0x7b9a, 0x2003, 0x0000, 0x2001, 0x1a80, 0x201c, 0x7b9e, 0x2003,\r
++      0x0000, 0x2001, 0x1a81, 0x201c, 0x7ba2, 0x2003, 0x0000, 0x003e,\r
++      0x000e, 0x000e, 0x0804, 0x4af0, 0x000e, 0x2031, 0x0000, 0x2061,\r
++      0x18b8, 0x2c44, 0xa66a, 0xa17a, 0xa772, 0xa076, 0xa28e, 0xa392,\r
++      0xa496, 0xa59a, 0x080c, 0x10e9, 0x7007, 0x0002, 0x701f, 0x46e9,\r
++      0x0005, 0x81ff, 0x1904, 0x3556, 0x080c, 0x4ad7, 0x0904, 0x3559,\r
++      0x080c, 0x6972, 0x1904, 0x3556, 0x00c6, 0x080c, 0x4aa4, 0x00ce,\r
++      0x0904, 0x3556, 0xa867, 0x0000, 0xa868, 0xc0fd, 0xa86a, 0x7ea8,\r
++      0x080c, 0xcca4, 0x0904, 0x3556, 0x7007, 0x0003, 0x701f, 0x4703,\r
++      0x0005, 0x080c, 0x420e, 0x0006, 0x0036, 0x2001, 0x1a7f, 0x201c,\r
++      0x7b9a, 0x2003, 0x0000, 0x2001, 0x1a80, 0x201c, 0x7b9e, 0x2003,\r
++      0x0000, 0x2001, 0x1a81, 0x201c, 0x7ba2, 0x2003, 0x0000, 0x003e,\r
++      0x000e, 0x0804, 0x3524, 0xa830, 0x9086, 0x0100, 0x0904, 0x3556,\r
++      0x8906, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080,\r
++      0x001b, 0x2009, 0x000c, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x0804,\r
++      0x4af0, 0x9006, 0x080c, 0x28a7, 0x78a8, 0x9084, 0x00ff, 0x9086,\r
++      0x00ff, 0x0118, 0x81ff, 0x1904, 0x3556, 0x080c, 0x73bc, 0x0110,\r
++      0x080c, 0x5fdf, 0x7888, 0x908a, 0x1000, 0x1a04, 0x3559, 0x7984,\r
++      0x9186, 0x00ff, 0x0138, 0x9182, 0x007f, 0x1a04, 0x3559, 0x2100,\r
++      0x080c, 0x2871, 0x0026, 0x00c6, 0x0126, 0x2091, 0x8000, 0x2061,\r
++      0x19fa, 0x601b, 0x0000, 0x601f, 0x0000, 0x6073, 0x0000, 0x6077,\r
++      0x0000, 0x080c, 0x73bc, 0x1158, 0x080c, 0x76a4, 0x080c, 0x601a,\r
++      0x9085, 0x0001, 0x080c, 0x7403, 0x080c, 0x72ee, 0x00d0, 0x080c,\r
++      0xadd2, 0x2061, 0x0100, 0x2001, 0x1818, 0x2004, 0x9084, 0x00ff,\r
++      0x810f, 0x9105, 0x604a, 0x6043, 0x0090, 0x6043, 0x0010, 0x2009,\r
++      0x1999, 0x200b, 0x0000, 0x2009, 0x002d, 0x2011, 0x5f05, 0x080c,\r
++      0x858b, 0x7984, 0x080c, 0x73bc, 0x1110, 0x2009, 0x00ff, 0x7a88,\r
++      0x080c, 0x457f, 0x012e, 0x00ce, 0x002e, 0x0804, 0x3524, 0x7984,\r
++      0x080c, 0x659e, 0x2b08, 0x1904, 0x3559, 0x0804, 0x3524, 0x81ff,\r
++      0x0120, 0x2009, 0x0001, 0x0804, 0x3556, 0x60dc, 0xd0ac, 0x1130,\r
++      0xd09c, 0x1120, 0x2009, 0x0005, 0x0804, 0x3556, 0x080c, 0x4aa4,\r
++      0x1120, 0x2009, 0x0002, 0x0804, 0x3556, 0x7984, 0x9192, 0x0021,\r
++      0x1a04, 0x3559, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0xa85c, 0x9080,\r
++      0x0019, 0x702a, 0xaf60, 0x7736, 0x080c, 0x4aed, 0x701f, 0x47b7,\r
++      0x7880, 0x9086, 0x006e, 0x0110, 0x701f, 0x518d, 0x0005, 0x2009,\r
++      0x0080, 0x080c, 0x65ff, 0x1118, 0x080c, 0x6972, 0x0120, 0x2021,\r
++      0x400a, 0x0804, 0x3526, 0x00d6, 0x0096, 0xa964, 0xaa6c, 0xab70,\r
++      0xac74, 0xad78, 0xae7c, 0xa884, 0x90be, 0x0100, 0x0904, 0x4850,\r
++      0x90be, 0x0112, 0x0904, 0x4850, 0x90be, 0x0113, 0x0904, 0x4850,\r
++      0x90be, 0x0114, 0x0904, 0x4850, 0x90be, 0x0117, 0x0904, 0x4850,\r
++      0x90be, 0x011a, 0x0904, 0x4850, 0x90be, 0x011c, 0x0904, 0x4850,\r
++      0x90be, 0x0121, 0x0904, 0x4837, 0x90be, 0x0131, 0x0904, 0x4837,\r
++      0x90be, 0x0171, 0x0904, 0x4850, 0x90be, 0x0173, 0x0904, 0x4850,\r
++      0x90be, 0x01a1, 0x1128, 0xa894, 0x8007, 0xa896, 0x0804, 0x485b,\r
++      0x90be, 0x0212, 0x0904, 0x4844, 0x90be, 0x0213, 0x05e8, 0x90be,\r
++      0x0214, 0x0500, 0x90be, 0x0217, 0x0188, 0x90be, 0x021a, 0x1120,\r
++      0xa89c, 0x8007, 0xa89e, 0x04e0, 0x90be, 0x021f, 0x05c8, 0x90be,\r
++      0x0300, 0x05b0, 0x009e, 0x00de, 0x0804, 0x3559, 0x7028, 0x9080,\r
++      0x0010, 0x2098, 0x20a0, 0x7034, 0x20e0, 0x20e8, 0x20a9, 0x0007,\r
++      0x080c, 0x4899, 0x7028, 0x9080, 0x000e, 0x2098, 0x20a0, 0x7034,\r
++      0x20e0, 0x20e8, 0x20a9, 0x0001, 0x080c, 0x4899, 0x00c8, 0x7028,\r
++      0x9080, 0x000c, 0x2098, 0x20a0, 0x7034, 0x20e0, 0x20e8, 0x20a9,\r
++      0x0001, 0x080c, 0x48a6, 0x00b8, 0x7028, 0x9080, 0x000e, 0x2098,\r
++      0x20a0, 0x7034, 0x20e0, 0x20e8, 0x20a9, 0x0001, 0x080c, 0x48a6,\r
++      0x7028, 0x9080, 0x000c, 0x2098, 0x20a0, 0x7034, 0x20e0, 0x20e8,\r
++      0x20a9, 0x0001, 0x04f1, 0x00c6, 0x080c, 0x4aa4, 0x0550, 0xa868,\r
++      0xc0fd, 0xa86a, 0xa867, 0x0119, 0x9006, 0xa882, 0xa87f, 0x0020,\r
++      0xa88b, 0x0001, 0x810b, 0xa9ae, 0xa8b2, 0xaab6, 0xabba, 0xacbe,\r
++      0xadc2, 0xa9c6, 0xa8ca, 0x00ce, 0x009e, 0x00de, 0xa866, 0xa822,\r
++      0xa868, 0xc0fd, 0xa86a, 0xa804, 0x2048, 0x080c, 0xccbf, 0x1120,\r
++      0x2009, 0x0003, 0x0804, 0x3556, 0x7007, 0x0003, 0x701f, 0x4890,\r
++      0x0005, 0x00ce, 0x009e, 0x00de, 0x2009, 0x0002, 0x0804, 0x3556,\r
++      0xa820, 0x9086, 0x8001, 0x1904, 0x3524, 0x2009, 0x0004, 0x0804,\r
++      0x3556, 0x0016, 0x0026, 0x3510, 0x20a9, 0x0002, 0x4002, 0x4104,\r
++      0x4004, 0x8211, 0x1dc8, 0x002e, 0x001e, 0x0005, 0x0016, 0x0026,\r
++      0x0036, 0x0046, 0x3520, 0x20a9, 0x0004, 0x4002, 0x4304, 0x4204,\r
++      0x4104, 0x4004, 0x8421, 0x1db8, 0x004e, 0x003e, 0x002e, 0x001e,\r
++      0x0005, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x3556, 0x60dc,\r
++      0xd0ac, 0x1130, 0xd09c, 0x1120, 0x2009, 0x0005, 0x0804, 0x3556,\r
++      0x7984, 0x78a8, 0x2040, 0x080c, 0xadcb, 0x1120, 0x9182, 0x007f,\r
++      0x0a04, 0x3559, 0x9186, 0x00ff, 0x0904, 0x3559, 0x9182, 0x0800,\r
++      0x1a04, 0x3559, 0x7a8c, 0x7b88, 0x607c, 0x9306, 0x1140, 0x6080,\r
++      0x924e, 0x0904, 0x3559, 0x99cc, 0xff00, 0x0904, 0x3559, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0x49b7, 0x0904, 0x4937, 0x0086, 0x90c6,\r
++      0x4000, 0x008e, 0x1538, 0x00c6, 0x0006, 0x0036, 0xb818, 0xbb1c,\r
++      0x9305, 0xbb20, 0x9305, 0xbb24, 0x9305, 0xbb28, 0x9305, 0xbb2c,\r
++      0x9305, 0xbb30, 0x9305, 0xbb34, 0x9305, 0x003e, 0x0570, 0xd88c,\r
++      0x1128, 0x080c, 0x6972, 0x0110, 0xc89d, 0x0438, 0x900e, 0x080c,\r
++      0x681f, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d, 0x000e,\r
++      0x00ce, 0x00b8, 0x90c6, 0x4007, 0x1110, 0x2408, 0x0090, 0x90c6,\r
++      0x4008, 0x1118, 0x2708, 0x2610, 0x0060, 0x90c6, 0x4009, 0x1108,\r
++      0x0040, 0x90c6, 0x4006, 0x1108, 0x0020, 0x2001, 0x4005, 0x2009,\r
++      0x000a, 0x2020, 0x012e, 0x0804, 0x3526, 0x000e, 0x00ce, 0x2b00,\r
++      0x7026, 0x0016, 0x00b6, 0x00c6, 0x00e6, 0x2c70, 0x080c, 0xaeaf,\r
++      0x0904, 0x498c, 0x2b00, 0x6012, 0x080c, 0xcfaa, 0x2e58, 0x00ee,\r
++      0x00e6, 0x00c6, 0x080c, 0x4aa4, 0x00ce, 0x2b70, 0x1158, 0x080c,\r
++      0xae61, 0x00ee, 0x00ce, 0x00be, 0x001e, 0x012e, 0x2009, 0x0002,\r
++      0x0804, 0x3556, 0x900e, 0xa966, 0xa96a, 0x2900, 0x6016, 0xa932,\r
++      0xa868, 0xc0fd, 0xd88c, 0x0108, 0xc0f5, 0xa86a, 0xd89c, 0x1110,\r
++      0x080c, 0x31bf, 0x6023, 0x0001, 0x9006, 0x080c, 0x653b, 0xd89c,\r
++      0x0138, 0x2001, 0x0004, 0x080c, 0x654f, 0x2009, 0x0003, 0x0030,\r
++      0x2001, 0x0002, 0x080c, 0x654f, 0x2009, 0x0002, 0x080c, 0xaedc,\r
++      0x78a8, 0xd094, 0x0138, 0x00ee, 0x7024, 0x00e6, 0x2058, 0xb8cc,\r
++      0xc08d, 0xb8ce, 0x9085, 0x0001, 0x00ee, 0x00ce, 0x00be, 0x001e,\r
++      0x012e, 0x1120, 0x2009, 0x0003, 0x0804, 0x3556, 0x7007, 0x0003,\r
++      0x701f, 0x499b, 0x0005, 0xa830, 0x9086, 0x0100, 0x7024, 0x2058,\r
++      0x1138, 0x2009, 0x0004, 0xba04, 0x9294, 0x00ff, 0x0804, 0x562c,\r
++      0x900e, 0xa868, 0xd0f4, 0x1904, 0x3524, 0x080c, 0x681f, 0x1108,\r
++      0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d, 0x0804, 0x3524, 0x00e6,\r
++      0x00d6, 0x0096, 0x83ff, 0x0904, 0x4a06, 0x902e, 0x080c, 0xadcb,\r
++      0x0130, 0x9026, 0x20a9, 0x0800, 0x2071, 0x1000, 0x0030, 0x2021,\r
++      0x007f, 0x20a9, 0x0781, 0x2071, 0x107f, 0x2e04, 0x9005, 0x11b8,\r
++      0x2100, 0x9406, 0x1904, 0x4a17, 0x2428, 0x94ce, 0x007f, 0x1120,\r
++      0x92ce, 0xfffd, 0x1558, 0x0030, 0x94ce, 0x0080, 0x1130, 0x92ce,\r
++      0xfffc, 0x1520, 0x93ce, 0x00ff, 0x1508, 0xc5fd, 0x0480, 0x2058,\r
++      0xbf10, 0x2700, 0x9306, 0x11e8, 0xbe14, 0x2600, 0x9206, 0x11c8,\r
++      0x2400, 0x9106, 0x1180, 0xd884, 0x0598, 0xd894, 0x1588, 0x080c,\r
++      0x6912, 0x1570, 0x2001, 0x4000, 0x0460, 0x080c, 0x6972, 0x1540,\r
++      0x2001, 0x4000, 0x0430, 0x2001, 0x4007, 0x0418, 0x2001, 0x4006,\r
++      0x0400, 0x2400, 0x9106, 0x1158, 0xbe14, 0x87ff, 0x1128, 0x86ff,\r
++      0x0918, 0x080c, 0xadcb, 0x1900, 0x2001, 0x4008, 0x0090, 0x8420,\r
++      0x8e70, 0x1f04, 0x49cd, 0x85ff, 0x1130, 0x2001, 0x4009, 0x0048,\r
++      0x2001, 0x0001, 0x0030, 0x080c, 0x659e, 0x1dd0, 0xbb12, 0xba16,\r
++      0x9006, 0x9005, 0x009e, 0x00de, 0x00ee, 0x0005, 0x81ff, 0x0120,\r
++      0x2009, 0x0001, 0x0804, 0x3556, 0x080c, 0x4aa4, 0x1120, 0x2009,\r
++      0x0002, 0x0804, 0x3556, 0xa867, 0x0000, 0xa868, 0xc0fd, 0xa86a,\r
++      0x7884, 0x9005, 0x0904, 0x3559, 0x9096, 0x00ff, 0x0120, 0x9092,\r
++      0x0004, 0x1a04, 0x3559, 0x2010, 0x2918, 0x080c, 0x3165, 0x1120,\r
++      0x2009, 0x0003, 0x0804, 0x3556, 0x7007, 0x0003, 0x701f, 0x4a59,\r
++      0x0005, 0xa830, 0x9086, 0x0100, 0x1904, 0x3524, 0x2009, 0x0004,\r
++      0x0804, 0x3556, 0x7984, 0x080c, 0xadcb, 0x1120, 0x9182, 0x007f,\r
++      0x0a04, 0x3559, 0x9186, 0x00ff, 0x0904, 0x3559, 0x9182, 0x0800,\r
++      0x1a04, 0x3559, 0x2001, 0x9000, 0x080c, 0x5687, 0x1904, 0x3556,\r
++      0x0804, 0x3524, 0xa998, 0x080c, 0xadcb, 0x1118, 0x9182, 0x007f,\r
++      0x0280, 0x9186, 0x00ff, 0x0168, 0x9182, 0x0800, 0x1250, 0x2001,\r
++      0x9000, 0x080c, 0x5687, 0x11a8, 0x0060, 0xa897, 0x4005, 0xa99a,\r
++      0x0010, 0xa897, 0x4006, 0x900e, 0x9085, 0x0001, 0x2001, 0x0030,\r
++      0x0005, 0xa897, 0x4000, 0x900e, 0x9085, 0x0001, 0x2001, 0x0000,\r
++      0x0005, 0x2009, 0x000a, 0x0c48, 0x080c, 0x0fff, 0x0198, 0x9006,\r
++      0xa802, 0x7014, 0x9005, 0x1120, 0x2900, 0x7016, 0x701a, 0x0040,\r
++      0x7018, 0xa802, 0x0086, 0x2040, 0x2900, 0xa006, 0x701a, 0x008e,\r
++      0x9085, 0x0001, 0x0005, 0x7984, 0x080c, 0x65ff, 0x1130, 0x7e88,\r
++      0x9684, 0x3fff, 0x9082, 0x4000, 0x0208, 0x905e, 0x8bff, 0x0005,\r
++      0xa998, 0x080c, 0x65ff, 0x1130, 0xae9c, 0x9684, 0x3fff, 0x9082,\r
++      0x4000, 0x0208, 0x905e, 0x8bff, 0x0005, 0xae98, 0x0008, 0x7e84,\r
++      0x2608, 0x080c, 0x65ff, 0x1108, 0x0008, 0x905e, 0x8bff, 0x0005,\r
++      0x0016, 0x7114, 0x81ff, 0x0128, 0x2148, 0xa904, 0x080c, 0x1031,\r
++      0x0cc8, 0x7116, 0x711a, 0x001e, 0x0005, 0x2031, 0x0001, 0x0010,\r
++      0x2031, 0x0000, 0x2061, 0x18b8, 0x2c44, 0xa66a, 0xa17a, 0xa772,\r
++      0xa076, 0xa28e, 0xa392, 0xa496, 0xa59a, 0x080c, 0x10e9, 0x7007,\r
++      0x0002, 0x701f, 0x3524, 0x0005, 0x00f6, 0x0126, 0x2091, 0x8000,\r
++      0x2079, 0x0000, 0x2001, 0x18b0, 0x2004, 0x9005, 0x1190, 0x0e04,\r
++      0x4b21, 0x7a36, 0x7833, 0x0012, 0x7a82, 0x7b86, 0x7c8a, 0x2091,\r
++      0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x119b, 0x0804,\r
++      0x4b87, 0x0016, 0x0086, 0x0096, 0x00c6, 0x00e6, 0x2071, 0x189e,\r
++      0x7044, 0x9005, 0x1540, 0x7148, 0x9182, 0x0010, 0x0288, 0x7038,\r
++      0x2060, 0x080c, 0x0fff, 0x0904, 0x4b7f, 0xa84b, 0x0000, 0x2900,\r
++      0x7046, 0x2001, 0x0002, 0x9080, 0x2090, 0x2005, 0xa846, 0x0098,\r
++      0x7038, 0x90e0, 0x0004, 0x2001, 0x18ba, 0x9c82, 0x18fa, 0x0210,\r
++      0x2061, 0x18ba, 0x2c00, 0x703a, 0x7148, 0x81ff, 0x1108, 0x703e,\r
++      0x8108, 0x714a, 0x0460, 0x7148, 0x8108, 0x714a, 0x7044, 0x2040,\r
++      0xa144, 0x2105, 0x0016, 0x908a, 0x0036, 0x1a0c, 0x0dd5, 0x2060,\r
++      0x001e, 0x8108, 0x2105, 0x9005, 0xa146, 0x1520, 0x080c, 0x0fff,\r
++      0x1130, 0x8109, 0xa946, 0x7148, 0x8109, 0x714a, 0x00d8, 0x9006,\r
++      0xa806, 0xa84a, 0xa046, 0x2800, 0xa802, 0x2900, 0xa006, 0x7046,\r
++      0x2001, 0x0002, 0x9080, 0x2090, 0x2005, 0xa846, 0x0058, 0x2262,\r
++      0x6306, 0x640a, 0x00ee, 0x00ce, 0x009e, 0x008e, 0x001e, 0x012e,\r
++      0x00fe, 0x0005, 0x2c00, 0x9082, 0x001b, 0x0002, 0x4ba9, 0x4ba9,\r
++      0x4bab, 0x4ba9, 0x4ba9, 0x4ba9, 0x4baf, 0x4ba9, 0x4ba9, 0x4ba9,\r
++      0x4bb3, 0x4ba9, 0x4ba9, 0x4ba9, 0x4bb7, 0x4ba9, 0x4ba9, 0x4ba9,\r
++      0x4bbb, 0x4ba9, 0x4ba9, 0x4ba9, 0x4bbf, 0x4ba9, 0x4ba9, 0x4ba9,\r
++      0x4bc4, 0x080c, 0x0dd5, 0xa276, 0xa37a, 0xa47e, 0x0898, 0xa286,\r
++      0xa38a, 0xa48e, 0x0878, 0xa296, 0xa39a, 0xa49e, 0x0858, 0xa2a6,\r
++      0xa3aa, 0xa4ae, 0x0838, 0xa2b6, 0xa3ba, 0xa4be, 0x0818, 0xa2c6,\r
++      0xa3ca, 0xa4ce, 0x0804, 0x4b82, 0xa2d6, 0xa3da, 0xa4de, 0x0804,\r
++      0x4b82, 0x00e6, 0x2071, 0x189e, 0x7048, 0x9005, 0x0904, 0x4c5b,\r
++      0x0126, 0x2091, 0x8000, 0x0e04, 0x4c5a, 0x00f6, 0x2079, 0x0000,\r
++      0x00c6, 0x0096, 0x0086, 0x0076, 0x9006, 0x2038, 0x7040, 0x2048,\r
++      0x9005, 0x0500, 0xa948, 0x2105, 0x0016, 0x908a, 0x0036, 0x1a0c,\r
++      0x0dd5, 0x2060, 0x001e, 0x8108, 0x2105, 0x9005, 0xa94a, 0x1904,\r
++      0x4c5d, 0xa804, 0x9005, 0x090c, 0x0dd5, 0x7042, 0x2938, 0x2040,\r
++      0xa003, 0x0000, 0x2001, 0x0002, 0x9080, 0x2090, 0x2005, 0xa04a,\r
++      0x0804, 0x4c5d, 0x703c, 0x2060, 0x2c14, 0x6304, 0x6408, 0x650c,\r
++      0x2200, 0x7836, 0x7833, 0x0012, 0x7882, 0x2300, 0x7886, 0x2400,\r
++      0x788a, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c,\r
++      0x119b, 0x87ff, 0x0118, 0x2748, 0x080c, 0x1031, 0x7048, 0x8001,\r
++      0x704a, 0x9005, 0x1170, 0x7040, 0x2048, 0x9005, 0x0128, 0x080c,\r
++      0x1031, 0x9006, 0x7042, 0x7046, 0x703b, 0x18ba, 0x703f, 0x18ba,\r
++      0x0420, 0x7040, 0x9005, 0x1508, 0x7238, 0x2c00, 0x9206, 0x0148,\r
++      0x9c80, 0x0004, 0x90fa, 0x18fa, 0x0210, 0x2001, 0x18ba, 0x703e,\r
++      0x00a0, 0x9006, 0x703e, 0x703a, 0x7044, 0x9005, 0x090c, 0x0dd5,\r
++      0x2048, 0xa800, 0x9005, 0x1de0, 0x2900, 0x7042, 0x2001, 0x0002,\r
++      0x9080, 0x2090, 0x2005, 0xa84a, 0x0000, 0x007e, 0x008e, 0x009e,\r
++      0x00ce, 0x00fe, 0x012e, 0x00ee, 0x0005, 0x2c00, 0x9082, 0x001b,\r
++      0x0002, 0x4c7c, 0x4c7c, 0x4c7e, 0x4c7c, 0x4c7c, 0x4c7c, 0x4c83,\r
++      0x4c7c, 0x4c7c, 0x4c7c, 0x4c88, 0x4c7c, 0x4c7c, 0x4c7c, 0x4c8d,\r
++      0x4c7c, 0x4c7c, 0x4c7c, 0x4c92, 0x4c7c, 0x4c7c, 0x4c7c, 0x4c97,\r
++      0x4c7c, 0x4c7c, 0x4c7c, 0x4c9c, 0x080c, 0x0dd5, 0xaa74, 0xab78,\r
++      0xac7c, 0x0804, 0x4c08, 0xaa84, 0xab88, 0xac8c, 0x0804, 0x4c08,\r
++      0xaa94, 0xab98, 0xac9c, 0x0804, 0x4c08, 0xaaa4, 0xaba8, 0xacac,\r
++      0x0804, 0x4c08, 0xaab4, 0xabb8, 0xacbc, 0x0804, 0x4c08, 0xaac4,\r
++      0xabc8, 0xaccc, 0x0804, 0x4c08, 0xaad4, 0xabd8, 0xacdc, 0x0804,\r
++      0x4c08, 0x0016, 0x0026, 0x0036, 0x00b6, 0x00c6, 0x2009, 0x007e,\r
++      0x080c, 0x65ff, 0x2019, 0x0001, 0xb85c, 0xd0ac, 0x0110, 0x2019,\r
++      0x0000, 0x2011, 0x801b, 0x080c, 0x4b04, 0x00ce, 0x00be, 0x003e,\r
++      0x002e, 0x001e, 0x0005, 0x0026, 0x080c, 0x56cf, 0xd0c4, 0x0120,\r
++      0x2011, 0x8014, 0x080c, 0x4b04, 0x002e, 0x0005, 0x81ff, 0x1904,\r
++      0x3556, 0x0126, 0x2091, 0x8000, 0x6030, 0xc08d, 0xc085, 0xc0ac,\r
++      0x6032, 0x080c, 0x73bc, 0x1158, 0x080c, 0x76a4, 0x080c, 0x601a,\r
++      0x9085, 0x0001, 0x080c, 0x7403, 0x080c, 0x72ee, 0x0010, 0x080c,\r
++      0x5ed9, 0x012e, 0x0804, 0x3524, 0x81ff, 0x0120, 0x2009, 0x0001,\r
++      0x0804, 0x3556, 0x080c, 0x56e3, 0x0120, 0x2009, 0x0007, 0x0804,\r
++      0x3556, 0x080c, 0x696a, 0x0120, 0x2009, 0x0008, 0x0804, 0x3556,\r
++      0x080c, 0x3314, 0x0128, 0x7984, 0x080c, 0x659e, 0x1904, 0x3559,\r
++      0x080c, 0x4ad7, 0x0904, 0x3559, 0x2b00, 0x7026, 0x080c, 0x6972,\r
++      0x7888, 0x1170, 0x9084, 0x0005, 0x1158, 0x900e, 0x080c, 0x681f,\r
++      0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d, 0x0804, 0x3524,\r
++      0x080c, 0x4aa4, 0x0904, 0x3556, 0x9006, 0xa866, 0xa832, 0xa868,\r
++      0xc0fd, 0xa86a, 0x080c, 0xcd58, 0x0904, 0x3556, 0x7888, 0xd094,\r
++      0x0118, 0xb8cc, 0xc08d, 0xb8ce, 0x7007, 0x0003, 0x701f, 0x4d7d,\r
++      0x0005, 0x2061, 0x1800, 0x080c, 0x56e3, 0x2009, 0x0007, 0x1578,\r
++      0x080c, 0x696a, 0x0118, 0x2009, 0x0008, 0x0448, 0x080c, 0x3314,\r
++      0x0120, 0xa998, 0x080c, 0x659e, 0x1530, 0x080c, 0x4ad5, 0x0518,\r
++      0x080c, 0x6972, 0xa89c, 0x1168, 0x9084, 0x0005, 0x1150, 0x900e,\r
++      0x080c, 0x681f, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d,\r
++      0x00d0, 0xa868, 0xc0fc, 0xa86a, 0x080c, 0xcd58, 0x11e0, 0xa89c,\r
++      0xd094, 0x0118, 0xb8cc, 0xc08d, 0xb8ce, 0x2009, 0x0003, 0xa897,\r
++      0x4005, 0xa99a, 0x0010, 0xa897, 0x4006, 0x900e, 0x9085, 0x0001,\r
++      0x2001, 0x0030, 0x0005, 0xa897, 0x4000, 0xa99a, 0x9006, 0x918d,\r
++      0x0001, 0x2008, 0x0005, 0x9006, 0x0005, 0xa830, 0x9086, 0x0100,\r
++      0x7024, 0x2058, 0x1110, 0x0804, 0x562c, 0x900e, 0x080c, 0x681f,\r
++      0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d, 0x0804, 0x3524,\r
++      0x080c, 0x56e3, 0x0120, 0x2009, 0x0007, 0x0804, 0x3556, 0x7f84,\r
++      0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x080c, 0x4aa4, 0x1120, 0x2009,\r
++      0x0002, 0x0804, 0x3556, 0x900e, 0x2130, 0x7126, 0x7132, 0xa860,\r
++      0x20e8, 0x7036, 0xa85c, 0x9080, 0x0005, 0x702a, 0x20a0, 0x080c,\r
++      0x65ff, 0x1904, 0x4e1f, 0x080c, 0x6972, 0x0138, 0x080c, 0x697a,\r
++      0x0120, 0x080c, 0x6912, 0x1904, 0x4e1f, 0xd794, 0x1110, 0xd784,\r
++      0x01a8, 0xb8c4, 0x20e0, 0xb8c8, 0x9080, 0x0006, 0x2098, 0x3400,\r
++      0xd794, 0x0160, 0x20a9, 0x0008, 0x4003, 0x2098, 0x20a0, 0x3d00,\r
++      0x20e0, 0x20a9, 0x0002, 0x080c, 0x48a6, 0x0048, 0x20a9, 0x0004,\r
++      0x4003, 0x2098, 0x20a0, 0x3d00, 0x20e0, 0x080c, 0x48a6, 0x9186,\r
++      0x007e, 0x0170, 0x9186, 0x0080, 0x0158, 0x080c, 0x6972, 0x90c2,\r
++      0x0006, 0x1210, 0xc1fd, 0x0020, 0x080c, 0x681f, 0x1108, 0xc1fd,\r
++      0x4104, 0xc1fc, 0xd794, 0x0528, 0xb8c4, 0x20e0, 0xb8c8, 0x2060,\r
++      0x9c80, 0x0000, 0x2098, 0x20a9, 0x0002, 0x4003, 0x9c80, 0x0003,\r
++      0x2098, 0x20a9, 0x0001, 0x4005, 0x9c80, 0x0004, 0x2098, 0x3400,\r
++      0x20a9, 0x0002, 0x4003, 0x2098, 0x20a0, 0x3d00, 0x20e0, 0x080c,\r
++      0x4899, 0x9c80, 0x0026, 0x2098, 0xb8c4, 0x20e0, 0x20a9, 0x0002,\r
++      0x4003, 0xd794, 0x0110, 0x96b0, 0x000b, 0x96b0, 0x0005, 0x8108,\r
++      0x080c, 0xadcb, 0x0118, 0x9186, 0x0800, 0x0040, 0xd78c, 0x0120,\r
++      0x9186, 0x0800, 0x0170, 0x0018, 0x9186, 0x007e, 0x0150, 0xd794,\r
++      0x0118, 0x9686, 0x0020, 0x0010, 0x9686, 0x0028, 0x0150, 0x0804,\r
++      0x4daf, 0x86ff, 0x1120, 0x7124, 0x810b, 0x0804, 0x3524, 0x7033,\r
++      0x0001, 0x7122, 0x7024, 0x9600, 0x7026, 0x772e, 0x2061, 0x18b8,\r
++      0x2c44, 0xa06b, 0x0000, 0xa67a, 0x7034, 0xa072, 0x7028, 0xa076,\r
++      0xa28e, 0xa392, 0xa496, 0xa59a, 0x080c, 0x10e9, 0x7007, 0x0002,\r
++      0x701f, 0x4e5b, 0x0005, 0x7030, 0x9005, 0x1180, 0x7120, 0x7028,\r
++      0x20a0, 0x772c, 0x9036, 0x7034, 0x20e8, 0x2061, 0x18b8, 0x2c44,\r
++      0xa28c, 0xa390, 0xa494, 0xa598, 0x0804, 0x4daf, 0x7124, 0x810b,\r
++      0x0804, 0x3524, 0x2029, 0x007e, 0x7984, 0x7a88, 0x7b8c, 0x7c98,\r
++      0x9184, 0xff00, 0x8007, 0x90e2, 0x0020, 0x0a04, 0x3559, 0x9502,\r
++      0x0a04, 0x3559, 0x9184, 0x00ff, 0x90e2, 0x0020, 0x0a04, 0x3559,\r
++      0x9502, 0x0a04, 0x3559, 0x9284, 0xff00, 0x8007, 0x90e2, 0x0020,\r
++      0x0a04, 0x3559, 0x9502, 0x0a04, 0x3559, 0x9284, 0x00ff, 0x90e2,\r
++      0x0020, 0x0a04, 0x3559, 0x9502, 0x0a04, 0x3559, 0x9384, 0xff00,\r
++      0x8007, 0x90e2, 0x0020, 0x0a04, 0x3559, 0x9502, 0x0a04, 0x3559,\r
++      0x9384, 0x00ff, 0x90e2, 0x0020, 0x0a04, 0x3559, 0x9502, 0x0a04,\r
++      0x3559, 0x9484, 0xff00, 0x8007, 0x90e2, 0x0020, 0x0a04, 0x3559,\r
++      0x9502, 0x0a04, 0x3559, 0x9484, 0x00ff, 0x90e2, 0x0020, 0x0a04,\r
++      0x3559, 0x9502, 0x0a04, 0x3559, 0x2061, 0x1989, 0x6102, 0x6206,\r
++      0x630a, 0x640e, 0x0804, 0x3524, 0x080c, 0x4aa4, 0x0904, 0x3556,\r
++      0x2009, 0x0016, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0xa85c, 0x9080,\r
++      0x0019, 0xaf60, 0x080c, 0x4aed, 0x701f, 0x4edf, 0x0005, 0x2001,\r
++      0x0138, 0x2003, 0x0000, 0x00e6, 0x2071, 0x0300, 0x701c, 0xd0a4,\r
++      0x1de8, 0x00ee, 0x20a9, 0x0016, 0x896e, 0x8d6e, 0x8d6f, 0x9d84,\r
++      0xffc0, 0x9080, 0x0019, 0x2098, 0x9d84, 0x003f, 0x20e0, 0x2069,\r
++      0x1877, 0x20e9, 0x0001, 0x2da0, 0x4003, 0x6800, 0x9005, 0x0904,\r
++      0x4f60, 0x6804, 0x2008, 0x918c, 0xfff8, 0x1904, 0x4f60, 0x680c,\r
++      0x9005, 0x0904, 0x4f60, 0x9082, 0xff01, 0x1a04, 0x4f60, 0x6810,\r
++      0x9082, 0x005c, 0x0a04, 0x4f60, 0x6824, 0x2008, 0x9082, 0x0008,\r
++      0x0a04, 0x4f60, 0x9182, 0x0400, 0x1a04, 0x4f60, 0x0056, 0x2029,\r
++      0x0000, 0x080c, 0x8afb, 0x005e, 0x6944, 0x6820, 0x9102, 0x06c0,\r
++      0x6820, 0x9082, 0x0019, 0x16a0, 0x6828, 0x6944, 0x810c, 0x9102,\r
++      0x0678, 0x6840, 0x9082, 0x000f, 0x1658, 0x080c, 0x1018, 0x2900,\r
++      0x0904, 0x4f7a, 0x684e, 0x00e6, 0x2071, 0x1930, 0x00b6, 0x2059,\r
++      0x0000, 0x080c, 0x89b7, 0x00be, 0x00ee, 0x0558, 0x080c, 0x8711,\r
++      0x080c, 0x8757, 0x11e0, 0x6857, 0x0000, 0x00c6, 0x2061, 0x0100,\r
++      0x6104, 0x918d, 0x2000, 0x6106, 0x6b10, 0x2061, 0x1a62, 0x630a,\r
++      0x00ce, 0x080c, 0x2956, 0x2001, 0x0138, 0x2102, 0x0804, 0x3524,\r
++      0x080c, 0x2956, 0x2001, 0x0138, 0x2102, 0x0804, 0x3559, 0x00e6,\r
++      0x2071, 0x1930, 0x080c, 0x8b8c, 0x080c, 0x8b9b, 0x080c, 0x89a6,\r
++      0x00ee, 0x2001, 0x188a, 0x204c, 0x080c, 0x1031, 0x2001, 0x188a,\r
++      0x2003, 0x0000, 0x080c, 0x2956, 0x2001, 0x0138, 0x2102, 0x0804,\r
++      0x3556, 0x2001, 0x1924, 0x200c, 0x918e, 0x0000, 0x0904, 0x4fd9,\r
++      0x080c, 0x89a1, 0x0904, 0x4fd9, 0x2001, 0x0101, 0x200c, 0x918c,\r
++      0xdfff, 0x2102, 0x2001, 0x0138, 0x2003, 0x0000, 0x00e6, 0x2071,\r
++      0x0300, 0x701c, 0xd0a4, 0x1de8, 0x00ee, 0x080c, 0x89a6, 0x2001,\r
++      0x0035, 0x080c, 0x15ee, 0x00c6, 0x2061, 0x193c, 0x6004, 0x6100,\r
++      0x9106, 0x1de0, 0x00ce, 0x080c, 0x2956, 0x2001, 0x0138, 0x2102,\r
++      0x00e6, 0x00f6, 0x2071, 0x1923, 0x080c, 0x88e2, 0x0120, 0x2f00,\r
++      0x080c, 0x896c, 0x0cc8, 0x00fe, 0x00ee, 0x0126, 0x2091, 0x8000,\r
++      0x2001, 0x188a, 0x200c, 0x81ff, 0x0138, 0x2148, 0x080c, 0x1031,\r
++      0x2001, 0x188a, 0x2003, 0x0000, 0x2001, 0x183c, 0x2003, 0x0020,\r
++      0x00e6, 0x2071, 0x1930, 0x080c, 0x8b8c, 0x080c, 0x8b9b, 0x00ee,\r
++      0x012e, 0x0804, 0x3524, 0x0006, 0x080c, 0x56cf, 0xd0cc, 0x000e,\r
++      0x0005, 0x0006, 0x080c, 0x56d3, 0xd0bc, 0x000e, 0x0005, 0x6174,\r
++      0x7a84, 0x6300, 0x82ff, 0x1118, 0x7986, 0x0804, 0x3524, 0x83ff,\r
++      0x1904, 0x3559, 0x2001, 0xfff0, 0x9200, 0x1a04, 0x3559, 0x2019,\r
++      0xffff, 0x6078, 0x9302, 0x9200, 0x0a04, 0x3559, 0x7986, 0x6276,\r
++      0x0804, 0x3524, 0x080c, 0x56e3, 0x1904, 0x3556, 0x7c88, 0x7d84,\r
++      0x7e98, 0x7f8c, 0x080c, 0x4aa4, 0x0904, 0x3556, 0x900e, 0x901e,\r
++      0x7326, 0x7332, 0xa860, 0x20e8, 0x7036, 0xa85c, 0x9080, 0x0003,\r
++      0x702a, 0x20a0, 0x91d8, 0x1000, 0x2b5c, 0x8bff, 0x0178, 0x080c,\r
++      0x6972, 0x0118, 0x080c, 0x697a, 0x1148, 0x20a9, 0x0001, 0xb814,\r
++      0x4004, 0xb810, 0x4004, 0x4104, 0x9398, 0x0003, 0x8108, 0x9182,\r
++      0x0800, 0x0120, 0x9386, 0x003c, 0x0170, 0x0c20, 0x83ff, 0x1148,\r
++      0x7224, 0x900e, 0x2001, 0x0003, 0x080c, 0x8f68, 0x2208, 0x0804,\r
++      0x3524, 0x7033, 0x0001, 0x7122, 0x7024, 0x9300, 0x7026, 0x2061,\r
++      0x18b8, 0x2c44, 0xa06b, 0x0000, 0xa37a, 0x7028, 0xa076, 0x7034,\r
++      0xa072, 0xa48e, 0xa592, 0xa696, 0xa79a, 0x080c, 0x10e9, 0x7007,\r
++      0x0002, 0x701f, 0x505c, 0x0005, 0x7030, 0x9005, 0x1178, 0x7120,\r
++      0x7028, 0x20a0, 0x901e, 0x7034, 0x20e8, 0x2061, 0x18b8, 0x2c44,\r
++      0xa48c, 0xa590, 0xa694, 0xa798, 0x0804, 0x501a, 0x7224, 0x900e,\r
++      0x2001, 0x0003, 0x080c, 0x8f68, 0x2208, 0x0804, 0x3524, 0x00f6,\r
++      0x00e6, 0x080c, 0x56e3, 0x2009, 0x0007, 0x1904, 0x50ef, 0x2071,\r
++      0x189e, 0x745c, 0x84ff, 0x2009, 0x000e, 0x1904, 0x50ef, 0xac9c,\r
++      0xad98, 0xaea4, 0xafa0, 0x0096, 0x080c, 0x1018, 0x2009, 0x0002,\r
++      0x0904, 0x50ef, 0x2900, 0x705e, 0x900e, 0x901e, 0x7356, 0x7362,\r
++      0xa860, 0x7066, 0xa85c, 0x9080, 0x0003, 0x705a, 0x20a0, 0x91d8,\r
++      0x1000, 0x2b5c, 0x8bff, 0x0178, 0x080c, 0x6972, 0x0118, 0x080c,\r
++      0x697a, 0x1148, 0xb814, 0x20a9, 0x0001, 0x4004, 0xb810, 0x4004,\r
++      0x4104, 0x9398, 0x0003, 0x8108, 0x9182, 0x0800, 0x0120, 0x9386,\r
++      0x003c, 0x01e8, 0x0c20, 0x83ff, 0x11c0, 0x7254, 0x900e, 0x2001,\r
++      0x0003, 0x080c, 0x8f68, 0x2208, 0x009e, 0xa897, 0x4000, 0xa99a,\r
++      0x715c, 0x81ff, 0x090c, 0x0dd5, 0x2148, 0x080c, 0x1031, 0x9006,\r
++      0x705e, 0x918d, 0x0001, 0x2008, 0x0418, 0x7063, 0x0001, 0x7152,\r
++      0x7054, 0x9300, 0x7056, 0x2061, 0x18b9, 0x2c44, 0xa37a, 0x7058,\r
++      0xa076, 0x7064, 0xa072, 0xa48e, 0xa592, 0xa696, 0xa79a, 0xa09f,\r
++      0x50fb, 0x000e, 0xa0a2, 0x080c, 0x10e9, 0x9006, 0x0048, 0x009e,\r
++      0xa897, 0x4005, 0xa99a, 0x900e, 0x9085, 0x0001, 0x2001, 0x0030,\r
++      0x00ee, 0x00fe, 0x0005, 0x00f6, 0xa0a0, 0x904d, 0x090c, 0x0dd5,\r
++      0x00e6, 0x2071, 0x189e, 0xa06c, 0x908e, 0x0100, 0x0138, 0xa87b,\r
++      0x0030, 0xa883, 0x0000, 0xa897, 0x4002, 0x00d8, 0x7060, 0x9005,\r
++      0x1158, 0x7150, 0x7058, 0x20a0, 0x901e, 0x7064, 0x20e8, 0xa48c,\r
++      0xa590, 0xa694, 0xa798, 0x0428, 0xa87b, 0x0000, 0xa883, 0x0000,\r
++      0xa897, 0x4000, 0x7254, 0x900e, 0x2001, 0x0003, 0x080c, 0x8f68,\r
++      0xaa9a, 0x715c, 0x81ff, 0x090c, 0x0dd5, 0x2148, 0x080c, 0x1031,\r
++      0x705f, 0x0000, 0xa0a0, 0x2048, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0x6c81, 0x012e, 0xa09f, 0x0000, 0xa0a3, 0x0000, 0x00ee, 0x00fe,\r
++      0x0005, 0x91d8, 0x1000, 0x2b5c, 0x8bff, 0x0178, 0x080c, 0x6972,\r
++      0x0118, 0x080c, 0x697a, 0x1148, 0xb814, 0x20a9, 0x0001, 0x4004,\r
++      0xb810, 0x4004, 0x4104, 0x9398, 0x0003, 0x8108, 0x9182, 0x0800,\r
++      0x0120, 0x9386, 0x003c, 0x0518, 0x0c20, 0x83ff, 0x11f0, 0x7154,\r
++      0x810c, 0xa99a, 0xa897, 0x4000, 0x715c, 0x81ff, 0x090c, 0x0dd5,\r
++      0x2148, 0x080c, 0x1031, 0x9006, 0x705e, 0x918d, 0x0001, 0x2008,\r
++      0xa0a0, 0x2048, 0x0126, 0x2091, 0x8000, 0x080c, 0x6c81, 0x012e,\r
++      0xa09f, 0x0000, 0xa0a3, 0x0000, 0x0070, 0x7063, 0x0001, 0x7152,\r
++      0x7054, 0x9300, 0x7056, 0xa37a, 0xa48e, 0xa592, 0xa696, 0xa79a,\r
++      0x080c, 0x10e9, 0x9006, 0x00ee, 0x0005, 0x0096, 0xa88c, 0x90be,\r
++      0x7000, 0x0148, 0x90be, 0x7100, 0x0130, 0x90be, 0x7200, 0x0118,\r
++      0x009e, 0x0804, 0x3559, 0xa884, 0xa988, 0x080c, 0x283e, 0x1518,\r
++      0x080c, 0x659e, 0x1500, 0x7126, 0xbe12, 0xbd16, 0xae7c, 0x080c,\r
++      0x4aa4, 0x01c8, 0x080c, 0x4aa4, 0x01b0, 0x009e, 0xa867, 0x0000,\r
++      0xa868, 0xc0fd, 0xa86a, 0xa823, 0x0000, 0xa804, 0x2048, 0x080c,\r
++      0xccdf, 0x1120, 0x2009, 0x0003, 0x0804, 0x3556, 0x7007, 0x0003,\r
++      0x701f, 0x51c8, 0x0005, 0x009e, 0x2009, 0x0002, 0x0804, 0x3556,\r
++      0x7124, 0x080c, 0x32bb, 0xa820, 0x9086, 0x8001, 0x1120, 0x2009,\r
++      0x0004, 0x0804, 0x3556, 0x2900, 0x7022, 0xa804, 0x0096, 0x2048,\r
++      0x8906, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x009e,\r
++      0x9080, 0x0002, 0x0076, 0x0006, 0x2098, 0x20a0, 0x27e0, 0x27e8,\r
++      0x20a9, 0x002a, 0x080c, 0x0f7c, 0xaa6c, 0xab70, 0xac74, 0xad78,\r
++      0x2061, 0x18b8, 0x2c44, 0xa06b, 0x0000, 0xae64, 0xaf8c, 0x97c6,\r
++      0x7000, 0x0118, 0x97c6, 0x7100, 0x1148, 0x96c2, 0x0004, 0x0600,\r
++      0x2009, 0x0004, 0x000e, 0x007e, 0x0804, 0x4af0, 0x97c6, 0x7200,\r
++      0x11b8, 0x96c2, 0x0054, 0x02a0, 0x000e, 0x007e, 0x2061, 0x18b8,\r
++      0x2c44, 0xa076, 0xa772, 0xa07b, 0x002a, 0xa28e, 0xa392, 0xa496,\r
++      0xa59a, 0x080c, 0x10e9, 0x7007, 0x0002, 0x701f, 0x5224, 0x0005,\r
++      0x000e, 0x007e, 0x0804, 0x3559, 0x7020, 0x2048, 0xa804, 0x2048,\r
++      0xa804, 0x2048, 0x8906, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084,\r
++      0xffc0, 0x9080, 0x0002, 0x2098, 0x20a0, 0x27e0, 0x27e8, 0x20a9,\r
++      0x002a, 0x080c, 0x0f7c, 0x2100, 0x2238, 0x2061, 0x18b8, 0x2c44,\r
++      0xa28c, 0xa390, 0xa494, 0xa598, 0x2009, 0x002a, 0x0804, 0x4af0,\r
++      0x81ff, 0x1904, 0x3556, 0x798c, 0x2001, 0x197e, 0x918c, 0x8000,\r
++      0x2102, 0x080c, 0x4abb, 0x0904, 0x3559, 0x080c, 0x6972, 0x0120,\r
++      0x080c, 0x697a, 0x1904, 0x3559, 0x080c, 0x66c6, 0x0904, 0x3556,\r
++      0x0126, 0x2091, 0x8000, 0x080c, 0x678c, 0x012e, 0x0904, 0x3556,\r
++      0x2001, 0x197e, 0x2004, 0xd0fc, 0x1904, 0x3524, 0x0804, 0x451c,\r
++      0xa9a0, 0x2001, 0x197e, 0x918c, 0x8000, 0xc18d, 0x2102, 0x080c,\r
++      0x4ac8, 0x01a0, 0x080c, 0x6972, 0x0118, 0x080c, 0x697a, 0x1170,\r
++      0x080c, 0x66c6, 0x2009, 0x0002, 0x0128, 0x080c, 0x678c, 0x1170,\r
++      0x2009, 0x0003, 0xa897, 0x4005, 0xa99a, 0x0010, 0xa897, 0x4006,\r
++      0x900e, 0x9085, 0x0001, 0x2001, 0x0030, 0x0005, 0xa897, 0x4000,\r
++      0x2001, 0x197e, 0x2004, 0xd0fc, 0x1128, 0x080c, 0x56d7, 0x0110,\r
++      0x9006, 0x0018, 0x900e, 0x9085, 0x0001, 0x2001, 0x0000, 0x0005,\r
++      0x78a8, 0xd08c, 0x1118, 0xd084, 0x0904, 0x4491, 0x080c, 0x4ad7,\r
++      0x0904, 0x3559, 0x080c, 0x4aa4, 0x1120, 0x2009, 0x0002, 0x0804,\r
++      0x3556, 0x080c, 0x6972, 0x0130, 0x908e, 0x0004, 0x0118, 0x908e,\r
++      0x0005, 0x15a0, 0x78a8, 0xd08c, 0x0120, 0xb800, 0xc08c, 0xb802,\r
++      0x0028, 0x080c, 0x56cf, 0xd0b4, 0x0904, 0x44cb, 0x7884, 0x908e,\r
++      0x007e, 0x0904, 0x44cb, 0x908e, 0x007f, 0x0904, 0x44cb, 0x908e,\r
++      0x0080, 0x0904, 0x44cb, 0xb800, 0xd08c, 0x1904, 0x44cb, 0xa867,\r
++      0x0000, 0xa868, 0xc0fd, 0xa86a, 0x080c, 0xccfe, 0x1120, 0x2009,\r
++      0x0003, 0x0804, 0x3556, 0x7007, 0x0003, 0x701f, 0x52f0, 0x0005,\r
++      0x080c, 0x4ad7, 0x0904, 0x3559, 0x0804, 0x44cb, 0x080c, 0x3314,\r
++      0x0108, 0x0005, 0x2009, 0x1834, 0x210c, 0x81ff, 0x0120, 0x2009,\r
++      0x0001, 0x0804, 0x3556, 0x080c, 0x56e3, 0x0120, 0x2009, 0x0007,\r
++      0x0804, 0x3556, 0x080c, 0x696a, 0x0120, 0x2009, 0x0008, 0x0804,\r
++      0x3556, 0xb89c, 0xd0a4, 0x1118, 0xd0ac, 0x1904, 0x44cb, 0x9006,\r
++      0xa866, 0xa832, 0xa868, 0xc0fd, 0xa86a, 0x080c, 0xcd58, 0x1120,\r
++      0x2009, 0x0003, 0x0804, 0x3556, 0x7007, 0x0003, 0x701f, 0x5329,\r
++      0x0005, 0xa830, 0x9086, 0x0100, 0x1120, 0x2009, 0x0004, 0x0804,\r
++      0x562c, 0x080c, 0x4ad7, 0x0904, 0x3559, 0x0804, 0x52c2, 0x81ff,\r
++      0x2009, 0x0001, 0x1904, 0x3556, 0x080c, 0x56e3, 0x2009, 0x0007,\r
++      0x1904, 0x3556, 0x080c, 0x696a, 0x0120, 0x2009, 0x0008, 0x0804,\r
++      0x3556, 0x080c, 0x4ad7, 0x0904, 0x3559, 0x080c, 0x6972, 0x2009,\r
++      0x0009, 0x1904, 0x3556, 0x080c, 0x4aa4, 0x2009, 0x0002, 0x0904,\r
++      0x3556, 0x9006, 0xa866, 0xa832, 0xa868, 0xc0fd, 0xa86a, 0x7988,\r
++      0x9194, 0xff00, 0x918c, 0x00ff, 0x9006, 0x82ff, 0x1128, 0xc0ed,\r
++      0xa952, 0x798c, 0xa956, 0x0038, 0x928e, 0x0100, 0x1904, 0x3559,\r
++      0xc0e5, 0xa952, 0xa956, 0xa83e, 0x080c, 0xcfab, 0x2009, 0x0003,\r
++      0x0904, 0x3556, 0x7007, 0x0003, 0x701f, 0x537f, 0x0005, 0xa830,\r
++      0x9086, 0x0100, 0x2009, 0x0004, 0x0904, 0x3556, 0x0804, 0x3524,\r
++      0x7aa8, 0x9284, 0xc000, 0x0148, 0xd2ec, 0x01a0, 0x080c, 0x56e3,\r
++      0x1188, 0x2009, 0x0014, 0x0804, 0x3556, 0xd2dc, 0x1568, 0x81ff,\r
++      0x2009, 0x0001, 0x1904, 0x3556, 0x080c, 0x56e3, 0x2009, 0x0007,\r
++      0x1904, 0x3556, 0xd2f4, 0x0130, 0x9284, 0x5000, 0x080c, 0x56aa,\r
++      0x0804, 0x3524, 0xd2fc, 0x0158, 0x080c, 0x4ad7, 0x0904, 0x3559,\r
++      0x7984, 0x9284, 0x9000, 0x080c, 0x5687, 0x0804, 0x3524, 0x080c,\r
++      0x4ad7, 0x0904, 0x3559, 0xb804, 0x9084, 0x00ff, 0x9086, 0x0006,\r
++      0x2009, 0x0009, 0x1904, 0x5468, 0x080c, 0x4aa4, 0x2009, 0x0002,\r
++      0x0904, 0x5468, 0xa85c, 0x9080, 0x001b, 0xaf60, 0x2009, 0x0008,\r
++      0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x080c, 0x4aed, 0x701f, 0x53d9,\r
++      0x0005, 0xa86c, 0x9086, 0x0500, 0x1138, 0xa870, 0x9005, 0x1120,\r
++      0xa874, 0x9084, 0xff00, 0x0110, 0x1904, 0x3559, 0xa866, 0xa832,\r
++      0xa868, 0xc0fd, 0xa86a, 0x080c, 0x4ad7, 0x1110, 0x0804, 0x3559,\r
++      0x2009, 0x0043, 0x080c, 0xd013, 0x2009, 0x0003, 0x0904, 0x5468,\r
++      0x7007, 0x0003, 0x701f, 0x53fd, 0x0005, 0xa830, 0x9086, 0x0100,\r
++      0x2009, 0x0004, 0x0904, 0x5468, 0x7984, 0x7aa8, 0x9284, 0x1000,\r
++      0x080c, 0x5687, 0x0804, 0x3524, 0x00c6, 0xaab0, 0x9284, 0xc000,\r
++      0x0140, 0xd2ec, 0x0168, 0x080c, 0x56e3, 0x1150, 0x2009, 0x0014,\r
++      0x04f0, 0x2061, 0x1800, 0x080c, 0x56e3, 0x2009, 0x0007, 0x15b8,\r
++      0xd2f4, 0x0128, 0x9284, 0x5000, 0x080c, 0x56aa, 0x0050, 0xd2fc,\r
++      0x0178, 0x080c, 0x4ad5, 0x0588, 0xa998, 0x9284, 0x9000, 0x080c,\r
++      0x5687, 0xa87b, 0x0000, 0xa883, 0x0000, 0xa897, 0x4000, 0x0438,\r
++      0x080c, 0x4ad5, 0x0510, 0x080c, 0x6972, 0x2009, 0x0009, 0x11b8,\r
++      0xa8c4, 0x9086, 0x0500, 0x11c8, 0xa8c8, 0x9005, 0x11b0, 0xa8cc,\r
++      0x9084, 0xff00, 0x1190, 0x080c, 0x4ad5, 0x1108, 0x0070, 0x2009,\r
++      0x004b, 0x080c, 0xd013, 0x2009, 0x0003, 0x0108, 0x0078, 0x0429,\r
++      0x19c0, 0xa897, 0x4005, 0xa99a, 0x0010, 0xa897, 0x4006, 0x900e,\r
++      0x9085, 0x0001, 0x2001, 0x0030, 0x00ce, 0x0005, 0x9006, 0x0ce0,\r
++      0x7aa8, 0xd2dc, 0x0904, 0x3556, 0x0016, 0x7984, 0x9284, 0x1000,\r
++      0xc0fd, 0x080c, 0x5687, 0x001e, 0x1904, 0x3556, 0x0804, 0x3524,\r
++      0x00f6, 0x2d78, 0x0011, 0x00fe, 0x0005, 0xaab0, 0xd2dc, 0x0150,\r
++      0x0016, 0xa998, 0x9284, 0x1000, 0xc0fd, 0x080c, 0x5687, 0x001e,\r
++      0x9085, 0x0001, 0x0005, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804,\r
++      0x3556, 0x080c, 0x56e3, 0x0120, 0x2009, 0x0007, 0x0804, 0x3556,\r
++      0x7984, 0x7ea8, 0x96b4, 0x00ff, 0x080c, 0x65ff, 0x1904, 0x3559,\r
++      0x9186, 0x007f, 0x0138, 0x080c, 0x6972, 0x0120, 0x2009, 0x0009,\r
++      0x0804, 0x3556, 0x080c, 0x4aa4, 0x1120, 0x2009, 0x0002, 0x0804,\r
++      0x3556, 0xa867, 0x0000, 0xa868, 0xc0fd, 0xa86a, 0x2001, 0x0100,\r
++      0x8007, 0xa80a, 0x080c, 0xcd18, 0x1120, 0x2009, 0x0003, 0x0804,\r
++      0x3556, 0x7007, 0x0003, 0x701f, 0x54c6, 0x0005, 0xa808, 0x8007,\r
++      0x9086, 0x0100, 0x1120, 0x2009, 0x0004, 0x0804, 0x3556, 0xa8e0,\r
++      0xa866, 0xa810, 0x8007, 0x9084, 0x00ff, 0x800c, 0xa814, 0x8007,\r
++      0x9084, 0x00ff, 0x8004, 0x9080, 0x0002, 0x9108, 0x8906, 0x8006,\r
++      0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x0004, 0x7a8c,\r
++      0x7b88, 0x7c9c, 0x7d98, 0x0804, 0x4af0, 0x080c, 0x4aa4, 0x1120,\r
++      0x2009, 0x0002, 0x0804, 0x3556, 0x7984, 0x9194, 0xff00, 0x918c,\r
++      0x00ff, 0x8217, 0x82ff, 0x1118, 0x7023, 0x19b3, 0x0040, 0x92c6,\r
++      0x0001, 0x1118, 0x7023, 0x19cd, 0x0010, 0x0804, 0x3559, 0x2009,\r
++      0x001a, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0xa85c, 0x9080, 0x0019,\r
++      0xaf60, 0x080c, 0x4aed, 0x701f, 0x5516, 0x0005, 0x2001, 0x182e,\r
++      0x2003, 0x0001, 0xa85c, 0x9080, 0x0019, 0x2098, 0xa860, 0x20e0,\r
++      0x20a9, 0x001a, 0x7020, 0x20a0, 0x20e9, 0x0001, 0x4003, 0x0804,\r
++      0x3524, 0x080c, 0x4aa4, 0x1120, 0x2009, 0x0002, 0x0804, 0x3556,\r
++      0x7984, 0x9194, 0xff00, 0x918c, 0x00ff, 0x8217, 0x82ff, 0x1118,\r
++      0x2099, 0x19b3, 0x0040, 0x92c6, 0x0001, 0x1118, 0x2099, 0x19cd,\r
++      0x0010, 0x0804, 0x3559, 0xa85c, 0x9080, 0x0019, 0x20a0, 0xa860,\r
++      0x20e8, 0x20a9, 0x001a, 0x20e1, 0x0001, 0x4003, 0x2009, 0x001a,\r
++      0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0xa85c, 0x9080, 0x0019, 0xaf60,\r
++      0x0804, 0x4af0, 0x7884, 0x908a, 0x1000, 0x1a04, 0x3559, 0x0126,\r
++      0x2091, 0x8000, 0x8003, 0x800b, 0x810b, 0x9108, 0x00c6, 0x2061,\r
++      0x19fa, 0x6142, 0x00ce, 0x012e, 0x0804, 0x3524, 0x00c6, 0x080c,\r
++      0x73bc, 0x1160, 0x080c, 0x76a4, 0x080c, 0x601a, 0x9085, 0x0001,\r
++      0x080c, 0x7403, 0x080c, 0x72ee, 0x080c, 0x0dd5, 0x2061, 0x1800,\r
++      0x6030, 0xc09d, 0x6032, 0x080c, 0x5ed9, 0x00ce, 0x0005, 0x00c6,\r
++      0x2001, 0x1800, 0x2004, 0x908e, 0x0000, 0x0904, 0x3556, 0x7884,\r
++      0x9005, 0x0188, 0x7888, 0x2061, 0x199c, 0x2c0c, 0x2062, 0x080c,\r
++      0x2c20, 0x01a0, 0x080c, 0x2c28, 0x0188, 0x080c, 0x2c30, 0x0170,\r
++      0x2162, 0x0804, 0x3559, 0x2061, 0x0100, 0x6038, 0x9086, 0x0007,\r
++      0x1118, 0x2009, 0x0001, 0x0010, 0x2009, 0x0000, 0x7884, 0x9086,\r
++      0x0002, 0x1548, 0x2061, 0x0100, 0x6028, 0xc09c, 0x602a, 0x0026,\r
++      0x2011, 0x0003, 0x080c, 0xa653, 0x2011, 0x0002, 0x080c, 0xa65d,\r
++      0x002e, 0x080c, 0xa540, 0x0036, 0x901e, 0x080c, 0xa5b6, 0x003e,\r
++      0x60e3, 0x0000, 0x080c, 0xe9e9, 0x080c, 0xea04, 0x9085, 0x0001,\r
++      0x080c, 0x7403, 0x9006, 0x080c, 0x2cef, 0x2001, 0x1800, 0x2003,\r
++      0x0004, 0x6027, 0x0008, 0x00ce, 0x0804, 0x3524, 0x81ff, 0x0120,\r
++      0x2009, 0x0001, 0x0804, 0x3556, 0x080c, 0x56e3, 0x0120, 0x2009,\r
++      0x0007, 0x0804, 0x3556, 0x7984, 0x7ea8, 0x96b4, 0x00ff, 0x080c,\r
++      0x65ff, 0x1904, 0x3559, 0x9186, 0x007f, 0x0138, 0x080c, 0x6972,\r
++      0x0120, 0x2009, 0x0009, 0x0804, 0x3556, 0x080c, 0x4aa4, 0x1120,\r
++      0x2009, 0x0002, 0x0804, 0x3556, 0xa867, 0x0000, 0xa868, 0xc0fd,\r
++      0xa86a, 0x080c, 0xcd1b, 0x1120, 0x2009, 0x0003, 0x0804, 0x3556,\r
++      0x7007, 0x0003, 0x701f, 0x5615, 0x0005, 0xa830, 0x9086, 0x0100,\r
++      0x1120, 0x2009, 0x0004, 0x0804, 0x3556, 0xa8e0, 0xa866, 0xa834,\r
++      0x8007, 0x800c, 0xa85c, 0x9080, 0x000c, 0x7a8c, 0x7b88, 0x7c9c,\r
++      0x7d98, 0xaf60, 0x0804, 0x4af0, 0xa898, 0x9086, 0x000d, 0x1904,\r
++      0x3556, 0x2021, 0x4005, 0x0126, 0x2091, 0x8000, 0x0e04, 0x5639,\r
++      0x0010, 0x012e, 0x0cc0, 0x7c36, 0x9486, 0x4000, 0x0118, 0x7833,\r
++      0x0011, 0x0010, 0x7833, 0x0010, 0x7883, 0x4005, 0xa998, 0x7986,\r
++      0xa9a4, 0x799a, 0xa9a8, 0x799e, 0x080c, 0x4ae0, 0x2091, 0x4080,\r
++      0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x119b, 0x7007, 0x0001,\r
++      0x2091, 0x5000, 0x700f, 0x0000, 0x012e, 0x0005, 0x0126, 0x2091,\r
++      0x8000, 0x00c6, 0x2061, 0x19fa, 0x7984, 0x6152, 0x614e, 0x6057,\r
++      0x0000, 0x604b, 0x0009, 0x7898, 0x606a, 0x789c, 0x6066, 0x7888,\r
++      0x6062, 0x788c, 0x605e, 0x2001, 0x1a08, 0x2044, 0x2001, 0x1a0f,\r
++      0xa076, 0xa060, 0xa072, 0xa07b, 0x0001, 0xa07f, 0x0002, 0xa06b,\r
++      0x0000, 0xa09f, 0x0000, 0x00ce, 0x012e, 0x0804, 0x3524, 0x0126,\r
++      0x2091, 0x8000, 0x00b6, 0x00c6, 0x90e4, 0xc000, 0x0128, 0x0006,\r
++      0x080c, 0xcb82, 0x000e, 0x1198, 0xd0e4, 0x0160, 0x9180, 0x1000,\r
++      0x2004, 0x905d, 0x0160, 0x080c, 0x6034, 0x080c, 0xadcb, 0x0110,\r
++      0xb817, 0x0000, 0x9006, 0x00ce, 0x00be, 0x012e, 0x0005, 0x9085,\r
++      0x0001, 0x0cc8, 0x0126, 0x2091, 0x8000, 0x0156, 0x2010, 0x900e,\r
++      0x20a9, 0x0800, 0x0016, 0x9180, 0x1000, 0x2004, 0x9005, 0x0180,\r
++      0x9186, 0x007e, 0x0168, 0x9186, 0x007f, 0x0150, 0x9186, 0x0080,\r
++      0x0138, 0x9186, 0x00ff, 0x0120, 0x0026, 0x2200, 0x0801, 0x002e,\r
++      0x001e, 0x8108, 0x1f04, 0x56b2, 0x015e, 0x012e, 0x0005, 0x2001,\r
++      0x1848, 0x2004, 0x0005, 0x2001, 0x1867, 0x2004, 0x0005, 0x0006,\r
++      0x2001, 0x1810, 0x2004, 0xd0d4, 0x000e, 0x0005, 0x2001, 0x180e,\r
++      0x2004, 0xd0b4, 0x0005, 0x2001, 0x1800, 0x2004, 0x9086, 0x0003,\r
++      0x0005, 0x0016, 0x00e6, 0x2071, 0x189e, 0x7108, 0x910d, 0x710a,\r
++      0x00ee, 0x001e, 0x0005, 0x79a4, 0x9182, 0x0081, 0x1a04, 0x3559,\r
++      0x810c, 0x0016, 0x080c, 0x4aa4, 0x080c, 0x0f07, 0x2100, 0x2238,\r
++      0x7d84, 0x7c88, 0x7b8c, 0x7a90, 0x001e, 0x080c, 0x4aed, 0x701f,\r
++      0x570a, 0x0005, 0x2079, 0x0000, 0x7d94, 0x7c98, 0x7ba8, 0x7aac,\r
++      0x79a4, 0x810c, 0x2061, 0x18b8, 0x2c44, 0xa770, 0xa074, 0x2071,\r
++      0x189e, 0x080c, 0x4af0, 0x701f, 0x571e, 0x0005, 0x2061, 0x18b8,\r
++      0x2c44, 0x0016, 0x0026, 0xa270, 0xa174, 0x080c, 0x0f0f, 0x002e,\r
++      0x001e, 0x080c, 0x0fbc, 0x9006, 0xa802, 0xa806, 0x0804, 0x3524,\r
++      0x0126, 0x0156, 0x0136, 0x0146, 0x01c6, 0x01d6, 0x00c6, 0x00d6,\r
++      0x00e6, 0x00f6, 0x2061, 0x0100, 0x2069, 0x0200, 0x2071, 0x1800,\r
++      0x6044, 0xd0a4, 0x11e8, 0xd084, 0x0118, 0x080c, 0x58d9, 0x0068,\r
++      0xd08c, 0x0118, 0x080c, 0x57e2, 0x0040, 0xd094, 0x0118, 0x080c,\r
++      0x57b2, 0x0018, 0xd09c, 0x0108, 0x0099, 0x00fe, 0x00ee, 0x00de,\r
++      0x00ce, 0x01de, 0x01ce, 0x014e, 0x013e, 0x015e, 0x012e, 0x0005,\r
++      0x0016, 0x6128, 0xd19c, 0x1110, 0xc19d, 0x612a, 0x001e, 0x0c68,\r
++      0x0006, 0x7098, 0x9005, 0x000e, 0x0120, 0x709b, 0x0000, 0x7093,\r
++      0x0000, 0x624c, 0x9286, 0xf0f0, 0x1150, 0x6048, 0x9086, 0xf0f0,\r
++      0x0130, 0x624a, 0x6043, 0x0090, 0x6043, 0x0010, 0x0490, 0x9294,\r
++      0xff00, 0x9296, 0xf700, 0x0178, 0x7138, 0xd1a4, 0x1160, 0x6240,\r
++      0x9295, 0x0100, 0x6242, 0x9294, 0x0010, 0x0128, 0x2009, 0x00f7,\r
++      0x080c, 0x5f96, 0x00f0, 0x6040, 0x9084, 0x0010, 0x9085, 0x0140,\r
++      0x6042, 0x6043, 0x0000, 0x7087, 0x0000, 0x70a3, 0x0001, 0x70c7,\r
++      0x0000, 0x70df, 0x0000, 0x2009, 0x1c80, 0x200b, 0x0000, 0x7097,\r
++      0x0000, 0x708b, 0x000f, 0x2009, 0x000f, 0x2011, 0x5e7c, 0x080c,\r
++      0x858b, 0x0005, 0x2001, 0x1869, 0x2004, 0xd08c, 0x0110, 0x705f,\r
++      0xffff, 0x7088, 0x9005, 0x1528, 0x2011, 0x5e7c, 0x080c, 0x84f3,\r
++      0x6040, 0x9094, 0x0010, 0x9285, 0x0020, 0x6042, 0x20a9, 0x00c8,\r
++      0x6044, 0xd08c, 0x1168, 0x1f04, 0x57c8, 0x6242, 0x709b, 0x0000,\r
++      0x6040, 0x9094, 0x0010, 0x9285, 0x0080, 0x6042, 0x6242, 0x0048,\r
++      0x6242, 0x709b, 0x0000, 0x708f, 0x0000, 0x9006, 0x080c, 0x601f,\r
++      0x0000, 0x0005, 0x708c, 0x908a, 0x0003, 0x1a0c, 0x0dd5, 0x000b,\r
++      0x0005, 0x57ec, 0x583d, 0x58d8, 0x00f6, 0x0016, 0x6900, 0x918c,\r
++      0x0800, 0x708f, 0x0001, 0x2001, 0x015d, 0x2003, 0x0000, 0x6803,\r
++      0x00fc, 0x20a9, 0x0004, 0x6800, 0x9084, 0x00fc, 0x0120, 0x1f04,\r
++      0x57fb, 0x080c, 0x0dd5, 0x68a0, 0x68a2, 0x689c, 0x689e, 0x6898,\r
++      0x689a, 0xa001, 0x918d, 0x1600, 0x6902, 0x001e, 0x6837, 0x0020,\r
++      0x080c, 0x5ffb, 0x2079, 0x1c00, 0x7833, 0x1101, 0x7837, 0x0000,\r
++      0x20e1, 0x0001, 0x2099, 0x1805, 0x20e9, 0x0001, 0x20a1, 0x1c0e,\r
++      0x20a9, 0x0004, 0x4003, 0x080c, 0xab21, 0x20e1, 0x0001, 0x2099,\r
++      0x1c00, 0x20e9, 0x0000, 0x20a1, 0x0240, 0x20a9, 0x0014, 0x4003,\r
++      0x60c3, 0x000c, 0x600f, 0x0000, 0x080c, 0x5ead, 0x00fe, 0x9006,\r
++      0x7092, 0x6043, 0x0008, 0x6042, 0x0005, 0x00f6, 0x7090, 0x7093,\r
++      0x0000, 0x9025, 0x0904, 0x58b5, 0x6020, 0xd0b4, 0x1904, 0x58b3,\r
++      0x71a0, 0x81ff, 0x0904, 0x58a1, 0x9486, 0x000c, 0x1904, 0x58ae,\r
++      0x9480, 0x0018, 0x8004, 0x20a8, 0x080c, 0x5ff4, 0x2011, 0x0260,\r
++      0x2019, 0x1c00, 0x220c, 0x2304, 0x9106, 0x11e8, 0x8210, 0x8318,\r
++      0x1f04, 0x585a, 0x6043, 0x0004, 0x2061, 0x0140, 0x605b, 0xbc94,\r
++      0x605f, 0xf0f0, 0x2061, 0x0100, 0x6043, 0x0006, 0x708f, 0x0002,\r
++      0x709b, 0x0002, 0x2009, 0x07d0, 0x2011, 0x5e83, 0x080c, 0x858b,\r
++      0x080c, 0x5ffb, 0x04c0, 0x080c, 0x5ff4, 0x2079, 0x0260, 0x7930,\r
++      0x918e, 0x1101, 0x1558, 0x7834, 0x9005, 0x1540, 0x7900, 0x918c,\r
++      0x00ff, 0x1118, 0x7804, 0x9005, 0x0190, 0x080c, 0x5ff4, 0x2011,\r
++      0x026e, 0x2019, 0x1805, 0x20a9, 0x0004, 0x220c, 0x2304, 0x9102,\r
++      0x0230, 0x11a0, 0x8210, 0x8318, 0x1f04, 0x5895, 0x0078, 0x70a3,\r
++      0x0000, 0x080c, 0x5ff4, 0x20e1, 0x0000, 0x2099, 0x0260, 0x20e9,\r
++      0x0001, 0x20a1, 0x1c00, 0x20a9, 0x0014, 0x4003, 0x6043, 0x0008,\r
++      0x6043, 0x0000, 0x0010, 0x00fe, 0x0005, 0x6040, 0x9085, 0x0100,\r
++      0x6042, 0x6020, 0xd0b4, 0x1db8, 0x080c, 0xab21, 0x20e1, 0x0001,\r
++      0x2099, 0x1c00, 0x20e9, 0x0000, 0x20a1, 0x0240, 0x20a9, 0x0014,\r
++      0x4003, 0x60c3, 0x000c, 0x2011, 0x19f1, 0x2013, 0x0000, 0x7093,\r
++      0x0000, 0x60a3, 0x0056, 0x60a7, 0x9575, 0x080c, 0xa26a, 0x08d8,\r
++      0x0005, 0x7098, 0x908a, 0x001d, 0x1a0c, 0x0dd5, 0x000b, 0x0005,\r
++      0x590a, 0x591d, 0x5946, 0x5966, 0x598c, 0x59bb, 0x59e1, 0x5a19,\r
++      0x5a3f, 0x5a6d, 0x5aa8, 0x5ae0, 0x5afe, 0x5b29, 0x5b4b, 0x5b66,\r
++      0x5b70, 0x5ba4, 0x5bca, 0x5bf9, 0x5c1f, 0x5c57, 0x5c9b, 0x5cd8,\r
++      0x5cf9, 0x5d52, 0x5d74, 0x5da2, 0x5da2, 0x00c6, 0x2061, 0x1800,\r
++      0x6003, 0x0007, 0x2061, 0x0100, 0x6004, 0x9084, 0xfff9, 0x6006,\r
++      0x00ce, 0x0005, 0x2061, 0x0140, 0x605b, 0xbc94, 0x605f, 0xf0f0,\r
++      0x2061, 0x0100, 0x6043, 0x0002, 0x709b, 0x0001, 0x2009, 0x07d0,\r
++      0x2011, 0x5e83, 0x080c, 0x858b, 0x0005, 0x00f6, 0x7090, 0x9086,\r
++      0x0014, 0x1510, 0x6042, 0x6020, 0xd0b4, 0x11f0, 0x080c, 0x5ff4,\r
++      0x2079, 0x0260, 0x7a30, 0x9296, 0x1102, 0x11a0, 0x7834, 0x9005,\r
++      0x1188, 0x7a38, 0xd2fc, 0x0128, 0x70c4, 0x9005, 0x1110, 0x70c7,\r
++      0x0001, 0x2011, 0x5e83, 0x080c, 0x84f3, 0x709b, 0x0010, 0x080c,\r
++      0x5b70, 0x0010, 0x7093, 0x0000, 0x00fe, 0x0005, 0x00f6, 0x709b,\r
++      0x0003, 0x6043, 0x0004, 0x2011, 0x5e83, 0x080c, 0x84f3, 0x080c,\r
++      0x5f78, 0x2079, 0x0240, 0x7833, 0x1102, 0x7837, 0x0000, 0x20a9,\r
++      0x0008, 0x9f88, 0x000e, 0x200b, 0x0000, 0x8108, 0x1f04, 0x595b,\r
++      0x60c3, 0x0014, 0x080c, 0x5ead, 0x00fe, 0x0005, 0x00f6, 0x7090,\r
++      0x9005, 0x0500, 0x2011, 0x5e83, 0x080c, 0x84f3, 0x9086, 0x0014,\r
++      0x11b8, 0x080c, 0x5ff4, 0x2079, 0x0260, 0x7a30, 0x9296, 0x1102,\r
++      0x1178, 0x7834, 0x9005, 0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70c4,\r
++      0x9005, 0x1110, 0x70c7, 0x0001, 0x709b, 0x0004, 0x0029, 0x0010,\r
++      0x080c, 0x5fd0, 0x00fe, 0x0005, 0x00f6, 0x709b, 0x0005, 0x080c,\r
++      0x5f78, 0x2079, 0x0240, 0x7833, 0x1103, 0x7837, 0x0000, 0x080c,\r
++      0x5ff4, 0x080c, 0x5fd7, 0x1170, 0x7084, 0x9005, 0x1158, 0x715c,\r
++      0x9186, 0xffff, 0x0138, 0x2011, 0x0008, 0x080c, 0x5e30, 0x0168,\r
++      0x080c, 0x5fad, 0x20a9, 0x0008, 0x20e1, 0x0000, 0x2099, 0x026e,\r
++      0x20e9, 0x0000, 0x20a1, 0x024e, 0x4003, 0x60c3, 0x0014, 0x080c,\r
++      0x5ead, 0x00fe, 0x0005, 0x00f6, 0x7090, 0x9005, 0x0500, 0x2011,\r
++      0x5e83, 0x080c, 0x84f3, 0x9086, 0x0014, 0x11b8, 0x080c, 0x5ff4,\r
++      0x2079, 0x0260, 0x7a30, 0x9296, 0x1103, 0x1178, 0x7834, 0x9005,\r
++      0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70c4, 0x9005, 0x1110, 0x70c7,\r
++      0x0001, 0x709b, 0x0006, 0x0029, 0x0010, 0x080c, 0x5fd0, 0x00fe,\r
++      0x0005, 0x00f6, 0x709b, 0x0007, 0x080c, 0x5f78, 0x2079, 0x0240,\r
++      0x7833, 0x1104, 0x7837, 0x0000, 0x080c, 0x5ff4, 0x080c, 0x5fd7,\r
++      0x11b8, 0x7084, 0x9005, 0x11a0, 0x7164, 0x9186, 0xffff, 0x0180,\r
++      0x9180, 0x3325, 0x200d, 0x918c, 0xff00, 0x810f, 0x2011, 0x0008,\r
++      0x080c, 0x5e30, 0x0180, 0x080c, 0x4fe1, 0x0110, 0x080c, 0x28a7,\r
++      0x20a9, 0x0008, 0x20e1, 0x0000, 0x2099, 0x026e, 0x20e9, 0x0000,\r
++      0x20a1, 0x024e, 0x4003, 0x60c3, 0x0014, 0x080c, 0x5ead, 0x00fe,\r
++      0x0005, 0x00f6, 0x7090, 0x9005, 0x0500, 0x2011, 0x5e83, 0x080c,\r
++      0x84f3, 0x9086, 0x0014, 0x11b8, 0x080c, 0x5ff4, 0x2079, 0x0260,\r
++      0x7a30, 0x9296, 0x1104, 0x1178, 0x7834, 0x9005, 0x1160, 0x7a38,\r
++      0xd2fc, 0x0128, 0x70c4, 0x9005, 0x1110, 0x70c7, 0x0001, 0x709b,\r
++      0x0008, 0x0029, 0x0010, 0x080c, 0x5fd0, 0x00fe, 0x0005, 0x00f6,\r
++      0x709b, 0x0009, 0x080c, 0x5f78, 0x2079, 0x0240, 0x7833, 0x1105,\r
++      0x7837, 0x0100, 0x080c, 0x5fd7, 0x1150, 0x7084, 0x9005, 0x1138,\r
++      0x080c, 0x5da3, 0x1188, 0x9085, 0x0001, 0x080c, 0x28a7, 0x20a9,\r
++      0x0008, 0x080c, 0x5ff4, 0x20e1, 0x0000, 0x2099, 0x026e, 0x20e9,\r
++      0x0000, 0x20a1, 0x024e, 0x4003, 0x60c3, 0x0014, 0x080c, 0x5ead,\r
++      0x0010, 0x080c, 0x58fd, 0x00fe, 0x0005, 0x00f6, 0x7090, 0x9005,\r
++      0x05a8, 0x2011, 0x5e83, 0x080c, 0x84f3, 0x9086, 0x0014, 0x1560,\r
++      0x080c, 0x5ff4, 0x2079, 0x0260, 0x7a30, 0x9296, 0x1105, 0x1520,\r
++      0x7834, 0x9084, 0x0100, 0x2011, 0x0100, 0x921e, 0x1160, 0x7a38,\r
++      0xd2fc, 0x0128, 0x70c4, 0x9005, 0x1110, 0x70c7, 0x0001, 0x709b,\r
++      0x000a, 0x00b1, 0x0098, 0x9005, 0x1178, 0x7a38, 0xd2fc, 0x0128,\r
++      0x70c4, 0x9005, 0x1110, 0x70c7, 0x0001, 0x7097, 0x0000, 0x709b,\r
++      0x000e, 0x080c, 0x5b4b, 0x0010, 0x080c, 0x5fd0, 0x00fe, 0x0005,\r
++      0x00f6, 0x709b, 0x000b, 0x2011, 0x1c0e, 0x20e9, 0x0001, 0x22a0,\r
++      0x20a9, 0x0040, 0x2019, 0xffff, 0x4304, 0x080c, 0x5f78, 0x2079,\r
++      0x0240, 0x7833, 0x1106, 0x7837, 0x0000, 0x080c, 0x5fd7, 0x0118,\r
++      0x2013, 0x0000, 0x0020, 0x7060, 0x9085, 0x0100, 0x2012, 0x20a9,\r
++      0x0040, 0x2009, 0x024e, 0x2011, 0x1c0e, 0x220e, 0x8210, 0x8108,\r
++      0x9186, 0x0260, 0x1128, 0x6810, 0x8000, 0x6812, 0x2009, 0x0240,\r
++      0x1f04, 0x5acd, 0x60c3, 0x0084, 0x080c, 0x5ead, 0x00fe, 0x0005,\r
++      0x00f6, 0x7090, 0x9005, 0x01c0, 0x2011, 0x5e83, 0x080c, 0x84f3,\r
++      0x9086, 0x0084, 0x1178, 0x080c, 0x5ff4, 0x2079, 0x0260, 0x7a30,\r
++      0x9296, 0x1106, 0x1138, 0x7834, 0x9005, 0x1120, 0x709b, 0x000c,\r
++      0x0029, 0x0010, 0x080c, 0x5fd0, 0x00fe, 0x0005, 0x00f6, 0x709b,\r
++      0x000d, 0x080c, 0x5f78, 0x2079, 0x0240, 0x7833, 0x1107, 0x7837,\r
++      0x0000, 0x080c, 0x5ff4, 0x20a9, 0x0040, 0x2011, 0x026e, 0x2009,\r
++      0x024e, 0x220e, 0x8210, 0x8108, 0x9186, 0x0260, 0x1150, 0x6810,\r
++      0x8000, 0x6812, 0x2009, 0x0240, 0x6814, 0x8000, 0x6816, 0x2011,\r
++      0x0260, 0x1f04, 0x5b11, 0x60c3, 0x0084, 0x080c, 0x5ead, 0x00fe,\r
++      0x0005, 0x00f6, 0x7090, 0x9005, 0x01e0, 0x2011, 0x5e83, 0x080c,\r
++      0x84f3, 0x9086, 0x0084, 0x1198, 0x080c, 0x5ff4, 0x2079, 0x0260,\r
++      0x7a30, 0x9296, 0x1107, 0x1158, 0x7834, 0x9005, 0x1140, 0x7097,\r
++      0x0001, 0x080c, 0x5f4a, 0x709b, 0x000e, 0x0029, 0x0010, 0x080c,\r
++      0x5fd0, 0x00fe, 0x0005, 0x918d, 0x0001, 0x080c, 0x601f, 0x709b,\r
++      0x000f, 0x7093, 0x0000, 0x2061, 0x0140, 0x605b, 0xbc85, 0x605f,\r
++      0xb5b5, 0x2061, 0x0100, 0x6043, 0x0005, 0x6043, 0x0004, 0x2009,\r
++      0x07d0, 0x2011, 0x5e83, 0x080c, 0x84e7, 0x0005, 0x7090, 0x9005,\r
++      0x0130, 0x2011, 0x5e83, 0x080c, 0x84f3, 0x709b, 0x0000, 0x0005,\r
++      0x709b, 0x0011, 0x080c, 0xab21, 0x080c, 0x5ff4, 0x20e1, 0x0000,\r
++      0x2099, 0x0260, 0x20e9, 0x0000, 0x20a1, 0x0240, 0x7490, 0x9480,\r
++      0x0018, 0x9080, 0x0007, 0x9084, 0x03f8, 0x8004, 0x20a8, 0x4003,\r
++      0x080c, 0x5fd7, 0x11a0, 0x717c, 0x81ff, 0x0188, 0x900e, 0x7080,\r
++      0x9084, 0x00ff, 0x0160, 0x080c, 0x283e, 0x9186, 0x007e, 0x0138,\r
++      0x9186, 0x0080, 0x0120, 0x2011, 0x0008, 0x080c, 0x5e30, 0x60c3,\r
++      0x0014, 0x080c, 0x5ead, 0x0005, 0x00f6, 0x7090, 0x9005, 0x0500,\r
++      0x2011, 0x5e83, 0x080c, 0x84f3, 0x9086, 0x0014, 0x11b8, 0x080c,\r
++      0x5ff4, 0x2079, 0x0260, 0x7a30, 0x9296, 0x1103, 0x1178, 0x7834,\r
++      0x9005, 0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70c4, 0x9005, 0x1110,\r
++      0x70c7, 0x0001, 0x709b, 0x0012, 0x0029, 0x0010, 0x7093, 0x0000,\r
++      0x00fe, 0x0005, 0x00f6, 0x709b, 0x0013, 0x080c, 0x5f86, 0x2079,\r
++      0x0240, 0x7833, 0x1103, 0x7837, 0x0000, 0x080c, 0x5ff4, 0x080c,\r
++      0x5fd7, 0x1170, 0x7084, 0x9005, 0x1158, 0x715c, 0x9186, 0xffff,\r
++      0x0138, 0x2011, 0x0008, 0x080c, 0x5e30, 0x0168, 0x080c, 0x5fad,\r
++      0x20a9, 0x0008, 0x20e1, 0x0000, 0x2099, 0x026e, 0x20e9, 0x0000,\r
++      0x20a1, 0x024e, 0x4003, 0x60c3, 0x0014, 0x080c, 0x5ead, 0x00fe,\r
++      0x0005, 0x00f6, 0x7090, 0x9005, 0x0500, 0x2011, 0x5e83, 0x080c,\r
++      0x84f3, 0x9086, 0x0014, 0x11b8, 0x080c, 0x5ff4, 0x2079, 0x0260,\r
++      0x7a30, 0x9296, 0x1104, 0x1178, 0x7834, 0x9005, 0x1160, 0x7a38,\r
++      0xd2fc, 0x0128, 0x70c4, 0x9005, 0x1110, 0x70c7, 0x0001, 0x709b,\r
++      0x0014, 0x0029, 0x0010, 0x7093, 0x0000, 0x00fe, 0x0005, 0x00f6,\r
++      0x709b, 0x0015, 0x080c, 0x5f86, 0x2079, 0x0240, 0x7833, 0x1104,\r
++      0x7837, 0x0000, 0x080c, 0x5ff4, 0x080c, 0x5fd7, 0x11b8, 0x7084,\r
++      0x9005, 0x11a0, 0x7164, 0x9186, 0xffff, 0x0180, 0x9180, 0x3325,\r
++      0x200d, 0x918c, 0xff00, 0x810f, 0x2011, 0x0008, 0x080c, 0x5e30,\r
++      0x0180, 0x080c, 0x4fe1, 0x0110, 0x080c, 0x28a7, 0x20a9, 0x0008,\r
++      0x20e1, 0x0000, 0x2099, 0x026e, 0x20e9, 0x0000, 0x20a1, 0x024e,\r
++      0x4003, 0x60c3, 0x0014, 0x080c, 0x5ead, 0x00fe, 0x0005, 0x00f6,\r
++      0x7090, 0x9005, 0x05f0, 0x2011, 0x5e83, 0x080c, 0x84f3, 0x9086,\r
++      0x0014, 0x15a8, 0x080c, 0x5ff4, 0x2079, 0x0260, 0x7a30, 0x9296,\r
++      0x1105, 0x1568, 0x7834, 0x9084, 0x0100, 0x2011, 0x0100, 0x921e,\r
++      0x1168, 0x9085, 0x0001, 0x080c, 0x601f, 0x7a38, 0xd2fc, 0x0128,\r
++      0x70c4, 0x9005, 0x1110, 0x70c7, 0x0001, 0x0080, 0x9005, 0x11b8,\r
++      0x7a38, 0xd2fc, 0x0128, 0x70c4, 0x9005, 0x1110, 0x70c7, 0x0001,\r
++      0x9085, 0x0001, 0x080c, 0x601f, 0x7097, 0x0000, 0x7a38, 0xd2f4,\r
++      0x0110, 0x70df, 0x0008, 0x709b, 0x0016, 0x0029, 0x0010, 0x7093,\r
++      0x0000, 0x00fe, 0x0005, 0x080c, 0xab21, 0x080c, 0x5ff4, 0x20e1,\r
++      0x0000, 0x2099, 0x0260, 0x20e9, 0x0000, 0x20a1, 0x0240, 0x20a9,\r
++      0x000e, 0x4003, 0x2011, 0x026d, 0x2204, 0x9084, 0x0100, 0x2011,\r
++      0x024d, 0x2012, 0x2011, 0x026e, 0x709b, 0x0017, 0x080c, 0x5fd7,\r
++      0x1150, 0x7084, 0x9005, 0x1138, 0x080c, 0x5da3, 0x1188, 0x9085,\r
++      0x0001, 0x080c, 0x28a7, 0x20a9, 0x0008, 0x080c, 0x5ff4, 0x20e1,\r
++      0x0000, 0x2099, 0x026e, 0x20e9, 0x0000, 0x20a1, 0x024e, 0x4003,\r
++      0x60c3, 0x0014, 0x080c, 0x5ead, 0x0010, 0x080c, 0x58fd, 0x0005,\r
++      0x00f6, 0x7090, 0x9005, 0x01d8, 0x2011, 0x5e83, 0x080c, 0x84f3,\r
++      0x9086, 0x0084, 0x1190, 0x080c, 0x5ff4, 0x2079, 0x0260, 0x7a30,\r
++      0x9296, 0x1106, 0x1150, 0x7834, 0x9005, 0x1138, 0x9006, 0x080c,\r
++      0x601f, 0x709b, 0x0018, 0x0029, 0x0010, 0x7093, 0x0000, 0x00fe,\r
++      0x0005, 0x00f6, 0x709b, 0x0019, 0x080c, 0x5f86, 0x2079, 0x0240,\r
++      0x7833, 0x1106, 0x7837, 0x0000, 0x080c, 0x5ff4, 0x2009, 0x026e,\r
++      0x2039, 0x1c0e, 0x20a9, 0x0040, 0x213e, 0x8738, 0x8108, 0x9186,\r
++      0x0280, 0x1128, 0x6814, 0x8000, 0x6816, 0x2009, 0x0260, 0x1f04,\r
++      0x5d0c, 0x2039, 0x1c0e, 0x080c, 0x5fd7, 0x11e8, 0x2728, 0x2514,\r
++      0x8207, 0x9084, 0x00ff, 0x8000, 0x2018, 0x9294, 0x00ff, 0x8007,\r
++      0x9205, 0x202a, 0x7060, 0x2310, 0x8214, 0x92a0, 0x1c0e, 0x2414,\r
++      0x938c, 0x0001, 0x0118, 0x9294, 0xff00, 0x0018, 0x9294, 0x00ff,\r
++      0x8007, 0x9215, 0x2222, 0x20a9, 0x0040, 0x2009, 0x024e, 0x270e,\r
++      0x8738, 0x8108, 0x9186, 0x0260, 0x1128, 0x6810, 0x8000, 0x6812,\r
++      0x2009, 0x0240, 0x1f04, 0x5d3f, 0x60c3, 0x0084, 0x080c, 0x5ead,\r
++      0x00fe, 0x0005, 0x00f6, 0x7090, 0x9005, 0x01e0, 0x2011, 0x5e83,\r
++      0x080c, 0x84f3, 0x9086, 0x0084, 0x1198, 0x080c, 0x5ff4, 0x2079,\r
++      0x0260, 0x7a30, 0x9296, 0x1107, 0x1158, 0x7834, 0x9005, 0x1140,\r
++      0x7097, 0x0001, 0x080c, 0x5f4a, 0x709b, 0x001a, 0x0029, 0x0010,\r
++      0x7093, 0x0000, 0x00fe, 0x0005, 0x9085, 0x0001, 0x080c, 0x601f,\r
++      0x709b, 0x001b, 0x080c, 0xab21, 0x080c, 0x5ff4, 0x2011, 0x0260,\r
++      0x2009, 0x0240, 0x7490, 0x9480, 0x0018, 0x9080, 0x0007, 0x9084,\r
++      0x03f8, 0x8004, 0x20a8, 0x220e, 0x8210, 0x8108, 0x9186, 0x0260,\r
++      0x1150, 0x6810, 0x8000, 0x6812, 0x2009, 0x0240, 0x6814, 0x8000,\r
++      0x6816, 0x2011, 0x0260, 0x1f04, 0x5d8b, 0x60c3, 0x0084, 0x080c,\r
++      0x5ead, 0x0005, 0x0005, 0x0086, 0x0096, 0x2029, 0x1848, 0x252c,\r
++      0x20a9, 0x0008, 0x2041, 0x1c0e, 0x20e9, 0x0001, 0x28a0, 0x080c,\r
++      0x5ff4, 0x20e1, 0x0000, 0x2099, 0x026e, 0x4003, 0x20a9, 0x0008,\r
++      0x2011, 0x0007, 0xd5d4, 0x0108, 0x9016, 0x2800, 0x9200, 0x200c,\r
++      0x91a6, 0xffff, 0x1148, 0xd5d4, 0x0110, 0x8210, 0x0008, 0x8211,\r
++      0x1f04, 0x5dbd, 0x0804, 0x5e2c, 0x82ff, 0x1160, 0xd5d4, 0x0120,\r
++      0x91a6, 0x3fff, 0x0d90, 0x0020, 0x91a6, 0x3fff, 0x0904, 0x5e2c,\r
++      0x918d, 0xc000, 0x20a9, 0x0010, 0x2019, 0x0001, 0xd5d4, 0x0110,\r
++      0x2019, 0x0010, 0x2120, 0xd5d4, 0x0110, 0x8423, 0x0008, 0x8424,\r
++      0x1240, 0xd5d4, 0x0110, 0x8319, 0x0008, 0x8318, 0x1f04, 0x5de3,\r
++      0x04d8, 0x23a8, 0x2021, 0x0001, 0x8426, 0x8425, 0x1f04, 0x5df5,\r
++      0x2328, 0x8529, 0x92be, 0x0007, 0x0158, 0x0006, 0x2039, 0x0007,\r
++      0x2200, 0x973a, 0x000e, 0x27a8, 0x95a8, 0x0010, 0x1f04, 0x5e04,\r
++      0x755e, 0x95c8, 0x3325, 0x292d, 0x95ac, 0x00ff, 0x7582, 0x6532,\r
++      0x6536, 0x0016, 0x2508, 0x080c, 0x2887, 0x001e, 0x60e7, 0x0000,\r
++      0x65ea, 0x2018, 0x2304, 0x9405, 0x201a, 0x7087, 0x0001, 0x20e9,\r
++      0x0000, 0x20a1, 0x024e, 0x20e1, 0x0001, 0x2898, 0x20a9, 0x0008,\r
++      0x4003, 0x9085, 0x0001, 0x0008, 0x9006, 0x009e, 0x008e, 0x0005,\r
++      0x0156, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x22a8, 0x20e1, 0x0000,\r
++      0x2099, 0x026e, 0x20e9, 0x0000, 0x2011, 0x024e, 0x22a0, 0x4003,\r
++      0x014e, 0x013e, 0x01de, 0x01ce, 0x015e, 0x2118, 0x9026, 0x2001,\r
++      0x0007, 0x939a, 0x0010, 0x0218, 0x8420, 0x8001, 0x0cd0, 0x2118,\r
++      0x84ff, 0x0120, 0x939a, 0x0010, 0x8421, 0x1de0, 0x2021, 0x0001,\r
++      0x83ff, 0x0118, 0x8423, 0x8319, 0x1de8, 0x9238, 0x2029, 0x026e,\r
++      0x9528, 0x2504, 0x942c, 0x11b8, 0x9405, 0x203a, 0x715e, 0x91a0,\r
++      0x3325, 0x242d, 0x95ac, 0x00ff, 0x7582, 0x6532, 0x6536, 0x0016,\r
++      0x2508, 0x080c, 0x2887, 0x001e, 0x60e7, 0x0000, 0x65ea, 0x7087,\r
++      0x0001, 0x9084, 0x0000, 0x0005, 0x00e6, 0x2071, 0x1800, 0x708b,\r
++      0x0000, 0x00ee, 0x0005, 0x00e6, 0x00f6, 0x2079, 0x0100, 0x2071,\r
++      0x0140, 0x080c, 0x5f39, 0x080c, 0xa273, 0x7004, 0x9084, 0x4000,\r
++      0x0110, 0x080c, 0x2cff, 0x0126, 0x2091, 0x8000, 0x2071, 0x1826,\r
++      0x2073, 0x0000, 0x7840, 0x0026, 0x0016, 0x2009, 0x00f7, 0x080c,\r
++      0x5f96, 0x001e, 0x9094, 0x0010, 0x9285, 0x0080, 0x7842, 0x7a42,\r
++      0x002e, 0x012e, 0x00fe, 0x00ee, 0x0005, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x2ba5, 0x0228, 0x2011, 0x0101, 0x2204, 0xc0c5, 0x2012,\r
++      0x2011, 0x19f1, 0x2013, 0x0000, 0x7093, 0x0000, 0x012e, 0x60a3,\r
++      0x0056, 0x60a7, 0x9575, 0x080c, 0xa26a, 0x6144, 0xd184, 0x0120,\r
++      0x7198, 0x918d, 0x2000, 0x0018, 0x718c, 0x918d, 0x1000, 0x2011,\r
++      0x1999, 0x2112, 0x2009, 0x07d0, 0x2011, 0x5e83, 0x080c, 0x858b,\r
++      0x0005, 0x0016, 0x0026, 0x00c6, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0xadd2, 0x2009, 0x00f7, 0x080c, 0x5f96, 0x2061, 0x19fa, 0x900e,\r
++      0x611a, 0x611e, 0x6172, 0x6176, 0x2061, 0x1800, 0x6003, 0x0001,\r
++      0x2061, 0x0100, 0x6043, 0x0090, 0x6043, 0x0010, 0x2009, 0x1999,\r
++      0x200b, 0x0000, 0x2009, 0x002d, 0x2011, 0x5f05, 0x080c, 0x84e7,\r
++      0x012e, 0x00ce, 0x002e, 0x001e, 0x0005, 0x00e6, 0x0006, 0x0126,\r
++      0x2091, 0x8000, 0x0471, 0x2071, 0x0100, 0x080c, 0xa273, 0x2071,\r
++      0x0140, 0x7004, 0x9084, 0x4000, 0x0110, 0x080c, 0x2cff, 0x080c,\r
++      0x73c4, 0x0188, 0x080c, 0x73df, 0x1170, 0x080c, 0x76ae, 0x0016,\r
++      0x080c, 0x2956, 0x2001, 0x196d, 0x2102, 0x001e, 0x080c, 0x76a9,\r
++      0x080c, 0x72ee, 0x0050, 0x2009, 0x0001, 0x080c, 0x2c3e, 0x2001,\r
++      0x0001, 0x080c, 0x27ea, 0x080c, 0x5ed9, 0x012e, 0x000e, 0x00ee,\r
++      0x0005, 0x2001, 0x180e, 0x2004, 0xd0bc, 0x0158, 0x0026, 0x0036,\r
++      0x2011, 0x8017, 0x2001, 0x1999, 0x201c, 0x080c, 0x4b04, 0x003e,\r
++      0x002e, 0x0005, 0x20a9, 0x0012, 0x20e9, 0x0001, 0x20a1, 0x1c80,\r
++      0x080c, 0x5ff4, 0x20e9, 0x0000, 0x2099, 0x026e, 0x0099, 0x20a9,\r
++      0x0020, 0x080c, 0x5fee, 0x2099, 0x0260, 0x20a1, 0x1c92, 0x0051,\r
++      0x20a9, 0x000e, 0x080c, 0x5ff1, 0x2099, 0x0260, 0x20a1, 0x1cb2,\r
++      0x0009, 0x0005, 0x0016, 0x0026, 0x3410, 0x3308, 0x2104, 0x8007,\r
++      0x2012, 0x8108, 0x8210, 0x1f04, 0x5f6e, 0x002e, 0x001e, 0x0005,\r
++      0x080c, 0xab21, 0x20e1, 0x0001, 0x2099, 0x1c00, 0x20e9, 0x0000,\r
++      0x20a1, 0x0240, 0x20a9, 0x000c, 0x4003, 0x0005, 0x080c, 0xab21,\r
++      0x080c, 0x5ff4, 0x20e1, 0x0000, 0x2099, 0x0260, 0x20e9, 0x0000,\r
++      0x20a1, 0x0240, 0x20a9, 0x000c, 0x4003, 0x0005, 0x00c6, 0x0006,\r
++      0x2061, 0x0100, 0x810f, 0x2001, 0x1834, 0x2004, 0x9005, 0x1138,\r
++      0x2001, 0x1818, 0x2004, 0x9084, 0x00ff, 0x9105, 0x0010, 0x9185,\r
++      0x00f7, 0x604a, 0x000e, 0x00ce, 0x0005, 0x0016, 0x0046, 0x080c,\r
++      0x696e, 0x0158, 0x9006, 0x2020, 0x2009, 0x002a, 0x080c, 0xe5ae,\r
++      0x2001, 0x180c, 0x200c, 0xc195, 0x2102, 0x2019, 0x002a, 0x900e,\r
++      0x080c, 0x318a, 0x080c, 0xd230, 0x0140, 0x0036, 0x2019, 0xffff,\r
++      0x2021, 0x0007, 0x080c, 0x4cbb, 0x003e, 0x004e, 0x001e, 0x0005,\r
++      0x080c, 0x5ed9, 0x709b, 0x0000, 0x7093, 0x0000, 0x0005, 0x0006,\r
++      0x2001, 0x180c, 0x2004, 0xd09c, 0x0100, 0x000e, 0x0005, 0x0006,\r
++      0x0016, 0x0126, 0x2091, 0x8000, 0x2001, 0x0101, 0x200c, 0x918d,\r
++      0x0006, 0x2102, 0x012e, 0x001e, 0x000e, 0x0005, 0x2009, 0x0001,\r
++      0x0020, 0x2009, 0x0002, 0x0008, 0x900e, 0x6814, 0x9084, 0xffc0,\r
++      0x910d, 0x6916, 0x0005, 0x00f6, 0x0156, 0x0146, 0x01d6, 0x9006,\r
++      0x20a9, 0x0080, 0x20e9, 0x0001, 0x20a1, 0x1c00, 0x4004, 0x2079,\r
++      0x1c00, 0x7803, 0x2200, 0x7807, 0x00ef, 0x780f, 0x00ef, 0x7813,\r
++      0x0138, 0x7823, 0xffff, 0x7827, 0xffff, 0x01de, 0x014e, 0x015e,\r
++      0x00fe, 0x0005, 0x2001, 0x1800, 0x2003, 0x0001, 0x0005, 0x2001,\r
++      0x19a6, 0x0118, 0x2003, 0x0001, 0x0010, 0x2003, 0x0000, 0x0005,\r
++      0x0156, 0x20a9, 0x0800, 0x2009, 0x1000, 0x9006, 0x200a, 0x8108,\r
++      0x1f04, 0x602e, 0x015e, 0x0005, 0x00d6, 0x0036, 0x0156, 0x0136,\r
++      0x0146, 0x2069, 0x1847, 0x9006, 0xb802, 0xb8ce, 0xb807, 0x0707,\r
++      0xb80a, 0xb80e, 0xb812, 0x9198, 0x3325, 0x231d, 0x939c, 0x00ff,\r
++      0xbb16, 0x0016, 0x0026, 0xb8c2, 0x080c, 0xadcb, 0x1120, 0x9192,\r
++      0x007e, 0x1208, 0xbbc2, 0x20a9, 0x0004, 0xb8c4, 0x20e8, 0xb9c8,\r
++      0x9198, 0x0006, 0x9006, 0x23a0, 0x4004, 0x20a9, 0x0004, 0x9198,\r
++      0x000a, 0x23a0, 0x4004, 0x002e, 0x001e, 0xb83e, 0xb842, 0xb84e,\r
++      0xb852, 0xb856, 0xb85a, 0xb85e, 0xb862, 0xb866, 0xb86a, 0xb86f,\r
++      0x0100, 0xb872, 0xb876, 0xb87a, 0xb88a, 0xb88e, 0xb893, 0x0008,\r
++      0xb896, 0xb89a, 0xb89e, 0xb8be, 0xb9a2, 0x0096, 0xb8a4, 0x904d,\r
++      0x0110, 0x080c, 0x1031, 0xb8a7, 0x0000, 0x009e, 0x9006, 0xb84a,\r
++      0x6810, 0xb83a, 0x680c, 0xb846, 0xb8bb, 0x0520, 0xb8ac, 0x9005,\r
++      0x0198, 0x00c6, 0x2060, 0x9c82, 0x1cd0, 0x0a0c, 0x0dd5, 0x2001,\r
++      0x181a, 0x2004, 0x9c02, 0x1a0c, 0x0dd5, 0x080c, 0x8981, 0x00ce,\r
++      0x090c, 0x8d25, 0xb8af, 0x0000, 0x6814, 0x9084, 0x00ff, 0xb842,\r
++      0x014e, 0x013e, 0x015e, 0x003e, 0x00de, 0x0005, 0x0126, 0x2091,\r
++      0x8000, 0xa974, 0xae78, 0x9684, 0x3fff, 0x9082, 0x4000, 0x1a04,\r
++      0x611c, 0x9182, 0x0800, 0x1a04, 0x6120, 0x2001, 0x180c, 0x2004,\r
++      0x9084, 0x0003, 0x1904, 0x6126, 0x9188, 0x1000, 0x2104, 0x905d,\r
++      0x0518, 0xb804, 0x9084, 0x00ff, 0x908e, 0x0006, 0x1508, 0xb8a4,\r
++      0x900d, 0x1904, 0x6138, 0xb850, 0x900d, 0x1148, 0xa802, 0x2900,\r
++      0xb852, 0xb84e, 0x080c, 0x910d, 0x9006, 0x012e, 0x0005, 0x00a6,\r
++      0x2150, 0x2900, 0xb002, 0xa803, 0x0000, 0x00ae, 0xb852, 0x0c90,\r
++      0x2001, 0x0005, 0x900e, 0x04b8, 0x2001, 0x0028, 0x900e, 0x0498,\r
++      0x9082, 0x0006, 0x1290, 0x080c, 0xadcb, 0x1160, 0xb8a0, 0x9084,\r
++      0xff80, 0x1140, 0xb900, 0xd1fc, 0x0990, 0x2001, 0x0029, 0x2009,\r
++      0x1000, 0x0408, 0x2001, 0x0028, 0x00a8, 0x2009, 0x180c, 0x210c,\r
++      0xd18c, 0x0118, 0x2001, 0x0004, 0x0068, 0xd184, 0x0118, 0x2001,\r
++      0x0004, 0x0040, 0x2001, 0x0029, 0xb900, 0xd1fc, 0x0118, 0x2009,\r
++      0x1000, 0x0048, 0x900e, 0x0038, 0x2001, 0x0029, 0x900e, 0x0018,\r
++      0x2001, 0x0029, 0x900e, 0x9005, 0x012e, 0x0005, 0x2001, 0x180c,\r
++      0x2004, 0xd084, 0x19d0, 0x9188, 0x1000, 0x2104, 0x905d, 0x09a8,\r
++      0x080c, 0x6972, 0x1990, 0xb800, 0xd0bc, 0x0978, 0x0804, 0x60cf,\r
++      0x080c, 0x679b, 0x0904, 0x60e8, 0x0804, 0x60d3, 0x00b6, 0x00e6,\r
++      0x0126, 0x2091, 0x8000, 0xa874, 0x908e, 0x00ff, 0x1120, 0x2001,\r
++      0x196b, 0x205c, 0x0060, 0xa974, 0x9182, 0x0800, 0x1690, 0x9188,\r
++      0x1000, 0x2104, 0x905d, 0x01d0, 0x080c, 0x6912, 0x11d0, 0x080c,\r
++      0xae0b, 0x0570, 0x2b00, 0x6012, 0x2900, 0x6016, 0x6023, 0x0009,\r
++      0x600b, 0x0000, 0xa874, 0x908e, 0x00ff, 0x1110, 0x600b, 0x8000,\r
++      0x2009, 0x0043, 0x080c, 0xaedc, 0x9006, 0x00b0, 0x2001, 0x0028,\r
++      0x0090, 0x2009, 0x180c, 0x210c, 0xd18c, 0x0118, 0x2001, 0x0004,\r
++      0x0038, 0xd184, 0x0118, 0x2001, 0x0004, 0x0010, 0x2001, 0x0029,\r
++      0x0010, 0x2001, 0x0029, 0x9005, 0x012e, 0x00ee, 0x00be, 0x0005,\r
++      0x2001, 0x002c, 0x0cc0, 0x00b6, 0x00e6, 0x0126, 0x2091, 0x8000,\r
++      0xa974, 0x9182, 0x0800, 0x1a04, 0x6206, 0x9188, 0x1000, 0x2104,\r
++      0x905d, 0x0904, 0x61de, 0xb8a0, 0x9086, 0x007f, 0x0178, 0x080c,\r
++      0x697a, 0x0160, 0xa994, 0x81ff, 0x0130, 0x908e, 0x0004, 0x0130,\r
++      0x908e, 0x0005, 0x0118, 0x080c, 0x6972, 0x1598, 0xa87c, 0xd0fc,\r
++      0x01e0, 0xa894, 0x9005, 0x01c8, 0x2060, 0x0026, 0x2010, 0x080c,\r
++      0xcb23, 0x002e, 0x1120, 0x2001, 0x0008, 0x0804, 0x6208, 0x6020,\r
++      0x9086, 0x000a, 0x0120, 0x2001, 0x0008, 0x0804, 0x6208, 0x601a,\r
++      0x6003, 0x0008, 0x2900, 0x6016, 0x0058, 0x080c, 0xae0b, 0x05e8,\r
++      0x2b00, 0x6012, 0x2900, 0x6016, 0x600b, 0xffff, 0x6023, 0x000a,\r
++      0x2009, 0x0003, 0x080c, 0xaedc, 0x9006, 0x0458, 0x2001, 0x0028,\r
++      0x0438, 0x9082, 0x0006, 0x1290, 0x080c, 0xadcb, 0x1160, 0xb8a0,\r
++      0x9084, 0xff80, 0x1140, 0xb900, 0xd1fc, 0x0900, 0x2001, 0x0029,\r
++      0x2009, 0x1000, 0x00a8, 0x2001, 0x0028, 0x0090, 0x2009, 0x180c,\r
++      0x210c, 0xd18c, 0x0118, 0x2001, 0x0004, 0x0050, 0xd184, 0x0118,\r
++      0x2001, 0x0004, 0x0028, 0x2001, 0x0029, 0x0010, 0x2001, 0x0029,\r
++      0x9005, 0x012e, 0x00ee, 0x00be, 0x0005, 0x2001, 0x002c, 0x0cc0,\r
++      0x00f6, 0x00b6, 0x0126, 0x2091, 0x8000, 0xa8e0, 0x9005, 0x1550,\r
++      0xa8dc, 0x9082, 0x0101, 0x1630, 0xa8c8, 0x9005, 0x1518, 0xa8c4,\r
++      0x9082, 0x0101, 0x12f8, 0xa974, 0x2079, 0x1800, 0x9182, 0x0800,\r
++      0x12e8, 0x7830, 0x9084, 0x0003, 0x1130, 0xaa98, 0xab94, 0xa878,\r
++      0x9084, 0x0007, 0x00ea, 0x7930, 0xd18c, 0x0118, 0x2001, 0x0004,\r
++      0x0038, 0xd184, 0x0118, 0x2001, 0x0004, 0x0010, 0x2001, 0x0029,\r
++      0x900e, 0x0038, 0x2001, 0x002c, 0x900e, 0x0018, 0x2001, 0x0029,\r
++      0x900e, 0x9006, 0x0008, 0x9005, 0x012e, 0x00be, 0x00fe, 0x0005,\r
++      0x629d, 0x6258, 0x626f, 0x629d, 0x629d, 0x629d, 0x629d, 0x629d,\r
++      0x2100, 0x9082, 0x007e, 0x1278, 0x080c, 0x659e, 0x0148, 0x9046,\r
++      0xb810, 0x9306, 0x1904, 0x62a5, 0xb814, 0x9206, 0x15f0, 0x0028,\r
++      0xbb12, 0xba16, 0x0010, 0x080c, 0x49b7, 0x0150, 0x04b0, 0x080c,\r
++      0x65ff, 0x1598, 0xb810, 0x9306, 0x1580, 0xb814, 0x9206, 0x1568,\r
++      0x080c, 0xae0b, 0x0530, 0x2b00, 0x6012, 0x080c, 0xcfaa, 0x2900,\r
++      0x6016, 0x600b, 0xffff, 0x6023, 0x000a, 0xa878, 0x9086, 0x0001,\r
++      0x1170, 0x080c, 0x31bf, 0x9006, 0x080c, 0x653b, 0x2001, 0x0002,\r
++      0x080c, 0x654f, 0x2001, 0x0200, 0xb86e, 0xb893, 0x0002, 0x2009,\r
++      0x0003, 0x080c, 0xaedc, 0x9006, 0x0068, 0x2001, 0x0001, 0x900e,\r
++      0x0038, 0x2001, 0x002c, 0x900e, 0x0018, 0x2001, 0x0028, 0x900e,\r
++      0x9005, 0x0000, 0x012e, 0x00be, 0x00fe, 0x0005, 0x00b6, 0x00f6,\r
++      0x00e6, 0x0126, 0x2091, 0x8000, 0xa894, 0x90c6, 0x0015, 0x0904,\r
++      0x648c, 0x90c6, 0x0056, 0x0904, 0x6490, 0x90c6, 0x0066, 0x0904,\r
++      0x6494, 0x90c6, 0x0067, 0x0904, 0x6498, 0x90c6, 0x0068, 0x0904,\r
++      0x649c, 0x90c6, 0x0071, 0x0904, 0x64a0, 0x90c6, 0x0074, 0x0904,\r
++      0x64a4, 0x90c6, 0x007c, 0x0904, 0x64a8, 0x90c6, 0x007e, 0x0904,\r
++      0x64ac, 0x90c6, 0x0037, 0x0904, 0x64b0, 0x9016, 0x2079, 0x1800,\r
++      0xa974, 0x9186, 0x00ff, 0x0904, 0x6487, 0x9182, 0x0800, 0x1a04,\r
++      0x6487, 0x080c, 0x65ff, 0x1198, 0xb804, 0x9084, 0x00ff, 0x9082,\r
++      0x0006, 0x1268, 0xa894, 0x90c6, 0x006f, 0x0148, 0x080c, 0xadcb,\r
++      0x1904, 0x6470, 0xb8a0, 0x9084, 0xff80, 0x1904, 0x6470, 0xa894,\r
++      0x90c6, 0x006f, 0x0158, 0x90c6, 0x005e, 0x0904, 0x63d0, 0x90c6,\r
++      0x0064, 0x0904, 0x63f9, 0x2008, 0x0804, 0x6392, 0xa998, 0xa8b0,\r
++      0x2040, 0x080c, 0xadcb, 0x1120, 0x9182, 0x007f, 0x0a04, 0x6392,\r
++      0x9186, 0x00ff, 0x0904, 0x6392, 0x9182, 0x0800, 0x1a04, 0x6392,\r
++      0xaaa0, 0xab9c, 0x787c, 0x9306, 0x1188, 0x7880, 0x0096, 0x924e,\r
++      0x1128, 0x2208, 0x2310, 0x009e, 0x0804, 0x6392, 0x99cc, 0xff00,\r
++      0x009e, 0x1120, 0x2208, 0x2310, 0x0804, 0x6392, 0x080c, 0x49b7,\r
++      0x0904, 0x639c, 0x900e, 0x9016, 0x90c6, 0x4000, 0x15e0, 0x0006,\r
++      0x080c, 0x681f, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d,\r
++      0x20a9, 0x0004, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0031, 0x20a0,\r
++      0xb8c4, 0x20e0, 0xb8c8, 0x9080, 0x0006, 0x2098, 0x080c, 0x0f7c,\r
++      0x20a9, 0x0004, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0035, 0x20a0,\r
++      0xb8c4, 0x20e0, 0xb8c8, 0x9080, 0x000a, 0x2098, 0x080c, 0x0f7c,\r
++      0xa8c4, 0xabc8, 0x9305, 0xabcc, 0x9305, 0xabd0, 0x9305, 0xabd4,\r
++      0x9305, 0xabd8, 0x9305, 0xabdc, 0x9305, 0xabe0, 0x9305, 0x9005,\r
++      0x0510, 0x000e, 0x00c8, 0x90c6, 0x4007, 0x1110, 0x2408, 0x00a0,\r
++      0x90c6, 0x4008, 0x1118, 0x2708, 0x2610, 0x0070, 0x90c6, 0x4009,\r
++      0x1108, 0x0050, 0x90c6, 0x4006, 0x0138, 0x2001, 0x4005, 0x2009,\r
++      0x000a, 0x0010, 0x2001, 0x4006, 0xa896, 0xa99a, 0xaa9e, 0x2001,\r
++      0x0030, 0x900e, 0x0478, 0x000e, 0x080c, 0xae0b, 0x1130, 0x2001,\r
++      0x4005, 0x2009, 0x0003, 0x9016, 0x0c78, 0x2b00, 0x6012, 0x080c,\r
++      0xcfaa, 0x2900, 0x6016, 0x6023, 0x0001, 0xa868, 0xd88c, 0x0108,\r
++      0xc0f5, 0xa86a, 0x0126, 0x2091, 0x8000, 0x080c, 0x31bf, 0x012e,\r
++      0x9006, 0x080c, 0x653b, 0x2001, 0x0002, 0x080c, 0x654f, 0x2009,\r
++      0x0002, 0x080c, 0xaedc, 0xa8b0, 0xd094, 0x0118, 0xb8cc, 0xc08d,\r
++      0xb8ce, 0x9006, 0x9005, 0x012e, 0x00ee, 0x00fe, 0x00be, 0x0005,\r
++      0x080c, 0x56e3, 0x0118, 0x2009, 0x0007, 0x00f8, 0xa998, 0xaeb0,\r
++      0x080c, 0x65ff, 0x1904, 0x638d, 0x9186, 0x007f, 0x0130, 0x080c,\r
++      0x6972, 0x0118, 0x2009, 0x0009, 0x0080, 0x0096, 0x080c, 0x0fff,\r
++      0x1120, 0x009e, 0x2009, 0x0002, 0x0040, 0x2900, 0x009e, 0xa806,\r
++      0x080c, 0xcd1b, 0x19b0, 0x2009, 0x0003, 0x2001, 0x4005, 0x0804,\r
++      0x6394, 0xa998, 0xaeb0, 0x080c, 0x65ff, 0x1904, 0x638d, 0x0096,\r
++      0x080c, 0x0fff, 0x1128, 0x009e, 0x2009, 0x0002, 0x0804, 0x644d,\r
++      0x2900, 0x009e, 0xa806, 0x0096, 0x2048, 0x20a9, 0x002b, 0xb8c4,\r
++      0x20e0, 0xb8c8, 0x2098, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0002,\r
++      0x20a0, 0x4003, 0x20a9, 0x0008, 0x9080, 0x0006, 0x20a0, 0xbbc8,\r
++      0x9398, 0x0006, 0x2398, 0x080c, 0x0f7c, 0x009e, 0xa87b, 0x0000,\r
++      0xa883, 0x0000, 0xa897, 0x4000, 0xd684, 0x1168, 0x080c, 0x56cf,\r
++      0xd0b4, 0x1118, 0xa89b, 0x000b, 0x00e0, 0xb800, 0xd08c, 0x0118,\r
++      0xa89b, 0x000c, 0x00b0, 0x080c, 0x6972, 0x0118, 0xa89b, 0x0009,\r
++      0x0080, 0x080c, 0x56e3, 0x0118, 0xa89b, 0x0007, 0x0050, 0x080c,\r
++      0xccfe, 0x1904, 0x63c9, 0x2009, 0x0003, 0x2001, 0x4005, 0x0804,\r
++      0x6394, 0xa87b, 0x0030, 0xa897, 0x4005, 0xa804, 0x8006, 0x8006,\r
++      0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x0002, 0x2009,\r
++      0x002b, 0xaaa0, 0xab9c, 0xaca8, 0xada4, 0x2031, 0x0000, 0x2041,\r
++      0x1243, 0x080c, 0xb37a, 0x1904, 0x63c9, 0x2009, 0x0002, 0x08e8,\r
++      0x2001, 0x0028, 0x900e, 0x0804, 0x63ca, 0x2009, 0x180c, 0x210c,\r
++      0xd18c, 0x0118, 0x2001, 0x0004, 0x0038, 0xd184, 0x0118, 0x2001,\r
++      0x0004, 0x0010, 0x2001, 0x0029, 0x900e, 0x0804, 0x63ca, 0x2001,\r
++      0x0029, 0x900e, 0x0804, 0x63ca, 0x080c, 0x3749, 0x0804, 0x63cb,\r
++      0x080c, 0x540c, 0x0804, 0x63cb, 0x080c, 0x4547, 0x0804, 0x63cb,\r
++      0x080c, 0x45c0, 0x0804, 0x63cb, 0x080c, 0x461c, 0x0804, 0x63cb,\r
++      0x080c, 0x4a7a, 0x0804, 0x63cb, 0x080c, 0x4d31, 0x0804, 0x63cb,\r
++      0x080c, 0x5077, 0x0804, 0x63cb, 0x080c, 0x5270, 0x0804, 0x63cb,\r
++      0x080c, 0x395f, 0x0804, 0x63cb, 0x00b6, 0xa974, 0xae78, 0x9684,\r
++      0x3fff, 0x9082, 0x4000, 0x1618, 0x9182, 0x0800, 0x1268, 0x9188,\r
++      0x1000, 0x2104, 0x905d, 0x0140, 0x080c, 0x6972, 0x1148, 0x00e9,\r
++      0x080c, 0x672a, 0x9006, 0x00b0, 0x2001, 0x0028, 0x900e, 0x0090,\r
++      0x9082, 0x0006, 0x1240, 0xb900, 0xd1fc, 0x0d88, 0x2001, 0x0029,\r
++      0x2009, 0x1000, 0x0038, 0x2001, 0x0029, 0x900e, 0x0018, 0x2001,\r
++      0x0029, 0x900e, 0x9005, 0x00be, 0x0005, 0x0126, 0x2091, 0x8000,\r
++      0xb850, 0x900d, 0x0150, 0x2900, 0x0096, 0x2148, 0xa802, 0x009e,\r
++      0xa803, 0x0000, 0xb852, 0x012e, 0x0005, 0x2900, 0xb852, 0xb84e,\r
++      0xa803, 0x0000, 0x0cc0, 0x0126, 0x2091, 0x8000, 0xb84c, 0x9005,\r
++      0x0170, 0x00e6, 0x2071, 0x19e7, 0x7004, 0x9086, 0x0002, 0x0168,\r
++      0x00ee, 0xb84c, 0xa802, 0x2900, 0xb84e, 0x012e, 0x0005, 0x2900,\r
++      0xb852, 0xb84e, 0xa803, 0x0000, 0x0cc0, 0x701c, 0x9b06, 0x1d80,\r
++      0xb84c, 0x00a6, 0x2050, 0xb000, 0xa802, 0x2900, 0xb002, 0x00ae,\r
++      0x00ee, 0x012e, 0x0005, 0x0126, 0x2091, 0x8000, 0xb84c, 0x904d,\r
++      0x0130, 0xa800, 0x9005, 0x1108, 0xb852, 0xb84e, 0x9905, 0x012e,\r
++      0x0005, 0xb84c, 0x904d, 0x0130, 0xa800, 0x9005, 0x1108, 0xb852,\r
++      0xb84e, 0x9905, 0x0005, 0x00b6, 0x0126, 0x00c6, 0x0026, 0x2091,\r
++      0x8000, 0x6210, 0x2258, 0xba00, 0x9005, 0x0110, 0xc285, 0x0008,\r
++      0xc284, 0xba02, 0x002e, 0x00ce, 0x012e, 0x00be, 0x0005, 0x00b6,\r
++      0x0126, 0x00c6, 0x2091, 0x8000, 0x6210, 0x2258, 0xba04, 0x0006,\r
++      0x9086, 0x0006, 0x1170, 0xb89c, 0xd0ac, 0x0158, 0x080c, 0x696e,\r
++      0x0140, 0x9284, 0xff00, 0x8007, 0x9086, 0x0007, 0x1110, 0x2011,\r
++      0x0600, 0x000e, 0x9294, 0xff00, 0x9215, 0xba06, 0x0006, 0x9086,\r
++      0x0006, 0x1120, 0xba90, 0x82ff, 0x090c, 0x0dd5, 0x000e, 0x00ce,\r
++      0x012e, 0x00be, 0x0005, 0x00b6, 0x0126, 0x00c6, 0x2091, 0x8000,\r
++      0x6210, 0x2258, 0xba04, 0x0006, 0x9086, 0x0006, 0x1168, 0xb89c,\r
++      0xd0a4, 0x0150, 0x080c, 0x696a, 0x1138, 0x9284, 0x00ff, 0x9086,\r
++      0x0007, 0x1110, 0x2011, 0x0006, 0x000e, 0x9294, 0x00ff, 0x8007,\r
++      0x9215, 0xba06, 0x00ce, 0x012e, 0x00be, 0x0005, 0x9182, 0x0800,\r
++      0x0218, 0x9085, 0x0001, 0x0005, 0x00d6, 0x0026, 0x9190, 0x1000,\r
++      0x2204, 0x905d, 0x1188, 0x0096, 0x080c, 0x0fff, 0x2958, 0x009e,\r
++      0x0168, 0x2b00, 0x2012, 0xb85c, 0xb8ca, 0xb860, 0xb8c6, 0x9006,\r
++      0xb8a6, 0xb8ae, 0x080c, 0x6034, 0x9006, 0x0010, 0x9085, 0x0001,\r
++      0x002e, 0x00de, 0x0005, 0x00b6, 0x0096, 0x0126, 0x2091, 0x8000,\r
++      0x0026, 0x9182, 0x0800, 0x0218, 0x9085, 0x0001, 0x0458, 0x00d6,\r
++      0x9190, 0x1000, 0x2204, 0x905d, 0x0518, 0x2013, 0x0000, 0xb8a4,\r
++      0x904d, 0x0110, 0x080c, 0x1031, 0x00d6, 0x00c6, 0xb8bc, 0x2060,\r
++      0x8cff, 0x0168, 0x600c, 0x0006, 0x6014, 0x2048, 0x080c, 0xcb35,\r
++      0x0110, 0x080c, 0x0fb1, 0x080c, 0xae61, 0x00ce, 0x0c88, 0x00ce,\r
++      0x00de, 0x2b48, 0xb8c8, 0xb85e, 0xb8c4, 0xb862, 0x080c, 0x1041,\r
++      0x00de, 0x9006, 0x002e, 0x012e, 0x009e, 0x00be, 0x0005, 0x0016,\r
++      0x9182, 0x0800, 0x0218, 0x9085, 0x0001, 0x0030, 0x9188, 0x1000,\r
++      0x2104, 0x905d, 0x0dc0, 0x9006, 0x001e, 0x0005, 0x00d6, 0x0156,\r
++      0x0136, 0x0146, 0x9006, 0xb80a, 0xb80e, 0xb800, 0xc08c, 0xb802,\r
++      0x080c, 0x73bc, 0x1510, 0xb8a0, 0x9086, 0x007e, 0x0120, 0x080c,\r
++      0xadcb, 0x11d8, 0x0078, 0x7040, 0xd0e4, 0x01b8, 0x00c6, 0x2061,\r
++      0x1982, 0x7048, 0x2062, 0x704c, 0x6006, 0x7050, 0x600a, 0x7054,\r
++      0x600e, 0x00ce, 0x703c, 0x2069, 0x0140, 0x9005, 0x1110, 0x2001,\r
++      0x0001, 0x6886, 0x2069, 0x1800, 0x68b6, 0x7040, 0xb85e, 0x7048,\r
++      0xb862, 0x704c, 0xb866, 0x20e1, 0x0000, 0x2099, 0x0276, 0xb8c4,\r
++      0x20e8, 0xb8c8, 0x9088, 0x000a, 0x21a0, 0x20a9, 0x0004, 0x4003,\r
++      0x2099, 0x027a, 0x9088, 0x0006, 0x21a0, 0x20a9, 0x0004, 0x4003,\r
++      0x2069, 0x0200, 0x6817, 0x0001, 0x7040, 0xb86a, 0x7144, 0xb96e,\r
++      0x7048, 0xb872, 0x7050, 0xb876, 0x2069, 0x0200, 0x6817, 0x0000,\r
++      0xb8a0, 0x9086, 0x007e, 0x1110, 0x7144, 0xb96e, 0x9182, 0x0211,\r
++      0x1218, 0x2009, 0x0008, 0x0400, 0x9182, 0x0259, 0x1218, 0x2009,\r
++      0x0007, 0x00d0, 0x9182, 0x02c1, 0x1218, 0x2009, 0x0006, 0x00a0,\r
++      0x9182, 0x0349, 0x1218, 0x2009, 0x0005, 0x0070, 0x9182, 0x0421,\r
++      0x1218, 0x2009, 0x0004, 0x0040, 0x9182, 0x0581, 0x1218, 0x2009,\r
++      0x0003, 0x0010, 0x2009, 0x0002, 0xb992, 0x014e, 0x013e, 0x015e,\r
++      0x00de, 0x0005, 0x0016, 0x0026, 0x00e6, 0x2071, 0x0260, 0x7034,\r
++      0xb896, 0x703c, 0xb89a, 0x7054, 0xb89e, 0x0036, 0xbbcc, 0xc384,\r
++      0xba00, 0x2009, 0x1867, 0x210c, 0xd0bc, 0x0120, 0xd1ec, 0x0110,\r
++      0xc2ad, 0x0008, 0xc2ac, 0xd0c4, 0x0148, 0xd1e4, 0x0138, 0xc2bd,\r
++      0xd0cc, 0x0128, 0xd38c, 0x1108, 0xc385, 0x0008, 0xc2bc, 0xba02,\r
++      0xbbce, 0x003e, 0x00ee, 0x002e, 0x001e, 0x0005, 0x0096, 0x0126,\r
++      0x2091, 0x8000, 0xb8a4, 0x904d, 0x0578, 0xa900, 0x81ff, 0x15c0,\r
++      0xaa04, 0x9282, 0x0010, 0x16c8, 0x0136, 0x0146, 0x01c6, 0x01d6,\r
++      0x8906, 0x8006, 0x8007, 0x908c, 0x003f, 0x21e0, 0x9084, 0xffc0,\r
++      0x9080, 0x0004, 0x2098, 0x2009, 0x0010, 0x20a9, 0x0001, 0x4002,\r
++      0x9086, 0xffff, 0x0120, 0x8109, 0x1dd0, 0x080c, 0x0dd5, 0x3c00,\r
++      0x20e8, 0x3300, 0x8001, 0x20a0, 0x4604, 0x8210, 0xaa06, 0x01de,\r
++      0x01ce, 0x014e, 0x013e, 0x0060, 0x080c, 0x0fff, 0x0170, 0x2900,\r
++      0xb8a6, 0xa803, 0x0000, 0x080c, 0x67bb, 0xa807, 0x0001, 0xae12,\r
++      0x9085, 0x0001, 0x012e, 0x009e, 0x0005, 0x9006, 0x0cd8, 0x0126,\r
++      0x2091, 0x8000, 0x0096, 0xb8a4, 0x904d, 0x0188, 0xa800, 0x9005,\r
++      0x1150, 0x080c, 0x67ca, 0x1158, 0xa804, 0x908a, 0x0002, 0x0218,\r
++      0x8001, 0xa806, 0x0020, 0x080c, 0x1031, 0xb8a7, 0x0000, 0x009e,\r
++      0x012e, 0x0005, 0x0126, 0x2091, 0x8000, 0x080c, 0x910d, 0x012e,\r
++      0x0005, 0x901e, 0x0010, 0x2019, 0x0001, 0x900e, 0x0126, 0x2091,\r
++      0x8000, 0xb84c, 0x2048, 0xb800, 0xd0dc, 0x1170, 0x89ff, 0x0500,\r
++      0x83ff, 0x0120, 0xa878, 0x9606, 0x0158, 0x0030, 0xa86c, 0x9406,\r
++      0x1118, 0xa870, 0x9506, 0x0120, 0x2908, 0xa800, 0x2048, 0x0c70,\r
++      0x080c, 0xa692, 0xaa00, 0xb84c, 0x9906, 0x1110, 0xba4e, 0x0020,\r
++      0x00a6, 0x2150, 0xb202, 0x00ae, 0x82ff, 0x1110, 0xb952, 0x89ff,\r
++      0x012e, 0x0005, 0x9016, 0x0489, 0x1110, 0x2011, 0x0001, 0x0005,\r
++      0x080c, 0x681f, 0x0128, 0x080c, 0xcbf2, 0x0010, 0x9085, 0x0001,\r
++      0x0005, 0x080c, 0x681f, 0x0128, 0x080c, 0xcb97, 0x0010, 0x9085,\r
++      0x0001, 0x0005, 0x080c, 0x681f, 0x0128, 0x080c, 0xcbef, 0x0010,\r
++      0x9085, 0x0001, 0x0005, 0x080c, 0x681f, 0x0128, 0x080c, 0xcbb6,\r
++      0x0010, 0x9085, 0x0001, 0x0005, 0x080c, 0x681f, 0x0128, 0x080c,\r
++      0xcc33, 0x0010, 0x9085, 0x0001, 0x0005, 0xb8a4, 0x900d, 0x1118,\r
++      0x9085, 0x0001, 0x0005, 0x0136, 0x01c6, 0xa800, 0x9005, 0x11b8,\r
++      0x890e, 0x810e, 0x810f, 0x9184, 0x003f, 0x20e0, 0x9184, 0xffc0,\r
++      0x9080, 0x0004, 0x2098, 0x20a9, 0x0001, 0x2009, 0x0010, 0x4002,\r
++      0x9606, 0x0128, 0x8109, 0x1dd8, 0x9085, 0x0001, 0x0008, 0x9006,\r
++      0x01ce, 0x013e, 0x0005, 0x0146, 0x01d6, 0xa860, 0x20e8, 0xa85c,\r
++      0x9080, 0x0004, 0x20a0, 0x20a9, 0x0010, 0x2009, 0xffff, 0x4104,\r
++      0x01de, 0x014e, 0x0136, 0x01c6, 0xa800, 0x9005, 0x11b8, 0x890e,\r
++      0x810e, 0x810f, 0x9184, 0x003f, 0x20e0, 0x9184, 0xffc0, 0x9080,\r
++      0x0004, 0x2098, 0x20a9, 0x0001, 0x2009, 0x0010, 0x4002, 0x9606,\r
++      0x0128, 0x8109, 0x1dd8, 0x9085, 0x0001, 0x0068, 0x0146, 0x01d6,\r
++      0x3300, 0x8001, 0x20a0, 0x3c00, 0x20e8, 0x2001, 0xffff, 0x4004,\r
++      0x01de, 0x014e, 0x9006, 0x01ce, 0x013e, 0x0005, 0x0096, 0x0126,\r
++      0x2091, 0x8000, 0xb8a4, 0x904d, 0x1128, 0x080c, 0x0fff, 0x0168,\r
++      0x2900, 0xb8a6, 0x080c, 0x67bb, 0xa803, 0x0001, 0xa807, 0x0000,\r
++      0x9085, 0x0001, 0x012e, 0x009e, 0x0005, 0x9006, 0x0cd8, 0x0096,\r
++      0x0126, 0x2091, 0x8000, 0xb8a4, 0x904d, 0x0130, 0xb8a7, 0x0000,\r
++      0x080c, 0x1031, 0x9085, 0x0001, 0x012e, 0x009e, 0x0005, 0xb89c,\r
++      0xd0a4, 0x0005, 0x00b6, 0x00f6, 0x080c, 0x73bc, 0x01b0, 0x71c4,\r
++      0x81ff, 0x1198, 0x71dc, 0xd19c, 0x0180, 0x2001, 0x007e, 0x9080,\r
++      0x1000, 0x2004, 0x905d, 0x0148, 0xb804, 0x9084, 0x00ff, 0x9086,\r
++      0x0006, 0x1118, 0xb800, 0xc0ed, 0xb802, 0x2079, 0x1847, 0x7804,\r
++      0xd0a4, 0x01d0, 0x0156, 0x20a9, 0x007f, 0x900e, 0x0016, 0x080c,\r
++      0x65ff, 0x1168, 0xb804, 0x9084, 0xff00, 0x8007, 0x9096, 0x0004,\r
++      0x0118, 0x9086, 0x0006, 0x1118, 0xb800, 0xc0ed, 0xb802, 0x001e,\r
++      0x8108, 0x1f04, 0x6846, 0x015e, 0x080c, 0x6930, 0x0120, 0x2001,\r
++      0x1985, 0x200c, 0x0038, 0x2079, 0x1847, 0x7804, 0xd0a4, 0x0130,\r
++      0x2009, 0x07d0, 0x2011, 0x6871, 0x080c, 0x858b, 0x00fe, 0x00be,\r
++      0x0005, 0x00b6, 0x2011, 0x6871, 0x080c, 0x84f3, 0x080c, 0x6930,\r
++      0x01d8, 0x2001, 0x107e, 0x2004, 0x2058, 0xb900, 0xc1ec, 0xb902,\r
++      0x080c, 0x696e, 0x0130, 0x2009, 0x07d0, 0x2011, 0x6871, 0x080c,\r
++      0x858b, 0x00e6, 0x2071, 0x1800, 0x9006, 0x707e, 0x7060, 0x7082,\r
++      0x080c, 0x2f96, 0x00ee, 0x04b0, 0x0156, 0x00c6, 0x20a9, 0x007f,\r
++      0x900e, 0x0016, 0x080c, 0x65ff, 0x1538, 0xb800, 0xd0ec, 0x0520,\r
++      0x0046, 0xbaa0, 0x2220, 0x9006, 0x2009, 0x0029, 0x080c, 0xe5ae,\r
++      0xb800, 0xc0e5, 0xc0ec, 0xb802, 0x080c, 0x696a, 0x2001, 0x0707,\r
++      0x1128, 0xb804, 0x9084, 0x00ff, 0x9085, 0x0700, 0xb806, 0x2019,\r
++      0x0029, 0x080c, 0x928b, 0x0076, 0x903e, 0x080c, 0x9168, 0x900e,\r
++      0x080c, 0xe2eb, 0x007e, 0x004e, 0x001e, 0x8108, 0x1f04, 0x6899,\r
++      0x00ce, 0x015e, 0x00be, 0x0005, 0x00b6, 0x6010, 0x2058, 0xb800,\r
++      0xc0ec, 0xb802, 0x00be, 0x0005, 0x00b6, 0x00c6, 0x0096, 0x080c,\r
++      0x1018, 0x090c, 0x0dd5, 0x2958, 0x009e, 0x2001, 0x196b, 0x2b02,\r
++      0x8b07, 0x8006, 0x8006, 0x908c, 0x003f, 0xb9c6, 0x908c, 0xffc0,\r
++      0xb9ca, 0xb8af, 0x0000, 0x2009, 0x00ff, 0x080c, 0x6034, 0xb807,\r
++      0x0006, 0xb813, 0x00ff, 0xb817, 0xffff, 0xb86f, 0x0200, 0xb86c,\r
++      0xb893, 0x0002, 0xb8bb, 0x0520, 0xb8a3, 0x00ff, 0xb8af, 0x0000,\r
++      0x00ce, 0x00be, 0x0005, 0x7810, 0x00b6, 0x2058, 0xb800, 0x00be,\r
++      0xd0ac, 0x0005, 0x6010, 0x00b6, 0x905d, 0x0108, 0xb800, 0x00be,\r
++      0xd0bc, 0x0005, 0x0006, 0x0016, 0x0026, 0xb804, 0x908c, 0x00ff,\r
++      0x9196, 0x0006, 0x0188, 0x9196, 0x0004, 0x0170, 0x9196, 0x0005,\r
++      0x0158, 0x908c, 0xff00, 0x810f, 0x9196, 0x0006, 0x0128, 0x9196,\r
++      0x0004, 0x0110, 0x9196, 0x0005, 0x002e, 0x001e, 0x000e, 0x0005,\r
++      0x00b6, 0x00f6, 0x2001, 0x107e, 0x2004, 0x905d, 0x0110, 0xb800,\r
++      0xd0ec, 0x00fe, 0x00be, 0x0005, 0x0126, 0x0026, 0x2091, 0x8000,\r
++      0x0006, 0xbaa0, 0x9290, 0x1000, 0x2204, 0x9b06, 0x190c, 0x0dd5,\r
++      0x000e, 0xba00, 0x9005, 0x0110, 0xc2fd, 0x0008, 0xc2fc, 0xba02,\r
++      0x002e, 0x012e, 0x0005, 0x2011, 0x1837, 0x2204, 0xd0cc, 0x0138,\r
++      0x2001, 0x1983, 0x200c, 0x2011, 0x6960, 0x080c, 0x858b, 0x0005,\r
++      0x2011, 0x6960, 0x080c, 0x84f3, 0x2011, 0x1837, 0x2204, 0xc0cc,\r
++      0x2012, 0x0005, 0x080c, 0x56cf, 0xd0ac, 0x0005, 0x080c, 0x56cf,\r
++      0xd0a4, 0x0005, 0x0016, 0xb904, 0x9184, 0x00ff, 0x908e, 0x0006,\r
++      0x001e, 0x0005, 0x0016, 0xb904, 0x9184, 0xff00, 0x8007, 0x908e,\r
++      0x0006, 0x001e, 0x0005, 0x00b6, 0x00f6, 0x080c, 0xd230, 0x0158,\r
++      0x70dc, 0x9084, 0x0028, 0x0138, 0x2001, 0x107f, 0x2004, 0x905d,\r
++      0x0110, 0xb8cc, 0xd094, 0x00fe, 0x00be, 0x0005, 0x2071, 0x1910,\r
++      0x7003, 0x0001, 0x7007, 0x0000, 0x9006, 0x7012, 0x7016, 0x701a,\r
++      0x701e, 0x700a, 0x7046, 0x2001, 0x1947, 0x2003, 0x0000, 0x0005,\r
++      0x0016, 0x00e6, 0x2071, 0x1948, 0x900e, 0x710a, 0x080c, 0x56cf,\r
++      0xd0fc, 0x1140, 0x080c, 0x56cf, 0x900e, 0xd09c, 0x0108, 0x8108,\r
++      0x7102, 0x00f8, 0x2001, 0x1867, 0x200c, 0x9184, 0x0007, 0x0002,\r
++      0x69b2, 0x69b2, 0x69b2, 0x69b2, 0x69b2, 0x69c8, 0x69d6, 0x69b2,\r
++      0x7003, 0x0003, 0x2009, 0x1868, 0x210c, 0x9184, 0xff00, 0x8007,\r
++      0x9005, 0x1110, 0x2001, 0x0002, 0x7006, 0x0018, 0x7003, 0x0005,\r
++      0x0c88, 0x00ee, 0x001e, 0x0005, 0x00e6, 0x2071, 0x0050, 0x684c,\r
++      0x9005, 0x1150, 0x00e6, 0x2071, 0x1910, 0x7028, 0xc085, 0x702a,\r
++      0x00ee, 0x9085, 0x0001, 0x0488, 0x6844, 0x9005, 0x0158, 0x080c,\r
++      0x7716, 0x6a60, 0x9200, 0x7002, 0x6864, 0x9101, 0x7006, 0x9006,\r
++      0x7012, 0x7016, 0x6860, 0x7002, 0x6864, 0x7006, 0x6868, 0x700a,\r
++      0x686c, 0x700e, 0x6844, 0x9005, 0x1110, 0x7012, 0x7016, 0x684c,\r
++      0x701a, 0x701c, 0x9085, 0x0040, 0x701e, 0x7037, 0x0019, 0x702b,\r
++      0x0001, 0x00e6, 0x2071, 0x1910, 0x7028, 0xc084, 0x702a, 0x7007,\r
++      0x0001, 0x700b, 0x0000, 0x00ee, 0x9006, 0x00ee, 0x0005, 0x00e6,\r
++      0x0026, 0x2071, 0x1948, 0x7000, 0x9015, 0x0904, 0x6c86, 0x9286,\r
++      0x0003, 0x0904, 0x6b1c, 0x9286, 0x0005, 0x0904, 0x6b1c, 0x2071,\r
++      0x1877, 0xa87c, 0x9005, 0x0904, 0x6a7d, 0x7140, 0xa868, 0x9102,\r
++      0x0a04, 0x6c86, 0xa878, 0xd084, 0x15d8, 0xa853, 0x0019, 0x2001,\r
++      0x8023, 0xa84e, 0x2071, 0x1910, 0x701c, 0x9005, 0x1904, 0x6e28,\r
++      0x0e04, 0x6e96, 0x2071, 0x0000, 0xa850, 0x7032, 0xa84c, 0x7082,\r
++      0xa870, 0x7086, 0xa86c, 0x708a, 0xa880, 0x708e, 0x7036, 0x0146,\r
++      0x01d6, 0x0136, 0x01c6, 0x0156, 0x20e9, 0x0000, 0x20a1, 0x002a,\r
++      0xa868, 0x20a8, 0xa860, 0x20e0, 0xa85c, 0x9080, 0x0021, 0x2098,\r
++      0x4003, 0x015e, 0x01ce, 0x013e, 0x01de, 0x014e, 0x2091, 0x4080,\r
++      0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x119b, 0x0804, 0x6aff,\r
++      0xa853, 0x001b, 0x2001, 0x8027, 0x0820, 0x7004, 0xd08c, 0x1904,\r
++      0x6c86, 0xa853, 0x001a, 0x2001, 0x8024, 0x0804, 0x6a41, 0x00e6,\r
++      0x0026, 0x2071, 0x1948, 0x7000, 0x9015, 0x0904, 0x6c86, 0x9286,\r
++      0x0003, 0x0904, 0x6b1c, 0x9286, 0x0005, 0x0904, 0x6b1c, 0xa84f,\r
++      0x8022, 0xa853, 0x0018, 0x0804, 0x6ae4, 0xa868, 0xd0fc, 0x11d8,\r
++      0x00e6, 0x0026, 0x2001, 0x1948, 0x2004, 0x9005, 0x0904, 0x6c86,\r
++      0xa87c, 0xd0bc, 0x1904, 0x6c86, 0xa978, 0xa874, 0x9105, 0x1904,\r
++      0x6c86, 0x2001, 0x1948, 0x2004, 0x0002, 0x6c86, 0x6ae0, 0x6b1c,\r
++      0x6b1c, 0x6c86, 0x6b1c, 0x0005, 0xa868, 0xd0fc, 0x1500, 0x00e6,\r
++      0x0026, 0x2009, 0x1948, 0x210c, 0x81ff, 0x0904, 0x6c86, 0xa87c,\r
++      0xd0cc, 0x0904, 0x6c86, 0xa880, 0x9084, 0x00ff, 0x9086, 0x0001,\r
++      0x1904, 0x6c86, 0x9186, 0x0003, 0x0904, 0x6b1c, 0x9186, 0x0005,\r
++      0x0904, 0x6b1c, 0xa84f, 0x8021, 0xa853, 0x0017, 0x0028, 0x0005,\r
++      0xa84f, 0x8020, 0xa853, 0x0016, 0x2071, 0x1910, 0x701c, 0x9005,\r
++      0x1904, 0x6e28, 0x0e04, 0x6e96, 0x2071, 0x0000, 0xa84c, 0x7082,\r
++      0xa850, 0x7032, 0xa86c, 0x7086, 0x7036, 0xa870, 0x708a, 0x2091,\r
++      0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x119b, 0x2071,\r
++      0x1800, 0x2011, 0x0001, 0xa804, 0x900d, 0x702c, 0x1158, 0xa802,\r
++      0x2900, 0x702e, 0x70c0, 0x9200, 0x70c2, 0x080c, 0x8414, 0x002e,\r
++      0x00ee, 0x0005, 0x0096, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900,\r
++      0x81ff, 0x1dc8, 0x009e, 0x0c58, 0xa84f, 0x0000, 0x00f6, 0x2079,\r
++      0x0050, 0x2071, 0x1910, 0xa803, 0x0000, 0x7010, 0x9005, 0x1904,\r
++      0x6c0b, 0x782c, 0x908c, 0x0780, 0x190c, 0x6fe2, 0x8004, 0x8004,\r
++      0x8004, 0x9084, 0x0003, 0x0002, 0x6b3a, 0x6c0b, 0x6b5f, 0x6ba6,\r
++      0x080c, 0x0dd5, 0x2071, 0x1800, 0x2900, 0x7822, 0xa804, 0x900d,\r
++      0x1170, 0x2071, 0x19fa, 0x703c, 0x9005, 0x1328, 0x2001, 0x1949,\r
++      0x2004, 0x8005, 0x703e, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x9016,\r
++      0x702c, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8,\r
++      0x702e, 0x70c0, 0x9200, 0x70c2, 0x080c, 0x8414, 0x0c10, 0x2071,\r
++      0x1800, 0x2900, 0x7822, 0xa804, 0x900d, 0x1580, 0x7824, 0x00e6,\r
++      0x2071, 0x0040, 0x712c, 0xd19c, 0x1148, 0x2009, 0x1830, 0x210c,\r
++      0x918a, 0x0020, 0x0218, 0x7022, 0x00ee, 0x0058, 0x00ee, 0x2048,\r
++      0x702c, 0xa802, 0x2900, 0x702e, 0x70c0, 0x8000, 0x70c2, 0x080c,\r
++      0x8414, 0x782c, 0x9094, 0x0780, 0x190c, 0x6fe2, 0xd0a4, 0x19f0,\r
++      0x2071, 0x19fa, 0x703c, 0x9005, 0x1328, 0x2001, 0x1949, 0x2004,\r
++      0x8005, 0x703e, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x9016, 0x702c,\r
++      0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e,\r
++      0x70c0, 0x9200, 0x70c2, 0x080c, 0x8414, 0x0800, 0x0096, 0x00e6,\r
++      0x7824, 0x2048, 0x2071, 0x1800, 0x702c, 0xa802, 0x2900, 0x702e,\r
++      0x70c0, 0x8000, 0x70c2, 0x080c, 0x8414, 0x782c, 0x9094, 0x0780,\r
++      0x190c, 0x6fe2, 0xd0a4, 0x1d60, 0x00ee, 0x782c, 0x9094, 0x0780,\r
++      0x190c, 0x6fe2, 0xd09c, 0x11a0, 0x009e, 0x2900, 0x7822, 0xa804,\r
++      0x900d, 0x1560, 0x2071, 0x19fa, 0x703c, 0x9005, 0x1328, 0x2001,\r
++      0x1949, 0x2004, 0x8005, 0x703e, 0x00fe, 0x002e, 0x00ee, 0x0005,\r
++      0x009e, 0x2908, 0x7010, 0x8000, 0x7012, 0x7018, 0x904d, 0x711a,\r
++      0x0110, 0xa902, 0x0008, 0x711e, 0x2148, 0xa804, 0x900d, 0x1170,\r
++      0x2071, 0x19fa, 0x703c, 0x9005, 0x1328, 0x2001, 0x1949, 0x2004,\r
++      0x8005, 0x703e, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x2071, 0x1800,\r
++      0x9016, 0x702c, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff,\r
++      0x1dc8, 0x702e, 0x70c0, 0x9200, 0x70c2, 0x080c, 0x8414, 0x00fe,\r
++      0x002e, 0x00ee, 0x0005, 0x2908, 0x7010, 0x8000, 0x7012, 0x7018,\r
++      0x904d, 0x711a, 0x0110, 0xa902, 0x0008, 0x711e, 0x2148, 0xa804,\r
++      0x900d, 0x1904, 0x6c60, 0x782c, 0x9094, 0x0780, 0x190c, 0x6fe2,\r
++      0xd09c, 0x1198, 0x701c, 0x904d, 0x0180, 0x7010, 0x8001, 0x7012,\r
++      0x1108, 0x701a, 0xa800, 0x701e, 0x2900, 0x7822, 0x782c, 0x9094,\r
++      0x0780, 0x190c, 0x6fe2, 0xd09c, 0x0d68, 0x782c, 0x9094, 0x0780,\r
++      0x190c, 0x6fe2, 0xd0a4, 0x01b0, 0x00e6, 0x7824, 0x2048, 0x2071,\r
++      0x1800, 0x702c, 0xa802, 0x2900, 0x702e, 0x70c0, 0x8000, 0x70c2,\r
++      0x080c, 0x8414, 0x782c, 0x9094, 0x0780, 0x190c, 0x6fe2, 0xd0a4,\r
++      0x1d60, 0x00ee, 0x2071, 0x19fa, 0x703c, 0x9005, 0x1328, 0x2001,\r
++      0x1949, 0x2004, 0x8005, 0x703e, 0x00fe, 0x002e, 0x00ee, 0x0005,\r
++      0x00e6, 0x2071, 0x1800, 0x9016, 0x702c, 0x2148, 0xa904, 0xa802,\r
++      0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e, 0x70c0, 0x9200, 0x70c2,\r
++      0x080c, 0x8414, 0x00ee, 0x0804, 0x6c1b, 0xa868, 0xd0fc, 0x1560,\r
++      0x0096, 0xa804, 0xa807, 0x0000, 0x904d, 0x190c, 0x0fb1, 0x009e,\r
++      0x0018, 0xa868, 0xd0fc, 0x1500, 0x00e6, 0x0026, 0xa84f, 0x0000,\r
++      0x00f6, 0x2079, 0x0050, 0x2071, 0x1910, 0xa803, 0x0000, 0x7010,\r
++      0x9005, 0x1904, 0x6da2, 0x782c, 0x908c, 0x0780, 0x190c, 0x6fe2,\r
++      0x8004, 0x8004, 0x8004, 0x9084, 0x0003, 0x0002, 0x6ca5, 0x6da2,\r
++      0x6cc0, 0x6d31, 0x080c, 0x0dd5, 0x0005, 0x2071, 0x1800, 0x2900,\r
++      0x7822, 0xa804, 0x900d, 0x1120, 0x00fe, 0x002e, 0x00ee, 0x0005,\r
++      0x9016, 0x702c, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff,\r
++      0x1dc8, 0x702e, 0x70c0, 0x9200, 0x70c2, 0x080c, 0x8414, 0x0c60,\r
++      0x2071, 0x1800, 0x2900, 0x7822, 0xa804, 0x900d, 0x1904, 0x6d20,\r
++      0x7830, 0x8007, 0x9084, 0x001f, 0x9082, 0x0005, 0x1220, 0x00fe,\r
++      0x002e, 0x00ee, 0x0005, 0x7824, 0x00e6, 0x2071, 0x0040, 0x712c,\r
++      0xd19c, 0x1148, 0x2009, 0x1830, 0x210c, 0x918a, 0x0020, 0x0218,\r
++      0x7022, 0x00ee, 0x0058, 0x00ee, 0x2048, 0x702c, 0xa802, 0x2900,\r
++      0x702e, 0x70c0, 0x8000, 0x70c2, 0x080c, 0x8414, 0x782c, 0x9094,\r
++      0x0780, 0x190c, 0x6fe2, 0xd0a4, 0x19f0, 0x0e04, 0x6d17, 0x7838,\r
++      0x7938, 0x910e, 0x1de0, 0x00d6, 0x2069, 0x0000, 0x6836, 0x6833,\r
++      0x0013, 0x00de, 0x2001, 0x1921, 0x200c, 0xc184, 0x2102, 0x2091,\r
++      0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x119b, 0x2009,\r
++      0x1947, 0x200b, 0x0000, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x2001,\r
++      0x1921, 0x200c, 0xc185, 0x2102, 0x00fe, 0x002e, 0x00ee, 0x0005,\r
++      0x9016, 0x702c, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff,\r
++      0x1dc8, 0x702e, 0x70c0, 0x9200, 0x70c2, 0x080c, 0x8414, 0x0804,\r
++      0x6cd3, 0x0096, 0x00e6, 0x7824, 0x2048, 0x2071, 0x1800, 0x702c,\r
++      0xa802, 0x2900, 0x702e, 0x70c0, 0x8000, 0x70c2, 0x080c, 0x8414,\r
++      0x782c, 0x9094, 0x0780, 0x190c, 0x6fe2, 0xd0a4, 0x1d60, 0x00ee,\r
++      0x0e04, 0x6d75, 0x7838, 0x7938, 0x910e, 0x1de0, 0x00d6, 0x2069,\r
++      0x0000, 0x6836, 0x6833, 0x0013, 0x00de, 0x7044, 0xc084, 0x7046,\r
++      0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x119b,\r
++      0x2009, 0x1947, 0x200b, 0x0000, 0x782c, 0x9094, 0x0780, 0x190c,\r
++      0x6fe2, 0xd09c, 0x1170, 0x009e, 0x2900, 0x7822, 0xa804, 0x900d,\r
++      0x11e0, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x7044, 0xc085, 0x7046,\r
++      0x0c58, 0x009e, 0x2908, 0x7010, 0x8000, 0x7012, 0x7018, 0x904d,\r
++      0x711a, 0x0110, 0xa902, 0x0008, 0x711e, 0x2148, 0xa804, 0x900d,\r
++      0x1120, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x2071, 0x1800, 0x9016,\r
++      0x702c, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8,\r
++      0x702e, 0x70c0, 0x9200, 0x70c2, 0x080c, 0x8414, 0x00fe, 0x002e,\r
++      0x00ee, 0x0005, 0x2908, 0x7010, 0x8000, 0x7012, 0x7018, 0x904d,\r
++      0x711a, 0x0110, 0xa902, 0x0008, 0x711e, 0x2148, 0xa804, 0x900d,\r
++      0x1904, 0x6e13, 0x782c, 0x9094, 0x0780, 0x190c, 0x6fe2, 0xd09c,\r
++      0x11b0, 0x701c, 0x904d, 0x0198, 0xa84c, 0x9005, 0x1180, 0x7010,\r
++      0x8001, 0x7012, 0x1108, 0x701a, 0xa800, 0x701e, 0x2900, 0x7822,\r
++      0x782c, 0x9094, 0x0780, 0x190c, 0x6fe2, 0xd09c, 0x0d50, 0x782c,\r
++      0x9094, 0x0780, 0x190c, 0x6fe2, 0xd0a4, 0x05c8, 0x00e6, 0x7824,\r
++      0x2048, 0x2071, 0x1800, 0x702c, 0xa802, 0x2900, 0x702e, 0x70c0,\r
++      0x8000, 0x70c2, 0x080c, 0x8414, 0x782c, 0x9094, 0x0780, 0x190c,\r
++      0x6fe2, 0xd0a4, 0x1d60, 0x00ee, 0x0e04, 0x6e0c, 0x7838, 0x7938,\r
++      0x910e, 0x1de0, 0x00d6, 0x2069, 0x0000, 0x6836, 0x6833, 0x0013,\r
++      0x00de, 0x7044, 0xc084, 0x7046, 0x2091, 0x4080, 0x2001, 0x0089,\r
++      0x2004, 0xd084, 0x190c, 0x119b, 0x2009, 0x1947, 0x200b, 0x0000,\r
++      0x00fe, 0x002e, 0x00ee, 0x0005, 0x7044, 0xc085, 0x7046, 0x00fe,\r
++      0x002e, 0x00ee, 0x0005, 0x00e6, 0x2071, 0x1800, 0x9016, 0x702c,\r
++      0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e,\r
++      0x70c0, 0x9200, 0x70c2, 0x080c, 0x8414, 0x00ee, 0x0804, 0x6db2,\r
++      0x2071, 0x1910, 0xa803, 0x0000, 0x2908, 0x7010, 0x8000, 0x7012,\r
++      0x7018, 0x904d, 0x711a, 0x0110, 0xa902, 0x0008, 0x711e, 0x2148,\r
++      0xa804, 0x900d, 0x1128, 0x1e04, 0x6e53, 0x002e, 0x00ee, 0x0005,\r
++      0x2071, 0x1800, 0x9016, 0x702c, 0x2148, 0xa904, 0xa802, 0x8210,\r
++      0x2900, 0x81ff, 0x1dc8, 0x702e, 0x70c0, 0x9200, 0x70c2, 0x080c,\r
++      0x8414, 0x0e04, 0x6e3d, 0x2071, 0x1910, 0x701c, 0x2048, 0xa84c,\r
++      0x900d, 0x0d18, 0x2071, 0x0000, 0x7182, 0xa850, 0x7032, 0xa86c,\r
++      0x7086, 0x7036, 0xa870, 0x708a, 0xa850, 0x9082, 0x0019, 0x1278,\r
++      0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x119b,\r
++      0x2071, 0x1910, 0x080c, 0x6fce, 0x002e, 0x00ee, 0x0005, 0xa850,\r
++      0x9082, 0x001c, 0x1e68, 0xa880, 0x708e, 0x7036, 0x0146, 0x01d6,\r
++      0x0136, 0x01c6, 0x0156, 0x20e9, 0x0000, 0x20a1, 0x002a, 0xa868,\r
++      0x20a8, 0xa860, 0x20e0, 0xa85c, 0x9080, 0x0021, 0x2098, 0x4003,\r
++      0x015e, 0x01ce, 0x013e, 0x01de, 0x014e, 0x0890, 0x2071, 0x1910,\r
++      0xa803, 0x0000, 0x2908, 0x7010, 0x8000, 0x7012, 0x7018, 0x904d,\r
++      0x711a, 0x0110, 0xa902, 0x0008, 0x711e, 0x2148, 0xa804, 0x900d,\r
++      0x1118, 0x002e, 0x00ee, 0x0005, 0x2071, 0x1800, 0x9016, 0x702c,\r
++      0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e,\r
++      0x70c0, 0x9200, 0x70c2, 0x080c, 0x8414, 0x002e, 0x00ee, 0x0005,\r
++      0x0006, 0xa87c, 0x0006, 0xa867, 0x0103, 0x20a9, 0x001c, 0xa860,\r
++      0x20e8, 0xa85c, 0x9080, 0x001d, 0x20a0, 0x9006, 0x4004, 0x000e,\r
++      0x9084, 0x00ff, 0xa87e, 0x000e, 0xa87a, 0xa982, 0x0005, 0x2071,\r
++      0x1910, 0x7004, 0x0002, 0x6ee1, 0x6ee2, 0x6fcd, 0x6ee2, 0x0dd5,\r
++      0x6fcd, 0x0005, 0x2001, 0x1948, 0x2004, 0x0002, 0x6eec, 0x6eec,\r
++      0x6f66, 0x6f67, 0x6eec, 0x6f67, 0x0126, 0x2091, 0x8000, 0x1e0c,\r
++      0x6fed, 0x701c, 0x904d, 0x0508, 0xa84c, 0x9005, 0x0904, 0x6f37,\r
++      0x0e04, 0x6f15, 0xa94c, 0x2071, 0x0000, 0x7182, 0xa850, 0x7032,\r
++      0xa86c, 0x7086, 0x7036, 0xa870, 0x708a, 0xa850, 0x9082, 0x0019,\r
++      0x1278, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c,\r
++      0x119b, 0x2071, 0x1910, 0x080c, 0x6fce, 0x012e, 0x0804, 0x6f65,\r
++      0xa850, 0x9082, 0x001c, 0x1e68, 0xa880, 0x708e, 0x7036, 0x0146,\r
++      0x01d6, 0x0136, 0x01c6, 0x0156, 0x20e9, 0x0000, 0x20a1, 0x002a,\r
++      0xa868, 0x20a8, 0xa860, 0x20e0, 0xa85c, 0x9080, 0x0021, 0x2098,\r
++      0x4003, 0x015e, 0x01ce, 0x013e, 0x01de, 0x014e, 0x0890, 0x2001,\r
++      0x005b, 0x2004, 0x9094, 0x0780, 0x190c, 0x6fe2, 0xd09c, 0x2071,\r
++      0x1910, 0x1510, 0x2071, 0x1910, 0x700f, 0x0001, 0xa964, 0x9184,\r
++      0x00ff, 0x9086, 0x0003, 0x1130, 0x810f, 0x918c, 0x00ff, 0x8101,\r
++      0x0108, 0x710e, 0x2900, 0x00d6, 0x2069, 0x0050, 0x6822, 0x00de,\r
++      0x2071, 0x1910, 0x701c, 0x2048, 0x7010, 0x8001, 0x7012, 0xa800,\r
++      0x701e, 0x9005, 0x1108, 0x701a, 0x012e, 0x0005, 0x0005, 0x00d6,\r
++      0x2008, 0x2069, 0x19fa, 0x683c, 0x9005, 0x0760, 0x0158, 0x9186,\r
++      0x0003, 0x0540, 0x2001, 0x1815, 0x2004, 0x2009, 0x1ac8, 0x210c,\r
++      0x9102, 0x1500, 0x0126, 0x2091, 0x8000, 0x2069, 0x0050, 0x693c,\r
++      0x6838, 0x9106, 0x0190, 0x0e04, 0x6f99, 0x2069, 0x0000, 0x6837,\r
++      0x8040, 0x6833, 0x0012, 0x6883, 0x8040, 0x2091, 0x4080, 0x2001,\r
++      0x0089, 0x2004, 0xd084, 0x190c, 0x119b, 0x2069, 0x19fa, 0x683f,\r
++      0xffff, 0x012e, 0x00de, 0x0126, 0x2091, 0x8000, 0x1e0c, 0x705e,\r
++      0x701c, 0x904d, 0x0540, 0x2001, 0x005b, 0x2004, 0x9094, 0x0780,\r
++      0x15c9, 0xd09c, 0x1500, 0x2071, 0x1910, 0x700f, 0x0001, 0xa964,\r
++      0x9184, 0x00ff, 0x9086, 0x0003, 0x1130, 0x810f, 0x918c, 0x00ff,\r
++      0x8101, 0x0108, 0x710e, 0x2900, 0x00d6, 0x2069, 0x0050, 0x6822,\r
++      0x00de, 0x701c, 0x2048, 0x7010, 0x8001, 0x7012, 0xa800, 0x701e,\r
++      0x9005, 0x1108, 0x701a, 0x012e, 0x0005, 0x0005, 0x0126, 0x2091,\r
++      0x8000, 0x701c, 0x904d, 0x0160, 0x7010, 0x8001, 0x7012, 0xa800,\r
++      0x701e, 0x9005, 0x1108, 0x701a, 0x012e, 0x080c, 0x1031, 0x0005,\r
++      0x012e, 0x0005, 0x2091, 0x8000, 0x0e04, 0x6fe4, 0x0006, 0x0016,\r
++      0x2001, 0x8004, 0x0006, 0x0804, 0x0dde, 0x0096, 0x00f6, 0x2079,\r
++      0x0050, 0x7044, 0xd084, 0x01e0, 0xc084, 0x7046, 0x7838, 0x7938,\r
++      0x910e, 0x1de0, 0x00d6, 0x2069, 0x0000, 0x6836, 0x6833, 0x0013,\r
++      0x00de, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c,\r
++      0x119b, 0x2009, 0x1947, 0x200b, 0x0000, 0x00fe, 0x009e, 0x0005,\r
++      0x782c, 0x9094, 0x0780, 0x1971, 0xd0a4, 0x0db8, 0x2009, 0x1947,\r
++      0x2104, 0x8000, 0x200a, 0x9082, 0x000f, 0x0e78, 0x00e6, 0x2071,\r
++      0x1800, 0x7824, 0x00e6, 0x2071, 0x0040, 0x712c, 0xd19c, 0x1148,\r
++      0x2009, 0x1830, 0x210c, 0x918a, 0x0020, 0x0218, 0x7022, 0x00ee,\r
++      0x0058, 0x00ee, 0x2048, 0x702c, 0xa802, 0x2900, 0x702e, 0x70c0,\r
++      0x8000, 0x70c2, 0x080c, 0x8414, 0x782c, 0x9094, 0x0780, 0x190c,\r
++      0x6fe2, 0xd0a4, 0x19f0, 0x7838, 0x7938, 0x910e, 0x1de0, 0x00d6,\r
++      0x2069, 0x0000, 0x6836, 0x6833, 0x0013, 0x00de, 0x2091, 0x4080,\r
++      0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x119b, 0x2009, 0x1947,\r
++      0x200b, 0x0000, 0x00ee, 0x00fe, 0x009e, 0x0005, 0x00f6, 0x2079,\r
++      0x0050, 0x7044, 0xd084, 0x01b8, 0xc084, 0x7046, 0x7838, 0x7938,\r
++      0x910e, 0x1de0, 0x00d6, 0x2069, 0x0000, 0x6836, 0x6833, 0x0013,\r
++      0x00de, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c,\r
++      0x119b, 0x00fe, 0x0005, 0x782c, 0x9094, 0x0780, 0x190c, 0x6fe2,\r
++      0xd0a4, 0x0db8, 0x00e6, 0x2071, 0x1800, 0x7824, 0x2048, 0x702c,\r
++      0xa802, 0x2900, 0x702e, 0x70c0, 0x8000, 0x70c2, 0x080c, 0x8414,\r
++      0x782c, 0x9094, 0x0780, 0x190c, 0x6fe2, 0xd0a4, 0x1d70, 0x00d6,\r
++      0x2069, 0x0050, 0x693c, 0x2069, 0x1948, 0x6808, 0x690a, 0x2069,\r
++      0x19fa, 0x9102, 0x1118, 0x683c, 0x9005, 0x1328, 0x2001, 0x1949,\r
++      0x200c, 0x810d, 0x693e, 0x00de, 0x00ee, 0x00fe, 0x0005, 0x7098,\r
++      0x908a, 0x0029, 0x1a0c, 0x0dd5, 0x9082, 0x001d, 0x001b, 0x6027,\r
++      0x1e00, 0x0005, 0x7186, 0x710c, 0x7128, 0x7152, 0x7175, 0x71b5,\r
++      0x71c7, 0x7128, 0x719d, 0x70c7, 0x70f5, 0x70c6, 0x0005, 0x00d6,\r
++      0x2069, 0x0200, 0x6804, 0x9005, 0x1180, 0x6808, 0x9005, 0x1518,\r
++      0x709b, 0x0028, 0x2069, 0x198f, 0x2d04, 0x7002, 0x080c, 0x74f6,\r
++      0x6028, 0x9085, 0x0600, 0x602a, 0x00b0, 0x709b, 0x0028, 0x2069,\r
++      0x198f, 0x2d04, 0x7002, 0x6028, 0x9085, 0x0600, 0x602a, 0x00e6,\r
++      0x0036, 0x0046, 0x0056, 0x2071, 0x1a62, 0x080c, 0x1aa9, 0x005e,\r
++      0x004e, 0x003e, 0x00ee, 0x00de, 0x0005, 0x00d6, 0x2069, 0x0200,\r
++      0x6804, 0x9005, 0x1178, 0x6808, 0x9005, 0x1160, 0x709b, 0x0028,\r
++      0x2069, 0x198f, 0x2d04, 0x7002, 0x080c, 0x7591, 0x6028, 0x9085,\r
++      0x0600, 0x602a, 0x00de, 0x0005, 0x0006, 0x2001, 0x0090, 0x080c,\r
++      0x2cef, 0x000e, 0x6124, 0xd1e4, 0x1190, 0x080c, 0x7234, 0xd1d4,\r
++      0x1160, 0xd1dc, 0x1138, 0xd1cc, 0x0150, 0x709b, 0x0020, 0x080c,\r
++      0x7234, 0x0028, 0x709b, 0x001d, 0x0010, 0x709b, 0x001f, 0x0005,\r
++      0x2001, 0x0088, 0x080c, 0x2cef, 0x6124, 0xd1cc, 0x11e8, 0xd1dc,\r
++      0x11c0, 0xd1e4, 0x1198, 0x9184, 0x1e00, 0x11d8, 0x080c, 0x1ad3,\r
++      0x60e3, 0x0001, 0x600c, 0xc0b4, 0x600e, 0x080c, 0x73e8, 0x2001,\r
++      0x0080, 0x080c, 0x2cef, 0x709b, 0x0028, 0x0058, 0x709b, 0x001e,\r
++      0x0040, 0x709b, 0x001d, 0x0028, 0x709b, 0x0020, 0x0010, 0x709b,\r
++      0x001f, 0x0005, 0x080c, 0x1ad3, 0x60e3, 0x0001, 0x600c, 0xc0b4,\r
++      0x600e, 0x080c, 0x73e8, 0x2001, 0x0080, 0x080c, 0x2cef, 0x6124,\r
++      0xd1d4, 0x1180, 0xd1dc, 0x1158, 0xd1e4, 0x1130, 0x9184, 0x1e00,\r
++      0x1158, 0x709b, 0x0028, 0x0040, 0x709b, 0x001e, 0x0028, 0x709b,\r
++      0x001d, 0x0010, 0x709b, 0x001f, 0x0005, 0x2001, 0x00a0, 0x080c,\r
++      0x2cef, 0x6124, 0xd1dc, 0x1138, 0xd1e4, 0x0138, 0x080c, 0x1ad3,\r
++      0x709b, 0x001e, 0x0010, 0x709b, 0x001d, 0x0005, 0x080c, 0x72b7,\r
++      0x6124, 0xd1dc, 0x1188, 0x080c, 0x7234, 0x0016, 0x080c, 0x1ad3,\r
++      0x001e, 0xd1d4, 0x1128, 0xd1e4, 0x0138, 0x709b, 0x001e, 0x0020,\r
++      0x709b, 0x001f, 0x080c, 0x7234, 0x0005, 0x0006, 0x2001, 0x00a0,\r
++      0x080c, 0x2cef, 0x000e, 0x6124, 0xd1d4, 0x1160, 0xd1cc, 0x1150,\r
++      0xd1dc, 0x1128, 0xd1e4, 0x0140, 0x709b, 0x001e, 0x0028, 0x709b,\r
++      0x001d, 0x0010, 0x709b, 0x0021, 0x0005, 0x080c, 0x72b7, 0x6124,\r
++      0xd1d4, 0x1150, 0xd1dc, 0x1128, 0xd1e4, 0x0140, 0x709b, 0x001e,\r
++      0x0028, 0x709b, 0x001d, 0x0010, 0x709b, 0x001f, 0x0005, 0x0006,\r
++      0x2001, 0x0090, 0x080c, 0x2cef, 0x000e, 0x6124, 0xd1d4, 0x1178,\r
++      0xd1cc, 0x1150, 0xd1dc, 0x1128, 0xd1e4, 0x0158, 0x709b, 0x001e,\r
++      0x0040, 0x709b, 0x001d, 0x0028, 0x709b, 0x0020, 0x0010, 0x709b,\r
++      0x001f, 0x0005, 0x0016, 0x00c6, 0x00d6, 0x00e6, 0x0126, 0x2061,\r
++      0x0100, 0x2069, 0x0140, 0x2071, 0x1800, 0x2091, 0x8000, 0x080c,\r
++      0x73bc, 0x11d8, 0x2001, 0x180c, 0x200c, 0xd1b4, 0x01b0, 0xc1b4,\r
++      0x2102, 0x6027, 0x0200, 0x080c, 0x2c38, 0x6024, 0xd0cc, 0x0148,\r
++      0x2001, 0x00a0, 0x080c, 0x2cef, 0x080c, 0x76a4, 0x080c, 0x601a,\r
++      0x0428, 0x6028, 0xc0cd, 0x602a, 0x0408, 0x080c, 0x73d6, 0x0150,\r
++      0x080c, 0x73cd, 0x1138, 0x2001, 0x0001, 0x080c, 0x27ea, 0x080c,\r
++      0x7394, 0x00a0, 0x080c, 0x72b4, 0x0178, 0x2001, 0x0001, 0x080c,\r
++      0x27ea, 0x7098, 0x9086, 0x001e, 0x0120, 0x7098, 0x9086, 0x0022,\r
++      0x1118, 0x709b, 0x0025, 0x0010, 0x709b, 0x0021, 0x012e, 0x00ee,\r
++      0x00de, 0x00ce, 0x001e, 0x0005, 0x0026, 0x2011, 0x7245, 0x080c,\r
++      0x85cd, 0x002e, 0x0016, 0x0026, 0x2009, 0x0064, 0x2011, 0x7245,\r
++      0x080c, 0x85c4, 0x002e, 0x001e, 0x0005, 0x00e6, 0x00f6, 0x0016,\r
++      0x080c, 0xa273, 0x2071, 0x1800, 0x080c, 0x71e2, 0x001e, 0x00fe,\r
++      0x00ee, 0x0005, 0x0016, 0x0026, 0x0036, 0x00c6, 0x00d6, 0x00e6,\r
++      0x00f6, 0x0126, 0x080c, 0xa273, 0x2061, 0x0100, 0x2069, 0x0140,\r
++      0x2071, 0x1800, 0x2091, 0x8000, 0x6028, 0xc09c, 0x602a, 0x2011,\r
++      0x0003, 0x080c, 0xa653, 0x2011, 0x0002, 0x080c, 0xa65d, 0x080c,\r
++      0xa540, 0x080c, 0x8579, 0x0036, 0x901e, 0x080c, 0xa5b6, 0x003e,\r
++      0x60e3, 0x0000, 0x080c, 0xe9e9, 0x080c, 0xea04, 0x2009, 0x0004,\r
++      0x080c, 0x2c3e, 0x080c, 0x2b59, 0x2001, 0x1800, 0x2003, 0x0004,\r
++      0x6027, 0x0008, 0x2011, 0x7245, 0x080c, 0x85cd, 0x080c, 0x73d6,\r
++      0x0118, 0x9006, 0x080c, 0x2cef, 0x080c, 0x0bae, 0x2001, 0x0001,\r
++      0x080c, 0x27ea, 0x012e, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x003e,\r
++      0x002e, 0x001e, 0x0005, 0x0026, 0x00e6, 0x2011, 0x7252, 0x2071,\r
++      0x19fa, 0x701c, 0x9206, 0x1118, 0x7018, 0x9005, 0x0110, 0x9085,\r
++      0x0001, 0x00ee, 0x002e, 0x0005, 0x6020, 0xd09c, 0x0005, 0x6800,\r
++      0x9084, 0xfffe, 0x9086, 0x00c0, 0x0170, 0x2001, 0x00c0, 0x080c,\r
++      0x2cef, 0x0156, 0x20a9, 0x002d, 0x1d04, 0x72c4, 0x2091, 0x6000,\r
++      0x1f04, 0x72c4, 0x015e, 0x0005, 0x00c6, 0x00d6, 0x00e6, 0x2061,\r
++      0x0100, 0x2069, 0x0140, 0x2071, 0x1800, 0x080c, 0x76b3, 0x2001,\r
++      0x196d, 0x2003, 0x0000, 0x9006, 0x709a, 0x60e2, 0x6886, 0x080c,\r
++      0x28b2, 0x9006, 0x080c, 0x2cef, 0x080c, 0x5ed9, 0x6027, 0xffff,\r
++      0x602b, 0x182f, 0x00ee, 0x00de, 0x00ce, 0x0005, 0x00c6, 0x00d6,\r
++      0x00e6, 0x2061, 0x0100, 0x2069, 0x0140, 0x2071, 0x1800, 0x2001,\r
++      0x197d, 0x200c, 0x9186, 0x0000, 0x0158, 0x9186, 0x0001, 0x0158,\r
++      0x9186, 0x0002, 0x0158, 0x9186, 0x0003, 0x0158, 0x0804, 0x7384,\r
++      0x709b, 0x0022, 0x0040, 0x709b, 0x0021, 0x0028, 0x709b, 0x0023,\r
++      0x0010, 0x709b, 0x0024, 0x60e3, 0x0000, 0x6887, 0x0001, 0x2001,\r
++      0x0001, 0x080c, 0x28b2, 0x0026, 0x080c, 0xadd2, 0x002e, 0x7000,\r
++      0x908e, 0x0004, 0x0118, 0x602b, 0x0028, 0x0010, 0x602b, 0x0020,\r
++      0x0156, 0x0126, 0x2091, 0x8000, 0x20a9, 0x0005, 0x6024, 0xd0ac,\r
++      0x0150, 0x012e, 0x015e, 0x080c, 0xd230, 0x0118, 0x9006, 0x080c,\r
++      0x2d19, 0x0804, 0x7390, 0x6800, 0x9084, 0x00a1, 0xc0bd, 0x6802,\r
++      0x080c, 0x2c38, 0x6904, 0xd1d4, 0x1140, 0x2001, 0x0100, 0x080c,\r
++      0x2cef, 0x1f04, 0x732e, 0x080c, 0x7413, 0x012e, 0x015e, 0x080c,\r
++      0x73cd, 0x01a8, 0x6044, 0x9005, 0x0168, 0x6050, 0x0006, 0x9085,\r
++      0x0020, 0x6052, 0x080c, 0x7413, 0x9006, 0x8001, 0x1df0, 0x000e,\r
++      0x6052, 0x0028, 0x6804, 0xd0d4, 0x1110, 0x080c, 0x7413, 0x080c,\r
++      0xd230, 0x0118, 0x9006, 0x080c, 0x2d19, 0x0016, 0x0026, 0x7000,\r
++      0x908e, 0x0004, 0x0130, 0x2009, 0x00c8, 0x2011, 0x7252, 0x080c,\r
++      0x858b, 0x002e, 0x001e, 0x080c, 0x840b, 0x7034, 0xc085, 0x7036,\r
++      0x2001, 0x197d, 0x2003, 0x0004, 0x080c, 0x70af, 0x080c, 0x73cd,\r
++      0x0138, 0x6804, 0xd0d4, 0x1120, 0xd0dc, 0x1100, 0x080c, 0x76a9,\r
++      0x00ee, 0x00de, 0x00ce, 0x0005, 0x00c6, 0x00d6, 0x00e6, 0x2061,\r
++      0x0100, 0x2069, 0x0140, 0x2071, 0x1800, 0x080c, 0x8422, 0x080c,\r
++      0x8414, 0x080c, 0x76b3, 0x2001, 0x196d, 0x2003, 0x0000, 0x9006,\r
++      0x709a, 0x60e2, 0x6886, 0x080c, 0x28b2, 0x9006, 0x080c, 0x2cef,\r
++      0x6043, 0x0090, 0x6043, 0x0010, 0x6027, 0xffff, 0x602b, 0x182f,\r
++      0x00ee, 0x00de, 0x00ce, 0x0005, 0x0006, 0x2001, 0x197c, 0x2004,\r
++      0x9086, 0xaaaa, 0x000e, 0x0005, 0x0006, 0x080c, 0x56d3, 0x9084,\r
++      0x0030, 0x9086, 0x0000, 0x000e, 0x0005, 0x0006, 0x080c, 0x56d3,\r
++      0x9084, 0x0030, 0x9086, 0x0030, 0x000e, 0x0005, 0x0006, 0x080c,\r
++      0x56d3, 0x9084, 0x0030, 0x9086, 0x0010, 0x000e, 0x0005, 0x0006,\r
++      0x080c, 0x56d3, 0x9084, 0x0030, 0x9086, 0x0020, 0x000e, 0x0005,\r
++      0x0036, 0x0016, 0x2001, 0x180c, 0x2004, 0x908c, 0x0013, 0x0180,\r
++      0x0020, 0x080c, 0x28d2, 0x900e, 0x0028, 0x080c, 0x696a, 0x1dc8,\r
++      0x2009, 0x0002, 0x2019, 0x0028, 0x080c, 0x318a, 0x9006, 0x0019,\r
++      0x001e, 0x003e, 0x0005, 0x00e6, 0x2071, 0x180c, 0x2e04, 0x0130,\r
++      0x080c, 0xd229, 0x1128, 0x9085, 0x0010, 0x0010, 0x9084, 0xffef,\r
++      0x2072, 0x00ee, 0x0005, 0x6050, 0x0006, 0x60ec, 0x0006, 0x600c,\r
++      0x0006, 0x6004, 0x0006, 0x6028, 0x0006, 0x0016, 0x6138, 0x6050,\r
++      0x9084, 0xfbff, 0x9085, 0x2000, 0x6052, 0x613a, 0x20a9, 0x0012,\r
++      0x1d04, 0x7428, 0x2091, 0x6000, 0x1f04, 0x7428, 0x602f, 0x0100,\r
++      0x602f, 0x0000, 0x6050, 0x9085, 0x0400, 0x9084, 0xdfff, 0x6052,\r
++      0x613a, 0x001e, 0x602f, 0x0040, 0x602f, 0x0000, 0x000e, 0x602a,\r
++      0x000e, 0x6006, 0x000e, 0x600e, 0x000e, 0x60ee, 0x60e3, 0x0000,\r
++      0x6887, 0x0001, 0x2001, 0x0001, 0x080c, 0x28b2, 0x2001, 0x00a0,\r
++      0x0006, 0x080c, 0xd230, 0x000e, 0x0130, 0x080c, 0x2d0d, 0x9006,\r
++      0x080c, 0x2d19, 0x0010, 0x080c, 0x2cef, 0x000e, 0x6052, 0x6050,\r
++      0x0006, 0xc0e5, 0x6052, 0x00f6, 0x2079, 0x0100, 0x080c, 0x2bad,\r
++      0x00fe, 0x000e, 0x6052, 0x0005, 0x0156, 0x0016, 0x0026, 0x0036,\r
++      0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100, 0x2069, 0x0140, 0x2071,\r
++      0x1800, 0x6020, 0x9084, 0x0080, 0x0138, 0x2001, 0x180c, 0x200c,\r
++      0xc1c5, 0x2102, 0x0804, 0x74e8, 0x2001, 0x180c, 0x200c, 0xc1c4,\r
++      0x2102, 0x6028, 0x9084, 0xe1ff, 0x602a, 0x6027, 0x0200, 0x2001,\r
++      0x0090, 0x080c, 0x2cef, 0x20a9, 0x0366, 0x6024, 0xd0cc, 0x1518,\r
++      0x1d04, 0x7495, 0x2091, 0x6000, 0x1f04, 0x7495, 0x2011, 0x0003,\r
++      0x080c, 0xa653, 0x2011, 0x0002, 0x080c, 0xa65d, 0x080c, 0xa540,\r
++      0x901e, 0x080c, 0xa5b6, 0x2001, 0x00a0, 0x080c, 0x2cef, 0x080c,\r
++      0x76a4, 0x080c, 0x601a, 0x080c, 0xd230, 0x0110, 0x080c, 0x0d45,\r
++      0x9085, 0x0001, 0x0498, 0x86ff, 0x1110, 0x080c, 0x1ad3, 0x60e3,\r
++      0x0000, 0x2001, 0x196d, 0x2004, 0x080c, 0x28b2, 0x60e2, 0x2001,\r
++      0x0080, 0x080c, 0x2cef, 0x20a9, 0x0366, 0x6027, 0x1e00, 0x2009,\r
++      0x1e00, 0x080c, 0x2c38, 0x6024, 0x910c, 0x0138, 0x1d04, 0x74cd,\r
++      0x2091, 0x6000, 0x1f04, 0x74cd, 0x0808, 0x6028, 0x9085, 0x1e00,\r
++      0x602a, 0x70b4, 0x9005, 0x1118, 0x6887, 0x0001, 0x0008, 0x6886,\r
++      0x080c, 0xd230, 0x0110, 0x080c, 0x0d45, 0x9006, 0x00ee, 0x00de,\r
++      0x00ce, 0x003e, 0x002e, 0x001e, 0x015e, 0x0005, 0x0156, 0x0016,\r
++      0x0026, 0x0036, 0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100, 0x2071,\r
++      0x1800, 0x7000, 0x9086, 0x0003, 0x1168, 0x2001, 0x020b, 0x2004,\r
++      0x9084, 0x5540, 0x9086, 0x5540, 0x1128, 0x2069, 0x1a79, 0x2d04,\r
++      0x8000, 0x206a, 0x2069, 0x0140, 0x6020, 0x9084, 0x00c0, 0x0120,\r
++      0x6884, 0x9005, 0x1904, 0x755b, 0x2001, 0x0088, 0x080c, 0x2cef,\r
++      0x9006, 0x60e2, 0x6886, 0x080c, 0x28b2, 0x2069, 0x0200, 0x6804,\r
++      0x9005, 0x1118, 0x6808, 0x9005, 0x01c0, 0x6028, 0x9084, 0xfbff,\r
++      0x602a, 0x6027, 0x0400, 0x2069, 0x198f, 0x7000, 0x206a, 0x709b,\r
++      0x0026, 0x7003, 0x0001, 0x20a9, 0x0002, 0x1d04, 0x753d, 0x2091,\r
++      0x6000, 0x1f04, 0x753d, 0x0804, 0x7589, 0x2069, 0x0140, 0x20a9,\r
++      0x0384, 0x6027, 0x1e00, 0x2009, 0x1e00, 0x080c, 0x2c38, 0x6024,\r
++      0x910c, 0x0508, 0x9084, 0x1a00, 0x11f0, 0x1d04, 0x7549, 0x2091,\r
++      0x6000, 0x1f04, 0x7549, 0x2011, 0x0003, 0x080c, 0xa653, 0x2011,\r
++      0x0002, 0x080c, 0xa65d, 0x080c, 0xa540, 0x901e, 0x080c, 0xa5b6,\r
++      0x2001, 0x00a0, 0x080c, 0x2cef, 0x080c, 0x76a4, 0x080c, 0x601a,\r
++      0x9085, 0x0001, 0x00b0, 0x2001, 0x0080, 0x080c, 0x2cef, 0x2069,\r
++      0x0140, 0x60e3, 0x0000, 0x70b4, 0x9005, 0x1118, 0x6887, 0x0001,\r
++      0x0008, 0x6886, 0x2001, 0x196d, 0x2004, 0x080c, 0x28b2, 0x60e2,\r
++      0x9006, 0x00ee, 0x00de, 0x00ce, 0x003e, 0x002e, 0x001e, 0x015e,\r
++      0x0005, 0x0156, 0x0016, 0x0026, 0x0036, 0x00c6, 0x00d6, 0x00e6,\r
++      0x2061, 0x0100, 0x2071, 0x1800, 0x6020, 0x9084, 0x00c0, 0x01c8,\r
++      0x2011, 0x0003, 0x080c, 0xa653, 0x2011, 0x0002, 0x080c, 0xa65d,\r
++      0x080c, 0xa540, 0x901e, 0x080c, 0xa5b6, 0x2069, 0x0140, 0x2001,\r
++      0x00a0, 0x080c, 0x2cef, 0x080c, 0x76a4, 0x080c, 0x601a, 0x0804,\r
++      0x7624, 0x2001, 0x180c, 0x200c, 0xd1b4, 0x1160, 0xc1b5, 0x2102,\r
++      0x080c, 0x723a, 0x2069, 0x0140, 0x2001, 0x0080, 0x080c, 0x2cef,\r
++      0x60e3, 0x0000, 0x2069, 0x0200, 0x6804, 0x9005, 0x1118, 0x6808,\r
++      0x9005, 0x0180, 0x6028, 0x9084, 0xfdff, 0x602a, 0x6027, 0x0200,\r
++      0x2069, 0x198f, 0x7000, 0x206a, 0x709b, 0x0027, 0x7003, 0x0001,\r
++      0x0804, 0x7624, 0x6027, 0x1e00, 0x2009, 0x1e00, 0x080c, 0x2c38,\r
++      0x6024, 0x910c, 0x01c8, 0x9084, 0x1c00, 0x11b0, 0x1d04, 0x75e2,\r
++      0x0006, 0x0016, 0x00c6, 0x00d6, 0x00e6, 0x080c, 0x8453, 0x00ee,\r
++      0x00de, 0x00ce, 0x001e, 0x000e, 0x00e6, 0x2071, 0x19fa, 0x7018,\r
++      0x00ee, 0x9005, 0x19f8, 0x0500, 0x0026, 0x2011, 0x7252, 0x080c,\r
++      0x84f3, 0x2011, 0x7245, 0x080c, 0x85cd, 0x002e, 0x2069, 0x0140,\r
++      0x60e3, 0x0000, 0x70b4, 0x9005, 0x1118, 0x6887, 0x0001, 0x0008,\r
++      0x6886, 0x2001, 0x196d, 0x2004, 0x080c, 0x28b2, 0x60e2, 0x2001,\r
++      0x180c, 0x200c, 0xc1b4, 0x2102, 0x00ee, 0x00de, 0x00ce, 0x003e,\r
++      0x002e, 0x001e, 0x015e, 0x0005, 0x0156, 0x0016, 0x0026, 0x0036,\r
++      0x0046, 0x00c6, 0x00e6, 0x2061, 0x0100, 0x2071, 0x1800, 0x080c,\r
++      0xd229, 0x1904, 0x7692, 0x7130, 0xd184, 0x1170, 0x080c, 0x3319,\r
++      0x0138, 0xc18d, 0x7132, 0x2011, 0x1848, 0x2214, 0xd2ac, 0x1120,\r
++      0x7030, 0xd08c, 0x0904, 0x7692, 0x2011, 0x1848, 0x220c, 0xd1a4,\r
++      0x0538, 0x0016, 0x2019, 0x000e, 0x080c, 0xe522, 0x0156, 0x00b6,\r
++      0x20a9, 0x007f, 0x900e, 0x9186, 0x007e, 0x01a0, 0x9186, 0x0080,\r
++      0x0188, 0x080c, 0x65ff, 0x1170, 0x2120, 0x9006, 0x0016, 0x2009,\r
++      0x000e, 0x080c, 0xe5ae, 0x2009, 0x0001, 0x2011, 0x0100, 0x080c,\r
++      0x86dd, 0x001e, 0x8108, 0x1f04, 0x765b, 0x00be, 0x015e, 0x001e,\r
++      0xd1ac, 0x1148, 0x0016, 0x2009, 0x0002, 0x2019, 0x0004, 0x080c,\r
++      0x318a, 0x001e, 0x0078, 0x0156, 0x00b6, 0x20a9, 0x007f, 0x900e,\r
++      0x080c, 0x65ff, 0x1110, 0x080c, 0x6034, 0x8108, 0x1f04, 0x7688,\r
++      0x00be, 0x015e, 0x080c, 0x1ad3, 0x080c, 0xadd2, 0x60e3, 0x0000,\r
++      0x080c, 0x601a, 0x080c, 0x72ee, 0x00ee, 0x00ce, 0x004e, 0x003e,\r
++      0x002e, 0x001e, 0x015e, 0x0005, 0x2001, 0x197d, 0x2003, 0x0001,\r
++      0x0005, 0x2001, 0x197d, 0x2003, 0x0000, 0x0005, 0x2001, 0x197c,\r
++      0x2003, 0xaaaa, 0x0005, 0x2001, 0x197c, 0x2003, 0x0000, 0x0005,\r
++      0x2071, 0x18fa, 0x7003, 0x0000, 0x7007, 0x0000, 0x080c, 0x1018,\r
++      0x090c, 0x0dd5, 0xa8ab, 0xdcb0, 0x2900, 0x704e, 0x080c, 0x1018,\r
++      0x090c, 0x0dd5, 0xa8ab, 0xdcb0, 0x2900, 0x7052, 0xa867, 0x0000,\r
++      0xa86b, 0x0001, 0xa89f, 0x0000, 0x0005, 0x00e6, 0x2071, 0x0040,\r
++      0x6848, 0x9005, 0x1118, 0x9085, 0x0001, 0x04b0, 0x6840, 0x9005,\r
++      0x0150, 0x04a1, 0x6a50, 0x9200, 0x7002, 0x6854, 0x9101, 0x7006,\r
++      0x9006, 0x7012, 0x7016, 0x6850, 0x7002, 0x6854, 0x7006, 0x6858,\r
++      0x700a, 0x685c, 0x700e, 0x6840, 0x9005, 0x1110, 0x7012, 0x7016,\r
++      0x6848, 0x701a, 0x701c, 0x9085, 0x0040, 0x701e, 0x2001, 0x0019,\r
++      0x7036, 0x702b, 0x0001, 0x2001, 0x0004, 0x200c, 0x918c, 0xfff7,\r
++      0x918d, 0x8000, 0x2102, 0x00d6, 0x2069, 0x18fa, 0x6807, 0x0001,\r
++      0x00de, 0x080c, 0x7c90, 0x9006, 0x00ee, 0x0005, 0x900e, 0x0156,\r
++      0x20a9, 0x0006, 0x8003, 0x2011, 0x0100, 0x2214, 0x9296, 0x0008,\r
++      0x1110, 0x818d, 0x0010, 0x81f5, 0x3e08, 0x1f04, 0x771a, 0x015e,\r
++      0x0005, 0x2079, 0x0040, 0x2071, 0x18fa, 0x7004, 0x0002, 0x7739,\r
++      0x773a, 0x7771, 0x77cc, 0x78dc, 0x7737, 0x7737, 0x7906, 0x080c,\r
++      0x0dd5, 0x0005, 0x2079, 0x0040, 0x782c, 0x908c, 0x0780, 0x190c,\r
++      0x7d72, 0xd0a4, 0x01f0, 0x7824, 0x2048, 0x9006, 0xa802, 0xa806,\r
++      0xa864, 0x9084, 0x00ff, 0x908a, 0x0040, 0x0608, 0x00b8, 0x2001,\r
++      0x1800, 0x200c, 0x9186, 0x0003, 0x1160, 0x7104, 0x9186, 0x0004,\r
++      0x0140, 0x9186, 0x0007, 0x0128, 0x9186, 0x0003, 0x19e8, 0x080c,\r
++      0x77cc, 0x782c, 0xd09c, 0x090c, 0x7c90, 0x0005, 0x9082, 0x005a,\r
++      0x1218, 0x2100, 0x003b, 0x0c18, 0x080c, 0x7802, 0x0c90, 0x00e3,\r
++      0x08f0, 0x0005, 0x7802, 0x7802, 0x7802, 0x7802, 0x7802, 0x7802,\r
++      0x7802, 0x7802, 0x7824, 0x7802, 0x7802, 0x7802, 0x7802, 0x7802,\r
++      0x7802, 0x7802, 0x7802, 0x7802, 0x7802, 0x7802, 0x7802, 0x7802,\r
++      0x7802, 0x7802, 0x7802, 0x7802, 0x7802, 0x7802, 0x780e, 0x7802,\r
++      0x79f7, 0x7802, 0x7802, 0x7802, 0x7824, 0x7802, 0x780e, 0x7a38,\r
++      0x7a79, 0x7ac0, 0x7ad4, 0x7802, 0x7802, 0x7824, 0x780e, 0x7838,\r
++      0x7802, 0x78b0, 0x7b7f, 0x7b9a, 0x7802, 0x7824, 0x7802, 0x7838,\r
++      0x7802, 0x7802, 0x78a6, 0x7b9a, 0x7802, 0x7802, 0x7802, 0x7802,\r
++      0x7802, 0x7802, 0x7802, 0x7802, 0x7802, 0x784c, 0x7802, 0x7802,\r
++      0x7802, 0x7802, 0x7802, 0x7802, 0x7802, 0x7802, 0x7802, 0x7d16,\r
++      0x7802, 0x7cc0, 0x7802, 0x7cc0, 0x7802, 0x7861, 0x7802, 0x7802,\r
++      0x7802, 0x7802, 0x7802, 0x7802, 0x2079, 0x0040, 0x7004, 0x9086,\r
++      0x0003, 0x1198, 0x782c, 0x080c, 0x7cb9, 0xd0a4, 0x0170, 0x7824,\r
++      0x2048, 0x9006, 0xa802, 0xa806, 0xa864, 0x9084, 0x00ff, 0x908a,\r
++      0x001a, 0x1210, 0x002b, 0x0c50, 0x00e9, 0x080c, 0x7c90, 0x0005,\r
++      0x7802, 0x780e, 0x79e3, 0x7802, 0x780e, 0x7802, 0x780e, 0x780e,\r
++      0x7802, 0x780e, 0x79e3, 0x780e, 0x780e, 0x780e, 0x780e, 0x780e,\r
++      0x7802, 0x780e, 0x79e3, 0x7802, 0x7802, 0x780e, 0x7802, 0x7802,\r
++      0x7802, 0x780e, 0x00e6, 0x2071, 0x18fa, 0x2009, 0x0400, 0x0071,\r
++      0x00ee, 0x0005, 0x2009, 0x1000, 0x0049, 0x0005, 0x2009, 0x2000,\r
++      0x0029, 0x0005, 0x2009, 0x0800, 0x0009, 0x0005, 0x7007, 0x0001,\r
++      0xa868, 0x9084, 0x00ff, 0x9105, 0xa86a, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x6c81, 0x012e, 0x0005, 0xa864, 0x8007, 0x9084, 0x00ff,\r
++      0x0d08, 0x8001, 0x1120, 0x7007, 0x0001, 0x0804, 0x7985, 0x7007,\r
++      0x0003, 0x7012, 0x2900, 0x7016, 0x701a, 0x704b, 0x7985, 0x0005,\r
++      0xa864, 0x8007, 0x9084, 0x00ff, 0x0968, 0x8001, 0x1120, 0x7007,\r
++      0x0001, 0x0804, 0x79a0, 0x7007, 0x0003, 0x7012, 0x2900, 0x7016,\r
++      0x701a, 0x704b, 0x79a0, 0x0005, 0xa864, 0x8007, 0x9084, 0x00ff,\r
++      0x0904, 0x780a, 0x8001, 0x1120, 0x7007, 0x0001, 0x0804, 0x79bc,\r
++      0x7007, 0x0003, 0x7012, 0x2900, 0x7016, 0x701a, 0x704b, 0x79bc,\r
++      0x0005, 0xa864, 0x8007, 0x9084, 0x00ff, 0x9086, 0x0001, 0x1904,\r
++      0x780a, 0x7007, 0x0001, 0x2009, 0x1834, 0x210c, 0x81ff, 0x11a8,\r
++      0xa868, 0x9084, 0x00ff, 0xa86a, 0xa883, 0x0000, 0x080c, 0x62ae,\r
++      0x1108, 0x0005, 0x0126, 0x2091, 0x8000, 0xa867, 0x0139, 0xa87a,\r
++      0xa982, 0x080c, 0x6c81, 0x012e, 0x0ca0, 0xa994, 0x9186, 0x0071,\r
++      0x0d38, 0x9186, 0x0064, 0x0d20, 0x9186, 0x007c, 0x0d08, 0x9186,\r
++      0x0028, 0x09f0, 0x9186, 0x0038, 0x09d8, 0x9186, 0x0078, 0x09c0,\r
++      0x9186, 0x005f, 0x09a8, 0x9186, 0x0056, 0x0990, 0xa897, 0x4005,\r
++      0xa89b, 0x0001, 0x2001, 0x0030, 0x900e, 0x08a0, 0xa87c, 0x9084,\r
++      0x00c0, 0x9086, 0x00c0, 0x1120, 0x7007, 0x0001, 0x0804, 0x7bb1,\r
++      0x2900, 0x7016, 0x701a, 0x20a9, 0x0004, 0xa860, 0x20e0, 0xa85c,\r
++      0x9080, 0x0030, 0x2098, 0x7050, 0x2040, 0xa060, 0x20e8, 0xa05c,\r
++      0x9080, 0x0023, 0x20a0, 0x4003, 0xa888, 0x7012, 0x9082, 0x0401,\r
++      0x1a04, 0x7812, 0xaab4, 0x928a, 0x0002, 0x1a04, 0x7812, 0x82ff,\r
++      0x1138, 0xa8b8, 0xa9bc, 0x9105, 0x0118, 0x2001, 0x7943, 0x0018,\r
++      0x9280, 0x7939, 0x2005, 0x7056, 0x7010, 0x9015, 0x0904, 0x7924,\r
++      0x080c, 0x1018, 0x1118, 0x7007, 0x0004, 0x0005, 0x2900, 0x7022,\r
++      0x7054, 0x2060, 0xe000, 0xa866, 0x7050, 0x2040, 0xa95c, 0xe004,\r
++      0x9100, 0xa076, 0xa860, 0xa072, 0xe008, 0x920a, 0x1210, 0x900e,\r
++      0x2200, 0x7112, 0xe20c, 0x8003, 0x800b, 0x9296, 0x0004, 0x0108,\r
++      0x9108, 0xa17a, 0x810b, 0xa17e, 0x080c, 0x10e9, 0xa06c, 0x908e,\r
++      0x0100, 0x0170, 0x9086, 0x0200, 0x0118, 0x7007, 0x0007, 0x0005,\r
++      0x7020, 0x2048, 0x080c, 0x1031, 0x7014, 0x2048, 0x0804, 0x7812,\r
++      0x7020, 0x2048, 0x7018, 0xa802, 0xa807, 0x0000, 0x2908, 0x2048,\r
++      0xa906, 0x711a, 0x0804, 0x78dc, 0x7014, 0x2048, 0x7007, 0x0001,\r
++      0xa8b4, 0x9005, 0x1128, 0xa8b8, 0xa9bc, 0x9105, 0x0108, 0x00b9,\r
++      0xa864, 0x9084, 0x00ff, 0x9086, 0x001e, 0x0904, 0x7bb1, 0x0804,\r
++      0x7985, 0x793b, 0x793f, 0x0002, 0x001d, 0x0007, 0x0004, 0x000a,\r
++      0x001b, 0x0005, 0x0006, 0x000a, 0x001d, 0x0005, 0x0004, 0x0076,\r
++      0x0066, 0xafb8, 0xaebc, 0xa804, 0x2050, 0xb0c0, 0xb0e2, 0xb0bc,\r
++      0xb0de, 0xb0b8, 0xb0d2, 0xb0b4, 0xb0ce, 0xb6da, 0xb7d6, 0xb0b0,\r
++      0xb0ca, 0xb0ac, 0xb0c6, 0xb0a8, 0xb0ba, 0xb0a4, 0xb0b6, 0xb6c2,\r
++      0xb7be, 0xb0a0, 0xb0b2, 0xb09c, 0xb0ae, 0xb098, 0xb0a2, 0xb094,\r
++      0xb09e, 0xb6aa, 0xb7a6, 0xb090, 0xb09a, 0xb08c, 0xb096, 0xb088,\r
++      0xb08a, 0xb084, 0xb086, 0xb692, 0xb78e, 0xb080, 0xb082, 0xb07c,\r
++      0xb07e, 0xb078, 0xb072, 0xb074, 0xb06e, 0xb67a, 0xb776, 0xb004,\r
++      0x9055, 0x1958, 0x006e, 0x007e, 0x0005, 0x2009, 0x1834, 0x210c,\r
++      0x81ff, 0x1178, 0x080c, 0x60ae, 0x1108, 0x0005, 0x080c, 0x6ec0,\r
++      0x0126, 0x2091, 0x8000, 0x080c, 0xce24, 0x080c, 0x6c81, 0x012e,\r
++      0x0ca0, 0x080c, 0xd229, 0x1d70, 0x2001, 0x0028, 0x900e, 0x0c70,\r
++      0x2009, 0x1834, 0x210c, 0x81ff, 0x1188, 0xa888, 0x9005, 0x0188,\r
++      0xa883, 0x0000, 0x080c, 0x613e, 0x1108, 0x0005, 0xa87a, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0x6c81, 0x012e, 0x0cb8, 0x2001, 0x0028,\r
++      0x0ca8, 0x2001, 0x0000, 0x0c90, 0x2009, 0x1834, 0x210c, 0x81ff,\r
++      0x11d8, 0xa888, 0x9005, 0x01e0, 0xa883, 0x0000, 0xa87c, 0xd0f4,\r
++      0x0120, 0x080c, 0x6210, 0x1138, 0x0005, 0x9006, 0xa87a, 0x080c,\r
++      0x618b, 0x1108, 0x0005, 0x0126, 0x2091, 0x8000, 0xa87a, 0xa982,\r
++      0x080c, 0x6c81, 0x012e, 0x0cb0, 0x2001, 0x0028, 0x900e, 0x0c98,\r
++      0x2001, 0x0000, 0x0c80, 0x7018, 0xa802, 0x2908, 0x2048, 0xa906,\r
++      0x711a, 0x7010, 0x8001, 0x7012, 0x0118, 0x7007, 0x0003, 0x0030,\r
++      0x7014, 0x2048, 0x7007, 0x0001, 0x7048, 0x080f, 0x0005, 0x00b6,\r
++      0x7007, 0x0001, 0xa974, 0xa878, 0x9084, 0x00ff, 0x9096, 0x0004,\r
++      0x0540, 0x20a9, 0x0001, 0x9096, 0x0001, 0x0190, 0x900e, 0x20a9,\r
++      0x0800, 0x9096, 0x0002, 0x0160, 0x9005, 0x11d8, 0xa974, 0x080c,\r
++      0x65ff, 0x11b8, 0x0066, 0xae80, 0x080c, 0x670f, 0x006e, 0x0088,\r
++      0x0046, 0x2011, 0x180c, 0x2224, 0xc484, 0x2412, 0x004e, 0x00c6,\r
++      0x080c, 0x65ff, 0x1110, 0x080c, 0x680f, 0x8108, 0x1f04, 0x7a20,\r
++      0x00ce, 0xa87c, 0xd084, 0x1120, 0x080c, 0x1031, 0x00be, 0x0005,\r
++      0x0126, 0x2091, 0x8000, 0x080c, 0x6c81, 0x012e, 0x00be, 0x0005,\r
++      0x0126, 0x2091, 0x8000, 0x7007, 0x0001, 0x080c, 0x696e, 0x0580,\r
++      0x2061, 0x1a71, 0x6100, 0xd184, 0x0178, 0xa888, 0x9084, 0x00ff,\r
++      0x1550, 0x6000, 0xd084, 0x0520, 0x6004, 0x9005, 0x1538, 0x6003,\r
++      0x0000, 0x600b, 0x0000, 0x00c8, 0x2011, 0x0001, 0xa890, 0x9005,\r
++      0x1110, 0x2001, 0x001e, 0x8000, 0x6016, 0xa888, 0x9084, 0x00ff,\r
++      0x0178, 0x6006, 0xa888, 0x8007, 0x9084, 0x00ff, 0x0148, 0x600a,\r
++      0xa888, 0x8000, 0x1108, 0xc28d, 0x6202, 0x012e, 0x0804, 0x7c7a,\r
++      0x012e, 0x0804, 0x7c74, 0x012e, 0x0804, 0x7c6e, 0x012e, 0x0804,\r
++      0x7c71, 0x0126, 0x2091, 0x8000, 0x7007, 0x0001, 0x080c, 0x696e,\r
++      0x05e0, 0x2061, 0x1a71, 0x6000, 0xd084, 0x05b8, 0x6204, 0x6308,\r
++      0xd08c, 0x1530, 0xac78, 0x9484, 0x0003, 0x0170, 0xa988, 0x918c,\r
++      0x00ff, 0x8001, 0x1120, 0x2100, 0x9210, 0x0620, 0x0028, 0x8001,\r
++      0x1508, 0x2100, 0x9212, 0x02f0, 0x9484, 0x000c, 0x0188, 0xa988,\r
++      0x810f, 0x918c, 0x00ff, 0x9082, 0x0004, 0x1120, 0x2100, 0x9318,\r
++      0x0288, 0x0030, 0x9082, 0x0004, 0x1168, 0x2100, 0x931a, 0x0250,\r
++      0xa890, 0x9005, 0x0110, 0x8000, 0x6016, 0x6206, 0x630a, 0x012e,\r
++      0x0804, 0x7c7a, 0x012e, 0x0804, 0x7c77, 0x012e, 0x0804, 0x7c74,\r
++      0x0126, 0x2091, 0x8000, 0x7007, 0x0001, 0x2061, 0x1a71, 0x6300,\r
++      0xd38c, 0x1120, 0x6308, 0x8318, 0x0220, 0x630a, 0x012e, 0x0804,\r
++      0x7c88, 0x012e, 0x0804, 0x7c77, 0x00b6, 0x0126, 0x00c6, 0x2091,\r
++      0x8000, 0x7007, 0x0001, 0xa87c, 0xd0ac, 0x0148, 0x00c6, 0x2061,\r
++      0x1a71, 0x6000, 0x9084, 0xfcff, 0x6002, 0x00ce, 0x0440, 0xa888,\r
++      0x9005, 0x05d8, 0xa88c, 0x9065, 0x0598, 0x2001, 0x1834, 0x2004,\r
++      0x9005, 0x0118, 0x080c, 0xae92, 0x0068, 0x6017, 0xf400, 0x605b,\r
++      0x0000, 0xa97c, 0xd1a4, 0x0110, 0xa980, 0x615a, 0x2009, 0x0041,\r
++      0x080c, 0xaedc, 0xa988, 0x918c, 0xff00, 0x9186, 0x2000, 0x1138,\r
++      0x0026, 0x900e, 0x2011, 0xfdff, 0x080c, 0x86dd, 0x002e, 0xa87c,\r
++      0xd0c4, 0x0148, 0x2061, 0x1a71, 0x6000, 0xd08c, 0x1120, 0x6008,\r
++      0x8000, 0x0208, 0x600a, 0x00ce, 0x012e, 0x00be, 0x0804, 0x7c7a,\r
++      0x00ce, 0x012e, 0x00be, 0x0804, 0x7c74, 0xa984, 0x9186, 0x002e,\r
++      0x0d30, 0x9186, 0x002d, 0x0d18, 0x9186, 0x0045, 0x0510, 0x9186,\r
++      0x002a, 0x1130, 0x2001, 0x180c, 0x200c, 0xc194, 0x2102, 0x08b8,\r
++      0x9186, 0x0020, 0x0158, 0x9186, 0x0029, 0x1d10, 0xa974, 0x080c,\r
++      0x65ff, 0x1968, 0xb800, 0xc0e4, 0xb802, 0x0848, 0xa88c, 0x9065,\r
++      0x09b8, 0x6007, 0x0024, 0x2001, 0x1986, 0x2004, 0x601a, 0x0804,\r
++      0x7b0f, 0xa88c, 0x9065, 0x0960, 0x00e6, 0xa890, 0x9075, 0x2001,\r
++      0x1834, 0x2004, 0x9005, 0x0150, 0x080c, 0xae92, 0x8eff, 0x0118,\r
++      0x2e60, 0x080c, 0xae92, 0x00ee, 0x0804, 0x7b0f, 0x6024, 0xc0dc,\r
++      0xc0d5, 0x6026, 0x2e60, 0x6007, 0x003a, 0xa8a0, 0x9005, 0x0130,\r
++      0x6007, 0x003b, 0xa8a4, 0x602e, 0xa8a8, 0x6016, 0x6003, 0x0001,\r
++      0x080c, 0x90f0, 0x080c, 0x968d, 0x00ee, 0x0804, 0x7b0f, 0x2061,\r
++      0x1a71, 0x6000, 0xd084, 0x0190, 0xd08c, 0x1904, 0x7c88, 0x0126,\r
++      0x2091, 0x8000, 0x6204, 0x8210, 0x0220, 0x6206, 0x012e, 0x0804,\r
++      0x7c88, 0x012e, 0xa883, 0x0016, 0x0804, 0x7c81, 0xa883, 0x0007,\r
++      0x0804, 0x7c81, 0xa864, 0x8007, 0x9084, 0x00ff, 0x0130, 0x8001,\r
++      0x1138, 0x7007, 0x0001, 0x0069, 0x0005, 0x080c, 0x780a, 0x0040,\r
++      0x7007, 0x0003, 0x7012, 0x2900, 0x7016, 0x701a, 0x704b, 0x7bb1,\r
++      0x0005, 0x00b6, 0x00e6, 0x0126, 0x2091, 0x8000, 0x903e, 0x2061,\r
++      0x1800, 0x61d0, 0x81ff, 0x1904, 0x7c33, 0x6130, 0xd194, 0x1904,\r
++      0x7c5d, 0xa878, 0x2070, 0x9e82, 0x1cd0, 0x0a04, 0x7c27, 0x6068,\r
++      0x9e02, 0x1a04, 0x7c27, 0x7120, 0x9186, 0x0006, 0x1904, 0x7c19,\r
++      0x7010, 0x905d, 0x0904, 0x7c33, 0xb800, 0xd0e4, 0x1904, 0x7c57,\r
++      0x2061, 0x1a71, 0x6100, 0x9184, 0x0301, 0x9086, 0x0001, 0x15a0,\r
++      0x7024, 0xd0dc, 0x1904, 0x7c60, 0xa883, 0x0000, 0xa803, 0x0000,\r
++      0x2908, 0x7014, 0x9005, 0x1198, 0x7116, 0xa87c, 0xd0f4, 0x1904,\r
++      0x7c63, 0x080c, 0x56cf, 0xd09c, 0x1118, 0xa87c, 0xc0cc, 0xa87e,\r
++      0x2e60, 0x080c, 0x85fd, 0x012e, 0x00ee, 0x00be, 0x0005, 0x2048,\r
++      0xa800, 0x9005, 0x1de0, 0xa902, 0x2148, 0xa87c, 0xd0f4, 0x1904,\r
++      0x7c63, 0x012e, 0x00ee, 0x00be, 0x0005, 0x012e, 0x00ee, 0xa883,\r
++      0x0006, 0x00be, 0x0804, 0x7c81, 0xd184, 0x0db8, 0xd1c4, 0x1190,\r
++      0x00a0, 0xa974, 0x080c, 0x65ff, 0x15d0, 0xb800, 0xd0e4, 0x15b8,\r
++      0x7120, 0x9186, 0x0007, 0x1118, 0xa883, 0x0002, 0x0490, 0xa883,\r
++      0x0008, 0x0478, 0xa883, 0x000e, 0x0460, 0xa883, 0x0017, 0x0448,\r
++      0xa883, 0x0035, 0x0430, 0x080c, 0x56d3, 0xd0fc, 0x01e8, 0xa878,\r
++      0x2070, 0x9e82, 0x1cd0, 0x02c0, 0x6068, 0x9e02, 0x12a8, 0x7120,\r
++      0x9186, 0x0006, 0x1188, 0x7010, 0x905d, 0x0170, 0xb800, 0xd0bc,\r
++      0x0158, 0x2039, 0x0001, 0x7000, 0x9086, 0x0007, 0x1904, 0x7bbd,\r
++      0x7003, 0x0002, 0x0804, 0x7bbd, 0xa883, 0x0028, 0x0010, 0xa883,\r
++      0x0029, 0x012e, 0x00ee, 0x00be, 0x0420, 0xa883, 0x002a, 0x0cc8,\r
++      0xa883, 0x0045, 0x0cb0, 0x2e60, 0x2019, 0x0002, 0x601b, 0x0014,\r
++      0x080c, 0xe134, 0x012e, 0x00ee, 0x00be, 0x0005, 0x2009, 0x003e,\r
++      0x0058, 0x2009, 0x0004, 0x0040, 0x2009, 0x0006, 0x0028, 0x2009,\r
++      0x0016, 0x0010, 0x2009, 0x0001, 0xa884, 0x9084, 0xff00, 0x9105,\r
++      0xa886, 0x0126, 0x2091, 0x8000, 0x080c, 0x6c81, 0x012e, 0x0005,\r
++      0x080c, 0x1031, 0x0005, 0x00d6, 0x080c, 0x85f4, 0x00de, 0x0005,\r
++      0x00d6, 0x00e6, 0x0126, 0x2091, 0x8000, 0x2071, 0x0040, 0x702c,\r
++      0xd084, 0x01d8, 0x908c, 0x0780, 0x190c, 0x7d72, 0xd09c, 0x11a8,\r
++      0x2071, 0x1800, 0x70c0, 0x90ea, 0x0020, 0x0278, 0x8001, 0x70c2,\r
++      0x702c, 0x2048, 0xa800, 0x702e, 0x9006, 0xa802, 0xa806, 0x2071,\r
++      0x0040, 0x2900, 0x7022, 0x702c, 0x0c28, 0x012e, 0x00ee, 0x00de,\r
++      0x0005, 0x0006, 0x9084, 0x0780, 0x190c, 0x7d72, 0x000e, 0x0005,\r
++      0xa898, 0x9084, 0x0003, 0x05a8, 0x080c, 0xae0b, 0x05d8, 0x2900,\r
++      0x6016, 0xa864, 0x9084, 0x00ff, 0x9086, 0x0035, 0x1138, 0x6008,\r
++      0xc0fd, 0x600a, 0x2001, 0x196b, 0x2004, 0x0098, 0xa8a0, 0x9084,\r
++      0x00ff, 0xa99c, 0x918c, 0xff00, 0x9105, 0xa99c, 0x918c, 0x00ff,\r
++      0x080c, 0x283e, 0x1540, 0x00b6, 0x080c, 0x65ff, 0x2b00, 0x00be,\r
++      0x1510, 0x6012, 0x6023, 0x0001, 0x2009, 0x0040, 0xa864, 0x9084,\r
++      0x00ff, 0x9086, 0x0035, 0x0110, 0x2009, 0x0041, 0x080c, 0xaedc,\r
++      0x0005, 0xa87b, 0x0101, 0x0126, 0x2091, 0x8000, 0x080c, 0x6c81,\r
++      0x012e, 0x0005, 0xa87b, 0x002c, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0x6c81, 0x012e, 0x0005, 0xa87b, 0x0028, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x6c81, 0x012e, 0x080c, 0xae61, 0x0005, 0x00d6, 0x00c6,\r
++      0x0036, 0x0026, 0x0016, 0x00b6, 0x7007, 0x0001, 0xaa74, 0x9282,\r
++      0x0004, 0x1a04, 0x7d63, 0xa97c, 0x9188, 0x1000, 0x2104, 0x905d,\r
++      0xb804, 0xd284, 0x0140, 0x05e8, 0x8007, 0x9084, 0x00ff, 0x9084,\r
++      0x0006, 0x1108, 0x04b0, 0x2b10, 0x080c, 0xae0b, 0x1118, 0x080c,\r
++      0xaeaf, 0x05a8, 0x6212, 0xa874, 0x0002, 0x7d41, 0x7d46, 0x7d49,\r
++      0x7d4f, 0x2019, 0x0002, 0x080c, 0xe522, 0x0060, 0x080c, 0xe4be,\r
++      0x0048, 0x2019, 0x0002, 0xa980, 0x080c, 0xe4d9, 0x0018, 0xa980,\r
++      0x080c, 0xe4be, 0x080c, 0xae61, 0xa887, 0x0000, 0x0126, 0x2091,\r
++      0x8000, 0x080c, 0x6c81, 0x012e, 0x00be, 0x001e, 0x002e, 0x003e,\r
++      0x00ce, 0x00de, 0x0005, 0xa887, 0x0006, 0x0c80, 0xa887, 0x0002,\r
++      0x0c68, 0xa887, 0x0005, 0x0c50, 0xa887, 0x0004, 0x0c38, 0xa887,\r
++      0x0007, 0x0c20, 0x2091, 0x8000, 0x0e04, 0x7d74, 0x0006, 0x0016,\r
++      0x2001, 0x8003, 0x0006, 0x0804, 0x0dde, 0x2001, 0x1834, 0x2004,\r
++      0x9005, 0x0005, 0x0005, 0x00f6, 0x2079, 0x0300, 0x2001, 0x0200,\r
++      0x200c, 0xc1e5, 0xc1dc, 0x2102, 0x2009, 0x0218, 0x210c, 0xd1ec,\r
++      0x1120, 0x080c, 0x157d, 0x00fe, 0x0005, 0x2001, 0x020d, 0x2003,\r
++      0x0020, 0x781f, 0x0300, 0x00fe, 0x0005, 0x781c, 0xd08c, 0x0904,\r
++      0x7df4, 0x68c0, 0x90aa, 0x0005, 0x0a04, 0x840b, 0x7d44, 0x7c40,\r
++      0x9584, 0x00f6, 0x1510, 0x9484, 0x7000, 0x0140, 0x908a, 0x2000,\r
++      0x1260, 0x9584, 0x0700, 0x8007, 0x0804, 0x7dfb, 0x7000, 0x9084,\r
++      0xff00, 0x9086, 0x8100, 0x0da8, 0x00b0, 0x9484, 0x0fff, 0x1130,\r
++      0x7000, 0x9084, 0xff00, 0x9086, 0x8100, 0x11c0, 0x080c, 0xe9c1,\r
++      0x080c, 0x8300, 0x7817, 0x0140, 0x00a8, 0x9584, 0x0076, 0x1118,\r
++      0x080c, 0x835e, 0x19c0, 0xd5a4, 0x0148, 0x0046, 0x0056, 0x080c,\r
++      0x7e56, 0x080c, 0x2337, 0x005e, 0x004e, 0x0020, 0x080c, 0xe9c1,\r
++      0x7817, 0x0140, 0x080c, 0x73bc, 0x0168, 0x2001, 0x0111, 0x2004,\r
++      0xd08c, 0x0140, 0x6893, 0x0000, 0x2001, 0x0110, 0x2003, 0x0008,\r
++      0x2003, 0x0000, 0x080c, 0x7e37, 0x2001, 0x19f0, 0x2004, 0x9005,\r
++      0x090c, 0x968d, 0x0005, 0x0002, 0x7e0d, 0x8122, 0x7e04, 0x7e04,\r
++      0x7e04, 0x7e04, 0x7e04, 0x7e04, 0x7817, 0x0140, 0x2001, 0x19f0,\r
++      0x2004, 0x9005, 0x090c, 0x968d, 0x0005, 0x7000, 0x908c, 0xff00,\r
++      0x9194, 0xf000, 0x810f, 0x9484, 0x0fff, 0x6892, 0x9286, 0x2000,\r
++      0x1150, 0x6800, 0x9086, 0x0001, 0x1118, 0x080c, 0x5730, 0x0070,\r
++      0x080c, 0x7e76, 0x0058, 0x9286, 0x3000, 0x1118, 0x080c, 0x805d,\r
++      0x0028, 0x9286, 0x8000, 0x1110, 0x080c, 0x8230, 0x7817, 0x0140,\r
++      0x2001, 0x19f0, 0x2004, 0x9005, 0x090c, 0x968d, 0x0005, 0x2001,\r
++      0x1810, 0x2004, 0xd08c, 0x0178, 0x2001, 0x1800, 0x2004, 0x9086,\r
++      0x0003, 0x1148, 0x0026, 0x0036, 0x2011, 0x8048, 0x2518, 0x080c,\r
++      0x4b04, 0x003e, 0x002e, 0x0005, 0x0036, 0x0046, 0x0056, 0x00f6,\r
++      0x2079, 0x0200, 0x2019, 0xfffe, 0x7c30, 0x0050, 0x0036, 0x0046,\r
++      0x0056, 0x00f6, 0x2079, 0x0200, 0x7d44, 0x7c40, 0x2019, 0xffff,\r
++      0x2001, 0x1810, 0x2004, 0xd08c, 0x0160, 0x2001, 0x1800, 0x2004,\r
++      0x9086, 0x0003, 0x1130, 0x0026, 0x2011, 0x8048, 0x080c, 0x4b04,\r
++      0x002e, 0x00fe, 0x005e, 0x004e, 0x003e, 0x0005, 0x00b6, 0x00c6,\r
++      0x7010, 0x9084, 0xff00, 0x8007, 0x9096, 0x0001, 0x0120, 0x9096,\r
++      0x0023, 0x1904, 0x802e, 0x9186, 0x0023, 0x15c0, 0x080c, 0x82c5,\r
++      0x0904, 0x802e, 0x6120, 0x9186, 0x0001, 0x0150, 0x9186, 0x0004,\r
++      0x0138, 0x9186, 0x0008, 0x0120, 0x9186, 0x000a, 0x1904, 0x802e,\r
++      0x7124, 0x610a, 0x7030, 0x908e, 0x0200, 0x1130, 0x2009, 0x0015,\r
++      0x080c, 0xaedc, 0x0804, 0x802e, 0x908e, 0x0214, 0x0118, 0x908e,\r
++      0x0210, 0x1130, 0x2009, 0x0015, 0x080c, 0xaedc, 0x0804, 0x802e,\r
++      0x908e, 0x0100, 0x1904, 0x802e, 0x7034, 0x9005, 0x1904, 0x802e,\r
++      0x2009, 0x0016, 0x080c, 0xaedc, 0x0804, 0x802e, 0x9186, 0x0022,\r
++      0x1904, 0x802e, 0x7030, 0x908e, 0x0300, 0x1580, 0x68dc, 0xd0a4,\r
++      0x0528, 0xc0b5, 0x68de, 0x7100, 0x918c, 0x00ff, 0x697e, 0x7004,\r
++      0x6882, 0x00f6, 0x2079, 0x0100, 0x79e6, 0x78ea, 0x0006, 0x9084,\r
++      0x00ff, 0x0016, 0x2008, 0x080c, 0x2887, 0x7932, 0x7936, 0x001e,\r
++      0x000e, 0x00fe, 0x080c, 0x283e, 0x695e, 0x703c, 0x00e6, 0x2071,\r
++      0x0140, 0x7086, 0x2071, 0x1800, 0x70b6, 0x00ee, 0x7034, 0x9005,\r
++      0x1904, 0x802e, 0x2009, 0x0017, 0x0804, 0x7fde, 0x908e, 0x0400,\r
++      0x1190, 0x7034, 0x9005, 0x1904, 0x802e, 0x080c, 0x73bc, 0x0120,\r
++      0x2009, 0x001d, 0x0804, 0x7fde, 0x68dc, 0xc0a5, 0x68de, 0x2009,\r
++      0x0030, 0x0804, 0x7fde, 0x908e, 0x0500, 0x1140, 0x7034, 0x9005,\r
++      0x1904, 0x802e, 0x2009, 0x0018, 0x0804, 0x7fde, 0x908e, 0x2010,\r
++      0x1120, 0x2009, 0x0019, 0x0804, 0x7fde, 0x908e, 0x2110, 0x1120,\r
++      0x2009, 0x001a, 0x0804, 0x7fde, 0x908e, 0x5200, 0x1140, 0x7034,\r
++      0x9005, 0x1904, 0x802e, 0x2009, 0x001b, 0x0804, 0x7fde, 0x908e,\r
++      0x5000, 0x1140, 0x7034, 0x9005, 0x1904, 0x802e, 0x2009, 0x001c,\r
++      0x0804, 0x7fde, 0x908e, 0x1300, 0x1120, 0x2009, 0x0034, 0x0804,\r
++      0x7fde, 0x908e, 0x1200, 0x1140, 0x7034, 0x9005, 0x1904, 0x802e,\r
++      0x2009, 0x0024, 0x0804, 0x7fde, 0x908c, 0xff00, 0x918e, 0x2400,\r
++      0x1170, 0x2009, 0x002d, 0x2001, 0x1810, 0x2004, 0xd09c, 0x0904,\r
++      0x7fde, 0x080c, 0xd905, 0x1904, 0x802e, 0x0804, 0x7fdc, 0x908c,\r
++      0xff00, 0x918e, 0x5300, 0x1120, 0x2009, 0x002a, 0x0804, 0x7fde,\r
++      0x908e, 0x0f00, 0x1120, 0x2009, 0x0020, 0x0804, 0x7fde, 0x908e,\r
++      0x6104, 0x1530, 0x2029, 0x0205, 0x2011, 0x026d, 0x8208, 0x2204,\r
++      0x9082, 0x0004, 0x8004, 0x8004, 0x20a8, 0x2011, 0x8015, 0x211c,\r
++      0x8108, 0x0046, 0x2124, 0x080c, 0x4b04, 0x004e, 0x8108, 0x0f04,\r
++      0x7f92, 0x9186, 0x0280, 0x1d88, 0x2504, 0x8000, 0x202a, 0x2009,\r
++      0x0260, 0x0c58, 0x202b, 0x0000, 0x2009, 0x0023, 0x0804, 0x7fde,\r
++      0x908e, 0x6000, 0x1120, 0x2009, 0x003f, 0x0804, 0x7fde, 0x908e,\r
++      0x5400, 0x1138, 0x080c, 0x83bb, 0x1904, 0x802e, 0x2009, 0x0046,\r
++      0x04a8, 0x908e, 0x5500, 0x1148, 0x080c, 0x83e3, 0x1118, 0x2009,\r
++      0x0041, 0x0460, 0x2009, 0x0042, 0x0448, 0x908e, 0x7800, 0x1118,\r
++      0x2009, 0x0045, 0x0418, 0x908e, 0x1000, 0x1118, 0x2009, 0x004e,\r
++      0x00e8, 0x908e, 0x6300, 0x1118, 0x2009, 0x004a, 0x00b8, 0x908c,\r
++      0xff00, 0x918e, 0x5600, 0x1118, 0x2009, 0x004f, 0x0078, 0x908c,\r
++      0xff00, 0x918e, 0x5700, 0x1118, 0x2009, 0x0050, 0x0038, 0x2009,\r
++      0x001d, 0x6838, 0xd0d4, 0x0110, 0x2009, 0x004c, 0x0016, 0x2011,\r
++      0x0263, 0x2204, 0x8211, 0x220c, 0x080c, 0x283e, 0x1904, 0x8031,\r
++      0x080c, 0x659e, 0x1904, 0x8031, 0xbe12, 0xbd16, 0x001e, 0x0016,\r
++      0x080c, 0x73bc, 0x01c0, 0x68dc, 0xd08c, 0x1148, 0x7000, 0x9084,\r
++      0x00ff, 0x1188, 0x7004, 0x9084, 0xff00, 0x1168, 0x0040, 0x687c,\r
++      0x9606, 0x1148, 0x6880, 0x9506, 0x9084, 0xff00, 0x1120, 0x9584,\r
++      0x00ff, 0xb8c2, 0x0080, 0xb8c0, 0x9005, 0x1168, 0x9186, 0x0046,\r
++      0x1150, 0x687c, 0x9606, 0x1138, 0x6880, 0x9506, 0x9084, 0xff00,\r
++      0x1110, 0x001e, 0x0098, 0x080c, 0xae0b, 0x01a8, 0x2b08, 0x6112,\r
++      0x6023, 0x0004, 0x7120, 0x610a, 0x001e, 0x9186, 0x004c, 0x1110,\r
++      0x6023, 0x000a, 0x0016, 0x001e, 0x080c, 0xaedc, 0x00ce, 0x00be,\r
++      0x0005, 0x001e, 0x0cd8, 0x2001, 0x180e, 0x2004, 0xd0ec, 0x0120,\r
++      0x2011, 0x8049, 0x080c, 0x4b04, 0x080c, 0xaeaf, 0x0d90, 0x2b08,\r
++      0x6112, 0x6023, 0x0004, 0x7120, 0x610a, 0x001e, 0x0016, 0x9186,\r
++      0x0017, 0x0118, 0x9186, 0x0030, 0x1128, 0x6007, 0x0009, 0x6017,\r
++      0x2900, 0x0020, 0x6007, 0x0051, 0x6017, 0x0000, 0x602f, 0x0009,\r
++      0x6003, 0x0001, 0x080c, 0x9138, 0x08a0, 0x080c, 0x32e3, 0x1140,\r
++      0x7010, 0x9084, 0xff00, 0x8007, 0x908e, 0x0008, 0x1108, 0x0009,\r
++      0x0005, 0x00b6, 0x00c6, 0x0046, 0x7000, 0x908c, 0xff00, 0x810f,\r
++      0x9186, 0x0033, 0x11e8, 0x080c, 0x82c5, 0x0904, 0x80ba, 0x7124,\r
++      0x610a, 0x7030, 0x908e, 0x0200, 0x1140, 0x7034, 0x9005, 0x15d0,\r
++      0x2009, 0x0015, 0x080c, 0xaedc, 0x04a8, 0x908e, 0x0100, 0x1590,\r
++      0x7034, 0x9005, 0x1578, 0x2009, 0x0016, 0x080c, 0xaedc, 0x0450,\r
++      0x9186, 0x0032, 0x1538, 0x7030, 0x908e, 0x1400, 0x1518, 0x2009,\r
++      0x0038, 0x0016, 0x2011, 0x0263, 0x2204, 0x8211, 0x220c, 0x080c,\r
++      0x283e, 0x11b8, 0x080c, 0x659e, 0x11a0, 0xbe12, 0xbd16, 0x080c,\r
++      0xae0b, 0x0178, 0x2b08, 0x6112, 0x080c, 0xcfaa, 0x6023, 0x0004,\r
++      0x7120, 0x610a, 0x001e, 0x080c, 0xaedc, 0x080c, 0x968d, 0x0010,\r
++      0x00ce, 0x001e, 0x004e, 0x00ce, 0x00be, 0x0005, 0x00b6, 0x0046,\r
++      0x00e6, 0x00d6, 0x2028, 0x2130, 0x9696, 0x00ff, 0x11b8, 0x9592,\r
++      0xfffc, 0x02a0, 0x9596, 0xfffd, 0x1120, 0x2009, 0x007f, 0x0804,\r
++      0x811c, 0x9596, 0xfffe, 0x1120, 0x2009, 0x007e, 0x0804, 0x811c,\r
++      0x9596, 0xfffc, 0x1118, 0x2009, 0x0080, 0x04f0, 0x2011, 0x0000,\r
++      0x2019, 0x1837, 0x231c, 0xd3ac, 0x0130, 0x9026, 0x20a9, 0x0800,\r
++      0x2071, 0x1000, 0x0030, 0x2021, 0x0081, 0x20a9, 0x077f, 0x2071,\r
++      0x1081, 0x2e1c, 0x93dd, 0x0000, 0x1140, 0x82ff, 0x11d0, 0x9496,\r
++      0x00ff, 0x01b8, 0x2410, 0xc2fd, 0x00a0, 0xbf10, 0x2600, 0x9706,\r
++      0xb814, 0x1120, 0x9546, 0x1110, 0x2408, 0x00b0, 0x9745, 0x1148,\r
++      0x94c6, 0x007e, 0x0130, 0x94c6, 0x007f, 0x0118, 0x94c6, 0x0080,\r
++      0x1d20, 0x8420, 0x8e70, 0x1f04, 0x80f1, 0x82ff, 0x1118, 0x9085,\r
++      0x0001, 0x0018, 0xc2fc, 0x2208, 0x9006, 0x00de, 0x00ee, 0x004e,\r
++      0x00be, 0x0005, 0x7000, 0x908c, 0xff00, 0x810f, 0x9184, 0x000f,\r
++      0x0002, 0x8139, 0x8139, 0x8139, 0x82d7, 0x8139, 0x8142, 0x816d,\r
++      0x81fb, 0x8139, 0x8139, 0x8139, 0x8139, 0x8139, 0x8139, 0x8139,\r
++      0x8139, 0x7817, 0x0140, 0x2001, 0x19f0, 0x2004, 0x9005, 0x090c,\r
++      0x968d, 0x0005, 0x00b6, 0x7110, 0xd1bc, 0x01e8, 0x7120, 0x2160,\r
++      0x9c8c, 0x0007, 0x11c0, 0x9c8a, 0x1cd0, 0x02a8, 0x6868, 0x9c02,\r
++      0x1290, 0x7008, 0x9084, 0x00ff, 0x6110, 0x2158, 0xb910, 0x9106,\r
++      0x1150, 0x700c, 0xb914, 0x9106, 0x1130, 0x7124, 0x610a, 0x2009,\r
++      0x0046, 0x080c, 0xaedc, 0x7817, 0x0140, 0x2001, 0x19f0, 0x2004,\r
++      0x9005, 0x090c, 0x968d, 0x00be, 0x0005, 0x00b6, 0x00c6, 0x9484,\r
++      0x0fff, 0x0904, 0x81d1, 0x7110, 0xd1bc, 0x1904, 0x81d1, 0x7108,\r
++      0x700c, 0x2028, 0x918c, 0x00ff, 0x2130, 0x9094, 0xff00, 0x15b0,\r
++      0x81ff, 0x15a0, 0x9080, 0x3325, 0x200d, 0x918c, 0xff00, 0x810f,\r
++      0x2001, 0x0080, 0x9106, 0x0904, 0x81d1, 0x080c, 0x659e, 0x1904,\r
++      0x81d1, 0xbe12, 0xbd16, 0xb800, 0xd0ec, 0x15d8, 0xba04, 0x9294,\r
++      0xff00, 0x9286, 0x0600, 0x11a0, 0x080c, 0xae0b, 0x05e8, 0x2b08,\r
++      0x7028, 0x604a, 0x702c, 0x6046, 0x6112, 0x6023, 0x0006, 0x7120,\r
++      0x610a, 0x7130, 0x6156, 0x2009, 0x0044, 0x080c, 0xdb63, 0x0408,\r
++      0x080c, 0x6972, 0x1138, 0xb807, 0x0606, 0x0c30, 0x190c, 0x80be,\r
++      0x11c0, 0x0898, 0x080c, 0xae0b, 0x2b08, 0x0198, 0x6112, 0x6023,\r
++      0x0004, 0x7120, 0x610a, 0x9286, 0x0400, 0x1118, 0x6007, 0x0005,\r
++      0x0010, 0x6007, 0x0001, 0x6003, 0x0001, 0x080c, 0x9138, 0x080c,\r
++      0x968d, 0x7817, 0x0140, 0x2001, 0x19f0, 0x2004, 0x9005, 0x090c,\r
++      0x968d, 0x00ce, 0x00be, 0x0005, 0x2001, 0x180e, 0x2004, 0xd0ec,\r
++      0x0120, 0x2011, 0x8049, 0x080c, 0x4b04, 0x080c, 0xaeaf, 0x0d48,\r
++      0x2b08, 0x6112, 0x6023, 0x0006, 0x7120, 0x610a, 0x7130, 0x6156,\r
++      0x6017, 0xf300, 0x6003, 0x0001, 0x6007, 0x0041, 0x080c, 0x90f0,\r
++      0x080c, 0x968d, 0x08b0, 0x00b6, 0x7110, 0xd1bc, 0x01e8, 0x7020,\r
++      0x2060, 0x9c84, 0x0007, 0x11c0, 0x9c82, 0x1cd0, 0x02a8, 0x6868,\r
++      0x9c02, 0x1290, 0x7008, 0x9084, 0x00ff, 0x6110, 0x2158, 0xb910,\r
++      0x9106, 0x1150, 0x700c, 0xb914, 0x9106, 0x1130, 0x7124, 0x610a,\r
++      0x2009, 0x0045, 0x080c, 0xaedc, 0x7817, 0x0140, 0x2001, 0x19f0,\r
++      0x2004, 0x9005, 0x090c, 0x968d, 0x00be, 0x0005, 0x6120, 0x9186,\r
++      0x0002, 0x0128, 0x9186, 0x0005, 0x0110, 0x9085, 0x0001, 0x0005,\r
++      0x080c, 0x32e3, 0x1168, 0x7010, 0x9084, 0xff00, 0x8007, 0x9086,\r
++      0x0000, 0x1130, 0x9184, 0x000f, 0x908a, 0x0006, 0x1208, 0x000b,\r
++      0x0005, 0x8247, 0x8248, 0x8247, 0x8247, 0x82a7, 0x82b6, 0x0005,\r
++      0x00b6, 0x7110, 0xd1bc, 0x0120, 0x702c, 0xd084, 0x0904, 0x82a5,\r
++      0x700c, 0x7108, 0x080c, 0x283e, 0x1904, 0x82a5, 0x080c, 0x659e,\r
++      0x1904, 0x82a5, 0xbe12, 0xbd16, 0x7110, 0xd1bc, 0x01d8, 0x080c,\r
++      0x6972, 0x0118, 0x9086, 0x0004, 0x1588, 0x00c6, 0x080c, 0x82c5,\r
++      0x00ce, 0x05d8, 0x080c, 0xae0b, 0x2b08, 0x05b8, 0x6112, 0x080c,\r
++      0xcfaa, 0x6023, 0x0002, 0x7120, 0x610a, 0x2009, 0x0088, 0x080c,\r
++      0xaedc, 0x0458, 0x080c, 0x6972, 0x0148, 0x9086, 0x0004, 0x0130,\r
++      0x080c, 0x697a, 0x0118, 0x9086, 0x0004, 0x1180, 0x080c, 0xae0b,\r
++      0x2b08, 0x01d8, 0x6112, 0x080c, 0xcfaa, 0x6023, 0x0005, 0x7120,\r
++      0x610a, 0x2009, 0x0088, 0x080c, 0xaedc, 0x0078, 0x080c, 0xae0b,\r
++      0x2b08, 0x0158, 0x6112, 0x080c, 0xcfaa, 0x6023, 0x0004, 0x7120,\r
++      0x610a, 0x2009, 0x0001, 0x080c, 0xaedc, 0x00be, 0x0005, 0x7110,\r
++      0xd1bc, 0x0158, 0x00d1, 0x0148, 0x080c, 0x8226, 0x1130, 0x7124,\r
++      0x610a, 0x2009, 0x0089, 0x080c, 0xaedc, 0x0005, 0x7110, 0xd1bc,\r
++      0x0158, 0x0059, 0x0148, 0x080c, 0x8226, 0x1130, 0x7124, 0x610a,\r
++      0x2009, 0x008a, 0x080c, 0xaedc, 0x0005, 0x7020, 0x2060, 0x9c84,\r
++      0x0007, 0x1158, 0x9c82, 0x1cd0, 0x0240, 0x2001, 0x181a, 0x2004,\r
++      0x9c02, 0x1218, 0x9085, 0x0001, 0x0005, 0x9006, 0x0ce8, 0x00b6,\r
++      0x7110, 0xd1bc, 0x11d8, 0x7024, 0x2060, 0x9c84, 0x0007, 0x11b0,\r
++      0x9c82, 0x1cd0, 0x0298, 0x6868, 0x9c02, 0x1280, 0x7008, 0x9084,\r
++      0x00ff, 0x6110, 0x2158, 0xb910, 0x9106, 0x1140, 0x700c, 0xb914,\r
++      0x9106, 0x1120, 0x2009, 0x0051, 0x080c, 0xaedc, 0x7817, 0x0140,\r
++      0x2001, 0x19f0, 0x2004, 0x9005, 0x090c, 0x968d, 0x00be, 0x0005,\r
++      0x2031, 0x0105, 0x0069, 0x0005, 0x2031, 0x0206, 0x0049, 0x0005,\r
++      0x2031, 0x0207, 0x0029, 0x0005, 0x2031, 0x0213, 0x0009, 0x0005,\r
++      0x00c6, 0x0096, 0x00f6, 0x7000, 0x9084, 0xf000, 0x9086, 0xc000,\r
++      0x05d0, 0x080c, 0xae0b, 0x05b8, 0x0066, 0x00c6, 0x0046, 0x2011,\r
++      0x0263, 0x2204, 0x8211, 0x220c, 0x080c, 0x283e, 0x15a0, 0x080c,\r
++      0x659e, 0x1588, 0xbe12, 0xbd16, 0x2b00, 0x004e, 0x00ce, 0x6012,\r
++      0x080c, 0xcfaa, 0x080c, 0x0fff, 0x0510, 0x2900, 0x605a, 0x9006,\r
++      0xa802, 0xa866, 0xac6a, 0xa85c, 0x90f8, 0x001b, 0x20a9, 0x000e,\r
++      0xa860, 0x20e8, 0x20e1, 0x0000, 0x2fa0, 0x2e98, 0x4003, 0x006e,\r
++      0x6616, 0x6007, 0x003e, 0x6023, 0x0001, 0x6003, 0x0001, 0x080c,\r
++      0x9138, 0x080c, 0x968d, 0x00fe, 0x009e, 0x00ce, 0x0005, 0x080c,\r
++      0xae61, 0x006e, 0x0cc0, 0x004e, 0x00ce, 0x0cc8, 0x00c6, 0x7000,\r
++      0x908c, 0xff00, 0x9184, 0xf000, 0x810f, 0x9086, 0x2000, 0x1904,\r
++      0x83b5, 0x9186, 0x0022, 0x15f0, 0x2001, 0x0111, 0x2004, 0x9005,\r
++      0x1904, 0x83b7, 0x7030, 0x908e, 0x0400, 0x0904, 0x83b7, 0x908e,\r
++      0x6000, 0x05e8, 0x908e, 0x5400, 0x05d0, 0x908e, 0x0300, 0x11d8,\r
++      0x2009, 0x1837, 0x210c, 0xd18c, 0x1590, 0xd1a4, 0x1580, 0x080c,\r
++      0x6930, 0x0558, 0x68b0, 0x9084, 0x00ff, 0x7100, 0x918c, 0x00ff,\r
++      0x9106, 0x1518, 0x6880, 0x69b0, 0x918c, 0xff00, 0x9105, 0x7104,\r
++      0x9106, 0x11d8, 0x00e0, 0x2009, 0x0103, 0x210c, 0xd1b4, 0x11a8,\r
++      0x908e, 0x5200, 0x09e8, 0x908e, 0x0500, 0x09d0, 0x908e, 0x5000,\r
++      0x09b8, 0x0058, 0x9186, 0x0023, 0x1140, 0x080c, 0x82c5, 0x0128,\r
++      0x6004, 0x9086, 0x0002, 0x0118, 0x0000, 0x9006, 0x0010, 0x9085,\r
++      0x0001, 0x00ce, 0x0005, 0x0156, 0x0046, 0x0016, 0x0036, 0x7038,\r
++      0x2020, 0x8427, 0x94a4, 0x0007, 0xd484, 0x0148, 0x20a9, 0x0004,\r
++      0x2019, 0x1805, 0x2011, 0x027a, 0x080c, 0xbe09, 0x1178, 0xd48c,\r
++      0x0148, 0x20a9, 0x0004, 0x2019, 0x1801, 0x2011, 0x027e, 0x080c,\r
++      0xbe09, 0x1120, 0xd494, 0x0110, 0x9085, 0x0001, 0x003e, 0x001e,\r
++      0x004e, 0x015e, 0x0005, 0x0156, 0x0046, 0x0016, 0x0036, 0x7038,\r
++      0x2020, 0x8427, 0x94a4, 0x0007, 0xd484, 0x0148, 0x20a9, 0x0004,\r
++      0x2019, 0x1805, 0x2011, 0x0272, 0x080c, 0xbe09, 0x1178, 0xd48c,\r
++      0x0148, 0x20a9, 0x0004, 0x2019, 0x1801, 0x2011, 0x0276, 0x080c,\r
++      0xbe09, 0x1120, 0xd494, 0x0110, 0x9085, 0x0001, 0x003e, 0x001e,\r
++      0x004e, 0x015e, 0x0005, 0x00f6, 0x2079, 0x0200, 0x7800, 0xc0e5,\r
++      0xc0cc, 0x7802, 0x00fe, 0x0005, 0x00f6, 0x2079, 0x1800, 0x7834,\r
++      0xd084, 0x1130, 0x2079, 0x0200, 0x7800, 0x9085, 0x1200, 0x7802,\r
++      0x00fe, 0x0005, 0x00e6, 0x2071, 0x1800, 0x7034, 0xc084, 0x7036,\r
++      0x00ee, 0x0005, 0x2071, 0x19fa, 0x7003, 0x0003, 0x700f, 0x0361,\r
++      0x9006, 0x701a, 0x7072, 0x7012, 0x7017, 0x1cd0, 0x7007, 0x0000,\r
++      0x7026, 0x702b, 0xa289, 0x7032, 0x7037, 0xa2f7, 0x703f, 0xffff,\r
++      0x7042, 0x7047, 0x556e, 0x704a, 0x705b, 0x8594, 0x080c, 0x1018,\r
++      0x090c, 0x0dd5, 0x2900, 0x703a, 0xa867, 0x0003, 0xa86f, 0x0100,\r
++      0xa8ab, 0xdcb0, 0x0005, 0x2071, 0x19fa, 0x1d04, 0x84e2, 0x2091,\r
++      0x6000, 0x700c, 0x8001, 0x700e, 0x1530, 0x2001, 0x013c, 0x2004,\r
++      0x9005, 0x190c, 0x85d9, 0x2001, 0x1869, 0x2004, 0xd0c4, 0x0158,\r
++      0x3a00, 0xd08c, 0x1140, 0x20d1, 0x0000, 0x20d1, 0x0001, 0x20d1,\r
++      0x0000, 0x080c, 0x0dd5, 0x700f, 0x0361, 0x7007, 0x0001, 0x0126,\r
++      0x2091, 0x8000, 0x7040, 0x900d, 0x0148, 0x8109, 0x7142, 0x1130,\r
++      0x7044, 0x080f, 0x0018, 0x0126, 0x2091, 0x8000, 0x7024, 0x900d,\r
++      0x0188, 0x7020, 0x8001, 0x7022, 0x1168, 0x7023, 0x0009, 0x8109,\r
++      0x7126, 0x9186, 0x03e8, 0x1110, 0x7028, 0x080f, 0x81ff, 0x1110,\r
++      0x7028, 0x080f, 0x7030, 0x900d, 0x0180, 0x702c, 0x8001, 0x702e,\r
++      0x1160, 0x702f, 0x0009, 0x8109, 0x7132, 0x0128, 0x9184, 0x007f,\r
++      0x090c, 0xa418, 0x0010, 0x7034, 0x080f, 0x703c, 0x9005, 0x0118,\r
++      0x0310, 0x8001, 0x703e, 0x704c, 0x900d, 0x0168, 0x7048, 0x8001,\r
++      0x704a, 0x1148, 0x704b, 0x0009, 0x8109, 0x714e, 0x1120, 0x7150,\r
++      0x714e, 0x7058, 0x080f, 0x7018, 0x900d, 0x01d8, 0x0016, 0x7070,\r
++      0x900d, 0x0158, 0x706c, 0x8001, 0x706e, 0x1138, 0x706f, 0x0009,\r
++      0x8109, 0x7172, 0x1110, 0x7074, 0x080f, 0x001e, 0x7008, 0x8001,\r
++      0x700a, 0x1138, 0x700b, 0x0009, 0x8109, 0x711a, 0x1110, 0x701c,\r
++      0x080f, 0x012e, 0x7004, 0x0002, 0x850a, 0x850b, 0x8527, 0x00e6,\r
++      0x2071, 0x19fa, 0x7018, 0x9005, 0x1120, 0x711a, 0x721e, 0x700b,\r
++      0x0009, 0x00ee, 0x0005, 0x00e6, 0x0006, 0x2071, 0x19fa, 0x701c,\r
++      0x9206, 0x1120, 0x701a, 0x701e, 0x7072, 0x7076, 0x000e, 0x00ee,\r
++      0x0005, 0x00e6, 0x2071, 0x19fa, 0xb888, 0x9102, 0x0208, 0xb98a,\r
++      0x00ee, 0x0005, 0x0005, 0x00b6, 0x7110, 0x080c, 0x65ff, 0x1168,\r
++      0xb888, 0x8001, 0x0250, 0xb88a, 0x1140, 0x0126, 0x2091, 0x8000,\r
++      0x0016, 0x080c, 0x968d, 0x001e, 0x012e, 0x8108, 0x9182, 0x0800,\r
++      0x0218, 0x900e, 0x7007, 0x0002, 0x7112, 0x00be, 0x0005, 0x7014,\r
++      0x2060, 0x0126, 0x2091, 0x8000, 0x6040, 0x9005, 0x0128, 0x8001,\r
++      0x6042, 0x1110, 0x080c, 0xce3b, 0x6018, 0x9005, 0x0558, 0x8001,\r
++      0x601a, 0x1540, 0x6120, 0x9186, 0x0003, 0x0148, 0x9186, 0x0006,\r
++      0x0130, 0x9186, 0x0009, 0x11e0, 0x611c, 0xd1c4, 0x1100, 0x080c,\r
++      0xcb35, 0x01b0, 0x6014, 0x2048, 0xa884, 0x908a, 0x199a, 0x0280,\r
++      0x9082, 0x1999, 0xa886, 0x908a, 0x199a, 0x0210, 0x2001, 0x1999,\r
++      0x8003, 0x800b, 0x810b, 0x9108, 0x611a, 0xa87c, 0xd0e4, 0x0110,\r
++      0x080c, 0xc833, 0x012e, 0x9c88, 0x0018, 0x7116, 0x2001, 0x181a,\r
++      0x2004, 0x9102, 0x0220, 0x7017, 0x1cd0, 0x7007, 0x0000, 0x0005,\r
++      0x00e6, 0x2071, 0x19fa, 0x7027, 0x07d0, 0x7023, 0x0009, 0x00ee,\r
++      0x0005, 0x2001, 0x1a03, 0x2003, 0x0000, 0x0005, 0x00e6, 0x2071,\r
++      0x19fa, 0x7132, 0x702f, 0x0009, 0x00ee, 0x0005, 0x2011, 0x1a06,\r
++      0x2013, 0x0000, 0x0005, 0x00e6, 0x2071, 0x19fa, 0x711a, 0x721e,\r
++      0x700b, 0x0009, 0x00ee, 0x0005, 0x0086, 0x0026, 0x7054, 0x8000,\r
++      0x7056, 0x2001, 0x1a08, 0x2044, 0xa06c, 0x9086, 0x0000, 0x0150,\r
++      0x7068, 0xa09a, 0x7064, 0xa096, 0x7060, 0xa092, 0x705c, 0xa08e,\r
++      0x080c, 0x10e9, 0x002e, 0x008e, 0x0005, 0x0006, 0x0016, 0x0096,\r
++      0x00a6, 0x00b6, 0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x0156, 0x080c,\r
++      0x8453, 0x015e, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be, 0x00ae,\r
++      0x009e, 0x001e, 0x000e, 0x0005, 0x00e6, 0x2071, 0x19fa, 0x7172,\r
++      0x7276, 0x706f, 0x0009, 0x00ee, 0x0005, 0x00e6, 0x0006, 0x2071,\r
++      0x19fa, 0x7074, 0x9206, 0x1110, 0x7072, 0x7076, 0x000e, 0x00ee,\r
++      0x0005, 0x0016, 0x00c6, 0x2009, 0xfffc, 0x210d, 0x2061, 0x0100,\r
++      0x60f0, 0x9100, 0x60f3, 0x0000, 0x2009, 0xfffc, 0x200f, 0x1220,\r
++      0x8108, 0x2105, 0x8000, 0x200f, 0x00ce, 0x001e, 0x0005, 0x00c6,\r
++      0x2061, 0x1a71, 0x00ce, 0x0005, 0x9184, 0x000f, 0x8003, 0x8003,\r
++      0x8003, 0x9080, 0x1a71, 0x2060, 0x0005, 0xa884, 0x908a, 0x199a,\r
++      0x1638, 0x9005, 0x1150, 0x00c6, 0x2061, 0x1a71, 0x6014, 0x00ce,\r
++      0x9005, 0x1130, 0x2001, 0x001e, 0x0018, 0x908e, 0xffff, 0x01b0,\r
++      0x8003, 0x800b, 0x810b, 0x9108, 0x611a, 0xa87c, 0x908c, 0x00c0,\r
++      0x918e, 0x00c0, 0x0904, 0x8687, 0xd0b4, 0x1168, 0xd0bc, 0x1904,\r
++      0x8660, 0x2009, 0x0006, 0x080c, 0x86b4, 0x0005, 0x900e, 0x0c60,\r
++      0x2001, 0x1999, 0x08b0, 0xd0fc, 0x0160, 0x908c, 0x0003, 0x0120,\r
++      0x918e, 0x0003, 0x1904, 0x86ae, 0x908c, 0x2020, 0x918e, 0x2020,\r
++      0x01a8, 0x6024, 0xd0d4, 0x11e8, 0x2009, 0x1869, 0x2104, 0xd084,\r
++      0x1138, 0x87ff, 0x1120, 0x2009, 0x0043, 0x0804, 0xaedc, 0x0005,\r
++      0x87ff, 0x1de8, 0x2009, 0x0042, 0x0804, 0xaedc, 0x6110, 0x00b6,\r
++      0x2158, 0xb900, 0x00be, 0xd1ac, 0x0d20, 0x6024, 0xc0cd, 0x6026,\r
++      0x0c00, 0xc0d4, 0x6026, 0xa890, 0x602e, 0xa88c, 0x6032, 0x08e0,\r
++      0xd0fc, 0x0160, 0x908c, 0x0003, 0x0120, 0x918e, 0x0003, 0x1904,\r
++      0x86ae, 0x908c, 0x2020, 0x918e, 0x2020, 0x0170, 0x0076, 0x00f6,\r
++      0x2c78, 0x080c, 0x1725, 0x00fe, 0x007e, 0x87ff, 0x1120, 0x2009,\r
++      0x0042, 0x080c, 0xaedc, 0x0005, 0x6110, 0x00b6, 0x2158, 0xb900,\r
++      0x00be, 0xd1ac, 0x0d58, 0x6124, 0xc1cd, 0x6126, 0x0c38, 0xd0fc,\r
++      0x0188, 0x908c, 0x2020, 0x918e, 0x2020, 0x01a8, 0x9084, 0x0003,\r
++      0x908e, 0x0002, 0x0148, 0x87ff, 0x1120, 0x2009, 0x0041, 0x080c,\r
++      0xaedc, 0x0005, 0x00b9, 0x0ce8, 0x87ff, 0x1dd8, 0x2009, 0x0043,\r
++      0x080c, 0xaedc, 0x0cb0, 0x6110, 0x00b6, 0x2158, 0xb900, 0x00be,\r
++      0xd1ac, 0x0d20, 0x6124, 0xc1cd, 0x6126, 0x0c00, 0x2009, 0x0004,\r
++      0x0019, 0x0005, 0x2009, 0x0001, 0x0096, 0x080c, 0xcb35, 0x0518,\r
++      0x6014, 0x2048, 0xa982, 0xa800, 0x6016, 0x9186, 0x0001, 0x1188,\r
++      0xa97c, 0x918c, 0x8100, 0x918e, 0x8100, 0x1158, 0x00c6, 0x2061,\r
++      0x1a71, 0x6200, 0xd28c, 0x1120, 0x6204, 0x8210, 0x0208, 0x6206,\r
++      0x00ce, 0x080c, 0x6abc, 0x6014, 0x904d, 0x0076, 0x2039, 0x0000,\r
++      0x190c, 0x85fd, 0x007e, 0x009e, 0x0005, 0x0156, 0x00c6, 0x2061,\r
++      0x1a71, 0x6000, 0x81ff, 0x0110, 0x9205, 0x0008, 0x9204, 0x6002,\r
++      0x00ce, 0x015e, 0x0005, 0x6800, 0xd08c, 0x1138, 0x6808, 0x9005,\r
++      0x0120, 0x8001, 0x680a, 0x9085, 0x0001, 0x0005, 0x2071, 0x1923,\r
++      0x7003, 0x0006, 0x7007, 0x0000, 0x700f, 0x0000, 0x7013, 0x0001,\r
++      0x080c, 0x1018, 0x090c, 0x0dd5, 0xa867, 0x0006, 0xa86b, 0x0001,\r
++      0xa8ab, 0xdcb0, 0xa89f, 0x0000, 0x2900, 0x702e, 0x7033, 0x0000,\r
++      0x0005, 0x0096, 0x00e6, 0x2071, 0x1923, 0x702c, 0x2048, 0x6a2c,\r
++      0x721e, 0x6b30, 0x7322, 0x6834, 0x7026, 0xa896, 0x6838, 0x702a,\r
++      0xa89a, 0x6824, 0x7016, 0x683c, 0x701a, 0x2009, 0x0028, 0x200a,\r
++      0x9005, 0x0148, 0x900e, 0x9188, 0x000c, 0x8001, 0x1de0, 0x2100,\r
++      0x9210, 0x1208, 0x8318, 0xaa8e, 0xab92, 0x7010, 0xd084, 0x0178,\r
++      0xc084, 0x7007, 0x0001, 0x700f, 0x0000, 0x0006, 0x2009, 0x181d,\r
++      0x2104, 0x9082, 0x0007, 0x2009, 0x1ac8, 0x200a, 0x000e, 0xc095,\r
++      0x7012, 0x2008, 0x2001, 0x003b, 0x080c, 0x15ee, 0x9006, 0x2071,\r
++      0x193c, 0x7002, 0x7006, 0x702a, 0x00ee, 0x009e, 0x0005, 0x00e6,\r
++      0x0126, 0x0156, 0x2091, 0x8000, 0x2071, 0x1800, 0x7154, 0x2001,\r
++      0x0008, 0x910a, 0x0638, 0x2001, 0x187d, 0x20ac, 0x9006, 0x9080,\r
++      0x0008, 0x1f04, 0x8767, 0x71c0, 0x9102, 0x02e0, 0x2071, 0x1877,\r
++      0x20a9, 0x0007, 0x00c6, 0x080c, 0xae0b, 0x6023, 0x0009, 0x6003,\r
++      0x0004, 0x601f, 0x0101, 0x0089, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0x88ed, 0x012e, 0x1f04, 0x8773, 0x9006, 0x00ce, 0x015e, 0x012e,\r
++      0x00ee, 0x0005, 0x9085, 0x0001, 0x0cc8, 0x00e6, 0x00b6, 0x0096,\r
++      0x0086, 0x0056, 0x0046, 0x0026, 0x7118, 0x720c, 0x7620, 0x7004,\r
++      0xd084, 0x1128, 0x2021, 0x0024, 0x2029, 0x0002, 0x0020, 0x2021,\r
++      0x002c, 0x2029, 0x000a, 0x080c, 0x0fff, 0x090c, 0x0dd5, 0x2900,\r
++      0x6016, 0x2058, 0xac66, 0x9006, 0xa802, 0xa806, 0xa86a, 0xa87a,\r
++      0xa8aa, 0xa887, 0x0005, 0xa87f, 0x0020, 0x7008, 0xa89a, 0x7010,\r
++      0xa89e, 0xae8a, 0xa8af, 0xffff, 0xa8b3, 0x0000, 0x8109, 0x0160,\r
++      0x080c, 0x0fff, 0x090c, 0x0dd5, 0xad66, 0x2b00, 0xa802, 0x2900,\r
++      0xb806, 0x2058, 0x8109, 0x1da0, 0x002e, 0x004e, 0x005e, 0x008e,\r
++      0x009e, 0x00be, 0x00ee, 0x0005, 0x2079, 0x0000, 0x2071, 0x1923,\r
++      0x7004, 0x004b, 0x700c, 0x0002, 0x87df, 0x87d8, 0x87d8, 0x0005,\r
++      0x87e9, 0x884a, 0x884a, 0x884a, 0x884b, 0x885c, 0x885c, 0x700c,\r
++      0x0cba, 0x0126, 0x2091, 0x8000, 0x78a0, 0x79a0, 0x9106, 0x0128,\r
++      0x78a0, 0x79a0, 0x9106, 0x1904, 0x883d, 0x2001, 0x0005, 0x2004,\r
++      0xd0bc, 0x0130, 0x2011, 0x0004, 0x2204, 0xc0c5, 0x2012, 0x0ca8,\r
++      0x012e, 0x7018, 0x910a, 0x1130, 0x7030, 0x9005, 0x05a8, 0x080c,\r
++      0x888b, 0x0490, 0x1210, 0x7114, 0x910a, 0x9192, 0x000a, 0x0210,\r
++      0x2009, 0x000a, 0x2001, 0x1888, 0x2014, 0x2001, 0x1935, 0x2004,\r
++      0x9100, 0x9202, 0x0e48, 0x080c, 0x89d7, 0x2200, 0x9102, 0x0208,\r
++      0x2208, 0x0096, 0x702c, 0x2048, 0xa873, 0x0001, 0xa976, 0x080c,\r
++      0x8ae0, 0x2100, 0xa87e, 0xa86f, 0x0000, 0x009e, 0x0126, 0x2091,\r
++      0x8000, 0x2009, 0x1a18, 0x2104, 0xc085, 0x200a, 0x700f, 0x0002,\r
++      0x012e, 0x080c, 0x1108, 0x1de8, 0x0005, 0x2001, 0x0005, 0x2004,\r
++      0xd0bc, 0x0130, 0x2011, 0x0004, 0x2204, 0xc0c5, 0x2012, 0x0ca8,\r
++      0x012e, 0x0005, 0x0005, 0x700c, 0x0002, 0x8850, 0x8853, 0x8852,\r
++      0x080c, 0x87e7, 0x0005, 0x8001, 0x700e, 0x0096, 0x702c, 0x2048,\r
++      0xa974, 0x009e, 0x0011, 0x0ca0, 0x0005, 0x0096, 0x702c, 0x2048,\r
++      0x7018, 0x9100, 0x7214, 0x921a, 0x1130, 0x701c, 0xa88e, 0x7020,\r
++      0xa892, 0x9006, 0x0068, 0x0006, 0x080c, 0x8ae0, 0x2100, 0xaa8c,\r
++      0x9210, 0xaa8e, 0x1220, 0xa890, 0x9081, 0x0000, 0xa892, 0x000e,\r
++      0x009e, 0x2f08, 0x9188, 0x0028, 0x200a, 0x701a, 0x0005, 0x00e6,\r
++      0x2071, 0x1923, 0x700c, 0x0002, 0x8889, 0x8889, 0x8887, 0x700f,\r
++      0x0001, 0x00ee, 0x0005, 0x0126, 0x2091, 0x8000, 0x7030, 0x9005,\r
++      0x0508, 0x2078, 0x7814, 0x2048, 0xae88, 0x00b6, 0x2059, 0x0000,\r
++      0x080c, 0x88f6, 0x00be, 0x01b0, 0x00e6, 0x2071, 0x193c, 0x080c,\r
++      0x893d, 0x00ee, 0x0178, 0x0096, 0x080c, 0x1018, 0x2900, 0x009e,\r
++      0x0148, 0xa8aa, 0x04b9, 0x0041, 0x2001, 0x1946, 0x2003, 0x0000,\r
++      0x012e, 0x08c8, 0x012e, 0x0005, 0x00d6, 0x00c6, 0x0086, 0x00a6,\r
++      0x2940, 0x2650, 0x2600, 0x9005, 0x0180, 0xa864, 0x9084, 0x000f,\r
++      0x2068, 0x9d88, 0x2090, 0x2165, 0x0056, 0x2029, 0x0000, 0x080c,\r
++      0x8a65, 0x080c, 0x2048, 0x1dd8, 0x005e, 0x00ae, 0x2001, 0x187f,\r
++      0x2004, 0xa88a, 0x080c, 0x1725, 0x781f, 0x0101, 0x7813, 0x0000,\r
++      0x0126, 0x2091, 0x8000, 0x080c, 0x894c, 0x012e, 0x008e, 0x00ce,\r
++      0x00de, 0x0005, 0x7030, 0x9005, 0x0138, 0x2078, 0x780c, 0x7032,\r
++      0x2001, 0x1946, 0x2003, 0x0001, 0x0005, 0x00e6, 0x2071, 0x1923,\r
++      0x7030, 0x600e, 0x2c00, 0x7032, 0x00ee, 0x0005, 0x00d6, 0x00c6,\r
++      0x0026, 0x9b80, 0x8bbf, 0x2005, 0x906d, 0x090c, 0x0dd5, 0x9b80,\r
++      0x8bb7, 0x2005, 0x9065, 0x090c, 0x0dd5, 0x6114, 0x2600, 0x9102,\r
++      0x0248, 0x6828, 0x9102, 0x02f0, 0x9085, 0x0001, 0x002e, 0x00ce,\r
++      0x00de, 0x0005, 0x6804, 0xd094, 0x0148, 0x6854, 0xd084, 0x1178,\r
++      0xc085, 0x6856, 0x2011, 0x8026, 0x080c, 0x4b04, 0x684c, 0x0096,\r
++      0x904d, 0x090c, 0x0dd5, 0xa804, 0x8000, 0xa806, 0x009e, 0x9006,\r
++      0x2030, 0x0c20, 0x6854, 0xd08c, 0x1d08, 0xc08d, 0x6856, 0x2011,\r
++      0x8025, 0x080c, 0x4b04, 0x684c, 0x0096, 0x904d, 0x090c, 0x0dd5,\r
++      0xa800, 0x8000, 0xa802, 0x009e, 0x0888, 0x7000, 0x2019, 0x0008,\r
++      0x8319, 0x7104, 0x9102, 0x1118, 0x2300, 0x9005, 0x0020, 0x0210,\r
++      0x9302, 0x0008, 0x8002, 0x0005, 0x00d6, 0x7814, 0x9005, 0x090c,\r
++      0x0dd5, 0x781c, 0x9084, 0x0101, 0x9086, 0x0101, 0x190c, 0x0dd5,\r
++      0x2069, 0x193c, 0x6804, 0x9080, 0x193e, 0x2f08, 0x2102, 0x6904,\r
++      0x8108, 0x9182, 0x0008, 0x0208, 0x900e, 0x6906, 0x9180, 0x193e,\r
++      0x2003, 0x0000, 0x00de, 0x0005, 0x0096, 0x00c6, 0x2060, 0x6014,\r
++      0x2048, 0xa8a8, 0x0096, 0x2048, 0x9005, 0x190c, 0x1031, 0x009e,\r
++      0xa8ab, 0x0000, 0x080c, 0x0fb1, 0x080c, 0xae61, 0x00ce, 0x009e,\r
++      0x0005, 0x6020, 0x9086, 0x0009, 0x1128, 0x601c, 0xd0c4, 0x0110,\r
++      0x9006, 0x0005, 0x9085, 0x0001, 0x0005, 0x6000, 0x9086, 0x0000,\r
++      0x0178, 0x6010, 0x9005, 0x0150, 0x00b6, 0x2058, 0x080c, 0x8cf2,\r
++      0x00be, 0x6013, 0x0000, 0x601b, 0x0000, 0x0010, 0x2c00, 0x0861,\r
++      0x0005, 0x2009, 0x1927, 0x210c, 0xd194, 0x0005, 0x00e6, 0x2071,\r
++      0x1923, 0x7110, 0xc194, 0xd19c, 0x1118, 0xc185, 0x7007, 0x0000,\r
++      0x7112, 0x2001, 0x003b, 0x080c, 0x15ee, 0x00ee, 0x0005, 0x0096,\r
++      0x00d6, 0x9006, 0x7006, 0x700e, 0x701a, 0x701e, 0x7022, 0x7016,\r
++      0x702a, 0x7026, 0x702f, 0x0000, 0x080c, 0x8b3f, 0x0170, 0x080c,\r
++      0x8b74, 0x0158, 0x2900, 0x7002, 0x700a, 0x701a, 0x7013, 0x0001,\r
++      0x701f, 0x000a, 0x00de, 0x009e, 0x0005, 0x900e, 0x0cd8, 0x00e6,\r
++      0x0096, 0x0086, 0x00d6, 0x00c6, 0x2071, 0x1930, 0x721c, 0x2100,\r
++      0x9202, 0x1618, 0x080c, 0x8b74, 0x090c, 0x0dd5, 0x7018, 0x9005,\r
++      0x1160, 0x2900, 0x7002, 0x700a, 0x701a, 0x9006, 0x7006, 0x700e,\r
++      0xa806, 0xa802, 0x7012, 0x701e, 0x0038, 0x2040, 0xa806, 0x2900,\r
++      0xa002, 0x701a, 0xa803, 0x0000, 0x7010, 0x8000, 0x7012, 0x701c,\r
++      0x9080, 0x000a, 0x701e, 0x721c, 0x08d0, 0x721c, 0x00ce, 0x00de,\r
++      0x008e, 0x009e, 0x00ee, 0x0005, 0x0096, 0x0156, 0x0136, 0x0146,\r
++      0x00e6, 0x0126, 0x2091, 0x8000, 0x2071, 0x1930, 0x7300, 0x831f,\r
++      0x831e, 0x831e, 0x9384, 0x003f, 0x20e8, 0x939c, 0xffc0, 0x9398,\r
++      0x0003, 0x7104, 0x080c, 0x8ae0, 0x810c, 0x2100, 0x9318, 0x8003,\r
++      0x2228, 0x2021, 0x0078, 0x9402, 0x9532, 0x0208, 0x2028, 0x2500,\r
++      0x8004, 0x20a8, 0x23a0, 0xa001, 0xa001, 0x4005, 0x2508, 0x080c,\r
++      0x8ae9, 0x2130, 0x7014, 0x9600, 0x7016, 0x2600, 0x711c, 0x9102,\r
++      0x701e, 0x7004, 0x9600, 0x2008, 0x9082, 0x000a, 0x1190, 0x7000,\r
++      0x2048, 0xa800, 0x9005, 0x1148, 0x2009, 0x0001, 0x0026, 0x080c,\r
++      0x89d7, 0x002e, 0x7000, 0x2048, 0xa800, 0x7002, 0x7007, 0x0000,\r
++      0x0008, 0x7106, 0x2500, 0x9212, 0x1904, 0x8a16, 0x012e, 0x00ee,\r
++      0x014e, 0x013e, 0x015e, 0x009e, 0x0005, 0x0016, 0x0026, 0x00e6,\r
++      0x0126, 0x2091, 0x8000, 0x9580, 0x8bb7, 0x2005, 0x9075, 0x090c,\r
++      0x0dd5, 0x080c, 0x8abb, 0x012e, 0x9580, 0x8bb3, 0x2005, 0x9075,\r
++      0x090c, 0x0dd5, 0x0156, 0x0136, 0x01c6, 0x0146, 0x01d6, 0x831f,\r
++      0x831e, 0x831e, 0x9384, 0x003f, 0x20e0, 0x9384, 0xffc0, 0x9100,\r
++      0x2098, 0xa860, 0x20e8, 0xa95c, 0x2c05, 0x9100, 0x20a0, 0x20a9,\r
++      0x0002, 0x4003, 0x2e0c, 0x2d00, 0x0002, 0x8aa5, 0x8aa5, 0x8aa7,\r
++      0x8aa5, 0x8aa7, 0x8aa5, 0x8aa5, 0x8aa5, 0x8aa5, 0x8aa5, 0x8aad,\r
++      0x8aa5, 0x8aad, 0x8aa5, 0x8aa5, 0x8aa5, 0x080c, 0x0dd5, 0x4104,\r
++      0x20a9, 0x0002, 0x4002, 0x4003, 0x0028, 0x20a9, 0x0002, 0x4003,\r
++      0x4104, 0x4003, 0x01de, 0x014e, 0x01ce, 0x013e, 0x015e, 0x00ee,\r
++      0x002e, 0x001e, 0x0005, 0x0096, 0x7014, 0x8001, 0x7016, 0x710c,\r
++      0x2110, 0x00f1, 0x810c, 0x9188, 0x0003, 0x7308, 0x8210, 0x9282,\r
++      0x000a, 0x1198, 0x7008, 0x2048, 0xa800, 0x9005, 0x0158, 0x0006,\r
++      0x080c, 0x8b83, 0x009e, 0xa807, 0x0000, 0x2900, 0x700a, 0x7010,\r
++      0x8001, 0x7012, 0x700f, 0x0000, 0x0008, 0x720e, 0x009e, 0x0005,\r
++      0x0006, 0x810b, 0x810b, 0x2100, 0x810b, 0x9100, 0x2008, 0x000e,\r
++      0x0005, 0x0006, 0x0026, 0x2100, 0x9005, 0x0158, 0x9092, 0x000c,\r
++      0x0240, 0x900e, 0x8108, 0x9082, 0x000c, 0x1de0, 0x002e, 0x000e,\r
++      0x0005, 0x900e, 0x0cd8, 0x2d00, 0x90b8, 0x0008, 0x690c, 0x6810,\r
++      0x2019, 0x0001, 0x2031, 0x8b29, 0x9112, 0x0220, 0x0118, 0x8318,\r
++      0x2208, 0x0cd0, 0x6808, 0x9005, 0x0108, 0x8318, 0x233a, 0x6804,\r
++      0xd084, 0x2300, 0x2021, 0x0001, 0x1150, 0x9082, 0x0003, 0x0967,\r
++      0x0a67, 0x8420, 0x9082, 0x0007, 0x0967, 0x0a67, 0x0cd0, 0x9082,\r
++      0x0002, 0x0967, 0x0a67, 0x8420, 0x9082, 0x0005, 0x0967, 0x0a67,\r
++      0x0cd0, 0x6c1a, 0x2d00, 0x90b8, 0x0007, 0x00e6, 0x2071, 0x1800,\r
++      0x7128, 0x6810, 0x2019, 0x0001, 0x910a, 0x0118, 0x0210, 0x8318,\r
++      0x0cd8, 0x2031, 0x8b3c, 0x0870, 0x6c16, 0x00ee, 0x0005, 0x0096,\r
++      0x0046, 0x0126, 0x2091, 0x8000, 0x2b00, 0x9080, 0x8bbb, 0x2005,\r
++      0x9005, 0x090c, 0x0dd5, 0x2004, 0x90a0, 0x000a, 0x080c, 0x1018,\r
++      0x01d0, 0x2900, 0x7026, 0xa803, 0x0000, 0xa807, 0x0000, 0x080c,\r
++      0x1018, 0x0188, 0x7024, 0xa802, 0xa807, 0x0000, 0x2900, 0x7026,\r
++      0x94a2, 0x000a, 0x0110, 0x0208, 0x0c90, 0x9085, 0x0001, 0x012e,\r
++      0x004e, 0x009e, 0x0005, 0x7024, 0x9005, 0x0dc8, 0x2048, 0xac00,\r
++      0x080c, 0x1031, 0x2400, 0x0cc0, 0x0126, 0x2091, 0x8000, 0x7024,\r
++      0x2048, 0x9005, 0x0130, 0xa800, 0x7026, 0xa803, 0x0000, 0xa807,\r
++      0x0000, 0x012e, 0x0005, 0x0126, 0x2091, 0x8000, 0x7024, 0xa802,\r
++      0x2900, 0x7026, 0x012e, 0x0005, 0x0096, 0x9e80, 0x0009, 0x2004,\r
++      0x9005, 0x0138, 0x2048, 0xa800, 0x0006, 0x080c, 0x1031, 0x000e,\r
++      0x0cb8, 0x009e, 0x0005, 0x0096, 0x7008, 0x9005, 0x0138, 0x2048,\r
++      0xa800, 0x0006, 0x080c, 0x1031, 0x000e, 0x0cb8, 0x9006, 0x7002,\r
++      0x700a, 0x7006, 0x700e, 0x701a, 0x701e, 0x7022, 0x702a, 0x7026,\r
++      0x702e, 0x009e, 0x0005, 0x1a64, 0x0000, 0x0000, 0x0000, 0x1930,\r
++      0x0000, 0x0000, 0x0000, 0x1888, 0x0000, 0x0000, 0x0000, 0x1877,\r
++      0x0000, 0x0000, 0x0000, 0x00e6, 0x00c6, 0x00b6, 0x00a6, 0xa8a8,\r
++      0x2040, 0x2071, 0x1877, 0x080c, 0x8cdd, 0xa067, 0x0023, 0x6010,\r
++      0x905d, 0x0904, 0x8cb2, 0xb814, 0xa06e, 0xb910, 0xa172, 0xb9a0,\r
++      0xa176, 0x2001, 0x0003, 0xa07e, 0xa834, 0xa082, 0xa07b, 0x0000,\r
++      0xa898, 0x9005, 0x0118, 0xa078, 0xc085, 0xa07a, 0x2858, 0x2031,\r
++      0x0018, 0xa068, 0x908a, 0x0019, 0x1a0c, 0x0dd5, 0x2020, 0x2050,\r
++      0x2940, 0xa864, 0x90bc, 0x00ff, 0x908c, 0x000f, 0x91e0, 0x2090,\r
++      0x2c65, 0x9786, 0x0024, 0x2c05, 0x1590, 0x908a, 0x0036, 0x1a0c,\r
++      0x0dd5, 0x9082, 0x001b, 0x0002, 0x8c1f, 0x8c1f, 0x8c21, 0x8c1f,\r
++      0x8c1f, 0x8c1f, 0x8c23, 0x8c1f, 0x8c1f, 0x8c1f, 0x8c25, 0x8c1f,\r
++      0x8c1f, 0x8c1f, 0x8c27, 0x8c1f, 0x8c1f, 0x8c1f, 0x8c29, 0x8c1f,\r
++      0x8c1f, 0x8c1f, 0x8c2b, 0x8c1f, 0x8c1f, 0x8c1f, 0x8c2d, 0x080c,\r
++      0x0dd5, 0xa180, 0x04b8, 0xa190, 0x04a8, 0xa1a0, 0x0498, 0xa1b0,\r
++      0x0488, 0xa1c0, 0x0478, 0xa1d0, 0x0468, 0xa1e0, 0x0458, 0x908a,\r
++      0x0034, 0x1a0c, 0x0dd5, 0x9082, 0x001b, 0x0002, 0x8c51, 0x8c4f,\r
++      0x8c4f, 0x8c4f, 0x8c4f, 0x8c4f, 0x8c53, 0x8c4f, 0x8c4f, 0x8c4f,\r
++      0x8c4f, 0x8c4f, 0x8c55, 0x8c4f, 0x8c4f, 0x8c4f, 0x8c4f, 0x8c4f,\r
++      0x8c57, 0x8c4f, 0x8c4f, 0x8c4f, 0x8c4f, 0x8c4f, 0x8c59, 0x080c,\r
++      0x0dd5, 0xa180, 0x0038, 0xa198, 0x0028, 0xa1b0, 0x0018, 0xa1c8,\r
++      0x0008, 0xa1e0, 0x2600, 0x0002, 0x8c75, 0x8c77, 0x8c79, 0x8c7b,\r
++      0x8c7d, 0x8c7f, 0x8c81, 0x8c83, 0x8c85, 0x8c87, 0x8c89, 0x8c8b,\r
++      0x8c8d, 0x8c8f, 0x8c91, 0x8c93, 0x8c95, 0x8c97, 0x8c99, 0x8c9b,\r
++      0x8c9d, 0x8c9f, 0x8ca1, 0x8ca3, 0x8ca5, 0x080c, 0x0dd5, 0xb9e2,\r
++      0x0468, 0xb9de, 0x0458, 0xb9da, 0x0448, 0xb9d6, 0x0438, 0xb9d2,\r
++      0x0428, 0xb9ce, 0x0418, 0xb9ca, 0x0408, 0xb9c6, 0x00f8, 0xb9c2,\r
++      0x00e8, 0xb9be, 0x00d8, 0xb9ba, 0x00c8, 0xb9b6, 0x00b8, 0xb9b2,\r
++      0x00a8, 0xb9ae, 0x0098, 0xb9aa, 0x0088, 0xb9a6, 0x0078, 0xb9a2,\r
++      0x0068, 0xb99e, 0x0058, 0xb99a, 0x0048, 0xb996, 0x0038, 0xb992,\r
++      0x0028, 0xb98e, 0x0018, 0xb98a, 0x0008, 0xb986, 0x8631, 0x8421,\r
++      0x0120, 0x080c, 0x2048, 0x0804, 0x8bf9, 0x00ae, 0x00be, 0x00ce,\r
++      0x00ee, 0x0005, 0xa86c, 0xa06e, 0xa870, 0xa072, 0xa077, 0x00ff,\r
++      0x9006, 0x0804, 0x8bdb, 0x0006, 0x0016, 0x00b6, 0x6010, 0x2058,\r
++      0xb810, 0x9005, 0x01b0, 0x2001, 0x1924, 0x2004, 0x9005, 0x0188,\r
++      0x2001, 0x1800, 0x2004, 0x9086, 0x0003, 0x1158, 0x0036, 0x0046,\r
++      0xbba0, 0x2021, 0x0004, 0x2011, 0x8014, 0x080c, 0x4b04, 0x004e,\r
++      0x003e, 0x00be, 0x001e, 0x000e, 0x0005, 0x9016, 0x710c, 0xa834,\r
++      0x910a, 0xa936, 0x7008, 0x9005, 0x0120, 0x8210, 0x910a, 0x0238,\r
++      0x0130, 0x7010, 0x8210, 0x910a, 0x0210, 0x0108, 0x0cd8, 0xaa8a,\r
++      0xa26a, 0x0005, 0x00f6, 0x00d6, 0x0036, 0x2079, 0x0300, 0x781b,\r
++      0x0200, 0x7818, 0xd094, 0x1dd8, 0x781b, 0x0202, 0xa001, 0xa001,\r
++      0x7818, 0xd094, 0x1da0, 0xb8ac, 0x9005, 0x01b8, 0x2068, 0x2079,\r
++      0x0000, 0x2c08, 0x911e, 0x1118, 0x680c, 0xb8ae, 0x0060, 0x9106,\r
++      0x0140, 0x2d00, 0x2078, 0x680c, 0x9005, 0x090c, 0x0dd5, 0x2068,\r
++      0x0cb0, 0x6b0c, 0x7b0e, 0x600f, 0x0000, 0x2079, 0x0300, 0x781b,\r
++      0x0200, 0x003e, 0x00de, 0x00fe, 0x0005, 0x00e6, 0x00d6, 0x0096,\r
++      0x00c6, 0x0036, 0x0126, 0x2091, 0x8000, 0x0156, 0x20a9, 0x01ff,\r
++      0x2071, 0x0300, 0x701b, 0x0200, 0x7018, 0xd094, 0x0110, 0x1f04,\r
++      0x8d32, 0x701b, 0x0202, 0xa001, 0xa001, 0x7018, 0xd094, 0x1d90,\r
++      0xb8ac, 0x9005, 0x01d0, 0x2060, 0x600c, 0xb8ae, 0x6003, 0x0004,\r
++      0x601b, 0x0000, 0x6013, 0x0000, 0x601f, 0x0101, 0x6014, 0x2048,\r
++      0xa88b, 0x0000, 0xa8a8, 0xa8ab, 0x0000, 0x904d, 0x090c, 0x0dd5,\r
++      0x080c, 0x1031, 0x080c, 0x88ed, 0x0c18, 0x2071, 0x0300, 0x701b,\r
++      0x0200, 0x015e, 0x012e, 0x003e, 0x00ce, 0x009e, 0x00de, 0x00ee,\r
++      0x0005, 0x00c6, 0x00b6, 0x0016, 0x0006, 0x0156, 0x080c, 0x283e,\r
++      0x015e, 0x11b0, 0x080c, 0x659e, 0x190c, 0x0dd5, 0x000e, 0x001e,\r
++      0xb912, 0xb816, 0x080c, 0xae0b, 0x0140, 0x2b00, 0x6012, 0x6023,\r
++      0x0001, 0x2009, 0x0001, 0x080c, 0xaedc, 0x00be, 0x00ce, 0x0005,\r
++      0x000e, 0x001e, 0x0cd0, 0x0066, 0x6000, 0x90b2, 0x0016, 0x1a0c,\r
++      0x0dd5, 0x0013, 0x006e, 0x0005, 0x8da4, 0x8da4, 0x8da4, 0x8da6,\r
++      0x8df7, 0x8da4, 0x8da4, 0x8da4, 0x8e5a, 0x8da4, 0x8e97, 0x8da4,\r
++      0x8da4, 0x8da4, 0x8da4, 0x8da4, 0x080c, 0x0dd5, 0x9182, 0x0040,\r
++      0x0002, 0x8db9, 0x8db9, 0x8db9, 0x8db9, 0x8db9, 0x8db9, 0x8db9,\r
++      0x8db9, 0x8db9, 0x8dbb, 0x8dd0, 0x8db9, 0x8db9, 0x8db9, 0x8db9,\r
++      0x8de3, 0x080c, 0x0dd5, 0x0096, 0x080c, 0x963d, 0x080c, 0x97b9,\r
++      0x6114, 0x2148, 0xa87b, 0x0000, 0x6010, 0x00b6, 0x2058, 0xb8bb,\r
++      0x0500, 0x00be, 0x080c, 0x6a87, 0x080c, 0xae61, 0x009e, 0x0005,\r
++      0x080c, 0x963d, 0x00d6, 0x6114, 0x080c, 0xcb35, 0x0130, 0x0096,\r
++      0x6114, 0x2148, 0x080c, 0x6c81, 0x009e, 0x00de, 0x080c, 0xae61,\r
++      0x080c, 0x97b9, 0x0005, 0x080c, 0x963d, 0x080c, 0x31bf, 0x6114,\r
++      0x0096, 0x2148, 0x080c, 0xcb35, 0x0120, 0xa87b, 0x0029, 0x080c,\r
++      0x6c81, 0x009e, 0x080c, 0xae61, 0x080c, 0x97b9, 0x0005, 0x601b,\r
++      0x0000, 0x9182, 0x0040, 0x0096, 0x0002, 0x8e12, 0x8e12, 0x8e12,\r
++      0x8e12, 0x8e12, 0x8e12, 0x8e12, 0x8e12, 0x8e14, 0x8e12, 0x8e12,\r
++      0x8e12, 0x8e56, 0x8e12, 0x8e12, 0x8e12, 0x8e12, 0x8e12, 0x8e12,\r
++      0x8e1a, 0x8e12, 0x080c, 0x0dd5, 0x6114, 0x2148, 0xa938, 0x918e,\r
++      0xffff, 0x05e0, 0x00e6, 0x6114, 0x2148, 0x080c, 0x8bc3, 0x0096,\r
++      0xa8a8, 0x2048, 0x080c, 0x6a1f, 0x009e, 0xa8ab, 0x0000, 0x6010,\r
++      0x9005, 0x0128, 0x00b6, 0x2058, 0x080c, 0x8cf2, 0x00be, 0xae88,\r
++      0x00b6, 0x2059, 0x0000, 0x080c, 0x88f6, 0x00be, 0x01e0, 0x2071,\r
++      0x193c, 0x080c, 0x893d, 0x01b8, 0x9086, 0x0001, 0x1128, 0x2001,\r
++      0x1946, 0x2004, 0x9005, 0x1178, 0x0096, 0x080c, 0x0fff, 0x2900,\r
++      0x009e, 0x0148, 0xa8aa, 0x00f6, 0x2c78, 0x080c, 0x88b4, 0x00fe,\r
++      0x00ee, 0x009e, 0x0005, 0x080c, 0x88ed, 0x0cd0, 0x080c, 0x8f04,\r
++      0x009e, 0x0005, 0x9182, 0x0040, 0x0096, 0x0002, 0x8e6e, 0x8e6e,\r
++      0x8e6e, 0x8e70, 0x8e6e, 0x8e6e, 0x8e6e, 0x8e95, 0x8e6e, 0x8e6e,\r
++      0x8e6e, 0x8e6e, 0x8e6e, 0x8e6e, 0x8e6e, 0x8e6e, 0x080c, 0x0dd5,\r
++      0x6003, 0x0003, 0x6106, 0x6014, 0x2048, 0xa8ac, 0xa846, 0xa8b0,\r
++      0xa84a, 0xa837, 0x0000, 0xa83b, 0x0000, 0xa884, 0x9092, 0x199a,\r
++      0x0210, 0x2001, 0x1999, 0x8003, 0x8013, 0x8213, 0x9210, 0x621a,\r
++      0x2c10, 0x080c, 0x1bad, 0x080c, 0x9155, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x97b9, 0x012e, 0x009e, 0x0005, 0x080c, 0x0dd5, 0x080c,\r
++      0x963d, 0x080c, 0x97b9, 0x6114, 0x2148, 0xa87b, 0x0000, 0x6010,\r
++      0x00b6, 0x2058, 0xb8bb, 0x0500, 0x00be, 0x080c, 0x6c81, 0x080c,\r
++      0xae61, 0x009e, 0x0005, 0x6000, 0x908a, 0x0016, 0x1a0c, 0x0dd5,\r
++      0x0096, 0x0013, 0x009e, 0x0005, 0x8ec4, 0x8ec4, 0x8ec4, 0x8ec6,\r
++      0x8ed7, 0x8ec4, 0x8ec4, 0x8ec4, 0x8ec4, 0x8ec4, 0x8ec4, 0x8ec4,\r
++      0x8ec4, 0x8ec4, 0x8ec4, 0x8ec4, 0x080c, 0x0dd5, 0x080c, 0xa7cc,\r
++      0x6114, 0x2148, 0xa87b, 0x0006, 0x6010, 0x00b6, 0x2058, 0xb8bb,\r
++      0x0500, 0x00be, 0x080c, 0x6c81, 0x080c, 0xae61, 0x0005, 0x0461,\r
++      0x0005, 0x6000, 0x908a, 0x0016, 0x1a0c, 0x0dd5, 0x0096, 0x0013,\r
++      0x009e, 0x0005, 0x8ef2, 0x8ef2, 0x8ef2, 0x8ef4, 0x8f04, 0x8ef2,\r
++      0x8ef2, 0x8ef2, 0x8ef2, 0x8ef2, 0x8ef2, 0x8ef2, 0x8ef2, 0x8ef2,\r
++      0x8ef2, 0x8ef2, 0x080c, 0x0dd5, 0x0036, 0x00e6, 0x2071, 0x19e7,\r
++      0x703c, 0x9c06, 0x1120, 0x2019, 0x0000, 0x080c, 0xa5b6, 0x080c,\r
++      0xa7cc, 0x00ee, 0x003e, 0x0005, 0x00f6, 0x00e6, 0x601b, 0x0000,\r
++      0x6014, 0x2048, 0x6010, 0x9005, 0x0128, 0x00b6, 0x2058, 0x080c,\r
++      0x8cf2, 0x00be, 0x2071, 0x193c, 0x080c, 0x893d, 0x0160, 0x2001,\r
++      0x187f, 0x2004, 0xa88a, 0x2031, 0x0000, 0x2c78, 0x080c, 0x88b4,\r
++      0x00ee, 0x00fe, 0x0005, 0x0096, 0xa88b, 0x0000, 0xa8a8, 0x2048,\r
++      0x080c, 0x1031, 0x009e, 0xa8ab, 0x0000, 0x080c, 0x88ed, 0x0c80,\r
++      0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\r
++      0x0000, 0x187a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\r
++      0x0126, 0x2091, 0x8000, 0x0036, 0x0046, 0x20a9, 0x0010, 0x9006,\r
++      0x8004, 0x2019, 0x0100, 0x231c, 0x93a6, 0x0008, 0x1118, 0x8086,\r
++      0x818e, 0x0020, 0x80f6, 0x3e00, 0x81f6, 0x3e08, 0x1208, 0x9200,\r
++      0x1f04, 0x8f49, 0x93a6, 0x0008, 0x1118, 0x8086, 0x818e, 0x0020,\r
++      0x80f6, 0x3e00, 0x81f6, 0x3e08, 0x004e, 0x003e, 0x012e, 0x0005,\r
++      0x0126, 0x2091, 0x8000, 0x0076, 0x0156, 0x20a9, 0x0010, 0x9005,\r
++      0x0510, 0x911a, 0x1600, 0x8213, 0x2039, 0x0100, 0x273c, 0x97be,\r
++      0x0008, 0x1110, 0x818d, 0x0010, 0x81f5, 0x3e08, 0x0228, 0x911a,\r
++      0x1220, 0x1f04, 0x8f73, 0x0028, 0x911a, 0x2308, 0x8210, 0x1f04,\r
++      0x8f73, 0x0006, 0x3200, 0x9084, 0xefff, 0x2080, 0x000e, 0x015e,\r
++      0x007e, 0x012e, 0x0005, 0x0006, 0x3200, 0x9085, 0x1000, 0x0ca8,\r
++      0x0126, 0x2091, 0x2800, 0x2079, 0x19e7, 0x012e, 0x00d6, 0x2069,\r
++      0x19e7, 0x6803, 0x0005, 0x0156, 0x0146, 0x01d6, 0x20e9, 0x0000,\r
++      0x2069, 0x0200, 0x080c, 0xab21, 0x0401, 0x080c, 0xab0c, 0x00e9,\r
++      0x080c, 0xab0f, 0x00d1, 0x080c, 0xab12, 0x00b9, 0x080c, 0xab15,\r
++      0x00a1, 0x080c, 0xab18, 0x0089, 0x080c, 0xab1b, 0x0071, 0x080c,\r
++      0xab1e, 0x0059, 0x01de, 0x014e, 0x015e, 0x2069, 0x0004, 0x2d04,\r
++      0x9085, 0x8001, 0x206a, 0x00de, 0x0005, 0x20a9, 0x0020, 0x20a1,\r
++      0x0240, 0x2001, 0x0000, 0x4004, 0x0005, 0x00c6, 0x6027, 0x0001,\r
++      0x7804, 0x9084, 0x0007, 0x0002, 0x8fe6, 0x900a, 0x9049, 0x8fec,\r
++      0x900a, 0x8fe6, 0x8fe4, 0x8fe4, 0x080c, 0x0dd5, 0x080c, 0x8579,\r
++      0x080c, 0x968d, 0x00ce, 0x0005, 0x62c0, 0x82ff, 0x1110, 0x00ce,\r
++      0x0005, 0x2011, 0x5e83, 0x080c, 0x84f3, 0x7828, 0x9092, 0x00c8,\r
++      0x1228, 0x8000, 0x782a, 0x080c, 0x5ec3, 0x0c88, 0x62c0, 0x080c,\r
++      0xac5d, 0x080c, 0x5e83, 0x7807, 0x0003, 0x7827, 0x0000, 0x782b,\r
++      0x0000, 0x0c28, 0x080c, 0x8579, 0x6220, 0xd2a4, 0x0160, 0x782b,\r
++      0x0000, 0x7824, 0x9065, 0x090c, 0x0dd5, 0x2009, 0x0013, 0x080c,\r
++      0xaedc, 0x00ce, 0x0005, 0x00c6, 0x7824, 0x9065, 0x090c, 0x0dd5,\r
++      0x7828, 0x9092, 0xc350, 0x12c0, 0x8000, 0x782a, 0x00ce, 0x080c,\r
++      0x2ba5, 0x0278, 0x00c6, 0x7924, 0x2160, 0x6010, 0x906d, 0x090c,\r
++      0x0dd5, 0x7807, 0x0000, 0x7827, 0x0000, 0x00ce, 0x080c, 0x968d,\r
++      0x0c00, 0x080c, 0xa24f, 0x08e8, 0x2011, 0x0130, 0x2214, 0x080c,\r
++      0xac5d, 0x080c, 0xe9fe, 0x2009, 0x0014, 0x080c, 0xaedc, 0x00ce,\r
++      0x0880, 0x2001, 0x1a03, 0x2003, 0x0000, 0x62c0, 0x82ff, 0x1160,\r
++      0x782b, 0x0000, 0x7824, 0x9065, 0x090c, 0x0dd5, 0x2009, 0x0013,\r
++      0x080c, 0xaf2e, 0x00ce, 0x0005, 0x00b6, 0x00c6, 0x00d6, 0x7824,\r
++      0x9005, 0x090c, 0x0dd5, 0x7828, 0x9092, 0xc350, 0x1648, 0x8000,\r
++      0x782a, 0x00de, 0x00ce, 0x00be, 0x080c, 0x2ba5, 0x02f0, 0x00b6,\r
++      0x00c6, 0x00d6, 0x781c, 0x905d, 0x090c, 0x0dd5, 0xb800, 0xc0dc,\r
++      0xb802, 0x7924, 0x2160, 0x080c, 0xae61, 0xb93c, 0x81ff, 0x090c,\r
++      0x0dd5, 0x8109, 0xb93e, 0x7807, 0x0000, 0x7827, 0x0000, 0x00de,\r
++      0x00ce, 0x00be, 0x080c, 0x968d, 0x0868, 0x080c, 0xa24f, 0x0850,\r
++      0x2011, 0x0130, 0x2214, 0x080c, 0xac5d, 0x080c, 0xe9fe, 0x7824,\r
++      0x9065, 0x2009, 0x0014, 0x080c, 0xaedc, 0x00de, 0x00ce, 0x00be,\r
++      0x0804, 0x905a, 0x00c6, 0x2001, 0x009b, 0x2004, 0xd0fc, 0x190c,\r
++      0x1eb4, 0x6024, 0x6027, 0x0002, 0xd0f4, 0x15b8, 0x62c8, 0x60c4,\r
++      0x9205, 0x1170, 0x783c, 0x9065, 0x0130, 0x2009, 0x0049, 0x080c,\r
++      0xaedc, 0x00ce, 0x0005, 0x2011, 0x1a06, 0x2013, 0x0000, 0x0cc8,\r
++      0x793c, 0x81ff, 0x0dc0, 0x7944, 0x9192, 0x7530, 0x1628, 0x8108,\r
++      0x7946, 0x793c, 0x9188, 0x0008, 0x210c, 0x918e, 0x0006, 0x1138,\r
++      0x6014, 0x9084, 0x1984, 0x9085, 0x0012, 0x6016, 0x0c10, 0x793c,\r
++      0x9188, 0x0008, 0x210c, 0x918e, 0x0009, 0x0d90, 0x6014, 0x9084,\r
++      0x1984, 0x9085, 0x0016, 0x6016, 0x08a0, 0x793c, 0x2160, 0x2009,\r
++      0x004a, 0x080c, 0xaedc, 0x0868, 0x7848, 0xc085, 0x784a, 0x0848,\r
++      0x0006, 0x0016, 0x00c6, 0x0126, 0x2091, 0x8000, 0x600f, 0x0000,\r
++      0x2c08, 0x2061, 0x19e7, 0x6020, 0x8000, 0x6022, 0x6010, 0x9005,\r
++      0x0148, 0x9080, 0x0003, 0x2102, 0x6112, 0x012e, 0x00ce, 0x001e,\r
++      0x000e, 0x0005, 0x6116, 0x6112, 0x0cc0, 0x00d6, 0x2069, 0x19e7,\r
++      0xb800, 0xd0d4, 0x0168, 0x6820, 0x8000, 0x6822, 0x9086, 0x0001,\r
++      0x1110, 0x2b00, 0x681e, 0x00de, 0x0804, 0x968d, 0x00de, 0x0005,\r
++      0xc0d5, 0xb802, 0x6818, 0x9005, 0x0168, 0xb856, 0xb85b, 0x0000,\r
++      0x0086, 0x0006, 0x2b00, 0x681a, 0x008e, 0xa05a, 0x008e, 0x2069,\r
++      0x19e7, 0x0c08, 0xb856, 0xb85a, 0x2b00, 0x681a, 0x681e, 0x08d8,\r
++      0x0006, 0x0016, 0x00c6, 0x0126, 0x2091, 0x8000, 0x600f, 0x0000,\r
++      0x2c08, 0x2061, 0x19e7, 0x6020, 0x8000, 0x6022, 0x6008, 0x9005,\r
++      0x0148, 0x9080, 0x0003, 0x2102, 0x610a, 0x012e, 0x00ce, 0x001e,\r
++      0x000e, 0x0005, 0x610e, 0x610a, 0x0cc0, 0x00c6, 0x600f, 0x0000,\r
++      0x2c08, 0x2061, 0x19e7, 0x6034, 0x9005, 0x0130, 0x9080, 0x0003,\r
++      0x2102, 0x6136, 0x00ce, 0x0005, 0x613a, 0x6136, 0x00ce, 0x0005,\r
++      0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x00b6, 0x0096, 0x0076, 0x0066,\r
++      0x0056, 0x0036, 0x0026, 0x0016, 0x0006, 0x0126, 0x902e, 0x2071,\r
++      0x19e7, 0x7638, 0x2660, 0x2678, 0x2091, 0x8000, 0x8cff, 0x0904,\r
++      0x91df, 0x6010, 0x2058, 0xb8a0, 0x9206, 0x1904, 0x91da, 0x87ff,\r
++      0x0120, 0x6054, 0x9106, 0x1904, 0x91da, 0x703c, 0x9c06, 0x1178,\r
++      0x0036, 0x2019, 0x0001, 0x080c, 0xa5b6, 0x7033, 0x0000, 0x9006,\r
++      0x703e, 0x7042, 0x7046, 0x704a, 0x003e, 0x2029, 0x0001, 0x7038,\r
++      0x9c36, 0x1110, 0x660c, 0x763a, 0x7034, 0x9c36, 0x1140, 0x2c00,\r
++      0x9f36, 0x0118, 0x2f00, 0x7036, 0x0010, 0x7037, 0x0000, 0x660c,\r
++      0x0066, 0x2c00, 0x9f06, 0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f,\r
++      0x0000, 0x080c, 0xcb35, 0x01c8, 0x6014, 0x2048, 0x6020, 0x9086,\r
++      0x0003, 0x1590, 0xa867, 0x0103, 0xab7a, 0xa877, 0x0000, 0x0016,\r
++      0x0036, 0x0076, 0x080c, 0xce24, 0x080c, 0xe908, 0x080c, 0x6c81,\r
++      0x007e, 0x003e, 0x001e, 0x080c, 0xcd1e, 0x080c, 0xae92, 0x00ce,\r
++      0x0804, 0x917e, 0x2c78, 0x600c, 0x2060, 0x0804, 0x917e, 0x85ff,\r
++      0x0120, 0x0036, 0x080c, 0x97b9, 0x003e, 0x012e, 0x000e, 0x001e,\r
++      0x002e, 0x003e, 0x005e, 0x006e, 0x007e, 0x009e, 0x00be, 0x00ce,\r
++      0x00de, 0x00ee, 0x00fe, 0x0005, 0x6020, 0x9086, 0x0006, 0x1158,\r
++      0x0016, 0x0036, 0x0076, 0x080c, 0xe908, 0x080c, 0xe551, 0x007e,\r
++      0x003e, 0x001e, 0x0890, 0x6020, 0x9086, 0x0009, 0x1168, 0xa87b,\r
++      0x0006, 0x0016, 0x0036, 0x0076, 0x080c, 0x6c81, 0x080c, 0xae61,\r
++      0x007e, 0x003e, 0x001e, 0x0818, 0x6020, 0x9086, 0x000a, 0x0904,\r
++      0x91c4, 0x0804, 0x91c2, 0x0006, 0x0066, 0x0096, 0x00c6, 0x00d6,\r
++      0x00f6, 0x9036, 0x0126, 0x2091, 0x8000, 0x2079, 0x19e7, 0x7838,\r
++      0x9065, 0x0904, 0x926b, 0x600c, 0x0006, 0x600f, 0x0000, 0x783c,\r
++      0x9c06, 0x1168, 0x0036, 0x2019, 0x0001, 0x080c, 0xa5b6, 0x7833,\r
++      0x0000, 0x901e, 0x7b3e, 0x7b42, 0x7b46, 0x7b4a, 0x003e, 0x080c,\r
++      0xcb35, 0x0520, 0x6014, 0x2048, 0x6020, 0x9086, 0x0003, 0x1568,\r
++      0x3e08, 0x918e, 0x0002, 0x1188, 0x6010, 0x9005, 0x0170, 0x00b6,\r
++      0x2058, 0xb800, 0x00be, 0xd0bc, 0x0140, 0x6040, 0x9005, 0x1180,\r
++      0x2001, 0x1988, 0x2004, 0x6042, 0x0058, 0xa867, 0x0103, 0xab7a,\r
++      0xa877, 0x0000, 0x080c, 0x6c75, 0x080c, 0xcd1e, 0x080c, 0xae92,\r
++      0x000e, 0x0804, 0x9228, 0x7e3a, 0x7e36, 0x012e, 0x00fe, 0x00de,\r
++      0x00ce, 0x009e, 0x006e, 0x000e, 0x0005, 0x6020, 0x9086, 0x0006,\r
++      0x1118, 0x080c, 0xe551, 0x0c50, 0x6020, 0x9086, 0x0009, 0x1130,\r
++      0xab7a, 0x080c, 0x6c81, 0x080c, 0xae61, 0x0c10, 0x6020, 0x9086,\r
++      0x000a, 0x09a8, 0x0890, 0x0016, 0x0026, 0x0086, 0x9046, 0x0099,\r
++      0x080c, 0x9374, 0x008e, 0x002e, 0x001e, 0x0005, 0x00f6, 0x0126,\r
++      0x2079, 0x19e7, 0x2091, 0x8000, 0x080c, 0x940b, 0x080c, 0x9499,\r
++      0x012e, 0x00fe, 0x0005, 0x00b6, 0x0096, 0x00f6, 0x00e6, 0x00d6,\r
++      0x00c6, 0x0066, 0x0016, 0x0006, 0x0126, 0x2091, 0x8000, 0x2071,\r
++      0x19e7, 0x7614, 0x2660, 0x2678, 0x8cff, 0x0904, 0x9339, 0x6010,\r
++      0x2058, 0xb8a0, 0x9206, 0x1904, 0x9334, 0x88ff, 0x0120, 0x6054,\r
++      0x9106, 0x1904, 0x9334, 0x7024, 0x9c06, 0x1558, 0x2069, 0x0100,\r
++      0x6820, 0xd0a4, 0x1508, 0x080c, 0x8579, 0x080c, 0xa273, 0x68c3,\r
++      0x0000, 0x080c, 0xa7bc, 0x7027, 0x0000, 0x0036, 0x2069, 0x0140,\r
++      0x6b04, 0x9384, 0x1000, 0x0138, 0x2001, 0x0100, 0x080c, 0x2cef,\r
++      0x9006, 0x080c, 0x2cef, 0x2069, 0x0100, 0x6824, 0xd084, 0x0110,\r
++      0x6827, 0x0001, 0x003e, 0x0028, 0x6003, 0x0009, 0x630a, 0x0804,\r
++      0x9334, 0x7014, 0x9c36, 0x1110, 0x660c, 0x7616, 0x7010, 0x9c36,\r
++      0x1140, 0x2c00, 0x9f36, 0x0118, 0x2f00, 0x7012, 0x0010, 0x7013,\r
++      0x0000, 0x660c, 0x0066, 0x2c00, 0x9f06, 0x0110, 0x7e0e, 0x0008,\r
++      0x2678, 0x600f, 0x0000, 0x6014, 0x2048, 0x080c, 0xcb35, 0x01e8,\r
++      0x6020, 0x9086, 0x0003, 0x1580, 0x080c, 0xcd3b, 0x1118, 0x080c,\r
++      0xb813, 0x0098, 0xa867, 0x0103, 0xab7a, 0xa877, 0x0000, 0x0016,\r
++      0x0036, 0x0086, 0x080c, 0xce24, 0x080c, 0xe908, 0x080c, 0x6c81,\r
++      0x008e, 0x003e, 0x001e, 0x080c, 0xcd1e, 0x080c, 0xae92, 0x080c,\r
++      0xa692, 0x00ce, 0x0804, 0x92b4, 0x2c78, 0x600c, 0x2060, 0x0804,\r
++      0x92b4, 0x012e, 0x000e, 0x001e, 0x006e, 0x00ce, 0x00de, 0x00ee,\r
++      0x00fe, 0x009e, 0x00be, 0x0005, 0x6020, 0x9086, 0x0006, 0x1158,\r
++      0x0016, 0x0036, 0x0086, 0x080c, 0xe908, 0x080c, 0xe551, 0x008e,\r
++      0x003e, 0x001e, 0x08d0, 0x080c, 0xb813, 0x6020, 0x9086, 0x0002,\r
++      0x1160, 0x6004, 0x0006, 0x9086, 0x0085, 0x000e, 0x0904, 0x931a,\r
++      0x9086, 0x008b, 0x0904, 0x931a, 0x0840, 0x6020, 0x9086, 0x0005,\r
++      0x1920, 0x6004, 0x0006, 0x9086, 0x0085, 0x000e, 0x09c8, 0x9086,\r
++      0x008b, 0x09b0, 0x0804, 0x932d, 0x00b6, 0x00a6, 0x0096, 0x00c6,\r
++      0x0006, 0x0126, 0x2091, 0x8000, 0x9280, 0x1000, 0x2004, 0x905d,\r
++      0x0904, 0x9404, 0x00f6, 0x00e6, 0x00d6, 0x0066, 0x2071, 0x19e7,\r
++      0xbe54, 0x7018, 0x9b06, 0x1108, 0x761a, 0x701c, 0x9b06, 0x1130,\r
++      0x86ff, 0x1118, 0x7018, 0x701e, 0x0008, 0x761e, 0xb858, 0x904d,\r
++      0x0108, 0xae56, 0x96d5, 0x0000, 0x0110, 0x2900, 0xb05a, 0xb857,\r
++      0x0000, 0xb85b, 0x0000, 0xb800, 0xc0d4, 0xc0dc, 0xb802, 0x080c,\r
++      0x6531, 0x0904, 0x9400, 0x7624, 0x86ff, 0x0904, 0x93ef, 0x9680,\r
++      0x0005, 0x2004, 0x9906, 0x15d8, 0x00d6, 0x2069, 0x0100, 0x68c0,\r
++      0x9005, 0x0560, 0x080c, 0x8579, 0x080c, 0xa273, 0x68c3, 0x0000,\r
++      0x080c, 0xa7bc, 0x7027, 0x0000, 0x0036, 0x2069, 0x0140, 0x6b04,\r
++      0x9384, 0x1000, 0x0138, 0x2001, 0x0100, 0x080c, 0x2cef, 0x9006,\r
++      0x080c, 0x2cef, 0x2069, 0x0100, 0x6824, 0xd084, 0x0110, 0x6827,\r
++      0x0001, 0x003e, 0x00de, 0x00c6, 0xb83c, 0x9005, 0x0110, 0x8001,\r
++      0xb83e, 0x2660, 0x080c, 0xae92, 0x00ce, 0x0048, 0x00de, 0x00c6,\r
++      0x2660, 0x6003, 0x0009, 0x630a, 0x00ce, 0x0804, 0x93a7, 0x89ff,\r
++      0x0158, 0xa867, 0x0103, 0xab7a, 0xa877, 0x0000, 0x080c, 0xce24,\r
++      0x080c, 0xe908, 0x080c, 0x6c81, 0x080c, 0xa692, 0x0804, 0x93a7,\r
++      0x006e, 0x00de, 0x00ee, 0x00fe, 0x012e, 0x000e, 0x00ce, 0x009e,\r
++      0x00ae, 0x00be, 0x0005, 0x0096, 0x0006, 0x0066, 0x00c6, 0x00d6,\r
++      0x9036, 0x7814, 0x9065, 0x0904, 0x946c, 0x600c, 0x0006, 0x600f,\r
++      0x0000, 0x7824, 0x9c06, 0x1570, 0x2069, 0x0100, 0x6820, 0xd0a4,\r
++      0x1508, 0x080c, 0x8579, 0x080c, 0xa273, 0x68c3, 0x0000, 0x080c,\r
++      0xa7bc, 0x7827, 0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0x9384,\r
++      0x1000, 0x0138, 0x2001, 0x0100, 0x080c, 0x2cef, 0x9006, 0x080c,\r
++      0x2cef, 0x2069, 0x0100, 0x6824, 0xd084, 0x0110, 0x6827, 0x0001,\r
++      0x003e, 0x0040, 0x080c, 0x690a, 0x1520, 0x6003, 0x0009, 0x630a,\r
++      0x2c30, 0x00f8, 0x6014, 0x2048, 0x080c, 0xcb33, 0x01b0, 0x6020,\r
++      0x9086, 0x0003, 0x1508, 0x080c, 0xcd3b, 0x1118, 0x080c, 0xb813,\r
++      0x0060, 0x080c, 0x690a, 0x1168, 0xa867, 0x0103, 0xab7a, 0xa877,\r
++      0x0000, 0x080c, 0x6c81, 0x080c, 0xcd1e, 0x080c, 0xae92, 0x080c,\r
++      0xa692, 0x000e, 0x0804, 0x9412, 0x7e16, 0x7e12, 0x00de, 0x00ce,\r
++      0x006e, 0x000e, 0x009e, 0x0005, 0x6020, 0x9086, 0x0006, 0x1118,\r
++      0x080c, 0xe551, 0x0c50, 0x080c, 0xb813, 0x6020, 0x9086, 0x0002,\r
++      0x1150, 0x6004, 0x0006, 0x9086, 0x0085, 0x000e, 0x0990, 0x9086,\r
++      0x008b, 0x0978, 0x08d0, 0x6020, 0x9086, 0x0005, 0x19b0, 0x6004,\r
++      0x0006, 0x9086, 0x0085, 0x000e, 0x0d18, 0x9086, 0x008b, 0x0d00,\r
++      0x0860, 0x0006, 0x0066, 0x0096, 0x00b6, 0x00c6, 0x00d6, 0x7818,\r
++      0x905d, 0x0904, 0x9519, 0xb854, 0x0006, 0x9006, 0xb856, 0xb85a,\r
++      0xb800, 0xc0d4, 0xc0dc, 0xb802, 0x080c, 0x6531, 0x0904, 0x9516,\r
++      0x7e24, 0x86ff, 0x0904, 0x9509, 0x9680, 0x0005, 0x2004, 0x9906,\r
++      0x1904, 0x9509, 0x00d6, 0x2069, 0x0100, 0x68c0, 0x9005, 0x0904,\r
++      0x9500, 0x080c, 0x8579, 0x080c, 0xa273, 0x68c3, 0x0000, 0x080c,\r
++      0xa7bc, 0x7827, 0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0x9384,\r
++      0x1000, 0x0138, 0x2001, 0x0100, 0x080c, 0x2cef, 0x9006, 0x080c,\r
++      0x2cef, 0x2069, 0x0100, 0x6824, 0xd084, 0x0110, 0x6827, 0x0001,\r
++      0x003e, 0x00de, 0x00c6, 0x3e08, 0x918e, 0x0002, 0x1168, 0xb800,\r
++      0xd0bc, 0x0150, 0x9680, 0x0010, 0x200c, 0x81ff, 0x1518, 0x2009,\r
++      0x1988, 0x210c, 0x2102, 0x00f0, 0xb83c, 0x9005, 0x0110, 0x8001,\r
++      0xb83e, 0x2660, 0x600f, 0x0000, 0x080c, 0xae92, 0x00ce, 0x0048,\r
++      0x00de, 0x00c6, 0x2660, 0x6003, 0x0009, 0x630a, 0x00ce, 0x0804,\r
++      0x94ac, 0x89ff, 0x0138, 0xa867, 0x0103, 0xab7a, 0xa877, 0x0000,\r
++      0x080c, 0x6c81, 0x080c, 0xa692, 0x0804, 0x94ac, 0x000e, 0x0804,\r
++      0x94a0, 0x781e, 0x781a, 0x00de, 0x00ce, 0x00be, 0x009e, 0x006e,\r
++      0x000e, 0x0005, 0x00e6, 0x00d6, 0x0096, 0x0066, 0xb800, 0xd0dc,\r
++      0x01a0, 0xb84c, 0x904d, 0x0188, 0xa878, 0x9606, 0x1170, 0x2071,\r
++      0x19e7, 0x7024, 0x9035, 0x0148, 0x9080, 0x0005, 0x2004, 0x9906,\r
++      0x1120, 0xb800, 0xc0dc, 0xb802, 0x0029, 0x006e, 0x009e, 0x00de,\r
++      0x00ee, 0x0005, 0x00f6, 0x2079, 0x0100, 0x78c0, 0x9005, 0x1138,\r
++      0x00c6, 0x2660, 0x6003, 0x0009, 0x630a, 0x00ce, 0x04b8, 0x080c,\r
++      0xa273, 0x78c3, 0x0000, 0x080c, 0xa7bc, 0x7027, 0x0000, 0x0036,\r
++      0x2079, 0x0140, 0x7b04, 0x9384, 0x1000, 0x0138, 0x2001, 0x0100,\r
++      0x080c, 0x2cef, 0x9006, 0x080c, 0x2cef, 0x2079, 0x0100, 0x7824,\r
++      0xd084, 0x0110, 0x7827, 0x0001, 0x080c, 0xa7bc, 0x003e, 0x080c,\r
++      0x6531, 0x00c6, 0xb83c, 0x9005, 0x0110, 0x8001, 0xb83e, 0x2660,\r
++      0x080c, 0xae61, 0x00ce, 0xa867, 0x0103, 0xab7a, 0xa877, 0x0000,\r
++      0x080c, 0xce24, 0x080c, 0x6c81, 0x080c, 0xa692, 0x00fe, 0x0005,\r
++      0x00b6, 0x00e6, 0x00c6, 0x2011, 0x0101, 0x2204, 0xc0c4, 0x2012,\r
++      0x2001, 0x180c, 0x2014, 0xc2e4, 0x2202, 0x2071, 0x19e7, 0x7004,\r
++      0x9084, 0x0007, 0x0002, 0x95a5, 0x95a9, 0x95c0, 0x95e9, 0x9627,\r
++      0x95a5, 0x95c0, 0x95a3, 0x080c, 0x0dd5, 0x00ce, 0x00ee, 0x00be,\r
++      0x0005, 0x7024, 0x9065, 0x0148, 0x7020, 0x8001, 0x7022, 0x600c,\r
++      0x9015, 0x0158, 0x7216, 0x600f, 0x0000, 0x7007, 0x0000, 0x7027,\r
++      0x0000, 0x00ce, 0x00ee, 0x00be, 0x0005, 0x7216, 0x7212, 0x0ca8,\r
++      0x6010, 0x2058, 0x080c, 0x6531, 0xb800, 0xc0dc, 0xb802, 0x7007,\r
++      0x0000, 0x7027, 0x0000, 0x7020, 0x8001, 0x7022, 0x1148, 0x2001,\r
++      0x180c, 0x2014, 0xd2ec, 0x1180, 0x00ce, 0x00ee, 0x00be, 0x0005,\r
++      0xb854, 0x9015, 0x0120, 0x721e, 0x080c, 0x968d, 0x0ca8, 0x7218,\r
++      0x721e, 0x080c, 0x968d, 0x0c80, 0xc2ec, 0x2202, 0x080c, 0x97b9,\r
++      0x0c58, 0x7024, 0x9065, 0x05b8, 0x700c, 0x9c06, 0x1160, 0x080c,\r
++      0xa692, 0x600c, 0x9015, 0x0120, 0x720e, 0x600f, 0x0000, 0x0448,\r
++      0x720e, 0x720a, 0x0430, 0x7014, 0x9c06, 0x1160, 0x080c, 0xa692,\r
++      0x600c, 0x9015, 0x0120, 0x7216, 0x600f, 0x0000, 0x00d0, 0x7216,\r
++      0x7212, 0x00b8, 0x6020, 0x9086, 0x0003, 0x1198, 0x6010, 0x2058,\r
++      0x080c, 0x6531, 0xb800, 0xc0dc, 0xb802, 0x080c, 0xa692, 0x701c,\r
++      0x9065, 0x0138, 0xb854, 0x9015, 0x0110, 0x721e, 0x0010, 0x7218,\r
++      0x721e, 0x7027, 0x0000, 0x00ce, 0x00ee, 0x00be, 0x0005, 0x7024,\r
++      0x9065, 0x0140, 0x080c, 0xa692, 0x600c, 0x9015, 0x0158, 0x720e,\r
++      0x600f, 0x0000, 0x080c, 0xa7bc, 0x7027, 0x0000, 0x00ce, 0x00ee,\r
++      0x00be, 0x0005, 0x720e, 0x720a, 0x0ca8, 0x00d6, 0x2069, 0x19e7,\r
++      0x6830, 0x9084, 0x0003, 0x0002, 0x964a, 0x964c, 0x9670, 0x9648,\r
++      0x080c, 0x0dd5, 0x00de, 0x0005, 0x00c6, 0x6840, 0x9086, 0x0001,\r
++      0x01b8, 0x683c, 0x9065, 0x0130, 0x600c, 0x9015, 0x0170, 0x6a3a,\r
++      0x600f, 0x0000, 0x6833, 0x0000, 0x683f, 0x0000, 0x2011, 0x1a06,\r
++      0x2013, 0x0000, 0x00ce, 0x00de, 0x0005, 0x683a, 0x6836, 0x0c90,\r
++      0x6843, 0x0000, 0x6838, 0x9065, 0x0d68, 0x6003, 0x0003, 0x0c50,\r
++      0x00c6, 0x9006, 0x6842, 0x6846, 0x684a, 0x683c, 0x9065, 0x0160,\r
++      0x600c, 0x9015, 0x0130, 0x6a3a, 0x600f, 0x0000, 0x683f, 0x0000,\r
++      0x0018, 0x683e, 0x683a, 0x6836, 0x00ce, 0x00de, 0x0005, 0x2001,\r
++      0x180c, 0x200c, 0xc1e5, 0x2102, 0x0005, 0x2001, 0x180c, 0x200c,\r
++      0xd1ec, 0x0120, 0xc1ec, 0x2102, 0x080c, 0x97b9, 0x2001, 0x19f3,\r
++      0x2004, 0x9086, 0x0001, 0x0d58, 0x00d6, 0x2069, 0x19e7, 0x6804,\r
++      0x9084, 0x0007, 0x0006, 0x9005, 0x11c8, 0x2001, 0x1837, 0x2004,\r
++      0x9084, 0x0028, 0x1198, 0x2001, 0x197c, 0x2004, 0x9086, 0xaaaa,\r
++      0x0168, 0x2001, 0x188b, 0x2004, 0xd08c, 0x1118, 0xd084, 0x1118,\r
++      0x0028, 0x080c, 0x97b9, 0x000e, 0x00de, 0x0005, 0x000e, 0x0002,\r
++      0x96ca, 0x9787, 0x9787, 0x9787, 0x9787, 0x9789, 0x9787, 0x96c8,\r
++      0x080c, 0x0dd5, 0x6820, 0x9005, 0x1110, 0x00de, 0x0005, 0x00c6,\r
++      0x680c, 0x9065, 0x0520, 0x6114, 0x0096, 0x2148, 0xa964, 0x009e,\r
++      0x918c, 0x00ff, 0x918e, 0x0035, 0x1180, 0x2009, 0x1837, 0x210c,\r
++      0x918c, 0x0028, 0x1150, 0x080c, 0x73bc, 0x0138, 0x0006, 0x2009,\r
++      0x188b, 0x2104, 0xc095, 0x200a, 0x000e, 0x6807, 0x0004, 0x6826,\r
++      0x682b, 0x0000, 0x080c, 0x9861, 0x00ce, 0x00de, 0x0005, 0x6814,\r
++      0x9065, 0x0150, 0x6807, 0x0001, 0x6826, 0x682b, 0x0000, 0x080c,\r
++      0x9861, 0x00ce, 0x00de, 0x0005, 0x00b6, 0x00e6, 0x6a1c, 0x92dd,\r
++      0x0000, 0x0904, 0x9773, 0xb84c, 0x900d, 0x0118, 0xb888, 0x9005,\r
++      0x01a0, 0xb854, 0x905d, 0x0120, 0x920e, 0x0904, 0x9773, 0x0028,\r
++      0x6818, 0x920e, 0x0904, 0x9773, 0x2058, 0xb84c, 0x900d, 0x0d88,\r
++      0xb888, 0x9005, 0x1d70, 0x2b00, 0x681e, 0xbb3c, 0xb838, 0x9302,\r
++      0x1e40, 0x080c, 0xae38, 0x0904, 0x9773, 0x8318, 0xbb3e, 0x6116,\r
++      0x2b10, 0x6212, 0x0096, 0x2148, 0xa880, 0x9084, 0x00ff, 0x605e,\r
++      0xa883, 0x0000, 0xa884, 0x009e, 0x908a, 0x199a, 0x0210, 0x2001,\r
++      0x1999, 0x8003, 0x801b, 0x831b, 0x9318, 0x631a, 0x6114, 0x0096,\r
++      0x2148, 0xa964, 0x009e, 0x918c, 0x00ff, 0x918e, 0x0048, 0x0538,\r
++      0x00f6, 0x2c78, 0x2061, 0x0100, 0xbac0, 0x629a, 0x2069, 0x0200,\r
++      0x2071, 0x0240, 0x080c, 0x9dae, 0x2069, 0x19e7, 0xbb00, 0xc3dd,\r
++      0xbb02, 0x6807, 0x0002, 0x2f18, 0x6b26, 0x682b, 0x0000, 0x7823,\r
++      0x0003, 0x7803, 0x0001, 0x7807, 0x0040, 0x00fe, 0x00ee, 0x00be,\r
++      0x00ce, 0x00de, 0x0005, 0x00ee, 0x00be, 0x00ce, 0x0cd0, 0xbb00,\r
++      0xc3dd, 0xbb02, 0x6807, 0x0006, 0x2f18, 0x6b26, 0x682b, 0x0000,\r
++      0x080c, 0xac7d, 0x00ee, 0x00be, 0x00ce, 0x00de, 0x0005, 0x00de,\r
++      0x0005, 0x00c6, 0x680c, 0x9065, 0x0508, 0x6114, 0x0096, 0x2148,\r
++      0xa964, 0x009e, 0x918c, 0x00ff, 0x918e, 0x0035, 0x1180, 0x2009,\r
++      0x1837, 0x210c, 0x918c, 0x0028, 0x1150, 0x080c, 0x73bc, 0x0138,\r
++      0x0006, 0x2009, 0x188b, 0x2104, 0xc095, 0x200a, 0x000e, 0x6807,\r
++      0x0004, 0x6826, 0x682b, 0x0000, 0x080c, 0x9861, 0x00ce, 0x00de,\r
++      0x0005, 0x2001, 0x180c, 0x2014, 0xc2ed, 0x2202, 0x00de, 0x00fe,\r
++      0x0005, 0x00f6, 0x00d6, 0x2069, 0x19e7, 0x6830, 0x9086, 0x0000,\r
++      0x1570, 0x2001, 0x180c, 0x2014, 0xd2e4, 0x0130, 0xc2e4, 0x2202,\r
++      0x080c, 0x969c, 0x2069, 0x19e7, 0x2001, 0x180c, 0x200c, 0xd1c4,\r
++      0x1508, 0x6838, 0x907d, 0x01d8, 0x6a04, 0x9296, 0x0000, 0x1904,\r
++      0x985a, 0x7920, 0x918e, 0x0009, 0x0588, 0x6833, 0x0001, 0x683e,\r
++      0x6847, 0x0000, 0x684b, 0x0000, 0x0126, 0x00f6, 0x2091, 0x2400,\r
++      0x002e, 0x080c, 0x1c46, 0x1178, 0x012e, 0x080c, 0xa0d0, 0x00de,\r
++      0x00fe, 0x0005, 0xc1c4, 0x2102, 0x0066, 0x2031, 0x0001, 0x080c,\r
++      0x746c, 0x006e, 0x08b0, 0x012e, 0x6843, 0x0000, 0x7803, 0x0002,\r
++      0x780c, 0x9015, 0x0140, 0x6a3a, 0x780f, 0x0000, 0x6833, 0x0000,\r
++      0x683f, 0x0000, 0x0c20, 0x683a, 0x6836, 0x0cc0, 0x7908, 0xd1fc,\r
++      0x1198, 0x6833, 0x0001, 0x683e, 0x6847, 0x0000, 0x684b, 0x0000,\r
++      0x0126, 0x00f6, 0x2091, 0x2400, 0x002e, 0x080c, 0x1c46, 0x19d8,\r
++      0x012e, 0x080c, 0xa051, 0x0858, 0x2001, 0x1837, 0x2004, 0x9084,\r
++      0x0028, 0x1188, 0x2001, 0x197c, 0x2004, 0x9086, 0xaaaa, 0x0158,\r
++      0x2001, 0x19e8, 0x2004, 0x9005, 0x11f0, 0x2001, 0x188b, 0x200c,\r
++      0xc185, 0xc18c, 0x2102, 0x2f00, 0x6833, 0x0001, 0x683e, 0x6847,\r
++      0x0000, 0x684b, 0x0000, 0x0126, 0x00f6, 0x2091, 0x2400, 0x002e,\r
++      0x080c, 0x1c46, 0x1904, 0x97fb, 0x012e, 0x6a3c, 0x2278, 0x080c,\r
++      0x9fdb, 0x0804, 0x97ef, 0x2011, 0x188b, 0x2204, 0xc08d, 0x2012,\r
++      0x0804, 0x97ef, 0x6a04, 0x9296, 0x0006, 0x0904, 0x97d9, 0x0804,\r
++      0x97b1, 0x6020, 0x9084, 0x000f, 0x000b, 0x0005, 0x9875, 0x987a,\r
++      0x9ce8, 0x9d77, 0x987a, 0x9ce8, 0x9d77, 0x9875, 0x987a, 0x9875,\r
++      0x9875, 0x9875, 0x9875, 0x9875, 0x9875, 0x080c, 0x9588, 0x080c,\r
++      0x968d, 0x0005, 0x00b6, 0x0156, 0x0136, 0x0146, 0x01c6, 0x01d6,\r
++      0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x2069, 0x0200, 0x2071, 0x0240,\r
++      0x6004, 0x908a, 0x0053, 0x1a0c, 0x0dd5, 0x6110, 0x2158, 0xb9c0,\r
++      0x2c78, 0x2061, 0x0100, 0x619a, 0x908a, 0x0040, 0x1a04, 0x98e6,\r
++      0x005b, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x01de, 0x01ce, 0x014e,\r
++      0x013e, 0x015e, 0x00be, 0x0005, 0x9a6b, 0x9aa6, 0x9acf, 0x9b77,\r
++      0x9b99, 0x9b9f, 0x9bac, 0x9bb4, 0x9bc0, 0x9bc6, 0x9bd7, 0x9bc6,\r
++      0x9c2f, 0x9bb4, 0x9c3b, 0x9c41, 0x9bc0, 0x9c41, 0x9c4d, 0x98e4,\r
++      0x98e4, 0x98e4, 0x98e4, 0x98e4, 0x98e4, 0x98e4, 0x98e4, 0x98e4,\r
++      0x98e4, 0x98e4, 0xa46d, 0xa490, 0xa4a1, 0xa4c1, 0xa4f3, 0x9bac,\r
++      0x98e4, 0x9bac, 0x9bc6, 0x98e4, 0x9acf, 0x9b77, 0x98e4, 0xa8a9,\r
++      0x9bc6, 0x98e4, 0xa8c5, 0x9bc6, 0x98e4, 0x9bc0, 0x9a65, 0x9907,\r
++      0x98e4, 0xa8e1, 0xa94e, 0xaa25, 0x98e4, 0xaa32, 0x9ba9, 0xaa5d,\r
++      0x98e4, 0xa4fd, 0xaa8a, 0x98e4, 0x080c, 0x0dd5, 0x2100, 0x005b,\r
++      0x00fe, 0x00ee, 0x00de, 0x00ce, 0x01de, 0x01ce, 0x014e, 0x013e,\r
++      0x015e, 0x00be, 0x0005, 0xab25, 0xabd7, 0x9905, 0x992e, 0x99da,\r
++      0x99e5, 0x9905, 0x9bac, 0x9905, 0x9a2c, 0x9a38, 0x9949, 0x9905,\r
++      0x9964, 0x9998, 0xad3f, 0xad84, 0x9bc6, 0x080c, 0x0dd5, 0x00d6,\r
++      0x0096, 0x080c, 0x9c60, 0x7003, 0x2414, 0x7007, 0x0018, 0x700b,\r
++      0x0800, 0x7814, 0x2048, 0xa83c, 0x700e, 0xa850, 0x7022, 0xa854,\r
++      0x7026, 0x60c3, 0x0018, 0x080c, 0xa247, 0x009e, 0x00de, 0x0005,\r
++      0x7810, 0x00b6, 0x2058, 0xb8a0, 0x00be, 0x080c, 0xadcb, 0x1118,\r
++      0x9084, 0xff80, 0x0110, 0x9085, 0x0001, 0x0005, 0x00d6, 0x0096,\r
++      0x080c, 0x9c60, 0x7003, 0x0500, 0x7814, 0x2048, 0xa874, 0x700a,\r
++      0xa878, 0x700e, 0xa87c, 0x7012, 0xa880, 0x7016, 0xa884, 0x701a,\r
++      0xa888, 0x701e, 0x60c3, 0x0010, 0x080c, 0xa247, 0x009e, 0x00de,\r
++      0x0005, 0x00d6, 0x0096, 0x080c, 0x9c60, 0x7003, 0x0500, 0x7814,\r
++      0x2048, 0xa8cc, 0x700a, 0xa8d0, 0x700e, 0xa8d4, 0x7012, 0xa8d8,\r
++      0x7016, 0xa8dc, 0x701a, 0xa8e0, 0x701e, 0x60c3, 0x0010, 0x080c,\r
++      0xa247, 0x009e, 0x00de, 0x0005, 0x00d6, 0x0096, 0x0126, 0x2091,\r
++      0x8000, 0x080c, 0x9c60, 0x20e9, 0x0000, 0x2001, 0x19a3, 0x2003,\r
++      0x0000, 0x7814, 0x2048, 0xa814, 0x8003, 0x60c2, 0xa830, 0x20a8,\r
++      0xa860, 0x20e0, 0xa85c, 0x9080, 0x001b, 0x2098, 0x2001, 0x19a3,\r
++      0x0016, 0x200c, 0x2001, 0x0001, 0x080c, 0x23b7, 0x080c, 0xd867,\r
++      0x9006, 0x080c, 0x23b7, 0x001e, 0xa804, 0x9005, 0x0110, 0x2048,\r
++      0x0c28, 0x04d9, 0x080c, 0xa247, 0x012e, 0x009e, 0x00de, 0x0005,\r
++      0x00d6, 0x0096, 0x0126, 0x2091, 0x8000, 0x080c, 0x9cab, 0x20e9,\r
++      0x0000, 0x2001, 0x19a3, 0x2003, 0x0000, 0x7814, 0x2048, 0xa86f,\r
++      0x0200, 0xa873, 0x0000, 0xa814, 0x8003, 0x60c2, 0xa830, 0x20a8,\r
++      0xa860, 0x20e0, 0xa85c, 0x9080, 0x001b, 0x2098, 0x2001, 0x19a3,\r
++      0x0016, 0x200c, 0x080c, 0xd867, 0x001e, 0xa804, 0x9005, 0x0110,\r
++      0x2048, 0x0c60, 0x0051, 0x7814, 0x2048, 0x080c, 0x0fb1, 0x080c,\r
++      0xa247, 0x012e, 0x009e, 0x00de, 0x0005, 0x60c0, 0x8004, 0x9084,\r
++      0x0003, 0x9005, 0x0130, 0x9082, 0x0004, 0x20a3, 0x0000, 0x8000,\r
++      0x1de0, 0x0005, 0x080c, 0x9c60, 0x7003, 0x7800, 0x7808, 0x8007,\r
++      0x700a, 0x60c3, 0x0008, 0x0804, 0xa247, 0x00d6, 0x00e6, 0x080c,\r
++      0x9cab, 0x7814, 0x9084, 0xff00, 0x2073, 0x0200, 0x8e70, 0x8e70,\r
++      0x9095, 0x0010, 0x2272, 0x8e70, 0x2073, 0x0034, 0x8e70, 0x2069,\r
++      0x1805, 0x20a9, 0x0004, 0x2d76, 0x8d68, 0x8e70, 0x1f04, 0x99fb,\r
++      0x2069, 0x1801, 0x20a9, 0x0004, 0x2d76, 0x8d68, 0x8e70, 0x1f04,\r
++      0x9a04, 0x2069, 0x19b3, 0x9086, 0xdf00, 0x0110, 0x2069, 0x19cd,\r
++      0x20a9, 0x001a, 0x9e86, 0x0260, 0x1148, 0x00c6, 0x2061, 0x0200,\r
++      0x6010, 0x8000, 0x6012, 0x00ce, 0x2071, 0x0240, 0x2d04, 0x8007,\r
++      0x2072, 0x8d68, 0x8e70, 0x1f04, 0x9a12, 0x60c3, 0x004c, 0x080c,\r
++      0xa247, 0x00ee, 0x00de, 0x0005, 0x080c, 0x9c60, 0x7003, 0x6300,\r
++      0x7007, 0x0028, 0x7808, 0x700e, 0x60c3, 0x0008, 0x0804, 0xa247,\r
++      0x00d6, 0x0026, 0x0016, 0x080c, 0x9cab, 0x7003, 0x0200, 0x7814,\r
++      0x700e, 0x00e6, 0x9ef0, 0x0004, 0x2009, 0x0001, 0x2011, 0x000c,\r
++      0x2069, 0x1923, 0x6810, 0xd084, 0x1148, 0x2073, 0x0500, 0x8e70,\r
++      0x2073, 0x0000, 0x8e70, 0x8108, 0x9290, 0x0004, 0x2073, 0x0800,\r
++      0x8e70, 0x2073, 0x0000, 0x00ee, 0x7206, 0x710a, 0x62c2, 0x080c,\r
++      0xa247, 0x001e, 0x002e, 0x00de, 0x0005, 0x2001, 0x1818, 0x2004,\r
++      0x609a, 0x0804, 0xa247, 0x080c, 0x9c60, 0x7003, 0x5200, 0x2069,\r
++      0x1847, 0x6804, 0xd084, 0x0130, 0x6828, 0x0016, 0x080c, 0x2871,\r
++      0x710e, 0x001e, 0x20a9, 0x0004, 0x20e1, 0x0001, 0x2099, 0x1805,\r
++      0x20e9, 0x0000, 0x20a1, 0x0250, 0x4003, 0x20a9, 0x0004, 0x2099,\r
++      0x1801, 0x20a1, 0x0254, 0x4003, 0x080c, 0xadcb, 0x1120, 0xb8a0,\r
++      0x9082, 0x007f, 0x0248, 0x2001, 0x181f, 0x2004, 0x7032, 0x2001,\r
++      0x1820, 0x2004, 0x7036, 0x0030, 0x2001, 0x1818, 0x2004, 0x9084,\r
++      0x00ff, 0x7036, 0x60c3, 0x001c, 0x0804, 0xa247, 0x080c, 0x9c60,\r
++      0x7003, 0x0500, 0x080c, 0xadcb, 0x1120, 0xb8a0, 0x9082, 0x007f,\r
++      0x0248, 0x2001, 0x181f, 0x2004, 0x700a, 0x2001, 0x1820, 0x2004,\r
++      0x700e, 0x0030, 0x2001, 0x1818, 0x2004, 0x9084, 0x00ff, 0x700e,\r
++      0x20a9, 0x0004, 0x20e1, 0x0001, 0x2099, 0x1805, 0x20e9, 0x0000,\r
++      0x20a1, 0x0250, 0x4003, 0x60c3, 0x0010, 0x0804, 0xa247, 0x080c,\r
++      0x9c60, 0x9006, 0x080c, 0x693c, 0xb8a0, 0x9086, 0x007e, 0x1130,\r
++      0x7003, 0x0400, 0x620c, 0xc2b4, 0x620e, 0x0058, 0x7814, 0x0096,\r
++      0x904d, 0x0120, 0x9006, 0xa89a, 0xa8a6, 0xa8aa, 0x009e, 0x7003,\r
++      0x0300, 0xb8a0, 0x9086, 0x007e, 0x1904, 0x9b3e, 0x00d6, 0x2069,\r
++      0x196c, 0x2001, 0x1837, 0x2004, 0xd0a4, 0x0188, 0x6800, 0x700a,\r
++      0x6808, 0x9084, 0x2000, 0x7012, 0x080c, 0xade2, 0x680c, 0x7016,\r
++      0x701f, 0x2710, 0x6818, 0x7022, 0x681c, 0x7026, 0x0090, 0x6800,\r
++      0x700a, 0x6804, 0x700e, 0x6808, 0x080c, 0x73bc, 0x1118, 0x9084,\r
++      0x37ff, 0x0010, 0x9084, 0x3fff, 0x7012, 0x080c, 0xade2, 0x680c,\r
++      0x7016, 0x00de, 0x20a9, 0x0004, 0x20e1, 0x0001, 0x2099, 0x1805,\r
++      0x20e9, 0x0000, 0x20a1, 0x0256, 0x4003, 0x20a9, 0x0004, 0x2099,\r
++      0x1801, 0x20a1, 0x025a, 0x4003, 0x00d6, 0x080c, 0xab0c, 0x2069,\r
++      0x1974, 0x2071, 0x024e, 0x6800, 0xc0dd, 0x7002, 0x080c, 0x56d3,\r
++      0xd0e4, 0x0110, 0x680c, 0x700e, 0x00de, 0x04a8, 0x2001, 0x1837,\r
++      0x2004, 0xd0a4, 0x0170, 0x0016, 0x2001, 0x196d, 0x200c, 0x60e0,\r
++      0x9106, 0x0130, 0x2100, 0x60e3, 0x0000, 0x080c, 0x28b2, 0x61e2,\r
++      0x001e, 0x20e1, 0x0001, 0x2099, 0x196c, 0x20e9, 0x0000, 0x20a1,\r
++      0x024e, 0x20a9, 0x0008, 0x4003, 0x20a9, 0x0004, 0x2099, 0x1805,\r
++      0x20a1, 0x0256, 0x4003, 0x20a9, 0x0004, 0x2099, 0x1801, 0x20a1,\r
++      0x025a, 0x4003, 0x080c, 0xab0c, 0x20a1, 0x024e, 0x20a9, 0x0008,\r
++      0x2099, 0x1974, 0x4003, 0x60c3, 0x0074, 0x0804, 0xa247, 0x080c,\r
++      0x9c60, 0x7003, 0x2010, 0x7007, 0x0014, 0x700b, 0x0800, 0x700f,\r
++      0x2000, 0x9006, 0x00f6, 0x2079, 0x1847, 0x7904, 0x00fe, 0xd1ac,\r
++      0x1110, 0x9085, 0x0020, 0xd1a4, 0x0110, 0x9085, 0x0010, 0x9085,\r
++      0x0002, 0x00d6, 0x0804, 0x9c10, 0x7026, 0x60c3, 0x0014, 0x0804,\r
++      0xa247, 0x080c, 0x9c60, 0x7003, 0x5000, 0x0804, 0x9ae9, 0x080c,\r
++      0x9c60, 0x7003, 0x2110, 0x7007, 0x0014, 0x60c3, 0x0014, 0x0804,\r
++      0xa247, 0x080c, 0x9ca2, 0x0010, 0x080c, 0x9cab, 0x7003, 0x0200,\r
++      0x60c3, 0x0004, 0x0804, 0xa247, 0x080c, 0x9cab, 0x7003, 0x0100,\r
++      0x700b, 0x0003, 0x700f, 0x2a00, 0x60c3, 0x0008, 0x0804, 0xa247,\r
++      0x080c, 0x9cab, 0x7003, 0x0200, 0x0804, 0x9ae9, 0x080c, 0x9cab,\r
++      0x7003, 0x0100, 0x782c, 0x9005, 0x0110, 0x700a, 0x0010, 0x700b,\r
++      0x0003, 0x7814, 0x700e, 0x60c3, 0x0008, 0x0804, 0xa247, 0x00d6,\r
++      0x080c, 0x9cab, 0x7003, 0x0210, 0x7007, 0x0014, 0x700b, 0x0800,\r
++      0xb894, 0x9086, 0x0014, 0x1198, 0xb99c, 0x9184, 0x0030, 0x0190,\r
++      0xb998, 0x9184, 0xc000, 0x1140, 0xd1ec, 0x0118, 0x700f, 0x2100,\r
++      0x0058, 0x700f, 0x0100, 0x0040, 0x700f, 0x0400, 0x0028, 0x700f,\r
++      0x0700, 0x0010, 0x700f, 0x0800, 0x00f6, 0x2079, 0x1847, 0x7904,\r
++      0x00fe, 0xd1ac, 0x1110, 0x9085, 0x0020, 0xd1a4, 0x0110, 0x9085,\r
++      0x0010, 0x2009, 0x1869, 0x210c, 0xd184, 0x1110, 0x9085, 0x0002,\r
++      0x0026, 0x2009, 0x1867, 0x210c, 0xd1e4, 0x0150, 0xc0c5, 0xbacc,\r
++      0xd28c, 0x1108, 0xc0cd, 0x9094, 0x0030, 0x9296, 0x0010, 0x0140,\r
++      0xd1ec, 0x0130, 0x9094, 0x0030, 0x9296, 0x0010, 0x0108, 0xc0bd,\r
++      0x002e, 0x7026, 0x60c3, 0x0014, 0x00de, 0x0804, 0xa247, 0x080c,\r
++      0x9cab, 0x7003, 0x0210, 0x7007, 0x0014, 0x700f, 0x0100, 0x60c3,\r
++      0x0014, 0x0804, 0xa247, 0x080c, 0x9cab, 0x7003, 0x0200, 0x0804,\r
++      0x9a6f, 0x080c, 0x9cab, 0x7003, 0x0100, 0x700b, 0x0003, 0x700f,\r
++      0x2a00, 0x60c3, 0x0008, 0x0804, 0xa247, 0x080c, 0x9cab, 0x7003,\r
++      0x0100, 0x700b, 0x000b, 0x60c3, 0x0008, 0x0804, 0xa247, 0x0026,\r
++      0x00d6, 0x0036, 0x0046, 0x2019, 0x3200, 0x2021, 0x0800, 0x0040,\r
++      0x0026, 0x00d6, 0x0036, 0x0046, 0x2019, 0x2200, 0x2021, 0x0100,\r
++      0x080c, 0xab21, 0xb810, 0x9305, 0x7002, 0xb814, 0x7006, 0x2069,\r
++      0x1800, 0x687c, 0x700a, 0x6880, 0x700e, 0x9485, 0x0029, 0x7012,\r
++      0x004e, 0x003e, 0x00de, 0x080c, 0xa235, 0x721a, 0x9f95, 0x0000,\r
++      0x7222, 0x7027, 0xffff, 0x2071, 0x024c, 0x002e, 0x0005, 0x0026,\r
++      0x080c, 0xab21, 0x7003, 0x02ff, 0x7007, 0xfffc, 0x00d6, 0x2069,\r
++      0x1800, 0x687c, 0x700a, 0x6880, 0x700e, 0x00de, 0x7013, 0x2029,\r
++      0x0c10, 0x7003, 0x0100, 0x7007, 0x0000, 0x700b, 0xfc02, 0x700f,\r
++      0x0000, 0x0005, 0x0026, 0x00d6, 0x0036, 0x0046, 0x2019, 0x3300,\r
++      0x2021, 0x0800, 0x0040, 0x0026, 0x00d6, 0x0036, 0x0046, 0x2019,\r
++      0x2300, 0x2021, 0x0100, 0x080c, 0xab21, 0xb810, 0x9305, 0x7002,\r
++      0xb814, 0x7006, 0x2069, 0x1800, 0xb810, 0x9005, 0x1140, 0xb814,\r
++      0x9005, 0x1128, 0x700b, 0x00ff, 0x700f, 0xfffe, 0x0020, 0x687c,\r
++      0x700a, 0x6880, 0x700e, 0x0000, 0x9485, 0x0098, 0x7012, 0x004e,\r
++      0x003e, 0x00de, 0x080c, 0xa235, 0x721a, 0x7a08, 0x7222, 0x2f10,\r
++      0x7226, 0x2071, 0x024c, 0x002e, 0x0005, 0x080c, 0xa235, 0x721a,\r
++      0x7a08, 0x7222, 0x7814, 0x7026, 0x2071, 0x024c, 0x002e, 0x0005,\r
++      0x00b6, 0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x2069, 0x0200, 0x2071,\r
++      0x0240, 0x6004, 0x908a, 0x0085, 0x0a0c, 0x0dd5, 0x908a, 0x0092,\r
++      0x1a0c, 0x0dd5, 0x6110, 0x2158, 0xb9c0, 0x2c78, 0x2061, 0x0100,\r
++      0x619a, 0x9082, 0x0085, 0x0033, 0x00fe, 0x00ee, 0x00de, 0x00ce,\r
++      0x00be, 0x0005, 0x9d19, 0x9d28, 0x9d33, 0x9d17, 0x9d17, 0x9d17,\r
++      0x9d19, 0x9d17, 0x9d17, 0x9d17, 0x9d17, 0x9d17, 0x9d17, 0x080c,\r
++      0x0dd5, 0x0411, 0x60c3, 0x0000, 0x0026, 0x080c, 0x2ba5, 0x0228,\r
++      0x2011, 0x0101, 0x2204, 0xc0c5, 0x2012, 0x002e, 0x0804, 0xa247,\r
++      0x0431, 0x7808, 0x700a, 0x7814, 0x700e, 0x7017, 0xffff, 0x60c3,\r
++      0x000c, 0x0804, 0xa247, 0x0479, 0x7003, 0x0003, 0x7007, 0x0300,\r
++      0x60c3, 0x0004, 0x0804, 0xa247, 0x0026, 0x080c, 0xab21, 0xb810,\r
++      0x9085, 0x8100, 0x7002, 0xb814, 0x7006, 0x2069, 0x1800, 0x687c,\r
++      0x700a, 0x6880, 0x700e, 0x7013, 0x0009, 0x0804, 0x9c7b, 0x0026,\r
++      0x080c, 0xab21, 0xb810, 0x9085, 0x8400, 0x7002, 0xb814, 0x7006,\r
++      0x2069, 0x1800, 0x687c, 0x700a, 0x6880, 0x700e, 0x2001, 0x0099,\r
++      0x7012, 0x0804, 0x9cdd, 0x0026, 0x080c, 0xab21, 0xb810, 0x9085,\r
++      0x8500, 0x7002, 0xb814, 0x7006, 0x2069, 0x1800, 0x687c, 0x700a,\r
++      0x6880, 0x700e, 0x2001, 0x0099, 0x7012, 0x0804, 0x9cdd, 0x00b6,\r
++      0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x2c78, 0x2069, 0x0200, 0x2071,\r
++      0x0240, 0x7804, 0x908a, 0x0040, 0x0a0c, 0x0dd5, 0x908a, 0x0054,\r
++      0x1a0c, 0x0dd5, 0x7910, 0x2158, 0xb9c0, 0x2061, 0x0100, 0x619a,\r
++      0x9082, 0x0040, 0x0033, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be,\r
++      0x0005, 0x9dae, 0x9e6a, 0x9e3d, 0x9f8c, 0x9dac, 0x9dac, 0x9dac,\r
++      0x9dac, 0x9dac, 0x9dac, 0x9dac, 0xa66f, 0xa677, 0xa67f, 0xa687,\r
++      0x9dac, 0xaa69, 0x9dac, 0xa667, 0x080c, 0x0dd5, 0x0096, 0x780b,\r
++      0xffff, 0x080c, 0x9e19, 0x7914, 0x2148, 0xa978, 0x7956, 0xae64,\r
++      0x96b4, 0x00ff, 0x9686, 0x0008, 0x1148, 0xa8b4, 0x7032, 0xa8b8,\r
++      0x7036, 0xa8bc, 0x703a, 0xa8c0, 0x703e, 0x0008, 0x7132, 0xa97c,\r
++      0x9184, 0x000f, 0x1118, 0x2001, 0x0005, 0x0040, 0xd184, 0x0118,\r
++      0x2001, 0x0004, 0x0018, 0x9084, 0x0006, 0x8004, 0x2010, 0x785c,\r
++      0x9084, 0x00ff, 0x8007, 0x9205, 0x7042, 0xd1ac, 0x0158, 0x7047,\r
++      0x0002, 0x9686, 0x0008, 0x1118, 0x080c, 0x18ac, 0x0010, 0x080c,\r
++      0x1725, 0x0050, 0xd1b4, 0x0118, 0x7047, 0x0001, 0x0028, 0x7047,\r
++      0x0000, 0x9016, 0x2230, 0x0010, 0xaab0, 0xaeac, 0x726a, 0x766e,\r
++      0x20a9, 0x0008, 0x20e9, 0x0000, 0xa860, 0x20e0, 0xa85c, 0x9080,\r
++      0x0023, 0x2098, 0x20a1, 0x0252, 0x2069, 0x0200, 0x6813, 0x0018,\r
++      0x4003, 0x6813, 0x0008, 0x60c3, 0x0020, 0x6017, 0x0009, 0x2001,\r
++      0x1a03, 0x2003, 0x07d0, 0x2001, 0x1a02, 0x2003, 0x0009, 0x009e,\r
++      0x0005, 0x6813, 0x0008, 0xba8c, 0x8210, 0xb8cc, 0xd084, 0x0128,\r
++      0x7a46, 0x7b14, 0x7b4a, 0x722e, 0x732a, 0x9294, 0x00ff, 0xba8e,\r
++      0x8217, 0x721a, 0xba10, 0x9295, 0x0600, 0x7202, 0xba14, 0x7206,\r
++      0x2069, 0x1800, 0x6a7c, 0x720a, 0x6a80, 0x720e, 0x7013, 0x0829,\r
++      0x2f10, 0x7222, 0x7027, 0xffff, 0x0005, 0x00d6, 0x0096, 0x0081,\r
++      0x7814, 0x2048, 0xa890, 0x7002, 0xa88c, 0x7006, 0xa8b0, 0x700a,\r
++      0xa8ac, 0x700e, 0x60c3, 0x000c, 0x009e, 0x00de, 0x0804, 0xa247,\r
++      0x6813, 0x0008, 0xb810, 0x9085, 0x0500, 0x7002, 0xb814, 0x7006,\r
++      0x2069, 0x1800, 0x687c, 0x700a, 0x6880, 0x700e, 0x7013, 0x0889,\r
++      0x080c, 0xa235, 0x721a, 0x7a08, 0x7222, 0x2f10, 0x7226, 0x2071,\r
++      0x024c, 0x0005, 0x00d6, 0x0096, 0x080c, 0x9f6a, 0x7814, 0x2048,\r
++      0x080c, 0xcb33, 0x1130, 0x7814, 0x9084, 0x0700, 0x8007, 0x0033,\r
++      0x0010, 0x9006, 0x001b, 0x009e, 0x00de, 0x0005, 0x9e88, 0x9ef1,\r
++      0x9f01, 0x9f27, 0x9f33, 0x9f44, 0x9f4c, 0x9e86, 0x080c, 0x0dd5,\r
++      0x0016, 0x0036, 0xa97c, 0x918c, 0x0003, 0x0118, 0x9186, 0x0003,\r
++      0x1198, 0xaba8, 0x7824, 0xd0cc, 0x1168, 0x7316, 0xa898, 0x701a,\r
++      0xa894, 0x701e, 0x003e, 0x001e, 0x2001, 0x19b1, 0x2004, 0x60c2,\r
++      0x0804, 0xa247, 0xc3e5, 0x0c88, 0x9186, 0x0001, 0x190c, 0x0dd5,\r
++      0xaba8, 0x7824, 0xd0cc, 0x1904, 0x9eee, 0x7316, 0xa898, 0x701a,\r
++      0xa894, 0x701e, 0xa8a4, 0x7026, 0xa8ac, 0x702e, 0x2009, 0x0018,\r
++      0x9384, 0x0300, 0x0570, 0xd3c4, 0x0110, 0xa8ac, 0x9108, 0xd3cc,\r
++      0x0110, 0xa8a4, 0x9108, 0x6810, 0x9085, 0x0010, 0x6812, 0x2011,\r
++      0x0258, 0x20e9, 0x0000, 0x22a0, 0x0156, 0x20a9, 0x0008, 0xa860,\r
++      0x20e0, 0xa85c, 0x9080, 0x002c, 0x2098, 0x4003, 0x6810, 0x8000,\r
++      0x6812, 0x2011, 0x0240, 0x22a0, 0x20a9, 0x0005, 0x4003, 0x6810,\r
++      0xc084, 0x6812, 0x015e, 0x9184, 0x0003, 0x0118, 0x2019, 0x0245,\r
++      0x201a, 0x61c2, 0x003e, 0x001e, 0x0804, 0xa247, 0xc3e5, 0x0804,\r
++      0x9ead, 0x2011, 0x0008, 0x2001, 0x180f, 0x2004, 0xd0a4, 0x0110,\r
++      0x2011, 0x0028, 0x7824, 0xd0cc, 0x1110, 0x7216, 0x0470, 0x0ce8,\r
++      0xc2e5, 0x2011, 0x0302, 0x0016, 0x782c, 0x701a, 0x7930, 0x711e,\r
++      0x9105, 0x0108, 0xc2dd, 0x001e, 0x7824, 0xd0cc, 0x0108, 0xc2e5,\r
++      0x7216, 0x7027, 0x0012, 0x702f, 0x0008, 0x7043, 0x7000, 0x7047,\r
++      0x0500, 0x704f, 0x000a, 0x2069, 0x0200, 0x6813, 0x0009, 0x2071,\r
++      0x0240, 0x700b, 0x2500, 0x60c3, 0x0032, 0x0804, 0xa247, 0x2011,\r
++      0x0028, 0x7824, 0xd0cc, 0x1128, 0x7216, 0x60c3, 0x0018, 0x0804,\r
++      0xa247, 0x0cd0, 0xc2e5, 0x2011, 0x0100, 0x7824, 0xd0cc, 0x0108,\r
++      0xc2e5, 0x7216, 0x702f, 0x0008, 0x7858, 0x9084, 0x00ff, 0x7036,\r
++      0x60c3, 0x0020, 0x0804, 0xa247, 0x2011, 0x0008, 0x7824, 0xd0cc,\r
++      0x0108, 0xc2e5, 0x7216, 0x0c08, 0x0036, 0x7b14, 0x9384, 0xff00,\r
++      0x7816, 0x9384, 0x00ff, 0x8001, 0x1138, 0x7824, 0xd0cc, 0x0108,\r
++      0xc2e5, 0x7216, 0x003e, 0x0888, 0x0046, 0x2021, 0x0800, 0x0006,\r
++      0x7824, 0xd0cc, 0x000e, 0x0108, 0xc4e5, 0x7416, 0x004e, 0x701e,\r
++      0x003e, 0x0818, 0x00d6, 0x6813, 0x0008, 0xb810, 0x9085, 0x0700,\r
++      0x7002, 0xb814, 0x7006, 0x2069, 0x1800, 0x687c, 0x700a, 0x6880,\r
++      0x700e, 0x7824, 0xd0cc, 0x1168, 0x7013, 0x0898, 0x080c, 0xa235,\r
++      0x721a, 0x7a08, 0x7222, 0x2f10, 0x7226, 0x2071, 0x024c, 0x00de,\r
++      0x0005, 0x7013, 0x0889, 0x0c90, 0x0016, 0x7814, 0x9084, 0x0700,\r
++      0x8007, 0x0013, 0x001e, 0x0005, 0x9f9c, 0x9f9c, 0x9f9e, 0x9f9c,\r
++      0x9f9c, 0x9f9c, 0x9fb8, 0x9f9c, 0x080c, 0x0dd5, 0x7914, 0x918c,\r
++      0x08ff, 0x918d, 0xf600, 0x7916, 0x2009, 0x0003, 0x00b9, 0x2069,\r
++      0x1847, 0x6804, 0xd0bc, 0x0130, 0x682c, 0x9084, 0x00ff, 0x8007,\r
++      0x7032, 0x0010, 0x7033, 0x3f00, 0x60c3, 0x0001, 0x0804, 0xa247,\r
++      0x2009, 0x0003, 0x0019, 0x7033, 0x7f00, 0x0cb0, 0x0016, 0x080c,\r
++      0xab21, 0x001e, 0xb810, 0x9085, 0x0100, 0x7002, 0xb814, 0x7006,\r
++      0x2069, 0x1800, 0x6a7c, 0x720a, 0x6a80, 0x720e, 0x7013, 0x0888,\r
++      0x918d, 0x0008, 0x7116, 0x080c, 0xa235, 0x721a, 0x7a08, 0x7222,\r
++      0x2f10, 0x7226, 0x0005, 0x00b6, 0x00e6, 0x00d6, 0x00c6, 0x0066,\r
++      0x0056, 0x0046, 0x0036, 0x2061, 0x0100, 0x2071, 0x1800, 0x7160,\r
++      0x7810, 0x2058, 0x76dc, 0x96b4, 0x0028, 0x0110, 0x737c, 0x7480,\r
++      0x2500, 0x76dc, 0x96b4, 0x0028, 0x0140, 0x2001, 0x04ff, 0x6062,\r
++      0x6067, 0xffff, 0x636a, 0x646e, 0x0050, 0x2001, 0x00ff, 0x9085,\r
++      0x0400, 0x6062, 0x6067, 0xffff, 0x606b, 0x0000, 0x616e, 0xb8b8,\r
++      0x6073, 0x0530, 0x6077, 0x0008, 0xb88c, 0x8000, 0x9084, 0x00ff,\r
++      0xb88e, 0x8007, 0x9085, 0x0020, 0x607a, 0x607f, 0x0000, 0x2b00,\r
++      0x6082, 0x6087, 0xffff, 0x7814, 0x0096, 0x2048, 0xa838, 0x608a,\r
++      0xa834, 0x608e, 0xa848, 0x60c6, 0xa844, 0x60ca, 0x009e, 0xb86c,\r
++      0x60ce, 0x60ab, 0x0036, 0x60af, 0x95d5, 0x60d7, 0x0000, 0x2001,\r
++      0x1837, 0x2004, 0x9084, 0x0028, 0x0128, 0x609f, 0x0000, 0x2001,\r
++      0x0092, 0x0048, 0x6028, 0xc0bd, 0x602a, 0x609f, 0x00ff, 0x6027,\r
++      0xffff, 0x2001, 0x00b2, 0x6016, 0x2009, 0x07d0, 0x080c, 0x857e,\r
++      0x003e, 0x004e, 0x005e, 0x006e, 0x00ce, 0x00de, 0x00ee, 0x00be,\r
++      0x0005, 0x00b6, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0056, 0x0046,\r
++      0x0036, 0x2061, 0x0100, 0x2071, 0x1800, 0x7160, 0x7810, 0x2058,\r
++      0xb8a0, 0x2028, 0x76dc, 0xd6ac, 0x1168, 0x9582, 0x007e, 0x1250,\r
++      0x2500, 0x9094, 0xff80, 0x1130, 0x9080, 0x3325, 0x2015, 0x9294,\r
++      0x00ff, 0x0020, 0xb910, 0xba14, 0x737c, 0x7480, 0x70dc, 0xd0ac,\r
++      0x1130, 0x9582, 0x007e, 0x1218, 0x9584, 0xff80, 0x0138, 0x9185,\r
++      0x0400, 0x6062, 0x6266, 0x636a, 0x646e, 0x0030, 0x6063, 0x0400,\r
++      0x6266, 0x606b, 0x0000, 0x616e, 0xb8b8, 0x6072, 0x6077, 0x0000,\r
++      0xb864, 0xd0a4, 0x0110, 0x6077, 0x0008, 0xb88c, 0x8000, 0x9084,\r
++      0x00ff, 0xb88e, 0x8007, 0x9085, 0x0020, 0x607a, 0x607f, 0x0000,\r
++      0x2b00, 0x6082, 0x6087, 0xffff, 0x7814, 0x0096, 0x2048, 0xa838,\r
++      0x608a, 0xa834, 0x608e, 0xa848, 0x60c6, 0xa844, 0x60ca, 0x009e,\r
++      0xb86c, 0x60ce, 0x60ab, 0x0036, 0x60af, 0x95d5, 0x60d7, 0x0000,\r
++      0xbac0, 0x629e, 0x00f6, 0x2079, 0x0140, 0x7803, 0x0000, 0x00fe,\r
++      0x2009, 0x0092, 0x6116, 0x2009, 0x07d0, 0x080c, 0x857e, 0x003e,\r
++      0x004e, 0x005e, 0x006e, 0x00ce, 0x00de, 0x00ee, 0x00be, 0x0005,\r
++      0x00b6, 0x0096, 0x00e6, 0x00d6, 0x00c6, 0x0056, 0x0046, 0x0036,\r
++      0x2061, 0x0100, 0x2071, 0x1800, 0x7810, 0x2058, 0xb8a0, 0x2028,\r
++      0xb910, 0xba14, 0x737c, 0x7480, 0x7820, 0x90be, 0x0006, 0x0904,\r
++      0xa1a4, 0x90be, 0x000a, 0x1904, 0xa160, 0xb8c0, 0x609e, 0x7814,\r
++      0x2048, 0xa87c, 0xd0fc, 0x0558, 0xaf90, 0x9784, 0xff00, 0x9105,\r
++      0x6062, 0x873f, 0x9784, 0xff00, 0x0006, 0x7814, 0x2048, 0xa878,\r
++      0xc0fc, 0x9005, 0x000e, 0x1160, 0xaf94, 0x87ff, 0x0198, 0x2039,\r
++      0x0098, 0x9705, 0x6072, 0x7808, 0x6082, 0x2f00, 0x6086, 0x0038,\r
++      0x9185, 0x2200, 0x6062, 0x6073, 0x0129, 0x6077, 0x0000, 0xb8c0,\r
++      0x609e, 0x0050, 0x2039, 0x0029, 0x9705, 0x6072, 0x0cc0, 0x9185,\r
++      0x0200, 0x6062, 0x6073, 0x2029, 0xa87c, 0xd0fc, 0x0118, 0xaf94,\r
++      0x87ff, 0x1120, 0x2f00, 0x6082, 0x7808, 0x6086, 0x6266, 0x636a,\r
++      0x646e, 0x6077, 0x0000, 0xb88c, 0x8000, 0x9084, 0x00ff, 0xb88e,\r
++      0x8007, 0x607a, 0x607f, 0x0000, 0xa838, 0x608a, 0xa834, 0x608e,\r
++      0xa848, 0x60c6, 0xa844, 0x60ca, 0xb86c, 0x60ce, 0x60af, 0x95d5,\r
++      0x60d7, 0x0000, 0x080c, 0xab06, 0x2009, 0x07d0, 0x60c4, 0x9084,\r
++      0xfff0, 0x9005, 0x0110, 0x2009, 0x1b58, 0x080c, 0x857e, 0x003e,\r
++      0x004e, 0x005e, 0x00ce, 0x00de, 0x00ee, 0x009e, 0x00be, 0x0005,\r
++      0x7804, 0x9086, 0x0040, 0x0904, 0xa1e0, 0x9185, 0x0100, 0x6062,\r
++      0x6266, 0x636a, 0x646e, 0x6073, 0x0809, 0x6077, 0x0008, 0x60af,\r
++      0x95d5, 0x60d7, 0x0000, 0xb88c, 0x8000, 0x9084, 0x00ff, 0xb88e,\r
++      0x8007, 0x607a, 0x607f, 0x0000, 0x2f00, 0x6082, 0x7808, 0x6086,\r
++      0x7814, 0x2048, 0xa838, 0x608a, 0xa834, 0x608e, 0xa848, 0x60c6,\r
++      0xa844, 0x60ca, 0xb86c, 0x60ce, 0xbac0, 0x629e, 0x080c, 0xab06,\r
++      0x2009, 0x07d0, 0x60c4, 0x9084, 0xfff0, 0x9005, 0x0110, 0x2009,\r
++      0x1b58, 0x080c, 0x857e, 0x003e, 0x004e, 0x005e, 0x00ce, 0x00de,\r
++      0x00ee, 0x009e, 0x00be, 0x0005, 0x7814, 0x2048, 0xa87c, 0x9084,\r
++      0x0003, 0x9086, 0x0002, 0x0904, 0xa1fc, 0x9185, 0x0100, 0x6062,\r
++      0x6266, 0x636a, 0x646e, 0x6073, 0x0880, 0x6077, 0x0008, 0xb88c,\r
++      0x8000, 0x9084, 0x00ff, 0xb88e, 0x8007, 0x607a, 0x7838, 0x607e,\r
++      0x2f00, 0x6086, 0x7808, 0x6082, 0xa890, 0x608a, 0xa88c, 0x608e,\r
++      0xa8b0, 0x60c6, 0xa8ac, 0x60ca, 0xa8ac, 0x7930, 0x9108, 0x7932,\r
++      0xa8b0, 0x792c, 0x9109, 0x792e, 0xb86c, 0x60ce, 0x60af, 0x95d5,\r
++      0x60d7, 0x0000, 0xbac0, 0x629e, 0x080c, 0xaae3, 0x0804, 0xa190,\r
++      0xb8cc, 0xd084, 0x0148, 0xb88c, 0x7814, 0x2048, 0xb88c, 0x7846,\r
++      0xa836, 0x2900, 0xa83a, 0xb04a, 0x9185, 0x0600, 0x6062, 0x6266,\r
++      0x636a, 0x646e, 0x6073, 0x0829, 0x6077, 0x0000, 0x60af, 0x9575,\r
++      0x60d7, 0x0000, 0x0804, 0xa173, 0x9185, 0x0700, 0x6062, 0x6266,\r
++      0x636a, 0x646e, 0x7824, 0xd0cc, 0x7826, 0x0118, 0x6073, 0x0889,\r
++      0x0010, 0x6073, 0x0898, 0x6077, 0x0000, 0xb88c, 0x8000, 0x9084,\r
++      0x00ff, 0xb88e, 0x8007, 0x607a, 0x607f, 0x0000, 0x2f00, 0x6086,\r
++      0x7808, 0x6082, 0xa838, 0x608a, 0xa834, 0x608e, 0xa848, 0x60c6,\r
++      0xa844, 0x60ca, 0xb86c, 0x60ce, 0x60af, 0x95d5, 0x60d7, 0x0000,\r
++      0xbac0, 0x629e, 0x7824, 0xd0cc, 0x0120, 0x080c, 0xab06, 0x0804,\r
++      0xa190, 0x080c, 0xaae3, 0x0804, 0xa190, 0x7a10, 0x00b6, 0x2258,\r
++      0xba8c, 0x8210, 0x9294, 0x00ff, 0xba8e, 0x00be, 0x8217, 0x0005,\r
++      0x00d6, 0x2069, 0x19e7, 0x6843, 0x0001, 0x00de, 0x0005, 0x60a3,\r
++      0x0056, 0x60a7, 0x9575, 0x00f1, 0x080c, 0x8570, 0x0005, 0x0016,\r
++      0x2001, 0x180c, 0x200c, 0x9184, 0x0600, 0x9086, 0x0600, 0x0128,\r
++      0x0089, 0x080c, 0x8570, 0x001e, 0x0005, 0xc1e5, 0x2001, 0x180c,\r
++      0x2102, 0x2001, 0x19e8, 0x2003, 0x0000, 0x2001, 0x19f0, 0x2003,\r
++      0x0000, 0x0c88, 0x0006, 0x6014, 0x9084, 0x1804, 0x9085, 0x0009,\r
++      0x6016, 0x000e, 0x0005, 0x0016, 0x00c6, 0x0006, 0x2061, 0x0100,\r
++      0x61a4, 0x60a7, 0x95f5, 0x6014, 0x9084, 0x1804, 0x9085, 0x0008,\r
++      0x6016, 0x000e, 0xa001, 0xa001, 0xa001, 0x61a6, 0x00ce, 0x001e,\r
++      0x0005, 0x00c6, 0x00d6, 0x0016, 0x0026, 0x2061, 0x0100, 0x2069,\r
++      0x0140, 0x080c, 0x73bc, 0x11e8, 0x2001, 0x1a03, 0x2004, 0x9005,\r
++      0x1904, 0xa2d9, 0x0066, 0x2031, 0x0001, 0x080c, 0x746c, 0x006e,\r
++      0x1160, 0x2061, 0x0100, 0x6020, 0xd0b4, 0x1120, 0x6024, 0xd084,\r
++      0x090c, 0x0dd5, 0x080c, 0x8570, 0x0460, 0x00c6, 0x2061, 0x19e7,\r
++      0x00d0, 0x6904, 0x9194, 0x4000, 0x0548, 0x080c, 0xa273, 0x080c,\r
++      0x2cff, 0x00c6, 0x2061, 0x19e7, 0x6128, 0x9192, 0x0008, 0x1258,\r
++      0x8108, 0x612a, 0x6124, 0x00ce, 0x81ff, 0x0198, 0x080c, 0x8570,\r
++      0x080c, 0xa26a, 0x0070, 0x6124, 0x91e5, 0x0000, 0x0140, 0x080c,\r
++      0xe9fe, 0x080c, 0x8579, 0x2009, 0x0014, 0x080c, 0xaedc, 0x00ce,\r
++      0x0000, 0x002e, 0x001e, 0x00de, 0x00ce, 0x0005, 0x2001, 0x1a03,\r
++      0x2004, 0x9005, 0x1db0, 0x00c6, 0x2061, 0x19e7, 0x6128, 0x9192,\r
++      0x0003, 0x1e08, 0x8108, 0x612a, 0x00ce, 0x080c, 0x8570, 0x080c,\r
++      0x5ed9, 0x2009, 0x1846, 0x2114, 0x8210, 0x220a, 0x0c10, 0x0096,\r
++      0x00c6, 0x00d6, 0x00e6, 0x0016, 0x0026, 0x080c, 0x8586, 0x2071,\r
++      0x19e7, 0x713c, 0x81ff, 0x0904, 0xa37d, 0x2061, 0x0100, 0x2069,\r
++      0x0140, 0x080c, 0x73bc, 0x1500, 0x0036, 0x2019, 0x0002, 0x080c,\r
++      0xa5b6, 0x003e, 0x713c, 0x2160, 0x080c, 0xe9fe, 0x2009, 0x004a,\r
++      0x6220, 0x9296, 0x0009, 0x1130, 0x6114, 0x2148, 0xa87b, 0x0006,\r
++      0x2009, 0x004a, 0x080c, 0xaedc, 0x0066, 0x2031, 0x0001, 0x080c,\r
++      0x746c, 0x006e, 0x0804, 0xa37d, 0x080c, 0xa389, 0x0904, 0xa37d,\r
++      0x6904, 0xd1f4, 0x0904, 0xa384, 0x080c, 0x2cff, 0x00c6, 0x703c,\r
++      0x9065, 0x090c, 0x0dd5, 0x6020, 0x00ce, 0x9086, 0x0006, 0x1528,\r
++      0x61c8, 0x60c4, 0x9105, 0x1508, 0x2009, 0x180c, 0x2104, 0xd0d4,\r
++      0x01e0, 0x6214, 0x9294, 0x1800, 0x1128, 0x6224, 0x9294, 0x0002,\r
++      0x1560, 0x0030, 0xc0d4, 0x200a, 0xd0cc, 0x0110, 0x080c, 0x2c52,\r
++      0x6014, 0x9084, 0xe7fd, 0x9085, 0x0010, 0x6016, 0x703c, 0x2060,\r
++      0x2009, 0x0049, 0x080c, 0xaedc, 0x00c0, 0x0036, 0x2019, 0x0001,\r
++      0x080c, 0xa5b6, 0x003e, 0x713c, 0x2160, 0x080c, 0xe9fe, 0x2009,\r
++      0x004a, 0x6220, 0x9296, 0x0009, 0x1130, 0x6114, 0x2148, 0xa87b,\r
++      0x0006, 0x2009, 0x004a, 0x080c, 0xaedc, 0x002e, 0x001e, 0x00ee,\r
++      0x00de, 0x00ce, 0x009e, 0x0005, 0xd1ec, 0x1904, 0xa334, 0x0804,\r
++      0xa336, 0x00d6, 0x00c6, 0x0096, 0x703c, 0x9065, 0x090c, 0x0dd5,\r
++      0x2001, 0x1837, 0x2004, 0xd09c, 0x1904, 0xa415, 0x2001, 0x0306,\r
++      0x200c, 0x9184, 0x0030, 0x0904, 0xa415, 0x9184, 0x0048, 0x9086,\r
++      0x0008, 0x1904, 0xa415, 0x2001, 0x020b, 0x2004, 0xd0fc, 0x0904,\r
++      0xa415, 0xd08c, 0x0904, 0xa415, 0x2009, 0x1a80, 0x2104, 0x8000,\r
++      0x0208, 0x200a, 0x2069, 0x0100, 0x6914, 0x918c, 0x0184, 0x918d,\r
++      0x0010, 0x6916, 0x69c8, 0x2011, 0x0020, 0x68c8, 0x9106, 0x1570,\r
++      0x8211, 0x1dd8, 0x2001, 0x0306, 0x2003, 0x4800, 0x2001, 0x009a,\r
++      0x2003, 0x0004, 0x2001, 0x1a66, 0x2003, 0x0000, 0x2001, 0x1a6f,\r
++      0x2003, 0x0000, 0x6a88, 0x698c, 0x2200, 0x9105, 0x1120, 0x2c10,\r
++      0x080c, 0x1bad, 0x0040, 0x6014, 0x2048, 0xaa3a, 0xa936, 0x6ac4,\r
++      0x69c8, 0xa946, 0xaa4a, 0x0126, 0x00c6, 0x2091, 0x2400, 0x002e,\r
++      0x080c, 0x1c46, 0x190c, 0x0dd5, 0x012e, 0x0090, 0x2009, 0x1a81,\r
++      0x2104, 0x8000, 0x0208, 0x200a, 0x69c8, 0x2011, 0x0020, 0x8211,\r
++      0x1df0, 0x68c8, 0x9106, 0x1dc0, 0x69c4, 0x68c8, 0x9105, 0x0160,\r
++      0x6824, 0xd08c, 0x0110, 0x6827, 0x0002, 0x7048, 0xc085, 0x704a,\r
++      0x0079, 0x7048, 0xc084, 0x704a, 0x2009, 0x07d0, 0x080c, 0x857e,\r
++      0x9006, 0x009e, 0x00ce, 0x00de, 0x0005, 0x9085, 0x0001, 0x0cc8,\r
++      0x0026, 0x00e6, 0x2071, 0x19e7, 0x7048, 0xd084, 0x01d8, 0x713c,\r
++      0x81ff, 0x01c0, 0x2071, 0x0100, 0x9188, 0x0008, 0x2114, 0x928e,\r
++      0x0006, 0x1138, 0x7014, 0x9084, 0x1984, 0x9085, 0x0012, 0x7016,\r
++      0x0048, 0x928e, 0x0009, 0x0db0, 0x7014, 0x9084, 0x1984, 0x9085,\r
++      0x0016, 0x7016, 0x00ee, 0x002e, 0x0005, 0x00b6, 0x00e6, 0x00d6,\r
++      0x00c6, 0x0066, 0x0056, 0x0046, 0x0006, 0x0126, 0x2091, 0x8000,\r
++      0x6010, 0x2058, 0xbca0, 0x2071, 0x19e7, 0x7018, 0x2058, 0x8bff,\r
++      0x0190, 0xb8a0, 0x9406, 0x0118, 0xb854, 0x2058, 0x0cc0, 0x6014,\r
++      0x0096, 0x2048, 0xac6c, 0xad70, 0xae78, 0x009e, 0x080c, 0x6731,\r
++      0x0110, 0x9085, 0x0001, 0x012e, 0x000e, 0x004e, 0x005e, 0x006e,\r
++      0x00ce, 0x00de, 0x00ee, 0x00be, 0x0005, 0x080c, 0x9c60, 0x7003,\r
++      0x1200, 0x7838, 0x7012, 0x783c, 0x7016, 0x00c6, 0x7820, 0x9086,\r
++      0x0004, 0x1148, 0x7810, 0x9005, 0x0130, 0x00b6, 0x2058, 0xb810,\r
++      0xb914, 0x00be, 0x0020, 0x2061, 0x1800, 0x607c, 0x6180, 0x9084,\r
++      0x00ff, 0x700a, 0x710e, 0x00ce, 0x60c3, 0x002c, 0x0804, 0xa247,\r
++      0x080c, 0x9c60, 0x7003, 0x0f00, 0x7808, 0xd09c, 0x0128, 0xb810,\r
++      0x9084, 0x00ff, 0x700a, 0xb814, 0x700e, 0x60c3, 0x0008, 0x0804,\r
++      0xa247, 0x0156, 0x080c, 0x9cab, 0x7003, 0x0200, 0x080c, 0x85d9,\r
++      0x20a9, 0x0006, 0x2011, 0xfff4, 0x2019, 0xfff5, 0x9ef0, 0x0002,\r
++      0x2305, 0x2072, 0x8e70, 0x2205, 0x2072, 0x8e70, 0x9398, 0x0002,\r
++      0x9290, 0x0002, 0x1f04, 0xa4b0, 0x60c3, 0x001c, 0x015e, 0x0804,\r
++      0xa247, 0x0016, 0x0026, 0x080c, 0x9c87, 0x080c, 0x9c99, 0x9e80,\r
++      0x0004, 0x20e9, 0x0000, 0x20a0, 0x7814, 0x0096, 0x2048, 0xa800,\r
++      0x2048, 0xa860, 0x20e0, 0xa85c, 0x9080, 0x0021, 0x2098, 0x009e,\r
++      0x7808, 0x9088, 0x0002, 0x21a8, 0x9192, 0x0010, 0x1250, 0x4003,\r
++      0x9080, 0x0004, 0x8003, 0x60c2, 0x080c, 0xa247, 0x002e, 0x001e,\r
++      0x0005, 0x20a9, 0x0010, 0x4003, 0x080c, 0xab0c, 0x20a1, 0x0240,\r
++      0x22a8, 0x4003, 0x0c68, 0x080c, 0x9c60, 0x7003, 0x6200, 0x7808,\r
++      0x700e, 0x60c3, 0x0008, 0x0804, 0xa247, 0x0016, 0x0026, 0x080c,\r
++      0x9c60, 0x20e9, 0x0000, 0x20a1, 0x024c, 0x7814, 0x0096, 0x2048,\r
++      0xa800, 0x2048, 0xa860, 0x20e0, 0xa85c, 0x9080, 0x0023, 0x2098,\r
++      0x009e, 0x7808, 0x9088, 0x0002, 0x21a8, 0x4003, 0x8003, 0x60c2,\r
++      0x080c, 0xa247, 0x002e, 0x001e, 0x0005, 0x00e6, 0x00c6, 0x0006,\r
++      0x0126, 0x2091, 0x8000, 0x2071, 0x19e7, 0x700c, 0x2060, 0x8cff,\r
++      0x0178, 0x080c, 0xcd3b, 0x1110, 0x080c, 0xb813, 0x600c, 0x0006,\r
++      0x080c, 0xcfa2, 0x080c, 0xae61, 0x080c, 0xa692, 0x00ce, 0x0c78,\r
++      0x2c00, 0x700e, 0x700a, 0x012e, 0x000e, 0x00ce, 0x00ee, 0x0005,\r
++      0x0126, 0x0156, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0026,\r
++      0x0016, 0x0006, 0x2091, 0x8000, 0x2001, 0x180c, 0x200c, 0x918c,\r
++      0xe7ff, 0x2102, 0x2069, 0x0100, 0x2079, 0x0140, 0x2071, 0x19e7,\r
++      0x7024, 0x2060, 0x8cff, 0x01f8, 0x080c, 0xa273, 0x6ac0, 0x68c3,\r
++      0x0000, 0x080c, 0x8579, 0x00c6, 0x2061, 0x0100, 0x080c, 0xac5d,\r
++      0x00ce, 0x20a9, 0x01f4, 0x0461, 0x2009, 0x0013, 0x080c, 0xaedc,\r
++      0x000e, 0x001e, 0x002e, 0x006e, 0x00ce, 0x00de, 0x00ee, 0x00fe,\r
++      0x015e, 0x012e, 0x0005, 0x2001, 0x1800, 0x2004, 0x9096, 0x0001,\r
++      0x0d78, 0x9096, 0x0004, 0x0d60, 0x080c, 0x8579, 0x6814, 0x9084,\r
++      0x0001, 0x0110, 0x68a7, 0x95f5, 0x6817, 0x0008, 0x68c3, 0x0000,\r
++      0x2011, 0x5e83, 0x080c, 0x84f3, 0x20a9, 0x01f4, 0x0009, 0x08c0,\r
++      0x6824, 0xd094, 0x0140, 0x6827, 0x0004, 0x7804, 0x9084, 0x4000,\r
++      0x190c, 0x2cff, 0x0090, 0xd084, 0x0118, 0x6827, 0x0001, 0x0010,\r
++      0x1f04, 0xa598, 0x7804, 0x9084, 0x1000, 0x0138, 0x2001, 0x0100,\r
++      0x080c, 0x2cef, 0x9006, 0x080c, 0x2cef, 0x0005, 0x0126, 0x0156,\r
++      0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0026, 0x0016, 0x0006,\r
++      0x2091, 0x8000, 0x2001, 0x180c, 0x200c, 0x918c, 0xdbff, 0x2102,\r
++      0x2069, 0x0100, 0x2079, 0x0140, 0x2071, 0x19e7, 0x703c, 0x2060,\r
++      0x8cff, 0x0904, 0xa648, 0x9386, 0x0002, 0x1128, 0x6814, 0x9084,\r
++      0x0002, 0x0904, 0xa648, 0x68af, 0x95f5, 0x6817, 0x0010, 0x2009,\r
++      0x00fa, 0x8109, 0x1df0, 0x69c6, 0x68cb, 0x0008, 0x080c, 0x8586,\r
++      0x080c, 0x1ffa, 0x0046, 0x2009, 0x00a5, 0x080c, 0x0e51, 0x2021,\r
++      0x0169, 0x2404, 0x9084, 0x000f, 0x9086, 0x0004, 0x11f8, 0x68af,\r
++      0x95f5, 0x68c6, 0x68cb, 0x0008, 0x00e6, 0x00f6, 0x2079, 0x0090,\r
++      0x2071, 0x1a66, 0x6814, 0x9084, 0x1984, 0x9085, 0x0012, 0x6816,\r
++      0x782b, 0x0008, 0x7003, 0x0000, 0x00fe, 0x00ee, 0x9386, 0x0002,\r
++      0x1128, 0x7884, 0x9005, 0x1110, 0x7887, 0x0001, 0x2001, 0x1981,\r
++      0x200c, 0x080c, 0x0e51, 0x004e, 0x20a9, 0x03e8, 0x6824, 0xd094,\r
++      0x0140, 0x6827, 0x0004, 0x7804, 0x9084, 0x4000, 0x190c, 0x2cff,\r
++      0x0090, 0xd08c, 0x0118, 0x6827, 0x0002, 0x0010, 0x1f04, 0xa61e,\r
++      0x7804, 0x9084, 0x1000, 0x0138, 0x2001, 0x0100, 0x080c, 0x2cef,\r
++      0x9006, 0x080c, 0x2cef, 0x6827, 0x4000, 0x6824, 0x83ff, 0x1140,\r
++      0x2009, 0x0049, 0x6020, 0x9086, 0x0009, 0x0110, 0x080c, 0xaedc,\r
++      0x000e, 0x001e, 0x002e, 0x006e, 0x00ce, 0x00de, 0x00ee, 0x00fe,\r
++      0x015e, 0x012e, 0x0005, 0x00d6, 0x0126, 0x2091, 0x8000, 0x2069,\r
++      0x19e7, 0x6a06, 0x012e, 0x00de, 0x0005, 0x00d6, 0x0126, 0x2091,\r
++      0x8000, 0x2069, 0x19e7, 0x6a32, 0x012e, 0x00de, 0x0005, 0x080c,\r
++      0x9e19, 0x7854, 0x7032, 0x7042, 0x7047, 0x1000, 0x00f8, 0x080c,\r
++      0x9e19, 0x7854, 0x7032, 0x7042, 0x7047, 0x4000, 0x00b8, 0x080c,\r
++      0x9e19, 0x7854, 0x7032, 0x7042, 0x7047, 0x2000, 0x0078, 0x080c,\r
++      0x9e19, 0x7854, 0x7032, 0x7042, 0x7047, 0x0400, 0x0038, 0x080c,\r
++      0x9e19, 0x7854, 0x7032, 0x7042, 0x7047, 0x0200, 0x60c3, 0x0020,\r
++      0x0804, 0xa247, 0x00e6, 0x2071, 0x19e7, 0x7020, 0x9005, 0x0110,\r
++      0x8001, 0x7022, 0x00ee, 0x0005, 0x00f6, 0x00e6, 0x00d6, 0x00c6,\r
++      0x0076, 0x0066, 0x0006, 0x0126, 0x2091, 0x8000, 0x2071, 0x19e7,\r
++      0x7614, 0x2660, 0x2678, 0x2039, 0x0001, 0x87ff, 0x0904, 0xa737,\r
++      0x8cff, 0x0904, 0xa737, 0x6020, 0x9086, 0x0006, 0x1904, 0xa732,\r
++      0x88ff, 0x0138, 0x2800, 0x9c06, 0x1904, 0xa732, 0x2039, 0x0000,\r
++      0x0050, 0x6010, 0x9b06, 0x1904, 0xa732, 0x85ff, 0x0120, 0x6054,\r
++      0x9106, 0x1904, 0xa732, 0x7024, 0x9c06, 0x15b0, 0x2069, 0x0100,\r
++      0x68c0, 0x9005, 0x1160, 0x6824, 0xd084, 0x0148, 0x6827, 0x0001,\r
++      0x080c, 0x8579, 0x080c, 0xa7bc, 0x7027, 0x0000, 0x0428, 0x080c,\r
++      0x8579, 0x6820, 0xd0b4, 0x0110, 0x68a7, 0x95f5, 0x6817, 0x0008,\r
++      0x68c3, 0x0000, 0x080c, 0xa7bc, 0x7027, 0x0000, 0x0036, 0x2069,\r
++      0x0140, 0x6b04, 0x9384, 0x1000, 0x0138, 0x2001, 0x0100, 0x080c,\r
++      0x2cef, 0x9006, 0x080c, 0x2cef, 0x2069, 0x0100, 0x6824, 0xd084,\r
++      0x0110, 0x6827, 0x0001, 0x003e, 0x7014, 0x9c36, 0x1110, 0x660c,\r
++      0x7616, 0x7010, 0x9c36, 0x1140, 0x2c00, 0x9f36, 0x0118, 0x2f00,\r
++      0x7012, 0x0010, 0x7013, 0x0000, 0x660c, 0x0066, 0x2c00, 0x9f06,\r
++      0x0110, 0x7e0e, 0x0008, 0x2678, 0x89ff, 0x1168, 0x600f, 0x0000,\r
++      0x6014, 0x0096, 0x2048, 0x080c, 0xcb33, 0x0110, 0x080c, 0xe551,\r
++      0x009e, 0x080c, 0xae92, 0x080c, 0xa692, 0x88ff, 0x1190, 0x00ce,\r
++      0x0804, 0xa6ad, 0x2c78, 0x600c, 0x2060, 0x0804, 0xa6ad, 0x9006,\r
++      0x012e, 0x000e, 0x006e, 0x007e, 0x00ce, 0x00de, 0x00ee, 0x00fe,\r
++      0x0005, 0x601b, 0x0000, 0x00ce, 0x98c5, 0x0001, 0x0c88, 0x00f6,\r
++      0x00e6, 0x00d6, 0x0096, 0x00c6, 0x0066, 0x0026, 0x0006, 0x0126,\r
++      0x2091, 0x8000, 0x2071, 0x19e7, 0x7638, 0x2660, 0x2678, 0x8cff,\r
++      0x0904, 0xa7ab, 0x6020, 0x9086, 0x0006, 0x1904, 0xa7a6, 0x87ff,\r
++      0x0128, 0x2700, 0x9c06, 0x1904, 0xa7a6, 0x0040, 0x6010, 0x9b06,\r
++      0x15e8, 0x85ff, 0x0118, 0x6054, 0x9106, 0x15c0, 0x703c, 0x9c06,\r
++      0x1168, 0x0036, 0x2019, 0x0001, 0x080c, 0xa5b6, 0x7033, 0x0000,\r
++      0x9006, 0x703e, 0x7042, 0x7046, 0x704a, 0x003e, 0x7038, 0x9c36,\r
++      0x1110, 0x660c, 0x763a, 0x7034, 0x9c36, 0x1140, 0x2c00, 0x9f36,\r
++      0x0118, 0x2f00, 0x7036, 0x0010, 0x7037, 0x0000, 0x660c, 0x0066,\r
++      0x2c00, 0x9f06, 0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f, 0x0000,\r
++      0x6014, 0x2048, 0x080c, 0xcb33, 0x0110, 0x080c, 0xe551, 0x080c,\r
++      0xae92, 0x87ff, 0x1198, 0x00ce, 0x0804, 0xa757, 0x2c78, 0x600c,\r
++      0x2060, 0x0804, 0xa757, 0x9006, 0x012e, 0x000e, 0x002e, 0x006e,\r
++      0x00ce, 0x009e, 0x00de, 0x00ee, 0x00fe, 0x0005, 0x601b, 0x0000,\r
++      0x00ce, 0x97bd, 0x0001, 0x0c80, 0x00e6, 0x2071, 0x19e7, 0x2001,\r
++      0x1800, 0x2004, 0x9086, 0x0002, 0x1118, 0x7007, 0x0005, 0x0010,\r
++      0x7007, 0x0000, 0x00ee, 0x0005, 0x00f6, 0x00e6, 0x00c6, 0x0066,\r
++      0x0026, 0x0006, 0x0126, 0x2091, 0x8000, 0x2071, 0x19e7, 0x2c10,\r
++      0x7638, 0x2660, 0x2678, 0x8cff, 0x0518, 0x2200, 0x9c06, 0x11e0,\r
++      0x7038, 0x9c36, 0x1110, 0x660c, 0x763a, 0x7034, 0x9c36, 0x1140,\r
++      0x2c00, 0x9f36, 0x0118, 0x2f00, 0x7036, 0x0010, 0x7037, 0x0000,\r
++      0x660c, 0x2c00, 0x9f06, 0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f,\r
++      0x0000, 0x9085, 0x0001, 0x0020, 0x2c78, 0x600c, 0x2060, 0x08d8,\r
++      0x012e, 0x000e, 0x002e, 0x006e, 0x00ce, 0x00ee, 0x00fe, 0x0005,\r
++      0x0096, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0026, 0x0006,\r
++      0x0126, 0x2091, 0x8000, 0x2071, 0x19e7, 0x760c, 0x2660, 0x2678,\r
++      0x8cff, 0x0904, 0xa898, 0x6010, 0x00b6, 0x2058, 0xb8a0, 0x00be,\r
++      0x9206, 0x1904, 0xa893, 0x7024, 0x9c06, 0x1520, 0x2069, 0x0100,\r
++      0x68c0, 0x9005, 0x0904, 0xa86f, 0x080c, 0xa273, 0x68c3, 0x0000,\r
++      0x080c, 0xa7bc, 0x7027, 0x0000, 0x0036, 0x2069, 0x0140, 0x6b04,\r
++      0x9384, 0x1000, 0x0138, 0x2001, 0x0100, 0x080c, 0x2cef, 0x9006,\r
++      0x080c, 0x2cef, 0x2069, 0x0100, 0x6824, 0xd084, 0x0110, 0x6827,\r
++      0x0001, 0x003e, 0x700c, 0x9c36, 0x1110, 0x660c, 0x760e, 0x7008,\r
++      0x9c36, 0x1140, 0x2c00, 0x9f36, 0x0118, 0x2f00, 0x700a, 0x0010,\r
++      0x700b, 0x0000, 0x660c, 0x0066, 0x2c00, 0x9f06, 0x0110, 0x7e0e,\r
++      0x0008, 0x2678, 0x600f, 0x0000, 0x080c, 0xcd2a, 0x1158, 0x080c,\r
++      0x31e8, 0x080c, 0xcd3b, 0x11f0, 0x080c, 0xb813, 0x00d8, 0x080c,\r
++      0xa7bc, 0x08c0, 0x080c, 0xcd3b, 0x1118, 0x080c, 0xb813, 0x0090,\r
++      0x6014, 0x2048, 0x080c, 0xcb33, 0x0168, 0x6020, 0x9086, 0x0003,\r
++      0x1508, 0xa867, 0x0103, 0xab7a, 0xa877, 0x0000, 0x080c, 0x6c75,\r
++      0x080c, 0xcd1e, 0x080c, 0xcfa2, 0x080c, 0xae92, 0x080c, 0xa692,\r
++      0x00ce, 0x0804, 0xa818, 0x2c78, 0x600c, 0x2060, 0x0804, 0xa818,\r
++      0x012e, 0x000e, 0x002e, 0x006e, 0x00ce, 0x00de, 0x00ee, 0x00fe,\r
++      0x009e, 0x0005, 0x6020, 0x9086, 0x0006, 0x1d20, 0x080c, 0xe551,\r
++      0x0c08, 0x00d6, 0x080c, 0x9cab, 0x7003, 0x0200, 0x7007, 0x0014,\r
++      0x60c3, 0x0014, 0x20e1, 0x0001, 0x2099, 0x1989, 0x20e9, 0x0000,\r
++      0x20a1, 0x0250, 0x20a9, 0x0004, 0x4003, 0x7023, 0x0004, 0x7027,\r
++      0x7878, 0x080c, 0xa247, 0x00de, 0x0005, 0x080c, 0x9cab, 0x700b,\r
++      0x0800, 0x7814, 0x9084, 0xff00, 0x700e, 0x7814, 0x9084, 0x00ff,\r
++      0x7022, 0x782c, 0x7026, 0x7858, 0x9084, 0x00ff, 0x9085, 0x0200,\r
++      0x7002, 0x7858, 0x9084, 0xff00, 0x8007, 0x7006, 0x60c2, 0x0804,\r
++      0xa247, 0x00b6, 0x00d6, 0x0016, 0x00d6, 0x2f68, 0x2009, 0x0035,\r
++      0x080c, 0xd1a8, 0x00de, 0x1904, 0xa946, 0x080c, 0x9c60, 0x7003,\r
++      0x1300, 0x782c, 0x080c, 0xaa48, 0x2068, 0x6820, 0x9086, 0x0003,\r
++      0x0560, 0x7810, 0x2058, 0xbaa0, 0x080c, 0xadcb, 0x11d8, 0x9286,\r
++      0x007e, 0x1128, 0x700b, 0x00ff, 0x700f, 0xfffe, 0x0498, 0x9286,\r
++      0x007f, 0x1128, 0x700b, 0x00ff, 0x700f, 0xfffd, 0x0458, 0x9284,\r
++      0xff80, 0x0180, 0x9286, 0x0080, 0x1128, 0x700b, 0x00ff, 0x700f,\r
++      0xfffc, 0x0400, 0x92d8, 0x1000, 0x2b5c, 0xb810, 0x700a, 0xb814,\r
++      0x700e, 0x00c0, 0x6098, 0x700e, 0x00a8, 0x080c, 0xadcb, 0x1130,\r
++      0x7810, 0x2058, 0xb8a0, 0x9082, 0x007e, 0x0250, 0x00d6, 0x2069,\r
++      0x181f, 0x2d04, 0x700a, 0x8d68, 0x2d04, 0x700e, 0x00de, 0x0010,\r
++      0x6034, 0x700e, 0x7838, 0x7012, 0x783c, 0x7016, 0x60c3, 0x000c,\r
++      0x001e, 0x00de, 0x080c, 0xa247, 0x00be, 0x0005, 0x781b, 0x0001,\r
++      0x7803, 0x0006, 0x001e, 0x00de, 0x00be, 0x0005, 0x792c, 0x9180,\r
++      0x0008, 0x200c, 0x9186, 0x0006, 0x01c0, 0x9186, 0x0003, 0x0904,\r
++      0xa9c0, 0x9186, 0x0005, 0x0904, 0xa9a9, 0x9186, 0x0004, 0x05d8,\r
++      0x9186, 0x0008, 0x0904, 0xa9b1, 0x7807, 0x0037, 0x782f, 0x0003,\r
++      0x7817, 0x1700, 0x080c, 0xaa25, 0x0005, 0x080c, 0xa9e6, 0x00d6,\r
++      0x0026, 0x792c, 0x2168, 0x2009, 0x4000, 0x6800, 0x0002, 0xa98a,\r
++      0xa995, 0xa98c, 0xa995, 0xa991, 0xa98a, 0xa98a, 0xa995, 0xa995,\r
++      0xa995, 0xa995, 0xa98a, 0xa98a, 0xa98a, 0xa98a, 0xa98a, 0xa995,\r
++      0xa98a, 0xa995, 0x080c, 0x0dd5, 0x6824, 0xd0e4, 0x0110, 0xd0cc,\r
++      0x0110, 0x900e, 0x0010, 0x2009, 0x2000, 0x682c, 0x7022, 0x6830,\r
++      0x7026, 0x0804, 0xa9df, 0x080c, 0xa9e6, 0x00d6, 0x0026, 0x792c,\r
++      0x2168, 0x2009, 0x4000, 0x6a00, 0x9286, 0x0002, 0x1108, 0x900e,\r
++      0x04b0, 0x04e1, 0x00d6, 0x0026, 0x792c, 0x2168, 0x2009, 0x4000,\r
++      0x0470, 0x04a1, 0x00d6, 0x0026, 0x792c, 0x2168, 0x2009, 0x4000,\r
++      0x9286, 0x0005, 0x0118, 0x9286, 0x0002, 0x1108, 0x900e, 0x00f8,\r
++      0x0429, 0x00d6, 0x0026, 0x792c, 0x2168, 0x6814, 0x0096, 0x2048,\r
++      0xa9ac, 0xa834, 0x9112, 0xa9b0, 0xa838, 0x009e, 0x9103, 0x7022,\r
++      0x7226, 0x792c, 0x9180, 0x0000, 0x2004, 0x908e, 0x0002, 0x0130,\r
++      0x908e, 0x0004, 0x0118, 0x2009, 0x4000, 0x0008, 0x900e, 0x712a,\r
++      0x60c3, 0x0018, 0x002e, 0x00de, 0x0804, 0xa247, 0x00b6, 0x0036,\r
++      0x0046, 0x0056, 0x0066, 0x080c, 0x9cab, 0x9006, 0x7003, 0x0200,\r
++      0x7938, 0x710a, 0x793c, 0x710e, 0x7810, 0x2058, 0xb8a0, 0x080c,\r
++      0xadcb, 0x1118, 0x9092, 0x007e, 0x0268, 0x00d6, 0x2069, 0x181f,\r
++      0x2d2c, 0x8d68, 0x2d34, 0x90d8, 0x1000, 0x2b5c, 0xbb10, 0xbc14,\r
++      0x00de, 0x0028, 0x901e, 0x6498, 0x2029, 0x0000, 0x6634, 0x782c,\r
++      0x9080, 0x0008, 0x2004, 0x9086, 0x0003, 0x1128, 0x7512, 0x7616,\r
++      0x731a, 0x741e, 0x0020, 0x7312, 0x7416, 0x751a, 0x761e, 0x006e,\r
++      0x005e, 0x004e, 0x003e, 0x00be, 0x0005, 0x080c, 0x9cab, 0x7003,\r
++      0x0100, 0x782c, 0x700a, 0x7814, 0x700e, 0x700e, 0x60c3, 0x0008,\r
++      0x0804, 0xa247, 0x080c, 0x9c57, 0x7003, 0x1400, 0x7838, 0x700a,\r
++      0x0079, 0x783c, 0x700e, 0x782c, 0x7012, 0x7830, 0x7016, 0x7834,\r
++      0x9084, 0x00ff, 0x8007, 0x701a, 0x60c3, 0x0010, 0x0804, 0xa247,\r
++      0x00e6, 0x2071, 0x0240, 0x0006, 0x00f6, 0x2078, 0x7810, 0x00b6,\r
++      0x2058, 0xb8cc, 0xd084, 0x0120, 0x7848, 0x702a, 0x7844, 0x702e,\r
++      0x00be, 0x00fe, 0x000e, 0x00ee, 0x0005, 0x080c, 0x9ca2, 0x7003,\r
++      0x0100, 0x782c, 0x700a, 0x7814, 0x700e, 0x60c3, 0x0008, 0x0804,\r
++      0xa247, 0x0021, 0x60c3, 0x0000, 0x0804, 0xa247, 0x00d6, 0x080c,\r
++      0xab21, 0xb810, 0x9085, 0x0300, 0x7002, 0xb814, 0x7006, 0x2069,\r
++      0x1800, 0x687c, 0x700a, 0x6880, 0x700e, 0x7013, 0x0819, 0x080c,\r
++      0xa235, 0x721a, 0x2f10, 0x7222, 0x7a08, 0x7226, 0x2071, 0x024c,\r
++      0x00de, 0x0005, 0x00a9, 0x7914, 0x712a, 0x60c3, 0x0000, 0x60a7,\r
++      0x9575, 0x0026, 0x080c, 0x2ba5, 0x0228, 0x2011, 0x0101, 0x2204,\r
++      0xc0c5, 0x2012, 0x002e, 0x080c, 0xa26a, 0x080c, 0x8570, 0x0005,\r
++      0x0036, 0x0096, 0x00d6, 0x00e6, 0x7858, 0x2048, 0xaa7c, 0x9296,\r
++      0x00c0, 0x9294, 0xfffd, 0xaa7e, 0xaa80, 0x9294, 0x0300, 0xaa82,\r
++      0xa96c, 0x9194, 0x00ff, 0xab74, 0x9384, 0x00ff, 0x908d, 0xc200,\r
++      0xa96e, 0x9384, 0xff00, 0x9215, 0xaa76, 0xa870, 0xaa78, 0xa87a,\r
++      0xaa72, 0x00d6, 0x2069, 0x0200, 0x080c, 0xab21, 0x00de, 0x20e9,\r
++      0x0000, 0x20a1, 0x0240, 0x20a9, 0x000a, 0xa860, 0x20e0, 0xa85c,\r
++      0x9080, 0x001b, 0x2098, 0x4003, 0x60a3, 0x0035, 0xaa68, 0x9294,\r
++      0x7000, 0x9286, 0x3000, 0x0110, 0x60a3, 0x0037, 0x00ee, 0x00de,\r
++      0x009e, 0x003e, 0x0005, 0x900e, 0x7814, 0x0096, 0x2048, 0xa87c,\r
++      0xd0fc, 0x01c0, 0x9084, 0x0003, 0x11a8, 0x2001, 0x180c, 0x2004,\r
++      0xd0bc, 0x0180, 0x7824, 0xd0cc, 0x1168, 0xd0c4, 0x1158, 0xa8a8,\r
++      0x9005, 0x1140, 0x2001, 0x180c, 0x200c, 0xc1d5, 0x2102, 0x2009,\r
++      0x19b2, 0x210c, 0x009e, 0x918d, 0x0092, 0x0010, 0x2009, 0x0096,\r
++      0x60ab, 0x0036, 0x6116, 0x0005, 0x2009, 0x0009, 0x00a0, 0x2009,\r
++      0x000a, 0x0088, 0x2009, 0x000b, 0x0070, 0x2009, 0x000c, 0x0058,\r
++      0x2009, 0x000d, 0x0040, 0x2009, 0x000e, 0x0028, 0x2009, 0x000f,\r
++      0x0010, 0x2009, 0x0008, 0x6912, 0x0005, 0x080c, 0x9c60, 0x0016,\r
++      0x0026, 0x0096, 0x00d6, 0x7814, 0x2048, 0x7013, 0x0138, 0x2001,\r
++      0x1837, 0x2004, 0x9084, 0x0028, 0x1138, 0x2001, 0x197c, 0x2004,\r
++      0x9086, 0xaaaa, 0x1904, 0xabc6, 0x7003, 0x5400, 0x00c6, 0x2061,\r
++      0x1800, 0x607c, 0x9084, 0x00ff, 0xa998, 0x810f, 0x918c, 0xff00,\r
++      0x9105, 0x700a, 0x6080, 0x700e, 0xa998, 0x918c, 0xff00, 0x7112,\r
++      0x20a9, 0x0004, 0x2009, 0x1805, 0x2e10, 0x9290, 0x0006, 0x2104,\r
++      0x2012, 0x8108, 0x8210, 0x1f04, 0xab57, 0x20a9, 0x0004, 0x2009,\r
++      0x1801, 0x2104, 0x2012, 0x8108, 0x8210, 0x1f04, 0xab61, 0xa860,\r
++      0x20e0, 0xa85c, 0x9080, 0x0029, 0x2098, 0x2009, 0x0006, 0x20a9,\r
++      0x0001, 0x4002, 0x8007, 0x2012, 0x8210, 0x8109, 0x1dc0, 0x00d6,\r
++      0x2069, 0x0200, 0x080c, 0xab0c, 0x00de, 0x2071, 0x0240, 0x2011,\r
++      0x0240, 0x2009, 0x0002, 0x20a9, 0x0001, 0x4002, 0x8007, 0x2012,\r
++      0x8210, 0x8109, 0x1dc0, 0x2009, 0x0008, 0x20a9, 0x0001, 0x4002,\r
++      0x8007, 0x2012, 0x8210, 0x8109, 0x1dc0, 0xa85c, 0x9080, 0x0031,\r
++      0x2098, 0x2009, 0x0008, 0x20a9, 0x0001, 0x4002, 0x8007, 0x2012,\r
++      0x8210, 0x8109, 0x1dc0, 0x00ce, 0x60c3, 0x004c, 0x60a3, 0x0056,\r
++      0x60a7, 0x9575, 0x2001, 0x1837, 0x2004, 0x9084, 0x0028, 0x1168,\r
++      0x080c, 0x73bc, 0x0150, 0x6028, 0xc0bd, 0x602a, 0x6014, 0x9084,\r
++      0x1804, 0x9085, 0x0029, 0x6016, 0x0010, 0x080c, 0xa247, 0x080c,\r
++      0x8570, 0x00de, 0x009e, 0x002e, 0x001e, 0x0005, 0x00e6, 0x2071,\r
++      0x0240, 0x2001, 0x2200, 0x9085, 0x00ff, 0x7002, 0x7007, 0xffff,\r
++      0x2071, 0x0100, 0x709b, 0x00ff, 0x00ee, 0x0804, 0xab3c, 0x080c,\r
++      0x9c60, 0x0016, 0x0026, 0x0096, 0x00d6, 0x7814, 0x2048, 0x7013,\r
++      0x0138, 0x7003, 0x5500, 0x00c6, 0xa89c, 0x9084, 0x00ff, 0xa998,\r
++      0x810f, 0x918c, 0xff00, 0x9105, 0x700a, 0xa99c, 0x918c, 0xff00,\r
++      0xa8a0, 0x9084, 0x00ff, 0x9105, 0x700e, 0xa998, 0x918c, 0xff00,\r
++      0x2061, 0x1800, 0x607c, 0x9084, 0x00ff, 0x910d, 0x7112, 0x6180,\r
++      0x7116, 0x2009, 0x0008, 0xa860, 0x20e0, 0xa85c, 0x9080, 0x0029,\r
++      0x2098, 0x2e10, 0x9290, 0x0006, 0x20a9, 0x0001, 0x4002, 0x8007,\r
++      0x2012, 0x8210, 0x8109, 0x1dc0, 0x20a9, 0x0004, 0x2009, 0x1805,\r
++      0x2104, 0x2012, 0x8108, 0x8210, 0x1f04, 0xac18, 0x20a9, 0x0002,\r
++      0x2009, 0x1801, 0x2104, 0x2012, 0x8108, 0x8210, 0x1f04, 0xac22,\r
++      0x00d6, 0x0016, 0x2069, 0x0200, 0x080c, 0xab0c, 0x001e, 0x00de,\r
++      0x2071, 0x0240, 0x20a9, 0x0002, 0x2009, 0x1803, 0x2011, 0x0240,\r
++      0x2104, 0x2012, 0x8108, 0x8210, 0x1f04, 0xac38, 0x2009, 0x0008,\r
++      0x4002, 0x8007, 0x2012, 0x8210, 0x8109, 0x1dd0, 0x9006, 0x20a9,\r
++      0x0008, 0x2012, 0x8210, 0x1f04, 0xac49, 0x00ce, 0x60c3, 0x004c,\r
++      0x60a3, 0x0056, 0x60a7, 0x9575, 0x080c, 0xa247, 0x080c, 0x8570,\r
++      0x00de, 0x009e, 0x002e, 0x001e, 0x0005, 0x00d6, 0x9290, 0x0018,\r
++      0x8214, 0x20e9, 0x0000, 0x2069, 0x0200, 0x6813, 0x0000, 0x22a8,\r
++      0x9284, 0x00e0, 0x0128, 0x20a9, 0x0020, 0x9292, 0x0020, 0x0008,\r
++      0x9016, 0x20a1, 0x0240, 0x9006, 0x4004, 0x82ff, 0x0120, 0x6810,\r
++      0x8000, 0x6812, 0x0c60, 0x00de, 0x0005, 0x00d6, 0x0096, 0x6014,\r
++      0x2048, 0xa878, 0x6056, 0x9006, 0xa836, 0xa83a, 0xa99c, 0xa946,\r
++      0xa84a, 0x6023, 0x0003, 0x6007, 0x0040, 0x6003, 0x0003, 0x600b,\r
++      0xffff, 0xa817, 0x0001, 0xa842, 0xa83e, 0x2900, 0xa85a, 0xa813,\r
++      0x208e, 0x080c, 0x9155, 0x0126, 0x2091, 0x8000, 0x080c, 0x97b9,\r
++      0x012e, 0x009e, 0x00de, 0x0005, 0x00f6, 0x00e6, 0x00d6, 0x00c6,\r
++      0x00a6, 0x0096, 0x0066, 0x0126, 0x2091, 0x8000, 0x2071, 0x19e7,\r
++      0x760c, 0x2660, 0x2678, 0x8cff, 0x0904, 0xad2b, 0x7024, 0x9c06,\r
++      0x1520, 0x2069, 0x0100, 0x68c0, 0x9005, 0x0904, 0xad02, 0x080c,\r
++      0xa273, 0x68c3, 0x0000, 0x080c, 0xa7bc, 0x7027, 0x0000, 0x0036,\r
++      0x2069, 0x0140, 0x6b04, 0x9384, 0x1000, 0x0138, 0x2001, 0x0100,\r
++      0x080c, 0x2cef, 0x9006, 0x080c, 0x2cef, 0x2069, 0x0100, 0x6824,\r
++      0xd084, 0x0110, 0x6827, 0x0001, 0x003e, 0x700c, 0x9c36, 0x1110,\r
++      0x660c, 0x760e, 0x7008, 0x9c36, 0x1140, 0x2c00, 0x9f36, 0x0118,\r
++      0x2f00, 0x700a, 0x0010, 0x700b, 0x0000, 0x660c, 0x0066, 0x2c00,\r
++      0x9f06, 0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f, 0x0000, 0x080c,\r
++      0xcd2a, 0x1158, 0x080c, 0x31e8, 0x080c, 0xcd3b, 0x11f0, 0x080c,\r
++      0xb813, 0x00d8, 0x080c, 0xa7bc, 0x08c0, 0x080c, 0xcd3b, 0x1118,\r
++      0x080c, 0xb813, 0x0090, 0x6014, 0x2048, 0x080c, 0xcb33, 0x0168,\r
++      0x6020, 0x9086, 0x0003, 0x1520, 0xa867, 0x0103, 0xab7a, 0xa877,\r
++      0x0000, 0x080c, 0x6c81, 0x080c, 0xcd1e, 0x080c, 0xcfa2, 0x080c,\r
++      0xae92, 0x080c, 0xa692, 0x00ce, 0x0804, 0xacb3, 0x2c78, 0x600c,\r
++      0x2060, 0x0804, 0xacb3, 0x700f, 0x0000, 0x700b, 0x0000, 0x012e,\r
++      0x006e, 0x009e, 0x00ae, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x0005,\r
++      0x6020, 0x9086, 0x0006, 0x1d08, 0x080c, 0xe551, 0x08f0, 0x00d6,\r
++      0x0156, 0x080c, 0x9cab, 0x7a14, 0x82ff, 0x0138, 0x7003, 0x0100,\r
++      0x700b, 0x0003, 0x60c3, 0x0008, 0x0490, 0x7003, 0x0200, 0x7007,\r
++      0x0000, 0x2069, 0x1800, 0x901e, 0x6800, 0x9086, 0x0004, 0x1110,\r
++      0xc38d, 0x0060, 0x080c, 0x73bc, 0x1110, 0xc3ad, 0x0008, 0xc3a5,\r
++      0x6adc, 0xd29c, 0x1110, 0xd2ac, 0x0108, 0xc39d, 0x730e, 0x080c,\r
++      0x85d9, 0x20a9, 0x0006, 0x2011, 0xfff4, 0x2019, 0xfff5, 0x2071,\r
++      0x0250, 0x2305, 0x2072, 0x8e70, 0x2205, 0x2072, 0x8e70, 0x9398,\r
++      0x0002, 0x9290, 0x0002, 0x1f04, 0xad71, 0x60c3, 0x0020, 0x080c,\r
++      0xa247, 0x015e, 0x00de, 0x0005, 0x0156, 0x080c, 0x9cab, 0x7a14,\r
++      0x82ff, 0x0168, 0x9286, 0xffff, 0x0118, 0x9282, 0x000e, 0x1238,\r
++      0x7003, 0x0100, 0x700b, 0x0003, 0x60c3, 0x0008, 0x0488, 0x7003,\r
++      0x0200, 0x7007, 0x001c, 0x700f, 0x0001, 0x2011, 0x19bd, 0x2204,\r
++      0x8007, 0x701a, 0x8210, 0x2204, 0x8007, 0x701e, 0x0421, 0x1120,\r
++      0xb8a0, 0x9082, 0x007f, 0x0248, 0x2001, 0x181f, 0x2004, 0x7022,\r
++      0x2001, 0x1820, 0x2004, 0x7026, 0x0030, 0x2001, 0x1818, 0x2004,\r
++      0x9084, 0x00ff, 0x7026, 0x20a9, 0x0004, 0x20e1, 0x0001, 0x2099,\r
++      0x1805, 0x20e9, 0x0000, 0x20a1, 0x0256, 0x4003, 0x60c3, 0x001c,\r
++      0x015e, 0x0804, 0xa247, 0x0006, 0x2001, 0x1837, 0x2004, 0xd0ac,\r
++      0x000e, 0x0005, 0x2011, 0x0003, 0x080c, 0xa653, 0x2011, 0x0002,\r
++      0x080c, 0xa65d, 0x080c, 0xa540, 0x0036, 0x901e, 0x080c, 0xa5b6,\r
++      0x003e, 0x0005, 0x080c, 0x331e, 0x0188, 0x0016, 0x00b6, 0x00c6,\r
++      0x7010, 0x9085, 0x0020, 0x7012, 0x2009, 0x007e, 0x080c, 0x65ff,\r
++      0xb85c, 0xc0ac, 0xb85e, 0x00ce, 0x00be, 0x001e, 0x0005, 0x2071,\r
++      0x188d, 0x7000, 0x9005, 0x0140, 0x2001, 0x0976, 0x2071, 0x1800,\r
++      0x7076, 0x707a, 0x706b, 0xffe0, 0x2071, 0x1800, 0x7074, 0x7056,\r
++      0x705b, 0x1cd0, 0x0005, 0x00e6, 0x0126, 0x2071, 0x1800, 0x2091,\r
++      0x8000, 0x7554, 0x9582, 0x0010, 0x0608, 0x7058, 0x2060, 0x6000,\r
++      0x9086, 0x0000, 0x0148, 0x9ce0, 0x0018, 0x7068, 0x9c02, 0x1208,\r
++      0x0cb0, 0x2061, 0x1cd0, 0x0c98, 0x6003, 0x0008, 0x8529, 0x7556,\r
++      0x9ca8, 0x0018, 0x7068, 0x9502, 0x1230, 0x755a, 0x9085, 0x0001,\r
++      0x012e, 0x00ee, 0x0005, 0x705b, 0x1cd0, 0x0cc0, 0x9006, 0x0cc0,\r
++      0x00e6, 0x2071, 0x1800, 0x7554, 0x9582, 0x0010, 0x0600, 0x7058,\r
++      0x2060, 0x6000, 0x9086, 0x0000, 0x0148, 0x9ce0, 0x0018, 0x7068,\r
++      0x9c02, 0x1208, 0x0cb0, 0x2061, 0x1cd0, 0x0c98, 0x6003, 0x0008,\r
++      0x8529, 0x7556, 0x9ca8, 0x0018, 0x7068, 0x9502, 0x1228, 0x755a,\r
++      0x9085, 0x0001, 0x00ee, 0x0005, 0x705b, 0x1cd0, 0x0cc8, 0x9006,\r
++      0x0cc8, 0x9c82, 0x1cd0, 0x0a0c, 0x0dd5, 0x2001, 0x181a, 0x2004,\r
++      0x9c02, 0x1a0c, 0x0dd5, 0x9006, 0x6006, 0x600a, 0x600e, 0x6016,\r
++      0x601a, 0x6012, 0x6023, 0x0000, 0x6003, 0x0000, 0x601e, 0x6056,\r
++      0x605a, 0x6026, 0x602a, 0x602e, 0x6032, 0x6036, 0x603a, 0x603e,\r
++      0x6042, 0x602a, 0x2061, 0x1800, 0x6054, 0x8000, 0x6056, 0x9086,\r
++      0x0001, 0x0108, 0x0005, 0x0126, 0x2091, 0x8000, 0x080c, 0x968d,\r
++      0x012e, 0x0cc0, 0x0006, 0x6000, 0x9086, 0x0000, 0x01b0, 0x601c,\r
++      0xd084, 0x190c, 0x1a5e, 0x6017, 0x0000, 0x6023, 0x0007, 0x2001,\r
++      0x1986, 0x2004, 0x0006, 0x9082, 0x0051, 0x000e, 0x0208, 0x8004,\r
++      0x601a, 0x080c, 0xe80b, 0x6043, 0x0000, 0x000e, 0x0005, 0x00e6,\r
++      0x0126, 0x2071, 0x1800, 0x2091, 0x8000, 0x7554, 0x9582, 0x0001,\r
++      0x0608, 0x7058, 0x2060, 0x6000, 0x9086, 0x0000, 0x0148, 0x9ce0,\r
++      0x0018, 0x7068, 0x9c02, 0x1208, 0x0cb0, 0x2061, 0x1cd0, 0x0c98,\r
++      0x6003, 0x0008, 0x8529, 0x7556, 0x9ca8, 0x0018, 0x7068, 0x9502,\r
++      0x1230, 0x755a, 0x9085, 0x0001, 0x012e, 0x00ee, 0x0005, 0x705b,\r
++      0x1cd0, 0x0cc0, 0x9006, 0x0cc0, 0x6020, 0x9084, 0x000f, 0x0002,\r
++      0xaeef, 0xaef8, 0xaf13, 0xaf2e, 0xd256, 0xd273, 0xd28e, 0xaeef,\r
++      0xaef8, 0x8d8b, 0xaf4a, 0xaeef, 0xaeef, 0xaeef, 0xaeef, 0x9186,\r
++      0x0013, 0x1128, 0x080c, 0x9588, 0x080c, 0x968d, 0x0005, 0x0005,\r
++      0x0066, 0x6000, 0x90b2, 0x0016, 0x1a0c, 0x0dd5, 0x0013, 0x006e,\r
++      0x0005, 0xaf11, 0xb67f, 0xb85a, 0xaf11, 0xb8f0, 0xb22d, 0xaf11,\r
++      0xaf11, 0xb601, 0xbe55, 0xaf11, 0xaf11, 0xaf11, 0xaf11, 0xaf11,\r
++      0xaf11, 0x080c, 0x0dd5, 0x0066, 0x6000, 0x90b2, 0x0016, 0x1a0c,\r
++      0x0dd5, 0x0013, 0x006e, 0x0005, 0xaf2c, 0xc529, 0xaf2c, 0xaf2c,\r
++      0xaf2c, 0xaf2c, 0xaf2c, 0xaf2c, 0xc4ce, 0xc6ab, 0xaf2c, 0xc56a,\r
++      0xc5e9, 0xc56a, 0xc5e9, 0xaf2c, 0x080c, 0x0dd5, 0x6000, 0x9082,\r
++      0x0016, 0x1a0c, 0x0dd5, 0x6000, 0x0002, 0xaf48, 0xbe9c, 0xbf81,\r
++      0xc0b1, 0xc25c, 0xaf48, 0xaf48, 0xaf48, 0xbe70, 0xc45a, 0xc45d,\r
++      0xaf48, 0xaf48, 0xaf48, 0xaf48, 0xc48c, 0xaf48, 0xaf48, 0xaf48,\r
++      0x080c, 0x0dd5, 0x0066, 0x6000, 0x90b2, 0x0016, 0x1a0c, 0x0dd5,\r
++      0x0013, 0x006e, 0x0005, 0xaf63, 0xaf63, 0xafa6, 0xb045, 0xb0da,\r
++      0xaf63, 0xaf63, 0xaf63, 0xaf65, 0xaf63, 0xaf63, 0xaf63, 0xaf63,\r
++      0xaf63, 0xaf63, 0xaf63, 0x080c, 0x0dd5, 0x9186, 0x004c, 0x0588,\r
++      0x9186, 0x0003, 0x190c, 0x0dd5, 0x0096, 0x601c, 0xc0ed, 0x601e,\r
++      0x6003, 0x0003, 0x6106, 0x6014, 0x2048, 0xa87c, 0x9084, 0xa000,\r
++      0xc0b5, 0xa87e, 0xa8ac, 0xa846, 0xa8b0, 0xa84a, 0x9006, 0xa836,\r
++      0xa83a, 0xa884, 0x9092, 0x199a, 0x0210, 0x2001, 0x1999, 0x8003,\r
++      0x8013, 0x8213, 0x9210, 0x621a, 0x009e, 0x2c10, 0x080c, 0x1bad,\r
++      0x080c, 0x9155, 0x0126, 0x2091, 0x8000, 0x080c, 0x97b9, 0x012e,\r
++      0x0005, 0x6010, 0x00b6, 0x2058, 0xbca0, 0x00be, 0x2c00, 0x080c,\r
++      0xb0fc, 0x080c, 0xd248, 0x6003, 0x0007, 0x0005, 0x00d6, 0x0096,\r
++      0x00f6, 0x2079, 0x1800, 0x7a90, 0x6014, 0x2048, 0xa87c, 0xd0ec,\r
++      0x1110, 0x9290, 0x0018, 0xac78, 0xc4fc, 0x0046, 0xa8e0, 0x9005,\r
++      0x1140, 0xa8dc, 0x921a, 0x0140, 0x0220, 0xa87b, 0x0007, 0x2010,\r
++      0x0028, 0xa87b, 0x0015, 0x0010, 0xa87b, 0x0000, 0x8214, 0xa883,\r
++      0x0000, 0xaa02, 0x0006, 0x0016, 0x0026, 0x00c6, 0x00d6, 0x00e6,\r
++      0x00f6, 0x2400, 0x9005, 0x1108, 0x009a, 0x2100, 0x9086, 0x0015,\r
++      0x1118, 0x2001, 0x0001, 0x0038, 0x2100, 0x9086, 0x0016, 0x0118,\r
++      0x2001, 0x0001, 0x002a, 0x94a4, 0x0007, 0x8423, 0x9405, 0x0002,\r
++      0xb00d, 0xb00d, 0xb008, 0xb00b, 0xb00d, 0xb005, 0xaff8, 0xaff8,\r
++      0xaff8, 0xaff8, 0xaff8, 0xaff8, 0xaff8, 0xaff8, 0xaff8, 0xaff8,\r
++      0x00fe, 0x00ee, 0x00de, 0x00ce, 0x002e, 0x001e, 0x000e, 0x004e,\r
++      0x00fe, 0x009e, 0x00de, 0x080c, 0x0dd5, 0x080c, 0xbaad, 0x0028,\r
++      0x080c, 0xbb92, 0x0010, 0x080c, 0xbc88, 0x00fe, 0x00ee, 0x00de,\r
++      0x00ce, 0x002e, 0x001e, 0x2c00, 0xa896, 0x000e, 0x080c, 0xb1ba,\r
++      0x0530, 0xa804, 0xa80e, 0x00a6, 0x2050, 0xb100, 0x00ae, 0x8006,\r
++      0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x0002,\r
++      0xaacc, 0xabd0, 0xacd4, 0xadd8, 0x2031, 0x0000, 0x2041, 0x125d,\r
++      0x080c, 0xb37a, 0x0160, 0x000e, 0x9005, 0x0120, 0x00fe, 0x009e,\r
++      0x00de, 0x0005, 0x00fe, 0x009e, 0x00de, 0x0804, 0xae61, 0x2001,\r
++      0x002c, 0x900e, 0x080c, 0xb220, 0x0c70, 0x91b6, 0x0015, 0x0170,\r
++      0x91b6, 0x0016, 0x0158, 0x91b2, 0x0047, 0x0a0c, 0x0dd5, 0x91b2,\r
++      0x0050, 0x1a0c, 0x0dd5, 0x9182, 0x0047, 0x00ca, 0x2001, 0x0109,\r
++      0x2004, 0xd08c, 0x0198, 0x0126, 0x2091, 0x2800, 0x0006, 0x0016,\r
++      0x0026, 0x080c, 0x90a2, 0x002e, 0x001e, 0x000e, 0x012e, 0xa001,\r
++      0x6000, 0x9086, 0x0002, 0x1110, 0x0804, 0xafa6, 0x0005, 0xb078,\r
++      0xb078, 0xb07a, 0xb0b0, 0xb078, 0xb078, 0xb078, 0xb078, 0xb0c3,\r
++      0x080c, 0x0dd5, 0x00d6, 0x0016, 0x0096, 0x080c, 0x963d, 0x080c,\r
++      0x97b9, 0x6003, 0x0004, 0x6114, 0x2148, 0xa87c, 0xd0fc, 0x01c0,\r
++      0xa878, 0xc0fc, 0x9005, 0x1158, 0xa894, 0x9005, 0x0140, 0x2001,\r
++      0x0000, 0x900e, 0x080c, 0xb220, 0x080c, 0xae61, 0x00a8, 0x6003,\r
++      0x0002, 0xa8a4, 0xa9a8, 0x9105, 0x1178, 0xa8ae, 0xa8b2, 0x0c78,\r
++      0xa87f, 0x0020, 0xa88c, 0xa88a, 0xa8a4, 0xa8ae, 0xa8a8, 0xa8b2,\r
++      0xa8c7, 0x0000, 0xa8cb, 0x0000, 0x009e, 0x001e, 0x00de, 0x0005,\r
++      0x080c, 0x963d, 0x00d6, 0x0096, 0x6114, 0x2148, 0x080c, 0xcb35,\r
++      0x0120, 0xa87b, 0x0006, 0x080c, 0x6c81, 0x009e, 0x00de, 0x080c,\r
++      0xae61, 0x0804, 0x97b9, 0x080c, 0x963d, 0x080c, 0x31bf, 0x080c,\r
++      0xd245, 0x00d6, 0x0096, 0x6114, 0x2148, 0x080c, 0xcb35, 0x0120,\r
++      0xa87b, 0x0029, 0x080c, 0x6c81, 0x009e, 0x00de, 0x080c, 0xae61,\r
++      0x0804, 0x97b9, 0x9182, 0x0047, 0x0002, 0xb0ea, 0xb0ec, 0xb0ea,\r
++      0xb0ea, 0xb0ea, 0xb0ea, 0xb0ea, 0xb0ea, 0xb0ea, 0xb0ea, 0xb0ea,\r
++      0xb0ea, 0xb0ec, 0x080c, 0x0dd5, 0x00d6, 0x0096, 0x601f, 0x0000,\r
++      0x6114, 0x2148, 0xa87b, 0x0000, 0xa883, 0x0000, 0x080c, 0x6c81,\r
++      0x009e, 0x00de, 0x0804, 0xae61, 0x0026, 0x0036, 0x0056, 0x0066,\r
++      0x0096, 0x00a6, 0x00f6, 0x0006, 0x080c, 0x0fff, 0x000e, 0x090c,\r
++      0x0dd5, 0xa960, 0x21e8, 0xa95c, 0x9188, 0x0019, 0x21a0, 0x900e,\r
++      0x20a9, 0x0020, 0x4104, 0xa87a, 0x2079, 0x1800, 0x7990, 0x9188,\r
++      0x0018, 0x918c, 0x0fff, 0xa972, 0xac76, 0x2950, 0x00a6, 0x2001,\r
++      0x0205, 0x2003, 0x0000, 0x901e, 0x2029, 0x0001, 0x9182, 0x0034,\r
++      0x1228, 0x2011, 0x001f, 0x080c, 0xc730, 0x04c0, 0x2130, 0x2009,\r
++      0x0034, 0x2011, 0x001f, 0x080c, 0xc730, 0x96b2, 0x0034, 0xb004,\r
++      0x904d, 0x0110, 0x080c, 0x0fb1, 0x080c, 0x0fff, 0x01d0, 0x8528,\r
++      0xa867, 0x0110, 0xa86b, 0x0000, 0x2920, 0xb406, 0x968a, 0x003d,\r
++      0x1230, 0x2608, 0x2011, 0x001b, 0x080c, 0xc730, 0x00b8, 0x96b2,\r
++      0x003c, 0x2009, 0x003c, 0x2950, 0x2011, 0x001b, 0x080c, 0xc730,\r
++      0x0c18, 0x2001, 0x0205, 0x2003, 0x0000, 0x00ae, 0x852f, 0x95ad,\r
++      0x0050, 0xb566, 0xb070, 0xc0fd, 0xb072, 0x0048, 0x2001, 0x0205,\r
++      0x2003, 0x0000, 0x00ae, 0x852f, 0x95ad, 0x0050, 0xb566, 0x2a48,\r
++      0xa804, 0xa807, 0x0000, 0x0006, 0x080c, 0x6c81, 0x000e, 0x2048,\r
++      0x9005, 0x1db0, 0x00fe, 0x00ae, 0x009e, 0x006e, 0x005e, 0x003e,\r
++      0x002e, 0x0005, 0x00d6, 0x00f6, 0x0096, 0x0006, 0x080c, 0x0fff,\r
++      0x000e, 0x090c, 0x0dd5, 0xa960, 0x21e8, 0xa95c, 0x9188, 0x0019,\r
++      0x21a0, 0x900e, 0x20a9, 0x0020, 0x4104, 0xaa66, 0xa87a, 0x2079,\r
++      0x1800, 0x7990, 0x810c, 0x9188, 0x000c, 0x9182, 0x001a, 0x0210,\r
++      0x2009, 0x001a, 0x21a8, 0x810b, 0xa972, 0xac76, 0x2e98, 0xa85c,\r
++      0x9080, 0x001f, 0x20a0, 0x2001, 0x0205, 0x200c, 0x918d, 0x0080,\r
++      0x2102, 0x4003, 0x2003, 0x0000, 0x080c, 0x6c81, 0x009e, 0x00fe,\r
++      0x00de, 0x0005, 0x0016, 0x00d6, 0x00f6, 0x0096, 0x0016, 0x2001,\r
++      0x0205, 0x200c, 0x918d, 0x0080, 0x2102, 0x001e, 0x2079, 0x0200,\r
++      0x2e98, 0xa87c, 0xd0ec, 0x0118, 0x9e80, 0x000c, 0x2098, 0x2021,\r
++      0x003e, 0x901e, 0x9282, 0x0020, 0x0218, 0x2011, 0x0020, 0x2018,\r
++      0x9486, 0x003e, 0x1170, 0x0096, 0x080c, 0x0fff, 0x2900, 0x009e,\r
++      0x05c0, 0xa806, 0x2048, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0002,\r
++      0x20a0, 0x3300, 0x908e, 0x0260, 0x0140, 0x2009, 0x0280, 0x9102,\r
++      0x920a, 0x0218, 0x2010, 0x2100, 0x9318, 0x2200, 0x9402, 0x1228,\r
++      0x2400, 0x9202, 0x2410, 0x9318, 0x9006, 0x2020, 0x22a8, 0xa800,\r
++      0x9200, 0xa802, 0x20e1, 0x0000, 0x4003, 0x83ff, 0x0180, 0x3300,\r
++      0x9086, 0x0280, 0x1130, 0x7814, 0x8000, 0x9085, 0x0080, 0x7816,\r
++      0x2e98, 0x2310, 0x84ff, 0x0904, 0xb1cf, 0x0804, 0xb1d1, 0x9085,\r
++      0x0001, 0x7817, 0x0000, 0x009e, 0x00fe, 0x00de, 0x001e, 0x0005,\r
++      0x00d6, 0x0036, 0x0096, 0x6314, 0x2348, 0xa87a, 0xa982, 0x080c,\r
++      0x6c75, 0x009e, 0x003e, 0x00de, 0x0005, 0x91b6, 0x0015, 0x1118,\r
++      0x080c, 0xae61, 0x0030, 0x91b6, 0x0016, 0x190c, 0x0dd5, 0x080c,\r
++      0xae61, 0x0005, 0x20a9, 0x000e, 0x20e1, 0x0000, 0x2e98, 0x6014,\r
++      0x0096, 0x2048, 0xa860, 0x20e8, 0xa85c, 0x20a0, 0x009e, 0x4003,\r
++      0x0136, 0x9080, 0x001b, 0x2011, 0x0006, 0x20a9, 0x0001, 0x3418,\r
++      0x8318, 0x23a0, 0x4003, 0x3318, 0x8318, 0x2398, 0x8211, 0x1db8,\r
++      0x2011, 0x0006, 0x013e, 0x20a0, 0x3318, 0x8318, 0x2398, 0x4003,\r
++      0x3418, 0x8318, 0x23a0, 0x8211, 0x1db8, 0x0096, 0x080c, 0xcb35,\r
++      0x0130, 0x6014, 0x2048, 0xa807, 0x0000, 0xa867, 0x0103, 0x009e,\r
++      0x0804, 0xae61, 0x0096, 0x00d6, 0x0036, 0x7330, 0x9386, 0x0200,\r
++      0x11a8, 0x6010, 0x00b6, 0x2058, 0xb8cf, 0x0000, 0x00be, 0x6014,\r
++      0x9005, 0x0130, 0x2048, 0xa807, 0x0000, 0xa867, 0x0103, 0xab32,\r
++      0x080c, 0xae61, 0x003e, 0x00de, 0x009e, 0x0005, 0x0011, 0x1d48,\r
++      0x0cc8, 0x0006, 0x0016, 0x080c, 0xd230, 0x0188, 0x6014, 0x9005,\r
++      0x1170, 0x600b, 0x0003, 0x601b, 0x0000, 0x6043, 0x0000, 0x2009,\r
++      0x0022, 0x080c, 0xb657, 0x9006, 0x001e, 0x000e, 0x0005, 0x9085,\r
++      0x0001, 0x0cd0, 0x0096, 0x0016, 0x20a9, 0x0014, 0x9e80, 0x000c,\r
++      0x20e1, 0x0000, 0x2098, 0x6014, 0x2048, 0xa860, 0x20e8, 0xa85c,\r
++      0x9080, 0x0002, 0x20a0, 0x4003, 0x2001, 0x0205, 0x2003, 0x0001,\r
++      0x2099, 0x0260, 0x20a9, 0x0016, 0x4003, 0x20a9, 0x000a, 0xa804,\r
++      0x2048, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0002, 0x20a0, 0x4003,\r
++      0x2001, 0x0205, 0x2003, 0x0002, 0x2099, 0x0260, 0x20a9, 0x0020,\r
++      0x4003, 0x2003, 0x0000, 0x6014, 0x2048, 0xa800, 0x2048, 0xa867,\r
++      0x0103, 0x080c, 0xae61, 0x001e, 0x009e, 0x0005, 0x0096, 0x0016,\r
++      0x900e, 0x7030, 0x9086, 0x0100, 0x0140, 0x7038, 0x9084, 0x00ff,\r
++      0x800c, 0x703c, 0x9084, 0x00ff, 0x8004, 0x9080, 0x0004, 0x9108,\r
++      0x810b, 0x2011, 0x0002, 0x2019, 0x000c, 0x6014, 0x2048, 0x080c,\r
++      0xc730, 0x080c, 0xcb35, 0x0140, 0x6014, 0x2048, 0xa807, 0x0000,\r
++      0xa864, 0xa8e2, 0xa867, 0x0103, 0x080c, 0xae61, 0x001e, 0x009e,\r
++      0x0005, 0x0016, 0x2009, 0x0000, 0x7030, 0x9086, 0x0200, 0x0110,\r
++      0x2009, 0x0001, 0x0096, 0x6014, 0x904d, 0x090c, 0x0dd5, 0xa97a,\r
++      0x080c, 0x6c81, 0x009e, 0x080c, 0xae61, 0x001e, 0x0005, 0x0016,\r
++      0x0096, 0x7030, 0x9086, 0x0100, 0x1118, 0x2009, 0x0004, 0x0010,\r
++      0x7034, 0x800c, 0x810b, 0x2011, 0x000c, 0x2019, 0x000c, 0x6014,\r
++      0x2048, 0xa804, 0x0096, 0x9005, 0x0108, 0x2048, 0x080c, 0xc730,\r
++      0x009e, 0x080c, 0xcb35, 0x0148, 0xa804, 0x9005, 0x1158, 0xa807,\r
++      0x0000, 0xa864, 0xa8e2, 0xa867, 0x0103, 0x080c, 0xae61, 0x009e,\r
++      0x001e, 0x0005, 0x0086, 0x2040, 0xa030, 0x8007, 0x9086, 0x0100,\r
++      0x1118, 0x080c, 0xb813, 0x00e0, 0xa034, 0x8007, 0x800c, 0x8806,\r
++      0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x000c,\r
++      0xa87b, 0x0000, 0xa883, 0x0000, 0xa897, 0x4000, 0xaaa0, 0xab9c,\r
++      0xaca8, 0xada4, 0x2031, 0x0000, 0x2041, 0x1243, 0x0019, 0x0d08,\r
++      0x008e, 0x0898, 0x0096, 0x0006, 0x080c, 0x0fff, 0x000e, 0x01b0,\r
++      0xa8ab, 0x0dcb, 0xa876, 0x000e, 0xa8a2, 0x0006, 0xae6a, 0x2800,\r
++      0xa89e, 0xa97a, 0xaf72, 0xaa8e, 0xab92, 0xac96, 0xad9a, 0x0086,\r
++      0x2940, 0x080c, 0x10e9, 0x008e, 0x9085, 0x0001, 0x009e, 0x0005,\r
++      0x00e6, 0x00d6, 0x0026, 0x7008, 0x9084, 0x00ff, 0x6210, 0x00b6,\r
++      0x2258, 0xba10, 0x00be, 0x9206, 0x1520, 0x700c, 0x6210, 0x00b6,\r
++      0x2258, 0xba14, 0x00be, 0x9206, 0x11e0, 0x6043, 0x0000, 0x2c68,\r
++      0x0016, 0x2009, 0x0035, 0x080c, 0xd1a8, 0x001e, 0x1158, 0x622c,\r
++      0x2268, 0x2071, 0x026c, 0x6b20, 0x9386, 0x0003, 0x0130, 0x9386,\r
++      0x0006, 0x0128, 0x080c, 0xae61, 0x0020, 0x0039, 0x0010, 0x080c,\r
++      0xb48c, 0x002e, 0x00de, 0x00ee, 0x0005, 0x0096, 0x6814, 0x2048,\r
++      0x9186, 0x0015, 0x0904, 0xb474, 0x918e, 0x0016, 0x1904, 0xb48a,\r
++      0x700c, 0x908c, 0xff00, 0x9186, 0x1700, 0x0120, 0x9186, 0x0300,\r
++      0x1904, 0xb44e, 0x89ff, 0x1138, 0x6800, 0x9086, 0x000f, 0x0904,\r
++      0xb431, 0x0804, 0xb488, 0x6808, 0x9086, 0xffff, 0x1904, 0xb476,\r
++      0xa87c, 0x9084, 0x0060, 0x9086, 0x0020, 0x1128, 0xa83c, 0xa940,\r
++      0x9105, 0x1904, 0xb476, 0x6824, 0xd0b4, 0x1904, 0xb476, 0x080c,\r
++      0xcd1e, 0x685c, 0xa882, 0xa87c, 0xc0dc, 0xc0f4, 0xc0d4, 0xa87e,\r
++      0x0026, 0x900e, 0x6a18, 0x2001, 0x000a, 0x080c, 0x8f68, 0xa884,\r
++      0x920a, 0x0208, 0x8011, 0xaa86, 0x82ff, 0x002e, 0x1138, 0x00c6,\r
++      0x2d60, 0x080c, 0xc85a, 0x00ce, 0x0804, 0xb488, 0x00c6, 0xa868,\r
++      0xd0fc, 0x1118, 0x080c, 0x60ae, 0x0010, 0x080c, 0x64b4, 0x00ce,\r
++      0x1904, 0xb476, 0x00c6, 0x2d60, 0x080c, 0xae61, 0x00ce, 0x0804,\r
++      0xb488, 0x00c6, 0x080c, 0xaeaf, 0x0198, 0x6017, 0x0000, 0x6810,\r
++      0x6012, 0x080c, 0xcfaa, 0x6023, 0x0003, 0x6904, 0x00c6, 0x2d60,\r
++      0x080c, 0xae61, 0x00ce, 0x080c, 0xaedc, 0x00ce, 0x0804, 0xb488,\r
++      0x2001, 0x1988, 0x2004, 0x6842, 0x00ce, 0x04d0, 0x7008, 0x9086,\r
++      0x000b, 0x11c8, 0x6010, 0x00b6, 0x2058, 0xb900, 0xc1bc, 0xb902,\r
++      0x00be, 0x00c6, 0x2d60, 0xa87b, 0x0003, 0x080c, 0xd1ea, 0x6007,\r
++      0x0085, 0x6003, 0x000b, 0x6023, 0x0002, 0x080c, 0x90f0, 0x080c,\r
++      0x968d, 0x00ce, 0x00e8, 0x700c, 0x9086, 0x2a00, 0x1138, 0x2001,\r
++      0x1988, 0x2004, 0x6842, 0x00a0, 0x0479, 0x00a0, 0x89ff, 0x090c,\r
++      0x0dd5, 0x00c6, 0x00d6, 0x2d60, 0xa867, 0x0103, 0xa87b, 0x0003,\r
++      0x080c, 0x6a9d, 0x080c, 0xcd1e, 0x080c, 0xae92, 0x00de, 0x00ce,\r
++      0x080c, 0xae61, 0x009e, 0x0005, 0x9186, 0x0015, 0x1128, 0x2001,\r
++      0x1988, 0x2004, 0x6842, 0x0068, 0x918e, 0x0016, 0x1160, 0x00c6,\r
++      0x2d00, 0x2060, 0x080c, 0xe80b, 0x080c, 0x86b2, 0x080c, 0xae61,\r
++      0x00ce, 0x080c, 0xae61, 0x0005, 0x0026, 0x0036, 0x0046, 0x7228,\r
++      0xacb0, 0xabac, 0xd2f4, 0x0130, 0x2001, 0x1988, 0x2004, 0x6842,\r
++      0x0804, 0xb506, 0x00c6, 0x2d60, 0x080c, 0xc75b, 0x00ce, 0x6804,\r
++      0x9086, 0x0050, 0x1168, 0x00c6, 0x2d00, 0x2060, 0x6003, 0x0001,\r
++      0x6007, 0x0050, 0x080c, 0x90f0, 0x080c, 0x968d, 0x00ce, 0x04f0,\r
++      0x6800, 0x9086, 0x000f, 0x01a8, 0x89ff, 0x090c, 0x0dd5, 0x6800,\r
++      0x9086, 0x0004, 0x1190, 0xa87c, 0xd0ac, 0x0178, 0xa843, 0x0fff,\r
++      0xa83f, 0x0fff, 0xa880, 0xc0fc, 0xa882, 0x2001, 0x0001, 0x6832,\r
++      0x0400, 0x2001, 0x0007, 0x6832, 0x00e0, 0xa87c, 0xd0b4, 0x1150,\r
++      0xd0ac, 0x0db8, 0x6824, 0xd0f4, 0x1d48, 0xa838, 0xa934, 0x9105,\r
++      0x0d80, 0x0c20, 0xd2ec, 0x1d68, 0x7024, 0x9306, 0x1118, 0x7020,\r
++      0x9406, 0x0d38, 0x7020, 0x683e, 0x7024, 0x683a, 0x2001, 0x0005,\r
++      0x6832, 0x080c, 0xcea1, 0x080c, 0x968d, 0x0010, 0x080c, 0xae61,\r
++      0x004e, 0x003e, 0x002e, 0x0005, 0x00e6, 0x00d6, 0x0026, 0x7008,\r
++      0x9084, 0x00ff, 0x6210, 0x00b6, 0x2258, 0xba10, 0x00be, 0x9206,\r
++      0x1904, 0xb571, 0x700c, 0x6210, 0x00b6, 0x2258, 0xba14, 0x00be,\r
++      0x9206, 0x1904, 0xb571, 0x6038, 0x2068, 0x6824, 0xc0dc, 0x6826,\r
++      0x6a20, 0x9286, 0x0007, 0x0904, 0xb571, 0x9286, 0x0002, 0x0904,\r
++      0xb571, 0x9286, 0x0000, 0x05e8, 0x6808, 0x633c, 0x9306, 0x15c8,\r
++      0x2071, 0x026c, 0x9186, 0x0015, 0x0570, 0x918e, 0x0016, 0x1100,\r
++      0x00c6, 0x6038, 0x2060, 0x6104, 0x9186, 0x004b, 0x01c0, 0x9186,\r
++      0x004c, 0x01a8, 0x9186, 0x004d, 0x0190, 0x9186, 0x004e, 0x0178,\r
++      0x9186, 0x0052, 0x0160, 0x6014, 0x0096, 0x2048, 0x080c, 0xcb35,\r
++      0x090c, 0x0dd5, 0xa87b, 0x0003, 0x009e, 0x080c, 0xd1ea, 0x6007,\r
++      0x0085, 0x6003, 0x000b, 0x6023, 0x0002, 0x080c, 0x90f0, 0x080c,\r
++      0x968d, 0x00ce, 0x0030, 0x6038, 0x2070, 0x2001, 0x1988, 0x2004,\r
++      0x7042, 0x080c, 0xae61, 0x002e, 0x00de, 0x00ee, 0x0005, 0x00b6,\r
++      0x0096, 0x00f6, 0x6014, 0x2048, 0x6010, 0x2058, 0x91b6, 0x0015,\r
++      0x0130, 0xba08, 0xbb0c, 0xbc00, 0xc48c, 0xbc02, 0x0460, 0x0096,\r
++      0x0156, 0x0036, 0x0026, 0x2b48, 0x9e90, 0x0010, 0x2019, 0x000a,\r
++      0x20a9, 0x0004, 0x080c, 0xbe1d, 0x002e, 0x003e, 0x015e, 0x009e,\r
++      0x1904, 0xb5e0, 0x0096, 0x0156, 0x0036, 0x0026, 0x2b48, 0x9e90,\r
++      0x0014, 0x2019, 0x0006, 0x20a9, 0x0004, 0x080c, 0xbe1d, 0x002e,\r
++      0x003e, 0x015e, 0x009e, 0x15a0, 0x7238, 0xba0a, 0x733c, 0xbb0e,\r
++      0xbc00, 0xc48d, 0xbc02, 0xa804, 0x9005, 0x1128, 0x00fe, 0x009e,\r
++      0x00be, 0x0804, 0xb265, 0x0096, 0x2048, 0xaa12, 0xab16, 0xac0a,\r
++      0x009e, 0x8006, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0,\r
++      0x9080, 0x0002, 0x2009, 0x002b, 0xaaa0, 0xab9c, 0xaca8, 0xada4,\r
++      0x2031, 0x0000, 0x2041, 0x1243, 0x080c, 0xb37a, 0x0130, 0x00fe,\r
++      0x009e, 0x080c, 0xae61, 0x00be, 0x0005, 0x080c, 0xb813, 0x0cb8,\r
++      0x2b78, 0x00f6, 0x080c, 0x31bf, 0x080c, 0xd245, 0x00fe, 0x00c6,\r
++      0x080c, 0xae0b, 0x2f00, 0x6012, 0x6017, 0x0000, 0x6023, 0x0001,\r
++      0x6007, 0x0001, 0x6003, 0x0001, 0x2001, 0x0007, 0x080c, 0x654f,\r
++      0x080c, 0x657b, 0x080c, 0x9138, 0x080c, 0x968d, 0x00ce, 0x0804,\r
++      0xb5b3, 0x2100, 0x91b2, 0x0053, 0x1a0c, 0x0dd5, 0x91b2, 0x0040,\r
++      0x1a04, 0xb669, 0x0002, 0xb657, 0xb657, 0xb64d, 0xb657, 0xb657,\r
++      0xb657, 0xb64b, 0xb64b, 0xb64b, 0xb64b, 0xb64b, 0xb64b, 0xb64b,\r
++      0xb64b, 0xb64b, 0xb64b, 0xb64b, 0xb64b, 0xb64b, 0xb64b, 0xb64b,\r
++      0xb64b, 0xb64b, 0xb64b, 0xb64b, 0xb64b, 0xb64b, 0xb64b, 0xb64b,\r
++      0xb64b, 0xb64b, 0xb657, 0xb64b, 0xb657, 0xb657, 0xb64b, 0xb64b,\r
++      0xb64b, 0xb64b, 0xb64b, 0xb64d, 0xb64b, 0xb64b, 0xb64b, 0xb64b,\r
++      0xb64b, 0xb64b, 0xb64b, 0xb64b, 0xb64b, 0xb657, 0xb657, 0xb64b,\r
++      0xb64b, 0xb64b, 0xb64b, 0xb64b, 0xb64b, 0xb64b, 0xb64b, 0xb64b,\r
++      0xb657, 0xb64b, 0xb64b, 0x080c, 0x0dd5, 0x0066, 0x00b6, 0x6610,\r
++      0x2658, 0xb8cc, 0xc08c, 0xb8ce, 0x00be, 0x006e, 0x0000, 0x6003,\r
++      0x0001, 0x6106, 0x9186, 0x0032, 0x0118, 0x080c, 0x9138, 0x0010,\r
++      0x080c, 0x90f0, 0x0126, 0x2091, 0x8000, 0x080c, 0x968d, 0x012e,\r
++      0x0005, 0x2600, 0x0002, 0xb657, 0xb657, 0xb67d, 0xb657, 0xb657,\r
++      0xb67d, 0xb67d, 0xb67d, 0xb67d, 0xb657, 0xb67d, 0xb657, 0xb67d,\r
++      0xb657, 0xb67d, 0xb67d, 0xb67d, 0xb67d, 0x080c, 0x0dd5, 0x6004,\r
++      0x90b2, 0x0053, 0x1a0c, 0x0dd5, 0x91b6, 0x0013, 0x0904, 0xb741,\r
++      0x91b6, 0x0027, 0x1904, 0xb6fc, 0x080c, 0x9588, 0x6004, 0x080c,\r
++      0xcd2a, 0x01b0, 0x080c, 0xcd3b, 0x01a8, 0x908e, 0x0021, 0x0904,\r
++      0xb6f9, 0x908e, 0x0022, 0x1130, 0x080c, 0xb291, 0x0904, 0xb6f5,\r
++      0x0804, 0xb6f6, 0x908e, 0x003d, 0x0904, 0xb6f9, 0x0804, 0xb6ef,\r
++      0x080c, 0x31e8, 0x2001, 0x0007, 0x080c, 0x654f, 0x6010, 0x00b6,\r
++      0x2058, 0xb9a0, 0x00be, 0x080c, 0xb813, 0x9186, 0x007e, 0x1148,\r
++      0x2001, 0x1837, 0x2014, 0xc285, 0x080c, 0x73bc, 0x1108, 0xc2ad,\r
++      0x2202, 0x0036, 0x0026, 0x2019, 0x0028, 0x2110, 0x080c, 0xe917,\r
++      0x002e, 0x003e, 0x0016, 0x0026, 0x0036, 0x2110, 0x2019, 0x0028,\r
++      0x080c, 0x928b, 0x0076, 0x903e, 0x080c, 0x9168, 0x6010, 0x00b6,\r
++      0x905d, 0x0100, 0x00be, 0x2c08, 0x080c, 0xe2eb, 0x007e, 0x003e,\r
++      0x002e, 0x001e, 0x080c, 0xd245, 0x0016, 0x080c, 0xcfa2, 0x080c,\r
++      0xae61, 0x001e, 0x080c, 0x32bb, 0x080c, 0x968d, 0x0030, 0x080c,\r
++      0xcfa2, 0x080c, 0xae61, 0x080c, 0x968d, 0x0005, 0x080c, 0xb813,\r
++      0x0cb0, 0x080c, 0xb84f, 0x0c98, 0x9186, 0x0014, 0x1db0, 0x080c,\r
++      0x9588, 0x6004, 0x908e, 0x0022, 0x1118, 0x080c, 0xb291, 0x0d68,\r
++      0x080c, 0x31bf, 0x080c, 0xd245, 0x080c, 0xcd2a, 0x1190, 0x080c,\r
++      0x31e8, 0x6010, 0x00b6, 0x2058, 0xb9a0, 0x00be, 0x080c, 0xb813,\r
++      0x9186, 0x007e, 0x1128, 0x2001, 0x1837, 0x200c, 0xc185, 0x2102,\r
++      0x0870, 0x080c, 0xcd3b, 0x1118, 0x080c, 0xb813, 0x0840, 0x6004,\r
++      0x908e, 0x0032, 0x1160, 0x00e6, 0x00f6, 0x2071, 0x189e, 0x2079,\r
++      0x0000, 0x080c, 0x3556, 0x00fe, 0x00ee, 0x0804, 0xb6ef, 0x6004,\r
++      0x908e, 0x0021, 0x0d48, 0x908e, 0x0022, 0x090c, 0xb813, 0x0804,\r
++      0xb6ef, 0x90b2, 0x0040, 0x1a04, 0xb7ef, 0x2008, 0x0002, 0xb789,\r
++      0xb78a, 0xb78d, 0xb790, 0xb793, 0xb796, 0xb787, 0xb787, 0xb787,\r
++      0xb787, 0xb787, 0xb787, 0xb787, 0xb787, 0xb787, 0xb787, 0xb787,\r
++      0xb787, 0xb787, 0xb787, 0xb787, 0xb787, 0xb787, 0xb787, 0xb787,\r
++      0xb787, 0xb787, 0xb787, 0xb787, 0xb787, 0xb799, 0xb7a4, 0xb787,\r
++      0xb7a6, 0xb7a4, 0xb787, 0xb787, 0xb787, 0xb787, 0xb787, 0xb7a4,\r
++      0xb7a4, 0xb787, 0xb787, 0xb787, 0xb787, 0xb787, 0xb787, 0xb787,\r
++      0xb787, 0xb7d6, 0xb7a4, 0xb787, 0xb7a0, 0xb787, 0xb787, 0xb787,\r
++      0xb7a1, 0xb787, 0xb787, 0xb787, 0xb7a4, 0xb7cd, 0xb787, 0x080c,\r
++      0x0dd5, 0x00d0, 0x2001, 0x000b, 0x0410, 0x2001, 0x0003, 0x00f8,\r
++      0x2001, 0x0005, 0x00e0, 0x2001, 0x0001, 0x00c8, 0x2001, 0x0009,\r
++      0x00b0, 0x080c, 0x9588, 0x6003, 0x0005, 0x080c, 0x968d, 0x0070,\r
++      0x0018, 0x0010, 0x080c, 0x654f, 0x0804, 0xb7e7, 0x080c, 0x9588,\r
++      0x080c, 0xd248, 0x6003, 0x0004, 0x080c, 0x968d, 0x0005, 0x080c,\r
++      0x654f, 0x080c, 0x9588, 0x6003, 0x0002, 0x0036, 0x2019, 0x1852,\r
++      0x2304, 0x9084, 0xff00, 0x1120, 0x2001, 0x1986, 0x201c, 0x0040,\r
++      0x8007, 0x909a, 0x0004, 0x0ec0, 0x8003, 0x801b, 0x831b, 0x9318,\r
++      0x631a, 0x003e, 0x080c, 0x968d, 0x0c08, 0x080c, 0x9588, 0x080c,\r
++      0xcfa2, 0x080c, 0xae61, 0x080c, 0x968d, 0x08c0, 0x00e6, 0x00f6,\r
++      0x2071, 0x189e, 0x2079, 0x0000, 0x080c, 0x3556, 0x00fe, 0x00ee,\r
++      0x080c, 0x9588, 0x080c, 0xae61, 0x080c, 0x968d, 0x0838, 0x080c,\r
++      0x9588, 0x6003, 0x0002, 0x080c, 0xd248, 0x0804, 0x968d, 0x2600,\r
++      0x2008, 0x0002, 0xb806, 0xb7e7, 0xb804, 0xb7e7, 0xb7e7, 0xb804,\r
++      0xb804, 0xb804, 0xb804, 0xb7e7, 0xb804, 0xb7e7, 0xb804, 0xb7e7,\r
++      0xb804, 0xb804, 0xb804, 0xb804, 0x080c, 0x0dd5, 0x080c, 0x9588,\r
++      0x0096, 0x6014, 0x2048, 0x080c, 0x6c81, 0x009e, 0x080c, 0xae61,\r
++      0x080c, 0x968d, 0x0005, 0x00e6, 0x0096, 0x0026, 0x0016, 0x080c,\r
++      0xcb35, 0x0568, 0x6014, 0x2048, 0xa864, 0x9086, 0x0139, 0x11a8,\r
++      0xa894, 0x9086, 0x0056, 0x1148, 0x080c, 0x5478, 0x0130, 0x2001,\r
++      0x0000, 0x900e, 0x2011, 0x4000, 0x0028, 0x2001, 0x0030, 0x900e,\r
++      0x2011, 0x4005, 0x080c, 0xd10f, 0x0090, 0xa868, 0xd0fc, 0x0178,\r
++      0xa807, 0x0000, 0x0016, 0x6004, 0x908e, 0x0021, 0x0168, 0x908e,\r
++      0x003d, 0x0150, 0x001e, 0xa867, 0x0103, 0xa833, 0x0100, 0x001e,\r
++      0x002e, 0x009e, 0x00ee, 0x0005, 0x001e, 0x0009, 0x0cc0, 0x0096,\r
++      0x6014, 0x2048, 0xa800, 0x2048, 0xa867, 0x0103, 0xa823, 0x8001,\r
++      0x009e, 0x0005, 0x00b6, 0x6610, 0x2658, 0xb804, 0x9084, 0x00ff,\r
++      0x90b2, 0x000c, 0x1a0c, 0x0dd5, 0x6604, 0x96b6, 0x004d, 0x1120,\r
++      0x080c, 0xd02e, 0x0804, 0xb8df, 0x6604, 0x96b6, 0x0043, 0x1120,\r
++      0x080c, 0xd077, 0x0804, 0xb8df, 0x6604, 0x96b6, 0x004b, 0x1120,\r
++      0x080c, 0xd0a3, 0x0804, 0xb8df, 0x6604, 0x96b6, 0x0033, 0x1120,\r
++      0x080c, 0xcfc4, 0x0804, 0xb8df, 0x6604, 0x96b6, 0x0028, 0x1120,\r
++      0x080c, 0xcd74, 0x0804, 0xb8df, 0x6604, 0x96b6, 0x0029, 0x1120,\r
++      0x080c, 0xcdb5, 0x0804, 0xb8df, 0x6604, 0x96b6, 0x001f, 0x1120,\r
++      0x080c, 0xb23a, 0x0804, 0xb8df, 0x6604, 0x96b6, 0x0000, 0x1118,\r
++      0x080c, 0xb577, 0x04e0, 0x6604, 0x96b6, 0x0022, 0x1118, 0x080c,\r
++      0xb272, 0x04a8, 0x6604, 0x96b6, 0x0035, 0x1118, 0x080c, 0xb398,\r
++      0x0470, 0x6604, 0x96b6, 0x0039, 0x1118, 0x080c, 0xb50c, 0x0438,\r
++      0x6604, 0x96b6, 0x003d, 0x1118, 0x080c, 0xb2aa, 0x0400, 0x6604,\r
++      0x96b6, 0x0044, 0x1118, 0x080c, 0xb2e6, 0x00c8, 0x6604, 0x96b6,\r
++      0x0049, 0x1118, 0x080c, 0xb327, 0x0090, 0x6604, 0x96b6, 0x0041,\r
++      0x1118, 0x080c, 0xb311, 0x0058, 0x91b6, 0x0015, 0x1110, 0x0063,\r
++      0x0030, 0x91b6, 0x0016, 0x1128, 0x00be, 0x0804, 0xbb39, 0x00be,\r
++      0x0005, 0x080c, 0xaef7, 0x0cd8, 0xb8fc, 0xb8ff, 0xb8fc, 0xb946,\r
++      0xb8fc, 0xbaad, 0xbb46, 0xb8fc, 0xb8fc, 0xbb0f, 0xb8fc, 0xbb25,\r
++      0x0096, 0x601f, 0x0000, 0x6014, 0x2048, 0xa800, 0x2048, 0xa867,\r
++      0x0103, 0x009e, 0x0804, 0xae61, 0xa001, 0xa001, 0x0005, 0x00e6,\r
++      0x2071, 0x1800, 0x7090, 0x9086, 0x0074, 0x1540, 0x080c, 0xe2bc,\r
++      0x11b0, 0x6010, 0x00b6, 0x2058, 0x7030, 0xd08c, 0x0128, 0xb800,\r
++      0xd0bc, 0x0110, 0xc0c5, 0xb802, 0x00f9, 0x00be, 0x2001, 0x0006,\r
++      0x080c, 0x654f, 0x080c, 0x31e8, 0x080c, 0xae61, 0x0098, 0x2001,\r
++      0x000a, 0x080c, 0x654f, 0x080c, 0x31e8, 0x6003, 0x0001, 0x6007,\r
++      0x0001, 0x080c, 0x9138, 0x080c, 0x968d, 0x0020, 0x2001, 0x0001,\r
++      0x080c, 0xba7d, 0x00ee, 0x0005, 0x00d6, 0xb800, 0xd084, 0x0160,\r
++      0x9006, 0x080c, 0x653b, 0x2069, 0x1847, 0x6804, 0xd0a4, 0x0120,\r
++      0x2001, 0x0006, 0x080c, 0x657b, 0x00de, 0x0005, 0x00b6, 0x0096,\r
++      0x00d6, 0x2011, 0x1824, 0x2204, 0x9086, 0x0074, 0x1904, 0xba54,\r
++      0x6010, 0x2058, 0xbaa0, 0x9286, 0x007e, 0x1120, 0x080c, 0xbc93,\r
++      0x0804, 0xb9b8, 0x080c, 0xbc88, 0x6010, 0x2058, 0xbaa0, 0x9286,\r
++      0x0080, 0x1510, 0x6014, 0x9005, 0x01a8, 0x2048, 0xa864, 0x9084,\r
++      0x00ff, 0x9086, 0x0039, 0x1140, 0x2001, 0x0000, 0x900e, 0x2011,\r
++      0x4000, 0x080c, 0xd10f, 0x0030, 0xa807, 0x0000, 0xa867, 0x0103,\r
++      0xa833, 0x0200, 0x2001, 0x0006, 0x080c, 0x654f, 0x080c, 0x31e8,\r
++      0x080c, 0xae61, 0x0804, 0xba57, 0x080c, 0xba65, 0x6014, 0x9005,\r
++      0x0190, 0x2048, 0xa868, 0xd0f4, 0x01e8, 0xa864, 0x9084, 0x00ff,\r
++      0x9086, 0x0039, 0x1d08, 0x2001, 0x0000, 0x900e, 0x2011, 0x4000,\r
++      0x080c, 0xd10f, 0x08f8, 0x080c, 0xba5b, 0x0160, 0x9006, 0x080c,\r
++      0x653b, 0x2001, 0x0004, 0x080c, 0x657b, 0x2001, 0x0007, 0x080c,\r
++      0x654f, 0x08a0, 0x2001, 0x0004, 0x080c, 0x654f, 0x6003, 0x0001,\r
++      0x6007, 0x0003, 0x080c, 0x9138, 0x080c, 0x968d, 0x0804, 0xba57,\r
++      0xb85c, 0xd0e4, 0x01d8, 0x080c, 0xcf44, 0x080c, 0x73bc, 0x0118,\r
++      0xd0dc, 0x1904, 0xb97a, 0x2011, 0x1837, 0x2204, 0xc0ad, 0x2012,\r
++      0x2001, 0x196d, 0x2004, 0x00f6, 0x2079, 0x0100, 0x78e3, 0x0000,\r
++      0x080c, 0x28b2, 0x78e2, 0x00fe, 0x0804, 0xb97a, 0x080c, 0xcf81,\r
++      0x2011, 0x1837, 0x2204, 0xc0a5, 0x2012, 0x0006, 0x080c, 0xe441,\r
++      0x000e, 0x1904, 0xb97a, 0xc0b5, 0x2012, 0x2001, 0x0006, 0x080c,\r
++      0x654f, 0x9006, 0x080c, 0x653b, 0x00c6, 0x2001, 0x180f, 0x2004,\r
++      0xd09c, 0x0520, 0x00f6, 0x2079, 0x0100, 0x00e6, 0x2071, 0x1800,\r
++      0x700c, 0x9084, 0x00ff, 0x78e6, 0x707e, 0x7010, 0x78ea, 0x7082,\r
++      0x908c, 0x00ff, 0x00ee, 0x780c, 0xc0b5, 0x780e, 0x00fe, 0x080c,\r
++      0x2887, 0x00f6, 0x2100, 0x900e, 0x080c, 0x283e, 0x795e, 0x00fe,\r
++      0x9186, 0x0081, 0x01d8, 0x2009, 0x0081, 0x00c8, 0x2009, 0x00ef,\r
++      0x00f6, 0x2079, 0x0100, 0x79ea, 0x7932, 0x7936, 0x780c, 0xc0b5,\r
++      0x780e, 0x00fe, 0x080c, 0x2887, 0x00f6, 0x2079, 0x1800, 0x7982,\r
++      0x2100, 0x900e, 0x080c, 0x283e, 0x795e, 0x00fe, 0x8108, 0x080c,\r
++      0x659e, 0x2b00, 0x00ce, 0x1904, 0xb97a, 0x6012, 0x2009, 0x180f,\r
++      0x210c, 0xd19c, 0x0150, 0x2009, 0x027c, 0x210c, 0x918c, 0x00ff,\r
++      0xb912, 0x2009, 0x027d, 0x210c, 0xb916, 0x2001, 0x0002, 0x080c,\r
++      0x654f, 0x6023, 0x0001, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c,\r
++      0x9138, 0x080c, 0x968d, 0x0018, 0x2001, 0x0001, 0x0431, 0x00de,\r
++      0x009e, 0x00be, 0x0005, 0x2001, 0x1810, 0x2004, 0xd0a4, 0x0120,\r
++      0x2001, 0x1848, 0x2004, 0xd0ac, 0x0005, 0x00e6, 0x080c, 0xe970,\r
++      0x0190, 0x2071, 0x0260, 0x7108, 0x720c, 0x918c, 0x00ff, 0x1118,\r
++      0x9284, 0xff00, 0x0140, 0x6010, 0x2058, 0xb8a0, 0x9084, 0xff80,\r
++      0x1110, 0xb912, 0xba16, 0x00ee, 0x0005, 0x2030, 0x9005, 0x0158,\r
++      0x2001, 0x0007, 0x080c, 0x654f, 0x080c, 0x56e3, 0x1120, 0x2001,\r
++      0x0007, 0x080c, 0x657b, 0x2600, 0x9005, 0x11b0, 0x6014, 0x0096,\r
++      0x2048, 0xa868, 0x009e, 0xd0fc, 0x1178, 0x0036, 0x0046, 0x6010,\r
++      0x00b6, 0x2058, 0xbba0, 0x00be, 0x2021, 0x0004, 0x2011, 0x8014,\r
++      0x080c, 0x4b04, 0x004e, 0x003e, 0x080c, 0x31e8, 0x6020, 0x9086,\r
++      0x000a, 0x1108, 0x0005, 0x0804, 0xae61, 0x00b6, 0x00e6, 0x0026,\r
++      0x0016, 0x2071, 0x1800, 0x7090, 0x9086, 0x0014, 0x1904, 0xbb05,\r
++      0x080c, 0x56e3, 0x1170, 0x6014, 0x9005, 0x1158, 0x0036, 0x0046,\r
++      0x6010, 0x2058, 0xbba0, 0x2021, 0x0006, 0x080c, 0x4cbb, 0x004e,\r
++      0x003e, 0x00d6, 0x6010, 0x2058, 0x080c, 0x669a, 0x080c, 0xb934,\r
++      0x00de, 0x080c, 0xbd59, 0x1588, 0x6010, 0x2058, 0xb890, 0x9005,\r
++      0x0560, 0x2001, 0x0006, 0x080c, 0x654f, 0x0096, 0x6014, 0x904d,\r
++      0x01d0, 0xa864, 0x9084, 0x00ff, 0x9086, 0x0039, 0x1140, 0x2001,\r
++      0x0000, 0x900e, 0x2011, 0x4000, 0x080c, 0xd10f, 0x0060, 0xa864,\r
++      0x9084, 0x00ff, 0x9086, 0x0029, 0x0130, 0xa807, 0x0000, 0xa867,\r
++      0x0103, 0xa833, 0x0200, 0x009e, 0x080c, 0x31e8, 0x6020, 0x9086,\r
++      0x000a, 0x0140, 0x080c, 0xae61, 0x0028, 0x080c, 0xb813, 0x9006,\r
++      0x080c, 0xba7d, 0x001e, 0x002e, 0x00ee, 0x00be, 0x0005, 0x2011,\r
++      0x1824, 0x2204, 0x9086, 0x0014, 0x1160, 0x2001, 0x0002, 0x080c,\r
++      0x654f, 0x6003, 0x0001, 0x6007, 0x0001, 0x080c, 0x9138, 0x0804,\r
++      0x968d, 0x2001, 0x0001, 0x0804, 0xba7d, 0x2030, 0x2011, 0x1824,\r
++      0x2204, 0x9086, 0x0004, 0x1148, 0x96b6, 0x000b, 0x1120, 0x2001,\r
++      0x0007, 0x080c, 0x654f, 0x0804, 0xae61, 0x2001, 0x0001, 0x0804,\r
++      0xba7d, 0x0002, 0xb8fc, 0xbb51, 0xb8fc, 0xbb92, 0xb8fc, 0xbc3f,\r
++      0xbb46, 0xb8fc, 0xb8fc, 0xbc53, 0xb8fc, 0xbc65, 0x6604, 0x9686,\r
++      0x0003, 0x0904, 0xbaad, 0x96b6, 0x001e, 0x1110, 0x080c, 0xae61,\r
++      0x0005, 0x00b6, 0x00d6, 0x00c6, 0x080c, 0xbc77, 0x11a0, 0x9006,\r
++      0x080c, 0x653b, 0x080c, 0x31bf, 0x080c, 0xd245, 0x2001, 0x0002,\r
++      0x080c, 0x654f, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x9138,\r
++      0x080c, 0x968d, 0x0418, 0x2009, 0x026e, 0x2104, 0x9086, 0x0009,\r
++      0x1160, 0x6010, 0x2058, 0xb840, 0x9084, 0x00ff, 0x9005, 0x0170,\r
++      0x8001, 0xb842, 0x601b, 0x000a, 0x0088, 0x2009, 0x026f, 0x2104,\r
++      0x9084, 0xff00, 0x9086, 0x1900, 0x1108, 0x08a0, 0x080c, 0x31bf,\r
++      0x080c, 0xd245, 0x2001, 0x0001, 0x080c, 0xba7d, 0x00ce, 0x00de,\r
++      0x00be, 0x0005, 0x0096, 0x00b6, 0x0026, 0x9016, 0x080c, 0xbc85,\r
++      0x00d6, 0x2069, 0x197c, 0x2d04, 0x9005, 0x0168, 0x6010, 0x2058,\r
++      0xb8a0, 0x9086, 0x007e, 0x1138, 0x2069, 0x1820, 0x2d04, 0x8000,\r
++      0x206a, 0x00de, 0x0010, 0x00de, 0x0088, 0x9006, 0x080c, 0x653b,\r
++      0x2001, 0x0002, 0x080c, 0x654f, 0x6003, 0x0001, 0x6007, 0x0002,\r
++      0x080c, 0x9138, 0x080c, 0x968d, 0x0804, 0xbc0f, 0x080c, 0xcb35,\r
++      0x01b0, 0x6014, 0x2048, 0xa864, 0x2010, 0x9086, 0x0139, 0x1138,\r
++      0x6007, 0x0016, 0x2001, 0x0002, 0x080c, 0xd169, 0x00b0, 0x6014,\r
++      0x2048, 0xa864, 0xd0fc, 0x0118, 0x2001, 0x0001, 0x0ca8, 0x2001,\r
++      0x180e, 0x2004, 0xd0dc, 0x0148, 0x6010, 0x2058, 0xb840, 0x9084,\r
++      0x00ff, 0x9005, 0x1110, 0x9006, 0x0c38, 0x080c, 0xb813, 0x2009,\r
++      0x026e, 0x2134, 0x96b4, 0x00ff, 0x9686, 0x0005, 0x0520, 0x9686,\r
++      0x000b, 0x01c8, 0x2009, 0x026f, 0x2104, 0x9084, 0xff00, 0x1118,\r
++      0x9686, 0x0009, 0x01c0, 0x9086, 0x1900, 0x1168, 0x9686, 0x0009,\r
++      0x0190, 0x2001, 0x0004, 0x080c, 0x654f, 0x2001, 0x0028, 0x601a,\r
++      0x6007, 0x0052, 0x0020, 0x2001, 0x0001, 0x080c, 0xba7d, 0x002e,\r
++      0x00be, 0x009e, 0x0005, 0x9286, 0x0139, 0x0160, 0x6014, 0x2048,\r
++      0x080c, 0xcb35, 0x0140, 0xa864, 0x9086, 0x0139, 0x0118, 0xa868,\r
++      0xd0fc, 0x0108, 0x0c40, 0x6010, 0x2058, 0xb840, 0x9084, 0x00ff,\r
++      0x9005, 0x0138, 0x8001, 0xb842, 0x601b, 0x000a, 0x6007, 0x0016,\r
++      0x08f0, 0xb8a0, 0x9086, 0x007e, 0x1138, 0x00e6, 0x2071, 0x1800,\r
++      0x080c, 0x5fad, 0x00ee, 0x0010, 0x080c, 0x31bf, 0x0860, 0x080c,\r
++      0xbc85, 0x1160, 0x2001, 0x0004, 0x080c, 0x654f, 0x6003, 0x0001,\r
++      0x6007, 0x0003, 0x080c, 0x9138, 0x0804, 0x968d, 0x080c, 0xb813,\r
++      0x9006, 0x0804, 0xba7d, 0x0489, 0x1160, 0x2001, 0x0008, 0x080c,\r
++      0x654f, 0x6003, 0x0001, 0x6007, 0x0005, 0x080c, 0x9138, 0x0804,\r
++      0x968d, 0x2001, 0x0001, 0x0804, 0xba7d, 0x00f9, 0x1160, 0x2001,\r
++      0x000a, 0x080c, 0x654f, 0x6003, 0x0001, 0x6007, 0x0001, 0x080c,\r
++      0x9138, 0x0804, 0x968d, 0x2001, 0x0001, 0x0804, 0xba7d, 0x2009,\r
++      0x026e, 0x2104, 0x9086, 0x0003, 0x1138, 0x2009, 0x026f, 0x2104,\r
++      0x9084, 0xff00, 0x9086, 0x2a00, 0x0005, 0x9085, 0x0001, 0x0005,\r
++      0x00b6, 0x00c6, 0x0016, 0x6110, 0x2158, 0x080c, 0x660e, 0x001e,\r
++      0x00ce, 0x00be, 0x0005, 0x00b6, 0x00f6, 0x00e6, 0x00d6, 0x0036,\r
++      0x0016, 0x6010, 0x2058, 0x2009, 0x1837, 0x2104, 0x9085, 0x0003,\r
++      0x200a, 0x080c, 0xbd2b, 0x0560, 0x2009, 0x1837, 0x2104, 0xc0cd,\r
++      0x200a, 0x080c, 0x696e, 0x0158, 0x9006, 0x2020, 0x2009, 0x002a,\r
++      0x080c, 0xe5ae, 0x2001, 0x180c, 0x200c, 0xc195, 0x2102, 0x2019,\r
++      0x002a, 0x2009, 0x0001, 0x080c, 0x318a, 0x00e6, 0x2071, 0x1800,\r
++      0x080c, 0x2f96, 0x00ee, 0x00c6, 0x0156, 0x20a9, 0x0781, 0x2009,\r
++      0x007f, 0x080c, 0x32bb, 0x8108, 0x1f04, 0xbcc9, 0x015e, 0x00ce,\r
++      0x080c, 0xbc88, 0x2071, 0x0260, 0x2079, 0x0200, 0x7817, 0x0001,\r
++      0x2001, 0x1837, 0x200c, 0xc1c5, 0x7018, 0xd0fc, 0x0110, 0xd0dc,\r
++      0x0118, 0x7038, 0xd0dc, 0x1108, 0xc1c4, 0x7817, 0x0000, 0x2001,\r
++      0x1837, 0x2102, 0x2079, 0x0100, 0x2e04, 0x9084, 0x00ff, 0x2069,\r
++      0x181f, 0x206a, 0x78e6, 0x0006, 0x8e70, 0x2e04, 0x2069, 0x1820,\r
++      0x206a, 0x78ea, 0x7832, 0x7836, 0x2010, 0x9084, 0xff00, 0x001e,\r
++      0x9105, 0x2009, 0x182c, 0x200a, 0x2200, 0x9084, 0x00ff, 0x2008,\r
++      0x080c, 0x2887, 0x080c, 0x73bc, 0x0170, 0x2071, 0x0260, 0x2069,\r
++      0x1982, 0x7048, 0x206a, 0x704c, 0x6806, 0x7050, 0x680a, 0x7054,\r
++      0x680e, 0x080c, 0xcf44, 0x0040, 0x2001, 0x0006, 0x080c, 0x654f,\r
++      0x080c, 0x31e8, 0x080c, 0xae61, 0x001e, 0x003e, 0x00de, 0x00ee,\r
++      0x00fe, 0x00be, 0x0005, 0x0096, 0x0026, 0x0036, 0x00e6, 0x0156,\r
++      0x2019, 0x182c, 0x231c, 0x83ff, 0x01f0, 0x2071, 0x0260, 0x7200,\r
++      0x9294, 0x00ff, 0x7004, 0x9084, 0xff00, 0x9205, 0x9306, 0x1198,\r
++      0x2011, 0x0276, 0x20a9, 0x0004, 0x2b48, 0x2019, 0x000a, 0x080c,\r
++      0xbe1d, 0x1148, 0x2011, 0x027a, 0x20a9, 0x0004, 0x2019, 0x0006,\r
++      0x080c, 0xbe1d, 0x1100, 0x015e, 0x00ee, 0x003e, 0x002e, 0x009e,\r
++      0x0005, 0x00e6, 0x2071, 0x0260, 0x7034, 0x9086, 0x0014, 0x11a8,\r
++      0x7038, 0x9086, 0x0800, 0x1188, 0x703c, 0xd0ec, 0x0160, 0x9084,\r
++      0x0f00, 0x9086, 0x0100, 0x1138, 0x7054, 0xd0a4, 0x1110, 0xd0ac,\r
++      0x0110, 0x9006, 0x0010, 0x9085, 0x0001, 0x00ee, 0x0005, 0x00e6,\r
++      0x0096, 0x00c6, 0x0076, 0x0056, 0x0046, 0x0026, 0x0006, 0x0126,\r
++      0x2091, 0x8000, 0x2029, 0x19f0, 0x252c, 0x2021, 0x19f6, 0x2424,\r
++      0x2061, 0x1cd0, 0x2071, 0x1800, 0x7254, 0x7074, 0x9202, 0x1a04,\r
++      0xbde9, 0x080c, 0x8981, 0x0904, 0xbde2, 0x080c, 0xe5df, 0x0904,\r
++      0xbde2, 0x6720, 0x9786, 0x0007, 0x0904, 0xbde2, 0x2500, 0x9c06,\r
++      0x0904, 0xbde2, 0x2400, 0x9c06, 0x05e8, 0x3e08, 0x9186, 0x0002,\r
++      0x1148, 0x6010, 0x9005, 0x0130, 0x00b6, 0x2058, 0xb800, 0x00be,\r
++      0xd0bc, 0x1580, 0x00c6, 0x6000, 0x9086, 0x0004, 0x1110, 0x080c,\r
++      0x1a5e, 0x9786, 0x000a, 0x0148, 0x080c, 0xcd3b, 0x1130, 0x00ce,\r
++      0x080c, 0xb813, 0x080c, 0xae92, 0x00e8, 0x6014, 0x2048, 0x080c,\r
++      0xcb35, 0x01a8, 0x9786, 0x0003, 0x1530, 0xa867, 0x0103, 0xa87c,\r
++      0xd0cc, 0x0130, 0x0096, 0xa878, 0x2048, 0x080c, 0x0fb1, 0x009e,\r
++      0xab7a, 0xa877, 0x0000, 0x080c, 0x6c75, 0x080c, 0xcd1e, 0x080c,\r
++      0xae92, 0x00ce, 0x9ce0, 0x0018, 0x7068, 0x9c02, 0x1210, 0x0804,\r
++      0xbd8c, 0x012e, 0x000e, 0x002e, 0x004e, 0x005e, 0x007e, 0x00ce,\r
++      0x009e, 0x00ee, 0x0005, 0x9786, 0x0006, 0x1118, 0x080c, 0xe551,\r
++      0x0c30, 0x9786, 0x0009, 0x1148, 0x6000, 0x9086, 0x0004, 0x0d08,\r
++      0x2009, 0x004c, 0x080c, 0xaedc, 0x08e0, 0x9786, 0x000a, 0x0938,\r
++      0x0820, 0x220c, 0x2304, 0x9106, 0x1130, 0x8210, 0x8318, 0x1f04,\r
++      0xbe09, 0x9006, 0x0005, 0x2304, 0x9102, 0x0218, 0x2001, 0x0001,\r
++      0x0008, 0x9006, 0x918d, 0x0001, 0x0005, 0x0136, 0x01c6, 0x0016,\r
++      0x8906, 0x8006, 0x8007, 0x908c, 0x003f, 0x21e0, 0x9084, 0xffc0,\r
++      0x9300, 0x2098, 0x3518, 0x20a9, 0x0001, 0x220c, 0x4002, 0x910e,\r
++      0x1140, 0x8210, 0x8319, 0x1dc8, 0x9006, 0x001e, 0x01ce, 0x013e,\r
++      0x0005, 0x220c, 0x9102, 0x0218, 0x2001, 0x0001, 0x0010, 0x2001,\r
++      0x0000, 0x918d, 0x0001, 0x001e, 0x01ce, 0x013e, 0x0005, 0x220c,\r
++      0x810f, 0x2304, 0x9106, 0x1130, 0x8210, 0x8318, 0x1f04, 0xbe47,\r
++      0x9006, 0x0005, 0x918d, 0x0001, 0x0005, 0x6004, 0x908a, 0x0053,\r
++      0x1a0c, 0x0dd5, 0x080c, 0xcd2a, 0x0120, 0x080c, 0xcd3b, 0x0168,\r
++      0x0028, 0x080c, 0x31e8, 0x080c, 0xcd3b, 0x0138, 0x080c, 0x9588,\r
++      0x080c, 0xae61, 0x080c, 0x968d, 0x0005, 0x080c, 0xb813, 0x0cb0,\r
++      0x9182, 0x0054, 0x1220, 0x9182, 0x0040, 0x0208, 0x000a, 0x0005,\r
++      0xbe8c, 0xbe8c, 0xbe8c, 0xbe8c, 0xbe8c, 0xbe8c, 0xbe8c, 0xbe8c,\r
++      0xbe8c, 0xbe8c, 0xbe8c, 0xbe8e, 0xbe8e, 0xbe8e, 0xbe8e, 0xbe8c,\r
++      0xbe8c, 0xbe8c, 0xbe8e, 0xbe8c, 0x080c, 0x0dd5, 0x600b, 0xffff,\r
++      0x6003, 0x0001, 0x6106, 0x080c, 0x90f0, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x968d, 0x012e, 0x0005, 0x9186, 0x0013, 0x1128, 0x6004,\r
++      0x9082, 0x0040, 0x0804, 0xbf43, 0x9186, 0x0027, 0x1520, 0x080c,\r
++      0x9588, 0x080c, 0x31bf, 0x080c, 0xd245, 0x0096, 0x6114, 0x2148,\r
++      0x080c, 0xcb35, 0x0198, 0x080c, 0xcd3b, 0x1118, 0x080c, 0xb813,\r
++      0x0068, 0xa867, 0x0103, 0xa87b, 0x0029, 0xa877, 0x0000, 0xa97c,\r
++      0xc1c5, 0xa97e, 0x080c, 0x6c81, 0x080c, 0xcd1e, 0x009e, 0x080c,\r
++      0xae61, 0x0804, 0x968d, 0x9186, 0x0014, 0x1120, 0x6004, 0x9082,\r
++      0x0040, 0x04a0, 0x9186, 0x0046, 0x0150, 0x9186, 0x0045, 0x0138,\r
++      0x9186, 0x0053, 0x0120, 0x9186, 0x0048, 0x190c, 0x0dd5, 0x2001,\r
++      0x0109, 0x2004, 0xd084, 0x0508, 0x0126, 0x2091, 0x2800, 0x0006,\r
++      0x0016, 0x0026, 0x0036, 0x00f6, 0x00e6, 0x00c6, 0x2079, 0x19e7,\r
++      0x2071, 0x1800, 0x2061, 0x0100, 0x080c, 0x8fd5, 0x00ce, 0x00ee,\r
++      0x00fe, 0x003e, 0x002e, 0x001e, 0x000e, 0x012e, 0xa001, 0x6000,\r
++      0x9086, 0x0002, 0x1110, 0x0804, 0xbf81, 0x0005, 0x0002, 0xbf1d,\r
++      0xbf1b, 0xbf1b, 0xbf1b, 0xbf1b, 0xbf1b, 0xbf1b, 0xbf1b, 0xbf1b,\r
++      0xbf1b, 0xbf1b, 0xbf38, 0xbf38, 0xbf38, 0xbf38, 0xbf1b, 0xbf38,\r
++      0xbf1b, 0xbf38, 0xbf1b, 0x080c, 0x0dd5, 0x080c, 0x9588, 0x0096,\r
++      0x6114, 0x2148, 0x080c, 0xcb35, 0x0168, 0xa867, 0x0103, 0xa87b,\r
++      0x0006, 0xa877, 0x0000, 0xa880, 0xc0ec, 0xa882, 0x080c, 0x6c81,\r
++      0x080c, 0xcd1e, 0x009e, 0x080c, 0xae61, 0x080c, 0x968d, 0x0005,\r
++      0x080c, 0x9588, 0x080c, 0xcd3b, 0x090c, 0xb813, 0x080c, 0xae61,\r
++      0x080c, 0x968d, 0x0005, 0x0002, 0xbf5a, 0xbf58, 0xbf58, 0xbf58,\r
++      0xbf58, 0xbf58, 0xbf58, 0xbf58, 0xbf58, 0xbf58, 0xbf58, 0xbf71,\r
++      0xbf71, 0xbf71, 0xbf71, 0xbf58, 0xbf7b, 0xbf58, 0xbf71, 0xbf58,\r
++      0x080c, 0x0dd5, 0x0096, 0x080c, 0x9588, 0x6014, 0x2048, 0x2001,\r
++      0x1988, 0x2004, 0x6042, 0xa97c, 0xd1ac, 0x0140, 0x6003, 0x0004,\r
++      0xa87c, 0x9085, 0x0400, 0xa87e, 0x009e, 0x0005, 0x6003, 0x0002,\r
++      0x0cb8, 0x080c, 0x9588, 0x080c, 0xd248, 0x080c, 0xd24d, 0x6003,\r
++      0x000f, 0x0804, 0x968d, 0x080c, 0x9588, 0x080c, 0xae61, 0x0804,\r
++      0x968d, 0x9182, 0x0054, 0x1220, 0x9182, 0x0040, 0x0208, 0x000a,\r
++      0x0005, 0xbf9d, 0xbf9d, 0xbf9d, 0xbf9d, 0xbf9d, 0xbf9f, 0xc07c,\r
++      0xbf9d, 0xc0b0, 0xbf9d, 0xbf9d, 0xbf9d, 0xbf9d, 0xbf9d, 0xbf9d,\r
++      0xbf9d, 0xbf9d, 0xbf9d, 0xbf9d, 0xc0b0, 0x080c, 0x0dd5, 0x00b6,\r
++      0x0096, 0x6114, 0x2148, 0x7644, 0x96b4, 0x0fff, 0x86ff, 0x1528,\r
++      0x6010, 0x2058, 0xb800, 0xd0bc, 0x1904, 0xc06b, 0xa87b, 0x0000,\r
++      0xa867, 0x0103, 0xae76, 0xa87c, 0xd0ac, 0x0128, 0xa834, 0xa938,\r
++      0x9115, 0x190c, 0xc245, 0x080c, 0x6a9d, 0x6210, 0x2258, 0xba3c,\r
++      0x82ff, 0x0110, 0x8211, 0xba3e, 0x7044, 0xd0e4, 0x1904, 0xc04f,\r
++      0x080c, 0xae61, 0x009e, 0x00be, 0x0005, 0x968c, 0x0c00, 0x0150,\r
++      0x6010, 0x2058, 0xb800, 0xd0bc, 0x1904, 0xc053, 0x7348, 0xab92,\r
++      0x734c, 0xab8e, 0x968c, 0x00ff, 0x9186, 0x0002, 0x0508, 0x9186,\r
++      0x0028, 0x1118, 0xa87b, 0x001c, 0x00e8, 0xd6dc, 0x01a0, 0xa87b,\r
++      0x0015, 0xa87c, 0xd0ac, 0x0170, 0xa938, 0xaa34, 0x2100, 0x9205,\r
++      0x0148, 0x7048, 0x9106, 0x1118, 0x704c, 0x9206, 0x0118, 0xa992,\r
++      0xaa8e, 0xc6dc, 0x0038, 0xd6d4, 0x0118, 0xa87b, 0x0007, 0x0010,\r
++      0xa87b, 0x0000, 0xa867, 0x0103, 0xae76, 0x901e, 0xd6c4, 0x01d8,\r
++      0x9686, 0x0100, 0x1130, 0x7064, 0x9005, 0x1118, 0xc6c4, 0x0804,\r
++      0xbfa6, 0x735c, 0xab86, 0x83ff, 0x0170, 0x938a, 0x0009, 0x0210,\r
++      0x2019, 0x0008, 0x0036, 0x2308, 0x2019, 0x0018, 0x2011, 0x0025,\r
++      0x080c, 0xc730, 0x003e, 0xd6cc, 0x0904, 0xbfbb, 0x7154, 0xa98a,\r
++      0x81ff, 0x0904, 0xbfbb, 0x9192, 0x0021, 0x1278, 0x8304, 0x9098,\r
++      0x0018, 0x2011, 0x0029, 0x080c, 0xc730, 0x2011, 0x0205, 0x2013,\r
++      0x0000, 0x080c, 0xd1d5, 0x0804, 0xbfbb, 0xa868, 0xd0fc, 0x0120,\r
++      0x2009, 0x0020, 0xa98a, 0x0c50, 0x00a6, 0x2950, 0x080c, 0xc6cf,\r
++      0x00ae, 0x080c, 0xd1d5, 0x080c, 0xc720, 0x0804, 0xbfbd, 0x080c,\r
++      0xce2e, 0x0804, 0xbfca, 0xa87c, 0xd0ac, 0x0904, 0xbfd6, 0xa880,\r
++      0xd0bc, 0x1904, 0xbfd6, 0x7348, 0xa838, 0x9306, 0x11c8, 0x734c,\r
++      0xa834, 0x931e, 0x0904, 0xbfd6, 0xd6d4, 0x0190, 0xab38, 0x9305,\r
++      0x0904, 0xbfd6, 0x0068, 0xa87c, 0xd0ac, 0x0904, 0xbfae, 0xa838,\r
++      0xa934, 0x9105, 0x0904, 0xbfae, 0xa880, 0xd0bc, 0x1904, 0xbfae,\r
++      0x080c, 0xce68, 0x0804, 0xbfca, 0x0096, 0x00f6, 0x6003, 0x0003,\r
++      0x6007, 0x0043, 0x2079, 0x026c, 0x7c04, 0x7b00, 0x7e0c, 0x7d08,\r
++      0x6014, 0x2048, 0xa87c, 0xd0ac, 0x0140, 0x6003, 0x0002, 0x00fe,\r
++      0x009e, 0x0005, 0x2130, 0x2228, 0x0058, 0x2400, 0xa9ac, 0x910a,\r
++      0x2300, 0xaab0, 0x9213, 0x2600, 0x9102, 0x2500, 0x9203, 0x0e90,\r
++      0xac36, 0xab3a, 0xae46, 0xad4a, 0x00fe, 0x6043, 0x0000, 0x2c10,\r
++      0x080c, 0x1bad, 0x080c, 0x9155, 0x080c, 0x97b9, 0x009e, 0x0005,\r
++      0x0005, 0x9182, 0x0054, 0x1220, 0x9182, 0x0040, 0x0208, 0x000a,\r
++      0x0005, 0xc0cd, 0xc0cd, 0xc0cd, 0xc0cd, 0xc0cd, 0xc0cf, 0xc165,\r
++      0xc0cd, 0xc0cd, 0xc17c, 0xc208, 0xc0cd, 0xc0cd, 0xc0cd, 0xc0cd,\r
++      0xc21d, 0xc0cd, 0xc0cd, 0xc0cd, 0xc0cd, 0x080c, 0x0dd5, 0x0076,\r
++      0x00a6, 0x00e6, 0x0096, 0x2071, 0x0260, 0x6114, 0x2150, 0x7644,\r
++      0xb676, 0x96b4, 0x0fff, 0xb77c, 0xc7e5, 0xb77e, 0x6210, 0x00b6,\r
++      0x2258, 0xba3c, 0x82ff, 0x0110, 0x8211, 0xba3e, 0x00be, 0x86ff,\r
++      0x0904, 0xc160, 0x9694, 0xff00, 0x9284, 0x0c00, 0x0120, 0x7048,\r
++      0xb092, 0x704c, 0xb08e, 0x9284, 0x0300, 0x0904, 0xc160, 0x080c,\r
++      0x0fff, 0x090c, 0x0dd5, 0x2900, 0xb07a, 0xb77c, 0xc7cd, 0xb77e,\r
++      0xa867, 0x0103, 0xb068, 0xa86a, 0xb06c, 0xa86e, 0xb070, 0xa872,\r
++      0xae76, 0x968c, 0x0c00, 0x0120, 0x7348, 0xab92, 0x734c, 0xab8e,\r
++      0x968c, 0x00ff, 0x9186, 0x0002, 0x0180, 0x9186, 0x0028, 0x1118,\r
++      0xa87b, 0x001c, 0x0060, 0xd6dc, 0x0118, 0xa87b, 0x0015, 0x0038,\r
++      0xd6d4, 0x0118, 0xa87b, 0x0007, 0x0010, 0xa87b, 0x0000, 0xaf7e,\r
++      0xb080, 0xa882, 0xb084, 0xa886, 0x901e, 0xd6c4, 0x0190, 0x735c,\r
++      0xab86, 0x83ff, 0x0170, 0x938a, 0x0009, 0x0210, 0x2019, 0x0008,\r
++      0x0036, 0x2308, 0x2019, 0x0018, 0x2011, 0x0025, 0x080c, 0xc730,\r
++      0x003e, 0xd6cc, 0x01e8, 0x7154, 0xa98a, 0x81ff, 0x01c8, 0x9192,\r
++      0x0021, 0x1260, 0x8304, 0x9098, 0x0018, 0x2011, 0x0029, 0x080c,\r
++      0xc730, 0x2011, 0x0205, 0x2013, 0x0000, 0x0050, 0xb068, 0xd0fc,\r
++      0x0120, 0x2009, 0x0020, 0xa98a, 0x0c68, 0x2950, 0x080c, 0xc6cf,\r
++      0x009e, 0x00ee, 0x00ae, 0x007e, 0x0005, 0x00f6, 0x00a6, 0x6003,\r
++      0x0003, 0x2079, 0x026c, 0x7c04, 0x7b00, 0x7e0c, 0x7d08, 0x6014,\r
++      0x2050, 0xb436, 0xb33a, 0xb646, 0xb54a, 0x00ae, 0x00fe, 0x2c10,\r
++      0x080c, 0x1bad, 0x0804, 0xa240, 0x6003, 0x0002, 0x6004, 0x9086,\r
++      0x0040, 0x11c8, 0x0096, 0x6014, 0x2048, 0xa87c, 0xd0ac, 0x0160,\r
++      0x601c, 0xd084, 0x1130, 0x00f6, 0x2c00, 0x2078, 0x080c, 0x1725,\r
++      0x00fe, 0x6003, 0x0004, 0x0010, 0x6003, 0x0002, 0x009e, 0x080c,\r
++      0x9588, 0x080c, 0x968d, 0x0096, 0x2001, 0x1988, 0x2004, 0x6042,\r
++      0x080c, 0x963d, 0x080c, 0x97b9, 0x6114, 0x2148, 0xa97c, 0xd1e4,\r
++      0x0904, 0xc203, 0xd1cc, 0x05a8, 0xa978, 0xa868, 0xd0fc, 0x0538,\r
++      0x0016, 0xa87c, 0x0006, 0xa880, 0x0006, 0xa860, 0x20e8, 0xa85c,\r
++      0x9080, 0x0019, 0x20a0, 0x810e, 0x810e, 0x810f, 0x9184, 0x003f,\r
++      0x20e0, 0x9184, 0xffc0, 0x9080, 0x0019, 0x2098, 0x0156, 0x20a9,\r
++      0x0020, 0x4003, 0x015e, 0x000e, 0xa882, 0x000e, 0xa87e, 0x001e,\r
++      0xa874, 0x0006, 0x2148, 0x080c, 0x0fb1, 0x001e, 0x0440, 0x0016,\r
++      0x080c, 0x0fb1, 0x009e, 0xa974, 0x0016, 0x080c, 0xc720, 0x001e,\r
++      0x00f0, 0xa867, 0x0103, 0xa974, 0x9184, 0x00ff, 0x90b6, 0x0002,\r
++      0x0180, 0x9086, 0x0028, 0x1118, 0xa87b, 0x001c, 0x0060, 0xd1dc,\r
++      0x0118, 0xa87b, 0x0015, 0x0038, 0xd1d4, 0x0118, 0xa87b, 0x0007,\r
++      0x0010, 0xa87b, 0x0000, 0x0016, 0x080c, 0x6a9d, 0x001e, 0xd1e4,\r
++      0x1120, 0x080c, 0xae61, 0x009e, 0x0005, 0x080c, 0xce2e, 0x0cd8,\r
++      0x6004, 0x9086, 0x0040, 0x1120, 0x080c, 0x9588, 0x080c, 0x968d,\r
++      0x2019, 0x0001, 0x080c, 0xa5b6, 0x6003, 0x0002, 0x080c, 0xd24d,\r
++      0x080c, 0x963d, 0x080c, 0x97b9, 0x0005, 0x6004, 0x9086, 0x0040,\r
++      0x1120, 0x080c, 0x9588, 0x080c, 0x968d, 0x2019, 0x0001, 0x080c,\r
++      0xa5b6, 0x080c, 0x963d, 0x080c, 0x31bf, 0x080c, 0xd245, 0x0096,\r
++      0x6114, 0x2148, 0x080c, 0xcb35, 0x0150, 0xa867, 0x0103, 0xa87b,\r
++      0x0029, 0xa877, 0x0000, 0x080c, 0x6c81, 0x080c, 0xcd1e, 0x009e,\r
++      0x080c, 0xae61, 0x080c, 0x97b9, 0x0005, 0xa87b, 0x0015, 0xd1fc,\r
++      0x0180, 0xa87b, 0x0007, 0x8002, 0x8000, 0x810a, 0x9189, 0x0000,\r
++      0x0006, 0x0016, 0x2009, 0x1a7a, 0x2104, 0x8000, 0x200a, 0x001e,\r
++      0x000e, 0xa992, 0xa88e, 0x0005, 0x9182, 0x0054, 0x1220, 0x9182,\r
++      0x0040, 0x0208, 0x000a, 0x0005, 0xc278, 0xc278, 0xc278, 0xc278,\r
++      0xc278, 0xc27a, 0xc278, 0xc278, 0xc320, 0xc278, 0xc278, 0xc278,\r
++      0xc278, 0xc278, 0xc278, 0xc278, 0xc278, 0xc278, 0xc278, 0xc451,\r
++      0x080c, 0x0dd5, 0x0076, 0x00a6, 0x00e6, 0x0096, 0x2071, 0x0260,\r
++      0x6114, 0x2150, 0x7644, 0xb676, 0x96b4, 0x0fff, 0xb77c, 0xc7e5,\r
++      0xb77e, 0x6210, 0x00b6, 0x2258, 0xba3c, 0x82ff, 0x0110, 0x8211,\r
++      0xba3e, 0x00be, 0x86ff, 0x0904, 0xc319, 0x9694, 0xff00, 0x9284,\r
++      0x0c00, 0x0120, 0x7048, 0xb092, 0x704c, 0xb08e, 0x9284, 0x0300,\r
++      0x0904, 0xc319, 0x9686, 0x0100, 0x1130, 0x7064, 0x9005, 0x1118,\r
++      0xc6c4, 0xb676, 0x0c38, 0x080c, 0x0fff, 0x090c, 0x0dd5, 0x2900,\r
++      0xb07a, 0xb77c, 0x97bd, 0x0200, 0xb77e, 0xa867, 0x0103, 0xb068,\r
++      0xa86a, 0xb06c, 0xa86e, 0xb070, 0xa872, 0x7044, 0x9084, 0xf000,\r
++      0x9635, 0xae76, 0x968c, 0x0c00, 0x0120, 0x7348, 0xab92, 0x734c,\r
++      0xab8e, 0x968c, 0x00ff, 0x9186, 0x0002, 0x0180, 0x9186, 0x0028,\r
++      0x1118, 0xa87b, 0x001c, 0x0060, 0xd6dc, 0x0118, 0xa87b, 0x0015,\r
++      0x0038, 0xd6d4, 0x0118, 0xa87b, 0x0007, 0x0010, 0xa87b, 0x0000,\r
++      0xaf7e, 0xb080, 0xa882, 0xb084, 0xa886, 0x901e, 0xd6c4, 0x0190,\r
++      0x735c, 0xab86, 0x83ff, 0x0170, 0x938a, 0x0009, 0x0210, 0x2019,\r
++      0x0008, 0x0036, 0x2308, 0x2019, 0x0018, 0x2011, 0x0025, 0x080c,\r
++      0xc730, 0x003e, 0xd6cc, 0x01e8, 0x7154, 0xa98a, 0x81ff, 0x01c8,\r
++      0x9192, 0x0021, 0x1260, 0x8304, 0x9098, 0x0018, 0x2011, 0x0029,\r
++      0x080c, 0xc730, 0x2011, 0x0205, 0x2013, 0x0000, 0x0050, 0xb068,\r
++      0xd0fc, 0x0120, 0x2009, 0x0020, 0xa98a, 0x0c68, 0x2950, 0x080c,\r
++      0xc6cf, 0x080c, 0x1a3c, 0x009e, 0x00ee, 0x00ae, 0x007e, 0x0005,\r
++      0x2001, 0x1988, 0x2004, 0x6042, 0x0096, 0x6114, 0x2148, 0xa83c,\r
++      0xa940, 0x9105, 0x1118, 0xa87c, 0xc0dc, 0xa87e, 0x6003, 0x0002,\r
++      0xa97c, 0xd1e4, 0x0904, 0xc44c, 0x6043, 0x0000, 0x6010, 0x00b6,\r
++      0x2058, 0xb800, 0x00be, 0xd0bc, 0x1500, 0xd1cc, 0x0904, 0xc41b,\r
++      0xa978, 0xa868, 0xd0fc, 0x0904, 0xc3dc, 0x0016, 0xa87c, 0x0006,\r
++      0xa880, 0x0006, 0x00a6, 0x2150, 0xb174, 0x9184, 0x00ff, 0x90b6,\r
++      0x0002, 0x0904, 0xc3aa, 0x9086, 0x0028, 0x1904, 0xc396, 0xa87b,\r
++      0x001c, 0xb07b, 0x001c, 0x0804, 0xc3b2, 0x6024, 0xd0f4, 0x11d0,\r
++      0xa838, 0xaa34, 0x9205, 0x09c8, 0xa838, 0xaa90, 0x9206, 0x1120,\r
++      0xa88c, 0xaa34, 0x9206, 0x0988, 0x6024, 0xd0d4, 0x1148, 0xa9ac,\r
++      0xa834, 0x9102, 0x603a, 0xa9b0, 0xa838, 0x9103, 0x603e, 0x6024,\r
++      0xc0f5, 0x6026, 0x6010, 0x00b6, 0x2058, 0xb83c, 0x8000, 0xb83e,\r
++      0x00be, 0x9006, 0xa876, 0xa892, 0xa88e, 0xa87c, 0xc0e4, 0xa87e,\r
++      0xd0cc, 0x0140, 0xc0cc, 0xa87e, 0x0096, 0xa878, 0x2048, 0x080c,\r
++      0x0fb1, 0x009e, 0x080c, 0xce68, 0x0804, 0xc44c, 0xd1dc, 0x0158,\r
++      0xa87b, 0x0015, 0xb07b, 0x0015, 0x080c, 0xd0f8, 0x0118, 0xb174,\r
++      0xc1dc, 0xb176, 0x0078, 0xd1d4, 0x0128, 0xa87b, 0x0007, 0xb07b,\r
++      0x0007, 0x0040, 0xa87c, 0xd0ac, 0x0128, 0xa834, 0xa938, 0x9115,\r
++      0x190c, 0xc245, 0xa87c, 0xb07e, 0xa890, 0xb092, 0xa88c, 0xb08e,\r
++      0xa860, 0x20e8, 0xa85c, 0x9080, 0x0019, 0x20a0, 0x20a9, 0x0020,\r
++      0x8a06, 0x8006, 0x8007, 0x9094, 0x003f, 0x22e0, 0x9084, 0xffc0,\r
++      0x9080, 0x0019, 0x2098, 0x4003, 0x00ae, 0x000e, 0xa882, 0x000e,\r
++      0xa87e, 0x080c, 0xd1d5, 0x001e, 0xa874, 0x0006, 0x2148, 0x080c,\r
++      0x0fb1, 0x001e, 0x0804, 0xc448, 0x0016, 0x00a6, 0x2150, 0xb174,\r
++      0x9184, 0x00ff, 0x90b6, 0x0002, 0x01e0, 0x9086, 0x0028, 0x1128,\r
++      0xa87b, 0x001c, 0xb07b, 0x001c, 0x00e0, 0xd1dc, 0x0158, 0xa87b,\r
++      0x0015, 0xb07b, 0x0015, 0x080c, 0xd0f8, 0x0118, 0xb174, 0xc1dc,\r
++      0xb176, 0x0078, 0xd1d4, 0x0128, 0xa87b, 0x0007, 0xb07b, 0x0007,\r
++      0x0040, 0xa87c, 0xd0ac, 0x0128, 0xa834, 0xa938, 0x9115, 0x190c,\r
++      0xc245, 0xa890, 0xb092, 0xa88c, 0xb08e, 0xa87c, 0xb07e, 0x00ae,\r
++      0x080c, 0x0fb1, 0x009e, 0x080c, 0xd1d5, 0xa974, 0x0016, 0x080c,\r
++      0xc720, 0x001e, 0x0468, 0xa867, 0x0103, 0xa974, 0x9184, 0x00ff,\r
++      0x90b6, 0x0002, 0x01b0, 0x9086, 0x0028, 0x1118, 0xa87b, 0x001c,\r
++      0x00d0, 0xd1dc, 0x0148, 0xa87b, 0x0015, 0x080c, 0xd0f8, 0x0118,\r
++      0xa974, 0xc1dc, 0xa976, 0x0078, 0xd1d4, 0x0118, 0xa87b, 0x0007,\r
++      0x0050, 0xa87b, 0x0000, 0xa87c, 0xd0ac, 0x0128, 0xa834, 0xa938,\r
++      0x9115, 0x190c, 0xc245, 0xa974, 0x0016, 0x080c, 0x6a9d, 0x001e,\r
++      0xd1e4, 0x1120, 0x080c, 0xae61, 0x009e, 0x0005, 0x080c, 0xce2e,\r
++      0x0cd8, 0x6114, 0x0096, 0x2148, 0xa97c, 0xd1e4, 0x190c, 0x1a4a,\r
++      0x009e, 0x0005, 0x080c, 0x9588, 0x0010, 0x080c, 0x963d, 0x080c,\r
++      0xcb35, 0x01f0, 0x0096, 0x6114, 0x2148, 0x080c, 0xcd3b, 0x1118,\r
++      0x080c, 0xb813, 0x00a0, 0xa867, 0x0103, 0x2009, 0x180c, 0x210c,\r
++      0xd18c, 0x11b8, 0xd184, 0x1190, 0x6108, 0xa97a, 0x918e, 0x0029,\r
++      0x1110, 0x080c, 0xe908, 0xa877, 0x0000, 0x080c, 0x6c81, 0x009e,\r
++      0x080c, 0xae61, 0x080c, 0x968d, 0x0804, 0x97b9, 0xa87b, 0x0004,\r
++      0x0c90, 0xa87b, 0x0004, 0x0c78, 0x9182, 0x0054, 0x1220, 0x9182,\r
++      0x0040, 0x0208, 0x000a, 0x0005, 0xc4a8, 0xc4a8, 0xc4a8, 0xc4a8,\r
++      0xc4a8, 0xc4aa, 0xc4a8, 0xc4a8, 0xc4a8, 0xc4a8, 0xc4a8, 0xc4a8,\r
++      0xc4a8, 0xc4a8, 0xc4a8, 0xc4a8, 0xc4a8, 0xc4a8, 0xc4a8, 0xc4a8,\r
++      0x080c, 0x0dd5, 0x080c, 0x56d7, 0x01f8, 0x6014, 0x7144, 0x918c,\r
++      0x0fff, 0x9016, 0xd1c4, 0x0118, 0x7264, 0x9294, 0x00ff, 0x0096,\r
++      0x904d, 0x0188, 0xa87b, 0x0000, 0xa864, 0x9086, 0x0139, 0x0128,\r
++      0xa867, 0x0103, 0xa976, 0xaa96, 0x0030, 0xa897, 0x4000, 0xa99a,\r
++      0xaa9e, 0x080c, 0x6c81, 0x009e, 0x0804, 0xae61, 0x9182, 0x0085,\r
++      0x0002, 0xc4e0, 0xc4de, 0xc4de, 0xc4ec, 0xc4de, 0xc4de, 0xc4de,\r
++      0xc4de, 0xc4de, 0xc4de, 0xc4de, 0xc4de, 0xc4de, 0x080c, 0x0dd5,\r
++      0x6003, 0x0001, 0x6106, 0x080c, 0x90f0, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x968d, 0x012e, 0x0005, 0x0026, 0x0056, 0x00d6, 0x00e6,\r
++      0x2071, 0x0260, 0x7224, 0x6216, 0x7220, 0x080c, 0xcb23, 0x01a0,\r
++      0x2268, 0x6800, 0x9086, 0x0000, 0x0178, 0x6010, 0x6d10, 0x952e,\r
++      0x1158, 0x00c6, 0x2d60, 0x080c, 0xc75b, 0x00ce, 0x0128, 0x6803,\r
++      0x0002, 0x6007, 0x0086, 0x0010, 0x6007, 0x0087, 0x6003, 0x0001,\r
++      0x080c, 0x90f0, 0x080c, 0x968d, 0x9280, 0x0004, 0x00b6, 0x2058,\r
++      0xb800, 0x00be, 0xd0bc, 0x0140, 0x6824, 0xd0ec, 0x0128, 0x00c6,\r
++      0x2260, 0x080c, 0xce68, 0x00ce, 0x00ee, 0x00de, 0x005e, 0x002e,\r
++      0x0005, 0x9186, 0x0013, 0x1160, 0x6004, 0x908a, 0x0085, 0x0a0c,\r
++      0x0dd5, 0x908a, 0x0092, 0x1a0c, 0x0dd5, 0x9082, 0x0085, 0x00e2,\r
++      0x9186, 0x0027, 0x0120, 0x9186, 0x0014, 0x190c, 0x0dd5, 0x080c,\r
++      0x9588, 0x0096, 0x6014, 0x2048, 0x080c, 0xcb35, 0x0140, 0xa867,\r
++      0x0103, 0xa877, 0x0000, 0xa87b, 0x0029, 0x080c, 0x6c81, 0x009e,\r
++      0x080c, 0xae92, 0x0804, 0x968d, 0xc561, 0xc563, 0xc563, 0xc561,\r
++      0xc561, 0xc561, 0xc561, 0xc561, 0xc561, 0xc561, 0xc561, 0xc561,\r
++      0xc561, 0x080c, 0x0dd5, 0x080c, 0x9588, 0x080c, 0xae92, 0x080c,\r
++      0x968d, 0x0005, 0x9186, 0x0013, 0x1128, 0x6004, 0x9082, 0x0085,\r
++      0x2008, 0x04b8, 0x9186, 0x0027, 0x11f8, 0x080c, 0x9588, 0x080c,\r
++      0x31bf, 0x080c, 0xd245, 0x0096, 0x6014, 0x2048, 0x080c, 0xcb35,\r
++      0x0150, 0xa867, 0x0103, 0xa877, 0x0000, 0xa87b, 0x0029, 0x080c,\r
++      0x6c81, 0x080c, 0xcd1e, 0x009e, 0x080c, 0xae61, 0x080c, 0x968d,\r
++      0x0005, 0x080c, 0xaef7, 0x0ce0, 0x9186, 0x0014, 0x1dd0, 0x080c,\r
++      0x9588, 0x0096, 0x6014, 0x2048, 0x080c, 0xcb35, 0x0d60, 0xa867,\r
++      0x0103, 0xa877, 0x0000, 0xa87b, 0x0006, 0xa880, 0xc0ec, 0xa882,\r
++      0x08f0, 0x0002, 0xc5b9, 0xc5b7, 0xc5b7, 0xc5b7, 0xc5b7, 0xc5b7,\r
++      0xc5d1, 0xc5b7, 0xc5b7, 0xc5b7, 0xc5b7, 0xc5b7, 0xc5b7, 0x080c,\r
++      0x0dd5, 0x080c, 0x9588, 0x6034, 0x908c, 0xff00, 0x810f, 0x9186,\r
++      0x0039, 0x0118, 0x9186, 0x0035, 0x1118, 0x2001, 0x1986, 0x0010,\r
++      0x2001, 0x1987, 0x2004, 0x601a, 0x6003, 0x000c, 0x080c, 0x968d,\r
++      0x0005, 0x080c, 0x9588, 0x6034, 0x908c, 0xff00, 0x810f, 0x9186,\r
++      0x0039, 0x0118, 0x9186, 0x0035, 0x1118, 0x2001, 0x1986, 0x0010,\r
++      0x2001, 0x1987, 0x2004, 0x601a, 0x6003, 0x000e, 0x080c, 0x968d,\r
++      0x0005, 0x9182, 0x0092, 0x1220, 0x9182, 0x0085, 0x0208, 0x0012,\r
++      0x0804, 0xaef7, 0xc5ff, 0xc5ff, 0xc5ff, 0xc5ff, 0xc601, 0xc64e,\r
++      0xc5ff, 0xc5ff, 0xc5ff, 0xc5ff, 0xc5ff, 0xc5ff, 0xc5ff, 0x080c,\r
++      0x0dd5, 0x0096, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc,\r
++      0x0168, 0x6034, 0x908c, 0xff00, 0x810f, 0x9186, 0x0039, 0x0118,\r
++      0x9186, 0x0035, 0x1118, 0x009e, 0x0804, 0xc662, 0x080c, 0xcb35,\r
++      0x1118, 0x080c, 0xcd1e, 0x0068, 0x6014, 0x2048, 0xa87c, 0xd0e4,\r
++      0x1110, 0x080c, 0xcd1e, 0xa867, 0x0103, 0x080c, 0xd210, 0x080c,\r
++      0x6c81, 0x00d6, 0x2c68, 0x080c, 0xae0b, 0x01d0, 0x6003, 0x0001,\r
++      0x6007, 0x001e, 0x600b, 0xffff, 0x2009, 0x026e, 0x210c, 0x613a,\r
++      0x2009, 0x026f, 0x210c, 0x613e, 0x6910, 0x6112, 0x080c, 0xcfaa,\r
++      0x6954, 0x6156, 0x6023, 0x0001, 0x080c, 0x90f0, 0x080c, 0x968d,\r
++      0x2d60, 0x00de, 0x080c, 0xae61, 0x009e, 0x0005, 0x6010, 0x00b6,\r
++      0x2058, 0xb800, 0x00be, 0xd0bc, 0x05a0, 0x6034, 0x908c, 0xff00,\r
++      0x810f, 0x9186, 0x0035, 0x0130, 0x9186, 0x001e, 0x0118, 0x9186,\r
++      0x0039, 0x1538, 0x00d6, 0x2c68, 0x080c, 0xd1a8, 0x11f0, 0x080c,\r
++      0xae0b, 0x01d8, 0x6106, 0x6003, 0x0001, 0x6023, 0x0001, 0x6910,\r
++      0x6112, 0x692c, 0x612e, 0x6930, 0x6132, 0x6934, 0x918c, 0x00ff,\r
++      0x6136, 0x6938, 0x613a, 0x693c, 0x613e, 0x6954, 0x6156, 0x080c,\r
++      0xcfaa, 0x080c, 0x90f0, 0x080c, 0x968d, 0x2d60, 0x00de, 0x0804,\r
++      0xae61, 0x0096, 0x6014, 0x2048, 0x080c, 0xcb35, 0x01c8, 0xa867,\r
++      0x0103, 0xa880, 0xd0b4, 0x0128, 0xc0ec, 0xa882, 0xa87b, 0x0006,\r
++      0x0048, 0xd0bc, 0x0118, 0xa87b, 0x0002, 0x0020, 0xa87b, 0x0005,\r
++      0x080c, 0xce2a, 0xa877, 0x0000, 0x080c, 0x6c81, 0x080c, 0xcd1e,\r
++      0x009e, 0x0804, 0xae61, 0x0016, 0x0096, 0x6014, 0x2048, 0x080c,\r
++      0xcb35, 0x0140, 0xa867, 0x0103, 0xa87b, 0x0028, 0xa877, 0x0000,\r
++      0x080c, 0x6c81, 0x009e, 0x001e, 0x9186, 0x0013, 0x0148, 0x9186,\r
++      0x0014, 0x0130, 0x9186, 0x0027, 0x0118, 0x080c, 0xaef7, 0x0030,\r
++      0x080c, 0x9588, 0x080c, 0xae92, 0x080c, 0x968d, 0x0005, 0x0056,\r
++      0x0066, 0x0096, 0x00a6, 0x2029, 0x0001, 0x9182, 0x0101, 0x1208,\r
++      0x0010, 0x2009, 0x0100, 0x2130, 0x8304, 0x9098, 0x0018, 0x2009,\r
++      0x0020, 0x2011, 0x0029, 0x080c, 0xc730, 0x96b2, 0x0020, 0xb004,\r
++      0x904d, 0x0110, 0x080c, 0x0fb1, 0x080c, 0x0fff, 0x0520, 0x8528,\r
++      0xa867, 0x0110, 0xa86b, 0x0000, 0x2920, 0xb406, 0x968a, 0x003d,\r
++      0x1228, 0x2608, 0x2011, 0x001b, 0x0499, 0x00a8, 0x96b2, 0x003c,\r
++      0x2009, 0x003c, 0x2950, 0x2011, 0x001b, 0x0451, 0x0c28, 0x2001,\r
++      0x0205, 0x2003, 0x0000, 0x00ae, 0x852f, 0x95ad, 0x0003, 0xb566,\r
++      0x95ac, 0x0000, 0x0048, 0x2001, 0x0205, 0x2003, 0x0000, 0x00ae,\r
++      0x852f, 0x95ad, 0x0003, 0xb566, 0x009e, 0x006e, 0x005e, 0x0005,\r
++      0x00a6, 0x89ff, 0x0158, 0xa804, 0x9055, 0x0130, 0xa807, 0x0000,\r
++      0x080c, 0x6c81, 0x2a48, 0x0cb8, 0x080c, 0x6c81, 0x00ae, 0x0005,\r
++      0x00f6, 0x2079, 0x0200, 0x7814, 0x9085, 0x0080, 0x7816, 0xd184,\r
++      0x0108, 0x8108, 0x810c, 0x20a9, 0x0001, 0xa860, 0x20e8, 0xa85c,\r
++      0x9200, 0x20a0, 0x20e1, 0x0000, 0x2300, 0x9e00, 0x2098, 0x4003,\r
++      0x8318, 0x9386, 0x0020, 0x1148, 0x2018, 0x2300, 0x9e00, 0x2098,\r
++      0x7814, 0x8000, 0x9085, 0x0080, 0x7816, 0x8109, 0x1d80, 0x7817,\r
++      0x0000, 0x00fe, 0x0005, 0x0066, 0x0126, 0x2091, 0x8000, 0x2031,\r
++      0x0001, 0x6020, 0x9084, 0x000f, 0x0083, 0x012e, 0x006e, 0x0005,\r
++      0x0126, 0x2091, 0x8000, 0x0066, 0x2031, 0x0000, 0x6020, 0x9084,\r
++      0x000f, 0x001b, 0x006e, 0x012e, 0x0005, 0xc796, 0xc796, 0xc791,\r
++      0xc7b8, 0xc784, 0xc791, 0xc7b8, 0xc791, 0xc784, 0x8ed9, 0xc791,\r
++      0xc791, 0xc791, 0xc784, 0xc784, 0x080c, 0x0dd5, 0x0036, 0x2019,\r
++      0x0010, 0x080c, 0xe134, 0x6023, 0x0006, 0x6003, 0x0007, 0x003e,\r
++      0x0005, 0x9006, 0x0005, 0x9085, 0x0001, 0x0005, 0x0096, 0x86ff,\r
++      0x11d8, 0x6014, 0x2048, 0x080c, 0xcb35, 0x01c0, 0xa864, 0x9086,\r
++      0x0139, 0x1128, 0xa87b, 0x0005, 0xa883, 0x0000, 0x0028, 0x900e,\r
++      0x2001, 0x0005, 0x080c, 0x6ec0, 0x080c, 0xce2a, 0x080c, 0x6c75,\r
++      0x080c, 0xae92, 0x9085, 0x0001, 0x009e, 0x0005, 0x9006, 0x0ce0,\r
++      0x6000, 0x908a, 0x0016, 0x1a0c, 0x0dd5, 0x0002, 0xc7ce, 0xc7fc,\r
++      0xc7d0, 0xc81d, 0xc7f7, 0xc7ce, 0xc791, 0xc796, 0xc796, 0xc791,\r
++      0xc791, 0xc791, 0xc791, 0xc791, 0xc791, 0xc791, 0x080c, 0x0dd5,\r
++      0x86ff, 0x1510, 0x6020, 0x9086, 0x0006, 0x01f0, 0x0096, 0x6014,\r
++      0x2048, 0x080c, 0xcb35, 0x0158, 0xa87c, 0xd0cc, 0x0130, 0x0096,\r
++      0xa878, 0x2048, 0x080c, 0x0fb1, 0x009e, 0x080c, 0xce2a, 0x009e,\r
++      0x080c, 0xd1ea, 0x6007, 0x0085, 0x6003, 0x000b, 0x6023, 0x0002,\r
++      0x080c, 0x90f0, 0x080c, 0x968d, 0x9085, 0x0001, 0x0005, 0x0066,\r
++      0x080c, 0x1a5e, 0x006e, 0x08a0, 0x00e6, 0x2071, 0x19e7, 0x7024,\r
++      0x9c06, 0x1120, 0x080c, 0xa540, 0x00ee, 0x0850, 0x6020, 0x9084,\r
++      0x000f, 0x9086, 0x0006, 0x1150, 0x0086, 0x0096, 0x2049, 0x0001,\r
++      0x2c40, 0x080c, 0xa69c, 0x009e, 0x008e, 0x0010, 0x080c, 0xa43d,\r
++      0x00ee, 0x1904, 0xc7d0, 0x0804, 0xc791, 0x0036, 0x00e6, 0x2071,\r
++      0x19e7, 0x703c, 0x9c06, 0x1138, 0x901e, 0x080c, 0xa5b6, 0x00ee,\r
++      0x003e, 0x0804, 0xc7d0, 0x080c, 0xa7cc, 0x00ee, 0x003e, 0x1904,\r
++      0xc7d0, 0x0804, 0xc791, 0x00c6, 0x6020, 0x9084, 0x000f, 0x0013,\r
++      0x00ce, 0x0005, 0xc850, 0xc919, 0xca80, 0xc85a, 0xae92, 0xc850,\r
++      0xe126, 0xd252, 0xc919, 0x8eab, 0xcaff, 0xc849, 0xc849, 0xc849,\r
++      0xc849, 0x080c, 0x0dd5, 0x080c, 0xcd3b, 0x1110, 0x080c, 0xb813,\r
++      0x0005, 0x080c, 0x9588, 0x080c, 0x968d, 0x0804, 0xae61, 0x601b,\r
++      0x0001, 0x0005, 0x080c, 0xcb35, 0x0130, 0x6014, 0x0096, 0x2048,\r
++      0x2c00, 0xa896, 0x009e, 0x6000, 0x908a, 0x0016, 0x1a0c, 0x0dd5,\r
++      0x0002, 0xc879, 0xc87b, 0xc89f, 0xc8b3, 0xc8d7, 0xc879, 0xc850,\r
++      0xc850, 0xc850, 0xc8b3, 0xc8b3, 0xc879, 0xc879, 0xc879, 0xc879,\r
++      0xc8bd, 0x080c, 0x0dd5, 0x00e6, 0x6014, 0x0096, 0x2048, 0xa880,\r
++      0xc0b5, 0xa882, 0x009e, 0x2071, 0x19e7, 0x7024, 0x9c06, 0x01a0,\r
++      0x080c, 0xa43d, 0x080c, 0xd1ea, 0x6007, 0x0085, 0x6003, 0x000b,\r
++      0x6023, 0x0002, 0x2001, 0x1987, 0x2004, 0x601a, 0x080c, 0x90f0,\r
++      0x080c, 0x968d, 0x00ee, 0x0005, 0x601b, 0x0001, 0x0cd8, 0x0096,\r
++      0x6014, 0x2048, 0xa880, 0xc0b5, 0xa882, 0x009e, 0x080c, 0xd1ea,\r
++      0x6007, 0x0085, 0x6003, 0x000b, 0x6023, 0x0002, 0x080c, 0x90f0,\r
++      0x080c, 0x968d, 0x0005, 0x0096, 0x601b, 0x0001, 0x6014, 0x2048,\r
++      0xa880, 0xc0b5, 0xa882, 0x009e, 0x0005, 0x080c, 0x56d7, 0x01a8,\r
++      0x6014, 0x0096, 0x904d, 0x0180, 0xa864, 0xa867, 0x0103, 0xa87b,\r
++      0x0006, 0x9086, 0x0139, 0x1140, 0xa867, 0x0139, 0xa897, 0x4005,\r
++      0xa89b, 0x0004, 0x080c, 0x6c81, 0x009e, 0x0804, 0xae61, 0x6014,\r
++      0x0096, 0x904d, 0x05c8, 0xa97c, 0xd1e4, 0x05b0, 0x2001, 0x180f,\r
++      0x2004, 0xd0c4, 0x0110, 0x009e, 0x0005, 0xa884, 0x009e, 0x8003,\r
++      0x800b, 0x810b, 0x9108, 0x611a, 0x2001, 0x0030, 0x2c08, 0x080c,\r
++      0x15ee, 0x2001, 0x030c, 0x2004, 0x9086, 0x0041, 0x11a0, 0x6014,\r
++      0x0096, 0x904d, 0x090c, 0x0dd5, 0xa880, 0xd0f4, 0x1130, 0xc0f5,\r
++      0xa882, 0x009e, 0x601b, 0x0002, 0x0070, 0x009e, 0x2001, 0x0037,\r
++      0x2c08, 0x080c, 0x15ee, 0x6000, 0x9086, 0x0004, 0x1120, 0x2009,\r
++      0x0048, 0x080c, 0xaedc, 0x0005, 0x009e, 0x080c, 0x1a5e, 0x0804,\r
++      0xc89f, 0x6000, 0x908a, 0x0016, 0x1a0c, 0x0dd5, 0x000b, 0x0005,\r
++      0xc930, 0xc857, 0xc932, 0xc930, 0xc932, 0xc932, 0xc851, 0xc930,\r
++      0xc84b, 0xc84b, 0xc930, 0xc930, 0xc930, 0xc930, 0xc930, 0xc930,\r
++      0x080c, 0x0dd5, 0x6010, 0x00b6, 0x2058, 0xb804, 0x9084, 0x00ff,\r
++      0x00be, 0x908a, 0x000c, 0x1a0c, 0x0dd5, 0x00b6, 0x0013, 0x00be,\r
++      0x0005, 0xc94d, 0xca1a, 0xc94f, 0xc98f, 0xc94f, 0xc98f, 0xc94f,\r
++      0xc95d, 0xc94d, 0xc98f, 0xc94d, 0xc97e, 0x080c, 0x0dd5, 0x6004,\r
++      0x908e, 0x0016, 0x05c0, 0x908e, 0x0004, 0x05a8, 0x908e, 0x0002,\r
++      0x0590, 0x908e, 0x0052, 0x0904, 0xca16, 0x6004, 0x080c, 0xcd3b,\r
++      0x0904, 0xca33, 0x908e, 0x0004, 0x1110, 0x080c, 0x31e8, 0x908e,\r
++      0x0021, 0x0904, 0xca37, 0x908e, 0x0022, 0x0904, 0xca7b, 0x908e,\r
++      0x003d, 0x0904, 0xca37, 0x908e, 0x0039, 0x0904, 0xca3b, 0x908e,\r
++      0x0035, 0x0904, 0xca3b, 0x908e, 0x001e, 0x0178, 0x908e, 0x0001,\r
++      0x1140, 0x6010, 0x2058, 0xb804, 0x9084, 0x00ff, 0x9086, 0x0006,\r
++      0x0110, 0x080c, 0x31bf, 0x080c, 0xb813, 0x0804, 0xae92, 0x00c6,\r
++      0x00d6, 0x6104, 0x9186, 0x0016, 0x0904, 0xca07, 0x9186, 0x0002,\r
++      0x1904, 0xc9dc, 0x2001, 0x1837, 0x2004, 0xd08c, 0x11c8, 0x080c,\r
++      0x73bc, 0x11b0, 0x080c, 0xd230, 0x0138, 0x080c, 0x73df, 0x1120,\r
++      0x080c, 0x72cc, 0x0804, 0xca64, 0x2001, 0x197d, 0x2003, 0x0001,\r
++      0x2001, 0x1800, 0x2003, 0x0001, 0x080c, 0x72ee, 0x0804, 0xca64,\r
++      0x6010, 0x2058, 0x2001, 0x1837, 0x2004, 0xd0ac, 0x1904, 0xca64,\r
++      0xb8a0, 0x9084, 0xff80, 0x1904, 0xca64, 0xb840, 0x9084, 0x00ff,\r
++      0x9005, 0x0190, 0x8001, 0xb842, 0x6017, 0x0000, 0x6023, 0x0007,\r
++      0x601b, 0x0398, 0x6043, 0x0000, 0x080c, 0xae0b, 0x0128, 0x2b00,\r
++      0x6012, 0x6023, 0x0001, 0x0458, 0x00de, 0x00ce, 0x6004, 0x908e,\r
++      0x0002, 0x11a0, 0x6010, 0x2058, 0xb8a0, 0x9086, 0x007e, 0x1170,\r
++      0x2009, 0x1837, 0x2104, 0xc085, 0x200a, 0x00e6, 0x2071, 0x1800,\r
++      0x080c, 0x5fad, 0x00ee, 0x080c, 0xb813, 0x0030, 0x080c, 0xb813,\r
++      0x080c, 0x31bf, 0x080c, 0xd245, 0x00e6, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x31e8, 0x012e, 0x00ee, 0x080c, 0xae92, 0x0005, 0x2001,\r
++      0x0002, 0x080c, 0x654f, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c,\r
++      0x9138, 0x080c, 0x968d, 0x00de, 0x00ce, 0x0c80, 0x080c, 0x31e8,\r
++      0x0804, 0xc98b, 0x00c6, 0x00d6, 0x6104, 0x9186, 0x0016, 0x0d38,\r
++      0x6010, 0x2058, 0xb840, 0x9084, 0x00ff, 0x9005, 0x0904, 0xc9dc,\r
++      0x8001, 0xb842, 0x6003, 0x0001, 0x080c, 0x9138, 0x080c, 0x968d,\r
++      0x00de, 0x00ce, 0x0898, 0x080c, 0xb813, 0x0804, 0xc98d, 0x080c,\r
++      0xb84f, 0x0804, 0xc98d, 0x00d6, 0x2c68, 0x6104, 0x080c, 0xd1a8,\r
++      0x00de, 0x0118, 0x080c, 0xae61, 0x00f0, 0x6004, 0x8007, 0x6134,\r
++      0x918c, 0x00ff, 0x9105, 0x6036, 0x6007, 0x0085, 0x6003, 0x000b,\r
++      0x6023, 0x0002, 0x603c, 0x600a, 0x2001, 0x1987, 0x2004, 0x601a,\r
++      0x602c, 0x2c08, 0x2060, 0x6024, 0xc0b5, 0x6026, 0x2160, 0x080c,\r
++      0x90f0, 0x080c, 0x968d, 0x0005, 0x00de, 0x00ce, 0x080c, 0xb813,\r
++      0x080c, 0x31bf, 0x00e6, 0x0126, 0x2091, 0x8000, 0x080c, 0x31e8,\r
++      0x6017, 0x0000, 0x6023, 0x0007, 0x601b, 0x0398, 0x6043, 0x0000,\r
++      0x012e, 0x00ee, 0x0005, 0x080c, 0xb291, 0x1904, 0xca33, 0x0005,\r
++      0x6000, 0x908a, 0x0016, 0x1a0c, 0x0dd5, 0x0096, 0x00d6, 0x001b,\r
++      0x00de, 0x009e, 0x0005, 0xca9b, 0xca9b, 0xca9b, 0xca9b, 0xca9b,\r
++      0xca9b, 0xca9b, 0xca9b, 0xca9b, 0xc850, 0xca9b, 0xc857, 0xca9d,\r
++      0xc857, 0xcaaa, 0xca9b, 0x080c, 0x0dd5, 0x6004, 0x9086, 0x008b,\r
++      0x0148, 0x6007, 0x008b, 0x6003, 0x000d, 0x080c, 0x90f0, 0x080c,\r
++      0x968d, 0x0005, 0x080c, 0xd224, 0x0118, 0x080c, 0xd237, 0x0010,\r
++      0x080c, 0xd245, 0x080c, 0xcd1e, 0x080c, 0xcb35, 0x0570, 0x080c,\r
++      0x31bf, 0x080c, 0xcb35, 0x0168, 0x6014, 0x2048, 0xa867, 0x0103,\r
++      0xa87b, 0x0006, 0xa877, 0x0000, 0xa880, 0xc0ed, 0xa882, 0x080c,\r
++      0x6c81, 0x2c68, 0x080c, 0xae0b, 0x0150, 0x6810, 0x6012, 0x080c,\r
++      0xcfaa, 0x00c6, 0x2d60, 0x080c, 0xae92, 0x00ce, 0x0008, 0x2d60,\r
++      0x6017, 0x0000, 0x6023, 0x0001, 0x6007, 0x0001, 0x6003, 0x0001,\r
++      0x080c, 0x9138, 0x080c, 0x968d, 0x00c8, 0x080c, 0xd224, 0x0138,\r
++      0x6034, 0x9086, 0x4000, 0x1118, 0x080c, 0x31bf, 0x08d0, 0x6034,\r
++      0x908c, 0xff00, 0x810f, 0x9186, 0x0039, 0x0118, 0x9186, 0x0035,\r
++      0x1118, 0x080c, 0x31bf, 0x0868, 0x080c, 0xae92, 0x0005, 0x6000,\r
++      0x908a, 0x0016, 0x1a0c, 0x0dd5, 0x0002, 0xcb15, 0xcb15, 0xcb17,\r
++      0xcb17, 0xcb17, 0xcb15, 0xcb15, 0xae92, 0xcb15, 0xcb15, 0xcb15,\r
++      0xcb15, 0xcb15, 0xcb15, 0xcb15, 0xcb15, 0x080c, 0x0dd5, 0x080c,\r
++      0xa7cc, 0x6114, 0x0096, 0x2148, 0xa87b, 0x0006, 0x080c, 0x6c81,\r
++      0x009e, 0x0804, 0xae61, 0x9284, 0x0007, 0x1158, 0x9282, 0x1cd0,\r
++      0x0240, 0x2001, 0x181a, 0x2004, 0x9202, 0x1218, 0x9085, 0x0001,\r
++      0x0005, 0x9006, 0x0ce8, 0x0096, 0x0028, 0x0096, 0x0006, 0x6014,\r
++      0x2048, 0x000e, 0x0006, 0x9984, 0xf000, 0x9086, 0xf000, 0x0110,\r
++      0x080c, 0x10aa, 0x000e, 0x009e, 0x0005, 0x00e6, 0x00c6, 0x0036,\r
++      0x0006, 0x0126, 0x2091, 0x8000, 0x2061, 0x1cd0, 0x2071, 0x1800,\r
++      0x7354, 0x7074, 0x9302, 0x1640, 0x6020, 0x9206, 0x11f8, 0x080c,\r
++      0xd230, 0x0180, 0x9286, 0x0001, 0x1168, 0x6004, 0x9086, 0x0004,\r
++      0x1148, 0x080c, 0x31bf, 0x080c, 0xd245, 0x00c6, 0x080c, 0xae92,\r
++      0x00ce, 0x0060, 0x080c, 0xcf24, 0x0148, 0x080c, 0xcd3b, 0x1110,\r
++      0x080c, 0xb813, 0x00c6, 0x080c, 0xae61, 0x00ce, 0x9ce0, 0x0018,\r
++      0x7068, 0x9c02, 0x1208, 0x08a0, 0x012e, 0x000e, 0x003e, 0x00ce,\r
++      0x00ee, 0x0005, 0x00e6, 0x00c6, 0x0016, 0x9188, 0x1000, 0x210c,\r
++      0x81ff, 0x0128, 0x2061, 0x1ab0, 0x6112, 0x080c, 0x31bf, 0x9006,\r
++      0x0010, 0x9085, 0x0001, 0x001e, 0x00ce, 0x00ee, 0x0005, 0x00c6,\r
++      0x0126, 0x2091, 0x8000, 0x080c, 0xae0b, 0x01b0, 0x6656, 0x2b00,\r
++      0x6012, 0x080c, 0x56d7, 0x0118, 0x080c, 0xcc62, 0x0168, 0x080c,\r
++      0xcfaa, 0x6023, 0x0003, 0x2009, 0x004b, 0x080c, 0xaedc, 0x9085,\r
++      0x0001, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8, 0x00c6, 0x0126,\r
++      0x2091, 0x8000, 0xbaa0, 0x080c, 0xaeaf, 0x0560, 0x6057, 0x0000,\r
++      0x2b00, 0x6012, 0x080c, 0xcfaa, 0x6023, 0x0003, 0x0016, 0x080c,\r
++      0x928b, 0x0076, 0x903e, 0x080c, 0x9168, 0x2c08, 0x080c, 0xe2eb,\r
++      0x007e, 0x001e, 0xd184, 0x0128, 0x080c, 0xae61, 0x9085, 0x0001,\r
++      0x0070, 0x080c, 0x56d7, 0x0128, 0xd18c, 0x1170, 0x080c, 0xcc62,\r
++      0x0148, 0x2009, 0x004c, 0x080c, 0xaedc, 0x9085, 0x0001, 0x012e,\r
++      0x00ce, 0x0005, 0x9006, 0x0cd8, 0x2900, 0x6016, 0x0c90, 0x2009,\r
++      0x004d, 0x0010, 0x2009, 0x004e, 0x00f6, 0x00c6, 0x0046, 0x0016,\r
++      0x080c, 0xae0b, 0x2c78, 0x0590, 0x7e56, 0x2b00, 0x7812, 0x7823,\r
++      0x0003, 0x2021, 0x0005, 0x080c, 0xcc74, 0x9186, 0x004d, 0x0118,\r
++      0x9186, 0x004e, 0x0148, 0x2001, 0x1980, 0x200c, 0xd1fc, 0x0168,\r
++      0x2f60, 0x080c, 0xae61, 0x00d0, 0x2001, 0x197f, 0x200c, 0xd1fc,\r
++      0x0120, 0x2f60, 0x080c, 0xae61, 0x0088, 0x2f60, 0x080c, 0x56d7,\r
++      0x0138, 0xd18c, 0x1118, 0x04f1, 0x0148, 0x0010, 0x2900, 0x7816,\r
++      0x001e, 0x0016, 0x080c, 0xaedc, 0x9085, 0x0001, 0x001e, 0x004e,\r
++      0x00ce, 0x00fe, 0x0005, 0x00f6, 0x00c6, 0x0046, 0x080c, 0xae0b,\r
++      0x2c78, 0x0508, 0x7e56, 0x2b00, 0x7812, 0x7823, 0x0003, 0x0096,\r
++      0x2021, 0x0004, 0x0489, 0x009e, 0x2001, 0x197e, 0x200c, 0xd1fc,\r
++      0x0120, 0x2f60, 0x080c, 0xae61, 0x0060, 0x2f60, 0x080c, 0x56d7,\r
++      0x0120, 0xd18c, 0x1160, 0x0071, 0x0130, 0x2009, 0x0052, 0x080c,\r
++      0xaedc, 0x9085, 0x0001, 0x004e, 0x00ce, 0x00fe, 0x0005, 0x2900,\r
++      0x7816, 0x0c98, 0x00c6, 0x080c, 0x4aa4, 0x00ce, 0x1120, 0x080c,\r
++      0xae61, 0x9006, 0x0005, 0xa867, 0x0000, 0xa86b, 0x8000, 0x2900,\r
++      0x6016, 0x9085, 0x0001, 0x0005, 0x0096, 0x0076, 0x0126, 0x2091,\r
++      0x8000, 0x080c, 0x6733, 0x0158, 0x2001, 0xcc79, 0x0006, 0x900e,\r
++      0x2400, 0x080c, 0x6ec0, 0x080c, 0x6c81, 0x000e, 0x0807, 0x2418,\r
++      0x080c, 0x9522, 0xbaa0, 0x0086, 0x2041, 0x0001, 0x2039, 0x0001,\r
++      0x2608, 0x080c, 0x92a3, 0x008e, 0x080c, 0x9168, 0x2f08, 0x2648,\r
++      0x080c, 0xe2eb, 0xb93c, 0x81ff, 0x090c, 0x9374, 0x080c, 0x968d,\r
++      0x012e, 0x007e, 0x009e, 0x0005, 0x00c6, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0xae0b, 0x0190, 0x660a, 0x2b08, 0x6112, 0x080c, 0xcfaa,\r
++      0x6023, 0x0001, 0x2900, 0x6016, 0x2009, 0x001f, 0x080c, 0xaedc,\r
++      0x9085, 0x0001, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8, 0x00c6,\r
++      0x0126, 0x2091, 0x8000, 0x080c, 0xaeaf, 0x01b8, 0x660a, 0x2b08,\r
++      0x6112, 0x080c, 0xcfaa, 0x6023, 0x0008, 0x2900, 0x6016, 0x00f6,\r
++      0x2c78, 0x080c, 0x1725, 0x00fe, 0x2009, 0x0021, 0x080c, 0xaedc,\r
++      0x9085, 0x0001, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8, 0x2009,\r
++      0x003d, 0x00c6, 0x0126, 0x0016, 0x2091, 0x8000, 0x080c, 0xae0b,\r
++      0x0198, 0x660a, 0x2b08, 0x6112, 0x080c, 0xcfaa, 0x6023, 0x0001,\r
++      0x2900, 0x6016, 0x001e, 0x0016, 0x080c, 0xaedc, 0x9085, 0x0001,\r
++      0x001e, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd0, 0x00c6, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0xaeaf, 0x0188, 0x2b08, 0x6112, 0x080c,\r
++      0xcfaa, 0x6023, 0x0001, 0x2900, 0x6016, 0x2009, 0x0000, 0x080c,\r
++      0xaedc, 0x9085, 0x0001, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8,\r
++      0x2009, 0x0044, 0x0830, 0x2009, 0x0049, 0x0818, 0x0026, 0x00b6,\r
++      0x6210, 0x2258, 0xba3c, 0x82ff, 0x0110, 0x8211, 0xba3e, 0x00be,\r
++      0x002e, 0x0005, 0x0006, 0x0016, 0x6004, 0x908e, 0x0002, 0x0140,\r
++      0x908e, 0x0003, 0x0128, 0x908e, 0x0004, 0x0110, 0x9085, 0x0001,\r
++      0x001e, 0x000e, 0x0005, 0x0006, 0x0096, 0x6020, 0x9086, 0x0004,\r
++      0x0190, 0x6014, 0x904d, 0x080c, 0xcb35, 0x0168, 0xa864, 0x9086,\r
++      0x0139, 0x0158, 0x6020, 0x9086, 0x0003, 0x0128, 0xa868, 0xd0fc,\r
++      0x0110, 0x9006, 0x0010, 0x9085, 0x0001, 0x009e, 0x000e, 0x0005,\r
++      0x00c6, 0x0126, 0x2091, 0x8000, 0x080c, 0xaeaf, 0x0198, 0x2b08,\r
++      0x6112, 0x080c, 0xcfaa, 0x6023, 0x0001, 0x2900, 0x6016, 0x080c,\r
++      0x31bf, 0x2009, 0x0028, 0x080c, 0xaedc, 0x9085, 0x0001, 0x012e,\r
++      0x00ce, 0x0005, 0x9006, 0x0cd8, 0x9186, 0x0015, 0x11a8, 0x2011,\r
++      0x1824, 0x2204, 0x9086, 0x0074, 0x1178, 0x00b6, 0x080c, 0xba65,\r
++      0x00be, 0x080c, 0xbc88, 0x6003, 0x0001, 0x6007, 0x0029, 0x080c,\r
++      0x9138, 0x080c, 0x968d, 0x0078, 0x6014, 0x0096, 0x2048, 0xa868,\r
++      0x009e, 0xd0fc, 0x0148, 0x2001, 0x0001, 0x080c, 0xd169, 0x080c,\r
++      0xb813, 0x080c, 0xae61, 0x0005, 0x0096, 0x6014, 0x904d, 0x090c,\r
++      0x0dd5, 0xa87b, 0x0030, 0xa883, 0x0000, 0xa897, 0x4005, 0xa89b,\r
++      0x0004, 0xa867, 0x0139, 0x0126, 0x2091, 0x8000, 0x080c, 0x6c81,\r
++      0x012e, 0x009e, 0x080c, 0xae61, 0x0c30, 0x0096, 0x9186, 0x0016,\r
++      0x1128, 0x2001, 0x0004, 0x080c, 0x654f, 0x00e8, 0x9186, 0x0015,\r
++      0x1510, 0x2011, 0x1824, 0x2204, 0x9086, 0x0014, 0x11e0, 0x6010,\r
++      0x00b6, 0x2058, 0x080c, 0x669a, 0x00be, 0x080c, 0xbd59, 0x1198,\r
++      0x6010, 0x00b6, 0x2058, 0xb890, 0x00be, 0x9005, 0x0160, 0x2001,\r
++      0x0006, 0x080c, 0x654f, 0x6014, 0x2048, 0xa868, 0xd0fc, 0x0170,\r
++      0x080c, 0xb265, 0x0048, 0x6014, 0x2048, 0xa868, 0xd0fc, 0x0528,\r
++      0x080c, 0xb813, 0x080c, 0xae61, 0x009e, 0x0005, 0x6014, 0x6310,\r
++      0x2358, 0x904d, 0x090c, 0x0dd5, 0xa87b, 0x0000, 0xa883, 0x0000,\r
++      0xa897, 0x4000, 0x900e, 0x080c, 0x681f, 0x1108, 0xc185, 0xb800,\r
++      0xd0bc, 0x0108, 0xc18d, 0xa99a, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0x6c81, 0x012e, 0x080c, 0xae61, 0x08f8, 0x6014, 0x904d, 0x090c,\r
++      0x0dd5, 0xa87b, 0x0030, 0xa883, 0x0000, 0xa897, 0x4005, 0xa89b,\r
++      0x0004, 0xa867, 0x0139, 0x0126, 0x2091, 0x8000, 0x080c, 0x6c81,\r
++      0x012e, 0x080c, 0xae61, 0x0840, 0xa878, 0x9086, 0x0005, 0x1108,\r
++      0x0009, 0x0005, 0xa880, 0xc0ad, 0xa882, 0x0005, 0x6043, 0x0000,\r
++      0x6017, 0x0000, 0x6003, 0x0001, 0x6007, 0x0050, 0x080c, 0x90f0,\r
++      0x080c, 0x968d, 0x0005, 0x00c6, 0x6010, 0x00b6, 0x2058, 0xb800,\r
++      0x00be, 0xd0bc, 0x0120, 0x6020, 0x9084, 0x000f, 0x0013, 0x00ce,\r
++      0x0005, 0xc850, 0xce5a, 0xce5a, 0xce5d, 0xe5fd, 0xe618, 0xe61b,\r
++      0xc850, 0xc850, 0xc850, 0xc850, 0xc850, 0xc850, 0xc850, 0xc850,\r
++      0x080c, 0x0dd5, 0xa001, 0xa001, 0x0005, 0x0096, 0x6014, 0x904d,\r
++      0x0118, 0xa87c, 0xd0e4, 0x1110, 0x009e, 0x0010, 0x009e, 0x0005,\r
++      0x6010, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc, 0x0550, 0x2001,\r
++      0x1834, 0x2004, 0x9005, 0x1540, 0x00f6, 0x2c78, 0x080c, 0xae0b,\r
++      0x0508, 0x7810, 0x6012, 0x080c, 0xcfaa, 0x7820, 0x9086, 0x0003,\r
++      0x0128, 0x7808, 0x603a, 0x2f00, 0x603e, 0x0020, 0x7808, 0x603e,\r
++      0x2f00, 0x603a, 0x602e, 0x6023, 0x0001, 0x6007, 0x0035, 0x6003,\r
++      0x0001, 0x7954, 0x6156, 0x080c, 0x90f0, 0x080c, 0x968d, 0x2f60,\r
++      0x00fe, 0x0005, 0x2f60, 0x00fe, 0x2001, 0x1988, 0x2004, 0x6042,\r
++      0x0005, 0x0016, 0x0096, 0x6814, 0x2048, 0xa87c, 0xd0e4, 0x0180,\r
++      0xc0e4, 0xa87e, 0xa877, 0x0000, 0xa893, 0x0000, 0xa88f, 0x0000,\r
++      0xd0cc, 0x0130, 0xc0cc, 0xa87e, 0xa878, 0x2048, 0x080c, 0x0fb1,\r
++      0x6830, 0x6036, 0x908e, 0x0001, 0x0148, 0x6803, 0x0002, 0x9086,\r
++      0x0005, 0x0170, 0x9006, 0x602e, 0x6032, 0x00d0, 0x681c, 0xc085,\r
++      0x681e, 0x6803, 0x0004, 0x6824, 0xc0f4, 0x9085, 0x0c00, 0x6826,\r
++      0x6814, 0x2048, 0xa8ac, 0x6938, 0x9102, 0xa8b0, 0x693c, 0x9103,\r
++      0x1e48, 0x683c, 0x602e, 0x6838, 0x9084, 0xfffc, 0x683a, 0x6032,\r
++      0x2d00, 0x603a, 0x6808, 0x603e, 0x6910, 0x6112, 0x6954, 0x6156,\r
++      0x6023, 0x0001, 0x6007, 0x0039, 0x6003, 0x0001, 0x080c, 0x90f0,\r
++      0x080c, 0x968d, 0x009e, 0x001e, 0x0005, 0x6024, 0xd0d4, 0x0510,\r
++      0xd0f4, 0x11f8, 0x6038, 0x940a, 0x603c, 0x9303, 0x0230, 0x9105,\r
++      0x0120, 0x6024, 0xc0d4, 0xc0f5, 0x0098, 0x643a, 0x633e, 0xac3e,\r
++      0xab42, 0x0046, 0x0036, 0x2400, 0xacac, 0x9402, 0xa836, 0x2300,\r
++      0xabb0, 0x9303, 0xa83a, 0x003e, 0x004e, 0x6024, 0xc0d4, 0x0000,\r
++      0x6026, 0x0005, 0xd0f4, 0x1138, 0xa83c, 0x603a, 0xa840, 0x603e,\r
++      0x6024, 0xc0f5, 0x6026, 0x0005, 0x0006, 0x0016, 0x6004, 0x908e,\r
++      0x0034, 0x01b8, 0x908e, 0x0035, 0x01a0, 0x908e, 0x0036, 0x0188,\r
++      0x908e, 0x0037, 0x0170, 0x908e, 0x0038, 0x0158, 0x908e, 0x0039,\r
++      0x0140, 0x908e, 0x003a, 0x0128, 0x908e, 0x003b, 0x0110, 0x9085,\r
++      0x0001, 0x001e, 0x000e, 0x0005, 0x0006, 0x0016, 0x0026, 0x0036,\r
++      0x00e6, 0x2001, 0x1982, 0x200c, 0x8000, 0x2014, 0x2001, 0x0032,\r
++      0x080c, 0x8f68, 0x2001, 0x1986, 0x82ff, 0x1110, 0x2011, 0x0014,\r
++      0x2202, 0x2001, 0x1984, 0x200c, 0x8000, 0x2014, 0x2071, 0x196c,\r
++      0x711a, 0x721e, 0x2001, 0x0064, 0x080c, 0x8f68, 0x2001, 0x1987,\r
++      0x82ff, 0x1110, 0x2011, 0x0014, 0x2202, 0x2001, 0x1988, 0x9288,\r
++      0x000a, 0x2102, 0x2001, 0x1a91, 0x2102, 0x2001, 0x0032, 0x080c,\r
++      0x15ee, 0x080c, 0x6953, 0x00ee, 0x003e, 0x002e, 0x001e, 0x000e,\r
++      0x0005, 0x0006, 0x0016, 0x00e6, 0x2001, 0x1986, 0x2003, 0x0028,\r
++      0x2001, 0x1987, 0x2003, 0x0014, 0x2071, 0x196c, 0x701b, 0x0000,\r
++      0x701f, 0x07d0, 0x2001, 0x1988, 0x2009, 0x001e, 0x2102, 0x2001,\r
++      0x1a91, 0x2102, 0x2001, 0x0032, 0x080c, 0x15ee, 0x00ee, 0x001e,\r
++      0x000e, 0x0005, 0x0096, 0x6058, 0x904d, 0x0110, 0x080c, 0x1031,\r
++      0x009e, 0x0005, 0x0005, 0x00c6, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0xae0b, 0x0180, 0x2b08, 0x6112, 0x0ca9, 0x6023, 0x0001, 0x2900,\r
++      0x6016, 0x2009, 0x0033, 0x080c, 0xaedc, 0x9085, 0x0001, 0x012e,\r
++      0x00ce, 0x0005, 0x9006, 0x0cd8, 0x0096, 0x00e6, 0x00f6, 0x2071,\r
++      0x1800, 0x9186, 0x0015, 0x1500, 0x7090, 0x9086, 0x0018, 0x11e0,\r
++      0x6014, 0x2048, 0xaa3c, 0xd2e4, 0x1160, 0x2c78, 0x080c, 0x9920,\r
++      0x01d8, 0x707c, 0xaa50, 0x9206, 0x1160, 0x7080, 0xaa54, 0x9206,\r
++      0x1140, 0x6210, 0x00b6, 0x2258, 0xbaa0, 0x00be, 0x900e, 0x080c,\r
++      0x3208, 0x080c, 0xb265, 0x0020, 0x080c, 0xb813, 0x080c, 0xae61,\r
++      0x00fe, 0x00ee, 0x009e, 0x0005, 0x7060, 0xaa54, 0x9206, 0x0d48,\r
++      0x0c80, 0x00c6, 0x0126, 0x2091, 0x8000, 0x080c, 0xae0b, 0x0188,\r
++      0x2b08, 0x6112, 0x080c, 0xcfaa, 0x6023, 0x0001, 0x2900, 0x6016,\r
++      0x2009, 0x004d, 0x080c, 0xaedc, 0x9085, 0x0001, 0x012e, 0x00ce,\r
++      0x0005, 0x9006, 0x0cd8, 0x00c6, 0x0126, 0x2091, 0x8000, 0x0016,\r
++      0x080c, 0xae0b, 0x0180, 0x2b08, 0x6112, 0x080c, 0xcfaa, 0x6023,\r
++      0x0001, 0x2900, 0x6016, 0x001e, 0x080c, 0xaedc, 0x9085, 0x0001,\r
++      0x012e, 0x00ce, 0x0005, 0x001e, 0x9006, 0x0cd0, 0x0016, 0x0026,\r
++      0x0036, 0x0046, 0x0056, 0x0066, 0x0096, 0x00e6, 0x00f6, 0x2071,\r
++      0x1800, 0x9186, 0x0015, 0x1568, 0x7190, 0x6014, 0x2048, 0xa814,\r
++      0x8003, 0x9106, 0x1530, 0x20e1, 0x0000, 0x2001, 0x19a0, 0x2003,\r
++      0x0000, 0x6014, 0x2048, 0xa830, 0x20a8, 0x8906, 0x8006, 0x8007,\r
++      0x9094, 0x003f, 0x22e8, 0x9084, 0xffc0, 0x9080, 0x001b, 0x20a0,\r
++      0x2001, 0x19a0, 0x0016, 0x200c, 0x080c, 0xd81b, 0x001e, 0xa804,\r
++      0x9005, 0x0110, 0x2048, 0x0c38, 0x6014, 0x2048, 0xa867, 0x0103,\r
++      0x0010, 0x080c, 0xb813, 0x080c, 0xae61, 0x00fe, 0x00ee, 0x009e,\r
++      0x006e, 0x005e, 0x004e, 0x003e, 0x002e, 0x001e, 0x0005, 0x0096,\r
++      0x00e6, 0x00f6, 0x2071, 0x1800, 0x9186, 0x0015, 0x11b8, 0x7090,\r
++      0x9086, 0x0004, 0x1198, 0x6014, 0x2048, 0x2c78, 0x080c, 0x9920,\r
++      0x01a8, 0x707c, 0xaa74, 0x9206, 0x1130, 0x7080, 0xaa78, 0x9206,\r
++      0x1110, 0x080c, 0x31bf, 0x080c, 0xb265, 0x0020, 0x080c, 0xb813,\r
++      0x080c, 0xae61, 0x00fe, 0x00ee, 0x009e, 0x0005, 0x7060, 0xaa78,\r
++      0x9206, 0x0d78, 0x0c80, 0x0096, 0x00e6, 0x00f6, 0x2071, 0x1800,\r
++      0x9186, 0x0015, 0x1550, 0x7090, 0x9086, 0x0004, 0x1530, 0x6014,\r
++      0x2048, 0x2c78, 0x080c, 0x9920, 0x05f0, 0x707c, 0xaacc, 0x9206,\r
++      0x1180, 0x7080, 0xaad0, 0x9206, 0x1160, 0x080c, 0x31bf, 0x0016,\r
++      0xa998, 0xaab0, 0x9284, 0x1000, 0xc0fd, 0x080c, 0x5687, 0x001e,\r
++      0x0010, 0x080c, 0x5478, 0x080c, 0xcb35, 0x0508, 0xa87b, 0x0000,\r
++      0xa883, 0x0000, 0xa897, 0x4000, 0x0080, 0x080c, 0xcb35, 0x01b8,\r
++      0x6014, 0x2048, 0x080c, 0x5478, 0x1d70, 0xa87b, 0x0030, 0xa883,\r
++      0x0000, 0xa897, 0x4005, 0xa89b, 0x0004, 0x0126, 0x2091, 0x8000,\r
++      0xa867, 0x0139, 0x080c, 0x6c81, 0x012e, 0x080c, 0xae61, 0x00fe,\r
++      0x00ee, 0x009e, 0x0005, 0x7060, 0xaad0, 0x9206, 0x0930, 0x0888,\r
++      0x0016, 0x0026, 0xa87c, 0xd0ac, 0x0178, 0xa938, 0xaa34, 0x2100,\r
++      0x9205, 0x0150, 0xa890, 0x9106, 0x1118, 0xa88c, 0x9206, 0x0120,\r
++      0xa992, 0xaa8e, 0x9085, 0x0001, 0x002e, 0x001e, 0x0005, 0x00b6,\r
++      0x00d6, 0x0036, 0x080c, 0xcb35, 0x0904, 0xd165, 0x0096, 0x6314,\r
++      0x2348, 0xa87a, 0xa982, 0x929e, 0x4000, 0x1580, 0x6310, 0x00c6,\r
++      0x2358, 0x2009, 0x0000, 0xa868, 0xd0f4, 0x1140, 0x080c, 0x681f,\r
++      0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d, 0xaa96, 0xa99a,\r
++      0x20a9, 0x0004, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0031, 0x20a0,\r
++      0xb8c4, 0x20e0, 0xb8c8, 0x9080, 0x0006, 0x2098, 0x080c, 0x0f7c,\r
++      0x20a9, 0x0004, 0xa85c, 0x9080, 0x0035, 0x20a0, 0xb8c8, 0x9080,\r
++      0x000a, 0x2098, 0x080c, 0x0f7c, 0x00ce, 0x0090, 0xaa96, 0x3918,\r
++      0x9398, 0x0007, 0x231c, 0x6004, 0x9086, 0x0016, 0x0110, 0xa89b,\r
++      0x0004, 0xaba2, 0x6310, 0x2358, 0xb804, 0x9084, 0x00ff, 0xa89e,\r
++      0x080c, 0x6c75, 0x6017, 0x0000, 0x009e, 0x003e, 0x00de, 0x00be,\r
++      0x0005, 0x0026, 0x0036, 0x0046, 0x00b6, 0x0096, 0x00f6, 0x6214,\r
++      0x2248, 0x6210, 0x2258, 0x2079, 0x0260, 0x9096, 0x0000, 0x11a0,\r
++      0xb814, 0x9084, 0x00ff, 0x900e, 0x080c, 0x283e, 0x2118, 0x831f,\r
++      0x939c, 0xff00, 0x7838, 0x9084, 0x00ff, 0x931d, 0x7c3c, 0x2011,\r
++      0x8018, 0x080c, 0x4b04, 0x00a8, 0x9096, 0x0001, 0x1148, 0x89ff,\r
++      0x0180, 0xa89b, 0x000d, 0x7838, 0xa8a6, 0x783c, 0xa8aa, 0x0048,\r
++      0x9096, 0x0002, 0x1130, 0xa89b, 0x000d, 0x7838, 0xa8a6, 0x783c,\r
++      0xa8aa, 0x00fe, 0x009e, 0x00be, 0x004e, 0x003e, 0x002e, 0x0005,\r
++      0x00c6, 0x0026, 0x0016, 0x9186, 0x0035, 0x0110, 0x6a38, 0x0008,\r
++      0x6a2c, 0x080c, 0xcb23, 0x01f0, 0x2260, 0x6120, 0x9186, 0x0003,\r
++      0x0118, 0x9186, 0x0006, 0x1190, 0x6838, 0x9206, 0x0140, 0x683c,\r
++      0x9206, 0x1160, 0x6108, 0x6838, 0x9106, 0x1140, 0x0020, 0x6008,\r
++      0x693c, 0x9106, 0x1118, 0x6010, 0x6910, 0x9106, 0x001e, 0x002e,\r
++      0x00ce, 0x0005, 0x9085, 0x0001, 0x0cc8, 0xa974, 0xd1cc, 0x0188,\r
++      0x918c, 0x00ff, 0x918e, 0x0002, 0x1160, 0xa9a8, 0x918c, 0x0f00,\r
++      0x810f, 0x918e, 0x0001, 0x1128, 0xa834, 0xa938, 0x9115, 0x190c,\r
++      0xc245, 0x0005, 0x0036, 0x2019, 0x0001, 0x0010, 0x0036, 0x901e,\r
++      0x0499, 0x01e0, 0x080c, 0xcb35, 0x01c8, 0x080c, 0xcd1e, 0x6037,\r
++      0x4000, 0x6014, 0x6017, 0x0000, 0x0096, 0x2048, 0xa87c, 0x080c,\r
++      0xcd3b, 0x1118, 0x080c, 0xb813, 0x0040, 0xa867, 0x0103, 0xa877,\r
++      0x0000, 0x83ff, 0x1129, 0x080c, 0x6c81, 0x009e, 0x003e, 0x0005,\r
++      0xa880, 0xd0b4, 0x0128, 0xa87b, 0x0006, 0xc0ec, 0xa882, 0x0048,\r
++      0xd0bc, 0x0118, 0xa87b, 0x0002, 0x0020, 0xa87b, 0x0005, 0x080c,\r
++      0xce2a, 0xa877, 0x0000, 0x0005, 0x2001, 0x1810, 0x2004, 0xd0ec,\r
++      0x0005, 0x0006, 0x2001, 0x1810, 0x2004, 0xd0f4, 0x000e, 0x0005,\r
++      0x0006, 0x2001, 0x1810, 0x2004, 0xd0e4, 0x000e, 0x0005, 0x0036,\r
++      0x0046, 0x6010, 0x00b6, 0x2058, 0xbba0, 0x00be, 0x2021, 0x0007,\r
++      0x080c, 0x4cbb, 0x004e, 0x003e, 0x0005, 0x0c51, 0x1d81, 0x0005,\r
++      0x2001, 0x1986, 0x2004, 0x601a, 0x0005, 0x2001, 0x1988, 0x2004,\r
++      0x6042, 0x0005, 0x080c, 0xae61, 0x0804, 0x968d, 0x00b6, 0x0066,\r
++      0x6000, 0x90b2, 0x0016, 0x1a0c, 0x0dd5, 0x001b, 0x006e, 0x00be,\r
++      0x0005, 0xd271, 0xd978, 0xdad5, 0xd271, 0xd271, 0xd271, 0xd271,\r
++      0xd271, 0xd2a8, 0xdb57, 0xd271, 0xd271, 0xd271, 0xd271, 0xd271,\r
++      0xd271, 0x080c, 0x0dd5, 0x0066, 0x6000, 0x90b2, 0x0016, 0x1a0c,\r
++      0x0dd5, 0x0013, 0x006e, 0x0005, 0xd28c, 0xe0bf, 0xd28c, 0xd28c,\r
++      0xd28c, 0xd28c, 0xd28c, 0xd28c, 0xe06c, 0xe113, 0xd28c, 0xe738,\r
++      0xe76e, 0xe738, 0xe76e, 0xd28c, 0x080c, 0x0dd5, 0x6000, 0x9082,\r
++      0x0016, 0x1a0c, 0x0dd5, 0x6000, 0x000a, 0x0005, 0xd2a6, 0xdd34,\r
++      0xde24, 0xde46, 0xdf05, 0xd2a6, 0xdfe3, 0xdf8d, 0xdb63, 0xe042,\r
++      0xe057, 0xd2a6, 0xd2a6, 0xd2a6, 0xd2a6, 0xd2a6, 0x080c, 0x0dd5,\r
++      0x91b2, 0x0053, 0x1a0c, 0x0dd5, 0x2100, 0x91b2, 0x0040, 0x1a04,\r
++      0xd6ec, 0x0002, 0xd2f2, 0xd4dd, 0xd2f2, 0xd2f2, 0xd2f2, 0xd4e6,\r
++      0xd2f2, 0xd2f2, 0xd2f2, 0xd2f2, 0xd2f2, 0xd2f2, 0xd2f2, 0xd2f2,\r
++      0xd2f2, 0xd2f2, 0xd2f2, 0xd2f2, 0xd2f2, 0xd2f2, 0xd2f2, 0xd2f2,\r
++      0xd2f2, 0xd2f4, 0xd357, 0xd366, 0xd3ca, 0xd3f5, 0xd46e, 0xd4c8,\r
++      0xd2f2, 0xd2f2, 0xd4e9, 0xd2f2, 0xd2f2, 0xd4fe, 0xd50b, 0xd2f2,\r
++      0xd2f2, 0xd2f2, 0xd2f2, 0xd2f2, 0xd58e, 0xd2f2, 0xd2f2, 0xd5a2,\r
++      0xd2f2, 0xd2f2, 0xd55d, 0xd2f2, 0xd2f2, 0xd2f2, 0xd5ba, 0xd2f2,\r
++      0xd2f2, 0xd2f2, 0xd637, 0xd2f2, 0xd2f2, 0xd2f2, 0xd2f2, 0xd2f2,\r
++      0xd2f2, 0xd6b4, 0x080c, 0x0dd5, 0x080c, 0x6930, 0x1150, 0x2001,\r
++      0x1837, 0x2004, 0xd0cc, 0x1128, 0x9084, 0x0009, 0x9086, 0x0008,\r
++      0x1140, 0x6007, 0x0009, 0x602f, 0x0009, 0x6017, 0x0000, 0x0804,\r
++      0xd4d6, 0x080c, 0x68cc, 0x00e6, 0x00c6, 0x0036, 0x0026, 0x0016,\r
++      0x6210, 0x2258, 0xbaa0, 0x0026, 0x2019, 0x0029, 0x080c, 0x928b,\r
++      0x0076, 0x903e, 0x080c, 0x9168, 0x2c08, 0x080c, 0xe2eb, 0x007e,\r
++      0x001e, 0x001e, 0x002e, 0x003e, 0x00ce, 0x00ee, 0x6610, 0x2658,\r
++      0x080c, 0x660e, 0xbe04, 0x9684, 0x00ff, 0x9082, 0x0006, 0x1268,\r
++      0x0016, 0x0026, 0x6210, 0x00b6, 0x2258, 0xbaa0, 0x00be, 0x2c08,\r
++      0x080c, 0xe997, 0x002e, 0x001e, 0x1178, 0x080c, 0xe21d, 0x1904,\r
++      0xd3c2, 0x080c, 0xe1b9, 0x1120, 0x6007, 0x0008, 0x0804, 0xd4d6,\r
++      0x6007, 0x0009, 0x0804, 0xd4d6, 0x080c, 0xe441, 0x0128, 0x080c,\r
++      0xe21d, 0x0d78, 0x0804, 0xd3c2, 0x6017, 0x1900, 0x0c88, 0x080c,\r
++      0x32e3, 0x1904, 0xd6e9, 0x6106, 0x080c, 0xe16e, 0x6007, 0x0006,\r
++      0x0804, 0xd4d6, 0x6007, 0x0007, 0x0804, 0xd4d6, 0x080c, 0xe7aa,\r
++      0x1904, 0xd6e9, 0x080c, 0x32e3, 0x1904, 0xd6e9, 0x00d6, 0x6610,\r
++      0x2658, 0xbe04, 0x9684, 0x00ff, 0x9082, 0x0006, 0x1220, 0x2001,\r
++      0x0001, 0x080c, 0x653b, 0x96b4, 0xff00, 0x8637, 0x9686, 0x0006,\r
++      0x0188, 0x9686, 0x0004, 0x0170, 0xbe04, 0x96b4, 0x00ff, 0x9686,\r
++      0x0006, 0x0140, 0x9686, 0x0004, 0x0128, 0x9686, 0x0005, 0x0110,\r
++      0x00de, 0x0480, 0x00e6, 0x2071, 0x0260, 0x7034, 0x9084, 0x0003,\r
++      0x1140, 0x7034, 0x9082, 0x0014, 0x0220, 0x7030, 0x9084, 0x0003,\r
++      0x0130, 0x00ee, 0x6017, 0x0000, 0x602f, 0x0007, 0x00b0, 0x00ee,\r
++      0x080c, 0xe281, 0x1190, 0x9686, 0x0006, 0x1140, 0x0026, 0x6210,\r
++      0x2258, 0xbaa0, 0x900e, 0x080c, 0x3208, 0x002e, 0x080c, 0x669a,\r
++      0x6007, 0x000a, 0x00de, 0x0804, 0xd4d6, 0x6007, 0x000b, 0x00de,\r
++      0x0804, 0xd4d6, 0x080c, 0x31bf, 0x080c, 0xd245, 0x6007, 0x0001,\r
++      0x0804, 0xd4d6, 0x080c, 0xe7aa, 0x1904, 0xd6e9, 0x080c, 0x32e3,\r
++      0x1904, 0xd6e9, 0x2071, 0x0260, 0x7034, 0x90b4, 0x0003, 0x1948,\r
++      0x90b2, 0x0014, 0x0a30, 0x7030, 0x9084, 0x0003, 0x1910, 0x6610,\r
++      0x2658, 0xbe04, 0x9686, 0x0707, 0x09e8, 0x0026, 0x6210, 0x2258,\r
++      0xbaa0, 0x900e, 0x080c, 0x3208, 0x002e, 0x6007, 0x000c, 0x2001,\r
++      0x0001, 0x080c, 0xe977, 0x0804, 0xd4d6, 0x080c, 0x6930, 0x1140,\r
++      0x2001, 0x1837, 0x2004, 0x9084, 0x0009, 0x9086, 0x0008, 0x1110,\r
++      0x0804, 0xd301, 0x080c, 0x68cc, 0x6610, 0x2658, 0xbe04, 0x9684,\r
++      0x00ff, 0x9082, 0x0006, 0x06c8, 0x1138, 0x0026, 0x2001, 0x0006,\r
++      0x080c, 0x657b, 0x002e, 0x0050, 0x96b4, 0xff00, 0x8637, 0x9686,\r
++      0x0004, 0x0120, 0x9686, 0x0006, 0x1904, 0xd3c2, 0x080c, 0xe28e,\r
++      0x1120, 0x6007, 0x000e, 0x0804, 0xd4d6, 0x0046, 0x6410, 0x2458,\r
++      0xbca0, 0x0046, 0x080c, 0x31bf, 0x080c, 0xd245, 0x004e, 0x0016,\r
++      0x9006, 0x2009, 0x1848, 0x210c, 0xd1a4, 0x0148, 0x2009, 0x0029,\r
++      0x080c, 0xe5ae, 0x6010, 0x2058, 0xb800, 0xc0e5, 0xb802, 0x001e,\r
++      0x004e, 0x6007, 0x0001, 0x0804, 0xd4d6, 0x2001, 0x0001, 0x080c,\r
++      0x653b, 0x0156, 0x0016, 0x0026, 0x0036, 0x20a9, 0x0004, 0x2019,\r
++      0x1805, 0x2011, 0x0270, 0x080c, 0xbe09, 0x003e, 0x002e, 0x001e,\r
++      0x015e, 0x9005, 0x0168, 0x96b4, 0xff00, 0x8637, 0x9682, 0x0004,\r
++      0x0a04, 0xd3c2, 0x9682, 0x0007, 0x0a04, 0xd41e, 0x0804, 0xd3c2,\r
++      0x6017, 0x1900, 0x6007, 0x0009, 0x0804, 0xd4d6, 0x080c, 0x6930,\r
++      0x1140, 0x2001, 0x1837, 0x2004, 0x9084, 0x0009, 0x9086, 0x0008,\r
++      0x1110, 0x0804, 0xd301, 0x080c, 0x68cc, 0x6610, 0x2658, 0xbe04,\r
++      0x9684, 0x00ff, 0x9082, 0x0006, 0x0698, 0x0150, 0x96b4, 0xff00,\r
++      0x8637, 0x9686, 0x0004, 0x0120, 0x9686, 0x0006, 0x1904, 0xd3c2,\r
++      0x080c, 0xe2bc, 0x1130, 0x080c, 0xe1b9, 0x1118, 0x6007, 0x0010,\r
++      0x04e8, 0x0046, 0x6410, 0x2458, 0xbca0, 0x0046, 0x080c, 0x31bf,\r
++      0x080c, 0xd245, 0x004e, 0x0016, 0x9006, 0x2009, 0x1848, 0x210c,\r
++      0xd1a4, 0x0148, 0x2009, 0x0029, 0x080c, 0xe5ae, 0x6010, 0x2058,\r
++      0xb800, 0xc0e5, 0xb802, 0x001e, 0x004e, 0x6007, 0x0001, 0x00f0,\r
++      0x080c, 0xe441, 0x0140, 0x96b4, 0xff00, 0x8637, 0x9686, 0x0006,\r
++      0x0978, 0x0804, 0xd3c2, 0x6017, 0x1900, 0x6007, 0x0009, 0x0070,\r
++      0x080c, 0x32e3, 0x1904, 0xd6e9, 0x080c, 0xe7aa, 0x1904, 0xd6e9,\r
++      0x080c, 0xd8b6, 0x1904, 0xd3c2, 0x6007, 0x0012, 0x6003, 0x0001,\r
++      0x080c, 0x9138, 0x080c, 0x968d, 0x0005, 0x6007, 0x0001, 0x6003,\r
++      0x0001, 0x080c, 0x9138, 0x080c, 0x968d, 0x0cb0, 0x6007, 0x0005,\r
++      0x0c68, 0x080c, 0xe7aa, 0x1904, 0xd6e9, 0x080c, 0x32e3, 0x1904,\r
++      0xd6e9, 0x080c, 0xd8b6, 0x1904, 0xd3c2, 0x6007, 0x0020, 0x6003,\r
++      0x0001, 0x080c, 0x9138, 0x080c, 0x968d, 0x0005, 0x080c, 0x32e3,\r
++      0x1904, 0xd6e9, 0x6007, 0x0023, 0x6003, 0x0001, 0x080c, 0x9138,\r
++      0x080c, 0x968d, 0x0005, 0x080c, 0xe7aa, 0x1904, 0xd6e9, 0x080c,\r
++      0x32e3, 0x1904, 0xd6e9, 0x080c, 0xd8b6, 0x1904, 0xd3c2, 0x0016,\r
++      0x0026, 0x00e6, 0x2071, 0x0260, 0x7244, 0x9286, 0xffff, 0x0180,\r
++      0x2c08, 0x080c, 0xcb23, 0x01b0, 0x2260, 0x7240, 0x6008, 0x9206,\r
++      0x1188, 0x6010, 0x9190, 0x0004, 0x2214, 0x9206, 0x01b8, 0x0050,\r
++      0x7240, 0x2c08, 0x9006, 0x080c, 0xe578, 0x1180, 0x7244, 0x9286,\r
++      0xffff, 0x01b0, 0x2160, 0x6007, 0x0026, 0x6017, 0x1700, 0x7214,\r
++      0x9296, 0xffff, 0x1180, 0x6007, 0x0025, 0x0068, 0x6020, 0x9086,\r
++      0x0007, 0x1d80, 0x6004, 0x9086, 0x0024, 0x1110, 0x080c, 0xae61,\r
++      0x2160, 0x6007, 0x0025, 0x6003, 0x0001, 0x080c, 0x9138, 0x080c,\r
++      0x968d, 0x00ee, 0x002e, 0x001e, 0x0005, 0x2001, 0x0001, 0x080c,\r
++      0x653b, 0x0156, 0x0016, 0x0026, 0x0036, 0x20a9, 0x0004, 0x2019,\r
++      0x1805, 0x2011, 0x0276, 0x080c, 0xbe09, 0x003e, 0x002e, 0x001e,\r
++      0x015e, 0x0120, 0x6007, 0x0031, 0x0804, 0xd4d6, 0x080c, 0xba7d,\r
++      0x080c, 0x73bc, 0x1190, 0x0006, 0x0026, 0x0036, 0x080c, 0x73d6,\r
++      0x1138, 0x080c, 0x76a4, 0x080c, 0x601a, 0x080c, 0x72ee, 0x0010,\r
++      0x080c, 0x7394, 0x003e, 0x002e, 0x000e, 0x0005, 0x080c, 0x32e3,\r
++      0x1904, 0xd6e9, 0x080c, 0xd8b6, 0x1904, 0xd3c2, 0x6106, 0x080c,\r
++      0xd8d2, 0x1120, 0x6007, 0x002b, 0x0804, 0xd4d6, 0x6007, 0x002c,\r
++      0x0804, 0xd4d6, 0x080c, 0xe7aa, 0x1904, 0xd6e9, 0x080c, 0x32e3,\r
++      0x1904, 0xd6e9, 0x080c, 0xd8b6, 0x1904, 0xd3c2, 0x6106, 0x080c,\r
++      0xd8d7, 0x1120, 0x6007, 0x002e, 0x0804, 0xd4d6, 0x6007, 0x002f,\r
++      0x0804, 0xd4d6, 0x080c, 0x32e3, 0x1904, 0xd6e9, 0x00e6, 0x00d6,\r
++      0x00c6, 0x6010, 0x2058, 0xb904, 0x9184, 0x00ff, 0x9086, 0x0006,\r
++      0x0158, 0x9184, 0xff00, 0x8007, 0x9086, 0x0006, 0x0128, 0x00ce,\r
++      0x00de, 0x00ee, 0x0804, 0xd4dd, 0x080c, 0x56d3, 0xd0e4, 0x0904,\r
++      0xd634, 0x2071, 0x026c, 0x7010, 0x603a, 0x7014, 0x603e, 0x7108,\r
++      0x720c, 0x080c, 0x696e, 0x0140, 0x6010, 0x2058, 0xb810, 0x9106,\r
++      0x1118, 0xb814, 0x9206, 0x0510, 0x080c, 0x696a, 0x15b8, 0x2069,\r
++      0x1800, 0x6880, 0x9206, 0x1590, 0x687c, 0x9106, 0x1578, 0x7210,\r
++      0x080c, 0xcb23, 0x0590, 0x080c, 0xd7a1, 0x0578, 0x080c, 0xe62a,\r
++      0x0560, 0x622e, 0x6007, 0x0036, 0x6003, 0x0001, 0x080c, 0x90f0,\r
++      0x080c, 0x968d, 0x00ce, 0x00de, 0x00ee, 0x0005, 0x7214, 0x9286,\r
++      0xffff, 0x0150, 0x080c, 0xcb23, 0x01c0, 0x9280, 0x0002, 0x2004,\r
++      0x7110, 0x9106, 0x1190, 0x08e0, 0x7210, 0x2c08, 0x9085, 0x0001,\r
++      0x080c, 0xe578, 0x2c10, 0x2160, 0x0140, 0x0890, 0x6007, 0x0037,\r
++      0x602f, 0x0009, 0x6017, 0x1500, 0x08b8, 0x6007, 0x0037, 0x602f,\r
++      0x0003, 0x6017, 0x1700, 0x0880, 0x6007, 0x0012, 0x0868, 0x080c,\r
++      0x32e3, 0x1904, 0xd6e9, 0x6010, 0x2058, 0xb804, 0x9084, 0xff00,\r
++      0x8007, 0x9086, 0x0006, 0x1904, 0xd4dd, 0x00e6, 0x00d6, 0x00c6,\r
++      0x080c, 0x56d3, 0xd0e4, 0x0904, 0xd6ac, 0x2069, 0x1800, 0x2071,\r
++      0x026c, 0x7008, 0x603a, 0x720c, 0x623e, 0x9286, 0xffff, 0x1150,\r
++      0x7208, 0x00c6, 0x2c08, 0x9085, 0x0001, 0x080c, 0xe578, 0x2c10,\r
++      0x00ce, 0x05e8, 0x080c, 0xcb23, 0x05d0, 0x7108, 0x9280, 0x0002,\r
++      0x2004, 0x9106, 0x15a0, 0x00c6, 0x0026, 0x2260, 0x080c, 0xc75b,\r
++      0x002e, 0x00ce, 0x7118, 0x918c, 0xff00, 0x810f, 0x9186, 0x0001,\r
++      0x0178, 0x9186, 0x0005, 0x0118, 0x9186, 0x0007, 0x1198, 0x9280,\r
++      0x0005, 0x2004, 0x9005, 0x0170, 0x080c, 0xd7a1, 0x0904, 0xd62d,\r
++      0x0056, 0x7510, 0x7614, 0x080c, 0xe643, 0x005e, 0x00ce, 0x00de,\r
++      0x00ee, 0x0005, 0x6007, 0x003b, 0x602f, 0x0009, 0x6017, 0x2a00,\r
++      0x6003, 0x0001, 0x080c, 0x90f0, 0x080c, 0x968d, 0x0c78, 0x6007,\r
++      0x003b, 0x602f, 0x0003, 0x6017, 0x0300, 0x6003, 0x0001, 0x080c,\r
++      0x90f0, 0x080c, 0x968d, 0x0c10, 0x6007, 0x003b, 0x602f, 0x000b,\r
++      0x6017, 0x0000, 0x0804, 0xd604, 0x00e6, 0x0026, 0x080c, 0x6930,\r
++      0x0550, 0x080c, 0x68cc, 0x080c, 0xe81c, 0x1518, 0x2071, 0x1800,\r
++      0x70dc, 0x9085, 0x0003, 0x70de, 0x00f6, 0x2079, 0x0100, 0x72b0,\r
++      0x9284, 0x00ff, 0x707e, 0x78e6, 0x9284, 0xff00, 0x7280, 0x9205,\r
++      0x7082, 0x78ea, 0x00fe, 0x70e7, 0x0000, 0x080c, 0x696e, 0x0120,\r
++      0x2011, 0x1a00, 0x2013, 0x07d0, 0xd0ac, 0x1128, 0x080c, 0x2f96,\r
++      0x0010, 0x080c, 0xe84e, 0x002e, 0x00ee, 0x080c, 0xae61, 0x0804,\r
++      0xd4dc, 0x080c, 0xae61, 0x0005, 0x2600, 0x0002, 0xd700, 0xd731,\r
++      0xd742, 0xd700, 0xd700, 0xd702, 0xd753, 0xd700, 0xd700, 0xd700,\r
++      0xd71f, 0xd700, 0xd700, 0xd700, 0xd75e, 0xd76b, 0xd79c, 0xd700,\r
++      0x080c, 0x0dd5, 0x080c, 0xe7aa, 0x1d20, 0x080c, 0x32e3, 0x1d08,\r
++      0x080c, 0xd8b6, 0x1148, 0x7038, 0x6016, 0x6007, 0x0045, 0x6003,\r
++      0x0001, 0x080c, 0x9138, 0x0005, 0x080c, 0x31bf, 0x080c, 0xd245,\r
++      0x6007, 0x0001, 0x6003, 0x0001, 0x080c, 0x9138, 0x0005, 0x080c,\r
++      0xe7aa, 0x1938, 0x080c, 0x32e3, 0x1920, 0x080c, 0xd8b6, 0x1d60,\r
++      0x703c, 0x6016, 0x6007, 0x004a, 0x6003, 0x0001, 0x080c, 0x9138,\r
++      0x0005, 0x080c, 0x32e3, 0x1904, 0xd6e9, 0x2009, 0x0041, 0x080c,\r
++      0xe857, 0x6007, 0x0047, 0x6003, 0x0001, 0x080c, 0x9138, 0x080c,\r
++      0x968d, 0x0005, 0x080c, 0x32e3, 0x1904, 0xd6e9, 0x2009, 0x0042,\r
++      0x080c, 0xe857, 0x6007, 0x0047, 0x6003, 0x0001, 0x080c, 0x9138,\r
++      0x080c, 0x968d, 0x0005, 0x080c, 0x32e3, 0x1904, 0xd6e9, 0x2009,\r
++      0x0046, 0x080c, 0xe857, 0x080c, 0xae61, 0x0005, 0x080c, 0xd7be,\r
++      0x0904, 0xd6e9, 0x6007, 0x004e, 0x6003, 0x0001, 0x080c, 0x9138,\r
++      0x080c, 0x968d, 0x0005, 0x6007, 0x004f, 0x6017, 0x0000, 0x7134,\r
++      0x918c, 0x00ff, 0x81ff, 0x0508, 0x9186, 0x0001, 0x1160, 0x7140,\r
++      0x2001, 0x19bd, 0x2004, 0x9106, 0x11b0, 0x7144, 0x2001, 0x19be,\r
++      0x2004, 0x9106, 0x0190, 0x9186, 0x0002, 0x1168, 0x2011, 0x0276,\r
++      0x20a9, 0x0004, 0x6010, 0x0096, 0x2048, 0x2019, 0x000a, 0x080c,\r
++      0xbe1d, 0x009e, 0x0110, 0x6017, 0x0001, 0x6003, 0x0001, 0x080c,\r
++      0x9138, 0x080c, 0x968d, 0x0005, 0x6007, 0x0050, 0x703c, 0x6016,\r
++      0x0ca0, 0x0016, 0x00e6, 0x2071, 0x0260, 0x00b6, 0x00c6, 0x2260,\r
++      0x6010, 0x2058, 0xb8cc, 0xd084, 0x0150, 0x7128, 0x6048, 0x9106,\r
++      0x1120, 0x712c, 0x6044, 0x9106, 0x0110, 0x9006, 0x0010, 0x9085,\r
++      0x0001, 0x00ce, 0x00be, 0x00ee, 0x001e, 0x0005, 0x0016, 0x0096,\r
++      0x0086, 0x00e6, 0x01c6, 0x01d6, 0x0126, 0x2091, 0x8000, 0x2071,\r
++      0x1800, 0x7090, 0x908a, 0x00f9, 0x16e8, 0x20e1, 0x0000, 0x2001,\r
++      0x19a0, 0x2003, 0x0000, 0x080c, 0x1018, 0x05a0, 0x2900, 0x6016,\r
++      0x7090, 0x8004, 0xa816, 0x908a, 0x001e, 0x02d0, 0xa833, 0x001e,\r
++      0x20a9, 0x001e, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x001b, 0x20a0,\r
++      0x2001, 0x19a0, 0x0016, 0x200c, 0x0471, 0x001e, 0x2940, 0x080c,\r
++      0x1018, 0x01c0, 0x2900, 0xa006, 0x2100, 0x81ff, 0x0180, 0x0c18,\r
++      0xa832, 0x20a8, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x001b, 0x20a0,\r
++      0x2001, 0x19a0, 0x0016, 0x200c, 0x00b1, 0x001e, 0x0000, 0x9085,\r
++      0x0001, 0x0048, 0x2071, 0x1800, 0x7093, 0x0000, 0x6014, 0x2048,\r
++      0x080c, 0x0fb1, 0x9006, 0x012e, 0x01de, 0x01ce, 0x00ee, 0x008e,\r
++      0x009e, 0x001e, 0x0005, 0x0006, 0x0016, 0x0026, 0x0036, 0x00c6,\r
++      0x918c, 0xffff, 0x11a8, 0x080c, 0x23ab, 0x2099, 0x026c, 0x2001,\r
++      0x0014, 0x3518, 0x9312, 0x1218, 0x23a8, 0x4003, 0x00f8, 0x20a8,\r
++      0x4003, 0x22a8, 0x8108, 0x080c, 0x23ab, 0x2099, 0x0260, 0x0ca8,\r
++      0x080c, 0x23ab, 0x2061, 0x19a0, 0x6004, 0x2098, 0x6008, 0x3518,\r
++      0x9312, 0x1218, 0x23a8, 0x4003, 0x0048, 0x20a8, 0x4003, 0x22a8,\r
++      0x8108, 0x080c, 0x23ab, 0x2099, 0x0260, 0x0ca8, 0x2061, 0x19a0,\r
++      0x2019, 0x0280, 0x3300, 0x931e, 0x0110, 0x6006, 0x0020, 0x2001,\r
++      0x0260, 0x6006, 0x8108, 0x2162, 0x9292, 0x0021, 0x9296, 0xffff,\r
++      0x620a, 0x00ce, 0x003e, 0x002e, 0x001e, 0x000e, 0x0005, 0x0006,\r
++      0x0016, 0x0026, 0x0036, 0x00c6, 0x81ff, 0x11b8, 0x080c, 0x23c3,\r
++      0x20a1, 0x024c, 0x2001, 0x0014, 0x3518, 0x9312, 0x1218, 0x23a8,\r
++      0x4003, 0x0418, 0x20a8, 0x4003, 0x82ff, 0x01f8, 0x22a8, 0x8108,\r
++      0x080c, 0x23c3, 0x20a1, 0x0240, 0x0c98, 0x080c, 0x23c3, 0x2061,\r
++      0x19a3, 0x6004, 0x20a0, 0x6008, 0x3518, 0x9312, 0x1218, 0x23a8,\r
++      0x4003, 0x0058, 0x20a8, 0x4003, 0x82ff, 0x0138, 0x22a8, 0x8108,\r
++      0x080c, 0x23c3, 0x20a1, 0x0240, 0x0c98, 0x2061, 0x19a3, 0x2019,\r
++      0x0260, 0x3400, 0x931e, 0x0110, 0x6006, 0x0020, 0x2001, 0x0240,\r
++      0x6006, 0x8108, 0x2162, 0x9292, 0x0021, 0x9296, 0xffff, 0x620a,\r
++      0x00ce, 0x003e, 0x002e, 0x001e, 0x000e, 0x0005, 0x00b6, 0x0066,\r
++      0x6610, 0x2658, 0xbe04, 0x96b4, 0xff00, 0x8637, 0x9686, 0x0006,\r
++      0x0170, 0x9686, 0x0004, 0x0158, 0xbe04, 0x96b4, 0x00ff, 0x9686,\r
++      0x0006, 0x0128, 0x9686, 0x0004, 0x0110, 0x9085, 0x0001, 0x006e,\r
++      0x00be, 0x0005, 0x00d6, 0x080c, 0xd94e, 0x00de, 0x0005, 0x00d6,\r
++      0x080c, 0xd95b, 0x1520, 0x680c, 0x908c, 0xff00, 0x6820, 0x9084,\r
++      0x00ff, 0x9115, 0x6216, 0x6824, 0x602e, 0xd1e4, 0x0130, 0x9006,\r
++      0x080c, 0xe977, 0x2009, 0x0001, 0x0078, 0xd1ec, 0x0180, 0x6920,\r
++      0x918c, 0x00ff, 0x6824, 0x080c, 0x283e, 0x1148, 0x2001, 0x0001,\r
++      0x080c, 0xe977, 0x2110, 0x900e, 0x080c, 0x3208, 0x0018, 0x9085,\r
++      0x0001, 0x0008, 0x9006, 0x00de, 0x0005, 0x00b6, 0x00c6, 0x080c,\r
++      0xaeaf, 0x05a8, 0x0016, 0x0026, 0x00c6, 0x2011, 0x0263, 0x2204,\r
++      0x8211, 0x220c, 0x080c, 0x283e, 0x1578, 0x080c, 0x659e, 0x1560,\r
++      0xbe12, 0xbd16, 0x00ce, 0x002e, 0x001e, 0x2b00, 0x6012, 0x080c,\r
++      0xe7aa, 0x11d8, 0x080c, 0x32e3, 0x11c0, 0x080c, 0xd8b6, 0x0510,\r
++      0x2001, 0x0007, 0x080c, 0x654f, 0x2001, 0x0007, 0x080c, 0x657b,\r
++      0x6017, 0x0000, 0x6023, 0x0001, 0x6007, 0x0001, 0x6003, 0x0001,\r
++      0x080c, 0x9138, 0x080c, 0x968d, 0x0010, 0x080c, 0xae61, 0x9085,\r
++      0x0001, 0x00ce, 0x00be, 0x0005, 0x080c, 0xae61, 0x00ce, 0x002e,\r
++      0x001e, 0x0ca8, 0x080c, 0xae61, 0x9006, 0x0c98, 0x2069, 0x026d,\r
++      0x6800, 0x9082, 0x0010, 0x1228, 0x6017, 0x0000, 0x9085, 0x0001,\r
++      0x0008, 0x9006, 0x0005, 0x6017, 0x0000, 0x2069, 0x026c, 0x6808,\r
++      0x9084, 0xff00, 0x9086, 0x0800, 0x1190, 0x6904, 0x9186, 0x0018,\r
++      0x0118, 0x9186, 0x0014, 0x1158, 0x810f, 0x6800, 0x9084, 0x00ff,\r
++      0x910d, 0x615a, 0x908e, 0x0014, 0x0110, 0x908e, 0x0010, 0x0005,\r
++      0x6004, 0x90b2, 0x0053, 0x1a0c, 0x0dd5, 0x91b6, 0x0013, 0x1130,\r
++      0x2008, 0x91b2, 0x0040, 0x1a04, 0xdaa5, 0x0092, 0x91b6, 0x0027,\r
++      0x0120, 0x91b6, 0x0014, 0x190c, 0x0dd5, 0x2001, 0x0007, 0x080c,\r
++      0x657b, 0x080c, 0x9588, 0x080c, 0xae92, 0x080c, 0x968d, 0x0005,\r
++      0xd9d8, 0xd9da, 0xd9d8, 0xd9d8, 0xd9d8, 0xd9da, 0xd9e9, 0xda9e,\r
++      0xda3b, 0xda9e, 0xda4f, 0xda9e, 0xd9e9, 0xda9e, 0xda96, 0xda9e,\r
++      0xda96, 0xda9e, 0xda9e, 0xd9d8, 0xd9d8, 0xd9d8, 0xd9d8, 0xd9d8,\r
++      0xd9d8, 0xd9d8, 0xd9d8, 0xd9d8, 0xd9d8, 0xd9d8, 0xd9da, 0xd9d8,\r
++      0xda9e, 0xd9d8, 0xd9d8, 0xda9e, 0xd9d8, 0xda9b, 0xda9e, 0xd9d8,\r
++      0xd9d8, 0xd9d8, 0xd9d8, 0xda9e, 0xda9e, 0xd9d8, 0xda9e, 0xda9e,\r
++      0xd9d8, 0xd9e4, 0xd9d8, 0xd9d8, 0xd9d8, 0xd9d8, 0xda9a, 0xda9e,\r
++      0xd9d8, 0xd9d8, 0xda9e, 0xda9e, 0xd9d8, 0xd9d8, 0xd9d8, 0xd9d8,\r
++      0x080c, 0x0dd5, 0x080c, 0x9588, 0x080c, 0xd248, 0x6003, 0x0002,\r
++      0x080c, 0x968d, 0x0804, 0xdaa4, 0x9006, 0x080c, 0x653b, 0x0804,\r
++      0xda9e, 0x080c, 0x696a, 0x1904, 0xda9e, 0x9006, 0x080c, 0x653b,\r
++      0x6010, 0x2058, 0xb810, 0x9086, 0x00ff, 0x1140, 0x00f6, 0x2079,\r
++      0x1800, 0x78a8, 0x8000, 0x78aa, 0x00fe, 0x0428, 0x6010, 0x2058,\r
++      0xb8c0, 0x9005, 0x1178, 0x080c, 0xd230, 0x1904, 0xda9e, 0x0036,\r
++      0x0046, 0xbba0, 0x2021, 0x0007, 0x080c, 0x4cbb, 0x004e, 0x003e,\r
++      0x0804, 0xda9e, 0x080c, 0x3314, 0x1904, 0xda9e, 0x2001, 0x1800,\r
++      0x2004, 0x9086, 0x0002, 0x1138, 0x00f6, 0x2079, 0x1800, 0x78a8,\r
++      0x8000, 0x78aa, 0x00fe, 0x2001, 0x0002, 0x080c, 0x654f, 0x080c,\r
++      0x9588, 0x6023, 0x0001, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c,\r
++      0x9138, 0x080c, 0x968d, 0x6110, 0x2158, 0x2009, 0x0001, 0x080c,\r
++      0x8501, 0x0804, 0xdaa4, 0x6610, 0x2658, 0xbe04, 0x96b4, 0xff00,\r
++      0x8637, 0x9686, 0x0006, 0x0904, 0xda9e, 0x9686, 0x0004, 0x0904,\r
++      0xda9e, 0x080c, 0x8cbb, 0x2001, 0x0004, 0x0804, 0xda9c, 0x2001,\r
++      0x1800, 0x2004, 0x9086, 0x0003, 0x1158, 0x0036, 0x0046, 0x6010,\r
++      0x2058, 0xbba0, 0x2021, 0x0006, 0x080c, 0x4cbb, 0x004e, 0x003e,\r
++      0x2001, 0x0006, 0x080c, 0xdac2, 0x6610, 0x2658, 0xbe04, 0x0066,\r
++      0x96b4, 0xff00, 0x8637, 0x9686, 0x0006, 0x006e, 0x0168, 0x2001,\r
++      0x0006, 0x080c, 0x657b, 0x9284, 0x00ff, 0x908e, 0x0007, 0x1120,\r
++      0x2001, 0x0006, 0x080c, 0x654f, 0x080c, 0x696a, 0x11f8, 0x2001,\r
++      0x1837, 0x2004, 0xd0a4, 0x01d0, 0xbe04, 0x96b4, 0x00ff, 0x9686,\r
++      0x0006, 0x01a0, 0x00f6, 0x2079, 0x1800, 0x78a8, 0x8000, 0x78aa,\r
++      0x00fe, 0x0804, 0xda23, 0x2001, 0x0004, 0x0030, 0x2001, 0x0006,\r
++      0x0449, 0x0020, 0x0018, 0x0010, 0x080c, 0x657b, 0x080c, 0x9588,\r
++      0x080c, 0xae61, 0x080c, 0x968d, 0x0005, 0x2600, 0x0002, 0xdab9,\r
++      0xdab9, 0xdab9, 0xdab9, 0xdab9, 0xdabb, 0xdab9, 0xdabb, 0xdab9,\r
++      0xdab9, 0xdabb, 0xdab9, 0xdab9, 0xdab9, 0xdabb, 0xdabb, 0xdabb,\r
++      0xdabb, 0x080c, 0x0dd5, 0x080c, 0x9588, 0x080c, 0xae61, 0x080c,\r
++      0x968d, 0x0005, 0x0016, 0x00b6, 0x00d6, 0x6110, 0x2158, 0xb900,\r
++      0xd184, 0x0138, 0x080c, 0x654f, 0x9006, 0x080c, 0x653b, 0x080c,\r
++      0x31e8, 0x00de, 0x00be, 0x001e, 0x0005, 0x6610, 0x2658, 0xb804,\r
++      0x9084, 0xff00, 0x8007, 0x90b2, 0x000c, 0x1a0c, 0x0dd5, 0x91b6,\r
++      0x0015, 0x1110, 0x003b, 0x0028, 0x91b6, 0x0016, 0x190c, 0x0dd5,\r
++      0x006b, 0x0005, 0xb8fc, 0xb8fc, 0xb8fc, 0xb8fc, 0xb8fc, 0xb8fc,\r
++      0xdb41, 0xdb02, 0xb8fc, 0xb8fc, 0xb8fc, 0xb8fc, 0xb8fc, 0xb8fc,\r
++      0xb8fc, 0xb8fc, 0xb8fc, 0xb8fc, 0xdb41, 0xdb48, 0xb8fc, 0xb8fc,\r
++      0xb8fc, 0xb8fc, 0x00f6, 0x080c, 0x696a, 0x11d8, 0x080c, 0xd230,\r
++      0x11c0, 0x6010, 0x905d, 0x01a8, 0xb8c0, 0x9005, 0x0190, 0x9006,\r
++      0x080c, 0x653b, 0x2001, 0x0002, 0x080c, 0x654f, 0x6023, 0x0001,\r
++      0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x9138, 0x080c, 0x968d,\r
++      0x00f0, 0x2011, 0x0263, 0x2204, 0x8211, 0x220c, 0x080c, 0x283e,\r
++      0x11b0, 0x080c, 0x65ff, 0x0118, 0x080c, 0xae61, 0x0080, 0xb810,\r
++      0x0006, 0xb814, 0x0006, 0xb8c0, 0x0006, 0x080c, 0x6034, 0x000e,\r
++      0xb8c2, 0x000e, 0xb816, 0x000e, 0xb812, 0x080c, 0xae61, 0x00fe,\r
++      0x0005, 0x6604, 0x96b6, 0x001e, 0x1110, 0x080c, 0xae61, 0x0005,\r
++      0x080c, 0xbc85, 0x1148, 0x6003, 0x0001, 0x6007, 0x0001, 0x080c,\r
++      0x9138, 0x080c, 0x968d, 0x0010, 0x080c, 0xae61, 0x0005, 0x6004,\r
++      0x908a, 0x0053, 0x1a0c, 0x0dd5, 0x080c, 0x9588, 0x080c, 0xae92,\r
++      0x080c, 0x968d, 0x0005, 0x9182, 0x0040, 0x0002, 0xdb79, 0xdb79,\r
++      0xdb79, 0xdb79, 0xdb7b, 0xdb79, 0xdb79, 0xdb79, 0xdb79, 0xdb79,\r
++      0xdb79, 0xdb79, 0xdb79, 0xdb79, 0xdb79, 0xdb79, 0xdb79, 0xdb79,\r
++      0xdb79, 0x080c, 0x0dd5, 0x0096, 0x00b6, 0x00d6, 0x00e6, 0x00f6,\r
++      0x0046, 0x0026, 0x6210, 0x2258, 0xb8bc, 0x9005, 0x11a8, 0x6106,\r
++      0x2071, 0x0260, 0x7444, 0x94a4, 0xff00, 0x0904, 0xdbe1, 0x080c,\r
++      0xe96b, 0x1170, 0x9486, 0x2000, 0x1158, 0x2009, 0x0001, 0x2011,\r
++      0x0200, 0x080c, 0x86dd, 0x0020, 0x9026, 0x080c, 0xe7ef, 0x0c38,\r
++      0x080c, 0x0fff, 0x090c, 0x0dd5, 0x6003, 0x0007, 0xa867, 0x010d,\r
++      0x9006, 0xa802, 0xa86a, 0xac8a, 0x2c00, 0xa88e, 0x6008, 0xa8e2,\r
++      0x6010, 0x2058, 0xb8a0, 0x7130, 0xa97a, 0x0016, 0xa876, 0xa87f,\r
++      0x0000, 0xa883, 0x0000, 0xa887, 0x0036, 0x080c, 0x6c81, 0x001e,\r
++      0x080c, 0xe96b, 0x1904, 0xdc41, 0x9486, 0x2000, 0x1130, 0x2019,\r
++      0x0017, 0x080c, 0xe522, 0x0804, 0xdc41, 0x9486, 0x0200, 0x1120,\r
++      0x080c, 0xe4be, 0x0804, 0xdc41, 0x9486, 0x0400, 0x0120, 0x9486,\r
++      0x1000, 0x1904, 0xdc41, 0x2019, 0x0002, 0x080c, 0xe4d9, 0x0804,\r
++      0xdc41, 0x2069, 0x1a71, 0x6a00, 0xd284, 0x0904, 0xdcab, 0x9284,\r
++      0x0300, 0x1904, 0xdca4, 0x6804, 0x9005, 0x0904, 0xdc8c, 0x2d78,\r
++      0x6003, 0x0007, 0x080c, 0x1018, 0x0904, 0xdc4d, 0x7800, 0xd08c,\r
++      0x1118, 0x7804, 0x8001, 0x7806, 0x6017, 0x0000, 0x2001, 0x180f,\r
++      0x2004, 0xd084, 0x1904, 0xdcaf, 0x9006, 0xa802, 0xa867, 0x0116,\r
++      0xa86a, 0x6008, 0xa8e2, 0x2c00, 0xa87a, 0x6010, 0x2058, 0xb8a0,\r
++      0x7130, 0xa9b6, 0xa876, 0xb928, 0xa9ba, 0xb92c, 0xa9be, 0xb930,\r
++      0xa9c2, 0xb934, 0xa9c6, 0xa883, 0x003d, 0x7044, 0x9084, 0x0003,\r
++      0x9080, 0xdc49, 0x2005, 0xa87e, 0x20a9, 0x000a, 0x2001, 0x0270,\r
++      0xaa5c, 0x9290, 0x0021, 0x2009, 0x0205, 0x200b, 0x0080, 0x20e1,\r
++      0x0000, 0xab60, 0x23e8, 0x2098, 0x22a0, 0x4003, 0x200b, 0x0000,\r
++      0x2001, 0x027a, 0x200c, 0xa9b2, 0x8000, 0x200c, 0xa9ae, 0x080c,\r
++      0x6c81, 0x002e, 0x004e, 0x00fe, 0x00ee, 0x00de, 0x00be, 0x009e,\r
++      0x0005, 0x0000, 0x0080, 0x0040, 0x0000, 0x2001, 0x1810, 0x2004,\r
++      0xd084, 0x0120, 0x080c, 0x0fff, 0x1904, 0xdbf6, 0x6017, 0xf100,\r
++      0x6003, 0x0001, 0x6007, 0x0041, 0x080c, 0x90f0, 0x080c, 0x968d,\r
++      0x0c00, 0x2069, 0x0260, 0x6848, 0x9084, 0xff00, 0x9086, 0x1200,\r
++      0x1198, 0x686c, 0x9084, 0x00ff, 0x0016, 0x6114, 0x918c, 0xf700,\r
++      0x910d, 0x6116, 0x001e, 0x6003, 0x0001, 0x6007, 0x0043, 0x080c,\r
++      0x90f0, 0x080c, 0x968d, 0x0828, 0x6868, 0x602e, 0x686c, 0x6032,\r
++      0x6017, 0xf200, 0x6003, 0x0001, 0x6007, 0x0041, 0x080c, 0x90f0,\r
++      0x080c, 0x968d, 0x0804, 0xdc41, 0x2001, 0x180e, 0x2004, 0xd0ec,\r
++      0x0120, 0x2011, 0x8049, 0x080c, 0x4b04, 0x6017, 0xf300, 0x0010,\r
++      0x6017, 0xf100, 0x6003, 0x0001, 0x6007, 0x0041, 0x080c, 0x90f0,\r
++      0x080c, 0x968d, 0x0804, 0xdc41, 0x6017, 0xf500, 0x0c98, 0x6017,\r
++      0xf600, 0x0804, 0xdc61, 0x6017, 0xf200, 0x0804, 0xdc61, 0xa867,\r
++      0x0146, 0xa86b, 0x0000, 0x6008, 0xa886, 0x2c00, 0xa87a, 0x7044,\r
++      0x9084, 0x0003, 0x9080, 0xdc49, 0x2005, 0xa87e, 0x2928, 0x6010,\r
++      0x2058, 0xb8a0, 0xa876, 0xb828, 0xa88a, 0xb82c, 0xa88e, 0xb830,\r
++      0xa892, 0xb834, 0xa896, 0xa883, 0x003d, 0x2009, 0x0205, 0x2104,\r
++      0x9085, 0x0080, 0x200a, 0x20e1, 0x0000, 0x2011, 0x0210, 0x2214,\r
++      0x9294, 0x0fff, 0xaaa2, 0x9282, 0x0111, 0x1a0c, 0x0dd5, 0x8210,\r
++      0x821c, 0x2001, 0x026c, 0x2098, 0xa860, 0x20e8, 0xa85c, 0x9080,\r
++      0x0029, 0x20a0, 0x2011, 0xdd2b, 0x2041, 0x0001, 0x223d, 0x9784,\r
++      0x00ff, 0x9322, 0x1208, 0x2300, 0x20a8, 0x4003, 0x931a, 0x0530,\r
++      0x8210, 0xd7fc, 0x1130, 0x8d68, 0x2d0a, 0x2001, 0x0260, 0x2098,\r
++      0x0c68, 0x2950, 0x080c, 0x1018, 0x0170, 0x2900, 0xb002, 0xa867,\r
++      0x0147, 0xa86b, 0x0000, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x001b,\r
++      0x20a0, 0x8840, 0x08d8, 0x2548, 0xa800, 0x902d, 0x0118, 0x080c,\r
++      0x1031, 0x0cc8, 0x080c, 0x1031, 0x0804, 0xdc4d, 0x2548, 0x8847,\r
++      0x9885, 0x0046, 0xa866, 0x2009, 0x0205, 0x200b, 0x0000, 0x080c,\r
++      0xe551, 0x0804, 0xdc41, 0x8010, 0x0004, 0x801a, 0x0006, 0x8018,\r
++      0x0008, 0x8016, 0x000a, 0x8014, 0x9186, 0x0013, 0x1160, 0x6004,\r
++      0x908a, 0x0054, 0x1a0c, 0x0dd5, 0x9082, 0x0040, 0x0a0c, 0x0dd5,\r
++      0x2008, 0x0804, 0xdddc, 0x9186, 0x0051, 0x0108, 0x00c0, 0x2001,\r
++      0x0109, 0x2004, 0xd084, 0x0904, 0xdd8d, 0x0126, 0x2091, 0x2800,\r
++      0x0006, 0x0016, 0x0026, 0x080c, 0x8fd5, 0x002e, 0x001e, 0x000e,\r
++      0x012e, 0x6000, 0x9086, 0x0002, 0x1580, 0x0804, 0xde24, 0x9186,\r
++      0x0027, 0x0530, 0x9186, 0x0048, 0x0128, 0x9186, 0x0014, 0x0500,\r
++      0x190c, 0x0dd5, 0x2001, 0x0109, 0x2004, 0xd084, 0x01f0, 0x00c6,\r
++      0x0126, 0x2091, 0x2800, 0x00c6, 0x2061, 0x0100, 0x0006, 0x0016,\r
++      0x0026, 0x080c, 0x8fd5, 0x002e, 0x001e, 0x000e, 0x00ce, 0x012e,\r
++      0x00ce, 0x6000, 0x9086, 0x0004, 0x190c, 0x0dd5, 0x0804, 0xdf05,\r
++      0x6004, 0x9082, 0x0040, 0x2008, 0x001a, 0x080c, 0xaef7, 0x0005,\r
++      0xdda3, 0xdda5, 0xdda5, 0xddcc, 0xdda3, 0xdda3, 0xdda3, 0xdda3,\r
++      0xdda3, 0xdda3, 0xdda3, 0xdda3, 0xdda3, 0xdda3, 0xdda3, 0xdda3,\r
++      0xdda3, 0xdda3, 0xdda3, 0x080c, 0x0dd5, 0x080c, 0x9588, 0x080c,\r
++      0x968d, 0x0036, 0x0096, 0x6014, 0x904d, 0x01d8, 0x080c, 0xcb35,\r
++      0x01c0, 0x6003, 0x0002, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be,\r
++      0xd0bc, 0x1178, 0x2019, 0x0004, 0x080c, 0xe551, 0x6017, 0x0000,\r
++      0x6018, 0x9005, 0x1120, 0x2001, 0x1987, 0x2004, 0x601a, 0x6003,\r
++      0x0007, 0x009e, 0x003e, 0x0005, 0x0096, 0x080c, 0x9588, 0x080c,\r
++      0x968d, 0x080c, 0xcb35, 0x0120, 0x6014, 0x2048, 0x080c, 0x1031,\r
++      0x080c, 0xae92, 0x009e, 0x0005, 0x0002, 0xddf0, 0xde07, 0xddf2,\r
++      0xde1e, 0xddf0, 0xddf0, 0xddf0, 0xddf0, 0xddf0, 0xddf0, 0xddf0,\r
++      0xddf0, 0xddf0, 0xddf0, 0xddf0, 0xddf0, 0xddf0, 0xddf0, 0xddf0,\r
++      0x080c, 0x0dd5, 0x0096, 0x080c, 0x9588, 0x6014, 0x2048, 0xa87c,\r
++      0xd0b4, 0x0138, 0x6003, 0x0007, 0x2009, 0x0043, 0x080c, 0xaedc,\r
++      0x0010, 0x6003, 0x0004, 0x080c, 0x968d, 0x009e, 0x0005, 0x080c,\r
++      0x9588, 0x080c, 0xcb35, 0x0138, 0x6114, 0x0096, 0x2148, 0xa97c,\r
++      0x009e, 0xd1ec, 0x1138, 0x080c, 0x86b2, 0x080c, 0xae61, 0x080c,\r
++      0x968d, 0x0005, 0x080c, 0xe7b3, 0x0db0, 0x0cc8, 0x080c, 0x9588,\r
++      0x2009, 0x0041, 0x0804, 0xdf8d, 0x9182, 0x0040, 0x0002, 0xde3a,\r
++      0xde3c, 0xde3a, 0xde3a, 0xde3a, 0xde3a, 0xde3a, 0xde3a, 0xde3a,\r
++      0xde3a, 0xde3a, 0xde3a, 0xde3a, 0xde3a, 0xde3a, 0xde3a, 0xde3a,\r
++      0xde3d, 0xde3a, 0x080c, 0x0dd5, 0x0005, 0x00d6, 0x080c, 0x86b2,\r
++      0x00de, 0x080c, 0xe80b, 0x080c, 0xae61, 0x0005, 0x9182, 0x0040,\r
++      0x0002, 0xde5c, 0xde5c, 0xde5c, 0xde5c, 0xde5c, 0xde5c, 0xde5c,\r
++      0xde5c, 0xde5c, 0xde5e, 0xdecd, 0xde5c, 0xde5c, 0xde5c, 0xde5c,\r
++      0xdecd, 0xde5c, 0xde5c, 0xde5c, 0x080c, 0x0dd5, 0x2001, 0x0105,\r
++      0x2004, 0x9084, 0x1800, 0x01c8, 0x2001, 0x0132, 0x200c, 0x2001,\r
++      0x0131, 0x2004, 0x9105, 0x1904, 0xdecd, 0x2009, 0x180c, 0x2104,\r
++      0xd0d4, 0x0904, 0xdecd, 0xc0d4, 0x200a, 0x2009, 0x0105, 0x2104,\r
++      0x9084, 0xe7fd, 0x9085, 0x0010, 0x200a, 0x2001, 0x1867, 0x2004,\r
++      0xd0e4, 0x1528, 0x603b, 0x0000, 0x080c, 0x963d, 0x6014, 0x0096,\r
++      0x2048, 0xa87c, 0xd0fc, 0x0188, 0x908c, 0x0003, 0x918e, 0x0002,\r
++      0x0508, 0x2001, 0x180c, 0x2004, 0xd0d4, 0x11e0, 0x080c, 0x97b9,\r
++      0x2009, 0x0041, 0x009e, 0x0804, 0xdf8d, 0x080c, 0x97b9, 0x6003,\r
++      0x0007, 0x601b, 0x0000, 0x080c, 0x86b2, 0x009e, 0x0005, 0x2001,\r
++      0x0100, 0x2004, 0x9082, 0x0005, 0x0aa8, 0x2001, 0x011f, 0x2004,\r
++      0x603a, 0x0890, 0x2001, 0x180c, 0x200c, 0xc1d4, 0x2102, 0xd1cc,\r
++      0x0110, 0x080c, 0x2c52, 0x080c, 0x97b9, 0x6014, 0x2048, 0xa97c,\r
++      0xd1ec, 0x1130, 0x080c, 0x86b2, 0x080c, 0xae61, 0x009e, 0x0005,\r
++      0x080c, 0xe7b3, 0x0db8, 0x009e, 0x0005, 0x2001, 0x180c, 0x200c,\r
++      0xc1d4, 0x2102, 0x0036, 0x080c, 0x963d, 0x080c, 0x97b9, 0x6014,\r
++      0x0096, 0x2048, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc,\r
++      0x0188, 0xa87c, 0x9084, 0x0003, 0x9086, 0x0002, 0x0140, 0xa8ac,\r
++      0x6330, 0x931a, 0x6332, 0xa8b0, 0x632c, 0x931b, 0x632e, 0x6003,\r
++      0x0002, 0x0080, 0x2019, 0x0004, 0x080c, 0xe551, 0x6018, 0x9005,\r
++      0x1128, 0x2001, 0x1987, 0x2004, 0x8003, 0x601a, 0x6017, 0x0000,\r
++      0x6003, 0x0007, 0x009e, 0x003e, 0x0005, 0x9182, 0x0040, 0x0002,\r
++      0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c,\r
++      0xdf1e, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c,\r
++      0xdf1c, 0xdf1c, 0xdf1c, 0xdf69, 0x080c, 0x0dd5, 0x6014, 0x0096,\r
++      0x2048, 0xa834, 0xaa38, 0x6110, 0x00b6, 0x2158, 0xb900, 0x00be,\r
++      0xd1bc, 0x1190, 0x920d, 0x1518, 0xa87c, 0xd0fc, 0x0128, 0x2009,\r
++      0x0041, 0x009e, 0x0804, 0xdf8d, 0x6003, 0x0007, 0x601b, 0x0000,\r
++      0x080c, 0x86b2, 0x009e, 0x0005, 0x6124, 0xd1f4, 0x1d58, 0x0006,\r
++      0x0046, 0xacac, 0x9422, 0xa9b0, 0x2200, 0x910b, 0x6030, 0x9420,\r
++      0x6432, 0x602c, 0x9109, 0x612e, 0x004e, 0x000e, 0x08d8, 0x6110,\r
++      0x00b6, 0x2158, 0xb900, 0x00be, 0xd1bc, 0x1178, 0x2009, 0x180e,\r
++      0x210c, 0xd19c, 0x0118, 0x6003, 0x0007, 0x0010, 0x6003, 0x0006,\r
++      0x00e9, 0x080c, 0x86b4, 0x009e, 0x0005, 0x6003, 0x0002, 0x009e,\r
++      0x0005, 0x6024, 0xd0f4, 0x0128, 0x080c, 0x15e5, 0x1904, 0xdf1e,\r
++      0x0005, 0x6014, 0x0096, 0x2048, 0xa834, 0xa938, 0x009e, 0x9105,\r
++      0x1120, 0x080c, 0x15e5, 0x1904, 0xdf1e, 0x0005, 0xd2fc, 0x0140,\r
++      0x8002, 0x8000, 0x8212, 0x9291, 0x0000, 0x2009, 0x0009, 0x0010,\r
++      0x2009, 0x0015, 0xaa9a, 0xa896, 0x0005, 0x9182, 0x0040, 0x0208,\r
++      0x0062, 0x9186, 0x0013, 0x0120, 0x9186, 0x0014, 0x190c, 0x0dd5,\r
++      0x6024, 0xd0dc, 0x090c, 0x0dd5, 0x0005, 0xdfb0, 0xdfbc, 0xdfc8,\r
++      0xdfd4, 0xdfb0, 0xdfb0, 0xdfb0, 0xdfb0, 0xdfb7, 0xdfb2, 0xdfb2,\r
++      0xdfb0, 0xdfb0, 0xdfb0, 0xdfb0, 0xdfb2, 0xdfb0, 0xdfb2, 0xdfb0,\r
++      0x080c, 0x0dd5, 0x6024, 0xd0dc, 0x090c, 0x0dd5, 0x0005, 0x6014,\r
++      0x9005, 0x190c, 0x0dd5, 0x0005, 0x6003, 0x0001, 0x6106, 0x080c,\r
++      0x90f0, 0x0126, 0x2091, 0x8000, 0x080c, 0x968d, 0x012e, 0x0005,\r
++      0x6003, 0x0001, 0x6106, 0x080c, 0x90f0, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x968d, 0x012e, 0x0005, 0x6003, 0x0003, 0x6106, 0x2c10,\r
++      0x080c, 0x1bad, 0x0126, 0x2091, 0x8000, 0x080c, 0x9155, 0x080c,\r
++      0x97b9, 0x012e, 0x0005, 0x0126, 0x2091, 0x8000, 0x0036, 0x0096,\r
++      0x9182, 0x0040, 0x0023, 0x009e, 0x003e, 0x012e, 0x0005, 0xdfff,\r
++      0xe001, 0xe013, 0xe02d, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff,\r
++      0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0xdfff, 0x080c,\r
++      0x0dd5, 0x6014, 0x2048, 0xa87c, 0xd0fc, 0x01f8, 0x909c, 0x0003,\r
++      0x939e, 0x0003, 0x01d0, 0x6003, 0x0001, 0x6106, 0x080c, 0x90f0,\r
++      0x080c, 0x968d, 0x0470, 0x6014, 0x2048, 0xa87c, 0xd0fc, 0x0168,\r
++      0x909c, 0x0003, 0x939e, 0x0003, 0x0140, 0x6003, 0x0001, 0x6106,\r
++      0x080c, 0x90f0, 0x080c, 0x968d, 0x00e0, 0x901e, 0x6316, 0x631a,\r
++      0x2019, 0x0004, 0x080c, 0xe551, 0x00a0, 0x6014, 0x2048, 0xa87c,\r
++      0xd0fc, 0x0d98, 0x909c, 0x0003, 0x939e, 0x0003, 0x0d70, 0x6003,\r
++      0x0003, 0x6106, 0x2c10, 0x080c, 0x1bad, 0x080c, 0x9155, 0x080c,\r
++      0x97b9, 0x0005, 0x080c, 0x9588, 0x6114, 0x81ff, 0x0158, 0x0096,\r
++      0x2148, 0x080c, 0xe908, 0x0036, 0x2019, 0x0029, 0x080c, 0xe551,\r
++      0x003e, 0x009e, 0x080c, 0xae92, 0x080c, 0x968d, 0x0005, 0x080c,\r
++      0x963d, 0x6114, 0x81ff, 0x0158, 0x0096, 0x2148, 0x080c, 0xe908,\r
++      0x0036, 0x2019, 0x0029, 0x080c, 0xe551, 0x003e, 0x009e, 0x080c,\r
++      0xae92, 0x080c, 0x97b9, 0x0005, 0x9182, 0x0085, 0x0002, 0xe07e,\r
++      0xe07c, 0xe07c, 0xe08a, 0xe07c, 0xe07c, 0xe07c, 0xe07c, 0xe07c,\r
++      0xe07c, 0xe07c, 0xe07c, 0xe07c, 0x080c, 0x0dd5, 0x6003, 0x000b,\r
++      0x6106, 0x080c, 0x90f0, 0x0126, 0x2091, 0x8000, 0x080c, 0x968d,\r
++      0x012e, 0x0005, 0x0026, 0x00e6, 0x080c, 0xe7aa, 0x0118, 0x080c,\r
++      0xae61, 0x0450, 0x2071, 0x0260, 0x7224, 0x6216, 0x2001, 0x180e,\r
++      0x2004, 0xd0e4, 0x0150, 0x6010, 0x00b6, 0x2058, 0xbca0, 0x00be,\r
++      0x2c00, 0x2011, 0x014e, 0x080c, 0xb182, 0x7220, 0x080c, 0xe3f7,\r
++      0x0118, 0x6007, 0x0086, 0x0040, 0x6007, 0x0087, 0x7224, 0x9296,\r
++      0xffff, 0x1110, 0x6007, 0x0086, 0x6003, 0x0001, 0x080c, 0x90f0,\r
++      0x080c, 0x968d, 0x080c, 0x97b9, 0x00ee, 0x002e, 0x0005, 0x9186,\r
++      0x0013, 0x1160, 0x6004, 0x908a, 0x0085, 0x0a0c, 0x0dd5, 0x908a,\r
++      0x0092, 0x1a0c, 0x0dd5, 0x9082, 0x0085, 0x00a2, 0x9186, 0x0027,\r
++      0x0130, 0x9186, 0x0014, 0x0118, 0x080c, 0xaef7, 0x0050, 0x2001,\r
++      0x0007, 0x080c, 0x657b, 0x080c, 0x9588, 0x080c, 0xae92, 0x080c,\r
++      0x968d, 0x0005, 0xe0ef, 0xe0f1, 0xe0f1, 0xe0ef, 0xe0ef, 0xe0ef,\r
++      0xe0ef, 0xe0ef, 0xe0ef, 0xe0ef, 0xe0ef, 0xe0ef, 0xe0ef, 0x080c,\r
++      0x0dd5, 0x080c, 0x9588, 0x080c, 0xae92, 0x080c, 0x968d, 0x0005,\r
++      0x9182, 0x0085, 0x0a0c, 0x0dd5, 0x9182, 0x0092, 0x1a0c, 0x0dd5,\r
++      0x9182, 0x0085, 0x0002, 0xe110, 0xe110, 0xe110, 0xe112, 0xe110,\r
++      0xe110, 0xe110, 0xe110, 0xe110, 0xe110, 0xe110, 0xe110, 0xe110,\r
++      0x080c, 0x0dd5, 0x0005, 0x9186, 0x0013, 0x0148, 0x9186, 0x0014,\r
++      0x0130, 0x9186, 0x0027, 0x0118, 0x080c, 0xaef7, 0x0030, 0x080c,\r
++      0x9588, 0x080c, 0xae92, 0x080c, 0x968d, 0x0005, 0x0036, 0x080c,\r
++      0xe80b, 0x6043, 0x0000, 0x2019, 0x000b, 0x0031, 0x6023, 0x0006,\r
++      0x6003, 0x0007, 0x003e, 0x0005, 0x0126, 0x0036, 0x2091, 0x8000,\r
++      0x0086, 0x2c40, 0x0096, 0x904e, 0x080c, 0xa69c, 0x009e, 0x008e,\r
++      0x1550, 0x0076, 0x2c38, 0x080c, 0xa747, 0x007e, 0x1520, 0x6000,\r
++      0x9086, 0x0000, 0x0500, 0x6020, 0x9086, 0x0007, 0x01e0, 0x0096,\r
++      0x601c, 0xd084, 0x0140, 0x080c, 0xe80b, 0x080c, 0xd248, 0x080c,\r
++      0x1a5e, 0x6023, 0x0007, 0x6014, 0x2048, 0x080c, 0xcb35, 0x0110,\r
++      0x080c, 0xe551, 0x009e, 0x6017, 0x0000, 0x080c, 0xe80b, 0x6023,\r
++      0x0007, 0x080c, 0xd248, 0x003e, 0x012e, 0x0005, 0x00f6, 0x00c6,\r
++      0x00b6, 0x0036, 0x0156, 0x2079, 0x0260, 0x7938, 0x783c, 0x080c,\r
++      0x283e, 0x15c8, 0x0016, 0x00c6, 0x080c, 0x65ff, 0x1590, 0x001e,\r
++      0x00c6, 0x2160, 0x080c, 0xd245, 0x00ce, 0x002e, 0x0026, 0x0016,\r
++      0x2019, 0x0029, 0x080c, 0xa808, 0x080c, 0x928b, 0x0076, 0x903e,\r
++      0x080c, 0x9168, 0x007e, 0x001e, 0x0076, 0x903e, 0x080c, 0xe2eb,\r
++      0x007e, 0x0026, 0xba04, 0x9294, 0xff00, 0x8217, 0x9286, 0x0006,\r
++      0x0118, 0x9286, 0x0004, 0x1118, 0xbaa0, 0x080c, 0x327d, 0x002e,\r
++      0xbcc0, 0x001e, 0x080c, 0x6034, 0xbe12, 0xbd16, 0xbcc2, 0x9006,\r
++      0x0010, 0x00ce, 0x001e, 0x015e, 0x003e, 0x00be, 0x00ce, 0x00fe,\r
++      0x0005, 0x00c6, 0x00d6, 0x00b6, 0x0016, 0x2009, 0x1824, 0x2104,\r
++      0x9086, 0x0074, 0x1904, 0xe212, 0x2069, 0x0260, 0x6944, 0x9182,\r
++      0x0100, 0x06e0, 0x6940, 0x9184, 0x8000, 0x0904, 0xe20f, 0x2001,\r
++      0x197c, 0x2004, 0x9005, 0x1140, 0x6010, 0x2058, 0xb8c0, 0x9005,\r
++      0x0118, 0x9184, 0x0800, 0x0598, 0x6948, 0x918a, 0x0001, 0x0648,\r
++      0x080c, 0xe970, 0x0118, 0x6978, 0xd1fc, 0x11b8, 0x2009, 0x0205,\r
++      0x200b, 0x0001, 0x693c, 0x81ff, 0x1198, 0x6944, 0x9182, 0x0100,\r
++      0x02a8, 0x6940, 0x81ff, 0x1178, 0x6948, 0x918a, 0x0001, 0x0288,\r
++      0x6950, 0x918a, 0x0001, 0x0298, 0x00d0, 0x6017, 0x0100, 0x00a0,\r
++      0x6017, 0x0300, 0x0088, 0x6017, 0x0500, 0x0070, 0x6017, 0x0700,\r
++      0x0058, 0x6017, 0x0900, 0x0040, 0x6017, 0x0b00, 0x0028, 0x6017,\r
++      0x0f00, 0x0010, 0x6017, 0x2d00, 0x9085, 0x0001, 0x0008, 0x9006,\r
++      0x001e, 0x00be, 0x00de, 0x00ce, 0x0005, 0x00c6, 0x00b6, 0x0026,\r
++      0x0036, 0x0156, 0x6210, 0x2258, 0xbb04, 0x9394, 0x00ff, 0x9286,\r
++      0x0006, 0x0180, 0x9286, 0x0004, 0x0168, 0x9394, 0xff00, 0x8217,\r
++      0x9286, 0x0006, 0x0138, 0x9286, 0x0004, 0x0120, 0x080c, 0x660e,\r
++      0x0804, 0xe27a, 0x2011, 0x0276, 0x20a9, 0x0004, 0x0096, 0x2b48,\r
++      0x2019, 0x000a, 0x080c, 0xbe1d, 0x009e, 0x15a8, 0x2011, 0x027a,\r
++      0x20a9, 0x0004, 0x0096, 0x2b48, 0x2019, 0x0006, 0x080c, 0xbe1d,\r
++      0x009e, 0x1548, 0x0046, 0x0016, 0xbaa0, 0x2220, 0x9006, 0x2009,\r
++      0x1848, 0x210c, 0xd1a4, 0x0138, 0x2009, 0x0029, 0x080c, 0xe5ae,\r
++      0xb800, 0xc0e5, 0xb802, 0x2019, 0x0029, 0x080c, 0x928b, 0x0076,\r
++      0x2039, 0x0000, 0x080c, 0x9168, 0x2c08, 0x080c, 0xe2eb, 0x007e,\r
++      0x2001, 0x0007, 0x080c, 0x657b, 0x2001, 0x0007, 0x080c, 0x654f,\r
++      0x001e, 0x004e, 0x9006, 0x015e, 0x003e, 0x002e, 0x00be, 0x00ce,\r
++      0x0005, 0x00d6, 0x2069, 0x026e, 0x6800, 0x9086, 0x0800, 0x0118,\r
++      0x6017, 0x0000, 0x0008, 0x9006, 0x00de, 0x0005, 0x00b6, 0x00f6,\r
++      0x0016, 0x0026, 0x0036, 0x0156, 0x2079, 0x026c, 0x7930, 0x7834,\r
++      0x080c, 0x283e, 0x11d0, 0x080c, 0x65ff, 0x11b8, 0x2011, 0x0270,\r
++      0x20a9, 0x0004, 0x0096, 0x2b48, 0x2019, 0x000a, 0x080c, 0xbe1d,\r
++      0x009e, 0x1158, 0x2011, 0x0274, 0x20a9, 0x0004, 0x0096, 0x2b48,\r
++      0x2019, 0x0006, 0x080c, 0xbe1d, 0x009e, 0x015e, 0x003e, 0x002e,\r
++      0x001e, 0x00fe, 0x00be, 0x0005, 0x00b6, 0x0006, 0x0016, 0x0026,\r
++      0x0036, 0x0156, 0x2011, 0x0263, 0x2204, 0x8211, 0x220c, 0x080c,\r
++      0x283e, 0x11d0, 0x080c, 0x65ff, 0x11b8, 0x2011, 0x0276, 0x20a9,\r
++      0x0004, 0x0096, 0x2b48, 0x2019, 0x000a, 0x080c, 0xbe1d, 0x009e,\r
++      0x1158, 0x2011, 0x027a, 0x20a9, 0x0004, 0x0096, 0x2b48, 0x2019,\r
++      0x0006, 0x080c, 0xbe1d, 0x009e, 0x015e, 0x003e, 0x002e, 0x001e,\r
++      0x000e, 0x00be, 0x0005, 0x00e6, 0x00c6, 0x0086, 0x0076, 0x0066,\r
++      0x0056, 0x0046, 0x0026, 0x0126, 0x2091, 0x8000, 0x2740, 0x2029,\r
++      0x19f0, 0x252c, 0x2021, 0x19f6, 0x2424, 0x2061, 0x1cd0, 0x2071,\r
++      0x1800, 0x7654, 0x7074, 0x81ff, 0x0150, 0x0006, 0x9186, 0x1ab0,\r
++      0x000e, 0x0128, 0x8001, 0x9602, 0x1a04, 0xe388, 0x0018, 0x9606,\r
++      0x0904, 0xe388, 0x080c, 0x8981, 0x0904, 0xe37f, 0x2100, 0x9c06,\r
++      0x0904, 0xe37f, 0x080c, 0xe5ef, 0x1904, 0xe37f, 0x080c, 0xe98d,\r
++      0x0904, 0xe37f, 0x080c, 0xe5df, 0x0904, 0xe37f, 0x6720, 0x9786,\r
++      0x0001, 0x1148, 0x080c, 0x3314, 0x0904, 0xe3c7, 0x6004, 0x9086,\r
++      0x0000, 0x1904, 0xe3c7, 0x9786, 0x0004, 0x0904, 0xe3c7, 0x9786,\r
++      0x0007, 0x0904, 0xe37f, 0x2500, 0x9c06, 0x0904, 0xe37f, 0x2400,\r
++      0x9c06, 0x05e8, 0x88ff, 0x0118, 0x6054, 0x9906, 0x15c0, 0x0096,\r
++      0x6000, 0x9086, 0x0004, 0x1120, 0x0016, 0x080c, 0x1a5e, 0x001e,\r
++      0x9786, 0x000a, 0x0148, 0x080c, 0xcd3b, 0x1130, 0x080c, 0xb813,\r
++      0x009e, 0x080c, 0xae92, 0x0418, 0x6014, 0x2048, 0x080c, 0xcb35,\r
++      0x01d8, 0x9786, 0x0003, 0x1570, 0xa867, 0x0103, 0xa87c, 0xd0cc,\r
++      0x0130, 0x0096, 0xa878, 0x2048, 0x080c, 0x0fb1, 0x009e, 0xab7a,\r
++      0xa877, 0x0000, 0x080c, 0xe908, 0x0016, 0x080c, 0xce24, 0x080c,\r
++      0x6c75, 0x001e, 0x080c, 0xcd1e, 0x009e, 0x080c, 0xae92, 0x9ce0,\r
++      0x0018, 0x2001, 0x181a, 0x2004, 0x9c02, 0x1210, 0x0804, 0xe2ff,\r
++      0x012e, 0x002e, 0x004e, 0x005e, 0x006e, 0x007e, 0x008e, 0x00ce,\r
++      0x00ee, 0x0005, 0x9786, 0x0006, 0x1150, 0x9386, 0x0005, 0x0128,\r
++      0x080c, 0xe908, 0x080c, 0xe551, 0x08f8, 0x009e, 0x0c00, 0x9786,\r
++      0x0009, 0x11f8, 0x6000, 0x9086, 0x0004, 0x01c0, 0x6000, 0x9086,\r
++      0x0003, 0x11a0, 0x080c, 0x963d, 0x0096, 0x6114, 0x2148, 0x080c,\r
++      0xcb35, 0x0118, 0x6010, 0x080c, 0x6c81, 0x009e, 0x00c6, 0x080c,\r
++      0xae61, 0x00ce, 0x0036, 0x080c, 0x97b9, 0x003e, 0x009e, 0x0804,\r
++      0xe37f, 0x9786, 0x000a, 0x0904, 0xe366, 0x0804, 0xe364, 0x81ff,\r
++      0x0904, 0xe37f, 0x9180, 0x0001, 0x2004, 0x9086, 0x0018, 0x0138,\r
++      0x9180, 0x0001, 0x2004, 0x9086, 0x002d, 0x1904, 0xe37f, 0x6000,\r
++      0x9086, 0x0002, 0x1904, 0xe37f, 0x080c, 0xcd2a, 0x0138, 0x080c,\r
++      0xcd3b, 0x1904, 0xe37f, 0x080c, 0xb813, 0x0038, 0x080c, 0x31e8,\r
++      0x080c, 0xcd3b, 0x1110, 0x080c, 0xb813, 0x080c, 0xae92, 0x0804,\r
++      0xe37f, 0xa864, 0x9084, 0x00ff, 0x9086, 0x0039, 0x0005, 0x00c6,\r
++      0x00e6, 0x0016, 0x2c08, 0x2170, 0x9006, 0x080c, 0xe578, 0x001e,\r
++      0x0120, 0x6020, 0x9084, 0x000f, 0x001b, 0x00ee, 0x00ce, 0x0005,\r
++      0xe416, 0xe416, 0xe416, 0xe416, 0xe416, 0xe416, 0xe418, 0xe416,\r
++      0xe416, 0xe416, 0xe416, 0xae92, 0xae92, 0xe416, 0x9006, 0x0005,\r
++      0x0036, 0x0046, 0x0016, 0x7010, 0x00b6, 0x2058, 0xbca0, 0x00be,\r
++      0x2c00, 0x2009, 0x0020, 0x080c, 0xe5ae, 0x001e, 0x004e, 0x2019,\r
++      0x0002, 0x080c, 0xe134, 0x003e, 0x9085, 0x0001, 0x0005, 0x0096,\r
++      0x080c, 0xcb35, 0x0140, 0x6014, 0x904d, 0x080c, 0xc768, 0x687b,\r
++      0x0005, 0x080c, 0x6c81, 0x009e, 0x080c, 0xae92, 0x9085, 0x0001,\r
++      0x0005, 0x2001, 0x0001, 0x080c, 0x653b, 0x0156, 0x0016, 0x0026,\r
++      0x0036, 0x20a9, 0x0004, 0x2019, 0x1805, 0x2011, 0x0276, 0x080c,\r
++      0xbe09, 0x003e, 0x002e, 0x001e, 0x015e, 0x9005, 0x0005, 0x00f6,\r
++      0x00e6, 0x00c6, 0x0086, 0x0076, 0x0066, 0x00b6, 0x0126, 0x2091,\r
++      0x8000, 0x2740, 0x2061, 0x1cd0, 0x2079, 0x0001, 0x8fff, 0x0904,\r
++      0xe4b1, 0x2071, 0x1800, 0x7654, 0x7074, 0x8001, 0x9602, 0x1a04,\r
++      0xe4b1, 0x88ff, 0x0120, 0x2800, 0x9c06, 0x1590, 0x2078, 0x080c,\r
++      0xe5df, 0x0570, 0x2400, 0x9c06, 0x0558, 0x6720, 0x9786, 0x0006,\r
++      0x1538, 0x9786, 0x0007, 0x0520, 0x88ff, 0x1140, 0x6010, 0x9b06,\r
++      0x11f8, 0x85ff, 0x0118, 0x6054, 0x9106, 0x11d0, 0x0096, 0x601c,\r
++      0xd084, 0x0140, 0x080c, 0xe80b, 0x080c, 0xd248, 0x080c, 0x1a5e,\r
++      0x6023, 0x0007, 0x6014, 0x2048, 0x080c, 0xcb35, 0x0120, 0x0046,\r
++      0x080c, 0xe551, 0x004e, 0x009e, 0x080c, 0xae92, 0x88ff, 0x1198,\r
++      0x9ce0, 0x0018, 0x2001, 0x181a, 0x2004, 0x9c02, 0x1210, 0x0804,\r
++      0xe466, 0x9006, 0x012e, 0x00be, 0x006e, 0x007e, 0x008e, 0x00ce,\r
++      0x00ee, 0x00fe, 0x0005, 0x98c5, 0x0001, 0x0ca0, 0x00b6, 0x0076,\r
++      0x0056, 0x0086, 0x9046, 0x2029, 0x0001, 0x2c20, 0x2019, 0x0002,\r
++      0x6210, 0x2258, 0x0096, 0x904e, 0x080c, 0xa69c, 0x009e, 0x008e,\r
++      0x903e, 0x080c, 0xa747, 0x080c, 0xe457, 0x005e, 0x007e, 0x00be,\r
++      0x0005, 0x00b6, 0x0046, 0x0056, 0x0076, 0x00c6, 0x0156, 0x2c20,\r
++      0x2128, 0x20a9, 0x007f, 0x900e, 0x0016, 0x0036, 0x080c, 0x65ff,\r
++      0x1190, 0x0056, 0x0086, 0x9046, 0x2508, 0x2029, 0x0001, 0x0096,\r
++      0x904e, 0x080c, 0xa69c, 0x009e, 0x008e, 0x903e, 0x080c, 0xa747,\r
++      0x080c, 0xe457, 0x005e, 0x003e, 0x001e, 0x8108, 0x1f04, 0xe4e4,\r
++      0x015e, 0x00ce, 0x007e, 0x005e, 0x004e, 0x00be, 0x0005, 0x00b6,\r
++      0x0076, 0x0056, 0x6210, 0x2258, 0x0086, 0x9046, 0x2029, 0x0001,\r
++      0x2019, 0x0048, 0x0096, 0x904e, 0x080c, 0xa69c, 0x009e, 0x008e,\r
++      0x903e, 0x080c, 0xa747, 0x2c20, 0x080c, 0xe457, 0x005e, 0x007e,\r
++      0x00be, 0x0005, 0x00b6, 0x0046, 0x0056, 0x0076, 0x00c6, 0x0156,\r
++      0x2c20, 0x20a9, 0x0800, 0x900e, 0x0016, 0x0036, 0x080c, 0x65ff,\r
++      0x11a0, 0x0086, 0x9046, 0x2828, 0x0046, 0x2021, 0x0001, 0x080c,\r
++      0xe7ef, 0x004e, 0x0096, 0x904e, 0x080c, 0xa69c, 0x009e, 0x008e,\r
++      0x903e, 0x080c, 0xa747, 0x080c, 0xe457, 0x003e, 0x001e, 0x8108,\r
++      0x1f04, 0xe52c, 0x015e, 0x00ce, 0x007e, 0x005e, 0x004e, 0x00be,\r
++      0x0005, 0x0016, 0x00f6, 0x080c, 0xcb33, 0x0198, 0xa864, 0x9084,\r
++      0x00ff, 0x9086, 0x0046, 0x0180, 0xa800, 0x907d, 0x0138, 0xa803,\r
++      0x0000, 0xab82, 0x080c, 0x6c81, 0x2f48, 0x0cb0, 0xab82, 0x080c,\r
++      0x6c81, 0x00fe, 0x001e, 0x0005, 0xa800, 0x907d, 0x0130, 0xa803,\r
++      0x0000, 0x080c, 0x6c81, 0x2f48, 0x0cb8, 0x080c, 0x6c81, 0x0c88,\r
++      0x00e6, 0x0046, 0x0036, 0x2061, 0x1cd0, 0x9005, 0x1138, 0x2071,\r
++      0x1800, 0x7454, 0x7074, 0x8001, 0x9402, 0x12f8, 0x2100, 0x9c06,\r
++      0x0188, 0x6000, 0x9086, 0x0000, 0x0168, 0x6008, 0x9206, 0x1150,\r
++      0x6320, 0x9386, 0x0009, 0x01b0, 0x6010, 0x91a0, 0x0004, 0x2424,\r
++      0x9406, 0x0140, 0x9ce0, 0x0018, 0x2001, 0x181a, 0x2004, 0x9c02,\r
++      0x1220, 0x0c20, 0x9085, 0x0001, 0x0008, 0x9006, 0x003e, 0x004e,\r
++      0x00ee, 0x0005, 0x631c, 0xd3c4, 0x1d68, 0x0c30, 0x0096, 0x0006,\r
++      0x080c, 0x0fff, 0x000e, 0x090c, 0x0dd5, 0xaae2, 0xa867, 0x010d,\r
++      0xa88e, 0x0026, 0x2010, 0x080c, 0xcb23, 0x2001, 0x0000, 0x0120,\r
++      0x2200, 0x9080, 0x0015, 0x2004, 0x002e, 0xa87a, 0x9186, 0x0020,\r
++      0x0110, 0xa8e3, 0xffff, 0xa986, 0xac76, 0xa87f, 0x0000, 0x2001,\r
++      0x198e, 0x2004, 0xa882, 0x9006, 0xa802, 0xa86a, 0xa88a, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0x6c81, 0x012e, 0x009e, 0x0005, 0x6700,\r
++      0x9786, 0x0000, 0x0158, 0x9786, 0x0001, 0x0140, 0x9786, 0x000a,\r
++      0x0128, 0x9786, 0x0009, 0x0110, 0x9085, 0x0001, 0x0005, 0x00e6,\r
++      0x6010, 0x9075, 0x0138, 0x00b6, 0x2058, 0xb8a0, 0x00be, 0x9206,\r
++      0x00ee, 0x0005, 0x9085, 0x0001, 0x0cd8, 0x0016, 0x6004, 0x908e,\r
++      0x001e, 0x11a0, 0x8007, 0x6134, 0x918c, 0x00ff, 0x9105, 0x6036,\r
++      0x6007, 0x0085, 0x6003, 0x000b, 0x6023, 0x0005, 0x2001, 0x1987,\r
++      0x2004, 0x601a, 0x080c, 0x90f0, 0x080c, 0x968d, 0x001e, 0x0005,\r
++      0xa001, 0xa001, 0x0005, 0x6024, 0xd0e4, 0x0158, 0xd0cc, 0x0118,\r
++      0x080c, 0xce68, 0x0030, 0x080c, 0xe80b, 0x080c, 0x86b2, 0x080c,\r
++      0xae61, 0x0005, 0x9280, 0x0008, 0x2004, 0x9084, 0x000f, 0x0002,\r
++      0xe63e, 0xe63e, 0xe63e, 0xe640, 0xe63e, 0xe640, 0xe640, 0xe63e,\r
++      0xe640, 0xe63e, 0xe63e, 0xe63e, 0xe63e, 0xe63e, 0x9006, 0x0005,\r
++      0x9085, 0x0001, 0x0005, 0x9280, 0x0008, 0x2004, 0x9084, 0x000f,\r
++      0x0002, 0xe657, 0xe657, 0xe657, 0xe657, 0xe657, 0xe657, 0xe664,\r
++      0xe657, 0xe657, 0xe657, 0xe657, 0xe657, 0xe657, 0xe657, 0x6007,\r
++      0x003b, 0x602f, 0x0009, 0x6017, 0x2a00, 0x6003, 0x0001, 0x080c,\r
++      0x90f0, 0x080c, 0x968d, 0x0005, 0x0096, 0x00c6, 0x2260, 0x080c,\r
++      0xe80b, 0x6043, 0x0000, 0x6024, 0xc0f4, 0xc0e4, 0x6026, 0x603b,\r
++      0x0000, 0x00ce, 0x00d6, 0x2268, 0x9186, 0x0007, 0x1904, 0xe6bd,\r
++      0x6814, 0x9005, 0x0138, 0x2048, 0xa87c, 0xd0fc, 0x1118, 0x00de,\r
++      0x009e, 0x08a8, 0x6007, 0x003a, 0x6003, 0x0001, 0x080c, 0x90f0,\r
++      0x080c, 0x968d, 0x00c6, 0x2d60, 0x6100, 0x9186, 0x0002, 0x1904,\r
++      0xe734, 0x6014, 0x9005, 0x1138, 0x6000, 0x9086, 0x0007, 0x190c,\r
++      0x0dd5, 0x0804, 0xe734, 0x2048, 0x080c, 0xcb35, 0x1130, 0x0028,\r
++      0x2048, 0xa800, 0x9005, 0x1de0, 0x2900, 0x2048, 0xa87c, 0x9084,\r
++      0x0003, 0x9086, 0x0002, 0x1168, 0xa87c, 0xc0dc, 0xc0f4, 0xa87e,\r
++      0xa880, 0xc0fc, 0xa882, 0x2009, 0x0043, 0x080c, 0xdf8d, 0x0804,\r
++      0xe734, 0x2009, 0x0041, 0x0804, 0xe72e, 0x9186, 0x0005, 0x15a0,\r
++      0x6814, 0x2048, 0xa87c, 0xd0bc, 0x1120, 0x00de, 0x009e, 0x0804,\r
++      0xe657, 0xd0b4, 0x0128, 0xd0fc, 0x090c, 0x0dd5, 0x0804, 0xe678,\r
++      0x6007, 0x003a, 0x6003, 0x0001, 0x080c, 0x90f0, 0x080c, 0x968d,\r
++      0x00c6, 0x2d60, 0x6100, 0x9186, 0x0002, 0x0120, 0x9186, 0x0004,\r
++      0x1904, 0xe734, 0x6814, 0x2048, 0xa97c, 0xc1f4, 0xc1dc, 0xa97e,\r
++      0xa980, 0xc1fc, 0xc1bc, 0xa982, 0x00f6, 0x2c78, 0x080c, 0x1725,\r
++      0x00fe, 0x2009, 0x0042, 0x04d0, 0x0036, 0x080c, 0x0fff, 0x090c,\r
++      0x0dd5, 0xa867, 0x010d, 0x9006, 0xa802, 0xa86a, 0xa88a, 0x2d18,\r
++      0xab8e, 0xa887, 0x0045, 0x2c00, 0xa892, 0x6038, 0xa8a2, 0x2360,\r
++      0x6024, 0xc0dd, 0x6026, 0x6010, 0x00b6, 0x2058, 0xb8a0, 0x00be,\r
++      0x2004, 0x6354, 0xab7a, 0xa876, 0x9006, 0xa87e, 0xa882, 0xad9a,\r
++      0xae96, 0xa89f, 0x0001, 0x080c, 0x6c81, 0x2019, 0x0045, 0x6008,\r
++      0x2068, 0x080c, 0xe134, 0x2d00, 0x600a, 0x6023, 0x0006, 0x6003,\r
++      0x0007, 0x901e, 0x631a, 0x6342, 0x003e, 0x0038, 0x6043, 0x0000,\r
++      0x6003, 0x0007, 0x080c, 0xdf8d, 0x00ce, 0x00de, 0x009e, 0x0005,\r
++      0x9186, 0x0013, 0x1128, 0x6004, 0x9082, 0x0085, 0x2008, 0x00c2,\r
++      0x9186, 0x0027, 0x1178, 0x080c, 0x9588, 0x0036, 0x0096, 0x6014,\r
++      0x2048, 0x2019, 0x0004, 0x080c, 0xe551, 0x009e, 0x003e, 0x080c,\r
++      0x968d, 0x0005, 0x9186, 0x0014, 0x0d70, 0x080c, 0xaef7, 0x0005,\r
++      0xe767, 0xe765, 0xe765, 0xe765, 0xe765, 0xe765, 0xe767, 0xe765,\r
++      0xe765, 0xe765, 0xe765, 0xe765, 0xe765, 0x080c, 0x0dd5, 0x080c,\r
++      0x9588, 0x6003, 0x000c, 0x080c, 0x968d, 0x0005, 0x9182, 0x0092,\r
++      0x1220, 0x9182, 0x0085, 0x0208, 0x001a, 0x080c, 0xaef7, 0x0005,\r
++      0xe785, 0xe785, 0xe785, 0xe785, 0xe787, 0xe7a7, 0xe785, 0xe785,\r
++      0xe785, 0xe785, 0xe785, 0xe785, 0xe785, 0x080c, 0x0dd5, 0x00d6,\r
++      0x2c68, 0x080c, 0xae0b, 0x01b0, 0x6003, 0x0001, 0x6007, 0x001e,\r
++      0x2009, 0x026e, 0x210c, 0x613a, 0x2009, 0x026f, 0x210c, 0x613e,\r
++      0x600b, 0xffff, 0x6910, 0x6112, 0x6023, 0x0004, 0x080c, 0x90f0,\r
++      0x080c, 0x968d, 0x2d60, 0x080c, 0xae61, 0x00de, 0x0005, 0x080c,\r
++      0xae61, 0x0005, 0x00e6, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be,\r
++      0xd0ec, 0x00ee, 0x0005, 0x2009, 0x1867, 0x210c, 0xd1ec, 0x05b0,\r
++      0x6003, 0x0002, 0x6024, 0xc0e5, 0x6026, 0xd0cc, 0x0150, 0x2001,\r
++      0x1988, 0x2004, 0x6042, 0x2009, 0x1867, 0x210c, 0xd1f4, 0x1520,\r
++      0x00a0, 0x2009, 0x1867, 0x210c, 0xd1f4, 0x0128, 0x6024, 0xc0e4,\r
++      0x6026, 0x9006, 0x00d8, 0x2001, 0x1988, 0x200c, 0x2001, 0x1986,\r
++      0x2004, 0x9100, 0x9080, 0x000a, 0x6042, 0x6010, 0x00b6, 0x2058,\r
++      0xb8bc, 0x00be, 0x0008, 0x2104, 0x9005, 0x0118, 0x9088, 0x0003,\r
++      0x0cd0, 0x2c0a, 0x600f, 0x0000, 0x9085, 0x0001, 0x0005, 0x0016,\r
++      0x00c6, 0x00e6, 0x6154, 0xb8bc, 0x2060, 0x8cff, 0x0180, 0x84ff,\r
++      0x1118, 0x6054, 0x9106, 0x1138, 0x600c, 0x2072, 0x080c, 0x86b2,\r
++      0x080c, 0xae61, 0x0010, 0x9cf0, 0x0003, 0x2e64, 0x0c70, 0x00ee,\r
++      0x00ce, 0x001e, 0x0005, 0x00d6, 0x00b6, 0x6010, 0x2058, 0xb8bc,\r
++      0x2068, 0x9005, 0x0130, 0x9c06, 0x0110, 0x680c, 0x0cd0, 0x600c,\r
++      0x680e, 0x00be, 0x00de, 0x0005, 0x0026, 0x0036, 0x0156, 0x2011,\r
++      0x182c, 0x2204, 0x9084, 0x00ff, 0x2019, 0x026e, 0x2334, 0x9636,\r
++      0x1508, 0x8318, 0x2334, 0x2204, 0x9084, 0xff00, 0x9636, 0x11d0,\r
++      0x2011, 0x0270, 0x20a9, 0x0004, 0x6010, 0x0096, 0x2048, 0x2019,\r
++      0x000a, 0x080c, 0xbe1d, 0x009e, 0x1168, 0x2011, 0x0274, 0x20a9,\r
++      0x0004, 0x6010, 0x0096, 0x2048, 0x2019, 0x0006, 0x080c, 0xbe1d,\r
++      0x009e, 0x1100, 0x015e, 0x003e, 0x002e, 0x0005, 0x00e6, 0x2071,\r
++      0x1800, 0x080c, 0x5fad, 0x080c, 0x2f96, 0x00ee, 0x0005, 0x0096,\r
++      0x0026, 0x080c, 0x0fff, 0x090c, 0x0dd5, 0xa85c, 0x9080, 0x001a,\r
++      0x20a0, 0x20a9, 0x000c, 0xa860, 0x20e8, 0x9006, 0x4004, 0x9186,\r
++      0x0046, 0x1118, 0xa867, 0x0136, 0x0038, 0xa867, 0x0138, 0x9186,\r
++      0x0041, 0x0110, 0xa87b, 0x0001, 0x7038, 0x9084, 0xff00, 0x7240,\r
++      0x9294, 0xff00, 0x8007, 0x9215, 0xaa9a, 0x9186, 0x0046, 0x1168,\r
++      0x7038, 0x9084, 0x00ff, 0x723c, 0x9294, 0xff00, 0x9215, 0xaa9e,\r
++      0x723c, 0x9294, 0x00ff, 0xaaa2, 0x0060, 0x7040, 0x9084, 0x00ff,\r
++      0x7244, 0x9294, 0xff00, 0x9215, 0xaa9e, 0x7244, 0x9294, 0x00ff,\r
++      0xaaa2, 0x9186, 0x0046, 0x1118, 0x9e90, 0x0012, 0x0010, 0x9e90,\r
++      0x001a, 0x2204, 0x8007, 0xa8a6, 0x8210, 0x2204, 0x8007, 0xa8aa,\r
++      0x8210, 0x2204, 0x8007, 0xa8ae, 0x8210, 0x2204, 0x8007, 0xa8b2,\r
++      0x8210, 0x9186, 0x0046, 0x11b8, 0x9e90, 0x0016, 0x2204, 0x8007,\r
++      0xa8b6, 0x8210, 0x2204, 0x8007, 0xa8ba, 0x8210, 0x2204, 0x8007,\r
++      0xa8be, 0x8210, 0x2204, 0x8007, 0xa8c2, 0x8210, 0x2011, 0x0205,\r
++      0x2013, 0x0001, 0x00b0, 0x9e90, 0x001e, 0x2204, 0x8007, 0xa8b6,\r
++      0x8210, 0x2204, 0x8007, 0xa8ba, 0x2011, 0x0205, 0x2013, 0x0001,\r
++      0x2011, 0x0260, 0x2204, 0x8007, 0xa8be, 0x8210, 0x2204, 0x8007,\r
++      0xa8c2, 0x9186, 0x0046, 0x1118, 0x2011, 0x0262, 0x0010, 0x2011,\r
++      0x026a, 0x0146, 0x01d6, 0x0036, 0x20a9, 0x0001, 0x2019, 0x0008,\r
++      0xa860, 0x20e8, 0xa85c, 0x9080, 0x0031, 0x20a0, 0x2204, 0x8007,\r
++      0x4004, 0x8210, 0x8319, 0x1dd0, 0x003e, 0x01ce, 0x013e, 0x2011,\r
++      0x0205, 0x2013, 0x0000, 0x002e, 0x080c, 0x6c81, 0x009e, 0x0005,\r
++      0x00e6, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0fc, 0x0108,\r
++      0x0011, 0x00ee, 0x0005, 0xa880, 0xc0e5, 0xa882, 0x0005, 0x00e6,\r
++      0x00d6, 0x00c6, 0x0076, 0x0066, 0x0056, 0x0046, 0x0026, 0x0016,\r
++      0x0126, 0x2091, 0x8000, 0x2029, 0x19f0, 0x252c, 0x2021, 0x19f6,\r
++      0x2424, 0x2061, 0x1cd0, 0x2071, 0x1800, 0x7654, 0x7074, 0x9606,\r
++      0x0578, 0x6720, 0x9786, 0x0001, 0x0118, 0x9786, 0x0008, 0x1500,\r
++      0x2500, 0x9c06, 0x01e8, 0x2400, 0x9c06, 0x01d0, 0x080c, 0xe5df,\r
++      0x01b8, 0x080c, 0xe5ef, 0x11a0, 0x6000, 0x9086, 0x0004, 0x1120,\r
++      0x0016, 0x080c, 0x1a5e, 0x001e, 0x080c, 0xcd2a, 0x1110, 0x080c,\r
++      0x31e8, 0x080c, 0xcd3b, 0x1110, 0x080c, 0xb813, 0x080c, 0xae92,\r
++      0x9ce0, 0x0018, 0x2001, 0x181a, 0x2004, 0x9c02, 0x1208, 0x0858,\r
++      0x012e, 0x001e, 0x002e, 0x004e, 0x005e, 0x006e, 0x007e, 0x00ce,\r
++      0x00de, 0x00ee, 0x0005, 0x2001, 0x1810, 0x2004, 0xd0dc, 0x0005,\r
++      0x0006, 0x2001, 0x1837, 0x2004, 0xd09c, 0x000e, 0x0005, 0x0006,\r
++      0x0036, 0x0046, 0x080c, 0xd230, 0x0168, 0x2019, 0xffff, 0x9005,\r
++      0x0128, 0x6010, 0x00b6, 0x2058, 0xbba0, 0x00be, 0x2021, 0x0004,\r
++      0x080c, 0x4cbb, 0x004e, 0x003e, 0x000e, 0x6004, 0x9086, 0x0001,\r
++      0x1128, 0x080c, 0xa808, 0x080c, 0xae92, 0x9006, 0x0005, 0x00e6,\r
++      0x00c6, 0x00b6, 0x0046, 0x2061, 0x1cd0, 0x2071, 0x1800, 0x7454,\r
++      0x7074, 0x8001, 0x9402, 0x12b8, 0x2100, 0x9c06, 0x0148, 0x6000,\r
++      0x9086, 0x0000, 0x0128, 0x6010, 0x2058, 0xb8a0, 0x9206, 0x0140,\r
++      0x9ce0, 0x0018, 0x2001, 0x181a, 0x2004, 0x9c02, 0x1220, 0x0c60,\r
++      0x9085, 0x0001, 0x0008, 0x9006, 0x004e, 0x00be, 0x00ce, 0x00ee,\r
++      0x0005, 0x0126, 0x0006, 0x00e6, 0x0016, 0x2091, 0x8000, 0x2071,\r
++      0x1840, 0xd5a4, 0x0118, 0x7004, 0x8000, 0x7006, 0xd5b4, 0x0118,\r
++      0x7000, 0x8000, 0x7002, 0xd5ac, 0x0178, 0x2500, 0x9084, 0x0007,\r
++      0x908e, 0x0003, 0x0148, 0x908e, 0x0004, 0x0130, 0x908e, 0x0005,\r
++      0x0118, 0x2071, 0xfffe, 0x0089, 0x001e, 0x00ee, 0x000e, 0x012e,\r
++      0x0005, 0x0126, 0x0006, 0x00e6, 0x2091, 0x8000, 0x2071, 0xfff6,\r
++      0x0021, 0x00ee, 0x000e, 0x012e, 0x0005, 0x2e05, 0x8000, 0x2077,\r
++      0x1220, 0x8e70, 0x2e05, 0x8000, 0x2077, 0x0005, 0x00e6, 0x2071,\r
++      0xfff4, 0x0c99, 0x00ee, 0x0005, 0x00e6, 0x2071, 0xfff8, 0x0c69,\r
++      0x00ee, 0x0005, 0x0126, 0x0006, 0x00e6, 0x2091, 0x8000, 0x2071,\r
++      0x1840, 0x7014, 0x8000, 0x7016, 0x00ee, 0x000e, 0x012e, 0x0005,\r
++      0x0003, 0x000b, 0x079e, 0x0000, 0xc000, 0x0001, 0x8064, 0x0008,\r
++      0x0010, 0x0000, 0x8066, 0x0000, 0x0101, 0x0008, 0x4407, 0x0003,\r
++      0x8060, 0x0000, 0x0400, 0x0000, 0x580d, 0x000b, 0x79a8, 0x000b,\r
++      0x50ee, 0x000b, 0x4c0a, 0x0003, 0xbac0, 0x0009, 0x008a, 0x0000,\r
++      0x0c0a, 0x000b, 0x15fe, 0x0008, 0x340a, 0x0003, 0xc4c0, 0x0009,\r
++      0x7000, 0x0000, 0xffa0, 0x0001, 0x2000, 0x0000, 0x1668, 0x000b,\r
++      0x808c, 0x0008, 0x0001, 0x0000, 0x0000, 0x0007, 0x4028, 0x0000,\r
++      0x4047, 0x000a, 0x808c, 0x0008, 0x0002, 0x0000, 0x0822, 0x0003,\r
++      0x4022, 0x0000, 0x0028, 0x000b, 0x4122, 0x0008, 0x94c0, 0x0009,\r
++      0xff00, 0x0008, 0xffe0, 0x0009, 0x0500, 0x0008, 0x0a93, 0x000b,\r
++      0x4447, 0x0002, 0x0e90, 0x0003, 0x0bfe, 0x0008, 0x11a0, 0x0001,\r
++      0x126e, 0x0003, 0x0ca0, 0x0001, 0x126e, 0x0003, 0x9180, 0x0001,\r
++      0x0004, 0x0000, 0x8060, 0x0000, 0x0400, 0x0000, 0x7f62, 0x0008,\r
++      0x8066, 0x0000, 0x0009, 0x0008, 0x4436, 0x000b, 0x808c, 0x0008,\r
++      0x0000, 0x0008, 0x0060, 0x0008, 0x8062, 0x0008, 0x0004, 0x0000,\r
++      0x8066, 0x0000, 0x0411, 0x0000, 0x443e, 0x0003, 0x03fe, 0x0000,\r
++      0x43e0, 0x0001, 0x0e6b, 0x000b, 0xc2c0, 0x0009, 0x00ff, 0x0008,\r
++      0x02e0, 0x0001, 0x0e6b, 0x000b, 0x9180, 0x0001, 0x0005, 0x0008,\r
++      0x8060, 0x0000, 0x0400, 0x0000, 0x7f62, 0x0008, 0x8066, 0x0000,\r
++      0x0019, 0x0000, 0x444d, 0x000b, 0x0240, 0x0002, 0x0a68, 0x0003,\r
++      0x00fe, 0x0000, 0x326b, 0x000b, 0x0248, 0x000a, 0x085c, 0x0003,\r
++      0x9180, 0x0001, 0x0006, 0x0008, 0x7f62, 0x0008, 0x8002, 0x0008,\r
++      0x0003, 0x0008, 0x8066, 0x0000, 0x020a, 0x0000, 0x445b, 0x0003,\r
++      0x112a, 0x0000, 0x002e, 0x0008, 0x022c, 0x0008, 0x3a44, 0x0002,\r
++      0x0c0a, 0x000b, 0x808c, 0x0008, 0x0002, 0x0000, 0x1760, 0x0008,\r
++      0x8062, 0x0008, 0x000f, 0x0008, 0x8066, 0x0000, 0x0011, 0x0008,\r
++      0x4468, 0x0003, 0x01fe, 0x0008, 0x42e0, 0x0009, 0x0e5c, 0x0003,\r
++      0x00fe, 0x0000, 0x43e0, 0x0001, 0x0e5c, 0x0003, 0x1734, 0x0000,\r
++      0x1530, 0x0000, 0x1632, 0x0008, 0x0d2a, 0x0008, 0x9880, 0x0001,\r
++      0x0010, 0x0000, 0x8060, 0x0000, 0x0400, 0x0000, 0x7f62, 0x0008,\r
++      0x8066, 0x0000, 0x1e0a, 0x0008, 0x447a, 0x0003, 0x808a, 0x0008,\r
++      0x0003, 0x0008, 0x1a60, 0x0000, 0x8062, 0x0008, 0x0002, 0x0000,\r
++      0x5880, 0x000b, 0x8066, 0x0000, 0x3679, 0x0000, 0x4483, 0x0003,\r
++      0x5884, 0x0003, 0x3efe, 0x0008, 0x7f4f, 0x0002, 0x088a, 0x000b,\r
++      0x0d00, 0x0000, 0x0092, 0x000c, 0x8054, 0x0008, 0x0011, 0x0008,\r
++      0x8074, 0x0000, 0x1010, 0x0008, 0x1efe, 0x0000, 0x300a, 0x000b,\r
++      0x00c8, 0x000c, 0x000a, 0x000b, 0x00fe, 0x0000, 0x349a, 0x0003,\r
++      0x1a60, 0x0000, 0x8062, 0x0008, 0x0007, 0x0000, 0x8066, 0x0000,\r
++      0x0231, 0x0008, 0x4499, 0x000b, 0x03fe, 0x0000, 0x04d0, 0x0001,\r
++      0x0cc0, 0x000b, 0x82c0, 0x0001, 0x1f00, 0x0000, 0xffa0, 0x0001,\r
++      0x0400, 0x0000, 0x08af, 0x0003, 0x14c0, 0x000b, 0x01fe, 0x0008,\r
++      0x0580, 0x0009, 0x7f06, 0x0000, 0x02fe, 0x0008, 0xffc0, 0x0001,\r
++      0x00ff, 0x0008, 0x0690, 0x0001, 0x10af, 0x0003, 0x7f08, 0x0008,\r
++      0x84c0, 0x0001, 0xff00, 0x0008, 0x08c0, 0x0003, 0x00fe, 0x0000,\r
++      0x34b6, 0x000b, 0x8072, 0x0000, 0x1010, 0x0008, 0x3944, 0x0002,\r
++      0x08b1, 0x0003, 0x00ba, 0x0003, 0x8072, 0x0000, 0x2020, 0x0008,\r
++      0x3945, 0x000a, 0x08b6, 0x000b, 0x3946, 0x000a, 0x0cc7, 0x0003,\r
++      0x0000, 0x0007, 0x3943, 0x000a, 0x08c7, 0x000b, 0x00ba, 0x0003,\r
++      0x00fe, 0x0000, 0x34c5, 0x0003, 0x8072, 0x0000, 0x1000, 0x0000,\r
++      0x00c7, 0x0003, 0x8072, 0x0000, 0x2000, 0x0000, 0x4000, 0x000f,\r
++      0x1c60, 0x0000, 0x1b62, 0x0000, 0x8066, 0x0000, 0x0231, 0x0008,\r
++      0x44cc, 0x000b, 0x58cd, 0x000b, 0x0140, 0x0008, 0x0242, 0x0000,\r
++      0x1f43, 0x0002, 0x0cdb, 0x000b, 0x0d44, 0x0000, 0x0d46, 0x0008,\r
++      0x0348, 0x0008, 0x044a, 0x0008, 0x030a, 0x0008, 0x040c, 0x0000,\r
++      0x0d06, 0x0000, 0x0d08, 0x0008, 0x00df, 0x0003, 0x0344, 0x0008,\r
++      0x0446, 0x0008, 0x0548, 0x0008, 0x064a, 0x0000, 0x1948, 0x000a,\r
++      0x08e2, 0x0003, 0x0d4a, 0x0008, 0x58e2, 0x0003, 0x3efe, 0x0008,\r
++      0x7f4f, 0x0002, 0x08e9, 0x000b, 0x8000, 0x0000, 0x0001, 0x0000,\r
++      0x0092, 0x000c, 0x8054, 0x0008, 0x0001, 0x0000, 0x8074, 0x0000,\r
++      0x2020, 0x0008, 0x4000, 0x000f, 0x3a40, 0x000a, 0x0c0d, 0x0003,\r
++      0x2b24, 0x0008, 0x2b24, 0x0008, 0x58f2, 0x000b, 0x8054, 0x0008,\r
++      0x0002, 0x0000, 0x1242, 0x0002, 0x0940, 0x0003, 0x3a45, 0x000a,\r
++      0x092f, 0x0003, 0x8072, 0x0000, 0x1000, 0x0000, 0x3945, 0x000a,\r
++      0x08ff, 0x0003, 0x8072, 0x0000, 0x3010, 0x0000, 0x1e10, 0x000a,\r
++      0x7f3c, 0x0000, 0x092a, 0x0003, 0x1d00, 0x0002, 0x7f3a, 0x0000,\r
++      0x0d60, 0x0000, 0x7f62, 0x0008, 0x8066, 0x0000, 0x0009, 0x0008,\r
++      0x4508, 0x000b, 0x00fe, 0x0000, 0x3527, 0x000b, 0x1c60, 0x0000,\r
++      0x8062, 0x0008, 0x0001, 0x0000, 0x8066, 0x0000, 0x0009, 0x0008,\r
++      0x4510, 0x000b, 0x00fe, 0x0000, 0x3243, 0x000b, 0x0038, 0x0000,\r
++      0x0060, 0x0008, 0x8062, 0x0008, 0x0019, 0x0000, 0x8066, 0x0000,\r
++      0x0009, 0x0008, 0x4519, 0x000b, 0x80c0, 0x0009, 0x00ff, 0x0008,\r
++      0x7f3e, 0x0008, 0x0d60, 0x0000, 0x0efe, 0x0008, 0x1f80, 0x0001,\r
++      0x7f62, 0x0008, 0x8066, 0x0000, 0x0009, 0x0008, 0x4523, 0x000b,\r
++      0x003a, 0x0008, 0x1dfe, 0x0000, 0x0104, 0x000b, 0x0036, 0x0008,\r
++      0x00c8, 0x000c, 0x0140, 0x000b, 0x8074, 0x0000, 0x2000, 0x0000,\r
++      0x8072, 0x0000, 0x2000, 0x0000, 0x0140, 0x000b, 0x3a44, 0x0002,\r
++      0x0a71, 0x000b, 0x8074, 0x0000, 0x1000, 0x0000, 0x8072, 0x0000,\r
++      0x1000, 0x0000, 0x2d0e, 0x0000, 0x2d0e, 0x0000, 0x3640, 0x0003,\r
++      0x26fe, 0x0008, 0x26fe, 0x0008, 0x2700, 0x0008, 0x2700, 0x0008,\r
++      0x00d0, 0x0009, 0x0d52, 0x000b, 0x8074, 0x0000, 0x4040, 0x0008,\r
++      0x5940, 0x0003, 0x50ee, 0x000b, 0x3a46, 0x000a, 0x0d52, 0x000b,\r
++      0x3a47, 0x0002, 0x094d, 0x000b, 0x8054, 0x0008, 0x0004, 0x0000,\r
++      0x8074, 0x0000, 0x8000, 0x0000, 0x8072, 0x0000, 0x3000, 0x0008,\r
++      0x019c, 0x0003, 0x92c0, 0x0009, 0x0fc8, 0x0000, 0x080a, 0x0003,\r
++      0x1246, 0x000a, 0x0e3a, 0x0003, 0x1a60, 0x0000, 0x8062, 0x0008,\r
++      0x0002, 0x0000, 0x8066, 0x0000, 0x362a, 0x0000, 0x4557, 0x000b,\r
++      0x2000, 0x0000, 0x2000, 0x0000, 0x2102, 0x0000, 0x2102, 0x0000,\r
++      0x2204, 0x0000, 0x2204, 0x0000, 0x2306, 0x0000, 0x2306, 0x0000,\r
++      0x2408, 0x0000, 0x2408, 0x0000, 0x250a, 0x0000, 0x250a, 0x0000,\r
++      0x260c, 0x0000, 0x260c, 0x0000, 0x270e, 0x0000, 0x270e, 0x0000,\r
++      0x2810, 0x0000, 0x2810, 0x0000, 0x2912, 0x0000, 0x2912, 0x0000,\r
++      0x1a60, 0x0000, 0x8062, 0x0008, 0x0007, 0x0000, 0x8066, 0x0000,\r
++      0x0052, 0x0000, 0x4571, 0x0003, 0x92c0, 0x0009, 0x0780, 0x0008,\r
++      0x0e56, 0x0003, 0x124b, 0x0002, 0x097a, 0x0003, 0x2e4d, 0x0002,\r
++      0x2e4d, 0x0002, 0x0a40, 0x0003, 0x3a46, 0x000a, 0x0d8a, 0x000b,\r
++      0x597c, 0x0003, 0x8054, 0x0008, 0x0004, 0x0000, 0x1243, 0x000a,\r
++      0x0998, 0x0003, 0x8010, 0x0008, 0x000d, 0x0000, 0x021b, 0x000c,\r
++      0x1948, 0x000a, 0x0987, 0x000b, 0x0210, 0x0004, 0x1810, 0x0000,\r
++      0x021b, 0x000c, 0x0198, 0x000b, 0x1948, 0x000a, 0x098e, 0x000b,\r
++      0x1243, 0x000a, 0x0a43, 0x0003, 0x194d, 0x000a, 0x0992, 0x0003,\r
++      0x1243, 0x000a, 0x0a4a, 0x0003, 0x5992, 0x0003, 0x8054, 0x0008,\r
++      0x0004, 0x0000, 0x0210, 0x0004, 0x1810, 0x0000, 0x021b, 0x000c,\r
++      0x8074, 0x0000, 0xf000, 0x0008, 0x8072, 0x0000, 0x3000, 0x0008,\r
++      0x0d30, 0x0000, 0x3a42, 0x0002, 0x0da2, 0x000b, 0x15fe, 0x0008,\r
++      0x3461, 0x000b, 0x000a, 0x000b, 0x8074, 0x0000, 0x0501, 0x0000,\r
++      0x8010, 0x0008, 0x000c, 0x0008, 0x021b, 0x000c, 0x000a, 0x000b,\r
++      0xbbe0, 0x0009, 0x0030, 0x0008, 0x0db8, 0x0003, 0x18fe, 0x0000,\r
++      0x3ce0, 0x0009, 0x09b5, 0x0003, 0x15fe, 0x0008, 0x3ce0, 0x0009,\r
++      0x09b5, 0x0003, 0x020b, 0x0004, 0x8076, 0x0008, 0x0040, 0x0000,\r
++      0x0208, 0x000b, 0x8076, 0x0008, 0x0041, 0x0008, 0x0208, 0x000b,\r
++      0xbbe0, 0x0009, 0x0032, 0x0000, 0x0dbd, 0x0003, 0x3c1e, 0x0008,\r
++      0x0208, 0x000b, 0xbbe0, 0x0009, 0x003b, 0x0000, 0x0dc2, 0x000b,\r
++      0x3c20, 0x0000, 0x0208, 0x000b, 0xbbe0, 0x0009, 0x0035, 0x0008,\r
++      0x0dc8, 0x000b, 0x8072, 0x0000, 0x8000, 0x0000, 0x0384, 0x000b,\r
++      0xbbe0, 0x0009, 0x0036, 0x0008, 0x0aa5, 0x000b, 0xbbe0, 0x0009,\r
++      0x0037, 0x0000, 0x0de9, 0x000b, 0x18fe, 0x0000, 0x3ce0, 0x0009,\r
++      0x0db5, 0x000b, 0x8076, 0x0008, 0x0040, 0x0000, 0x1a60, 0x0000,\r
++      0x8062, 0x0008, 0x000d, 0x0000, 0x2604, 0x0008, 0x2604, 0x0008,\r
++      0x2706, 0x0008, 0x2706, 0x0008, 0x2808, 0x0000, 0x2808, 0x0000,\r
++      0x290a, 0x0000, 0x290a, 0x0000, 0x8066, 0x0000, 0x0422, 0x0000,\r
++      0x45e0, 0x000b, 0x0210, 0x0004, 0x8054, 0x0008, 0x0004, 0x0000,\r
++      0x8074, 0x0000, 0xf000, 0x0008, 0x8072, 0x0000, 0xb000, 0x0000,\r
++      0x019c, 0x0003, 0xbbe0, 0x0009, 0x0038, 0x0000, 0x0dfb, 0x000b,\r
++      0x18fe, 0x0000, 0x3ce0, 0x0009, 0x09f8, 0x0003, 0x15fe, 0x0008,\r
++      0x3ce0, 0x0009, 0x0db1, 0x0003, 0x020b, 0x0004, 0x8076, 0x0008,\r
++      0x0040, 0x0000, 0x8072, 0x0000, 0x8000, 0x0000, 0x0268, 0x000b,\r
++      0x8076, 0x0008, 0x0042, 0x0008, 0x0208, 0x000b, 0xbbe0, 0x0009,\r
++      0x0016, 0x0000, 0x0e08, 0x000b, 0x8074, 0x0000, 0x0808, 0x0008,\r
++      0x3a44, 0x0002, 0x0c0c, 0x000b, 0x8074, 0x0000, 0x0800, 0x0000,\r
++      0x8072, 0x0000, 0x8000, 0x0000, 0x8000, 0x000f, 0x000a, 0x000b,\r
++      0x8072, 0x0000, 0x8000, 0x0000, 0x000a, 0x000b, 0x3d30, 0x000a,\r
++      0x7f00, 0x0000, 0xbc80, 0x0001, 0x0007, 0x0000, 0x0214, 0x0003,\r
++      0x1930, 0x000a, 0x7f00, 0x0000, 0x9880, 0x0001, 0x0007, 0x0000,\r
++      0x8060, 0x0000, 0x0400, 0x0000, 0x7f62, 0x0008, 0x8066, 0x0000,\r
++      0x000a, 0x0008, 0x4619, 0x000b, 0x4000, 0x000f, 0x221e, 0x000b,\r
++      0x0870, 0x0008, 0x4000, 0x000f, 0x7e1b, 0x000b, 0xbbe0, 0x0009,\r
++      0x0030, 0x0008, 0x0e1b, 0x0003, 0x18fe, 0x0000, 0x3ce0, 0x0009,\r
++      0x0a2c, 0x0003, 0x15fe, 0x0008, 0x3ce0, 0x0009, 0x0a2c, 0x0003,\r
++      0x020b, 0x0004, 0x8076, 0x0008, 0x0040, 0x0000, 0x022e, 0x0003,\r
++      0x8076, 0x0008, 0x0041, 0x0008, 0x8072, 0x0000, 0x8000, 0x0000,\r
++      0x021b, 0x0003, 0xbac0, 0x0009, 0x0090, 0x0008, 0x0a37, 0x0003,\r
++      0x8074, 0x0000, 0x0706, 0x0000, 0x0239, 0x0003, 0x8074, 0x0000,\r
++      0x0703, 0x0000, 0x4000, 0x000f, 0x8010, 0x0008, 0x0023, 0x0000,\r
++      0x0276, 0x000b, 0x8010, 0x0008, 0x0008, 0x0000, 0x0276, 0x000b,\r
++      0x8010, 0x0008, 0x0022, 0x0008, 0x0276, 0x000b, 0x0210, 0x0004,\r
++      0x8010, 0x0008, 0x0007, 0x0000, 0x021b, 0x000c, 0x1810, 0x0000,\r
++      0x021b, 0x000c, 0x0282, 0x0003, 0x0210, 0x0004, 0x8010, 0x0008,\r
++      0x001b, 0x0008, 0x021b, 0x000c, 0x1810, 0x0000, 0x021b, 0x000c,\r
++      0x8074, 0x0000, 0xf080, 0x0000, 0x8072, 0x0000, 0x3000, 0x0008,\r
++      0x0d30, 0x0000, 0x000a, 0x000b, 0x8010, 0x0008, 0x0009, 0x0008,\r
++      0x0276, 0x000b, 0x8010, 0x0008, 0x0005, 0x0008, 0x0276, 0x000b,\r
++      0x1648, 0x000a, 0x0c6f, 0x000b, 0x808c, 0x0008, 0x0001, 0x0000,\r
++      0x8010, 0x0008, 0x0004, 0x0000, 0x4143, 0x000a, 0x086f, 0x0003,\r
++      0x3a44, 0x0002, 0x0c0a, 0x000b, 0x0d2a, 0x0008, 0x0276, 0x000b,\r
++      0x8010, 0x0008, 0x0003, 0x0008, 0x027a, 0x000b, 0x8010, 0x0008,\r
++      0x000b, 0x0000, 0x027a, 0x000b, 0x8010, 0x0008, 0x0002, 0x0000,\r
++      0x027a, 0x000b, 0x3a47, 0x0002, 0x0d40, 0x000b, 0x8010, 0x0008,\r
++      0x0006, 0x0008, 0x027a, 0x000b, 0x8074, 0x0000, 0xf000, 0x0008,\r
++      0x8072, 0x0000, 0x3000, 0x0008, 0x021b, 0x000c, 0x0231, 0x0004,\r
++      0x3a40, 0x000a, 0x080a, 0x0003, 0x8010, 0x0008, 0x000c, 0x0008,\r
++      0x021b, 0x000c, 0x000a, 0x000b, 0x8074, 0x0000, 0xf080, 0x0000,\r
++      0x8072, 0x0000, 0x3000, 0x0008, 0x0d30, 0x0000, 0x2e4d, 0x0002,\r
++      0x2e4d, 0x0002, 0x0a8d, 0x000b, 0x8054, 0x0008, 0x0019, 0x0000,\r
++      0x000a, 0x000b, 0x8054, 0x0008, 0x0009, 0x0008, 0x000a, 0x000b,\r
++      0x3a44, 0x0002, 0x0c0a, 0x000b, 0x026b, 0x000b, 0x808c, 0x0008,\r
++      0x0000, 0x0008, 0x4447, 0x0002, 0x0ab9, 0x0003, 0xc0c0, 0x0001,\r
++      0x00ff, 0x0008, 0xffe0, 0x0009, 0x00ff, 0x0008, 0x0e90, 0x0003,\r
++      0xc1e0, 0x0001, 0xffff, 0x0008, 0x0e90, 0x0003, 0x8010, 0x0008,\r
++      0x0013, 0x0000, 0x021b, 0x000c, 0x8074, 0x0000, 0x0202, 0x0008,\r
++      0x000a, 0x000b, 0x3a40, 0x000a, 0x0eb6, 0x000b, 0x8074, 0x0000,\r
++      0x0200, 0x0000, 0x3d00, 0x0000, 0x3cfe, 0x0000, 0x8072, 0x0000,\r
++      0x8000, 0x0000, 0x43e0, 0x0001, 0x0eb4, 0x0003, 0x42fe, 0x0000,\r
++      0xffc0, 0x0001, 0x00ff, 0x0008, 0x00e0, 0x0009, 0x0a90, 0x000b,\r
++      0x0d08, 0x0008, 0x0309, 0x000b, 0x8072, 0x0000, 0x8000, 0x0000,\r
++      0x000a, 0x000b, 0x038d, 0x0004, 0x808c, 0x0008, 0x0001, 0x0000,\r
++      0x04fe, 0x0008, 0x3370, 0x0003, 0x0460, 0x0000, 0x8062, 0x0008,\r
++      0x0001, 0x0000, 0x8066, 0x0000, 0x0009, 0x0008, 0x46c3, 0x0003,\r
++      0x0004, 0x0000, 0x80c0, 0x0009, 0x00ff, 0x0008, 0x7f00, 0x0000,\r
++      0x80e0, 0x0001, 0x0004, 0x0000, 0x0add, 0x000b, 0x80e0, 0x0001,\r
++      0x0005, 0x0008, 0x0add, 0x000b, 0x80e0, 0x0001, 0x0006, 0x0008,\r
++      0x0add, 0x000b, 0x82c0, 0x0001, 0xff00, 0x0008, 0x7f04, 0x0008,\r
++      0x82e0, 0x0009, 0x0600, 0x0008, 0x0add, 0x000b, 0x82e0, 0x0009,\r
++      0x0500, 0x0008, 0x0add, 0x000b, 0x82e0, 0x0009, 0x0400, 0x0000,\r
++      0x0f70, 0x0003, 0xc4c0, 0x0009, 0x7000, 0x0000, 0xffe0, 0x0009,\r
++      0x1000, 0x0000, 0x0b09, 0x0003, 0x037e, 0x0004, 0x3941, 0x0002,\r
++      0x0ae8, 0x000b, 0x8072, 0x0000, 0x0400, 0x0000, 0x000a, 0x000b,\r
++      0x0460, 0x0000, 0x80fe, 0x0008, 0x002b, 0x0008, 0x7f62, 0x0008,\r
++      0x8066, 0x0000, 0x2209, 0x0008, 0x46ee, 0x0003, 0x11fe, 0x0000,\r
++      0x3304, 0x0003, 0x9180, 0x0001, 0x0002, 0x0000, 0x8060, 0x0000,\r
++      0x0400, 0x0000, 0x7f62, 0x0008, 0x8066, 0x0000, 0x0609, 0x0008,\r
++      0x46f8, 0x000b, 0x42fe, 0x0000, 0xffc0, 0x0001, 0xff00, 0x0008,\r
++      0x03e0, 0x0009, 0x0f01, 0x0003, 0x8072, 0x0000, 0x0400, 0x0000,\r
++      0x0046, 0x0003, 0x9180, 0x0001, 0x0003, 0x0008, 0x02eb, 0x0003,\r
++      0x8072, 0x0000, 0x0400, 0x0000, 0x8010, 0x0008, 0x0010, 0x0000,\r
++      0x0361, 0x0003, 0x037e, 0x0004, 0x3941, 0x0002, 0x0b0f, 0x0003,\r
++      0x8072, 0x0000, 0x0400, 0x0000, 0x000a, 0x000b, 0x0346, 0x000c,\r
++      0x11fe, 0x0000, 0x3717, 0x0003, 0x8072, 0x0000, 0x0400, 0x0000,\r
++      0x8010, 0x0008, 0x000e, 0x0000, 0x0361, 0x0003, 0x8060, 0x0000,\r
++      0x0400, 0x0000, 0x04fe, 0x0008, 0x372c, 0x000b, 0x808c, 0x0008,\r
++      0x0000, 0x0008, 0x9180, 0x0001, 0x0005, 0x0008, 0x7f62, 0x0008,\r
++      0x8066, 0x0000, 0x0009, 0x0008, 0x4722, 0x000b, 0x0060, 0x0008,\r
++      0x8062, 0x0008, 0x001b, 0x0008, 0x4304, 0x0008, 0x4206, 0x0008,\r
++      0x8066, 0x0000, 0x0412, 0x0000, 0x472a, 0x0003, 0x0343, 0x0003,\r
++      0x808c, 0x0008, 0x0001, 0x0000, 0x0460, 0x0000, 0x8062, 0x0008,\r
++      0x002b, 0x0008, 0x8066, 0x0000, 0x0609, 0x0008, 0x4733, 0x000b,\r
++      0x8066, 0x0000, 0x220a, 0x0008, 0x4736, 0x000b, 0x42fe, 0x0000,\r
++      0xffc0, 0x0001, 0xff00, 0x0008, 0x7f04, 0x0008, 0x8060, 0x0000,\r
++      0x0400, 0x0000, 0x9180, 0x0001, 0x0002, 0x0000, 0x7f62, 0x0008,\r
++      0x8066, 0x0000, 0x041a, 0x0008, 0x4742, 0x000b, 0x8072, 0x0000,\r
++      0x0400, 0x0000, 0x0046, 0x0003, 0x8060, 0x0000, 0x0400, 0x0000,\r
++      0x1362, 0x0008, 0x8066, 0x0000, 0x0411, 0x0000, 0x474b, 0x000b,\r
++      0x02fe, 0x0008, 0x03e0, 0x0009, 0x0f51, 0x0003, 0x0d22, 0x0000,\r
++      0x4000, 0x000f, 0x8280, 0x0009, 0x0002, 0x0000, 0x1380, 0x0001,\r
++      0x7f62, 0x0008, 0x8066, 0x0000, 0x2209, 0x0008, 0x4757, 0x0003,\r
++      0x0200, 0x000a, 0xffc0, 0x0001, 0x0007, 0x0000, 0x7f06, 0x0000,\r
++      0x1362, 0x0008, 0x8066, 0x0000, 0x060a, 0x0008, 0x475f, 0x000b,\r
++      0x4000, 0x000f, 0x3a44, 0x0002, 0x0c0a, 0x000b, 0x2f44, 0x000a,\r
++      0x2f44, 0x000a, 0x0e6b, 0x000b, 0x808a, 0x0008, 0x0003, 0x0008,\r
++      0x8074, 0x0000, 0xf080, 0x0000, 0x8072, 0x0000, 0x3000, 0x0008,\r
++      0x5b6c, 0x0003, 0x8054, 0x0008, 0x0019, 0x0000, 0x000a, 0x000b,\r
++      0x3a44, 0x0002, 0x0c0a, 0x000b, 0x808c, 0x0008, 0x0000, 0x0008,\r
++      0x8010, 0x0008, 0x0011, 0x0008, 0x021b, 0x000c, 0x42fe, 0x0000,\r
++      0xffc0, 0x0001, 0x00ff, 0x0008, 0x7f10, 0x0008, 0x021b, 0x000c,\r
++      0x4310, 0x0008, 0x027a, 0x000b, 0x3941, 0x0002, 0x0b81, 0x0003,\r
++      0x4000, 0x000f, 0x8072, 0x0000, 0x0404, 0x0008, 0x4000, 0x000f,\r
++      0x8010, 0x0008, 0x0012, 0x0008, 0x021b, 0x000c, 0x0346, 0x000c,\r
++      0x1110, 0x0000, 0x021b, 0x000c, 0x11fe, 0x0000, 0x3787, 0x0003,\r
++      0x000a, 0x000b, 0xc2c0, 0x0009, 0x00ff, 0x0008, 0x7f00, 0x0000,\r
++      0xc3c0, 0x0001, 0xff00, 0x0008, 0x00d0, 0x0009, 0x0bb2, 0x0003,\r
++      0x0d0a, 0x0000, 0x8580, 0x0001, 0x1000, 0x0000, 0x7f62, 0x0008,\r
++      0x8060, 0x0000, 0x0400, 0x0000, 0x8066, 0x0000, 0x0809, 0x0000,\r
++      0x479c, 0x000b, 0x04fe, 0x0008, 0x33ab, 0x0003, 0x0460, 0x0000,\r
++      0x8062, 0x0008, 0x0004, 0x0000, 0x8066, 0x0000, 0x0211, 0x0000,\r
++      0x47a4, 0x0003, 0x01fe, 0x0008, 0x00e0, 0x0009, 0x0fab, 0x0003,\r
++      0x02fe, 0x0008, 0x43e0, 0x0001, 0x0bb1, 0x0003, 0x0500, 0x0002,\r
++      0x7f0a, 0x0000, 0xffe0, 0x0009, 0x0800, 0x0000, 0x0f95, 0x000b,\r
++      0x0d08, 0x0008, 0x4000, 0x000f, 0x43fe, 0x0008, 0x3e80, 0x0001,\r
++      0xffc0, 0x0001, 0x7fff, 0x0000, 0x0d60, 0x0000, 0x7f62, 0x0008,\r
++      0x8066, 0x0000, 0x0809, 0x0000, 0x47ba, 0x0003, 0x8060, 0x0000,\r
++      0x0400, 0x0000, 0x84c0, 0x0001, 0xff00, 0x0008, 0x7f60, 0x000a,\r
++      0x7f60, 0x000a, 0x7f60, 0x000a, 0x7f60, 0x000a, 0x7f60, 0x000a,\r
++      0x7f60, 0x000a, 0x7f60, 0x000a, 0x7f60, 0x000a, 0xff80, 0x0009,\r
++      0x1000, 0x0000, 0x7f62, 0x0008, 0x8066, 0x0000, 0x0809, 0x0000,\r
++      0x47cc, 0x000b, 0x4000, 0x000f, 0x5ff4, 0xebed, 0x0001, 0x0002,\r
++      0x0004, 0x0008, 0x0010, 0x0020, 0x0040, 0x0080, 0x0100, 0x0200,\r
++      0x0400, 0x0800, 0x1000, 0x2000, 0x4000, 0x8000, 0x2c40\r
++};\r
++#ifdef UNIQUE_FW_NAME\r
++unsigned short fw2300ipx_length01 = 0xe9c7;\r
++#else\r
++unsigned short risc_code_length01 = 0xe9c7;\r
++#endif\r
++\r
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/ql2322flx_fw.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/ql2322flx_fw.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/ql2322flx_fw.h       1969-12-31 16:00:00.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/ql2322flx_fw.h    2004-04-22 19:42:21.000000000 -0700
+@@ -0,0 +1,7401 @@
++/************************************************************************\r
++ *                                                                    *\r
++ *               --- ISP2322 Initiator/Target Firmware ---              *\r
++ *             with Fabric (Public Loop), Point-point,                *\r
++ *             expanded LUN addressing for FCTAPE, and 2K port logins   *\r
++ *                                            FibreLite enabled       *\r
++ *                                                                    *\r
++ ********************************************************************** */\r
++/*\r
++ *    Firmware Version 3.02.28 (14:05 Apr 03, 2004)\r
++ */\r
++\r
++#ifdef UNIQUE_FW_NAME\r
++unsigned short fw2322flx_version = 3*1024+2;\r
++#else\r
++unsigned short risc_code_version = 3*1024+2;\r
++#endif\r
++\r
++#ifdef UNIQUE_FW_NAME\r
++unsigned char fw2322flx_version_str[] = {3, 2,28};\r
++#else\r
++unsigned char firmware_version[] = {3, 2,28};\r
++#endif\r
++\r
++#ifdef UNIQUE_FW_NAME\r
++#define fw2322flx_VERSION_STRING "3.02.28"\r
++#else\r
++#define FW_VERSION_STRING "3.02.28"\r
++#endif\r
++\r
++#ifdef UNIQUE_FW_NAME\r
++unsigned short fw2322flx_addr01 = 0x0800 ;\r
++#else\r
++unsigned short risc_code_addr01 = 0x0800 ;\r
++#endif\r
++\r
++#ifdef UNIQUE_FW_NAME\r
++unsigned short fw2322flx_code01[] = { \r
++#else\r
++unsigned short risc_code01[] = { \r
++#endif\r
++      0x0470, 0x0000, 0x0000, 0xce3b, 0x0000, 0x0003, 0x0002, 0x001c,\r
++      0x0317, 0x2043, 0x4f50, 0x5952, 0x4947, 0x4854, 0x2032, 0x3030,\r
++      0x3120, 0x514c, 0x4f47, 0x4943, 0x2043, 0x4f52, 0x504f, 0x5241,\r
++      0x5449, 0x4f4e, 0x2049, 0x5350, 0x3233, 0x3030, 0x2046, 0x6972,\r
++      0x6d77, 0x6172, 0x6520, 0x2056, 0x6572, 0x7369, 0x6f6e, 0x2030,\r
++      0x332e, 0x3032, 0x2e32, 0x3820, 0x2020, 0x2020, 0x2400, 0x20a9,\r
++      0x000f, 0x2001, 0x0000, 0x400f, 0x2091, 0x2200, 0x20a9, 0x000f,\r
++      0x2001, 0x0000, 0x400f, 0x2091, 0x2400, 0x20a9, 0x000f, 0x2001,\r
++      0x0000, 0x400f, 0x2091, 0x2600, 0x20a9, 0x000f, 0x2001, 0x0000,\r
++      0x400f, 0x2091, 0x2800, 0x20a9, 0x000f, 0x2001, 0x0000, 0x400f,\r
++      0x2091, 0x2a00, 0x20a9, 0x000f, 0x2001, 0x0000, 0x400f, 0x2091,\r
++      0x2c00, 0x20a9, 0x000f, 0x2001, 0x0000, 0x400f, 0x2091, 0x2e00,\r
++      0x20a9, 0x000f, 0x2001, 0x0000, 0x400f, 0x2091, 0x2000, 0x2001,\r
++      0x0000, 0x20c1, 0x0004, 0x20c9, 0x1cff, 0x2059, 0x0000, 0x2b78,\r
++      0x7883, 0x0004, 0x2089, 0x28de, 0x2051, 0x1800, 0x2a70, 0x20e1,\r
++      0x0001, 0x20e9, 0x0001, 0x2009, 0x0000, 0x080c, 0x0e3d, 0x00f6,\r
++      0x7888, 0x9005, 0x11f8, 0x2061, 0xc000, 0x080c, 0x1efc, 0x1170,\r
++      0x2079, 0x0300, 0x080c, 0x1f12, 0x2061, 0xe000, 0x080c, 0x1efc,\r
++      0x1128, 0x2079, 0x0380, 0x080c, 0x1f12, 0x0060, 0x00fe, 0x7883,\r
++      0x4010, 0x7837, 0x4010, 0x7833, 0x0010, 0x2091, 0x5000, 0x2091,\r
++      0x4080, 0x0cf8, 0x00fe, 0x2029, 0x26c0, 0x2031, 0xffff, 0x2039,\r
++      0x269c, 0x2021, 0x0050, 0x20e9, 0x0001, 0x20a1, 0x0000, 0x20a9,\r
++      0x0800, 0x900e, 0x4104, 0x20e9, 0x0001, 0x20a1, 0x1000, 0x900e,\r
++      0x2001, 0x0dc1, 0x9084, 0x0fff, 0x20a8, 0x4104, 0x2001, 0x0000,\r
++      0x9086, 0x0000, 0x0120, 0x21a8, 0x4104, 0x8001, 0x1de0, 0x756a,\r
++      0x766e, 0x7766, 0x7472, 0x7476, 0x00e6, 0x2071, 0x1b1e, 0x2472,\r
++      0x00ee, 0x20a1, 0x1ddc, 0x716c, 0x810d, 0x810d, 0x810d, 0x810d,\r
++      0x918c, 0x000f, 0x2001, 0x0001, 0x9112, 0x900e, 0x21a8, 0x4104,\r
++      0x8211, 0x1de0, 0x716c, 0x3400, 0x8001, 0x9102, 0x0120, 0x0218,\r
++      0x20a8, 0x900e, 0x4104, 0x2009, 0x1800, 0x810d, 0x810d, 0x810d,\r
++      0x810d, 0x810d, 0x918c, 0x001f, 0x2001, 0x0001, 0x9112, 0x20e9,\r
++      0x0001, 0x20a1, 0x0800, 0x900e, 0x20a9, 0x0800, 0x4104, 0x8211,\r
++      0x1dd8, 0x080c, 0x0f3a, 0x080c, 0x5cea, 0x080c, 0x9b7d, 0x080c,\r
++      0x10f1, 0x080c, 0x12d6, 0x080c, 0x1a5a, 0x080c, 0x8440, 0x080c,\r
++      0x0cf7, 0x080c, 0x1076, 0x080c, 0x328b, 0x080c, 0x73cb, 0x080c,\r
++      0x6722, 0x080c, 0x808a, 0x080c, 0x20dd, 0x080c, 0x7a5f, 0x080c,\r
++      0x1f2b, 0x080c, 0x2065, 0x080c, 0x20d2, 0x2091, 0x3009, 0x7883,\r
++      0x0000, 0x1004, 0x0941, 0x7880, 0x9086, 0x0002, 0x1190, 0x7883,\r
++      0x4000, 0x7837, 0x4000, 0x7833, 0x0010, 0x0e04, 0x0935, 0x2091,\r
++      0x5000, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c,\r
++      0x11be, 0x2071, 0x1800, 0x7003, 0x0000, 0x2071, 0x1800, 0x7000,\r
++      0x908e, 0x0003, 0x1158, 0x080c, 0x499d, 0x080c, 0x32b2, 0x080c,\r
++      0x7433, 0x080c, 0x6bca, 0x080c, 0x80b3, 0x0c78, 0x000b, 0x0c98,\r
++      0x0962, 0x0963, 0x0afa, 0x0960, 0x0bab, 0x0cf6, 0x0cf6, 0x0cf6,\r
++      0x080c, 0x0d65, 0x0005, 0x0126, 0x00f6, 0x2091, 0x8000, 0x7000,\r
++      0x9086, 0x0001, 0x1904, 0x0acd, 0x080c, 0x0e8d, 0x080c, 0x70b7,\r
++      0x0150, 0x080c, 0x70da, 0x15b0, 0x2079, 0x0100, 0x7828, 0x9085,\r
++      0x1800, 0x782a, 0x0478, 0x080c, 0x6fe8, 0x7000, 0x9086, 0x0001,\r
++      0x1904, 0x0acd, 0x7094, 0x9086, 0x0028, 0x1904, 0x0acd, 0x080c,\r
++      0x8082, 0x080c, 0x8074, 0x2001, 0x0161, 0x2003, 0x0001, 0x2079,\r
++      0x0100, 0x2011, 0xffff, 0x080c, 0x286d, 0x7a28, 0x9295, 0x5e2c,\r
++      0x7a2a, 0x2011, 0x6f2d, 0x080c, 0x8159, 0x2011, 0x6f20, 0x080c,\r
++      0x825f, 0x2011, 0x5b41, 0x080c, 0x8159, 0x2011, 0x8030, 0x901e,\r
++      0x7392, 0x04d0, 0x080c, 0x53ee, 0x2079, 0x0100, 0x7844, 0x9005,\r
++      0x1904, 0x0acd, 0x2011, 0x5b41, 0x080c, 0x8159, 0x2011, 0x6f2d,\r
++      0x080c, 0x8159, 0x2011, 0x6f20, 0x080c, 0x825f, 0x2001, 0x0265,\r
++      0x2001, 0x0205, 0x2003, 0x0000, 0x7840, 0x9084, 0xfffb, 0x7842,\r
++      0x2001, 0x1977, 0x2004, 0x9005, 0x1140, 0x00c6, 0x2061, 0x0100,\r
++      0x080c, 0x5c92, 0x00ce, 0x0804, 0x0acd, 0x780f, 0x006b, 0x7a28,\r
++      0x080c, 0x70bf, 0x0118, 0x9295, 0x5e2c, 0x0010, 0x9295, 0x402c,\r
++      0x7a2a, 0x2011, 0x8010, 0x73d4, 0x2001, 0x1978, 0x2003, 0x0001,\r
++      0x080c, 0x273f, 0x080c, 0x48d8, 0x7244, 0xc284, 0x7246, 0x2001,\r
++      0x180c, 0x200c, 0xc1ac, 0xc1cc, 0x2102, 0x2001, 0x0390, 0x2003,\r
++      0x0400, 0x080c, 0x98c8, 0x080c, 0x91e1, 0x2011, 0x0004, 0x080c,\r
++      0xb857, 0x080c, 0x98e4, 0x080c, 0x6562, 0x080c, 0x70b7, 0x1120,\r
++      0x080c, 0x279a, 0x0600, 0x0420, 0x080c, 0x5c99, 0x0140, 0x7093,\r
++      0x0001, 0x70cf, 0x0000, 0x080c, 0x55bb, 0x0804, 0x0acd, 0x080c,\r
++      0x538d, 0xd094, 0x01a8, 0x2001, 0x0390, 0x2003, 0x0404, 0x2011,\r
++      0x180c, 0x2204, 0xc0cd, 0x2012, 0x080c, 0x5391, 0xd0d4, 0x1118,\r
++      0x080c, 0x279a, 0x1270, 0x2011, 0x180c, 0x2204, 0xc0bc, 0x0088,\r
++      0x080c, 0x5391, 0xd0d4, 0x1db8, 0x2011, 0x180c, 0x2204, 0xc0bd,\r
++      0x0040, 0x2011, 0x180c, 0x2204, 0xc0bd, 0x2012, 0x080c, 0x665f,\r
++      0x0008, 0x2012, 0x080c, 0x6625, 0x0120, 0x7a0c, 0xc2b4, 0x7a0e,\r
++      0x00a8, 0x707b, 0x0000, 0x080c, 0x70b7, 0x1130, 0x70ac, 0x9005,\r
++      0x1168, 0x080c, 0xbcae, 0x0050, 0x080c, 0xbcae, 0x70d8, 0xd09c,\r
++      0x1128, 0x70ac, 0x9005, 0x0110, 0x080c, 0x5c6f, 0x70e3, 0x0000,\r
++      0x70df, 0x0000, 0x70a3, 0x0000, 0x080c, 0x27a2, 0x0228, 0x2011,\r
++      0x0101, 0x2204, 0xc0c4, 0x2012, 0x72d8, 0x080c, 0x70b7, 0x1178,\r
++      0x9016, 0x0016, 0x2009, 0x0002, 0x2019, 0x193e, 0x211a, 0x001e,\r
++      0x705b, 0xffff, 0x705f, 0x00ef, 0x707f, 0x0000, 0x0020, 0x2019,\r
++      0x193e, 0x201b, 0x0000, 0x2079, 0x1853, 0x7804, 0xd0ac, 0x0108,\r
++      0xc295, 0x72da, 0x080c, 0x70b7, 0x0118, 0x9296, 0x0004, 0x0518,\r
++      0x2011, 0x0001, 0x080c, 0xb857, 0x70a7, 0x0000, 0x70ab, 0xffff,\r
++      0x7003, 0x0002, 0x00fe, 0x080c, 0x2ddb, 0x080c, 0x98c8, 0x2011,\r
++      0x0005, 0x080c, 0x9339, 0x080c, 0x98e4, 0x080c, 0x70b7, 0x0148,\r
++      0x00c6, 0x2061, 0x0100, 0x0016, 0x2009, 0x0002, 0x61e2, 0x001e,\r
++      0x00ce, 0x012e, 0x00e0, 0x70a7, 0x0000, 0x70ab, 0xffff, 0x7003,\r
++      0x0002, 0x080c, 0x98c8, 0x2011, 0x0005, 0x080c, 0x9339, 0x080c,\r
++      0x98e4, 0x080c, 0x70b7, 0x0148, 0x00c6, 0x2061, 0x0100, 0x0016,\r
++      0x2009, 0x0002, 0x61e2, 0x001e, 0x00ce, 0x00fe, 0x012e, 0x0005,\r
++      0x00c6, 0x00b6, 0x080c, 0x70b7, 0x1118, 0x20a9, 0x0800, 0x0010,\r
++      0x20a9, 0x0782, 0x080c, 0x70b7, 0x1110, 0x900e, 0x0010, 0x2009,\r
++      0x007e, 0x86ff, 0x0138, 0x9180, 0x1000, 0x2004, 0x905d, 0x0110,\r
++      0xb800, 0xd0bc, 0x090c, 0x311a, 0x8108, 0x1f04, 0x0ae1, 0x707b,\r
++      0x0000, 0x707c, 0x9084, 0x00ff, 0x707e, 0x70af, 0x0000, 0x00be,\r
++      0x00ce, 0x0005, 0x00b6, 0x0126, 0x2091, 0x8000, 0x7000, 0x9086,\r
++      0x0002, 0x1904, 0x0ba8, 0x70a8, 0x9086, 0xffff, 0x0120, 0x080c,\r
++      0x2ddb, 0x0804, 0x0ba8, 0x70d8, 0xd0ac, 0x1110, 0xd09c, 0x0520,\r
++      0xd084, 0x0510, 0x0006, 0x2001, 0x0103, 0x2003, 0x002b, 0x000e,\r
++      0xd08c, 0x01d0, 0x70dc, 0x9086, 0xffff, 0x0190, 0x080c, 0x2f66,\r
++      0x70d8, 0xd094, 0x1904, 0x0ba8, 0x2011, 0x0001, 0x080c, 0xbf61,\r
++      0x0110, 0x2011, 0x0003, 0x901e, 0x080c, 0x2fa0, 0x0804, 0x0ba8,\r
++      0x70e0, 0x9005, 0x1904, 0x0ba8, 0x70a4, 0x9005, 0x1904, 0x0ba8,\r
++      0x70d8, 0xd0a4, 0x0118, 0xd0b4, 0x0904, 0x0ba8, 0x080c, 0x6625,\r
++      0x1904, 0x0ba8, 0x080c, 0x6678, 0x1904, 0x0ba8, 0x080c, 0x665f,\r
++      0x01c0, 0x0156, 0x00c6, 0x20a9, 0x007f, 0x900e, 0x0016, 0x080c,\r
++      0x6270, 0x1118, 0xb800, 0xd0ec, 0x1138, 0x001e, 0x8108, 0x1f04,\r
++      0x0b4e, 0x00ce, 0x015e, 0x0028, 0x001e, 0x00ce, 0x015e, 0x0804,\r
++      0x0ba8, 0x0006, 0x2001, 0x0103, 0x2003, 0x006b, 0x000e, 0x2011,\r
++      0x1984, 0x080c, 0x0faa, 0x2011, 0x199e, 0x080c, 0x0faa, 0x7030,\r
++      0xc08c, 0x7032, 0x7003, 0x0003, 0x70ab, 0xffff, 0x080c, 0x0e61,\r
++      0x9006, 0x080c, 0x23c9, 0x0036, 0x0046, 0x2019, 0xffff, 0x2021,\r
++      0x0006, 0x080c, 0x4a75, 0x004e, 0x003e, 0x00f6, 0x2079, 0x0100,\r
++      0x080c, 0x70da, 0x0150, 0x080c, 0x70b7, 0x7828, 0x0118, 0x9084,\r
++      0xe1ff, 0x0010, 0x9084, 0xffdf, 0x782a, 0x00fe, 0x080c, 0x98c8,\r
++      0x2001, 0x19b9, 0x2004, 0x9086, 0x0005, 0x1120, 0x2011, 0x0000,\r
++      0x080c, 0x9339, 0x2011, 0x0000, 0x080c, 0x9343, 0x080c, 0x98e4,\r
++      0x012e, 0x00be, 0x0005, 0x0016, 0x0026, 0x0046, 0x00f6, 0x0126,\r
++      0x2091, 0x8000, 0x2079, 0x0100, 0x7904, 0x918c, 0xfffd, 0x7906,\r
++      0x2009, 0x00f7, 0x080c, 0x5c58, 0x7940, 0x918c, 0x0010, 0x7942,\r
++      0x7924, 0xd1b4, 0x0120, 0x2011, 0x0040, 0x080c, 0x286d, 0xd19c,\r
++      0x0120, 0x2011, 0x0008, 0x080c, 0x286d, 0x0006, 0x0036, 0x0156,\r
++      0x0000, 0x2001, 0x1978, 0x2004, 0x9005, 0x1518, 0x080c, 0x2801,\r
++      0x1148, 0x2001, 0x0001, 0x080c, 0x276e, 0x2001, 0x0001, 0x080c,\r
++      0x2751, 0x00b8, 0x080c, 0x2809, 0x1138, 0x9006, 0x080c, 0x276e,\r
++      0x9006, 0x080c, 0x2751, 0x0068, 0x080c, 0x2811, 0x1d50, 0x2001,\r
++      0x1969, 0x2004, 0xd0fc, 0x0108, 0x0020, 0x080c, 0x2568, 0x0804,\r
++      0x0ca9, 0x080c, 0x2890, 0x080c, 0x28d4, 0x20a9, 0x003a, 0x1d04,\r
++      0x0bff, 0x080c, 0x823f, 0x1f04, 0x0bff, 0x080c, 0x70c8, 0x0148,\r
++      0x080c, 0x70da, 0x1118, 0x080c, 0x73c6, 0x0050, 0x080c, 0x70bf,\r
++      0x0dd0, 0x080c, 0x73c1, 0x080c, 0x73b7, 0x080c, 0x6fe8, 0x0020,\r
++      0x2009, 0x00f8, 0x080c, 0x5c58, 0x7850, 0xc0e5, 0x7852, 0x080c,\r
++      0x70b7, 0x0120, 0x7843, 0x0090, 0x7843, 0x0010, 0x2021, 0xe678,\r
++      0x2019, 0xea60, 0x0d0c, 0x823f, 0x7820, 0xd09c, 0x15a0, 0x080c,\r
++      0x70b7, 0x0904, 0x0c8b, 0x7824, 0xd0ac, 0x1904, 0x0cae, 0x080c,\r
++      0x70da, 0x1548, 0x0046, 0x2021, 0x0320, 0x8421, 0x1df0, 0x004e,\r
++      0x2011, 0x1800, 0x080c, 0x286d, 0x080c, 0x2819, 0x7824, 0x9084,\r
++      0x1800, 0x1168, 0x9484, 0x0fff, 0x1140, 0x2001, 0x1810, 0x2004,\r
++      0x9084, 0x9000, 0x0110, 0x080c, 0x0cd1, 0x8421, 0x1160, 0x1d04,\r
++      0x0c5b, 0x080c, 0x823f, 0x080c, 0x73c1, 0x080c, 0x73b7, 0x7003,\r
++      0x0001, 0x0804, 0x0cae, 0x8319, 0x1928, 0x2001, 0x1810, 0x2004,\r
++      0x9084, 0x9000, 0x0110, 0x080c, 0x0cd1, 0x1d04, 0x0c71, 0x080c,\r
++      0x823f, 0x2009, 0x196c, 0x2104, 0x9005, 0x0118, 0x8001, 0x200a,\r
++      0x1188, 0x200b, 0x000a, 0x2011, 0x0048, 0x080c, 0x286d, 0x20a9,\r
++      0x0002, 0x080c, 0x27fa, 0x7924, 0x080c, 0x2819, 0xd19c, 0x0110,\r
++      0x080c, 0x273f, 0x00f0, 0x080c, 0x70c8, 0x1140, 0x94a2, 0x03e8,\r
++      0x1128, 0x080c, 0x708b, 0x7003, 0x0001, 0x00c0, 0x2011, 0x1800,\r
++      0x080c, 0x286d, 0x080c, 0x2819, 0x7824, 0x080c, 0x70d1, 0x0110,\r
++      0xd0ac, 0x1160, 0x9084, 0x1800, 0x0904, 0x0c63, 0x7003, 0x0001,\r
++      0x0028, 0x2001, 0x0001, 0x080c, 0x23c9, 0x00a0, 0x7850, 0xc0e4,\r
++      0x7852, 0x2009, 0x180c, 0x210c, 0xd19c, 0x1120, 0x7904, 0x918d,\r
++      0x0002, 0x7906, 0x2011, 0x0048, 0x080c, 0x286d, 0x7828, 0x9085,\r
++      0x0028, 0x782a, 0x2001, 0x1978, 0x2003, 0x0000, 0x9006, 0x78f2,\r
++      0x015e, 0x003e, 0x000e, 0x012e, 0x00fe, 0x004e, 0x002e, 0x001e,\r
++      0x0005, 0x0006, 0x0016, 0x0026, 0x0036, 0x0046, 0x00b6, 0x00c6,\r
++      0x00d6, 0x00e6, 0x00f6, 0x0156, 0x0071, 0x0d0c, 0x823f, 0x015e,\r
++      0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be, 0x004e, 0x003e, 0x002e,\r
++      0x001e, 0x000e, 0x0005, 0x00e6, 0x2071, 0x1894, 0x7004, 0x9086,\r
++      0x0001, 0x1110, 0x080c, 0x32b2, 0x00ee, 0x0005, 0x0005, 0x2a70,\r
++      0x2061, 0x197c, 0x2063, 0x0003, 0x6007, 0x0002, 0x600b, 0x001c,\r
++      0x600f, 0x0317, 0x2001, 0x194d, 0x900e, 0x2102, 0x7192, 0x2001,\r
++      0x0100, 0x2004, 0x9082, 0x0002, 0x0218, 0x705b, 0xffff, 0x0008,\r
++      0x715a, 0x7063, 0xffff, 0x717a, 0x717e, 0x080c, 0xbcae, 0x70eb,\r
++      0x00c0, 0x2061, 0x193d, 0x6003, 0x0909, 0x6106, 0x600b, 0x8800,\r
++      0x600f, 0x0200, 0x6013, 0x00ff, 0x6017, 0x000f, 0x611a, 0x601f,\r
++      0x07d0, 0x2061, 0x1945, 0x6003, 0x8000, 0x6106, 0x610a, 0x600f,\r
++      0x0200, 0x6013, 0x00ff, 0x6116, 0x601b, 0x0001, 0x611e, 0x2061,\r
++      0x195a, 0x6003, 0x514c, 0x6007, 0x4f47, 0x600b, 0x4943, 0x600f,\r
++      0x2020, 0x2001, 0x182b, 0x2102, 0x0005, 0x9016, 0x080c, 0x6270,\r
++      0x1178, 0xb804, 0x90c4, 0x00ff, 0x98c6, 0x0006, 0x0128, 0x90c4,\r
++      0xff00, 0x98c6, 0x0600, 0x1120, 0x9186, 0x0080, 0x0108, 0x8210,\r
++      0x8108, 0x9186, 0x0800, 0x1d50, 0x2208, 0x0005, 0x2091, 0x8000,\r
++      0x2079, 0x0000, 0x000e, 0x00f6, 0x0010, 0x2091, 0x8000, 0x0e04,\r
++      0x0d67, 0x0006, 0x0016, 0x2001, 0x8002, 0x0006, 0x2079, 0x0000,\r
++      0x000e, 0x7882, 0x7836, 0x001e, 0x798e, 0x000e, 0x788a, 0x000e,\r
++      0x7886, 0x3900, 0x789a, 0x7833, 0x0012, 0x2091, 0x5000, 0x0156,\r
++      0x00d6, 0x0036, 0x0026, 0x2079, 0x0300, 0x2069, 0x1af4, 0x7a08,\r
++      0x226a, 0x2069, 0x1af5, 0x7a18, 0x226a, 0x8d68, 0x7a1c, 0x226a,\r
++      0x782c, 0x2019, 0x1b02, 0x201a, 0x2019, 0x1b05, 0x9016, 0x7808,\r
++      0xd09c, 0x0168, 0x7820, 0x201a, 0x8210, 0x8318, 0x9386, 0x1b1e,\r
++      0x0108, 0x0ca8, 0x7808, 0xd09c, 0x0110, 0x2011, 0xdead, 0x2019,\r
++      0x1b03, 0x782c, 0x201a, 0x8318, 0x221a, 0x7803, 0x0000, 0x2069,\r
++      0x1a4a, 0x901e, 0x20a9, 0x0020, 0x7b26, 0x7a28, 0x226a, 0x8d68,\r
++      0x8318, 0x1f04, 0x0db4, 0x0491, 0x002e, 0x003e, 0x00de, 0x015e,\r
++      0x2079, 0x1800, 0x7803, 0x0005, 0x2091, 0x4080, 0x2001, 0x0089,\r
++      0x2004, 0xd084, 0x0180, 0x2001, 0x19f3, 0x2004, 0x9005, 0x0128,\r
++      0x2001, 0x008b, 0x2004, 0xd0fc, 0x0dd8, 0x2001, 0x008a, 0x2003,\r
++      0x0002, 0x2003, 0x1001, 0x080c, 0x539c, 0x1170, 0x080c, 0x0efb,\r
++      0x0110, 0x080c, 0x0e4e, 0x080c, 0x539c, 0x1130, 0x2071, 0x1800,\r
++      0x2011, 0x8000, 0x080c, 0x0f0f, 0x0c70, 0x0005, 0x2001, 0x0382,\r
++      0x2004, 0x9084, 0x0007, 0x9086, 0x0001, 0x1120, 0x2001, 0x0015,\r
++      0x080c, 0x98b9, 0x2079, 0x0380, 0x2069, 0x1ad4, 0x7818, 0x6802,\r
++      0x781c, 0x6806, 0x7840, 0x680a, 0x7844, 0x680e, 0x782c, 0x6812,\r
++      0x2019, 0x1adf, 0x9016, 0x7808, 0xd09c, 0x0150, 0x7820, 0x201a,\r
++      0x8210, 0x8318, 0x8210, 0x9282, 0x0011, 0x0ea8, 0x2011, 0xdead,\r
++      0x6a2a, 0x7830, 0x681a, 0x7834, 0x681e, 0x7838, 0x6822, 0x783c,\r
++      0x6826, 0x7803, 0x0000, 0x2069, 0x1a94, 0x901e, 0x20a9, 0x0020,\r
++      0x7b26, 0x7828, 0x206a, 0x8d68, 0x8318, 0x1f04, 0x0e28, 0x2069,\r
++      0x1ab4, 0x2019, 0x00b0, 0x20a9, 0x0020, 0x7b26, 0x7828, 0x206a,\r
++      0x8d68, 0x8318, 0x1f04, 0x0e35, 0x0005, 0x918c, 0x03ff, 0x2001,\r
++      0x0003, 0x2004, 0x9084, 0x0600, 0x1118, 0x918d, 0x6c00, 0x0010,\r
++      0x918d, 0x6400, 0x2001, 0x017f, 0x2102, 0x0005, 0x0026, 0x0126,\r
++      0x2011, 0x0080, 0x080c, 0x0eed, 0x20a9, 0x0900, 0x080c, 0x0f23,\r
++      0x2011, 0x0040, 0x080c, 0x0eed, 0x20a9, 0x0900, 0x080c, 0x0f23,\r
++      0x0c78, 0x0026, 0x080c, 0x0efb, 0x1188, 0x2011, 0x010e, 0x2214,\r
++      0x9294, 0x0007, 0x9296, 0x0007, 0x0118, 0x2011, 0x0947, 0x0010,\r
++      0x2011, 0x1b47, 0x080c, 0x0f0f, 0x002e, 0x0005, 0x2011, 0x010e,\r
++      0x2214, 0x9294, 0x0007, 0x9296, 0x0007, 0x0118, 0x2011, 0xa880,\r
++      0x0010, 0x2011, 0x6840, 0xd0e4, 0x70ef, 0x0000, 0x1128, 0x70ef,\r
++      0x0fa0, 0x080c, 0x0f00, 0x002e, 0x0005, 0x0026, 0x080c, 0x0efb,\r
++      0x0148, 0xd0a4, 0x1138, 0x2011, 0xcdd5, 0x0010, 0x2011, 0x0080,\r
++      0x080c, 0x0f00, 0x002e, 0x0005, 0x0026, 0x70ef, 0x0000, 0x080c,\r
++      0x0efb, 0x1130, 0x2011, 0x8040, 0x080c, 0x0f0f, 0x002e, 0x0005,\r
++      0x080c, 0x2811, 0x1118, 0x2011, 0xcdc5, 0x0010, 0x2011, 0xcac2,\r
++      0x080c, 0x0f00, 0x002e, 0x0005, 0x00e6, 0x0016, 0x0006, 0x2071,\r
++      0x1800, 0xd0b4, 0x70e8, 0x71e4, 0x1118, 0xc0e4, 0xc1f4, 0x0050,\r
++      0x0006, 0x3b00, 0x9084, 0xff3e, 0x20d8, 0x000e, 0x70ef, 0x0000,\r
++      0xc0e5, 0xc1f5, 0x0099, 0x000e, 0x001e, 0x00ee, 0x0005, 0x00e6,\r
++      0x2071, 0x1800, 0xd0e4, 0x70e8, 0x1110, 0xc0dc, 0x0008, 0xc0dd,\r
++      0x0016, 0x71e4, 0x0019, 0x001e, 0x00ee, 0x0005, 0x70ea, 0x71e6,\r
++      0x7000, 0x9084, 0x0007, 0x000b, 0x0005, 0x0eb3, 0x0e8d, 0x0e8d,\r
++      0x0e61, 0x0e9c, 0x0e8d, 0x0e8d, 0x0e9c, 0xc284, 0x0016, 0x3b08,\r
++      0x3a00, 0x9104, 0x918d, 0x00c1, 0x21d8, 0x9084, 0xff3e, 0x9205,\r
++      0x20d0, 0x001e, 0x0005, 0x2001, 0x183a, 0x2004, 0xd0dc, 0x0005,\r
++      0x9e86, 0x1800, 0x190c, 0x0d65, 0x70e8, 0xd0e4, 0x0108, 0xc2e5,\r
++      0x72ea, 0xd0e4, 0x1118, 0x9294, 0x00c1, 0x08f9, 0x0005, 0x9e86,\r
++      0x1800, 0x190c, 0x0d65, 0x70e4, 0xd0f4, 0x0108, 0xc2f5, 0x72e6,\r
++      0xd0f4, 0x1140, 0x9284, 0x8000, 0x8005, 0xc284, 0x9215, 0x9294,\r
++      0x00c1, 0x0861, 0x0005, 0x1d04, 0x0f23, 0x2091, 0x6000, 0x1f04,\r
++      0x0f23, 0x0005, 0x890e, 0x810e, 0x810f, 0x9194, 0x003f, 0x918c,\r
++      0xffc0, 0x0005, 0x0006, 0x2200, 0x914d, 0x894f, 0x894d, 0x894d,\r
++      0x000e, 0x0005, 0x01d6, 0x0146, 0x0036, 0x0096, 0x2061, 0x1883,\r
++      0x600b, 0x0000, 0x600f, 0x0000, 0x6003, 0x0000, 0x6007, 0x0000,\r
++      0x2009, 0xffc0, 0x2105, 0x0006, 0x2001, 0xaaaa, 0x200f, 0x2019,\r
++      0x5555, 0x9016, 0x2049, 0x0bff, 0xab02, 0xa001, 0xa001, 0xa800,\r
++      0x9306, 0x1138, 0x2105, 0x9306, 0x0120, 0x8210, 0x99c8, 0x0400,\r
++      0x0c98, 0x000e, 0x200f, 0x2001, 0x1893, 0x928a, 0x000e, 0x1638,\r
++      0x928a, 0x0006, 0x2011, 0x0006, 0x1210, 0x2011, 0x0000, 0x2202,\r
++      0x9006, 0x2008, 0x82ff, 0x01b0, 0x8200, 0x600a, 0x600f, 0xffff,\r
++      0x6003, 0x0002, 0x6007, 0x0000, 0x0026, 0x2019, 0x0010, 0x9280,\r
++      0x0001, 0x20e8, 0x21a0, 0x21a8, 0x4104, 0x8319, 0x1de0, 0x8211,\r
++      0x1da0, 0x002e, 0x009e, 0x003e, 0x014e, 0x01de, 0x0005, 0x2011,\r
++      0x000e, 0x08e8, 0x0016, 0x0026, 0x0096, 0x3348, 0x080c, 0x0f2a,\r
++      0x2100, 0x9300, 0x2098, 0x22e0, 0x009e, 0x002e, 0x001e, 0x0036,\r
++      0x3518, 0x20a9, 0x0001, 0x4002, 0x8007, 0x4004, 0x8319, 0x1dd8,\r
++      0x003e, 0x0005, 0x20e9, 0x0001, 0x71b4, 0x81ff, 0x11c0, 0x9006,\r
++      0x2009, 0x0200, 0x20a9, 0x0002, 0x9298, 0x0018, 0x23a0, 0x4001,\r
++      0x2009, 0x0700, 0x20a9, 0x0002, 0x9298, 0x0008, 0x23a0, 0x4001,\r
++      0x7078, 0x8007, 0x717c, 0x810f, 0x20a9, 0x0002, 0x4001, 0x9298,\r
++      0x000c, 0x23a0, 0x900e, 0x080c, 0x0d45, 0x2001, 0x0000, 0x810f,\r
++      0x20a9, 0x0002, 0x4001, 0x0005, 0x89ff, 0x0140, 0xa804, 0xa807,\r
++      0x0000, 0x0006, 0x080c, 0x1054, 0x009e, 0x0cb0, 0x0005, 0x00e6,\r
++      0x2071, 0x1800, 0x080c, 0x10cd, 0x090c, 0x0d65, 0x00ee, 0x0005,\r
++      0x0086, 0x00e6, 0x0006, 0x0026, 0x0036, 0x0126, 0x2091, 0x8000,\r
++      0x00c9, 0x2071, 0x1800, 0x73bc, 0x702c, 0x9016, 0x9045, 0x0158,\r
++      0x8210, 0x9906, 0x090c, 0x0d65, 0x2300, 0x9202, 0x0120, 0x1a0c,\r
++      0x0d65, 0xa000, 0x0c98, 0x012e, 0x003e, 0x002e, 0x000e, 0x00ee,\r
++      0x008e, 0x0005, 0x0086, 0x00e6, 0x0006, 0x0126, 0x2091, 0x8000,\r
++      0x2071, 0x1906, 0x7010, 0x9005, 0x0140, 0x7018, 0x9045, 0x0128,\r
++      0x9906, 0x090c, 0x0d65, 0xa000, 0x0cc8, 0x012e, 0x000e, 0x00ee,\r
++      0x008e, 0x0005, 0x00e6, 0x2071, 0x1800, 0x0126, 0x2091, 0x8000,\r
++      0x70bc, 0x8001, 0x0270, 0x70be, 0x702c, 0x2048, 0x9085, 0x0001,\r
++      0xa800, 0x702e, 0xa803, 0x0000, 0xa807, 0x0000, 0x012e, 0x00ee,\r
++      0x0005, 0x904e, 0x0cd8, 0x00e6, 0x0126, 0x2091, 0x8000, 0x2071,\r
++      0x1800, 0x70bc, 0x90ca, 0x0040, 0x0268, 0x8001, 0x70be, 0x702c,\r
++      0x2048, 0xa800, 0x702e, 0xa803, 0x0000, 0xa807, 0x0000, 0x012e,\r
++      0x00ee, 0x0005, 0x904e, 0x0cd8, 0x00e6, 0x0126, 0x2091, 0x8000,\r
++      0x0016, 0x890e, 0x810e, 0x810f, 0x9184, 0x003f, 0xa862, 0x9184,\r
++      0xffc0, 0xa85e, 0x001e, 0x0020, 0x00e6, 0x0126, 0x2091, 0x8000,\r
++      0x2071, 0x1800, 0x702c, 0xa802, 0x2900, 0x702e, 0x70bc, 0x8000,\r
++      0x70be, 0x080c, 0x8074, 0x012e, 0x00ee, 0x0005, 0x2071, 0x1800,\r
++      0x9026, 0x2009, 0x0000, 0x2049, 0x0400, 0x2900, 0x702e, 0x8940,\r
++      0x2800, 0xa802, 0xa95e, 0xa863, 0x0001, 0x8420, 0x9886, 0x0440,\r
++      0x0120, 0x2848, 0x9188, 0x0040, 0x0c90, 0x2071, 0x1883, 0x7000,\r
++      0x9005, 0x11a0, 0x2001, 0x049b, 0xa802, 0x2048, 0x2009, 0x26c0,\r
++      0x8940, 0x2800, 0xa802, 0xa95e, 0xa863, 0x0001, 0x8420, 0x9886,\r
++      0x0800, 0x0120, 0x2848, 0x9188, 0x0040, 0x0c90, 0x2071, 0x1883,\r
++      0x7104, 0x7200, 0x82ff, 0x01d0, 0x7308, 0x8318, 0x831f, 0x831b,\r
++      0x831b, 0x7312, 0x8319, 0x2001, 0x0800, 0xa802, 0x2048, 0x8900,\r
++      0xa802, 0x2040, 0xa95e, 0xaa62, 0x8420, 0x2300, 0x9906, 0x0130,\r
++      0x2848, 0x9188, 0x0040, 0x9291, 0x0000, 0x0c88, 0xa803, 0x0000,\r
++      0x2071, 0x1800, 0x74ba, 0x74be, 0x0005, 0x00e6, 0x0016, 0x9984,\r
++      0xfc00, 0x01e8, 0x908c, 0xf800, 0x1168, 0x9982, 0x0400, 0x02b8,\r
++      0x9982, 0x0440, 0x0278, 0x9982, 0x049b, 0x0288, 0x9982, 0x0800,\r
++      0x1270, 0x0040, 0x9982, 0x0800, 0x0250, 0x2071, 0x1883, 0x7010,\r
++      0x9902, 0x1228, 0x9085, 0x0001, 0x001e, 0x00ee, 0x0005, 0x9006,\r
++      0x0cd8, 0x00e6, 0x2071, 0x19f2, 0x7007, 0x0000, 0x9006, 0x701e,\r
++      0x7022, 0x7002, 0x2071, 0x0000, 0x7010, 0x9085, 0x8044, 0x7012,\r
++      0x2071, 0x0080, 0x9006, 0x20a9, 0x0040, 0x7022, 0x1f04, 0x1105,\r
++      0x702b, 0x0020, 0x00ee, 0x0005, 0x0126, 0x2091, 0x8000, 0x00e6,\r
++      0xa06f, 0x0000, 0x2071, 0x19f2, 0x701c, 0x9088, 0x19fc, 0x280a,\r
++      0x8000, 0x9084, 0x003f, 0x701e, 0x7120, 0x9106, 0x090c, 0x0d65,\r
++      0x7004, 0x9005, 0x1128, 0x00f6, 0x2079, 0x0080, 0x00a9, 0x00fe,\r
++      0x00ee, 0x012e, 0x0005, 0x0126, 0x2091, 0x8000, 0x00e6, 0x2071,\r
++      0x19f2, 0x7004, 0x9005, 0x1128, 0x00f6, 0x2079, 0x0080, 0x0021,\r
++      0x00fe, 0x00ee, 0x012e, 0x0005, 0x7004, 0x9086, 0x0000, 0x1110,\r
++      0x7007, 0x0006, 0x7000, 0x0002, 0x114e, 0x114c, 0x114c, 0x114c,\r
++      0x12c5, 0x12c5, 0x12c5, 0x12c5, 0x080c, 0x0d65, 0x701c, 0x7120,\r
++      0x9106, 0x1148, 0x792c, 0x9184, 0x0001, 0x1120, 0xd1fc, 0x1110,\r
++      0x7007, 0x0000, 0x0005, 0x0096, 0x9180, 0x19fc, 0x2004, 0x700a,\r
++      0x2048, 0x8108, 0x918c, 0x003f, 0x7122, 0x782b, 0x0026, 0xa88c,\r
++      0x7802, 0xa890, 0x7806, 0xa894, 0x780a, 0xa898, 0x780e, 0xa878,\r
++      0x700e, 0xa870, 0x7016, 0xa874, 0x701a, 0xa868, 0x009e, 0xd084,\r
++      0x0120, 0x7007, 0x0001, 0x0029, 0x0005, 0x7007, 0x0002, 0x00b1,\r
++      0x0005, 0x0016, 0x0026, 0x710c, 0x2011, 0x0040, 0x9182, 0x0040,\r
++      0x1210, 0x2110, 0x9006, 0x700e, 0x7212, 0x8203, 0x7812, 0x782b,\r
++      0x0020, 0x782b, 0x0041, 0x002e, 0x001e, 0x0005, 0x0016, 0x0026,\r
++      0x0136, 0x0146, 0x0156, 0x7014, 0x20e0, 0x7018, 0x2098, 0x20e9,\r
++      0x0000, 0x20a1, 0x0088, 0x782b, 0x0026, 0x710c, 0x2011, 0x0040,\r
++      0x9182, 0x0040, 0x1210, 0x2110, 0x9006, 0x700e, 0x22a8, 0x4006,\r
++      0x8203, 0x7812, 0x782b, 0x0020, 0x3300, 0x701a, 0x782b, 0x0001,\r
++      0x015e, 0x014e, 0x013e, 0x002e, 0x001e, 0x0005, 0x2009, 0x19f2,\r
++      0x2104, 0xc095, 0x200a, 0x080c, 0x112b, 0x0005, 0x0016, 0x00e6,\r
++      0x2071, 0x19f2, 0x00f6, 0x2079, 0x0080, 0x792c, 0xd1bc, 0x190c,\r
++      0x0d5e, 0x782b, 0x0002, 0xd1fc, 0x0120, 0x918c, 0x0700, 0x7004,\r
++      0x0023, 0x00fe, 0x00ee, 0x001e, 0x0005, 0x113c, 0x11e4, 0x1218,\r
++      0x0d65, 0x0d65, 0x12d1, 0x0d65, 0x918c, 0x0700, 0x1550, 0x0136,\r
++      0x0146, 0x0156, 0x7014, 0x20e8, 0x7018, 0x20a0, 0x20e1, 0x0000,\r
++      0x2099, 0x0088, 0x782b, 0x0040, 0x7010, 0x20a8, 0x4005, 0x3400,\r
++      0x701a, 0x015e, 0x014e, 0x013e, 0x700c, 0x9005, 0x0578, 0x7800,\r
++      0x7802, 0x7804, 0x7806, 0x080c, 0x1181, 0x0005, 0x7008, 0x0096,\r
++      0x2048, 0xa86f, 0x0100, 0x009e, 0x7007, 0x0000, 0x080c, 0x113c,\r
++      0x0005, 0x7008, 0x0096, 0x2048, 0xa86f, 0x0200, 0x009e, 0x0ca0,\r
++      0x918c, 0x0700, 0x1150, 0x700c, 0x9005, 0x0180, 0x7800, 0x7802,\r
++      0x7804, 0x7806, 0x080c, 0x1196, 0x0005, 0x7008, 0x0096, 0x2048,\r
++      0xa86f, 0x0200, 0x009e, 0x7007, 0x0000, 0x0080, 0x0096, 0x7008,\r
++      0x2048, 0x7800, 0xa88e, 0x7804, 0xa892, 0x7808, 0xa896, 0x780c,\r
++      0xa89a, 0xa86f, 0x0100, 0x009e, 0x7007, 0x0000, 0x0096, 0x00d6,\r
++      0x7008, 0x2048, 0x2001, 0x18af, 0x2004, 0x9906, 0x1128, 0xa89c,\r
++      0x080f, 0x00de, 0x009e, 0x00a0, 0x00de, 0x009e, 0x0096, 0x00d6,\r
++      0x7008, 0x2048, 0x0081, 0x0150, 0xa89c, 0x0086, 0x2940, 0x080f,\r
++      0x008e, 0x00de, 0x009e, 0x080c, 0x112b, 0x0005, 0x00de, 0x009e,\r
++      0x080c, 0x112b, 0x0005, 0xa8a8, 0xd08c, 0x0005, 0x0096, 0xa0a0,\r
++      0x904d, 0x090c, 0x0d65, 0xa06c, 0x908e, 0x0100, 0x0130, 0xa87b,\r
++      0x0030, 0xa883, 0x0000, 0xa897, 0x4002, 0x080c, 0x698a, 0xa09f,\r
++      0x0000, 0xa0a3, 0x0000, 0x2848, 0x080c, 0x1054, 0x009e, 0x0005,\r
++      0x00a6, 0xa0a0, 0x904d, 0x090c, 0x0d65, 0xa06c, 0x908e, 0x0100,\r
++      0x0128, 0xa87b, 0x0001, 0xa883, 0x0000, 0x00c0, 0xa80c, 0x2050,\r
++      0xb004, 0x9005, 0x0198, 0xa80e, 0x2050, 0x8006, 0x8006, 0x8007,\r
++      0x908c, 0x003f, 0x9084, 0xffc0, 0x9080, 0x0002, 0xa076, 0xa172,\r
++      0xb000, 0xa07a, 0x2810, 0x080c, 0x110c, 0x00e8, 0xa97c, 0xa894,\r
++      0x0016, 0x0006, 0x080c, 0x698a, 0x000e, 0x001e, 0xd1fc, 0x1138,\r
++      0xd1f4, 0x0128, 0x00c6, 0x2060, 0x080c, 0x9be7, 0x00ce, 0x7008,\r
++      0x2048, 0xa89f, 0x0000, 0xa8a3, 0x0000, 0x080c, 0x1054, 0x7007,\r
++      0x0000, 0x080c, 0x112b, 0x00ae, 0x0005, 0x0126, 0x2091, 0x8000,\r
++      0x782b, 0x1001, 0x7007, 0x0005, 0x7000, 0xc094, 0x7002, 0x012e,\r
++      0x0005, 0x7007, 0x0000, 0x080c, 0x113c, 0x0005, 0x0126, 0x2091,\r
++      0x2200, 0x2079, 0x0300, 0x2071, 0x1a3c, 0x7003, 0x0000, 0x78bf,\r
++      0x00f6, 0x0041, 0x7807, 0x0007, 0x7803, 0x0000, 0x7803, 0x0001,\r
++      0x012e, 0x0005, 0x00c6, 0x7803, 0x0000, 0x2001, 0x0165, 0x2003,\r
++      0x4198, 0x7808, 0xd09c, 0x0110, 0x7820, 0x0cd8, 0x2001, 0x1a3d,\r
++      0x2003, 0x0000, 0x78ab, 0x0004, 0x78ac, 0xd0ac, 0x1de8, 0x78ab,\r
++      0x0002, 0x7807, 0x0007, 0x7827, 0x0030, 0x782b, 0x0400, 0x7827,\r
++      0x0031, 0x782b, 0x1a4a, 0x781f, 0xff00, 0x781b, 0xff00, 0x2001,\r
++      0x0200, 0x2004, 0xd0dc, 0x0110, 0x781f, 0x0303, 0x2061, 0x1a4a,\r
++      0x602f, 0x1ddc, 0x2001, 0x1819, 0x2004, 0x9082, 0x1ddc, 0x6032,\r
++      0x603b, 0x1cf7, 0x602b, 0x1a8a, 0x6007, 0x1a6a, 0x2061, 0x1a6a,\r
++      0x00ce, 0x0005, 0x0126, 0x2091, 0x2200, 0x7908, 0x9184, 0x0070,\r
++      0x190c, 0x0d5e, 0xd19c, 0x05a0, 0x7820, 0x908c, 0xf000, 0x0540,\r
++      0x2060, 0x6020, 0x9086, 0x0003, 0x1550, 0x6000, 0x9086, 0x0004,\r
++      0x1530, 0x6114, 0x2148, 0xa876, 0xa87a, 0xa867, 0x0103, 0x080c,\r
++      0x67ac, 0x00b6, 0x6010, 0x2058, 0xba3c, 0x8211, 0x0208, 0xba3e,\r
++      0xb8c0, 0x9005, 0x190c, 0x639b, 0x00be, 0x6044, 0xd0fc, 0x190c,\r
++      0x98f1, 0x080c, 0x9c0f, 0x7808, 0xd09c, 0x19b0, 0x012e, 0x0005,\r
++      0x908a, 0x0024, 0x1a0c, 0x0d65, 0x002b, 0x012e, 0x0005, 0x04b0,\r
++      0x012e, 0x0005, 0x138e, 0x13b4, 0x13e4, 0x13e9, 0x13ed, 0x13f2,\r
++      0x141a, 0x141e, 0x142c, 0x1430, 0x138e, 0x14ba, 0x14be, 0x1521,\r
++      0x138e, 0x138e, 0x138e, 0x138e, 0x138e, 0x138e, 0x138e, 0x138e,\r
++      0x138e, 0x138e, 0x138e, 0x138e, 0x138e, 0x13f4, 0x138e, 0x13bc,\r
++      0x13e1, 0x13a8, 0x138e, 0x13c8, 0x1392, 0x1390, 0x080c, 0x0d65,\r
++      0x080c, 0x0d5e, 0x080c, 0x1528, 0x2009, 0x1a49, 0x2104, 0x8000,\r
++      0x200a, 0x080c, 0x7b22, 0x080c, 0x195f, 0x0005, 0x6044, 0xd0fc,\r
++      0x190c, 0x98f1, 0x2009, 0x0055, 0x080c, 0x9c85, 0x012e, 0x0005,\r
++      0x080c, 0x1528, 0x2060, 0x6044, 0xd0fc, 0x190c, 0x98f1, 0x2009,\r
++      0x0055, 0x080c, 0x9c85, 0x0005, 0x2009, 0x0048, 0x080c, 0x1528,\r
++      0x2060, 0x080c, 0x9c85, 0x0005, 0x2009, 0x0054, 0x080c, 0x1528,\r
++      0x2060, 0x6044, 0xd0fc, 0x190c, 0x98f1, 0x080c, 0x9c85, 0x0005,\r
++      0x080c, 0x1528, 0x2060, 0x0056, 0x0066, 0x080c, 0x1528, 0x2028,\r
++      0x080c, 0x1528, 0x2030, 0x0036, 0x0046, 0x2021, 0x0000, 0x2418,\r
++      0x2009, 0x0056, 0x080c, 0x9c85, 0x004e, 0x003e, 0x006e, 0x005e,\r
++      0x0005, 0x080c, 0x1528, 0x0005, 0x7004, 0xc085, 0xc0b5, 0x7006,\r
++      0x0005, 0x7004, 0xc085, 0x7006, 0x0005, 0x080c, 0x1528, 0x080c,\r
++      0x15e5, 0x0005, 0x080c, 0x0d65, 0x080c, 0x1528, 0x2060, 0x6014,\r
++      0x0096, 0x2048, 0xa83b, 0xffff, 0x009e, 0x2009, 0x0048, 0x080c,\r
++      0x9c85, 0x2001, 0x015d, 0x2003, 0x0000, 0x2009, 0x03e8, 0x8109,\r
++      0x0160, 0x2001, 0x0201, 0x2004, 0x9005, 0x0dc8, 0x2001, 0x0218,\r
++      0x2004, 0xd0ec, 0x1110, 0x080c, 0x152d, 0x2001, 0x0307, 0x2003,\r
++      0x8000, 0x0005, 0x7004, 0xc095, 0x7006, 0x0005, 0x080c, 0x1528,\r
++      0x2060, 0x6014, 0x0096, 0x2048, 0xa83b, 0xffff, 0x009e, 0x2009,\r
++      0x0048, 0x080c, 0x9c85, 0x0005, 0x080c, 0x1528, 0x080c, 0x0d65,\r
++      0x080c, 0x1528, 0x080c, 0x14a5, 0x7827, 0x0018, 0x79ac, 0xd1dc,\r
++      0x0540, 0x7827, 0x0015, 0x7828, 0x782b, 0x0000, 0x9065, 0x0138,\r
++      0x2001, 0x020d, 0x2003, 0x0050, 0x2003, 0x0020, 0x0400, 0x7004,\r
++      0x9005, 0x1180, 0x78ab, 0x0004, 0x7827, 0x0018, 0x782b, 0x0000,\r
++      0xd1bc, 0x090c, 0x0d65, 0x2001, 0x020d, 0x2003, 0x0050, 0x2003,\r
++      0x0020, 0x0480, 0x78ab, 0x0004, 0x7803, 0x0001, 0x080c, 0x14be,\r
++      0x0005, 0x7828, 0x782b, 0x0000, 0x9065, 0x090c, 0x0d65, 0x6014,\r
++      0x2048, 0x78ab, 0x0004, 0x918c, 0x0700, 0x0198, 0x080c, 0x7b22,\r
++      0x080c, 0x195f, 0x080c, 0xb847, 0x0158, 0xa9ac, 0xa936, 0xa9b0,\r
++      0xa93a, 0xa83f, 0xffff, 0xa843, 0xffff, 0xa880, 0xc0bd, 0xa882,\r
++      0x0005, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc, 0x6024,\r
++      0x190c, 0xbc43, 0x2029, 0x00c8, 0x8529, 0x0128, 0x2001, 0x0201,\r
++      0x2004, 0x9005, 0x0dc8, 0x7dbc, 0x080c, 0xd5d3, 0xd5a4, 0x1118,\r
++      0x080c, 0x152d, 0x0005, 0x080c, 0x7b22, 0x080c, 0x195f, 0x0005,\r
++      0x781f, 0x0300, 0x7803, 0x0001, 0x0005, 0x0016, 0x0066, 0x0076,\r
++      0x00f6, 0x2079, 0x0300, 0x7908, 0x918c, 0x0007, 0x9186, 0x0003,\r
++      0x0120, 0x2001, 0x0016, 0x080c, 0x159e, 0x00fe, 0x007e, 0x006e,\r
++      0x001e, 0x0005, 0x7004, 0xc09d, 0x7006, 0x0005, 0x7104, 0x9184,\r
++      0x0004, 0x190c, 0x0d65, 0xd184, 0x1189, 0xd19c, 0x0158, 0xc19c,\r
++      0x7106, 0x2001, 0x020d, 0x2003, 0x0050, 0x2003, 0x0020, 0x080c,\r
++      0x152d, 0x0005, 0x81ff, 0x190c, 0x0d65, 0x0005, 0xc184, 0xd1b4,\r
++      0xc1b4, 0x7106, 0x0016, 0x00e6, 0x15e0, 0x2071, 0x0200, 0x080c,\r
++      0x15d9, 0x6014, 0x9005, 0x05a8, 0x0096, 0x2048, 0xa864, 0x009e,\r
++      0x9084, 0x00ff, 0x908e, 0x0029, 0x0160, 0x908e, 0x0048, 0x1548,\r
++      0x601c, 0xd084, 0x11d8, 0x00f6, 0x2c78, 0x080c, 0x164f, 0x00fe,\r
++      0x00a8, 0x00f6, 0x2c78, 0x080c, 0x1797, 0x00fe, 0x2009, 0x01f4,\r
++      0x8109, 0x0160, 0x2001, 0x0201, 0x2004, 0x9005, 0x0dc8, 0x2001,\r
++      0x0218, 0x2004, 0xd0ec, 0x1110, 0x0401, 0x0040, 0x2001, 0x020d,\r
++      0x2003, 0x0020, 0x080c, 0x12ea, 0x7803, 0x0001, 0x00ee, 0x001e,\r
++      0x0005, 0x2001, 0x020d, 0x2003, 0x0050, 0x2003, 0x0020, 0x0069,\r
++      0x0ca8, 0x0031, 0x2060, 0x2009, 0x0053, 0x080c, 0x9c85, 0x0005,\r
++      0x7808, 0xd09c, 0x0de8, 0x7820, 0x0005, 0x080c, 0x14a5, 0x00d6,\r
++      0x2069, 0x0200, 0x2009, 0x01f4, 0x8109, 0x0510, 0x6804, 0x9005,\r
++      0x0dd8, 0x2001, 0x015d, 0x2003, 0x0000, 0x79bc, 0xd1a4, 0x1528,\r
++      0x79b8, 0x918c, 0x0fff, 0x0180, 0x9182, 0x0841, 0x1268, 0x9188,\r
++      0x0007, 0x918c, 0x0ff8, 0x810c, 0x810c, 0x810c, 0x080c, 0x1590,\r
++      0x6827, 0x0001, 0x8109, 0x1dd0, 0x04d9, 0x6827, 0x0002, 0x04c1,\r
++      0x6804, 0x9005, 0x1130, 0x682c, 0xd0e4, 0x1500, 0x6804, 0x9005,\r
++      0x0de8, 0x79b8, 0xd1ec, 0x1130, 0x08c0, 0x080c, 0x7b22, 0x080c,\r
++      0x195f, 0x0090, 0x7827, 0x0015, 0x782b, 0x0000, 0x7827, 0x0018,\r
++      0x782b, 0x0000, 0x2001, 0x020d, 0x2003, 0x0020, 0x2001, 0x0307,\r
++      0x2003, 0x0300, 0x7803, 0x0001, 0x00de, 0x0005, 0x682c, 0x9084,\r
++      0x5400, 0x9086, 0x5400, 0x0d30, 0x7827, 0x0015, 0x782b, 0x0000,\r
++      0x7803, 0x0001, 0x6800, 0x9085, 0x1800, 0x6802, 0x00de, 0x0005,\r
++      0x6824, 0x9084, 0x0003, 0x1de0, 0x0005, 0x2001, 0x0030, 0x2c08,\r
++      0x621c, 0x0021, 0x7830, 0x9086, 0x0041, 0x0005, 0x00f6, 0x2079,\r
++      0x0300, 0x0006, 0x7808, 0xd09c, 0x0140, 0x0016, 0x0026, 0x00c6,\r
++      0x080c, 0x132a, 0x00ce, 0x002e, 0x001e, 0x000e, 0x0006, 0x7832,\r
++      0x7936, 0x7a3a, 0x781b, 0x8080, 0x0059, 0x1118, 0x000e, 0x00fe,\r
++      0x0005, 0x000e, 0x792c, 0x3900, 0x8000, 0x2004, 0x080c, 0x0d65,\r
++      0x2009, 0xff00, 0x8109, 0x0120, 0x7818, 0xd0bc, 0x1dd8, 0x0005,\r
++      0x9085, 0x0001, 0x0005, 0x7832, 0x7936, 0x7a3a, 0x781b, 0x8080,\r
++      0x0c79, 0x1108, 0x0005, 0x792c, 0x3900, 0x8000, 0x2004, 0x080c,\r
++      0x0d65, 0x7037, 0x0001, 0x7150, 0x7037, 0x0002, 0x7050, 0x2060,\r
++      0xd1bc, 0x1110, 0x7054, 0x2060, 0x0005, 0x00e6, 0x0016, 0x2071,\r
++      0x0200, 0x0c79, 0x6124, 0xd1dc, 0x01f8, 0x701c, 0xd08c, 0x0904,\r
++      0x1644, 0x7017, 0x0000, 0x2001, 0x0264, 0x2004, 0xd0bc, 0x0904,\r
++      0x1644, 0x2001, 0x0268, 0x00c6, 0x2064, 0x6104, 0x6038, 0x00ce,\r
++      0x918e, 0x0039, 0x1904, 0x1644, 0x9c06, 0x15f0, 0x0126, 0x2091,\r
++      0x2600, 0x080c, 0x7a7a, 0x012e, 0x7358, 0x745c, 0x6014, 0x905d,\r
++      0x0598, 0x2b48, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc,\r
++      0x190c, 0xbc1e, 0xab42, 0xac3e, 0x2001, 0x1875, 0x2004, 0xd0b4,\r
++      0x1170, 0x601c, 0xd0e4, 0x1158, 0x6010, 0x00b6, 0x2058, 0xb800,\r
++      0x00be, 0xd0bc, 0x1120, 0xa83b, 0x7fff, 0xa837, 0xffff, 0x080c,\r
++      0x1d17, 0x1190, 0x080c, 0x17f2, 0x2a00, 0xa816, 0x0130, 0x2800,\r
++      0xa80e, 0x2c05, 0xa80a, 0x2c00, 0xa812, 0x7037, 0x0020, 0x781f,\r
++      0x0300, 0x001e, 0x00ee, 0x0005, 0x7037, 0x0050, 0x7037, 0x0020,\r
++      0x001e, 0x00ee, 0x080c, 0x152d, 0x0005, 0x080c, 0x0d65, 0x0016,\r
++      0x2009, 0x00a0, 0x8109, 0xa001, 0xa001, 0xa001, 0x1dd8, 0x001e,\r
++      0x2cf0, 0x0126, 0x2091, 0x2200, 0x00c6, 0x3e60, 0x6014, 0x2048,\r
++      0x2940, 0x903e, 0x2730, 0xa864, 0x2068, 0xa81a, 0x9d84, 0x000f,\r
++      0x9088, 0x1cf7, 0x2165, 0x0002, 0x1683, 0x16d0, 0x1683, 0x1683,\r
++      0x1683, 0x16b2, 0x1683, 0x1687, 0x167c, 0x16c7, 0x1683, 0x1683,\r
++      0x1683, 0x178c, 0x169b, 0x1691, 0xa964, 0x918c, 0x00ff, 0x918e,\r
++      0x0048, 0x0904, 0x16c7, 0x9085, 0x0001, 0x0804, 0x1783, 0xa87c,\r
++      0xd0bc, 0x0dc8, 0xa890, 0xa842, 0xa88c, 0xa83e, 0xa888, 0x0804,\r
++      0x16d7, 0xa87c, 0xd0bc, 0x0d78, 0xa890, 0xa842, 0xa88c, 0xa83e,\r
++      0xa888, 0x0804, 0x1726, 0xa87c, 0xd0bc, 0x0d28, 0xa890, 0xa842,\r
++      0xa88c, 0xa83e, 0xa804, 0x9045, 0x090c, 0x0d65, 0xa164, 0xa91a,\r
++      0x91ec, 0x000f, 0x9d80, 0x1cf7, 0x2065, 0xa888, 0xd19c, 0x1904,\r
++      0x1726, 0x0428, 0xa87c, 0xd0ac, 0x0970, 0xa804, 0x9045, 0x090c,\r
++      0x0d65, 0xa164, 0xa91a, 0x91ec, 0x000f, 0x9d80, 0x1cf7, 0x2065,\r
++      0x9006, 0xa842, 0xa83e, 0xd19c, 0x1904, 0x1726, 0x0080, 0xa87c,\r
++      0xd0ac, 0x0904, 0x1683, 0x9006, 0xa842, 0xa83e, 0x0804, 0x1726,\r
++      0xa87c, 0xd0ac, 0x0904, 0x1683, 0x9006, 0xa842, 0xa83e, 0x2c05,\r
++      0x908a, 0x0036, 0x1a0c, 0x0d65, 0x9082, 0x001b, 0x0002, 0x16fa,\r
++      0x16fa, 0x16fc, 0x16fa, 0x16fa, 0x16fa, 0x1702, 0x16fa, 0x16fa,\r
++      0x16fa, 0x1708, 0x16fa, 0x16fa, 0x16fa, 0x170e, 0x16fa, 0x16fa,\r
++      0x16fa, 0x1714, 0x16fa, 0x16fa, 0x16fa, 0x171a, 0x16fa, 0x16fa,\r
++      0x16fa, 0x1720, 0x080c, 0x0d65, 0xa574, 0xa478, 0xa37c, 0xa280,\r
++      0x0804, 0x176b, 0xa584, 0xa488, 0xa38c, 0xa290, 0x0804, 0x176b,\r
++      0xa594, 0xa498, 0xa39c, 0xa2a0, 0x0804, 0x176b, 0xa5a4, 0xa4a8,\r
++      0xa3ac, 0xa2b0, 0x0804, 0x176b, 0xa5b4, 0xa4b8, 0xa3bc, 0xa2c0,\r
++      0x0804, 0x176b, 0xa5c4, 0xa4c8, 0xa3cc, 0xa2d0, 0x0804, 0x176b,\r
++      0xa5d4, 0xa4d8, 0xa3dc, 0xa2e0, 0x0804, 0x176b, 0x2c05, 0x908a,\r
++      0x0034, 0x1a0c, 0x0d65, 0x9082, 0x001b, 0x0002, 0x1749, 0x1747,\r
++      0x1747, 0x1747, 0x1747, 0x1747, 0x1750, 0x1747, 0x1747, 0x1747,\r
++      0x1747, 0x1747, 0x1757, 0x1747, 0x1747, 0x1747, 0x1747, 0x1747,\r
++      0x175e, 0x1747, 0x1747, 0x1747, 0x1747, 0x1747, 0x1765, 0x080c,\r
++      0x0d65, 0xa56c, 0xa470, 0xa774, 0xa678, 0xa37c, 0xa280, 0x00d8,\r
++      0xa584, 0xa488, 0xa78c, 0xa690, 0xa394, 0xa298, 0x00a0, 0xa59c,\r
++      0xa4a0, 0xa7a4, 0xa6a8, 0xa3ac, 0xa2b0, 0x0068, 0xa5b4, 0xa4b8,\r
++      0xa7bc, 0xa6c0, 0xa3c4, 0xa2c8, 0x0030, 0xa5cc, 0xa4d0, 0xa7d4,\r
++      0xa6d8, 0xa3dc, 0xa2e0, 0xab2e, 0xaa32, 0xad1e, 0xac22, 0xaf26,\r
++      0xae2a, 0xa988, 0x8c60, 0x2c1d, 0xa8ac, 0xaab0, 0xa836, 0xaa3a,\r
++      0x8109, 0xa916, 0x1158, 0x3e60, 0x601c, 0xc085, 0x601e, 0xa87c,\r
++      0xc0dd, 0xa87e, 0x9006, 0x00ce, 0x012e, 0x0005, 0x2800, 0xa80e,\r
++      0xab0a, 0x2c00, 0xa812, 0x0c78, 0x0804, 0x1683, 0x0016, 0x2009,\r
++      0x00a0, 0x8109, 0xa001, 0xa001, 0xa001, 0x1dd8, 0x001e, 0x2ff0,\r
++      0x0126, 0x2091, 0x2200, 0x00c6, 0x3e60, 0x6014, 0x2048, 0x2940,\r
++      0xa80e, 0x2061, 0x1cf2, 0xa813, 0x1cf2, 0x2c05, 0xa80a, 0xa964,\r
++      0xa91a, 0xa87c, 0xd0ac, 0x090c, 0x0d65, 0x9006, 0xa842, 0xa83e,\r
++      0x2c05, 0x908a, 0x0034, 0x1a0c, 0x0d65, 0xadcc, 0xacd0, 0xafd4,\r
++      0xaed8, 0xabdc, 0xaae0, 0xab2e, 0xaa32, 0xad1e, 0xac22, 0xaf26,\r
++      0xae2a, 0xa8ac, 0xaab0, 0xa836, 0xaa3a, 0xa988, 0xa864, 0x9084,\r
++      0x00ff, 0x9086, 0x0008, 0x1120, 0x8109, 0xa916, 0x0128, 0x0078,\r
++      0x918a, 0x0002, 0xa916, 0x1158, 0x3e60, 0x601c, 0xc085, 0x601e,\r
++      0xa87c, 0xc0dd, 0xa87e, 0x9006, 0x00ce, 0x012e, 0x0005, 0xa804,\r
++      0x9045, 0x090c, 0x0d65, 0xa80e, 0xa064, 0xa81a, 0x9084, 0x000f,\r
++      0x9080, 0x1cf7, 0x2015, 0x82ff, 0x090c, 0x0d65, 0xaa12, 0x2205,\r
++      0xa80a, 0x0c10, 0x903e, 0x2730, 0xa880, 0xd0fc, 0x1190, 0x2d00,\r
++      0x0002, 0x18e7, 0x1849, 0x1849, 0x18e7, 0x18e7, 0x18e1, 0x18e7,\r
++      0x1849, 0x1898, 0x1898, 0x1898, 0x18e7, 0x18e7, 0x18e7, 0x18de,\r
++      0x1898, 0xc0fc, 0xa882, 0xab2c, 0xaa30, 0xad1c, 0xac20, 0xdd9c,\r
++      0x0904, 0x18e9, 0x2c05, 0x908a, 0x0034, 0x1a0c, 0x0d65, 0x9082,\r
++      0x001b, 0x0002, 0x1835, 0x1833, 0x1833, 0x1833, 0x1833, 0x1833,\r
++      0x1839, 0x1833, 0x1833, 0x1833, 0x1833, 0x1833, 0x183d, 0x1833,\r
++      0x1833, 0x1833, 0x1833, 0x1833, 0x1841, 0x1833, 0x1833, 0x1833,\r
++      0x1833, 0x1833, 0x1845, 0x080c, 0x0d65, 0xa774, 0xa678, 0x0804,\r
++      0x18e9, 0xa78c, 0xa690, 0x0804, 0x18e9, 0xa7a4, 0xa6a8, 0x0804,\r
++      0x18e9, 0xa7bc, 0xa6c0, 0x0804, 0x18e9, 0xa7d4, 0xa6d8, 0x0804,\r
++      0x18e9, 0x2c05, 0x908a, 0x0036, 0x1a0c, 0x0d65, 0x9082, 0x001b,\r
++      0x0002, 0x186c, 0x186c, 0x186e, 0x186c, 0x186c, 0x186c, 0x1874,\r
++      0x186c, 0x186c, 0x186c, 0x187a, 0x186c, 0x186c, 0x186c, 0x1880,\r
++      0x186c, 0x186c, 0x186c, 0x1886, 0x186c, 0x186c, 0x186c, 0x188c,\r
++      0x186c, 0x186c, 0x186c, 0x1892, 0x080c, 0x0d65, 0xa574, 0xa478,\r
++      0xa37c, 0xa280, 0x0804, 0x18e9, 0xa584, 0xa488, 0xa38c, 0xa290,\r
++      0x0804, 0x18e9, 0xa594, 0xa498, 0xa39c, 0xa2a0, 0x0804, 0x18e9,\r
++      0xa5a4, 0xa4a8, 0xa3ac, 0xa2b0, 0x0804, 0x18e9, 0xa5b4, 0xa4b8,\r
++      0xa3bc, 0xa2c0, 0x0804, 0x18e9, 0xa5c4, 0xa4c8, 0xa3cc, 0xa2d0,\r
++      0x0804, 0x18e9, 0xa5d4, 0xa4d8, 0xa3dc, 0xa2e0, 0x0804, 0x18e9,\r
++      0x2c05, 0x908a, 0x0034, 0x1a0c, 0x0d65, 0x9082, 0x001b, 0x0002,\r
++      0x18bb, 0x18b9, 0x18b9, 0x18b9, 0x18b9, 0x18b9, 0x18c2, 0x18b9,\r
++      0x18b9, 0x18b9, 0x18b9, 0x18b9, 0x18c9, 0x18b9, 0x18b9, 0x18b9,\r
++      0x18b9, 0x18b9, 0x18d0, 0x18b9, 0x18b9, 0x18b9, 0x18b9, 0x18b9,\r
++      0x18d7, 0x080c, 0x0d65, 0xa56c, 0xa470, 0xa774, 0xa678, 0xa37c,\r
++      0xa280, 0x0438, 0xa584, 0xa488, 0xa78c, 0xa690, 0xa394, 0xa298,\r
++      0x0400, 0xa59c, 0xa4a0, 0xa7a4, 0xa6a8, 0xa3ac, 0xa2b0, 0x00c8,\r
++      0xa5b4, 0xa4b8, 0xa7bc, 0xa6c0, 0xa3c4, 0xa2c8, 0x0090, 0xa5cc,\r
++      0xa4d0, 0xa7d4, 0xa6d8, 0xa3dc, 0xa2e0, 0x0058, 0x9d86, 0x000e,\r
++      0x1130, 0x080c, 0x1ccd, 0x1904, 0x17f2, 0x900e, 0x0050, 0x080c,\r
++      0x0d65, 0xab2e, 0xaa32, 0xad1e, 0xac22, 0xaf26, 0xae2a, 0x080c,\r
++      0x1ccd, 0x0005, 0x6014, 0x2048, 0x6118, 0x810c, 0x810c, 0x810c,\r
++      0x81ff, 0x1118, 0xa887, 0x0001, 0x0008, 0xa986, 0x601b, 0x0002,\r
++      0xa974, 0xd1dc, 0x1108, 0x0005, 0xa934, 0xa88c, 0x9106, 0x1158,\r
++      0xa938, 0xa890, 0x9106, 0x1138, 0x601c, 0xc084, 0x601e, 0x2009,\r
++      0x0048, 0x0804, 0x9c85, 0x0005, 0x0126, 0x00c6, 0x2091, 0x2200,\r
++      0x00ce, 0x7908, 0x918c, 0x0007, 0x9186, 0x0000, 0x05b0, 0x9186,\r
++      0x0003, 0x0598, 0x6020, 0x6023, 0x0000, 0x0006, 0x2031, 0x0008,\r
++      0x00c6, 0x781f, 0x0808, 0x7808, 0xd09c, 0x0120, 0x080c, 0x132a,\r
++      0x8631, 0x1db8, 0x00ce, 0x781f, 0x0800, 0x2031, 0x0168, 0x00c6,\r
++      0x7808, 0xd09c, 0x190c, 0x132a, 0x00ce, 0x2001, 0x0038, 0x080c,\r
++      0x19ec, 0x7930, 0x9186, 0x0040, 0x0160, 0x9186, 0x0042, 0x190c,\r
++      0x0d65, 0x2001, 0x001e, 0x8001, 0x1df0, 0x8631, 0x1d40, 0x080c,\r
++      0x19fb, 0x000e, 0x6022, 0x012e, 0x0005, 0x080c, 0x19e8, 0x7827,\r
++      0x0015, 0x7828, 0x9c06, 0x1db8, 0x782b, 0x0000, 0x0ca0, 0x00f6,\r
++      0x2079, 0x0300, 0x7803, 0x0000, 0x78ab, 0x0004, 0x00fe, 0x080c,\r
++      0x70b7, 0x11b0, 0x2001, 0x0138, 0x2003, 0x0000, 0x2001, 0x0160,\r
++      0x2003, 0x0000, 0x2011, 0x012c, 0xa001, 0xa001, 0x8211, 0x1de0,\r
++      0x0081, 0x2001, 0x0386, 0x2003, 0x2020, 0x080c, 0x7158, 0x0005,\r
++      0x0479, 0x0039, 0x2001, 0x0160, 0x2502, 0x2001, 0x0138, 0x2202,\r
++      0x0005, 0x00e6, 0x2071, 0x0200, 0x080c, 0x2825, 0x2009, 0x003c,\r
++      0x080c, 0x2052, 0x2001, 0x015d, 0x2003, 0x0000, 0x7000, 0x9084,\r
++      0x003c, 0x1de0, 0x080c, 0x8074, 0x70a0, 0x70a2, 0x7098, 0x709a,\r
++      0x709c, 0x709e, 0x2001, 0x020d, 0x2003, 0x0020, 0x00f6, 0x2079,\r
++      0x0300, 0x080c, 0x12ea, 0x7803, 0x0001, 0x00fe, 0x00ee, 0x0005,\r
++      0x2001, 0x0138, 0x2014, 0x2003, 0x0000, 0x2001, 0x0160, 0x202c,\r
++      0x2003, 0x0000, 0x080c, 0x70b7, 0x1108, 0x0005, 0x2021, 0x0260,\r
++      0x2001, 0x0141, 0x201c, 0xd3dc, 0x1168, 0x2001, 0x0109, 0x201c,\r
++      0x939c, 0x0048, 0x1160, 0x2001, 0x0111, 0x201c, 0x83ff, 0x1110,\r
++      0x8421, 0x1d70, 0x2001, 0x015d, 0x2003, 0x0000, 0x0005, 0x0046,\r
++      0x2021, 0x0019, 0x2003, 0x0048, 0xa001, 0xa001, 0x201c, 0x939c,\r
++      0x0048, 0x0120, 0x8421, 0x1db0, 0x004e, 0x0c60, 0x004e, 0x0c40,\r
++      0x601c, 0xc084, 0x601e, 0x0005, 0x2c08, 0x621c, 0x080c, 0x159e,\r
++      0x7930, 0x0005, 0x2c08, 0x621c, 0x080c, 0x15cb, 0x7930, 0x0005,\r
++      0x8001, 0x1df0, 0x0005, 0x2031, 0x0005, 0x781c, 0x9084, 0x0007,\r
++      0x0170, 0x2001, 0x0038, 0x0c41, 0x9186, 0x0040, 0x0904, 0x1a59,\r
++      0x2001, 0x001e, 0x0c69, 0x8631, 0x1d80, 0x080c, 0x0d65, 0x781f,\r
++      0x0202, 0x2001, 0x015d, 0x2003, 0x0000, 0x2001, 0x0b10, 0x0c01,\r
++      0x781c, 0xd084, 0x0110, 0x0861, 0x04e0, 0x2001, 0x0030, 0x0891,\r
++      0x9186, 0x0040, 0x0568, 0x781c, 0xd084, 0x1da8, 0x781f, 0x0101,\r
++      0x2001, 0x0014, 0x0869, 0x2001, 0x0037, 0x0821, 0x9186, 0x0040,\r
++      0x0140, 0x2001, 0x0030, 0x080c, 0x19f2, 0x9186, 0x0040, 0x190c,\r
++      0x0d65, 0x00d6, 0x2069, 0x0200, 0x692c, 0xd1f4, 0x1170, 0xd1c4,\r
++      0x0160, 0xd19c, 0x0130, 0x6800, 0x9085, 0x1800, 0x6802, 0x00de,\r
++      0x0080, 0x6908, 0x9184, 0x0007, 0x1db0, 0x00de, 0x781f, 0x0100,\r
++      0x791c, 0x9184, 0x0007, 0x090c, 0x0d65, 0xa001, 0xa001, 0x781f,\r
++      0x0200, 0x0005, 0x0126, 0x2091, 0x2400, 0x2079, 0x0380, 0x2001,\r
++      0x19b8, 0x2070, 0x012e, 0x0005, 0x2cf0, 0x0126, 0x2091, 0x2400,\r
++      0x3e60, 0x6014, 0x2048, 0xa964, 0xa91a, 0x918c, 0x00ff, 0x9184,\r
++      0x000f, 0x0002, 0x1a8e, 0x1a8e, 0x1a8e, 0x1a8e, 0x1a8e, 0x1a8e,\r
++      0x1a8e, 0x1a8e, 0x1a82, 0x1a90, 0x1a8e, 0x1a8e, 0x1a8e, 0x1a8e,\r
++      0x1a8e, 0x1a8e, 0x9086, 0x0008, 0x1148, 0xa87c, 0xd0b4, 0x0904,\r
++      0x1c00, 0x2011, 0x1cf2, 0x2205, 0xab88, 0x0068, 0x080c, 0x0d65,\r
++      0xa87c, 0xd0b4, 0x0904, 0x1c00, 0x9184, 0x000f, 0x9080, 0x1cf7,\r
++      0x2015, 0x2205, 0xab88, 0x2908, 0xa80a, 0xa90e, 0xaa12, 0xab16,\r
++      0x9006, 0xa842, 0xa83e, 0x012e, 0x0005, 0x2cf0, 0x0126, 0x2091,\r
++      0x2400, 0x3e60, 0x6014, 0x2048, 0xa88c, 0xa990, 0xaaac, 0xabb0,\r
++      0xaa36, 0xab3a, 0xa83e, 0xa942, 0xa846, 0xa94a, 0xa964, 0x918c,\r
++      0x00ff, 0x9186, 0x001e, 0x0198, 0x2940, 0xa064, 0xa81a, 0x90ec,\r
++      0x000f, 0x9d80, 0x1cf7, 0x2065, 0x2c05, 0x2808, 0x2c10, 0xab88,\r
++      0xa80a, 0xa90e, 0xaa12, 0xab16, 0x012e, 0x3e60, 0x0005, 0xa804,\r
++      0x2040, 0x0c58, 0x2cf0, 0x0126, 0x2091, 0x2400, 0x3e60, 0x6014,\r
++      0x2048, 0xa97c, 0x2950, 0xd1dc, 0x1904, 0x1bca, 0xc1dd, 0xa97e,\r
++      0x9006, 0xa842, 0xa83e, 0xa988, 0x8109, 0xa916, 0xa964, 0xa91a,\r
++      0x9184, 0x000f, 0x9088, 0x1cf7, 0x2145, 0x0002, 0x1afe, 0x1b0c,\r
++      0x1afe, 0x1afe, 0x1afe, 0x1b00, 0x1afe, 0x1afe, 0x1b61, 0x1b61,\r
++      0x1afe, 0x1afe, 0x1afe, 0x1b5f, 0x1afe, 0x1afe, 0x080c, 0x0d65,\r
++      0xa804, 0x2050, 0xb164, 0xa91a, 0x9184, 0x000f, 0x9080, 0x1cf7,\r
++      0x2045, 0xd19c, 0x1904, 0x1b61, 0x9036, 0x2638, 0x2805, 0x908a,\r
++      0x0036, 0x1a0c, 0x0d65, 0x9082, 0x001b, 0x0002, 0x1b31, 0x1b31,\r
++      0x1b33, 0x1b31, 0x1b31, 0x1b31, 0x1b39, 0x1b31, 0x1b31, 0x1b31,\r
++      0x1b3f, 0x1b31, 0x1b31, 0x1b31, 0x1b45, 0x1b31, 0x1b31, 0x1b31,\r
++      0x1b4b, 0x1b31, 0x1b31, 0x1b31, 0x1b51, 0x1b31, 0x1b31, 0x1b31,\r
++      0x1b57, 0x080c, 0x0d65, 0xb574, 0xb478, 0xb37c, 0xb280, 0x0804,\r
++      0x1ba6, 0xb584, 0xb488, 0xb38c, 0xb290, 0x0804, 0x1ba6, 0xb594,\r
++      0xb498, 0xb39c, 0xb2a0, 0x0804, 0x1ba6, 0xb5a4, 0xb4a8, 0xb3ac,\r
++      0xb2b0, 0x0804, 0x1ba6, 0xb5b4, 0xb4b8, 0xb3bc, 0xb2c0, 0x0804,\r
++      0x1ba6, 0xb5c4, 0xb4c8, 0xb3cc, 0xb2d0, 0x0804, 0x1ba6, 0xb5d4,\r
++      0xb4d8, 0xb3dc, 0xb2e0, 0x0804, 0x1ba6, 0x0804, 0x1ba6, 0x080c,\r
++      0x0d65, 0x2805, 0x908a, 0x0034, 0x1a0c, 0x0d65, 0x9082, 0x001b,\r
++      0x0002, 0x1b84, 0x1b82, 0x1b82, 0x1b82, 0x1b82, 0x1b82, 0x1b8b,\r
++      0x1b82, 0x1b82, 0x1b82, 0x1b82, 0x1b82, 0x1b92, 0x1b82, 0x1b82,\r
++      0x1b82, 0x1b82, 0x1b82, 0x1b99, 0x1b82, 0x1b82, 0x1b82, 0x1b82,\r
++      0x1b82, 0x1ba0, 0x080c, 0x0d65, 0xb56c, 0xb470, 0xb774, 0xb678,\r
++      0xb37c, 0xb280, 0x00d8, 0xb584, 0xb488, 0xb78c, 0xb690, 0xb394,\r
++      0xb298, 0x00a0, 0xb59c, 0xb4a0, 0xb7a4, 0xb6a8, 0xb3ac, 0xb2b0,\r
++      0x0068, 0xb5b4, 0xb4b8, 0xb7bc, 0xb6c0, 0xb3c4, 0xb2c8, 0x0030,\r
++      0xb5cc, 0xb4d0, 0xb7d4, 0xb6d8, 0xb3dc, 0xb2e0, 0xab2e, 0xaa32,\r
++      0xad1e, 0xac22, 0xaf26, 0xae2a, 0xa988, 0x8109, 0xa916, 0x1118,\r
++      0x9006, 0x012e, 0x0005, 0x8840, 0x2805, 0x9005, 0x1168, 0xb004,\r
++      0x9005, 0x090c, 0x0d65, 0x2050, 0xb164, 0xa91a, 0x9184, 0x000f,\r
++      0x9080, 0x1cf7, 0x2045, 0x2805, 0x2810, 0x2a08, 0xa80a, 0xa90e,\r
++      0xaa12, 0x0c30, 0x3e60, 0x6344, 0xd3fc, 0x190c, 0x0d65, 0xa93c,\r
++      0xaa40, 0xa844, 0x9106, 0x1118, 0xa848, 0x9206, 0x0508, 0x2958,\r
++      0xab48, 0xac44, 0x2940, 0x080c, 0x1d17, 0x1998, 0x2850, 0x2c40,\r
++      0xab14, 0xa880, 0xd0fc, 0x1140, 0xa810, 0x2005, 0xa80a, 0x2a00,\r
++      0xa80e, 0x2009, 0x8015, 0x0070, 0x00c6, 0x3e60, 0x6044, 0xc0a4,\r
++      0x9085, 0x8005, 0x6046, 0x00ce, 0x8319, 0xab16, 0x1904, 0x1bb3,\r
++      0x2009, 0x8005, 0x3e60, 0x6044, 0x9105, 0x6046, 0x0804, 0x1bb0,\r
++      0x080c, 0x0d65, 0x00f6, 0x00e6, 0x0096, 0x00c6, 0x0026, 0x704c,\r
++      0x9c06, 0x190c, 0x0d65, 0x2079, 0x0090, 0x2001, 0x0105, 0x2003,\r
++      0x0010, 0x782b, 0x0004, 0x7057, 0x0000, 0x6014, 0x2048, 0x080c,\r
++      0xb847, 0x0118, 0xa880, 0xc0bd, 0xa882, 0x6020, 0x9086, 0x0006,\r
++      0x1170, 0x2061, 0x0100, 0x62c8, 0x2001, 0x00fa, 0x8001, 0x1df0,\r
++      0x60c8, 0x9206, 0x1dc0, 0x60c4, 0xa89a, 0x60c8, 0xa896, 0x704c,\r
++      0x2060, 0x00c6, 0x080c, 0xb452, 0x080c, 0x98c8, 0x00ce, 0x704c,\r
++      0x9c06, 0x1150, 0x2009, 0x0040, 0x080c, 0x2052, 0x080c, 0x94b8,\r
++      0x2011, 0x0000, 0x080c, 0x9343, 0x002e, 0x00ce, 0x009e, 0x00ee,\r
++      0x00fe, 0x0005, 0x00f6, 0x2079, 0x0090, 0x781c, 0x0006, 0x7818,\r
++      0x0006, 0x2079, 0x0100, 0x7a14, 0x9284, 0x1984, 0x9085, 0x0012,\r
++      0x7816, 0x2019, 0x1000, 0x8319, 0x090c, 0x0d65, 0x7820, 0xd0bc,\r
++      0x1dd0, 0x79c8, 0x000e, 0x9102, 0x001e, 0x0006, 0x0016, 0x79c4,\r
++      0x000e, 0x9103, 0x78c6, 0x000e, 0x78ca, 0x9284, 0x1984, 0x9085,\r
++      0x0012, 0x7816, 0x2079, 0x0090, 0x782b, 0x0008, 0x7057, 0x0000,\r
++      0x00fe, 0x0005, 0x00f6, 0x00e6, 0x2071, 0x19b8, 0x7054, 0x9086,\r
++      0x0000, 0x0904, 0x1cc8, 0x2079, 0x0090, 0x2009, 0x0207, 0x210c,\r
++      0xd194, 0x01b8, 0x2009, 0x020c, 0x210c, 0x9184, 0x0003, 0x0188,\r
++      0x080c, 0xd61c, 0x2001, 0x0133, 0x2004, 0x9005, 0x090c, 0x0d65,\r
++      0x0016, 0x2009, 0x0040, 0x080c, 0x2052, 0x001e, 0x2001, 0x020c,\r
++      0x2102, 0x2009, 0x0206, 0x2104, 0x2009, 0x0203, 0x210c, 0x9106,\r
++      0x1120, 0x2009, 0x0040, 0x080c, 0x2052, 0x782c, 0xd0fc, 0x09a8,\r
++      0x080c, 0x98e4, 0x782c, 0xd0fc, 0x1de8, 0x080c, 0x98c8, 0x7054,\r
++      0x9086, 0x0000, 0x1950, 0x782b, 0x0004, 0x782c, 0xd0ac, 0x1de8,\r
++      0x2009, 0x0040, 0x080c, 0x2052, 0x782b, 0x0002, 0x7057, 0x0000,\r
++      0x00ee, 0x00fe, 0x0005, 0x080c, 0x0d65, 0x8c60, 0x2c05, 0x9005,\r
++      0x0110, 0x8a51, 0x0005, 0xa004, 0x9005, 0x0168, 0xa85a, 0x2040,\r
++      0xa064, 0x9084, 0x000f, 0x9080, 0x1cf7, 0x2065, 0x8cff, 0x090c,\r
++      0x0d65, 0x8a51, 0x0005, 0x2050, 0x0005, 0x0000, 0x001d, 0x0021,\r
++      0x0025, 0x0029, 0x002d, 0x0031, 0x0035, 0x0000, 0x001b, 0x0021,\r
++      0x0027, 0x002d, 0x0033, 0x0000, 0x0000, 0x0023, 0x0000, 0x0000,\r
++      0x1cea, 0x1ce6, 0x0000, 0x0000, 0x1cf4, 0x0000, 0x1cea, 0x1cf1,\r
++      0x1cf1, 0x1cee, 0x0000, 0x0000, 0x0000, 0x1cf4, 0x1cf1, 0x0000,\r
++      0x1cec, 0x1cec, 0x0000, 0x0000, 0x1cf4, 0x0000, 0x1cec, 0x1cf2,\r
++      0x1cf2, 0x1cf2, 0x0000, 0x0000, 0x0000, 0x1cf4, 0x1cf2, 0x00c6,\r
++      0x00d6, 0x0086, 0xab42, 0xac3e, 0xa888, 0x9055, 0x0904, 0x1ef6,\r
++      0x2940, 0xa064, 0x90ec, 0x000f, 0x9084, 0x00ff, 0x9086, 0x0008,\r
++      0x1118, 0x2061, 0x1cf2, 0x00d0, 0x9de0, 0x1cf7, 0x9d86, 0x0007,\r
++      0x0130, 0x9d86, 0x000e, 0x0118, 0x9d86, 0x000f, 0x1120, 0xa08c,\r
++      0x9422, 0xa090, 0x931b, 0x2c05, 0x9065, 0x1140, 0x0310, 0x0804,\r
++      0x1ef6, 0xa004, 0x9045, 0x0904, 0x1ef6, 0x08d8, 0x2c05, 0x9005,\r
++      0x0904, 0x1dde, 0xdd9c, 0x1904, 0x1d9a, 0x908a, 0x0036, 0x1a0c,\r
++      0x0d65, 0x9082, 0x001b, 0x0002, 0x1d6f, 0x1d6f, 0x1d71, 0x1d6f,\r
++      0x1d6f, 0x1d6f, 0x1d77, 0x1d6f, 0x1d6f, 0x1d6f, 0x1d7d, 0x1d6f,\r
++      0x1d6f, 0x1d6f, 0x1d83, 0x1d6f, 0x1d6f, 0x1d6f, 0x1d89, 0x1d6f,\r
++      0x1d6f, 0x1d6f, 0x1d8f, 0x1d6f, 0x1d6f, 0x1d6f, 0x1d95, 0x080c,\r
++      0x0d65, 0xa07c, 0x9422, 0xa080, 0x931b, 0x0804, 0x1dd4, 0xa08c,\r
++      0x9422, 0xa090, 0x931b, 0x0804, 0x1dd4, 0xa09c, 0x9422, 0xa0a0,\r
++      0x931b, 0x0804, 0x1dd4, 0xa0ac, 0x9422, 0xa0b0, 0x931b, 0x0804,\r
++      0x1dd4, 0xa0bc, 0x9422, 0xa0c0, 0x931b, 0x0804, 0x1dd4, 0xa0cc,\r
++      0x9422, 0xa0d0, 0x931b, 0x0804, 0x1dd4, 0xa0dc, 0x9422, 0xa0e0,\r
++      0x931b, 0x04d0, 0x908a, 0x0034, 0x1a0c, 0x0d65, 0x9082, 0x001b,\r
++      0x0002, 0x1dbc, 0x1dba, 0x1dba, 0x1dba, 0x1dba, 0x1dba, 0x1dc1,\r
++      0x1dba, 0x1dba, 0x1dba, 0x1dba, 0x1dba, 0x1dc6, 0x1dba, 0x1dba,\r
++      0x1dba, 0x1dba, 0x1dba, 0x1dcb, 0x1dba, 0x1dba, 0x1dba, 0x1dba,\r
++      0x1dba, 0x1dd0, 0x080c, 0x0d65, 0xa07c, 0x9422, 0xa080, 0x931b,\r
++      0x0098, 0xa094, 0x9422, 0xa098, 0x931b, 0x0070, 0xa0ac, 0x9422,\r
++      0xa0b0, 0x931b, 0x0048, 0xa0c4, 0x9422, 0xa0c8, 0x931b, 0x0020,\r
++      0xa0dc, 0x9422, 0xa0e0, 0x931b, 0x0630, 0x2300, 0x9405, 0x0160,\r
++      0x8a51, 0x0904, 0x1ef6, 0x8c60, 0x0804, 0x1d46, 0xa004, 0x9045,\r
++      0x0904, 0x1ef6, 0x0804, 0x1d21, 0x8a51, 0x0904, 0x1ef6, 0x8c60,\r
++      0x2c05, 0x9005, 0x1158, 0xa004, 0x9045, 0x0904, 0x1ef6, 0xa064,\r
++      0x90ec, 0x000f, 0x9de0, 0x1cf7, 0x2c05, 0x2060, 0xa880, 0xc0fc,\r
++      0xa882, 0x0804, 0x1eeb, 0x2c05, 0x8422, 0x8420, 0x831a, 0x9399,\r
++      0x0000, 0xac2e, 0xab32, 0xdd9c, 0x1904, 0x1e88, 0x9082, 0x001b,\r
++      0x0002, 0x1e24, 0x1e24, 0x1e26, 0x1e24, 0x1e24, 0x1e24, 0x1e34,\r
++      0x1e24, 0x1e24, 0x1e24, 0x1e42, 0x1e24, 0x1e24, 0x1e24, 0x1e50,\r
++      0x1e24, 0x1e24, 0x1e24, 0x1e5e, 0x1e24, 0x1e24, 0x1e24, 0x1e6c,\r
++      0x1e24, 0x1e24, 0x1e24, 0x1e7a, 0x080c, 0x0d65, 0xa17c, 0x2400,\r
++      0x9122, 0xa180, 0x2300, 0x911b, 0x0a0c, 0x0d65, 0xa074, 0x9420,\r
++      0xa078, 0x9319, 0x0804, 0x1ee6, 0xa18c, 0x2400, 0x9122, 0xa190,\r
++      0x2300, 0x911b, 0x0a0c, 0x0d65, 0xa084, 0x9420, 0xa088, 0x9319,\r
++      0x0804, 0x1ee6, 0xa19c, 0x2400, 0x9122, 0xa1a0, 0x2300, 0x911b,\r
++      0x0a0c, 0x0d65, 0xa094, 0x9420, 0xa098, 0x9319, 0x0804, 0x1ee6,\r
++      0xa1ac, 0x2400, 0x9122, 0xa1b0, 0x2300, 0x911b, 0x0a0c, 0x0d65,\r
++      0xa0a4, 0x9420, 0xa0a8, 0x9319, 0x0804, 0x1ee6, 0xa1bc, 0x2400,\r
++      0x9122, 0xa1c0, 0x2300, 0x911b, 0x0a0c, 0x0d65, 0xa0b4, 0x9420,\r
++      0xa0b8, 0x9319, 0x0804, 0x1ee6, 0xa1cc, 0x2400, 0x9122, 0xa1d0,\r
++      0x2300, 0x911b, 0x0a0c, 0x0d65, 0xa0c4, 0x9420, 0xa0c8, 0x9319,\r
++      0x0804, 0x1ee6, 0xa1dc, 0x2400, 0x9122, 0xa1e0, 0x2300, 0x911b,\r
++      0x0a0c, 0x0d65, 0xa0d4, 0x9420, 0xa0d8, 0x9319, 0x0804, 0x1ee6,\r
++      0x9082, 0x001b, 0x0002, 0x1ea6, 0x1ea4, 0x1ea4, 0x1ea4, 0x1ea4,\r
++      0x1ea4, 0x1eb3, 0x1ea4, 0x1ea4, 0x1ea4, 0x1ea4, 0x1ea4, 0x1ec0,\r
++      0x1ea4, 0x1ea4, 0x1ea4, 0x1ea4, 0x1ea4, 0x1ecd, 0x1ea4, 0x1ea4,\r
++      0x1ea4, 0x1ea4, 0x1ea4, 0x1eda, 0x080c, 0x0d65, 0xa17c, 0x2400,\r
++      0x9122, 0xa180, 0x2300, 0x911b, 0x0a0c, 0x0d65, 0xa06c, 0x9420,\r
++      0xa070, 0x9319, 0x0498, 0xa194, 0x2400, 0x9122, 0xa198, 0x2300,\r
++      0x911b, 0x0a0c, 0x0d65, 0xa084, 0x9420, 0xa088, 0x9319, 0x0430,\r
++      0xa1ac, 0x2400, 0x9122, 0xa1b0, 0x2300, 0x911b, 0x0a0c, 0x0d65,\r
++      0xa09c, 0x9420, 0xa0a0, 0x9319, 0x00c8, 0xa1c4, 0x2400, 0x9122,\r
++      0xa1c8, 0x2300, 0x911b, 0x0a0c, 0x0d65, 0xa0b4, 0x9420, 0xa0b8,\r
++      0x9319, 0x0060, 0xa1dc, 0x2400, 0x9122, 0xa1e0, 0x2300, 0x911b,\r
++      0x0a0c, 0x0d65, 0xa0cc, 0x9420, 0xa0d0, 0x9319, 0xac1e, 0xab22,\r
++      0xa880, 0xc0fd, 0xa882, 0x2800, 0xa85a, 0x2c00, 0xa812, 0x2a00,\r
++      0xa816, 0x000e, 0x000e, 0x000e, 0x9006, 0x0028, 0x008e, 0x00de,\r
++      0x00ce, 0x9085, 0x0001, 0x0005, 0x00c6, 0x610c, 0x0016, 0x9026,\r
++      0x2410, 0x6004, 0x9420, 0x9291, 0x0000, 0x2c04, 0x9210, 0x9ce0,\r
++      0x0002, 0x918a, 0x0002, 0x1da8, 0x9284, 0x000f, 0x9405, 0x001e,\r
++      0x00ce, 0x0005, 0x7803, 0x0003, 0x780f, 0x0000, 0x6004, 0x7812,\r
++      0x2c04, 0x7816, 0x9ce0, 0x0002, 0x918a, 0x0002, 0x1db8, 0x0005,\r
++      0x2001, 0x0005, 0x2004, 0xd0bc, 0x190c, 0x0d5e, 0xd094, 0x0110,\r
++      0x080c, 0x11c6, 0x0005, 0x0126, 0x2091, 0x2600, 0x2079, 0x0200,\r
++      0x2071, 0x0260, 0x2069, 0x1800, 0x7817, 0x0000, 0x789b, 0x0814,\r
++      0x78a3, 0x0406, 0x789f, 0x0410, 0x2009, 0x013b, 0x200b, 0x0400,\r
++      0x781b, 0x0002, 0x783b, 0x001f, 0x7837, 0x0020, 0x7803, 0x1600,\r
++      0x012e, 0x0005, 0x2091, 0x2600, 0x781c, 0xd0a4, 0x190c, 0x204f,\r
++      0x7900, 0xd1dc, 0x1118, 0x9084, 0x0006, 0x001a, 0x9084, 0x000e,\r
++      0x0002, 0x1f71, 0x1f69, 0x7a7a, 0x1f69, 0x1f6b, 0x1f6b, 0x1f6b,\r
++      0x1f6b, 0x7a60, 0x1f69, 0x1f6d, 0x1f69, 0x1f6b, 0x1f69, 0x1f6b,\r
++      0x1f69, 0x080c, 0x0d65, 0x0031, 0x0020, 0x080c, 0x7a60, 0x080c,\r
++      0x7a7a, 0x0005, 0x0006, 0x0016, 0x0026, 0x080c, 0xd61c, 0x7930,\r
++      0x9184, 0x0003, 0x01f0, 0x080c, 0x98c8, 0x2001, 0x19cb, 0x2004,\r
++      0x9005, 0x0180, 0x2001, 0x0133, 0x2004, 0x9005, 0x090c, 0x0d65,\r
++      0x00c6, 0x2001, 0x19cb, 0x2064, 0x080c, 0x98e4, 0x080c, 0xb452,\r
++      0x00ce, 0x0408, 0x2009, 0x0040, 0x080c, 0x2052, 0x080c, 0x98e4,\r
++      0x00d0, 0x9184, 0x0014, 0x01a0, 0x6a00, 0x9286, 0x0003, 0x0160,\r
++      0x080c, 0x70b7, 0x1138, 0x080c, 0x73b7, 0x080c, 0x5cdc, 0x080c,\r
++      0x6fe8, 0x0010, 0x080c, 0x5b97, 0x080c, 0x7b18, 0x0041, 0x0018,\r
++      0x9184, 0x9540, 0x1dc8, 0x002e, 0x001e, 0x000e, 0x0005, 0x00e6,\r
++      0x0036, 0x0046, 0x0056, 0x2071, 0x1a3c, 0x080c, 0x195f, 0x005e,\r
++      0x004e, 0x003e, 0x00ee, 0x0005, 0x0126, 0x2091, 0x2e00, 0x2071,\r
++      0x1800, 0x7128, 0x2001, 0x1940, 0x2102, 0x2001, 0x1948, 0x2102,\r
++      0x2001, 0x013b, 0x2102, 0x2079, 0x0200, 0x2001, 0x0201, 0x789e,\r
++      0x78a3, 0x0200, 0x9198, 0x0007, 0x831c, 0x831c, 0x831c, 0x9398,\r
++      0x0005, 0x2320, 0x9182, 0x0204, 0x1230, 0x2011, 0x0008, 0x8423,\r
++      0x8423, 0x8423, 0x0488, 0x9182, 0x024c, 0x1240, 0x2011, 0x0007,\r
++      0x8403, 0x8003, 0x9400, 0x9400, 0x9420, 0x0430, 0x9182, 0x02bc,\r
++      0x1238, 0x2011, 0x0006, 0x8403, 0x8003, 0x9400, 0x9420, 0x00e0,\r
++      0x9182, 0x034c, 0x1230, 0x2011, 0x0005, 0x8403, 0x8003, 0x9420,\r
++      0x0098, 0x9182, 0x042c, 0x1228, 0x2011, 0x0004, 0x8423, 0x8423,\r
++      0x0058, 0x9182, 0x059c, 0x1228, 0x2011, 0x0003, 0x8403, 0x9420,\r
++      0x0018, 0x2011, 0x0002, 0x8423, 0x9482, 0x0228, 0x8002, 0x8020,\r
++      0x8301, 0x9402, 0x0110, 0x0208, 0x8321, 0x8217, 0x8203, 0x9405,\r
++      0x789a, 0x012e, 0x0005, 0x0006, 0x00d6, 0x2069, 0x0200, 0x6814,\r
++      0x9084, 0xffc0, 0x910d, 0x6916, 0x00de, 0x000e, 0x0005, 0x00d6,\r
++      0x2069, 0x0200, 0x9005, 0x6810, 0x0110, 0xc0a5, 0x0008, 0xc0a4,\r
++      0x6812, 0x00de, 0x0005, 0x0006, 0x00d6, 0x2069, 0x0200, 0x6810,\r
++      0x9084, 0xfff8, 0x910d, 0x6912, 0x00de, 0x000e, 0x0005, 0x7938,\r
++      0x080c, 0x0d5e, 0x00f6, 0x2079, 0x0200, 0x7902, 0xa001, 0xa001,\r
++      0xa001, 0xa001, 0xa001, 0xa001, 0x7902, 0xa001, 0xa001, 0xa001,\r
++      0xa001, 0xa001, 0xa001, 0x00fe, 0x0005, 0x0126, 0x2091, 0x2800,\r
++      0x2061, 0x0100, 0x2071, 0x1800, 0x2009, 0x0000, 0x080c, 0x281f,\r
++      0x080c, 0x273f, 0x080c, 0x2890, 0x9006, 0x080c, 0x276e, 0x9006,\r
++      0x080c, 0x2751, 0x20a9, 0x0012, 0x1d04, 0x207c, 0x2091, 0x6000,\r
++      0x1f04, 0x207c, 0x602f, 0x0100, 0x602f, 0x0000, 0x6050, 0x9085,\r
++      0x0400, 0x9084, 0xdfff, 0x6052, 0x6224, 0x080c, 0x286d, 0x080c,\r
++      0x245d, 0x2009, 0x00ef, 0x6132, 0x6136, 0x080c, 0x246d, 0x60e7,\r
++      0x0000, 0x61ea, 0x60e3, 0x0002, 0x604b, 0xf7f7, 0x6043, 0x0000,\r
++      0x602f, 0x0080, 0x602f, 0x0000, 0x6007, 0x149f, 0x00c6, 0x2061,\r
++      0x0140, 0x608b, 0x000b, 0x608f, 0x10b8, 0x6093, 0x0000, 0x6097,\r
++      0x0198, 0x00ce, 0x6004, 0x9085, 0x8000, 0x6006, 0x60bb, 0x0000,\r
++      0x20a9, 0x0018, 0x60bf, 0x0000, 0x1f04, 0x20ba, 0x60bb, 0x0000,\r
++      0x60bf, 0x0108, 0x60bf, 0x0012, 0x60bf, 0x0320, 0x60bf, 0x0018,\r
++      0x601b, 0x00f0, 0x601f, 0x001e, 0x600f, 0x006b, 0x602b, 0x402c,\r
++      0x012e, 0x0005, 0x00f6, 0x2079, 0x0140, 0x78c3, 0x0080, 0x78c3,\r
++      0x0083, 0x78c3, 0x0000, 0x00fe, 0x0005, 0x2001, 0x1834, 0x2003,\r
++      0x0000, 0x2001, 0x1833, 0x2003, 0x0001, 0x0005, 0x0126, 0x2091,\r
++      0x2800, 0x0006, 0x0016, 0x0026, 0x6124, 0x6028, 0x910c, 0x9184,\r
++      0x5e2c, 0x1118, 0x9184, 0x0007, 0x002a, 0x9195, 0x0004, 0x9284,\r
++      0x0007, 0x0002, 0x2105, 0x2102, 0x2102, 0x2102, 0x2104, 0x2102,\r
++      0x2102, 0x2102, 0x080c, 0x0d65, 0x0029, 0x002e, 0x001e, 0x000e,\r
++      0x012e, 0x0005, 0x00a6, 0x6124, 0x6028, 0xd09c, 0x0118, 0xd19c,\r
++      0x1904, 0x2364, 0xd1f4, 0x190c, 0x0d5e, 0x080c, 0x70b7, 0x0904,\r
++      0x2162, 0x080c, 0xbf61, 0x1120, 0x7000, 0x9086, 0x0003, 0x0580,\r
++      0x6024, 0x9084, 0x1800, 0x0560, 0x080c, 0x70da, 0x0118, 0x080c,\r
++      0x70c8, 0x1530, 0x2011, 0x0020, 0x080c, 0x286d, 0x6043, 0x0000,\r
++      0x080c, 0xbf61, 0x0168, 0x080c, 0x70da, 0x1150, 0x2001, 0x1978,\r
++      0x2003, 0x0001, 0x6027, 0x1800, 0x080c, 0x6f2d, 0x0804, 0x2367,\r
++      0x70a0, 0x9005, 0x1150, 0x70a3, 0x0001, 0x00d6, 0x2069, 0x0140,\r
++      0x080c, 0x710e, 0x00de, 0x1904, 0x2367, 0x080c, 0x73c1, 0x0428,\r
++      0x080c, 0x70da, 0x1590, 0x6024, 0x9084, 0x1800, 0x1108, 0x0468,\r
++      0x080c, 0x73c1, 0x080c, 0x73b7, 0x080c, 0x5cdc, 0x080c, 0x6fe8,\r
++      0x0804, 0x2364, 0xd1ac, 0x1508, 0x6024, 0xd0dc, 0x1170, 0xd0e4,\r
++      0x1178, 0xd0d4, 0x1190, 0xd0cc, 0x0130, 0x7094, 0x9086, 0x0028,\r
++      0x1110, 0x080c, 0x729a, 0x0804, 0x2364, 0x080c, 0x73bc, 0x0048,\r
++      0x2001, 0x194e, 0x2003, 0x0002, 0x0020, 0x080c, 0x71f8, 0x0804,\r
++      0x2364, 0x080c, 0x733c, 0x0804, 0x2364, 0xd1ac, 0x0904, 0x227e,\r
++      0x080c, 0x70b7, 0x11d0, 0x2011, 0x0020, 0x080c, 0x286d, 0x0006,\r
++      0x0026, 0x0036, 0x080c, 0x70d1, 0x1158, 0x080c, 0x73b7, 0x080c,\r
++      0x5cdc, 0x080c, 0x6fe8, 0x003e, 0x002e, 0x000e, 0x00ae, 0x0005,\r
++      0x003e, 0x002e, 0x000e, 0x080c, 0x708b, 0x0016, 0x0046, 0x00c6,\r
++      0x644c, 0x9486, 0xf0f0, 0x1138, 0x2061, 0x0100, 0x644a, 0x6043,\r
++      0x0090, 0x6043, 0x0010, 0x74d6, 0x948c, 0xff00, 0x7038, 0xd084,\r
++      0x0178, 0x9186, 0xf800, 0x1160, 0x7044, 0xd084, 0x1148, 0xc085,\r
++      0x7046, 0x0036, 0x2418, 0x2011, 0x8016, 0x080c, 0x48d8, 0x003e,\r
++      0x080c, 0xbf5a, 0x1904, 0x2255, 0x9196, 0xff00, 0x05a8, 0x705c,\r
++      0x9084, 0x00ff, 0x810f, 0x81ff, 0x0110, 0x9116, 0x0568, 0x7130,\r
++      0xd184, 0x1550, 0x080c, 0x3186, 0x0128, 0xc18d, 0x7132, 0x080c,\r
++      0x665f, 0x1510, 0x6240, 0x9294, 0x0010, 0x0130, 0x6248, 0x9294,\r
++      0xff00, 0x9296, 0xff00, 0x01c0, 0x7030, 0xd08c, 0x0904, 0x2255,\r
++      0x7038, 0xd08c, 0x1140, 0x2001, 0x180c, 0x200c, 0xd1ac, 0x1904,\r
++      0x2255, 0xc1ad, 0x2102, 0x0036, 0x73d4, 0x2011, 0x8013, 0x080c,\r
++      0x48d8, 0x003e, 0x0804, 0x2255, 0x7038, 0xd08c, 0x1140, 0x2001,\r
++      0x180c, 0x200c, 0xd1ac, 0x1904, 0x2255, 0xc1ad, 0x2102, 0x0036,\r
++      0x73d4, 0x2011, 0x8013, 0x080c, 0x48d8, 0x003e, 0x7130, 0xc185,\r
++      0x7132, 0x2011, 0x1854, 0x220c, 0x00f0, 0x0016, 0x2009, 0x0001,\r
++      0x2011, 0x0100, 0x080c, 0x83eb, 0x2019, 0x000e, 0x00c6, 0x2061,\r
++      0x0000, 0x080c, 0xd1eb, 0x00ce, 0x9484, 0x00ff, 0x9080, 0x318b,\r
++      0x200d, 0x918c, 0xff00, 0x810f, 0x2120, 0x9006, 0x2009, 0x000e,\r
++      0x080c, 0xd273, 0x001e, 0xd1ac, 0x1148, 0x0016, 0x2009, 0x0002,\r
++      0x2019, 0x0004, 0x080c, 0x2fc5, 0x001e, 0x0078, 0x0156, 0x00b6,\r
++      0x20a9, 0x007f, 0x900e, 0x080c, 0x6270, 0x1110, 0x080c, 0x5cf6,\r
++      0x8108, 0x1f04, 0x224b, 0x00be, 0x015e, 0x00ce, 0x004e, 0x080c,\r
++      0x98c8, 0x080c, 0x9b6d, 0x080c, 0x98e4, 0x60e3, 0x0000, 0x001e,\r
++      0x2001, 0x1800, 0x2014, 0x9296, 0x0004, 0x1170, 0xd19c, 0x11b0,\r
++      0x2011, 0x180c, 0x2214, 0xd29c, 0x1120, 0x6204, 0x9295, 0x0002,\r
++      0x6206, 0x6228, 0xc29d, 0x622a, 0x2003, 0x0001, 0x2001, 0x1825,\r
++      0x2003, 0x0000, 0x2011, 0x0020, 0x080c, 0x286d, 0xd194, 0x0904,\r
++      0x2364, 0x0016, 0x080c, 0x98c8, 0x6220, 0xd2b4, 0x0904, 0x230c,\r
++      0x080c, 0x820b, 0x080c, 0x8fb7, 0x2011, 0x0004, 0x080c, 0x286d,\r
++      0x00f6, 0x2019, 0x19c4, 0x2304, 0x907d, 0x0904, 0x22d9, 0x7804,\r
++      0x9086, 0x0032, 0x15f0, 0x00d6, 0x00c6, 0x00e6, 0x0096, 0x2069,\r
++      0x0140, 0x782c, 0x685e, 0x7808, 0x685a, 0x6043, 0x0002, 0x2001,\r
++      0x0003, 0x8001, 0x1df0, 0x6043, 0x0000, 0x2001, 0x003c, 0x8001,\r
++      0x1df0, 0x080c, 0x2843, 0x2001, 0x001e, 0x8001, 0x0240, 0x20a9,\r
++      0x0009, 0x080c, 0x27fa, 0x6904, 0xd1dc, 0x1140, 0x0cb0, 0x2001,\r
++      0x0100, 0x080c, 0x2833, 0x9006, 0x080c, 0x2833, 0x080c, 0x8874,\r
++      0x080c, 0x98e4, 0x7814, 0x2048, 0xa867, 0x0103, 0x2f60, 0x080c,\r
++      0x9be7, 0x009e, 0x00ee, 0x00ce, 0x00de, 0x00fe, 0x001e, 0x00ae,\r
++      0x0005, 0x00fe, 0x00d6, 0x2069, 0x0140, 0x6804, 0x9084, 0x4000,\r
++      0x0110, 0x080c, 0x2843, 0x00de, 0x00c6, 0x2061, 0x19b8, 0x6034,\r
++      0x080c, 0xbf61, 0x0120, 0x909a, 0x0003, 0x1258, 0x0018, 0x909a,\r
++      0x00c8, 0x1238, 0x8000, 0x6036, 0x00ce, 0x080c, 0x8f8f, 0x0804,\r
++      0x2361, 0x2061, 0x0100, 0x62c0, 0x080c, 0x97fe, 0x2019, 0x19c4,\r
++      0x2304, 0x9065, 0x0130, 0x6003, 0x0001, 0x2009, 0x0027, 0x080c,\r
++      0x9c85, 0x00ce, 0x0804, 0x2361, 0xd2bc, 0x05e0, 0x080c, 0x8218,\r
++      0x2011, 0x0004, 0x080c, 0x286d, 0x00d6, 0x2069, 0x0140, 0x6804,\r
++      0x9084, 0x4000, 0x0110, 0x080c, 0x2843, 0x00de, 0x00c6, 0x2061,\r
++      0x19b8, 0x6050, 0x080c, 0xbf61, 0x0120, 0x909a, 0x0003, 0x1638,\r
++      0x0018, 0x909a, 0x00c8, 0x1618, 0x8000, 0x6052, 0x604c, 0x00ce,\r
++      0x9005, 0x0578, 0x2009, 0x07d0, 0x080c, 0x8210, 0x9080, 0x0008,\r
++      0x2004, 0x9086, 0x0006, 0x1138, 0x2009, 0x1984, 0x2011, 0x0012,\r
++      0x080c, 0x287c, 0x00f0, 0x2009, 0x1984, 0x2011, 0x0016, 0x080c,\r
++      0x287c, 0x00b8, 0x2011, 0x0004, 0x080c, 0x286d, 0x0090, 0x0036,\r
++      0x2019, 0x0001, 0x080c, 0x9286, 0x003e, 0x2019, 0x19cb, 0x2304,\r
++      0x9065, 0x0130, 0x2009, 0x004f, 0x6003, 0x0003, 0x080c, 0x9c85,\r
++      0x00ce, 0x080c, 0x98e4, 0x001e, 0xd19c, 0x0904, 0x23c2, 0x7038,\r
++      0xd0ac, 0x1538, 0x0016, 0x0156, 0x2011, 0x0008, 0x080c, 0x286d,\r
++      0x6050, 0xc0e5, 0x6052, 0x20a9, 0x0367, 0x1f04, 0x238f, 0x1d04,\r
++      0x2377, 0x080c, 0x823f, 0x6020, 0xd09c, 0x1db8, 0x00f6, 0x2079,\r
++      0x0100, 0x080c, 0x27aa, 0x00fe, 0x1d80, 0x6050, 0xc0e4, 0x6052,\r
++      0x2011, 0x0008, 0x080c, 0x286d, 0x015e, 0x001e, 0x0498, 0x015e,\r
++      0x001e, 0x0016, 0x6028, 0xc09c, 0x602a, 0x080c, 0x98c8, 0x080c,\r
++      0x9b6d, 0x080c, 0x98e4, 0x60e3, 0x0000, 0x080c, 0xd5fb, 0x080c,\r
++      0xd616, 0x080c, 0x5391, 0xd0fc, 0x1138, 0x080c, 0xbf5a, 0x1120,\r
++      0x9085, 0x0001, 0x080c, 0x70fe, 0x9006, 0x080c, 0x2833, 0x2009,\r
++      0x0002, 0x080c, 0x281f, 0x00e6, 0x2071, 0x1800, 0x7003, 0x0004,\r
++      0x080c, 0x0e9c, 0x00ee, 0x2011, 0x0008, 0x080c, 0x286d, 0x080c,\r
++      0x0bab, 0x001e, 0x918c, 0xffd0, 0x2110, 0x080c, 0x286d, 0x00ae,\r
++      0x0005, 0x0006, 0x0016, 0x0026, 0x0036, 0x00e6, 0x00f6, 0x0126,\r
++      0x2091, 0x8000, 0x2071, 0x1800, 0x71cc, 0x70ce, 0x9116, 0x0904,\r
++      0x241c, 0x81ff, 0x01a0, 0x2009, 0x0000, 0x080c, 0x281f, 0x2011,\r
++      0x8011, 0x2019, 0x010e, 0x231c, 0x939e, 0x0007, 0x1118, 0x2019,\r
++      0x0001, 0x0010, 0x2019, 0x0000, 0x080c, 0x48d8, 0x0468, 0x2001,\r
++      0x1979, 0x200c, 0x81ff, 0x1140, 0x2001, 0x0109, 0x2004, 0xd0b4,\r
++      0x0118, 0x2019, 0x0003, 0x0008, 0x2118, 0x2011, 0x8012, 0x080c,\r
++      0x48d8, 0x080c, 0x0e9c, 0x080c, 0x5391, 0xd0fc, 0x11a8, 0x080c,\r
++      0xbf5a, 0x1190, 0x00c6, 0x080c, 0x24b8, 0x080c, 0x98c8, 0x080c,\r
++      0x91e1, 0x080c, 0x98e4, 0x2061, 0x0100, 0x2019, 0x0028, 0x2009,\r
++      0x0002, 0x080c, 0x2fc5, 0x00ce, 0x012e, 0x00fe, 0x00ee, 0x003e,\r
++      0x002e, 0x001e, 0x000e, 0x0005, 0x2028, 0x918c, 0x00ff, 0x2130,\r
++      0x9094, 0xff00, 0x11f0, 0x2011, 0x1836, 0x2214, 0xd2ac, 0x11c8,\r
++      0x81ff, 0x01e8, 0x2011, 0x181e, 0x2204, 0x9106, 0x1190, 0x2011,\r
++      0x181f, 0x2214, 0x9294, 0xff00, 0x9584, 0xff00, 0x9206, 0x1148,\r
++      0x2011, 0x181f, 0x2214, 0x9294, 0x00ff, 0x9584, 0x00ff, 0x9206,\r
++      0x1120, 0x2500, 0x080c, 0x7d70, 0x0048, 0x9584, 0x00ff, 0x9080,\r
++      0x318b, 0x200d, 0x918c, 0xff00, 0x810f, 0x9006, 0x0005, 0x9080,\r
++      0x318b, 0x200d, 0x918c, 0x00ff, 0x0005, 0x00d6, 0x2069, 0x0140,\r
++      0x2001, 0x1817, 0x2003, 0x00ef, 0x20a9, 0x0010, 0x9006, 0x6852,\r
++      0x6856, 0x1f04, 0x2468, 0x00de, 0x0005, 0x0006, 0x00d6, 0x0026,\r
++      0x2069, 0x0140, 0x2001, 0x1817, 0x2102, 0x8114, 0x8214, 0x8214,\r
++      0x8214, 0x20a9, 0x0010, 0x6853, 0x0000, 0x9006, 0x82ff, 0x1128,\r
++      0x9184, 0x000f, 0x9080, 0xd62a, 0x2005, 0x6856, 0x8211, 0x1f04,\r
++      0x247d, 0x002e, 0x00de, 0x000e, 0x0005, 0x00c6, 0x2061, 0x1800,\r
++      0x6030, 0x0110, 0xc09d, 0x0008, 0xc09c, 0x6032, 0x00ce, 0x0005,\r
++      0x0156, 0x00d6, 0x0026, 0x0016, 0x0006, 0x2069, 0x0140, 0x6980,\r
++      0x9116, 0x0180, 0x9112, 0x1230, 0x8212, 0x8210, 0x22a8, 0x2001,\r
++      0x0402, 0x0018, 0x22a8, 0x2001, 0x0404, 0x680e, 0x1f04, 0x24ad,\r
++      0x680f, 0x0000, 0x000e, 0x001e, 0x002e, 0x00de, 0x015e, 0x0005,\r
++      0x080c, 0x538d, 0xd0c4, 0x0150, 0xd0a4, 0x0140, 0x9006, 0x0046,\r
++      0x2020, 0x2009, 0x002e, 0x080c, 0xd273, 0x004e, 0x0005, 0x00f6,\r
++      0x0016, 0x0026, 0x2079, 0x0140, 0x78c4, 0xd0dc, 0x0904, 0x2524,\r
++      0x080c, 0x279a, 0x0660, 0x9084, 0x0700, 0x908e, 0x0600, 0x1120,\r
++      0x2011, 0x4000, 0x900e, 0x0458, 0x908e, 0x0500, 0x1120, 0x2011,\r
++      0x8000, 0x900e, 0x0420, 0x908e, 0x0400, 0x1120, 0x9016, 0x2009,\r
++      0x0001, 0x00e8, 0x908e, 0x0300, 0x1120, 0x9016, 0x2009, 0x0002,\r
++      0x00b0, 0x908e, 0x0200, 0x1120, 0x9016, 0x2009, 0x0004, 0x0078,\r
++      0x908e, 0x0100, 0x1548, 0x9016, 0x2009, 0x0008, 0x0040, 0x9084,\r
++      0x0700, 0x908e, 0x0300, 0x1500, 0x2011, 0x0030, 0x0058, 0x2300,\r
++      0x9080, 0x0020, 0x2018, 0x080c, 0x8419, 0x928c, 0xff00, 0x0110,\r
++      0x2011, 0x00ff, 0x2200, 0x8007, 0x9085, 0x004c, 0x78c2, 0x2009,\r
++      0x0138, 0x220a, 0x080c, 0x70b7, 0x1118, 0x2009, 0x193e, 0x220a,\r
++      0x002e, 0x001e, 0x00fe, 0x0005, 0x78c3, 0x0000, 0x0cc8, 0x0126,\r
++      0x2091, 0x2800, 0x0006, 0x0016, 0x0026, 0x2001, 0x0170, 0x200c,\r
++      0x8000, 0x2014, 0x9184, 0x0003, 0x0110, 0x080c, 0x0d5e, 0x002e,\r
++      0x001e, 0x000e, 0x012e, 0x0005, 0x2001, 0x0171, 0x2004, 0xd0dc,\r
++      0x0168, 0x2001, 0x0170, 0x200c, 0x918c, 0x00ff, 0x918e, 0x004c,\r
++      0x1128, 0x200c, 0x918c, 0xff00, 0x810f, 0x0005, 0x900e, 0x2001,\r
++      0x0227, 0x2004, 0x8007, 0x9084, 0x00ff, 0x8004, 0x9108, 0x2001,\r
++      0x0226, 0x2004, 0x8007, 0x9084, 0x00ff, 0x8004, 0x9108, 0x0005,\r
++      0x0018, 0x000c, 0x0018, 0x0020, 0x1000, 0x0800, 0x1000, 0x1800,\r
++      0x0156, 0x0006, 0x0016, 0x0026, 0x00e6, 0x2001, 0x1961, 0x2004,\r
++      0x908a, 0x0007, 0x1a0c, 0x0d65, 0x0033, 0x00ee, 0x002e, 0x001e,\r
++      0x000e, 0x015e, 0x0005, 0x2582, 0x25a0, 0x25c4, 0x25c6, 0x25ef,\r
++      0x25f1, 0x25f3, 0x2001, 0x0001, 0x080c, 0x23c9, 0x080c, 0x27e4,\r
++      0x2001, 0x1963, 0x2003, 0x0000, 0x7828, 0x9084, 0xe1d7, 0x782a,\r
++      0x9006, 0x20a9, 0x0009, 0x080c, 0x27b6, 0x2001, 0x1961, 0x2003,\r
++      0x0006, 0x2009, 0x001e, 0x2011, 0x25f4, 0x080c, 0x821d, 0x0005,\r
++      0x2009, 0x1966, 0x200b, 0x0000, 0x2001, 0x196b, 0x2003, 0x0036,\r
++      0x2001, 0x196a, 0x2003, 0x002a, 0x2001, 0x1963, 0x2003, 0x0001,\r
++      0x9006, 0x080c, 0x2751, 0x2001, 0xffff, 0x20a9, 0x0009, 0x080c,\r
++      0x27b6, 0x2001, 0x1961, 0x2003, 0x0006, 0x2009, 0x001e, 0x2011,\r
++      0x25f4, 0x080c, 0x821d, 0x0005, 0x080c, 0x0d65, 0x2001, 0x196b,\r
++      0x2003, 0x0036, 0x2001, 0x1963, 0x2003, 0x0003, 0x7a38, 0x9294,\r
++      0x0005, 0x9296, 0x0004, 0x0110, 0x9006, 0x0010, 0x2001, 0x0001,\r
++      0x080c, 0x2751, 0x2001, 0x1967, 0x2003, 0x0000, 0x2001, 0xffff,\r
++      0x20a9, 0x0009, 0x080c, 0x27b6, 0x2001, 0x1961, 0x2003, 0x0006,\r
++      0x2009, 0x001e, 0x2011, 0x25f4, 0x080c, 0x821d, 0x0005, 0x080c,\r
++      0x0d65, 0x080c, 0x0d65, 0x0005, 0x0006, 0x0016, 0x0026, 0x00e6,\r
++      0x00f6, 0x0156, 0x0126, 0x2091, 0x8000, 0x2079, 0x0100, 0x2001,\r
++      0x1963, 0x2004, 0x908a, 0x0007, 0x1a0c, 0x0d65, 0x0043, 0x012e,\r
++      0x015e, 0x00fe, 0x00ee, 0x002e, 0x001e, 0x000e, 0x0005, 0x2616,\r
++      0x2636, 0x2676, 0x26a6, 0x26ca, 0x26da, 0x26dc, 0x080c, 0x27aa,\r
++      0x11b0, 0x7850, 0x9084, 0xefff, 0x7852, 0x2009, 0x1969, 0x2104,\r
++      0x7a38, 0x9294, 0x0005, 0x9296, 0x0004, 0x0110, 0xc08d, 0x0008,\r
++      0xc085, 0x200a, 0x2001, 0x1961, 0x2003, 0x0001, 0x0030, 0x080c,\r
++      0x2700, 0x2001, 0xffff, 0x080c, 0x2591, 0x0005, 0x080c, 0x26de,\r
++      0x05e0, 0x2009, 0x196a, 0x2104, 0x8001, 0x200a, 0x080c, 0x27aa,\r
++      0x1178, 0x7850, 0x9084, 0xefff, 0x7852, 0x7a38, 0x9294, 0x0005,\r
++      0x9296, 0x0005, 0x0518, 0x2009, 0x1969, 0x2104, 0xc085, 0x200a,\r
++      0x2009, 0x1966, 0x2104, 0x8000, 0x200a, 0x9086, 0x0005, 0x0118,\r
++      0x080c, 0x26e6, 0x00c0, 0x200b, 0x0000, 0x7a38, 0x9294, 0x0006,\r
++      0x9296, 0x0004, 0x0110, 0x9006, 0x0010, 0x2001, 0x0001, 0x080c,\r
++      0x276e, 0x2001, 0x1963, 0x2003, 0x0002, 0x0028, 0x2001, 0x1961,\r
++      0x2003, 0x0003, 0x0010, 0x080c, 0x25b3, 0x0005, 0x080c, 0x26de,\r
++      0x0560, 0x2009, 0x196a, 0x2104, 0x8001, 0x200a, 0x080c, 0x27aa,\r
++      0x1168, 0x7850, 0x9084, 0xefff, 0x7852, 0x2001, 0x1961, 0x2003,\r
++      0x0003, 0x2001, 0x1962, 0x2003, 0x0000, 0x00b8, 0x2009, 0x196a,\r
++      0x2104, 0x9005, 0x1118, 0x080c, 0x2723, 0x0010, 0x080c, 0x26f3,\r
++      0x080c, 0x26e6, 0x2009, 0x1966, 0x200b, 0x0000, 0x2001, 0x1963,\r
++      0x2003, 0x0001, 0x080c, 0x25b3, 0x0000, 0x0005, 0x04b9, 0x0508,\r
++      0x080c, 0x27aa, 0x11b8, 0x7850, 0x9084, 0xefff, 0x7852, 0x2009,\r
++      0x1967, 0x2104, 0x8000, 0x200a, 0x9086, 0x0007, 0x0108, 0x0078,\r
++      0x2001, 0x196c, 0x2003, 0x000a, 0x2009, 0x1969, 0x2104, 0xc0fd,\r
++      0x200a, 0x0038, 0x0419, 0x2001, 0x1963, 0x2003, 0x0004, 0x080c,\r
++      0x25de, 0x0005, 0x0099, 0x0168, 0x080c, 0x27aa, 0x1138, 0x7850,\r
++      0x9084, 0xefff, 0x7852, 0x080c, 0x25ca, 0x0018, 0x0079, 0x080c,\r
++      0x25de, 0x0005, 0x080c, 0x0d65, 0x080c, 0x0d65, 0x2009, 0x196b,\r
++      0x2104, 0x8001, 0x200a, 0x090c, 0x273f, 0x0005, 0x7a38, 0x9294,\r
++      0x0005, 0x9296, 0x0005, 0x0110, 0x9006, 0x0010, 0x2001, 0x0001,\r
++      0x080c, 0x276e, 0x0005, 0x7a38, 0x9294, 0x0006, 0x9296, 0x0006,\r
++      0x0110, 0x9006, 0x0010, 0x2001, 0x0001, 0x080c, 0x2751, 0x0005,\r
++      0x2009, 0x1966, 0x2104, 0x8000, 0x200a, 0x9086, 0x0005, 0x0108,\r
++      0x0068, 0x200b, 0x0000, 0x7a38, 0x9294, 0x0006, 0x9296, 0x0006,\r
++      0x0110, 0x9006, 0x0010, 0x2001, 0x0001, 0x04d9, 0x7a38, 0x9294,\r
++      0x0005, 0x9296, 0x0005, 0x0110, 0x9006, 0x0010, 0x2001, 0x0001,\r
++      0x080c, 0x276e, 0x0005, 0x0086, 0x2001, 0x1969, 0x2004, 0x9084,\r
++      0x7fff, 0x090c, 0x0d65, 0x2009, 0x1968, 0x2144, 0x8846, 0x280a,\r
++      0x9844, 0x0dd8, 0xd08c, 0x1120, 0xd084, 0x1120, 0x080c, 0x0d65,\r
++      0x9006, 0x0010, 0x2001, 0x0001, 0x00a1, 0x008e, 0x0005, 0x0006,\r
++      0x0156, 0x2001, 0x1961, 0x20a9, 0x0009, 0x2003, 0x0000, 0x8000,\r
++      0x1f04, 0x2745, 0x2001, 0x1968, 0x2003, 0x8000, 0x015e, 0x000e,\r
++      0x0005, 0x00f6, 0x2079, 0x0100, 0x9085, 0x0000, 0x0158, 0x7838,\r
++      0x9084, 0xfff9, 0x9085, 0x0004, 0x783a, 0x2009, 0x196e, 0x210c,\r
++      0x795a, 0x0050, 0x7838, 0x9084, 0xfffb, 0x9085, 0x0006, 0x783a,\r
++      0x2009, 0x196f, 0x210c, 0x795a, 0x00fe, 0x0005, 0x00f6, 0x2079,\r
++      0x0100, 0x9085, 0x0000, 0x0158, 0x7838, 0x9084, 0xfffa, 0x9085,\r
++      0x0004, 0x783a, 0x7850, 0x9084, 0xfff0, 0x7852, 0x00c8, 0x7838,\r
++      0x9084, 0xfffb, 0x9085, 0x0005, 0x783a, 0x7850, 0x9084, 0xfff0,\r
++      0x0016, 0x2009, 0x0003, 0x210c, 0x918c, 0x0600, 0x918e, 0x0400,\r
++      0x0118, 0x9085, 0x000a, 0x0010, 0x9085, 0x0000, 0x001e, 0x7852,\r
++      0x00fe, 0x0005, 0x0006, 0x2001, 0x0100, 0x2004, 0x9082, 0x0007,\r
++      0x000e, 0x0005, 0x0006, 0x2001, 0x0100, 0x2004, 0x9082, 0x0009,\r
++      0x000e, 0x0005, 0x0156, 0x20a9, 0x0064, 0x7820, 0x080c, 0x2819,\r
++      0xd09c, 0x1110, 0x1f04, 0x27ad, 0x015e, 0x0005, 0x0126, 0x0016,\r
++      0x0006, 0x2091, 0x8000, 0x000e, 0x2008, 0x9186, 0x0000, 0x1118,\r
++      0x783b, 0x0007, 0x0090, 0x9186, 0x0001, 0x1118, 0x783b, 0x0006,\r
++      0x0060, 0x9186, 0x0002, 0x1118, 0x783b, 0x0005, 0x0030, 0x9186,\r
++      0x0003, 0x1118, 0x783b, 0x0004, 0x0000, 0x0006, 0x1d04, 0x27d6,\r
++      0x080c, 0x823f, 0x1f04, 0x27d6, 0x7850, 0x9085, 0x1000, 0x7852,\r
++      0x000e, 0x001e, 0x012e, 0x0005, 0x080c, 0x28d4, 0x0005, 0x0006,\r
++      0x0156, 0x00f6, 0x2079, 0x0100, 0x20a9, 0x000a, 0x7854, 0xd0ac,\r
++      0x1100, 0x7854, 0xd08c, 0x1110, 0x1f04, 0x27f1, 0x00fe, 0x015e,\r
++      0x000e, 0x0005, 0x1d04, 0x27fa, 0x080c, 0x823f, 0x1f04, 0x27fa,\r
++      0x0005, 0x0006, 0x2001, 0x196d, 0x2004, 0x9086, 0x0000, 0x000e,\r
++      0x0005, 0x0006, 0x2001, 0x196d, 0x2004, 0x9086, 0x0001, 0x000e,\r
++      0x0005, 0x0006, 0x2001, 0x196d, 0x2004, 0x9086, 0x0002, 0x000e,\r
++      0x0005, 0xa001, 0xa001, 0xa001, 0xa001, 0xa001, 0x0005, 0x0006,\r
++      0x2001, 0x1979, 0x2102, 0x000e, 0x0005, 0x2009, 0x0171, 0x2104,\r
++      0xd0dc, 0x0140, 0x2009, 0x0170, 0x2104, 0x200b, 0x0080, 0xa001,\r
++      0xa001, 0x200a, 0x0005, 0x0016, 0x0026, 0x080c, 0x70d1, 0x0108,\r
++      0xc0bc, 0x2009, 0x0140, 0x2114, 0x9294, 0x0001, 0x9215, 0x220a,\r
++      0x002e, 0x001e, 0x0005, 0x0016, 0x0026, 0x2009, 0x0140, 0x2114,\r
++      0x9294, 0x0001, 0x9285, 0x1000, 0x200a, 0x220a, 0x002e, 0x001e,\r
++      0x0005, 0x0016, 0x0026, 0x2009, 0x0140, 0x2114, 0x9294, 0x0001,\r
++      0x9215, 0x220a, 0x002e, 0x001e, 0x0005, 0x0006, 0x0016, 0x2009,\r
++      0x0140, 0x2104, 0x1128, 0x080c, 0x70d1, 0x0110, 0xc0bc, 0x0008,\r
++      0xc0bd, 0x200a, 0x001e, 0x000e, 0x0005, 0x00f6, 0x2079, 0x0380,\r
++      0x7843, 0x0101, 0x7844, 0xd084, 0x1de8, 0x2001, 0x0109, 0x2202,\r
++      0x7843, 0x0100, 0x00fe, 0x0005, 0x00f6, 0x2079, 0x0380, 0x7843,\r
++      0x0202, 0x7844, 0xd08c, 0x1de8, 0x2079, 0x0100, 0x7814, 0x9104,\r
++      0x9205, 0x7a16, 0x2079, 0x0380, 0x7843, 0x0200, 0x00fe, 0x0005,\r
++      0x0016, 0x0026, 0x0036, 0x00c6, 0x2061, 0x0100, 0x6050, 0x9084,\r
++      0xfbff, 0x9085, 0x0040, 0x6052, 0x20a9, 0x0002, 0x080c, 0x27fa,\r
++      0x6050, 0x9085, 0x0400, 0x9084, 0xff9f, 0x6052, 0x20a9, 0x0005,\r
++      0x080c, 0x27fa, 0x6054, 0xd0bc, 0x090c, 0x0d65, 0x20a9, 0x0005,\r
++      0x080c, 0x27fa, 0x6054, 0xd0ac, 0x090c, 0x0d65, 0x2009, 0x1980,\r
++      0x9084, 0x7e00, 0x8007, 0x8004, 0x8004, 0x200a, 0x9085, 0x0000,\r
++      0x605a, 0x2009, 0x196e, 0x2011, 0x196f, 0x6358, 0x939c, 0x38df,\r
++      0x2320, 0x939d, 0x0000, 0x94a5, 0x0000, 0x230a, 0x2412, 0x00ce,\r
++      0x003e, 0x002e, 0x001e, 0x0005, 0x0006, 0x00c6, 0x2061, 0x0100,\r
++      0x6050, 0xc0cd, 0x6052, 0x00ce, 0x000e, 0x0005, 0x2dda, 0x2dda,\r
++      0x29de, 0x29de, 0x29ea, 0x29ea, 0x29f6, 0x29f6, 0x2a04, 0x2a04,\r
++      0x2a10, 0x2a10, 0x2a1e, 0x2a1e, 0x2a2c, 0x2a2c, 0x2a3e, 0x2a3e,\r
++      0x2a4a, 0x2a4a, 0x2a58, 0x2a58, 0x2a76, 0x2a76, 0x2a96, 0x2a96,\r
++      0x2a66, 0x2a66, 0x2a86, 0x2a86, 0x2aa4, 0x2aa4, 0x2a3c, 0x2a3c,\r
++      0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c,\r
++      0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c,\r
++      0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c,\r
++      0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2ab6, 0x2ab6,\r
++      0x2ac2, 0x2ac2, 0x2ad0, 0x2ad0, 0x2ade, 0x2ade, 0x2aee, 0x2aee,\r
++      0x2afc, 0x2afc, 0x2b0c, 0x2b0c, 0x2b1c, 0x2b1c, 0x2b2e, 0x2b2e,\r
++      0x2b3c, 0x2b3c, 0x2b4c, 0x2b4c, 0x2b6e, 0x2b6e, 0x2b92, 0x2b92,\r
++      0x2b5c, 0x2b5c, 0x2b80, 0x2b80, 0x2ba2, 0x2ba2, 0x2a3c, 0x2a3c,\r
++      0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c,\r
++      0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c,\r
++      0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c,\r
++      0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2bb6, 0x2bb6,\r
++      0x2bc2, 0x2bc2, 0x2bd0, 0x2bd0, 0x2bde, 0x2bde, 0x2bee, 0x2bee,\r
++      0x2bfc, 0x2bfc, 0x2c0c, 0x2c0c, 0x2c1c, 0x2c1c, 0x2c2e, 0x2c2e,\r
++      0x2c3c, 0x2c3c, 0x2c4c, 0x2c4c, 0x2c5c, 0x2c5c, 0x2c6e, 0x2c6e,\r
++      0x2c7e, 0x2c7e, 0x2c90, 0x2c90, 0x2ca2, 0x2ca2, 0x2a3c, 0x2a3c,\r
++      0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c,\r
++      0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c,\r
++      0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c,\r
++      0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2cb6, 0x2cb6,\r
++      0x2cc4, 0x2cc4, 0x2cd4, 0x2cd4, 0x2ce4, 0x2ce4, 0x2cf6, 0x2cf6,\r
++      0x2d06, 0x2d06, 0x2d18, 0x2d18, 0x2d2a, 0x2d2a, 0x2d3e, 0x2d3e,\r
++      0x2d4e, 0x2d4e, 0x2d60, 0x2d60, 0x2d72, 0x2d72, 0x2d86, 0x2d86,\r
++      0x2d97, 0x2d97, 0x2daa, 0x2daa, 0x2dbd, 0x2dbd, 0x2a3c, 0x2a3c,\r
++      0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c,\r
++      0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c,\r
++      0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c,\r
++      0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x2a3c, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x20e6,\r
++      0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136,\r
++      0x0146, 0x0156, 0x080c, 0x1f20, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x1f20,\r
++      0x080c, 0x20e6, 0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x1f4a, 0x0804, 0x2dd2,\r
++      0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156,\r
++      0x080c, 0x20e6, 0x080c, 0x1f4a, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x1f20,\r
++      0x080c, 0x1f4a, 0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x1f20, 0x080c, 0x20e6,\r
++      0x080c, 0x1f4a, 0x0804, 0x2dd2, 0xa001, 0x0cf0, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x132a,\r
++      0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136,\r
++      0x0146, 0x0156, 0x080c, 0x20e6, 0x080c, 0x132a, 0x0804, 0x2dd2,\r
++      0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156,\r
++      0x080c, 0x1f20, 0x080c, 0x132a, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x20e6,\r
++      0x080c, 0x132a, 0x080c, 0x1f4a, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x1f20,\r
++      0x080c, 0x20e6, 0x080c, 0x132a, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x1f20,\r
++      0x080c, 0x132a, 0x080c, 0x1f4a, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x132a,\r
++      0x080c, 0x1f4a, 0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x1f20, 0x080c, 0x20e6,\r
++      0x080c, 0x132a, 0x080c, 0x1f4a, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2527,\r
++      0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136,\r
++      0x0146, 0x0156, 0x080c, 0x2527, 0x080c, 0x20e6, 0x0804, 0x2dd2,\r
++      0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156,\r
++      0x080c, 0x2527, 0x080c, 0x1f20, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2527,\r
++      0x080c, 0x1f20, 0x080c, 0x20e6, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2527,\r
++      0x080c, 0x1f4a, 0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2527, 0x080c, 0x20e6,\r
++      0x080c, 0x1f4a, 0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2527, 0x080c, 0x1f20,\r
++      0x080c, 0x1f4a, 0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2527, 0x080c, 0x1f20,\r
++      0x080c, 0x20e6, 0x080c, 0x1f4a, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2527,\r
++      0x080c, 0x132a, 0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2527, 0x080c, 0x20e6,\r
++      0x080c, 0x132a, 0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2527, 0x080c, 0x1f20,\r
++      0x080c, 0x132a, 0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2527, 0x080c, 0x20e6,\r
++      0x080c, 0x132a, 0x080c, 0x1f4a, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2527,\r
++      0x080c, 0x1f20, 0x080c, 0x20e6, 0x080c, 0x132a, 0x0804, 0x2dd2,\r
++      0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156,\r
++      0x080c, 0x2527, 0x080c, 0x1f20, 0x080c, 0x132a, 0x080c, 0x1f4a,\r
++      0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136,\r
++      0x0146, 0x0156, 0x080c, 0x2527, 0x080c, 0x132a, 0x080c, 0x1f4a,\r
++      0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136,\r
++      0x0146, 0x0156, 0x080c, 0x2527, 0x080c, 0x1f20, 0x080c, 0x20e6,\r
++      0x080c, 0x132a, 0x080c, 0x1f4a, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x992e,\r
++      0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136,\r
++      0x0146, 0x0156, 0x080c, 0x992e, 0x080c, 0x20e6, 0x0804, 0x2dd2,\r
++      0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156,\r
++      0x080c, 0x1f20, 0x080c, 0x992e, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x1f20,\r
++      0x080c, 0x992e, 0x080c, 0x20e6, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x992e,\r
++      0x080c, 0x1f4a, 0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x992e, 0x080c, 0x20e6,\r
++      0x080c, 0x1f4a, 0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x1f20, 0x080c, 0x992e,\r
++      0x080c, 0x1f4a, 0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x1f20, 0x080c, 0x992e,\r
++      0x080c, 0x20e6, 0x080c, 0x1f4a, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x992e,\r
++      0x080c, 0x132a, 0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x992e, 0x080c, 0x20e6,\r
++      0x080c, 0x132a, 0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x1f20, 0x080c, 0x992e,\r
++      0x080c, 0x132a, 0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x1f20, 0x080c, 0x992e,\r
++      0x080c, 0x20e6, 0x080c, 0x132a, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x992e,\r
++      0x080c, 0x132a, 0x080c, 0x1f4a, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x992e,\r
++      0x080c, 0x20e6, 0x080c, 0x132a, 0x080c, 0x1f4a, 0x0804, 0x2dd2,\r
++      0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156,\r
++      0x080c, 0x1f20, 0x080c, 0x992e, 0x080c, 0x132a, 0x080c, 0x1f4a,\r
++      0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136,\r
++      0x0146, 0x0156, 0x080c, 0x1f20, 0x080c, 0x992e, 0x080c, 0x20e6,\r
++      0x080c, 0x132a, 0x080c, 0x1f4a, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2527,\r
++      0x080c, 0x992e, 0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2527, 0x080c, 0x992e,\r
++      0x080c, 0x20e6, 0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2527, 0x080c, 0x1f20,\r
++      0x080c, 0x992e, 0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2527, 0x080c, 0x1f20,\r
++      0x080c, 0x992e, 0x080c, 0x20e6, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2527,\r
++      0x080c, 0x992e, 0x080c, 0x1f4a, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2527,\r
++      0x080c, 0x992e, 0x080c, 0x20e6, 0x080c, 0x1f4a, 0x0804, 0x2dd2,\r
++      0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156,\r
++      0x080c, 0x2527, 0x080c, 0x1f20, 0x080c, 0x992e, 0x080c, 0x1f4a,\r
++      0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136,\r
++      0x0146, 0x0156, 0x080c, 0x2527, 0x080c, 0x1f20, 0x080c, 0x992e,\r
++      0x080c, 0x20e6, 0x080c, 0x1f4a, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2527,\r
++      0x080c, 0x992e, 0x080c, 0x132a, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2527,\r
++      0x080c, 0x992e, 0x080c, 0x20e6, 0x080c, 0x132a, 0x0804, 0x2dd2,\r
++      0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156,\r
++      0x080c, 0x2527, 0x080c, 0x1f20, 0x080c, 0x992e, 0x080c, 0x132a,\r
++      0x0804, 0x2dd2, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136,\r
++      0x0146, 0x0156, 0x080c, 0x2527, 0x080c, 0x1f20, 0x080c, 0x992e,\r
++      0x080c, 0x20e6, 0x080c, 0x132a, 0x0804, 0x2dd2, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2527,\r
++      0x080c, 0x992e, 0x080c, 0x132a, 0x080c, 0x1f4a, 0x04d8, 0x0106,\r
++      0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,\r
++      0x2527, 0x080c, 0x992e, 0x080c, 0x20e6, 0x080c, 0x132a, 0x080c,\r
++      0x1f4a, 0x0440, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136,\r
++      0x0146, 0x0156, 0x080c, 0x2527, 0x080c, 0x1f20, 0x080c, 0x132a,\r
++      0x080c, 0x992e, 0x080c, 0x1f4a, 0x00a8, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2527, 0x080c,\r
++      0x1f20, 0x080c, 0x992e, 0x080c, 0x20e6, 0x080c, 0x132a, 0x080c,\r
++      0x1f4a, 0x0000, 0x015e, 0x014e, 0x013e, 0x01de, 0x01ce, 0x012e,\r
++      0x000e, 0x010e, 0x000d, 0x00b6, 0x00c6, 0x0026, 0x0046, 0x9026,\r
++      0x080c, 0x6625, 0x1904, 0x2ee1, 0x72d8, 0x2001, 0x194d, 0x2004,\r
++      0x9005, 0x1110, 0xd29c, 0x0148, 0xd284, 0x1138, 0xd2bc, 0x1904,\r
++      0x2ee1, 0x080c, 0x2ee6, 0x0804, 0x2ee1, 0xd2cc, 0x1904, 0x2ee1,\r
++      0x080c, 0x70b7, 0x1120, 0x70ab, 0xffff, 0x0804, 0x2ee1, 0xd294,\r
++      0x0120, 0x70ab, 0xffff, 0x0804, 0x2ee1, 0x080c, 0x3181, 0x0160,\r
++      0x080c, 0xbf61, 0x0128, 0x2001, 0x1817, 0x203c, 0x0804, 0x2e73,\r
++      0x70ab, 0xffff, 0x0804, 0x2ee1, 0x2001, 0x1817, 0x203c, 0x7290,\r
++      0xd284, 0x0904, 0x2e73, 0xd28c, 0x1904, 0x2e73, 0x0036, 0x73a8,\r
++      0x938e, 0xffff, 0x1110, 0x2019, 0x0001, 0x8314, 0x92e0, 0x1d80,\r
++      0x2c04, 0x938c, 0x0001, 0x0120, 0x9084, 0xff00, 0x8007, 0x0010,\r
++      0x9084, 0x00ff, 0x970e, 0x05a8, 0x908e, 0x0000, 0x0590, 0x908e,\r
++      0x00ff, 0x1150, 0x7230, 0xd284, 0x1588, 0x7290, 0xc28d, 0x7292,\r
++      0x70ab, 0xffff, 0x003e, 0x0478, 0x0026, 0x2011, 0x0010, 0x080c,\r
++      0x668b, 0x002e, 0x0118, 0x70ab, 0xffff, 0x0410, 0x900e, 0x080c,\r
++      0x2424, 0x080c, 0x6210, 0x11c0, 0x080c, 0x6667, 0x1168, 0x7030,\r
++      0xd08c, 0x0130, 0xb800, 0xd0bc, 0x0138, 0x080c, 0x655f, 0x0120,\r
++      0x080c, 0x2eff, 0x0148, 0x0028, 0x080c, 0x3057, 0x080c, 0x2f2b,\r
++      0x0118, 0x8318, 0x0804, 0x2e25, 0x73aa, 0x0010, 0x70ab, 0xffff,\r
++      0x003e, 0x0804, 0x2ee1, 0x9780, 0x318b, 0x203d, 0x97bc, 0xff00,\r
++      0x873f, 0x2041, 0x007e, 0x70a8, 0x9096, 0xffff, 0x1118, 0x900e,\r
++      0x28a8, 0x0050, 0x9812, 0x0220, 0x2008, 0x9802, 0x20a8, 0x0020,\r
++      0x70ab, 0xffff, 0x0804, 0x2ee1, 0x2700, 0x0156, 0x0016, 0x9106,\r
++      0x0904, 0x2ed6, 0x0026, 0x2011, 0x0010, 0x080c, 0x668b, 0x002e,\r
++      0x0120, 0x2009, 0xffff, 0x0804, 0x2ede, 0xc484, 0x080c, 0x6270,\r
++      0x0138, 0x080c, 0xbf61, 0x1590, 0x080c, 0x6210, 0x15b8, 0x0008,\r
++      0xc485, 0x080c, 0x6667, 0x1130, 0x7030, 0xd08c, 0x01f8, 0xb800,\r
++      0xd0bc, 0x11e0, 0x7290, 0xd28c, 0x0180, 0x080c, 0x6667, 0x9082,\r
++      0x0006, 0x02e0, 0xd484, 0x1118, 0x080c, 0x6234, 0x0028, 0x080c,\r
++      0x30ef, 0x01a0, 0x080c, 0x311a, 0x0088, 0x080c, 0x3057, 0x080c,\r
++      0xbf61, 0x1160, 0x080c, 0x2f2b, 0x0188, 0x0040, 0x080c, 0xbf61,\r
++      0x1118, 0x080c, 0x30ef, 0x0110, 0x0451, 0x0140, 0x001e, 0x8108,\r
++      0x015e, 0x1f04, 0x2e8c, 0x70ab, 0xffff, 0x0018, 0x001e, 0x015e,\r
++      0x71aa, 0x004e, 0x002e, 0x00ce, 0x00be, 0x0005, 0x00c6, 0x0016,\r
++      0x70ab, 0x0001, 0x2009, 0x007e, 0x080c, 0x6210, 0x1168, 0xb813,\r
++      0x00ff, 0xb817, 0xfffe, 0x080c, 0x3057, 0x04a9, 0x0128, 0x70d8,\r
++      0xc0bd, 0x70da, 0x080c, 0xbcae, 0x001e, 0x00ce, 0x0005, 0x0016,\r
++      0x0076, 0x00d6, 0x00c6, 0x2001, 0x1858, 0x2004, 0x9084, 0x00ff,\r
++      0xb842, 0x080c, 0x9c58, 0x01d0, 0x2b00, 0x6012, 0x080c, 0xbcdb,\r
++      0x6023, 0x0001, 0x9006, 0x080c, 0x61ad, 0x2001, 0x0000, 0x080c,\r
++      0x61c1, 0x0126, 0x2091, 0x8000, 0x70a4, 0x8000, 0x70a6, 0x012e,\r
++      0x2009, 0x0004, 0x080c, 0x9c85, 0x9085, 0x0001, 0x00ce, 0x00de,\r
++      0x007e, 0x001e, 0x0005, 0x0016, 0x0076, 0x00d6, 0x00c6, 0x2001,\r
++      0x1858, 0x2004, 0x9084, 0x00ff, 0xb842, 0x080c, 0x9c58, 0x0548,\r
++      0x2b00, 0x6012, 0xb800, 0xc0c4, 0xb802, 0xb8a0, 0x9086, 0x007e,\r
++      0x0140, 0xb804, 0x9084, 0x00ff, 0x9086, 0x0006, 0x1110, 0x080c,\r
++      0x3006, 0x080c, 0xbcdb, 0x6023, 0x0001, 0x9006, 0x080c, 0x61ad,\r
++      0x2001, 0x0002, 0x080c, 0x61c1, 0x0126, 0x2091, 0x8000, 0x70a4,\r
++      0x8000, 0x70a6, 0x012e, 0x2009, 0x0002, 0x080c, 0x9c85, 0x9085,\r
++      0x0001, 0x00ce, 0x00de, 0x007e, 0x001e, 0x0005, 0x00b6, 0x00c6,\r
++      0x0026, 0x2009, 0x0080, 0x080c, 0x6210, 0x1140, 0xb813, 0x00ff,\r
++      0xb817, 0xfffc, 0x0039, 0x0110, 0x70df, 0xffff, 0x002e, 0x00ce,\r
++      0x00be, 0x0005, 0x0016, 0x0076, 0x00d6, 0x00c6, 0x080c, 0x9b91,\r
++      0x01d0, 0x2b00, 0x6012, 0x080c, 0xbcdb, 0x6023, 0x0001, 0x9006,\r
++      0x080c, 0x61ad, 0x2001, 0x0002, 0x080c, 0x61c1, 0x0126, 0x2091,\r
++      0x8000, 0x70e0, 0x8000, 0x70e2, 0x012e, 0x2009, 0x0002, 0x080c,\r
++      0x9c85, 0x9085, 0x0001, 0x00ce, 0x00de, 0x007e, 0x001e, 0x0005,\r
++      0x00c6, 0x00d6, 0x0126, 0x2091, 0x8000, 0x2009, 0x007f, 0x080c,\r
++      0x6210, 0x11b8, 0xb813, 0x00ff, 0xb817, 0xfffd, 0xb8c7, 0x0004,\r
++      0x080c, 0x9b91, 0x0170, 0x2b00, 0x6012, 0x6316, 0x6023, 0x0001,\r
++      0x620a, 0x080c, 0xbcdb, 0x2009, 0x0022, 0x080c, 0x9c85, 0x9085,\r
++      0x0001, 0x012e, 0x00de, 0x00ce, 0x0005, 0x00e6, 0x00c6, 0x0066,\r
++      0x0036, 0x0026, 0x00b6, 0x21f0, 0x9036, 0x080c, 0x98c8, 0x1110,\r
++      0x2031, 0x0001, 0x0066, 0x080c, 0x8646, 0x080c, 0x85c6, 0x080c,\r
++      0x981e, 0x080c, 0xab46, 0x006e, 0x86ff, 0x0110, 0x080c, 0x98e4,\r
++      0x3e08, 0x2130, 0x81ff, 0x0120, 0x20a9, 0x007e, 0x900e, 0x0018,\r
++      0x20a9, 0x007f, 0x900e, 0x0016, 0x080c, 0x6270, 0x1140, 0x9686,\r
++      0x0002, 0x1118, 0xb800, 0xd0bc, 0x1110, 0x080c, 0x5cf6, 0x001e,\r
++      0x8108, 0x1f04, 0x2feb, 0x9686, 0x0001, 0x190c, 0x3155, 0x00be,\r
++      0x002e, 0x003e, 0x006e, 0x00ce, 0x00ee, 0x0005, 0x00e6, 0x00c6,\r
++      0x0046, 0x0036, 0x0026, 0x0016, 0x00b6, 0x9016, 0x080c, 0x98c8,\r
++      0x1110, 0x2011, 0x0001, 0x0026, 0x6210, 0x2258, 0xbaa0, 0x0026,\r
++      0x2019, 0x0029, 0x080c, 0x863b, 0x0076, 0x2039, 0x0000, 0x080c,\r
++      0x852a, 0x2c08, 0x080c, 0xcfc8, 0x007e, 0x001e, 0x002e, 0x82ff,\r
++      0x0110, 0x080c, 0x98e4, 0xba10, 0xbb14, 0xbc84, 0x080c, 0x5cf6,\r
++      0xba12, 0xbb16, 0xbc86, 0x00be, 0x001e, 0x002e, 0x003e, 0x004e,\r
++      0x00ce, 0x00ee, 0x0005, 0x00e6, 0x0006, 0x00b6, 0x6010, 0x2058,\r
++      0xb8a0, 0x00be, 0x9086, 0x0080, 0x0150, 0x2071, 0x1800, 0x70a4,\r
++      0x9005, 0x0110, 0x8001, 0x70a6, 0x000e, 0x00ee, 0x0005, 0x2071,\r
++      0x1800, 0x70e0, 0x9005, 0x0dc0, 0x8001, 0x70e2, 0x0ca8, 0xb800,\r
++      0xc08c, 0xb802, 0x0005, 0x00f6, 0x00e6, 0x00c6, 0x00b6, 0x0046,\r
++      0x0036, 0x0026, 0x0016, 0x0156, 0x2178, 0x9016, 0x080c, 0x98c8,\r
++      0x1110, 0x2011, 0x0001, 0x0026, 0x81ff, 0x1118, 0x20a9, 0x0001,\r
++      0x0070, 0x080c, 0x538d, 0xd0c4, 0x0138, 0x0030, 0x9006, 0x2020,\r
++      0x2009, 0x002d, 0x080c, 0xd273, 0x20a9, 0x0800, 0x9016, 0x0026,\r
++      0x928e, 0x007e, 0x0904, 0x30c9, 0x928e, 0x007f, 0x0904, 0x30c9,\r
++      0x928e, 0x0080, 0x05f0, 0x9288, 0x1000, 0x210c, 0x81ff, 0x05c8,\r
++      0x8fff, 0x1150, 0x2001, 0x195f, 0x0006, 0x2003, 0x0001, 0x080c,\r
++      0x30dc, 0x000e, 0x2003, 0x0000, 0x00b6, 0x00c6, 0x2158, 0x2001,\r
++      0x0001, 0x080c, 0x6631, 0x00ce, 0x00be, 0x2019, 0x0029, 0x080c,\r
++      0x863b, 0x0076, 0x2039, 0x0000, 0x080c, 0x852a, 0x00b6, 0x00c6,\r
++      0x0026, 0x2158, 0xba04, 0x9294, 0x00ff, 0x9286, 0x0006, 0x1118,\r
++      0xb807, 0x0404, 0x0028, 0x2001, 0x0004, 0x8007, 0x9215, 0xba06,\r
++      0x002e, 0x00ce, 0x00be, 0x0016, 0x2c08, 0x080c, 0xcfc8, 0x001e,\r
++      0x007e, 0x002e, 0x8210, 0x1f04, 0x307f, 0x002e, 0x82ff, 0x0110,\r
++      0x080c, 0x98e4, 0x015e, 0x001e, 0x002e, 0x003e, 0x004e, 0x00be,\r
++      0x00ce, 0x00ee, 0x00fe, 0x0005, 0x0046, 0x0026, 0x0016, 0x080c,\r
++      0x538d, 0xd0c4, 0x0140, 0xd0a4, 0x0130, 0x9006, 0x2220, 0x2009,\r
++      0x0029, 0x080c, 0xd273, 0x001e, 0x002e, 0x004e, 0x0005, 0x0016,\r
++      0x0026, 0x0036, 0x00c6, 0x7290, 0x82ff, 0x01e8, 0x080c, 0x665f,\r
++      0x11d0, 0x2100, 0x080c, 0x2457, 0x81ff, 0x01b8, 0x2019, 0x0001,\r
++      0x8314, 0x92e0, 0x1d80, 0x2c04, 0xd384, 0x0120, 0x9084, 0xff00,\r
++      0x8007, 0x0010, 0x9084, 0x00ff, 0x9116, 0x0138, 0x9096, 0x00ff,\r
++      0x0110, 0x8318, 0x0c68, 0x9085, 0x0001, 0x00ce, 0x003e, 0x002e,\r
++      0x001e, 0x0005, 0x0016, 0x00c6, 0x0126, 0x2091, 0x8000, 0x0066,\r
++      0x9036, 0x080c, 0x98c8, 0x1110, 0x2031, 0x0001, 0x0066, 0x0036,\r
++      0x2019, 0x0029, 0x00d9, 0x003e, 0x006e, 0x86ff, 0x0110, 0x080c,\r
++      0x98e4, 0x006e, 0x9180, 0x1000, 0x2004, 0x9065, 0x0158, 0x0016,\r
++      0x00c6, 0x2061, 0x1b02, 0x001e, 0x6112, 0x080c, 0x3006, 0x001e,\r
++      0x080c, 0x6234, 0x012e, 0x00ce, 0x001e, 0x0005, 0x0016, 0x0026,\r
++      0x2110, 0x080c, 0x94f4, 0x080c, 0xd529, 0x002e, 0x001e, 0x0005,\r
++      0x2001, 0x1836, 0x2004, 0xd0cc, 0x0005, 0x00c6, 0x00b6, 0x080c,\r
++      0x70b7, 0x1118, 0x20a9, 0x0800, 0x0010, 0x20a9, 0x0782, 0x080c,\r
++      0x70b7, 0x1110, 0x900e, 0x0010, 0x2009, 0x007e, 0x9180, 0x1000,\r
++      0x2004, 0x905d, 0x0130, 0x86ff, 0x0110, 0xb800, 0xd0bc, 0x090c,\r
++      0x6234, 0x8108, 0x1f04, 0x3166, 0x2061, 0x1800, 0x607b, 0x0000,\r
++      0x607c, 0x9084, 0x00ff, 0x607e, 0x60af, 0x0000, 0x00be, 0x00ce,\r
++      0x0005, 0x2001, 0x1875, 0x2004, 0xd0bc, 0x0005, 0x2011, 0x1854,\r
++      0x2214, 0xd2ec, 0x0005, 0x7eef, 0x7de8, 0x7ce4, 0x80e2, 0x7be1,\r
++      0x80e0, 0x80dc, 0x80da, 0x7ad9, 0x80d6, 0x80d5, 0x80d4, 0x80d3,\r
++      0x80d2, 0x80d1, 0x79ce, 0x78cd, 0x80cc, 0x80cb, 0x80ca, 0x80c9,\r
++      0x80c7, 0x80c6, 0x77c5, 0x76c3, 0x80bc, 0x80ba, 0x75b9, 0x80b6,\r
++      0x74b5, 0x73b4, 0x72b3, 0x80b2, 0x80b1, 0x80ae, 0x71ad, 0x80ac,\r
++      0x70ab, 0x6faa, 0x6ea9, 0x80a7, 0x6da6, 0x6ca5, 0x6ba3, 0x6a9f,\r
++      0x699e, 0x689d, 0x809b, 0x8098, 0x6797, 0x6690, 0x658f, 0x6488,\r
++      0x6384, 0x6282, 0x8081, 0x8080, 0x617c, 0x607a, 0x8079, 0x5f76,\r
++      0x8075, 0x8074, 0x8073, 0x8072, 0x8071, 0x806e, 0x5e6d, 0x806c,\r
++      0x5d6b, 0x5c6a, 0x5b69, 0x8067, 0x5a66, 0x5965, 0x5863, 0x575c,\r
++      0x565a, 0x5559, 0x8056, 0x8055, 0x5454, 0x5353, 0x5252, 0x5151,\r
++      0x504e, 0x4f4d, 0x804c, 0x804b, 0x4e4a, 0x4d49, 0x8047, 0x4c46,\r
++      0x8045, 0x8043, 0x803c, 0x803a, 0x8039, 0x8036, 0x4b35, 0x8034,\r
++      0x4a33, 0x4932, 0x4831, 0x802e, 0x472d, 0x462c, 0x452b, 0x442a,\r
++      0x4329, 0x4227, 0x8026, 0x8025, 0x4123, 0x401f, 0x3f1e, 0x3e1d,\r
++      0x3d1b, 0x3c18, 0x8017, 0x8010, 0x3b0f, 0x3a08, 0x8004, 0x3902,\r
++      0x8001, 0x8000, 0x8000, 0x3800, 0x3700, 0x3600, 0x8000, 0x3500,\r
++      0x8000, 0x8000, 0x8000, 0x3400, 0x8000, 0x8000, 0x8000, 0x8000,\r
++      0x8000, 0x8000, 0x3300, 0x3200, 0x8000, 0x8000, 0x8000, 0x8000,\r
++      0x8000, 0x8000, 0x3100, 0x3000, 0x8000, 0x8000, 0x2f00, 0x8000,\r
++      0x2e00, 0x2d00, 0x2c00, 0x8000, 0x8000, 0x8000, 0x2b00, 0x8000,\r
++      0x2a00, 0x2900, 0x2800, 0x8000, 0x2700, 0x2600, 0x2500, 0x2400,\r
++      0x2300, 0x2200, 0x8000, 0x8000, 0x2100, 0x2000, 0x1f00, 0x1e00,\r
++      0x1d00, 0x1c00, 0x8000, 0x8000, 0x1b00, 0x1a00, 0x8000, 0x1900,\r
++      0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x1800, 0x8000,\r
++      0x1700, 0x1600, 0x1500, 0x8000, 0x1400, 0x1300, 0x1200, 0x1100,\r
++      0x1000, 0x0f00, 0x8000, 0x8000, 0x0e00, 0x0d00, 0x0c00, 0x0b00,\r
++      0x0a00, 0x0900, 0x8000, 0x8000, 0x0800, 0x0700, 0x8000, 0x0600,\r
++      0x8000, 0x8000, 0x8000, 0x0500, 0x0400, 0x0300, 0x8000, 0x0200,\r
++      0x8000, 0x8000, 0x8000, 0x0100, 0x8000, 0x8000, 0x8000, 0x8000,\r
++      0x8000, 0x8000, 0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000,\r
++      0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000,\r
++      0x8000, 0x8000, 0x8000, 0x2071, 0x1894, 0x7003, 0x0002, 0x9006,\r
++      0x7016, 0x701a, 0x704a, 0x704e, 0x700e, 0x7042, 0x7046, 0x703b,\r
++      0x18b0, 0x703f, 0x18b0, 0x7007, 0x0001, 0x080c, 0x103b, 0x090c,\r
++      0x0d65, 0x2900, 0x706a, 0xa867, 0x0002, 0xa8ab, 0xdcb0, 0x080c,\r
++      0x103b, 0x090c, 0x0d65, 0x2900, 0x706e, 0xa867, 0x0002, 0xa8ab,\r
++      0xdcb0, 0x0005, 0x2071, 0x1894, 0x7004, 0x0002, 0x32ba, 0x32bb,\r
++      0x32ce, 0x32e2, 0x0005, 0x1004, 0x32cb, 0x0e04, 0x32cb, 0x2079,\r
++      0x0000, 0x0126, 0x2091, 0x8000, 0x700c, 0x9005, 0x1128, 0x700f,\r
++      0x0001, 0x012e, 0x0468, 0x0005, 0x012e, 0x0ce8, 0x2079, 0x0000,\r
++      0x2061, 0x18ae, 0x2c4c, 0xa86c, 0x908e, 0x0100, 0x0128, 0x9086,\r
++      0x0200, 0x0904, 0x33b6, 0x0005, 0x7018, 0x2048, 0x2061, 0x1800,\r
++      0x701c, 0x0807, 0x7014, 0x2048, 0xa864, 0x9094, 0x00ff, 0x9296,\r
++      0x0029, 0x1120, 0xaa78, 0xd2fc, 0x0128, 0x0005, 0x9086, 0x0103,\r
++      0x0108, 0x0005, 0x2079, 0x0000, 0x2061, 0x1800, 0x701c, 0x0807,\r
++      0x2061, 0x1800, 0x7880, 0x908a, 0x0040, 0x1210, 0x61cc, 0x0042,\r
++      0x2100, 0x908a, 0x003f, 0x1a04, 0x33b3, 0x61cc, 0x0804, 0x3348,\r
++      0x338a, 0x33c2, 0x33cc, 0x33d0, 0x33da, 0x33e0, 0x33e4, 0x33f4,\r
++      0x33f7, 0x3401, 0x3406, 0x340b, 0x3416, 0x3421, 0x3430, 0x343f,\r
++      0x344d, 0x3464, 0x347f, 0x33b3, 0x3528, 0x3566, 0x360b, 0x361c,\r
++      0x363f, 0x33b3, 0x33b3, 0x33b3, 0x3677, 0x3697, 0x36a0, 0x36cc,\r
++      0x36d2, 0x33b3, 0x3718, 0x33b3, 0x33b3, 0x33b3, 0x33b3, 0x33b3,\r
++      0x3723, 0x372c, 0x3734, 0x3736, 0x33b3, 0x33b3, 0x33b3, 0x33b3,\r
++      0x33b3, 0x33b3, 0x3766, 0x33b3, 0x33b3, 0x33b3, 0x33b3, 0x33b3,\r
++      0x3783, 0x37de, 0x33b3, 0x33b3, 0x33b3, 0x33b3, 0x33b3, 0x33b3,\r
++      0x0002, 0x3808, 0x380b, 0x386a, 0x3883, 0x38b3, 0x3b55, 0x33b3,\r
++      0x4f5e, 0x33b3, 0x33b3, 0x33b3, 0x33b3, 0x33b3, 0x33b3, 0x33b3,\r
++      0x33b3, 0x3401, 0x3406, 0x4054, 0x53b1, 0x406a, 0x4fed, 0x503e,\r
++      0x5141, 0x33b3, 0x51a3, 0x51df, 0x5210, 0x531c, 0x523d, 0x529c,\r
++      0x33b3, 0x406e, 0x41fe, 0x4214, 0x4239, 0x429e, 0x4312, 0x4332,\r
++      0x43a9, 0x4405, 0x4461, 0x4464, 0x4489, 0x44fc, 0x4566, 0x456e,\r
++      0x46a0, 0x4802, 0x4836, 0x4a80, 0x33b3, 0x4a9e, 0x4b61, 0x4c37,\r
++      0x33b3, 0x33b3, 0x33b3, 0x33b3, 0x4c9d, 0x4cb8, 0x456e, 0x4efe,\r
++      0x714c, 0x0000, 0x2021, 0x4000, 0x080c, 0x48b4, 0x0126, 0x2091,\r
++      0x8000, 0x0e04, 0x3394, 0x0010, 0x012e, 0x0cc0, 0x7c36, 0x9486,\r
++      0x4000, 0x0118, 0x7833, 0x0011, 0x0010, 0x7833, 0x0010, 0x7c82,\r
++      0x7986, 0x7a8a, 0x7b8e, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004,\r
++      0xd084, 0x190c, 0x11be, 0x7007, 0x0001, 0x2091, 0x5000, 0x700f,\r
++      0x0000, 0x012e, 0x0005, 0x2021, 0x4001, 0x08b0, 0x2021, 0x4002,\r
++      0x0898, 0x2021, 0x4003, 0x0880, 0x2021, 0x4005, 0x0868, 0x2021,\r
++      0x4006, 0x0850, 0x2039, 0x0001, 0x902e, 0x2520, 0x7b88, 0x7a8c,\r
++      0x7884, 0x7990, 0x0804, 0x48c1, 0x7883, 0x0004, 0x7884, 0x0807,\r
++      0x2039, 0x0001, 0x902e, 0x2520, 0x7b88, 0x7a8c, 0x7884, 0x7990,\r
++      0x0804, 0x48c4, 0x7984, 0x7888, 0x2114, 0x200a, 0x0804, 0x338a,\r
++      0x7984, 0x2114, 0x0804, 0x338a, 0x20e1, 0x0000, 0x2099, 0x0021,\r
++      0x20e9, 0x0000, 0x20a1, 0x0021, 0x20a9, 0x001f, 0x4003, 0x7984,\r
++      0x7a88, 0x7b8c, 0x0804, 0x338a, 0x7884, 0x2060, 0x04d8, 0x2009,\r
++      0x0003, 0x2011, 0x0002, 0x2019, 0x001c, 0x789b, 0x0317, 0x0804,\r
++      0x338a, 0x2039, 0x0001, 0x7d98, 0x7c9c, 0x0800, 0x2039, 0x0001,\r
++      0x7d98, 0x7c9c, 0x0848, 0x79a0, 0x9182, 0x0040, 0x0210, 0x0804,\r
++      0x33bf, 0x2138, 0x7d98, 0x7c9c, 0x0804, 0x33c6, 0x79a0, 0x9182,\r
++      0x0040, 0x0210, 0x0804, 0x33bf, 0x2138, 0x7d98, 0x7c9c, 0x0804,\r
++      0x33d4, 0x79a0, 0x9182, 0x0040, 0x0210, 0x0804, 0x33bf, 0x21e8,\r
++      0x7984, 0x7888, 0x20a9, 0x0001, 0x21a0, 0x4004, 0x0804, 0x338a,\r
++      0x2061, 0x0800, 0xe10c, 0x9006, 0x2c15, 0x9200, 0x8c60, 0x8109,\r
++      0x1dd8, 0x2010, 0x9005, 0x0904, 0x338a, 0x0804, 0x33b9, 0x79a0,\r
++      0x9182, 0x0040, 0x0210, 0x0804, 0x33bf, 0x21e0, 0x20a9, 0x0001,\r
++      0x7984, 0x2198, 0x4012, 0x0804, 0x338a, 0x2069, 0x1853, 0x7884,\r
++      0x7990, 0x911a, 0x1a04, 0x33bf, 0x8019, 0x0904, 0x33bf, 0x684a,\r
++      0x6942, 0x788c, 0x6852, 0x7888, 0x6856, 0x9006, 0x685a, 0x685e,\r
++      0x080c, 0x73e8, 0x0804, 0x338a, 0x2069, 0x1853, 0x7884, 0x7994,\r
++      0x911a, 0x1a04, 0x33bf, 0x8019, 0x0904, 0x33bf, 0x684e, 0x6946,\r
++      0x788c, 0x6862, 0x7888, 0x6866, 0x9006, 0x686a, 0x686e, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0x6769, 0x012e, 0x0804, 0x338a, 0x902e,\r
++      0x2520, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x33bc, 0x7984,\r
++      0x7b88, 0x7a8c, 0x20a9, 0x0005, 0x20e9, 0x0001, 0x20a1, 0x189c,\r
++      0x4101, 0x080c, 0x4878, 0x1120, 0x2009, 0x0002, 0x0804, 0x33bc,\r
++      0x2009, 0x0020, 0xa85c, 0x9080, 0x0019, 0xaf60, 0x080c, 0x48c1,\r
++      0x701f, 0x34a3, 0x0005, 0xa864, 0x2008, 0x9084, 0x00ff, 0x9096,\r
++      0x0011, 0x0168, 0x9096, 0x0019, 0x0150, 0x9096, 0x0015, 0x0138,\r
++      0x9096, 0x0048, 0x0120, 0x9096, 0x0029, 0x1904, 0x33bc, 0x810f,\r
++      0x918c, 0x00ff, 0x0904, 0x33bc, 0x7112, 0x7010, 0x8001, 0x0560,\r
++      0x7012, 0x080c, 0x4878, 0x1120, 0x2009, 0x0002, 0x0804, 0x33bc,\r
++      0x2009, 0x0020, 0x7068, 0x2040, 0xa28c, 0xa390, 0xa494, 0xa598,\r
++      0x9290, 0x0040, 0x9399, 0x0000, 0x94a1, 0x0000, 0x95a9, 0x0000,\r
++      0xa85c, 0x9080, 0x0019, 0xaf60, 0x080c, 0x48c1, 0x701f, 0x34e1,\r
++      0x0005, 0xa864, 0x9084, 0x00ff, 0x9096, 0x0002, 0x0120, 0x9096,\r
++      0x000a, 0x1904, 0x33bc, 0x0888, 0x7014, 0x2048, 0xa868, 0xc0fd,\r
++      0xa86a, 0xa864, 0x9084, 0x00ff, 0x9096, 0x0029, 0x1160, 0xc2fd,\r
++      0xaa7a, 0x080c, 0x5de4, 0x0150, 0x0126, 0x2091, 0x8000, 0xa87a,\r
++      0xa982, 0x012e, 0x0050, 0x080c, 0x60fb, 0x1128, 0x7007, 0x0003,\r
++      0x701f, 0x350d, 0x0005, 0x080c, 0x6bb3, 0x0126, 0x2091, 0x8000,\r
++      0x20a9, 0x0005, 0x20e1, 0x0001, 0x2099, 0x189c, 0x400a, 0x2100,\r
++      0x9210, 0x9399, 0x0000, 0x94a1, 0x0000, 0x95a9, 0x0000, 0xa85c,\r
++      0x9080, 0x0019, 0x2009, 0x0020, 0x012e, 0xaf60, 0x0804, 0x48c4,\r
++      0x2091, 0x8000, 0x7837, 0x4000, 0x7833, 0x0010, 0x7883, 0x4000,\r
++      0x7887, 0x4953, 0x788b, 0x5020, 0x788f, 0x2020, 0x2009, 0x017f,\r
++      0x2104, 0x7892, 0x3f00, 0x7896, 0x2061, 0x0100, 0x6200, 0x2061,\r
++      0x0200, 0x603c, 0x8007, 0x9205, 0x789a, 0x2009, 0x04fd, 0x2104,\r
++      0x789e, 0x2091, 0x5000, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004,\r
++      0xd084, 0x0180, 0x2001, 0x19f3, 0x2004, 0x9005, 0x0128, 0x2001,\r
++      0x008b, 0x2004, 0xd0fc, 0x0dd8, 0x2001, 0x008a, 0x2003, 0x0002,\r
++      0x2003, 0x1001, 0x2071, 0x0080, 0x0804, 0x0427, 0x81ff, 0x1904,\r
++      0x33bc, 0x7984, 0x080c, 0x6270, 0x1904, 0x33bf, 0x7e98, 0x9684,\r
++      0x3fff, 0x9082, 0x4000, 0x1a04, 0x33bf, 0x7c88, 0x7d8c, 0x080c,\r
++      0x64a2, 0x080c, 0x6433, 0x1518, 0x2061, 0x1ddc, 0x0126, 0x2091,\r
++      0x8000, 0x6000, 0x9086, 0x0000, 0x0148, 0x6014, 0x904d, 0x0130,\r
++      0xa86c, 0x9406, 0x1118, 0xa870, 0x9506, 0x0150, 0x012e, 0x9ce0,\r
++      0x001c, 0x2001, 0x1819, 0x2004, 0x9c02, 0x1a04, 0x33bc, 0x0c30,\r
++      0x080c, 0xb452, 0x012e, 0x0904, 0x33bc, 0x0804, 0x338a, 0x900e,\r
++      0x2001, 0x0005, 0x080c, 0x6bb3, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0xbb4b, 0x080c, 0x6996, 0x012e, 0x0804, 0x338a, 0x00a6, 0x2950,\r
++      0xb198, 0x080c, 0x6270, 0x1904, 0x35f8, 0xb6a4, 0x9684, 0x3fff,\r
++      0x9082, 0x4000, 0x16e8, 0xb49c, 0xb5a0, 0x080c, 0x64a2, 0x080c,\r
++      0x644d, 0x1520, 0x2061, 0x1ddc, 0x0126, 0x2091, 0x8000, 0x6000,\r
++      0x9086, 0x0000, 0x0148, 0x6014, 0x904d, 0x0130, 0xa86c, 0x9406,\r
++      0x1118, 0xa870, 0x9506, 0x0158, 0x012e, 0x9ce0, 0x001c, 0x2001,\r
++      0x1819, 0x2004, 0x9c02, 0x2009, 0x000d, 0x12b0, 0x0c28, 0x080c,\r
++      0xb452, 0x012e, 0x2009, 0x0003, 0x0178, 0x00e0, 0x900e, 0x2001,\r
++      0x0005, 0x080c, 0x6bb3, 0x0126, 0x2091, 0x8000, 0x080c, 0xbb4b,\r
++      0x080c, 0x698a, 0x012e, 0x0070, 0xb097, 0x4005, 0xb19a, 0x0010,\r
++      0xb097, 0x4006, 0x900e, 0x9085, 0x0001, 0x2001, 0x0030, 0x2a48,\r
++      0x00ae, 0x0005, 0xb097, 0x4000, 0x9006, 0x918d, 0x0001, 0x2008,\r
++      0x2a48, 0x00ae, 0x0005, 0x81ff, 0x1904, 0x33bc, 0x080c, 0x488f,\r
++      0x0904, 0x33bf, 0x080c, 0x6337, 0x0904, 0x33bc, 0x080c, 0x64a8,\r
++      0x0904, 0x33bc, 0x0804, 0x4329, 0x81ff, 0x1904, 0x33bc, 0x080c,\r
++      0x48ab, 0x0904, 0x33bf, 0x080c, 0x6536, 0x0904, 0x33bc, 0x2019,\r
++      0x0005, 0x79a8, 0x080c, 0x64c3, 0x0904, 0x33bc, 0x7888, 0x908a,\r
++      0x1000, 0x1a04, 0x33bf, 0x8003, 0x800b, 0x810b, 0x9108, 0x080c,\r
++      0x8167, 0x7984, 0xd184, 0x1904, 0x338a, 0x0804, 0x4329, 0x0126,\r
++      0x2091, 0x8000, 0x81ff, 0x0118, 0x2009, 0x0001, 0x0450, 0x2029,\r
++      0x07ff, 0x6458, 0x2400, 0x9506, 0x01f8, 0x2508, 0x080c, 0x6270,\r
++      0x11d8, 0x080c, 0x6536, 0x1128, 0x2009, 0x0002, 0x62bc, 0x2518,\r
++      0x00c0, 0x2019, 0x0004, 0x900e, 0x080c, 0x64c3, 0x1118, 0x2009,\r
++      0x0006, 0x0078, 0x7884, 0x908a, 0x1000, 0x1270, 0x8003, 0x800b,\r
++      0x810b, 0x9108, 0x080c, 0x8167, 0x8529, 0x1ae0, 0x012e, 0x0804,\r
++      0x338a, 0x012e, 0x0804, 0x33bc, 0x012e, 0x0804, 0x33bf, 0x080c,\r
++      0x488f, 0x0904, 0x33bf, 0x080c, 0x6337, 0x0904, 0x33bc, 0x080c,\r
++      0x98c8, 0xbaa0, 0x2019, 0x0005, 0x00c6, 0x9066, 0x080c, 0x863b,\r
++      0x0076, 0x903e, 0x080c, 0x852a, 0x900e, 0x080c, 0xcfc8, 0x007e,\r
++      0x00ce, 0x080c, 0x98e4, 0x080c, 0x64a2, 0x0804, 0x338a, 0x080c,\r
++      0x488f, 0x0904, 0x33bf, 0x080c, 0x64a2, 0x2208, 0x0804, 0x338a,\r
++      0x0156, 0x00d6, 0x00e6, 0x00c6, 0x2069, 0x1906, 0x6810, 0x6914,\r
++      0x910a, 0x1208, 0x900e, 0x6816, 0x9016, 0x901e, 0x2071, 0x19b8,\r
++      0x7028, 0x9065, 0x0118, 0x8210, 0x600c, 0x0cd8, 0x2300, 0x9218,\r
++      0x00ce, 0x00ee, 0x00de, 0x015e, 0x0804, 0x338a, 0x00f6, 0x0016,\r
++      0x907d, 0x0138, 0x9006, 0x8000, 0x2f0c, 0x81ff, 0x0110, 0x2178,\r
++      0x0cd0, 0x001e, 0x00fe, 0x0005, 0x2069, 0x1906, 0x6910, 0x62b8,\r
++      0x0804, 0x338a, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x33bc,\r
++      0x0126, 0x2091, 0x8000, 0x080c, 0x53a1, 0x0128, 0x2009, 0x0007,\r
++      0x012e, 0x0804, 0x33bc, 0x012e, 0x6158, 0x9190, 0x318b, 0x2215,\r
++      0x9294, 0x00ff, 0x6378, 0x83ff, 0x0108, 0x627c, 0x67d8, 0x97c4,\r
++      0x000a, 0x98c6, 0x000a, 0x1118, 0x2031, 0x0001, 0x00e8, 0x97c4,\r
++      0x0022, 0x98c6, 0x0022, 0x1118, 0x2031, 0x0003, 0x00a8, 0x97c4,\r
++      0x0012, 0x98c6, 0x0012, 0x1118, 0x2031, 0x0002, 0x0068, 0x080c,\r
++      0x70b7, 0x1118, 0x2031, 0x0004, 0x0038, 0xd79c, 0x0120, 0x2009,\r
++      0x0005, 0x0804, 0x33bc, 0x9036, 0x7e9a, 0x7f9e, 0x0804, 0x338a,\r
++      0x6148, 0x624c, 0x2019, 0x1957, 0x231c, 0x2001, 0x1958, 0x2004,\r
++      0x789a, 0x0804, 0x338a, 0x0126, 0x2091, 0x8000, 0x6138, 0x623c,\r
++      0x6340, 0x012e, 0x0804, 0x338a, 0x080c, 0x48ab, 0x0904, 0x33bf,\r
++      0xba44, 0xbb38, 0x0804, 0x338a, 0x080c, 0x0d65, 0x080c, 0x48ab,\r
++      0x2110, 0x0904, 0x33bf, 0xb804, 0x908c, 0x00ff, 0x918e, 0x0006,\r
++      0x0140, 0x9084, 0xff00, 0x9086, 0x0600, 0x2009, 0x0009, 0x1904,\r
++      0x33bc, 0x0126, 0x2091, 0x8000, 0x2019, 0x0005, 0x00c6, 0x9066,\r
++      0x080c, 0x98c8, 0x080c, 0x94f4, 0x080c, 0x863b, 0x0076, 0x903e,\r
++      0x080c, 0x852a, 0x900e, 0x080c, 0xcfc8, 0x007e, 0x00ce, 0x080c,\r
++      0x98e4, 0xb807, 0x0407, 0x012e, 0x0804, 0x338a, 0x6148, 0x624c,\r
++      0x7884, 0x604a, 0x7b88, 0x634e, 0x2069, 0x1853, 0x831f, 0x9305,\r
++      0x6816, 0x788c, 0x2069, 0x1957, 0x2d1c, 0x206a, 0x7e98, 0x9682,\r
++      0x0014, 0x1210, 0x2031, 0x07d0, 0x2069, 0x1958, 0x2d04, 0x266a,\r
++      0x789a, 0x0804, 0x338a, 0x0126, 0x2091, 0x8000, 0x6138, 0x7884,\r
++      0x603a, 0x910e, 0xd1b4, 0x190c, 0x0eb4, 0xd0c4, 0x01a8, 0x00d6,\r
++      0x78a8, 0x2009, 0x196e, 0x200a, 0x78ac, 0x2011, 0x196f, 0x2012,\r
++      0x2069, 0x0100, 0x6838, 0x9086, 0x0007, 0x1118, 0x2214, 0x6a5a,\r
++      0x0010, 0x210c, 0x695a, 0x00de, 0x7888, 0x603e, 0x2011, 0x0116,\r
++      0x220c, 0x7888, 0xd08c, 0x0118, 0x918d, 0x0040, 0x0010, 0x918c,\r
++      0xff7f, 0x2112, 0x6140, 0x788c, 0x6042, 0x910e, 0xd1e4, 0x190c,\r
++      0x0ecf, 0x6040, 0xd0cc, 0x0120, 0x78b0, 0x2011, 0x0114, 0x2012,\r
++      0x012e, 0x0804, 0x338a, 0x00f6, 0x2079, 0x1800, 0x7a38, 0xa898,\r
++      0x9084, 0xfebf, 0x9215, 0xa89c, 0x9084, 0xfebf, 0x8002, 0x9214,\r
++      0x7838, 0x9084, 0x0140, 0x9215, 0x7a3a, 0xa897, 0x4000, 0x900e,\r
++      0x9085, 0x0001, 0x2001, 0x0000, 0x00fe, 0x0005, 0x7898, 0x9005,\r
++      0x01a8, 0x7888, 0x9025, 0x0904, 0x33bf, 0x788c, 0x902d, 0x0904,\r
++      0x33bf, 0x900e, 0x080c, 0x6270, 0x1120, 0xba44, 0xbb38, 0xbc46,\r
++      0xbd3a, 0x9186, 0x07ff, 0x0190, 0x8108, 0x0ca0, 0x080c, 0x48ab,\r
++      0x0904, 0x33bf, 0x7888, 0x900d, 0x0904, 0x33bf, 0x788c, 0x9005,\r
++      0x0904, 0x33bf, 0xba44, 0xb946, 0xbb38, 0xb83a, 0x0804, 0x338a,\r
++      0x2011, 0xbc09, 0x0010, 0x2011, 0xbc05, 0x080c, 0x53a1, 0x1904,\r
++      0x33bc, 0x00c6, 0x2061, 0x0100, 0x7984, 0x9186, 0x00ff, 0x1130,\r
++      0x2001, 0x1817, 0x2004, 0x9085, 0xff00, 0x0088, 0x9182, 0x007f,\r
++      0x16e0, 0x9188, 0x318b, 0x210d, 0x918c, 0x00ff, 0x2001, 0x1817,\r
++      0x2004, 0x0026, 0x9116, 0x002e, 0x0580, 0x810f, 0x9105, 0x0126,\r
++      0x2091, 0x8000, 0x0006, 0x080c, 0x9b91, 0x000e, 0x0510, 0x602e,\r
++      0x620a, 0x7984, 0x00b6, 0x080c, 0x6216, 0x2b08, 0x00be, 0x1500,\r
++      0x6112, 0x6023, 0x0001, 0x080c, 0x4878, 0x01d0, 0x9006, 0xa866,\r
++      0x7007, 0x0003, 0xa832, 0xa868, 0xc0fd, 0xa86a, 0x701f, 0x3863,\r
++      0x2900, 0x6016, 0x2009, 0x0032, 0x080c, 0x9c85, 0x012e, 0x00ce,\r
++      0x0005, 0x012e, 0x00ce, 0x0804, 0x33bc, 0x00ce, 0x0804, 0x33bf,\r
++      0x080c, 0x9be7, 0x0cb0, 0xa830, 0x9086, 0x0100, 0x0904, 0x33bc,\r
++      0x0804, 0x338a, 0x2061, 0x1a3f, 0x0126, 0x2091, 0x8000, 0x6000,\r
++      0xd084, 0x0170, 0x6104, 0x6208, 0x2061, 0x1800, 0x6350, 0x6070,\r
++      0x789a, 0x60bc, 0x789e, 0x60b8, 0x78aa, 0x012e, 0x0804, 0x338a,\r
++      0x900e, 0x2110, 0x0c88, 0x81ff, 0x1904, 0x33bc, 0x080c, 0x70b7,\r
++      0x0904, 0x33bc, 0x0126, 0x2091, 0x8000, 0x6250, 0x6070, 0x9202,\r
++      0x0248, 0x9085, 0x0001, 0x080c, 0x248d, 0x080c, 0x55bb, 0x012e,\r
++      0x0804, 0x338a, 0x012e, 0x0804, 0x33bf, 0x0006, 0x0016, 0x00c6,\r
++      0x00e6, 0x2001, 0x197a, 0x2070, 0x2061, 0x1853, 0x6008, 0x2072,\r
++      0x900e, 0x2011, 0x1400, 0x080c, 0x8419, 0x7206, 0x00ee, 0x00ce,\r
++      0x001e, 0x000e, 0x0005, 0x0126, 0x2091, 0x8000, 0x81ff, 0x0128,\r
++      0x012e, 0x2021, 0x400b, 0x0804, 0x338c, 0x7884, 0xd0fc, 0x0148,\r
++      0x2001, 0x002a, 0x2004, 0x9082, 0x00e1, 0x0288, 0x012e, 0x0804,\r
++      0x33bf, 0x2001, 0x002a, 0x2004, 0x2069, 0x1853, 0x6908, 0x9102,\r
++      0x1230, 0x012e, 0x0804, 0x33bf, 0x012e, 0x0804, 0x33bc, 0x080c,\r
++      0x9b66, 0x0dd0, 0x7884, 0xd0fc, 0x0904, 0x392e, 0x00c6, 0x080c,\r
++      0x4878, 0x00ce, 0x0d88, 0xa867, 0x0000, 0x7884, 0xa80a, 0x7898,\r
++      0xa80e, 0x789c, 0xa812, 0x2001, 0x002e, 0x2004, 0xa81a, 0x2001,\r
++      0x002f, 0x2004, 0xa81e, 0x2001, 0x0030, 0x2004, 0xa822, 0x2001,\r
++      0x0031, 0x2004, 0xa826, 0x2001, 0x0034, 0x2004, 0xa82a, 0x2001,\r
++      0x0035, 0x2004, 0xa82e, 0x2001, 0x002a, 0x2004, 0x9080, 0x0003,\r
++      0x9084, 0x00fc, 0x8004, 0xa816, 0x080c, 0x3ab8, 0x0928, 0x7014,\r
++      0x2048, 0xad2c, 0xac28, 0xab1c, 0xaa18, 0xa930, 0xa808, 0xd0b4,\r
++      0x1120, 0x2029, 0x0000, 0x2021, 0x0000, 0x8906, 0x8006, 0x8007,\r
++      0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x001b, 0x080c, 0x48c1,\r
++      0x701f, 0x39f5, 0x7023, 0x0001, 0x012e, 0x0005, 0x080c, 0x98c8,\r
++      0x0046, 0x0086, 0x0096, 0x00a6, 0x00b6, 0x00c6, 0x00d6, 0x00e6,\r
++      0x00f6, 0x080c, 0x389d, 0x2001, 0x1970, 0x2003, 0x0000, 0x2021,\r
++      0x000a, 0x2061, 0x0100, 0x6104, 0x0016, 0x60bb, 0x0000, 0x60bf,\r
++      0x32e1, 0x60bf, 0x0012, 0x080c, 0x3b27, 0x080c, 0x3ae6, 0x00f6,\r
++      0x00e6, 0x0086, 0x2940, 0x2071, 0x19b8, 0x2079, 0x0090, 0x00d6,\r
++      0x2069, 0x0000, 0x6884, 0xd0b4, 0x0140, 0x2001, 0x0035, 0x2004,\r
++      0x780e, 0x2001, 0x0034, 0x2004, 0x780a, 0x00de, 0x2011, 0x0001,\r
++      0x080c, 0x3e98, 0x008e, 0x00ee, 0x00fe, 0x080c, 0x3dc5, 0x080c,\r
++      0x3cf2, 0x05b8, 0x2001, 0x020b, 0x2004, 0x9084, 0x0140, 0x1db8,\r
++      0x080c, 0x3f0c, 0x00f6, 0x2079, 0x0300, 0x78bc, 0x00fe, 0x908c,\r
++      0x0070, 0x1560, 0x2071, 0x0200, 0x7037, 0x0000, 0x7050, 0x9084,\r
++      0xff00, 0x9086, 0x3200, 0x1510, 0x7037, 0x0001, 0x7050, 0x9084,\r
++      0xff00, 0x9086, 0xe100, 0x11d0, 0x7037, 0x0000, 0x7054, 0x7037,\r
++      0x0000, 0x715c, 0x9106, 0x1190, 0x2001, 0x181f, 0x2004, 0x9106,\r
++      0x1168, 0x00c6, 0x2061, 0x0100, 0x6024, 0x9084, 0x1e00, 0x00ce,\r
++      0x0138, 0x080c, 0x3cfc, 0x080c, 0x3ae1, 0x0058, 0x080c, 0x3ae1,\r
++      0x080c, 0x3e30, 0x080c, 0x3dbb, 0x2001, 0x020b, 0x2004, 0xd0e4,\r
++      0x0dd8, 0x2001, 0x032a, 0x2003, 0x0004, 0x2061, 0x0100, 0x6027,\r
++      0x0002, 0x001e, 0x6106, 0x2011, 0x020d, 0x2013, 0x0020, 0x60bb,\r
++      0x0000, 0x60bf, 0x0108, 0x60bf, 0x0012, 0x2001, 0x0004, 0x200c,\r
++      0x918c, 0xfffd, 0x2102, 0x080c, 0x12d6, 0x2009, 0x0028, 0x080c,\r
++      0x2052, 0x2001, 0x0227, 0x200c, 0x2102, 0x080c, 0x98e4, 0x00fe,\r
++      0x00ee, 0x00de, 0x00ce, 0x00be, 0x00ae, 0x009e, 0x008e, 0x004e,\r
++      0x2001, 0x1970, 0x2004, 0x9005, 0x1118, 0x012e, 0x0804, 0x338a,\r
++      0x012e, 0x2021, 0x400c, 0x0804, 0x338c, 0x0016, 0x0026, 0x0036,\r
++      0x0046, 0x0056, 0x0076, 0x0086, 0x0096, 0x00d6, 0x0156, 0x7014,\r
++      0x2048, 0x7020, 0x20a8, 0x8000, 0x7022, 0xa804, 0x9005, 0x0904,\r
++      0x3a51, 0x2048, 0x1f04, 0x3a05, 0x7068, 0x2040, 0xa28c, 0xa390,\r
++      0xa494, 0xa598, 0xa930, 0xa808, 0xd0b4, 0x1120, 0x2029, 0x0000,\r
++      0x2021, 0x0000, 0x0096, 0x7014, 0x2048, 0xa864, 0x009e, 0x9086,\r
++      0x0103, 0x0170, 0x8906, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084,\r
++      0xffc0, 0x9080, 0x001b, 0x080c, 0x48c1, 0x701f, 0x39f5, 0x00b0,\r
++      0x8906, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080,\r
++      0x001b, 0x21a8, 0x27e0, 0x2098, 0x27e8, 0x20a0, 0x0006, 0x080c,\r
++      0x0f9f, 0x000e, 0x080c, 0x48c4, 0x701f, 0x39f5, 0x015e, 0x00de,\r
++      0x009e, 0x008e, 0x007e, 0x005e, 0x004e, 0x003e, 0x002e, 0x001e,\r
++      0x0005, 0x7014, 0x2048, 0xa864, 0x9086, 0x0103, 0x1118, 0x701f,\r
++      0x3ab6, 0x0450, 0x7014, 0x2048, 0xa868, 0xc0fd, 0xa86a, 0x2009,\r
++      0x007f, 0x080c, 0x6210, 0x0110, 0x9006, 0x0030, 0xb813, 0x00ff,\r
++      0xb817, 0xfffd, 0x080c, 0xbd2a, 0x015e, 0x00de, 0x009e, 0x008e,\r
++      0x007e, 0x005e, 0x004e, 0x003e, 0x002e, 0x001e, 0x0904, 0x33bc,\r
++      0x0016, 0x0026, 0x0036, 0x0046, 0x0056, 0x0076, 0x0086, 0x0096,\r
++      0x00d6, 0x0156, 0x701f, 0x3a88, 0x7007, 0x0003, 0x0804, 0x3a46,\r
++      0xa830, 0x9086, 0x0100, 0x2021, 0x400c, 0x0904, 0x338c, 0x0076,\r
++      0xad10, 0xac0c, 0xab24, 0xaa20, 0xa930, 0xa808, 0xd0b4, 0x1120,\r
++      0x2029, 0x0000, 0x2021, 0x0000, 0x8906, 0x8006, 0x8007, 0x90bc,\r
++      0x003f, 0x9084, 0xffc0, 0x9080, 0x001b, 0x21a8, 0x27e0, 0x2098,\r
++      0x27e8, 0x20a0, 0x0006, 0x080c, 0x0f9f, 0x000e, 0x080c, 0x48c4,\r
++      0x007e, 0x701f, 0x39f5, 0x7023, 0x0001, 0x0005, 0x0804, 0x338a,\r
++      0x0156, 0x00c6, 0xa814, 0x908a, 0x001e, 0x0218, 0xa833, 0x001e,\r
++      0x0010, 0xa832, 0x0078, 0x81ff, 0x0168, 0x0016, 0x080c, 0x4878,\r
++      0x001e, 0x0130, 0xa800, 0x2040, 0xa008, 0xa80a, 0x2100, 0x0c58,\r
++      0x9006, 0x0010, 0x9085, 0x0001, 0x00ce, 0x015e, 0x0005, 0x0006,\r
++      0x00f6, 0x2079, 0x0000, 0x7880, 0x9086, 0x0044, 0x00fe, 0x000e,\r
++      0x0005, 0x2001, 0x1970, 0x2003, 0x0001, 0x0005, 0x00f6, 0x00e6,\r
++      0x00c6, 0x2061, 0x0200, 0x2001, 0x197b, 0x2004, 0x601a, 0x2061,\r
++      0x0100, 0x2001, 0x197a, 0x2004, 0x60ce, 0x6104, 0xc1ac, 0x6106,\r
++      0x080c, 0x4878, 0xa813, 0x0019, 0xa817, 0x0001, 0x2900, 0xa85a,\r
++      0x2001, 0x002e, 0x2004, 0xa866, 0x2001, 0x002f, 0x2004, 0xa86a,\r
++      0x2061, 0x0090, 0x2079, 0x0100, 0x2001, 0x197a, 0x2004, 0x6036,\r
++      0x2009, 0x0040, 0x080c, 0x2052, 0x2001, 0x002a, 0x2004, 0x9084,\r
++      0xfff8, 0xa86e, 0x601a, 0xa873, 0x0000, 0x601f, 0x0000, 0x78ca,\r
++      0x9006, 0x600a, 0x600e, 0x00ce, 0x00ee, 0x00fe, 0x0005, 0x00e6,\r
++      0x080c, 0x4878, 0x2940, 0xa013, 0x0019, 0xa017, 0x0001, 0x2800,\r
++      0xa05a, 0x2001, 0x0030, 0x2004, 0xa866, 0x2001, 0x0031, 0x2004,\r
++      0xa86a, 0x2001, 0x002a, 0x2004, 0x9084, 0xfff8, 0xa86e, 0xa873,\r
++      0x0000, 0x2001, 0x032a, 0x2003, 0x0004, 0x2001, 0x0300, 0x2003,\r
++      0x0000, 0x2001, 0x020d, 0x2003, 0x0000, 0x2001, 0x0004, 0x200c,\r
++      0x918d, 0x0002, 0x2102, 0x00ee, 0x0005, 0x0126, 0x2091, 0x8000,\r
++      0x81ff, 0x0148, 0x080c, 0x2811, 0x1130, 0x9006, 0x080c, 0x276e,\r
++      0x9006, 0x080c, 0x2751, 0x7884, 0x9084, 0x0007, 0x0002, 0x3b72,\r
++      0x3b7b, 0x3b84, 0x3b6f, 0x3b6f, 0x3b6f, 0x3b6f, 0x3b6f, 0x012e,\r
++      0x0804, 0x33bf, 0x2009, 0x0114, 0x2104, 0x9085, 0x0800, 0x200a,\r
++      0x080c, 0x3d46, 0x00c0, 0x2009, 0x0114, 0x2104, 0x9085, 0x4000,\r
++      0x200a, 0x080c, 0x3d46, 0x0078, 0x080c, 0x70b7, 0x1128, 0x012e,\r
++      0x2009, 0x0016, 0x0804, 0x33bc, 0x81ff, 0x0128, 0x012e, 0x2021,\r
++      0x400b, 0x0804, 0x338c, 0x080c, 0x98c8, 0x0086, 0x0096, 0x00a6,\r
++      0x00b6, 0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x080c, 0x389d, 0x2009,\r
++      0x0101, 0x210c, 0x0016, 0x7ec8, 0x7dcc, 0x9006, 0x2068, 0x2060,\r
++      0x2058, 0x080c, 0x3fe7, 0x080c, 0x3f37, 0x903e, 0x2720, 0x00f6,\r
++      0x00e6, 0x0086, 0x2940, 0x2071, 0x19b8, 0x2079, 0x0090, 0x00d6,\r
++      0x2069, 0x0000, 0x6884, 0xd0b4, 0x0120, 0x68d4, 0x780e, 0x68d0,\r
++      0x780a, 0x00de, 0x2011, 0x0001, 0x080c, 0x3e98, 0x080c, 0x2819,\r
++      0x080c, 0x2819, 0x080c, 0x2819, 0x080c, 0x2819, 0x080c, 0x3e98,\r
++      0x008e, 0x00ee, 0x00fe, 0x080c, 0x3dc5, 0x2009, 0x9c40, 0x8109,\r
++      0x11b0, 0x080c, 0x3cfc, 0x2001, 0x0004, 0x200c, 0x918c, 0xfffd,\r
++      0x2102, 0x001e, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be, 0x00ae,\r
++      0x009e, 0x008e, 0x2009, 0x0017, 0x080c, 0x33bc, 0x0cf8, 0x2001,\r
++      0x020b, 0x2004, 0x9084, 0x0140, 0x1d10, 0x00f6, 0x2079, 0x0000,\r
++      0x7884, 0x00fe, 0xd0bc, 0x0178, 0x2001, 0x0201, 0x200c, 0x81ff,\r
++      0x0150, 0x080c, 0x3da3, 0x2d00, 0x9c05, 0x9b05, 0x0120, 0x080c,\r
++      0x3cfc, 0x0804, 0x3ca5, 0x080c, 0x3f0c, 0x080c, 0x3e30, 0x080c,\r
++      0x3d86, 0x080c, 0x3dbb, 0x00f6, 0x2079, 0x0100, 0x7824, 0xd0ac,\r
++      0x0130, 0x8b58, 0x080c, 0x3cfc, 0x00fe, 0x0804, 0x3ca5, 0x00fe,\r
++      0x080c, 0x3cf2, 0x1150, 0x8d68, 0x2001, 0x0032, 0x2602, 0x2001,\r
++      0x0033, 0x2502, 0x080c, 0x3cfc, 0x0080, 0x87ff, 0x0138, 0x2001,\r
++      0x0201, 0x2004, 0x9005, 0x1908, 0x8739, 0x0038, 0x2001, 0x1a3c,\r
++      0x2004, 0x9086, 0x0000, 0x1904, 0x3bf5, 0x2001, 0x032f, 0x2003,\r
++      0x00f6, 0x8631, 0x1208, 0x8529, 0x2500, 0x9605, 0x0904, 0x3ca5,\r
++      0x7884, 0xd0bc, 0x0128, 0x2d00, 0x9c05, 0x9b05, 0x1904, 0x3ca5,\r
++      0xa013, 0x0019, 0x2001, 0x032a, 0x2003, 0x0004, 0x7884, 0xd0ac,\r
++      0x1148, 0x2001, 0x1a3c, 0x2003, 0x0003, 0x2001, 0x032a, 0x2003,\r
++      0x0009, 0x0030, 0xa017, 0x0001, 0x78b4, 0x9005, 0x0108, 0xa016,\r
++      0x2800, 0xa05a, 0x2009, 0x0040, 0x080c, 0x2052, 0x2900, 0xa85a,\r
++      0xa813, 0x0019, 0x7884, 0xd0a4, 0x1180, 0xa817, 0x0000, 0x00c6,\r
++      0x20a9, 0x0004, 0x2061, 0x0090, 0x602b, 0x0008, 0x2001, 0x0203,\r
++      0x2004, 0x1f04, 0x3c7c, 0x00ce, 0x0030, 0xa817, 0x0001, 0x78b0,\r
++      0x9005, 0x0108, 0xa816, 0x00f6, 0x00c6, 0x2079, 0x0100, 0x2061,\r
++      0x0090, 0x7827, 0x0002, 0x2001, 0x002a, 0x2004, 0x9084, 0xfff8,\r
++      0x601a, 0x0006, 0x2001, 0x002b, 0x2004, 0x601e, 0x78c6, 0x000e,\r
++      0x78ca, 0x00ce, 0x00fe, 0x0804, 0x3baf, 0x001e, 0x00c6, 0x2001,\r
++      0x032a, 0x2003, 0x0004, 0x2061, 0x0100, 0x6027, 0x0002, 0x6106,\r
++      0x2011, 0x020d, 0x2013, 0x0020, 0x2001, 0x0004, 0x200c, 0x918c,\r
++      0xfffd, 0x2102, 0x080c, 0x12d6, 0x7884, 0x9084, 0x0003, 0x9086,\r
++      0x0002, 0x01b0, 0x2009, 0x0028, 0x080c, 0x2052, 0x2001, 0x0227,\r
++      0x200c, 0x2102, 0x6050, 0x9084, 0xb7ff, 0x080c, 0x28d4, 0x6052,\r
++      0x602f, 0x0000, 0x604b, 0xf7f7, 0x6043, 0x0090, 0x6043, 0x0010,\r
++      0x080c, 0x98e4, 0x00ce, 0x2d08, 0x2c10, 0x2b18, 0x2b00, 0x9c05,\r
++      0x9d05, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be, 0x00ae, 0x009e,\r
++      0x008e, 0x1118, 0x012e, 0x0804, 0x338a, 0x012e, 0x2021, 0x400c,\r
++      0x0804, 0x338c, 0x9085, 0x0001, 0x1d04, 0x3cfb, 0x2091, 0x6000,\r
++      0x8420, 0x9486, 0x0064, 0x0005, 0x2001, 0x0105, 0x2003, 0x0010,\r
++      0x2001, 0x032a, 0x2003, 0x0004, 0x2001, 0x1a3c, 0x2003, 0x0000,\r
++      0x0071, 0x2009, 0x0048, 0x080c, 0x2052, 0x2001, 0x0227, 0x2024,\r
++      0x2402, 0x2001, 0x0109, 0x2003, 0x4000, 0x9026, 0x0005, 0x00f6,\r
++      0x00e6, 0x2071, 0x19b8, 0x7054, 0x9086, 0x0000, 0x0520, 0x2079,\r
++      0x0090, 0x2009, 0x0206, 0x2104, 0x2009, 0x0203, 0x210c, 0x9106,\r
++      0x1120, 0x2009, 0x0040, 0x080c, 0x2052, 0x782c, 0xd0fc, 0x0d88,\r
++      0x080c, 0x3f0c, 0x7054, 0x9086, 0x0000, 0x1d58, 0x782b, 0x0004,\r
++      0x782c, 0xd0ac, 0x1de8, 0x2009, 0x0040, 0x080c, 0x2052, 0x782b,\r
++      0x0002, 0x7057, 0x0000, 0x00ee, 0x00fe, 0x0005, 0x00f6, 0x2079,\r
++      0x0100, 0x2001, 0x1817, 0x200c, 0x7932, 0x7936, 0x080c, 0x246d,\r
++      0x080c, 0x2890, 0x080c, 0x28d4, 0x784b, 0xf7f7, 0x7843, 0x0090,\r
++      0x7843, 0x0010, 0x7850, 0xc0e5, 0x7852, 0x2019, 0x61a8, 0x7820,\r
++      0xd09c, 0x0110, 0x8319, 0x1dd8, 0x7850, 0xc0e4, 0x7852, 0x2011,\r
++      0x0048, 0x080c, 0x286d, 0x7843, 0x0040, 0x2019, 0x01f4, 0xa001,\r
++      0xa001, 0x8319, 0x1de0, 0x2001, 0x0100, 0x080c, 0x2833, 0x2011,\r
++      0x0020, 0x080c, 0x286d, 0x7843, 0x0000, 0x9006, 0x080c, 0x2833,\r
++      0x2011, 0x0048, 0x080c, 0x286d, 0x00fe, 0x0005, 0x7884, 0xd0ac,\r
++      0x11c8, 0x00f6, 0x00e6, 0x2071, 0x1a3c, 0x2079, 0x0320, 0x2001,\r
++      0x0201, 0x2004, 0x9005, 0x0160, 0x7000, 0x9086, 0x0000, 0x1140,\r
++      0x0051, 0xd0bc, 0x0108, 0x8738, 0x7003, 0x0003, 0x782b, 0x0019,\r
++      0x00ee, 0x00fe, 0x0005, 0x00f6, 0x2079, 0x0300, 0x78bc, 0x00fe,\r
++      0x908c, 0x0070, 0x0178, 0x2009, 0x0032, 0x260a, 0x2009, 0x0033,\r
++      0x250a, 0xd0b4, 0x0108, 0x8c60, 0xd0ac, 0x0108, 0x8d68, 0xd0a4,\r
++      0x0108, 0x8b58, 0x0005, 0x00f6, 0x2079, 0x0200, 0x781c, 0xd084,\r
++      0x0110, 0x7837, 0x0050, 0x00fe, 0x0005, 0x00e6, 0x2071, 0x0100,\r
++      0x2001, 0x197b, 0x2004, 0x70e2, 0x080c, 0x3ad7, 0x1188, 0x2001,\r
++      0x181f, 0x2004, 0x2009, 0x181e, 0x210c, 0x918c, 0x00ff, 0x706e,\r
++      0x716a, 0x7066, 0x918d, 0x3200, 0x7162, 0x7073, 0xe109, 0x0080,\r
++      0x702c, 0x9085, 0x0002, 0x702e, 0x2009, 0x1817, 0x210c, 0x716e,\r
++      0x7063, 0x0100, 0x7166, 0x719e, 0x706b, 0x0000, 0x7073, 0x0809,\r
++      0x7077, 0x0008, 0x7078, 0x9080, 0x0100, 0x707a, 0x7080, 0x8000,\r
++      0x7082, 0x7087, 0xaaaa, 0x9006, 0x708a, 0x708e, 0x707e, 0x70d6,\r
++      0x70ab, 0x0036, 0x70af, 0x95d5, 0x7014, 0x9084, 0x1984, 0x9085,\r
++      0x0092, 0x7016, 0x080c, 0x3f0c, 0x00f6, 0x2071, 0x1a3c, 0x2079,\r
++      0x0320, 0x00d6, 0x2069, 0x0000, 0x6884, 0xd0b4, 0x0120, 0x689c,\r
++      0x780e, 0x6898, 0x780a, 0x00de, 0x2009, 0x03e8, 0x8109, 0x1df0,\r
++      0x792c, 0xd1fc, 0x0110, 0x782b, 0x0004, 0x2011, 0x0011, 0x080c,\r
++      0x3e98, 0x2011, 0x0001, 0x080c, 0x3e98, 0x00fe, 0x00ee, 0x0005,\r
++      0x00f6, 0x00e6, 0x2071, 0x1a3c, 0x2079, 0x0320, 0x792c, 0xd1fc,\r
++      0x0904, 0x3e95, 0x782b, 0x0002, 0x9026, 0xd19c, 0x1904, 0x3e91,\r
++      0x7000, 0x0002, 0x3e95, 0x3e46, 0x3e76, 0x3e91, 0xd1bc, 0x1170,\r
++      0xd1dc, 0x1190, 0x8001, 0x7002, 0x2011, 0x0001, 0x080c, 0x3e98,\r
++      0x0904, 0x3e95, 0x080c, 0x3e98, 0x0804, 0x3e95, 0x00f6, 0x2079,\r
++      0x0300, 0x78bf, 0x0000, 0x00fe, 0x7810, 0x7914, 0x782b, 0x0004,\r
++      0x7812, 0x7916, 0x2001, 0x0201, 0x200c, 0x81ff, 0x0de8, 0x080c,\r
++      0x3da3, 0x2009, 0x0001, 0x00f6, 0x2079, 0x0300, 0x78b8, 0x00fe,\r
++      0xd0ec, 0x0110, 0x2009, 0x0011, 0x792a, 0x00f8, 0x8001, 0x7002,\r
++      0x9184, 0x0880, 0x1140, 0x782c, 0xd0fc, 0x1904, 0x3e3a, 0x2011,\r
++      0x0001, 0x00b1, 0x0090, 0xa010, 0x9092, 0x0004, 0x9086, 0x0015,\r
++      0x1120, 0xa000, 0xa05a, 0x2011, 0x0031, 0xa212, 0xd1dc, 0x1960,\r
++      0x0828, 0x782b, 0x0004, 0x7003, 0x0000, 0x00ee, 0x00fe, 0x0005,\r
++      0xa014, 0x9005, 0x0550, 0x8001, 0x0036, 0x0096, 0xa016, 0xa058,\r
++      0x2048, 0xa010, 0x2009, 0x0031, 0x911a, 0x831c, 0x831c, 0x938a,\r
++      0x0007, 0x1a0c, 0x0d65, 0x9398, 0x3ec6, 0x231d, 0x083f, 0x9080,\r
++      0x0004, 0x7a2a, 0x7100, 0x8108, 0x7102, 0x009e, 0x003e, 0x908a,\r
++      0x0035, 0x1140, 0x0096, 0xa058, 0x2048, 0xa804, 0xa05a, 0x2001,\r
++      0x0019, 0x009e, 0xa012, 0x9085, 0x0001, 0x0005, 0x3f03, 0x3efa,\r
++      0x3ef1, 0x3ee8, 0x3edf, 0x3ed6, 0x3ecd, 0xa964, 0x7902, 0xa968,\r
++      0x7906, 0xa96c, 0x7912, 0xa970, 0x7916, 0x0005, 0xa974, 0x7902,\r
++      0xa978, 0x7906, 0xa97c, 0x7912, 0xa980, 0x7916, 0x0005, 0xa984,\r
++      0x7902, 0xa988, 0x7906, 0xa98c, 0x7912, 0xa990, 0x7916, 0x0005,\r
++      0xa994, 0x7902, 0xa998, 0x7906, 0xa99c, 0x7912, 0xa9a0, 0x7916,\r
++      0x0005, 0xa9a4, 0x7902, 0xa9a8, 0x7906, 0xa9ac, 0x7912, 0xa9b0,\r
++      0x7916, 0x0005, 0xa9b4, 0x7902, 0xa9b8, 0x7906, 0xa9bc, 0x7912,\r
++      0xa9c0, 0x7916, 0x0005, 0xa9c4, 0x7902, 0xa9c8, 0x7906, 0xa9cc,\r
++      0x7912, 0xa9d0, 0x7916, 0x0005, 0x00f6, 0x00e6, 0x0086, 0x2071,\r
++      0x19b8, 0x2079, 0x0090, 0x792c, 0xd1fc, 0x01e8, 0x782b, 0x0002,\r
++      0x2940, 0x9026, 0x7054, 0x0002, 0x3f33, 0x3f1f, 0x3f2a, 0x8001,\r
++      0x7056, 0xd19c, 0x1180, 0x2011, 0x0001, 0x080c, 0x3e98, 0x190c,\r
++      0x3e98, 0x0048, 0x8001, 0x7056, 0x782c, 0xd0fc, 0x1d38, 0x2011,\r
++      0x0001, 0x080c, 0x3e98, 0x008e, 0x00ee, 0x00fe, 0x0005, 0x00f6,\r
++      0x00e6, 0x00c6, 0x0086, 0x2061, 0x0200, 0x2001, 0x197b, 0x2004,\r
++      0x601a, 0x2061, 0x0100, 0x2001, 0x197a, 0x2004, 0x60ce, 0x6104,\r
++      0xc1ac, 0x6106, 0x2001, 0x002c, 0x2004, 0x9005, 0x0520, 0x2038,\r
++      0x2001, 0x002e, 0x2024, 0x2001, 0x002f, 0x201c, 0x080c, 0x4878,\r
++      0xa813, 0x0019, 0xaf16, 0x2900, 0xa85a, 0x978a, 0x0007, 0x0220,\r
++      0x2138, 0x2009, 0x0007, 0x0010, 0x2708, 0x903e, 0x0096, 0xa858,\r
++      0x2048, 0xa85c, 0x9080, 0x0019, 0x009e, 0x080c, 0x3faf, 0x1d68,\r
++      0x2900, 0xa85a, 0x00d0, 0x080c, 0x4878, 0xa813, 0x0019, 0xa817,\r
++      0x0001, 0x2900, 0xa85a, 0x2001, 0x002e, 0x2004, 0xa866, 0x2001,\r
++      0x002f, 0x2004, 0xa86a, 0x2001, 0x002a, 0x2004, 0x9084, 0xfff8,\r
++      0xa86e, 0x2001, 0x002b, 0x2004, 0xa872, 0x2061, 0x0090, 0x2079,\r
++      0x0100, 0x2001, 0x197a, 0x2004, 0x6036, 0x2009, 0x0040, 0x080c,\r
++      0x2052, 0x2001, 0x002a, 0x2004, 0x9084, 0xfff8, 0x601a, 0x0006,\r
++      0x2001, 0x002b, 0x2004, 0x601e, 0x78c6, 0x000e, 0x78ca, 0x9006,\r
++      0x600a, 0x600e, 0x008e, 0x00ce, 0x00ee, 0x00fe, 0x0005, 0x00e6,\r
++      0x2071, 0x0080, 0xaa60, 0x22e8, 0x20a0, 0x20e1, 0x0000, 0x2099,\r
++      0x0088, 0x702b, 0x0026, 0x7402, 0x7306, 0x9006, 0x700a, 0x700e,\r
++      0x810b, 0x810b, 0x21a8, 0x810b, 0x7112, 0x702b, 0x0041, 0x702c,\r
++      0xd0fc, 0x0de8, 0x702b, 0x0002, 0x702b, 0x0040, 0x4005, 0x7400,\r
++      0x7304, 0x87ff, 0x0190, 0x0086, 0x0096, 0x2940, 0x0086, 0x080c,\r
++      0x4878, 0x008e, 0xa058, 0x00a6, 0x2050, 0x2900, 0xb006, 0xa05a,\r
++      0x00ae, 0x009e, 0x008e, 0x9085, 0x0001, 0x00ee, 0x0005, 0x00e6,\r
++      0x2001, 0x002d, 0x2004, 0x9005, 0x0528, 0x2038, 0x2001, 0x0030,\r
++      0x2024, 0x2001, 0x0031, 0x201c, 0x080c, 0x4878, 0x2940, 0xa813,\r
++      0x0019, 0xaf16, 0x2900, 0xa85a, 0x978a, 0x0007, 0x0220, 0x2138,\r
++      0x2009, 0x0007, 0x0010, 0x2708, 0x903e, 0x0096, 0xa858, 0x2048,\r
++      0xa85c, 0x9080, 0x0019, 0x009e, 0x080c, 0x3faf, 0x1d68, 0x2900,\r
++      0xa85a, 0x00d8, 0x080c, 0x4878, 0x2940, 0xa013, 0x0019, 0xa017,\r
++      0x0001, 0x2800, 0xa05a, 0x2001, 0x0030, 0x2004, 0xa066, 0x2001,\r
++      0x0031, 0x2004, 0xa06a, 0x2001, 0x002a, 0x2004, 0x9084, 0xfff8,\r
++      0xa06e, 0x2001, 0x002b, 0x2004, 0xa072, 0x2001, 0x032a, 0x2003,\r
++      0x0004, 0x7884, 0xd0ac, 0x1180, 0x2001, 0x0101, 0x200c, 0x918d,\r
++      0x0200, 0x2102, 0xa017, 0x0000, 0x2001, 0x1a3c, 0x2003, 0x0003,\r
++      0x2001, 0x032a, 0x2003, 0x0009, 0x2001, 0x0300, 0x2003, 0x0000,\r
++      0x2001, 0x020d, 0x2003, 0x0000, 0x2001, 0x0004, 0x200c, 0x918d,\r
++      0x0002, 0x2102, 0x00ee, 0x0005, 0x0126, 0x2091, 0x8000, 0x20a9,\r
++      0x0013, 0x20a1, 0x1840, 0x20e9, 0x0001, 0x9006, 0x4004, 0x2009,\r
++      0x013c, 0x200a, 0x012e, 0x7880, 0x9086, 0x0052, 0x0108, 0x0005,\r
++      0x0804, 0x338a, 0x7d98, 0x7c9c, 0x0804, 0x3481, 0x080c, 0x70b7,\r
++      0x190c, 0x5ca1, 0x2069, 0x1853, 0x2d00, 0x2009, 0x0030, 0x7a8c,\r
++      0x7b88, 0x7c9c, 0x7d98, 0x2039, 0x0001, 0x080c, 0x48c1, 0x701f,\r
++      0x4082, 0x0005, 0x080c, 0x539c, 0x1130, 0x3b00, 0x3a08, 0xc194,\r
++      0xc095, 0x20d8, 0x21d0, 0x2069, 0x1853, 0x6800, 0x9005, 0x0904,\r
++      0x33bf, 0x6804, 0xd094, 0x00c6, 0x2061, 0x0100, 0x6104, 0x0138,\r
++      0x6200, 0x9292, 0x0005, 0x0218, 0x918c, 0xffdf, 0x0010, 0x918d,\r
++      0x0020, 0x6106, 0x00ce, 0xd08c, 0x00c6, 0x2061, 0x0100, 0x6104,\r
++      0x0118, 0x918d, 0x0010, 0x0010, 0x918c, 0xffef, 0x6106, 0x00ce,\r
++      0xd084, 0x0158, 0x6a28, 0x928a, 0x007f, 0x1a04, 0x33bf, 0x9288,\r
++      0x318b, 0x210d, 0x918c, 0x00ff, 0x6162, 0xd0dc, 0x0130, 0x6828,\r
++      0x908a, 0x007f, 0x1a04, 0x33bf, 0x605a, 0x6888, 0x9084, 0x0030,\r
++      0x8004, 0x8004, 0x8004, 0x8004, 0x0006, 0x2009, 0x1982, 0x9080,\r
++      0x2560, 0x2005, 0x200a, 0x2008, 0x2001, 0x0018, 0x080c, 0x98b9,\r
++      0x2009, 0x0390, 0x200b, 0x0400, 0x000e, 0x2009, 0x1983, 0x9080,\r
++      0x2564, 0x2005, 0x200a, 0x6808, 0x908a, 0x0100, 0x0a04, 0x33bf,\r
++      0x908a, 0x0841, 0x1a04, 0x33bf, 0x9084, 0x0007, 0x1904, 0x33bf,\r
++      0x680c, 0x9005, 0x0904, 0x33bf, 0x6810, 0x9005, 0x0904, 0x33bf,\r
++      0x6848, 0x6940, 0x910a, 0x1a04, 0x33bf, 0x8001, 0x0904, 0x33bf,\r
++      0x684c, 0x6944, 0x910a, 0x1a04, 0x33bf, 0x8001, 0x0904, 0x33bf,\r
++      0x6814, 0x908c, 0x00ff, 0x614a, 0x8007, 0x9084, 0x00ff, 0x604e,\r
++      0x080c, 0x73e8, 0x080c, 0x6734, 0x080c, 0x6769, 0x6808, 0x602a,\r
++      0x080c, 0x1fc4, 0x2009, 0x0170, 0x200b, 0x0080, 0xa001, 0xa001,\r
++      0x200b, 0x0000, 0x0036, 0x6b08, 0x080c, 0x24c7, 0x003e, 0x6000,\r
++      0x9086, 0x0000, 0x1904, 0x41ee, 0x6818, 0x691c, 0x6a20, 0x6b24,\r
++      0x8007, 0x810f, 0x8217, 0x831f, 0x6016, 0x611a, 0x621e, 0x6322,\r
++      0x6c04, 0xd4f4, 0x0148, 0x6830, 0x6934, 0x6a38, 0x6b3c, 0x8007,\r
++      0x810f, 0x8217, 0x831f, 0x0010, 0x9084, 0xf0ff, 0x6006, 0x610a,\r
++      0x620e, 0x6312, 0x8007, 0x810f, 0x8217, 0x831f, 0x20a9, 0x0004,\r
++      0x20a1, 0x1984, 0x20e9, 0x0001, 0x4001, 0x20a9, 0x0004, 0x20a1,\r
++      0x199e, 0x20e9, 0x0001, 0x4001, 0x080c, 0x82d0, 0x00c6, 0x900e,\r
++      0x20a9, 0x0001, 0x6b70, 0xd384, 0x01c8, 0x0020, 0x839d, 0x12b0,\r
++      0x3508, 0x8109, 0x080c, 0x79be, 0x6878, 0x6016, 0x6874, 0x2008,\r
++      0x9084, 0xff00, 0x8007, 0x600a, 0x9184, 0x00ff, 0x6006, 0x8108,\r
++      0x1118, 0x6003, 0x0003, 0x0010, 0x6003, 0x0001, 0x1f04, 0x4166,\r
++      0x00ce, 0x00c6, 0x2061, 0x196d, 0x2063, 0x0001, 0x9006, 0x080c,\r
++      0x276e, 0x9006, 0x080c, 0x2751, 0x0000, 0x00ce, 0x00e6, 0x2c70,\r
++      0x080c, 0x0e9c, 0x00ee, 0x6888, 0xd0ec, 0x0130, 0x2011, 0x0114,\r
++      0x2204, 0x9085, 0x0180, 0x2012, 0x6a80, 0x9284, 0x0030, 0x9086,\r
++      0x0030, 0x1128, 0x9294, 0xffcf, 0x9295, 0x0020, 0x6a82, 0x2001,\r
++      0x194d, 0x6a80, 0x9294, 0x0030, 0x928e, 0x0000, 0x0170, 0x928e,\r
++      0x0010, 0x0118, 0x928e, 0x0020, 0x0140, 0x2003, 0xaaaa, 0x080c,\r
++      0x253c, 0x2001, 0x193e, 0x2102, 0x0008, 0x2102, 0x00c6, 0x2061,\r
++      0x0100, 0x602f, 0x0040, 0x602f, 0x0000, 0x00ce, 0x080c, 0x70b7,\r
++      0x0128, 0x080c, 0x4c91, 0x0110, 0x080c, 0x248d, 0x60d0, 0x9005,\r
++      0x01c0, 0x6003, 0x0001, 0x2009, 0x41d6, 0x00d0, 0x080c, 0x70b7,\r
++      0x1168, 0x2011, 0x6f2d, 0x080c, 0x8159, 0x2011, 0x6f20, 0x080c,\r
++      0x825f, 0x080c, 0x73bc, 0x080c, 0x6fe8, 0x0040, 0x080c, 0x5b97,\r
++      0x0028, 0x6003, 0x0004, 0x2009, 0x41ee, 0x0010, 0x0804, 0x338a,\r
++      0x2001, 0x0170, 0x2004, 0x9084, 0x00ff, 0x9086, 0x004c, 0x1118,\r
++      0x2091, 0x31bd, 0x0817, 0x2091, 0x313d, 0x0817, 0x6000, 0x9086,\r
++      0x0000, 0x0904, 0x33bc, 0x2069, 0x1853, 0x7890, 0x6842, 0x7894,\r
++      0x6846, 0x2d00, 0x2009, 0x0030, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98,\r
++      0x2039, 0x0001, 0x0804, 0x48c4, 0x9006, 0x080c, 0x248d, 0x81ff,\r
++      0x1904, 0x33bc, 0x080c, 0x70b7, 0x11b0, 0x080c, 0x73b7, 0x080c,\r
++      0x5cdc, 0x080c, 0x3186, 0x0118, 0x6130, 0xc18d, 0x6132, 0x080c,\r
++      0xbf61, 0x0130, 0x080c, 0x70da, 0x1118, 0x080c, 0x708b, 0x0038,\r
++      0x080c, 0x6fe8, 0x0020, 0x080c, 0x5ca1, 0x080c, 0x5b97, 0x0804,\r
++      0x338a, 0x81ff, 0x1904, 0x33bc, 0x080c, 0x70b7, 0x1110, 0x0804,\r
++      0x33bc, 0x6190, 0x81ff, 0x01a8, 0x704f, 0x0000, 0x2001, 0x1d80,\r
++      0x2009, 0x0040, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x0126, 0x2091,\r
++      0x8000, 0x2039, 0x0001, 0x080c, 0x48c4, 0x701f, 0x3388, 0x012e,\r
++      0x0005, 0x704f, 0x0001, 0x00d6, 0x2069, 0x1d80, 0x20a9, 0x0040,\r
++      0x20e9, 0x0001, 0x20a1, 0x1d80, 0x2019, 0xffff, 0x4304, 0x6558,\r
++      0x9588, 0x318b, 0x210d, 0x918c, 0x00ff, 0x216a, 0x900e, 0x2011,\r
++      0x0002, 0x2100, 0x9506, 0x01a8, 0x080c, 0x6270, 0x1190, 0xb814,\r
++      0x821c, 0x0238, 0x9398, 0x1d80, 0x9085, 0xff00, 0x8007, 0x201a,\r
++      0x0038, 0x9398, 0x1d80, 0x2324, 0x94a4, 0xff00, 0x9405, 0x201a,\r
++      0x8210, 0x8108, 0x9182, 0x0080, 0x1208, 0x0c18, 0x8201, 0x8007,\r
++      0x2d0c, 0x9105, 0x206a, 0x00de, 0x20a9, 0x0040, 0x20a1, 0x1d80,\r
++      0x2099, 0x1d80, 0x080c, 0x5c2c, 0x0804, 0x4246, 0x080c, 0x48ab,\r
++      0x0904, 0x33bf, 0x080c, 0x4878, 0x1120, 0x2009, 0x0002, 0x0804,\r
++      0x33bc, 0x080c, 0x538d, 0xd0b4, 0x0558, 0x7884, 0x908e, 0x007e,\r
++      0x0538, 0x908e, 0x007f, 0x0520, 0x908e, 0x0080, 0x0508, 0x080c,\r
++      0x3181, 0x1148, 0xb800, 0xd08c, 0x11d8, 0xb804, 0x9084, 0x00ff,\r
++      0x9086, 0x0006, 0x11a8, 0xa867, 0x0000, 0xa868, 0xc0fd, 0xa86a,\r
++      0x080c, 0xba16, 0x1120, 0x2009, 0x0003, 0x0804, 0x33bc, 0x7007,\r
++      0x0003, 0x701f, 0x42d4, 0x0005, 0x080c, 0x48ab, 0x0904, 0x33bf,\r
++      0x20a9, 0x002b, 0xb8b4, 0x20e0, 0xb8b8, 0x2098, 0xa860, 0x20e8,\r
++      0xa85c, 0x9080, 0x0002, 0x20a0, 0x4003, 0x20a9, 0x0008, 0x9080,\r
++      0x0006, 0x20a0, 0xb8b4, 0x20e0, 0xb8b8, 0x9080, 0x0006, 0x2098,\r
++      0x080c, 0x0f9f, 0x0070, 0x20a9, 0x0004, 0xa85c, 0x9080, 0x000a,\r
++      0x20a0, 0xb8b4, 0x20e0, 0xb8b8, 0x9080, 0x000a, 0x2098, 0x080c,\r
++      0x0f9f, 0x8906, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0,\r
++      0x9080, 0x0002, 0x2009, 0x002b, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98,\r
++      0x0804, 0x48c4, 0x81ff, 0x1904, 0x33bc, 0x080c, 0x488f, 0x0904,\r
++      0x33bf, 0x080c, 0x64b1, 0x0904, 0x33bc, 0x0058, 0xa878, 0x9005,\r
++      0x0120, 0x2009, 0x0004, 0x0804, 0x33bc, 0xa974, 0xaa94, 0x0804,\r
++      0x338a, 0x080c, 0x5395, 0x0904, 0x338a, 0x701f, 0x431e, 0x7007,\r
++      0x0003, 0x0005, 0x81ff, 0x1904, 0x33bc, 0x7888, 0x908a, 0x1000,\r
++      0x1a04, 0x33bf, 0x080c, 0x48ab, 0x0904, 0x33bf, 0x080c, 0x6667,\r
++      0x0120, 0x080c, 0x666f, 0x1904, 0x33bf, 0x080c, 0x6536, 0x0904,\r
++      0x33bc, 0x2019, 0x0004, 0x900e, 0x080c, 0x64c3, 0x0904, 0x33bc,\r
++      0x7984, 0x7a88, 0x04c9, 0x08a8, 0xa89c, 0x908a, 0x1000, 0x12f8,\r
++      0x080c, 0x48a9, 0x01e0, 0x080c, 0x6667, 0x0118, 0x080c, 0x666f,\r
++      0x11b0, 0x080c, 0x6536, 0x2009, 0x0002, 0x0168, 0x2009, 0x0002,\r
++      0x2019, 0x0004, 0x080c, 0x64c3, 0x2009, 0x0003, 0x0120, 0xa998,\r
++      0xaa9c, 0x00d1, 0x0060, 0xa897, 0x4005, 0xa99a, 0x0010, 0xa897,\r
++      0x4006, 0x900e, 0x9085, 0x0001, 0x2001, 0x0030, 0x0005, 0xa897,\r
++      0x4000, 0x080c, 0x5395, 0x0110, 0x9006, 0x0018, 0x900e, 0x9085,\r
++      0x0001, 0x2001, 0x0000, 0x0005, 0x9186, 0x00ff, 0x0110, 0x0071,\r
++      0x0060, 0x2029, 0x007e, 0x2061, 0x1800, 0x6458, 0x2400, 0x9506,\r
++      0x0110, 0x2508, 0x0019, 0x8529, 0x1ec8, 0x0005, 0x080c, 0x6270,\r
++      0x1138, 0x2200, 0x8003, 0x800b, 0x810b, 0x9108, 0x080c, 0x8167,\r
++      0x0005, 0x81ff, 0x1904, 0x33bc, 0x798c, 0x2001, 0x1951, 0x918c,\r
++      0x8000, 0x2102, 0x080c, 0x488f, 0x0904, 0x33bf, 0x080c, 0x6667,\r
++      0x0120, 0x080c, 0x666f, 0x1904, 0x33bf, 0x080c, 0x6337, 0x0904,\r
++      0x33bc, 0x080c, 0x64ba, 0x0904, 0x33bc, 0x2001, 0x1951, 0x2004,\r
++      0xd0fc, 0x1904, 0x338a, 0x0804, 0x4329, 0xa9a0, 0x2001, 0x1951,\r
++      0x918c, 0x8000, 0xc18d, 0x2102, 0x080c, 0x489c, 0x01a0, 0x080c,\r
++      0x6667, 0x0118, 0x080c, 0x666f, 0x1170, 0x080c, 0x6337, 0x2009,\r
++      0x0002, 0x0128, 0x080c, 0x64ba, 0x1170, 0x2009, 0x0003, 0xa897,\r
++      0x4005, 0xa99a, 0x0010, 0xa897, 0x4006, 0x900e, 0x9085, 0x0001,\r
++      0x2001, 0x0030, 0x0005, 0xa897, 0x4000, 0x2001, 0x1951, 0x2004,\r
++      0xd0fc, 0x1128, 0x080c, 0x5395, 0x0110, 0x9006, 0x0018, 0x900e,\r
++      0x9085, 0x0001, 0x2001, 0x0000, 0x0005, 0x81ff, 0x1904, 0x33bc,\r
++      0x798c, 0x2001, 0x1950, 0x918c, 0x8000, 0x2102, 0x080c, 0x488f,\r
++      0x0904, 0x33bf, 0x080c, 0x6667, 0x0120, 0x080c, 0x666f, 0x1904,\r
++      0x33bf, 0x080c, 0x6337, 0x0904, 0x33bc, 0x080c, 0x64a8, 0x0904,\r
++      0x33bc, 0x2001, 0x1950, 0x2004, 0xd0fc, 0x1904, 0x338a, 0x0804,\r
++      0x4329, 0xa9a0, 0x2001, 0x1950, 0x918c, 0x8000, 0xc18d, 0x2102,\r
++      0x080c, 0x489c, 0x01a0, 0x080c, 0x6667, 0x0118, 0x080c, 0x666f,\r
++      0x1170, 0x080c, 0x6337, 0x2009, 0x0002, 0x0128, 0x080c, 0x64a8,\r
++      0x1170, 0x2009, 0x0003, 0xa897, 0x4005, 0xa99a, 0x0010, 0xa897,\r
++      0x4006, 0x900e, 0x9085, 0x0001, 0x2001, 0x0030, 0x0005, 0xa897,\r
++      0x4000, 0x2001, 0x1950, 0x2004, 0xd0fc, 0x1128, 0x080c, 0x5395,\r
++      0x0110, 0x9006, 0x0018, 0x900e, 0x9085, 0x0001, 0x2001, 0x0000,\r
++      0x0005, 0x6100, 0x0804, 0x338a, 0x080c, 0x48ab, 0x0904, 0x33bf,\r
++      0x080c, 0x53a1, 0x1904, 0x33bc, 0x79a8, 0xd184, 0x1158, 0xb834,\r
++      0x8007, 0x789e, 0xb830, 0x8007, 0x789a, 0xbb2c, 0x831f, 0xba28,\r
++      0x8217, 0x0050, 0xb824, 0x8007, 0x789e, 0xb820, 0x8007, 0x789a,\r
++      0xbb1c, 0x831f, 0xba18, 0x8217, 0xb900, 0x918c, 0x0200, 0x0804,\r
++      0x338a, 0x78a8, 0x909c, 0x0003, 0xd0b4, 0x1140, 0x939a, 0x0003,\r
++      0x1a04, 0x33bc, 0x6258, 0x7884, 0x9206, 0x1560, 0x2031, 0x1848,\r
++      0x2009, 0x013c, 0x2136, 0x2001, 0x1840, 0x2009, 0x000c, 0x7a8c,\r
++      0x7b88, 0x7c9c, 0x7d98, 0x2039, 0x0001, 0x0006, 0x78a8, 0x9084,\r
++      0x0080, 0x1118, 0x000e, 0x0804, 0x48c4, 0x000e, 0x2031, 0x0000,\r
++      0x2061, 0x18ae, 0x2c44, 0xa66a, 0xa17a, 0xa772, 0xa076, 0xa28e,\r
++      0xa392, 0xa496, 0xa59a, 0x080c, 0x110c, 0x7007, 0x0002, 0x701f,\r
++      0x44e2, 0x0005, 0x81ff, 0x1904, 0x33bc, 0x080c, 0x48ab, 0x0904,\r
++      0x33bf, 0x080c, 0x6667, 0x1904, 0x33bc, 0x00c6, 0x080c, 0x4878,\r
++      0x00ce, 0x0904, 0x33bc, 0xa867, 0x0000, 0xa868, 0xc0fd, 0xa86a,\r
++      0x7ea8, 0x080c, 0xb9bc, 0x0904, 0x33bc, 0x7007, 0x0003, 0x701f,\r
++      0x44e6, 0x0005, 0x080c, 0x4054, 0x0804, 0x338a, 0xa830, 0x9086,\r
++      0x0100, 0x0904, 0x33bc, 0x8906, 0x8006, 0x8007, 0x90bc, 0x003f,\r
++      0x9084, 0xffc0, 0x9080, 0x001b, 0x2009, 0x000c, 0x7a8c, 0x7b88,\r
++      0x7c9c, 0x7d98, 0x0804, 0x48c4, 0x9006, 0x080c, 0x248d, 0x78a8,\r
++      0x9084, 0x00ff, 0x9086, 0x00ff, 0x0118, 0x81ff, 0x1904, 0x33bc,\r
++      0x080c, 0x70b7, 0x0110, 0x080c, 0x5ca1, 0x7888, 0x908a, 0x1000,\r
++      0x1a04, 0x33bf, 0x7984, 0x9186, 0x00ff, 0x0138, 0x9182, 0x007f,\r
++      0x1a04, 0x33bf, 0x2100, 0x080c, 0x2457, 0x0026, 0x00c6, 0x0126,\r
++      0x2091, 0x8000, 0x2061, 0x19d4, 0x601b, 0x0000, 0x601f, 0x0000,\r
++      0x6073, 0x0000, 0x6077, 0x0000, 0x080c, 0x70b7, 0x1158, 0x080c,\r
++      0x73b7, 0x080c, 0x5cdc, 0x9085, 0x0001, 0x080c, 0x70fe, 0x080c,\r
++      0x6fe8, 0x00f0, 0x080c, 0x98c8, 0x080c, 0x9b6d, 0x080c, 0x98e4,\r
++      0x2061, 0x0100, 0x2001, 0x1817, 0x2004, 0x9084, 0x00ff, 0x810f,\r
++      0x9105, 0x604a, 0x6043, 0x0090, 0x6043, 0x0010, 0x2009, 0x196a,\r
++      0x200b, 0x0000, 0x2009, 0x002d, 0x2011, 0x5bc7, 0x080c, 0x821d,\r
++      0x7984, 0x080c, 0x70b7, 0x1110, 0x2009, 0x00ff, 0x7a88, 0x080c,\r
++      0x438c, 0x012e, 0x00ce, 0x002e, 0x0804, 0x338a, 0x7984, 0x080c,\r
++      0x6210, 0x2b08, 0x1904, 0x33bf, 0x0804, 0x338a, 0x81ff, 0x0120,\r
++      0x2009, 0x0001, 0x0804, 0x33bc, 0x60d8, 0xd0ac, 0x1130, 0xd09c,\r
++      0x1120, 0x2009, 0x0005, 0x0804, 0x33bc, 0x080c, 0x4878, 0x1120,\r
++      0x2009, 0x0002, 0x0804, 0x33bc, 0x7984, 0x9192, 0x0021, 0x1a04,\r
++      0x33bf, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0xa85c, 0x9080, 0x0019,\r
++      0x702a, 0xaf60, 0x7736, 0x080c, 0x48c1, 0x701f, 0x459e, 0x7880,\r
++      0x9086, 0x006e, 0x0110, 0x701f, 0x4e43, 0x0005, 0x2009, 0x0080,\r
++      0x080c, 0x6270, 0x1118, 0x080c, 0x6667, 0x0120, 0x2021, 0x400a,\r
++      0x0804, 0x338c, 0x00d6, 0x0096, 0xa964, 0xaa6c, 0xab70, 0xac74,\r
++      0xad78, 0xae7c, 0xa884, 0x90be, 0x0100, 0x0904, 0x4637, 0x90be,\r
++      0x0112, 0x0904, 0x4637, 0x90be, 0x0113, 0x0904, 0x4637, 0x90be,\r
++      0x0114, 0x0904, 0x4637, 0x90be, 0x0117, 0x0904, 0x4637, 0x90be,\r
++      0x011a, 0x0904, 0x4637, 0x90be, 0x011c, 0x0904, 0x4637, 0x90be,\r
++      0x0121, 0x0904, 0x461e, 0x90be, 0x0131, 0x0904, 0x461e, 0x90be,\r
++      0x0171, 0x0904, 0x4637, 0x90be, 0x0173, 0x0904, 0x4637, 0x90be,\r
++      0x01a1, 0x1128, 0xa894, 0x8007, 0xa896, 0x0804, 0x4642, 0x90be,\r
++      0x0212, 0x0904, 0x462b, 0x90be, 0x0213, 0x05e8, 0x90be, 0x0214,\r
++      0x0500, 0x90be, 0x0217, 0x0188, 0x90be, 0x021a, 0x1120, 0xa89c,\r
++      0x8007, 0xa89e, 0x04e0, 0x90be, 0x021f, 0x05c8, 0x90be, 0x0300,\r
++      0x05b0, 0x009e, 0x00de, 0x0804, 0x33bf, 0x7028, 0x9080, 0x0010,\r
++      0x2098, 0x20a0, 0x7034, 0x20e0, 0x20e8, 0x20a9, 0x0007, 0x080c,\r
++      0x4680, 0x7028, 0x9080, 0x000e, 0x2098, 0x20a0, 0x7034, 0x20e0,\r
++      0x20e8, 0x20a9, 0x0001, 0x080c, 0x4680, 0x00c8, 0x7028, 0x9080,\r
++      0x000c, 0x2098, 0x20a0, 0x7034, 0x20e0, 0x20e8, 0x20a9, 0x0001,\r
++      0x080c, 0x468d, 0x00b8, 0x7028, 0x9080, 0x000e, 0x2098, 0x20a0,\r
++      0x7034, 0x20e0, 0x20e8, 0x20a9, 0x0001, 0x080c, 0x468d, 0x7028,\r
++      0x9080, 0x000c, 0x2098, 0x20a0, 0x7034, 0x20e0, 0x20e8, 0x20a9,\r
++      0x0001, 0x04f1, 0x00c6, 0x080c, 0x4878, 0x0550, 0xa868, 0xc0fd,\r
++      0xa86a, 0xa867, 0x0119, 0x9006, 0xa882, 0xa87f, 0x0020, 0xa88b,\r
++      0x0001, 0x810b, 0xa9ae, 0xa8b2, 0xaab6, 0xabba, 0xacbe, 0xadc2,\r
++      0xa9c6, 0xa8ca, 0x00ce, 0x009e, 0x00de, 0xa866, 0xa822, 0xa868,\r
++      0xc0fd, 0xa86a, 0xa804, 0x2048, 0x080c, 0xb9d7, 0x1120, 0x2009,\r
++      0x0003, 0x0804, 0x33bc, 0x7007, 0x0003, 0x701f, 0x4677, 0x0005,\r
++      0x00ce, 0x009e, 0x00de, 0x2009, 0x0002, 0x0804, 0x33bc, 0xa820,\r
++      0x9086, 0x8001, 0x1904, 0x338a, 0x2009, 0x0004, 0x0804, 0x33bc,\r
++      0x0016, 0x0026, 0x3510, 0x20a9, 0x0002, 0x4002, 0x4104, 0x4004,\r
++      0x8211, 0x1dc8, 0x002e, 0x001e, 0x0005, 0x0016, 0x0026, 0x0036,\r
++      0x0046, 0x3520, 0x20a9, 0x0004, 0x4002, 0x4304, 0x4204, 0x4104,\r
++      0x4004, 0x8421, 0x1db8, 0x004e, 0x003e, 0x002e, 0x001e, 0x0005,\r
++      0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x33bc, 0x60d8, 0xd0ac,\r
++      0x1160, 0xd09c, 0x0120, 0x2009, 0x0016, 0x0804, 0x33bc, 0xd09c,\r
++      0x1120, 0x2009, 0x0005, 0x0804, 0x33bc, 0x7984, 0x78a8, 0x2040,\r
++      0x080c, 0x9b66, 0x1120, 0x9182, 0x007f, 0x0a04, 0x33bf, 0x9186,\r
++      0x00ff, 0x0904, 0x33bf, 0x9182, 0x0800, 0x1a04, 0x33bf, 0x7a8c,\r
++      0x7b88, 0x6078, 0x9306, 0x1140, 0x607c, 0x924e, 0x0904, 0x33bf,\r
++      0x99cc, 0xff00, 0x0904, 0x33bf, 0x0126, 0x2091, 0x8000, 0x0026,\r
++      0x2011, 0x8008, 0x080c, 0x668b, 0x002e, 0x0140, 0x918d, 0x8000,\r
++      0x080c, 0x66d5, 0x1118, 0x2001, 0x4009, 0x0458, 0x080c, 0x4792,\r
++      0x0560, 0x90c6, 0x4000, 0x1170, 0x00c6, 0x0006, 0x900e, 0x080c,\r
++      0x655f, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d, 0x000e,\r
++      0x00ce, 0x00b8, 0x90c6, 0x4007, 0x1110, 0x2408, 0x0090, 0x90c6,\r
++      0x4008, 0x1118, 0x2708, 0x2610, 0x0060, 0x90c6, 0x4009, 0x1108,\r
++      0x0040, 0x90c6, 0x4006, 0x1108, 0x0020, 0x2001, 0x4005, 0x2009,\r
++      0x000a, 0x2020, 0x012e, 0x0804, 0x338c, 0x2b00, 0x7026, 0x0016,\r
++      0x00b6, 0x00c6, 0x00e6, 0x2c70, 0x080c, 0x9c58, 0x0904, 0x475f,\r
++      0x2b00, 0x6012, 0x080c, 0xbcdb, 0x2e58, 0x00ee, 0x00e6, 0x00c6,\r
++      0x080c, 0x4878, 0x00ce, 0x2b70, 0x1158, 0x080c, 0x9be7, 0x00ee,\r
++      0x00ce, 0x00be, 0x001e, 0x012e, 0x2009, 0x0002, 0x0804, 0x33bc,\r
++      0x900e, 0xa966, 0xa96a, 0x2900, 0x6016, 0xa932, 0xa868, 0xc0fd,\r
++      0xd88c, 0x0108, 0xc0f5, 0xa86a, 0x080c, 0x3006, 0x6023, 0x0001,\r
++      0x9006, 0x080c, 0x61ad, 0x2001, 0x0002, 0x080c, 0x61c1, 0x2009,\r
++      0x0002, 0x080c, 0x9c85, 0x78a8, 0xd094, 0x0138, 0x00ee, 0x7024,\r
++      0x00e6, 0x2058, 0xb8c4, 0xc08d, 0xb8c6, 0x9085, 0x0001, 0x00ee,\r
++      0x00ce, 0x00be, 0x001e, 0x012e, 0x1120, 0x2009, 0x0003, 0x0804,\r
++      0x33bc, 0x7007, 0x0003, 0x701f, 0x476e, 0x0005, 0xa830, 0x2008,\r
++      0x918e, 0xdead, 0x1120, 0x2021, 0x4009, 0x0804, 0x338c, 0x9086,\r
++      0x0100, 0x7024, 0x2058, 0x1138, 0x2009, 0x0004, 0xba04, 0x9294,\r
++      0x00ff, 0x0804, 0x52ea, 0x900e, 0xa868, 0xd0f4, 0x1904, 0x338a,\r
++      0x080c, 0x655f, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d,\r
++      0x0804, 0x338a, 0x00e6, 0x00d6, 0x0096, 0x83ff, 0x0904, 0x47da,\r
++      0x902e, 0x080c, 0x9b66, 0x0130, 0x9026, 0x20a9, 0x0800, 0x2071,\r
++      0x1000, 0x0030, 0x2021, 0x007f, 0x20a9, 0x0781, 0x2071, 0x107f,\r
++      0x2e04, 0x9005, 0x11b0, 0x2100, 0x9406, 0x15e8, 0x2428, 0x94ce,\r
++      0x007f, 0x1120, 0x92ce, 0xfffd, 0x1528, 0x0030, 0x94ce, 0x0080,\r
++      0x1130, 0x92ce, 0xfffc, 0x11f0, 0x93ce, 0x00ff, 0x11d8, 0xc5fd,\r
++      0x0450, 0x2058, 0xbf10, 0x2700, 0x9306, 0x11b8, 0xbe14, 0x2600,\r
++      0x9206, 0x1198, 0x2400, 0x9106, 0x1150, 0xd884, 0x0568, 0xd894,\r
++      0x1558, 0x080c, 0x6667, 0x1540, 0x2001, 0x4000, 0x0430, 0x2001,\r
++      0x4007, 0x0418, 0x2001, 0x4006, 0x0400, 0x2400, 0x9106, 0x1158,\r
++      0xbe14, 0x87ff, 0x1128, 0x86ff, 0x0948, 0x080c, 0x9b66, 0x1930,\r
++      0x2001, 0x4008, 0x0090, 0x8420, 0x8e70, 0x1f04, 0x47a8, 0x85ff,\r
++      0x1130, 0x2001, 0x4009, 0x0048, 0x2001, 0x0001, 0x0030, 0x080c,\r
++      0x6210, 0x1dd0, 0xbb12, 0xba16, 0x9006, 0x9005, 0x009e, 0x00de,\r
++      0x00ee, 0x0005, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x33bc,\r
++      0x080c, 0x4878, 0x1120, 0x2009, 0x0002, 0x0804, 0x33bc, 0xa867,\r
++      0x0000, 0xa868, 0xc0fd, 0xa86a, 0x7884, 0x9005, 0x0904, 0x33bf,\r
++      0x9096, 0x00ff, 0x0120, 0x9092, 0x0004, 0x1a04, 0x33bf, 0x2010,\r
++      0x2918, 0x080c, 0x2fa0, 0x1120, 0x2009, 0x0003, 0x0804, 0x33bc,\r
++      0x7007, 0x0003, 0x701f, 0x482d, 0x0005, 0xa830, 0x9086, 0x0100,\r
++      0x1904, 0x338a, 0x2009, 0x0004, 0x0804, 0x33bc, 0x7984, 0x080c,\r
++      0x9b66, 0x1120, 0x9182, 0x007f, 0x0a04, 0x33bf, 0x9186, 0x00ff,\r
++      0x0904, 0x33bf, 0x9182, 0x0800, 0x1a04, 0x33bf, 0x2001, 0x9000,\r
++      0x080c, 0x5345, 0x1904, 0x33bc, 0x0804, 0x338a, 0xa998, 0x080c,\r
++      0x9b66, 0x1118, 0x9182, 0x007f, 0x0280, 0x9186, 0x00ff, 0x0168,\r
++      0x9182, 0x0800, 0x1250, 0x2001, 0x9000, 0x080c, 0x5345, 0x11a8,\r
++      0x0060, 0xa897, 0x4005, 0xa99a, 0x0010, 0xa897, 0x4006, 0x900e,\r
++      0x9085, 0x0001, 0x2001, 0x0030, 0x0005, 0xa897, 0x4000, 0x900e,\r
++      0x9085, 0x0001, 0x2001, 0x0000, 0x0005, 0x2009, 0x000a, 0x0c48,\r
++      0x080c, 0x1022, 0x0198, 0x9006, 0xa802, 0x7014, 0x9005, 0x1120,\r
++      0x2900, 0x7016, 0x701a, 0x0040, 0x7018, 0xa802, 0x0086, 0x2040,\r
++      0x2900, 0xa006, 0x701a, 0x008e, 0x9085, 0x0001, 0x0005, 0x7984,\r
++      0x080c, 0x6270, 0x1130, 0x7e88, 0x9684, 0x3fff, 0x9082, 0x4000,\r
++      0x0208, 0x905e, 0x8bff, 0x0005, 0xa998, 0x080c, 0x6270, 0x1130,\r
++      0xae9c, 0x9684, 0x3fff, 0x9082, 0x4000, 0x0208, 0x905e, 0x8bff,\r
++      0x0005, 0xae98, 0x0008, 0x7e84, 0x2608, 0x080c, 0x6270, 0x1108,\r
++      0x0008, 0x905e, 0x8bff, 0x0005, 0x0016, 0x7114, 0x81ff, 0x0128,\r
++      0x2148, 0xa904, 0x080c, 0x1054, 0x0cc8, 0x7116, 0x711a, 0x001e,\r
++      0x0005, 0x2031, 0x0001, 0x0010, 0x2031, 0x0000, 0x2061, 0x18ae,\r
++      0x2c44, 0xa66a, 0xa17a, 0xa772, 0xa076, 0xa28e, 0xa392, 0xa496,\r
++      0xa59a, 0x080c, 0x110c, 0x7007, 0x0002, 0x701f, 0x338a, 0x0005,\r
++      0x00f6, 0x0126, 0x2091, 0x8000, 0x2079, 0x0000, 0x2001, 0x18a6,\r
++      0x2004, 0x9005, 0x1190, 0x0e04, 0x48f5, 0x7a36, 0x7833, 0x0012,\r
++      0x7a82, 0x7b86, 0x7c8a, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004,\r
++      0xd084, 0x190c, 0x11be, 0x0804, 0x495b, 0x0016, 0x0086, 0x0096,\r
++      0x00c6, 0x00e6, 0x2071, 0x1894, 0x7044, 0x9005, 0x1540, 0x7148,\r
++      0x9182, 0x0010, 0x0288, 0x7038, 0x2060, 0x080c, 0x1022, 0x0904,\r
++      0x4953, 0xa84b, 0x0000, 0x2900, 0x7046, 0x2001, 0x0002, 0x9080,\r
++      0x1cf7, 0x2005, 0xa846, 0x0098, 0x7038, 0x90e0, 0x0004, 0x2001,\r
++      0x18b0, 0x9c82, 0x18f0, 0x0210, 0x2061, 0x18b0, 0x2c00, 0x703a,\r
++      0x7148, 0x81ff, 0x1108, 0x703e, 0x8108, 0x714a, 0x0460, 0x7148,\r
++      0x8108, 0x714a, 0x7044, 0x2040, 0xa144, 0x2105, 0x0016, 0x908a,\r
++      0x0036, 0x1a0c, 0x0d65, 0x2060, 0x001e, 0x8108, 0x2105, 0x9005,\r
++      0xa146, 0x1520, 0x080c, 0x1022, 0x1130, 0x8109, 0xa946, 0x7148,\r
++      0x8109, 0x714a, 0x00d8, 0x9006, 0xa806, 0xa84a, 0xa046, 0x2800,\r
++      0xa802, 0x2900, 0xa006, 0x7046, 0x2001, 0x0002, 0x9080, 0x1cf7,\r
++      0x2005, 0xa846, 0x0058, 0x2262, 0x6306, 0x640a, 0x00ee, 0x00ce,\r
++      0x009e, 0x008e, 0x001e, 0x012e, 0x00fe, 0x0005, 0x2c00, 0x9082,\r
++      0x001b, 0x0002, 0x497d, 0x497d, 0x497f, 0x497d, 0x497d, 0x497d,\r
++      0x4983, 0x497d, 0x497d, 0x497d, 0x4987, 0x497d, 0x497d, 0x497d,\r
++      0x498b, 0x497d, 0x497d, 0x497d, 0x498f, 0x497d, 0x497d, 0x497d,\r
++      0x4993, 0x497d, 0x497d, 0x497d, 0x4998, 0x080c, 0x0d65, 0xa276,\r
++      0xa37a, 0xa47e, 0x0898, 0xa286, 0xa38a, 0xa48e, 0x0878, 0xa296,\r
++      0xa39a, 0xa49e, 0x0858, 0xa2a6, 0xa3aa, 0xa4ae, 0x0838, 0xa2b6,\r
++      0xa3ba, 0xa4be, 0x0818, 0xa2c6, 0xa3ca, 0xa4ce, 0x0804, 0x4956,\r
++      0xa2d6, 0xa3da, 0xa4de, 0x0804, 0x4956, 0x00e6, 0x2071, 0x1894,\r
++      0x7048, 0x9005, 0x0904, 0x4a2f, 0x0126, 0x2091, 0x8000, 0x0e04,\r
++      0x4a2e, 0x00f6, 0x2079, 0x0000, 0x00c6, 0x0096, 0x0086, 0x0076,\r
++      0x9006, 0x2038, 0x7040, 0x2048, 0x9005, 0x0500, 0xa948, 0x2105,\r
++      0x0016, 0x908a, 0x0036, 0x1a0c, 0x0d65, 0x2060, 0x001e, 0x8108,\r
++      0x2105, 0x9005, 0xa94a, 0x1904, 0x4a31, 0xa804, 0x9005, 0x090c,\r
++      0x0d65, 0x7042, 0x2938, 0x2040, 0xa003, 0x0000, 0x2001, 0x0002,\r
++      0x9080, 0x1cf7, 0x2005, 0xa04a, 0x0804, 0x4a31, 0x703c, 0x2060,\r
++      0x2c14, 0x6304, 0x6408, 0x650c, 0x2200, 0x7836, 0x7833, 0x0012,\r
++      0x7882, 0x2300, 0x7886, 0x2400, 0x788a, 0x2091, 0x4080, 0x2001,\r
++      0x0089, 0x2004, 0xd084, 0x190c, 0x11be, 0x87ff, 0x0118, 0x2748,\r
++      0x080c, 0x1054, 0x7048, 0x8001, 0x704a, 0x9005, 0x1170, 0x7040,\r
++      0x2048, 0x9005, 0x0128, 0x080c, 0x1054, 0x9006, 0x7042, 0x7046,\r
++      0x703b, 0x18b0, 0x703f, 0x18b0, 0x0420, 0x7040, 0x9005, 0x1508,\r
++      0x7238, 0x2c00, 0x9206, 0x0148, 0x9c80, 0x0004, 0x90fa, 0x18f0,\r
++      0x0210, 0x2001, 0x18b0, 0x703e, 0x00a0, 0x9006, 0x703e, 0x703a,\r
++      0x7044, 0x9005, 0x090c, 0x0d65, 0x2048, 0xa800, 0x9005, 0x1de0,\r
++      0x2900, 0x7042, 0x2001, 0x0002, 0x9080, 0x1cf7, 0x2005, 0xa84a,\r
++      0x0000, 0x007e, 0x008e, 0x009e, 0x00ce, 0x00fe, 0x012e, 0x00ee,\r
++      0x0005, 0x2c00, 0x9082, 0x001b, 0x0002, 0x4a50, 0x4a50, 0x4a52,\r
++      0x4a50, 0x4a50, 0x4a50, 0x4a57, 0x4a50, 0x4a50, 0x4a50, 0x4a5c,\r
++      0x4a50, 0x4a50, 0x4a50, 0x4a61, 0x4a50, 0x4a50, 0x4a50, 0x4a66,\r
++      0x4a50, 0x4a50, 0x4a50, 0x4a6b, 0x4a50, 0x4a50, 0x4a50, 0x4a70,\r
++      0x080c, 0x0d65, 0xaa74, 0xab78, 0xac7c, 0x0804, 0x49dc, 0xaa84,\r
++      0xab88, 0xac8c, 0x0804, 0x49dc, 0xaa94, 0xab98, 0xac9c, 0x0804,\r
++      0x49dc, 0xaaa4, 0xaba8, 0xacac, 0x0804, 0x49dc, 0xaab4, 0xabb8,\r
++      0xacbc, 0x0804, 0x49dc, 0xaac4, 0xabc8, 0xaccc, 0x0804, 0x49dc,\r
++      0xaad4, 0xabd8, 0xacdc, 0x0804, 0x49dc, 0x0026, 0x080c, 0x538d,\r
++      0xd0c4, 0x0120, 0x2011, 0x8014, 0x080c, 0x48d8, 0x002e, 0x0005,\r
++      0x81ff, 0x1904, 0x33bc, 0x0126, 0x2091, 0x8000, 0x6030, 0xc08d,\r
++      0xc085, 0xc0ac, 0x6032, 0x080c, 0x70b7, 0x1158, 0x080c, 0x73b7,\r
++      0x080c, 0x5cdc, 0x9085, 0x0001, 0x080c, 0x70fe, 0x080c, 0x6fe8,\r
++      0x0010, 0x080c, 0x5b97, 0x012e, 0x0804, 0x338a, 0x81ff, 0x0120,\r
++      0x2009, 0x0001, 0x0804, 0x33bc, 0x080c, 0x53a1, 0x0120, 0x2009,\r
++      0x0007, 0x0804, 0x33bc, 0x080c, 0x665f, 0x0120, 0x2009, 0x0008,\r
++      0x0804, 0x33bc, 0x0026, 0x2011, 0x0010, 0x080c, 0x668b, 0x002e,\r
++      0x0140, 0x7984, 0x080c, 0x66d5, 0x1120, 0x2009, 0x4009, 0x0804,\r
++      0x33bc, 0x080c, 0x3181, 0x0128, 0x7984, 0x080c, 0x6210, 0x1904,\r
++      0x33bf, 0x080c, 0x48ab, 0x0904, 0x33bf, 0x2b00, 0x7026, 0x080c,\r
++      0x6667, 0x7888, 0x1170, 0x9084, 0x0005, 0x1158, 0x900e, 0x080c,\r
++      0x655f, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d, 0x0804,\r
++      0x338a, 0x080c, 0x4878, 0x0904, 0x33bc, 0x9006, 0xa866, 0xa832,\r
++      0xa868, 0xc0fd, 0xa86a, 0x080c, 0xba79, 0x0904, 0x33bc, 0x7888,\r
++      0xd094, 0x0118, 0xb8c4, 0xc08d, 0xb8c6, 0x7007, 0x0003, 0x701f,\r
++      0x4b46, 0x0005, 0x2061, 0x1800, 0x080c, 0x53a1, 0x2009, 0x0007,\r
++      0x1578, 0x080c, 0x665f, 0x0118, 0x2009, 0x0008, 0x0448, 0x080c,\r
++      0x3181, 0x0120, 0xa998, 0x080c, 0x6210, 0x1530, 0x080c, 0x48a9,\r
++      0x0518, 0x080c, 0x6667, 0xa89c, 0x1168, 0x9084, 0x0005, 0x1150,\r
++      0x900e, 0x080c, 0x655f, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108,\r
++      0xc18d, 0x00d0, 0xa868, 0xc0fc, 0xa86a, 0x080c, 0xba79, 0x11e0,\r
++      0xa89c, 0xd094, 0x0118, 0xb8c4, 0xc08d, 0xb8c6, 0x2009, 0x0003,\r
++      0xa897, 0x4005, 0xa99a, 0x0010, 0xa897, 0x4006, 0x900e, 0x9085,\r
++      0x0001, 0x2001, 0x0030, 0x0005, 0xa897, 0x4000, 0xa99a, 0x9006,\r
++      0x918d, 0x0001, 0x2008, 0x0005, 0x9006, 0x0005, 0xa830, 0x2008,\r
++      0x918e, 0xdead, 0x1120, 0x2021, 0x4009, 0x0804, 0x338c, 0x9086,\r
++      0x0100, 0x7024, 0x2058, 0x1110, 0x0804, 0x52ea, 0x900e, 0x080c,\r
++      0x655f, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d, 0x0804,\r
++      0x338a, 0x080c, 0x53a1, 0x0120, 0x2009, 0x0007, 0x0804, 0x33bc,\r
++      0x7f84, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x080c, 0x4878, 0x1120,\r
++      0x2009, 0x0002, 0x0804, 0x33bc, 0x900e, 0x2130, 0x7126, 0x7132,\r
++      0xa860, 0x20e8, 0x7036, 0xa85c, 0x9080, 0x0005, 0x702a, 0x20a0,\r
++      0x080c, 0x6270, 0x1904, 0x4be4, 0x080c, 0x6667, 0x0120, 0x080c,\r
++      0x666f, 0x1904, 0x4be4, 0x080c, 0x665f, 0x1130, 0x080c, 0x655f,\r
++      0x1118, 0xd79c, 0x0904, 0x4be4, 0xd794, 0x1110, 0xd784, 0x01a8,\r
++      0xb8b4, 0x20e0, 0xb8b8, 0x9080, 0x0006, 0x2098, 0x3400, 0xd794,\r
++      0x0160, 0x20a9, 0x0008, 0x4003, 0x2098, 0x20a0, 0x3d00, 0x20e0,\r
++      0x20a9, 0x0002, 0x080c, 0x468d, 0x0048, 0x20a9, 0x0004, 0x4003,\r
++      0x2098, 0x20a0, 0x3d00, 0x20e0, 0x080c, 0x468d, 0x4104, 0xd794,\r
++      0x0528, 0xb8b4, 0x20e0, 0xb8b8, 0x2060, 0x9c80, 0x0000, 0x2098,\r
++      0x20a9, 0x0002, 0x4003, 0x9c80, 0x0003, 0x2098, 0x20a9, 0x0001,\r
++      0x4005, 0x9c80, 0x0004, 0x2098, 0x3400, 0x20a9, 0x0002, 0x4003,\r
++      0x2098, 0x20a0, 0x3d00, 0x20e0, 0x080c, 0x4680, 0x9c80, 0x0026,\r
++      0x2098, 0xb8b4, 0x20e0, 0x20a9, 0x0002, 0x4003, 0xd794, 0x0110,\r
++      0x96b0, 0x000b, 0x96b0, 0x0005, 0x8108, 0x080c, 0x9b66, 0x0118,\r
++      0x9186, 0x0800, 0x0040, 0xd78c, 0x0120, 0x9186, 0x0800, 0x0170,\r
++      0x0018, 0x9186, 0x007e, 0x0150, 0xd794, 0x0118, 0x9686, 0x0020,\r
++      0x0010, 0x9686, 0x0028, 0x0150, 0x0804, 0x4b80, 0x86ff, 0x1120,\r
++      0x7124, 0x810b, 0x0804, 0x338a, 0x7033, 0x0001, 0x7122, 0x7024,\r
++      0x9600, 0x7026, 0x772e, 0x2061, 0x18ae, 0x2c44, 0xa06b, 0x0000,\r
++      0xa67a, 0x7034, 0xa072, 0x7028, 0xa076, 0xa28e, 0xa392, 0xa496,\r
++      0xa59a, 0x080c, 0x110c, 0x7007, 0x0002, 0x701f, 0x4c20, 0x0005,\r
++      0x7030, 0x9005, 0x1180, 0x7120, 0x7028, 0x20a0, 0x772c, 0x9036,\r
++      0x7034, 0x20e8, 0x2061, 0x18ae, 0x2c44, 0xa28c, 0xa390, 0xa494,\r
++      0xa598, 0x0804, 0x4b80, 0x7124, 0x810b, 0x0804, 0x338a, 0x2029,\r
++      0x007e, 0x7984, 0x7a88, 0x7b8c, 0x7c98, 0x9184, 0xff00, 0x8007,\r
++      0x90e2, 0x0020, 0x0a04, 0x33bf, 0x9502, 0x0a04, 0x33bf, 0x9184,\r
++      0x00ff, 0x90e2, 0x0020, 0x0a04, 0x33bf, 0x9502, 0x0a04, 0x33bf,\r
++      0x9284, 0xff00, 0x8007, 0x90e2, 0x0020, 0x0a04, 0x33bf, 0x9502,\r
++      0x0a04, 0x33bf, 0x9284, 0x00ff, 0x90e2, 0x0020, 0x0a04, 0x33bf,\r
++      0x9502, 0x0a04, 0x33bf, 0x9384, 0xff00, 0x8007, 0x90e2, 0x0020,\r
++      0x0a04, 0x33bf, 0x9502, 0x0a04, 0x33bf, 0x9384, 0x00ff, 0x90e2,\r
++      0x0020, 0x0a04, 0x33bf, 0x9502, 0x0a04, 0x33bf, 0x9484, 0xff00,\r
++      0x8007, 0x90e2, 0x0020, 0x0a04, 0x33bf, 0x9502, 0x0a04, 0x33bf,\r
++      0x9484, 0x00ff, 0x90e2, 0x0020, 0x0a04, 0x33bf, 0x9502, 0x0a04,\r
++      0x33bf, 0x2061, 0x195a, 0x6102, 0x6206, 0x630a, 0x640e, 0x0804,\r
++      0x338a, 0x0006, 0x080c, 0x538d, 0xd0cc, 0x000e, 0x0005, 0x0006,\r
++      0x080c, 0x5391, 0xd0bc, 0x000e, 0x0005, 0x6170, 0x7a84, 0x6300,\r
++      0x82ff, 0x1118, 0x7986, 0x0804, 0x338a, 0x83ff, 0x1904, 0x33bf,\r
++      0x2001, 0xfff0, 0x9200, 0x1a04, 0x33bf, 0x2019, 0xffff, 0x6074,\r
++      0x9302, 0x9200, 0x0a04, 0x33bf, 0x7986, 0x6272, 0x0804, 0x338a,\r
++      0x080c, 0x53a1, 0x1904, 0x33bc, 0x7c88, 0x7d84, 0x7e98, 0x7f8c,\r
++      0x080c, 0x4878, 0x0904, 0x33bc, 0x900e, 0x901e, 0x7326, 0x7332,\r
++      0xa860, 0x20e8, 0x7036, 0xa85c, 0x9080, 0x0003, 0x702a, 0x20a0,\r
++      0x91d8, 0x1000, 0x2b5c, 0x8bff, 0x0178, 0x080c, 0x6667, 0x0118,\r
++      0x080c, 0x666f, 0x1148, 0x20a9, 0x0001, 0xb814, 0x4004, 0xb810,\r
++      0x4004, 0x4104, 0x9398, 0x0003, 0x8108, 0x9182, 0x0800, 0x0120,\r
++      0x9386, 0x003c, 0x0170, 0x0c20, 0x83ff, 0x1148, 0x7224, 0x900e,\r
++      0x2001, 0x0003, 0x080c, 0x8419, 0x2208, 0x0804, 0x338a, 0x7033,\r
++      0x0001, 0x7122, 0x7024, 0x9300, 0x7026, 0x2061, 0x18ae, 0x2c44,\r
++      0xa06b, 0x0000, 0xa37a, 0x7028, 0xa076, 0x7034, 0xa072, 0xa48e,\r
++      0xa592, 0xa696, 0xa79a, 0x080c, 0x110c, 0x7007, 0x0002, 0x701f,\r
++      0x4d12, 0x0005, 0x7030, 0x9005, 0x1178, 0x7120, 0x7028, 0x20a0,\r
++      0x901e, 0x7034, 0x20e8, 0x2061, 0x18ae, 0x2c44, 0xa48c, 0xa590,\r
++      0xa694, 0xa798, 0x0804, 0x4cd0, 0x7224, 0x900e, 0x2001, 0x0003,\r
++      0x080c, 0x8419, 0x2208, 0x0804, 0x338a, 0x00f6, 0x00e6, 0x080c,\r
++      0x53a1, 0x2009, 0x0007, 0x1904, 0x4da5, 0x2071, 0x1894, 0x745c,\r
++      0x84ff, 0x2009, 0x000e, 0x1904, 0x4da5, 0xac9c, 0xad98, 0xaea4,\r
++      0xafa0, 0x0096, 0x080c, 0x103b, 0x2009, 0x0002, 0x0904, 0x4da5,\r
++      0x2900, 0x705e, 0x900e, 0x901e, 0x7356, 0x7362, 0xa860, 0x7066,\r
++      0xa85c, 0x9080, 0x0003, 0x705a, 0x20a0, 0x91d8, 0x1000, 0x2b5c,\r
++      0x8bff, 0x0178, 0x080c, 0x6667, 0x0118, 0x080c, 0x666f, 0x1148,\r
++      0xb814, 0x20a9, 0x0001, 0x4004, 0xb810, 0x4004, 0x4104, 0x9398,\r
++      0x0003, 0x8108, 0x9182, 0x0800, 0x0120, 0x9386, 0x003c, 0x01e8,\r
++      0x0c20, 0x83ff, 0x11c0, 0x7254, 0x900e, 0x2001, 0x0003, 0x080c,\r
++      0x8419, 0x2208, 0x009e, 0xa897, 0x4000, 0xa99a, 0x715c, 0x81ff,\r
++      0x090c, 0x0d65, 0x2148, 0x080c, 0x1054, 0x9006, 0x705e, 0x918d,\r
++      0x0001, 0x2008, 0x0418, 0x7063, 0x0001, 0x7152, 0x7054, 0x9300,\r
++      0x7056, 0x2061, 0x18af, 0x2c44, 0xa37a, 0x7058, 0xa076, 0x7064,\r
++      0xa072, 0xa48e, 0xa592, 0xa696, 0xa79a, 0xa09f, 0x4db1, 0x000e,\r
++      0xa0a2, 0x080c, 0x110c, 0x9006, 0x0048, 0x009e, 0xa897, 0x4005,\r
++      0xa99a, 0x900e, 0x9085, 0x0001, 0x2001, 0x0030, 0x00ee, 0x00fe,\r
++      0x0005, 0x00f6, 0xa0a0, 0x904d, 0x090c, 0x0d65, 0x00e6, 0x2071,\r
++      0x1894, 0xa06c, 0x908e, 0x0100, 0x0138, 0xa87b, 0x0030, 0xa883,\r
++      0x0000, 0xa897, 0x4002, 0x00d8, 0x7060, 0x9005, 0x1158, 0x7150,\r
++      0x7058, 0x20a0, 0x901e, 0x7064, 0x20e8, 0xa48c, 0xa590, 0xa694,\r
++      0xa798, 0x0428, 0xa87b, 0x0000, 0xa883, 0x0000, 0xa897, 0x4000,\r
++      0x7254, 0x900e, 0x2001, 0x0003, 0x080c, 0x8419, 0xaa9a, 0x715c,\r
++      0x81ff, 0x090c, 0x0d65, 0x2148, 0x080c, 0x1054, 0x705f, 0x0000,\r
++      0xa0a0, 0x2048, 0x0126, 0x2091, 0x8000, 0x080c, 0x6996, 0x012e,\r
++      0xa09f, 0x0000, 0xa0a3, 0x0000, 0x00ee, 0x00fe, 0x0005, 0x91d8,\r
++      0x1000, 0x2b5c, 0x8bff, 0x0178, 0x080c, 0x6667, 0x0118, 0x080c,\r
++      0x666f, 0x1148, 0xb814, 0x20a9, 0x0001, 0x4004, 0xb810, 0x4004,\r
++      0x4104, 0x9398, 0x0003, 0x8108, 0x9182, 0x0800, 0x0120, 0x9386,\r
++      0x003c, 0x0518, 0x0c20, 0x83ff, 0x11f0, 0x7154, 0x810c, 0xa99a,\r
++      0xa897, 0x4000, 0x715c, 0x81ff, 0x090c, 0x0d65, 0x2148, 0x080c,\r
++      0x1054, 0x9006, 0x705e, 0x918d, 0x0001, 0x2008, 0xa0a0, 0x2048,\r
++      0x0126, 0x2091, 0x8000, 0x080c, 0x6996, 0x012e, 0xa09f, 0x0000,\r
++      0xa0a3, 0x0000, 0x0070, 0x7063, 0x0001, 0x7152, 0x7054, 0x9300,\r
++      0x7056, 0xa37a, 0xa48e, 0xa592, 0xa696, 0xa79a, 0x080c, 0x110c,\r
++      0x9006, 0x00ee, 0x0005, 0x0096, 0xa88c, 0x90be, 0x7000, 0x0148,\r
++      0x90be, 0x7100, 0x0130, 0x90be, 0x7200, 0x0118, 0x009e, 0x0804,\r
++      0x33bf, 0xa884, 0xa988, 0x080c, 0x2424, 0x1518, 0x080c, 0x6210,\r
++      0x1500, 0x7126, 0xbe12, 0xbd16, 0xae7c, 0x080c, 0x4878, 0x01c8,\r
++      0x080c, 0x4878, 0x01b0, 0x009e, 0xa867, 0x0000, 0xa868, 0xc0fd,\r
++      0xa86a, 0xa823, 0x0000, 0xa804, 0x2048, 0x080c, 0xb9f7, 0x1120,\r
++      0x2009, 0x0003, 0x0804, 0x33bc, 0x7007, 0x0003, 0x701f, 0x4e7e,\r
++      0x0005, 0x009e, 0x2009, 0x0002, 0x0804, 0x33bc, 0x7124, 0x080c,\r
++      0x311a, 0xa820, 0x9086, 0x8001, 0x1120, 0x2009, 0x0004, 0x0804,\r
++      0x33bc, 0x2900, 0x7022, 0xa804, 0x0096, 0x2048, 0x8906, 0x8006,\r
++      0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x009e, 0x9080, 0x0002,\r
++      0x0076, 0x0006, 0x2098, 0x20a0, 0x27e0, 0x27e8, 0x20a9, 0x002a,\r
++      0x080c, 0x0f9f, 0xaa6c, 0xab70, 0xac74, 0xad78, 0x2061, 0x18ae,\r
++      0x2c44, 0xa06b, 0x0000, 0xae64, 0xaf8c, 0x97c6, 0x7000, 0x0118,\r
++      0x97c6, 0x7100, 0x1148, 0x96c2, 0x0004, 0x0600, 0x2009, 0x0004,\r
++      0x000e, 0x007e, 0x0804, 0x48c4, 0x97c6, 0x7200, 0x11b8, 0x96c2,\r
++      0x0054, 0x02a0, 0x000e, 0x007e, 0x2061, 0x18ae, 0x2c44, 0xa076,\r
++      0xa772, 0xa07b, 0x002a, 0xa28e, 0xa392, 0xa496, 0xa59a, 0x080c,\r
++      0x110c, 0x7007, 0x0002, 0x701f, 0x4eda, 0x0005, 0x000e, 0x007e,\r
++      0x0804, 0x33bf, 0x7020, 0x2048, 0xa804, 0x2048, 0xa804, 0x2048,\r
++      0x8906, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080,\r
++      0x0002, 0x2098, 0x20a0, 0x27e0, 0x27e8, 0x20a9, 0x002a, 0x080c,\r
++      0x0f9f, 0x2100, 0x2238, 0x2061, 0x18ae, 0x2c44, 0xa28c, 0xa390,\r
++      0xa494, 0xa598, 0x2009, 0x002a, 0x0804, 0x48c4, 0x81ff, 0x1904,\r
++      0x33bc, 0x798c, 0x2001, 0x194f, 0x918c, 0x8000, 0x2102, 0x080c,\r
++      0x488f, 0x0904, 0x33bf, 0x080c, 0x6667, 0x0120, 0x080c, 0x666f,\r
++      0x1904, 0x33bf, 0x080c, 0x6337, 0x0904, 0x33bc, 0x0126, 0x2091,\r
++      0x8000, 0x080c, 0x64cc, 0x012e, 0x0904, 0x33bc, 0x2001, 0x194f,\r
++      0x2004, 0xd0fc, 0x1904, 0x338a, 0x0804, 0x4329, 0xa9a0, 0x2001,\r
++      0x194f, 0x918c, 0x8000, 0xc18d, 0x2102, 0x080c, 0x489c, 0x01a0,\r
++      0x080c, 0x6667, 0x0118, 0x080c, 0x666f, 0x1170, 0x080c, 0x6337,\r
++      0x2009, 0x0002, 0x0128, 0x080c, 0x64cc, 0x1170, 0x2009, 0x0003,\r
++      0xa897, 0x4005, 0xa99a, 0x0010, 0xa897, 0x4006, 0x900e, 0x9085,\r
++      0x0001, 0x2001, 0x0030, 0x0005, 0xa897, 0x4000, 0x2001, 0x194f,\r
++      0x2004, 0xd0fc, 0x1128, 0x080c, 0x5395, 0x0110, 0x9006, 0x0018,\r
++      0x900e, 0x9085, 0x0001, 0x2001, 0x0000, 0x0005, 0x78a8, 0xd08c,\r
++      0x1118, 0xd084, 0x0904, 0x429e, 0x080c, 0x48ab, 0x0904, 0x33bf,\r
++      0x080c, 0x4878, 0x1120, 0x2009, 0x0002, 0x0804, 0x33bc, 0x080c,\r
++      0x6667, 0x0130, 0x908e, 0x0004, 0x0118, 0x908e, 0x0005, 0x15a0,\r
++      0x78a8, 0xd08c, 0x0120, 0xb800, 0xc08c, 0xb802, 0x0028, 0x080c,\r
++      0x538d, 0xd0b4, 0x0904, 0x42d8, 0x7884, 0x908e, 0x007e, 0x0904,\r
++      0x42d8, 0x908e, 0x007f, 0x0904, 0x42d8, 0x908e, 0x0080, 0x0904,\r
++      0x42d8, 0xb800, 0xd08c, 0x1904, 0x42d8, 0xa867, 0x0000, 0xa868,\r
++      0xc0fd, 0xa86a, 0x080c, 0xba16, 0x1120, 0x2009, 0x0003, 0x0804,\r
++      0x33bc, 0x7007, 0x0003, 0x701f, 0x4fa6, 0x0005, 0x080c, 0x48ab,\r
++      0x0904, 0x33bf, 0x0804, 0x42d8, 0x080c, 0x3181, 0x0108, 0x0005,\r
++      0x2009, 0x1833, 0x210c, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804,\r
++      0x33bc, 0x080c, 0x53a1, 0x0120, 0x2009, 0x0007, 0x0804, 0x33bc,\r
++      0x080c, 0x665f, 0x0120, 0x2009, 0x0008, 0x0804, 0x33bc, 0xb89c,\r
++      0xd0a4, 0x1118, 0xd0ac, 0x1904, 0x42d8, 0x9006, 0xa866, 0xa832,\r
++      0xa868, 0xc0fd, 0xa86a, 0x080c, 0xba79, 0x1120, 0x2009, 0x0003,\r
++      0x0804, 0x33bc, 0x7007, 0x0003, 0x701f, 0x4fdf, 0x0005, 0xa830,\r
++      0x9086, 0x0100, 0x1120, 0x2009, 0x0004, 0x0804, 0x52ea, 0x080c,\r
++      0x48ab, 0x0904, 0x33bf, 0x0804, 0x4f78, 0x81ff, 0x2009, 0x0001,\r
++      0x1904, 0x33bc, 0x080c, 0x53a1, 0x2009, 0x0007, 0x1904, 0x33bc,\r
++      0x080c, 0x665f, 0x0120, 0x2009, 0x0008, 0x0804, 0x33bc, 0x080c,\r
++      0x48ab, 0x0904, 0x33bf, 0x080c, 0x6667, 0x2009, 0x0009, 0x1904,\r
++      0x33bc, 0x080c, 0x4878, 0x2009, 0x0002, 0x0904, 0x33bc, 0x9006,\r
++      0xa866, 0xa832, 0xa868, 0xc0fd, 0xa86a, 0x7988, 0x9194, 0xff00,\r
++      0x918c, 0x00ff, 0x9006, 0x82ff, 0x1128, 0xc0ed, 0xa952, 0x798c,\r
++      0xa956, 0x0038, 0x928e, 0x0100, 0x1904, 0x33bf, 0xc0e5, 0xa952,\r
++      0xa956, 0xa83e, 0x080c, 0xbcdc, 0x2009, 0x0003, 0x0904, 0x33bc,\r
++      0x7007, 0x0003, 0x701f, 0x5035, 0x0005, 0xa830, 0x9086, 0x0100,\r
++      0x2009, 0x0004, 0x0904, 0x33bc, 0x0804, 0x338a, 0x7aa8, 0x9284,\r
++      0xc000, 0x0148, 0xd2ec, 0x01a0, 0x080c, 0x53a1, 0x1188, 0x2009,\r
++      0x0014, 0x0804, 0x33bc, 0xd2dc, 0x1568, 0x81ff, 0x2009, 0x0001,\r
++      0x1904, 0x33bc, 0x080c, 0x53a1, 0x2009, 0x0007, 0x1904, 0x33bc,\r
++      0xd2f4, 0x0130, 0x9284, 0x5000, 0x080c, 0x5368, 0x0804, 0x338a,\r
++      0xd2fc, 0x0158, 0x080c, 0x48ab, 0x0904, 0x33bf, 0x7984, 0x9284,\r
++      0x9000, 0x080c, 0x5345, 0x0804, 0x338a, 0x080c, 0x48ab, 0x0904,\r
++      0x33bf, 0xb804, 0x9084, 0x00ff, 0x9086, 0x0006, 0x2009, 0x0009,\r
++      0x1904, 0x511e, 0x080c, 0x4878, 0x2009, 0x0002, 0x0904, 0x511e,\r
++      0xa85c, 0x9080, 0x001b, 0xaf60, 0x2009, 0x0008, 0x7a8c, 0x7b88,\r
++      0x7c9c, 0x7d98, 0x080c, 0x48c1, 0x701f, 0x508f, 0x0005, 0xa86c,\r
++      0x9086, 0x0500, 0x1138, 0xa870, 0x9005, 0x1120, 0xa874, 0x9084,\r
++      0xff00, 0x0110, 0x1904, 0x33bf, 0xa866, 0xa832, 0xa868, 0xc0fd,\r
++      0xa86a, 0x080c, 0x48ab, 0x1110, 0x0804, 0x33bf, 0x2009, 0x0043,\r
++      0x080c, 0xbd44, 0x2009, 0x0003, 0x0904, 0x511e, 0x7007, 0x0003,\r
++      0x701f, 0x50b3, 0x0005, 0xa830, 0x9086, 0x0100, 0x2009, 0x0004,\r
++      0x0904, 0x511e, 0x7984, 0x7aa8, 0x9284, 0x1000, 0x080c, 0x5345,\r
++      0x0804, 0x338a, 0x00c6, 0xaab0, 0x9284, 0xc000, 0x0140, 0xd2ec,\r
++      0x0168, 0x080c, 0x53a1, 0x1150, 0x2009, 0x0014, 0x04f0, 0x2061,\r
++      0x1800, 0x080c, 0x53a1, 0x2009, 0x0007, 0x15b8, 0xd2f4, 0x0128,\r
++      0x9284, 0x5000, 0x080c, 0x5368, 0x0050, 0xd2fc, 0x0178, 0x080c,\r
++      0x48a9, 0x0588, 0xa998, 0x9284, 0x9000, 0x080c, 0x5345, 0xa87b,\r
++      0x0000, 0xa883, 0x0000, 0xa897, 0x4000, 0x0438, 0x080c, 0x48a9,\r
++      0x0510, 0x080c, 0x6667, 0x2009, 0x0009, 0x11b8, 0xa8c4, 0x9086,\r
++      0x0500, 0x11c8, 0xa8c8, 0x9005, 0x11b0, 0xa8cc, 0x9084, 0xff00,\r
++      0x1190, 0x080c, 0x48a9, 0x1108, 0x0070, 0x2009, 0x004b, 0x080c,\r
++      0xbd44, 0x2009, 0x0003, 0x0108, 0x0078, 0x0429, 0x19c0, 0xa897,\r
++      0x4005, 0xa99a, 0x0010, 0xa897, 0x4006, 0x900e, 0x9085, 0x0001,\r
++      0x2001, 0x0030, 0x00ce, 0x0005, 0x9006, 0x0ce0, 0x7aa8, 0xd2dc,\r
++      0x0904, 0x33bc, 0x0016, 0x7984, 0x9284, 0x1000, 0xc0fd, 0x080c,\r
++      0x5345, 0x001e, 0x1904, 0x33bc, 0x0804, 0x338a, 0x00f6, 0x2d78,\r
++      0x0011, 0x00fe, 0x0005, 0xaab0, 0xd2dc, 0x0150, 0x0016, 0xa998,\r
++      0x9284, 0x1000, 0xc0fd, 0x080c, 0x5345, 0x001e, 0x9085, 0x0001,\r
++      0x0005, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x33bc, 0x080c,\r
++      0x53a1, 0x0120, 0x2009, 0x0007, 0x0804, 0x33bc, 0x7984, 0x7ea8,\r
++      0x96b4, 0x00ff, 0x080c, 0x6270, 0x1904, 0x33bf, 0x9186, 0x007f,\r
++      0x0138, 0x080c, 0x6667, 0x0120, 0x2009, 0x0009, 0x0804, 0x33bc,\r
++      0x080c, 0x4878, 0x1120, 0x2009, 0x0002, 0x0804, 0x33bc, 0xa867,\r
++      0x0000, 0xa868, 0xc0fd, 0xa86a, 0x2001, 0x0100, 0x8007, 0xa80a,\r
++      0x080c, 0xba30, 0x1120, 0x2009, 0x0003, 0x0804, 0x33bc, 0x7007,\r
++      0x0003, 0x701f, 0x517c, 0x0005, 0xa808, 0x8007, 0x9086, 0x0100,\r
++      0x1120, 0x2009, 0x0004, 0x0804, 0x33bc, 0xa8e0, 0xa866, 0xa810,\r
++      0x8007, 0x9084, 0x00ff, 0x800c, 0xa814, 0x8007, 0x9084, 0x00ff,\r
++      0x8004, 0x9080, 0x0002, 0x9108, 0x8906, 0x8006, 0x8007, 0x90bc,\r
++      0x003f, 0x9084, 0xffc0, 0x9080, 0x0004, 0x7a8c, 0x7b88, 0x7c9c,\r
++      0x7d98, 0x0804, 0x48c4, 0x080c, 0x4878, 0x1120, 0x2009, 0x0002,\r
++      0x0804, 0x33bc, 0x7984, 0x9194, 0xff00, 0x918c, 0x00ff, 0x8217,\r
++      0x82ff, 0x1118, 0x7023, 0x1984, 0x0040, 0x92c6, 0x0001, 0x1118,\r
++      0x7023, 0x199e, 0x0010, 0x0804, 0x33bf, 0x2009, 0x001a, 0x7a8c,\r
++      0x7b88, 0x7c9c, 0x7d98, 0xa85c, 0x9080, 0x0019, 0xaf60, 0x080c,\r
++      0x48c1, 0x701f, 0x51cc, 0x0005, 0x2001, 0x182d, 0x2003, 0x0001,\r
++      0xa85c, 0x9080, 0x0019, 0x2098, 0xa860, 0x20e0, 0x20a9, 0x001a,\r
++      0x7020, 0x20a0, 0x20e9, 0x0001, 0x4003, 0x0804, 0x338a, 0x080c,\r
++      0x4878, 0x1120, 0x2009, 0x0002, 0x0804, 0x33bc, 0x7984, 0x9194,\r
++      0xff00, 0x918c, 0x00ff, 0x8217, 0x82ff, 0x1118, 0x2099, 0x1984,\r
++      0x0040, 0x92c6, 0x0001, 0x1118, 0x2099, 0x199e, 0x0010, 0x0804,\r
++      0x33bf, 0xa85c, 0x9080, 0x0019, 0x20a0, 0xa860, 0x20e8, 0x20a9,\r
++      0x001a, 0x20e1, 0x0001, 0x4003, 0x2009, 0x001a, 0x7a8c, 0x7b88,\r
++      0x7c9c, 0x7d98, 0xa85c, 0x9080, 0x0019, 0xaf60, 0x0804, 0x48c4,\r
++      0x7884, 0x908a, 0x1000, 0x1a04, 0x33bf, 0x0126, 0x2091, 0x8000,\r
++      0x8003, 0x800b, 0x810b, 0x9108, 0x00c6, 0x2061, 0x19d4, 0x6142,\r
++      0x00ce, 0x012e, 0x0804, 0x338a, 0x00c6, 0x080c, 0x70b7, 0x1160,\r
++      0x080c, 0x73b7, 0x080c, 0x5cdc, 0x9085, 0x0001, 0x080c, 0x70fe,\r
++      0x080c, 0x6fe8, 0x080c, 0x0d65, 0x2061, 0x1800, 0x6030, 0xc09d,\r
++      0x6032, 0x080c, 0x5b97, 0x00ce, 0x0005, 0x00c6, 0x2001, 0x1800,\r
++      0x2004, 0x908e, 0x0000, 0x0904, 0x33bc, 0x7884, 0x9005, 0x0188,\r
++      0x7888, 0x2061, 0x196d, 0x2c0c, 0x2062, 0x080c, 0x2801, 0x01a0,\r
++      0x080c, 0x2809, 0x0188, 0x080c, 0x2811, 0x0170, 0x2162, 0x0804,\r
++      0x33bf, 0x2061, 0x0100, 0x6038, 0x9086, 0x0007, 0x1118, 0x2009,\r
++      0x0001, 0x0010, 0x2009, 0x0000, 0x7884, 0x9086, 0x0002, 0x1588,\r
++      0x2061, 0x0100, 0x6028, 0xc09c, 0x602a, 0x080c, 0x98c8, 0x0026,\r
++      0x2011, 0x0003, 0x080c, 0x9339, 0x2011, 0x0002, 0x080c, 0x9343,\r
++      0x002e, 0x080c, 0x9206, 0x0036, 0x901e, 0x080c, 0x9286, 0x003e,\r
++      0x080c, 0x98e4, 0x60e3, 0x0000, 0x080c, 0xd5fb, 0x080c, 0xd616,\r
++      0x9085, 0x0001, 0x080c, 0x70fe, 0x9006, 0x080c, 0x2833, 0x2001,\r
++      0x1800, 0x2003, 0x0004, 0x0026, 0x2011, 0x0008, 0x080c, 0x286d,\r
++      0x002e, 0x00ce, 0x0804, 0x338a, 0x81ff, 0x0120, 0x2009, 0x0001,\r
++      0x0804, 0x33bc, 0x080c, 0x53a1, 0x0120, 0x2009, 0x0007, 0x0804,\r
++      0x33bc, 0x7984, 0x7ea8, 0x96b4, 0x00ff, 0x080c, 0x6270, 0x1904,\r
++      0x33bf, 0x9186, 0x007f, 0x0138, 0x080c, 0x6667, 0x0120, 0x2009,\r
++      0x0009, 0x0804, 0x33bc, 0x080c, 0x4878, 0x1120, 0x2009, 0x0002,\r
++      0x0804, 0x33bc, 0xa867, 0x0000, 0xa868, 0xc0fd, 0xa86a, 0x080c,\r
++      0xba33, 0x1120, 0x2009, 0x0003, 0x0804, 0x33bc, 0x7007, 0x0003,\r
++      0x701f, 0x52d3, 0x0005, 0xa830, 0x9086, 0x0100, 0x1120, 0x2009,\r
++      0x0004, 0x0804, 0x33bc, 0xa8e0, 0xa866, 0xa834, 0x8007, 0x800c,\r
++      0xa85c, 0x9080, 0x000c, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0xaf60,\r
++      0x0804, 0x48c4, 0xa898, 0x9086, 0x000d, 0x1904, 0x33bc, 0x2021,\r
++      0x4005, 0x0126, 0x2091, 0x8000, 0x0e04, 0x52f7, 0x0010, 0x012e,\r
++      0x0cc0, 0x7c36, 0x9486, 0x4000, 0x0118, 0x7833, 0x0011, 0x0010,\r
++      0x7833, 0x0010, 0x7883, 0x4005, 0xa998, 0x7986, 0xa9a4, 0x799a,\r
++      0xa9a8, 0x799e, 0x080c, 0x48b4, 0x2091, 0x4080, 0x2001, 0x0089,\r
++      0x2004, 0xd084, 0x190c, 0x11be, 0x7007, 0x0001, 0x2091, 0x5000,\r
++      0x700f, 0x0000, 0x012e, 0x0005, 0x0126, 0x2091, 0x8000, 0x00c6,\r
++      0x2061, 0x19d4, 0x7984, 0x6152, 0x614e, 0x6057, 0x0000, 0x604b,\r
++      0x0009, 0x7898, 0x606a, 0x789c, 0x6066, 0x7888, 0x6062, 0x788c,\r
++      0x605e, 0x2001, 0x19e2, 0x2044, 0x2001, 0x19e9, 0xa076, 0xa060,\r
++      0xa072, 0xa07b, 0x0001, 0xa07f, 0x0002, 0xa06b, 0x0000, 0xa09f,\r
++      0x0000, 0x00ce, 0x012e, 0x0804, 0x338a, 0x0126, 0x2091, 0x8000,\r
++      0x00b6, 0x00c6, 0x90e4, 0xc000, 0x0128, 0x0006, 0x080c, 0xb894,\r
++      0x000e, 0x1198, 0xd0e4, 0x0160, 0x9180, 0x1000, 0x2004, 0x905d,\r
++      0x0160, 0x080c, 0x5cf6, 0x080c, 0x9b66, 0x0110, 0xb817, 0x0000,\r
++      0x9006, 0x00ce, 0x00be, 0x012e, 0x0005, 0x9085, 0x0001, 0x0cc8,\r
++      0x0126, 0x2091, 0x8000, 0x0156, 0x2010, 0x900e, 0x20a9, 0x0800,\r
++      0x0016, 0x9180, 0x1000, 0x2004, 0x9005, 0x0180, 0x9186, 0x007e,\r
++      0x0168, 0x9186, 0x007f, 0x0150, 0x9186, 0x0080, 0x0138, 0x9186,\r
++      0x00ff, 0x0120, 0x0026, 0x2200, 0x0801, 0x002e, 0x001e, 0x8108,\r
++      0x1f04, 0x5370, 0x015e, 0x012e, 0x0005, 0x2001, 0x1854, 0x2004,\r
++      0x0005, 0x2001, 0x1873, 0x2004, 0x0005, 0x0006, 0x2001, 0x1810,\r
++      0x2004, 0xd0d4, 0x000e, 0x0005, 0x2001, 0x180e, 0x2004, 0xd0b4,\r
++      0x0005, 0x2001, 0x1800, 0x2004, 0x9086, 0x0003, 0x0005, 0x0016,\r
++      0x00e6, 0x2071, 0x1894, 0x7108, 0x910d, 0x710a, 0x00ee, 0x001e,\r
++      0x0005, 0x79a4, 0x9182, 0x0081, 0x1a04, 0x33bf, 0x810c, 0x0016,\r
++      0x080c, 0x4878, 0x080c, 0x0f2a, 0x2100, 0x2238, 0x7d84, 0x7c88,\r
++      0x7b8c, 0x7a90, 0x001e, 0x080c, 0x48c1, 0x701f, 0x53c8, 0x0005,\r
++      0x2079, 0x0000, 0x7d94, 0x7c98, 0x7ba8, 0x7aac, 0x79a4, 0x810c,\r
++      0x2061, 0x18ae, 0x2c44, 0xa770, 0xa074, 0x2071, 0x1894, 0x080c,\r
++      0x48c4, 0x701f, 0x53dc, 0x0005, 0x2061, 0x18ae, 0x2c44, 0x0016,\r
++      0x0026, 0xa270, 0xa174, 0x080c, 0x0f32, 0x002e, 0x001e, 0x080c,\r
++      0x0fdf, 0x9006, 0xa802, 0xa806, 0x0804, 0x338a, 0x0126, 0x0156,\r
++      0x0136, 0x0146, 0x01c6, 0x01d6, 0x00c6, 0x00d6, 0x00e6, 0x00f6,\r
++      0x2061, 0x0100, 0x2069, 0x0200, 0x2071, 0x1800, 0x6044, 0xd0a4,\r
++      0x11e8, 0xd084, 0x0118, 0x080c, 0x5597, 0x0068, 0xd08c, 0x0118,\r
++      0x080c, 0x54a0, 0x0040, 0xd094, 0x0118, 0x080c, 0x5470, 0x0018,\r
++      0xd09c, 0x0108, 0x0099, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x01de,\r
++      0x01ce, 0x014e, 0x013e, 0x015e, 0x012e, 0x0005, 0x0016, 0x6128,\r
++      0xd19c, 0x1110, 0xc19d, 0x612a, 0x001e, 0x0c68, 0x0006, 0x7094,\r
++      0x9005, 0x000e, 0x0120, 0x7097, 0x0000, 0x708f, 0x0000, 0x624c,\r
++      0x9286, 0xf0f0, 0x1150, 0x6048, 0x9086, 0xf0f0, 0x0130, 0x624a,\r
++      0x6043, 0x0090, 0x6043, 0x0010, 0x0490, 0x9294, 0xff00, 0x9296,\r
++      0xf700, 0x0178, 0x7138, 0xd1a4, 0x1160, 0x6240, 0x9295, 0x0100,\r
++      0x6242, 0x9294, 0x0010, 0x0128, 0x2009, 0x00f7, 0x080c, 0x5c58,\r
++      0x00f0, 0x6040, 0x9084, 0x0010, 0x9085, 0x0140, 0x6042, 0x6043,\r
++      0x0000, 0x7083, 0x0000, 0x709f, 0x0001, 0x70c3, 0x0000, 0x70db,\r
++      0x0000, 0x2009, 0x1d80, 0x200b, 0x0000, 0x7093, 0x0000, 0x7087,\r
++      0x000f, 0x2009, 0x000f, 0x2011, 0x5b3a, 0x080c, 0x821d, 0x0005,\r
++      0x2001, 0x1875, 0x2004, 0xd08c, 0x0110, 0x705b, 0xffff, 0x7084,\r
++      0x9005, 0x1528, 0x2011, 0x5b3a, 0x080c, 0x8159, 0x6040, 0x9094,\r
++      0x0010, 0x9285, 0x0020, 0x6042, 0x20a9, 0x00c8, 0x6044, 0xd08c,\r
++      0x1168, 0x1f04, 0x5486, 0x6242, 0x7097, 0x0000, 0x6040, 0x9094,\r
++      0x0010, 0x9285, 0x0080, 0x6042, 0x6242, 0x0048, 0x6242, 0x7097,\r
++      0x0000, 0x708b, 0x0000, 0x9006, 0x080c, 0x5ce1, 0x0000, 0x0005,\r
++      0x7088, 0x908a, 0x0003, 0x1a0c, 0x0d65, 0x000b, 0x0005, 0x54aa,\r
++      0x54fb, 0x5596, 0x00f6, 0x0016, 0x6900, 0x918c, 0x0800, 0x708b,\r
++      0x0001, 0x2001, 0x015d, 0x2003, 0x0000, 0x6803, 0x00fc, 0x20a9,\r
++      0x0004, 0x6800, 0x9084, 0x00fc, 0x0120, 0x1f04, 0x54b9, 0x080c,\r
++      0x0d65, 0x68a0, 0x68a2, 0x689c, 0x689e, 0x6898, 0x689a, 0xa001,\r
++      0x918d, 0x1600, 0x6902, 0x001e, 0x6837, 0x0020, 0x080c, 0x5cbd,\r
++      0x2079, 0x1d00, 0x7833, 0x1101, 0x7837, 0x0000, 0x20e1, 0x0001,\r
++      0x2099, 0x1805, 0x20e9, 0x0001, 0x20a1, 0x1d0e, 0x20a9, 0x0004,\r
++      0x4003, 0x080c, 0x97fa, 0x20e1, 0x0001, 0x2099, 0x1d00, 0x20e9,\r
++      0x0000, 0x20a1, 0x0240, 0x20a9, 0x0014, 0x4003, 0x60c3, 0x000c,\r
++      0x600f, 0x0000, 0x080c, 0x5b6b, 0x00fe, 0x9006, 0x708e, 0x6043,\r
++      0x0008, 0x6042, 0x0005, 0x00f6, 0x708c, 0x708f, 0x0000, 0x9025,\r
++      0x0904, 0x5573, 0x6020, 0xd0b4, 0x1904, 0x5571, 0x719c, 0x81ff,\r
++      0x0904, 0x555f, 0x9486, 0x000c, 0x1904, 0x556c, 0x9480, 0x0018,\r
++      0x8004, 0x20a8, 0x080c, 0x5cb6, 0x2011, 0x0260, 0x2019, 0x1d00,\r
++      0x220c, 0x2304, 0x9106, 0x11e8, 0x8210, 0x8318, 0x1f04, 0x5518,\r
++      0x6043, 0x0004, 0x2061, 0x0140, 0x605b, 0xbc94, 0x605f, 0xf0f0,\r
++      0x2061, 0x0100, 0x6043, 0x0006, 0x708b, 0x0002, 0x7097, 0x0002,\r
++      0x2009, 0x07d0, 0x2011, 0x5b41, 0x080c, 0x821d, 0x080c, 0x5cbd,\r
++      0x04c0, 0x080c, 0x5cb6, 0x2079, 0x0260, 0x7930, 0x918e, 0x1101,\r
++      0x1558, 0x7834, 0x9005, 0x1540, 0x7900, 0x918c, 0x00ff, 0x1118,\r
++      0x7804, 0x9005, 0x0190, 0x080c, 0x5cb6, 0x2011, 0x026e, 0x2019,\r
++      0x1805, 0x20a9, 0x0004, 0x220c, 0x2304, 0x9102, 0x0230, 0x11a0,\r
++      0x8210, 0x8318, 0x1f04, 0x5553, 0x0078, 0x709f, 0x0000, 0x080c,\r
++      0x5cb6, 0x20e1, 0x0000, 0x2099, 0x0260, 0x20e9, 0x0001, 0x20a1,\r
++      0x1d00, 0x20a9, 0x0014, 0x4003, 0x6043, 0x0008, 0x6043, 0x0000,\r
++      0x0010, 0x00fe, 0x0005, 0x6040, 0x9085, 0x0100, 0x6042, 0x6020,\r
++      0xd0b4, 0x1db8, 0x080c, 0x97fa, 0x20e1, 0x0001, 0x2099, 0x1d00,\r
++      0x20e9, 0x0000, 0x20a1, 0x0240, 0x20a9, 0x0014, 0x4003, 0x60c3,\r
++      0x000c, 0x2011, 0x19c5, 0x2013, 0x0000, 0x708f, 0x0000, 0x60a3,\r
++      0x0056, 0x60a7, 0x9575, 0x080c, 0x8faa, 0x08d8, 0x0005, 0x7094,\r
++      0x908a, 0x001d, 0x1a0c, 0x0d65, 0x000b, 0x0005, 0x55c8, 0x55db,\r
++      0x5604, 0x5624, 0x564a, 0x5679, 0x569f, 0x56d7, 0x56fd, 0x572b,\r
++      0x5766, 0x579e, 0x57bc, 0x57e7, 0x5809, 0x5824, 0x582e, 0x5862,\r
++      0x5888, 0x58b7, 0x58dd, 0x5915, 0x5959, 0x5996, 0x59b7, 0x5a10,\r
++      0x5a32, 0x5a60, 0x5a60, 0x00c6, 0x2061, 0x1800, 0x6003, 0x0007,\r
++      0x2061, 0x0100, 0x6004, 0x9084, 0xfff9, 0x6006, 0x00ce, 0x0005,\r
++      0x2061, 0x0140, 0x605b, 0xbc94, 0x605f, 0xf0f0, 0x2061, 0x0100,\r
++      0x6043, 0x0002, 0x7097, 0x0001, 0x2009, 0x07d0, 0x2011, 0x5b41,\r
++      0x080c, 0x821d, 0x0005, 0x00f6, 0x708c, 0x9086, 0x0014, 0x1510,\r
++      0x6042, 0x6020, 0xd0b4, 0x11f0, 0x080c, 0x5cb6, 0x2079, 0x0260,\r
++      0x7a30, 0x9296, 0x1102, 0x11a0, 0x7834, 0x9005, 0x1188, 0x7a38,\r
++      0xd2fc, 0x0128, 0x70c0, 0x9005, 0x1110, 0x70c3, 0x0001, 0x2011,\r
++      0x5b41, 0x080c, 0x8159, 0x7097, 0x0010, 0x080c, 0x582e, 0x0010,\r
++      0x708f, 0x0000, 0x00fe, 0x0005, 0x00f6, 0x7097, 0x0003, 0x6043,\r
++      0x0004, 0x2011, 0x5b41, 0x080c, 0x8159, 0x080c, 0x5c3a, 0x2079,\r
++      0x0240, 0x7833, 0x1102, 0x7837, 0x0000, 0x20a9, 0x0008, 0x9f88,\r
++      0x000e, 0x200b, 0x0000, 0x8108, 0x1f04, 0x5619, 0x60c3, 0x0014,\r
++      0x080c, 0x5b6b, 0x00fe, 0x0005, 0x00f6, 0x708c, 0x9005, 0x0500,\r
++      0x2011, 0x5b41, 0x080c, 0x8159, 0x9086, 0x0014, 0x11b8, 0x080c,\r
++      0x5cb6, 0x2079, 0x0260, 0x7a30, 0x9296, 0x1102, 0x1178, 0x7834,\r
++      0x9005, 0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70c0, 0x9005, 0x1110,\r
++      0x70c3, 0x0001, 0x7097, 0x0004, 0x0029, 0x0010, 0x080c, 0x5c92,\r
++      0x00fe, 0x0005, 0x00f6, 0x7097, 0x0005, 0x080c, 0x5c3a, 0x2079,\r
++      0x0240, 0x7833, 0x1103, 0x7837, 0x0000, 0x080c, 0x5cb6, 0x080c,\r
++      0x5c99, 0x1170, 0x7080, 0x9005, 0x1158, 0x7158, 0x9186, 0xffff,\r
++      0x0138, 0x2011, 0x0008, 0x080c, 0x5aee, 0x0168, 0x080c, 0x5c6f,\r
++      0x20a9, 0x0008, 0x20e1, 0x0000, 0x2099, 0x026e, 0x20e9, 0x0000,\r
++      0x20a1, 0x024e, 0x4003, 0x60c3, 0x0014, 0x080c, 0x5b6b, 0x00fe,\r
++      0x0005, 0x00f6, 0x708c, 0x9005, 0x0500, 0x2011, 0x5b41, 0x080c,\r
++      0x8159, 0x9086, 0x0014, 0x11b8, 0x080c, 0x5cb6, 0x2079, 0x0260,\r
++      0x7a30, 0x9296, 0x1103, 0x1178, 0x7834, 0x9005, 0x1160, 0x7a38,\r
++      0xd2fc, 0x0128, 0x70c0, 0x9005, 0x1110, 0x70c3, 0x0001, 0x7097,\r
++      0x0006, 0x0029, 0x0010, 0x080c, 0x5c92, 0x00fe, 0x0005, 0x00f6,\r
++      0x7097, 0x0007, 0x080c, 0x5c3a, 0x2079, 0x0240, 0x7833, 0x1104,\r
++      0x7837, 0x0000, 0x080c, 0x5cb6, 0x080c, 0x5c99, 0x11b8, 0x7080,\r
++      0x9005, 0x11a0, 0x7160, 0x9186, 0xffff, 0x0180, 0x9180, 0x318b,\r
++      0x200d, 0x918c, 0xff00, 0x810f, 0x2011, 0x0008, 0x080c, 0x5aee,\r
++      0x0180, 0x080c, 0x4c97, 0x0110, 0x080c, 0x248d, 0x20a9, 0x0008,\r
++      0x20e1, 0x0000, 0x2099, 0x026e, 0x20e9, 0x0000, 0x20a1, 0x024e,\r
++      0x4003, 0x60c3, 0x0014, 0x080c, 0x5b6b, 0x00fe, 0x0005, 0x00f6,\r
++      0x708c, 0x9005, 0x0500, 0x2011, 0x5b41, 0x080c, 0x8159, 0x9086,\r
++      0x0014, 0x11b8, 0x080c, 0x5cb6, 0x2079, 0x0260, 0x7a30, 0x9296,\r
++      0x1104, 0x1178, 0x7834, 0x9005, 0x1160, 0x7a38, 0xd2fc, 0x0128,\r
++      0x70c0, 0x9005, 0x1110, 0x70c3, 0x0001, 0x7097, 0x0008, 0x0029,\r
++      0x0010, 0x080c, 0x5c92, 0x00fe, 0x0005, 0x00f6, 0x7097, 0x0009,\r
++      0x080c, 0x5c3a, 0x2079, 0x0240, 0x7833, 0x1105, 0x7837, 0x0100,\r
++      0x080c, 0x5c99, 0x1150, 0x7080, 0x9005, 0x1138, 0x080c, 0x5a61,\r
++      0x1188, 0x9085, 0x0001, 0x080c, 0x248d, 0x20a9, 0x0008, 0x080c,\r
++      0x5cb6, 0x20e1, 0x0000, 0x2099, 0x026e, 0x20e9, 0x0000, 0x20a1,\r
++      0x024e, 0x4003, 0x60c3, 0x0014, 0x080c, 0x5b6b, 0x0010, 0x080c,\r
++      0x55bb, 0x00fe, 0x0005, 0x00f6, 0x708c, 0x9005, 0x05a8, 0x2011,\r
++      0x5b41, 0x080c, 0x8159, 0x9086, 0x0014, 0x1560, 0x080c, 0x5cb6,\r
++      0x2079, 0x0260, 0x7a30, 0x9296, 0x1105, 0x1520, 0x7834, 0x9084,\r
++      0x0100, 0x2011, 0x0100, 0x921e, 0x1160, 0x7a38, 0xd2fc, 0x0128,\r
++      0x70c0, 0x9005, 0x1110, 0x70c3, 0x0001, 0x7097, 0x000a, 0x00b1,\r
++      0x0098, 0x9005, 0x1178, 0x7a38, 0xd2fc, 0x0128, 0x70c0, 0x9005,\r
++      0x1110, 0x70c3, 0x0001, 0x7093, 0x0000, 0x7097, 0x000e, 0x080c,\r
++      0x5809, 0x0010, 0x080c, 0x5c92, 0x00fe, 0x0005, 0x00f6, 0x7097,\r
++      0x000b, 0x2011, 0x1d0e, 0x20e9, 0x0001, 0x22a0, 0x20a9, 0x0040,\r
++      0x2019, 0xffff, 0x4304, 0x080c, 0x5c3a, 0x2079, 0x0240, 0x7833,\r
++      0x1106, 0x7837, 0x0000, 0x080c, 0x5c99, 0x0118, 0x2013, 0x0000,\r
++      0x0020, 0x705c, 0x9085, 0x0100, 0x2012, 0x20a9, 0x0040, 0x2009,\r
++      0x024e, 0x2011, 0x1d0e, 0x220e, 0x8210, 0x8108, 0x9186, 0x0260,\r
++      0x1128, 0x6810, 0x8000, 0x6812, 0x2009, 0x0240, 0x1f04, 0x578b,\r
++      0x60c3, 0x0084, 0x080c, 0x5b6b, 0x00fe, 0x0005, 0x00f6, 0x708c,\r
++      0x9005, 0x01c0, 0x2011, 0x5b41, 0x080c, 0x8159, 0x9086, 0x0084,\r
++      0x1178, 0x080c, 0x5cb6, 0x2079, 0x0260, 0x7a30, 0x9296, 0x1106,\r
++      0x1138, 0x7834, 0x9005, 0x1120, 0x7097, 0x000c, 0x0029, 0x0010,\r
++      0x080c, 0x5c92, 0x00fe, 0x0005, 0x00f6, 0x7097, 0x000d, 0x080c,\r
++      0x5c3a, 0x2079, 0x0240, 0x7833, 0x1107, 0x7837, 0x0000, 0x080c,\r
++      0x5cb6, 0x20a9, 0x0040, 0x2011, 0x026e, 0x2009, 0x024e, 0x220e,\r
++      0x8210, 0x8108, 0x9186, 0x0260, 0x1150, 0x6810, 0x8000, 0x6812,\r
++      0x2009, 0x0240, 0x6814, 0x8000, 0x6816, 0x2011, 0x0260, 0x1f04,\r
++      0x57cf, 0x60c3, 0x0084, 0x080c, 0x5b6b, 0x00fe, 0x0005, 0x00f6,\r
++      0x708c, 0x9005, 0x01e0, 0x2011, 0x5b41, 0x080c, 0x8159, 0x9086,\r
++      0x0084, 0x1198, 0x080c, 0x5cb6, 0x2079, 0x0260, 0x7a30, 0x9296,\r
++      0x1107, 0x1158, 0x7834, 0x9005, 0x1140, 0x7093, 0x0001, 0x080c,\r
++      0x5c0c, 0x7097, 0x000e, 0x0029, 0x0010, 0x080c, 0x5c92, 0x00fe,\r
++      0x0005, 0x918d, 0x0001, 0x080c, 0x5ce1, 0x7097, 0x000f, 0x708f,\r
++      0x0000, 0x2061, 0x0140, 0x605b, 0xbc85, 0x605f, 0xb5b5, 0x2061,\r
++      0x0100, 0x6043, 0x0005, 0x6043, 0x0004, 0x2009, 0x07d0, 0x2011,\r
++      0x5b41, 0x080c, 0x814d, 0x0005, 0x708c, 0x9005, 0x0130, 0x2011,\r
++      0x5b41, 0x080c, 0x8159, 0x7097, 0x0000, 0x0005, 0x7097, 0x0011,\r
++      0x080c, 0x97fa, 0x080c, 0x5cb6, 0x20e1, 0x0000, 0x2099, 0x0260,\r
++      0x20e9, 0x0000, 0x20a1, 0x0240, 0x748c, 0x9480, 0x0018, 0x9080,\r
++      0x0007, 0x9084, 0x03f8, 0x8004, 0x20a8, 0x4003, 0x080c, 0x5c99,\r
++      0x11a0, 0x7178, 0x81ff, 0x0188, 0x900e, 0x707c, 0x9084, 0x00ff,\r
++      0x0160, 0x080c, 0x2424, 0x9186, 0x007e, 0x0138, 0x9186, 0x0080,\r
++      0x0120, 0x2011, 0x0008, 0x080c, 0x5aee, 0x60c3, 0x0014, 0x080c,\r
++      0x5b6b, 0x0005, 0x00f6, 0x708c, 0x9005, 0x0500, 0x2011, 0x5b41,\r
++      0x080c, 0x8159, 0x9086, 0x0014, 0x11b8, 0x080c, 0x5cb6, 0x2079,\r
++      0x0260, 0x7a30, 0x9296, 0x1103, 0x1178, 0x7834, 0x9005, 0x1160,\r
++      0x7a38, 0xd2fc, 0x0128, 0x70c0, 0x9005, 0x1110, 0x70c3, 0x0001,\r
++      0x7097, 0x0012, 0x0029, 0x0010, 0x708f, 0x0000, 0x00fe, 0x0005,\r
++      0x00f6, 0x7097, 0x0013, 0x080c, 0x5c48, 0x2079, 0x0240, 0x7833,\r
++      0x1103, 0x7837, 0x0000, 0x080c, 0x5cb6, 0x080c, 0x5c99, 0x1170,\r
++      0x7080, 0x9005, 0x1158, 0x7158, 0x9186, 0xffff, 0x0138, 0x2011,\r
++      0x0008, 0x080c, 0x5aee, 0x0168, 0x080c, 0x5c6f, 0x20a9, 0x0008,\r
++      0x20e1, 0x0000, 0x2099, 0x026e, 0x20e9, 0x0000, 0x20a1, 0x024e,\r
++      0x4003, 0x60c3, 0x0014, 0x080c, 0x5b6b, 0x00fe, 0x0005, 0x00f6,\r
++      0x708c, 0x9005, 0x0500, 0x2011, 0x5b41, 0x080c, 0x8159, 0x9086,\r
++      0x0014, 0x11b8, 0x080c, 0x5cb6, 0x2079, 0x0260, 0x7a30, 0x9296,\r
++      0x1104, 0x1178, 0x7834, 0x9005, 0x1160, 0x7a38, 0xd2fc, 0x0128,\r
++      0x70c0, 0x9005, 0x1110, 0x70c3, 0x0001, 0x7097, 0x0014, 0x0029,\r
++      0x0010, 0x708f, 0x0000, 0x00fe, 0x0005, 0x00f6, 0x7097, 0x0015,\r
++      0x080c, 0x5c48, 0x2079, 0x0240, 0x7833, 0x1104, 0x7837, 0x0000,\r
++      0x080c, 0x5cb6, 0x080c, 0x5c99, 0x11b8, 0x7080, 0x9005, 0x11a0,\r
++      0x7160, 0x9186, 0xffff, 0x0180, 0x9180, 0x318b, 0x200d, 0x918c,\r
++      0xff00, 0x810f, 0x2011, 0x0008, 0x080c, 0x5aee, 0x0180, 0x080c,\r
++      0x4c97, 0x0110, 0x080c, 0x248d, 0x20a9, 0x0008, 0x20e1, 0x0000,\r
++      0x2099, 0x026e, 0x20e9, 0x0000, 0x20a1, 0x024e, 0x4003, 0x60c3,\r
++      0x0014, 0x080c, 0x5b6b, 0x00fe, 0x0005, 0x00f6, 0x708c, 0x9005,\r
++      0x05f0, 0x2011, 0x5b41, 0x080c, 0x8159, 0x9086, 0x0014, 0x15a8,\r
++      0x080c, 0x5cb6, 0x2079, 0x0260, 0x7a30, 0x9296, 0x1105, 0x1568,\r
++      0x7834, 0x9084, 0x0100, 0x2011, 0x0100, 0x921e, 0x1168, 0x9085,\r
++      0x0001, 0x080c, 0x5ce1, 0x7a38, 0xd2fc, 0x0128, 0x70c0, 0x9005,\r
++      0x1110, 0x70c3, 0x0001, 0x0080, 0x9005, 0x11b8, 0x7a38, 0xd2fc,\r
++      0x0128, 0x70c0, 0x9005, 0x1110, 0x70c3, 0x0001, 0x9085, 0x0001,\r
++      0x080c, 0x5ce1, 0x7093, 0x0000, 0x7a38, 0xd2f4, 0x0110, 0x70db,\r
++      0x0008, 0x7097, 0x0016, 0x0029, 0x0010, 0x708f, 0x0000, 0x00fe,\r
++      0x0005, 0x080c, 0x97fa, 0x080c, 0x5cb6, 0x20e1, 0x0000, 0x2099,\r
++      0x0260, 0x20e9, 0x0000, 0x20a1, 0x0240, 0x20a9, 0x000e, 0x4003,\r
++      0x2011, 0x026d, 0x2204, 0x9084, 0x0100, 0x2011, 0x024d, 0x2012,\r
++      0x2011, 0x026e, 0x7097, 0x0017, 0x080c, 0x5c99, 0x1150, 0x7080,\r
++      0x9005, 0x1138, 0x080c, 0x5a61, 0x1188, 0x9085, 0x0001, 0x080c,\r
++      0x248d, 0x20a9, 0x0008, 0x080c, 0x5cb6, 0x20e1, 0x0000, 0x2099,\r
++      0x026e, 0x20e9, 0x0000, 0x20a1, 0x024e, 0x4003, 0x60c3, 0x0014,\r
++      0x080c, 0x5b6b, 0x0010, 0x080c, 0x55bb, 0x0005, 0x00f6, 0x708c,\r
++      0x9005, 0x01d8, 0x2011, 0x5b41, 0x080c, 0x8159, 0x9086, 0x0084,\r
++      0x1190, 0x080c, 0x5cb6, 0x2079, 0x0260, 0x7a30, 0x9296, 0x1106,\r
++      0x1150, 0x7834, 0x9005, 0x1138, 0x9006, 0x080c, 0x5ce1, 0x7097,\r
++      0x0018, 0x0029, 0x0010, 0x708f, 0x0000, 0x00fe, 0x0005, 0x00f6,\r
++      0x7097, 0x0019, 0x080c, 0x5c48, 0x2079, 0x0240, 0x7833, 0x1106,\r
++      0x7837, 0x0000, 0x080c, 0x5cb6, 0x2009, 0x026e, 0x2039, 0x1d0e,\r
++      0x20a9, 0x0040, 0x213e, 0x8738, 0x8108, 0x9186, 0x0280, 0x1128,\r
++      0x6814, 0x8000, 0x6816, 0x2009, 0x0260, 0x1f04, 0x59ca, 0x2039,\r
++      0x1d0e, 0x080c, 0x5c99, 0x11e8, 0x2728, 0x2514, 0x8207, 0x9084,\r
++      0x00ff, 0x8000, 0x2018, 0x9294, 0x00ff, 0x8007, 0x9205, 0x202a,\r
++      0x705c, 0x2310, 0x8214, 0x92a0, 0x1d0e, 0x2414, 0x938c, 0x0001,\r
++      0x0118, 0x9294, 0xff00, 0x0018, 0x9294, 0x00ff, 0x8007, 0x9215,\r
++      0x2222, 0x20a9, 0x0040, 0x2009, 0x024e, 0x270e, 0x8738, 0x8108,\r
++      0x9186, 0x0260, 0x1128, 0x6810, 0x8000, 0x6812, 0x2009, 0x0240,\r
++      0x1f04, 0x59fd, 0x60c3, 0x0084, 0x080c, 0x5b6b, 0x00fe, 0x0005,\r
++      0x00f6, 0x708c, 0x9005, 0x01e0, 0x2011, 0x5b41, 0x080c, 0x8159,\r
++      0x9086, 0x0084, 0x1198, 0x080c, 0x5cb6, 0x2079, 0x0260, 0x7a30,\r
++      0x9296, 0x1107, 0x1158, 0x7834, 0x9005, 0x1140, 0x7093, 0x0001,\r
++      0x080c, 0x5c0c, 0x7097, 0x001a, 0x0029, 0x0010, 0x708f, 0x0000,\r
++      0x00fe, 0x0005, 0x9085, 0x0001, 0x080c, 0x5ce1, 0x7097, 0x001b,\r
++      0x080c, 0x97fa, 0x080c, 0x5cb6, 0x2011, 0x0260, 0x2009, 0x0240,\r
++      0x748c, 0x9480, 0x0018, 0x9080, 0x0007, 0x9084, 0x03f8, 0x8004,\r
++      0x20a8, 0x220e, 0x8210, 0x8108, 0x9186, 0x0260, 0x1150, 0x6810,\r
++      0x8000, 0x6812, 0x2009, 0x0240, 0x6814, 0x8000, 0x6816, 0x2011,\r
++      0x0260, 0x1f04, 0x5a49, 0x60c3, 0x0084, 0x080c, 0x5b6b, 0x0005,\r
++      0x0005, 0x0086, 0x0096, 0x2029, 0x1854, 0x252c, 0x20a9, 0x0008,\r
++      0x2041, 0x1d0e, 0x20e9, 0x0001, 0x28a0, 0x080c, 0x5cb6, 0x20e1,\r
++      0x0000, 0x2099, 0x026e, 0x4003, 0x20a9, 0x0008, 0x2011, 0x0007,\r
++      0xd5d4, 0x0108, 0x9016, 0x2800, 0x9200, 0x200c, 0x91a6, 0xffff,\r
++      0x1148, 0xd5d4, 0x0110, 0x8210, 0x0008, 0x8211, 0x1f04, 0x5a7b,\r
++      0x0804, 0x5aea, 0x82ff, 0x1160, 0xd5d4, 0x0120, 0x91a6, 0x3fff,\r
++      0x0d90, 0x0020, 0x91a6, 0x3fff, 0x0904, 0x5aea, 0x918d, 0xc000,\r
++      0x20a9, 0x0010, 0x2019, 0x0001, 0xd5d4, 0x0110, 0x2019, 0x0010,\r
++      0x2120, 0xd5d4, 0x0110, 0x8423, 0x0008, 0x8424, 0x1240, 0xd5d4,\r
++      0x0110, 0x8319, 0x0008, 0x8318, 0x1f04, 0x5aa1, 0x04d8, 0x23a8,\r
++      0x2021, 0x0001, 0x8426, 0x8425, 0x1f04, 0x5ab3, 0x2328, 0x8529,\r
++      0x92be, 0x0007, 0x0158, 0x0006, 0x2039, 0x0007, 0x2200, 0x973a,\r
++      0x000e, 0x27a8, 0x95a8, 0x0010, 0x1f04, 0x5ac2, 0x755a, 0x95c8,\r
++      0x318b, 0x292d, 0x95ac, 0x00ff, 0x757e, 0x6532, 0x6536, 0x0016,\r
++      0x2508, 0x080c, 0x246d, 0x001e, 0x60e7, 0x0000, 0x65ea, 0x2018,\r
++      0x2304, 0x9405, 0x201a, 0x7083, 0x0001, 0x20e9, 0x0000, 0x20a1,\r
++      0x024e, 0x20e1, 0x0001, 0x2898, 0x20a9, 0x0008, 0x4003, 0x9085,\r
++      0x0001, 0x0008, 0x9006, 0x009e, 0x008e, 0x0005, 0x0156, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x22a8, 0x20e1, 0x0000, 0x2099, 0x026e,\r
++      0x20e9, 0x0000, 0x2011, 0x024e, 0x22a0, 0x4003, 0x014e, 0x013e,\r
++      0x01de, 0x01ce, 0x015e, 0x2118, 0x9026, 0x2001, 0x0007, 0x939a,\r
++      0x0010, 0x0218, 0x8420, 0x8001, 0x0cd0, 0x2118, 0x84ff, 0x0120,\r
++      0x939a, 0x0010, 0x8421, 0x1de0, 0x2021, 0x0001, 0x83ff, 0x0118,\r
++      0x8423, 0x8319, 0x1de8, 0x9238, 0x2029, 0x026e, 0x9528, 0x2504,\r
++      0x942c, 0x11b8, 0x9405, 0x203a, 0x715a, 0x91a0, 0x318b, 0x242d,\r
++      0x95ac, 0x00ff, 0x757e, 0x6532, 0x6536, 0x0016, 0x2508, 0x080c,\r
++      0x246d, 0x001e, 0x60e7, 0x0000, 0x65ea, 0x7083, 0x0001, 0x9084,\r
++      0x0000, 0x0005, 0x00e6, 0x2071, 0x1800, 0x7087, 0x0000, 0x00ee,\r
++      0x0005, 0x00e6, 0x00f6, 0x2079, 0x0100, 0x2071, 0x0140, 0x080c,\r
++      0x5bfb, 0x080c, 0x8fb7, 0x7004, 0x9084, 0x4000, 0x0110, 0x080c,\r
++      0x2843, 0x0126, 0x2091, 0x8000, 0x2071, 0x1825, 0x2073, 0x0000,\r
++      0x7840, 0x0026, 0x0016, 0x2009, 0x00f7, 0x080c, 0x5c58, 0x001e,\r
++      0x9094, 0x0010, 0x9285, 0x0080, 0x7842, 0x7a42, 0x002e, 0x012e,\r
++      0x00fe, 0x00ee, 0x0005, 0x0126, 0x2091, 0x8000, 0x080c, 0x27a2,\r
++      0x0228, 0x2011, 0x0101, 0x2204, 0xc0c5, 0x2012, 0x2011, 0x19c5,\r
++      0x2013, 0x0000, 0x708f, 0x0000, 0x012e, 0x60a3, 0x0056, 0x60a7,\r
++      0x9575, 0x080c, 0x8faa, 0x6144, 0xd184, 0x0120, 0x7194, 0x918d,\r
++      0x2000, 0x0018, 0x7188, 0x918d, 0x1000, 0x2011, 0x196a, 0x2112,\r
++      0x2009, 0x07d0, 0x2011, 0x5b41, 0x080c, 0x821d, 0x0005, 0x0016,\r
++      0x0026, 0x00c6, 0x0126, 0x2091, 0x8000, 0x080c, 0x98c8, 0x080c,\r
++      0x9b6d, 0x080c, 0x98e4, 0x2009, 0x00f7, 0x080c, 0x5c58, 0x2061,\r
++      0x19d4, 0x900e, 0x611a, 0x611e, 0x6172, 0x6176, 0x2061, 0x1800,\r
++      0x6003, 0x0001, 0x2061, 0x0100, 0x6043, 0x0090, 0x6043, 0x0010,\r
++      0x2009, 0x196a, 0x200b, 0x0000, 0x2009, 0x002d, 0x2011, 0x5bc7,\r
++      0x080c, 0x814d, 0x012e, 0x00ce, 0x002e, 0x001e, 0x0005, 0x00e6,\r
++      0x0006, 0x0126, 0x2091, 0x8000, 0x0471, 0x2071, 0x0100, 0x080c,\r
++      0x8fb7, 0x2071, 0x0140, 0x7004, 0x9084, 0x4000, 0x0110, 0x080c,\r
++      0x2843, 0x080c, 0x70bf, 0x0188, 0x080c, 0x70da, 0x1170, 0x080c,\r
++      0x73c1, 0x0016, 0x080c, 0x253c, 0x2001, 0x193e, 0x2102, 0x001e,\r
++      0x080c, 0x73bc, 0x080c, 0x6fe8, 0x0050, 0x2009, 0x0001, 0x080c,\r
++      0x281f, 0x2001, 0x0001, 0x080c, 0x23c9, 0x080c, 0x5b97, 0x012e,\r
++      0x000e, 0x00ee, 0x0005, 0x2001, 0x180e, 0x2004, 0xd0bc, 0x0158,\r
++      0x0026, 0x0036, 0x2011, 0x8017, 0x2001, 0x196a, 0x201c, 0x080c,\r
++      0x48d8, 0x003e, 0x002e, 0x0005, 0x20a9, 0x0012, 0x20e9, 0x0001,\r
++      0x20a1, 0x1d80, 0x080c, 0x5cb6, 0x20e9, 0x0000, 0x2099, 0x026e,\r
++      0x0099, 0x20a9, 0x0020, 0x080c, 0x5cb0, 0x2099, 0x0260, 0x20a1,\r
++      0x1d92, 0x0051, 0x20a9, 0x000e, 0x080c, 0x5cb3, 0x2099, 0x0260,\r
++      0x20a1, 0x1db2, 0x0009, 0x0005, 0x0016, 0x0026, 0x3410, 0x3308,\r
++      0x2104, 0x8007, 0x2012, 0x8108, 0x8210, 0x1f04, 0x5c30, 0x002e,\r
++      0x001e, 0x0005, 0x080c, 0x97fa, 0x20e1, 0x0001, 0x2099, 0x1d00,\r
++      0x20e9, 0x0000, 0x20a1, 0x0240, 0x20a9, 0x000c, 0x4003, 0x0005,\r
++      0x080c, 0x97fa, 0x080c, 0x5cb6, 0x20e1, 0x0000, 0x2099, 0x0260,\r
++      0x20e9, 0x0000, 0x20a1, 0x0240, 0x20a9, 0x000c, 0x4003, 0x0005,\r
++      0x00c6, 0x0006, 0x2061, 0x0100, 0x810f, 0x2001, 0x1833, 0x2004,\r
++      0x9005, 0x1138, 0x2001, 0x1817, 0x2004, 0x9084, 0x00ff, 0x9105,\r
++      0x0010, 0x9185, 0x00f7, 0x604a, 0x000e, 0x00ce, 0x0005, 0x0016,\r
++      0x0046, 0x080c, 0x6663, 0x0158, 0x9006, 0x2020, 0x2009, 0x002a,\r
++      0x080c, 0xd273, 0x2001, 0x180c, 0x200c, 0xc195, 0x2102, 0x2019,\r
++      0x002a, 0x900e, 0x080c, 0x2fc5, 0x080c, 0xbf61, 0x0140, 0x0036,\r
++      0x2019, 0xffff, 0x2021, 0x0007, 0x080c, 0x4a75, 0x003e, 0x004e,\r
++      0x001e, 0x0005, 0x080c, 0x5b97, 0x7097, 0x0000, 0x708f, 0x0000,\r
++      0x0005, 0x0006, 0x2001, 0x180c, 0x2004, 0xd09c, 0x0100, 0x000e,\r
++      0x0005, 0x0006, 0x0016, 0x0126, 0x2091, 0x8000, 0x2001, 0x0101,\r
++      0x200c, 0x918d, 0x0006, 0x2102, 0x012e, 0x001e, 0x000e, 0x0005,\r
++      0x2009, 0x0001, 0x0020, 0x2009, 0x0002, 0x0008, 0x900e, 0x6814,\r
++      0x9084, 0xffc0, 0x910d, 0x6916, 0x0005, 0x00f6, 0x0156, 0x0146,\r
++      0x01d6, 0x9006, 0x20a9, 0x0080, 0x20e9, 0x0001, 0x20a1, 0x1d00,\r
++      0x4004, 0x2079, 0x1d00, 0x7803, 0x2200, 0x7807, 0x00ef, 0x780f,\r
++      0x00ef, 0x7813, 0x0138, 0x7823, 0xffff, 0x7827, 0xffff, 0x01de,\r
++      0x014e, 0x015e, 0x00fe, 0x0005, 0x2001, 0x1800, 0x2003, 0x0001,\r
++      0x0005, 0x2001, 0x1977, 0x0118, 0x2003, 0x0001, 0x0010, 0x2003,\r
++      0x0000, 0x0005, 0x0156, 0x20a9, 0x0800, 0x2009, 0x1000, 0x9006,\r
++      0x200a, 0x8108, 0x1f04, 0x5cf0, 0x015e, 0x0005, 0x00d6, 0x0036,\r
++      0x0156, 0x0136, 0x0146, 0x2069, 0x1853, 0x9006, 0xb802, 0xb8c6,\r
++      0xb807, 0x0707, 0xb80a, 0xb80e, 0xb812, 0x9198, 0x318b, 0x231d,\r
++      0x939c, 0x00ff, 0xbb16, 0x0016, 0x0026, 0xb886, 0x080c, 0x9b66,\r
++      0x1120, 0x9192, 0x007e, 0x1208, 0xbb86, 0x20a9, 0x0004, 0xb8b4,\r
++      0x20e8, 0xb9b8, 0x9198, 0x0006, 0x9006, 0x23a0, 0x4004, 0x20a9,\r
++      0x0004, 0x9198, 0x000a, 0x23a0, 0x4004, 0x002e, 0x001e, 0xb83e,\r
++      0xb842, 0xb8be, 0xb8c2, 0xb85e, 0xb862, 0xb866, 0xb86a, 0xb86f,\r
++      0x0100, 0xb872, 0xb876, 0xb87a, 0xb88a, 0xb88e, 0xb893, 0x0008,\r
++      0xb896, 0xb89a, 0xb89e, 0xb8ae, 0xb9a2, 0x0096, 0xb8a4, 0x904d,\r
++      0x0110, 0x080c, 0x1054, 0xb8a7, 0x0000, 0x009e, 0x9006, 0xb84a,\r
++      0x6810, 0xb83a, 0x680c, 0xb846, 0x6814, 0x9084, 0x00ff, 0xb842,\r
++      0x014e, 0x013e, 0x015e, 0x003e, 0x00de, 0x0005, 0x0126, 0x2091,\r
++      0x8000, 0xa974, 0xae78, 0x9684, 0x3fff, 0x9082, 0x4000, 0x1a04,\r
++      0x5db4, 0x9182, 0x0800, 0x1a04, 0x5db8, 0x2001, 0x180c, 0x2004,\r
++      0x9084, 0x0003, 0x1904, 0x5dbe, 0x9188, 0x1000, 0x2104, 0x905d,\r
++      0x0198, 0xb804, 0x9084, 0x00ff, 0x908e, 0x0006, 0x1188, 0xb8a4,\r
++      0x900d, 0x1904, 0x5dd0, 0x080c, 0x612a, 0x9006, 0x012e, 0x0005,\r
++      0x2001, 0x0005, 0x900e, 0x04b8, 0x2001, 0x0028, 0x900e, 0x0498,\r
++      0x9082, 0x0006, 0x1290, 0x080c, 0x9b66, 0x1160, 0xb8a0, 0x9084,\r
++      0xff80, 0x1140, 0xb900, 0xd1fc, 0x0d10, 0x2001, 0x0029, 0x2009,\r
++      0x1000, 0x0408, 0x2001, 0x0028, 0x00a8, 0x2009, 0x180c, 0x210c,\r
++      0xd18c, 0x0118, 0x2001, 0x0004, 0x0068, 0xd184, 0x0118, 0x2001,\r
++      0x0004, 0x0040, 0x2001, 0x0029, 0xb900, 0xd1fc, 0x0118, 0x2009,\r
++      0x1000, 0x0048, 0x900e, 0x0038, 0x2001, 0x0029, 0x900e, 0x0018,\r
++      0x2001, 0x0029, 0x900e, 0x9005, 0x012e, 0x0005, 0x2001, 0x180c,\r
++      0x2004, 0xd084, 0x19d0, 0x9188, 0x1000, 0x2104, 0x9065, 0x09a8,\r
++      0x080c, 0x6667, 0x1990, 0xb800, 0xd0bc, 0x0978, 0x0804, 0x5d77,\r
++      0x080c, 0x64db, 0x0904, 0x5d80, 0x0804, 0x5d7b, 0x00e6, 0x2071,\r
++      0x19b8, 0x7004, 0x9086, 0x0002, 0x1128, 0x7030, 0x9080, 0x0004,\r
++      0x2004, 0x9b06, 0x00ee, 0x0005, 0x00b6, 0x00e6, 0x0126, 0x2091,\r
++      0x8000, 0xa974, 0x9182, 0x0800, 0x1a04, 0x5e5f, 0x9188, 0x1000,\r
++      0x2104, 0x905d, 0x0904, 0x5e37, 0xb8a0, 0x9086, 0x007f, 0x0178,\r
++      0x080c, 0x666f, 0x0160, 0xa994, 0x81ff, 0x0130, 0x908e, 0x0004,\r
++      0x0130, 0x908e, 0x0005, 0x0118, 0x080c, 0x6667, 0x1598, 0xa87c,\r
++      0xd0fc, 0x01e0, 0xa894, 0x9005, 0x01c8, 0x2060, 0x0026, 0x2010,\r
++      0x080c, 0xb835, 0x002e, 0x1120, 0x2001, 0x0008, 0x0804, 0x5e61,\r
++      0x6020, 0x9086, 0x000a, 0x0120, 0x2001, 0x0008, 0x0804, 0x5e61,\r
++      0x601a, 0x6003, 0x0008, 0x2900, 0x6016, 0x0058, 0x080c, 0x9b91,\r
++      0x05e8, 0x2b00, 0x6012, 0x2900, 0x6016, 0x600b, 0xffff, 0x6023,\r
++      0x000a, 0x2009, 0x0003, 0x080c, 0x9c85, 0x9006, 0x0458, 0x2001,\r
++      0x0028, 0x0438, 0x9082, 0x0006, 0x1290, 0x080c, 0x9b66, 0x1160,\r
++      0xb8a0, 0x9084, 0xff80, 0x1140, 0xb900, 0xd1fc, 0x0900, 0x2001,\r
++      0x0029, 0x2009, 0x1000, 0x00a8, 0x2001, 0x0028, 0x0090, 0x2009,\r
++      0x180c, 0x210c, 0xd18c, 0x0118, 0x2001, 0x0004, 0x0050, 0xd184,\r
++      0x0118, 0x2001, 0x0004, 0x0028, 0x2001, 0x0029, 0x0010, 0x2001,\r
++      0x0029, 0x9005, 0x012e, 0x00ee, 0x00be, 0x0005, 0x2001, 0x002c,\r
++      0x0cc0, 0x00f6, 0x00b6, 0x0126, 0x2091, 0x8000, 0xa8e0, 0x9005,\r
++      0x1550, 0xa8dc, 0x9082, 0x0101, 0x1630, 0xa8c8, 0x9005, 0x1518,\r
++      0xa8c4, 0x9082, 0x0101, 0x12f8, 0xa974, 0x2079, 0x1800, 0x9182,\r
++      0x0800, 0x12e8, 0x7830, 0x9084, 0x0003, 0x1130, 0xaa98, 0xab94,\r
++      0xa878, 0x9084, 0x0007, 0x00ea, 0x7930, 0xd18c, 0x0118, 0x2001,\r
++      0x0004, 0x0038, 0xd184, 0x0118, 0x2001, 0x0004, 0x0010, 0x2001,\r
++      0x0029, 0x900e, 0x0038, 0x2001, 0x002c, 0x900e, 0x0018, 0x2001,\r
++      0x0029, 0x900e, 0x9006, 0x0008, 0x9005, 0x012e, 0x00be, 0x00fe,\r
++      0x0005, 0x5ef6, 0x5eb1, 0x5ec8, 0x5ef6, 0x5ef6, 0x5ef6, 0x5ef6,\r
++      0x5ef6, 0x2100, 0x9082, 0x007e, 0x1278, 0x080c, 0x6210, 0x0148,\r
++      0x9046, 0xb810, 0x9306, 0x1904, 0x5efe, 0xb814, 0x9206, 0x15f0,\r
++      0x0028, 0xbb12, 0xba16, 0x0010, 0x080c, 0x4792, 0x0150, 0x04b0,\r
++      0x080c, 0x6270, 0x1598, 0xb810, 0x9306, 0x1580, 0xb814, 0x9206,\r
++      0x1568, 0x080c, 0x9b91, 0x0530, 0x2b00, 0x6012, 0x080c, 0xbcdb,\r
++      0x2900, 0x6016, 0x600b, 0xffff, 0x6023, 0x000a, 0xa878, 0x9086,\r
++      0x0001, 0x1170, 0x080c, 0x3006, 0x9006, 0x080c, 0x61ad, 0x2001,\r
++      0x0002, 0x080c, 0x61c1, 0x2001, 0x0200, 0xb86e, 0xb893, 0x0002,\r
++      0x2009, 0x0003, 0x080c, 0x9c85, 0x9006, 0x0068, 0x2001, 0x0001,\r
++      0x900e, 0x0038, 0x2001, 0x002c, 0x900e, 0x0018, 0x2001, 0x0028,\r
++      0x900e, 0x9005, 0x0000, 0x012e, 0x00be, 0x00fe, 0x0005, 0x00b6,\r
++      0x00f6, 0x00e6, 0x0126, 0x2091, 0x8000, 0xa894, 0x90c6, 0x0015,\r
++      0x0904, 0x60d3, 0x90c6, 0x0056, 0x0904, 0x60d7, 0x90c6, 0x0066,\r
++      0x0904, 0x60db, 0x90c6, 0x0067, 0x0904, 0x60df, 0x90c6, 0x0068,\r
++      0x0904, 0x60e3, 0x90c6, 0x0071, 0x0904, 0x60e7, 0x90c6, 0x0074,\r
++      0x0904, 0x60eb, 0x90c6, 0x007c, 0x0904, 0x60ef, 0x90c6, 0x007e,\r
++      0x0904, 0x60f3, 0x90c6, 0x0037, 0x0904, 0x60f7, 0x9016, 0x2079,\r
++      0x1800, 0xa974, 0x9186, 0x00ff, 0x0904, 0x60ce, 0x9182, 0x0800,\r
++      0x1a04, 0x60ce, 0x080c, 0x6270, 0x1198, 0xb804, 0x9084, 0x00ff,\r
++      0x9082, 0x0006, 0x1268, 0xa894, 0x90c6, 0x006f, 0x0148, 0x080c,\r
++      0x9b66, 0x1904, 0x60b7, 0xb8a0, 0x9084, 0xff80, 0x1904, 0x60b7,\r
++      0xa894, 0x90c6, 0x006f, 0x0158, 0x90c6, 0x005e, 0x0904, 0x6017,\r
++      0x90c6, 0x0064, 0x0904, 0x6040, 0x2008, 0x0804, 0x5fda, 0xa998,\r
++      0xa8b0, 0x2040, 0x080c, 0x9b66, 0x1120, 0x9182, 0x007f, 0x0a04,\r
++      0x5fda, 0x9186, 0x00ff, 0x0904, 0x5fda, 0x9182, 0x0800, 0x1a04,\r
++      0x5fda, 0xaaa0, 0xab9c, 0x7878, 0x9306, 0x1188, 0x787c, 0x0096,\r
++      0x924e, 0x1128, 0x2208, 0x2310, 0x009e, 0x0804, 0x5fda, 0x99cc,\r
++      0xff00, 0x009e, 0x1120, 0x2208, 0x2310, 0x0804, 0x5fda, 0x080c,\r
++      0x4792, 0x0904, 0x5fe3, 0x900e, 0x9016, 0x90c6, 0x4000, 0x1558,\r
++      0x0006, 0x080c, 0x655f, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108,\r
++      0xc18d, 0x20a9, 0x0004, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0031,\r
++      0x20a0, 0xb8b4, 0x20e0, 0xb8b8, 0x9080, 0x0006, 0x2098, 0x080c,\r
++      0x0f9f, 0x20a9, 0x0004, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0035,\r
++      0x20a0, 0xb8b4, 0x20e0, 0xb8b8, 0x9080, 0x000a, 0x2098, 0x080c,\r
++      0x0f9f, 0x000e, 0x00c8, 0x90c6, 0x4007, 0x1110, 0x2408, 0x00a0,\r
++      0x90c6, 0x4008, 0x1118, 0x2708, 0x2610, 0x0070, 0x90c6, 0x4009,\r
++      0x1108, 0x0050, 0x90c6, 0x4006, 0x0138, 0x2001, 0x4005, 0x2009,\r
++      0x000a, 0x0010, 0x2001, 0x4006, 0xa896, 0xa99a, 0xaa9e, 0x2001,\r
++      0x0030, 0x900e, 0x0470, 0x080c, 0x9b91, 0x1130, 0x2001, 0x4005,\r
++      0x2009, 0x0003, 0x9016, 0x0c80, 0x2b00, 0x6012, 0x080c, 0xbcdb,\r
++      0x2900, 0x6016, 0x6023, 0x0001, 0xa868, 0xd88c, 0x0108, 0xc0f5,\r
++      0xa86a, 0x0126, 0x2091, 0x8000, 0x080c, 0x3006, 0x012e, 0x9006,\r
++      0x080c, 0x61ad, 0x2001, 0x0002, 0x080c, 0x61c1, 0x2009, 0x0002,\r
++      0x080c, 0x9c85, 0xa8b0, 0xd094, 0x0118, 0xb8c4, 0xc08d, 0xb8c6,\r
++      0x9006, 0x9005, 0x012e, 0x00ee, 0x00fe, 0x00be, 0x0005, 0x080c,\r
++      0x53a1, 0x0118, 0x2009, 0x0007, 0x00f8, 0xa998, 0xaeb0, 0x080c,\r
++      0x6270, 0x1904, 0x5fd5, 0x9186, 0x007f, 0x0130, 0x080c, 0x6667,\r
++      0x0118, 0x2009, 0x0009, 0x0080, 0x0096, 0x080c, 0x1022, 0x1120,\r
++      0x009e, 0x2009, 0x0002, 0x0040, 0x2900, 0x009e, 0xa806, 0x080c,\r
++      0xba33, 0x19b0, 0x2009, 0x0003, 0x2001, 0x4005, 0x0804, 0x5fdc,\r
++      0xa998, 0xaeb0, 0x080c, 0x6270, 0x1904, 0x5fd5, 0x0096, 0x080c,\r
++      0x1022, 0x1128, 0x009e, 0x2009, 0x0002, 0x0804, 0x6094, 0x2900,\r
++      0x009e, 0xa806, 0x0096, 0x2048, 0x20a9, 0x002b, 0xb8b4, 0x20e0,\r
++      0xb8b8, 0x2098, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0002, 0x20a0,\r
++      0x4003, 0x20a9, 0x0008, 0x9080, 0x0006, 0x20a0, 0xbbb8, 0x9398,\r
++      0x0006, 0x2398, 0x080c, 0x0f9f, 0x009e, 0xa87b, 0x0000, 0xa883,\r
++      0x0000, 0xa897, 0x4000, 0xd684, 0x1168, 0x080c, 0x538d, 0xd0b4,\r
++      0x1118, 0xa89b, 0x000b, 0x00e0, 0xb800, 0xd08c, 0x0118, 0xa89b,\r
++      0x000c, 0x00b0, 0x080c, 0x6667, 0x0118, 0xa89b, 0x0009, 0x0080,\r
++      0x080c, 0x53a1, 0x0118, 0xa89b, 0x0007, 0x0050, 0x080c, 0xba16,\r
++      0x1904, 0x6010, 0x2009, 0x0003, 0x2001, 0x4005, 0x0804, 0x5fdc,\r
++      0xa87b, 0x0030, 0xa897, 0x4005, 0xa804, 0x8006, 0x8006, 0x8007,\r
++      0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x0002, 0x2009, 0x002b,\r
++      0xaaa0, 0xab9c, 0xaca8, 0xada4, 0x2031, 0x0000, 0x2041, 0x1266,\r
++      0x080c, 0xa0f5, 0x1904, 0x6010, 0x2009, 0x0002, 0x08e8, 0x2001,\r
++      0x0028, 0x900e, 0x0804, 0x6011, 0x2009, 0x180c, 0x210c, 0xd18c,\r
++      0x0118, 0x2001, 0x0004, 0x0038, 0xd184, 0x0118, 0x2001, 0x0004,\r
++      0x0010, 0x2001, 0x0029, 0x900e, 0x0804, 0x6011, 0x2001, 0x0029,\r
++      0x900e, 0x0804, 0x6011, 0x080c, 0x35ae, 0x0804, 0x6012, 0x080c,\r
++      0x50c2, 0x0804, 0x6012, 0x080c, 0x4354, 0x0804, 0x6012, 0x080c,\r
++      0x43cd, 0x0804, 0x6012, 0x080c, 0x4429, 0x0804, 0x6012, 0x080c,\r
++      0x484e, 0x0804, 0x6012, 0x080c, 0x4afa, 0x0804, 0x6012, 0x080c,\r
++      0x4d2d, 0x0804, 0x6012, 0x080c, 0x4f26, 0x0804, 0x6012, 0x080c,\r
++      0x37c3, 0x0804, 0x6012, 0x00b6, 0xa974, 0xae78, 0x9684, 0x3fff,\r
++      0x9082, 0x4000, 0x1608, 0x9182, 0x0800, 0x1258, 0x9188, 0x1000,\r
++      0x2104, 0x905d, 0x0130, 0x080c, 0x6667, 0x1138, 0x00d9, 0x9006,\r
++      0x00b0, 0x2001, 0x0028, 0x900e, 0x0090, 0x9082, 0x0006, 0x1240,\r
++      0xb900, 0xd1fc, 0x0d98, 0x2001, 0x0029, 0x2009, 0x1000, 0x0038,\r
++      0x2001, 0x0029, 0x900e, 0x0018, 0x2001, 0x0029, 0x900e, 0x9005,\r
++      0x00be, 0x0005, 0xa877, 0x0000, 0xb8c0, 0x9005, 0x1904, 0x61a1,\r
++      0xb888, 0x9005, 0x1904, 0x61a1, 0xb838, 0xb93c, 0x9102, 0x1a04,\r
++      0x61a1, 0x2b10, 0x080c, 0x9bbe, 0x0904, 0x619d, 0x8108, 0xb93e,\r
++      0x6212, 0x2900, 0x6016, 0x6023, 0x0003, 0x600b, 0xffff, 0x6007,\r
++      0x0040, 0xa878, 0x605e, 0xa880, 0x9084, 0x00ff, 0x6066, 0xa883,\r
++      0x0000, 0xa87c, 0xd0ac, 0x05c0, 0xc0dd, 0xa87e, 0xa888, 0x8001,\r
++      0x1568, 0x2001, 0x00f8, 0x8001, 0xa001, 0xa001, 0xa001, 0x1dd8,\r
++      0xa816, 0xa864, 0x9094, 0x00f7, 0x9296, 0x0011, 0x11f8, 0x9084,\r
++      0x00ff, 0xc0bd, 0x601e, 0xa8ac, 0xaab0, 0xa836, 0xaa3a, 0x2001,\r
++      0x000f, 0x8001, 0x1df0, 0x2001, 0x8004, 0x6003, 0x0004, 0x6046,\r
++      0x00f6, 0x2079, 0x0380, 0x7818, 0xd0bc, 0x1de8, 0x7833, 0x0010,\r
++      0x2c00, 0x7836, 0x781b, 0x8080, 0x00fe, 0x0005, 0x080c, 0x164f,\r
++      0x601c, 0xc0bd, 0x601e, 0x0c38, 0x0006, 0x2001, 0x00e8, 0x8001,\r
++      0xa001, 0xa001, 0xa001, 0x1dd8, 0x000e, 0xd0b4, 0x190c, 0x1ad2,\r
++      0x2001, 0x8004, 0x6003, 0x0002, 0x08d0, 0x81ff, 0x1110, 0xb88b,\r
++      0x0001, 0x2908, 0xb8bc, 0xb9be, 0x9005, 0x1110, 0xb9c2, 0x0020,\r
++      0x0096, 0x2048, 0xa902, 0x009e, 0x0005, 0x00b6, 0x0126, 0x00c6,\r
++      0x0026, 0x2091, 0x8000, 0x6210, 0x2258, 0xba00, 0x9005, 0x0110,\r
++      0xc285, 0x0008, 0xc284, 0xba02, 0x002e, 0x00ce, 0x012e, 0x00be,\r
++      0x0005, 0x00b6, 0x0126, 0x00c6, 0x2091, 0x8000, 0x6210, 0x2258,\r
++      0xba04, 0x0006, 0x9086, 0x0006, 0x1170, 0xb89c, 0xd0ac, 0x0158,\r
++      0x080c, 0x6663, 0x0140, 0x9284, 0xff00, 0x8007, 0x9086, 0x0007,\r
++      0x1110, 0x2011, 0x0600, 0x000e, 0x9294, 0xff00, 0x9215, 0xba06,\r
++      0x0006, 0x9086, 0x0006, 0x1120, 0xba90, 0x82ff, 0x090c, 0x0d65,\r
++      0x000e, 0x00ce, 0x012e, 0x00be, 0x0005, 0x00b6, 0x0126, 0x00c6,\r
++      0x2091, 0x8000, 0x6210, 0x2258, 0xba04, 0x0006, 0x9086, 0x0006,\r
++      0x1168, 0xb89c, 0xd0a4, 0x0150, 0x080c, 0x665f, 0x1138, 0x9284,\r
++      0x00ff, 0x9086, 0x0007, 0x1110, 0x2011, 0x0006, 0x000e, 0x9294,\r
++      0x00ff, 0x8007, 0x9215, 0xba06, 0x00ce, 0x012e, 0x00be, 0x0005,\r
++      0x9182, 0x0800, 0x0218, 0x9085, 0x0001, 0x0005, 0x00d6, 0x0026,\r
++      0x9190, 0x1000, 0x2204, 0x905d, 0x1180, 0x0096, 0x080c, 0x1022,\r
++      0x2958, 0x009e, 0x0160, 0x2b00, 0x2012, 0xb85c, 0xb8ba, 0xb860,\r
++      0xb8b6, 0x9006, 0xb8a6, 0x080c, 0x5cf6, 0x9006, 0x0010, 0x9085,\r
++      0x0001, 0x002e, 0x00de, 0x0005, 0x00b6, 0x0096, 0x0126, 0x2091,\r
++      0x8000, 0x0026, 0x9182, 0x0800, 0x0218, 0x9085, 0x0001, 0x0458,\r
++      0x00d6, 0x9190, 0x1000, 0x2204, 0x905d, 0x0518, 0x2013, 0x0000,\r
++      0xb8a4, 0x904d, 0x0110, 0x080c, 0x1054, 0x00d6, 0x00c6, 0xb8ac,\r
++      0x2060, 0x8cff, 0x0168, 0x600c, 0x0006, 0x6014, 0x2048, 0x080c,\r
++      0xb847, 0x0110, 0x080c, 0x0fd4, 0x080c, 0x9be7, 0x00ce, 0x0c88,\r
++      0x00ce, 0x00de, 0x2b48, 0xb8b8, 0xb85e, 0xb8b4, 0xb862, 0x080c,\r
++      0x1064, 0x00de, 0x9006, 0x002e, 0x012e, 0x009e, 0x00be, 0x0005,\r
++      0x0016, 0x9182, 0x0800, 0x0218, 0x9085, 0x0001, 0x0030, 0x9188,\r
++      0x1000, 0x2104, 0x905d, 0x0dc0, 0x9006, 0x001e, 0x0005, 0x00d6,\r
++      0x0156, 0x0136, 0x0146, 0x9006, 0xb80a, 0xb80e, 0xb800, 0xc08c,\r
++      0xb802, 0x080c, 0x70b7, 0x1510, 0xb8a0, 0x9086, 0x007e, 0x0120,\r
++      0x080c, 0x9b66, 0x11d8, 0x0078, 0x7040, 0xd0e4, 0x01b8, 0x00c6,\r
++      0x2061, 0x1953, 0x7048, 0x2062, 0x704c, 0x6006, 0x7050, 0x600a,\r
++      0x7054, 0x600e, 0x00ce, 0x703c, 0x2069, 0x0140, 0x9005, 0x1110,\r
++      0x2001, 0x0001, 0x6886, 0x2069, 0x1800, 0x68b2, 0x7040, 0xb85e,\r
++      0x7048, 0xb862, 0x704c, 0xb866, 0x20e1, 0x0000, 0x2099, 0x0276,\r
++      0xb8b4, 0x20e8, 0xb8b8, 0x9088, 0x000a, 0x21a0, 0x20a9, 0x0004,\r
++      0x4003, 0x2099, 0x027a, 0x9088, 0x0006, 0x21a0, 0x20a9, 0x0004,\r
++      0x4003, 0x2069, 0x0200, 0x6817, 0x0001, 0x7040, 0xb86a, 0x7144,\r
++      0xb96e, 0x7048, 0xb872, 0x7050, 0xb876, 0x2069, 0x0200, 0x6817,\r
++      0x0000, 0xb8a0, 0x9086, 0x007e, 0x1110, 0x7144, 0xb96e, 0x9182,\r
++      0x0211, 0x1218, 0x2009, 0x0008, 0x0400, 0x9182, 0x0259, 0x1218,\r
++      0x2009, 0x0007, 0x00d0, 0x9182, 0x02c1, 0x1218, 0x2009, 0x0006,\r
++      0x00a0, 0x9182, 0x0349, 0x1218, 0x2009, 0x0005, 0x0070, 0x9182,\r
++      0x0421, 0x1218, 0x2009, 0x0004, 0x0040, 0x9182, 0x0581, 0x1218,\r
++      0x2009, 0x0003, 0x0010, 0x2009, 0x0002, 0xb992, 0x014e, 0x013e,\r
++      0x015e, 0x00de, 0x0005, 0x0016, 0x0026, 0x00e6, 0x2071, 0x0260,\r
++      0x7034, 0xb896, 0x703c, 0xb89a, 0x7054, 0xb89e, 0x0036, 0xbbc4,\r
++      0xc384, 0xba00, 0x2009, 0x1873, 0x210c, 0xd0bc, 0x0120, 0xd1ec,\r
++      0x0110, 0xc2ad, 0x0008, 0xc2ac, 0xd0c4, 0x0148, 0xd1e4, 0x0138,\r
++      0xc2bd, 0xd0cc, 0x0128, 0xd38c, 0x1108, 0xc385, 0x0008, 0xc2bc,\r
++      0xba02, 0xbbc6, 0x003e, 0x00ee, 0x002e, 0x001e, 0x0005, 0x0096,\r
++      0x0126, 0x2091, 0x8000, 0xb8a4, 0x904d, 0x0578, 0xa900, 0x81ff,\r
++      0x15c0, 0xaa04, 0x9282, 0x0010, 0x16c8, 0x0136, 0x0146, 0x01c6,\r
++      0x01d6, 0x8906, 0x8006, 0x8007, 0x908c, 0x003f, 0x21e0, 0x9084,\r
++      0xffc0, 0x9080, 0x0004, 0x2098, 0x2009, 0x0010, 0x20a9, 0x0001,\r
++      0x4002, 0x9086, 0xffff, 0x0120, 0x8109, 0x1dd0, 0x080c, 0x0d65,\r
++      0x3c00, 0x20e8, 0x3300, 0x8001, 0x20a0, 0x4604, 0x8210, 0xaa06,\r
++      0x01de, 0x01ce, 0x014e, 0x013e, 0x0060, 0x080c, 0x1022, 0x0170,\r
++      0x2900, 0xb8a6, 0xa803, 0x0000, 0x080c, 0x64fb, 0xa807, 0x0001,\r
++      0xae12, 0x9085, 0x0001, 0x012e, 0x009e, 0x0005, 0x9006, 0x0cd8,\r
++      0x0126, 0x2091, 0x8000, 0x0096, 0xb8a4, 0x904d, 0x0188, 0xa800,\r
++      0x9005, 0x1150, 0x080c, 0x650a, 0x1158, 0xa804, 0x908a, 0x0002,\r
++      0x0218, 0x8001, 0xa806, 0x0020, 0x080c, 0x1054, 0xb8a7, 0x0000,\r
++      0x009e, 0x012e, 0x0005, 0x0096, 0x00c6, 0xb888, 0x9005, 0x1904,\r
++      0x63f4, 0xb8c0, 0x904d, 0x0904, 0x63f4, 0x080c, 0x9bbe, 0x0904,\r
++      0x63f0, 0x8210, 0xba3e, 0xa800, 0xb8c2, 0x9005, 0x1108, 0xb8be,\r
++      0x2b00, 0x6012, 0x2900, 0x6016, 0x6023, 0x0003, 0x600b, 0xffff,\r
++      0x6007, 0x0040, 0xa878, 0x605e, 0xa880, 0x9084, 0x00ff, 0x6066,\r
++      0xa883, 0x0000, 0xa87c, 0xd0ac, 0x01c8, 0xc0dd, 0xa87e, 0xa888,\r
++      0x8001, 0x1568, 0xa816, 0xa864, 0x9094, 0x00f7, 0x9296, 0x0011,\r
++      0x1530, 0x9084, 0x00ff, 0xc0bd, 0x601e, 0xa8ac, 0xaab0, 0xa836,\r
++      0xaa3a, 0x2001, 0x8004, 0x6003, 0x0004, 0x0030, 0x080c, 0x1ad2,\r
++      0x2001, 0x8004, 0x6003, 0x0002, 0x6046, 0x2001, 0x0010, 0x2c08,\r
++      0x080c, 0x98b9, 0xb838, 0xba3c, 0x9202, 0x0a04, 0x63a1, 0x0020,\r
++      0x82ff, 0x1110, 0xb88b, 0x0001, 0x00ce, 0x009e, 0x0005, 0x080c,\r
++      0x164f, 0x601c, 0xc0bd, 0x601e, 0x08e0, 0x00b6, 0x0096, 0x0016,\r
++      0x20a9, 0x0800, 0x900e, 0x0016, 0x080c, 0x6270, 0x1158, 0xb8c0,\r
++      0x904d, 0x0140, 0x3e00, 0x9086, 0x0002, 0x1118, 0xb800, 0xd0bc,\r
++      0x1108, 0x0041, 0x001e, 0x8108, 0x1f04, 0x6403, 0x001e, 0x00be,\r
++      0x009e, 0x0005, 0x0096, 0x0016, 0xb8c0, 0x904d, 0x0188, 0xa800,\r
++      0xb8c2, 0x9005, 0x1108, 0xb8be, 0x9006, 0xa802, 0xa867, 0x0103,\r
++      0xab7a, 0xa877, 0x0000, 0x080c, 0xbb45, 0x080c, 0x6996, 0x0c60,\r
++      0x001e, 0x009e, 0x0005, 0x0086, 0x9046, 0xb8c0, 0x904d, 0x0198,\r
++      0xa86c, 0x9406, 0x1118, 0xa870, 0x9506, 0x0128, 0x2940, 0xa800,\r
++      0x904d, 0x0148, 0x0ca8, 0xa800, 0x88ff, 0x1110, 0xb8c2, 0x0008,\r
++      0xa002, 0xa803, 0x0000, 0x008e, 0x0005, 0x901e, 0x0010, 0x2019,\r
++      0x0001, 0x00e6, 0x0096, 0x00c6, 0x0086, 0x0026, 0x0126, 0x2091,\r
++      0x8000, 0x2071, 0x19b8, 0x9046, 0x7028, 0x9065, 0x01e8, 0x6014,\r
++      0x2068, 0x83ff, 0x0120, 0x605c, 0x9606, 0x0158, 0x0030, 0xa86c,\r
++      0x9406, 0x1118, 0xa870, 0x9506, 0x0120, 0x2c40, 0x600c, 0x2060,\r
++      0x0c60, 0x600c, 0x0006, 0x0066, 0x2830, 0x080c, 0x9110, 0x006e,\r
++      0x000e, 0x83ff, 0x0508, 0x0c08, 0x9046, 0xb8c0, 0x904d, 0x01e0,\r
++      0x83ff, 0x0120, 0xa878, 0x9606, 0x0158, 0x0030, 0xa86c, 0x9406,\r
++      0x1118, 0xa870, 0x9506, 0x0120, 0x2940, 0xa800, 0x2048, 0x0c70,\r
++      0xb8c0, 0xaa00, 0x0026, 0x9906, 0x1110, 0xbac2, 0x0008, 0xa202,\r
++      0x000e, 0x83ff, 0x0108, 0x0c10, 0x002e, 0x008e, 0x00ce, 0x009e,\r
++      0x00ee, 0x0005, 0x9016, 0x0489, 0x1110, 0x2011, 0x0001, 0x0005,\r
++      0x080c, 0x655f, 0x0128, 0x080c, 0xb908, 0x0010, 0x9085, 0x0001,\r
++      0x0005, 0x080c, 0x655f, 0x0128, 0x080c, 0xb8a9, 0x0010, 0x9085,\r
++      0x0001, 0x0005, 0x080c, 0x655f, 0x0128, 0x080c, 0xb905, 0x0010,\r
++      0x9085, 0x0001, 0x0005, 0x080c, 0x655f, 0x0128, 0x080c, 0xb8c8,\r
++      0x0010, 0x9085, 0x0001, 0x0005, 0x080c, 0x655f, 0x0128, 0x080c,\r
++      0xb949, 0x0010, 0x9085, 0x0001, 0x0005, 0xb8a4, 0x900d, 0x1118,\r
++      0x9085, 0x0001, 0x0005, 0x0136, 0x01c6, 0xa800, 0x9005, 0x11b8,\r
++      0x890e, 0x810e, 0x810f, 0x9184, 0x003f, 0x20e0, 0x9184, 0xffc0,\r
++      0x9080, 0x0004, 0x2098, 0x20a9, 0x0001, 0x2009, 0x0010, 0x4002,\r
++      0x9606, 0x0128, 0x8109, 0x1dd8, 0x9085, 0x0001, 0x0008, 0x9006,\r
++      0x01ce, 0x013e, 0x0005, 0x0146, 0x01d6, 0xa860, 0x20e8, 0xa85c,\r
++      0x9080, 0x0004, 0x20a0, 0x20a9, 0x0010, 0x2009, 0xffff, 0x4104,\r
++      0x01de, 0x014e, 0x0136, 0x01c6, 0xa800, 0x9005, 0x11b8, 0x890e,\r
++      0x810e, 0x810f, 0x9184, 0x003f, 0x20e0, 0x9184, 0xffc0, 0x9080,\r
++      0x0004, 0x2098, 0x20a9, 0x0001, 0x2009, 0x0010, 0x4002, 0x9606,\r
++      0x0128, 0x8109, 0x1dd8, 0x9085, 0x0001, 0x0068, 0x0146, 0x01d6,\r
++      0x3300, 0x8001, 0x20a0, 0x3c00, 0x20e8, 0x2001, 0xffff, 0x4004,\r
++      0x01de, 0x014e, 0x9006, 0x01ce, 0x013e, 0x0005, 0x0096, 0x0126,\r
++      0x2091, 0x8000, 0xb8a4, 0x904d, 0x1128, 0x080c, 0x1022, 0x0168,\r
++      0x2900, 0xb8a6, 0x080c, 0x64fb, 0xa803, 0x0001, 0xa807, 0x0000,\r
++      0x9085, 0x0001, 0x012e, 0x009e, 0x0005, 0x9006, 0x0cd8, 0x0096,\r
++      0x0126, 0x2091, 0x8000, 0xb8a4, 0x904d, 0x0130, 0xb8a7, 0x0000,\r
++      0x080c, 0x1054, 0x9085, 0x0001, 0x012e, 0x009e, 0x0005, 0xb89c,\r
++      0xd0a4, 0x0005, 0x00b6, 0x00f6, 0x080c, 0x70b7, 0x01b0, 0x71c0,\r
++      0x81ff, 0x1198, 0x71d8, 0xd19c, 0x0180, 0x2001, 0x007e, 0x9080,\r
++      0x1000, 0x2004, 0x905d, 0x0148, 0xb804, 0x9084, 0x00ff, 0x9086,\r
++      0x0006, 0x1118, 0xb800, 0xc0ed, 0xb802, 0x2079, 0x1853, 0x7804,\r
++      0x00d0, 0x0156, 0x20a9, 0x007f, 0x900e, 0x0016, 0x080c, 0x6270,\r
++      0x1168, 0xb804, 0x9084, 0xff00, 0x8007, 0x9096, 0x0004, 0x0118,\r
++      0x9086, 0x0006, 0x1118, 0xb800, 0xc0ed, 0xb802, 0x001e, 0x8108,\r
++      0x1f04, 0x6585, 0x015e, 0x080c, 0x6625, 0x0120, 0x2001, 0x1956,\r
++      0x200c, 0x0030, 0x2079, 0x1853, 0x7804, 0x0030, 0x2009, 0x07d0,\r
++      0x2011, 0x65af, 0x080c, 0x821d, 0x00fe, 0x00be, 0x0005, 0x00b6,\r
++      0x2011, 0x65af, 0x080c, 0x8159, 0x080c, 0x6625, 0x01d8, 0x2001,\r
++      0x107e, 0x2004, 0x2058, 0xb900, 0xc1ec, 0xb902, 0x080c, 0x6663,\r
++      0x0130, 0x2009, 0x07d0, 0x2011, 0x65af, 0x080c, 0x821d, 0x00e6,\r
++      0x2071, 0x1800, 0x9006, 0x707a, 0x705c, 0x707e, 0x080c, 0x2ddb,\r
++      0x00ee, 0x04d0, 0x0156, 0x00c6, 0x20a9, 0x007f, 0x900e, 0x0016,\r
++      0x080c, 0x6270, 0x1558, 0xb800, 0xd0ec, 0x0540, 0x0046, 0xbaa0,\r
++      0x2220, 0x9006, 0x2009, 0x0029, 0x080c, 0xd273, 0xb800, 0xc0e5,\r
++      0xc0ec, 0xb802, 0x080c, 0x665f, 0x2001, 0x0707, 0x1128, 0xb804,\r
++      0x9084, 0x00ff, 0x9085, 0x0700, 0xb806, 0x080c, 0x98c8, 0x2019,\r
++      0x0029, 0x080c, 0x863b, 0x0076, 0x903e, 0x080c, 0x852a, 0x900e,\r
++      0x080c, 0xcfc8, 0x007e, 0x004e, 0x080c, 0x98e4, 0x001e, 0x8108,\r
++      0x1f04, 0x65d7, 0x00ce, 0x015e, 0x00be, 0x0005, 0x00b6, 0x6010,\r
++      0x2058, 0xb800, 0xc0ec, 0xb802, 0x00be, 0x0005, 0x7810, 0x00b6,\r
++      0x2058, 0xb800, 0x00be, 0xd0ac, 0x0005, 0x6010, 0x00b6, 0x905d,\r
++      0x0108, 0xb800, 0x00be, 0xd0bc, 0x0005, 0x00b6, 0x00f6, 0x2001,\r
++      0x107e, 0x2004, 0x905d, 0x0110, 0xb800, 0xd0ec, 0x00fe, 0x00be,\r
++      0x0005, 0x0126, 0x0026, 0x2091, 0x8000, 0x0006, 0xbaa0, 0x9290,\r
++      0x1000, 0x2204, 0x9b06, 0x190c, 0x0d65, 0x000e, 0xba00, 0x9005,\r
++      0x0110, 0xc2fd, 0x0008, 0xc2fc, 0xba02, 0x002e, 0x012e, 0x0005,\r
++      0x2011, 0x1836, 0x2204, 0xd0cc, 0x0138, 0x2001, 0x1954, 0x200c,\r
++      0x2011, 0x6655, 0x080c, 0x821d, 0x0005, 0x2011, 0x6655, 0x080c,\r
++      0x8159, 0x2011, 0x1836, 0x2204, 0xc0cc, 0x2012, 0x0005, 0x080c,\r
++      0x538d, 0xd0ac, 0x0005, 0x080c, 0x538d, 0xd0a4, 0x0005, 0x0016,\r
++      0xb904, 0x9184, 0x00ff, 0x908e, 0x0006, 0x001e, 0x0005, 0x0016,\r
++      0xb904, 0x9184, 0xff00, 0x8007, 0x908e, 0x0006, 0x001e, 0x0005,\r
++      0x00b6, 0x00f6, 0x080c, 0xbf61, 0x0158, 0x70d8, 0x9084, 0x0028,\r
++      0x0138, 0x2001, 0x107f, 0x2004, 0x905d, 0x0110, 0xb8c4, 0xd094,\r
++      0x00fe, 0x00be, 0x0005, 0x0006, 0x0016, 0x0036, 0x0046, 0x0076,\r
++      0x00b6, 0x2001, 0x1817, 0x203c, 0x9780, 0x318b, 0x203d, 0x97bc,\r
++      0xff00, 0x873f, 0x9006, 0x2018, 0x2008, 0x9284, 0x8000, 0x0110,\r
++      0x2019, 0x0001, 0x9294, 0x7fff, 0x2100, 0x9706, 0x0190, 0x91a0,\r
++      0x1000, 0x2404, 0x905d, 0x0168, 0xb804, 0x9084, 0x00ff, 0x9086,\r
++      0x0006, 0x1138, 0x83ff, 0x0118, 0xb89c, 0xd0a4, 0x0110, 0x8211,\r
++      0x0158, 0x8108, 0x83ff, 0x0120, 0x9182, 0x0800, 0x0e28, 0x0068,\r
++      0x9182, 0x007e, 0x0e08, 0x0048, 0x00be, 0x007e, 0x004e, 0x003e,\r
++      0x001e, 0x9085, 0x0001, 0x000e, 0x0005, 0x00be, 0x007e, 0x004e,\r
++      0x003e, 0x001e, 0x9006, 0x000e, 0x0005, 0x0046, 0x0056, 0x0076,\r
++      0x00b6, 0x2100, 0x9084, 0x7fff, 0x9080, 0x1000, 0x2004, 0x905d,\r
++      0x0130, 0xb804, 0x9084, 0x00ff, 0x9086, 0x0006, 0x0550, 0x9184,\r
++      0x8000, 0x0580, 0x2001, 0x1817, 0x203c, 0x9780, 0x318b, 0x203d,\r
++      0x97bc, 0xff00, 0x873f, 0x9006, 0x2020, 0x2400, 0x9706, 0x01a0,\r
++      0x94a8, 0x1000, 0x2504, 0x905d, 0x0178, 0xb804, 0x9084, 0x00ff,\r
++      0x9086, 0x0006, 0x1148, 0xb89c, 0xd0a4, 0x0130, 0xb814, 0x9206,\r
++      0x1118, 0xb810, 0x9306, 0x0128, 0x8420, 0x9482, 0x0800, 0x0e28,\r
++      0x0048, 0x918c, 0x7fff, 0x00be, 0x007e, 0x005e, 0x004e, 0x9085,\r
++      0x0001, 0x0005, 0x918c, 0x7fff, 0x00be, 0x007e, 0x005e, 0x004e,\r
++      0x9006, 0x0005, 0x2071, 0x1906, 0x7003, 0x0001, 0x7007, 0x0000,\r
++      0x9006, 0x7012, 0x7016, 0x701a, 0x701e, 0x700a, 0x7046, 0x2001,\r
++      0x1919, 0x2003, 0x0000, 0x0005, 0x0016, 0x00e6, 0x2071, 0x191a,\r
++      0x900e, 0x710a, 0x080c, 0x538d, 0xd0fc, 0x1140, 0x080c, 0x538d,\r
++      0x900e, 0xd09c, 0x0108, 0x8108, 0x7102, 0x0400, 0x2001, 0x1873,\r
++      0x200c, 0x9184, 0x0007, 0x9006, 0x0002, 0x673e, 0x673e, 0x673e,\r
++      0x673e, 0x673e, 0x6755, 0x6763, 0x673e, 0x7003, 0x0003, 0x2009,\r
++      0x1874, 0x210c, 0x9184, 0xff00, 0x8007, 0x9005, 0x1110, 0x2001,\r
++      0x0002, 0x7006, 0x0018, 0x7003, 0x0005, 0x0c88, 0x00ee, 0x001e,\r
++      0x0005, 0x00e6, 0x2071, 0x0050, 0x684c, 0x9005, 0x1150, 0x00e6,\r
++      0x2071, 0x1906, 0x7028, 0xc085, 0x702a, 0x00ee, 0x9085, 0x0001,\r
++      0x0488, 0x6844, 0x9005, 0x0158, 0x080c, 0x7429, 0x6a60, 0x9200,\r
++      0x7002, 0x6864, 0x9101, 0x7006, 0x9006, 0x7012, 0x7016, 0x6860,\r
++      0x7002, 0x6864, 0x7006, 0x6868, 0x700a, 0x686c, 0x700e, 0x6844,\r
++      0x9005, 0x1110, 0x7012, 0x7016, 0x684c, 0x701a, 0x701c, 0x9085,\r
++      0x0040, 0x701e, 0x7037, 0x0019, 0x702b, 0x0001, 0x00e6, 0x2071,\r
++      0x1906, 0x7028, 0xc084, 0x702a, 0x7007, 0x0001, 0x700b, 0x0000,\r
++      0x00ee, 0x9006, 0x00ee, 0x0005, 0xa868, 0xd0fc, 0x11d8, 0x00e6,\r
++      0x0026, 0x2001, 0x191a, 0x2004, 0x9005, 0x0904, 0x699b, 0xa87c,\r
++      0xd0bc, 0x1904, 0x699b, 0xa978, 0xa874, 0x9105, 0x1904, 0x699b,\r
++      0x2001, 0x191a, 0x2004, 0x0002, 0x699b, 0x67ef, 0x682b, 0x682b,\r
++      0x699b, 0x682b, 0x0005, 0xa868, 0xd0fc, 0x1500, 0x00e6, 0x0026,\r
++      0x2009, 0x191a, 0x210c, 0x81ff, 0x0904, 0x699b, 0xa87c, 0xd0cc,\r
++      0x0904, 0x699b, 0xa880, 0x9084, 0x00ff, 0x9086, 0x0001, 0x1904,\r
++      0x699b, 0x9186, 0x0003, 0x0904, 0x682b, 0x9186, 0x0005, 0x0904,\r
++      0x682b, 0xa84f, 0x8021, 0xa853, 0x0017, 0x0028, 0x0005, 0xa84f,\r
++      0x8020, 0xa853, 0x0016, 0x2071, 0x1906, 0x701c, 0x9005, 0x1904,\r
++      0x6b3e, 0x0e04, 0x6b89, 0x2071, 0x0000, 0xa84c, 0x7082, 0xa850,\r
++      0x7032, 0xa86c, 0x7086, 0x7036, 0xa870, 0x708a, 0x2091, 0x4080,\r
++      0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x11be, 0x2071, 0x1800,\r
++      0x2011, 0x0001, 0xa804, 0x900d, 0x702c, 0x1158, 0xa802, 0x2900,\r
++      0x702e, 0x70bc, 0x9200, 0x70be, 0x080c, 0x8074, 0x002e, 0x00ee,\r
++      0x0005, 0x0096, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff,\r
++      0x1dc8, 0x009e, 0x0c58, 0xa84f, 0x0000, 0x00f6, 0x2079, 0x0050,\r
++      0x2071, 0x1906, 0xa803, 0x0000, 0x7010, 0x9005, 0x1904, 0x6920,\r
++      0x782c, 0x908c, 0x0780, 0x190c, 0x6cb0, 0x8004, 0x8004, 0x8004,\r
++      0x9084, 0x0003, 0x0002, 0x6849, 0x6920, 0x686e, 0x68bb, 0x080c,\r
++      0x0d65, 0x2071, 0x1800, 0x2900, 0x7822, 0xa804, 0x900d, 0x1170,\r
++      0x2071, 0x19d4, 0x703c, 0x9005, 0x1328, 0x2001, 0x191b, 0x2004,\r
++      0x8005, 0x703e, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x9016, 0x702c,\r
++      0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e,\r
++      0x70bc, 0x9200, 0x70be, 0x080c, 0x8074, 0x0c10, 0x2071, 0x1800,\r
++      0x2900, 0x7822, 0xa804, 0x900d, 0x15a8, 0x7824, 0x00e6, 0x2071,\r
++      0x0040, 0x712c, 0xd19c, 0x1170, 0x2009, 0x182f, 0x210c, 0x918a,\r
++      0x0040, 0x0240, 0x7022, 0x2001, 0x1dc0, 0x200c, 0x8108, 0x2102,\r
++      0x00ee, 0x0058, 0x00ee, 0x2048, 0x702c, 0xa802, 0x2900, 0x702e,\r
++      0x70bc, 0x8000, 0x70be, 0x080c, 0x8074, 0x782c, 0x9094, 0x0780,\r
++      0x190c, 0x6cb0, 0xd0a4, 0x19c8, 0x2071, 0x19d4, 0x703c, 0x9005,\r
++      0x1328, 0x2001, 0x191b, 0x2004, 0x8005, 0x703e, 0x00fe, 0x002e,\r
++      0x00ee, 0x0005, 0x9016, 0x702c, 0x2148, 0xa904, 0xa802, 0x8210,\r
++      0x2900, 0x81ff, 0x1dc8, 0x702e, 0x70bc, 0x9200, 0x70be, 0x080c,\r
++      0x8074, 0x0804, 0x6875, 0x0096, 0x00e6, 0x7824, 0x2048, 0x2071,\r
++      0x1800, 0x702c, 0xa802, 0x2900, 0x702e, 0x70bc, 0x8000, 0x70be,\r
++      0x080c, 0x8074, 0x782c, 0x9094, 0x0780, 0x190c, 0x6cb0, 0xd0a4,\r
++      0x1d60, 0x00ee, 0x782c, 0x9094, 0x0780, 0x190c, 0x6cb0, 0xd09c,\r
++      0x11a0, 0x009e, 0x2900, 0x7822, 0xa804, 0x900d, 0x1560, 0x2071,\r
++      0x19d4, 0x703c, 0x9005, 0x1328, 0x2001, 0x191b, 0x2004, 0x8005,\r
++      0x703e, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x009e, 0x2908, 0x7010,\r
++      0x8000, 0x7012, 0x7018, 0x904d, 0x711a, 0x0110, 0xa902, 0x0008,\r
++      0x711e, 0x2148, 0xa804, 0x900d, 0x1170, 0x2071, 0x19d4, 0x703c,\r
++      0x9005, 0x1328, 0x2001, 0x191b, 0x2004, 0x8005, 0x703e, 0x00fe,\r
++      0x002e, 0x00ee, 0x0005, 0x2071, 0x1800, 0x9016, 0x702c, 0x2148,\r
++      0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e, 0x70bc,\r
++      0x9200, 0x70be, 0x080c, 0x8074, 0x00fe, 0x002e, 0x00ee, 0x0005,\r
++      0x2908, 0x7010, 0x8000, 0x7012, 0x7018, 0x904d, 0x711a, 0x0110,\r
++      0xa902, 0x0008, 0x711e, 0x2148, 0xa804, 0x900d, 0x1904, 0x6975,\r
++      0x782c, 0x9094, 0x0780, 0x190c, 0x6cb0, 0xd09c, 0x1198, 0x701c,\r
++      0x904d, 0x0180, 0x7010, 0x8001, 0x7012, 0x1108, 0x701a, 0xa800,\r
++      0x701e, 0x2900, 0x7822, 0x782c, 0x9094, 0x0780, 0x190c, 0x6cb0,\r
++      0xd09c, 0x0d68, 0x782c, 0x9094, 0x0780, 0x190c, 0x6cb0, 0xd0a4,\r
++      0x01b0, 0x00e6, 0x7824, 0x2048, 0x2071, 0x1800, 0x702c, 0xa802,\r
++      0x2900, 0x702e, 0x70bc, 0x8000, 0x70be, 0x080c, 0x8074, 0x782c,\r
++      0x9094, 0x0780, 0x190c, 0x6cb0, 0xd0a4, 0x1d60, 0x00ee, 0x2071,\r
++      0x19d4, 0x703c, 0x9005, 0x1328, 0x2001, 0x191b, 0x2004, 0x8005,\r
++      0x703e, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x00e6, 0x2071, 0x1800,\r
++      0x9016, 0x702c, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff,\r
++      0x1dc8, 0x702e, 0x70bc, 0x9200, 0x70be, 0x080c, 0x8074, 0x00ee,\r
++      0x0804, 0x6930, 0xa868, 0xd0fc, 0x1560, 0x0096, 0xa804, 0xa807,\r
++      0x0000, 0x904d, 0x190c, 0x0fd4, 0x009e, 0x0018, 0xa868, 0xd0fc,\r
++      0x1500, 0x00e6, 0x0026, 0xa84f, 0x0000, 0x00f6, 0x2079, 0x0050,\r
++      0x2071, 0x1906, 0xa803, 0x0000, 0x7010, 0x9005, 0x1904, 0x6ab8,\r
++      0x782c, 0x908c, 0x0780, 0x190c, 0x6cb0, 0x8004, 0x8004, 0x8004,\r
++      0x9084, 0x0003, 0x0002, 0x69ba, 0x6ab8, 0x69d5, 0x6a47, 0x080c,\r
++      0x0d65, 0x0005, 0x2071, 0x1800, 0x2900, 0x7822, 0xa804, 0x900d,\r
++      0x1120, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x9016, 0x702c, 0x2148,\r
++      0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e, 0x70bc,\r
++      0x9200, 0x70be, 0x080c, 0x8074, 0x0c60, 0x2071, 0x1800, 0x2900,\r
++      0x7822, 0xa804, 0x900d, 0x1904, 0x6a36, 0x7830, 0xd0dc, 0x1120,\r
++      0x00fe, 0x002e, 0x00ee, 0x0005, 0x7824, 0x00e6, 0x2071, 0x0040,\r
++      0x712c, 0xd19c, 0x1170, 0x2009, 0x182f, 0x210c, 0x918a, 0x0040,\r
++      0x0240, 0x7022, 0x2001, 0x1dc0, 0x200c, 0x8108, 0x2102, 0x00ee,\r
++      0x0058, 0x00ee, 0x2048, 0x702c, 0xa802, 0x2900, 0x702e, 0x70bc,\r
++      0x8000, 0x70be, 0x080c, 0x8074, 0x782c, 0x9094, 0x0780, 0x190c,\r
++      0x6cb0, 0xd0a4, 0x19c8, 0x0e04, 0x6a2d, 0x7838, 0x7938, 0x910e,\r
++      0x1de0, 0x00d6, 0x2069, 0x0000, 0x6836, 0x6833, 0x0013, 0x00de,\r
++      0x2001, 0x1917, 0x200c, 0xc184, 0x2102, 0x2091, 0x4080, 0x2001,\r
++      0x0089, 0x2004, 0xd084, 0x190c, 0x11be, 0x2009, 0x1919, 0x200b,\r
++      0x0000, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x2001, 0x1917, 0x200c,\r
++      0xc185, 0x2102, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x9016, 0x702c,\r
++      0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e,\r
++      0x70bc, 0x9200, 0x70be, 0x080c, 0x8074, 0x0804, 0x69e4, 0x0096,\r
++      0x00e6, 0x7824, 0x2048, 0x2071, 0x1800, 0x702c, 0xa802, 0x2900,\r
++      0x702e, 0x70bc, 0x8000, 0x70be, 0x080c, 0x8074, 0x782c, 0x9094,\r
++      0x0780, 0x190c, 0x6cb0, 0xd0a4, 0x1d60, 0x00ee, 0x0e04, 0x6a8b,\r
++      0x7838, 0x7938, 0x910e, 0x1de0, 0x00d6, 0x2069, 0x0000, 0x6836,\r
++      0x6833, 0x0013, 0x00de, 0x7044, 0xc084, 0x7046, 0x2091, 0x4080,\r
++      0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x11be, 0x2009, 0x1919,\r
++      0x200b, 0x0000, 0x782c, 0x9094, 0x0780, 0x190c, 0x6cb0, 0xd09c,\r
++      0x1170, 0x009e, 0x2900, 0x7822, 0xa804, 0x900d, 0x11e0, 0x00fe,\r
++      0x002e, 0x00ee, 0x0005, 0x7044, 0xc085, 0x7046, 0x0c58, 0x009e,\r
++      0x2908, 0x7010, 0x8000, 0x7012, 0x7018, 0x904d, 0x711a, 0x0110,\r
++      0xa902, 0x0008, 0x711e, 0x2148, 0xa804, 0x900d, 0x1120, 0x00fe,\r
++      0x002e, 0x00ee, 0x0005, 0x2071, 0x1800, 0x9016, 0x702c, 0x2148,\r
++      0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e, 0x70bc,\r
++      0x9200, 0x70be, 0x080c, 0x8074, 0x00fe, 0x002e, 0x00ee, 0x0005,\r
++      0x2908, 0x7010, 0x8000, 0x7012, 0x7018, 0x904d, 0x711a, 0x0110,\r
++      0xa902, 0x0008, 0x711e, 0x2148, 0xa804, 0x900d, 0x1904, 0x6b29,\r
++      0x782c, 0x9094, 0x0780, 0x190c, 0x6cb0, 0xd09c, 0x11b0, 0x701c,\r
++      0x904d, 0x0198, 0xa84c, 0x9005, 0x1180, 0x7010, 0x8001, 0x7012,\r
++      0x1108, 0x701a, 0xa800, 0x701e, 0x2900, 0x7822, 0x782c, 0x9094,\r
++      0x0780, 0x190c, 0x6cb0, 0xd09c, 0x0d50, 0x782c, 0x9094, 0x0780,\r
++      0x190c, 0x6cb0, 0xd0a4, 0x05c8, 0x00e6, 0x7824, 0x2048, 0x2071,\r
++      0x1800, 0x702c, 0xa802, 0x2900, 0x702e, 0x70bc, 0x8000, 0x70be,\r
++      0x080c, 0x8074, 0x782c, 0x9094, 0x0780, 0x190c, 0x6cb0, 0xd0a4,\r
++      0x1d60, 0x00ee, 0x0e04, 0x6b22, 0x7838, 0x7938, 0x910e, 0x1de0,\r
++      0x00d6, 0x2069, 0x0000, 0x6836, 0x6833, 0x0013, 0x00de, 0x7044,\r
++      0xc084, 0x7046, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084,\r
++      0x190c, 0x11be, 0x2009, 0x1919, 0x200b, 0x0000, 0x00fe, 0x002e,\r
++      0x00ee, 0x0005, 0x7044, 0xc085, 0x7046, 0x00fe, 0x002e, 0x00ee,\r
++      0x0005, 0x00e6, 0x2071, 0x1800, 0x9016, 0x702c, 0x2148, 0xa904,\r
++      0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e, 0x70bc, 0x9200,\r
++      0x70be, 0x080c, 0x8074, 0x00ee, 0x0804, 0x6ac8, 0x2071, 0x1906,\r
++      0xa803, 0x0000, 0x2908, 0x7010, 0x8000, 0x7012, 0x7018, 0x904d,\r
++      0x711a, 0x0110, 0xa902, 0x0008, 0x711e, 0x2148, 0xa804, 0x900d,\r
++      0x1128, 0x1e04, 0x6b69, 0x002e, 0x00ee, 0x0005, 0x2071, 0x1800,\r
++      0x9016, 0x702c, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff,\r
++      0x1dc8, 0x702e, 0x70bc, 0x9200, 0x70be, 0x080c, 0x8074, 0x0e04,\r
++      0x6b53, 0x2071, 0x1906, 0x701c, 0x2048, 0xa84c, 0x900d, 0x0d18,\r
++      0x2071, 0x0000, 0x7182, 0xa850, 0x7032, 0xa86c, 0x7086, 0x7036,\r
++      0xa870, 0x708a, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084,\r
++      0x190c, 0x11be, 0x2071, 0x1906, 0x080c, 0x6c9c, 0x002e, 0x00ee,\r
++      0x0005, 0x2071, 0x1906, 0xa803, 0x0000, 0x2908, 0x7010, 0x8000,\r
++      0x7012, 0x7018, 0x904d, 0x711a, 0x0110, 0xa902, 0x0008, 0x711e,\r
++      0x2148, 0xa804, 0x900d, 0x1118, 0x002e, 0x00ee, 0x0005, 0x2071,\r
++      0x1800, 0x9016, 0x702c, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900,\r
++      0x81ff, 0x1dc8, 0x702e, 0x70bc, 0x9200, 0x70be, 0x080c, 0x8074,\r
++      0x002e, 0x00ee, 0x0005, 0x0006, 0xa87c, 0x0006, 0xa867, 0x0103,\r
++      0x20a9, 0x001c, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x001d, 0x20a0,\r
++      0x9006, 0x4004, 0x000e, 0x9084, 0x00ff, 0xa87e, 0x000e, 0xa87a,\r
++      0xa982, 0x0005, 0x2071, 0x1906, 0x7004, 0x0002, 0x6bd4, 0x6bd5,\r
++      0x6c9b, 0x6bd5, 0x0d65, 0x6c9b, 0x0005, 0x2001, 0x191a, 0x2004,\r
++      0x0002, 0x6bdf, 0x6bdf, 0x6c34, 0x6c35, 0x6bdf, 0x6c35, 0x0126,\r
++      0x2091, 0x8000, 0x1e0c, 0x6cbb, 0x701c, 0x904d, 0x01e0, 0xa84c,\r
++      0x9005, 0x01d8, 0x0e04, 0x6c03, 0xa94c, 0x2071, 0x0000, 0x7182,\r
++      0xa850, 0x7032, 0xa86c, 0x7086, 0x7036, 0xa870, 0x708a, 0x2091,\r
++      0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x11be, 0x2071,\r
++      0x1906, 0x080c, 0x6c9c, 0x012e, 0x0470, 0x2001, 0x005b, 0x2004,\r
++      0x9094, 0x0780, 0x190c, 0x6cb0, 0xd09c, 0x2071, 0x1906, 0x1510,\r
++      0x2071, 0x1906, 0x700f, 0x0001, 0xa964, 0x9184, 0x00ff, 0x9086,\r
++      0x0003, 0x1130, 0x810f, 0x918c, 0x00ff, 0x8101, 0x0108, 0x710e,\r
++      0x2900, 0x00d6, 0x2069, 0x0050, 0x6822, 0x00de, 0x2071, 0x1906,\r
++      0x701c, 0x2048, 0x7010, 0x8001, 0x7012, 0xa800, 0x701e, 0x9005,\r
++      0x1108, 0x701a, 0x012e, 0x0005, 0x0005, 0x00d6, 0x2008, 0x2069,\r
++      0x19d4, 0x683c, 0x9005, 0x0760, 0x0158, 0x9186, 0x0003, 0x0540,\r
++      0x2001, 0x1814, 0x2004, 0x2009, 0x1b1e, 0x210c, 0x9102, 0x1500,\r
++      0x0126, 0x2091, 0x8000, 0x2069, 0x0050, 0x693c, 0x6838, 0x9106,\r
++      0x0190, 0x0e04, 0x6c67, 0x2069, 0x0000, 0x6837, 0x8040, 0x6833,\r
++      0x0012, 0x6883, 0x8040, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004,\r
++      0xd084, 0x190c, 0x11be, 0x2069, 0x19d4, 0x683f, 0xffff, 0x012e,\r
++      0x00de, 0x0126, 0x2091, 0x8000, 0x1e0c, 0x6d31, 0x701c, 0x904d,\r
++      0x0540, 0x2001, 0x005b, 0x2004, 0x9094, 0x0780, 0x15c9, 0xd09c,\r
++      0x1500, 0x2071, 0x1906, 0x700f, 0x0001, 0xa964, 0x9184, 0x00ff,\r
++      0x9086, 0x0003, 0x1130, 0x810f, 0x918c, 0x00ff, 0x8101, 0x0108,\r
++      0x710e, 0x2900, 0x00d6, 0x2069, 0x0050, 0x6822, 0x00de, 0x701c,\r
++      0x2048, 0x7010, 0x8001, 0x7012, 0xa800, 0x701e, 0x9005, 0x1108,\r
++      0x701a, 0x012e, 0x0005, 0x0005, 0x0126, 0x2091, 0x8000, 0x701c,\r
++      0x904d, 0x0160, 0x7010, 0x8001, 0x7012, 0xa800, 0x701e, 0x9005,\r
++      0x1108, 0x701a, 0x012e, 0x080c, 0x1054, 0x0005, 0x012e, 0x0005,\r
++      0x2091, 0x8000, 0x0e04, 0x6cb2, 0x0006, 0x0016, 0x2001, 0x8004,\r
++      0x0006, 0x0804, 0x0d6e, 0x0096, 0x00f6, 0x2079, 0x0050, 0x7044,\r
++      0xd084, 0x01e0, 0xc084, 0x7046, 0x7838, 0x7938, 0x910e, 0x1de0,\r
++      0x00d6, 0x2069, 0x0000, 0x6836, 0x6833, 0x0013, 0x00de, 0x2091,\r
++      0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x11be, 0x2009,\r
++      0x1919, 0x200b, 0x0000, 0x00fe, 0x009e, 0x0005, 0x782c, 0x9094,\r
++      0x0780, 0x1971, 0xd0a4, 0x0db8, 0x2009, 0x1919, 0x2104, 0x8000,\r
++      0x200a, 0x9082, 0x000f, 0x0e78, 0x00e6, 0x2071, 0x1800, 0x7824,\r
++      0x00e6, 0x2071, 0x0040, 0x712c, 0xd19c, 0x1170, 0x2009, 0x182f,\r
++      0x210c, 0x918a, 0x0040, 0x0240, 0x7022, 0x2001, 0x1dc0, 0x200c,\r
++      0x8108, 0x2102, 0x00ee, 0x0058, 0x00ee, 0x2048, 0x702c, 0xa802,\r
++      0x2900, 0x702e, 0x70bc, 0x8000, 0x70be, 0x080c, 0x8074, 0x782c,\r
++      0x9094, 0x0780, 0x190c, 0x6cb0, 0xd0a4, 0x19c8, 0x7838, 0x7938,\r
++      0x910e, 0x1de0, 0x00d6, 0x2069, 0x0000, 0x6836, 0x6833, 0x0013,\r
++      0x00de, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c,\r
++      0x11be, 0x2009, 0x1919, 0x200b, 0x0000, 0x00ee, 0x00fe, 0x009e,\r
++      0x0005, 0x00f6, 0x2079, 0x0050, 0x7044, 0xd084, 0x01b8, 0xc084,\r
++      0x7046, 0x7838, 0x7938, 0x910e, 0x1de0, 0x00d6, 0x2069, 0x0000,\r
++      0x6836, 0x6833, 0x0013, 0x00de, 0x2091, 0x4080, 0x2001, 0x0089,\r
++      0x2004, 0xd084, 0x190c, 0x11be, 0x00fe, 0x0005, 0x782c, 0x9094,\r
++      0x0780, 0x190c, 0x6cb0, 0xd0a4, 0x0db8, 0x00e6, 0x2071, 0x1800,\r
++      0x7824, 0x2048, 0x702c, 0xa802, 0x2900, 0x702e, 0x70bc, 0x8000,\r
++      0x70be, 0x080c, 0x8074, 0x782c, 0x9094, 0x0780, 0x190c, 0x6cb0,\r
++      0xd0a4, 0x1d70, 0x00d6, 0x2069, 0x0050, 0x693c, 0x2069, 0x191a,\r
++      0x6808, 0x690a, 0x2069, 0x19d4, 0x9102, 0x1118, 0x683c, 0x9005,\r
++      0x1328, 0x2001, 0x191b, 0x200c, 0x810d, 0x693e, 0x00de, 0x00ee,\r
++      0x00fe, 0x0005, 0x7094, 0x908a, 0x0029, 0x1a0c, 0x0d65, 0x9082,\r
++      0x001d, 0x003b, 0x0026, 0x2011, 0x1e00, 0x080c, 0x286d, 0x002e,\r
++      0x0005, 0x6e5d, 0x6de3, 0x6dff, 0x6e29, 0x6e4c, 0x6e8c, 0x6e9e,\r
++      0x6dff, 0x6e74, 0x6d9e, 0x6dcc, 0x6d9d, 0x0005, 0x00d6, 0x2069,\r
++      0x0200, 0x6804, 0x9005, 0x1180, 0x6808, 0x9005, 0x1518, 0x7097,\r
++      0x0028, 0x2069, 0x1960, 0x2d04, 0x7002, 0x080c, 0x71f8, 0x6028,\r
++      0x9085, 0x0600, 0x602a, 0x00b0, 0x7097, 0x0028, 0x2069, 0x1960,\r
++      0x2d04, 0x7002, 0x6028, 0x9085, 0x0600, 0x602a, 0x00e6, 0x0036,\r
++      0x0046, 0x0056, 0x2071, 0x1a3c, 0x080c, 0x195f, 0x005e, 0x004e,\r
++      0x003e, 0x00ee, 0x00de, 0x0005, 0x00d6, 0x2069, 0x0200, 0x6804,\r
++      0x9005, 0x1178, 0x6808, 0x9005, 0x1160, 0x7097, 0x0028, 0x2069,\r
++      0x1960, 0x2d04, 0x7002, 0x080c, 0x729a, 0x6028, 0x9085, 0x0600,\r
++      0x602a, 0x00de, 0x0005, 0x0006, 0x2001, 0x0090, 0x080c, 0x2833,\r
++      0x000e, 0x6124, 0xd1e4, 0x1190, 0x080c, 0x6f0f, 0xd1d4, 0x1160,\r
++      0xd1dc, 0x1138, 0xd1cc, 0x0150, 0x7097, 0x0020, 0x080c, 0x6f0f,\r
++      0x0028, 0x7097, 0x001d, 0x0010, 0x7097, 0x001f, 0x0005, 0x2001,\r
++      0x0088, 0x080c, 0x2833, 0x6124, 0xd1cc, 0x11e8, 0xd1dc, 0x11c0,\r
++      0xd1e4, 0x1198, 0x9184, 0x1e00, 0x11d8, 0x080c, 0x1989, 0x60e3,\r
++      0x0001, 0x600c, 0xc0b4, 0x600e, 0x080c, 0x70e3, 0x2001, 0x0080,\r
++      0x080c, 0x2833, 0x7097, 0x0028, 0x0058, 0x7097, 0x001e, 0x0040,\r
++      0x7097, 0x001d, 0x0028, 0x7097, 0x0020, 0x0010, 0x7097, 0x001f,\r
++      0x0005, 0x080c, 0x1989, 0x60e3, 0x0001, 0x600c, 0xc0b4, 0x600e,\r
++      0x080c, 0x70e3, 0x2001, 0x0080, 0x080c, 0x2833, 0x6124, 0xd1d4,\r
++      0x1180, 0xd1dc, 0x1158, 0xd1e4, 0x1130, 0x9184, 0x1e00, 0x1158,\r
++      0x7097, 0x0028, 0x0040, 0x7097, 0x001e, 0x0028, 0x7097, 0x001d,\r
++      0x0010, 0x7097, 0x001f, 0x0005, 0x2001, 0x00a0, 0x080c, 0x2833,\r
++      0x6124, 0xd1dc, 0x1138, 0xd1e4, 0x0138, 0x080c, 0x1989, 0x7097,\r
++      0x001e, 0x0010, 0x7097, 0x001d, 0x0005, 0x080c, 0x6f98, 0x6124,\r
++      0xd1dc, 0x1188, 0x080c, 0x6f0f, 0x0016, 0x080c, 0x1989, 0x001e,\r
++      0xd1d4, 0x1128, 0xd1e4, 0x0138, 0x7097, 0x001e, 0x0020, 0x7097,\r
++      0x001f, 0x080c, 0x6f0f, 0x0005, 0x0006, 0x2001, 0x00a0, 0x080c,\r
++      0x2833, 0x000e, 0x6124, 0xd1d4, 0x1160, 0xd1cc, 0x1150, 0xd1dc,\r
++      0x1128, 0xd1e4, 0x0140, 0x7097, 0x001e, 0x0028, 0x7097, 0x001d,\r
++      0x0010, 0x7097, 0x0021, 0x0005, 0x080c, 0x6f98, 0x6124, 0xd1d4,\r
++      0x1150, 0xd1dc, 0x1128, 0xd1e4, 0x0140, 0x7097, 0x001e, 0x0028,\r
++      0x7097, 0x001d, 0x0010, 0x7097, 0x001f, 0x0005, 0x0006, 0x2001,\r
++      0x0090, 0x080c, 0x2833, 0x000e, 0x6124, 0xd1d4, 0x1178, 0xd1cc,\r
++      0x1150, 0xd1dc, 0x1128, 0xd1e4, 0x0158, 0x7097, 0x001e, 0x0040,\r
++      0x7097, 0x001d, 0x0028, 0x7097, 0x0020, 0x0010, 0x7097, 0x001f,\r
++      0x0005, 0x0016, 0x00c6, 0x00d6, 0x00e6, 0x0126, 0x2061, 0x0100,\r
++      0x2069, 0x0140, 0x2071, 0x1800, 0x2091, 0x8000, 0x080c, 0x70b7,\r
++      0x11f8, 0x2001, 0x180c, 0x200c, 0xd1b4, 0x01d0, 0xc1b4, 0x2102,\r
++      0x0026, 0x2011, 0x0200, 0x080c, 0x286d, 0x002e, 0x080c, 0x2819,\r
++      0x6024, 0xd0cc, 0x0148, 0x2001, 0x00a0, 0x080c, 0x2833, 0x080c,\r
++      0x73b7, 0x080c, 0x5cdc, 0x0428, 0x6028, 0xc0cd, 0x602a, 0x0408,\r
++      0x080c, 0x70d1, 0x0150, 0x080c, 0x70c8, 0x1138, 0x2001, 0x0001,\r
++      0x080c, 0x23c9, 0x080c, 0x708b, 0x00a0, 0x080c, 0x6f95, 0x0178,\r
++      0x2001, 0x0001, 0x080c, 0x23c9, 0x7094, 0x9086, 0x001e, 0x0120,\r
++      0x7094, 0x9086, 0x0022, 0x1118, 0x7097, 0x0025, 0x0010, 0x7097,\r
++      0x0021, 0x012e, 0x00ee, 0x00de, 0x00ce, 0x001e, 0x0005, 0x0026,\r
++      0x2011, 0x6f20, 0x080c, 0x825f, 0x002e, 0x0016, 0x0026, 0x2009,\r
++      0x0064, 0x2011, 0x6f20, 0x080c, 0x8256, 0x002e, 0x001e, 0x0005,\r
++      0x00e6, 0x00f6, 0x0016, 0x080c, 0x8fb7, 0x2071, 0x1800, 0x080c,\r
++      0x6eb9, 0x001e, 0x00fe, 0x00ee, 0x0005, 0x0016, 0x0026, 0x0036,\r
++      0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x0126, 0x080c, 0x8fb7, 0x2061,\r
++      0x0100, 0x2069, 0x0140, 0x2071, 0x1800, 0x2091, 0x8000, 0x6028,\r
++      0xc09c, 0x602a, 0x080c, 0x98c8, 0x2011, 0x0003, 0x080c, 0x9339,\r
++      0x2011, 0x0002, 0x080c, 0x9343, 0x080c, 0x9206, 0x080c, 0x820b,\r
++      0x0036, 0x901e, 0x080c, 0x9286, 0x003e, 0x080c, 0x98e4, 0x60e3,\r
++      0x0000, 0x080c, 0xd5fb, 0x080c, 0xd616, 0x2009, 0x0004, 0x080c,\r
++      0x281f, 0x080c, 0x273f, 0x2001, 0x1800, 0x2003, 0x0004, 0x2011,\r
++      0x0008, 0x080c, 0x286d, 0x2011, 0x6f20, 0x080c, 0x825f, 0x080c,\r
++      0x70d1, 0x0118, 0x9006, 0x080c, 0x2833, 0x080c, 0x0bab, 0x2001,\r
++      0x0001, 0x080c, 0x23c9, 0x012e, 0x00fe, 0x00ee, 0x00de, 0x00ce,\r
++      0x003e, 0x002e, 0x001e, 0x0005, 0x0026, 0x00e6, 0x2011, 0x6f2d,\r
++      0x2071, 0x19d4, 0x701c, 0x9206, 0x1118, 0x7018, 0x9005, 0x0110,\r
++      0x9085, 0x0001, 0x00ee, 0x002e, 0x0005, 0x6020, 0xd09c, 0x0005,\r
++      0x6800, 0x9084, 0xfffe, 0x9086, 0x00c0, 0x01b8, 0x2001, 0x00c0,\r
++      0x080c, 0x2833, 0x0156, 0x20a9, 0x002d, 0x1d04, 0x6fa5, 0x2091,\r
++      0x6000, 0x1f04, 0x6fa5, 0x015e, 0x00d6, 0x2069, 0x1800, 0x6898,\r
++      0x8001, 0x0220, 0x0118, 0x689a, 0x00de, 0x0005, 0x689b, 0x0014,\r
++      0x68e8, 0xd0dc, 0x0dc8, 0x6800, 0x9086, 0x0001, 0x1da8, 0x080c,\r
++      0x826b, 0x0c90, 0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100, 0x2069,\r
++      0x0140, 0x2071, 0x1800, 0x080c, 0x73c6, 0x2001, 0x193e, 0x2003,\r
++      0x0000, 0x9006, 0x7096, 0x60e2, 0x6886, 0x080c, 0x2498, 0x9006,\r
++      0x080c, 0x2833, 0x080c, 0x5b97, 0x0026, 0x2011, 0xffff, 0x080c,\r
++      0x286d, 0x002e, 0x602b, 0x182c, 0x00ee, 0x00de, 0x00ce, 0x0005,\r
++      0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100, 0x2069, 0x0140, 0x2071,\r
++      0x1800, 0x2001, 0x194e, 0x200c, 0x9186, 0x0000, 0x0158, 0x9186,\r
++      0x0001, 0x0158, 0x9186, 0x0002, 0x0158, 0x9186, 0x0003, 0x0158,\r
++      0x0804, 0x707b, 0x7097, 0x0022, 0x0040, 0x7097, 0x0021, 0x0028,\r
++      0x7097, 0x0023, 0x0010, 0x7097, 0x0024, 0x60e3, 0x0000, 0x6887,\r
++      0x0001, 0x2001, 0x0001, 0x080c, 0x2498, 0x080c, 0x98c8, 0x0026,\r
++      0x080c, 0x9b6d, 0x002e, 0x080c, 0x98e4, 0x7000, 0x908e, 0x0004,\r
++      0x0118, 0x602b, 0x0028, 0x0010, 0x602b, 0x0020, 0x0156, 0x0126,\r
++      0x2091, 0x8000, 0x20a9, 0x0005, 0x6024, 0xd0ac, 0x0150, 0x012e,\r
++      0x015e, 0x080c, 0xbf61, 0x0118, 0x9006, 0x080c, 0x285d, 0x0804,\r
++      0x7087, 0x6800, 0x9084, 0x00a1, 0xc0bd, 0x6802, 0x080c, 0x2819,\r
++      0x6904, 0xd1d4, 0x1140, 0x2001, 0x0100, 0x080c, 0x2833, 0x1f04,\r
++      0x702c, 0x080c, 0x710e, 0x012e, 0x015e, 0x080c, 0x70c8, 0x0170,\r
++      0x6044, 0x9005, 0x0130, 0x080c, 0x710e, 0x9006, 0x8001, 0x1df0,\r
++      0x0028, 0x6804, 0xd0d4, 0x1110, 0x080c, 0x710e, 0x080c, 0xbf61,\r
++      0x0118, 0x9006, 0x080c, 0x285d, 0x0016, 0x0026, 0x7000, 0x908e,\r
++      0x0004, 0x0130, 0x2009, 0x00c8, 0x2011, 0x6f2d, 0x080c, 0x821d,\r
++      0x002e, 0x001e, 0x080c, 0x806b, 0x7034, 0xc085, 0x7036, 0x2001,\r
++      0x194e, 0x2003, 0x0004, 0x080c, 0x6d82, 0x080c, 0x70c8, 0x0138,\r
++      0x6804, 0xd0d4, 0x1120, 0xd0dc, 0x1100, 0x080c, 0x73bc, 0x00ee,\r
++      0x00de, 0x00ce, 0x0005, 0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100,\r
++      0x2069, 0x0140, 0x2071, 0x1800, 0x080c, 0x8082, 0x080c, 0x8074,\r
++      0x080c, 0x73c6, 0x2001, 0x193e, 0x2003, 0x0000, 0x9006, 0x7096,\r
++      0x60e2, 0x6886, 0x080c, 0x2498, 0x9006, 0x080c, 0x2833, 0x6043,\r
++      0x0090, 0x6043, 0x0010, 0x0026, 0x2011, 0xffff, 0x080c, 0x286d,\r
++      0x002e, 0x602b, 0x182c, 0x00ee, 0x00de, 0x00ce, 0x0005, 0x0006,\r
++      0x2001, 0x194d, 0x2004, 0x9086, 0xaaaa, 0x000e, 0x0005, 0x0006,\r
++      0x080c, 0x5391, 0x9084, 0x0030, 0x9086, 0x0000, 0x000e, 0x0005,\r
++      0x0006, 0x080c, 0x5391, 0x9084, 0x0030, 0x9086, 0x0030, 0x000e,\r
++      0x0005, 0x0006, 0x080c, 0x5391, 0x9084, 0x0030, 0x9086, 0x0010,\r
++      0x000e, 0x0005, 0x0006, 0x080c, 0x5391, 0x9084, 0x0030, 0x9086,\r
++      0x0020, 0x000e, 0x0005, 0x0036, 0x0016, 0x2001, 0x180c, 0x2004,\r
++      0x908c, 0x0013, 0x0180, 0x0020, 0x080c, 0x24b8, 0x900e, 0x0028,\r
++      0x080c, 0x665f, 0x1dc8, 0x2009, 0x0002, 0x2019, 0x0028, 0x080c,\r
++      0x2fc5, 0x9006, 0x0019, 0x001e, 0x003e, 0x0005, 0x00e6, 0x2071,\r
++      0x180c, 0x2e04, 0x0130, 0x080c, 0xbf5a, 0x1128, 0x9085, 0x0010,\r
++      0x0010, 0x9084, 0xffef, 0x2072, 0x00ee, 0x0005, 0x6050, 0x0006,\r
++      0x60ec, 0x0006, 0x600c, 0x0006, 0x6004, 0x0006, 0x6028, 0x0006,\r
++      0x602f, 0x0100, 0x602f, 0x0000, 0x602f, 0x0040, 0x602f, 0x0000,\r
++      0x20a9, 0x0002, 0x080c, 0x27fa, 0x0026, 0x2011, 0x0040, 0x080c,\r
++      0x286d, 0x002e, 0x000e, 0x602a, 0x000e, 0x6006, 0x000e, 0x600e,\r
++      0x000e, 0x60ee, 0x60e3, 0x0000, 0x6887, 0x0001, 0x2001, 0x0001,\r
++      0x080c, 0x2498, 0x2001, 0x00a0, 0x0006, 0x080c, 0xbf61, 0x000e,\r
++      0x0130, 0x080c, 0x2851, 0x9006, 0x080c, 0x285d, 0x0010, 0x080c,\r
++      0x2833, 0x000e, 0x6052, 0x6050, 0x0006, 0xc0e5, 0x6052, 0x00f6,\r
++      0x2079, 0x0100, 0x080c, 0x27aa, 0x00fe, 0x000e, 0x6052, 0x0005,\r
++      0x0156, 0x0016, 0x0026, 0x0036, 0x00c6, 0x00d6, 0x00e6, 0x2061,\r
++      0x0100, 0x2069, 0x0140, 0x2071, 0x1800, 0x080c, 0x9926, 0x0158,\r
++      0x2001, 0x0386, 0x2004, 0xd0b4, 0x1130, 0x2001, 0x0016, 0x080c,\r
++      0x98b9, 0x0804, 0x71ea, 0x2001, 0x180c, 0x200c, 0xc1c4, 0x2102,\r
++      0x6028, 0x9084, 0xe1ff, 0x602a, 0x2011, 0x0200, 0x080c, 0x286d,\r
++      0x2001, 0x0090, 0x080c, 0x2833, 0x20a9, 0x0366, 0x6024, 0xd0cc,\r
++      0x1558, 0x1d04, 0x7186, 0x2091, 0x6000, 0x1f04, 0x7186, 0x080c,\r
++      0x98c8, 0x2011, 0x0003, 0x080c, 0x9339, 0x2011, 0x0002, 0x080c,\r
++      0x9343, 0x080c, 0x9206, 0x901e, 0x080c, 0x9286, 0x2001, 0x0386,\r
++      0x2003, 0x7000, 0x080c, 0x98e4, 0x2001, 0x00a0, 0x080c, 0x2833,\r
++      0x080c, 0x73b7, 0x080c, 0x5cdc, 0x080c, 0xbf61, 0x0110, 0x080c,\r
++      0x0cd1, 0x9085, 0x0001, 0x04e0, 0x2001, 0x0386, 0x2004, 0xd0ac,\r
++      0x0110, 0x080c, 0x1989, 0x60e3, 0x0000, 0x2001, 0x0002, 0x080c,\r
++      0x2498, 0x60e2, 0x2001, 0x0080, 0x080c, 0x2833, 0x20a9, 0x0366,\r
++      0x2011, 0x1e00, 0x080c, 0x286d, 0x2009, 0x1e00, 0x080c, 0x2819,\r
++      0x6024, 0x910c, 0x0140, 0x1d04, 0x71c8, 0x2091, 0x6000, 0x1f04,\r
++      0x71c8, 0x0804, 0x718f, 0x2001, 0x0386, 0x2003, 0x7000, 0x6028,\r
++      0x9085, 0x1e00, 0x602a, 0x70b0, 0x9005, 0x1118, 0x6887, 0x0001,\r
++      0x0008, 0x6886, 0x080c, 0xbf61, 0x0110, 0x080c, 0x0cd1, 0x9006,\r
++      0x00ee, 0x00de, 0x00ce, 0x003e, 0x002e, 0x001e, 0x015e, 0x0005,\r
++      0x0156, 0x0016, 0x0026, 0x0036, 0x00c6, 0x00d6, 0x00e6, 0x2061,\r
++      0x0100, 0x2071, 0x1800, 0x7000, 0x9086, 0x0003, 0x1168, 0x2001,\r
++      0x020b, 0x2004, 0x9084, 0x5540, 0x9086, 0x5540, 0x1128, 0x2069,\r
++      0x1a47, 0x2d04, 0x8000, 0x206a, 0x2069, 0x0140, 0x6020, 0x9084,\r
++      0x00c0, 0x0120, 0x6884, 0x9005, 0x1904, 0x7261, 0x2001, 0x0088,\r
++      0x080c, 0x2833, 0x9006, 0x60e2, 0x6886, 0x080c, 0x2498, 0x2069,\r
++      0x0200, 0x6804, 0x9005, 0x1118, 0x6808, 0x9005, 0x01d0, 0x6028,\r
++      0x9084, 0xfbff, 0x602a, 0x2011, 0x0400, 0x080c, 0x286d, 0x2069,\r
++      0x1960, 0x7000, 0x206a, 0x7097, 0x0026, 0x7003, 0x0001, 0x20a9,\r
++      0x0002, 0x1d04, 0x7241, 0x2091, 0x6000, 0x1f04, 0x7241, 0x0804,\r
++      0x7292, 0x2069, 0x0140, 0x20a9, 0x0384, 0x2011, 0x1e00, 0x080c,\r
++      0x286d, 0x2009, 0x1e00, 0x080c, 0x2819, 0x6024, 0x910c, 0x0528,\r
++      0x9084, 0x1a00, 0x1510, 0x1d04, 0x724d, 0x2091, 0x6000, 0x1f04,\r
++      0x724d, 0x080c, 0x98c8, 0x2011, 0x0003, 0x080c, 0x9339, 0x2011,\r
++      0x0002, 0x080c, 0x9343, 0x080c, 0x9206, 0x901e, 0x080c, 0x9286,\r
++      0x080c, 0x98e4, 0x2001, 0x00a0, 0x080c, 0x2833, 0x080c, 0x73b7,\r
++      0x080c, 0x5cdc, 0x9085, 0x0001, 0x00a8, 0x2001, 0x0080, 0x080c,\r
++      0x2833, 0x2069, 0x0140, 0x60e3, 0x0000, 0x70b0, 0x9005, 0x1118,\r
++      0x6887, 0x0001, 0x0008, 0x6886, 0x2001, 0x0002, 0x080c, 0x2498,\r
++      0x60e2, 0x9006, 0x00ee, 0x00de, 0x00ce, 0x003e, 0x002e, 0x001e,\r
++      0x015e, 0x0005, 0x0156, 0x0016, 0x0026, 0x0036, 0x00c6, 0x00d6,\r
++      0x00e6, 0x2061, 0x0100, 0x2071, 0x1800, 0x6020, 0x9084, 0x00c0,\r
++      0x01e8, 0x080c, 0x98c8, 0x2011, 0x0003, 0x080c, 0x9339, 0x2011,\r
++      0x0002, 0x080c, 0x9343, 0x080c, 0x9206, 0x901e, 0x080c, 0x9286,\r
++      0x080c, 0x98e4, 0x2069, 0x0140, 0x2001, 0x00a0, 0x080c, 0x2833,\r
++      0x080c, 0x73b7, 0x080c, 0x5cdc, 0x0804, 0x7334, 0x2001, 0x180c,\r
++      0x200c, 0xd1b4, 0x1160, 0xc1b5, 0x2102, 0x080c, 0x6f15, 0x2069,\r
++      0x0140, 0x2001, 0x0080, 0x080c, 0x2833, 0x60e3, 0x0000, 0x2069,\r
++      0x0200, 0x6804, 0x9005, 0x1118, 0x6808, 0x9005, 0x0190, 0x6028,\r
++      0x9084, 0xfdff, 0x602a, 0x2011, 0x0200, 0x080c, 0x286d, 0x2069,\r
++      0x1960, 0x7000, 0x206a, 0x7097, 0x0027, 0x7003, 0x0001, 0x0804,\r
++      0x7334, 0x2011, 0x1e00, 0x080c, 0x286d, 0x2009, 0x1e00, 0x080c,\r
++      0x2819, 0x6024, 0x910c, 0x01c8, 0x9084, 0x1c00, 0x11b0, 0x1d04,\r
++      0x72f1, 0x0006, 0x0016, 0x00c6, 0x00d6, 0x00e6, 0x080c, 0x80b3,\r
++      0x00ee, 0x00de, 0x00ce, 0x001e, 0x000e, 0x00e6, 0x2071, 0x19d4,\r
++      0x7018, 0x00ee, 0x9005, 0x19e8, 0x01f8, 0x0026, 0x2011, 0x6f2d,\r
++      0x080c, 0x8159, 0x2011, 0x6f20, 0x080c, 0x825f, 0x002e, 0x2069,\r
++      0x0140, 0x60e3, 0x0000, 0x70b0, 0x9005, 0x1118, 0x6887, 0x0001,\r
++      0x0008, 0x6886, 0x2001, 0x0002, 0x080c, 0x2498, 0x60e2, 0x2001,\r
++      0x180c, 0x200c, 0xc1b4, 0x2102, 0x00ee, 0x00de, 0x00ce, 0x003e,\r
++      0x002e, 0x001e, 0x015e, 0x0005, 0x0156, 0x0016, 0x0026, 0x0036,\r
++      0x0046, 0x00c6, 0x00e6, 0x2061, 0x0100, 0x2071, 0x1800, 0x080c,\r
++      0xbf5a, 0x1904, 0x73a1, 0x7130, 0xd184, 0x1170, 0x080c, 0x3186,\r
++      0x0138, 0xc18d, 0x7132, 0x2011, 0x1854, 0x2214, 0xd2ac, 0x1120,\r
++      0x7030, 0xd08c, 0x0904, 0x73a1, 0x2011, 0x1854, 0x220c, 0x0438,\r
++      0x0016, 0x2019, 0x000e, 0x080c, 0xd1eb, 0x0156, 0x00b6, 0x20a9,\r
++      0x007f, 0x900e, 0x9186, 0x007e, 0x01a0, 0x9186, 0x0080, 0x0188,\r
++      0x080c, 0x6270, 0x1170, 0x2120, 0x9006, 0x0016, 0x2009, 0x000e,\r
++      0x080c, 0xd273, 0x2009, 0x0001, 0x2011, 0x0100, 0x080c, 0x83eb,\r
++      0x001e, 0x8108, 0x1f04, 0x736a, 0x00be, 0x015e, 0x001e, 0xd1ac,\r
++      0x1148, 0x0016, 0x2009, 0x0002, 0x2019, 0x0004, 0x080c, 0x2fc5,\r
++      0x001e, 0x0078, 0x0156, 0x00b6, 0x20a9, 0x007f, 0x900e, 0x080c,\r
++      0x6270, 0x1110, 0x080c, 0x5cf6, 0x8108, 0x1f04, 0x7397, 0x00be,\r
++      0x015e, 0x080c, 0x1989, 0x080c, 0x98c8, 0x080c, 0x9b6d, 0x080c,\r
++      0x98e4, 0x60e3, 0x0000, 0x080c, 0x5cdc, 0x080c, 0x6fe8, 0x00ee,\r
++      0x00ce, 0x004e, 0x003e, 0x002e, 0x001e, 0x015e, 0x0005, 0x2001,\r
++      0x194e, 0x2003, 0x0001, 0x0005, 0x2001, 0x194e, 0x2003, 0x0000,\r
++      0x0005, 0x2001, 0x194d, 0x2003, 0xaaaa, 0x0005, 0x2001, 0x194d,\r
++      0x2003, 0x0000, 0x0005, 0x2071, 0x18f0, 0x7003, 0x0000, 0x7007,\r
++      0x0000, 0x080c, 0x103b, 0x090c, 0x0d65, 0xa8ab, 0xdcb0, 0x2900,\r
++      0x704e, 0x080c, 0x103b, 0x090c, 0x0d65, 0xa8ab, 0xdcb0, 0x2900,\r
++      0x7052, 0xa867, 0x0000, 0xa86b, 0x0001, 0xa89f, 0x0000, 0x0005,\r
++      0x00e6, 0x2071, 0x0040, 0x6848, 0x9005, 0x1118, 0x9085, 0x0001,\r
++      0x04b0, 0x6840, 0x9005, 0x0150, 0x04a1, 0x6a50, 0x9200, 0x7002,\r
++      0x6854, 0x9101, 0x7006, 0x9006, 0x7012, 0x7016, 0x6850, 0x7002,\r
++      0x6854, 0x7006, 0x6858, 0x700a, 0x685c, 0x700e, 0x6840, 0x9005,\r
++      0x1110, 0x7012, 0x7016, 0x6848, 0x701a, 0x701c, 0x9085, 0x0040,\r
++      0x701e, 0x2001, 0x0019, 0x7036, 0x702b, 0x0001, 0x2001, 0x0004,\r
++      0x200c, 0x918c, 0xfff7, 0x918d, 0x8000, 0x2102, 0x00d6, 0x2069,\r
++      0x18f0, 0x6807, 0x0001, 0x00de, 0x080c, 0x79c3, 0x9006, 0x00ee,\r
++      0x0005, 0x900e, 0x0156, 0x20a9, 0x0006, 0x8003, 0x818d, 0x1f04,\r
++      0x742d, 0x015e, 0x0005, 0x2079, 0x0040, 0x2071, 0x18f0, 0x7004,\r
++      0x0002, 0x7443, 0x7444, 0x748f, 0x74ea, 0x762b, 0x7441, 0x7441,\r
++      0x7655, 0x080c, 0x0d65, 0x0005, 0x2079, 0x0040, 0x2001, 0x1dc0,\r
++      0x2003, 0x0000, 0x782c, 0x908c, 0x0780, 0x190c, 0x7a4f, 0xd0a4,\r
++      0x0570, 0x2001, 0x1dc0, 0x2004, 0x9082, 0x0080, 0x1640, 0x1d04,\r
++      0x7461, 0x2001, 0x19d7, 0x200c, 0x8109, 0x0508, 0x2091, 0x6000,\r
++      0x2102, 0x7824, 0x2048, 0x9006, 0xa802, 0xa806, 0xa864, 0x9084,\r
++      0x00ff, 0x908a, 0x0040, 0x0608, 0x00b8, 0x2001, 0x1800, 0x200c,\r
++      0x9186, 0x0003, 0x1160, 0x7104, 0x9186, 0x0004, 0x0140, 0x9186,\r
++      0x0007, 0x0128, 0x9186, 0x0003, 0x1968, 0x080c, 0x74ea, 0x782c,\r
++      0xd09c, 0x090c, 0x79c3, 0x0005, 0x9082, 0x005a, 0x1218, 0x2100,\r
++      0x003b, 0x0c18, 0x080c, 0x7520, 0x0c90, 0x00e3, 0x08f0, 0x0005,\r
++      0x7520, 0x7520, 0x7520, 0x7520, 0x7520, 0x7520, 0x7520, 0x7520,\r
++      0x7542, 0x7520, 0x7520, 0x7520, 0x7520, 0x7520, 0x7520, 0x7520,\r
++      0x7520, 0x7520, 0x7520, 0x7520, 0x7520, 0x7520, 0x7520, 0x7520,\r
++      0x7520, 0x7520, 0x7520, 0x7520, 0x752c, 0x7520, 0x772a, 0x7520,\r
++      0x7520, 0x7520, 0x7542, 0x7520, 0x752c, 0x776b, 0x77ac, 0x77f3,\r
++      0x7807, 0x7520, 0x7520, 0x7542, 0x752c, 0x7520, 0x7520, 0x75ff,\r
++      0x78b2, 0x78cd, 0x7520, 0x7542, 0x7520, 0x7520, 0x7520, 0x7520,\r
++      0x75f5, 0x78cd, 0x7520, 0x7520, 0x7520, 0x7520, 0x7520, 0x7520,\r
++      0x7520, 0x7520, 0x7520, 0x7556, 0x7520, 0x7520, 0x7520, 0x7520,\r
++      0x7520, 0x7520, 0x7520, 0x7520, 0x7520, 0x79f3, 0x7520, 0x7520,\r
++      0x7520, 0x7520, 0x7520, 0x756a, 0x7520, 0x7520, 0x7520, 0x7520,\r
++      0x7520, 0x7520, 0x2079, 0x0040, 0x7004, 0x9086, 0x0003, 0x1198,\r
++      0x782c, 0x080c, 0x79ec, 0xd0a4, 0x0170, 0x7824, 0x2048, 0x9006,\r
++      0xa802, 0xa806, 0xa864, 0x9084, 0x00ff, 0x908a, 0x001a, 0x1210,\r
++      0x002b, 0x0c50, 0x00e9, 0x080c, 0x79c3, 0x0005, 0x7520, 0x752c,\r
++      0x7716, 0x7520, 0x752c, 0x7520, 0x752c, 0x752c, 0x7520, 0x752c,\r
++      0x7716, 0x752c, 0x752c, 0x752c, 0x752c, 0x752c, 0x7520, 0x752c,\r
++      0x7716, 0x7520, 0x7520, 0x752c, 0x7520, 0x7520, 0x7520, 0x752c,\r
++      0x00e6, 0x2071, 0x18f0, 0x2009, 0x0400, 0x0071, 0x00ee, 0x0005,\r
++      0x2009, 0x1000, 0x0049, 0x0005, 0x2009, 0x2000, 0x0029, 0x0005,\r
++      0x2009, 0x0800, 0x0009, 0x0005, 0x7007, 0x0001, 0xa868, 0x9084,\r
++      0x00ff, 0x9105, 0xa86a, 0x0126, 0x2091, 0x8000, 0x080c, 0x6996,\r
++      0x012e, 0x0005, 0xa864, 0x8007, 0x9084, 0x00ff, 0x0d08, 0x8001,\r
++      0x1120, 0x7007, 0x0001, 0x0804, 0x76d4, 0x7007, 0x0003, 0x7012,\r
++      0x2900, 0x7016, 0x701a, 0x704b, 0x76d4, 0x0005, 0xa864, 0x8007,\r
++      0x9084, 0x00ff, 0x0968, 0x8001, 0x1120, 0x7007, 0x0001, 0x0804,\r
++      0x76ef, 0x7007, 0x0003, 0x7012, 0x2900, 0x7016, 0x701a, 0x704b,\r
++      0x76ef, 0x0005, 0xa864, 0x8007, 0x9084, 0x00ff, 0x9086, 0x0001,\r
++      0x1904, 0x7528, 0x7007, 0x0001, 0x2009, 0x1833, 0x210c, 0x81ff,\r
++      0x1904, 0x75cc, 0xa994, 0x9186, 0x006f, 0x0188, 0x9186, 0x0074,\r
++      0x15b0, 0x0026, 0x2011, 0x0010, 0x080c, 0x668b, 0x002e, 0x0578,\r
++      0x0016, 0xa998, 0x080c, 0x66d5, 0x001e, 0x1548, 0x0400, 0x080c,\r
++      0x70b7, 0x0140, 0xa897, 0x4005, 0xa89b, 0x0016, 0x2001, 0x0030,\r
++      0x900e, 0x0438, 0x0026, 0x2011, 0x8008, 0x080c, 0x668b, 0x002e,\r
++      0x01b0, 0x0016, 0x0026, 0x0036, 0xa998, 0xaaa0, 0xab9c, 0x918d,\r
++      0x8000, 0x080c, 0x66d5, 0x003e, 0x002e, 0x001e, 0x1140, 0xa897,\r
++      0x4005, 0xa89b, 0x4009, 0x2001, 0x0030, 0x900e, 0x0050, 0xa868,\r
++      0x9084, 0x00ff, 0xa86a, 0xa883, 0x0000, 0x080c, 0x5f07, 0x1108,\r
++      0x0005, 0x0126, 0x2091, 0x8000, 0xa867, 0x0139, 0xa87a, 0xa982,\r
++      0x080c, 0x6996, 0x012e, 0x0ca0, 0xa994, 0x9186, 0x0071, 0x0904,\r
++      0x757a, 0x9186, 0x0064, 0x0904, 0x757a, 0x9186, 0x007c, 0x0904,\r
++      0x757a, 0x9186, 0x0028, 0x0904, 0x757a, 0x9186, 0x0038, 0x0904,\r
++      0x757a, 0x9186, 0x0078, 0x0904, 0x757a, 0x9186, 0x005f, 0x0904,\r
++      0x757a, 0x9186, 0x0056, 0x0904, 0x757a, 0xa897, 0x4005, 0xa89b,\r
++      0x0001, 0x2001, 0x0030, 0x900e, 0x0860, 0xa87c, 0x9084, 0x00c0,\r
++      0x9086, 0x00c0, 0x1120, 0x7007, 0x0001, 0x0804, 0x78e4, 0x2900,\r
++      0x7016, 0x701a, 0x20a9, 0x0004, 0xa860, 0x20e0, 0xa85c, 0x9080,\r
++      0x0030, 0x2098, 0x7050, 0x2040, 0xa060, 0x20e8, 0xa05c, 0x9080,\r
++      0x0023, 0x20a0, 0x4003, 0xa888, 0x7012, 0x9082, 0x0401, 0x1a04,\r
++      0x7530, 0xaab4, 0x928a, 0x0002, 0x1a04, 0x7530, 0x82ff, 0x1138,\r
++      0xa8b8, 0xa9bc, 0x9105, 0x0118, 0x2001, 0x7692, 0x0018, 0x9280,\r
++      0x7688, 0x2005, 0x7056, 0x7010, 0x9015, 0x0904, 0x7673, 0x080c,\r
++      0x103b, 0x1118, 0x7007, 0x0004, 0x0005, 0x2900, 0x7022, 0x7054,\r
++      0x2060, 0xe000, 0xa866, 0x7050, 0x2040, 0xa95c, 0xe004, 0x9100,\r
++      0xa076, 0xa860, 0xa072, 0xe008, 0x920a, 0x1210, 0x900e, 0x2200,\r
++      0x7112, 0xe20c, 0x8003, 0x800b, 0x9296, 0x0004, 0x0108, 0x9108,\r
++      0xa17a, 0x810b, 0xa17e, 0x080c, 0x110c, 0xa06c, 0x908e, 0x0100,\r
++      0x0170, 0x9086, 0x0200, 0x0118, 0x7007, 0x0007, 0x0005, 0x7020,\r
++      0x2048, 0x080c, 0x1054, 0x7014, 0x2048, 0x0804, 0x7530, 0x7020,\r
++      0x2048, 0x7018, 0xa802, 0xa807, 0x0000, 0x2908, 0x2048, 0xa906,\r
++      0x711a, 0x0804, 0x762b, 0x7014, 0x2048, 0x7007, 0x0001, 0xa8b4,\r
++      0x9005, 0x1128, 0xa8b8, 0xa9bc, 0x9105, 0x0108, 0x00b9, 0xa864,\r
++      0x9084, 0x00ff, 0x9086, 0x001e, 0x0904, 0x78e4, 0x0804, 0x76d4,\r
++      0x768a, 0x768e, 0x0002, 0x001d, 0x0007, 0x0004, 0x000a, 0x001b,\r
++      0x0005, 0x0006, 0x000a, 0x001d, 0x0005, 0x0004, 0x0076, 0x0066,\r
++      0xafb8, 0xaebc, 0xa804, 0x2050, 0xb0c0, 0xb0e2, 0xb0bc, 0xb0de,\r
++      0xb0b8, 0xb0d2, 0xb0b4, 0xb0ce, 0xb6da, 0xb7d6, 0xb0b0, 0xb0ca,\r
++      0xb0ac, 0xb0c6, 0xb0a8, 0xb0ba, 0xb0a4, 0xb0b6, 0xb6c2, 0xb7be,\r
++      0xb0a0, 0xb0b2, 0xb09c, 0xb0ae, 0xb098, 0xb0a2, 0xb094, 0xb09e,\r
++      0xb6aa, 0xb7a6, 0xb090, 0xb09a, 0xb08c, 0xb096, 0xb088, 0xb08a,\r
++      0xb084, 0xb086, 0xb692, 0xb78e, 0xb080, 0xb082, 0xb07c, 0xb07e,\r
++      0xb078, 0xb072, 0xb074, 0xb06e, 0xb67a, 0xb776, 0xb004, 0x9055,\r
++      0x1958, 0x006e, 0x007e, 0x0005, 0x2009, 0x1833, 0x210c, 0x81ff,\r
++      0x1178, 0x080c, 0x5d56, 0x1108, 0x0005, 0x080c, 0x6bb3, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0xbb45, 0x080c, 0x6996, 0x012e, 0x0ca0,\r
++      0x080c, 0xbf5a, 0x1d70, 0x2001, 0x0028, 0x900e, 0x0c70, 0x2009,\r
++      0x1833, 0x210c, 0x81ff, 0x11d8, 0xa888, 0x9005, 0x01e0, 0xa883,\r
++      0x0000, 0xa87c, 0xd0f4, 0x0120, 0x080c, 0x5e69, 0x1138, 0x0005,\r
++      0x9006, 0xa87a, 0x080c, 0x5de4, 0x1108, 0x0005, 0x0126, 0x2091,\r
++      0x8000, 0xa87a, 0xa982, 0x080c, 0x6996, 0x012e, 0x0cb0, 0x2001,\r
++      0x0028, 0x900e, 0x0c98, 0x2001, 0x0000, 0x0c80, 0x7018, 0xa802,\r
++      0x2908, 0x2048, 0xa906, 0x711a, 0x7010, 0x8001, 0x7012, 0x0118,\r
++      0x7007, 0x0003, 0x0030, 0x7014, 0x2048, 0x7007, 0x0001, 0x7048,\r
++      0x080f, 0x0005, 0x00b6, 0x7007, 0x0001, 0xa974, 0xa878, 0x9084,\r
++      0x00ff, 0x9096, 0x0004, 0x0540, 0x20a9, 0x0001, 0x9096, 0x0001,\r
++      0x0190, 0x900e, 0x20a9, 0x0800, 0x9096, 0x0002, 0x0160, 0x9005,\r
++      0x11d8, 0xa974, 0x080c, 0x6270, 0x11b8, 0x0066, 0xae80, 0x080c,\r
++      0x6380, 0x006e, 0x0088, 0x0046, 0x2011, 0x180c, 0x2224, 0xc484,\r
++      0x2412, 0x004e, 0x00c6, 0x080c, 0x6270, 0x1110, 0x080c, 0x654f,\r
++      0x8108, 0x1f04, 0x7753, 0x00ce, 0xa87c, 0xd084, 0x1120, 0x080c,\r
++      0x1054, 0x00be, 0x0005, 0x0126, 0x2091, 0x8000, 0x080c, 0x6996,\r
++      0x012e, 0x00be, 0x0005, 0x0126, 0x2091, 0x8000, 0x7007, 0x0001,\r
++      0x080c, 0x6663, 0x0580, 0x2061, 0x1a3f, 0x6100, 0xd184, 0x0178,\r
++      0xa888, 0x9084, 0x00ff, 0x1550, 0x6000, 0xd084, 0x0520, 0x6004,\r
++      0x9005, 0x1538, 0x6003, 0x0000, 0x600b, 0x0000, 0x00c8, 0x2011,\r
++      0x0001, 0xa890, 0x9005, 0x1110, 0x2001, 0x001e, 0x8000, 0x6016,\r
++      0xa888, 0x9084, 0x00ff, 0x0178, 0x6006, 0xa888, 0x8007, 0x9084,\r
++      0x00ff, 0x0148, 0x600a, 0xa888, 0x8000, 0x1108, 0xc28d, 0x6202,\r
++      0x012e, 0x0804, 0x79ad, 0x012e, 0x0804, 0x79a7, 0x012e, 0x0804,\r
++      0x79a1, 0x012e, 0x0804, 0x79a4, 0x0126, 0x2091, 0x8000, 0x7007,\r
++      0x0001, 0x080c, 0x6663, 0x05e0, 0x2061, 0x1a3f, 0x6000, 0xd084,\r
++      0x05b8, 0x6204, 0x6308, 0xd08c, 0x1530, 0xac78, 0x9484, 0x0003,\r
++      0x0170, 0xa988, 0x918c, 0x00ff, 0x8001, 0x1120, 0x2100, 0x9210,\r
++      0x0620, 0x0028, 0x8001, 0x1508, 0x2100, 0x9212, 0x02f0, 0x9484,\r
++      0x000c, 0x0188, 0xa988, 0x810f, 0x918c, 0x00ff, 0x9082, 0x0004,\r
++      0x1120, 0x2100, 0x9318, 0x0288, 0x0030, 0x9082, 0x0004, 0x1168,\r
++      0x2100, 0x931a, 0x0250, 0xa890, 0x9005, 0x0110, 0x8000, 0x6016,\r
++      0x6206, 0x630a, 0x012e, 0x0804, 0x79ad, 0x012e, 0x0804, 0x79aa,\r
++      0x012e, 0x0804, 0x79a7, 0x0126, 0x2091, 0x8000, 0x7007, 0x0001,\r
++      0x2061, 0x1a3f, 0x6300, 0xd38c, 0x1120, 0x6308, 0x8318, 0x0220,\r
++      0x630a, 0x012e, 0x0804, 0x79bb, 0x012e, 0x0804, 0x79aa, 0x00b6,\r
++      0x0126, 0x00c6, 0x2091, 0x8000, 0x7007, 0x0001, 0xa87c, 0xd0ac,\r
++      0x0148, 0x00c6, 0x2061, 0x1a3f, 0x6000, 0x9084, 0xfcff, 0x6002,\r
++      0x00ce, 0x0440, 0xa888, 0x9005, 0x05d8, 0xa88c, 0x9065, 0x0598,\r
++      0x2001, 0x1833, 0x2004, 0x9005, 0x0118, 0x080c, 0x9c21, 0x0068,\r
++      0x6017, 0xf400, 0x6063, 0x0000, 0xa97c, 0xd1a4, 0x0110, 0xa980,\r
++      0x6162, 0x2009, 0x0041, 0x080c, 0x9c85, 0xa988, 0x918c, 0xff00,\r
++      0x9186, 0x2000, 0x1138, 0x0026, 0x900e, 0x2011, 0xfdff, 0x080c,\r
++      0x83eb, 0x002e, 0xa87c, 0xd0c4, 0x0148, 0x2061, 0x1a3f, 0x6000,\r
++      0xd08c, 0x1120, 0x6008, 0x8000, 0x0208, 0x600a, 0x00ce, 0x012e,\r
++      0x00be, 0x0804, 0x79ad, 0x00ce, 0x012e, 0x00be, 0x0804, 0x79a7,\r
++      0xa984, 0x9186, 0x002e, 0x0d30, 0x9186, 0x002d, 0x0d18, 0x9186,\r
++      0x0045, 0x0510, 0x9186, 0x002a, 0x1130, 0x2001, 0x180c, 0x200c,\r
++      0xc194, 0x2102, 0x08b8, 0x9186, 0x0020, 0x0158, 0x9186, 0x0029,\r
++      0x1d10, 0xa974, 0x080c, 0x6270, 0x1968, 0xb800, 0xc0e4, 0xb802,\r
++      0x0848, 0xa88c, 0x9065, 0x09b8, 0x6007, 0x0024, 0x2001, 0x1957,\r
++      0x2004, 0x601a, 0x0804, 0x7842, 0xa88c, 0x9065, 0x0960, 0x00e6,\r
++      0xa890, 0x9075, 0x2001, 0x1833, 0x2004, 0x9005, 0x0150, 0x080c,\r
++      0x9c21, 0x8eff, 0x0118, 0x2e60, 0x080c, 0x9c21, 0x00ee, 0x0804,\r
++      0x7842, 0x6024, 0xc0dc, 0xc0d5, 0x6026, 0x2e60, 0x6007, 0x003a,\r
++      0xa8a0, 0x9005, 0x0130, 0x6007, 0x003b, 0xa8a4, 0x602e, 0xa8a8,\r
++      0x6016, 0x6003, 0x0001, 0x2009, 0x8020, 0x080c, 0x84d1, 0x00ee,\r
++      0x0804, 0x7842, 0x2061, 0x1a3f, 0x6000, 0xd084, 0x0190, 0xd08c,\r
++      0x1904, 0x79bb, 0x0126, 0x2091, 0x8000, 0x6204, 0x8210, 0x0220,\r
++      0x6206, 0x012e, 0x0804, 0x79bb, 0x012e, 0xa883, 0x0016, 0x0804,\r
++      0x79b4, 0xa883, 0x0007, 0x0804, 0x79b4, 0xa864, 0x8007, 0x9084,\r
++      0x00ff, 0x0130, 0x8001, 0x1138, 0x7007, 0x0001, 0x0069, 0x0005,\r
++      0x080c, 0x7528, 0x0040, 0x7007, 0x0003, 0x7012, 0x2900, 0x7016,\r
++      0x701a, 0x704b, 0x78e4, 0x0005, 0x00b6, 0x00e6, 0x0126, 0x2091,\r
++      0x8000, 0x903e, 0x2061, 0x1800, 0x61cc, 0x81ff, 0x1904, 0x7966,\r
++      0x6130, 0xd194, 0x1904, 0x7990, 0xa878, 0x2070, 0x9e82, 0x1ddc,\r
++      0x0a04, 0x795a, 0x6064, 0x9e02, 0x1a04, 0x795a, 0x7120, 0x9186,\r
++      0x0006, 0x1904, 0x794c, 0x7010, 0x905d, 0x0904, 0x7966, 0xb800,\r
++      0xd0e4, 0x1904, 0x798a, 0x2061, 0x1a3f, 0x6100, 0x9184, 0x0301,\r
++      0x9086, 0x0001, 0x15a0, 0x7024, 0xd0dc, 0x1904, 0x7993, 0xa883,\r
++      0x0000, 0xa803, 0x0000, 0x2908, 0x7014, 0x9005, 0x1198, 0x7116,\r
++      0xa87c, 0xd0f4, 0x1904, 0x7996, 0x080c, 0x538d, 0xd09c, 0x1118,\r
++      0xa87c, 0xc0cc, 0xa87e, 0x2e60, 0x080c, 0x82de, 0x012e, 0x00ee,\r
++      0x00be, 0x0005, 0x2048, 0xa800, 0x9005, 0x1de0, 0xa902, 0x2148,\r
++      0xa87c, 0xd0f4, 0x1904, 0x7996, 0x012e, 0x00ee, 0x00be, 0x0005,\r
++      0x012e, 0x00ee, 0xa883, 0x0006, 0x00be, 0x0804, 0x79b4, 0xd184,\r
++      0x0db8, 0xd1c4, 0x1190, 0x00a0, 0xa974, 0x080c, 0x6270, 0x15d0,\r
++      0xb800, 0xd0e4, 0x15b8, 0x7120, 0x9186, 0x0007, 0x1118, 0xa883,\r
++      0x0002, 0x0490, 0xa883, 0x0008, 0x0478, 0xa883, 0x000e, 0x0460,\r
++      0xa883, 0x0017, 0x0448, 0xa883, 0x0035, 0x0430, 0x080c, 0x5391,\r
++      0xd0fc, 0x01e8, 0xa878, 0x2070, 0x9e82, 0x1ddc, 0x02c0, 0x6064,\r
++      0x9e02, 0x12a8, 0x7120, 0x9186, 0x0006, 0x1188, 0x7010, 0x905d,\r
++      0x0170, 0xb800, 0xd0bc, 0x0158, 0x2039, 0x0001, 0x7000, 0x9086,\r
++      0x0007, 0x1904, 0x78f0, 0x7003, 0x0002, 0x0804, 0x78f0, 0xa883,\r
++      0x0028, 0x0010, 0xa883, 0x0029, 0x012e, 0x00ee, 0x00be, 0x0420,\r
++      0xa883, 0x002a, 0x0cc8, 0xa883, 0x0045, 0x0cb0, 0x2e60, 0x2019,\r
++      0x0002, 0x601b, 0x0014, 0x080c, 0xcdf9, 0x012e, 0x00ee, 0x00be,\r
++      0x0005, 0x2009, 0x003e, 0x0058, 0x2009, 0x0004, 0x0040, 0x2009,\r
++      0x0006, 0x0028, 0x2009, 0x0016, 0x0010, 0x2009, 0x0001, 0xa884,\r
++      0x9084, 0xff00, 0x9105, 0xa886, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0x6996, 0x012e, 0x0005, 0x080c, 0x1054, 0x0005, 0x00d6, 0x080c,\r
++      0x82d5, 0x00de, 0x0005, 0x00d6, 0x00e6, 0x0126, 0x2091, 0x8000,\r
++      0x2071, 0x0040, 0x702c, 0xd084, 0x01d8, 0x908c, 0x0780, 0x190c,\r
++      0x7a4f, 0xd09c, 0x11a8, 0x2071, 0x1800, 0x70bc, 0x90ea, 0x0040,\r
++      0x0278, 0x8001, 0x70be, 0x702c, 0x2048, 0xa800, 0x702e, 0x9006,\r
++      0xa802, 0xa806, 0x2071, 0x0040, 0x2900, 0x7022, 0x702c, 0x0c28,\r
++      0x012e, 0x00ee, 0x00de, 0x0005, 0x0006, 0x9084, 0x0780, 0x190c,\r
++      0x7a4f, 0x000e, 0x0005, 0x00d6, 0x00c6, 0x0036, 0x0026, 0x0016,\r
++      0x00b6, 0x7007, 0x0001, 0xaa74, 0x9282, 0x0004, 0x1a04, 0x7a40,\r
++      0xa97c, 0x9188, 0x1000, 0x2104, 0x905d, 0xb804, 0xd284, 0x0140,\r
++      0x05e8, 0x8007, 0x9084, 0x00ff, 0x9084, 0x0006, 0x1108, 0x04b0,\r
++      0x2b10, 0x080c, 0x9b91, 0x1118, 0x080c, 0x9c58, 0x05a8, 0x6212,\r
++      0xa874, 0x0002, 0x7a1e, 0x7a23, 0x7a26, 0x7a2c, 0x2019, 0x0002,\r
++      0x080c, 0xd1eb, 0x0060, 0x080c, 0xd17b, 0x0048, 0x2019, 0x0002,\r
++      0xa980, 0x080c, 0xd19a, 0x0018, 0xa980, 0x080c, 0xd17b, 0x080c,\r
++      0x9be7, 0xa887, 0x0000, 0x0126, 0x2091, 0x8000, 0x080c, 0x6996,\r
++      0x012e, 0x00be, 0x001e, 0x002e, 0x003e, 0x00ce, 0x00de, 0x0005,\r
++      0xa887, 0x0006, 0x0c80, 0xa887, 0x0002, 0x0c68, 0xa887, 0x0005,\r
++      0x0c50, 0xa887, 0x0004, 0x0c38, 0xa887, 0x0007, 0x0c20, 0x2091,\r
++      0x8000, 0x0e04, 0x7a51, 0x0006, 0x0016, 0x2001, 0x8003, 0x0006,\r
++      0x0804, 0x0d6e, 0x2001, 0x1833, 0x2004, 0x9005, 0x0005, 0x0005,\r
++      0x00f6, 0x2079, 0x0300, 0x2001, 0x0200, 0x200c, 0xc1e5, 0xc1dc,\r
++      0x2102, 0x2009, 0x0218, 0x210c, 0xd1ec, 0x1120, 0x080c, 0x152d,\r
++      0x00fe, 0x0005, 0x2001, 0x020d, 0x2003, 0x0020, 0x781f, 0x0300,\r
++      0x00fe, 0x0005, 0x781c, 0xd08c, 0x0904, 0x7ad2, 0x68bc, 0x90aa,\r
++      0x0005, 0x0a04, 0x806b, 0x7d44, 0x7c40, 0xd59c, 0x190c, 0x0d65,\r
++      0x9584, 0x00f6, 0x1508, 0x9484, 0x7000, 0x0138, 0x908a, 0x2000,\r
++      0x1258, 0x9584, 0x0700, 0x8007, 0x04f0, 0x7000, 0x9084, 0xff00,\r
++      0x9086, 0x8100, 0x0db0, 0x00b0, 0x9484, 0x0fff, 0x1130, 0x7000,\r
++      0x9084, 0xff00, 0x9086, 0x8100, 0x11c0, 0x080c, 0xd5d3, 0x080c,\r
++      0x7fb2, 0x7817, 0x0140, 0x00a8, 0x9584, 0x0076, 0x1118, 0x080c,\r
++      0x800e, 0x19c8, 0xd5a4, 0x0148, 0x0046, 0x0056, 0x080c, 0x7b22,\r
++      0x080c, 0x1fb7, 0x005e, 0x004e, 0x0020, 0x080c, 0xd5d3, 0x7817,\r
++      0x0140, 0x080c, 0x70b7, 0x0168, 0x2001, 0x0111, 0x2004, 0xd08c,\r
++      0x0140, 0x688f, 0x0000, 0x2001, 0x0110, 0x2003, 0x0008, 0x2003,\r
++      0x0000, 0x0489, 0x0005, 0x0002, 0x7adf, 0x7dd4, 0x7adc, 0x7adc,\r
++      0x7adc, 0x7adc, 0x7adc, 0x7adc, 0x7817, 0x0140, 0x0005, 0x7000,\r
++      0x908c, 0xff00, 0x9194, 0xf000, 0x810f, 0x9484, 0x0fff, 0x688e,\r
++      0x9286, 0x2000, 0x1150, 0x6800, 0x9086, 0x0001, 0x1118, 0x080c,\r
++      0x53ee, 0x0070, 0x080c, 0x7b42, 0x0058, 0x9286, 0x3000, 0x1118,\r
++      0x080c, 0x7d11, 0x0028, 0x9286, 0x8000, 0x1110, 0x080c, 0x7ee8,\r
++      0x7817, 0x0140, 0x0005, 0x2001, 0x1810, 0x2004, 0xd08c, 0x0178,\r
++      0x2001, 0x1800, 0x2004, 0x9086, 0x0003, 0x1148, 0x0026, 0x0036,\r
++      0x2011, 0x8048, 0x2518, 0x080c, 0x48d8, 0x003e, 0x002e, 0x0005,\r
++      0x0036, 0x0046, 0x0056, 0x00f6, 0x2079, 0x0200, 0x2019, 0xfffe,\r
++      0x7c30, 0x0050, 0x0036, 0x0046, 0x0056, 0x00f6, 0x2079, 0x0200,\r
++      0x7d44, 0x7c40, 0x2019, 0xffff, 0x2001, 0x1810, 0x2004, 0xd08c,\r
++      0x0160, 0x2001, 0x1800, 0x2004, 0x9086, 0x0003, 0x1130, 0x0026,\r
++      0x2011, 0x8048, 0x080c, 0x48d8, 0x002e, 0x00fe, 0x005e, 0x004e,\r
++      0x003e, 0x0005, 0x00b6, 0x00c6, 0x7010, 0x9084, 0xff00, 0x8007,\r
++      0x9096, 0x0001, 0x0120, 0x9096, 0x0023, 0x1904, 0x7ce2, 0x9186,\r
++      0x0023, 0x15c0, 0x080c, 0x7f7d, 0x0904, 0x7ce2, 0x6120, 0x9186,\r
++      0x0001, 0x0150, 0x9186, 0x0004, 0x0138, 0x9186, 0x0008, 0x0120,\r
++      0x9186, 0x000a, 0x1904, 0x7ce2, 0x7124, 0x610a, 0x7030, 0x908e,\r
++      0x0200, 0x1130, 0x2009, 0x0015, 0x080c, 0x9c85, 0x0804, 0x7ce2,\r
++      0x908e, 0x0214, 0x0118, 0x908e, 0x0210, 0x1130, 0x2009, 0x0015,\r
++      0x080c, 0x9c85, 0x0804, 0x7ce2, 0x908e, 0x0100, 0x1904, 0x7ce2,\r
++      0x7034, 0x9005, 0x1904, 0x7ce2, 0x2009, 0x0016, 0x080c, 0x9c85,\r
++      0x0804, 0x7ce2, 0x9186, 0x0022, 0x1904, 0x7ce2, 0x7030, 0x908e,\r
++      0x0300, 0x1580, 0x68d8, 0xd0a4, 0x0528, 0xc0b5, 0x68da, 0x7100,\r
++      0x918c, 0x00ff, 0x697a, 0x7004, 0x687e, 0x00f6, 0x2079, 0x0100,\r
++      0x79e6, 0x78ea, 0x0006, 0x9084, 0x00ff, 0x0016, 0x2008, 0x080c,\r
++      0x246d, 0x7932, 0x7936, 0x001e, 0x000e, 0x00fe, 0x080c, 0x2424,\r
++      0x695a, 0x703c, 0x00e6, 0x2071, 0x0140, 0x7086, 0x2071, 0x1800,\r
++      0x70b2, 0x00ee, 0x7034, 0x9005, 0x1904, 0x7ce2, 0x2009, 0x0017,\r
++      0x0804, 0x7c92, 0x908e, 0x0400, 0x1190, 0x7034, 0x9005, 0x1904,\r
++      0x7ce2, 0x080c, 0x70b7, 0x0120, 0x2009, 0x001d, 0x0804, 0x7c92,\r
++      0x68d8, 0xc0a5, 0x68da, 0x2009, 0x0030, 0x0804, 0x7c92, 0x908e,\r
++      0x0500, 0x1140, 0x7034, 0x9005, 0x1904, 0x7ce2, 0x2009, 0x0018,\r
++      0x0804, 0x7c92, 0x908e, 0x2010, 0x1120, 0x2009, 0x0019, 0x0804,\r
++      0x7c92, 0x908e, 0x2110, 0x1120, 0x2009, 0x001a, 0x0804, 0x7c92,\r
++      0x908e, 0x5200, 0x1140, 0x7034, 0x9005, 0x1904, 0x7ce2, 0x2009,\r
++      0x001b, 0x0804, 0x7c92, 0x908e, 0x5000, 0x1140, 0x7034, 0x9005,\r
++      0x1904, 0x7ce2, 0x2009, 0x001c, 0x0804, 0x7c92, 0x908e, 0x1300,\r
++      0x1120, 0x2009, 0x0034, 0x0804, 0x7c92, 0x908e, 0x1200, 0x1140,\r
++      0x7034, 0x9005, 0x1904, 0x7ce2, 0x2009, 0x0024, 0x0804, 0x7c92,\r
++      0x908c, 0xff00, 0x918e, 0x2400, 0x1170, 0x2009, 0x002d, 0x2001,\r
++      0x1810, 0x2004, 0xd09c, 0x0904, 0x7c92, 0x080c, 0xc62f, 0x1904,\r
++      0x7ce2, 0x0804, 0x7c90, 0x908c, 0xff00, 0x918e, 0x5300, 0x1120,\r
++      0x2009, 0x002a, 0x0804, 0x7c92, 0x908e, 0x0f00, 0x1120, 0x2009,\r
++      0x0020, 0x0804, 0x7c92, 0x908e, 0x6104, 0x1528, 0x2029, 0x0205,\r
++      0x2011, 0x026d, 0x8208, 0x2204, 0x9082, 0x0004, 0x8004, 0x8004,\r
++      0x20a8, 0x2011, 0x8015, 0x211c, 0x8108, 0x0046, 0x2124, 0x080c,\r
++      0x48d8, 0x004e, 0x8108, 0x0f04, 0x7c5e, 0x9186, 0x0280, 0x1d88,\r
++      0x2504, 0x8000, 0x202a, 0x2009, 0x0260, 0x0c58, 0x202b, 0x0000,\r
++      0x2009, 0x0023, 0x0478, 0x908e, 0x6000, 0x1118, 0x2009, 0x003f,\r
++      0x0448, 0x908e, 0x7800, 0x1118, 0x2009, 0x0045, 0x0418, 0x908e,\r
++      0x1000, 0x1118, 0x2009, 0x004e, 0x00e8, 0x908e, 0x6300, 0x1118,\r
++      0x2009, 0x004a, 0x00b8, 0x908c, 0xff00, 0x918e, 0x5600, 0x1118,\r
++      0x2009, 0x004f, 0x0078, 0x908c, 0xff00, 0x918e, 0x5700, 0x1118,\r
++      0x2009, 0x0050, 0x0038, 0x2009, 0x001d, 0x6838, 0xd0d4, 0x0110,\r
++      0x2009, 0x004c, 0x0016, 0x2011, 0x0263, 0x2204, 0x8211, 0x220c,\r
++      0x080c, 0x2424, 0x1904, 0x7ce5, 0x080c, 0x6210, 0x1904, 0x7ce5,\r
++      0xbe12, 0xbd16, 0x001e, 0x0016, 0x080c, 0x70b7, 0x01c0, 0x68d8,\r
++      0xd08c, 0x1148, 0x7000, 0x9084, 0x00ff, 0x1188, 0x7004, 0x9084,\r
++      0xff00, 0x1168, 0x0040, 0x6878, 0x9606, 0x1148, 0x687c, 0x9506,\r
++      0x9084, 0xff00, 0x1120, 0x9584, 0x00ff, 0xb886, 0x0080, 0xb884,\r
++      0x9005, 0x1168, 0x9186, 0x0046, 0x1150, 0x6878, 0x9606, 0x1138,\r
++      0x687c, 0x9506, 0x9084, 0xff00, 0x1110, 0x001e, 0x0098, 0x080c,\r
++      0x9b91, 0x01a8, 0x2b08, 0x6112, 0x6023, 0x0004, 0x7120, 0x610a,\r
++      0x001e, 0x9186, 0x004c, 0x1110, 0x6023, 0x000a, 0x0016, 0x001e,\r
++      0x080c, 0x9c85, 0x00ce, 0x00be, 0x0005, 0x001e, 0x0cd8, 0x2001,\r
++      0x180e, 0x2004, 0xd0ec, 0x0120, 0x2011, 0x8049, 0x080c, 0x48d8,\r
++      0x080c, 0x9c58, 0x0d90, 0x2b08, 0x6112, 0x6023, 0x0004, 0x7120,\r
++      0x610a, 0x001e, 0x0016, 0x9186, 0x0017, 0x0118, 0x9186, 0x0030,\r
++      0x1128, 0x6007, 0x0009, 0x6017, 0x2900, 0x0020, 0x6007, 0x0051,\r
++      0x6017, 0x0000, 0x602f, 0x0009, 0x6003, 0x0001, 0x080c, 0x84d8,\r
++      0x08a0, 0x080c, 0x3150, 0x1140, 0x7010, 0x9084, 0xff00, 0x8007,\r
++      0x908e, 0x0008, 0x1108, 0x0009, 0x0005, 0x00b6, 0x00c6, 0x0046,\r
++      0x7000, 0x908c, 0xff00, 0x810f, 0x9186, 0x0033, 0x11e8, 0x080c,\r
++      0x7f7d, 0x0904, 0x7d6c, 0x7124, 0x610a, 0x7030, 0x908e, 0x0200,\r
++      0x1140, 0x7034, 0x9005, 0x15c0, 0x2009, 0x0015, 0x080c, 0x9c85,\r
++      0x0498, 0x908e, 0x0100, 0x1580, 0x7034, 0x9005, 0x1568, 0x2009,\r
++      0x0016, 0x080c, 0x9c85, 0x0440, 0x9186, 0x0032, 0x1528, 0x7030,\r
++      0x908e, 0x1400, 0x1508, 0x2009, 0x0038, 0x0016, 0x2011, 0x0263,\r
++      0x2204, 0x8211, 0x220c, 0x080c, 0x2424, 0x11a8, 0x080c, 0x6210,\r
++      0x1190, 0xbe12, 0xbd16, 0x080c, 0x9b91, 0x0168, 0x2b08, 0x6112,\r
++      0x080c, 0xbcdb, 0x6023, 0x0004, 0x7120, 0x610a, 0x001e, 0x080c,\r
++      0x9c85, 0x0010, 0x00ce, 0x001e, 0x004e, 0x00ce, 0x00be, 0x0005,\r
++      0x00b6, 0x0046, 0x00e6, 0x00d6, 0x2028, 0x2130, 0x9696, 0x00ff,\r
++      0x11b8, 0x9592, 0xfffc, 0x02a0, 0x9596, 0xfffd, 0x1120, 0x2009,\r
++      0x007f, 0x0804, 0x7dce, 0x9596, 0xfffe, 0x1120, 0x2009, 0x007e,\r
++      0x0804, 0x7dce, 0x9596, 0xfffc, 0x1118, 0x2009, 0x0080, 0x04f0,\r
++      0x2011, 0x0000, 0x2019, 0x1836, 0x231c, 0xd3ac, 0x0130, 0x9026,\r
++      0x20a9, 0x0800, 0x2071, 0x1000, 0x0030, 0x2021, 0x0081, 0x20a9,\r
++      0x077f, 0x2071, 0x1081, 0x2e1c, 0x93dd, 0x0000, 0x1140, 0x82ff,\r
++      0x11d0, 0x9496, 0x00ff, 0x01b8, 0x2410, 0xc2fd, 0x00a0, 0xbf10,\r
++      0x2600, 0x9706, 0xb814, 0x1120, 0x9546, 0x1110, 0x2408, 0x00b0,\r
++      0x9745, 0x1148, 0x94c6, 0x007e, 0x0130, 0x94c6, 0x007f, 0x0118,\r
++      0x94c6, 0x0080, 0x1d20, 0x8420, 0x8e70, 0x1f04, 0x7da3, 0x82ff,\r
++      0x1118, 0x9085, 0x0001, 0x0018, 0xc2fc, 0x2208, 0x9006, 0x00de,\r
++      0x00ee, 0x004e, 0x00be, 0x0005, 0x7000, 0x908c, 0xff00, 0x810f,\r
++      0x9184, 0x000f, 0x0002, 0x7deb, 0x7deb, 0x7deb, 0x7f8f, 0x7deb,\r
++      0x7dee, 0x7e13, 0x7e9c, 0x7deb, 0x7deb, 0x7deb, 0x7deb, 0x7deb,\r
++      0x7deb, 0x7deb, 0x7deb, 0x7817, 0x0140, 0x0005, 0x00b6, 0x7110,\r
++      0xd1bc, 0x01e8, 0x7120, 0x2160, 0x9c8c, 0x0003, 0x11c0, 0x9c8a,\r
++      0x1ddc, 0x02a8, 0x6864, 0x9c02, 0x1290, 0x7008, 0x9084, 0x00ff,\r
++      0x6110, 0x2158, 0xb910, 0x9106, 0x1150, 0x700c, 0xb914, 0x9106,\r
++      0x1130, 0x7124, 0x610a, 0x2009, 0x0046, 0x080c, 0x9c85, 0x7817,\r
++      0x0140, 0x00be, 0x0005, 0x00b6, 0x00c6, 0x9484, 0x0fff, 0x0904,\r
++      0x7e78, 0x7110, 0xd1bc, 0x1904, 0x7e78, 0x7108, 0x700c, 0x2028,\r
++      0x918c, 0x00ff, 0x2130, 0x9094, 0xff00, 0x15c8, 0x81ff, 0x15b8,\r
++      0x9080, 0x318b, 0x200d, 0x918c, 0xff00, 0x810f, 0x2001, 0x0080,\r
++      0x9106, 0x0904, 0x7e78, 0x9182, 0x0801, 0x1a04, 0x7e78, 0x9190,\r
++      0x1000, 0x2204, 0x905d, 0x05e0, 0xbe12, 0xbd16, 0xb800, 0xd0ec,\r
++      0x15b8, 0xba04, 0x9294, 0xff00, 0x9286, 0x0600, 0x1190, 0x080c,\r
++      0x9b91, 0x0598, 0x2b08, 0x7028, 0x6052, 0x702c, 0x604e, 0x6112,\r
++      0x6023, 0x0006, 0x7120, 0x610a, 0x7130, 0x615e, 0x080c, 0xc893,\r
++      0x00f8, 0x080c, 0x6667, 0x1138, 0xb807, 0x0606, 0x0c40, 0x190c,\r
++      0x7d70, 0x11b0, 0x0880, 0x080c, 0x9b91, 0x2b08, 0x0188, 0x6112,\r
++      0x6023, 0x0004, 0x7120, 0x610a, 0x9286, 0x0400, 0x1118, 0x6007,\r
++      0x0005, 0x0010, 0x6007, 0x0001, 0x6003, 0x0001, 0x080c, 0x84d8,\r
++      0x7817, 0x0140, 0x00ce, 0x00be, 0x0005, 0x2001, 0x180e, 0x2004,\r
++      0xd0ec, 0x0120, 0x2011, 0x8049, 0x080c, 0x48d8, 0x080c, 0x9c58,\r
++      0x0d78, 0x2b08, 0x6112, 0x6023, 0x0006, 0x7120, 0x610a, 0x7130,\r
++      0x615e, 0x6017, 0xf300, 0x6003, 0x0001, 0x6007, 0x0041, 0x2009,\r
++      0xa022, 0x080c, 0x84d1, 0x08e0, 0x00b6, 0x7110, 0xd1bc, 0x05d0,\r
++      0x7020, 0x2060, 0x9c84, 0x0003, 0x15a8, 0x9c82, 0x1ddc, 0x0690,\r
++      0x6864, 0x9c02, 0x1678, 0x9484, 0x0fff, 0x9082, 0x000c, 0x0650,\r
++      0x7008, 0x9084, 0x00ff, 0x6110, 0x2158, 0xb910, 0x9106, 0x1510,\r
++      0x700c, 0xb914, 0x9106, 0x11f0, 0x7124, 0x610a, 0x601c, 0xd0fc,\r
++      0x11c8, 0x2001, 0x0271, 0x2004, 0x9005, 0x1180, 0x9484, 0x0fff,\r
++      0x9082, 0x000c, 0x0158, 0x0066, 0x2031, 0x0100, 0xa001, 0xa001,\r
++      0x8631, 0x1de0, 0x006e, 0x601c, 0xd0fc, 0x1120, 0x2009, 0x0045,\r
++      0x080c, 0x9c85, 0x7817, 0x0140, 0x00be, 0x0005, 0x6120, 0x9186,\r
++      0x0002, 0x0128, 0x9186, 0x0005, 0x0110, 0x9085, 0x0001, 0x0005,\r
++      0x080c, 0x3150, 0x1168, 0x7010, 0x9084, 0xff00, 0x8007, 0x9086,\r
++      0x0000, 0x1130, 0x9184, 0x000f, 0x908a, 0x0006, 0x1208, 0x000b,\r
++      0x0005, 0x7eff, 0x7f00, 0x7eff, 0x7eff, 0x7f5f, 0x7f6e, 0x0005,\r
++      0x00b6, 0x7110, 0xd1bc, 0x0120, 0x702c, 0xd084, 0x0904, 0x7f5d,\r
++      0x700c, 0x7108, 0x080c, 0x2424, 0x1904, 0x7f5d, 0x080c, 0x6210,\r
++      0x1904, 0x7f5d, 0xbe12, 0xbd16, 0x7110, 0xd1bc, 0x01d8, 0x080c,\r
++      0x6667, 0x0118, 0x9086, 0x0004, 0x1588, 0x00c6, 0x080c, 0x7f7d,\r
++      0x00ce, 0x05d8, 0x080c, 0x9b91, 0x2b08, 0x05b8, 0x6112, 0x080c,\r
++      0xbcdb, 0x6023, 0x0002, 0x7120, 0x610a, 0x2009, 0x0088, 0x080c,\r
++      0x9c85, 0x0458, 0x080c, 0x6667, 0x0148, 0x9086, 0x0004, 0x0130,\r
++      0x080c, 0x666f, 0x0118, 0x9086, 0x0004, 0x1180, 0x080c, 0x9b91,\r
++      0x2b08, 0x01d8, 0x6112, 0x080c, 0xbcdb, 0x6023, 0x0005, 0x7120,\r
++      0x610a, 0x2009, 0x0088, 0x080c, 0x9c85, 0x0078, 0x080c, 0x9b91,\r
++      0x2b08, 0x0158, 0x6112, 0x080c, 0xbcdb, 0x6023, 0x0004, 0x7120,\r
++      0x610a, 0x2009, 0x0001, 0x080c, 0x9c85, 0x00be, 0x0005, 0x7110,\r
++      0xd1bc, 0x0158, 0x00d1, 0x0148, 0x080c, 0x7ede, 0x1130, 0x7124,\r
++      0x610a, 0x2009, 0x0089, 0x080c, 0x9c85, 0x0005, 0x7110, 0xd1bc,\r
++      0x0158, 0x0059, 0x0148, 0x080c, 0x7ede, 0x1130, 0x7124, 0x610a,\r
++      0x2009, 0x008a, 0x080c, 0x9c85, 0x0005, 0x7020, 0x2060, 0x9c84,\r
++      0x0003, 0x1158, 0x9c82, 0x1ddc, 0x0240, 0x2001, 0x1819, 0x2004,\r
++      0x9c02, 0x1218, 0x9085, 0x0001, 0x0005, 0x9006, 0x0ce8, 0x00b6,\r
++      0x7110, 0xd1bc, 0x11d8, 0x7024, 0x2060, 0x9c84, 0x0003, 0x11b0,\r
++      0x9c82, 0x1ddc, 0x0298, 0x6864, 0x9c02, 0x1280, 0x7008, 0x9084,\r
++      0x00ff, 0x6110, 0x2158, 0xb910, 0x9106, 0x1140, 0x700c, 0xb914,\r
++      0x9106, 0x1120, 0x2009, 0x0051, 0x080c, 0x9c85, 0x7817, 0x0140,\r
++      0x00be, 0x0005, 0x2031, 0x0105, 0x0069, 0x0005, 0x2031, 0x0206,\r
++      0x0049, 0x0005, 0x2031, 0x0207, 0x0029, 0x0005, 0x2031, 0x0213,\r
++      0x0009, 0x0005, 0x00c6, 0x0096, 0x00f6, 0x7000, 0x9084, 0xf000,\r
++      0x9086, 0xc000, 0x05c0, 0x080c, 0x9b91, 0x05a8, 0x0066, 0x00c6,\r
++      0x0046, 0x2011, 0x0263, 0x2204, 0x8211, 0x220c, 0x080c, 0x2424,\r
++      0x1590, 0x080c, 0x6210, 0x1578, 0xbe12, 0xbd16, 0x2b00, 0x004e,\r
++      0x00ce, 0x6012, 0x080c, 0xbcdb, 0x080c, 0x1022, 0x0500, 0x2900,\r
++      0x6062, 0x9006, 0xa802, 0xa866, 0xac6a, 0xa85c, 0x90f8, 0x001b,\r
++      0x20a9, 0x000e, 0xa860, 0x20e8, 0x20e1, 0x0000, 0x2fa0, 0x2e98,\r
++      0x4003, 0x006e, 0x6616, 0x6007, 0x003e, 0x6023, 0x0001, 0x6003,\r
++      0x0001, 0x080c, 0x84d8, 0x00fe, 0x009e, 0x00ce, 0x0005, 0x080c,\r
++      0x9be7, 0x006e, 0x0cc0, 0x004e, 0x00ce, 0x0cc8, 0x00c6, 0x7000,\r
++      0x908c, 0xff00, 0x9184, 0xf000, 0x810f, 0x9086, 0x2000, 0x1904,\r
++      0x8065, 0x9186, 0x0022, 0x15f0, 0x2001, 0x0111, 0x2004, 0x9005,\r
++      0x1904, 0x8067, 0x7030, 0x908e, 0x0400, 0x0904, 0x8067, 0x908e,\r
++      0x6000, 0x05e8, 0x908e, 0x5400, 0x05d0, 0x908e, 0x0300, 0x11d8,\r
++      0x2009, 0x1836, 0x210c, 0xd18c, 0x1590, 0xd1a4, 0x1580, 0x080c,\r
++      0x6625, 0x0558, 0x68ac, 0x9084, 0x00ff, 0x7100, 0x918c, 0x00ff,\r
++      0x9106, 0x1518, 0x687c, 0x69ac, 0x918c, 0xff00, 0x9105, 0x7104,\r
++      0x9106, 0x11d8, 0x00e0, 0x2009, 0x0103, 0x210c, 0xd1b4, 0x11a8,\r
++      0x908e, 0x5200, 0x09e8, 0x908e, 0x0500, 0x09d0, 0x908e, 0x5000,\r
++      0x09b8, 0x0058, 0x9186, 0x0023, 0x1140, 0x080c, 0x7f7d, 0x0128,\r
++      0x6004, 0x9086, 0x0002, 0x0118, 0x0000, 0x9006, 0x0010, 0x9085,\r
++      0x0001, 0x00ce, 0x0005, 0x00f6, 0x2079, 0x0200, 0x7800, 0xc0e5,\r
++      0xc0cc, 0x7802, 0x00fe, 0x0005, 0x00f6, 0x2079, 0x1800, 0x7834,\r
++      0xd084, 0x1130, 0x2079, 0x0200, 0x7800, 0x9085, 0x1200, 0x7802,\r
++      0x00fe, 0x0005, 0x00e6, 0x2071, 0x1800, 0x7034, 0xc084, 0x7036,\r
++      0x00ee, 0x0005, 0x2071, 0x19d4, 0x7003, 0x0003, 0x700f, 0x0361,\r
++      0x9006, 0x701a, 0x7072, 0x7012, 0x7017, 0x1ddc, 0x7007, 0x0000,\r
++      0x7026, 0x702b, 0x8fd9, 0x7032, 0x7037, 0x9056, 0x703f, 0xffff,\r
++      0x7042, 0x7047, 0x5224, 0x704a, 0x705b, 0x8226, 0x080c, 0x103b,\r
++      0x090c, 0x0d65, 0x2900, 0x703a, 0xa867, 0x0003, 0xa86f, 0x0100,\r
++      0xa8ab, 0xdcb0, 0x0005, 0x2071, 0x19d4, 0x1d04, 0x8148, 0x2091,\r
++      0x6000, 0x700c, 0x8001, 0x700e, 0x1560, 0x2001, 0x1875, 0x2004,\r
++      0xd0c4, 0x0158, 0x3a00, 0xd08c, 0x1140, 0x20d1, 0x0000, 0x20d1,\r
++      0x0001, 0x20d1, 0x0000, 0x080c, 0x0d65, 0x700f, 0x0361, 0x7007,\r
++      0x0001, 0x0126, 0x2091, 0x8000, 0x2069, 0x1800, 0x69e8, 0xd1e4,\r
++      0x1138, 0xd1dc, 0x1118, 0x080c, 0x8294, 0x0010, 0x080c, 0x826b,\r
++      0x7040, 0x900d, 0x0148, 0x8109, 0x7142, 0x1130, 0x7044, 0x080f,\r
++      0x0018, 0x0126, 0x2091, 0x8000, 0x7024, 0x900d, 0x0188, 0x7020,\r
++      0x8001, 0x7022, 0x1168, 0x7023, 0x0009, 0x8109, 0x7126, 0x9186,\r
++      0x03e8, 0x1110, 0x7028, 0x080f, 0x81ff, 0x1110, 0x7028, 0x080f,\r
++      0x7030, 0x900d, 0x0180, 0x702c, 0x8001, 0x702e, 0x1160, 0x702f,\r
++      0x0009, 0x8109, 0x7132, 0x0128, 0x9184, 0x007f, 0x090c, 0x90de,\r
++      0x0010, 0x7034, 0x080f, 0x703c, 0x9005, 0x0118, 0x0310, 0x8001,\r
++      0x703e, 0x704c, 0x900d, 0x0168, 0x7048, 0x8001, 0x704a, 0x1148,\r
++      0x704b, 0x0009, 0x8109, 0x714e, 0x1120, 0x7150, 0x714e, 0x7058,\r
++      0x080f, 0x7018, 0x900d, 0x01d8, 0x0016, 0x7070, 0x900d, 0x0158,\r
++      0x706c, 0x8001, 0x706e, 0x1138, 0x706f, 0x0009, 0x8109, 0x7172,\r
++      0x1110, 0x7074, 0x080f, 0x001e, 0x7008, 0x8001, 0x700a, 0x1138,\r
++      0x700b, 0x0009, 0x8109, 0x711a, 0x1110, 0x701c, 0x080f, 0x012e,\r
++      0x7004, 0x0002, 0x8170, 0x8171, 0x819b, 0x00e6, 0x2071, 0x19d4,\r
++      0x7018, 0x9005, 0x1120, 0x711a, 0x721e, 0x700b, 0x0009, 0x00ee,\r
++      0x0005, 0x00e6, 0x0006, 0x2071, 0x19d4, 0x701c, 0x9206, 0x1120,\r
++      0x701a, 0x701e, 0x7072, 0x7076, 0x000e, 0x00ee, 0x0005, 0x00e6,\r
++      0x2071, 0x19d4, 0xb888, 0x9102, 0x0208, 0xb98a, 0x00ee, 0x0005,\r
++      0x0005, 0x00b6, 0x2031, 0x0010, 0x7110, 0x080c, 0x6270, 0x11a8,\r
++      0xb888, 0x8001, 0x0290, 0xb88a, 0x1180, 0x0126, 0x2091, 0x8000,\r
++      0x0066, 0xb8c0, 0x9005, 0x0138, 0x0026, 0xba3c, 0x0016, 0x080c,\r
++      0x639b, 0x001e, 0x002e, 0x006e, 0x012e, 0x8108, 0x9182, 0x0800,\r
++      0x1220, 0x8631, 0x0128, 0x7112, 0x0c00, 0x900e, 0x7007, 0x0002,\r
++      0x7112, 0x00be, 0x0005, 0x2031, 0x0010, 0x7014, 0x2060, 0x0126,\r
++      0x2091, 0x8000, 0x6048, 0x9005, 0x0128, 0x8001, 0x604a, 0x1110,\r
++      0x080c, 0xbb5c, 0x6018, 0x9005, 0x0904, 0x81ed, 0x00f6, 0x2079,\r
++      0x0300, 0x7918, 0xd1b4, 0x1904, 0x8200, 0x781b, 0x2020, 0xa001,\r
++      0x7918, 0xd1b4, 0x0120, 0x781b, 0x2000, 0x0804, 0x8200, 0x8001,\r
++      0x601a, 0x0106, 0x781b, 0x2000, 0xa001, 0x7918, 0xd1ac, 0x1dd0,\r
++      0x010e, 0x00fe, 0x1510, 0x6120, 0x9186, 0x0003, 0x0118, 0x9186,\r
++      0x0006, 0x11c8, 0x080c, 0xb847, 0x01b0, 0x6014, 0x2048, 0xa884,\r
++      0x908a, 0x199a, 0x0280, 0x9082, 0x1999, 0xa886, 0x908a, 0x199a,\r
++      0x0210, 0x2001, 0x1999, 0x8003, 0x800b, 0x810b, 0x9108, 0x611a,\r
++      0x080c, 0xbf8d, 0x0110, 0x080c, 0xb545, 0x012e, 0x9c88, 0x001c,\r
++      0x7116, 0x2001, 0x1819, 0x2004, 0x9102, 0x1228, 0x8631, 0x0138,\r
++      0x2160, 0x0804, 0x819f, 0x7017, 0x1ddc, 0x7007, 0x0000, 0x0005,\r
++      0x00fe, 0x0c58, 0x00e6, 0x2071, 0x19d4, 0x7027, 0x07d0, 0x7023,\r
++      0x0009, 0x00ee, 0x0005, 0x2001, 0x19dd, 0x2003, 0x0000, 0x0005,\r
++      0x00e6, 0x2071, 0x19d4, 0x7132, 0x702f, 0x0009, 0x00ee, 0x0005,\r
++      0x2011, 0x19e0, 0x2013, 0x0000, 0x0005, 0x00e6, 0x2071, 0x19d4,\r
++      0x711a, 0x721e, 0x700b, 0x0009, 0x00ee, 0x0005, 0x0086, 0x0026,\r
++      0x7054, 0x8000, 0x7056, 0x2001, 0x19e2, 0x2044, 0xa06c, 0x9086,\r
++      0x0000, 0x0150, 0x7068, 0xa09a, 0x7064, 0xa096, 0x7060, 0xa092,\r
++      0x705c, 0xa08e, 0x080c, 0x110c, 0x002e, 0x008e, 0x0005, 0x0006,\r
++      0x0016, 0x0096, 0x00a6, 0x00b6, 0x00c6, 0x00d6, 0x00e6, 0x00f6,\r
++      0x0156, 0x080c, 0x80b3, 0x015e, 0x00fe, 0x00ee, 0x00de, 0x00ce,\r
++      0x00be, 0x00ae, 0x009e, 0x001e, 0x000e, 0x0005, 0x00e6, 0x2071,\r
++      0x19d4, 0x7172, 0x7276, 0x706f, 0x0009, 0x00ee, 0x0005, 0x00e6,\r
++      0x0006, 0x2071, 0x19d4, 0x7074, 0x9206, 0x1110, 0x7072, 0x7076,\r
++      0x000e, 0x00ee, 0x0005, 0x2069, 0x1800, 0x69e8, 0xd1e4, 0x1518,\r
++      0x0026, 0xd1ec, 0x0140, 0x6a50, 0x6870, 0x9202, 0x0288, 0x8117,\r
++      0x9294, 0x00c1, 0x0088, 0x9184, 0x0007, 0x01a0, 0x8109, 0x9184,\r
++      0x0007, 0x0110, 0x69ea, 0x0070, 0x8107, 0x9084, 0x0007, 0x910d,\r
++      0x8107, 0x9106, 0x9094, 0x00c1, 0x9184, 0xff3e, 0x9205, 0x68ea,\r
++      0x080c, 0x0eed, 0x002e, 0x0005, 0x69e4, 0x9184, 0x003f, 0x05b8,\r
++      0x8109, 0x9184, 0x003f, 0x01a8, 0x6a50, 0x6870, 0x9202, 0x0220,\r
++      0xd1bc, 0x0168, 0xc1bc, 0x0018, 0xd1bc, 0x1148, 0xc1bd, 0x2110,\r
++      0x00e6, 0x2071, 0x1800, 0x080c, 0x0f0f, 0x00ee, 0x0400, 0x69e6,\r
++      0x00f0, 0x0026, 0x8107, 0x9094, 0x0007, 0x0128, 0x8001, 0x8007,\r
++      0x9085, 0x0007, 0x0050, 0x2010, 0x8004, 0x8004, 0x8004, 0x9084,\r
++      0x0007, 0x9205, 0x8007, 0x9085, 0x0028, 0x9086, 0x0040, 0x2010,\r
++      0x00e6, 0x2071, 0x1800, 0x080c, 0x0f0f, 0x00ee, 0x002e, 0x0005,\r
++      0x00c6, 0x2061, 0x1a3f, 0x00ce, 0x0005, 0x9184, 0x000f, 0x8003,\r
++      0x8003, 0x8003, 0x9080, 0x1a3f, 0x2060, 0x0005, 0xa884, 0x908a,\r
++      0x199a, 0x1638, 0x9005, 0x1150, 0x00c6, 0x2061, 0x1a3f, 0x6014,\r
++      0x00ce, 0x9005, 0x1130, 0x2001, 0x001e, 0x0018, 0x908e, 0xffff,\r
++      0x01b0, 0x8003, 0x800b, 0x810b, 0x9108, 0x611a, 0xa87c, 0x908c,\r
++      0x00c0, 0x918e, 0x00c0, 0x0904, 0x8395, 0xd0b4, 0x1168, 0xd0bc,\r
++      0x1904, 0x836e, 0x2009, 0x0006, 0x080c, 0x83c2, 0x0005, 0x900e,\r
++      0x0c60, 0x2001, 0x1999, 0x08b0, 0xd0fc, 0x05c8, 0x908c, 0x2023,\r
++      0x1550, 0x87ff, 0x1540, 0x6124, 0x918c, 0x0500, 0x1520, 0x6100,\r
++      0x918e, 0x0007, 0x1500, 0x2009, 0x1875, 0x210c, 0xd184, 0x11d8,\r
++      0x6003, 0x0003, 0x6007, 0x0043, 0x6047, 0xb035, 0x080c, 0x1aa5,\r
++      0xa87c, 0xc0dd, 0xa87e, 0x600f, 0x0000, 0x00f6, 0x2079, 0x0380,\r
++      0x7818, 0xd0bc, 0x1de8, 0x7833, 0x0013, 0x2c00, 0x7836, 0x781b,\r
++      0x8080, 0x00fe, 0x0005, 0x908c, 0x0003, 0x0120, 0x918e, 0x0003,\r
++      0x1904, 0x83bc, 0x908c, 0x2020, 0x918e, 0x2020, 0x01a8, 0x6024,\r
++      0xd0d4, 0x11e8, 0x2009, 0x1875, 0x2104, 0xd084, 0x1138, 0x87ff,\r
++      0x1120, 0x2009, 0x0043, 0x0804, 0x9c85, 0x0005, 0x87ff, 0x1de8,\r
++      0x2009, 0x0042, 0x0804, 0x9c85, 0x6110, 0x00b6, 0x2158, 0xb900,\r
++      0x00be, 0xd1ac, 0x0d20, 0x6024, 0xc0cd, 0x6026, 0x0c00, 0xc0d4,\r
++      0x6026, 0xa890, 0x602e, 0xa88c, 0x6032, 0x08e0, 0xd0fc, 0x0160,\r
++      0x908c, 0x0003, 0x0120, 0x918e, 0x0003, 0x1904, 0x83bc, 0x908c,\r
++      0x2020, 0x918e, 0x2020, 0x0170, 0x0076, 0x00f6, 0x2c78, 0x080c,\r
++      0x164f, 0x00fe, 0x007e, 0x87ff, 0x1120, 0x2009, 0x0042, 0x080c,\r
++      0x9c85, 0x0005, 0x6110, 0x00b6, 0x2158, 0xb900, 0x00be, 0xd1ac,\r
++      0x0d58, 0x6124, 0xc1cd, 0x6126, 0x0c38, 0xd0fc, 0x0188, 0x908c,\r
++      0x2020, 0x918e, 0x2020, 0x01a8, 0x9084, 0x0003, 0x908e, 0x0002,\r
++      0x0148, 0x87ff, 0x1120, 0x2009, 0x0041, 0x080c, 0x9c85, 0x0005,\r
++      0x00b9, 0x0ce8, 0x87ff, 0x1dd8, 0x2009, 0x0043, 0x080c, 0x9c85,\r
++      0x0cb0, 0x6110, 0x00b6, 0x2158, 0xb900, 0x00be, 0xd1ac, 0x0d20,\r
++      0x6124, 0xc1cd, 0x6126, 0x0c00, 0x2009, 0x0004, 0x0019, 0x0005,\r
++      0x2009, 0x0001, 0x0096, 0x080c, 0xb847, 0x0518, 0x6014, 0x2048,\r
++      0xa982, 0xa800, 0x6016, 0x9186, 0x0001, 0x1188, 0xa97c, 0x918c,\r
++      0x8100, 0x918e, 0x8100, 0x1158, 0x00c6, 0x2061, 0x1a3f, 0x6200,\r
++      0xd28c, 0x1120, 0x6204, 0x8210, 0x0208, 0x6206, 0x00ce, 0x080c,\r
++      0x67cb, 0x6014, 0x904d, 0x0076, 0x2039, 0x0000, 0x190c, 0x82de,\r
++      0x007e, 0x009e, 0x0005, 0x0156, 0x00c6, 0x2061, 0x1a3f, 0x6000,\r
++      0x81ff, 0x0110, 0x9205, 0x0008, 0x9204, 0x6002, 0x00ce, 0x015e,\r
++      0x0005, 0x6800, 0xd08c, 0x1138, 0x6808, 0x9005, 0x0120, 0x8001,\r
++      0x680a, 0x9085, 0x0001, 0x0005, 0x0126, 0x2091, 0x8000, 0x0036,\r
++      0x0046, 0x20a9, 0x0010, 0x9006, 0x8004, 0x8086, 0x818e, 0x1208,\r
++      0x9200, 0x1f04, 0x840d, 0x8086, 0x818e, 0x004e, 0x003e, 0x012e,\r
++      0x0005, 0x0126, 0x2091, 0x8000, 0x0076, 0x0156, 0x20a9, 0x0010,\r
++      0x9005, 0x01c8, 0x911a, 0x12b8, 0x8213, 0x818d, 0x0228, 0x911a,\r
++      0x1220, 0x1f04, 0x8424, 0x0028, 0x911a, 0x2308, 0x8210, 0x1f04,\r
++      0x8424, 0x0006, 0x3200, 0x9084, 0xefff, 0x2080, 0x000e, 0x015e,\r
++      0x007e, 0x012e, 0x0005, 0x0006, 0x3200, 0x9085, 0x1000, 0x0ca8,\r
++      0x0126, 0x2091, 0x2800, 0x2079, 0x19b8, 0x012e, 0x00d6, 0x2069,\r
++      0x19b8, 0x6803, 0x0005, 0x0156, 0x0146, 0x01d6, 0x20e9, 0x0000,\r
++      0x2069, 0x0200, 0x080c, 0x97fa, 0x04a9, 0x080c, 0x97e5, 0x0491,\r
++      0x080c, 0x97e8, 0x0479, 0x080c, 0x97eb, 0x0461, 0x080c, 0x97ee,\r
++      0x0449, 0x080c, 0x97f1, 0x0431, 0x080c, 0x97f4, 0x0419, 0x080c,\r
++      0x97f7, 0x0401, 0x01de, 0x014e, 0x015e, 0x6857, 0x0000, 0x00f6,\r
++      0x2079, 0x0380, 0x00f9, 0x7807, 0x0003, 0x7803, 0x0000, 0x7803,\r
++      0x0001, 0x2069, 0x0004, 0x2d04, 0x9084, 0xfffe, 0x9085, 0x8000,\r
++      0x206a, 0x2069, 0x0100, 0x6828, 0x9084, 0xfffc, 0x682a, 0x00fe,\r
++      0x00de, 0x0005, 0x20a9, 0x0020, 0x20a1, 0x0240, 0x2001, 0x0000,\r
++      0x4004, 0x0005, 0x00c6, 0x7803, 0x0000, 0x9006, 0x7827, 0x0030,\r
++      0x782b, 0x0400, 0x7827, 0x0031, 0x782b, 0x1abf, 0x781f, 0xff00,\r
++      0x781b, 0xff00, 0x2061, 0x1ab4, 0x602f, 0x19b8, 0x6033, 0x1800,\r
++      0x6037, 0x19d4, 0x603b, 0x1cf7, 0x603f, 0x1d07, 0x6042, 0x6047,\r
++      0x1a8a, 0x00ce, 0x0005, 0x2001, 0x0382, 0x2004, 0x9084, 0x0007,\r
++      0x9086, 0x0001, 0x01b0, 0x00c6, 0x6146, 0x600f, 0x0000, 0x2c08,\r
++      0x2061, 0x19b8, 0x602c, 0x8000, 0x602e, 0x601c, 0x9005, 0x0130,\r
++      0x9080, 0x0003, 0x2102, 0x611e, 0x00ce, 0x0005, 0x6122, 0x611e,\r
++      0x0cd8, 0x6146, 0x2c08, 0x2001, 0x0012, 0x080c, 0x98b9, 0x0005,\r
++      0x0016, 0x2009, 0x8020, 0x6146, 0x2c08, 0x2001, 0x0382, 0x2004,\r
++      0x9084, 0x0007, 0x9086, 0x0001, 0x1128, 0x2001, 0x0019, 0x080c,\r
++      0x98b9, 0x0088, 0x00c6, 0x2061, 0x19b8, 0x602c, 0x8000, 0x602e,\r
++      0x600c, 0x9005, 0x0128, 0x9080, 0x0003, 0x2102, 0x610e, 0x0010,\r
++      0x6112, 0x610e, 0x00ce, 0x001e, 0x0005, 0x2001, 0x0382, 0x2004,\r
++      0x9084, 0x0007, 0x9086, 0x0001, 0x0198, 0x00c6, 0x6146, 0x600f,\r
++      0x0000, 0x2c08, 0x2061, 0x19b8, 0x6044, 0x9005, 0x0130, 0x9080,\r
++      0x0003, 0x2102, 0x6146, 0x00ce, 0x0005, 0x614a, 0x6146, 0x0cd8,\r
++      0x6146, 0x600f, 0x0000, 0x2c08, 0x2001, 0x0013, 0x080c, 0x98b9,\r
++      0x0005, 0x6044, 0xd0dc, 0x0128, 0x9006, 0x7007, 0x0000, 0x700a,\r
++      0x7032, 0x0005, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x00b6, 0x0096,\r
++      0x0076, 0x0066, 0x0056, 0x0036, 0x0026, 0x0016, 0x0006, 0x0126,\r
++      0x902e, 0x2071, 0x19b8, 0x7648, 0x2660, 0x2678, 0x2091, 0x8000,\r
++      0x8cff, 0x0904, 0x85a3, 0x6010, 0x2058, 0xb8a0, 0x9206, 0x1904,\r
++      0x859e, 0x87ff, 0x0120, 0x605c, 0x9106, 0x1904, 0x859e, 0x704c,\r
++      0x9c06, 0x1178, 0x0036, 0x2019, 0x0001, 0x080c, 0x9286, 0x703f,\r
++      0x0000, 0x9006, 0x704e, 0x706a, 0x7052, 0x706e, 0x003e, 0x2029,\r
++      0x0001, 0x080c, 0x8521, 0x7048, 0x9c36, 0x1110, 0x660c, 0x764a,\r
++      0x7044, 0x9c36, 0x1140, 0x2c00, 0x9f36, 0x0118, 0x2f00, 0x7046,\r
++      0x0010, 0x7047, 0x0000, 0x660c, 0x0066, 0x2c00, 0x9f06, 0x0110,\r
++      0x7e0e, 0x0008, 0x2678, 0x600f, 0x0000, 0x080c, 0xb847, 0x01c8,\r
++      0x6014, 0x2048, 0x6020, 0x9086, 0x0003, 0x1560, 0xa867, 0x0103,\r
++      0xab7a, 0xa877, 0x0000, 0x0016, 0x0036, 0x0076, 0x080c, 0xbb45,\r
++      0x080c, 0xd51a, 0x080c, 0x6996, 0x007e, 0x003e, 0x001e, 0x080c,\r
++      0xba36, 0x080c, 0x9c21, 0x00ce, 0x0804, 0x8540, 0x2c78, 0x600c,\r
++      0x2060, 0x0804, 0x8540, 0x012e, 0x000e, 0x001e, 0x002e, 0x003e,\r
++      0x005e, 0x006e, 0x007e, 0x009e, 0x00be, 0x00ce, 0x00de, 0x00ee,\r
++      0x00fe, 0x0005, 0x6020, 0x9086, 0x0006, 0x1158, 0x0016, 0x0036,\r
++      0x0076, 0x080c, 0xd51a, 0x080c, 0xd21e, 0x007e, 0x003e, 0x001e,\r
++      0x08c0, 0x6020, 0x9086, 0x000a, 0x0918, 0x0800, 0x0006, 0x0066,\r
++      0x0096, 0x00c6, 0x00d6, 0x00f6, 0x9036, 0x0126, 0x2091, 0x8000,\r
++      0x2079, 0x19b8, 0x7848, 0x9065, 0x0904, 0x8625, 0x600c, 0x0006,\r
++      0x600f, 0x0000, 0x784c, 0x9c06, 0x11a0, 0x0036, 0x2019, 0x0001,\r
++      0x080c, 0x9286, 0x783f, 0x0000, 0x901e, 0x7b4e, 0x7b6a, 0x7b52,\r
++      0x7b6e, 0x003e, 0x000e, 0x9005, 0x1118, 0x600c, 0x600f, 0x0000,\r
++      0x0006, 0x00e6, 0x2f70, 0x080c, 0x8521, 0x00ee, 0x080c, 0xb847,\r
++      0x0520, 0x6014, 0x2048, 0x6020, 0x9086, 0x0003, 0x1580, 0x3e08,\r
++      0x918e, 0x0002, 0x1188, 0x6010, 0x9005, 0x0170, 0x00b6, 0x2058,\r
++      0xb800, 0x00be, 0xd0bc, 0x0140, 0x6048, 0x9005, 0x1198, 0x2001,\r
++      0x1959, 0x2004, 0x604a, 0x0070, 0xa867, 0x0103, 0xab7a, 0xa877,\r
++      0x0000, 0x080c, 0x698a, 0x080c, 0xba36, 0x6044, 0xc0fc, 0x6046,\r
++      0x080c, 0x9c21, 0x000e, 0x0804, 0x85d3, 0x7e4a, 0x7e46, 0x012e,\r
++      0x00fe, 0x00de, 0x00ce, 0x009e, 0x006e, 0x000e, 0x0005, 0x6020,\r
++      0x9086, 0x0006, 0x1118, 0x080c, 0xd21e, 0x0c38, 0x6020, 0x9086,\r
++      0x000a, 0x09e0, 0x08c8, 0x0016, 0x0026, 0x0086, 0x9046, 0x00a9,\r
++      0x080c, 0x872c, 0x008e, 0x002e, 0x001e, 0x0005, 0x00f6, 0x0126,\r
++      0x2079, 0x19b8, 0x2091, 0x8000, 0x080c, 0x8775, 0x080c, 0x8809,\r
++      0x080c, 0x63fd, 0x012e, 0x00fe, 0x0005, 0x00b6, 0x0096, 0x00f6,\r
++      0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0016, 0x0006, 0x0126, 0x2091,\r
++      0x8000, 0x2071, 0x19b8, 0x7620, 0x2660, 0x2678, 0x8cff, 0x0904,\r
++      0x86f1, 0x6010, 0x2058, 0xb8a0, 0x9206, 0x1904, 0x86ec, 0x88ff,\r
++      0x0120, 0x605c, 0x9106, 0x1904, 0x86ec, 0x7030, 0x9c06, 0x1570,\r
++      0x2069, 0x0100, 0x6820, 0xd0a4, 0x1508, 0x080c, 0x820b, 0x080c,\r
++      0x8fb7, 0x68c3, 0x0000, 0x080c, 0x94a2, 0x7033, 0x0000, 0x0036,\r
++      0x2069, 0x0140, 0x6b04, 0x9384, 0x1000, 0x0138, 0x2001, 0x0100,\r
++      0x080c, 0x2833, 0x9006, 0x080c, 0x2833, 0x2069, 0x0100, 0x6824,\r
++      0xd084, 0x0110, 0x6827, 0x0001, 0x003e, 0x0040, 0x7008, 0xc0ad,\r
++      0x700a, 0x6003, 0x0009, 0x630a, 0x0804, 0x86ec, 0x7020, 0x9c36,\r
++      0x1110, 0x660c, 0x7622, 0x701c, 0x9c36, 0x1140, 0x2c00, 0x9f36,\r
++      0x0118, 0x2f00, 0x701e, 0x0010, 0x701f, 0x0000, 0x660c, 0x0066,\r
++      0x2c00, 0x9f06, 0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f, 0x0000,\r
++      0x6044, 0xc0fc, 0x6046, 0x6014, 0x2048, 0x080c, 0xb847, 0x01e8,\r
++      0x6020, 0x9086, 0x0003, 0x1580, 0x080c, 0xba5c, 0x1118, 0x080c,\r
++      0xa58f, 0x0098, 0xa867, 0x0103, 0xab7a, 0xa877, 0x0000, 0x0016,\r
++      0x0036, 0x0086, 0x080c, 0xbb45, 0x080c, 0xd51a, 0x080c, 0x6996,\r
++      0x008e, 0x003e, 0x001e, 0x080c, 0xba36, 0x080c, 0x9c21, 0x080c,\r
++      0x9378, 0x00ce, 0x0804, 0x8666, 0x2c78, 0x600c, 0x2060, 0x0804,\r
++      0x8666, 0x012e, 0x000e, 0x001e, 0x006e, 0x00ce, 0x00de, 0x00ee,\r
++      0x00fe, 0x009e, 0x00be, 0x0005, 0x6020, 0x9086, 0x0006, 0x1158,\r
++      0x0016, 0x0036, 0x0086, 0x080c, 0xd51a, 0x080c, 0xd21e, 0x008e,\r
++      0x003e, 0x001e, 0x08d0, 0x080c, 0xa58f, 0x6020, 0x9086, 0x0002,\r
++      0x1160, 0x6004, 0x0006, 0x9086, 0x0085, 0x000e, 0x0904, 0x86d2,\r
++      0x9086, 0x008b, 0x0904, 0x86d2, 0x0840, 0x6020, 0x9086, 0x0005,\r
++      0x1920, 0x6004, 0x0006, 0x9086, 0x0085, 0x000e, 0x09c8, 0x9086,\r
++      0x008b, 0x09b0, 0x0804, 0x86e5, 0x0006, 0x00f6, 0x00e6, 0x0096,\r
++      0x00b6, 0x00c6, 0x0066, 0x0016, 0x0126, 0x2091, 0x8000, 0x9280,\r
++      0x1000, 0x2004, 0x905d, 0x2079, 0x19b8, 0x9036, 0x7828, 0x2060,\r
++      0x8cff, 0x0538, 0x6010, 0x9b06, 0x1500, 0x6043, 0xffff, 0x080c,\r
++      0x9a84, 0x01d8, 0x610c, 0x0016, 0x080c, 0x9110, 0x6014, 0x2048,\r
++      0xa867, 0x0103, 0xab7a, 0xa877, 0x0000, 0x0016, 0x0036, 0x0086,\r
++      0x080c, 0xbb45, 0x080c, 0xd51a, 0x080c, 0x6996, 0x008e, 0x003e,\r
++      0x001e, 0x080c, 0x9c21, 0x00ce, 0x08d8, 0x2c30, 0x600c, 0x2060,\r
++      0x08b8, 0x080c, 0x641a, 0x012e, 0x001e, 0x006e, 0x00ce, 0x00be,\r
++      0x009e, 0x00ee, 0x00fe, 0x000e, 0x0005, 0x0096, 0x0006, 0x0066,\r
++      0x00c6, 0x00d6, 0x9036, 0x7820, 0x9065, 0x0904, 0x87dc, 0x600c,\r
++      0x0006, 0x6044, 0xc0fc, 0x6046, 0x600f, 0x0000, 0x7830, 0x9c06,\r
++      0x1588, 0x2069, 0x0100, 0x6820, 0xd0a4, 0x1508, 0x080c, 0x820b,\r
++      0x080c, 0x8fb7, 0x68c3, 0x0000, 0x080c, 0x94a2, 0x7833, 0x0000,\r
++      0x0036, 0x2069, 0x0140, 0x6b04, 0x9384, 0x1000, 0x0138, 0x2001,\r
++      0x0100, 0x080c, 0x2833, 0x9006, 0x080c, 0x2833, 0x2069, 0x0100,\r
++      0x6824, 0xd084, 0x0110, 0x6827, 0x0001, 0x003e, 0x0058, 0x080c,\r
++      0x661d, 0x1538, 0x6003, 0x0009, 0x630a, 0x7808, 0xc0ad, 0x780a,\r
++      0x2c30, 0x00f8, 0x6014, 0x2048, 0x080c, 0xb845, 0x01b0, 0x6020,\r
++      0x9086, 0x0003, 0x1508, 0x080c, 0xba5c, 0x1118, 0x080c, 0xa58f,\r
++      0x0060, 0x080c, 0x661d, 0x1168, 0xa867, 0x0103, 0xab7a, 0xa877,\r
++      0x0000, 0x080c, 0x6996, 0x080c, 0xba36, 0x080c, 0x9c21, 0x080c,\r
++      0x9378, 0x000e, 0x0804, 0x877c, 0x7e22, 0x7e1e, 0x00de, 0x00ce,\r
++      0x006e, 0x000e, 0x009e, 0x0005, 0x6020, 0x9086, 0x0006, 0x1118,\r
++      0x080c, 0xd21e, 0x0c50, 0x080c, 0xa58f, 0x6020, 0x9086, 0x0002,\r
++      0x1150, 0x6004, 0x0006, 0x9086, 0x0085, 0x000e, 0x0990, 0x9086,\r
++      0x008b, 0x0978, 0x08d0, 0x6020, 0x9086, 0x0005, 0x19b0, 0x6004,\r
++      0x0006, 0x9086, 0x0085, 0x000e, 0x0d18, 0x9086, 0x008b, 0x0d00,\r
++      0x0860, 0x0006, 0x0096, 0x00b6, 0x00c6, 0x0066, 0x9036, 0x7828,\r
++      0x9065, 0x0510, 0x6010, 0x2058, 0x600c, 0x0006, 0x3e08, 0x918e,\r
++      0x0002, 0x1118, 0xb800, 0xd0bc, 0x11a8, 0x6043, 0xffff, 0x080c,\r
++      0x9a84, 0x0180, 0x610c, 0x080c, 0x9110, 0x6014, 0x2048, 0xa867,\r
++      0x0103, 0xab7a, 0xa877, 0x0000, 0x080c, 0x6996, 0x080c, 0x9c21,\r
++      0x000e, 0x08f0, 0x2c30, 0x0ce0, 0x006e, 0x00ce, 0x00be, 0x009e,\r
++      0x000e, 0x0005, 0x00e6, 0x00d6, 0x0096, 0x0066, 0x080c, 0x5dd6,\r
++      0x11b0, 0x2071, 0x19b8, 0x7030, 0x9080, 0x0005, 0x2004, 0x904d,\r
++      0x0170, 0xa878, 0x9606, 0x1158, 0x2071, 0x19b8, 0x7030, 0x9035,\r
++      0x0130, 0x9080, 0x0005, 0x2004, 0x9906, 0x1108, 0x0029, 0x006e,\r
++      0x009e, 0x00de, 0x00ee, 0x0005, 0x00c6, 0x2660, 0x6043, 0xffff,\r
++      0x080c, 0x9a84, 0x0178, 0x080c, 0x9110, 0x6014, 0x2048, 0xa867,\r
++      0x0103, 0xab7a, 0xa877, 0x0000, 0x080c, 0xbb45, 0x080c, 0x6996,\r
++      0x080c, 0x9c21, 0x00ce, 0x0005, 0x00b6, 0x00e6, 0x00c6, 0x080c,\r
++      0x9926, 0x0106, 0x190c, 0x98c8, 0x2071, 0x0101, 0x2e04, 0xc0c4,\r
++      0x2072, 0x6044, 0xd0fc, 0x1138, 0x010e, 0x190c, 0x98e4, 0x00ce,\r
++      0x00ee, 0x00be, 0x0005, 0x2071, 0x19b8, 0x7030, 0x9005, 0x0da0,\r
++      0x9c06, 0x190c, 0x0d65, 0x7036, 0x080c, 0x820b, 0x7004, 0x9084,\r
++      0x0007, 0x0002, 0x88a4, 0x88a6, 0x88ad, 0x88b7, 0x88c5, 0x88a4,\r
++      0x88ad, 0x88a2, 0x080c, 0x0d65, 0x0428, 0x0005, 0x080c, 0x9a6f,\r
++      0x7007, 0x0000, 0x7033, 0x0000, 0x00e8, 0x0066, 0x9036, 0x080c,\r
++      0x9110, 0x006e, 0x7007, 0x0000, 0x7033, 0x0000, 0x0098, 0x080c,\r
++      0x9a5a, 0x0140, 0x080c, 0x9a6f, 0x0128, 0x0066, 0x9036, 0x080c,\r
++      0x9110, 0x006e, 0x7033, 0x0000, 0x0028, 0x080c, 0x9a5a, 0x080c,\r
++      0x94a2, 0x0000, 0x010e, 0x190c, 0x98e4, 0x00ce, 0x00ee, 0x00be,\r
++      0x0005, 0x00d6, 0x00c6, 0x080c, 0x9926, 0x0106, 0x190c, 0x98c8,\r
++      0x6044, 0xd0fc, 0x1130, 0x010e, 0x190c, 0x98e4, 0x00ce, 0x00de,\r
++      0x0005, 0x2069, 0x19b8, 0x684c, 0x9005, 0x0da8, 0x9c06, 0x190c,\r
++      0x0d65, 0x6852, 0x00e6, 0x2d70, 0x080c, 0x8521, 0x00ee, 0x080c,\r
++      0x8218, 0x0016, 0x2009, 0x0040, 0x080c, 0x2052, 0x001e, 0x683c,\r
++      0x9084, 0x0003, 0x0002, 0x8901, 0x8902, 0x8920, 0x88ff, 0x080c,\r
++      0x0d65, 0x0460, 0x6868, 0x9086, 0x0001, 0x0190, 0x600c, 0x9015,\r
++      0x0160, 0x6a4a, 0x600f, 0x0000, 0x6044, 0xc0fc, 0x6046, 0x9006,\r
++      0x7042, 0x684e, 0x683f, 0x0000, 0x00c8, 0x684a, 0x6846, 0x0ca0,\r
++      0x686b, 0x0000, 0x6848, 0x9065, 0x0d78, 0x6003, 0x0002, 0x0c60,\r
++      0x9006, 0x686a, 0x6852, 0x686e, 0x600c, 0x9015, 0x0120, 0x6a4a,\r
++      0x600f, 0x0000, 0x0018, 0x684e, 0x684a, 0x6846, 0x684f, 0x0000,\r
++      0x010e, 0x190c, 0x98e4, 0x00ce, 0x00de, 0x0005, 0x0005, 0x6020,\r
++      0x9084, 0x000f, 0x000b, 0x0005, 0x894c, 0x894f, 0x8da8, 0x8e37,\r
++      0x894f, 0x8da8, 0x8e37, 0x894c, 0x894f, 0x894c, 0x894c, 0x894c,\r
++      0x894c, 0x894c, 0x894c, 0x894c, 0x080c, 0x8874, 0x0005, 0x00b6,\r
++      0x0156, 0x0136, 0x0146, 0x01c6, 0x01d6, 0x00c6, 0x00d6, 0x00e6,\r
++      0x00f6, 0x2069, 0x0200, 0x2071, 0x0240, 0x6004, 0x908a, 0x0053,\r
++      0x1a0c, 0x0d65, 0x6110, 0x2158, 0xb984, 0x2c78, 0x2061, 0x0100,\r
++      0x619a, 0x908a, 0x0040, 0x1a04, 0x89bb, 0x005b, 0x00fe, 0x00ee,\r
++      0x00de, 0x00ce, 0x01de, 0x01ce, 0x014e, 0x013e, 0x015e, 0x00be,\r
++      0x0005, 0x8b32, 0x8b6d, 0x8b96, 0x8c39, 0x8c5a, 0x8c60, 0x8c6d,\r
++      0x8c75, 0x8c81, 0x8c87, 0x8c98, 0x8c87, 0x8cef, 0x8c75, 0x8cfb,\r
++      0x8d01, 0x8c81, 0x8d01, 0x8d0d, 0x89b9, 0x89b9, 0x89b9, 0x89b9,\r
++      0x89b9, 0x89b9, 0x89b9, 0x89b9, 0x89b9, 0x89b9, 0x89b9, 0x9131,\r
++      0x9154, 0x9165, 0x9185, 0x91b7, 0x8c6d, 0x89b9, 0x8c6d, 0x8c87,\r
++      0x89b9, 0x8b96, 0x8c39, 0x89b9, 0x9595, 0x8c87, 0x89b9, 0x95b1,\r
++      0x8c87, 0x89b9, 0x8c81, 0x8b2c, 0x89dc, 0x89b9, 0x95cd, 0x963a,\r
++      0x971a, 0x89b9, 0x9727, 0x8c6a, 0x9752, 0x89b9, 0x91c1, 0x975e,\r
++      0x89b9, 0x080c, 0x0d65, 0x2100, 0x005b, 0x00fe, 0x00ee, 0x00de,\r
++      0x00ce, 0x01de, 0x01ce, 0x014e, 0x013e, 0x015e, 0x00be, 0x0005,\r
++      0x89da, 0x89da, 0x89da, 0x8a03, 0x8aaf, 0x8aba, 0x89da, 0x89da,\r
++      0x89da, 0x8b01, 0x8b0d, 0x8a1e, 0x89da, 0x8a39, 0x8a6d, 0x9ada,\r
++      0x9b1f, 0x8c87, 0x080c, 0x0d65, 0x00d6, 0x0096, 0x080c, 0x8d20,\r
++      0x7003, 0x2414, 0x7007, 0x0018, 0x700b, 0x0800, 0x7814, 0x2048,\r
++      0xa83c, 0x700e, 0xa850, 0x7022, 0xa854, 0x7026, 0x60c3, 0x0018,\r
++      0x080c, 0x8f87, 0x009e, 0x00de, 0x0005, 0x7810, 0x00b6, 0x2058,\r
++      0xb8a0, 0x00be, 0x080c, 0x9b66, 0x1118, 0x9084, 0xff80, 0x0110,\r
++      0x9085, 0x0001, 0x0005, 0x00d6, 0x0096, 0x080c, 0x8d20, 0x7003,\r
++      0x0500, 0x7814, 0x2048, 0xa874, 0x700a, 0xa878, 0x700e, 0xa87c,\r
++      0x7012, 0xa880, 0x7016, 0xa884, 0x701a, 0xa888, 0x701e, 0x60c3,\r
++      0x0010, 0x080c, 0x8f87, 0x009e, 0x00de, 0x0005, 0x00d6, 0x0096,\r
++      0x080c, 0x8d20, 0x7003, 0x0500, 0x7814, 0x2048, 0xa8cc, 0x700a,\r
++      0xa8d0, 0x700e, 0xa8d4, 0x7012, 0xa8d8, 0x7016, 0xa8dc, 0x701a,\r
++      0xa8e0, 0x701e, 0x60c3, 0x0010, 0x080c, 0x8f87, 0x009e, 0x00de,\r
++      0x0005, 0x00d6, 0x0096, 0x0126, 0x2091, 0x8000, 0x080c, 0x8d20,\r
++      0x20e9, 0x0000, 0x2001, 0x1974, 0x2003, 0x0000, 0x7814, 0x2048,\r
++      0xa814, 0x8003, 0x60c2, 0xa830, 0x20a8, 0xa860, 0x20e0, 0xa85c,\r
++      0x9080, 0x001b, 0x2098, 0x2001, 0x1974, 0x0016, 0x200c, 0x2001,\r
++      0x0001, 0x080c, 0x2037, 0x080c, 0xc591, 0x9006, 0x080c, 0x2037,\r
++      0x001e, 0xa804, 0x9005, 0x0110, 0x2048, 0x0c28, 0x04d9, 0x080c,\r
++      0x8f87, 0x012e, 0x009e, 0x00de, 0x0005, 0x00d6, 0x0096, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0x8d6b, 0x20e9, 0x0000, 0x2001, 0x1974,\r
++      0x2003, 0x0000, 0x7814, 0x2048, 0xa86f, 0x0200, 0xa873, 0x0000,\r
++      0xa814, 0x8003, 0x60c2, 0xa830, 0x20a8, 0xa860, 0x20e0, 0xa85c,\r
++      0x9080, 0x001b, 0x2098, 0x2001, 0x1974, 0x0016, 0x200c, 0x080c,\r
++      0xc591, 0x001e, 0xa804, 0x9005, 0x0110, 0x2048, 0x0c60, 0x0051,\r
++      0x7814, 0x2048, 0x080c, 0x0fd4, 0x080c, 0x8f87, 0x012e, 0x009e,\r
++      0x00de, 0x0005, 0x60c0, 0x8004, 0x9084, 0x0003, 0x9005, 0x0130,\r
++      0x9082, 0x0004, 0x20a3, 0x0000, 0x8000, 0x1de0, 0x0005, 0x080c,\r
++      0x8d20, 0x7003, 0x7800, 0x7808, 0x8007, 0x700a, 0x60c3, 0x0008,\r
++      0x0804, 0x8f87, 0x00d6, 0x00e6, 0x080c, 0x8d6b, 0x7814, 0x9084,\r
++      0xff00, 0x2073, 0x0200, 0x8e70, 0x8e70, 0x9095, 0x0010, 0x2272,\r
++      0x8e70, 0x2073, 0x0034, 0x8e70, 0x2069, 0x1805, 0x20a9, 0x0004,\r
++      0x2d76, 0x8d68, 0x8e70, 0x1f04, 0x8ad0, 0x2069, 0x1801, 0x20a9,\r
++      0x0004, 0x2d76, 0x8d68, 0x8e70, 0x1f04, 0x8ad9, 0x2069, 0x1984,\r
++      0x9086, 0xdf00, 0x0110, 0x2069, 0x199e, 0x20a9, 0x001a, 0x9e86,\r
++      0x0260, 0x1148, 0x00c6, 0x2061, 0x0200, 0x6010, 0x8000, 0x6012,\r
++      0x00ce, 0x2071, 0x0240, 0x2d04, 0x8007, 0x2072, 0x8d68, 0x8e70,\r
++      0x1f04, 0x8ae7, 0x60c3, 0x004c, 0x080c, 0x8f87, 0x00ee, 0x00de,\r
++      0x0005, 0x080c, 0x8d20, 0x7003, 0x6300, 0x7007, 0x0028, 0x7808,\r
++      0x700e, 0x60c3, 0x0008, 0x0804, 0x8f87, 0x00d6, 0x0026, 0x0016,\r
++      0x080c, 0x8d6b, 0x7003, 0x0200, 0x7814, 0x700e, 0x00e6, 0x9ef0,\r
++      0x0004, 0x2009, 0x0001, 0x2011, 0x000c, 0x2073, 0x0800, 0x8e70,\r
++      0x2073, 0x0000, 0x00ee, 0x7206, 0x710a, 0x62c2, 0x080c, 0x8f87,\r
++      0x001e, 0x002e, 0x00de, 0x0005, 0x2001, 0x1817, 0x2004, 0x609a,\r
++      0x0804, 0x8f87, 0x080c, 0x8d20, 0x7003, 0x5200, 0x2069, 0x1853,\r
++      0x6804, 0xd084, 0x0130, 0x6828, 0x0016, 0x080c, 0x2457, 0x710e,\r
++      0x001e, 0x20a9, 0x0004, 0x20e1, 0x0001, 0x2099, 0x1805, 0x20e9,\r
++      0x0000, 0x20a1, 0x0250, 0x4003, 0x20a9, 0x0004, 0x2099, 0x1801,\r
++      0x20a1, 0x0254, 0x4003, 0x080c, 0x9b66, 0x1120, 0xb8a0, 0x9082,\r
++      0x007f, 0x0248, 0x2001, 0x181e, 0x2004, 0x7032, 0x2001, 0x181f,\r
++      0x2004, 0x7036, 0x0030, 0x2001, 0x1817, 0x2004, 0x9084, 0x00ff,\r
++      0x7036, 0x60c3, 0x001c, 0x0804, 0x8f87, 0x080c, 0x8d20, 0x7003,\r
++      0x0500, 0x080c, 0x9b66, 0x1120, 0xb8a0, 0x9082, 0x007f, 0x0248,\r
++      0x2001, 0x181e, 0x2004, 0x700a, 0x2001, 0x181f, 0x2004, 0x700e,\r
++      0x0030, 0x2001, 0x1817, 0x2004, 0x9084, 0x00ff, 0x700e, 0x20a9,\r
++      0x0004, 0x20e1, 0x0001, 0x2099, 0x1805, 0x20e9, 0x0000, 0x20a1,\r
++      0x0250, 0x4003, 0x60c3, 0x0010, 0x0804, 0x8f87, 0x080c, 0x8d20,\r
++      0x9006, 0x080c, 0x6631, 0xb8a0, 0x9086, 0x007e, 0x1130, 0x7003,\r
++      0x0400, 0x620c, 0xc2b4, 0x620e, 0x0058, 0x7814, 0x0096, 0x904d,\r
++      0x0120, 0x9006, 0xa89a, 0xa8a6, 0xa8aa, 0x009e, 0x7003, 0x0300,\r
++      0xb8a0, 0x9086, 0x007e, 0x1904, 0x8c01, 0x00d6, 0x2069, 0x193d,\r
++      0x2001, 0x1836, 0x2004, 0xd0a4, 0x0178, 0x6800, 0x700a, 0x6808,\r
++      0x9084, 0x2000, 0x7012, 0x680c, 0x7016, 0x701f, 0x2710, 0x6818,\r
++      0x7022, 0x681c, 0x7026, 0x0080, 0x6800, 0x700a, 0x6804, 0x700e,\r
++      0x6808, 0x080c, 0x70b7, 0x1118, 0x9084, 0x37ff, 0x0010, 0x9084,\r
++      0x3fff, 0x7012, 0x680c, 0x7016, 0x00de, 0x20a9, 0x0004, 0x20e1,\r
++      0x0001, 0x2099, 0x1805, 0x20e9, 0x0000, 0x20a1, 0x0256, 0x4003,\r
++      0x20a9, 0x0004, 0x2099, 0x1801, 0x20a1, 0x025a, 0x4003, 0x00d6,\r
++      0x080c, 0x97e5, 0x2069, 0x1945, 0x2071, 0x024e, 0x6800, 0xc0dd,\r
++      0x7002, 0x080c, 0x5391, 0xd0e4, 0x0110, 0x680c, 0x700e, 0x00de,\r
++      0x04a0, 0x2001, 0x1836, 0x2004, 0xd0a4, 0x0168, 0x0016, 0x2009,\r
++      0x0002, 0x60e0, 0x9106, 0x0130, 0x2100, 0x60e3, 0x0000, 0x080c,\r
++      0x2498, 0x61e2, 0x001e, 0x20e1, 0x0001, 0x2099, 0x193d, 0x20e9,\r
++      0x0000, 0x20a1, 0x024e, 0x20a9, 0x0008, 0x4003, 0x20a9, 0x0004,\r
++      0x2099, 0x1805, 0x20a1, 0x0256, 0x4003, 0x20a9, 0x0004, 0x2099,\r
++      0x1801, 0x20a1, 0x025a, 0x4003, 0x080c, 0x97e5, 0x20a1, 0x024e,\r
++      0x20a9, 0x0008, 0x2099, 0x1945, 0x4003, 0x60c3, 0x0074, 0x0804,\r
++      0x8f87, 0x080c, 0x8d20, 0x7003, 0x2010, 0x7007, 0x0014, 0x700b,\r
++      0x0800, 0x700f, 0x2000, 0x9006, 0x00f6, 0x2079, 0x1853, 0x7904,\r
++      0x00fe, 0xd1ac, 0x1110, 0x9085, 0x0020, 0x0010, 0x9085, 0x0010,\r
++      0x9085, 0x0002, 0x00d6, 0x0804, 0x8cd0, 0x7026, 0x60c3, 0x0014,\r
++      0x0804, 0x8f87, 0x080c, 0x8d20, 0x7003, 0x5000, 0x0804, 0x8bb0,\r
++      0x080c, 0x8d20, 0x7003, 0x2110, 0x7007, 0x0014, 0x60c3, 0x0014,\r
++      0x0804, 0x8f87, 0x080c, 0x8d62, 0x0010, 0x080c, 0x8d6b, 0x7003,\r
++      0x0200, 0x60c3, 0x0004, 0x0804, 0x8f87, 0x080c, 0x8d6b, 0x7003,\r
++      0x0100, 0x700b, 0x0003, 0x700f, 0x2a00, 0x60c3, 0x0008, 0x0804,\r
++      0x8f87, 0x080c, 0x8d6b, 0x7003, 0x0200, 0x0804, 0x8bb0, 0x080c,\r
++      0x8d6b, 0x7003, 0x0100, 0x782c, 0x9005, 0x0110, 0x700a, 0x0010,\r
++      0x700b, 0x0003, 0x7814, 0x700e, 0x60c3, 0x0008, 0x0804, 0x8f87,\r
++      0x00d6, 0x080c, 0x8d6b, 0x7003, 0x0210, 0x7007, 0x0014, 0x700b,\r
++      0x0800, 0xb894, 0x9086, 0x0014, 0x1198, 0xb99c, 0x9184, 0x0030,\r
++      0x0190, 0xb998, 0x9184, 0xc000, 0x1140, 0xd1ec, 0x0118, 0x700f,\r
++      0x2100, 0x0058, 0x700f, 0x0100, 0x0040, 0x700f, 0x0400, 0x0028,\r
++      0x700f, 0x0700, 0x0010, 0x700f, 0x0800, 0x00f6, 0x2079, 0x1853,\r
++      0x7904, 0x00fe, 0xd1ac, 0x1110, 0x9085, 0x0020, 0x0010, 0x9085,\r
++      0x0010, 0x2009, 0x1875, 0x210c, 0xd184, 0x1110, 0x9085, 0x0002,\r
++      0x0026, 0x2009, 0x1873, 0x210c, 0xd1e4, 0x0150, 0xc0c5, 0xbac4,\r
++      0xd28c, 0x1108, 0xc0cd, 0x9094, 0x0030, 0x9296, 0x0010, 0x0140,\r
++      0xd1ec, 0x0130, 0x9094, 0x0030, 0x9296, 0x0010, 0x0108, 0xc0bd,\r
++      0x002e, 0x7026, 0x60c3, 0x0014, 0x00de, 0x0804, 0x8f87, 0x080c,\r
++      0x8d6b, 0x7003, 0x0210, 0x7007, 0x0014, 0x700f, 0x0100, 0x60c3,\r
++      0x0014, 0x0804, 0x8f87, 0x080c, 0x8d6b, 0x7003, 0x0200, 0x0804,\r
++      0x8b36, 0x080c, 0x8d6b, 0x7003, 0x0100, 0x700b, 0x0003, 0x700f,\r
++      0x2a00, 0x60c3, 0x0008, 0x0804, 0x8f87, 0x080c, 0x8d6b, 0x7003,\r
++      0x0100, 0x700b, 0x000b, 0x60c3, 0x0008, 0x0804, 0x8f87, 0x0026,\r
++      0x00d6, 0x0036, 0x0046, 0x2019, 0x3200, 0x2021, 0x0800, 0x0040,\r
++      0x0026, 0x00d6, 0x0036, 0x0046, 0x2019, 0x2200, 0x2021, 0x0100,\r
++      0x080c, 0x97fa, 0xb810, 0x9305, 0x7002, 0xb814, 0x7006, 0x2069,\r
++      0x1800, 0x6878, 0x700a, 0x687c, 0x700e, 0x9485, 0x0029, 0x7012,\r
++      0x004e, 0x003e, 0x00de, 0x080c, 0x8f7b, 0x721a, 0x9f95, 0x0000,\r
++      0x7222, 0x7027, 0xffff, 0x2071, 0x024c, 0x002e, 0x0005, 0x0026,\r
++      0x080c, 0x97fa, 0x7003, 0x02ff, 0x7007, 0xfffc, 0x00d6, 0x2069,\r
++      0x1800, 0x6878, 0x700a, 0x687c, 0x700e, 0x00de, 0x7013, 0x2029,\r
++      0x0c10, 0x7003, 0x0100, 0x7007, 0x0000, 0x700b, 0xfc02, 0x700f,\r
++      0x0000, 0x0005, 0x0026, 0x00d6, 0x0036, 0x0046, 0x2019, 0x3300,\r
++      0x2021, 0x0800, 0x0040, 0x0026, 0x00d6, 0x0036, 0x0046, 0x2019,\r
++      0x2300, 0x2021, 0x0100, 0x080c, 0x97fa, 0xb810, 0x9305, 0x7002,\r
++      0xb814, 0x7006, 0x2069, 0x1800, 0xb810, 0x9005, 0x1140, 0xb814,\r
++      0x9005, 0x1128, 0x700b, 0x00ff, 0x700f, 0xfffe, 0x0020, 0x6878,\r
++      0x700a, 0x687c, 0x700e, 0x0000, 0x9485, 0x0098, 0x7012, 0x004e,\r
++      0x003e, 0x00de, 0x080c, 0x8f7b, 0x721a, 0x7a08, 0x7222, 0x2f10,\r
++      0x7226, 0x2071, 0x024c, 0x002e, 0x0005, 0x080c, 0x8f7b, 0x721a,\r
++      0x7a08, 0x7222, 0x7814, 0x7026, 0x2071, 0x024c, 0x002e, 0x0005,\r
++      0x00b6, 0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x2069, 0x0200, 0x2071,\r
++      0x0240, 0x6004, 0x908a, 0x0085, 0x0a0c, 0x0d65, 0x908a, 0x0092,\r
++      0x1a0c, 0x0d65, 0x6110, 0x2158, 0xb984, 0x2c78, 0x2061, 0x0100,\r
++      0x619a, 0x9082, 0x0085, 0x0033, 0x00fe, 0x00ee, 0x00de, 0x00ce,\r
++      0x00be, 0x0005, 0x8dd9, 0x8de8, 0x8df3, 0x8dd7, 0x8dd7, 0x8dd7,\r
++      0x8dd9, 0x8dd7, 0x8dd7, 0x8dd7, 0x8dd7, 0x8dd7, 0x8dd7, 0x080c,\r
++      0x0d65, 0x0411, 0x60c3, 0x0000, 0x0026, 0x080c, 0x27a2, 0x0228,\r
++      0x2011, 0x0101, 0x2204, 0xc0c5, 0x2012, 0x002e, 0x0804, 0x8f87,\r
++      0x0431, 0x7808, 0x700a, 0x7814, 0x700e, 0x7017, 0xffff, 0x60c3,\r
++      0x000c, 0x0804, 0x8f87, 0x0479, 0x7003, 0x0003, 0x7007, 0x0300,\r
++      0x60c3, 0x0004, 0x0804, 0x8f87, 0x0026, 0x080c, 0x97fa, 0xb810,\r
++      0x9085, 0x8100, 0x7002, 0xb814, 0x7006, 0x2069, 0x1800, 0x6878,\r
++      0x700a, 0x687c, 0x700e, 0x7013, 0x0009, 0x0804, 0x8d3b, 0x0026,\r
++      0x080c, 0x97fa, 0xb810, 0x9085, 0x8400, 0x7002, 0xb814, 0x7006,\r
++      0x2069, 0x1800, 0x6878, 0x700a, 0x687c, 0x700e, 0x2001, 0x0099,\r
++      0x7012, 0x0804, 0x8d9d, 0x0026, 0x080c, 0x97fa, 0xb810, 0x9085,\r
++      0x8500, 0x7002, 0xb814, 0x7006, 0x2069, 0x1800, 0x6878, 0x700a,\r
++      0x687c, 0x700e, 0x2001, 0x0099, 0x7012, 0x0804, 0x8d9d, 0x00b6,\r
++      0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x2c78, 0x2069, 0x0200, 0x2071,\r
++      0x0240, 0x7804, 0x908a, 0x0040, 0x0a0c, 0x0d65, 0x908a, 0x0057,\r
++      0x1a0c, 0x0d65, 0x7910, 0x2158, 0xb984, 0x2061, 0x0100, 0x619a,\r
++      0x9082, 0x0040, 0x0033, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be,\r
++      0x0005, 0x8e6c, 0x8e6c, 0x8e6c, 0x8e92, 0x8e6c, 0x8e6c, 0x8e6c,\r
++      0x8e6c, 0x8e6c, 0x8e6c, 0x8e6c, 0x9355, 0x935d, 0x9365, 0x936d,\r
++      0x8e6c, 0x8e6c, 0x8e6c, 0x934d, 0x080c, 0x0d65, 0x6813, 0x0008,\r
++      0xba8c, 0x8210, 0xb8c4, 0xd084, 0x0128, 0x7a4e, 0x7b14, 0x7b52,\r
++      0x722e, 0x732a, 0x9294, 0x00ff, 0xba8e, 0x8217, 0x721a, 0xba10,\r
++      0x9295, 0x0600, 0x7202, 0xba14, 0x7206, 0x2069, 0x1800, 0x6a78,\r
++      0x720a, 0x6a7c, 0x720e, 0x7013, 0x0829, 0x2f10, 0x7222, 0x7027,\r
++      0xffff, 0x0005, 0x0016, 0x7814, 0x9084, 0x0700, 0x8007, 0x0013,\r
++      0x001e, 0x0005, 0x8ea2, 0x8ea2, 0x8ea4, 0x8ea2, 0x8ea2, 0x8ea2,\r
++      0x8ebe, 0x8ea2, 0x080c, 0x0d65, 0x7914, 0x918c, 0x08ff, 0x918d,\r
++      0xf600, 0x7916, 0x2009, 0x0003, 0x00b9, 0x2069, 0x1853, 0x6804,\r
++      0xd0bc, 0x0130, 0x682c, 0x9084, 0x00ff, 0x8007, 0x7032, 0x0010,\r
++      0x7033, 0x3f00, 0x60c3, 0x0001, 0x0804, 0x8f87, 0x2009, 0x0003,\r
++      0x0019, 0x7033, 0x7f00, 0x0cb0, 0x0016, 0x080c, 0x97fa, 0x001e,\r
++      0xb810, 0x9085, 0x0100, 0x7002, 0xb814, 0x7006, 0x2069, 0x1800,\r
++      0x6a78, 0x720a, 0x6a7c, 0x720e, 0x7013, 0x0888, 0x918d, 0x0008,\r
++      0x7116, 0x080c, 0x8f7b, 0x721a, 0x7a08, 0x7222, 0x2f10, 0x7226,\r
++      0x0005, 0x00b6, 0x0096, 0x00e6, 0x00d6, 0x00c6, 0x0056, 0x0046,\r
++      0x0036, 0x2061, 0x0100, 0x2071, 0x1800, 0x7810, 0x2058, 0xb8a0,\r
++      0x2028, 0xb910, 0xba14, 0x7378, 0x747c, 0x7820, 0x0002, 0x8f06,\r
++      0x8f06, 0x8f06, 0x8f06, 0x8f06, 0x8f06, 0x8f06, 0x8f06, 0x8f06,\r
++      0x8f06, 0x8f08, 0x8f06, 0x8f06, 0x8f06, 0x8f06, 0x080c, 0x0d65,\r
++      0xb884, 0x609e, 0x7814, 0x2048, 0xa87c, 0xd0fc, 0x0558, 0xaf90,\r
++      0x9784, 0xff00, 0x9105, 0x6062, 0x873f, 0x9784, 0xff00, 0x0006,\r
++      0x7814, 0x2048, 0xa878, 0xc0fc, 0x9005, 0x000e, 0x1160, 0xaf94,\r
++      0x87ff, 0x0198, 0x2039, 0x0098, 0x9705, 0x6072, 0x7808, 0x6082,\r
++      0x2f00, 0x6086, 0x0038, 0x9185, 0x2200, 0x6062, 0x6073, 0x0129,\r
++      0x6077, 0x0000, 0xb884, 0x609e, 0x0050, 0x2039, 0x0029, 0x9705,\r
++      0x6072, 0x0cc0, 0x9185, 0x0200, 0x6062, 0x6073, 0x2029, 0xa87c,\r
++      0xd0fc, 0x0118, 0xaf94, 0x87ff, 0x1120, 0x2f00, 0x6082, 0x7808,\r
++      0x6086, 0x6266, 0x636a, 0x646e, 0x6077, 0x0000, 0xb88c, 0x8000,\r
++      0x9084, 0x00ff, 0xb88e, 0x8007, 0x607a, 0x607f, 0x0000, 0xa848,\r
++      0x608a, 0xa844, 0x608e, 0xa838, 0x60c6, 0xa834, 0x60ca, 0xb86c,\r
++      0x60ce, 0x60af, 0x95d5, 0x60d7, 0x0000, 0x080c, 0x97da, 0x2009,\r
++      0x07d0, 0x60c4, 0x9084, 0xfff0, 0x9005, 0x0110, 0x2009, 0x1b58,\r
++      0x080c, 0x8210, 0x003e, 0x004e, 0x005e, 0x00ce, 0x00de, 0x00ee,\r
++      0x009e, 0x00be, 0x0005, 0x7a40, 0x9294, 0x00ff, 0x8217, 0x0005,\r
++      0x00d6, 0x2069, 0x19b8, 0x686b, 0x0001, 0x00de, 0x0005, 0x60a3,\r
++      0x0056, 0x60a7, 0x9575, 0x00f1, 0x080c, 0x8202, 0x0005, 0x0016,\r
++      0x2001, 0x180c, 0x200c, 0x9184, 0x0600, 0x9086, 0x0600, 0x0128,\r
++      0x0089, 0x080c, 0x8202, 0x001e, 0x0005, 0xc1e5, 0x2001, 0x180c,\r
++      0x2102, 0x2001, 0x19b9, 0x2003, 0x0000, 0x2001, 0x19c4, 0x2003,\r
++      0x0000, 0x0c88, 0x0006, 0x0016, 0x0026, 0x2009, 0x1804, 0x2011,\r
++      0x0009, 0x080c, 0x287c, 0x002e, 0x001e, 0x000e, 0x0005, 0x0016,\r
++      0x00c6, 0x0006, 0x080c, 0x9926, 0x0106, 0x190c, 0x98c8, 0x2061,\r
++      0x0100, 0x61a4, 0x60a7, 0x95f5, 0x0016, 0x0026, 0x2009, 0x1804,\r
++      0x2011, 0x0008, 0x080c, 0x287c, 0x002e, 0x001e, 0x010e, 0x190c,\r
++      0x98e4, 0x000e, 0xa001, 0xa001, 0xa001, 0x61a6, 0x00ce, 0x001e,\r
++      0x0005, 0x00c6, 0x00d6, 0x0016, 0x0026, 0x2061, 0x0100, 0x2069,\r
++      0x0140, 0x080c, 0x70b7, 0x1510, 0x2001, 0x19dd, 0x2004, 0x9005,\r
++      0x1904, 0x9038, 0x080c, 0x7158, 0x11a8, 0x2069, 0x0380, 0x6843,\r
++      0x0101, 0x6844, 0xd084, 0x1de8, 0x2061, 0x0100, 0x6020, 0xd0b4,\r
++      0x1120, 0x6024, 0xd084, 0x090c, 0x0d65, 0x6843, 0x0100, 0x080c,\r
++      0x8202, 0x04b0, 0x00c6, 0x2061, 0x19b8, 0x00f0, 0x6904, 0x9194,\r
++      0x4000, 0x0598, 0x080c, 0x8fb7, 0x080c, 0x2843, 0x00c6, 0x2061,\r
++      0x19b8, 0x6134, 0x9192, 0x0008, 0x1278, 0x8108, 0x6136, 0x080c,\r
++      0x98c8, 0x6130, 0x080c, 0x98e4, 0x00ce, 0x81ff, 0x01c8, 0x080c,\r
++      0x8202, 0x080c, 0x8faa, 0x00a0, 0x080c, 0x98c8, 0x6130, 0x91e5,\r
++      0x0000, 0x0150, 0x080c, 0xd610, 0x080c, 0x820b, 0x6003, 0x0001,\r
++      0x2009, 0x0014, 0x080c, 0x9c85, 0x080c, 0x98e4, 0x00ce, 0x0000,\r
++      0x002e, 0x001e, 0x00de, 0x00ce, 0x0005, 0x2001, 0x19dd, 0x2004,\r
++      0x9005, 0x1db0, 0x00c6, 0x2061, 0x19b8, 0x6134, 0x9192, 0x0003,\r
++      0x1ad8, 0x8108, 0x6136, 0x00ce, 0x080c, 0x8202, 0x080c, 0x5b97,\r
++      0x2009, 0x1852, 0x2114, 0x8210, 0x220a, 0x0c10, 0x0096, 0x00c6,\r
++      0x00d6, 0x00e6, 0x0016, 0x0026, 0x080c, 0x8218, 0x080c, 0x98c8,\r
++      0x2001, 0x0387, 0x2003, 0x0202, 0x2071, 0x19b8, 0x714c, 0x81ff,\r
++      0x0904, 0x90cc, 0x2061, 0x0100, 0x2069, 0x0140, 0x080c, 0x70b7,\r
++      0x11c0, 0x0036, 0x2019, 0x0002, 0x080c, 0x9286, 0x003e, 0x714c,\r
++      0x2160, 0x080c, 0xd610, 0x2009, 0x004a, 0x6003, 0x0003, 0x080c,\r
++      0x9c85, 0x2001, 0x0386, 0x2003, 0x5040, 0x080c, 0x7158, 0x0804,\r
++      0x90cc, 0x6904, 0xd1f4, 0x0904, 0x90d9, 0x080c, 0x2843, 0x00c6,\r
++      0x704c, 0x9065, 0x090c, 0x0d65, 0x6020, 0x00ce, 0x9086, 0x0006,\r
++      0x1518, 0x61c8, 0x60c4, 0x9105, 0x11f8, 0x2009, 0x180c, 0x2104,\r
++      0xd0d4, 0x01d0, 0x6214, 0x9294, 0x1800, 0x1128, 0x6224, 0x9294,\r
++      0x0002, 0x1510, 0x0010, 0xc0d4, 0x200a, 0x6014, 0x9084, 0xe7fd,\r
++      0x9085, 0x0010, 0x6016, 0x704c, 0x2060, 0x080c, 0x88d1, 0x2009,\r
++      0x0049, 0x080c, 0x9c85, 0x0080, 0x0036, 0x2019, 0x0001, 0x080c,\r
++      0x9286, 0x003e, 0x714c, 0x2160, 0x080c, 0xd610, 0x2009, 0x004a,\r
++      0x6003, 0x0003, 0x080c, 0x9c85, 0x2001, 0x0387, 0x2003, 0x0200,\r
++      0x080c, 0x98e4, 0x002e, 0x001e, 0x00ee, 0x00de, 0x00ce, 0x009e,\r
++      0x0005, 0xd1ec, 0x1904, 0x908d, 0x0804, 0x908f, 0x0026, 0x00e6,\r
++      0x2071, 0x19b8, 0x706c, 0xd084, 0x01d0, 0xc084, 0x706e, 0x714c,\r
++      0x81ff, 0x01a8, 0x2071, 0x0100, 0x9188, 0x0008, 0x2114, 0x928e,\r
++      0x0006, 0x1138, 0x2009, 0x1984, 0x2011, 0x0012, 0x080c, 0x287c,\r
++      0x0030, 0x2009, 0x1984, 0x2011, 0x0016, 0x080c, 0x287c, 0x00ee,\r
++      0x002e, 0x0005, 0x9036, 0x2001, 0x19c2, 0x2004, 0x9005, 0x0128,\r
++      0x9c06, 0x0128, 0x2c30, 0x600c, 0x0cc8, 0x9085, 0x0001, 0x0005,\r
++      0x00f6, 0x2079, 0x19b8, 0x610c, 0x9006, 0x600e, 0x6044, 0xc0fc,\r
++      0x6046, 0x86ff, 0x1140, 0x7824, 0x9c06, 0x1118, 0x7826, 0x782a,\r
++      0x0050, 0x792a, 0x0040, 0x00c6, 0x2660, 0x610e, 0x00ce, 0x7824,\r
++      0x9c06, 0x1108, 0x7e26, 0x080c, 0x9378, 0x080c, 0xba36, 0x00fe,\r
++      0x0005, 0x080c, 0x8d20, 0x7003, 0x1200, 0x7838, 0x7012, 0x783c,\r
++      0x7016, 0x00c6, 0x7820, 0x9086, 0x0004, 0x1148, 0x7810, 0x9005,\r
++      0x0130, 0x00b6, 0x2058, 0xb810, 0xb914, 0x00be, 0x0020, 0x2061,\r
++      0x1800, 0x6078, 0x617c, 0x9084, 0x00ff, 0x700a, 0x710e, 0x00ce,\r
++      0x60c3, 0x002c, 0x0804, 0x8f87, 0x080c, 0x8d20, 0x7003, 0x0f00,\r
++      0x7808, 0xd09c, 0x0128, 0xb810, 0x9084, 0x00ff, 0x700a, 0xb814,\r
++      0x700e, 0x60c3, 0x0008, 0x0804, 0x8f87, 0x0156, 0x080c, 0x8d6b,\r
++      0x7003, 0x0200, 0x2011, 0x1848, 0x63f0, 0x2312, 0x20a9, 0x0006,\r
++      0x2011, 0x1840, 0x2019, 0x1841, 0x9ef0, 0x0002, 0x2376, 0x8e70,\r
++      0x2276, 0x8e70, 0x9398, 0x0002, 0x9290, 0x0002, 0x1f04, 0x9176,\r
++      0x60c3, 0x001c, 0x015e, 0x0804, 0x8f87, 0x0016, 0x0026, 0x080c,\r
++      0x8d47, 0x080c, 0x8d59, 0x9e80, 0x0004, 0x20e9, 0x0000, 0x20a0,\r
++      0x7814, 0x0096, 0x2048, 0xa800, 0x2048, 0xa860, 0x20e0, 0xa85c,\r
++      0x9080, 0x0021, 0x2098, 0x009e, 0x7808, 0x9088, 0x0002, 0x21a8,\r
++      0x9192, 0x0010, 0x1250, 0x4003, 0x9080, 0x0004, 0x8003, 0x60c2,\r
++      0x080c, 0x8f87, 0x002e, 0x001e, 0x0005, 0x20a9, 0x0010, 0x4003,\r
++      0x080c, 0x97e5, 0x20a1, 0x0240, 0x22a8, 0x4003, 0x0c68, 0x080c,\r
++      0x8d20, 0x7003, 0x6200, 0x7808, 0x700e, 0x60c3, 0x0008, 0x0804,\r
++      0x8f87, 0x0016, 0x0026, 0x080c, 0x8d20, 0x20e9, 0x0000, 0x20a1,\r
++      0x024c, 0x7814, 0x0096, 0x2048, 0xa800, 0x2048, 0xa860, 0x20e0,\r
++      0xa85c, 0x9080, 0x0023, 0x2098, 0x009e, 0x7808, 0x9088, 0x0002,\r
++      0x21a8, 0x4003, 0x8003, 0x60c2, 0x080c, 0x8f87, 0x002e, 0x001e,\r
++      0x0005, 0x00e6, 0x00c6, 0x0006, 0x0126, 0x2091, 0x8000, 0x2071,\r
++      0x19b8, 0x7010, 0x2060, 0x8cff, 0x0188, 0x080c, 0xba5c, 0x1110,\r
++      0x080c, 0xa58f, 0x600c, 0x0006, 0x080c, 0xbcd3, 0x600f, 0x0000,\r
++      0x080c, 0x9be7, 0x080c, 0x9378, 0x00ce, 0x0c68, 0x2c00, 0x7012,\r
++      0x700e, 0x012e, 0x000e, 0x00ce, 0x00ee, 0x0005, 0x0126, 0x0156,\r
++      0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0026, 0x0016, 0x0006,\r
++      0x2091, 0x8000, 0x2001, 0x180c, 0x200c, 0x918c, 0xe7ff, 0x2102,\r
++      0x2069, 0x0100, 0x2079, 0x0140, 0x2071, 0x19b8, 0x7030, 0x2060,\r
++      0x8cff, 0x0548, 0x080c, 0x8fb7, 0x6ac0, 0x68c3, 0x0000, 0x080c,\r
++      0x820b, 0x00c6, 0x2061, 0x0100, 0x080c, 0x97fe, 0x00ce, 0x20a9,\r
++      0x01f4, 0x04b1, 0x080c, 0x8874, 0x6044, 0xd0ac, 0x1128, 0x2001,\r
++      0x1959, 0x2004, 0x604a, 0x0020, 0x2009, 0x0013, 0x080c, 0x9c85,\r
++      0x000e, 0x001e, 0x002e, 0x006e, 0x00ce, 0x00de, 0x00ee, 0x00fe,\r
++      0x015e, 0x012e, 0x0005, 0x2001, 0x1800, 0x2004, 0x9096, 0x0001,\r
++      0x0d78, 0x9096, 0x0004, 0x0d60, 0x080c, 0x820b, 0x6814, 0x9084,\r
++      0x0001, 0x0110, 0x68a7, 0x95f5, 0x6817, 0x0008, 0x68c3, 0x0000,\r
++      0x2011, 0x5b41, 0x080c, 0x8159, 0x20a9, 0x01f4, 0x0009, 0x08c0,\r
++      0x6824, 0xd094, 0x0140, 0x6827, 0x0004, 0x7804, 0x9084, 0x4000,\r
++      0x190c, 0x2843, 0x0090, 0xd084, 0x0118, 0x6827, 0x0001, 0x0010,\r
++      0x1f04, 0x9268, 0x7804, 0x9084, 0x1000, 0x0138, 0x2001, 0x0100,\r
++      0x080c, 0x2833, 0x9006, 0x080c, 0x2833, 0x0005, 0x0126, 0x0156,\r
++      0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0026, 0x0016, 0x0006,\r
++      0x2091, 0x8000, 0x2001, 0x180c, 0x200c, 0x918c, 0xdbff, 0x2102,\r
++      0x2069, 0x0100, 0x2079, 0x0140, 0x2071, 0x0380, 0x701c, 0x0006,\r
++      0x701f, 0x0202, 0x2071, 0x19b8, 0x704c, 0x2060, 0x8cff, 0x0904,\r
++      0x9327, 0x9386, 0x0002, 0x1128, 0x6814, 0x9084, 0x0002, 0x0904,\r
++      0x9327, 0x68af, 0x95f5, 0x6817, 0x0010, 0x2009, 0x00fa, 0x8109,\r
++      0x1df0, 0x69c6, 0x68cb, 0x0008, 0x080c, 0x8218, 0x080c, 0x1c7a,\r
++      0x0046, 0x2009, 0x00a5, 0x080c, 0x0e3d, 0x2021, 0x0169, 0x2404,\r
++      0x9084, 0x000f, 0x9086, 0x0004, 0x11f8, 0x68af, 0x95f5, 0x68c6,\r
++      0x68cb, 0x0008, 0x00e6, 0x00f6, 0x2079, 0x0090, 0x2071, 0x19b8,\r
++      0x6814, 0x9084, 0x1984, 0x9085, 0x0012, 0x6816, 0x782b, 0x0008,\r
++      0x7057, 0x0000, 0x00fe, 0x00ee, 0x9386, 0x0002, 0x1128, 0x7884,\r
++      0x9005, 0x1110, 0x7887, 0x0001, 0x0016, 0x2009, 0x0040, 0x080c,\r
++      0x2052, 0x001e, 0x2009, 0x0000, 0x080c, 0x0e3d, 0x004e, 0x20a9,\r
++      0x03e8, 0x6824, 0xd094, 0x0140, 0x6827, 0x0004, 0x7804, 0x9084,\r
++      0x4000, 0x190c, 0x2843, 0x0090, 0xd08c, 0x0118, 0x6827, 0x0002,\r
++      0x0010, 0x1f04, 0x92f9, 0x7804, 0x9084, 0x1000, 0x0138, 0x2001,\r
++      0x0100, 0x080c, 0x2833, 0x9006, 0x080c, 0x2833, 0x6827, 0x4000,\r
++      0x6824, 0x83ff, 0x1160, 0x2009, 0x0049, 0x080c, 0x88d1, 0x6044,\r
++      0xd0ac, 0x1118, 0x6003, 0x0002, 0x0010, 0x080c, 0x9c85, 0x000e,\r
++      0x2071, 0x0380, 0xd08c, 0x1110, 0x701f, 0x0200, 0x000e, 0x001e,\r
++      0x002e, 0x006e, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x015e, 0x012e,\r
++      0x0005, 0x00d6, 0x0126, 0x2091, 0x8000, 0x2069, 0x19b8, 0x6a06,\r
++      0x012e, 0x00de, 0x0005, 0x00d6, 0x0126, 0x2091, 0x8000, 0x2069,\r
++      0x19b8, 0x6a3e, 0x012e, 0x00de, 0x0005, 0x080c, 0x8e6e, 0x785c,\r
++      0x7032, 0x7042, 0x7047, 0x1000, 0x00f8, 0x080c, 0x8e6e, 0x785c,\r
++      0x7032, 0x7042, 0x7047, 0x4000, 0x00b8, 0x080c, 0x8e6e, 0x785c,\r
++      0x7032, 0x7042, 0x7047, 0x2000, 0x0078, 0x080c, 0x8e6e, 0x785c,\r
++      0x7032, 0x7042, 0x7047, 0x0400, 0x0038, 0x080c, 0x8e6e, 0x785c,\r
++      0x7032, 0x7042, 0x7047, 0x0200, 0x60c3, 0x0020, 0x0804, 0x8f87,\r
++      0x00e6, 0x2071, 0x19b8, 0x702c, 0x9005, 0x0110, 0x8001, 0x702e,\r
++      0x00ee, 0x0005, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0076, 0x0066,\r
++      0x0006, 0x0126, 0x2091, 0x8000, 0x2071, 0x19b8, 0x7620, 0x2660,\r
++      0x2678, 0x2039, 0x0001, 0x87ff, 0x0904, 0x941d, 0x8cff, 0x0904,\r
++      0x941d, 0x6020, 0x9086, 0x0006, 0x1904, 0x9418, 0x88ff, 0x0138,\r
++      0x2800, 0x9c06, 0x1904, 0x9418, 0x2039, 0x0000, 0x0050, 0x6010,\r
++      0x9b06, 0x1904, 0x9418, 0x85ff, 0x0120, 0x605c, 0x9106, 0x1904,\r
++      0x9418, 0x7030, 0x9c06, 0x15b0, 0x2069, 0x0100, 0x68c0, 0x9005,\r
++      0x1160, 0x6824, 0xd084, 0x0148, 0x6827, 0x0001, 0x080c, 0x820b,\r
++      0x080c, 0x94a2, 0x7033, 0x0000, 0x0428, 0x080c, 0x820b, 0x6820,\r
++      0xd0b4, 0x0110, 0x68a7, 0x95f5, 0x6817, 0x0008, 0x68c3, 0x0000,\r
++      0x080c, 0x94a2, 0x7033, 0x0000, 0x0036, 0x2069, 0x0140, 0x6b04,\r
++      0x9384, 0x1000, 0x0138, 0x2001, 0x0100, 0x080c, 0x2833, 0x9006,\r
++      0x080c, 0x2833, 0x2069, 0x0100, 0x6824, 0xd084, 0x0110, 0x6827,\r
++      0x0001, 0x003e, 0x7020, 0x9c36, 0x1110, 0x660c, 0x7622, 0x701c,\r
++      0x9c36, 0x1140, 0x2c00, 0x9f36, 0x0118, 0x2f00, 0x701e, 0x0010,\r
++      0x701f, 0x0000, 0x660c, 0x0066, 0x2c00, 0x9f06, 0x0110, 0x7e0e,\r
++      0x0008, 0x2678, 0x89ff, 0x1168, 0x600f, 0x0000, 0x6014, 0x0096,\r
++      0x2048, 0x080c, 0xb845, 0x0110, 0x080c, 0xd21e, 0x009e, 0x080c,\r
++      0x9c21, 0x080c, 0x9378, 0x88ff, 0x1190, 0x00ce, 0x0804, 0x9393,\r
++      0x2c78, 0x600c, 0x2060, 0x0804, 0x9393, 0x9006, 0x012e, 0x000e,\r
++      0x006e, 0x007e, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x0005, 0x601b,\r
++      0x0000, 0x00ce, 0x98c5, 0x0001, 0x0c88, 0x00f6, 0x00e6, 0x00d6,\r
++      0x0096, 0x00c6, 0x0066, 0x0026, 0x0006, 0x0126, 0x2091, 0x8000,\r
++      0x2071, 0x19b8, 0x7648, 0x2660, 0x2678, 0x8cff, 0x0904, 0x9491,\r
++      0x6020, 0x9086, 0x0006, 0x1904, 0x948c, 0x87ff, 0x0128, 0x2700,\r
++      0x9c06, 0x1904, 0x948c, 0x0040, 0x6010, 0x9b06, 0x15e8, 0x85ff,\r
++      0x0118, 0x605c, 0x9106, 0x15c0, 0x704c, 0x9c06, 0x1168, 0x0036,\r
++      0x2019, 0x0001, 0x080c, 0x9286, 0x703f, 0x0000, 0x9006, 0x704e,\r
++      0x706a, 0x7052, 0x706e, 0x003e, 0x7048, 0x9c36, 0x1110, 0x660c,\r
++      0x764a, 0x7044, 0x9c36, 0x1140, 0x2c00, 0x9f36, 0x0118, 0x2f00,\r
++      0x7046, 0x0010, 0x7047, 0x0000, 0x660c, 0x0066, 0x2c00, 0x9f06,\r
++      0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f, 0x0000, 0x6014, 0x2048,\r
++      0x080c, 0xb845, 0x0110, 0x080c, 0xd21e, 0x080c, 0x9c21, 0x87ff,\r
++      0x1198, 0x00ce, 0x0804, 0x943d, 0x2c78, 0x600c, 0x2060, 0x0804,\r
++      0x943d, 0x9006, 0x012e, 0x000e, 0x002e, 0x006e, 0x00ce, 0x009e,\r
++      0x00de, 0x00ee, 0x00fe, 0x0005, 0x601b, 0x0000, 0x00ce, 0x97bd,\r
++      0x0001, 0x0c80, 0x00e6, 0x2071, 0x19b8, 0x7033, 0x0000, 0x7004,\r
++      0x9086, 0x0003, 0x0158, 0x2001, 0x1800, 0x2004, 0x9086, 0x0002,\r
++      0x1118, 0x7007, 0x0005, 0x0010, 0x7007, 0x0000, 0x00ee, 0x0005,\r
++      0x00f6, 0x00e6, 0x00c6, 0x0066, 0x0026, 0x0006, 0x0126, 0x2091,\r
++      0x8000, 0x2071, 0x19b8, 0x2c10, 0x7648, 0x2660, 0x2678, 0x8cff,\r
++      0x0518, 0x2200, 0x9c06, 0x11e0, 0x7048, 0x9c36, 0x1110, 0x660c,\r
++      0x764a, 0x7044, 0x9c36, 0x1140, 0x2c00, 0x9f36, 0x0118, 0x2f00,\r
++      0x7046, 0x0010, 0x7047, 0x0000, 0x660c, 0x2c00, 0x9f06, 0x0110,\r
++      0x7e0e, 0x0008, 0x2678, 0x600f, 0x0000, 0x9085, 0x0001, 0x0020,\r
++      0x2c78, 0x600c, 0x2060, 0x08d8, 0x012e, 0x000e, 0x002e, 0x006e,\r
++      0x00ce, 0x00ee, 0x00fe, 0x0005, 0x0096, 0x00f6, 0x00e6, 0x00d6,\r
++      0x00c6, 0x0066, 0x0026, 0x0006, 0x0126, 0x2091, 0x8000, 0x2071,\r
++      0x19b8, 0x7610, 0x2660, 0x2678, 0x8cff, 0x0904, 0x9584, 0x6010,\r
++      0x00b6, 0x2058, 0xb8a0, 0x00be, 0x9206, 0x1904, 0x957f, 0x7030,\r
++      0x9c06, 0x1520, 0x2069, 0x0100, 0x68c0, 0x9005, 0x0904, 0x955b,\r
++      0x080c, 0x8fb7, 0x68c3, 0x0000, 0x080c, 0x94a2, 0x7033, 0x0000,\r
++      0x0036, 0x2069, 0x0140, 0x6b04, 0x9384, 0x1000, 0x0138, 0x2001,\r
++      0x0100, 0x080c, 0x2833, 0x9006, 0x080c, 0x2833, 0x2069, 0x0100,\r
++      0x6824, 0xd084, 0x0110, 0x6827, 0x0001, 0x003e, 0x7010, 0x9c36,\r
++      0x1110, 0x660c, 0x7612, 0x700c, 0x9c36, 0x1140, 0x2c00, 0x9f36,\r
++      0x0118, 0x2f00, 0x700e, 0x0010, 0x700f, 0x0000, 0x660c, 0x0066,\r
++      0x2c00, 0x9f06, 0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f, 0x0000,\r
++      0x080c, 0xba4b, 0x1158, 0x080c, 0x303b, 0x080c, 0xba5c, 0x11f0,\r
++      0x080c, 0xa58f, 0x00d8, 0x080c, 0x94a2, 0x08c0, 0x080c, 0xba5c,\r
++      0x1118, 0x080c, 0xa58f, 0x0090, 0x6014, 0x2048, 0x080c, 0xb845,\r
++      0x0168, 0x6020, 0x9086, 0x0003, 0x1508, 0xa867, 0x0103, 0xab7a,\r
++      0xa877, 0x0000, 0x080c, 0x698a, 0x080c, 0xba36, 0x080c, 0xbcd3,\r
++      0x080c, 0x9c21, 0x080c, 0x9378, 0x00ce, 0x0804, 0x9504, 0x2c78,\r
++      0x600c, 0x2060, 0x0804, 0x9504, 0x012e, 0x000e, 0x002e, 0x006e,\r
++      0x00ce, 0x00de, 0x00ee, 0x00fe, 0x009e, 0x0005, 0x6020, 0x9086,\r
++      0x0006, 0x1d20, 0x080c, 0xd21e, 0x0c08, 0x00d6, 0x080c, 0x8d6b,\r
++      0x7003, 0x0200, 0x7007, 0x0014, 0x60c3, 0x0014, 0x20e1, 0x0001,\r
++      0x2099, 0x195a, 0x20e9, 0x0000, 0x20a1, 0x0250, 0x20a9, 0x0004,\r
++      0x4003, 0x7023, 0x0004, 0x7027, 0x7878, 0x080c, 0x8f87, 0x00de,\r
++      0x0005, 0x080c, 0x8d6b, 0x700b, 0x0800, 0x7814, 0x9084, 0xff00,\r
++      0x700e, 0x7814, 0x9084, 0x00ff, 0x7022, 0x782c, 0x7026, 0x7860,\r
++      0x9084, 0x00ff, 0x9085, 0x0200, 0x7002, 0x7860, 0x9084, 0xff00,\r
++      0x8007, 0x7006, 0x60c2, 0x0804, 0x8f87, 0x00b6, 0x00d6, 0x0016,\r
++      0x00d6, 0x2f68, 0x2009, 0x0035, 0x080c, 0xbed9, 0x00de, 0x1904,\r
++      0x9632, 0x080c, 0x8d20, 0x7003, 0x1300, 0x782c, 0x080c, 0x973d,\r
++      0x2068, 0x6820, 0x9086, 0x0003, 0x0560, 0x7810, 0x2058, 0xbaa0,\r
++      0x080c, 0x9b66, 0x11d8, 0x9286, 0x007e, 0x1128, 0x700b, 0x00ff,\r
++      0x700f, 0xfffe, 0x0498, 0x9286, 0x007f, 0x1128, 0x700b, 0x00ff,\r
++      0x700f, 0xfffd, 0x0458, 0x9284, 0xff80, 0x0180, 0x9286, 0x0080,\r
++      0x1128, 0x700b, 0x00ff, 0x700f, 0xfffc, 0x0400, 0x92d8, 0x1000,\r
++      0x2b5c, 0xb810, 0x700a, 0xb814, 0x700e, 0x00c0, 0xb884, 0x700e,\r
++      0x00a8, 0x080c, 0x9b66, 0x1130, 0x7810, 0x2058, 0xb8a0, 0x9082,\r
++      0x007e, 0x0250, 0x00d6, 0x2069, 0x181e, 0x2d04, 0x700a, 0x8d68,\r
++      0x2d04, 0x700e, 0x00de, 0x0010, 0x6034, 0x700e, 0x7838, 0x7012,\r
++      0x783c, 0x7016, 0x60c3, 0x000c, 0x001e, 0x00de, 0x080c, 0x8f87,\r
++      0x00be, 0x0005, 0x781b, 0x0001, 0x7803, 0x0006, 0x001e, 0x00de,\r
++      0x00be, 0x0005, 0x792c, 0x9180, 0x0008, 0x200c, 0x9186, 0x0006,\r
++      0x01c0, 0x9186, 0x0003, 0x0904, 0x96b0, 0x9186, 0x0005, 0x0904,\r
++      0x9698, 0x9186, 0x0004, 0x05f0, 0x9186, 0x0008, 0x0904, 0x96a1,\r
++      0x7807, 0x0037, 0x782f, 0x0003, 0x7817, 0x1700, 0x080c, 0x971a,\r
++      0x0005, 0x080c, 0x96db, 0x00d6, 0x0026, 0x792c, 0x2168, 0x2009,\r
++      0x4000, 0x6800, 0x6a44, 0xd2fc, 0x11f8, 0x0002, 0x9679, 0x9684,\r
++      0x967b, 0x9684, 0x9680, 0x9679, 0x9679, 0x9684, 0x9684, 0x9684,\r
++      0x9684, 0x9679, 0x9679, 0x9679, 0x9679, 0x9679, 0x9684, 0x9679,\r
++      0x9684, 0x080c, 0x0d65, 0x6824, 0xd0e4, 0x0110, 0xd0cc, 0x0110,\r
++      0x900e, 0x0010, 0x2009, 0x2000, 0x682c, 0x7022, 0x6830, 0x7026,\r
++      0x0804, 0x96d4, 0x080c, 0x96db, 0x00d6, 0x0026, 0x792c, 0x2168,\r
++      0x2009, 0x4000, 0x6a00, 0x9286, 0x0002, 0x1108, 0x900e, 0x04e0,\r
++      0x080c, 0x96db, 0x00d6, 0x0026, 0x792c, 0x2168, 0x2009, 0x4000,\r
++      0x0498, 0x04c9, 0x00d6, 0x0026, 0x792c, 0x2168, 0x2009, 0x4000,\r
++      0x9286, 0x0005, 0x0118, 0x9286, 0x0002, 0x1108, 0x900e, 0x0420,\r
++      0x0451, 0x00d6, 0x0026, 0x792c, 0x2168, 0x6814, 0x0096, 0x2048,\r
++      0xa9ac, 0xa834, 0x9112, 0xa9b0, 0xa838, 0x009e, 0x9103, 0x7022,\r
++      0x7226, 0x792c, 0x9180, 0x0011, 0x2004, 0xd0fc, 0x1148, 0x9180,\r
++      0x0000, 0x2004, 0x908e, 0x0002, 0x0130, 0x908e, 0x0004, 0x0118,\r
++      0x2009, 0x4000, 0x0008, 0x900e, 0x712a, 0x60c3, 0x0018, 0x002e,\r
++      0x00de, 0x0804, 0x8f87, 0x00b6, 0x0036, 0x0046, 0x0056, 0x0066,\r
++      0x080c, 0x8d6b, 0x9006, 0x7003, 0x0200, 0x7938, 0x710a, 0x793c,\r
++      0x710e, 0x7810, 0x2058, 0xb8a0, 0x080c, 0x9b66, 0x1118, 0x9092,\r
++      0x007e, 0x0268, 0x00d6, 0x2069, 0x181e, 0x2d2c, 0x8d68, 0x2d34,\r
++      0x90d8, 0x1000, 0x2b5c, 0xbb10, 0xbc14, 0x00de, 0x0028, 0x901e,\r
++      0xbc84, 0x2029, 0x0000, 0x6634, 0x782c, 0x9080, 0x0008, 0x2004,\r
++      0x9086, 0x0003, 0x1128, 0x7512, 0x7616, 0x731a, 0x741e, 0x0020,\r
++      0x7312, 0x7416, 0x751a, 0x761e, 0x006e, 0x005e, 0x004e, 0x003e,\r
++      0x00be, 0x0005, 0x080c, 0x8d6b, 0x7003, 0x0100, 0x782c, 0x700a,\r
++      0x7814, 0x700e, 0x700e, 0x60c3, 0x0008, 0x0804, 0x8f87, 0x080c,\r
++      0x8d17, 0x7003, 0x1400, 0x7838, 0x700a, 0x0079, 0x783c, 0x700e,\r
++      0x782c, 0x7012, 0x7830, 0x7016, 0x7834, 0x9084, 0x00ff, 0x8007,\r
++      0x701a, 0x60c3, 0x0010, 0x0804, 0x8f87, 0x00e6, 0x2071, 0x0240,\r
++      0x0006, 0x00f6, 0x2078, 0x7810, 0x00b6, 0x2058, 0xb8c4, 0xd084,\r
++      0x0120, 0x7850, 0x702a, 0x784c, 0x702e, 0x00be, 0x00fe, 0x000e,\r
++      0x00ee, 0x0005, 0x080c, 0x8d62, 0x7003, 0x0100, 0x782c, 0x700a,\r
++      0x7814, 0x700e, 0x60c3, 0x0008, 0x0804, 0x8f87, 0x00a9, 0x7914,\r
++      0x712a, 0x60c3, 0x0000, 0x60a7, 0x9575, 0x0026, 0x080c, 0x27a2,\r
++      0x0228, 0x2011, 0x0101, 0x2204, 0xc0c5, 0x2012, 0x002e, 0x080c,\r
++      0x8faa, 0x080c, 0x8202, 0x0005, 0x0036, 0x0096, 0x00d6, 0x00e6,\r
++      0x7860, 0x2048, 0xaa7c, 0x9296, 0x00c0, 0x9294, 0xfffd, 0xaa7e,\r
++      0xaa80, 0x9294, 0x0300, 0xaa82, 0xa96c, 0x9194, 0x00ff, 0xab74,\r
++      0x9384, 0x00ff, 0x908d, 0xc200, 0xa96e, 0x9384, 0xff00, 0x9215,\r
++      0xaa76, 0xa870, 0xaa78, 0xa87a, 0xaa72, 0x00d6, 0x2069, 0x0200,\r
++      0x080c, 0x97fa, 0x00de, 0x20e9, 0x0000, 0x20a1, 0x0240, 0x20a9,\r
++      0x000a, 0xa860, 0x20e0, 0xa85c, 0x9080, 0x001b, 0x2098, 0x4003,\r
++      0x60a3, 0x0035, 0xaa68, 0x9294, 0x7000, 0x9286, 0x3000, 0x0110,\r
++      0x60a3, 0x0037, 0x00ee, 0x00de, 0x009e, 0x003e, 0x0005, 0x900e,\r
++      0x7814, 0x0096, 0x2048, 0xa87c, 0xd0fc, 0x01c0, 0x9084, 0x0003,\r
++      0x11a8, 0x2001, 0x180c, 0x2004, 0xd0bc, 0x0180, 0x7824, 0xd0cc,\r
++      0x1168, 0xd0c4, 0x1158, 0xa8a8, 0x9005, 0x1140, 0x2001, 0x180c,\r
++      0x200c, 0xc1d5, 0x2102, 0x2009, 0x1983, 0x210c, 0x009e, 0x918d,\r
++      0x0092, 0x0010, 0x2009, 0x0096, 0x60ab, 0x0036, 0x0026, 0x2110,\r
++      0x900e, 0x080c, 0x287c, 0x002e, 0x0005, 0x2009, 0x0009, 0x00a0,\r
++      0x2009, 0x000a, 0x0088, 0x2009, 0x000b, 0x0070, 0x2009, 0x000c,\r
++      0x0058, 0x2009, 0x000d, 0x0040, 0x2009, 0x000e, 0x0028, 0x2009,\r
++      0x000f, 0x0010, 0x2009, 0x0008, 0x6912, 0x0005, 0x00d6, 0x9290,\r
++      0x0018, 0x8214, 0x20e9, 0x0000, 0x2069, 0x0200, 0x6813, 0x0000,\r
++      0x22a8, 0x9284, 0x00e0, 0x0128, 0x20a9, 0x0020, 0x9292, 0x0020,\r
++      0x0008, 0x9016, 0x20a1, 0x0240, 0x9006, 0x4004, 0x82ff, 0x0120,\r
++      0x6810, 0x8000, 0x6812, 0x0c60, 0x00de, 0x0005, 0x00f6, 0x00e6,\r
++      0x00d6, 0x00c6, 0x00a6, 0x0096, 0x0066, 0x0126, 0x2091, 0x8000,\r
++      0x2071, 0x19b8, 0x7610, 0x2660, 0x2678, 0x8cff, 0x0904, 0x98a5,\r
++      0x7030, 0x9c06, 0x1520, 0x2069, 0x0100, 0x68c0, 0x9005, 0x0904,\r
++      0x987c, 0x080c, 0x8fb7, 0x68c3, 0x0000, 0x080c, 0x94a2, 0x7033,\r
++      0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0x9384, 0x1000, 0x0138,\r
++      0x2001, 0x0100, 0x080c, 0x2833, 0x9006, 0x080c, 0x2833, 0x2069,\r
++      0x0100, 0x6824, 0xd084, 0x0110, 0x6827, 0x0001, 0x003e, 0x7010,\r
++      0x9c36, 0x1110, 0x660c, 0x7612, 0x700c, 0x9c36, 0x1140, 0x2c00,\r
++      0x9f36, 0x0118, 0x2f00, 0x700e, 0x0010, 0x700f, 0x0000, 0x660c,\r
++      0x0066, 0x2c00, 0x9f06, 0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f,\r
++      0x0000, 0x080c, 0xba4b, 0x1158, 0x080c, 0x303b, 0x080c, 0xba5c,\r
++      0x11f0, 0x080c, 0xa58f, 0x00d8, 0x080c, 0x94a2, 0x08c0, 0x080c,\r
++      0xba5c, 0x1118, 0x080c, 0xa58f, 0x0090, 0x6014, 0x2048, 0x080c,\r
++      0xb845, 0x0168, 0x6020, 0x9086, 0x0003, 0x1520, 0xa867, 0x0103,\r
++      0xab7a, 0xa877, 0x0000, 0x080c, 0x6996, 0x080c, 0xba36, 0x080c,\r
++      0xbcd3, 0x080c, 0x9c21, 0x080c, 0x9378, 0x00ce, 0x0804, 0x982d,\r
++      0x2c78, 0x600c, 0x2060, 0x0804, 0x982d, 0x7013, 0x0000, 0x700f,\r
++      0x0000, 0x012e, 0x006e, 0x009e, 0x00ae, 0x00ce, 0x00de, 0x00ee,\r
++      0x00fe, 0x0005, 0x6020, 0x9086, 0x0006, 0x1d08, 0x080c, 0xd21e,\r
++      0x08f0, 0x00f6, 0x0036, 0x2079, 0x0380, 0x7b18, 0xd3bc, 0x1de8,\r
++      0x7832, 0x7936, 0x7a3a, 0x781b, 0x8080, 0x003e, 0x00fe, 0x0005,\r
++      0x0016, 0x2001, 0x0382, 0x2004, 0x9084, 0x0007, 0x9086, 0x0001,\r
++      0x1188, 0x2001, 0x0015, 0x0c29, 0x2009, 0x1000, 0x2001, 0x0382,\r
++      0x2004, 0x9084, 0x0007, 0x9086, 0x0003, 0x0120, 0x8109, 0x1db0,\r
++      0x080c, 0x0d65, 0x001e, 0x0005, 0x2001, 0x0382, 0x2004, 0x9084,\r
++      0x0007, 0x9086, 0x0003, 0x1120, 0x2001, 0x0380, 0x2003, 0x0001,\r
++      0x0005, 0x0156, 0x0016, 0x0026, 0x00e6, 0x900e, 0x2071, 0x19b8,\r
++      0x0469, 0x0106, 0x0190, 0x7004, 0x9086, 0x0003, 0x0148, 0x20a9,\r
++      0x1000, 0x6044, 0xd0fc, 0x01d8, 0x1f04, 0x9901, 0x080c, 0x0d65,\r
++      0x080c, 0x98c8, 0x6044, 0xd0fc, 0x0190, 0x7030, 0x9c06, 0x1148,\r
++      0x080c, 0x8874, 0x6044, 0xd0dc, 0x0150, 0xc0dc, 0x6046, 0x700a,\r
++      0x7042, 0x704c, 0x9c06, 0x190c, 0x0d65, 0x080c, 0x88d1, 0x010e,\r
++      0x1919, 0x00ee, 0x002e, 0x001e, 0x015e, 0x0005, 0x2001, 0x0382,\r
++      0x2004, 0x9084, 0x0007, 0x9086, 0x0003, 0x0005, 0x0126, 0x2091,\r
++      0x2400, 0x7808, 0xd0a4, 0x190c, 0x0d5e, 0xd09c, 0x0128, 0x7820,\r
++      0x908c, 0xf000, 0x11b8, 0x0012, 0x012e, 0x0005, 0x994e, 0x998c,\r
++      0x99b3, 0x99e3, 0x99f3, 0x9a04, 0x9a13, 0x9a21, 0x9a32, 0x9a36,\r
++      0x994e, 0x994e, 0x994e, 0x994e, 0x994e, 0x994e, 0x080c, 0x0d65,\r
++      0x012e, 0x0005, 0x2060, 0x6044, 0xd0bc, 0x0140, 0xc0bc, 0x6046,\r
++      0x6000, 0x908a, 0x0016, 0x1a0c, 0x0d65, 0x0012, 0x012e, 0x0005,\r
++      0x9973, 0x9975, 0x9973, 0x997b, 0x9973, 0x9973, 0x9973, 0x9973,\r
++      0x9973, 0x9975, 0x9973, 0x9975, 0x9973, 0x9975, 0x9973, 0x9973,\r
++      0x9973, 0x9975, 0x9973, 0x080c, 0x0d65, 0x2009, 0x0013, 0x080c,\r
++      0x9c85, 0x012e, 0x0005, 0x6014, 0x2048, 0xa87c, 0xd0dc, 0x0130,\r
++      0x080c, 0x83c0, 0x080c, 0x9be7, 0x012e, 0x0005, 0x2009, 0x0049,\r
++      0x080c, 0x9c85, 0x012e, 0x0005, 0x080c, 0x98c8, 0x2001, 0x19dd,\r
++      0x2003, 0x0000, 0x7030, 0x9065, 0x090c, 0x0d65, 0x7034, 0x9092,\r
++      0x00c8, 0x1258, 0x8000, 0x7036, 0x7004, 0x9086, 0x0003, 0x0110,\r
++      0x7007, 0x0000, 0x781f, 0x0808, 0x0040, 0x080c, 0xd610, 0x6003,\r
++      0x0001, 0x2009, 0x0014, 0x080c, 0x9c85, 0x781f, 0x0100, 0x080c,\r
++      0x98e4, 0x012e, 0x0005, 0x080c, 0x98c8, 0x714c, 0x81ff, 0x1128,\r
++      0x2011, 0x19e0, 0x2013, 0x0000, 0x0400, 0x2061, 0x0100, 0x7150,\r
++      0x9192, 0x7530, 0x12b8, 0x8108, 0x7152, 0x714c, 0x9188, 0x0008,\r
++      0x210c, 0x918e, 0x0006, 0x1138, 0x6014, 0x9084, 0x1984, 0x9085,\r
++      0x0012, 0x6016, 0x0050, 0x6014, 0x9084, 0x1984, 0x9085, 0x0016,\r
++      0x6016, 0x0018, 0x706c, 0xc085, 0x706e, 0x781f, 0x0200, 0x080c,\r
++      0x98e4, 0x012e, 0x0005, 0x080c, 0x98c8, 0x714c, 0x2160, 0x6003,\r
++      0x0003, 0x2009, 0x004a, 0x080c, 0x9c85, 0x781f, 0x0200, 0x080c,\r
++      0x98e4, 0x012e, 0x0005, 0x7808, 0xd09c, 0x0de8, 0x7820, 0x2060,\r
++      0x6003, 0x0003, 0x080c, 0x98c8, 0x080c, 0x1c02, 0x781f, 0x0400,\r
++      0x080c, 0x98e4, 0x012e, 0x0005, 0x7808, 0xd09c, 0x0de8, 0x7820,\r
++      0x2060, 0x080c, 0x98c8, 0x080c, 0x1c4a, 0x781f, 0x0400, 0x080c,\r
++      0x98e4, 0x012e, 0x0005, 0x7030, 0x9065, 0x0148, 0x6044, 0xc0bc,\r
++      0x6046, 0x7104, 0x9186, 0x0003, 0x0110, 0x080c, 0x8937, 0x012e,\r
++      0x0005, 0x00f6, 0x703c, 0x9086, 0x0002, 0x0148, 0x704c, 0x907d,\r
++      0x0130, 0x7844, 0xc0bc, 0x7846, 0x080c, 0x8ee1, 0x0000, 0x00fe,\r
++      0x012e, 0x0005, 0x080c, 0x7158, 0x012e, 0x0005, 0x080c, 0x0d65,\r
++      0x0005, 0x00e6, 0x2071, 0x19b8, 0x6044, 0xc0bc, 0x6046, 0xd0fc,\r
++      0x01b8, 0x704c, 0x9c06, 0x1190, 0x2019, 0x0001, 0x080c, 0x9286,\r
++      0x704f, 0x0000, 0x2001, 0x0109, 0x2004, 0xd08c, 0x1138, 0x2001,\r
++      0x0108, 0x2004, 0xd0bc, 0x1110, 0x703f, 0x0000, 0x080c, 0x94b8,\r
++      0x00ee, 0x0005, 0x0026, 0x7010, 0x9c06, 0x1178, 0x080c, 0x9378,\r
++      0x6044, 0xc0fc, 0x6046, 0x600c, 0x9015, 0x0120, 0x7212, 0x600f,\r
++      0x0000, 0x0010, 0x7212, 0x720e, 0x9006, 0x002e, 0x0005, 0x0026,\r
++      0x7020, 0x9c06, 0x1178, 0x080c, 0x9378, 0x6044, 0xc0fc, 0x6046,\r
++      0x600c, 0x9015, 0x0120, 0x7222, 0x600f, 0x0000, 0x0010, 0x7222,\r
++      0x721e, 0x9006, 0x002e, 0x0005, 0x00d6, 0x0036, 0x7830, 0x9c06,\r
++      0x1558, 0x2069, 0x0100, 0x68c0, 0x9005, 0x01f8, 0x080c, 0x820b,\r
++      0x080c, 0x8fb7, 0x68c3, 0x0000, 0x080c, 0x94a2, 0x2069, 0x0140,\r
++      0x6b04, 0x9384, 0x1000, 0x0138, 0x2001, 0x0100, 0x080c, 0x2833,\r
++      0x9006, 0x080c, 0x2833, 0x2069, 0x0100, 0x6824, 0xd084, 0x0110,\r
++      0x6827, 0x0001, 0x9085, 0x0001, 0x0038, 0x7808, 0xc0ad, 0x780a,\r
++      0x6003, 0x0009, 0x630a, 0x9006, 0x003e, 0x00de, 0x0005, 0x0016,\r
++      0x0026, 0x0036, 0x6100, 0x2019, 0x0100, 0x2001, 0x0382, 0x2004,\r
++      0xd09c, 0x0190, 0x00c6, 0x0126, 0x2091, 0x2800, 0x0016, 0x0036,\r
++      0x080c, 0x992e, 0x003e, 0x001e, 0x012e, 0x00ce, 0x6200, 0x2200,\r
++      0x9106, 0x0d58, 0x2200, 0x0010, 0x8319, 0x1d38, 0x003e, 0x002e,\r
++      0x001e, 0x0005, 0x00d6, 0x0156, 0x080c, 0x8d6b, 0x7a14, 0x82ff,\r
++      0x0138, 0x7003, 0x0100, 0x700b, 0x0003, 0x60c3, 0x0008, 0x0490,\r
++      0x7003, 0x0200, 0x7007, 0x0000, 0x2069, 0x1800, 0x901e, 0x6800,\r
++      0x9086, 0x0004, 0x1110, 0xc38d, 0x0060, 0x080c, 0x70b7, 0x1110,\r
++      0xc3ad, 0x0008, 0xc3a5, 0x6ad8, 0xd29c, 0x1110, 0xd2ac, 0x0108,\r
++      0xc39d, 0x730e, 0x2011, 0x1848, 0x63f0, 0x2312, 0x20a9, 0x0006,\r
++      0x2011, 0x1840, 0x2019, 0x1841, 0x2071, 0x0250, 0x2376, 0x8e70,\r
++      0x2276, 0x8e70, 0x9398, 0x0002, 0x9290, 0x0002, 0x1f04, 0x9b0e,\r
++      0x60c3, 0x0020, 0x080c, 0x8f87, 0x015e, 0x00de, 0x0005, 0x0156,\r
++      0x080c, 0x8d6b, 0x7a14, 0x82ff, 0x0168, 0x9286, 0xffff, 0x0118,\r
++      0x9282, 0x000e, 0x1238, 0x7003, 0x0100, 0x700b, 0x0003, 0x60c3,\r
++      0x0008, 0x0488, 0x7003, 0x0200, 0x7007, 0x001c, 0x700f, 0x0001,\r
++      0x2011, 0x198e, 0x2204, 0x8007, 0x701a, 0x8210, 0x2204, 0x8007,\r
++      0x701e, 0x0421, 0x1120, 0xb8a0, 0x9082, 0x007f, 0x0248, 0x2001,\r
++      0x181e, 0x2004, 0x7022, 0x2001, 0x181f, 0x2004, 0x7026, 0x0030,\r
++      0x2001, 0x1817, 0x2004, 0x9084, 0x00ff, 0x7026, 0x20a9, 0x0004,\r
++      0x20e1, 0x0001, 0x2099, 0x1805, 0x20e9, 0x0000, 0x20a1, 0x0256,\r
++      0x4003, 0x60c3, 0x001c, 0x015e, 0x0804, 0x8f87, 0x0006, 0x2001,\r
++      0x1836, 0x2004, 0xd0ac, 0x000e, 0x0005, 0x2011, 0x0003, 0x080c,\r
++      0x9339, 0x2011, 0x0002, 0x080c, 0x9343, 0x080c, 0x9206, 0x0036,\r
++      0x901e, 0x080c, 0x9286, 0x003e, 0x0005, 0x2071, 0x1883, 0x7000,\r
++      0x9005, 0x0140, 0x2001, 0x0812, 0x2071, 0x1800, 0x7072, 0x7076,\r
++      0x7067, 0xffd4, 0x2071, 0x1800, 0x7070, 0x7052, 0x7057, 0x1ddc,\r
++      0x0005, 0x00e6, 0x0126, 0x2071, 0x1800, 0x2091, 0x8000, 0x7550,\r
++      0x9582, 0x0010, 0x0608, 0x7054, 0x2060, 0x6000, 0x9086, 0x0000,\r
++      0x0148, 0x9ce0, 0x001c, 0x7064, 0x9c02, 0x1208, 0x0cb0, 0x2061,\r
++      0x1ddc, 0x0c98, 0x6003, 0x0008, 0x8529, 0x7552, 0x9ca8, 0x001c,\r
++      0x7064, 0x9502, 0x1230, 0x7556, 0x9085, 0x0001, 0x012e, 0x00ee,\r
++      0x0005, 0x7057, 0x1ddc, 0x0cc0, 0x9006, 0x0cc0, 0x00e6, 0x2071,\r
++      0x1800, 0x7550, 0x9582, 0x0010, 0x0600, 0x7054, 0x2060, 0x6000,\r
++      0x9086, 0x0000, 0x0148, 0x9ce0, 0x001c, 0x7064, 0x9c02, 0x1208,\r
++      0x0cb0, 0x2061, 0x1ddc, 0x0c98, 0x6003, 0x0008, 0x8529, 0x7552,\r
++      0x9ca8, 0x001c, 0x7064, 0x9502, 0x1228, 0x7556, 0x9085, 0x0001,\r
++      0x00ee, 0x0005, 0x7057, 0x1ddc, 0x0cc8, 0x9006, 0x0cc8, 0x9c82,\r
++      0x1ddc, 0x0a0c, 0x0d65, 0x2001, 0x1819, 0x2004, 0x9c02, 0x1a0c,\r
++      0x0d65, 0x9006, 0x6006, 0x600a, 0x600e, 0x6016, 0x601a, 0x6012,\r
++      0x6023, 0x0000, 0x6003, 0x0000, 0x601e, 0x605e, 0x6062, 0x6026,\r
++      0x602a, 0x602e, 0x6032, 0x6036, 0x603a, 0x603e, 0x604a, 0x6046,\r
++      0x6042, 0x2061, 0x1800, 0x6050, 0x8000, 0x6052, 0x0005, 0x9006,\r
++      0x600e, 0x6016, 0x601a, 0x6012, 0x6022, 0x6002, 0x601e, 0x605e,\r
++      0x6062, 0x604a, 0x6046, 0x2061, 0x1800, 0x6050, 0x8000, 0x6052,\r
++      0x0005, 0x0006, 0x6000, 0x9086, 0x0000, 0x01d0, 0x601c, 0xd084,\r
++      0x190c, 0x1914, 0x6023, 0x0007, 0x2001, 0x1957, 0x2004, 0x0006,\r
++      0x9082, 0x0051, 0x000e, 0x0208, 0x8004, 0x601a, 0x080c, 0xd4ce,\r
++      0x604b, 0x0000, 0x6044, 0xd0fc, 0x1129, 0x9006, 0x6046, 0x6016,\r
++      0x000e, 0x0005, 0x080c, 0x9926, 0x0106, 0x190c, 0x98c8, 0x2001,\r
++      0x19cb, 0x2004, 0x9c06, 0x1130, 0x0036, 0x2019, 0x0001, 0x080c,\r
++      0x9286, 0x003e, 0x080c, 0x94b8, 0x010e, 0x190c, 0x98e4, 0x0005,\r
++      0x00e6, 0x0126, 0x2071, 0x1800, 0x2091, 0x8000, 0x7550, 0x9582,\r
++      0x0001, 0x0608, 0x7054, 0x2060, 0x6000, 0x9086, 0x0000, 0x0148,\r
++      0x9ce0, 0x001c, 0x7064, 0x9c02, 0x1208, 0x0cb0, 0x2061, 0x1ddc,\r
++      0x0c98, 0x6003, 0x0008, 0x8529, 0x7552, 0x9ca8, 0x001c, 0x7064,\r
++      0x9502, 0x1230, 0x7556, 0x9085, 0x0001, 0x012e, 0x00ee, 0x0005,\r
++      0x7057, 0x1ddc, 0x0cc0, 0x9006, 0x0cc0, 0x6020, 0x9084, 0x000f,\r
++      0x0002, 0x9c99, 0x9ca3, 0x9cbe, 0x9cd9, 0xbfab, 0xbfc8, 0xbfe3,\r
++      0x9c99, 0x9ca3, 0x9c99, 0x9cf5, 0x9c99, 0x9c99, 0x9c99, 0x9c99,\r
++      0x9c99, 0x9186, 0x0013, 0x1130, 0x6044, 0xd0fc, 0x0110, 0x080c,\r
++      0x8874, 0x0005, 0x0005, 0x0066, 0x6000, 0x90b2, 0x0016, 0x1a0c,\r
++      0x0d65, 0x0013, 0x006e, 0x0005, 0x9cbc, 0xa404, 0xa5d6, 0x9cbc,\r
++      0xa664, 0x9fbe, 0x9cbc, 0x9cbc, 0xa386, 0xac09, 0x9cbc, 0x9cbc,\r
++      0x9cbc, 0x9cbc, 0x9cbc, 0x9cbc, 0x080c, 0x0d65, 0x0066, 0x6000,\r
++      0x90b2, 0x0016, 0x1a0c, 0x0d65, 0x0013, 0x006e, 0x0005, 0x9cd7,\r
++      0xb214, 0x9cd7, 0x9cd7, 0x9cd7, 0x9cd7, 0x9cd7, 0x9cd7, 0xb1b9,\r
++      0xb397, 0x9cd7, 0xb251, 0xb2d5, 0xb251, 0xb2d5, 0x9cd7, 0x080c,\r
++      0x0d65, 0x6000, 0x9082, 0x0016, 0x1a0c, 0x0d65, 0x6000, 0x0002,\r
++      0x9cf3, 0xac53, 0xacea, 0xae6a, 0xaed9, 0x9cf3, 0x9cf3, 0x9cf3,\r
++      0xac22, 0xb13a, 0xb13d, 0x9cf3, 0x9cf3, 0x9cf3, 0x9cf3, 0xb16d,\r
++      0x9cf3, 0x9cf3, 0x9cf3, 0x080c, 0x0d65, 0x0066, 0x6000, 0x90b2,\r
++      0x0016, 0x1a0c, 0x0d65, 0x0013, 0x006e, 0x0005, 0x9d0e, 0x9d0e,\r
++      0x9d4c, 0x9deb, 0x9e6b, 0x9d0e, 0x9d0e, 0x9d0e, 0x9d10, 0x9d0e,\r
++      0x9d0e, 0x9d0e, 0x9d0e, 0x9d0e, 0x9d0e, 0x9d0e, 0x080c, 0x0d65,\r
++      0x9186, 0x004c, 0x0560, 0x9186, 0x0003, 0x190c, 0x0d65, 0x0096,\r
++      0x601c, 0xc0ed, 0x601e, 0x6003, 0x0003, 0x6106, 0x6014, 0x2048,\r
++      0xa87c, 0x9084, 0xa000, 0xc0b5, 0xa87e, 0xa8ac, 0xa836, 0xa8b0,\r
++      0xa83a, 0x9006, 0xa846, 0xa84a, 0xa884, 0x9092, 0x199a, 0x0210,\r
++      0x2001, 0x1999, 0x8003, 0x8013, 0x8213, 0x9210, 0x621a, 0x009e,\r
++      0x080c, 0x1a64, 0x2009, 0x8030, 0x080c, 0x8518, 0x0005, 0x6010,\r
++      0x00b6, 0x2058, 0xbca0, 0x00be, 0x2c00, 0x080c, 0x9e8d, 0x080c,\r
++      0xbf79, 0x6003, 0x0007, 0x0005, 0x00d6, 0x0096, 0x00f6, 0x2079,\r
++      0x1800, 0x7a8c, 0x6014, 0x2048, 0xa87c, 0xd0ec, 0x1110, 0x9290,\r
++      0x0018, 0xac78, 0xc4fc, 0x0046, 0xa8e0, 0x9005, 0x1140, 0xa8dc,\r
++      0x921a, 0x0140, 0x0220, 0xa87b, 0x0007, 0x2010, 0x0028, 0xa87b,\r
++      0x0015, 0x0010, 0xa87b, 0x0000, 0x8214, 0xa883, 0x0000, 0xaa02,\r
++      0x0006, 0x0016, 0x0026, 0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x2400,\r
++      0x9005, 0x1108, 0x009a, 0x2100, 0x9086, 0x0015, 0x1118, 0x2001,\r
++      0x0001, 0x0038, 0x2100, 0x9086, 0x0016, 0x0118, 0x2001, 0x0001,\r
++      0x002a, 0x94a4, 0x0007, 0x8423, 0x9405, 0x0002, 0x9db3, 0x9db3,\r
++      0x9dae, 0x9db1, 0x9db3, 0x9dab, 0x9d9e, 0x9d9e, 0x9d9e, 0x9d9e,\r
++      0x9d9e, 0x9d9e, 0x9d9e, 0x9d9e, 0x9d9e, 0x9d9e, 0x00fe, 0x00ee,\r
++      0x00de, 0x00ce, 0x002e, 0x001e, 0x000e, 0x004e, 0x00fe, 0x009e,\r
++      0x00de, 0x080c, 0x0d65, 0x080c, 0xa845, 0x0028, 0x080c, 0xa968,\r
++      0x0010, 0x080c, 0xaa57, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x002e,\r
++      0x001e, 0x2c00, 0xa896, 0x000e, 0x080c, 0x9f4b, 0x0530, 0xa804,\r
++      0xa80e, 0x00a6, 0x2050, 0xb100, 0x00ae, 0x8006, 0x8006, 0x8007,\r
++      0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x0002, 0xaacc, 0xabd0,\r
++      0xacd4, 0xadd8, 0x2031, 0x0000, 0x2041, 0x1280, 0x080c, 0xa0f5,\r
++      0x0160, 0x000e, 0x9005, 0x0120, 0x00fe, 0x009e, 0x00de, 0x0005,\r
++      0x00fe, 0x009e, 0x00de, 0x0804, 0x9be7, 0x2001, 0x002c, 0x900e,\r
++      0x080c, 0x9fb1, 0x0c70, 0x91b6, 0x0015, 0x0170, 0x91b6, 0x0016,\r
++      0x0158, 0x91b2, 0x0047, 0x0a0c, 0x0d65, 0x91b2, 0x0050, 0x1a0c,\r
++      0x0d65, 0x9182, 0x0047, 0x0042, 0x080c, 0x9ab7, 0x0120, 0x9086,\r
++      0x0002, 0x0904, 0x9d4c, 0x0005, 0x9e0d, 0x9e0d, 0x9e0f, 0x9e41,\r
++      0x9e0d, 0x9e0d, 0x9e0d, 0x9e0d, 0x9e54, 0x080c, 0x0d65, 0x00d6,\r
++      0x0016, 0x0096, 0x6003, 0x0004, 0x6114, 0x2148, 0xa87c, 0xd0fc,\r
++      0x01c0, 0xa878, 0xc0fc, 0x9005, 0x1158, 0xa894, 0x9005, 0x0140,\r
++      0x2001, 0x0000, 0x900e, 0x080c, 0x9fb1, 0x080c, 0x9be7, 0x00a8,\r
++      0x6003, 0x0002, 0xa8a4, 0xa9a8, 0x9105, 0x1178, 0xa8ae, 0xa8b2,\r
++      0x0c78, 0xa87f, 0x0020, 0xa88c, 0xa88a, 0xa8a4, 0xa8ae, 0xa8a8,\r
++      0xa8b2, 0xa8c7, 0x0000, 0xa8cb, 0x0000, 0x009e, 0x001e, 0x00de,\r
++      0x0005, 0x080c, 0x88d1, 0x00d6, 0x0096, 0x6114, 0x2148, 0x080c,\r
++      0xb847, 0x0120, 0xa87b, 0x0006, 0x080c, 0x6996, 0x009e, 0x00de,\r
++      0x080c, 0x9be7, 0x0804, 0x8936, 0x080c, 0x88d1, 0x080c, 0x3006,\r
++      0x080c, 0xbf76, 0x00d6, 0x0096, 0x6114, 0x2148, 0x080c, 0xb847,\r
++      0x0120, 0xa87b, 0x0029, 0x080c, 0x6996, 0x009e, 0x00de, 0x080c,\r
++      0x9be7, 0x0804, 0x8936, 0x9182, 0x0047, 0x0002, 0x9e7b, 0x9e7d,\r
++      0x9e7b, 0x9e7b, 0x9e7b, 0x9e7b, 0x9e7b, 0x9e7b, 0x9e7b, 0x9e7b,\r
++      0x9e7b, 0x9e7b, 0x9e7d, 0x080c, 0x0d65, 0x00d6, 0x0096, 0x080c,\r
++      0x1595, 0x6114, 0x2148, 0xa87b, 0x0000, 0xa883, 0x0000, 0x080c,\r
++      0x6996, 0x009e, 0x00de, 0x0804, 0x9be7, 0x0026, 0x0036, 0x0056,\r
++      0x0066, 0x0096, 0x00a6, 0x00f6, 0x0006, 0x080c, 0x1022, 0x000e,\r
++      0x090c, 0x0d65, 0xa960, 0x21e8, 0xa95c, 0x9188, 0x0019, 0x21a0,\r
++      0x900e, 0x20a9, 0x0020, 0x4104, 0xa87a, 0x2079, 0x1800, 0x798c,\r
++      0x9188, 0x0018, 0x918c, 0x0fff, 0xa972, 0xac76, 0x2950, 0x00a6,\r
++      0x2001, 0x0205, 0x2003, 0x0000, 0x901e, 0x2029, 0x0001, 0x9182,\r
++      0x0034, 0x1228, 0x2011, 0x001f, 0x080c, 0xb41a, 0x04c0, 0x2130,\r
++      0x2009, 0x0034, 0x2011, 0x001f, 0x080c, 0xb41a, 0x96b2, 0x0034,\r
++      0xb004, 0x904d, 0x0110, 0x080c, 0x0fd4, 0x080c, 0x1022, 0x01d0,\r
++      0x8528, 0xa867, 0x0110, 0xa86b, 0x0000, 0x2920, 0xb406, 0x968a,\r
++      0x003d, 0x1230, 0x2608, 0x2011, 0x001b, 0x080c, 0xb41a, 0x00b8,\r
++      0x96b2, 0x003c, 0x2009, 0x003c, 0x2950, 0x2011, 0x001b, 0x080c,\r
++      0xb41a, 0x0c18, 0x2001, 0x0205, 0x2003, 0x0000, 0x00ae, 0x852f,\r
++      0x95ad, 0x0050, 0xb566, 0xb070, 0xc0fd, 0xb072, 0x0048, 0x2001,\r
++      0x0205, 0x2003, 0x0000, 0x00ae, 0x852f, 0x95ad, 0x0050, 0xb566,\r
++      0x2a48, 0xa804, 0xa807, 0x0000, 0x0006, 0x080c, 0x6996, 0x000e,\r
++      0x2048, 0x9005, 0x1db0, 0x00fe, 0x00ae, 0x009e, 0x006e, 0x005e,\r
++      0x003e, 0x002e, 0x0005, 0x00d6, 0x00f6, 0x0096, 0x0006, 0x080c,\r
++      0x1022, 0x000e, 0x090c, 0x0d65, 0xa960, 0x21e8, 0xa95c, 0x9188,\r
++      0x0019, 0x21a0, 0x900e, 0x20a9, 0x0020, 0x4104, 0xaa66, 0xa87a,\r
++      0x2079, 0x1800, 0x798c, 0x810c, 0x9188, 0x000c, 0x9182, 0x001a,\r
++      0x0210, 0x2009, 0x001a, 0x21a8, 0x810b, 0xa972, 0xac76, 0x2e98,\r
++      0xa85c, 0x9080, 0x001f, 0x20a0, 0x2001, 0x0205, 0x200c, 0x918d,\r
++      0x0080, 0x2102, 0x4003, 0x2003, 0x0000, 0x080c, 0x6996, 0x009e,\r
++      0x00fe, 0x00de, 0x0005, 0x0016, 0x00d6, 0x00f6, 0x0096, 0x0016,\r
++      0x2001, 0x0205, 0x200c, 0x918d, 0x0080, 0x2102, 0x001e, 0x2079,\r
++      0x0200, 0x2e98, 0xa87c, 0xd0ec, 0x0118, 0x9e80, 0x000c, 0x2098,\r
++      0x2021, 0x003e, 0x901e, 0x9282, 0x0020, 0x0218, 0x2011, 0x0020,\r
++      0x2018, 0x9486, 0x003e, 0x1170, 0x0096, 0x080c, 0x1022, 0x2900,\r
++      0x009e, 0x05c0, 0xa806, 0x2048, 0xa860, 0x20e8, 0xa85c, 0x9080,\r
++      0x0002, 0x20a0, 0x3300, 0x908e, 0x0260, 0x0140, 0x2009, 0x0280,\r
++      0x9102, 0x920a, 0x0218, 0x2010, 0x2100, 0x9318, 0x2200, 0x9402,\r
++      0x1228, 0x2400, 0x9202, 0x2410, 0x9318, 0x9006, 0x2020, 0x22a8,\r
++      0xa800, 0x9200, 0xa802, 0x20e1, 0x0000, 0x4003, 0x83ff, 0x0180,\r
++      0x3300, 0x9086, 0x0280, 0x1130, 0x7814, 0x8000, 0x9085, 0x0080,\r
++      0x7816, 0x2e98, 0x2310, 0x84ff, 0x0904, 0x9f60, 0x0804, 0x9f62,\r
++      0x9085, 0x0001, 0x7817, 0x0000, 0x009e, 0x00fe, 0x00de, 0x001e,\r
++      0x0005, 0x00d6, 0x0036, 0x0096, 0x6314, 0x2348, 0xa87a, 0xa982,\r
++      0x080c, 0x698a, 0x009e, 0x003e, 0x00de, 0x0005, 0x91b6, 0x0015,\r
++      0x1118, 0x080c, 0x9be7, 0x0030, 0x91b6, 0x0016, 0x190c, 0x0d65,\r
++      0x080c, 0x9be7, 0x0005, 0x20a9, 0x000e, 0x20e1, 0x0000, 0x2e98,\r
++      0x6014, 0x0096, 0x2048, 0xa860, 0x20e8, 0xa85c, 0x20a0, 0x009e,\r
++      0x4003, 0x0136, 0x9080, 0x001b, 0x2011, 0x0006, 0x20a9, 0x0001,\r
++      0x3418, 0x8318, 0x23a0, 0x4003, 0x3318, 0x8318, 0x2398, 0x8211,\r
++      0x1db8, 0x2011, 0x0006, 0x013e, 0x20a0, 0x3318, 0x8318, 0x2398,\r
++      0x4003, 0x3418, 0x8318, 0x23a0, 0x8211, 0x1db8, 0x0096, 0x080c,\r
++      0xb847, 0x0130, 0x6014, 0x2048, 0xa807, 0x0000, 0xa867, 0x0103,\r
++      0x009e, 0x0804, 0x9be7, 0x0096, 0x00d6, 0x0036, 0x7330, 0x9386,\r
++      0x0200, 0x11a8, 0x6010, 0x00b6, 0x2058, 0xb8c7, 0x0000, 0x00be,\r
++      0x6014, 0x9005, 0x0130, 0x2048, 0xa807, 0x0000, 0xa867, 0x0103,\r
++      0xab32, 0x080c, 0x9be7, 0x003e, 0x00de, 0x009e, 0x0005, 0x0011,\r
++      0x1d48, 0x0cc8, 0x0006, 0x0016, 0x080c, 0xbf61, 0x0188, 0x6014,\r
++      0x9005, 0x1170, 0x600b, 0x0003, 0x601b, 0x0000, 0x604b, 0x0000,\r
++      0x2009, 0x0022, 0x080c, 0xa3dc, 0x9006, 0x001e, 0x000e, 0x0005,\r
++      0x9085, 0x0001, 0x0cd0, 0x0096, 0x0016, 0x20a9, 0x0014, 0x9e80,\r
++      0x000c, 0x20e1, 0x0000, 0x2098, 0x6014, 0x2048, 0xa860, 0x20e8,\r
++      0xa85c, 0x9080, 0x0002, 0x20a0, 0x4003, 0x2001, 0x0205, 0x2003,\r
++      0x0001, 0x2099, 0x0260, 0x20a9, 0x0016, 0x4003, 0x20a9, 0x000a,\r
++      0xa804, 0x2048, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0002, 0x20a0,\r
++      0x4003, 0x2001, 0x0205, 0x2003, 0x0002, 0x2099, 0x0260, 0x20a9,\r
++      0x0020, 0x4003, 0x2003, 0x0000, 0x6014, 0x2048, 0xa800, 0x2048,\r
++      0xa867, 0x0103, 0x080c, 0x9be7, 0x001e, 0x009e, 0x0005, 0x0096,\r
++      0x0016, 0x900e, 0x7030, 0x9086, 0x0100, 0x0140, 0x7038, 0x9084,\r
++      0x00ff, 0x800c, 0x703c, 0x9084, 0x00ff, 0x8004, 0x9080, 0x0004,\r
++      0x9108, 0x810b, 0x2011, 0x0002, 0x2019, 0x000c, 0x6014, 0x2048,\r
++      0x080c, 0xb41a, 0x080c, 0xb847, 0x0140, 0x6014, 0x2048, 0xa807,\r
++      0x0000, 0xa864, 0xa8e2, 0xa867, 0x0103, 0x080c, 0x9be7, 0x001e,\r
++      0x009e, 0x0005, 0x0016, 0x0096, 0x7030, 0x9086, 0x0100, 0x1118,\r
++      0x2009, 0x0004, 0x0010, 0x7034, 0x800c, 0x810b, 0x2011, 0x000c,\r
++      0x2019, 0x000c, 0x6014, 0x2048, 0xa804, 0x0096, 0x9005, 0x0108,\r
++      0x2048, 0x080c, 0xb41a, 0x009e, 0x080c, 0xb847, 0x0148, 0xa804,\r
++      0x9005, 0x1158, 0xa807, 0x0000, 0xa864, 0xa8e2, 0xa867, 0x0103,\r
++      0x080c, 0x9be7, 0x009e, 0x001e, 0x0005, 0x0086, 0x2040, 0xa030,\r
++      0x8007, 0x9086, 0x0100, 0x1118, 0x080c, 0xa58f, 0x00e0, 0xa034,\r
++      0x8007, 0x800c, 0x8806, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084,\r
++      0xffc0, 0x9080, 0x000c, 0xa87b, 0x0000, 0xa883, 0x0000, 0xa897,\r
++      0x4000, 0xaaa0, 0xab9c, 0xaca8, 0xada4, 0x2031, 0x0000, 0x2041,\r
++      0x1266, 0x0019, 0x0d08, 0x008e, 0x0898, 0x0096, 0x0006, 0x080c,\r
++      0x1022, 0x000e, 0x01b0, 0xa8ab, 0x0dcb, 0xa876, 0x000e, 0xa8a2,\r
++      0x0006, 0xae6a, 0x2800, 0xa89e, 0xa97a, 0xaf72, 0xaa8e, 0xab92,\r
++      0xac96, 0xad9a, 0x0086, 0x2940, 0x080c, 0x110c, 0x008e, 0x9085,\r
++      0x0001, 0x009e, 0x0005, 0x00e6, 0x00d6, 0x0026, 0x7008, 0x9084,\r
++      0x00ff, 0x6210, 0x00b6, 0x2258, 0xba10, 0x00be, 0x9206, 0x1520,\r
++      0x700c, 0x6210, 0x00b6, 0x2258, 0xba14, 0x00be, 0x9206, 0x11e0,\r
++      0x604b, 0x0000, 0x2c68, 0x0016, 0x2009, 0x0035, 0x080c, 0xbed9,\r
++      0x001e, 0x1158, 0x622c, 0x2268, 0x2071, 0x026c, 0x6b20, 0x9386,\r
++      0x0003, 0x0130, 0x9386, 0x0006, 0x0128, 0x080c, 0x9be7, 0x0020,\r
++      0x0039, 0x0010, 0x080c, 0xa211, 0x002e, 0x00de, 0x00ee, 0x0005,\r
++      0x0096, 0x6814, 0x2048, 0x9186, 0x0015, 0x0904, 0xa1f0, 0x918e,\r
++      0x0016, 0x1904, 0xa20f, 0x700c, 0x908c, 0xff00, 0x9186, 0x1700,\r
++      0x0120, 0x9186, 0x0300, 0x1904, 0xa1ca, 0x89ff, 0x1138, 0x6800,\r
++      0x9086, 0x000f, 0x0904, 0xa1ac, 0x0804, 0xa20d, 0x6808, 0x9086,\r
++      0xffff, 0x1904, 0xa1f2, 0xa87c, 0x9084, 0x0060, 0x9086, 0x0020,\r
++      0x1128, 0xa83c, 0xa940, 0x9105, 0x1904, 0xa1f2, 0x6824, 0xd0b4,\r
++      0x1904, 0xa1f2, 0x080c, 0xba36, 0x6864, 0xa882, 0xa87c, 0xc0dc,\r
++      0xc0f4, 0xc0d4, 0xa87e, 0x0026, 0x900e, 0x6a18, 0x2001, 0x000a,\r
++      0x080c, 0x8419, 0xa884, 0x920a, 0x0208, 0x8011, 0xaa86, 0x82ff,\r
++      0x002e, 0x1138, 0x00c6, 0x2d60, 0x080c, 0xb56d, 0x00ce, 0x0804,\r
++      0xa20d, 0x00c6, 0xa868, 0xd0fc, 0x1118, 0x080c, 0x5d56, 0x0010,\r
++      0x080c, 0x60fb, 0x00ce, 0x1904, 0xa1f2, 0x00c6, 0x2d60, 0x080c,\r
++      0x9be7, 0x00ce, 0x0804, 0xa20d, 0x00c6, 0x080c, 0x9c58, 0x0198,\r
++      0x6017, 0x0000, 0x6810, 0x6012, 0x080c, 0xbcdb, 0x6023, 0x0003,\r
++      0x6904, 0x00c6, 0x2d60, 0x080c, 0x9be7, 0x00ce, 0x080c, 0x9c85,\r
++      0x00ce, 0x0804, 0xa20d, 0x2001, 0x1959, 0x2004, 0x684a, 0x00ce,\r
++      0x0804, 0xa20d, 0x7008, 0x9086, 0x000b, 0x11c8, 0x6010, 0x00b6,\r
++      0x2058, 0xb900, 0xc1bc, 0xb902, 0x00be, 0x00c6, 0x2d60, 0xa87b,\r
++      0x0003, 0x080c, 0xbf1b, 0x6007, 0x0085, 0x6003, 0x000b, 0x6023,\r
++      0x0002, 0x2009, 0x8020, 0x080c, 0x84d1, 0x00ce, 0x0430, 0x700c,\r
++      0x9086, 0x2a00, 0x1138, 0x2001, 0x1959, 0x2004, 0x684a, 0x00e8,\r
++      0x04c1, 0x00e8, 0x89ff, 0x090c, 0x0d65, 0x00c6, 0x00d6, 0x2d60,\r
++      0xa867, 0x0103, 0xa87b, 0x0003, 0x080c, 0x67ac, 0x080c, 0xba36,\r
++      0x080c, 0x9c21, 0x0026, 0x6010, 0x00b6, 0x2058, 0xba3c, 0x080c,\r
++      0x639b, 0x00be, 0x002e, 0x00de, 0x00ce, 0x080c, 0x9be7, 0x009e,\r
++      0x0005, 0x9186, 0x0015, 0x1128, 0x2001, 0x1959, 0x2004, 0x684a,\r
++      0x0068, 0x918e, 0x0016, 0x1160, 0x00c6, 0x2d00, 0x2060, 0x080c,\r
++      0xd4ce, 0x080c, 0x83c0, 0x080c, 0x9be7, 0x00ce, 0x080c, 0x9be7,\r
++      0x0005, 0x0026, 0x0036, 0x0046, 0x7228, 0xacb0, 0xabac, 0xd2f4,\r
++      0x0130, 0x2001, 0x1959, 0x2004, 0x684a, 0x0804, 0xa28b, 0x00c6,\r
++      0x2d60, 0x080c, 0xb445, 0x00ce, 0x6804, 0x9086, 0x0050, 0x1168,\r
++      0x00c6, 0x2d00, 0x2060, 0x6003, 0x0001, 0x6007, 0x0050, 0x2009,\r
++      0x8023, 0x080c, 0x84d1, 0x00ce, 0x04f0, 0x6800, 0x9086, 0x000f,\r
++      0x01a8, 0x89ff, 0x090c, 0x0d65, 0x6800, 0x9086, 0x0004, 0x1190,\r
++      0xa87c, 0xd0ac, 0x0178, 0xa843, 0x0fff, 0xa83f, 0x0fff, 0xa880,\r
++      0xc0fc, 0xa882, 0x2001, 0x0001, 0x6832, 0x0400, 0x2001, 0x0007,\r
++      0x6832, 0x00e0, 0xa87c, 0xd0b4, 0x1150, 0xd0ac, 0x0db8, 0x6824,\r
++      0xd0f4, 0x1d48, 0xa838, 0xa934, 0x9105, 0x0d80, 0x0c20, 0xd2ec,\r
++      0x1d68, 0x7024, 0x9306, 0x1118, 0x7020, 0x9406, 0x0d38, 0x7020,\r
++      0x683e, 0x7024, 0x683a, 0x2001, 0x0005, 0x6832, 0x080c, 0xbbc5,\r
++      0x080c, 0x8936, 0x0010, 0x080c, 0x9be7, 0x004e, 0x003e, 0x002e,\r
++      0x0005, 0x00e6, 0x00d6, 0x0026, 0x7008, 0x9084, 0x00ff, 0x6210,\r
++      0x00b6, 0x2258, 0xba10, 0x00be, 0x9206, 0x1904, 0xa2f6, 0x700c,\r
++      0x6210, 0x00b6, 0x2258, 0xba14, 0x00be, 0x9206, 0x1904, 0xa2f6,\r
++      0x6038, 0x2068, 0x6824, 0xc0dc, 0x6826, 0x6a20, 0x9286, 0x0007,\r
++      0x0904, 0xa2f6, 0x9286, 0x0002, 0x0904, 0xa2f6, 0x9286, 0x0000,\r
++      0x05e8, 0x6808, 0x633c, 0x9306, 0x15c8, 0x2071, 0x026c, 0x9186,\r
++      0x0015, 0x0570, 0x918e, 0x0016, 0x1100, 0x00c6, 0x6038, 0x2060,\r
++      0x6104, 0x9186, 0x004b, 0x01c0, 0x9186, 0x004c, 0x01a8, 0x9186,\r
++      0x004d, 0x0190, 0x9186, 0x004e, 0x0178, 0x9186, 0x0052, 0x0160,\r
++      0x6014, 0x0096, 0x2048, 0x080c, 0xb847, 0x090c, 0x0d65, 0xa87b,\r
++      0x0003, 0x009e, 0x080c, 0xbf1b, 0x6007, 0x0085, 0x6003, 0x000b,\r
++      0x6023, 0x0002, 0x2009, 0x8020, 0x080c, 0x84d1, 0x00ce, 0x0030,\r
++      0x6038, 0x2070, 0x2001, 0x1959, 0x2004, 0x704a, 0x080c, 0x9be7,\r
++      0x002e, 0x00de, 0x00ee, 0x0005, 0x00b6, 0x0096, 0x00f6, 0x6014,\r
++      0x2048, 0x6010, 0x2058, 0x91b6, 0x0015, 0x0130, 0xba08, 0xbb0c,\r
++      0xbc00, 0xc48c, 0xbc02, 0x0460, 0x0096, 0x0156, 0x0036, 0x0026,\r
++      0x2b48, 0x9e90, 0x0010, 0x2019, 0x000a, 0x20a9, 0x0004, 0x080c,\r
++      0xabdf, 0x002e, 0x003e, 0x015e, 0x009e, 0x1904, 0xa365, 0x0096,\r
++      0x0156, 0x0036, 0x0026, 0x2b48, 0x9e90, 0x0014, 0x2019, 0x0006,\r
++      0x20a9, 0x0004, 0x080c, 0xabdf, 0x002e, 0x003e, 0x015e, 0x009e,\r
++      0x15a0, 0x7238, 0xba0a, 0x733c, 0xbb0e, 0xbc00, 0xc48d, 0xbc02,\r
++      0xa804, 0x9005, 0x1128, 0x00fe, 0x009e, 0x00be, 0x0804, 0x9ff6,\r
++      0x0096, 0x2048, 0xaa12, 0xab16, 0xac0a, 0x009e, 0x8006, 0x8006,\r
++      0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x0002, 0x2009,\r
++      0x002b, 0xaaa0, 0xab9c, 0xaca8, 0xada4, 0x2031, 0x0000, 0x2041,\r
++      0x1266, 0x080c, 0xa0f5, 0x0130, 0x00fe, 0x009e, 0x080c, 0x9be7,\r
++      0x00be, 0x0005, 0x080c, 0xa58f, 0x0cb8, 0x2b78, 0x00f6, 0x080c,\r
++      0x3006, 0x080c, 0xbf76, 0x00fe, 0x00c6, 0x080c, 0x9b91, 0x2f00,\r
++      0x6012, 0x6017, 0x0000, 0x6023, 0x0001, 0x6007, 0x0001, 0x6003,\r
++      0x0001, 0x2001, 0x0007, 0x080c, 0x61c1, 0x080c, 0x61ed, 0x080c,\r
++      0x84d8, 0x080c, 0x8936, 0x00ce, 0x0804, 0xa338, 0x2100, 0x91b2,\r
++      0x0053, 0x1a0c, 0x0d65, 0x91b2, 0x0040, 0x1a04, 0xa3ee, 0x0002,\r
++      0xa3dc, 0xa3dc, 0xa3d2, 0xa3dc, 0xa3dc, 0xa3dc, 0xa3d0, 0xa3d0,\r
++      0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0,\r
++      0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0,\r
++      0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0, 0xa3dc,\r
++      0xa3d0, 0xa3dc, 0xa3dc, 0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0,\r
++      0xa3d2, 0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0,\r
++      0xa3d0, 0xa3d0, 0xa3dc, 0xa3dc, 0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0,\r
++      0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0, 0xa3d0, 0xa3dc, 0xa3d0, 0xa3d0,\r
++      0x080c, 0x0d65, 0x0066, 0x00b6, 0x6610, 0x2658, 0xb8c4, 0xc08c,\r
++      0xb8c6, 0x00be, 0x006e, 0x0000, 0x6003, 0x0001, 0x6106, 0x9186,\r
++      0x0032, 0x0118, 0x080c, 0x84d8, 0x0010, 0x080c, 0x84d1, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0x8936, 0x012e, 0x0005, 0x2600, 0x0002,\r
++      0xa402, 0xa402, 0xa402, 0xa3dc, 0xa3dc, 0xa402, 0xa402, 0xa402,\r
++      0xa402, 0xa3dc, 0xa402, 0xa3dc, 0xa402, 0xa3dc, 0xa402, 0xa402,\r
++      0xa402, 0xa402, 0x080c, 0x0d65, 0x6004, 0x90b2, 0x0053, 0x1a0c,\r
++      0x0d65, 0x91b6, 0x0013, 0x0904, 0xa4d9, 0x91b6, 0x0027, 0x1904,\r
++      0xa485, 0x080c, 0x8874, 0x6004, 0x080c, 0xba4b, 0x01b0, 0x080c,\r
++      0xba5c, 0x01a8, 0x908e, 0x0021, 0x0904, 0xa482, 0x908e, 0x0022,\r
++      0x1130, 0x080c, 0xa022, 0x0904, 0xa47e, 0x0804, 0xa47f, 0x908e,\r
++      0x003d, 0x0904, 0xa482, 0x0804, 0xa478, 0x080c, 0x303b, 0x2001,\r
++      0x0007, 0x080c, 0x61c1, 0x6010, 0x00b6, 0x2058, 0xb9a0, 0x00be,\r
++      0x080c, 0xa58f, 0x9186, 0x007e, 0x1148, 0x2001, 0x1836, 0x2014,\r
++      0xc285, 0x080c, 0x70b7, 0x1108, 0xc2ad, 0x2202, 0x080c, 0x98c8,\r
++      0x0036, 0x0026, 0x2019, 0x0028, 0x2110, 0x080c, 0xd529, 0x002e,\r
++      0x003e, 0x0016, 0x0026, 0x0036, 0x2110, 0x2019, 0x0028, 0x080c,\r
++      0x863b, 0x0076, 0x903e, 0x080c, 0x852a, 0x6010, 0x00b6, 0x905d,\r
++      0x0100, 0x00be, 0x2c08, 0x080c, 0xcfc8, 0x007e, 0x003e, 0x002e,\r
++      0x001e, 0x080c, 0x98e4, 0x080c, 0xbf76, 0x0016, 0x080c, 0xbcd3,\r
++      0x080c, 0x9be7, 0x001e, 0x080c, 0x311a, 0x080c, 0x8936, 0x0030,\r
++      0x080c, 0xbcd3, 0x080c, 0x9be7, 0x080c, 0x8936, 0x0005, 0x080c,\r
++      0xa58f, 0x0cb0, 0x080c, 0xa5cb, 0x0c98, 0x9186, 0x0015, 0x0118,\r
++      0x9186, 0x0016, 0x1140, 0x080c, 0x9ab7, 0x0d80, 0x9086, 0x0002,\r
++      0x0904, 0xa5d6, 0x0c58, 0x9186, 0x0014, 0x1d40, 0x080c, 0x8874,\r
++      0x6004, 0x908e, 0x0022, 0x1118, 0x080c, 0xa022, 0x09f8, 0x080c,\r
++      0x3006, 0x080c, 0xbf76, 0x080c, 0xba4b, 0x1190, 0x080c, 0x303b,\r
++      0x6010, 0x00b6, 0x2058, 0xb9a0, 0x00be, 0x080c, 0xa58f, 0x9186,\r
++      0x007e, 0x1128, 0x2001, 0x1836, 0x200c, 0xc185, 0x2102, 0x0800,\r
++      0x080c, 0xba5c, 0x1120, 0x080c, 0xa58f, 0x0804, 0xa478, 0x6004,\r
++      0x908e, 0x0032, 0x1160, 0x00e6, 0x00f6, 0x2071, 0x1894, 0x2079,\r
++      0x0000, 0x080c, 0x33bc, 0x00fe, 0x00ee, 0x0804, 0xa478, 0x6004,\r
++      0x908e, 0x0021, 0x0d40, 0x908e, 0x0022, 0x090c, 0xa58f, 0x0804,\r
++      0xa478, 0x90b2, 0x0040, 0x1a04, 0xa578, 0x2008, 0x0002, 0xa521,\r
++      0xa522, 0xa525, 0xa528, 0xa52b, 0xa52e, 0xa51f, 0xa51f, 0xa51f,\r
++      0xa51f, 0xa51f, 0xa51f, 0xa51f, 0xa51f, 0xa51f, 0xa51f, 0xa51f,\r
++      0xa51f, 0xa51f, 0xa51f, 0xa51f, 0xa51f, 0xa51f, 0xa51f, 0xa51f,\r
++      0xa51f, 0xa51f, 0xa51f, 0xa51f, 0xa51f, 0xa531, 0xa53a, 0xa51f,\r
++      0xa53b, 0xa53a, 0xa51f, 0xa51f, 0xa51f, 0xa51f, 0xa51f, 0xa53a,\r
++      0xa53a, 0xa51f, 0xa51f, 0xa51f, 0xa51f, 0xa51f, 0xa51f, 0xa51f,\r
++      0xa51f, 0xa563, 0xa53a, 0xa51f, 0xa536, 0xa51f, 0xa51f, 0xa51f,\r
++      0xa537, 0xa51f, 0xa51f, 0xa51f, 0xa53a, 0xa55e, 0xa51f, 0x080c,\r
++      0x0d65, 0x00c0, 0x2001, 0x000b, 0x00e8, 0x2001, 0x0003, 0x00d0,\r
++      0x2001, 0x0005, 0x00b8, 0x2001, 0x0001, 0x00a0, 0x2001, 0x0009,\r
++      0x0088, 0x6003, 0x0005, 0x080c, 0x8936, 0x0058, 0x0018, 0x0010,\r
++      0x080c, 0x61c1, 0x04b8, 0x080c, 0xbf79, 0x6003, 0x0004, 0x080c,\r
++      0x8936, 0x0005, 0x080c, 0x61c1, 0x6003, 0x0002, 0x0036, 0x2019,\r
++      0x185e, 0x2304, 0x9084, 0xff00, 0x1120, 0x2001, 0x1957, 0x201c,\r
++      0x0040, 0x8007, 0x909a, 0x0004, 0x0ec0, 0x8003, 0x801b, 0x831b,\r
++      0x9318, 0x631a, 0x003e, 0x080c, 0x8936, 0x0c18, 0x080c, 0xbcd3,\r
++      0x080c, 0x9be7, 0x08f0, 0x00e6, 0x00f6, 0x2071, 0x1894, 0x2079,\r
++      0x0000, 0x080c, 0x33bc, 0x00fe, 0x00ee, 0x080c, 0x8874, 0x080c,\r
++      0x9be7, 0x0878, 0x6003, 0x0002, 0x080c, 0xbf79, 0x0804, 0x8936,\r
++      0x2600, 0x2008, 0x0002, 0xa58d, 0xa58d, 0xa58d, 0xa572, 0xa572,\r
++      0xa58d, 0xa58d, 0xa58d, 0xa58d, 0xa572, 0xa58d, 0xa572, 0xa58d,\r
++      0xa572, 0xa58d, 0xa58d, 0xa58d, 0xa58d, 0x080c, 0x0d65, 0x00e6,\r
++      0x0096, 0x0026, 0x0016, 0x080c, 0xb847, 0x0568, 0x6014, 0x2048,\r
++      0xa864, 0x9086, 0x0139, 0x11a8, 0xa894, 0x9086, 0x0056, 0x1148,\r
++      0x080c, 0x512e, 0x0130, 0x2001, 0x0000, 0x900e, 0x2011, 0x4000,\r
++      0x0028, 0x2001, 0x0030, 0x900e, 0x2011, 0x4005, 0x080c, 0xbe40,\r
++      0x0090, 0xa868, 0xd0fc, 0x0178, 0xa807, 0x0000, 0x0016, 0x6004,\r
++      0x908e, 0x0021, 0x0168, 0x908e, 0x003d, 0x0150, 0x001e, 0xa867,\r
++      0x0103, 0xa833, 0x0100, 0x001e, 0x002e, 0x009e, 0x00ee, 0x0005,\r
++      0x001e, 0x0009, 0x0cc0, 0x0096, 0x6014, 0x2048, 0xa800, 0x2048,\r
++      0xa867, 0x0103, 0xa823, 0x8001, 0x009e, 0x0005, 0x00b6, 0x6610,\r
++      0x2658, 0xb804, 0x9084, 0x00ff, 0x90b2, 0x000c, 0x1a0c, 0x0d65,\r
++      0x6604, 0x96b6, 0x004d, 0x1120, 0x080c, 0xbd5f, 0x0804, 0xa653,\r
++      0x6604, 0x96b6, 0x0043, 0x1120, 0x080c, 0xbda8, 0x0804, 0xa653,\r
++      0x6604, 0x96b6, 0x004b, 0x1120, 0x080c, 0xbdd4, 0x0804, 0xa653,\r
++      0x6604, 0x96b6, 0x0033, 0x1120, 0x080c, 0xbcf5, 0x0804, 0xa653,\r
++      0x6604, 0x96b6, 0x0028, 0x1120, 0x080c, 0xba95, 0x0804, 0xa653,\r
++      0x6604, 0x96b6, 0x0029, 0x1120, 0x080c, 0xbad6, 0x0804, 0xa653,\r
++      0x6604, 0x96b6, 0x001f, 0x1118, 0x080c, 0x9fcb, 0x04e0, 0x6604,\r
++      0x96b6, 0x0000, 0x1118, 0x080c, 0xa2fc, 0x04a8, 0x6604, 0x96b6,\r
++      0x0022, 0x1118, 0x080c, 0xa003, 0x0470, 0x6604, 0x96b6, 0x0035,\r
++      0x1118, 0x080c, 0xa113, 0x0438, 0x6604, 0x96b6, 0x0039, 0x1118,\r
++      0x080c, 0xa291, 0x0400, 0x6604, 0x96b6, 0x003d, 0x1118, 0x080c,\r
++      0xa03b, 0x00c8, 0x6604, 0x96b6, 0x0044, 0x1118, 0x080c, 0xa077,\r
++      0x0090, 0x6604, 0x96b6, 0x0049, 0x1118, 0x080c, 0xa0a2, 0x0058,\r
++      0x91b6, 0x0015, 0x1110, 0x0063, 0x0030, 0x91b6, 0x0016, 0x1128,\r
++      0x00be, 0x0804, 0xa911, 0x00be, 0x0005, 0x080c, 0x9ca2, 0x0cd8,\r
++      0xa670, 0xa673, 0xa670, 0xa6b7, 0xa670, 0xa845, 0xa91e, 0xa670,\r
++      0xa670, 0xa8eb, 0xa670, 0xa8ff, 0x0096, 0x080c, 0x1595, 0x6014,\r
++      0x2048, 0xa800, 0x2048, 0xa867, 0x0103, 0x009e, 0x0804, 0x9be7,\r
++      0xa001, 0xa001, 0x0005, 0x00e6, 0x2071, 0x1800, 0x708c, 0x9086,\r
++      0x0074, 0x1540, 0x080c, 0xcf99, 0x11b0, 0x6010, 0x00b6, 0x2058,\r
++      0x7030, 0xd08c, 0x0128, 0xb800, 0xd0bc, 0x0110, 0xc0c5, 0xb802,\r
++      0x00e9, 0x00be, 0x2001, 0x0006, 0x080c, 0x61c1, 0x080c, 0x303b,\r
++      0x080c, 0x9be7, 0x0088, 0x2001, 0x000a, 0x080c, 0x61c1, 0x080c,\r
++      0x303b, 0x6003, 0x0001, 0x6007, 0x0001, 0x080c, 0x84d8, 0x080c,\r
++      0x8936, 0x0010, 0x080c, 0xa830, 0x00ee, 0x0005, 0x00d6, 0xb800,\r
++      0xd084, 0x0158, 0x9006, 0x080c, 0x61ad, 0x2069, 0x1853, 0x6804,\r
++      0x0020, 0x2001, 0x0006, 0x080c, 0x61ed, 0x00de, 0x0005, 0x00b6,\r
++      0x0096, 0x00d6, 0x2011, 0x1823, 0x2204, 0x9086, 0x0074, 0x1904,\r
++      0xa809, 0x6010, 0x2058, 0xbaa0, 0x9286, 0x007e, 0x1120, 0x080c,\r
++      0xaa62, 0x0804, 0xa76e, 0x00d6, 0x080c, 0x70b7, 0x0198, 0x0026,\r
++      0x2011, 0x0010, 0x080c, 0x668b, 0x002e, 0x05c8, 0x080c, 0x53a1,\r
++      0x1540, 0x6014, 0x2048, 0xa807, 0x0000, 0xa867, 0x0103, 0xa833,\r
++      0xdead, 0x00f8, 0x0026, 0x2011, 0x8008, 0x080c, 0x668b, 0x002e,\r
++      0x0530, 0x6014, 0x2048, 0xa864, 0x9084, 0x00ff, 0x9086, 0x0039,\r
++      0x1140, 0x2001, 0x0030, 0x900e, 0x2011, 0x4009, 0x080c, 0xbe40,\r
++      0x0040, 0x6014, 0x2048, 0xa807, 0x0000, 0xa867, 0x0103, 0xa833,\r
++      0xdead, 0x6010, 0x2058, 0xb9a0, 0x0016, 0x080c, 0x303b, 0x080c,\r
++      0x9be7, 0x001e, 0x080c, 0x311a, 0x00de, 0x0804, 0xa80a, 0x00de,\r
++      0x080c, 0xaa57, 0x6010, 0x2058, 0xbaa0, 0x9286, 0x0080, 0x1510,\r
++      0x6014, 0x9005, 0x01a8, 0x2048, 0xa864, 0x9084, 0x00ff, 0x9086,\r
++      0x0039, 0x1140, 0x2001, 0x0000, 0x900e, 0x2011, 0x4000, 0x080c,\r
++      0xbe40, 0x0030, 0xa807, 0x0000, 0xa867, 0x0103, 0xa833, 0x0200,\r
++      0x2001, 0x0006, 0x080c, 0x61c1, 0x080c, 0x303b, 0x080c, 0x9be7,\r
++      0x0804, 0xa80a, 0x080c, 0xa818, 0x6014, 0x9005, 0x0190, 0x2048,\r
++      0xa868, 0xd0f4, 0x01e8, 0xa864, 0x9084, 0x00ff, 0x9086, 0x0039,\r
++      0x1d08, 0x2001, 0x0000, 0x900e, 0x2011, 0x4000, 0x080c, 0xbe40,\r
++      0x08f8, 0x080c, 0xa80e, 0x0160, 0x9006, 0x080c, 0x61ad, 0x2001,\r
++      0x0004, 0x080c, 0x61ed, 0x2001, 0x0007, 0x080c, 0x61c1, 0x08a0,\r
++      0x2001, 0x0004, 0x080c, 0x61c1, 0x6003, 0x0001, 0x6007, 0x0003,\r
++      0x080c, 0x84d8, 0x080c, 0x8936, 0x0804, 0xa80a, 0xb85c, 0xd0e4,\r
++      0x01d0, 0x080c, 0xbc6d, 0x080c, 0x70b7, 0x0118, 0xd0dc, 0x1904,\r
++      0xa730, 0x2011, 0x1836, 0x2204, 0xc0ad, 0x2012, 0x2001, 0x0002,\r
++      0x00f6, 0x2079, 0x0100, 0x78e3, 0x0000, 0x080c, 0x2498, 0x78e2,\r
++      0x00fe, 0x0804, 0xa730, 0x080c, 0xbcae, 0x2011, 0x1836, 0x2204,\r
++      0xc0a5, 0x2012, 0x0006, 0x080c, 0xd0fe, 0x000e, 0x1904, 0xa730,\r
++      0xc0b5, 0x2012, 0x2001, 0x0006, 0x080c, 0x61c1, 0x9006, 0x080c,\r
++      0x61ad, 0x00c6, 0x2001, 0x180f, 0x2004, 0xd09c, 0x0520, 0x00f6,\r
++      0x2079, 0x0100, 0x00e6, 0x2071, 0x1800, 0x700c, 0x9084, 0x00ff,\r
++      0x78e6, 0x707a, 0x7010, 0x78ea, 0x707e, 0x908c, 0x00ff, 0x00ee,\r
++      0x780c, 0xc0b5, 0x780e, 0x00fe, 0x080c, 0x246d, 0x00f6, 0x2100,\r
++      0x900e, 0x080c, 0x2424, 0x795a, 0x00fe, 0x9186, 0x0081, 0x01d8,\r
++      0x2009, 0x0081, 0x00c8, 0x2009, 0x00ef, 0x00f6, 0x2079, 0x0100,\r
++      0x79ea, 0x7932, 0x7936, 0x780c, 0xc0b5, 0x780e, 0x00fe, 0x080c,\r
++      0x246d, 0x00f6, 0x2079, 0x1800, 0x797e, 0x2100, 0x900e, 0x080c,\r
++      0x2424, 0x795a, 0x00fe, 0x8108, 0x080c, 0x6210, 0x2b00, 0x00ce,\r
++      0x1904, 0xa730, 0x6012, 0x2009, 0x180f, 0x210c, 0xd19c, 0x0150,\r
++      0x2009, 0x027c, 0x210c, 0x918c, 0x00ff, 0xb912, 0x2009, 0x027d,\r
++      0x210c, 0xb916, 0x2001, 0x0002, 0x080c, 0x61c1, 0x6023, 0x0001,\r
++      0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x84d8, 0x080c, 0x8936,\r
++      0x0008, 0x0431, 0x00de, 0x009e, 0x00be, 0x0005, 0x2001, 0x1810,\r
++      0x2004, 0xd0a4, 0x0120, 0x2001, 0x1854, 0x2004, 0xd0ac, 0x0005,\r
++      0x00e6, 0x080c, 0xd582, 0x0190, 0x2071, 0x0260, 0x7108, 0x720c,\r
++      0x918c, 0x00ff, 0x1118, 0x9284, 0xff00, 0x0140, 0x6010, 0x2058,\r
++      0xb8a0, 0x9084, 0xff80, 0x1110, 0xb912, 0xba16, 0x00ee, 0x0005,\r
++      0x2030, 0x2001, 0x0007, 0x080c, 0x61c1, 0x080c, 0x53a1, 0x1120,\r
++      0x2001, 0x0007, 0x080c, 0x61ed, 0x080c, 0x303b, 0x6020, 0x9086,\r
++      0x000a, 0x1108, 0x0005, 0x0804, 0x9be7, 0x00b6, 0x00e6, 0x0026,\r
++      0x0016, 0x2071, 0x1800, 0x708c, 0x9086, 0x0014, 0x1904, 0xa8e2,\r
++      0x00d6, 0x080c, 0x70b7, 0x0198, 0x0026, 0x2011, 0x0010, 0x080c,\r
++      0x668b, 0x002e, 0x05c8, 0x080c, 0x53a1, 0x1540, 0x6014, 0x2048,\r
++      0xa807, 0x0000, 0xa867, 0x0103, 0xa833, 0xdead, 0x00f8, 0x0026,\r
++      0x2011, 0x8008, 0x080c, 0x668b, 0x002e, 0x0530, 0x6014, 0x2048,\r
++      0xa864, 0x9084, 0x00ff, 0x9086, 0x0039, 0x1140, 0x2001, 0x0030,\r
++      0x900e, 0x2011, 0x4009, 0x080c, 0xbe40, 0x0040, 0x6014, 0x2048,\r
++      0xa807, 0x0000, 0xa867, 0x0103, 0xa833, 0xdead, 0x6010, 0x2058,\r
++      0xb9a0, 0x0016, 0x080c, 0x303b, 0x080c, 0x9be7, 0x001e, 0x080c,\r
++      0x311a, 0x00de, 0x0804, 0xa8e6, 0x00de, 0x080c, 0x53a1, 0x1170,\r
++      0x6014, 0x9005, 0x1158, 0x0036, 0x0046, 0x6010, 0x2058, 0xbba0,\r
++      0x2021, 0x0006, 0x080c, 0x4a75, 0x004e, 0x003e, 0x00d6, 0x6010,\r
++      0x2058, 0x080c, 0x630b, 0x080c, 0xa6a6, 0x00de, 0x080c, 0xab28,\r
++      0x1588, 0x6010, 0x2058, 0xb890, 0x9005, 0x0560, 0x2001, 0x0006,\r
++      0x080c, 0x61c1, 0x0096, 0x6014, 0x904d, 0x01d0, 0xa864, 0x9084,\r
++      0x00ff, 0x9086, 0x0039, 0x1140, 0x2001, 0x0000, 0x900e, 0x2011,\r
++      0x4000, 0x080c, 0xbe40, 0x0060, 0xa864, 0x9084, 0x00ff, 0x9086,\r
++      0x0029, 0x0130, 0xa807, 0x0000, 0xa867, 0x0103, 0xa833, 0x0200,\r
++      0x009e, 0x080c, 0x303b, 0x6020, 0x9086, 0x000a, 0x0138, 0x080c,\r
++      0x9be7, 0x0020, 0x080c, 0xa58f, 0x080c, 0xa830, 0x001e, 0x002e,\r
++      0x00ee, 0x00be, 0x0005, 0x2011, 0x1823, 0x2204, 0x9086, 0x0014,\r
++      0x1160, 0x2001, 0x0002, 0x080c, 0x61c1, 0x6003, 0x0001, 0x6007,\r
++      0x0001, 0x080c, 0x84d8, 0x0804, 0x8936, 0x0804, 0xa830, 0x2030,\r
++      0x2011, 0x1823, 0x2204, 0x9086, 0x0004, 0x1148, 0x96b6, 0x000b,\r
++      0x1120, 0x2001, 0x0007, 0x080c, 0x61c1, 0x0804, 0x9be7, 0x0804,\r
++      0xa830, 0x0002, 0xa670, 0xa929, 0xa670, 0xa968, 0xa670, 0xaa13,\r
++      0xa91e, 0xa670, 0xa670, 0xaa26, 0xa670, 0xaa36, 0x6604, 0x9686,\r
++      0x0003, 0x0904, 0xa845, 0x96b6, 0x001e, 0x1110, 0x080c, 0x9be7,\r
++      0x0005, 0x00b6, 0x00d6, 0x00c6, 0x080c, 0xaa46, 0x11a0, 0x9006,\r
++      0x080c, 0x61ad, 0x080c, 0x3006, 0x080c, 0xbf76, 0x2001, 0x0002,\r
++      0x080c, 0x61c1, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x84d8,\r
++      0x080c, 0x8936, 0x0408, 0x2009, 0x026e, 0x2104, 0x9086, 0x0009,\r
++      0x1160, 0x6010, 0x2058, 0xb840, 0x9084, 0x00ff, 0x9005, 0x0170,\r
++      0x8001, 0xb842, 0x601b, 0x000a, 0x0078, 0x2009, 0x026f, 0x2104,\r
++      0x9084, 0xff00, 0x9086, 0x1900, 0x1108, 0x08a0, 0x080c, 0x3006,\r
++      0x080c, 0xbf76, 0x080c, 0xa830, 0x00ce, 0x00de, 0x00be, 0x0005,\r
++      0x0096, 0x00b6, 0x0026, 0x9016, 0x080c, 0xaa54, 0x00d6, 0x2069,\r
++      0x194d, 0x2d04, 0x9005, 0x0168, 0x6010, 0x2058, 0xb8a0, 0x9086,\r
++      0x007e, 0x1138, 0x2069, 0x181f, 0x2d04, 0x8000, 0x206a, 0x00de,\r
++      0x0010, 0x00de, 0x0088, 0x9006, 0x080c, 0x61ad, 0x2001, 0x0002,\r
++      0x080c, 0x61c1, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x84d8,\r
++      0x080c, 0x8936, 0x0804, 0xa9e3, 0x080c, 0xb847, 0x01b0, 0x6014,\r
++      0x2048, 0xa864, 0x2010, 0x9086, 0x0139, 0x1138, 0x6007, 0x0016,\r
++      0x2001, 0x0002, 0x080c, 0xbe9a, 0x00b0, 0x6014, 0x2048, 0xa864,\r
++      0xd0fc, 0x0118, 0x2001, 0x0001, 0x0ca8, 0x2001, 0x180e, 0x2004,\r
++      0xd0dc, 0x0148, 0x6010, 0x2058, 0xb840, 0x9084, 0x00ff, 0x9005,\r
++      0x1110, 0x9006, 0x0c38, 0x080c, 0xa58f, 0x2009, 0x026e, 0x2134,\r
++      0x96b4, 0x00ff, 0x9686, 0x0005, 0x0510, 0x9686, 0x000b, 0x01c8,\r
++      0x2009, 0x026f, 0x2104, 0x9084, 0xff00, 0x1118, 0x9686, 0x0009,\r
++      0x01b0, 0x9086, 0x1900, 0x1168, 0x9686, 0x0009, 0x0180, 0x2001,\r
++      0x0004, 0x080c, 0x61c1, 0x2001, 0x0028, 0x601a, 0x6007, 0x0052,\r
++      0x0010, 0x080c, 0xa830, 0x002e, 0x00be, 0x009e, 0x0005, 0x9286,\r
++      0x0139, 0x0160, 0x6014, 0x2048, 0x080c, 0xb847, 0x0140, 0xa864,\r
++      0x9086, 0x0139, 0x0118, 0xa868, 0xd0fc, 0x0108, 0x0c50, 0x6010,\r
++      0x2058, 0xb840, 0x9084, 0x00ff, 0x9005, 0x0138, 0x8001, 0xb842,\r
++      0x601b, 0x000a, 0x6007, 0x0016, 0x08f0, 0xb8a0, 0x9086, 0x007e,\r
++      0x1138, 0x00e6, 0x2071, 0x1800, 0x080c, 0x5c6f, 0x00ee, 0x0010,\r
++      0x080c, 0x3006, 0x0870, 0x080c, 0xaa54, 0x1160, 0x2001, 0x0004,\r
++      0x080c, 0x61c1, 0x6003, 0x0001, 0x6007, 0x0003, 0x080c, 0x84d8,\r
++      0x0804, 0x8936, 0x080c, 0xa58f, 0x0804, 0xa830, 0x0469, 0x1160,\r
++      0x2001, 0x0008, 0x080c, 0x61c1, 0x6003, 0x0001, 0x6007, 0x0005,\r
++      0x080c, 0x84d8, 0x0804, 0x8936, 0x0804, 0xa830, 0x00e9, 0x1160,\r
++      0x2001, 0x000a, 0x080c, 0x61c1, 0x6003, 0x0001, 0x6007, 0x0001,\r
++      0x080c, 0x84d8, 0x0804, 0x8936, 0x0804, 0xa830, 0x2009, 0x026e,\r
++      0x2104, 0x9086, 0x0003, 0x1138, 0x2009, 0x026f, 0x2104, 0x9084,\r
++      0xff00, 0x9086, 0x2a00, 0x0005, 0x9085, 0x0001, 0x0005, 0x00b6,\r
++      0x00c6, 0x0016, 0x6110, 0x2158, 0x080c, 0x627f, 0x001e, 0x00ce,\r
++      0x00be, 0x0005, 0x00b6, 0x00f6, 0x00e6, 0x00d6, 0x0036, 0x0016,\r
++      0x6010, 0x2058, 0x2009, 0x1836, 0x2104, 0x9085, 0x0003, 0x200a,\r
++      0x080c, 0xaafa, 0x0560, 0x2009, 0x1836, 0x2104, 0xc0cd, 0x200a,\r
++      0x080c, 0x6663, 0x0158, 0x9006, 0x2020, 0x2009, 0x002a, 0x080c,\r
++      0xd273, 0x2001, 0x180c, 0x200c, 0xc195, 0x2102, 0x2019, 0x002a,\r
++      0x2009, 0x0001, 0x080c, 0x2fc5, 0x00e6, 0x2071, 0x1800, 0x080c,\r
++      0x2ddb, 0x00ee, 0x00c6, 0x0156, 0x20a9, 0x0781, 0x2009, 0x007f,\r
++      0x080c, 0x311a, 0x8108, 0x1f04, 0xaa98, 0x015e, 0x00ce, 0x080c,\r
++      0xaa57, 0x2071, 0x0260, 0x2079, 0x0200, 0x7817, 0x0001, 0x2001,\r
++      0x1836, 0x200c, 0xc1c5, 0x7018, 0xd0fc, 0x0110, 0xd0dc, 0x0118,\r
++      0x7038, 0xd0dc, 0x1108, 0xc1c4, 0x7817, 0x0000, 0x2001, 0x1836,\r
++      0x2102, 0x2079, 0x0100, 0x2e04, 0x9084, 0x00ff, 0x2069, 0x181e,\r
++      0x206a, 0x78e6, 0x0006, 0x8e70, 0x2e04, 0x2069, 0x181f, 0x206a,\r
++      0x78ea, 0x7832, 0x7836, 0x2010, 0x9084, 0xff00, 0x001e, 0x9105,\r
++      0x2009, 0x182b, 0x200a, 0x2200, 0x9084, 0x00ff, 0x2008, 0x080c,\r
++      0x246d, 0x080c, 0x70b7, 0x0170, 0x2071, 0x0260, 0x2069, 0x1953,\r
++      0x7048, 0x206a, 0x704c, 0x6806, 0x7050, 0x680a, 0x7054, 0x680e,\r
++      0x080c, 0xbc6d, 0x0040, 0x2001, 0x0006, 0x080c, 0x61c1, 0x080c,\r
++      0x303b, 0x080c, 0x9be7, 0x001e, 0x003e, 0x00de, 0x00ee, 0x00fe,\r
++      0x00be, 0x0005, 0x0096, 0x0026, 0x0036, 0x00e6, 0x0156, 0x2019,\r
++      0x182b, 0x231c, 0x83ff, 0x01f0, 0x2071, 0x0260, 0x7200, 0x9294,\r
++      0x00ff, 0x7004, 0x9084, 0xff00, 0x9205, 0x9306, 0x1198, 0x2011,\r
++      0x0276, 0x20a9, 0x0004, 0x2b48, 0x2019, 0x000a, 0x080c, 0xabdf,\r
++      0x1148, 0x2011, 0x027a, 0x20a9, 0x0004, 0x2019, 0x0006, 0x080c,\r
++      0xabdf, 0x1100, 0x015e, 0x00ee, 0x003e, 0x002e, 0x009e, 0x0005,\r
++      0x00e6, 0x2071, 0x0260, 0x7034, 0x9086, 0x0014, 0x11a8, 0x7038,\r
++      0x9086, 0x0800, 0x1188, 0x703c, 0xd0ec, 0x0160, 0x9084, 0x0f00,\r
++      0x9086, 0x0100, 0x1138, 0x7054, 0xd0a4, 0x1110, 0xd0ac, 0x0110,\r
++      0x9006, 0x0010, 0x9085, 0x0001, 0x00ee, 0x0005, 0x00e6, 0x0096,\r
++      0x00c6, 0x0076, 0x0056, 0x0046, 0x0026, 0x0006, 0x0126, 0x2091,\r
++      0x8000, 0x2029, 0x19c4, 0x252c, 0x2021, 0x19cb, 0x2424, 0x2061,\r
++      0x1ddc, 0x2071, 0x1800, 0x7250, 0x7070, 0x9202, 0x1a04, 0xabb7,\r
++      0x080c, 0xd2a4, 0x0904, 0xabb0, 0x6720, 0x9786, 0x0007, 0x0904,\r
++      0xabb0, 0x2500, 0x9c06, 0x0904, 0xabb0, 0x2400, 0x9c06, 0x0904,\r
++      0xabb0, 0x3e08, 0x9186, 0x0002, 0x1148, 0x6010, 0x9005, 0x0130,\r
++      0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc, 0x1590, 0x00c6, 0x6043,\r
++      0xffff, 0x6000, 0x9086, 0x0004, 0x1110, 0x080c, 0x1914, 0x9786,\r
++      0x000a, 0x0148, 0x080c, 0xba5c, 0x1130, 0x00ce, 0x080c, 0xa58f,\r
++      0x080c, 0x9c21, 0x00e8, 0x6014, 0x2048, 0x080c, 0xb847, 0x01a8,\r
++      0x9786, 0x0003, 0x1530, 0xa867, 0x0103, 0xa87c, 0xd0cc, 0x0130,\r
++      0x0096, 0xa878, 0x2048, 0x080c, 0x0fd4, 0x009e, 0xab7a, 0xa877,\r
++      0x0000, 0x080c, 0x698a, 0x080c, 0xba36, 0x080c, 0x9c21, 0x00ce,\r
++      0x9ce0, 0x001c, 0x7064, 0x9c02, 0x1210, 0x0804, 0xab5b, 0x012e,\r
++      0x000e, 0x002e, 0x004e, 0x005e, 0x007e, 0x00ce, 0x009e, 0x00ee,\r
++      0x0005, 0x9786, 0x0006, 0x1118, 0x080c, 0xd21e, 0x0c30, 0x9786,\r
++      0x000a, 0x0998, 0x0880, 0x220c, 0x2304, 0x9106, 0x1130, 0x8210,\r
++      0x8318, 0x1f04, 0xabcb, 0x9006, 0x0005, 0x2304, 0x9102, 0x0218,\r
++      0x2001, 0x0001, 0x0008, 0x9006, 0x918d, 0x0001, 0x0005, 0x0136,\r
++      0x01c6, 0x0016, 0x8906, 0x8006, 0x8007, 0x908c, 0x003f, 0x21e0,\r
++      0x9084, 0xffc0, 0x9300, 0x2098, 0x3518, 0x20a9, 0x0001, 0x220c,\r
++      0x4002, 0x910e, 0x1140, 0x8210, 0x8319, 0x1dc8, 0x9006, 0x001e,\r
++      0x01ce, 0x013e, 0x0005, 0x220c, 0x9102, 0x0218, 0x2001, 0x0001,\r
++      0x0010, 0x2001, 0x0000, 0x918d, 0x0001, 0x001e, 0x01ce, 0x013e,\r
++      0x0005, 0x6004, 0x908a, 0x0053, 0x1a0c, 0x0d65, 0x080c, 0xba4b,\r
++      0x0120, 0x080c, 0xba5c, 0x0158, 0x0028, 0x080c, 0x303b, 0x080c,\r
++      0xba5c, 0x0128, 0x080c, 0x8874, 0x080c, 0x9be7, 0x0005, 0x080c,\r
++      0xa58f, 0x0cc0, 0x9182, 0x0057, 0x1220, 0x9182, 0x0040, 0x0208,\r
++      0x000a, 0x0005, 0xac41, 0xac41, 0xac41, 0xac41, 0xac41, 0xac41,\r
++      0xac41, 0xac41, 0xac41, 0xac41, 0xac41, 0xac43, 0xac43, 0xac43,\r
++      0xac43, 0xac41, 0xac41, 0xac41, 0xac43, 0xac41, 0xac41, 0xac41,\r
++      0xac41, 0x080c, 0x0d65, 0x600b, 0xffff, 0x6003, 0x000f, 0x6106,\r
++      0x0126, 0x2091, 0x8000, 0x080c, 0xbf79, 0x2009, 0x8000, 0x080c,\r
++      0x84d1, 0x012e, 0x0005, 0x9186, 0x0013, 0x1128, 0x6004, 0x9082,\r
++      0x0040, 0x0804, 0xacc8, 0x9186, 0x0027, 0x1520, 0x080c, 0x8874,\r
++      0x080c, 0x3006, 0x080c, 0xbf76, 0x0096, 0x6114, 0x2148, 0x080c,\r
++      0xb847, 0x0198, 0x080c, 0xba5c, 0x1118, 0x080c, 0xa58f, 0x0068,\r
++      0xa867, 0x0103, 0xa87b, 0x0029, 0xa877, 0x0000, 0xa97c, 0xc1c5,\r
++      0xa97e, 0x080c, 0x6996, 0x080c, 0xba36, 0x009e, 0x080c, 0x9be7,\r
++      0x0804, 0x8936, 0x9186, 0x0014, 0x1120, 0x6004, 0x9082, 0x0040,\r
++      0x0018, 0x080c, 0x0d65, 0x0005, 0x0002, 0xaca6, 0xaca4, 0xaca4,\r
++      0xaca4, 0xaca4, 0xaca4, 0xaca4, 0xaca4, 0xaca4, 0xaca4, 0xaca4,\r
++      0xacbf, 0xacbf, 0xacbf, 0xacbf, 0xaca4, 0xacbf, 0xaca4, 0xacbf,\r
++      0xaca4, 0xaca4, 0xaca4, 0xaca4, 0x080c, 0x0d65, 0x080c, 0x8874,\r
++      0x0096, 0x6114, 0x2148, 0x080c, 0xb847, 0x0168, 0xa867, 0x0103,\r
++      0xa87b, 0x0006, 0xa877, 0x0000, 0xa880, 0xc0ec, 0xa882, 0x080c,\r
++      0x6996, 0x080c, 0xba36, 0x009e, 0x080c, 0x9be7, 0x0005, 0x080c,\r
++      0x8874, 0x080c, 0xba5c, 0x090c, 0xa58f, 0x080c, 0x9be7, 0x0005,\r
++      0x0002, 0xace2, 0xace0, 0xace0, 0xace0, 0xace0, 0xace0, 0xace0,\r
++      0xace0, 0xace0, 0xace0, 0xace0, 0xace4, 0xace4, 0xace4, 0xace4,\r
++      0xace0, 0xace6, 0xace0, 0xace4, 0xace0, 0xace0, 0xace0, 0xace0,\r
++      0x080c, 0x0d65, 0x080c, 0x0d65, 0x080c, 0x0d65, 0x080c, 0x9be7,\r
++      0x0804, 0x8936, 0x9182, 0x0057, 0x1220, 0x9182, 0x0040, 0x0208,\r
++      0x000a, 0x0005, 0xad09, 0xad09, 0xad09, 0xad09, 0xad09, 0xad42,\r
++      0xae31, 0xad09, 0xae3d, 0xad09, 0xad09, 0xad09, 0xad09, 0xad09,\r
++      0xad09, 0xad09, 0xad09, 0xad09, 0xad09, 0xae3d, 0xad0b, 0xad09,\r
++      0xae3b, 0x080c, 0x0d65, 0x00b6, 0x0096, 0x6114, 0x2148, 0x6010,\r
++      0x2058, 0xb800, 0xd0bc, 0x1508, 0xa87b, 0x0000, 0xa867, 0x0103,\r
++      0xa877, 0x0000, 0xa87c, 0xd0ac, 0x0128, 0xa834, 0xa938, 0x9115,\r
++      0x190c, 0xaec2, 0x080c, 0x67ac, 0x6210, 0x2258, 0xba3c, 0x82ff,\r
++      0x0110, 0x8211, 0xba3e, 0xb8c0, 0x9005, 0x0110, 0x080c, 0x639b,\r
++      0x080c, 0x9be7, 0x009e, 0x00be, 0x0005, 0xa87c, 0xd0ac, 0x09e0,\r
++      0xa838, 0xa934, 0x9105, 0x09c0, 0xa880, 0xd0bc, 0x19a8, 0x080c,\r
++      0xbb8c, 0x0c80, 0x00b6, 0x0096, 0x6114, 0x2148, 0x601c, 0xd0fc,\r
++      0x1110, 0x7644, 0x0008, 0x9036, 0x96b4, 0x0fff, 0x86ff, 0x1590,\r
++      0x6010, 0x2058, 0xb800, 0xd0bc, 0x1904, 0xae20, 0xa87b, 0x0000,\r
++      0xa867, 0x0103, 0xae76, 0xa87c, 0xd0ac, 0x0128, 0xa834, 0xa938,\r
++      0x9115, 0x190c, 0xaec2, 0x080c, 0x67ac, 0x6210, 0x2258, 0xba3c,\r
++      0x82ff, 0x0110, 0x8211, 0xba3e, 0xb8c0, 0x9005, 0x0110, 0x080c,\r
++      0x639b, 0x601c, 0xd0fc, 0x1148, 0x7044, 0xd0e4, 0x1904, 0xae04,\r
++      0x080c, 0x9be7, 0x009e, 0x00be, 0x0005, 0x2009, 0x0211, 0x210c,\r
++      0x080c, 0x0d65, 0x968c, 0x0c00, 0x0150, 0x6010, 0x2058, 0xb800,\r
++      0xd0bc, 0x1904, 0xae08, 0x7348, 0xab92, 0x734c, 0xab8e, 0x968c,\r
++      0x00ff, 0x9186, 0x0002, 0x0508, 0x9186, 0x0028, 0x1118, 0xa87b,\r
++      0x001c, 0x00e8, 0xd6dc, 0x01a0, 0xa87b, 0x0015, 0xa87c, 0xd0ac,\r
++      0x0170, 0xa938, 0xaa34, 0x2100, 0x9205, 0x0148, 0x7048, 0x9106,\r
++      0x1118, 0x704c, 0x9206, 0x0118, 0xa992, 0xaa8e, 0xc6dc, 0x0038,\r
++      0xd6d4, 0x0118, 0xa87b, 0x0007, 0x0010, 0xa87b, 0x0000, 0xa867,\r
++      0x0103, 0xae76, 0x901e, 0xd6c4, 0x01d8, 0x9686, 0x0100, 0x1130,\r
++      0x7064, 0x9005, 0x1118, 0xc6c4, 0x0804, 0xad4e, 0x735c, 0xab86,\r
++      0x83ff, 0x0170, 0x938a, 0x0009, 0x0210, 0x2019, 0x0008, 0x0036,\r
++      0x2308, 0x2019, 0x0018, 0x2011, 0x0025, 0x080c, 0xb41a, 0x003e,\r
++      0xd6cc, 0x0904, 0xad63, 0x7154, 0xa98a, 0x81ff, 0x0904, 0xad63,\r
++      0x9192, 0x0021, 0x1278, 0x8304, 0x9098, 0x0018, 0x2011, 0x0029,\r
++      0x080c, 0xb41a, 0x2011, 0x0205, 0x2013, 0x0000, 0x080c, 0xbf06,\r
++      0x0804, 0xad63, 0xa868, 0xd0fc, 0x0120, 0x2009, 0x0020, 0xa98a,\r
++      0x0c50, 0x00a6, 0x2950, 0x080c, 0xb3b9, 0x00ae, 0x080c, 0xbf06,\r
++      0x080c, 0xb40a, 0x0804, 0xad65, 0x080c, 0xbb4f, 0x0804, 0xad7a,\r
++      0xa87c, 0xd0ac, 0x0904, 0xad8b, 0xa880, 0xd0bc, 0x1904, 0xad8b,\r
++      0x7348, 0xa838, 0x9306, 0x11c8, 0x734c, 0xa834, 0x931e, 0x0904,\r
++      0xad8b, 0xd6d4, 0x0190, 0xab38, 0x9305, 0x0904, 0xad8b, 0x0068,\r
++      0xa87c, 0xd0ac, 0x0904, 0xad56, 0xa838, 0xa934, 0x9105, 0x0904,\r
++      0xad56, 0xa880, 0xd0bc, 0x1904, 0xad56, 0x080c, 0xbb8c, 0x0804,\r
++      0xad7a, 0x00f6, 0x2079, 0x026c, 0x7c04, 0x7b00, 0x7e0c, 0x7d08,\r
++      0x00fe, 0x0021, 0x0005, 0x0011, 0x0005, 0x0005, 0x0096, 0x6003,\r
++      0x0002, 0x6007, 0x0043, 0x6014, 0x2048, 0xa87c, 0xd0ac, 0x0128,\r
++      0x009e, 0x0005, 0x2130, 0x2228, 0x0058, 0x2400, 0xa9ac, 0x910a,\r
++      0x2300, 0xaab0, 0x9213, 0x2600, 0x9102, 0x2500, 0x9203, 0x0e90,\r
++      0xac46, 0xab4a, 0xae36, 0xad3a, 0x6044, 0xd0fc, 0x190c, 0x98f1,\r
++      0x604b, 0x0000, 0x080c, 0x1ad2, 0x1118, 0x6144, 0x080c, 0x84fd,\r
++      0x009e, 0x0005, 0x9182, 0x0057, 0x1220, 0x9182, 0x0040, 0x0208,\r
++      0x000a, 0x0005, 0xae89, 0xae89, 0xae89, 0xae89, 0xae89, 0xae89,\r
++      0xae89, 0xae89, 0xae89, 0xae89, 0xae8b, 0xae89, 0xae89, 0xae89,\r
++      0xae89, 0xae9c, 0xae89, 0xae89, 0xae89, 0xae89, 0xaec0, 0xae89,\r
++      0xae89, 0x080c, 0x0d65, 0x6004, 0x9086, 0x0040, 0x1110, 0x080c,\r
++      0x8874, 0x2019, 0x0001, 0x080c, 0x9286, 0x6003, 0x0002, 0x080c,\r
++      0xbf7e, 0x080c, 0x88d1, 0x0005, 0x6004, 0x9086, 0x0040, 0x1110,\r
++      0x080c, 0x8874, 0x2019, 0x0001, 0x080c, 0x9286, 0x080c, 0x88d1,\r
++      0x080c, 0x3006, 0x080c, 0xbf76, 0x0096, 0x6114, 0x2148, 0x080c,\r
++      0xb847, 0x0150, 0xa867, 0x0103, 0xa87b, 0x0029, 0xa877, 0x0000,\r
++      0x080c, 0x6996, 0x080c, 0xba36, 0x009e, 0x080c, 0x9be7, 0x0005,\r
++      0x080c, 0x0d65, 0xa87b, 0x0015, 0xd1fc, 0x0180, 0xa87b, 0x0007,\r
++      0x8002, 0x8000, 0x810a, 0x9189, 0x0000, 0x0006, 0x0016, 0x2009,\r
++      0x1a48, 0x2104, 0x8000, 0x200a, 0x001e, 0x000e, 0xa992, 0xa88e,\r
++      0x0005, 0x9182, 0x0057, 0x1220, 0x9182, 0x0040, 0x0208, 0x000a,\r
++      0x0005, 0xaef8, 0xaef8, 0xaef8, 0xaef8, 0xaef8, 0xaefa, 0xaef8,\r
++      0xaef8, 0xafb7, 0xaef8, 0xaef8, 0xaef8, 0xaef8, 0xaef8, 0xaef8,\r
++      0xaef8, 0xaef8, 0xaef8, 0xaef8, 0xb0fb, 0xaef8, 0xb105, 0xaef8,\r
++      0x080c, 0x0d65, 0x601c, 0xd0bc, 0x0178, 0xd084, 0x0168, 0xd0f4,\r
++      0x0120, 0xc084, 0x601e, 0x0804, 0xacea, 0x6114, 0x0096, 0x2148,\r
++      0xa87c, 0xc0e5, 0xa87e, 0x009e, 0x0076, 0x00a6, 0x00e6, 0x0096,\r
++      0x2071, 0x0260, 0x6114, 0x2150, 0x601c, 0xd0fc, 0x1110, 0x7644,\r
++      0x0008, 0x9036, 0xb676, 0x96b4, 0x0fff, 0xb77c, 0xc7e5, 0xb77e,\r
++      0x6210, 0x00b6, 0x2258, 0xba3c, 0x82ff, 0x0110, 0x8211, 0xba3e,\r
++      0x00be, 0x86ff, 0x0904, 0xafb0, 0x9694, 0xff00, 0x9284, 0x0c00,\r
++      0x0120, 0x7048, 0xb092, 0x704c, 0xb08e, 0x9284, 0x0300, 0x0904,\r
++      0xafb0, 0x9686, 0x0100, 0x1130, 0x7064, 0x9005, 0x1118, 0xc6c4,\r
++      0xb676, 0x0c38, 0x080c, 0x1022, 0x090c, 0x0d65, 0x2900, 0xb07a,\r
++      0xb77c, 0x97bd, 0x0200, 0xb77e, 0xa867, 0x0103, 0xb068, 0xa86a,\r
++      0xb06c, 0xa86e, 0xb070, 0xa872, 0x7044, 0x9084, 0xf000, 0x9635,\r
++      0xae76, 0x968c, 0x0c00, 0x0120, 0x7348, 0xab92, 0x734c, 0xab8e,\r
++      0x968c, 0x00ff, 0x9186, 0x0002, 0x0180, 0x9186, 0x0028, 0x1118,\r
++      0xa87b, 0x001c, 0x0060, 0xd6dc, 0x0118, 0xa87b, 0x0015, 0x0038,\r
++      0xd6d4, 0x0118, 0xa87b, 0x0007, 0x0010, 0xa87b, 0x0000, 0xaf7e,\r
++      0xb080, 0xa882, 0xb084, 0xa886, 0x901e, 0xd6c4, 0x0190, 0x735c,\r
++      0xab86, 0x83ff, 0x0170, 0x938a, 0x0009, 0x0210, 0x2019, 0x0008,\r
++      0x0036, 0x2308, 0x2019, 0x0018, 0x2011, 0x0025, 0x080c, 0xb41a,\r
++      0x003e, 0xd6cc, 0x01e8, 0x7154, 0xa98a, 0x81ff, 0x01c8, 0x9192,\r
++      0x0021, 0x1260, 0x8304, 0x9098, 0x0018, 0x2011, 0x0029, 0x080c,\r
++      0xb41a, 0x2011, 0x0205, 0x2013, 0x0000, 0x0050, 0xb068, 0xd0fc,\r
++      0x0120, 0x2009, 0x0020, 0xa98a, 0x0c68, 0x2950, 0x080c, 0xb3b9,\r
++      0x080c, 0x18f2, 0x009e, 0x00ee, 0x00ae, 0x007e, 0x0005, 0x2001,\r
++      0x1959, 0x2004, 0x604a, 0x0096, 0x6114, 0x2148, 0xa83c, 0xa940,\r
++      0x9105, 0x1118, 0xa87c, 0xc0dc, 0xa87e, 0x6003, 0x0002, 0x080c,\r
++      0xbf87, 0x0904, 0xb0f6, 0x604b, 0x0000, 0x6010, 0x00b6, 0x2058,\r
++      0xb800, 0x00be, 0xd0bc, 0x1500, 0xd1cc, 0x0904, 0xb0b5, 0xa978,\r
++      0xa868, 0xd0fc, 0x0904, 0xb076, 0x0016, 0xa87c, 0x0006, 0xa880,\r
++      0x0006, 0x00a6, 0x2150, 0xb174, 0x9184, 0x00ff, 0x90b6, 0x0002,\r
++      0x0904, 0xb044, 0x9086, 0x0028, 0x1904, 0xb030, 0xa87b, 0x001c,\r
++      0xb07b, 0x001c, 0x0804, 0xb04c, 0x6024, 0xd0f4, 0x11d0, 0xa838,\r
++      0xaa34, 0x9205, 0x09c8, 0xa838, 0xaa90, 0x9206, 0x1120, 0xa88c,\r
++      0xaa34, 0x9206, 0x0988, 0x6024, 0xd0d4, 0x1148, 0xa9ac, 0xa834,\r
++      0x9102, 0x603a, 0xa9b0, 0xa838, 0x9103, 0x603e, 0x6024, 0xc0f5,\r
++      0x6026, 0x6010, 0x00b6, 0x2058, 0xb83c, 0x8000, 0xb83e, 0x00be,\r
++      0x601c, 0xc0fc, 0x601e, 0x9006, 0xa876, 0xa892, 0xa88e, 0xa87c,\r
++      0xc0e4, 0xa87e, 0xd0cc, 0x0140, 0xc0cc, 0xa87e, 0x0096, 0xa878,\r
++      0x2048, 0x080c, 0x0fd4, 0x009e, 0x080c, 0xbb8c, 0x0804, 0xb0f6,\r
++      0xd1dc, 0x0158, 0xa87b, 0x0015, 0xb07b, 0x0015, 0x080c, 0xbe29,\r
++      0x0118, 0xb174, 0xc1dc, 0xb176, 0x0078, 0xd1d4, 0x0128, 0xa87b,\r
++      0x0007, 0xb07b, 0x0007, 0x0040, 0xa87c, 0xd0ac, 0x0128, 0xa834,\r
++      0xa938, 0x9115, 0x190c, 0xaec2, 0xa87c, 0xb07e, 0xa890, 0xb092,\r
++      0xa88c, 0xb08e, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0019, 0x20a0,\r
++      0x20a9, 0x0020, 0x8a06, 0x8006, 0x8007, 0x9094, 0x003f, 0x22e0,\r
++      0x9084, 0xffc0, 0x9080, 0x0019, 0x2098, 0x4003, 0x00ae, 0x000e,\r
++      0xa882, 0x000e, 0xa87e, 0x080c, 0xbf06, 0x001e, 0xa874, 0x0006,\r
++      0x2148, 0x080c, 0x0fd4, 0x001e, 0x0804, 0xb0e2, 0x0016, 0x00a6,\r
++      0x2150, 0xb174, 0x9184, 0x00ff, 0x90b6, 0x0002, 0x01e0, 0x9086,\r
++      0x0028, 0x1128, 0xa87b, 0x001c, 0xb07b, 0x001c, 0x00e0, 0xd1dc,\r
++      0x0158, 0xa87b, 0x0015, 0xb07b, 0x0015, 0x080c, 0xbe29, 0x0118,\r
++      0xb174, 0xc1dc, 0xb176, 0x0078, 0xd1d4, 0x0128, 0xa87b, 0x0007,\r
++      0xb07b, 0x0007, 0x0040, 0xa87c, 0xd0ac, 0x0128, 0xa834, 0xa938,\r
++      0x9115, 0x190c, 0xaec2, 0xa890, 0xb092, 0xa88c, 0xb08e, 0xa87c,\r
++      0xb07e, 0x00ae, 0x080c, 0x0fd4, 0x009e, 0x080c, 0xbf06, 0xa974,\r
++      0x0016, 0x080c, 0xb40a, 0x001e, 0x0468, 0xa867, 0x0103, 0xa974,\r
++      0x9184, 0x00ff, 0x90b6, 0x0002, 0x01b0, 0x9086, 0x0028, 0x1118,\r
++      0xa87b, 0x001c, 0x00d0, 0xd1dc, 0x0148, 0xa87b, 0x0015, 0x080c,\r
++      0xbe29, 0x0118, 0xa974, 0xc1dc, 0xa976, 0x0078, 0xd1d4, 0x0118,\r
++      0xa87b, 0x0007, 0x0050, 0xa87b, 0x0000, 0xa87c, 0xd0ac, 0x0128,\r
++      0xa834, 0xa938, 0x9115, 0x190c, 0xaec2, 0xa974, 0x0016, 0x080c,\r
++      0x67ac, 0x001e, 0x6010, 0x00b6, 0x2058, 0xba3c, 0x82ff, 0x0110,\r
++      0x8211, 0xba3e, 0xb8c0, 0x9005, 0x0120, 0x0016, 0x080c, 0x639b,\r
++      0x001e, 0x00be, 0xd1e4, 0x1120, 0x080c, 0x9be7, 0x009e, 0x0005,\r
++      0x080c, 0xbb4f, 0x0cd8, 0x6114, 0x0096, 0x2148, 0xa97c, 0x080c,\r
++      0xbf87, 0x190c, 0x1900, 0x009e, 0x0005, 0x0096, 0x6114, 0x2148,\r
++      0xa83c, 0xa940, 0x9105, 0x01e8, 0xa877, 0x0000, 0xa87b, 0x0000,\r
++      0xa867, 0x0103, 0x00b6, 0x6010, 0x2058, 0xa834, 0xa938, 0x9115,\r
++      0x11a0, 0x080c, 0x67ac, 0xba3c, 0x8211, 0x0208, 0xba3e, 0xb8c0,\r
++      0x9005, 0x0110, 0x080c, 0x639b, 0x080c, 0x9be7, 0x00be, 0x009e,\r
++      0x0005, 0xa87c, 0xc0dc, 0xa87e, 0x08f8, 0xb800, 0xd0bc, 0x1120,\r
++      0xa834, 0x080c, 0xaec2, 0x0c28, 0xa880, 0xd0bc, 0x1dc8, 0x080c,\r
++      0xbb8c, 0x0c60, 0x080c, 0x8874, 0x0010, 0x080c, 0x88d1, 0x601c,\r
++      0xd084, 0x0110, 0x080c, 0x1914, 0x080c, 0xb847, 0x01f0, 0x0096,\r
++      0x6114, 0x2148, 0x080c, 0xba5c, 0x1118, 0x080c, 0xa58f, 0x00a0,\r
++      0xa867, 0x0103, 0x2009, 0x180c, 0x210c, 0xd18c, 0x1198, 0xd184,\r
++      0x1170, 0x6108, 0xa97a, 0x918e, 0x0029, 0x1110, 0x080c, 0xd51a,\r
++      0xa877, 0x0000, 0x080c, 0x6996, 0x009e, 0x0804, 0x9c21, 0xa87b,\r
++      0x0004, 0x0cb0, 0xa87b, 0x0004, 0x0c98, 0x9182, 0x0057, 0x1220,\r
++      0x9182, 0x0040, 0x0208, 0x000a, 0x0005, 0xb18c, 0xb18c, 0xb18c,\r
++      0xb18c, 0xb18c, 0xb18e, 0xb18c, 0xb18c, 0xb18c, 0xb18c, 0xb18c,\r
++      0xb18c, 0xb18c, 0xb18c, 0xb18c, 0xb18c, 0xb18c, 0xb18c, 0xb18c,\r
++      0xb18c, 0xb1b2, 0xb18c, 0xb18c, 0x080c, 0x0d65, 0x080c, 0x5395,\r
++      0x01f8, 0x6014, 0x7144, 0x918c, 0x0fff, 0x9016, 0xd1c4, 0x0118,\r
++      0x7264, 0x9294, 0x00ff, 0x0096, 0x904d, 0x0188, 0xa87b, 0x0000,\r
++      0xa864, 0x9086, 0x0139, 0x0128, 0xa867, 0x0103, 0xa976, 0xaa96,\r
++      0x0030, 0xa897, 0x4000, 0xa99a, 0xaa9e, 0x080c, 0x6996, 0x009e,\r
++      0x0804, 0x9be7, 0x080c, 0x5395, 0x0dd8, 0x6014, 0x900e, 0x9016,\r
++      0x0c10, 0x9182, 0x0085, 0x0002, 0xb1cb, 0xb1c9, 0xb1c9, 0xb1d7,\r
++      0xb1c9, 0xb1c9, 0xb1c9, 0xb1c9, 0xb1c9, 0xb1c9, 0xb1c9, 0xb1c9,\r
++      0xb1c9, 0x080c, 0x0d65, 0x6003, 0x0001, 0x6106, 0x0126, 0x2091,\r
++      0x8000, 0x2009, 0x8020, 0x080c, 0x84d1, 0x012e, 0x0005, 0x0026,\r
++      0x0056, 0x00d6, 0x00e6, 0x2071, 0x0260, 0x7224, 0x6216, 0x7220,\r
++      0x080c, 0xb835, 0x01a0, 0x2268, 0x6800, 0x9086, 0x0000, 0x0178,\r
++      0x6010, 0x6d10, 0x952e, 0x1158, 0x00c6, 0x2d60, 0x080c, 0xb445,\r
++      0x00ce, 0x0128, 0x6803, 0x0002, 0x6007, 0x0086, 0x0010, 0x6007,\r
++      0x0087, 0x6003, 0x0001, 0x2009, 0x8020, 0x080c, 0x84d1, 0x9280,\r
++      0x0004, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc, 0x0140, 0x6824,\r
++      0xd0ec, 0x0128, 0x00c6, 0x2260, 0x080c, 0xbb8c, 0x00ce, 0x00ee,\r
++      0x00de, 0x005e, 0x002e, 0x0005, 0x9186, 0x0013, 0x1160, 0x6004,\r
++      0x908a, 0x0085, 0x0a0c, 0x0d65, 0x908a, 0x0092, 0x1a0c, 0x0d65,\r
++      0x9082, 0x0085, 0x00e2, 0x9186, 0x0027, 0x0120, 0x9186, 0x0014,\r
++      0x190c, 0x0d65, 0x080c, 0x8874, 0x0096, 0x6014, 0x2048, 0x080c,\r
++      0xb847, 0x0140, 0xa867, 0x0103, 0xa877, 0x0000, 0xa87b, 0x0029,\r
++      0x080c, 0x6996, 0x009e, 0x080c, 0x9c21, 0x0804, 0x8936, 0xb24c,\r
++      0xb24e, 0xb24e, 0xb24c, 0xb24c, 0xb24c, 0xb24c, 0xb24c, 0xb24c,\r
++      0xb24c, 0xb24c, 0xb24c, 0xb24c, 0x080c, 0x0d65, 0x080c, 0x9c21,\r
++      0x0005, 0x9186, 0x0013, 0x1130, 0x6004, 0x9082, 0x0085, 0x2008,\r
++      0x0804, 0xb29d, 0x9186, 0x0027, 0x1558, 0x080c, 0x8874, 0x080c,\r
++      0x3006, 0x080c, 0xbf76, 0x0096, 0x6014, 0x2048, 0x080c, 0xb847,\r
++      0x0150, 0xa867, 0x0103, 0xa877, 0x0000, 0xa87b, 0x0029, 0x080c,\r
++      0x6996, 0x080c, 0xba36, 0x009e, 0x080c, 0x9be7, 0x0005, 0x9186,\r
++      0x0089, 0x0118, 0x9186, 0x008a, 0x1140, 0x080c, 0x9ab7, 0x0128,\r
++      0x9086, 0x000c, 0x0904, 0xb2d5, 0x0000, 0x080c, 0x9ca2, 0x0c70,\r
++      0x9186, 0x0014, 0x1d60, 0x080c, 0x8874, 0x0096, 0x6014, 0x2048,\r
++      0x080c, 0xb847, 0x0d00, 0xa867, 0x0103, 0xa877, 0x0000, 0xa87b,\r
++      0x0006, 0xa880, 0xc0ec, 0xa882, 0x0890, 0x0002, 0xb2ad, 0xb2ab,\r
++      0xb2ab, 0xb2ab, 0xb2ab, 0xb2ab, 0xb2c1, 0xb2ab, 0xb2ab, 0xb2ab,\r
++      0xb2ab, 0xb2ab, 0xb2ab, 0x080c, 0x0d65, 0x6034, 0x908c, 0xff00,\r
++      0x810f, 0x9186, 0x0039, 0x0118, 0x9186, 0x0035, 0x1118, 0x2001,\r
++      0x1957, 0x0010, 0x2001, 0x1958, 0x2004, 0x601a, 0x6003, 0x000c,\r
++      0x0005, 0x6034, 0x908c, 0xff00, 0x810f, 0x9186, 0x0039, 0x0118,\r
++      0x9186, 0x0035, 0x1118, 0x2001, 0x1957, 0x0010, 0x2001, 0x1958,\r
++      0x2004, 0x601a, 0x6003, 0x000e, 0x0005, 0x9182, 0x0092, 0x1220,\r
++      0x9182, 0x0085, 0x0208, 0x0012, 0x0804, 0x9ca2, 0xb2eb, 0xb2eb,\r
++      0xb2eb, 0xb2eb, 0xb2ed, 0xb33a, 0xb2eb, 0xb2eb, 0xb2eb, 0xb2eb,\r
++      0xb2eb, 0xb2eb, 0xb2eb, 0x080c, 0x0d65, 0x0096, 0x6010, 0x00b6,\r
++      0x2058, 0xb800, 0x00be, 0xd0bc, 0x0168, 0x6034, 0x908c, 0xff00,\r
++      0x810f, 0x9186, 0x0039, 0x0118, 0x9186, 0x0035, 0x1118, 0x009e,\r
++      0x0804, 0xb34e, 0x080c, 0xb847, 0x1118, 0x080c, 0xba36, 0x0068,\r
++      0x6014, 0x2048, 0x080c, 0xbf8d, 0x1110, 0x080c, 0xba36, 0xa867,\r
++      0x0103, 0x080c, 0xbf41, 0x080c, 0x6996, 0x00d6, 0x2c68, 0x080c,\r
++      0x9b91, 0x01d0, 0x6003, 0x0001, 0x6007, 0x001e, 0x600b, 0xffff,\r
++      0x2009, 0x026e, 0x210c, 0x613a, 0x2009, 0x026f, 0x210c, 0x613e,\r
++      0x6910, 0x6112, 0x080c, 0xbcdb, 0x695c, 0x615e, 0x6023, 0x0001,\r
++      0x2009, 0x8020, 0x080c, 0x84d1, 0x2d60, 0x00de, 0x080c, 0x9be7,\r
++      0x009e, 0x0005, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc,\r
++      0x05a0, 0x6034, 0x908c, 0xff00, 0x810f, 0x9186, 0x0035, 0x0130,\r
++      0x9186, 0x001e, 0x0118, 0x9186, 0x0039, 0x1538, 0x00d6, 0x2c68,\r
++      0x080c, 0xbed9, 0x11f0, 0x080c, 0x9b91, 0x01d8, 0x6106, 0x6003,\r
++      0x0001, 0x6023, 0x0001, 0x6910, 0x6112, 0x692c, 0x612e, 0x6930,\r
++      0x6132, 0x6934, 0x918c, 0x00ff, 0x6136, 0x6938, 0x613a, 0x693c,\r
++      0x613e, 0x695c, 0x615e, 0x080c, 0xbcdb, 0x2009, 0x8020, 0x080c,\r
++      0x84d1, 0x2d60, 0x00de, 0x0804, 0x9be7, 0x0096, 0x6014, 0x2048,\r
++      0x080c, 0xb847, 0x01c8, 0xa867, 0x0103, 0xa880, 0xd0b4, 0x0128,\r
++      0xc0ec, 0xa882, 0xa87b, 0x0006, 0x0048, 0xd0bc, 0x0118, 0xa87b,\r
++      0x0002, 0x0020, 0xa87b, 0x0005, 0x080c, 0xbb4b, 0xa877, 0x0000,\r
++      0x080c, 0x6996, 0x080c, 0xba36, 0x009e, 0x0804, 0x9be7, 0x0016,\r
++      0x0096, 0x6014, 0x2048, 0x080c, 0xb847, 0x0140, 0xa867, 0x0103,\r
++      0xa87b, 0x0028, 0xa877, 0x0000, 0x080c, 0x6996, 0x009e, 0x001e,\r
++      0x9186, 0x0013, 0x0158, 0x9186, 0x0014, 0x0130, 0x9186, 0x0027,\r
++      0x0118, 0x080c, 0x9ca2, 0x0020, 0x080c, 0x8874, 0x080c, 0x9c21,\r
++      0x0005, 0x0056, 0x0066, 0x0096, 0x00a6, 0x2029, 0x0001, 0x9182,\r
++      0x0101, 0x1208, 0x0010, 0x2009, 0x0100, 0x2130, 0x8304, 0x9098,\r
++      0x0018, 0x2009, 0x0020, 0x2011, 0x0029, 0x080c, 0xb41a, 0x96b2,\r
++      0x0020, 0xb004, 0x904d, 0x0110, 0x080c, 0x0fd4, 0x080c, 0x1022,\r
++      0x0520, 0x8528, 0xa867, 0x0110, 0xa86b, 0x0000, 0x2920, 0xb406,\r
++      0x968a, 0x003d, 0x1228, 0x2608, 0x2011, 0x001b, 0x0499, 0x00a8,\r
++      0x96b2, 0x003c, 0x2009, 0x003c, 0x2950, 0x2011, 0x001b, 0x0451,\r
++      0x0c28, 0x2001, 0x0205, 0x2003, 0x0000, 0x00ae, 0x852f, 0x95ad,\r
++      0x0003, 0xb566, 0x95ac, 0x0000, 0x0048, 0x2001, 0x0205, 0x2003,\r
++      0x0000, 0x00ae, 0x852f, 0x95ad, 0x0003, 0xb566, 0x009e, 0x006e,\r
++      0x005e, 0x0005, 0x00a6, 0x89ff, 0x0158, 0xa804, 0x9055, 0x0130,\r
++      0xa807, 0x0000, 0x080c, 0x6996, 0x2a48, 0x0cb8, 0x080c, 0x6996,\r
++      0x00ae, 0x0005, 0x00f6, 0x2079, 0x0200, 0x7814, 0x9085, 0x0080,\r
++      0x7816, 0xd184, 0x0108, 0x8108, 0x810c, 0x20a9, 0x0001, 0xa860,\r
++      0x20e8, 0xa85c, 0x9200, 0x20a0, 0x20e1, 0x0000, 0x2300, 0x9e00,\r
++      0x2098, 0x4003, 0x8318, 0x9386, 0x0020, 0x1148, 0x2018, 0x2300,\r
++      0x9e00, 0x2098, 0x7814, 0x8000, 0x9085, 0x0080, 0x7816, 0x8109,\r
++      0x1d80, 0x7817, 0x0000, 0x00fe, 0x0005, 0x0066, 0x0126, 0x2091,\r
++      0x8000, 0x2031, 0x0001, 0x6020, 0x9084, 0x000f, 0x0083, 0x012e,\r
++      0x006e, 0x0005, 0x0126, 0x2091, 0x8000, 0x0066, 0x2031, 0x0000,\r
++      0x6020, 0x9084, 0x000f, 0x001b, 0x006e, 0x012e, 0x0005, 0xb497,\r
++      0xb497, 0xb492, 0xb4bb, 0xb46f, 0xb492, 0xb471, 0xb492, 0xb46f,\r
++      0xb46f, 0xb492, 0xb492, 0xb492, 0xb46f, 0xb46f, 0xb46f, 0x080c,\r
++      0x0d65, 0x6010, 0x9080, 0x0000, 0x2004, 0xd0bc, 0x190c, 0xb4bb,\r
++      0x0036, 0x6014, 0x0096, 0x2048, 0xa880, 0x009e, 0xd0cc, 0x0118,\r
++      0x2019, 0x000c, 0x0038, 0xd094, 0x0118, 0x2019, 0x000d, 0x0010,\r
++      0x2019, 0x0010, 0x080c, 0xcdf9, 0x6023, 0x0006, 0x6003, 0x0007,\r
++      0x003e, 0x0005, 0x9006, 0x0005, 0x9085, 0x0001, 0x0005, 0x0096,\r
++      0x86ff, 0x11e8, 0x6014, 0x2048, 0x080c, 0xb847, 0x01d0, 0x6043,\r
++      0xffff, 0xa864, 0x9086, 0x0139, 0x1128, 0xa87b, 0x0005, 0xa883,\r
++      0x0000, 0x0028, 0x900e, 0x2001, 0x0005, 0x080c, 0x6bb3, 0x080c,\r
++      0xbb4b, 0x080c, 0x698a, 0x080c, 0x9c21, 0x9085, 0x0001, 0x009e,\r
++      0x0005, 0x9006, 0x0ce0, 0x080c, 0x98c8, 0x080c, 0xbf9b, 0x6000,\r
++      0x908a, 0x0016, 0x1a0c, 0x0d65, 0x002b, 0x0106, 0x080c, 0x98e4,\r
++      0x010e, 0x0005, 0xb4da, 0xb508, 0xb4dc, 0xb52f, 0xb503, 0xb4da,\r
++      0xb492, 0xb497, 0xb497, 0xb492, 0xb492, 0xb492, 0xb492, 0xb492,\r
++      0xb492, 0xb492, 0x080c, 0x0d65, 0x86ff, 0x1510, 0x6020, 0x9086,\r
++      0x0006, 0x01f0, 0x0096, 0x6014, 0x2048, 0x080c, 0xb847, 0x0158,\r
++      0xa87c, 0xd0cc, 0x0130, 0x0096, 0xa878, 0x2048, 0x080c, 0x0fd4,\r
++      0x009e, 0x080c, 0xbb4b, 0x009e, 0x080c, 0xbf1b, 0x6007, 0x0085,\r
++      0x6003, 0x000b, 0x6023, 0x0002, 0x2009, 0x8020, 0x080c, 0x84b3,\r
++      0x9085, 0x0001, 0x0005, 0x0066, 0x080c, 0x1914, 0x006e, 0x08a0,\r
++      0x00e6, 0x2071, 0x19b8, 0x7030, 0x9c06, 0x1120, 0x080c, 0x9206,\r
++      0x00ee, 0x0850, 0x6020, 0x9084, 0x000f, 0x9086, 0x0006, 0x1150,\r
++      0x0086, 0x0096, 0x2049, 0x0001, 0x2c40, 0x080c, 0x9382, 0x009e,\r
++      0x008e, 0x0040, 0x0066, 0x080c, 0x9102, 0x190c, 0x0d65, 0x080c,\r
++      0x9110, 0x006e, 0x00ee, 0x1904, 0xb4dc, 0x0804, 0xb492, 0x0036,\r
++      0x00e6, 0x2071, 0x19b8, 0x704c, 0x9c06, 0x1138, 0x901e, 0x080c,\r
++      0x9286, 0x00ee, 0x003e, 0x0804, 0xb4dc, 0x080c, 0x94b8, 0x00ee,\r
++      0x003e, 0x1904, 0xb4dc, 0x0804, 0xb492, 0x00c6, 0x0066, 0x6020,\r
++      0x9084, 0x000f, 0x001b, 0x006e, 0x00ce, 0x0005, 0xb565, 0xb627,\r
++      0xb78e, 0xb56d, 0x9c21, 0xb565, 0xcdeb, 0xbf83, 0xb627, 0xb55e,\r
++      0xb80d, 0xb55e, 0xb55e, 0xb55e, 0xb55e, 0xb55e, 0x080c, 0x0d65,\r
++      0x080c, 0xba5c, 0x1110, 0x080c, 0xa58f, 0x0005, 0x080c, 0x8874,\r
++      0x0804, 0x9be7, 0x601b, 0x0001, 0x0005, 0x080c, 0xb847, 0x0130,\r
++      0x6014, 0x0096, 0x2048, 0x2c00, 0xa896, 0x009e, 0x080c, 0x98c8,\r
++      0x080c, 0xbf9b, 0x6000, 0x908a, 0x0016, 0x1a0c, 0x0d65, 0x0013,\r
++      0x0804, 0x98e4, 0xb592, 0xb594, 0xb5be, 0xb5d2, 0xb5fd, 0xb592,\r
++      0xb565, 0xb565, 0xb565, 0xb5d9, 0xb5d9, 0xb592, 0xb592, 0xb592,\r
++      0xb592, 0xb5e3, 0x080c, 0x0d65, 0x00e6, 0x6014, 0x0096, 0x2048,\r
++      0xa880, 0xc0b5, 0xa882, 0x009e, 0x2071, 0x19b8, 0x7030, 0x9c06,\r
++      0x01d0, 0x0066, 0x080c, 0x9102, 0x190c, 0x0d65, 0x080c, 0x9110,\r
++      0x006e, 0x080c, 0xbf1b, 0x6007, 0x0085, 0x6003, 0x000b, 0x6023,\r
++      0x0002, 0x2001, 0x1958, 0x2004, 0x601a, 0x2009, 0x8020, 0x080c,\r
++      0x84b3, 0x00ee, 0x0005, 0x601b, 0x0001, 0x0cd8, 0x0096, 0x6014,\r
++      0x2048, 0xa880, 0xc0b5, 0xa882, 0x009e, 0x080c, 0xbf1b, 0x6007,\r
++      0x0085, 0x6003, 0x000b, 0x6023, 0x0002, 0x2009, 0x8020, 0x080c,\r
++      0x84b3, 0x0005, 0x080c, 0x98c8, 0x080c, 0x9a39, 0x080c, 0x98e4,\r
++      0x0c28, 0x0096, 0x601b, 0x0001, 0x6014, 0x2048, 0xa880, 0xc0b5,\r
++      0xa882, 0x009e, 0x0005, 0x080c, 0x5395, 0x01a8, 0x6014, 0x0096,\r
++      0x904d, 0x0180, 0xa864, 0xa867, 0x0103, 0xa87b, 0x0006, 0x9086,\r
++      0x0139, 0x1140, 0xa867, 0x0139, 0xa897, 0x4005, 0xa89b, 0x0004,\r
++      0x080c, 0x6996, 0x009e, 0x0804, 0x9be7, 0x6014, 0x0096, 0x904d,\r
++      0x0508, 0x080c, 0xbf87, 0x01f0, 0x080c, 0x98e4, 0x2001, 0x180f,\r
++      0x2004, 0xd0c4, 0x0110, 0x009e, 0x0005, 0xa884, 0x009e, 0x8003,\r
++      0x800b, 0x810b, 0x9108, 0x611a, 0x2001, 0x0037, 0x2c08, 0x080c,\r
++      0x159e, 0x6000, 0x9086, 0x0004, 0x1120, 0x2009, 0x0048, 0x080c,\r
++      0x9c85, 0x0005, 0x009e, 0x080c, 0x1914, 0x0804, 0xb5be, 0x6000,\r
++      0x908a, 0x0016, 0x1a0c, 0x0d65, 0x000b, 0x0005, 0xb63e, 0xb56a,\r
++      0xb640, 0xb63e, 0xb640, 0xb640, 0xb566, 0xb63e, 0xb560, 0xb560,\r
++      0xb63e, 0xb63e, 0xb63e, 0xb63e, 0xb63e, 0xb63e, 0x080c, 0x0d65,\r
++      0x6010, 0x00b6, 0x2058, 0xb804, 0x9084, 0x00ff, 0x00be, 0x908a,\r
++      0x000c, 0x1a0c, 0x0d65, 0x00b6, 0x0013, 0x00be, 0x0005, 0xb65b,\r
++      0xb728, 0xb65d, 0xb69d, 0xb65d, 0xb69d, 0xb65d, 0xb66b, 0xb65b,\r
++      0xb69d, 0xb65b, 0xb68c, 0x080c, 0x0d65, 0x6004, 0x908e, 0x0016,\r
++      0x05c0, 0x908e, 0x0004, 0x05a8, 0x908e, 0x0002, 0x0590, 0x908e,\r
++      0x0052, 0x0904, 0xb724, 0x6004, 0x080c, 0xba5c, 0x0904, 0xb741,\r
++      0x908e, 0x0004, 0x1110, 0x080c, 0x303b, 0x908e, 0x0021, 0x0904,\r
++      0xb745, 0x908e, 0x0022, 0x0904, 0xb789, 0x908e, 0x003d, 0x0904,\r
++      0xb745, 0x908e, 0x0039, 0x0904, 0xb749, 0x908e, 0x0035, 0x0904,\r
++      0xb749, 0x908e, 0x001e, 0x0178, 0x908e, 0x0001, 0x1140, 0x6010,\r
++      0x2058, 0xb804, 0x9084, 0x00ff, 0x9086, 0x0006, 0x0110, 0x080c,\r
++      0x3006, 0x080c, 0xa58f, 0x0804, 0x9c21, 0x00c6, 0x00d6, 0x6104,\r
++      0x9186, 0x0016, 0x0904, 0xb715, 0x9186, 0x0002, 0x1904, 0xb6ea,\r
++      0x2001, 0x1836, 0x2004, 0xd08c, 0x11c8, 0x080c, 0x70b7, 0x11b0,\r
++      0x080c, 0xbf61, 0x0138, 0x080c, 0x70da, 0x1120, 0x080c, 0x6fc2,\r
++      0x0804, 0xb772, 0x2001, 0x194e, 0x2003, 0x0001, 0x2001, 0x1800,\r
++      0x2003, 0x0001, 0x080c, 0x6fe8, 0x0804, 0xb772, 0x6010, 0x2058,\r
++      0x2001, 0x1836, 0x2004, 0xd0ac, 0x1904, 0xb772, 0xb8a0, 0x9084,\r
++      0xff80, 0x1904, 0xb772, 0xb840, 0x9084, 0x00ff, 0x9005, 0x0190,\r
++      0x8001, 0xb842, 0x6017, 0x0000, 0x6023, 0x0007, 0x601b, 0x0398,\r
++      0x604b, 0x0000, 0x080c, 0x9b91, 0x0128, 0x2b00, 0x6012, 0x6023,\r
++      0x0001, 0x0458, 0x00de, 0x00ce, 0x6004, 0x908e, 0x0002, 0x11a0,\r
++      0x6010, 0x2058, 0xb8a0, 0x9086, 0x007e, 0x1170, 0x2009, 0x1836,\r
++      0x2104, 0xc085, 0x200a, 0x00e6, 0x2071, 0x1800, 0x080c, 0x5c6f,\r
++      0x00ee, 0x080c, 0xa58f, 0x0030, 0x080c, 0xa58f, 0x080c, 0x3006,\r
++      0x080c, 0xbf76, 0x00e6, 0x0126, 0x2091, 0x8000, 0x080c, 0x303b,\r
++      0x012e, 0x00ee, 0x080c, 0x9c21, 0x0005, 0x2001, 0x0002, 0x080c,\r
++      0x61c1, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x84d8, 0x080c,\r
++      0x8936, 0x00de, 0x00ce, 0x0c80, 0x080c, 0x303b, 0x0804, 0xb699,\r
++      0x00c6, 0x00d6, 0x6104, 0x9186, 0x0016, 0x0d38, 0x6010, 0x2058,\r
++      0xb840, 0x9084, 0x00ff, 0x9005, 0x0904, 0xb6ea, 0x8001, 0xb842,\r
++      0x6003, 0x0001, 0x080c, 0x84d8, 0x080c, 0x8936, 0x00de, 0x00ce,\r
++      0x0898, 0x080c, 0xa58f, 0x0804, 0xb69b, 0x080c, 0xa5cb, 0x0804,\r
++      0xb69b, 0x00d6, 0x2c68, 0x6104, 0x080c, 0xbed9, 0x00de, 0x0118,\r
++      0x080c, 0x9be7, 0x00f0, 0x6004, 0x8007, 0x6134, 0x918c, 0x00ff,\r
++      0x9105, 0x6036, 0x6007, 0x0085, 0x6003, 0x000b, 0x6023, 0x0002,\r
++      0x603c, 0x600a, 0x2001, 0x1958, 0x2004, 0x601a, 0x602c, 0x2c08,\r
++      0x2060, 0x6024, 0xc0b5, 0x6026, 0x2160, 0x2009, 0x8020, 0x080c,\r
++      0x84d1, 0x0005, 0x00de, 0x00ce, 0x080c, 0xa58f, 0x080c, 0x3006,\r
++      0x00e6, 0x0126, 0x2091, 0x8000, 0x080c, 0x303b, 0x6017, 0x0000,\r
++      0x6023, 0x0007, 0x601b, 0x0398, 0x604b, 0x0000, 0x012e, 0x00ee,\r
++      0x0005, 0x080c, 0xa022, 0x1904, 0xb741, 0x0005, 0x6000, 0x908a,\r
++      0x0016, 0x1a0c, 0x0d65, 0x0096, 0x00d6, 0x001b, 0x00de, 0x009e,\r
++      0x0005, 0xb7a9, 0xb7a9, 0xb7a9, 0xb7a9, 0xb7a9, 0xb7a9, 0xb7a9,\r
++      0xb7a9, 0xb7a9, 0xb565, 0xb7a9, 0xb56a, 0xb7ab, 0xb56a, 0xb7b8,\r
++      0xb7a9, 0x080c, 0x0d65, 0x6004, 0x9086, 0x008b, 0x0148, 0x6007,\r
++      0x008b, 0x6003, 0x000d, 0x2009, 0x8020, 0x080c, 0x84d1, 0x0005,\r
++      0x080c, 0xbf55, 0x0118, 0x080c, 0xbf68, 0x0010, 0x080c, 0xbf76,\r
++      0x080c, 0xba36, 0x080c, 0xb847, 0x0570, 0x080c, 0x3006, 0x080c,\r
++      0xb847, 0x0168, 0x6014, 0x2048, 0xa867, 0x0103, 0xa87b, 0x0006,\r
++      0xa877, 0x0000, 0xa880, 0xc0ed, 0xa882, 0x080c, 0x6996, 0x2c68,\r
++      0x080c, 0x9b91, 0x0150, 0x6810, 0x6012, 0x080c, 0xbcdb, 0x00c6,\r
++      0x2d60, 0x080c, 0x9c21, 0x00ce, 0x0008, 0x2d60, 0x6017, 0x0000,\r
++      0x6023, 0x0001, 0x6007, 0x0001, 0x6003, 0x0001, 0x080c, 0x84d8,\r
++      0x080c, 0x8936, 0x00c8, 0x080c, 0xbf55, 0x0138, 0x6034, 0x9086,\r
++      0x4000, 0x1118, 0x080c, 0x3006, 0x08d0, 0x6034, 0x908c, 0xff00,\r
++      0x810f, 0x9186, 0x0039, 0x0118, 0x9186, 0x0035, 0x1118, 0x080c,\r
++      0x3006, 0x0868, 0x080c, 0x9c21, 0x0005, 0x6000, 0x908a, 0x0016,\r
++      0x1a0c, 0x0d65, 0x0002, 0xb823, 0xb823, 0xb825, 0xb825, 0xb825,\r
++      0xb823, 0xb823, 0x9c21, 0xb823, 0xb823, 0xb823, 0xb823, 0xb823,\r
++      0xb823, 0xb823, 0xb823, 0x080c, 0x0d65, 0x080c, 0x98c8, 0x080c,\r
++      0x9a39, 0x080c, 0x98e4, 0x6114, 0x0096, 0x2148, 0xa87b, 0x0006,\r
++      0x080c, 0x6996, 0x009e, 0x0804, 0x9be7, 0x9284, 0x0003, 0x1158,\r
++      0x9282, 0x1ddc, 0x0240, 0x2001, 0x1819, 0x2004, 0x9202, 0x1218,\r
++      0x9085, 0x0001, 0x0005, 0x9006, 0x0ce8, 0x0096, 0x0028, 0x0096,\r
++      0x0006, 0x6014, 0x2048, 0x000e, 0x0006, 0x9984, 0xf000, 0x9086,\r
++      0xf000, 0x0110, 0x080c, 0x10cd, 0x000e, 0x009e, 0x0005, 0x00e6,\r
++      0x00c6, 0x0036, 0x0006, 0x0126, 0x2091, 0x8000, 0x2061, 0x1ddc,\r
++      0x2071, 0x1800, 0x7350, 0x7070, 0x9302, 0x1640, 0x6020, 0x9206,\r
++      0x11f8, 0x080c, 0xbf61, 0x0180, 0x9286, 0x0001, 0x1168, 0x6004,\r
++      0x9086, 0x0004, 0x1148, 0x080c, 0x3006, 0x080c, 0xbf76, 0x00c6,\r
++      0x080c, 0x9c21, 0x00ce, 0x0060, 0x080c, 0xbc4d, 0x0148, 0x080c,\r
++      0xba5c, 0x1110, 0x080c, 0xa58f, 0x00c6, 0x080c, 0x9be7, 0x00ce,\r
++      0x9ce0, 0x001c, 0x7064, 0x9c02, 0x1208, 0x08a0, 0x012e, 0x000e,\r
++      0x003e, 0x00ce, 0x00ee, 0x0005, 0x00e6, 0x00c6, 0x0016, 0x9188,\r
++      0x1000, 0x210c, 0x81ff, 0x0128, 0x2061, 0x1b02, 0x6112, 0x080c,\r
++      0x3006, 0x9006, 0x0010, 0x9085, 0x0001, 0x001e, 0x00ce, 0x00ee,\r
++      0x0005, 0x00c6, 0x0126, 0x2091, 0x8000, 0x080c, 0x9b91, 0x01b0,\r
++      0x665e, 0x2b00, 0x6012, 0x080c, 0x5395, 0x0118, 0x080c, 0xb978,\r
++      0x0168, 0x080c, 0xbcdb, 0x6023, 0x0003, 0x2009, 0x004b, 0x080c,\r
++      0x9c85, 0x9085, 0x0001, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8,\r
++      0x00c6, 0x0126, 0x2091, 0x8000, 0xbaa0, 0x080c, 0x9c58, 0x0580,\r
++      0x605f, 0x0000, 0x2b00, 0x6012, 0x080c, 0xbcdb, 0x6023, 0x0003,\r
++      0x0016, 0x080c, 0x98c8, 0x080c, 0x863b, 0x0076, 0x903e, 0x080c,\r
++      0x852a, 0x2c08, 0x080c, 0xcfc8, 0x007e, 0x080c, 0x98e4, 0x001e,\r
++      0xd184, 0x0128, 0x080c, 0x9be7, 0x9085, 0x0001, 0x0070, 0x080c,\r
++      0x5395, 0x0128, 0xd18c, 0x1170, 0x080c, 0xb978, 0x0148, 0x2009,\r
++      0x004c, 0x080c, 0x9c85, 0x9085, 0x0001, 0x012e, 0x00ce, 0x0005,\r
++      0x9006, 0x0cd8, 0x2900, 0x6016, 0x0c90, 0x2009, 0x004d, 0x0010,\r
++      0x2009, 0x004e, 0x00f6, 0x00c6, 0x0046, 0x0016, 0x080c, 0x9b91,\r
++      0x2c78, 0x0590, 0x7e5e, 0x2b00, 0x7812, 0x7823, 0x0003, 0x2021,\r
++      0x0005, 0x080c, 0xb98a, 0x9186, 0x004d, 0x0118, 0x9186, 0x004e,\r
++      0x0148, 0x2001, 0x1951, 0x200c, 0xd1fc, 0x0168, 0x2f60, 0x080c,\r
++      0x9be7, 0x00d0, 0x2001, 0x1950, 0x200c, 0xd1fc, 0x0120, 0x2f60,\r
++      0x080c, 0x9be7, 0x0088, 0x2f60, 0x080c, 0x5395, 0x0138, 0xd18c,\r
++      0x1118, 0x04f1, 0x0148, 0x0010, 0x2900, 0x7816, 0x001e, 0x0016,\r
++      0x080c, 0x9c85, 0x9085, 0x0001, 0x001e, 0x004e, 0x00ce, 0x00fe,\r
++      0x0005, 0x00f6, 0x00c6, 0x0046, 0x080c, 0x9b91, 0x2c78, 0x0508,\r
++      0x7e5e, 0x2b00, 0x7812, 0x7823, 0x0003, 0x0096, 0x2021, 0x0004,\r
++      0x0489, 0x009e, 0x2001, 0x194f, 0x200c, 0xd1fc, 0x0120, 0x2f60,\r
++      0x080c, 0x9be7, 0x0060, 0x2f60, 0x080c, 0x5395, 0x0120, 0xd18c,\r
++      0x1160, 0x0071, 0x0130, 0x2009, 0x0052, 0x080c, 0x9c85, 0x9085,\r
++      0x0001, 0x004e, 0x00ce, 0x00fe, 0x0005, 0x2900, 0x7816, 0x0c98,\r
++      0x00c6, 0x080c, 0x4878, 0x00ce, 0x1120, 0x080c, 0x9be7, 0x9006,\r
++      0x0005, 0xa867, 0x0000, 0xa86b, 0x8000, 0x2900, 0x6016, 0x9085,\r
++      0x0001, 0x0005, 0x0096, 0x0076, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0x98c8, 0x080c, 0x644f, 0x0158, 0x2001, 0xb991, 0x0006, 0x900e,\r
++      0x2400, 0x080c, 0x6bb3, 0x080c, 0x6996, 0x000e, 0x0807, 0x2418,\r
++      0x080c, 0x883a, 0xbaa0, 0x0086, 0x2041, 0x0001, 0x2039, 0x0001,\r
++      0x2608, 0x080c, 0x8655, 0x008e, 0x080c, 0x852a, 0x2f08, 0x2648,\r
++      0x080c, 0xcfc8, 0xb93c, 0x81ff, 0x090c, 0x872c, 0x080c, 0x98e4,\r
++      0x012e, 0x007e, 0x009e, 0x0005, 0x00c6, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x9b91, 0x0190, 0x660a, 0x2b08, 0x6112, 0x080c, 0xbcdb,\r
++      0x6023, 0x0001, 0x2900, 0x6016, 0x2009, 0x001f, 0x080c, 0x9c85,\r
++      0x9085, 0x0001, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8, 0x00c6,\r
++      0x0126, 0x2091, 0x8000, 0x080c, 0x9c58, 0x01b8, 0x660a, 0x2b08,\r
++      0x6112, 0x080c, 0xbcdb, 0x6023, 0x0008, 0x2900, 0x6016, 0x00f6,\r
++      0x2c78, 0x080c, 0x164f, 0x00fe, 0x2009, 0x0021, 0x080c, 0x9c85,\r
++      0x9085, 0x0001, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8, 0x2009,\r
++      0x003d, 0x00c6, 0x0126, 0x0016, 0x2091, 0x8000, 0x080c, 0x9b91,\r
++      0x0198, 0x660a, 0x2b08, 0x6112, 0x080c, 0xbcdb, 0x6023, 0x0001,\r
++      0x2900, 0x6016, 0x001e, 0x0016, 0x080c, 0x9c85, 0x9085, 0x0001,\r
++      0x001e, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd0, 0x00c6, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0x9c58, 0x0188, 0x2b08, 0x6112, 0x080c,\r
++      0xbcdb, 0x6023, 0x0001, 0x2900, 0x6016, 0x2009, 0x0000, 0x080c,\r
++      0x9c85, 0x9085, 0x0001, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8,\r
++      0x2009, 0x0044, 0x0830, 0x2009, 0x0049, 0x0818, 0x0026, 0x00b6,\r
++      0x6210, 0x2258, 0xba3c, 0x82ff, 0x0118, 0x8211, 0xba3e, 0x1140,\r
++      0xb8c0, 0x9005, 0x0128, 0xb888, 0x9005, 0x1110, 0xb88b, 0x0001,\r
++      0x00be, 0x002e, 0x0005, 0x0006, 0x0016, 0x6004, 0x908e, 0x0002,\r
++      0x0140, 0x908e, 0x0003, 0x0128, 0x908e, 0x0004, 0x0110, 0x9085,\r
++      0x0001, 0x001e, 0x000e, 0x0005, 0x0006, 0x0096, 0x6020, 0x9086,\r
++      0x0004, 0x0190, 0x6014, 0x904d, 0x080c, 0xb847, 0x0168, 0xa864,\r
++      0x9086, 0x0139, 0x0158, 0x6020, 0x9086, 0x0003, 0x0128, 0xa868,\r
++      0xd0fc, 0x0110, 0x9006, 0x0010, 0x9085, 0x0001, 0x009e, 0x000e,\r
++      0x0005, 0x00c6, 0x0126, 0x2091, 0x8000, 0x080c, 0x9c58, 0x0198,\r
++      0x2b08, 0x6112, 0x080c, 0xbcdb, 0x6023, 0x0001, 0x2900, 0x6016,\r
++      0x080c, 0x3006, 0x2009, 0x0028, 0x080c, 0x9c85, 0x9085, 0x0001,\r
++      0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8, 0x9186, 0x0015, 0x11a8,\r
++      0x2011, 0x1823, 0x2204, 0x9086, 0x0074, 0x1178, 0x00b6, 0x080c,\r
++      0xa818, 0x00be, 0x080c, 0xaa57, 0x6003, 0x0001, 0x6007, 0x0029,\r
++      0x080c, 0x84d8, 0x080c, 0x8936, 0x0078, 0x6014, 0x0096, 0x2048,\r
++      0xa868, 0x009e, 0xd0fc, 0x0148, 0x2001, 0x0001, 0x080c, 0xbe9a,\r
++      0x080c, 0xa58f, 0x080c, 0x9be7, 0x0005, 0x0096, 0x6014, 0x904d,\r
++      0x090c, 0x0d65, 0xa87b, 0x0030, 0xa883, 0x0000, 0xa897, 0x4005,\r
++      0xa89b, 0x0004, 0xa867, 0x0139, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0x6996, 0x012e, 0x009e, 0x080c, 0x9be7, 0x0c30, 0x0096, 0x9186,\r
++      0x0016, 0x1128, 0x2001, 0x0004, 0x080c, 0x61c1, 0x00e8, 0x9186,\r
++      0x0015, 0x1510, 0x2011, 0x1823, 0x2204, 0x9086, 0x0014, 0x11e0,\r
++      0x6010, 0x00b6, 0x2058, 0x080c, 0x630b, 0x00be, 0x080c, 0xab28,\r
++      0x1198, 0x6010, 0x00b6, 0x2058, 0xb890, 0x00be, 0x9005, 0x0160,\r
++      0x2001, 0x0006, 0x080c, 0x61c1, 0x6014, 0x2048, 0xa868, 0xd0fc,\r
++      0x0170, 0x080c, 0x9ff6, 0x0048, 0x6014, 0x2048, 0xa868, 0xd0fc,\r
++      0x0528, 0x080c, 0xa58f, 0x080c, 0x9be7, 0x009e, 0x0005, 0x6014,\r
++      0x6310, 0x2358, 0x904d, 0x090c, 0x0d65, 0xa87b, 0x0000, 0xa883,\r
++      0x0000, 0xa897, 0x4000, 0x900e, 0x080c, 0x655f, 0x1108, 0xc185,\r
++      0xb800, 0xd0bc, 0x0108, 0xc18d, 0xa99a, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x6996, 0x012e, 0x080c, 0x9be7, 0x08f8, 0x6014, 0x904d,\r
++      0x090c, 0x0d65, 0xa87b, 0x0030, 0xa883, 0x0000, 0xa897, 0x4005,\r
++      0xa89b, 0x0004, 0xa867, 0x0139, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0x6996, 0x012e, 0x080c, 0x9be7, 0x0840, 0xa878, 0x9086, 0x0005,\r
++      0x1108, 0x0009, 0x0005, 0xa880, 0xc0ad, 0xa882, 0x0005, 0x604b,\r
++      0x0000, 0x6017, 0x0000, 0x6003, 0x0001, 0x6007, 0x0050, 0x2009,\r
++      0x8023, 0x080c, 0x84d1, 0x0005, 0x00c6, 0x6010, 0x00b6, 0x2058,\r
++      0xb800, 0x00be, 0xd0bc, 0x0130, 0x0066, 0x6020, 0x9084, 0x000f,\r
++      0x001b, 0x006e, 0x00ce, 0x0005, 0xb565, 0xbb7e, 0xbb7e, 0xbb81,\r
++      0xd2c2, 0xd2dd, 0xd2e0, 0xb565, 0xb565, 0xb565, 0xb565, 0xb565,\r
++      0xb565, 0xb565, 0xb565, 0xb565, 0x080c, 0x0d65, 0xa001, 0xa001,\r
++      0x0005, 0x0096, 0x6014, 0x904d, 0x0118, 0xa87c, 0xd0e4, 0x1110,\r
++      0x009e, 0x0010, 0x009e, 0x0005, 0x6010, 0x00b6, 0x2058, 0xb800,\r
++      0x00be, 0xd0bc, 0x0550, 0x2001, 0x1833, 0x2004, 0x9005, 0x1540,\r
++      0x00f6, 0x2c78, 0x080c, 0x9b91, 0x0508, 0x7810, 0x6012, 0x080c,\r
++      0xbcdb, 0x7820, 0x9086, 0x0003, 0x0128, 0x7808, 0x603a, 0x2f00,\r
++      0x603e, 0x0020, 0x7808, 0x603e, 0x2f00, 0x603a, 0x602e, 0x6023,\r
++      0x0001, 0x6007, 0x0035, 0x6003, 0x0001, 0x795c, 0x615e, 0x2009,\r
++      0x8020, 0x080c, 0x84d1, 0x2f60, 0x00fe, 0x0005, 0x2f60, 0x00fe,\r
++      0x2001, 0x1959, 0x2004, 0x604a, 0x0005, 0x0016, 0x0096, 0x6814,\r
++      0x2048, 0x681c, 0xd0fc, 0xc0fc, 0x681e, 0xa87c, 0x1108, 0xd0e4,\r
++      0x0180, 0xc0e4, 0xa87e, 0xa877, 0x0000, 0xa893, 0x0000, 0xa88f,\r
++      0x0000, 0xd0cc, 0x0130, 0xc0cc, 0xa87e, 0xa878, 0x2048, 0x080c,\r
++      0x0fd4, 0x6830, 0x6036, 0x908e, 0x0001, 0x0148, 0x6803, 0x0002,\r
++      0x9086, 0x0005, 0x0170, 0x9006, 0x602e, 0x6032, 0x00d0, 0x681c,\r
++      0xc085, 0x681e, 0x6803, 0x0004, 0x6824, 0xc0f4, 0x9085, 0x0c00,\r
++      0x6826, 0x6814, 0x2048, 0xa8ac, 0x6938, 0x9102, 0xa8b0, 0x693c,\r
++      0x9103, 0x1e48, 0x683c, 0x602e, 0x6838, 0x9084, 0xfffc, 0x683a,\r
++      0x6032, 0x2d00, 0x603a, 0x6808, 0x603e, 0x6910, 0x6112, 0x695c,\r
++      0x615e, 0x6023, 0x0001, 0x6007, 0x0039, 0x6003, 0x0001, 0x2009,\r
++      0x8020, 0x080c, 0x84d1, 0x009e, 0x001e, 0x0005, 0x6024, 0xd0d4,\r
++      0x0510, 0xd0f4, 0x11f8, 0x6038, 0x940a, 0x603c, 0x9303, 0x0230,\r
++      0x9105, 0x0120, 0x6024, 0xc0d4, 0xc0f5, 0x0098, 0x643a, 0x633e,\r
++      0xac3e, 0xab42, 0x0046, 0x0036, 0x2400, 0xacac, 0x9402, 0xa836,\r
++      0x2300, 0xabb0, 0x9303, 0xa83a, 0x003e, 0x004e, 0x6024, 0xc0d4,\r
++      0x0000, 0x6026, 0x0005, 0xd0f4, 0x1138, 0xa83c, 0x603a, 0xa840,\r
++      0x603e, 0x6024, 0xc0f5, 0x6026, 0x0005, 0x0006, 0x0016, 0x6004,\r
++      0x908e, 0x0034, 0x01b8, 0x908e, 0x0035, 0x01a0, 0x908e, 0x0036,\r
++      0x0188, 0x908e, 0x0037, 0x0170, 0x908e, 0x0038, 0x0158, 0x908e,\r
++      0x0039, 0x0140, 0x908e, 0x003a, 0x0128, 0x908e, 0x003b, 0x0110,\r
++      0x9085, 0x0001, 0x001e, 0x000e, 0x0005, 0x0006, 0x0016, 0x0026,\r
++      0x0036, 0x00e6, 0x2001, 0x1953, 0x200c, 0x8000, 0x2014, 0x2001,\r
++      0x0032, 0x080c, 0x8419, 0x2001, 0x1957, 0x82ff, 0x1110, 0x2011,\r
++      0x0014, 0x2202, 0x2001, 0x1955, 0x200c, 0x8000, 0x2014, 0x2071,\r
++      0x193d, 0x711a, 0x721e, 0x2001, 0x0064, 0x080c, 0x8419, 0x2001,\r
++      0x1958, 0x82ff, 0x1110, 0x2011, 0x0014, 0x2202, 0x2001, 0x1959,\r
++      0x9288, 0x000a, 0x2102, 0x2001, 0x0017, 0x080c, 0x98b9, 0x2001,\r
++      0x1a59, 0x2102, 0x2001, 0x0032, 0x080c, 0x159e, 0x080c, 0x6648,\r
++      0x00ee, 0x003e, 0x002e, 0x001e, 0x000e, 0x0005, 0x0006, 0x0016,\r
++      0x00e6, 0x2001, 0x1957, 0x2003, 0x0028, 0x2001, 0x1958, 0x2003,\r
++      0x0014, 0x2071, 0x193d, 0x701b, 0x0000, 0x701f, 0x07d0, 0x2001,\r
++      0x1959, 0x2009, 0x001e, 0x2102, 0x2001, 0x0017, 0x080c, 0x98b9,\r
++      0x2001, 0x1a59, 0x2102, 0x2001, 0x0032, 0x080c, 0x159e, 0x00ee,\r
++      0x001e, 0x000e, 0x0005, 0x0096, 0x6060, 0x904d, 0x0110, 0x080c,\r
++      0x1054, 0x009e, 0x0005, 0x0005, 0x00c6, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x9b91, 0x0180, 0x2b08, 0x6112, 0x0ca9, 0x6023, 0x0001,\r
++      0x2900, 0x6016, 0x2009, 0x0033, 0x080c, 0x9c85, 0x9085, 0x0001,\r
++      0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8, 0x0096, 0x00e6, 0x00f6,\r
++      0x2071, 0x1800, 0x9186, 0x0015, 0x1500, 0x708c, 0x9086, 0x0018,\r
++      0x11e0, 0x6014, 0x2048, 0xaa3c, 0xd2e4, 0x1160, 0x2c78, 0x080c,\r
++      0x89f5, 0x01d8, 0x7078, 0xaa50, 0x9206, 0x1160, 0x707c, 0xaa54,\r
++      0x9206, 0x1140, 0x6210, 0x00b6, 0x2258, 0xbaa0, 0x00be, 0x900e,\r
++      0x080c, 0x305b, 0x080c, 0x9ff6, 0x0020, 0x080c, 0xa58f, 0x080c,\r
++      0x9be7, 0x00fe, 0x00ee, 0x009e, 0x0005, 0x705c, 0xaa54, 0x9206,\r
++      0x0d48, 0x0c80, 0x00c6, 0x0126, 0x2091, 0x8000, 0x080c, 0x9b91,\r
++      0x0188, 0x2b08, 0x6112, 0x080c, 0xbcdb, 0x6023, 0x0001, 0x2900,\r
++      0x6016, 0x2009, 0x004d, 0x080c, 0x9c85, 0x9085, 0x0001, 0x012e,\r
++      0x00ce, 0x0005, 0x9006, 0x0cd8, 0x00c6, 0x0126, 0x2091, 0x8000,\r
++      0x0016, 0x080c, 0x9b91, 0x0180, 0x2b08, 0x6112, 0x080c, 0xbcdb,\r
++      0x6023, 0x0001, 0x2900, 0x6016, 0x001e, 0x080c, 0x9c85, 0x9085,\r
++      0x0001, 0x012e, 0x00ce, 0x0005, 0x001e, 0x9006, 0x0cd0, 0x0016,\r
++      0x0026, 0x0036, 0x0046, 0x0056, 0x0066, 0x0096, 0x00e6, 0x00f6,\r
++      0x2071, 0x1800, 0x9186, 0x0015, 0x1568, 0x718c, 0x6014, 0x2048,\r
++      0xa814, 0x8003, 0x9106, 0x1530, 0x20e1, 0x0000, 0x2001, 0x1971,\r
++      0x2003, 0x0000, 0x6014, 0x2048, 0xa830, 0x20a8, 0x8906, 0x8006,\r
++      0x8007, 0x9094, 0x003f, 0x22e8, 0x9084, 0xffc0, 0x9080, 0x001b,\r
++      0x20a0, 0x2001, 0x1971, 0x0016, 0x200c, 0x080c, 0xc545, 0x001e,\r
++      0xa804, 0x9005, 0x0110, 0x2048, 0x0c38, 0x6014, 0x2048, 0xa867,\r
++      0x0103, 0x0010, 0x080c, 0xa58f, 0x080c, 0x9be7, 0x00fe, 0x00ee,\r
++      0x009e, 0x006e, 0x005e, 0x004e, 0x003e, 0x002e, 0x001e, 0x0005,\r
++      0x0096, 0x00e6, 0x00f6, 0x2071, 0x1800, 0x9186, 0x0015, 0x11b8,\r
++      0x708c, 0x9086, 0x0004, 0x1198, 0x6014, 0x2048, 0x2c78, 0x080c,\r
++      0x89f5, 0x01a8, 0x7078, 0xaa74, 0x9206, 0x1130, 0x707c, 0xaa78,\r
++      0x9206, 0x1110, 0x080c, 0x3006, 0x080c, 0x9ff6, 0x0020, 0x080c,\r
++      0xa58f, 0x080c, 0x9be7, 0x00fe, 0x00ee, 0x009e, 0x0005, 0x705c,\r
++      0xaa78, 0x9206, 0x0d78, 0x0c80, 0x0096, 0x00e6, 0x00f6, 0x2071,\r
++      0x1800, 0x9186, 0x0015, 0x1550, 0x708c, 0x9086, 0x0004, 0x1530,\r
++      0x6014, 0x2048, 0x2c78, 0x080c, 0x89f5, 0x05f0, 0x7078, 0xaacc,\r
++      0x9206, 0x1180, 0x707c, 0xaad0, 0x9206, 0x1160, 0x080c, 0x3006,\r
++      0x0016, 0xa998, 0xaab0, 0x9284, 0x1000, 0xc0fd, 0x080c, 0x5345,\r
++      0x001e, 0x0010, 0x080c, 0x512e, 0x080c, 0xb847, 0x0508, 0xa87b,\r
++      0x0000, 0xa883, 0x0000, 0xa897, 0x4000, 0x0080, 0x080c, 0xb847,\r
++      0x01b8, 0x6014, 0x2048, 0x080c, 0x512e, 0x1d70, 0xa87b, 0x0030,\r
++      0xa883, 0x0000, 0xa897, 0x4005, 0xa89b, 0x0004, 0x0126, 0x2091,\r
++      0x8000, 0xa867, 0x0139, 0x080c, 0x6996, 0x012e, 0x080c, 0x9be7,\r
++      0x00fe, 0x00ee, 0x009e, 0x0005, 0x705c, 0xaad0, 0x9206, 0x0930,\r
++      0x0888, 0x0016, 0x0026, 0xa87c, 0xd0ac, 0x0178, 0xa938, 0xaa34,\r
++      0x2100, 0x9205, 0x0150, 0xa890, 0x9106, 0x1118, 0xa88c, 0x9206,\r
++      0x0120, 0xa992, 0xaa8e, 0x9085, 0x0001, 0x002e, 0x001e, 0x0005,\r
++      0x00b6, 0x00d6, 0x0036, 0x080c, 0xb847, 0x0904, 0xbe96, 0x0096,\r
++      0x6314, 0x2348, 0xa87a, 0xa982, 0x929e, 0x4000, 0x1580, 0x6310,\r
++      0x00c6, 0x2358, 0x2009, 0x0000, 0xa868, 0xd0f4, 0x1140, 0x080c,\r
++      0x655f, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d, 0xaa96,\r
++      0xa99a, 0x20a9, 0x0004, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0031,\r
++      0x20a0, 0xb8b4, 0x20e0, 0xb8b8, 0x9080, 0x0006, 0x2098, 0x080c,\r
++      0x0f9f, 0x20a9, 0x0004, 0xa85c, 0x9080, 0x0035, 0x20a0, 0xb8b8,\r
++      0x9080, 0x000a, 0x2098, 0x080c, 0x0f9f, 0x00ce, 0x0090, 0xaa96,\r
++      0x3918, 0x9398, 0x0007, 0x231c, 0x6004, 0x9086, 0x0016, 0x0110,\r
++      0xa89b, 0x0004, 0xaba2, 0x6310, 0x2358, 0xb804, 0x9084, 0x00ff,\r
++      0xa89e, 0x080c, 0x698a, 0x6017, 0x0000, 0x009e, 0x003e, 0x00de,\r
++      0x00be, 0x0005, 0x0026, 0x0036, 0x0046, 0x00b6, 0x0096, 0x00f6,\r
++      0x6214, 0x2248, 0x6210, 0x2258, 0x2079, 0x0260, 0x9096, 0x0000,\r
++      0x11a0, 0xb814, 0x9084, 0x00ff, 0x900e, 0x080c, 0x2424, 0x2118,\r
++      0x831f, 0x939c, 0xff00, 0x7838, 0x9084, 0x00ff, 0x931d, 0x7c3c,\r
++      0x2011, 0x8018, 0x080c, 0x48d8, 0x00a8, 0x9096, 0x0001, 0x1148,\r
++      0x89ff, 0x0180, 0xa89b, 0x000d, 0x7838, 0xa8a6, 0x783c, 0xa8aa,\r
++      0x0048, 0x9096, 0x0002, 0x1130, 0xa89b, 0x000d, 0x7838, 0xa8a6,\r
++      0x783c, 0xa8aa, 0x00fe, 0x009e, 0x00be, 0x004e, 0x003e, 0x002e,\r
++      0x0005, 0x00c6, 0x0026, 0x0016, 0x9186, 0x0035, 0x0110, 0x6a38,\r
++      0x0008, 0x6a2c, 0x080c, 0xb835, 0x01f0, 0x2260, 0x6120, 0x9186,\r
++      0x0003, 0x0118, 0x9186, 0x0006, 0x1190, 0x6838, 0x9206, 0x0140,\r
++      0x683c, 0x9206, 0x1160, 0x6108, 0x6838, 0x9106, 0x1140, 0x0020,\r
++      0x6008, 0x693c, 0x9106, 0x1118, 0x6010, 0x6910, 0x9106, 0x001e,\r
++      0x002e, 0x00ce, 0x0005, 0x9085, 0x0001, 0x0cc8, 0xa974, 0xd1cc,\r
++      0x0188, 0x918c, 0x00ff, 0x918e, 0x0002, 0x1160, 0xa9a8, 0x918c,\r
++      0x0f00, 0x810f, 0x918e, 0x0001, 0x1128, 0xa834, 0xa938, 0x9115,\r
++      0x190c, 0xaec2, 0x0005, 0x0036, 0x2019, 0x0001, 0x0010, 0x0036,\r
++      0x901e, 0x0499, 0x01e0, 0x080c, 0xb847, 0x01c8, 0x080c, 0xba36,\r
++      0x6037, 0x4000, 0x6014, 0x6017, 0x0000, 0x0096, 0x2048, 0xa87c,\r
++      0x080c, 0xba5c, 0x1118, 0x080c, 0xa58f, 0x0040, 0xa867, 0x0103,\r
++      0xa877, 0x0000, 0x83ff, 0x1129, 0x080c, 0x6996, 0x009e, 0x003e,\r
++      0x0005, 0xa880, 0xd0b4, 0x0128, 0xa87b, 0x0006, 0xc0ec, 0xa882,\r
++      0x0048, 0xd0bc, 0x0118, 0xa87b, 0x0002, 0x0020, 0xa87b, 0x0005,\r
++      0x080c, 0xbb4b, 0xa877, 0x0000, 0x0005, 0x2001, 0x1810, 0x2004,\r
++      0xd0ec, 0x0005, 0x0006, 0x2001, 0x1810, 0x2004, 0xd0f4, 0x000e,\r
++      0x0005, 0x0006, 0x2001, 0x1810, 0x2004, 0xd0e4, 0x000e, 0x0005,\r
++      0x0036, 0x0046, 0x6010, 0x00b6, 0x2058, 0xbba0, 0x00be, 0x2021,\r
++      0x0007, 0x080c, 0x4a75, 0x004e, 0x003e, 0x0005, 0x0c51, 0x1d81,\r
++      0x0005, 0x2001, 0x1957, 0x2004, 0x601a, 0x0005, 0x2001, 0x1959,\r
++      0x2004, 0x604a, 0x0005, 0x080c, 0x9be7, 0x0804, 0x8936, 0x611c,\r
++      0xd1fc, 0xa97c, 0x1108, 0xd1e4, 0x0005, 0x601c, 0xd0fc, 0xa87c,\r
++      0x1108, 0xd0e4, 0x0005, 0x601c, 0xd0fc, 0xc0fc, 0x601e, 0xa87c,\r
++      0x1108, 0xd0e4, 0x0005, 0x6044, 0xd0fc, 0x0160, 0xd0dc, 0x1128,\r
++      0x908c, 0x000f, 0x9186, 0x0005, 0x1118, 0x6003, 0x0003, 0x0010,\r
++      0x6003, 0x0001, 0x0005, 0x00b6, 0x0066, 0x6000, 0x90b2, 0x0016,\r
++      0x1a0c, 0x0d65, 0x001b, 0x006e, 0x00be, 0x0005, 0xbfc6, 0xc6a0,\r
++      0xc7ef, 0xbfc6, 0xbfc6, 0xbfc6, 0xbfc6, 0xbfc6, 0xbffd, 0xc871,\r
++      0xbfc6, 0xbfc6, 0xbfc6, 0xbfc6, 0xbfc6, 0xbfc6, 0x080c, 0x0d65,\r
++      0x0066, 0x6000, 0x90b2, 0x0016, 0x1a0c, 0x0d65, 0x0013, 0x006e,\r
++      0x0005, 0xbfe1, 0xcd88, 0xbfe1, 0xbfe1, 0xbfe1, 0xbfe1, 0xbfe1,\r
++      0xbfe1, 0xcd37, 0xcdda, 0xbfe1, 0xd3fd, 0xd431, 0xd3fd, 0xd431,\r
++      0xbfe1, 0x080c, 0x0d65, 0x6000, 0x9082, 0x0016, 0x1a0c, 0x0d65,\r
++      0x6000, 0x000a, 0x0005, 0xbffb, 0xca4d, 0xcb16, 0xcb38, 0xcbb3,\r
++      0xbffb, 0xccad, 0xcc3b, 0xc87b, 0xcd0f, 0xcd24, 0xbffb, 0xbffb,\r
++      0xbffb, 0xbffb, 0xbffb, 0x080c, 0x0d65, 0x91b2, 0x0053, 0x1a0c,\r
++      0x0d65, 0x2100, 0x91b2, 0x0040, 0x1a04, 0xc443, 0x0002, 0xc047,\r
++      0xc234, 0xc047, 0xc047, 0xc047, 0xc23d, 0xc047, 0xc047, 0xc047,\r
++      0xc047, 0xc047, 0xc047, 0xc047, 0xc047, 0xc047, 0xc047, 0xc047,\r
++      0xc047, 0xc047, 0xc047, 0xc047, 0xc047, 0xc047, 0xc049, 0xc0b0,\r
++      0xc0bf, 0xc123, 0xc14e, 0xc1c6, 0xc21f, 0xc047, 0xc047, 0xc240,\r
++      0xc047, 0xc047, 0xc255, 0xc262, 0xc047, 0xc047, 0xc047, 0xc047,\r
++      0xc047, 0xc2e5, 0xc047, 0xc047, 0xc2f9, 0xc047, 0xc047, 0xc2b4,\r
++      0xc047, 0xc047, 0xc047, 0xc311, 0xc047, 0xc047, 0xc047, 0xc38e,\r
++      0xc047, 0xc047, 0xc047, 0xc047, 0xc047, 0xc047, 0xc40b, 0x080c,\r
++      0x0d65, 0x080c, 0x6625, 0x1150, 0x2001, 0x1836, 0x2004, 0xd0cc,\r
++      0x1128, 0x9084, 0x0009, 0x9086, 0x0008, 0x1140, 0x6007, 0x0009,\r
++      0x602f, 0x0009, 0x6017, 0x0000, 0x0804, 0xc22d, 0x080c, 0x660e,\r
++      0x00e6, 0x00c6, 0x0036, 0x0026, 0x0016, 0x6210, 0x2258, 0xbaa0,\r
++      0x0026, 0x2019, 0x0029, 0x080c, 0x98c8, 0x080c, 0x863b, 0x0076,\r
++      0x903e, 0x080c, 0x852a, 0x2c08, 0x080c, 0xcfc8, 0x007e, 0x001e,\r
++      0x080c, 0x98e4, 0x001e, 0x002e, 0x003e, 0x00ce, 0x00ee, 0x6610,\r
++      0x2658, 0x080c, 0x627f, 0xbe04, 0x9684, 0x00ff, 0x9082, 0x0006,\r
++      0x1268, 0x0016, 0x0026, 0x6210, 0x00b6, 0x2258, 0xbaa0, 0x00be,\r
++      0x2c08, 0x080c, 0xd5a9, 0x002e, 0x001e, 0x1178, 0x080c, 0xcef7,\r
++      0x1904, 0xc11b, 0x080c, 0xce93, 0x1120, 0x6007, 0x0008, 0x0804,\r
++      0xc22d, 0x6007, 0x0009, 0x0804, 0xc22d, 0x080c, 0xd0fe, 0x0128,\r
++      0x080c, 0xcef7, 0x0d78, 0x0804, 0xc11b, 0x6017, 0x1900, 0x0c88,\r
++      0x080c, 0x3150, 0x1904, 0xc440, 0x6106, 0x080c, 0xce44, 0x6007,\r
++      0x0006, 0x0804, 0xc22d, 0x6007, 0x0007, 0x0804, 0xc22d, 0x080c,\r
++      0xd46d, 0x1904, 0xc440, 0x080c, 0x3150, 0x1904, 0xc440, 0x00d6,\r
++      0x6610, 0x2658, 0xbe04, 0x9684, 0x00ff, 0x9082, 0x0006, 0x1220,\r
++      0x2001, 0x0001, 0x080c, 0x61ad, 0x96b4, 0xff00, 0x8637, 0x9686,\r
++      0x0006, 0x0188, 0x9686, 0x0004, 0x0170, 0xbe04, 0x96b4, 0x00ff,\r
++      0x9686, 0x0006, 0x0140, 0x9686, 0x0004, 0x0128, 0x9686, 0x0005,\r
++      0x0110, 0x00de, 0x0480, 0x00e6, 0x2071, 0x0260, 0x7034, 0x9084,\r
++      0x0003, 0x1140, 0x7034, 0x9082, 0x0014, 0x0220, 0x7030, 0x9084,\r
++      0x0003, 0x0130, 0x00ee, 0x6017, 0x0000, 0x602f, 0x0007, 0x00b0,\r
++      0x00ee, 0x080c, 0xcf5e, 0x1190, 0x9686, 0x0006, 0x1140, 0x0026,\r
++      0x6210, 0x2258, 0xbaa0, 0x900e, 0x080c, 0x305b, 0x002e, 0x080c,\r
++      0x630b, 0x6007, 0x000a, 0x00de, 0x0804, 0xc22d, 0x6007, 0x000b,\r
++      0x00de, 0x0804, 0xc22d, 0x080c, 0x3006, 0x080c, 0xbf76, 0x6007,\r
++      0x0001, 0x0804, 0xc22d, 0x080c, 0xd46d, 0x1904, 0xc440, 0x080c,\r
++      0x3150, 0x1904, 0xc440, 0x2071, 0x0260, 0x7034, 0x90b4, 0x0003,\r
++      0x1948, 0x90b2, 0x0014, 0x0a30, 0x7030, 0x9084, 0x0003, 0x1910,\r
++      0x6610, 0x2658, 0xbe04, 0x9686, 0x0707, 0x09e8, 0x0026, 0x6210,\r
++      0x2258, 0xbaa0, 0x900e, 0x080c, 0x305b, 0x002e, 0x6007, 0x000c,\r
++      0x2001, 0x0001, 0x080c, 0xd589, 0x0804, 0xc22d, 0x080c, 0x6625,\r
++      0x1140, 0x2001, 0x1836, 0x2004, 0x9084, 0x0009, 0x9086, 0x0008,\r
++      0x1110, 0x0804, 0xc056, 0x080c, 0x660e, 0x6610, 0x2658, 0xbe04,\r
++      0x9684, 0x00ff, 0x9082, 0x0006, 0x06c0, 0x1138, 0x0026, 0x2001,\r
++      0x0006, 0x080c, 0x61ed, 0x002e, 0x0050, 0x96b4, 0xff00, 0x8637,\r
++      0x9686, 0x0004, 0x0120, 0x9686, 0x0006, 0x1904, 0xc11b, 0x080c,\r
++      0xcf6b, 0x1120, 0x6007, 0x000e, 0x0804, 0xc22d, 0x0046, 0x6410,\r
++      0x2458, 0xbca0, 0x0046, 0x080c, 0x3006, 0x080c, 0xbf76, 0x004e,\r
++      0x0016, 0x9006, 0x2009, 0x1854, 0x210c, 0x0048, 0x2009, 0x0029,\r
++      0x080c, 0xd273, 0x6010, 0x2058, 0xb800, 0xc0e5, 0xb802, 0x001e,\r
++      0x004e, 0x6007, 0x0001, 0x0804, 0xc22d, 0x2001, 0x0001, 0x080c,\r
++      0x61ad, 0x0156, 0x0016, 0x0026, 0x0036, 0x20a9, 0x0004, 0x2019,\r
++      0x1805, 0x2011, 0x0270, 0x080c, 0xabcb, 0x003e, 0x002e, 0x001e,\r
++      0x015e, 0x9005, 0x0168, 0x96b4, 0xff00, 0x8637, 0x9682, 0x0004,\r
++      0x0a04, 0xc11b, 0x9682, 0x0007, 0x0a04, 0xc177, 0x0804, 0xc11b,\r
++      0x6017, 0x1900, 0x6007, 0x0009, 0x0804, 0xc22d, 0x080c, 0x6625,\r
++      0x1140, 0x2001, 0x1836, 0x2004, 0x9084, 0x0009, 0x9086, 0x0008,\r
++      0x1110, 0x0804, 0xc056, 0x080c, 0x660e, 0x6610, 0x2658, 0xbe04,\r
++      0x9684, 0x00ff, 0x9082, 0x0006, 0x0690, 0x0150, 0x96b4, 0xff00,\r
++      0x8637, 0x9686, 0x0004, 0x0120, 0x9686, 0x0006, 0x1904, 0xc11b,\r
++      0x080c, 0xcf99, 0x1130, 0x080c, 0xce93, 0x1118, 0x6007, 0x0010,\r
++      0x04e0, 0x0046, 0x6410, 0x2458, 0xbca0, 0x0046, 0x080c, 0x3006,\r
++      0x080c, 0xbf76, 0x004e, 0x0016, 0x9006, 0x2009, 0x1854, 0x210c,\r
++      0x0048, 0x2009, 0x0029, 0x080c, 0xd273, 0x6010, 0x2058, 0xb800,\r
++      0xc0e5, 0xb802, 0x001e, 0x004e, 0x6007, 0x0001, 0x00f0, 0x080c,\r
++      0xd0fe, 0x0140, 0x96b4, 0xff00, 0x8637, 0x9686, 0x0006, 0x0980,\r
++      0x0804, 0xc11b, 0x6017, 0x1900, 0x6007, 0x0009, 0x0070, 0x080c,\r
++      0x3150, 0x1904, 0xc440, 0x080c, 0xd46d, 0x1904, 0xc440, 0x080c,\r
++      0xc5e0, 0x1904, 0xc11b, 0x6007, 0x0012, 0x6003, 0x0001, 0x080c,\r
++      0x84d8, 0x080c, 0x8936, 0x0005, 0x6007, 0x0001, 0x6003, 0x0001,\r
++      0x080c, 0x84d8, 0x080c, 0x8936, 0x0cb0, 0x6007, 0x0005, 0x0c68,\r
++      0x080c, 0xd46d, 0x1904, 0xc440, 0x080c, 0x3150, 0x1904, 0xc440,\r
++      0x080c, 0xc5e0, 0x1904, 0xc11b, 0x6007, 0x0020, 0x6003, 0x0001,\r
++      0x080c, 0x84d8, 0x080c, 0x8936, 0x0005, 0x080c, 0x3150, 0x1904,\r
++      0xc440, 0x6007, 0x0023, 0x6003, 0x0001, 0x080c, 0x84d8, 0x080c,\r
++      0x8936, 0x0005, 0x080c, 0xd46d, 0x1904, 0xc440, 0x080c, 0x3150,\r
++      0x1904, 0xc440, 0x080c, 0xc5e0, 0x1904, 0xc11b, 0x0016, 0x0026,\r
++      0x00e6, 0x2071, 0x0260, 0x7244, 0x9286, 0xffff, 0x0180, 0x2c08,\r
++      0x080c, 0xb835, 0x01b0, 0x2260, 0x7240, 0x6008, 0x9206, 0x1188,\r
++      0x6010, 0x9190, 0x0004, 0x2214, 0x9206, 0x01b8, 0x0050, 0x7240,\r
++      0x2c08, 0x9006, 0x080c, 0xd245, 0x1180, 0x7244, 0x9286, 0xffff,\r
++      0x01b0, 0x2160, 0x6007, 0x0026, 0x6017, 0x1700, 0x7214, 0x9296,\r
++      0xffff, 0x1180, 0x6007, 0x0025, 0x0068, 0x6020, 0x9086, 0x0007,\r
++      0x1d80, 0x6004, 0x9086, 0x0024, 0x1110, 0x080c, 0x9be7, 0x2160,\r
++      0x6007, 0x0025, 0x6003, 0x0001, 0x080c, 0x84d8, 0x080c, 0x8936,\r
++      0x00ee, 0x002e, 0x001e, 0x0005, 0x2001, 0x0001, 0x080c, 0x61ad,\r
++      0x0156, 0x0016, 0x0026, 0x0036, 0x20a9, 0x0004, 0x2019, 0x1805,\r
++      0x2011, 0x0276, 0x080c, 0xabcb, 0x003e, 0x002e, 0x001e, 0x015e,\r
++      0x0120, 0x6007, 0x0031, 0x0804, 0xc22d, 0x080c, 0xa830, 0x080c,\r
++      0x70b7, 0x1190, 0x0006, 0x0026, 0x0036, 0x080c, 0x70d1, 0x1138,\r
++      0x080c, 0x73b7, 0x080c, 0x5cdc, 0x080c, 0x6fe8, 0x0010, 0x080c,\r
++      0x708b, 0x003e, 0x002e, 0x000e, 0x0005, 0x080c, 0x3150, 0x1904,\r
++      0xc440, 0x080c, 0xc5e0, 0x1904, 0xc11b, 0x6106, 0x080c, 0xc5fc,\r
++      0x1120, 0x6007, 0x002b, 0x0804, 0xc22d, 0x6007, 0x002c, 0x0804,\r
++      0xc22d, 0x080c, 0xd46d, 0x1904, 0xc440, 0x080c, 0x3150, 0x1904,\r
++      0xc440, 0x080c, 0xc5e0, 0x1904, 0xc11b, 0x6106, 0x080c, 0xc601,\r
++      0x1120, 0x6007, 0x002e, 0x0804, 0xc22d, 0x6007, 0x002f, 0x0804,\r
++      0xc22d, 0x080c, 0x3150, 0x1904, 0xc440, 0x00e6, 0x00d6, 0x00c6,\r
++      0x6010, 0x2058, 0xb904, 0x9184, 0x00ff, 0x9086, 0x0006, 0x0158,\r
++      0x9184, 0xff00, 0x8007, 0x9086, 0x0006, 0x0128, 0x00ce, 0x00de,\r
++      0x00ee, 0x0804, 0xc234, 0x080c, 0x5391, 0xd0e4, 0x0904, 0xc38b,\r
++      0x2071, 0x026c, 0x7010, 0x603a, 0x7014, 0x603e, 0x7108, 0x720c,\r
++      0x080c, 0x6663, 0x0140, 0x6010, 0x2058, 0xb810, 0x9106, 0x1118,\r
++      0xb814, 0x9206, 0x0510, 0x080c, 0x665f, 0x15b8, 0x2069, 0x1800,\r
++      0x687c, 0x9206, 0x1590, 0x6878, 0x9106, 0x1578, 0x7210, 0x080c,\r
++      0xb835, 0x0590, 0x080c, 0xc4cb, 0x0578, 0x080c, 0xd2ef, 0x0560,\r
++      0x622e, 0x6007, 0x0036, 0x6003, 0x0001, 0x2009, 0x8020, 0x080c,\r
++      0x84d1, 0x00ce, 0x00de, 0x00ee, 0x0005, 0x7214, 0x9286, 0xffff,\r
++      0x0150, 0x080c, 0xb835, 0x01c0, 0x9280, 0x0002, 0x2004, 0x7110,\r
++      0x9106, 0x1190, 0x08e0, 0x7210, 0x2c08, 0x9085, 0x0001, 0x080c,\r
++      0xd245, 0x2c10, 0x2160, 0x0140, 0x0890, 0x6007, 0x0037, 0x602f,\r
++      0x0009, 0x6017, 0x1500, 0x08b8, 0x6007, 0x0037, 0x602f, 0x0003,\r
++      0x6017, 0x1700, 0x0880, 0x6007, 0x0012, 0x0868, 0x080c, 0x3150,\r
++      0x1904, 0xc440, 0x6010, 0x2058, 0xb804, 0x9084, 0xff00, 0x8007,\r
++      0x9086, 0x0006, 0x1904, 0xc234, 0x00e6, 0x00d6, 0x00c6, 0x080c,\r
++      0x5391, 0xd0e4, 0x0904, 0xc403, 0x2069, 0x1800, 0x2071, 0x026c,\r
++      0x7008, 0x603a, 0x720c, 0x623e, 0x9286, 0xffff, 0x1150, 0x7208,\r
++      0x00c6, 0x2c08, 0x9085, 0x0001, 0x080c, 0xd245, 0x2c10, 0x00ce,\r
++      0x05e8, 0x080c, 0xb835, 0x05d0, 0x7108, 0x9280, 0x0002, 0x2004,\r
++      0x9106, 0x15a0, 0x00c6, 0x0026, 0x2260, 0x080c, 0xb445, 0x002e,\r
++      0x00ce, 0x7118, 0x918c, 0xff00, 0x810f, 0x9186, 0x0001, 0x0178,\r
++      0x9186, 0x0005, 0x0118, 0x9186, 0x0007, 0x1198, 0x9280, 0x0005,\r
++      0x2004, 0x9005, 0x0170, 0x080c, 0xc4cb, 0x0904, 0xc384, 0x0056,\r
++      0x7510, 0x7614, 0x080c, 0xd308, 0x005e, 0x00ce, 0x00de, 0x00ee,\r
++      0x0005, 0x6007, 0x003b, 0x602f, 0x0009, 0x6017, 0x2a00, 0x6003,\r
++      0x0001, 0x2009, 0x8020, 0x080c, 0x84d1, 0x0c78, 0x6007, 0x003b,\r
++      0x602f, 0x0003, 0x6017, 0x0300, 0x6003, 0x0001, 0x2009, 0x8020,\r
++      0x080c, 0x84d1, 0x0c10, 0x6007, 0x003b, 0x602f, 0x000b, 0x6017,\r
++      0x0000, 0x0804, 0xc35b, 0x00e6, 0x0026, 0x080c, 0x6625, 0x0550,\r
++      0x080c, 0x660e, 0x080c, 0xd4df, 0x1518, 0x2071, 0x1800, 0x70d8,\r
++      0x9085, 0x0003, 0x70da, 0x00f6, 0x2079, 0x0100, 0x72ac, 0x9284,\r
++      0x00ff, 0x707a, 0x78e6, 0x9284, 0xff00, 0x727c, 0x9205, 0x707e,\r
++      0x78ea, 0x00fe, 0x70e3, 0x0000, 0x080c, 0x6663, 0x0120, 0x2011,\r
++      0x19da, 0x2013, 0x07d0, 0xd0ac, 0x1128, 0x080c, 0x2ddb, 0x0010,\r
++      0x080c, 0xd511, 0x002e, 0x00ee, 0x080c, 0x9be7, 0x0804, 0xc233,\r
++      0x080c, 0x9be7, 0x0005, 0x2600, 0x0002, 0xc457, 0xc457, 0xc457,\r
++      0xc457, 0xc457, 0xc459, 0xc457, 0xc457, 0xc457, 0xc457, 0xc476,\r
++      0xc457, 0xc457, 0xc457, 0xc488, 0xc495, 0xc4c6, 0xc457, 0x080c,\r
++      0x0d65, 0x080c, 0xd46d, 0x1d20, 0x080c, 0x3150, 0x1d08, 0x080c,\r
++      0xc5e0, 0x1148, 0x7038, 0x6016, 0x6007, 0x0045, 0x6003, 0x0001,\r
++      0x080c, 0x84d8, 0x0005, 0x080c, 0x3006, 0x080c, 0xbf76, 0x6007,\r
++      0x0001, 0x6003, 0x0001, 0x080c, 0x84d8, 0x0005, 0x080c, 0xd46d,\r
++      0x1938, 0x080c, 0x3150, 0x1920, 0x080c, 0xc5e0, 0x1d60, 0x703c,\r
++      0x6016, 0x6007, 0x004a, 0x6003, 0x0001, 0x080c, 0x84d8, 0x0005,\r
++      0x080c, 0xc4e8, 0x0904, 0xc440, 0x6007, 0x004e, 0x6003, 0x0001,\r
++      0x080c, 0x84d8, 0x080c, 0x8936, 0x0005, 0x6007, 0x004f, 0x6017,\r
++      0x0000, 0x7134, 0x918c, 0x00ff, 0x81ff, 0x0508, 0x9186, 0x0001,\r
++      0x1160, 0x7140, 0x2001, 0x198e, 0x2004, 0x9106, 0x11b0, 0x7144,\r
++      0x2001, 0x198f, 0x2004, 0x9106, 0x0190, 0x9186, 0x0002, 0x1168,\r
++      0x2011, 0x0276, 0x20a9, 0x0004, 0x6010, 0x0096, 0x2048, 0x2019,\r
++      0x000a, 0x080c, 0xabdf, 0x009e, 0x0110, 0x6017, 0x0001, 0x6003,\r
++      0x0001, 0x080c, 0x84d8, 0x080c, 0x8936, 0x0005, 0x6007, 0x0050,\r
++      0x703c, 0x6016, 0x0ca0, 0x0016, 0x00e6, 0x2071, 0x0260, 0x00b6,\r
++      0x00c6, 0x2260, 0x6010, 0x2058, 0xb8c4, 0xd084, 0x0150, 0x7128,\r
++      0x6050, 0x9106, 0x1120, 0x712c, 0x604c, 0x9106, 0x0110, 0x9006,\r
++      0x0010, 0x9085, 0x0001, 0x00ce, 0x00be, 0x00ee, 0x001e, 0x0005,\r
++      0x0016, 0x0096, 0x0086, 0x00e6, 0x01c6, 0x01d6, 0x0126, 0x2091,\r
++      0x8000, 0x2071, 0x1800, 0x708c, 0x908a, 0x00f9, 0x16e8, 0x20e1,\r
++      0x0000, 0x2001, 0x1971, 0x2003, 0x0000, 0x080c, 0x103b, 0x05a0,\r
++      0x2900, 0x6016, 0x708c, 0x8004, 0xa816, 0x908a, 0x001e, 0x02d0,\r
++      0xa833, 0x001e, 0x20a9, 0x001e, 0xa860, 0x20e8, 0xa85c, 0x9080,\r
++      0x001b, 0x20a0, 0x2001, 0x1971, 0x0016, 0x200c, 0x0471, 0x001e,\r
++      0x2940, 0x080c, 0x103b, 0x01c0, 0x2900, 0xa006, 0x2100, 0x81ff,\r
++      0x0180, 0x0c18, 0xa832, 0x20a8, 0xa860, 0x20e8, 0xa85c, 0x9080,\r
++      0x001b, 0x20a0, 0x2001, 0x1971, 0x0016, 0x200c, 0x00b1, 0x001e,\r
++      0x0000, 0x9085, 0x0001, 0x0048, 0x2071, 0x1800, 0x708f, 0x0000,\r
++      0x6014, 0x2048, 0x080c, 0x0fd4, 0x9006, 0x012e, 0x01de, 0x01ce,\r
++      0x00ee, 0x008e, 0x009e, 0x001e, 0x0005, 0x0006, 0x0016, 0x0026,\r
++      0x0036, 0x00c6, 0x918c, 0xffff, 0x11a8, 0x080c, 0x202b, 0x2099,\r
++      0x026c, 0x2001, 0x0014, 0x3518, 0x9312, 0x1218, 0x23a8, 0x4003,\r
++      0x00f8, 0x20a8, 0x4003, 0x22a8, 0x8108, 0x080c, 0x202b, 0x2099,\r
++      0x0260, 0x0ca8, 0x080c, 0x202b, 0x2061, 0x1971, 0x6004, 0x2098,\r
++      0x6008, 0x3518, 0x9312, 0x1218, 0x23a8, 0x4003, 0x0048, 0x20a8,\r
++      0x4003, 0x22a8, 0x8108, 0x080c, 0x202b, 0x2099, 0x0260, 0x0ca8,\r
++      0x2061, 0x1971, 0x2019, 0x0280, 0x3300, 0x931e, 0x0110, 0x6006,\r
++      0x0020, 0x2001, 0x0260, 0x6006, 0x8108, 0x2162, 0x9292, 0x0021,\r
++      0x9296, 0xffff, 0x620a, 0x00ce, 0x003e, 0x002e, 0x001e, 0x000e,\r
++      0x0005, 0x0006, 0x0016, 0x0026, 0x0036, 0x00c6, 0x81ff, 0x11b8,\r
++      0x080c, 0x2043, 0x20a1, 0x024c, 0x2001, 0x0014, 0x3518, 0x9312,\r
++      0x1218, 0x23a8, 0x4003, 0x0418, 0x20a8, 0x4003, 0x82ff, 0x01f8,\r
++      0x22a8, 0x8108, 0x080c, 0x2043, 0x20a1, 0x0240, 0x0c98, 0x080c,\r
++      0x2043, 0x2061, 0x1974, 0x6004, 0x20a0, 0x6008, 0x3518, 0x9312,\r
++      0x1218, 0x23a8, 0x4003, 0x0058, 0x20a8, 0x4003, 0x82ff, 0x0138,\r
++      0x22a8, 0x8108, 0x080c, 0x2043, 0x20a1, 0x0240, 0x0c98, 0x2061,\r
++      0x1974, 0x2019, 0x0260, 0x3400, 0x931e, 0x0110, 0x6006, 0x0020,\r
++      0x2001, 0x0240, 0x6006, 0x8108, 0x2162, 0x9292, 0x0021, 0x9296,\r
++      0xffff, 0x620a, 0x00ce, 0x003e, 0x002e, 0x001e, 0x000e, 0x0005,\r
++      0x00b6, 0x0066, 0x6610, 0x2658, 0xbe04, 0x96b4, 0xff00, 0x8637,\r
++      0x9686, 0x0006, 0x0170, 0x9686, 0x0004, 0x0158, 0xbe04, 0x96b4,\r
++      0x00ff, 0x9686, 0x0006, 0x0128, 0x9686, 0x0004, 0x0110, 0x9085,\r
++      0x0001, 0x006e, 0x00be, 0x0005, 0x00d6, 0x080c, 0xc676, 0x00de,\r
++      0x0005, 0x00d6, 0x080c, 0xc683, 0x1520, 0x680c, 0x908c, 0xff00,\r
++      0x6820, 0x9084, 0x00ff, 0x9115, 0x6216, 0x6824, 0x602e, 0xd1e4,\r
++      0x0130, 0x9006, 0x080c, 0xd589, 0x2009, 0x0001, 0x0078, 0xd1ec,\r
++      0x0180, 0x6920, 0x918c, 0x00ff, 0x6824, 0x080c, 0x2424, 0x1148,\r
++      0x2001, 0x0001, 0x080c, 0xd589, 0x2110, 0x900e, 0x080c, 0x305b,\r
++      0x0018, 0x9085, 0x0001, 0x0008, 0x9006, 0x00de, 0x0005, 0x00b6,\r
++      0x00c6, 0x080c, 0x9c58, 0x0598, 0x0016, 0x0026, 0x00c6, 0x2011,\r
++      0x0263, 0x2204, 0x8211, 0x220c, 0x080c, 0x2424, 0x1568, 0x080c,\r
++      0x6210, 0x1550, 0xbe12, 0xbd16, 0x00ce, 0x002e, 0x001e, 0x2b00,\r
++      0x6012, 0x080c, 0xd46d, 0x11c8, 0x080c, 0x3150, 0x11b0, 0x080c,\r
++      0xc5e0, 0x0500, 0x2001, 0x0007, 0x080c, 0x61c1, 0x2001, 0x0007,\r
++      0x080c, 0x61ed, 0x6017, 0x0000, 0x6023, 0x0001, 0x6007, 0x0001,\r
++      0x6003, 0x0001, 0x080c, 0x84d8, 0x0010, 0x080c, 0x9be7, 0x9085,\r
++      0x0001, 0x00ce, 0x00be, 0x0005, 0x080c, 0x9be7, 0x00ce, 0x002e,\r
++      0x001e, 0x0ca8, 0x080c, 0x9be7, 0x9006, 0x0c98, 0x2069, 0x026d,\r
++      0x6800, 0x9082, 0x0010, 0x1228, 0x6017, 0x0000, 0x9085, 0x0001,\r
++      0x0008, 0x9006, 0x0005, 0x6017, 0x0000, 0x2069, 0x026c, 0x6808,\r
++      0x9084, 0xff00, 0x9086, 0x0800, 0x1190, 0x6904, 0x9186, 0x0018,\r
++      0x0118, 0x9186, 0x0014, 0x1158, 0x810f, 0x6800, 0x9084, 0x00ff,\r
++      0x910d, 0x6162, 0x908e, 0x0014, 0x0110, 0x908e, 0x0010, 0x0005,\r
++      0x6004, 0x90b2, 0x0053, 0x1a0c, 0x0d65, 0x91b6, 0x0013, 0x1130,\r
++      0x2008, 0x91b2, 0x0040, 0x1a04, 0xc7c3, 0x0092, 0x91b6, 0x0027,\r
++      0x0120, 0x91b6, 0x0014, 0x190c, 0x0d65, 0x2001, 0x0007, 0x080c,\r
++      0x61ed, 0x080c, 0x8874, 0x080c, 0x9c21, 0x080c, 0x8936, 0x0005,\r
++      0xc700, 0xc702, 0xc700, 0xc700, 0xc700, 0xc702, 0xc70f, 0xc7c0,\r
++      0xc75f, 0xc7c0, 0xc771, 0xc7c0, 0xc70f, 0xc7c0, 0xc7b8, 0xc7c0,\r
++      0xc7b8, 0xc7c0, 0xc7c0, 0xc700, 0xc700, 0xc700, 0xc700, 0xc700,\r
++      0xc700, 0xc700, 0xc700, 0xc700, 0xc700, 0xc700, 0xc702, 0xc700,\r
++      0xc7c0, 0xc700, 0xc700, 0xc7c0, 0xc700, 0xc7bd, 0xc7c0, 0xc700,\r
++      0xc700, 0xc700, 0xc700, 0xc7c0, 0xc7c0, 0xc700, 0xc7c0, 0xc7c0,\r
++      0xc700, 0xc70a, 0xc700, 0xc700, 0xc700, 0xc700, 0xc7bc, 0xc7c0,\r
++      0xc700, 0xc700, 0xc7c0, 0xc7c0, 0xc700, 0xc700, 0xc700, 0xc700,\r
++      0x080c, 0x0d65, 0x080c, 0xbf79, 0x6003, 0x0002, 0x080c, 0x8936,\r
++      0x0804, 0xc7c2, 0x9006, 0x080c, 0x61ad, 0x0804, 0xc7c0, 0x080c,\r
++      0x665f, 0x1904, 0xc7c0, 0x9006, 0x080c, 0x61ad, 0x6010, 0x2058,\r
++      0xb810, 0x9086, 0x00ff, 0x1140, 0x00f6, 0x2079, 0x1800, 0x78a4,\r
++      0x8000, 0x78a6, 0x00fe, 0x0428, 0x6010, 0x2058, 0xb884, 0x9005,\r
++      0x1178, 0x080c, 0xbf61, 0x1904, 0xc7c0, 0x0036, 0x0046, 0xbba0,\r
++      0x2021, 0x0007, 0x080c, 0x4a75, 0x004e, 0x003e, 0x0804, 0xc7c0,\r
++      0x080c, 0x3181, 0x1904, 0xc7c0, 0x2001, 0x1800, 0x2004, 0x9086,\r
++      0x0002, 0x1138, 0x00f6, 0x2079, 0x1800, 0x78a4, 0x8000, 0x78a6,\r
++      0x00fe, 0x2001, 0x0002, 0x080c, 0x61c1, 0x6023, 0x0001, 0x6003,\r
++      0x0001, 0x6007, 0x0002, 0x080c, 0x84d8, 0x080c, 0x8936, 0x6110,\r
++      0x2158, 0x2009, 0x0001, 0x080c, 0x8167, 0x0804, 0xc7c2, 0x6610,\r
++      0x2658, 0xbe04, 0x96b4, 0xff00, 0x8637, 0x9686, 0x0006, 0x0904,\r
++      0xc7c0, 0x9686, 0x0004, 0x0904, 0xc7c0, 0x2001, 0x0004, 0x0804,\r
++      0xc7be, 0x2001, 0x1800, 0x2004, 0x9086, 0x0003, 0x1158, 0x0036,\r
++      0x0046, 0x6010, 0x2058, 0xbba0, 0x2021, 0x0006, 0x080c, 0x4a75,\r
++      0x004e, 0x003e, 0x2001, 0x0006, 0x080c, 0xc7dc, 0x6610, 0x2658,\r
++      0xbe04, 0x0066, 0x96b4, 0xff00, 0x8637, 0x9686, 0x0006, 0x006e,\r
++      0x0168, 0x2001, 0x0006, 0x080c, 0x61ed, 0x9284, 0x00ff, 0x908e,\r
++      0x0007, 0x1120, 0x2001, 0x0006, 0x080c, 0x61c1, 0x080c, 0x665f,\r
++      0x11f8, 0x2001, 0x1836, 0x2004, 0xd0a4, 0x01d0, 0xbe04, 0x96b4,\r
++      0x00ff, 0x9686, 0x0006, 0x01a0, 0x00f6, 0x2079, 0x1800, 0x78a4,\r
++      0x8000, 0x78a6, 0x00fe, 0x0804, 0xc749, 0x2001, 0x0004, 0x0030,\r
++      0x2001, 0x0006, 0x0409, 0x0020, 0x0018, 0x0010, 0x080c, 0x61ed,\r
++      0x080c, 0x9be7, 0x0005, 0x2600, 0x0002, 0xc7d7, 0xc7d7, 0xc7d7,\r
++      0xc7d7, 0xc7d7, 0xc7d9, 0xc7d7, 0xc7d7, 0xc7d7, 0xc7d7, 0xc7d9,\r
++      0xc7d7, 0xc7d7, 0xc7d7, 0xc7d9, 0xc7d9, 0xc7d9, 0xc7d9, 0x080c,\r
++      0x0d65, 0x080c, 0x9be7, 0x0005, 0x0016, 0x00b6, 0x00d6, 0x6110,\r
++      0x2158, 0xb900, 0xd184, 0x0138, 0x080c, 0x61c1, 0x9006, 0x080c,\r
++      0x61ad, 0x080c, 0x303b, 0x00de, 0x00be, 0x001e, 0x0005, 0x6610,\r
++      0x2658, 0xb804, 0x9084, 0xff00, 0x8007, 0x90b2, 0x000c, 0x1a0c,\r
++      0x0d65, 0x91b6, 0x0015, 0x1110, 0x003b, 0x0028, 0x91b6, 0x0016,\r
++      0x190c, 0x0d65, 0x006b, 0x0005, 0xa670, 0xa670, 0xa670, 0xa670,\r
++      0xa670, 0xa670, 0xc85b, 0xc81c, 0xa670, 0xa670, 0xa670, 0xa670,\r
++      0xa670, 0xa670, 0xa670, 0xa670, 0xa670, 0xa670, 0xc85b, 0xc862,\r
++      0xa670, 0xa670, 0xa670, 0xa670, 0x00f6, 0x080c, 0x665f, 0x11d8,\r
++      0x080c, 0xbf61, 0x11c0, 0x6010, 0x905d, 0x01a8, 0xb884, 0x9005,\r
++      0x0190, 0x9006, 0x080c, 0x61ad, 0x2001, 0x0002, 0x080c, 0x61c1,\r
++      0x6023, 0x0001, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x84d8,\r
++      0x080c, 0x8936, 0x00f0, 0x2011, 0x0263, 0x2204, 0x8211, 0x220c,\r
++      0x080c, 0x2424, 0x11b0, 0x080c, 0x6270, 0x0118, 0x080c, 0x9be7,\r
++      0x0080, 0xb810, 0x0006, 0xb814, 0x0006, 0xb884, 0x0006, 0x080c,\r
++      0x5cf6, 0x000e, 0xb886, 0x000e, 0xb816, 0x000e, 0xb812, 0x080c,\r
++      0x9be7, 0x00fe, 0x0005, 0x6604, 0x96b6, 0x001e, 0x1110, 0x080c,\r
++      0x9be7, 0x0005, 0x080c, 0xaa54, 0x1148, 0x6003, 0x0001, 0x6007,\r
++      0x0001, 0x080c, 0x84d8, 0x080c, 0x8936, 0x0010, 0x080c, 0x9be7,\r
++      0x0005, 0x6004, 0x908a, 0x0053, 0x1a0c, 0x0d65, 0x080c, 0x8874,\r
++      0x080c, 0x9c21, 0x0005, 0x9182, 0x0040, 0x0002, 0xc891, 0xc891,\r
++      0xc891, 0xc891, 0xc893, 0xc891, 0xc891, 0xc891, 0xc891, 0xc891,\r
++      0xc891, 0xc891, 0xc891, 0xc891, 0xc891, 0xc891, 0xc891, 0xc891,\r
++      0xc891, 0x080c, 0x0d65, 0x0096, 0x00b6, 0x00d6, 0x00e6, 0x00f6,\r
++      0x0046, 0x0026, 0x6210, 0x2258, 0xb8ac, 0x9005, 0x11b0, 0x6007,\r
++      0x0044, 0x2071, 0x0260, 0x7444, 0x94a4, 0xff00, 0x0904, 0xc8fa,\r
++      0x080c, 0xd57d, 0x1170, 0x9486, 0x2000, 0x1158, 0x2009, 0x0001,\r
++      0x2011, 0x0200, 0x080c, 0x83eb, 0x0020, 0x9026, 0x080c, 0xd4b2,\r
++      0x0c30, 0x080c, 0x1022, 0x090c, 0x0d65, 0x6003, 0x0007, 0xa867,\r
++      0x010d, 0x9006, 0xa802, 0xa86a, 0xac8a, 0x2c00, 0xa88e, 0x6008,\r
++      0xa8e2, 0x6010, 0x2058, 0xb8a0, 0x7130, 0xa97a, 0x0016, 0xa876,\r
++      0xa87f, 0x0000, 0xa883, 0x0000, 0xa887, 0x0036, 0x080c, 0x6996,\r
++      0x001e, 0x080c, 0xd57d, 0x1904, 0xc95a, 0x9486, 0x2000, 0x1130,\r
++      0x2019, 0x0017, 0x080c, 0xd1eb, 0x0804, 0xc95a, 0x9486, 0x0200,\r
++      0x1120, 0x080c, 0xd17b, 0x0804, 0xc95a, 0x9486, 0x0400, 0x0120,\r
++      0x9486, 0x1000, 0x1904, 0xc95a, 0x2019, 0x0002, 0x080c, 0xd19a,\r
++      0x0804, 0xc95a, 0x2069, 0x1a3f, 0x6a00, 0xd284, 0x0904, 0xc9c4,\r
++      0x9284, 0x0300, 0x1904, 0xc9bd, 0x6804, 0x9005, 0x0904, 0xc9a5,\r
++      0x2d78, 0x6003, 0x0007, 0x080c, 0x103b, 0x0904, 0xc966, 0x7800,\r
++      0xd08c, 0x1118, 0x7804, 0x8001, 0x7806, 0x6017, 0x0000, 0x2001,\r
++      0x180f, 0x2004, 0xd084, 0x1904, 0xc9c8, 0x9006, 0xa802, 0xa867,\r
++      0x0116, 0xa86a, 0x6008, 0xa8e2, 0x2c00, 0xa87a, 0x6010, 0x2058,\r
++      0xb8a0, 0x7130, 0xa9b6, 0xa876, 0xb928, 0xa9ba, 0xb92c, 0xa9be,\r
++      0xb930, 0xa9c2, 0xb934, 0xa9c6, 0xa883, 0x003d, 0x7044, 0x9084,\r
++      0x0003, 0x9080, 0xc962, 0x2005, 0xa87e, 0x20a9, 0x000a, 0x2001,\r
++      0x0270, 0xaa5c, 0x9290, 0x0021, 0x2009, 0x0205, 0x200b, 0x0080,\r
++      0x20e1, 0x0000, 0xab60, 0x23e8, 0x2098, 0x22a0, 0x4003, 0x200b,\r
++      0x0000, 0x2001, 0x027a, 0x200c, 0xa9b2, 0x8000, 0x200c, 0xa9ae,\r
++      0x080c, 0x6999, 0x002e, 0x004e, 0x00fe, 0x00ee, 0x00de, 0x00be,\r
++      0x009e, 0x0005, 0x0000, 0x0080, 0x0040, 0x0000, 0x2001, 0x1810,\r
++      0x2004, 0xd084, 0x0120, 0x080c, 0x1022, 0x1904, 0xc90f, 0x6017,\r
++      0xf100, 0x6003, 0x0001, 0x6007, 0x0041, 0x2009, 0xa022, 0x080c,\r
++      0x84d1, 0x0c00, 0x2069, 0x0260, 0x6848, 0x9084, 0xff00, 0x9086,\r
++      0x1200, 0x1198, 0x686c, 0x9084, 0x00ff, 0x0016, 0x6114, 0x918c,\r
++      0xf700, 0x910d, 0x6116, 0x001e, 0x6003, 0x0001, 0x6007, 0x0043,\r
++      0x2009, 0xa025, 0x080c, 0x84d1, 0x0828, 0x6868, 0x602e, 0x686c,\r
++      0x6032, 0x6017, 0xf200, 0x6003, 0x0001, 0x6007, 0x0041, 0x2009,\r
++      0xa022, 0x080c, 0x84d1, 0x0804, 0xc95a, 0x2001, 0x180e, 0x2004,\r
++      0xd0ec, 0x0120, 0x2011, 0x8049, 0x080c, 0x48d8, 0x6017, 0xf300,\r
++      0x0010, 0x6017, 0xf100, 0x6003, 0x0001, 0x6007, 0x0041, 0x2009,\r
++      0xa022, 0x080c, 0x84d1, 0x0804, 0xc95a, 0x6017, 0xf500, 0x0c98,\r
++      0x6017, 0xf600, 0x0804, 0xc97a, 0x6017, 0xf200, 0x0804, 0xc97a,\r
++      0xa867, 0x0146, 0xa86b, 0x0000, 0x6008, 0xa886, 0x2c00, 0xa87a,\r
++      0x7044, 0x9084, 0x0003, 0x9080, 0xc962, 0x2005, 0xa87e, 0x2928,\r
++      0x6010, 0x2058, 0xb8a0, 0xa876, 0xb828, 0xa88a, 0xb82c, 0xa88e,\r
++      0xb830, 0xa892, 0xb834, 0xa896, 0xa883, 0x003d, 0x2009, 0x0205,\r
++      0x2104, 0x9085, 0x0080, 0x200a, 0x20e1, 0x0000, 0x2011, 0x0210,\r
++      0x2214, 0x9294, 0x0fff, 0xaaa2, 0x9282, 0x0111, 0x1a0c, 0x0d65,\r
++      0x8210, 0x821c, 0x2001, 0x026c, 0x2098, 0xa860, 0x20e8, 0xa85c,\r
++      0x9080, 0x0029, 0x20a0, 0x2011, 0xca44, 0x2041, 0x0001, 0x223d,\r
++      0x9784, 0x00ff, 0x9322, 0x1208, 0x2300, 0x20a8, 0x4003, 0x931a,\r
++      0x0530, 0x8210, 0xd7fc, 0x1130, 0x8d68, 0x2d0a, 0x2001, 0x0260,\r
++      0x2098, 0x0c68, 0x2950, 0x080c, 0x103b, 0x0170, 0x2900, 0xb002,\r
++      0xa867, 0x0147, 0xa86b, 0x0000, 0xa860, 0x20e8, 0xa85c, 0x9080,\r
++      0x001b, 0x20a0, 0x8840, 0x08d8, 0x2548, 0xa800, 0x902d, 0x0118,\r
++      0x080c, 0x1054, 0x0cc8, 0x080c, 0x1054, 0x0804, 0xc966, 0x2548,\r
++      0x8847, 0x9885, 0x0046, 0xa866, 0x2009, 0x0205, 0x200b, 0x0000,\r
++      0x080c, 0xd21e, 0x0804, 0xc95a, 0x8010, 0x0004, 0x801a, 0x0006,\r
++      0x8018, 0x0008, 0x8016, 0x000a, 0x8014, 0x9186, 0x0013, 0x1160,\r
++      0x6004, 0x908a, 0x0057, 0x1a0c, 0x0d65, 0x9082, 0x0040, 0x0a0c,\r
++      0x0d65, 0x2008, 0x0804, 0xcacf, 0x9186, 0x0051, 0x0108, 0x0040,\r
++      0x080c, 0x9ab7, 0x01e8, 0x9086, 0x0002, 0x0904, 0xcb16, 0x00c0,\r
++      0x9186, 0x0027, 0x0180, 0x9186, 0x0048, 0x0128, 0x9186, 0x0014,\r
++      0x0150, 0x190c, 0x0d65, 0x080c, 0x9ab7, 0x0150, 0x9086, 0x0004,\r
++      0x0904, 0xcbb3, 0x0028, 0x6004, 0x9082, 0x0040, 0x2008, 0x001a,\r
++      0x080c, 0x9ca2, 0x0005, 0xca96, 0xca98, 0xca98, 0xcabf, 0xca96,\r
++      0xca96, 0xca96, 0xca96, 0xca96, 0xca96, 0xca96, 0xca96, 0xca96,\r
++      0xca96, 0xca96, 0xca96, 0xca96, 0xca96, 0xca96, 0x080c, 0x0d65,\r
++      0x080c, 0x8874, 0x080c, 0x8936, 0x0036, 0x0096, 0x6014, 0x904d,\r
++      0x01d8, 0x080c, 0xb847, 0x01c0, 0x6003, 0x0002, 0x6010, 0x00b6,\r
++      0x2058, 0xb800, 0x00be, 0xd0bc, 0x1178, 0x2019, 0x0004, 0x080c,\r
++      0xd21e, 0x6017, 0x0000, 0x6018, 0x9005, 0x1120, 0x2001, 0x1958,\r
++      0x2004, 0x601a, 0x6003, 0x0007, 0x009e, 0x003e, 0x0005, 0x0096,\r
++      0x080c, 0x8874, 0x080c, 0x8936, 0x080c, 0xb847, 0x0120, 0x6014,\r
++      0x2048, 0x080c, 0x1054, 0x080c, 0x9c21, 0x009e, 0x0005, 0x0002,\r
++      0xcae3, 0xcaf8, 0xcae5, 0xcb0d, 0xcae3, 0xcae3, 0xcae3, 0xcae3,\r
++      0xcae3, 0xcae3, 0xcae3, 0xcae3, 0xcae3, 0xcae3, 0xcae3, 0xcae3,\r
++      0xcae3, 0xcae3, 0xcae3, 0x080c, 0x0d65, 0x0096, 0x6014, 0x2048,\r
++      0xa87c, 0xd0b4, 0x0138, 0x6003, 0x0007, 0x2009, 0x0043, 0x080c,\r
++      0x9c85, 0x0010, 0x6003, 0x0004, 0x080c, 0x8936, 0x009e, 0x0005,\r
++      0x080c, 0xb847, 0x0138, 0x6114, 0x0096, 0x2148, 0xa97c, 0x009e,\r
++      0xd1ec, 0x1138, 0x080c, 0x83c0, 0x080c, 0x9be7, 0x080c, 0x8936,\r
++      0x0005, 0x080c, 0xd476, 0x0db0, 0x0cc8, 0x6003, 0x0001, 0x6007,\r
++      0x0041, 0x2009, 0xa022, 0x080c, 0x84d1, 0x0005, 0x9182, 0x0040,\r
++      0x0002, 0xcb2c, 0xcb2e, 0xcb2c, 0xcb2c, 0xcb2c, 0xcb2c, 0xcb2c,\r
++      0xcb2c, 0xcb2c, 0xcb2c, 0xcb2c, 0xcb2c, 0xcb2c, 0xcb2c, 0xcb2c,\r
++      0xcb2c, 0xcb2c, 0xcb2f, 0xcb2c, 0x080c, 0x0d65, 0x0005, 0x00d6,\r
++      0x080c, 0x83c0, 0x00de, 0x080c, 0xd4ce, 0x080c, 0x9be7, 0x0005,\r
++      0x9182, 0x0040, 0x0002, 0xcb4e, 0xcb4e, 0xcb4e, 0xcb4e, 0xcb4e,\r
++      0xcb4e, 0xcb4e, 0xcb4e, 0xcb4e, 0xcb50, 0xcb7b, 0xcb4e, 0xcb4e,\r
++      0xcb4e, 0xcb4e, 0xcb7b, 0xcb4e, 0xcb4e, 0xcb4e, 0x080c, 0x0d65,\r
++      0x6014, 0x0096, 0x2048, 0xa87c, 0xd0fc, 0x0168, 0x908c, 0x0003,\r
++      0x918e, 0x0002, 0x0180, 0x6144, 0xd1e4, 0x1168, 0x2009, 0x0041,\r
++      0x009e, 0x0804, 0xcc3b, 0x6003, 0x0007, 0x601b, 0x0000, 0x080c,\r
++      0x83c0, 0x009e, 0x0005, 0x6014, 0x2048, 0xa97c, 0xd1ec, 0x1130,\r
++      0x080c, 0x83c0, 0x080c, 0x9be7, 0x009e, 0x0005, 0x080c, 0xd476,\r
++      0x0db8, 0x009e, 0x0005, 0x2001, 0x180c, 0x200c, 0xc1d4, 0x2102,\r
++      0x0036, 0x080c, 0x88d1, 0x080c, 0x8936, 0x6014, 0x0096, 0x2048,\r
++      0x6010, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc, 0x0188, 0xa87c,\r
++      0x9084, 0x0003, 0x9086, 0x0002, 0x0140, 0xa8ac, 0x6330, 0x931a,\r
++      0x6332, 0xa8b0, 0x632c, 0x931b, 0x632e, 0x6003, 0x0002, 0x0080,\r
++      0x2019, 0x0004, 0x080c, 0xd21e, 0x6018, 0x9005, 0x1128, 0x2001,\r
++      0x1958, 0x2004, 0x8003, 0x601a, 0x6017, 0x0000, 0x6003, 0x0007,\r
++      0x009e, 0x003e, 0x0005, 0x9182, 0x0040, 0x0002, 0xcbca, 0xcbca,\r
++      0xcbca, 0xcbca, 0xcbca, 0xcbca, 0xcbca, 0xcbca, 0xcbcc, 0xcbca,\r
++      0xcbca, 0xcbca, 0xcbca, 0xcbca, 0xcbca, 0xcbca, 0xcbca, 0xcbca,\r
++      0xcbca, 0xcc17, 0x080c, 0x0d65, 0x6014, 0x0096, 0x2048, 0xa834,\r
++      0xaa38, 0x6110, 0x00b6, 0x2158, 0xb900, 0x00be, 0xd1bc, 0x1190,\r
++      0x920d, 0x1518, 0xa87c, 0xd0fc, 0x0128, 0x2009, 0x0041, 0x009e,\r
++      0x0804, 0xcc3b, 0x6003, 0x0007, 0x601b, 0x0000, 0x080c, 0x83c0,\r
++      0x009e, 0x0005, 0x6124, 0xd1f4, 0x1d58, 0x0006, 0x0046, 0xacac,\r
++      0x9422, 0xa9b0, 0x2200, 0x910b, 0x6030, 0x9420, 0x6432, 0x602c,\r
++      0x9109, 0x612e, 0x004e, 0x000e, 0x08d8, 0x6110, 0x00b6, 0x2158,\r
++      0xb900, 0x00be, 0xd1bc, 0x1178, 0x2009, 0x180e, 0x210c, 0xd19c,\r
++      0x0118, 0x6003, 0x0007, 0x0010, 0x6003, 0x0006, 0x00e9, 0x080c,\r
++      0x83c2, 0x009e, 0x0005, 0x6003, 0x0002, 0x009e, 0x0005, 0x6024,\r
++      0xd0f4, 0x0128, 0x080c, 0x1595, 0x1904, 0xcbcc, 0x0005, 0x6014,\r
++      0x0096, 0x2048, 0xa834, 0xa938, 0x009e, 0x9105, 0x1120, 0x080c,\r
++      0x1595, 0x1904, 0xcbcc, 0x0005, 0xd2fc, 0x0140, 0x8002, 0x8000,\r
++      0x8212, 0x9291, 0x0000, 0x2009, 0x0009, 0x0010, 0x2009, 0x0015,\r
++      0xaa9a, 0xa896, 0x0005, 0x9182, 0x0040, 0x0208, 0x0062, 0x9186,\r
++      0x0013, 0x0120, 0x9186, 0x0014, 0x190c, 0x0d65, 0x6024, 0xd0dc,\r
++      0x090c, 0x0d65, 0x0005, 0xcc5e, 0xcc6a, 0xcc76, 0xcc82, 0xcc5e,\r
++      0xcc5e, 0xcc5e, 0xcc5e, 0xcc65, 0xcc60, 0xcc60, 0xcc5e, 0xcc5e,\r
++      0xcc5e, 0xcc5e, 0xcc60, 0xcc5e, 0xcc60, 0xcc5e, 0x080c, 0x0d65,\r
++      0x6024, 0xd0dc, 0x090c, 0x0d65, 0x0005, 0x6014, 0x9005, 0x190c,\r
++      0x0d65, 0x0005, 0x6003, 0x0001, 0x6106, 0x0126, 0x2091, 0x8000,\r
++      0x2009, 0xa022, 0x080c, 0x84b3, 0x012e, 0x0005, 0x6003, 0x0004,\r
++      0x6106, 0x0126, 0x2091, 0x8000, 0x2009, 0xa001, 0x080c, 0x84d1,\r
++      0x012e, 0x0005, 0x6003, 0x0003, 0x6106, 0x080c, 0x1aa5, 0x0126,\r
++      0x2091, 0x8000, 0x6014, 0x0096, 0x2048, 0xa87c, 0xd0fc, 0x0188,\r
++      0x9084, 0x0003, 0x9086, 0x0002, 0x01a0, 0x6024, 0xd0cc, 0x1148,\r
++      0xd0c4, 0x1138, 0xa8a8, 0x9005, 0x1120, 0x6144, 0x918d, 0xb035,\r
++      0x0018, 0x6144, 0x918d, 0xa035, 0x009e, 0x080c, 0x8518, 0x012e,\r
++      0x0005, 0x6144, 0x918d, 0xa032, 0x0cb8, 0x0126, 0x2091, 0x8000,\r
++      0x0036, 0x0096, 0x9182, 0x0040, 0x0023, 0x009e, 0x003e, 0x012e,\r
++      0x0005, 0xccc9, 0xcccb, 0xcce0, 0xccfa, 0xccc9, 0xccc9, 0xccc9,\r
++      0xccc9, 0xccc9, 0xccc9, 0xccc9, 0xccc9, 0xccc9, 0xccc9, 0xccc9,\r
++      0xccc9, 0x080c, 0x0d65, 0x6014, 0x2048, 0xa87c, 0xd0fc, 0x0510,\r
++      0x909c, 0x0003, 0x939e, 0x0003, 0x01e8, 0x6003, 0x0001, 0x6106,\r
++      0x0126, 0x2091, 0x8000, 0x2009, 0xa022, 0x080c, 0x84d1, 0x0470,\r
++      0x6014, 0x2048, 0xa87c, 0xd0fc, 0x0168, 0x909c, 0x0003, 0x939e,\r
++      0x0003, 0x0140, 0x6003, 0x0001, 0x6106, 0x2009, 0xa001, 0x080c,\r
++      0x84d1, 0x00e0, 0x901e, 0x6316, 0x631a, 0x2019, 0x0004, 0x080c,\r
++      0xd21e, 0x00a0, 0x6014, 0x2048, 0xa87c, 0xd0fc, 0x0d98, 0x909c,\r
++      0x0003, 0x939e, 0x0003, 0x0d70, 0x6003, 0x0003, 0x6106, 0x080c,\r
++      0x1aa5, 0x6144, 0x918d, 0xa035, 0x080c, 0x8518, 0x0005, 0x080c,\r
++      0x8874, 0x6114, 0x81ff, 0x0158, 0x0096, 0x2148, 0x080c, 0xd51a,\r
++      0x0036, 0x2019, 0x0029, 0x080c, 0xd21e, 0x003e, 0x009e, 0x080c,\r
++      0x9c21, 0x080c, 0x8936, 0x0005, 0x080c, 0x88d1, 0x6114, 0x81ff,\r
++      0x0158, 0x0096, 0x2148, 0x080c, 0xd51a, 0x0036, 0x2019, 0x0029,\r
++      0x080c, 0xd21e, 0x003e, 0x009e, 0x080c, 0x9c21, 0x0005, 0x9182,\r
++      0x0085, 0x0002, 0xcd49, 0xcd47, 0xcd47, 0xcd55, 0xcd47, 0xcd47,\r
++      0xcd47, 0xcd47, 0xcd47, 0xcd47, 0xcd47, 0xcd47, 0xcd47, 0x080c,\r
++      0x0d65, 0x6003, 0x000b, 0x6106, 0x0126, 0x2091, 0x8000, 0x2009,\r
++      0x8020, 0x080c, 0x84d1, 0x012e, 0x0005, 0x0026, 0x00e6, 0x080c,\r
++      0xd46d, 0x0118, 0x080c, 0x9be7, 0x0440, 0x2071, 0x0260, 0x7224,\r
++      0x6216, 0x2001, 0x180e, 0x2004, 0xd0e4, 0x0150, 0x6010, 0x00b6,\r
++      0x2058, 0xbca0, 0x00be, 0x2c00, 0x2011, 0x014e, 0x080c, 0x9f13,\r
++      0x7220, 0x080c, 0xd0b4, 0x0118, 0x6007, 0x0086, 0x0040, 0x6007,\r
++      0x0087, 0x7224, 0x9296, 0xffff, 0x1110, 0x6007, 0x0086, 0x6003,\r
++      0x0001, 0x2009, 0x8020, 0x080c, 0x84d1, 0x00ee, 0x002e, 0x0005,\r
++      0x9186, 0x0013, 0x1160, 0x6004, 0x908a, 0x0085, 0x0a0c, 0x0d65,\r
++      0x908a, 0x0092, 0x1a0c, 0x0d65, 0x9082, 0x0085, 0x00a2, 0x9186,\r
++      0x0027, 0x0130, 0x9186, 0x0014, 0x0118, 0x080c, 0x9ca2, 0x0050,\r
++      0x2001, 0x0007, 0x080c, 0x61ed, 0x080c, 0x8874, 0x080c, 0x9c21,\r
++      0x080c, 0x8936, 0x0005, 0xcdb8, 0xcdba, 0xcdba, 0xcdb8, 0xcdb8,\r
++      0xcdb8, 0xcdb8, 0xcdb8, 0xcdb8, 0xcdb8, 0xcdb8, 0xcdb8, 0xcdb8,\r
++      0x080c, 0x0d65, 0x080c, 0x9c21, 0x080c, 0x8936, 0x0005, 0x9182,\r
++      0x0085, 0x0a0c, 0x0d65, 0x9182, 0x0092, 0x1a0c, 0x0d65, 0x9182,\r
++      0x0085, 0x0002, 0xcdd7, 0xcdd7, 0xcdd7, 0xcdd9, 0xcdd7, 0xcdd7,\r
++      0xcdd7, 0xcdd7, 0xcdd7, 0xcdd7, 0xcdd7, 0xcdd7, 0xcdd7, 0x080c,\r
++      0x0d65, 0x0005, 0x9186, 0x0013, 0x0148, 0x9186, 0x0014, 0x0130,\r
++      0x9186, 0x0027, 0x0118, 0x080c, 0x9ca2, 0x0020, 0x080c, 0x8874,\r
++      0x080c, 0x9c21, 0x0005, 0x0036, 0x080c, 0xd4ce, 0x604b, 0x0000,\r
++      0x2019, 0x000b, 0x0031, 0x6023, 0x0006, 0x6003, 0x0007, 0x003e,\r
++      0x0005, 0x0126, 0x0036, 0x2091, 0x8000, 0x2001, 0x0382, 0x2004,\r
++      0x9084, 0x0007, 0x0006, 0x9086, 0x0003, 0x0110, 0x080c, 0x98c8,\r
++      0x0086, 0x2c40, 0x0096, 0x904e, 0x080c, 0x9382, 0x009e, 0x008e,\r
++      0x1550, 0x0076, 0x2c38, 0x080c, 0x942d, 0x007e, 0x1520, 0x6000,\r
++      0x9086, 0x0000, 0x0500, 0x6020, 0x9086, 0x0007, 0x01e0, 0x0096,\r
++      0x601c, 0xd084, 0x0140, 0x080c, 0xd4ce, 0x080c, 0xbf79, 0x080c,\r
++      0x1914, 0x6023, 0x0007, 0x6014, 0x2048, 0x080c, 0xb847, 0x0110,\r
++      0x080c, 0xd21e, 0x009e, 0x6017, 0x0000, 0x080c, 0xd4ce, 0x6023,\r
++      0x0007, 0x080c, 0xbf79, 0x000e, 0x9086, 0x0003, 0x0110, 0x080c,\r
++      0x98e4, 0x003e, 0x012e, 0x0005, 0x00f6, 0x00c6, 0x00b6, 0x0036,\r
++      0x0156, 0x2079, 0x0260, 0x7938, 0x783c, 0x080c, 0x2424, 0x15e8,\r
++      0x0016, 0x00c6, 0x080c, 0x6270, 0x15b0, 0x001e, 0x00c6, 0x2160,\r
++      0x080c, 0xbf76, 0x00ce, 0x002e, 0x0026, 0x0016, 0x080c, 0x98c8,\r
++      0x2019, 0x0029, 0x080c, 0x94f4, 0x080c, 0x863b, 0x0076, 0x903e,\r
++      0x080c, 0x852a, 0x007e, 0x001e, 0x0076, 0x903e, 0x080c, 0xcfc8,\r
++      0x007e, 0x080c, 0x98e4, 0x0026, 0xba04, 0x9294, 0xff00, 0x8217,\r
++      0x9286, 0x0006, 0x0118, 0x9286, 0x0004, 0x1118, 0xbaa0, 0x080c,\r
++      0x30dc, 0x002e, 0xbc84, 0x001e, 0x080c, 0x5cf6, 0xbe12, 0xbd16,\r
++      0xbc86, 0x9006, 0x0010, 0x00ce, 0x001e, 0x015e, 0x003e, 0x00be,\r
++      0x00ce, 0x00fe, 0x0005, 0x00c6, 0x00d6, 0x00b6, 0x0016, 0x2009,\r
++      0x1823, 0x2104, 0x9086, 0x0074, 0x1904, 0xceec, 0x2069, 0x0260,\r
++      0x6944, 0x9182, 0x0100, 0x06e0, 0x6940, 0x9184, 0x8000, 0x0904,\r
++      0xcee9, 0x2001, 0x194d, 0x2004, 0x9005, 0x1140, 0x6010, 0x2058,\r
++      0xb884, 0x9005, 0x0118, 0x9184, 0x0800, 0x0598, 0x6948, 0x918a,\r
++      0x0001, 0x0648, 0x080c, 0xd582, 0x0118, 0x6978, 0xd1fc, 0x11b8,\r
++      0x2009, 0x0205, 0x200b, 0x0001, 0x693c, 0x81ff, 0x1198, 0x6944,\r
++      0x9182, 0x0100, 0x02a8, 0x6940, 0x81ff, 0x1178, 0x6948, 0x918a,\r
++      0x0001, 0x0288, 0x6950, 0x918a, 0x0001, 0x0298, 0x00d0, 0x6017,\r
++      0x0100, 0x00a0, 0x6017, 0x0300, 0x0088, 0x6017, 0x0500, 0x0070,\r
++      0x6017, 0x0700, 0x0058, 0x6017, 0x0900, 0x0040, 0x6017, 0x0b00,\r
++      0x0028, 0x6017, 0x0f00, 0x0010, 0x6017, 0x2d00, 0x9085, 0x0001,\r
++      0x0008, 0x9006, 0x001e, 0x00be, 0x00de, 0x00ce, 0x0005, 0x00c6,\r
++      0x00b6, 0x0026, 0x0036, 0x0156, 0x6210, 0x2258, 0xbb04, 0x9394,\r
++      0x00ff, 0x9286, 0x0006, 0x0180, 0x9286, 0x0004, 0x0168, 0x9394,\r
++      0xff00, 0x8217, 0x9286, 0x0006, 0x0138, 0x9286, 0x0004, 0x0120,\r
++      0x080c, 0x627f, 0x0804, 0xcf57, 0x2011, 0x0276, 0x20a9, 0x0004,\r
++      0x0096, 0x2b48, 0x2019, 0x000a, 0x080c, 0xabdf, 0x009e, 0x15c0,\r
++      0x2011, 0x027a, 0x20a9, 0x0004, 0x0096, 0x2b48, 0x2019, 0x0006,\r
++      0x080c, 0xabdf, 0x009e, 0x1560, 0x0046, 0x0016, 0xbaa0, 0x2220,\r
++      0x9006, 0x2009, 0x1854, 0x210c, 0x0038, 0x2009, 0x0029, 0x080c,\r
++      0xd273, 0xb800, 0xc0e5, 0xb802, 0x080c, 0x98c8, 0x2019, 0x0029,\r
++      0x080c, 0x863b, 0x0076, 0x2039, 0x0000, 0x080c, 0x852a, 0x2c08,\r
++      0x080c, 0xcfc8, 0x007e, 0x080c, 0x98e4, 0x2001, 0x0007, 0x080c,\r
++      0x61ed, 0x2001, 0x0007, 0x080c, 0x61c1, 0x001e, 0x004e, 0x9006,\r
++      0x015e, 0x003e, 0x002e, 0x00be, 0x00ce, 0x0005, 0x00d6, 0x2069,\r
++      0x026e, 0x6800, 0x9086, 0x0800, 0x0118, 0x6017, 0x0000, 0x0008,\r
++      0x9006, 0x00de, 0x0005, 0x00b6, 0x00f6, 0x0016, 0x0026, 0x0036,\r
++      0x0156, 0x2079, 0x026c, 0x7930, 0x7834, 0x080c, 0x2424, 0x11d0,\r
++      0x080c, 0x6270, 0x11b8, 0x2011, 0x0270, 0x20a9, 0x0004, 0x0096,\r
++      0x2b48, 0x2019, 0x000a, 0x080c, 0xabdf, 0x009e, 0x1158, 0x2011,\r
++      0x0274, 0x20a9, 0x0004, 0x0096, 0x2b48, 0x2019, 0x0006, 0x080c,\r
++      0xabdf, 0x009e, 0x015e, 0x003e, 0x002e, 0x001e, 0x00fe, 0x00be,\r
++      0x0005, 0x00b6, 0x0006, 0x0016, 0x0026, 0x0036, 0x0156, 0x2011,\r
++      0x0263, 0x2204, 0x8211, 0x220c, 0x080c, 0x2424, 0x11d0, 0x080c,\r
++      0x6270, 0x11b8, 0x2011, 0x0276, 0x20a9, 0x0004, 0x0096, 0x2b48,\r
++      0x2019, 0x000a, 0x080c, 0xabdf, 0x009e, 0x1158, 0x2011, 0x027a,\r
++      0x20a9, 0x0004, 0x0096, 0x2b48, 0x2019, 0x0006, 0x080c, 0xabdf,\r
++      0x009e, 0x015e, 0x003e, 0x002e, 0x001e, 0x000e, 0x00be, 0x0005,\r
++      0x00e6, 0x00c6, 0x0086, 0x0076, 0x0066, 0x0056, 0x0046, 0x0026,\r
++      0x0126, 0x2091, 0x8000, 0x080c, 0x9926, 0x0106, 0x190c, 0x98c8,\r
++      0x2740, 0x2029, 0x19c4, 0x252c, 0x2021, 0x19cb, 0x2424, 0x2061,\r
++      0x1ddc, 0x2071, 0x1800, 0x7650, 0x7070, 0x81ff, 0x0150, 0x0006,\r
++      0x9186, 0x1b02, 0x000e, 0x0128, 0x8001, 0x9602, 0x1a04, 0xd069,\r
++      0x0018, 0x9606, 0x0904, 0xd069, 0x2100, 0x9c06, 0x0904, 0xd060,\r
++      0x080c, 0xd2b4, 0x1904, 0xd060, 0x080c, 0xd59f, 0x0904, 0xd060,\r
++      0x080c, 0xd2a4, 0x0904, 0xd060, 0x6720, 0x9786, 0x0001, 0x1148,\r
++      0x080c, 0x3181, 0x0904, 0xd088, 0x6004, 0x9086, 0x0000, 0x1904,\r
++      0xd088, 0x9786, 0x0004, 0x0904, 0xd088, 0x9786, 0x0007, 0x0904,\r
++      0xd060, 0x2500, 0x9c06, 0x0904, 0xd060, 0x2400, 0x9c06, 0x0904,\r
++      0xd060, 0x88ff, 0x0118, 0x605c, 0x9906, 0x15d0, 0x0096, 0x6043,\r
++      0xffff, 0x6000, 0x9086, 0x0004, 0x1120, 0x0016, 0x080c, 0x1914,\r
++      0x001e, 0x9786, 0x000a, 0x0148, 0x080c, 0xba5c, 0x1130, 0x080c,\r
++      0xa58f, 0x009e, 0x080c, 0x9c21, 0x0418, 0x6014, 0x2048, 0x080c,\r
++      0xb847, 0x01d8, 0x9786, 0x0003, 0x1588, 0xa867, 0x0103, 0xa87c,\r
++      0xd0cc, 0x0130, 0x0096, 0xa878, 0x2048, 0x080c, 0x0fd4, 0x009e,\r
++      0xab7a, 0xa877, 0x0000, 0x080c, 0xd51a, 0x0016, 0x080c, 0xbb45,\r
++      0x080c, 0x698a, 0x001e, 0x080c, 0xba36, 0x009e, 0x080c, 0x9c21,\r
++      0x9ce0, 0x001c, 0x2001, 0x1819, 0x2004, 0x9c02, 0x1210, 0x0804,\r
++      0xcfe1, 0x010e, 0x190c, 0x98e4, 0x012e, 0x002e, 0x004e, 0x005e,\r
++      0x006e, 0x007e, 0x008e, 0x00ce, 0x00ee, 0x0005, 0x9786, 0x0006,\r
++      0x1150, 0x9386, 0x0005, 0x0128, 0x080c, 0xd51a, 0x080c, 0xd21e,\r
++      0x08e0, 0x009e, 0x08e8, 0x9786, 0x000a, 0x0908, 0x0804, 0xd045,\r
++      0x81ff, 0x09b0, 0x9180, 0x0001, 0x2004, 0x9086, 0x0018, 0x0130,\r
++      0x9180, 0x0001, 0x2004, 0x9086, 0x002d, 0x1950, 0x6000, 0x9086,\r
++      0x0002, 0x1930, 0x080c, 0xba4b, 0x0130, 0x080c, 0xba5c, 0x1900,\r
++      0x080c, 0xa58f, 0x0038, 0x080c, 0x303b, 0x080c, 0xba5c, 0x1110,\r
++      0x080c, 0xa58f, 0x080c, 0x9c21, 0x0804, 0xd060, 0xa864, 0x9084,\r
++      0x00ff, 0x9086, 0x0039, 0x0005, 0x00c6, 0x00e6, 0x0016, 0x2c08,\r
++      0x2170, 0x9006, 0x080c, 0xd245, 0x001e, 0x0120, 0x6020, 0x9084,\r
++      0x000f, 0x001b, 0x00ee, 0x00ce, 0x0005, 0xd0d3, 0xd0d3, 0xd0d3,\r
++      0xd0d3, 0xd0d3, 0xd0d3, 0xd0d5, 0xd0d3, 0xd0d3, 0xd0d3, 0xd0d3,\r
++      0x9c21, 0x9c21, 0xd0d3, 0x9006, 0x0005, 0x0036, 0x0046, 0x0016,\r
++      0x7010, 0x00b6, 0x2058, 0xbca0, 0x00be, 0x2c00, 0x2009, 0x0020,\r
++      0x080c, 0xd273, 0x001e, 0x004e, 0x2019, 0x0002, 0x080c, 0xcdf9,\r
++      0x003e, 0x9085, 0x0001, 0x0005, 0x0096, 0x080c, 0xb847, 0x0140,\r
++      0x6014, 0x904d, 0x080c, 0xb452, 0x687b, 0x0005, 0x080c, 0x6996,\r
++      0x009e, 0x080c, 0x9c21, 0x9085, 0x0001, 0x0005, 0x2001, 0x0001,\r
++      0x080c, 0x61ad, 0x0156, 0x0016, 0x0026, 0x0036, 0x20a9, 0x0004,\r
++      0x2019, 0x1805, 0x2011, 0x0276, 0x080c, 0xabcb, 0x003e, 0x002e,\r
++      0x001e, 0x015e, 0x9005, 0x0005, 0x00f6, 0x00e6, 0x00c6, 0x0086,\r
++      0x0076, 0x0066, 0x00b6, 0x0126, 0x2091, 0x8000, 0x2740, 0x2061,\r
++      0x1ddc, 0x2079, 0x0001, 0x8fff, 0x0904, 0xd16e, 0x2071, 0x1800,\r
++      0x7650, 0x7070, 0x8001, 0x9602, 0x1a04, 0xd16e, 0x88ff, 0x0120,\r
++      0x2800, 0x9c06, 0x1590, 0x2078, 0x080c, 0xd2a4, 0x0570, 0x2400,\r
++      0x9c06, 0x0558, 0x6720, 0x9786, 0x0006, 0x1538, 0x9786, 0x0007,\r
++      0x0520, 0x88ff, 0x1140, 0x6010, 0x9b06, 0x11f8, 0x85ff, 0x0118,\r
++      0x605c, 0x9106, 0x11d0, 0x0096, 0x601c, 0xd084, 0x0140, 0x080c,\r
++      0xd4ce, 0x080c, 0xbf79, 0x080c, 0x1914, 0x6023, 0x0007, 0x6014,\r
++      0x2048, 0x080c, 0xb847, 0x0120, 0x0046, 0x080c, 0xd21e, 0x004e,\r
++      0x009e, 0x080c, 0x9c21, 0x88ff, 0x1198, 0x9ce0, 0x001c, 0x2001,\r
++      0x1819, 0x2004, 0x9c02, 0x1210, 0x0804, 0xd123, 0x9006, 0x012e,\r
++      0x00be, 0x006e, 0x007e, 0x008e, 0x00ce, 0x00ee, 0x00fe, 0x0005,\r
++      0x98c5, 0x0001, 0x0ca0, 0x080c, 0x98c8, 0x00b6, 0x0076, 0x0056,\r
++      0x0086, 0x9046, 0x2029, 0x0001, 0x2c20, 0x2019, 0x0002, 0x6210,\r
++      0x2258, 0x0096, 0x904e, 0x080c, 0x9382, 0x009e, 0x008e, 0x903e,\r
++      0x080c, 0x942d, 0x080c, 0xd114, 0x005e, 0x007e, 0x00be, 0x080c,\r
++      0x98e4, 0x0005, 0x080c, 0x98c8, 0x00b6, 0x0046, 0x0056, 0x0076,\r
++      0x00c6, 0x0156, 0x2c20, 0x2128, 0x20a9, 0x007f, 0x900e, 0x0016,\r
++      0x0036, 0x080c, 0x6270, 0x1190, 0x0056, 0x0086, 0x9046, 0x2508,\r
++      0x2029, 0x0001, 0x0096, 0x904e, 0x080c, 0x9382, 0x009e, 0x008e,\r
++      0x903e, 0x080c, 0x942d, 0x080c, 0xd114, 0x005e, 0x003e, 0x001e,\r
++      0x8108, 0x1f04, 0xd1a7, 0x015e, 0x00ce, 0x007e, 0x005e, 0x004e,\r
++      0x00be, 0x080c, 0x98e4, 0x0005, 0x080c, 0x98c8, 0x00b6, 0x0076,\r
++      0x0056, 0x6210, 0x2258, 0x0086, 0x9046, 0x2029, 0x0001, 0x2019,\r
++      0x0048, 0x0096, 0x904e, 0x080c, 0x9382, 0x009e, 0x008e, 0x903e,\r
++      0x080c, 0x942d, 0x2c20, 0x080c, 0xd114, 0x005e, 0x007e, 0x00be,\r
++      0x080c, 0x98e4, 0x0005, 0x080c, 0x98c8, 0x00b6, 0x0046, 0x0056,\r
++      0x0076, 0x00c6, 0x0156, 0x2c20, 0x20a9, 0x0800, 0x900e, 0x0016,\r
++      0x0036, 0x080c, 0x6270, 0x11a0, 0x0086, 0x9046, 0x2828, 0x0046,\r
++      0x2021, 0x0001, 0x080c, 0xd4b2, 0x004e, 0x0096, 0x904e, 0x080c,\r
++      0x9382, 0x009e, 0x008e, 0x903e, 0x080c, 0x942d, 0x080c, 0xd114,\r
++      0x003e, 0x001e, 0x8108, 0x1f04, 0xd1f7, 0x015e, 0x00ce, 0x007e,\r
++      0x005e, 0x004e, 0x00be, 0x080c, 0x98e4, 0x0005, 0x0016, 0x00f6,\r
++      0x080c, 0xb845, 0x0198, 0xa864, 0x9084, 0x00ff, 0x9086, 0x0046,\r
++      0x0180, 0xa800, 0x907d, 0x0138, 0xa803, 0x0000, 0xab82, 0x080c,\r
++      0x6996, 0x2f48, 0x0cb0, 0xab82, 0x080c, 0x6996, 0x00fe, 0x001e,\r
++      0x0005, 0xa800, 0x907d, 0x0130, 0xa803, 0x0000, 0x080c, 0x6996,\r
++      0x2f48, 0x0cb8, 0x080c, 0x6996, 0x0c88, 0x00e6, 0x0046, 0x0036,\r
++      0x2061, 0x1ddc, 0x9005, 0x1138, 0x2071, 0x1800, 0x7450, 0x7070,\r
++      0x8001, 0x9402, 0x12d8, 0x2100, 0x9c06, 0x0168, 0x6000, 0x9086,\r
++      0x0000, 0x0148, 0x6008, 0x9206, 0x1130, 0x6010, 0x91a0, 0x0004,\r
++      0x2424, 0x9406, 0x0140, 0x9ce0, 0x001c, 0x2001, 0x1819, 0x2004,\r
++      0x9c02, 0x1220, 0x0c40, 0x9085, 0x0001, 0x0008, 0x9006, 0x003e,\r
++      0x004e, 0x00ee, 0x0005, 0x0096, 0x0006, 0x080c, 0x1022, 0x000e,\r
++      0x090c, 0x0d65, 0xaae2, 0xa867, 0x010d, 0xa88e, 0x0026, 0x2010,\r
++      0x080c, 0xb835, 0x2001, 0x0000, 0x0120, 0x2200, 0x9080, 0x0017,\r
++      0x2004, 0x002e, 0xa87a, 0x9186, 0x0020, 0x0110, 0xa8e3, 0xffff,\r
++      0xa986, 0xac76, 0xa87f, 0x0000, 0x2001, 0x195f, 0x2004, 0xa882,\r
++      0x9006, 0xa802, 0xa86a, 0xa88a, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0x6996, 0x012e, 0x009e, 0x0005, 0x6700, 0x9786, 0x0000, 0x0158,\r
++      0x9786, 0x0001, 0x0140, 0x9786, 0x000a, 0x0128, 0x9786, 0x0009,\r
++      0x0110, 0x9085, 0x0001, 0x0005, 0x00e6, 0x6010, 0x9075, 0x0138,\r
++      0x00b6, 0x2058, 0xb8a0, 0x00be, 0x9206, 0x00ee, 0x0005, 0x9085,\r
++      0x0001, 0x0cd8, 0x0016, 0x6004, 0x908e, 0x001e, 0x11a0, 0x8007,\r
++      0x6134, 0x918c, 0x00ff, 0x9105, 0x6036, 0x6007, 0x0085, 0x6003,\r
++      0x000b, 0x6023, 0x0005, 0x2001, 0x1958, 0x2004, 0x601a, 0x2009,\r
++      0x8020, 0x080c, 0x84d1, 0x001e, 0x0005, 0xa001, 0xa001, 0x0005,\r
++      0x6024, 0xd0e4, 0x0158, 0xd0cc, 0x0118, 0x080c, 0xbb8c, 0x0030,\r
++      0x080c, 0xd4ce, 0x080c, 0x83c0, 0x080c, 0x9be7, 0x0005, 0x9280,\r
++      0x0008, 0x2004, 0x9084, 0x000f, 0x0002, 0xd303, 0xd303, 0xd303,\r
++      0xd305, 0xd303, 0xd305, 0xd305, 0xd303, 0xd305, 0xd303, 0xd303,\r
++      0xd303, 0xd303, 0xd303, 0x9006, 0x0005, 0x9085, 0x0001, 0x0005,\r
++      0x9280, 0x0008, 0x2004, 0x9084, 0x000f, 0x0002, 0xd31c, 0xd31c,\r
++      0xd31c, 0xd31c, 0xd31c, 0xd31c, 0xd329, 0xd31c, 0xd31c, 0xd31c,\r
++      0xd31c, 0xd31c, 0xd31c, 0xd31c, 0x6007, 0x003b, 0x602f, 0x0009,\r
++      0x6017, 0x2a00, 0x6003, 0x0001, 0x2009, 0x8020, 0x080c, 0x84d1,\r
++      0x0005, 0x0096, 0x00c6, 0x2260, 0x080c, 0xd4ce, 0x604b, 0x0000,\r
++      0x6024, 0xc0f4, 0xc0e4, 0x6026, 0x603b, 0x0000, 0x00ce, 0x00d6,\r
++      0x2268, 0x9186, 0x0007, 0x1904, 0xd382, 0x6814, 0x9005, 0x0138,\r
++      0x2048, 0xa87c, 0xd0fc, 0x1118, 0x00de, 0x009e, 0x08a8, 0x6007,\r
++      0x003a, 0x6003, 0x0001, 0x2009, 0x8020, 0x080c, 0x84d1, 0x00c6,\r
++      0x2d60, 0x6100, 0x9186, 0x0002, 0x1904, 0xd3f9, 0x6014, 0x9005,\r
++      0x1138, 0x6000, 0x9086, 0x0007, 0x190c, 0x0d65, 0x0804, 0xd3f9,\r
++      0x2048, 0x080c, 0xb847, 0x1130, 0x0028, 0x2048, 0xa800, 0x9005,\r
++      0x1de0, 0x2900, 0x2048, 0xa87c, 0x9084, 0x0003, 0x9086, 0x0002,\r
++      0x1168, 0xa87c, 0xc0dc, 0xc0f4, 0xa87e, 0xa880, 0xc0fc, 0xa882,\r
++      0x2009, 0x0043, 0x080c, 0xcc3b, 0x0804, 0xd3f9, 0x2009, 0x0041,\r
++      0x0804, 0xd3f3, 0x9186, 0x0005, 0x15a0, 0x6814, 0x2048, 0xa87c,\r
++      0xd0bc, 0x1120, 0x00de, 0x009e, 0x0804, 0xd31c, 0xd0b4, 0x0128,\r
++      0xd0fc, 0x090c, 0x0d65, 0x0804, 0xd33d, 0x6007, 0x003a, 0x6003,\r
++      0x0001, 0x2009, 0x8020, 0x080c, 0x84d1, 0x00c6, 0x2d60, 0x6100,\r
++      0x9186, 0x0002, 0x0120, 0x9186, 0x0004, 0x1904, 0xd3f9, 0x6814,\r
++      0x2048, 0xa97c, 0xc1f4, 0xc1dc, 0xa97e, 0xa980, 0xc1fc, 0xc1bc,\r
++      0xa982, 0x00f6, 0x2c78, 0x080c, 0x164f, 0x00fe, 0x2009, 0x0042,\r
++      0x04d0, 0x0036, 0x080c, 0x1022, 0x090c, 0x0d65, 0xa867, 0x010d,\r
++      0x9006, 0xa802, 0xa86a, 0xa88a, 0x2d18, 0xab8e, 0xa887, 0x0045,\r
++      0x2c00, 0xa892, 0x6038, 0xa8a2, 0x2360, 0x6024, 0xc0dd, 0x6026,\r
++      0x6010, 0x00b6, 0x2058, 0xb8a0, 0x00be, 0x2004, 0x635c, 0xab7a,\r
++      0xa876, 0x9006, 0xa87e, 0xa882, 0xad9a, 0xae96, 0xa89f, 0x0001,\r
++      0x080c, 0x6996, 0x2019, 0x0045, 0x6008, 0x2068, 0x080c, 0xcdf9,\r
++      0x2d00, 0x600a, 0x6023, 0x0006, 0x6003, 0x0007, 0x901e, 0x631a,\r
++      0x634a, 0x003e, 0x0038, 0x604b, 0x0000, 0x6003, 0x0007, 0x080c,\r
++      0xcc3b, 0x00ce, 0x00de, 0x009e, 0x0005, 0x9186, 0x0013, 0x1128,\r
++      0x6004, 0x9082, 0x0085, 0x2008, 0x00c2, 0x9186, 0x0027, 0x1178,\r
++      0x080c, 0x8874, 0x0036, 0x0096, 0x6014, 0x2048, 0x2019, 0x0004,\r
++      0x080c, 0xd21e, 0x009e, 0x003e, 0x080c, 0x8936, 0x0005, 0x9186,\r
++      0x0014, 0x0d70, 0x080c, 0x9ca2, 0x0005, 0xd42c, 0xd42a, 0xd42a,\r
++      0xd42a, 0xd42a, 0xd42a, 0xd42c, 0xd42a, 0xd42a, 0xd42a, 0xd42a,\r
++      0xd42a, 0xd42a, 0x080c, 0x0d65, 0x6003, 0x000c, 0x080c, 0x8936,\r
++      0x0005, 0x9182, 0x0092, 0x1220, 0x9182, 0x0085, 0x0208, 0x001a,\r
++      0x080c, 0x9ca2, 0x0005, 0xd448, 0xd448, 0xd448, 0xd448, 0xd44a,\r
++      0xd46a, 0xd448, 0xd448, 0xd448, 0xd448, 0xd448, 0xd448, 0xd448,\r
++      0x080c, 0x0d65, 0x00d6, 0x2c68, 0x080c, 0x9b91, 0x01b0, 0x6003,\r
++      0x0001, 0x6007, 0x001e, 0x2009, 0x026e, 0x210c, 0x613a, 0x2009,\r
++      0x026f, 0x210c, 0x613e, 0x600b, 0xffff, 0x6910, 0x6112, 0x6023,\r
++      0x0004, 0x2009, 0x8020, 0x080c, 0x84d1, 0x2d60, 0x080c, 0x9be7,\r
++      0x00de, 0x0005, 0x080c, 0x9be7, 0x0005, 0x00e6, 0x6010, 0x00b6,\r
++      0x2058, 0xb800, 0x00be, 0xd0ec, 0x00ee, 0x0005, 0x2009, 0x1873,\r
++      0x210c, 0xd1ec, 0x05b0, 0x6003, 0x0002, 0x6024, 0xc0e5, 0x6026,\r
++      0xd0cc, 0x0150, 0x2001, 0x1959, 0x2004, 0x604a, 0x2009, 0x1873,\r
++      0x210c, 0xd1f4, 0x1520, 0x00a0, 0x2009, 0x1873, 0x210c, 0xd1f4,\r
++      0x0128, 0x6024, 0xc0e4, 0x6026, 0x9006, 0x00d8, 0x2001, 0x1959,\r
++      0x200c, 0x2001, 0x1957, 0x2004, 0x9100, 0x9080, 0x000a, 0x604a,\r
++      0x6010, 0x00b6, 0x2058, 0xb8ac, 0x00be, 0x0008, 0x2104, 0x9005,\r
++      0x0118, 0x9088, 0x0003, 0x0cd0, 0x2c0a, 0x600f, 0x0000, 0x9085,\r
++      0x0001, 0x0005, 0x0016, 0x00c6, 0x00e6, 0x615c, 0xb8ac, 0x2060,\r
++      0x8cff, 0x0180, 0x84ff, 0x1118, 0x605c, 0x9106, 0x1138, 0x600c,\r
++      0x2072, 0x080c, 0x83c0, 0x080c, 0x9be7, 0x0010, 0x9cf0, 0x0003,\r
++      0x2e64, 0x0c70, 0x00ee, 0x00ce, 0x001e, 0x0005, 0x00d6, 0x00b6,\r
++      0x6010, 0x2058, 0xb8ac, 0x2068, 0x9005, 0x0130, 0x9c06, 0x0110,\r
++      0x680c, 0x0cd0, 0x600c, 0x680e, 0x00be, 0x00de, 0x0005, 0x0026,\r
++      0x0036, 0x0156, 0x2011, 0x182b, 0x2204, 0x9084, 0x00ff, 0x2019,\r
++      0x026e, 0x2334, 0x9636, 0x1508, 0x8318, 0x2334, 0x2204, 0x9084,\r
++      0xff00, 0x9636, 0x11d0, 0x2011, 0x0270, 0x20a9, 0x0004, 0x6010,\r
++      0x0096, 0x2048, 0x2019, 0x000a, 0x080c, 0xabdf, 0x009e, 0x1168,\r
++      0x2011, 0x0274, 0x20a9, 0x0004, 0x6010, 0x0096, 0x2048, 0x2019,\r
++      0x0006, 0x080c, 0xabdf, 0x009e, 0x1100, 0x015e, 0x003e, 0x002e,\r
++      0x0005, 0x00e6, 0x2071, 0x1800, 0x080c, 0x5c6f, 0x080c, 0x2ddb,\r
++      0x00ee, 0x0005, 0x00e6, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be,\r
++      0xd0fc, 0x0108, 0x0011, 0x00ee, 0x0005, 0xa880, 0xc0e5, 0xa882,\r
++      0x0005, 0x00e6, 0x00d6, 0x00c6, 0x0076, 0x0066, 0x0056, 0x0046,\r
++      0x0026, 0x0016, 0x0126, 0x2091, 0x8000, 0x2029, 0x19c4, 0x252c,\r
++      0x2021, 0x19cb, 0x2424, 0x2061, 0x1ddc, 0x2071, 0x1800, 0x7650,\r
++      0x7070, 0x9606, 0x0578, 0x6720, 0x9786, 0x0001, 0x0118, 0x9786,\r
++      0x0008, 0x1500, 0x2500, 0x9c06, 0x01e8, 0x2400, 0x9c06, 0x01d0,\r
++      0x080c, 0xd2a4, 0x01b8, 0x080c, 0xd2b4, 0x11a0, 0x6000, 0x9086,\r
++      0x0004, 0x1120, 0x0016, 0x080c, 0x1914, 0x001e, 0x080c, 0xba4b,\r
++      0x1110, 0x080c, 0x303b, 0x080c, 0xba5c, 0x1110, 0x080c, 0xa58f,\r
++      0x080c, 0x9c21, 0x9ce0, 0x001c, 0x2001, 0x1819, 0x2004, 0x9c02,\r
++      0x1208, 0x0858, 0x012e, 0x001e, 0x002e, 0x004e, 0x005e, 0x006e,\r
++      0x007e, 0x00ce, 0x00de, 0x00ee, 0x0005, 0x2001, 0x1810, 0x2004,\r
++      0xd0dc, 0x0005, 0x0006, 0x2001, 0x1836, 0x2004, 0xd09c, 0x000e,\r
++      0x0005, 0x0006, 0x0036, 0x0046, 0x080c, 0xbf61, 0x0168, 0x2019,\r
++      0xffff, 0x9005, 0x0128, 0x6010, 0x00b6, 0x2058, 0xbba0, 0x00be,\r
++      0x2021, 0x0004, 0x080c, 0x4a75, 0x004e, 0x003e, 0x000e, 0x6004,\r
++      0x9086, 0x0001, 0x1128, 0x080c, 0x94f4, 0x080c, 0x9c21, 0x9006,\r
++      0x0005, 0x00e6, 0x00c6, 0x00b6, 0x0046, 0x2061, 0x1ddc, 0x2071,\r
++      0x1800, 0x7450, 0x7070, 0x8001, 0x9402, 0x12b8, 0x2100, 0x9c06,\r
++      0x0148, 0x6000, 0x9086, 0x0000, 0x0128, 0x6010, 0x2058, 0xb8a0,\r
++      0x9206, 0x0140, 0x9ce0, 0x001c, 0x2001, 0x1819, 0x2004, 0x9c02,\r
++      0x1220, 0x0c60, 0x9085, 0x0001, 0x0008, 0x9006, 0x004e, 0x00be,\r
++      0x00ce, 0x00ee, 0x0005, 0x0126, 0x0006, 0x00e6, 0x0016, 0x2091,\r
++      0x8000, 0x2071, 0x1840, 0xd5a4, 0x0118, 0x7034, 0x8000, 0x7036,\r
++      0xd5b4, 0x0118, 0x7030, 0x8000, 0x7032, 0xd5ac, 0x0178, 0x2500,\r
++      0x9084, 0x0007, 0x908e, 0x0003, 0x0148, 0x908e, 0x0004, 0x0130,\r
++      0x908e, 0x0005, 0x0118, 0x2071, 0x184a, 0x0089, 0x001e, 0x00ee,\r
++      0x000e, 0x012e, 0x0005, 0x0126, 0x0006, 0x00e6, 0x2091, 0x8000,\r
++      0x2071, 0x1842, 0x0021, 0x00ee, 0x000e, 0x012e, 0x0005, 0x2e04,\r
++      0x8000, 0x2072, 0x1220, 0x8e70, 0x2e04, 0x8000, 0x2072, 0x0005,\r
++      0x00e6, 0x2071, 0x1840, 0x0c99, 0x00ee, 0x0005, 0x00e6, 0x2071,\r
++      0x1844, 0x0c69, 0x00ee, 0x0005, 0x0126, 0x0006, 0x00e6, 0x2091,\r
++      0x8000, 0x2071, 0x1840, 0x7044, 0x8000, 0x7046, 0x00ee, 0x000e,\r
++      0x012e, 0x0005, 0x0001, 0x0002, 0x0004, 0x0008, 0x0010, 0x0020,\r
++      0x0040, 0x0080, 0x0100, 0x0200, 0x0400, 0x0800, 0x1000, 0x2000,\r
++      0x4000, 0x8000, 0xfddb\r
++};\r
++#ifdef UNIQUE_FW_NAME\r
++unsigned short fw2322flx_length01 = 0xce3b;\r
++#else\r
++unsigned short risc_code_length01 = 0xce3b;\r
++#endif\r
++\r
++/*\r
++ *\r
++ */\r
++\r
++unsigned long rseqflx_code_addr01 = 0x0001c000 ;\r
++unsigned short rseqflx_code01[] = { \r
++0x000b, 0x0003, 0x0000, 0x071c, 0x0001, 0xc000, 0x0008, 0x8064,\r
++      0x0000, 0x0010, 0x0000, 0x8066, 0x0008, 0x0101, 0x0003, 0xc007,\r
++      0x0008, 0x80e0, 0x0008, 0xff00, 0x0000, 0x80e2, 0x0008, 0xff00,\r
++      0x0008, 0x0162, 0x0000, 0x8066, 0x0008, 0xa101, 0x000b, 0xc00f,\r
++      0x0008, 0x0d02, 0x0000, 0x8060, 0x0000, 0x0400, 0x000b, 0x60af,\r
++      0x0003, 0x5817, 0x0003, 0x7ac6, 0x0003, 0x5209, 0x000b, 0xc813,\r
++      0x0009, 0xbac0, 0x0000, 0x008a, 0x0003, 0x8813, 0x0000, 0x15fc,\r
++      0x000b, 0xb013, 0x0009, 0xc4c0, 0x0000, 0x7000, 0x0001, 0xffa0,\r
++      0x0000, 0x2000, 0x000b, 0x9366, 0x0008, 0x808c, 0x0000, 0x0001,\r
++      0x0007, 0x0000, 0x0007, 0x0000, 0x000a, 0x4047, 0x0008, 0x808c,\r
++      0x0000, 0x0002, 0x0007, 0x0000, 0x0003, 0x082d, 0x0000, 0x4022,\r
++      0x000b, 0x002e, 0x0008, 0x4122, 0x0002, 0x4447, 0x0003, 0x8b8a,\r
++      0x0008, 0x0bfe, 0x0001, 0x11a0, 0x0003, 0x136c, 0x0001, 0x0ca0,\r
++      0x0003, 0x136c, 0x0001, 0x9180, 0x0000, 0x0004, 0x0000, 0x8060,\r
++      0x0000, 0x0400, 0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0x0009,\r
++      0x000b, 0xc03c, 0x0008, 0x808c, 0x0008, 0x0000, 0x0008, 0x0060,\r
++      0x0008, 0x8062, 0x0000, 0x0004, 0x0000, 0x8066, 0x0000, 0x0411,\r
++      0x000b, 0xc044, 0x0000, 0x03fe, 0x0001, 0x43e0, 0x000b, 0x8b69,\r
++      0x0009, 0xc2c0, 0x0008, 0x00ff, 0x0001, 0x02e0, 0x000b, 0x8b69,\r
++      0x0001, 0x9180, 0x0008, 0x0005, 0x0000, 0x8060, 0x0000, 0x0400,\r
++      0x0008, 0x7f62, 0x0000, 0x8066, 0x0000, 0x0019, 0x000b, 0xc053,\r
++      0x0002, 0x0240, 0x0003, 0x0b66, 0x0008, 0x00fc, 0x000b, 0x3369,\r
++      0x000a, 0x0244, 0x0003, 0x0865, 0x000c, 0x01e2, 0x0001, 0x9180,\r
++      0x0000, 0x0007, 0x0008, 0x7f62, 0x0000, 0x8060, 0x0000, 0x0400,\r
++      0x0002, 0x0234, 0x0008, 0x7f04, 0x0000, 0x8066, 0x0000, 0x040a,\r
++      0x0003, 0xc064, 0x0000, 0x112a, 0x0008, 0x002e, 0x0008, 0x022c,\r
++      0x0002, 0x3a44, 0x0003, 0x8813, 0x0008, 0x808c, 0x0000, 0x0002,\r
++      0x0008, 0x1760, 0x0008, 0x8062, 0x0008, 0x000f, 0x0000, 0x8066,\r
++      0x0008, 0x0011, 0x000b, 0xc071, 0x0008, 0x01fe, 0x0009, 0x42e0,\r
++      0x0003, 0x8b5b, 0x0000, 0x00fe, 0x0001, 0x43e0, 0x0003, 0x8b5b,\r
++      0x0000, 0x1734, 0x0000, 0x1530, 0x0008, 0x1632, 0x0008, 0x0d2a,\r
++      0x0001, 0x9880, 0x0008, 0x0012, 0x0000, 0x8060, 0x0000, 0x0400,\r
++      0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0x1e0a, 0x0003, 0xc083,\r
++      0x0008, 0x808a, 0x0008, 0x0003, 0x0000, 0x1a60, 0x0008, 0x8062,\r
++      0x0000, 0x0002, 0x000b, 0x5889, 0x0000, 0x8066, 0x0000, 0x3679,\r
++      0x0003, 0xc08c, 0x0003, 0x588d, 0x0008, 0x8054, 0x0008, 0x0011,\r
++      0x0000, 0x8074, 0x0008, 0x1010, 0x0008, 0x1efc, 0x0003, 0x3013,\r
++      0x0004, 0x0096, 0x0003, 0x0013, 0x0000, 0x1c60, 0x0000, 0x1b62,\r
++      0x0000, 0x8066, 0x0008, 0x0231, 0x000b, 0xc09a, 0x000b, 0x589b,\r
++      0x0008, 0x0140, 0x0000, 0x0242, 0x0002, 0x1f43, 0x000b, 0x88a5,\r
++      0x0000, 0x0d44, 0x0008, 0x0d46, 0x0008, 0x0348, 0x0008, 0x044a,\r
++      0x000b, 0x00a9, 0x0008, 0x0344, 0x0008, 0x0446, 0x0008, 0x0548,\r
++      0x0000, 0x064a, 0x0003, 0x58a9, 0x0008, 0x8054, 0x0000, 0x0001,\r
++      0x0000, 0x8074, 0x0008, 0x2020, 0x000f, 0x4000, 0x0000, 0x4820,\r
++      0x0008, 0x0bfe, 0x0009, 0x10a0, 0x0003, 0x1110, 0x0001, 0x0ca0,\r
++      0x0003, 0x1110, 0x0000, 0x8060, 0x0000, 0x0400, 0x0009, 0x9080,\r
++      0x0000, 0x0008, 0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0x0009,\r
++      0x0003, 0xc0bc, 0x0001, 0x80e0, 0x0008, 0x0003, 0x000b, 0x8910,\r
++      0x0000, 0x49b4, 0x0002, 0x4b4e, 0x000b, 0x8919, 0x0008, 0x808a,\r
++      0x0000, 0x0004, 0x0000, 0x18fe, 0x0001, 0x10e0, 0x000b, 0x88ca,\r
++      0x0002, 0x192f, 0x0008, 0x7f32, 0x0008, 0x15fe, 0x0001, 0x10e0,\r
++      0x000b, 0x88cf, 0x0002, 0x162f, 0x0008, 0x7f2c, 0x0000, 0x8060,\r
++      0x0000, 0x0400, 0x0009, 0x9080, 0x0000, 0x0007, 0x0008, 0x7f62,\r
++      0x0000, 0x8066, 0x0008, 0x0009, 0x0003, 0xc0d6, 0x000a, 0x004f,\r
++      0x000b, 0x8907, 0x000a, 0x0040, 0x000b, 0x08f1, 0x0002, 0x004e,\r
++      0x000b, 0x08f1, 0x0002, 0x0030, 0x0002, 0x7f2f, 0x0000, 0x7f00,\r
++      0x0000, 0x8066, 0x0008, 0x000a, 0x000b, 0xc0e2, 0x0008, 0x1010,\r
++      0x000c, 0x01c9, 0x000b, 0xb0ea, 0x000c, 0x032f, 0x0004, 0x01b3,\r
++      0x000b, 0x7814, 0x0003, 0x0013, 0x0000, 0x0806, 0x0008, 0x8010,\r
++      0x0000, 0x001f, 0x000c, 0x032f, 0x0000, 0x0310, 0x000c, 0x032f,\r
++      0x000b, 0x00e8, 0x000a, 0x002f, 0x0000, 0x7f00, 0x0000, 0x8066,\r
++      0x0008, 0x000a, 0x000b, 0xc0f5, 0x0004, 0x018c, 0x000a, 0x0040,\r
++      0x000b, 0x090a, 0x000c, 0x01f9, 0x0000, 0x8000, 0x0000, 0x0002,\r
++      0x0000, 0x8060, 0x0000, 0x0400, 0x0009, 0x9080, 0x0008, 0x0006,\r
++      0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0x000a, 0x0003, 0xc103,\r
++      0x0000, 0x8072, 0x0000, 0x4000, 0x000b, 0x00e8, 0x0008, 0x8010,\r
++      0x0008, 0x001e, 0x0003, 0x010c, 0x0008, 0x8010, 0x0008, 0x001d,\r
++      0x000c, 0x032f, 0x0008, 0x1010, 0x000c, 0x032f, 0x000b, 0x0014,\r
++      0x0002, 0x4b4e, 0x0003, 0x0916, 0x0008, 0x808a, 0x0000, 0x0004,\r
++      0x000b, 0x6116, 0x000f, 0x8000, 0x0008, 0x808a, 0x0000, 0x0004,\r
++      0x000b, 0x0014, 0x0000, 0x8060, 0x0000, 0x0400, 0x0009, 0x9080,\r
++      0x0008, 0x0011, 0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0x0009,\r
++      0x000b, 0xc120, 0x000a, 0x004f, 0x0003, 0x897d, 0x0000, 0x8060,\r
++      0x0000, 0x0400, 0x0009, 0x9080, 0x0008, 0x0005, 0x0008, 0x7f62,\r
++      0x0000, 0x8066, 0x0008, 0x0009, 0x000b, 0xc12a, 0x0008, 0x0060,\r
++      0x0008, 0x8062, 0x0000, 0x001f, 0x0000, 0x8066, 0x0000, 0x0209,\r
++      0x0003, 0xc130, 0x000a, 0x014b, 0x000b, 0x097d, 0x0008, 0x8062,\r
++      0x0008, 0x000f, 0x0000, 0x8066, 0x0000, 0x0211, 0x000b, 0xc137,\r
++      0x0008, 0x01fe, 0x0001, 0x02d0, 0x0003, 0x897d, 0x000c, 0x0195,\r
++      0x000b, 0x097d, 0x0008, 0x03a0, 0x0008, 0x8004, 0x0000, 0x0002,\r
++      0x0000, 0x8006, 0x0000, 0x0043, 0x0008, 0x4908, 0x0008, 0x808a,\r
++      0x0000, 0x0004, 0x0000, 0x8060, 0x0000, 0x0400, 0x0009, 0x9080,\r
++      0x0008, 0x0000, 0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0x041a,\r
++      0x000b, 0xc14c, 0x000b, 0xe14d, 0x0008, 0x4908, 0x0008, 0x480a,\r
++      0x0008, 0x808a, 0x0000, 0x0004, 0x0008, 0x0060, 0x0008, 0x8062,\r
++      0x0008, 0x002b, 0x0000, 0x8066, 0x0000, 0x0411, 0x000b, 0xc157,\r
++      0x0008, 0x04fe, 0x0009, 0x02a0, 0x000b, 0x915e, 0x0002, 0x0500,\r
++      0x0003, 0x097a, 0x0003, 0x015f, 0x0000, 0x05fe, 0x0001, 0x03a0,\r
++      0x0003, 0x117a, 0x0000, 0x0d0c, 0x0008, 0x0d0e, 0x0008, 0x0d10,\r
++      0x0000, 0x0d12, 0x0008, 0x0060, 0x0008, 0x8062, 0x0000, 0x000d,\r
++      0x0000, 0x8066, 0x0008, 0x0832, 0x0003, 0xc16a, 0x0000, 0x800a,\r
++      0x0000, 0x8005, 0x0000, 0x8060, 0x0000, 0x0400, 0x0009, 0x9080,\r
++      0x0008, 0x0011, 0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0x0a12,\r
++      0x0003, 0xc174, 0x0008, 0x5006, 0x0008, 0x100e, 0x000c, 0x01a0,\r
++      0x000b, 0x7814, 0x0003, 0x0013, 0x0008, 0x0208, 0x0008, 0x030a,\r
++      0x000b, 0x0161, 0x0004, 0x018c, 0x0008, 0x808a, 0x0000, 0x0004,\r
++      0x0008, 0x8010, 0x0008, 0x0021, 0x000c, 0x032f, 0x0008, 0x1010,\r
++      0x000c, 0x032f, 0x0000, 0x4810, 0x000c, 0x032f, 0x0008, 0x4910,\r
++      0x000c, 0x032f, 0x0008, 0x808a, 0x0000, 0x0004, 0x000b, 0x0014,\r
++      0x0000, 0x8060, 0x0000, 0x0400, 0x0009, 0x9080, 0x0000, 0x0002,\r
++      0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0xb40a, 0x0003, 0xc193,\r
++      0x000f, 0x4000, 0x0000, 0x8060, 0x0000, 0x0400, 0x0000, 0x0a62,\r
++      0x0000, 0x8066, 0x0000, 0x0411, 0x0003, 0xc19a, 0x0002, 0x0210,\r
++      0x0001, 0xffc0, 0x0000, 0x0007, 0x0009, 0x03e0, 0x000f, 0x4000,\r
++      0x0000, 0x8060, 0x0000, 0x0400, 0x0001, 0x8380, 0x0000, 0x0002,\r
++      0x0009, 0x0a80, 0x0008, 0x7f62, 0x0000, 0x8066, 0x0000, 0x0e0a,\r
++      0x000b, 0xc1a8, 0x0002, 0x0300, 0x0001, 0xffc0, 0x0000, 0x0007,\r
++      0x0000, 0x7f06, 0x0002, 0x0a00, 0x0008, 0x7f62, 0x0000, 0x8066,\r
++      0x0008, 0x060a, 0x0003, 0xc1b1, 0x000f, 0x4000, 0x0000, 0x0da0,\r
++      0x0008, 0x0da2, 0x0008, 0x0da4, 0x0009, 0x8880, 0x0000, 0x0001,\r
++      0x0008, 0x7f62, 0x0000, 0x8060, 0x0000, 0x0400, 0x0000, 0x8066,\r
++      0x0008, 0xa012, 0x0000, 0x0da6, 0x0008, 0x0da8, 0x0000, 0x0daa,\r
++      0x0000, 0x0dac, 0x000b, 0xc1c1, 0x0009, 0x8880, 0x0008, 0x0009,\r
++      0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0xa03a, 0x000b, 0xc1c7,\r
++      0x000f, 0x4000, 0x0009, 0x8880, 0x0008, 0x0005, 0x0000, 0x8060,\r
++      0x0000, 0x0400, 0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0x0009,\r
++      0x000b, 0xc1d0, 0x0008, 0x0060, 0x0008, 0x8062, 0x0000, 0x000d,\r
++      0x0000, 0x8066, 0x0008, 0x0021, 0x000b, 0xc1d6, 0x0000, 0x00fe,\r
++      0x0001, 0x01d0, 0x000b, 0x89df, 0x0008, 0x02fe, 0x0009, 0x03d0,\r
++      0x0003, 0x09df, 0x0000, 0x0d06, 0x000f, 0x4000, 0x0000, 0x8006,\r
++      0x0000, 0x0001, 0x000f, 0x4000, 0x0008, 0x0060, 0x0008, 0x8062,\r
++      0x0008, 0x002b, 0x0000, 0x8066, 0x0008, 0xa041, 0x0003, 0xc1e7,\r
++      0x0002, 0x0243, 0x0003, 0x89ee, 0x0000, 0x54ac, 0x0000, 0x55ae,\r
++      0x0008, 0x0da8, 0x0000, 0x0daa, 0x0000, 0x50b0, 0x0000, 0x51b2,\r
++      0x0000, 0x0db4, 0x0008, 0x0db6, 0x0008, 0x0060, 0x0008, 0x8062,\r
++      0x0000, 0x0007, 0x0000, 0x8066, 0x0008, 0xa452, 0x000b, 0xc1f7,\r
++      0x000f, 0x4000, 0x000a, 0x3945, 0x0003, 0x8a03, 0x0000, 0x8072,\r
++      0x0008, 0x4040, 0x0007, 0x0000, 0x000a, 0x3945, 0x000b, 0x8a01,\r
++      0x000f, 0x4000, 0x0000, 0x8072, 0x0000, 0x4000, 0x0007, 0x0000,\r
++      0x0007, 0x0000, 0x0007, 0x0000, 0x000a, 0x3945, 0x0003, 0x09fb,\r
++      0x0003, 0x0203, 0x000a, 0x3a40, 0x000b, 0x8817, 0x0008, 0x2b24,\r
++      0x0008, 0x2b24, 0x0003, 0x5a0d, 0x0008, 0x8054, 0x0000, 0x0002,\r
++      0x0002, 0x1242, 0x0003, 0x0a51, 0x000a, 0x3a45, 0x000b, 0x0a42,\r
++      0x000a, 0x1e10, 0x0000, 0x7f3c, 0x000b, 0x0a3f, 0x0002, 0x1d00,\r
++      0x0000, 0x7f3a, 0x0000, 0x0d60, 0x0008, 0x7f62, 0x0000, 0x8066,\r
++      0x0008, 0x0009, 0x0003, 0xc21d, 0x0008, 0x00fc, 0x000b, 0xb23c,\r
++      0x0000, 0x1c60, 0x0008, 0x8062, 0x0000, 0x0001, 0x0000, 0x8066,\r
++      0x0008, 0x0009, 0x000b, 0xc225, 0x0008, 0x00fc, 0x000b, 0x3344,\r
++      0x0000, 0x0038, 0x0008, 0x0060, 0x0008, 0x8062, 0x0000, 0x0019,\r
++      0x0000, 0x8066, 0x0008, 0x0009, 0x0003, 0xc22e, 0x0009, 0x80c0,\r
++      0x0008, 0x00ff, 0x0008, 0x7f3e, 0x0000, 0x0d60, 0x0008, 0x0efe,\r
++      0x0001, 0x1f80, 0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0x0009,\r
++      0x000b, 0xc238, 0x0008, 0x003a, 0x0000, 0x1dfe, 0x000b, 0x0219,\r
++      0x0008, 0x0036, 0x0004, 0x0096, 0x000b, 0x0251, 0x0000, 0x8074,\r
++      0x0000, 0x2000, 0x000b, 0x0251, 0x0002, 0x3a44, 0x0003, 0x0b6f,\r
++      0x0000, 0x8074, 0x0000, 0x1000, 0x0000, 0x2d0e, 0x0000, 0x2d0e,\r
++      0x0003, 0xb341, 0x0008, 0x26fe, 0x0008, 0x26fe, 0x0008, 0x2700,\r
++      0x0008, 0x2700, 0x0009, 0x00d0, 0x000b, 0x8a61, 0x0000, 0x8074,\r
++      0x0008, 0x4040, 0x0003, 0x5a51, 0x0003, 0x5209, 0x000a, 0x3a46,\r
++      0x000b, 0x8a61, 0x0002, 0x3a47, 0x000b, 0x0a5c, 0x0008, 0x8054,\r
++      0x0000, 0x0004, 0x0000, 0x8074, 0x0000, 0x8000, 0x000b, 0x02ba,\r
++      0x0009, 0x92c0, 0x0000, 0x0fc8, 0x000b, 0x0813, 0x000a, 0x1246,\r
++      0x0003, 0x8b3b, 0x0000, 0x1a60, 0x0008, 0x8062, 0x0000, 0x0002,\r
++      0x0000, 0x8066, 0x0000, 0x367a, 0x0003, 0xc266, 0x0009, 0x92c0,\r
++      0x0008, 0x0780, 0x000b, 0x8b55, 0x0002, 0x124b, 0x000b, 0x0a6f,\r
++      0x0002, 0x2e4d, 0x0002, 0x2e4d, 0x0003, 0x0b41, 0x000a, 0x3a46,\r
++      0x000b, 0x8a7c, 0x000b, 0x5a71, 0x0008, 0x8054, 0x0000, 0x0004,\r
++      0x000a, 0x1243, 0x000b, 0x0ab8, 0x0008, 0x8010, 0x0000, 0x000d,\r
++      0x000c, 0x032f, 0x0000, 0x1810, 0x000c, 0x032f, 0x0003, 0x02b8,\r
++      0x000a, 0x194d, 0x0003, 0x0a80, 0x000a, 0x1243, 0x0003, 0x0b4b,\r
++      0x0003, 0x5a80, 0x0008, 0x8054, 0x0000, 0x0004, 0x000a, 0x192e,\r
++      0x0008, 0x7f32, 0x000a, 0x1947, 0x000b, 0x0ab2, 0x0002, 0x194f,\r
++      0x000b, 0x0a90, 0x0004, 0x0324, 0x0000, 0x1810, 0x000c, 0x01c9,\r
++      0x0003, 0xb2ab, 0x000c, 0x032f, 0x0004, 0x01b3, 0x0003, 0x02b8,\r
++      0x0000, 0x1a60, 0x0008, 0x8062, 0x0000, 0x001f, 0x0000, 0x8066,\r
++      0x0008, 0x0009, 0x0003, 0xc295, 0x000a, 0x004c, 0x0003, 0x8ab2,\r
++      0x0000, 0x8060, 0x0000, 0x0400, 0x0001, 0x9880, 0x0000, 0x0007,\r
++      0x0008, 0x7f62, 0x0000, 0x8066, 0x0000, 0x320a, 0x0003, 0xc29f,\r
++      0x0000, 0x8060, 0x0000, 0x0400, 0x0001, 0x9880, 0x0008, 0x0012,\r
++      0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0x1e0a, 0x000b, 0xc2a7,\r
++      0x0000, 0x1826, 0x0000, 0x1928, 0x0003, 0x02b8, 0x0000, 0x0806,\r
++      0x0008, 0x8010, 0x0000, 0x001f, 0x000c, 0x032f, 0x0000, 0x0310,\r
++      0x000c, 0x032f, 0x0003, 0x02b8, 0x0004, 0x0324, 0x0008, 0x8010,\r
++      0x0000, 0x0001, 0x000c, 0x032f, 0x0000, 0x1810, 0x000c, 0x032f,\r
++      0x0000, 0x8074, 0x0008, 0xf000, 0x0000, 0x0d30, 0x0002, 0x3a42,\r
++      0x0003, 0x8ac0, 0x0000, 0x15fc, 0x0003, 0xb06a, 0x0003, 0x0013,\r
++      0x0000, 0x8074, 0x0000, 0x0501, 0x0008, 0x8010, 0x0008, 0x000c,\r
++      0x000c, 0x032f, 0x0003, 0x0013, 0x0009, 0xbbe0, 0x0008, 0x0030,\r
++      0x000b, 0x8adc, 0x0000, 0x18fe, 0x0009, 0x3ce0, 0x0003, 0x0ad9,\r
++      0x0008, 0x15fe, 0x0009, 0x3ce0, 0x0003, 0x0ad9, 0x0008, 0x13fe,\r
++      0x0009, 0x3ce0, 0x000b, 0x8ad5, 0x0004, 0x031d, 0x0008, 0x0d26,\r
++      0x000b, 0x02d6, 0x000c, 0x031f, 0x0008, 0x8076, 0x0000, 0x0040,\r
++      0x0003, 0x031a, 0x0008, 0x8076, 0x0008, 0x0041, 0x0003, 0x031a,\r
++      0x0009, 0xbbe0, 0x0000, 0x0032, 0x0003, 0x8ae1, 0x0008, 0x3c1e,\r
++      0x0003, 0x031a, 0x0009, 0xbbe0, 0x0000, 0x0037, 0x0003, 0x8aff,\r
++      0x0000, 0x18fe, 0x0009, 0x3ce0, 0x000b, 0x8ad9, 0x0008, 0x8076,\r
++      0x0000, 0x0040, 0x0000, 0x1a60, 0x0008, 0x8062, 0x0000, 0x000d,\r
++      0x0008, 0x2604, 0x0008, 0x2604, 0x0008, 0x2706, 0x0008, 0x2706,\r
++      0x0000, 0x2808, 0x0000, 0x2808, 0x0000, 0x290a, 0x0000, 0x290a,\r
++      0x0000, 0x8066, 0x0000, 0x0422, 0x0003, 0xc2f6, 0x0004, 0x0324,\r
++      0x0008, 0x8054, 0x0000, 0x0004, 0x0000, 0x8074, 0x0008, 0xf000,\r
++      0x0000, 0x8072, 0x0000, 0x8000, 0x000b, 0x02ba, 0x0009, 0xbbe0,\r
++      0x0000, 0x0038, 0x000b, 0x8b11, 0x0000, 0x18fe, 0x0009, 0x3ce0,\r
++      0x000b, 0x0b0e, 0x0008, 0x15fe, 0x0009, 0x3ce0, 0x0003, 0x8acf,\r
++      0x000c, 0x031f, 0x0008, 0x8076, 0x0000, 0x0040, 0x0000, 0x8072,\r
++      0x0000, 0x8000, 0x000b, 0x0366, 0x0008, 0x8076, 0x0008, 0x0042,\r
++      0x0003, 0x031a, 0x0009, 0xbbe0, 0x0000, 0x0016, 0x0003, 0x8b1a,\r
++      0x0002, 0x3a44, 0x0003, 0x8816, 0x0000, 0x8072, 0x0000, 0x8000,\r
++      0x000f, 0x8000, 0x0003, 0x0013, 0x0000, 0x8072, 0x0000, 0x8000,\r
++      0x0003, 0x0013, 0x0002, 0x1430, 0x0003, 0x0320, 0x000a, 0x3d30,\r
++      0x0000, 0x7f00, 0x0001, 0xbc80, 0x0000, 0x0007, 0x000b, 0x0328,\r
++      0x000a, 0x1930, 0x0000, 0x7f00, 0x0001, 0x9880, 0x0000, 0x0007,\r
++      0x0000, 0x8060, 0x0000, 0x0400, 0x0008, 0x7f62, 0x0000, 0x8066,\r
++      0x0008, 0x000a, 0x000b, 0xc32d, 0x000f, 0x4000, 0x000b, 0x232f,\r
++      0x0008, 0x0870, 0x000f, 0x4000, 0x0009, 0xbac0, 0x0008, 0x0090,\r
++      0x000b, 0x0b38, 0x0000, 0x8074, 0x0000, 0x0706, 0x000b, 0x033a,\r
++      0x0000, 0x8074, 0x0000, 0x0703, 0x000f, 0x4000, 0x0008, 0x8010,\r
++      0x0000, 0x0023, 0x000b, 0x0374, 0x0008, 0x8010, 0x0000, 0x0008,\r
++      0x000b, 0x0374, 0x0008, 0x8010, 0x0008, 0x0022, 0x000b, 0x0374,\r
++      0x0004, 0x0324, 0x0008, 0x8010, 0x0000, 0x0007, 0x000c, 0x032f,\r
++      0x0000, 0x1810, 0x000c, 0x032f, 0x000b, 0x037e, 0x0004, 0x0324,\r
++      0x0008, 0x8010, 0x0008, 0x001b, 0x000c, 0x032f, 0x0000, 0x1810,\r
++      0x000c, 0x032f, 0x0000, 0x8074, 0x0000, 0xf080, 0x0000, 0x0d30,\r
++      0x0003, 0x0013, 0x0008, 0x8010, 0x0008, 0x0009, 0x000b, 0x0374,\r
++      0x0008, 0x8010, 0x0008, 0x0005, 0x000b, 0x0374, 0x0008, 0x808c,\r
++      0x0000, 0x0001, 0x0007, 0x0000, 0x0008, 0x8010, 0x0000, 0x0004,\r
++      0x000a, 0x4143, 0x0003, 0x0878, 0x0002, 0x3a44, 0x0003, 0x8813,\r
++      0x0008, 0x0d2a, 0x000b, 0x0374, 0x0008, 0x8010, 0x0008, 0x0003,\r
++      0x0003, 0x0376, 0x0008, 0x8010, 0x0000, 0x000b, 0x0003, 0x0376,\r
++      0x0008, 0x8010, 0x0000, 0x0002, 0x0003, 0x0376, 0x0002, 0x3a47,\r
++      0x000b, 0x8a51, 0x0008, 0x8010, 0x0008, 0x0006, 0x0003, 0x0376,\r
++      0x0000, 0x8074, 0x0008, 0xf000, 0x000c, 0x032f, 0x000c, 0x0332,\r
++      0x000a, 0x3a40, 0x000b, 0x0813, 0x0008, 0x8010, 0x0008, 0x000c,\r
++      0x000c, 0x032f, 0x0003, 0x0013, 0x0000, 0x8074, 0x0000, 0xf080,\r
++      0x0000, 0x0d30, 0x0002, 0x2e4d, 0x0002, 0x2e4d, 0x0003, 0x0b87,\r
++      0x0008, 0x8054, 0x0000, 0x0019, 0x0003, 0x0013, 0x0008, 0x8054,\r
++      0x0008, 0x0009, 0x0003, 0x0013, 0x0002, 0x3a44, 0x0003, 0x8813,\r
++      0x000b, 0x0369, 0xec89, 0x9da0\r
++};\r
++unsigned short rseqflx_code_length01 = 0x071c;\r
++/*\r
++ *\r
++ */\r
++\r
++unsigned long xseqflx_code_addr01 = 0x0001e000 ;\r
++unsigned short xseqflx_code01[] = { \r
++0x0013, 0x0003, 0x0000, 0x0fe2, 0x0001, 0xe000, 0x0005, 0x0032,\r
++      0x0000, 0x0010, 0x0015, 0x0033, 0x0010, 0xbb39, 0x000b, 0x8007,\r
++      0x0004, 0x0107, 0x0004, 0x0119, 0x0010, 0xc000, 0x0000, 0xc001,\r
++      0x0000, 0xc0b0, 0x0010, 0xc0b1, 0x0010, 0xc0b2, 0x0000, 0xc0b3,\r
++      0x0010, 0xc0b4, 0x0000, 0xc0b5, 0x0000, 0xc0b6, 0x0010, 0xc0b7,\r
++      0x0010, 0xc0b8, 0x0000, 0xc0b9, 0x0000, 0xc0ba, 0x0000, 0xc0c2,\r
++      0x0010, 0xc0c3, 0x0000, 0xc0c4, 0x0010, 0xc0c5, 0x0010, 0xc0c6,\r
++      0x0000, 0xc0c7, 0x0000, 0xc0c8, 0x0010, 0xc0c9, 0x0010, 0xc0ca,\r
++      0x0000, 0xc0cb, 0x0010, 0xc0cc, 0x0000, 0xc0cd, 0x0000, 0xc0ce,\r
++      0x0010, 0xc0cf, 0x0015, 0x0039, 0x0010, 0xff00, 0x0015, 0x003a,\r
++      0x0010, 0xff00, 0x0005, 0x00d0, 0x0010, 0xff00, 0x0015, 0x00d1,\r
++      0x0010, 0xff00, 0x0012, 0x3a40, 0x000b, 0x1031, 0x0002, 0x7940,\r
++      0x000b, 0x112b, 0x0002, 0x3a42, 0x001b, 0x1035, 0x0003, 0xb035,\r
++      0x0013, 0xa1cd, 0x0002, 0x3a41, 0x001b, 0x1039, 0x0012, 0x7941,\r
++      0x000b, 0x12eb, 0x0013, 0xe051, 0x0012, 0xd042, 0x0003, 0x103f,\r
++      0x0000, 0x75ff, 0x0002, 0xff41, 0x000b, 0x1051, 0x0000, 0x0cfe,\r
++      0x0013, 0x6047, 0x0011, 0x02e8, 0x0010, 0x0000, 0x0003, 0x1371,\r
++      0x0011, 0x02e8, 0x0010, 0x0005, 0x0013, 0x13fe, 0x0012, 0xd042,\r
++      0x0013, 0x104c, 0x0000, 0x75ff, 0x0012, 0xff40, 0x000b, 0x1051,\r
++      0x0000, 0x12fe, 0x0003, 0x6051, 0x0001, 0x0fe8, 0x0010, 0x0000,\r
++      0x0003, 0x15e8, 0x0015, 0x0030, 0x0000, 0x0400, 0x0010, 0xc131,\r
++      0x0015, 0x0033, 0x0010, 0xb211, 0x001b, 0x8056, 0x0010, 0xb2ff,\r
++      0x0001, 0xb3e0, 0x000c, 0x10c9, 0x000b, 0xf02d, 0x0011, 0x3be8,\r
++      0x0000, 0x0010, 0x000b, 0x106e, 0x0000, 0x0afe, 0x001b, 0x6062,\r
++      0x0000, 0x3c0b, 0x0013, 0x006a, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0001, 0x0a88, 0x0010, 0x0003, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0010, 0x3c0a, 0x001b, 0x8069, 0x0010, 0x3c0a, 0x0002, 0x0c00,\r
++      0x0010, 0xff0c, 0x0013, 0x00c6, 0x0011, 0x3be8, 0x0010, 0x0012,\r
++      0x001b, 0x1081, 0x0010, 0x08fe, 0x001b, 0x6075, 0x0010, 0x3c09,\r
++      0x0013, 0x007d, 0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x0888,\r
++      0x0010, 0x0003, 0x0000, 0xff31, 0x0015, 0x0033, 0x0010, 0x3c0a,\r
++      0x000b, 0x807c, 0x0000, 0x3c08, 0x0002, 0x0c00, 0x0010, 0xff0c,\r
++      0x0013, 0x00c6, 0x0011, 0x3be8, 0x0000, 0x0013, 0x001b, 0x1087,\r
++      0x0000, 0x3cb0, 0x0014, 0x00d9, 0x0013, 0x00c6, 0x0011, 0x3be8,\r
++      0x0000, 0x0019, 0x001b, 0x109a, 0x0010, 0x04fe, 0x000b, 0x608e,\r
++      0x0010, 0x3c05, 0x0013, 0x0096, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0011, 0x0488, 0x0010, 0x0003, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0010, 0x3c0a, 0x001b, 0x8095, 0x0000, 0x3c04, 0x0002, 0x0c00,\r
++      0x0010, 0xff0c, 0x0013, 0x00c6, 0x0011, 0x3be8, 0x0000, 0x0015,\r
++      0x001b, 0x10a6, 0x0004, 0x0110, 0x0014, 0x0122, 0x0015, 0x0039,\r
++      0x0000, 0x8000, 0x0017, 0x8000, 0x0004, 0x0107, 0x0004, 0x0119,\r
++      0x0014, 0x00f2, 0x0013, 0x002d, 0x0011, 0x3be8, 0x0000, 0x0016,\r
++      0x001b, 0x10b8, 0x0001, 0x0fe8, 0x0010, 0x0000, 0x0003, 0x10b2,\r
++      0x0001, 0x0fe8, 0x0000, 0x0002, 0x0003, 0x10b2, 0x0015, 0x0039,\r
++      0x0010, 0x1010, 0x0013, 0x00c6, 0x0015, 0x0039, 0x0000, 0x5040,\r
++      0x0015, 0x00b8, 0x0000, 0x0008, 0x0014, 0x07ed, 0x0013, 0x00c6,\r
++      0x0011, 0x3be8, 0x0010, 0x0017, 0x001b, 0x10bd, 0x0010, 0x3cc3,\r
++      0x0013, 0x00c6, 0x0011, 0x3be8, 0x0010, 0x0018, 0x000b, 0x10c2,\r
++      0x0000, 0x3cc2, 0x0013, 0x00c6, 0x0005, 0x00ce, 0x0000, 0x0001,\r
++      0x0000, 0x3bcf, 0x0014, 0x07b1, 0x0015, 0x0039, 0x0000, 0x8000,\r
++      0x0013, 0x002d, 0x0001, 0xb288, 0x0000, 0x0002, 0x0001, 0xc180,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009, 0x001b, 0x80cf,\r
++      0x0002, 0xb200, 0x0011, 0xffc8, 0x0000, 0x0007, 0x0010, 0xffb2,\r
++      0x0010, 0xc131, 0x0015, 0x0033, 0x0010, 0xb20a, 0x0001, 0xb0d0,\r
++      0x001b, 0x80d8, 0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0xb088,\r
++      0x0000, 0x0010, 0x0000, 0xff31, 0x0015, 0x0033, 0x0010, 0xb109,\r
++      0x000b, 0x80e0, 0x0001, 0xb1e8, 0x0010, 0xffff, 0x0013, 0x10f1,\r
++      0x0000, 0x11fe, 0x000b, 0x60e8, 0x0000, 0xb012, 0x0013, 0x00f0,\r
++      0x0015, 0x0030, 0x0000, 0x0400, 0x0001, 0x1188, 0x0010, 0x0003,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb00a, 0x000b, 0x80ef,\r
++      0x0000, 0xb011, 0x0017, 0x4000, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0011, 0xbc88, 0x0010, 0x001e, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0000, 0xc411, 0x001b, 0x80f9, 0x0011, 0xbc88, 0x0010, 0x0017,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0010, 0xc609, 0x001b, 0x80ff,\r
++      0x0011, 0xbc88, 0x0010, 0x0036, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0000, 0xc709, 0x000b, 0x8105, 0x0017, 0x4000, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0001, 0xbb88, 0x0000, 0x0001, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0000, 0x0269, 0x001b, 0x810e, 0x0017, 0x4000,\r
++      0x0015, 0x0030, 0x0000, 0x0400, 0x0001, 0xbb88, 0x0000, 0x0001,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0x026a, 0x000b, 0x8117,\r
++      0x0017, 0x4000, 0x0015, 0x0030, 0x0000, 0x0400, 0x0001, 0xbb88,\r
++      0x0010, 0x000f, 0x0000, 0xff31, 0x0015, 0x0033, 0x0010, 0x0f59,\r
++      0x001b, 0x8120, 0x0017, 0x4000, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0001, 0xbb88, 0x0010, 0x000f, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0010, 0x0f5a, 0x001b, 0x8129, 0x0017, 0x4000, 0x0000, 0xd0ff,\r
++      0x0012, 0xff40, 0x000b, 0x1031, 0x0015, 0x00d1, 0x0010, 0x0101,\r
++      0x0003, 0x9130, 0x0005, 0x0079, 0x0000, 0x0001, 0x0003, 0x9133,\r
++      0x0015, 0x00d1, 0x0000, 0x0100, 0x0011, 0x02e8, 0x0000, 0x0002,\r
++      0x0003, 0x1152, 0x0011, 0x02e8, 0x0000, 0x0001, 0x0013, 0x116a,\r
++      0x0011, 0x02e8, 0x0000, 0x0004, 0x0013, 0x1188, 0x0011, 0x02e8,\r
++      0x0010, 0x0003, 0x0003, 0x11b9, 0x0005, 0x0002, 0x0010, 0x0000,\r
++      0x0000, 0xc00e, 0x0000, 0xc00d, 0x0010, 0xc003, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0001, 0xbd88, 0x0010, 0x0009, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0010, 0xc00a, 0x000b, 0x814e, 0x0012, 0xd042,\r
++      0x0013, 0x1031, 0x0003, 0x004c, 0x0012, 0x7849, 0x0003, 0x11c7,\r
++      0x0010, 0x0dfe, 0x0003, 0x6144, 0x0012, 0x0c10, 0x0010, 0xff0c,\r
++      0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x0d88, 0x0010, 0x0003,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb309, 0x000b, 0x815f,\r
++      0x0010, 0xb3fe, 0x0013, 0x6167, 0x0010, 0xb30b, 0x0015, 0x0033,\r
++      0x0010, 0xc00a, 0x000b, 0x8165, 0x0013, 0x01bc, 0x0000, 0xc00b,\r
++      0x0010, 0xc00a, 0x0013, 0x01bc, 0x0000, 0x78b0, 0x0012, 0xb044,\r
++      0x0003, 0x11c7, 0x0002, 0xb049, 0x0003, 0x11c7, 0x0010, 0x71ff,\r
++      0x0012, 0xff38, 0x0010, 0xff71, 0x0010, 0x0dfe, 0x0003, 0x6142,\r
++      0x0012, 0x0c10, 0x0010, 0xff0c, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0011, 0x0d88, 0x0010, 0x0003, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0000, 0xb309, 0x000b, 0x817d, 0x0010, 0xb3fe, 0x0013, 0x6185,\r
++      0x0000, 0xb309, 0x0015, 0x0033, 0x0010, 0xc00a, 0x001b, 0x8183,\r
++      0x0013, 0x01bc, 0x0010, 0xc009, 0x0000, 0xc008, 0x0013, 0x01bc,\r
++      0x0000, 0x78b0, 0x0012, 0xb044, 0x0003, 0x11c7, 0x0002, 0xb049,\r
++      0x0003, 0x11c7, 0x0010, 0x71ff, 0x0012, 0xff38, 0x0010, 0xff71,\r
++      0x0010, 0x0dfe, 0x0003, 0x6142, 0x0012, 0x0c10, 0x0010, 0xff0c,\r
++      0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x0d88, 0x0010, 0x0003,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb309, 0x001b, 0x819b,\r
++      0x0010, 0xb3fe, 0x0003, 0x61a3, 0x0000, 0xb305, 0x0015, 0x0033,\r
++      0x0010, 0xc00a, 0x001b, 0x81a1, 0x0003, 0x01a5, 0x0010, 0xc005,\r
++      0x0000, 0xc004, 0x0002, 0x033f, 0x0002, 0xff27, 0x0000, 0x0db8,\r
++      0x0004, 0x0366, 0x0000, 0x0db8, 0x0014, 0x07ed, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0011, 0xbc88, 0x0010, 0x0000, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0000, 0xb309, 0x000b, 0x81b2, 0x0011, 0xb3e8,\r
++      0x0000, 0x0002, 0x000b, 0x1142, 0x0005, 0x0002, 0x0010, 0x0005,\r
++      0x0003, 0x0144, 0x0012, 0x7849, 0x0003, 0x11c7, 0x0003, 0x0144,\r
++      0x0000, 0x0db8, 0x0012, 0x0345, 0x001b, 0x11c2, 0x0002, 0x033f,\r
++      0x0004, 0x0366, 0x0003, 0x0142, 0x0002, 0x033f, 0x0002, 0xff27,\r
++      0x0004, 0x0366, 0x0014, 0x07ed, 0x0003, 0x0142, 0x0015, 0x00b8,\r
++      0x0000, 0x0001, 0x0015, 0x003a, 0x0010, 0x0101, 0x0014, 0x07ed,\r
++      0x0013, 0x014f, 0x0000, 0x2bba, 0x0003, 0xb1ce, 0x0005, 0x002a,\r
++      0x0000, 0x0002, 0x0001, 0xbac8, 0x0000, 0x0700, 0x000b, 0x12a6,\r
++      0x0011, 0x15e8, 0x0000, 0x0002, 0x0013, 0x1221, 0x0011, 0x15e8,\r
++      0x0000, 0x0001, 0x0013, 0x11dd, 0x0005, 0x0015, 0x0010, 0x0000,\r
++      0x0013, 0x0204, 0x0005, 0x0015, 0x0010, 0x0000, 0x0002, 0xba43,\r
++      0x0013, 0x1205, 0x0013, 0xb1e1, 0x0005, 0x002a, 0x0000, 0x0004,\r
++      0x0012, 0xba42, 0x0003, 0x120b, 0x0012, 0x104b, 0x001b, 0x1204,\r
++      0x0000, 0x1a30, 0x0005, 0x0031, 0x0000, 0x0002, 0x0015, 0x0033,\r
++      0x0000, 0x1b2a, 0x000b, 0x81ed, 0x0010, 0x20b0, 0x0010, 0x21b1,\r
++      0x0010, 0x22b2, 0x0010, 0x23b3, 0x0010, 0x24b4, 0x0010, 0x25b5,\r
++      0x0010, 0x28b8, 0x0010, 0x29b9, 0x0000, 0x1a30, 0x0005, 0x0031,\r
++      0x0000, 0x0007, 0x0015, 0x0033, 0x0010, 0xb032, 0x001b, 0x81fb,\r
++      0x0000, 0x1a30, 0x0005, 0x0031, 0x0010, 0x000f, 0x0015, 0x0033,\r
++      0x0010, 0xb812, 0x001b, 0x8201, 0x0005, 0x0015, 0x0010, 0x0000,\r
++      0x0013, 0x0035, 0x0000, 0x1efe, 0x0013, 0x6219, 0x0014, 0x024b,\r
++      0x0000, 0x1efe, 0x000c, 0x624b, 0x0013, 0x0204, 0x0000, 0x1a30,\r
++      0x0005, 0x0031, 0x0000, 0x0020, 0x0015, 0x0033, 0x0000, 0xb009,\r
++      0x001b, 0x8210, 0x0002, 0xb02f, 0x0000, 0xffb0, 0x0005, 0x0031,\r
++      0x0000, 0x0020, 0x0015, 0x0033, 0x0000, 0xb00a, 0x000b, 0x8217,\r
++      0x0003, 0x01e8, 0x0015, 0x00b8, 0x0010, 0x0005, 0x0014, 0x07ed,\r
++      0x0000, 0x13b8, 0x0015, 0x003a, 0x0010, 0x0404, 0x0014, 0x07ed,\r
++      0x0013, 0x0204, 0x0005, 0x0015, 0x0000, 0x0001, 0x0012, 0xba42,\r
++      0x0013, 0x122e, 0x0003, 0xb225, 0x0010, 0x2bff, 0x0012, 0xff4f,\r
++      0x001b, 0x11cd, 0x0002, 0xba43, 0x001b, 0x120b, 0x0000, 0x1efe,\r
++      0x000c, 0x624b, 0x0013, 0x0204, 0x0010, 0x28b8, 0x0010, 0x29b9,\r
++      0x0004, 0x02bc, 0x0002, 0x3a42, 0x001b, 0x1204, 0x0000, 0x1c30,\r
++      0x0015, 0x00ff, 0x0000, 0x0002, 0x0002, 0x1f43, 0x001b, 0x123b,\r
++      0x0001, 0xff88, 0x0000, 0x0002, 0x0013, 0x023d, 0x0001, 0xff88,\r
++      0x0000, 0x0004, 0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb011,\r
++      0x001b, 0x8240, 0x0000, 0xb0ff, 0x0011, 0x16a0, 0x0000, 0xff16,\r
++      0x000b, 0x24e2, 0x0002, 0xb100, 0x0003, 0x0248, 0x0010, 0xb1ff,\r
++      0x0001, 0x17a0, 0x0010, 0xff17, 0x0013, 0x020b, 0x0000, 0x16ff,\r
++      0x0001, 0x18a0, 0x0010, 0xff00, 0x001b, 0x2252, 0x0002, 0x1700,\r
++      0x0013, 0x12a5, 0x0003, 0x0253, 0x0010, 0x17ff, 0x0011, 0x19a0,\r
++      0x0013, 0x22a5, 0x0011, 0x00d0, 0x0013, 0x12a5, 0x0000, 0x1c30,\r
++      0x0000, 0x1b31, 0x0015, 0x0033, 0x0000, 0xb131, 0x001b, 0x825b,\r
++      0x0013, 0xb25c, 0x0000, 0xb120, 0x0010, 0xb221, 0x0002, 0x1f43,\r
++      0x001b, 0x1268, 0x0010, 0xc022, 0x0000, 0xc023, 0x0000, 0xb324,\r
++      0x0000, 0xb425, 0x0010, 0xb3b5, 0x0000, 0xb4b6, 0x0003, 0x026c,\r
++      0x0000, 0xb322, 0x0000, 0xb423, 0x0000, 0xb524, 0x0010, 0xb625,\r
++      0x0013, 0xb26c, 0x0005, 0x002a, 0x0000, 0x0001, 0x0012, 0x1500,\r
++      0x0000, 0xff15, 0x0000, 0x16ff, 0x0001, 0xb580, 0x0000, 0xff16,\r
++      0x000b, 0x2277, 0x0002, 0x1700, 0x0003, 0x0278, 0x0010, 0x17ff,\r
++      0x0001, 0xb680, 0x0010, 0xff17, 0x0012, 0x1e10, 0x0010, 0xff1e,\r
++      0x0003, 0x62a5, 0x0002, 0x1d00, 0x0010, 0xff1d, 0x0010, 0xc030,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009, 0x001b, 0x8283,\r
++      0x0010, 0xb0fe, 0x000b, 0x62a4, 0x0000, 0x1c30, 0x0005, 0x0031,\r
++      0x0000, 0x0001, 0x0015, 0x0033, 0x0000, 0xb009, 0x000b, 0x828b,\r
++      0x0010, 0xb0fe, 0x000b, 0x6291, 0x0005, 0x00ce, 0x0010, 0x0005,\r
++      0x0003, 0x07b1, 0x0010, 0xb01c, 0x0000, 0x1c30, 0x0005, 0x0031,\r
++      0x0000, 0x0019, 0x0015, 0x0033, 0x0000, 0xb009, 0x001b, 0x8297,\r
++      0x0001, 0xb0c8, 0x0010, 0x00ff, 0x0000, 0xff1f, 0x0010, 0xc030,\r
++      0x0011, 0xbe80, 0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009,\r
++      0x000b, 0x82a0, 0x0000, 0xb01d, 0x0010, 0x1dff, 0x0013, 0x027f,\r
++      0x0000, 0xb01b, 0x0017, 0x4000, 0x0002, 0x3a41, 0x0003, 0x12ae,\r
++      0x0003, 0xb2a8, 0x0005, 0x002a, 0x0000, 0x0004, 0x0005, 0x0015,\r
++      0x0010, 0x0000, 0x0013, 0x0204, 0x0000, 0x1a30, 0x0005, 0x0031,\r
++      0x0000, 0x0002, 0x0015, 0x0033, 0x0000, 0x1b2a, 0x001b, 0x82b3,\r
++      0x0015, 0x00b8, 0x0000, 0x0004, 0x0014, 0x07ed, 0x0000, 0x13b8,\r
++      0x0015, 0x003a, 0x0010, 0x0404, 0x0014, 0x07ed, 0x0013, 0x0039,\r
++      0x0002, 0x1e00, 0x0010, 0xff1e, 0x0012, 0x1d10, 0x0010, 0xff1d,\r
++      0x0010, 0xc030, 0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009,\r
++      0x001b, 0x82c4, 0x0010, 0xb0fe, 0x000b, 0x62e9, 0x0000, 0x1cff,\r
++      0x0001, 0x1ae0, 0x0003, 0x12d3, 0x0000, 0x1c30, 0x0005, 0x0031,\r
++      0x0010, 0x0000, 0x0015, 0x0033, 0x0000, 0xb009, 0x000b, 0x82cf,\r
++      0x0010, 0xb0fe, 0x000b, 0x62d3, 0x0000, 0x1aff, 0x0000, 0xff1c,\r
++      0x0000, 0x1c30, 0x0005, 0x0031, 0x0000, 0x0019, 0x0015, 0x0033,\r
++      0x0000, 0xb009, 0x001b, 0x82d9, 0x0001, 0xb0c8, 0x0010, 0x000f,\r
++      0x0000, 0xff1f, 0x0001, 0xbf80, 0x0010, 0xff1d, 0x0010, 0xc030,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009, 0x001b, 0x82e3,\r
++      0x0010, 0xb0fe, 0x000b, 0x62e9, 0x0005, 0x00ce, 0x0010, 0x0006,\r
++      0x0003, 0x07b1, 0x0000, 0xb01b, 0x0017, 0x4000, 0x0010, 0x79b0,\r
++      0x0000, 0xd0ff, 0x0012, 0xff40, 0x001b, 0x1039, 0x0015, 0x00d1,\r
++      0x0010, 0x0101, 0x0013, 0x92f1, 0x0005, 0x0079, 0x0000, 0x0002,\r
++      0x0013, 0x92f4, 0x0015, 0x00d1, 0x0000, 0x0100, 0x0010, 0x13fe,\r
++      0x0003, 0x6329, 0x0012, 0xb04e, 0x000b, 0x133e, 0x0012, 0x784a,\r
++      0x0003, 0x1344, 0x0000, 0x75ff, 0x0011, 0xffc8, 0x0010, 0x1800,\r
++      0x001b, 0x1344, 0x0001, 0x0fe8, 0x0000, 0x0001, 0x000b, 0x130d,\r
++      0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x1388, 0x0000, 0x000e,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0x8f0a, 0x000b, 0x830b,\r
++      0x0003, 0x034a, 0x0001, 0x0fe8, 0x0000, 0x0002, 0x001b, 0x1318,\r
++      0x0015, 0x0030, 0x0000, 0x0400, 0x0005, 0x0031, 0x0000, 0x001a,\r
++      0x0015, 0x0033, 0x0010, 0xc00a, 0x000b, 0x8316, 0x0003, 0x034a,\r
++      0x0001, 0x0fe8, 0x0010, 0x0000, 0x0013, 0x131f, 0x0005, 0x00ce,\r
++      0x0000, 0x0007, 0x0010, 0x0fcf, 0x0013, 0x07ab, 0x0000, 0x13b8,\r
++      0x0002, 0x1045, 0x0003, 0x1327, 0x0012, 0x103f, 0x0002, 0xff27,\r
++      0x0004, 0x0366, 0x0014, 0x07ed, 0x0003, 0x0329, 0x0012, 0x103f,\r
++      0x0004, 0x0366, 0x0015, 0x000f, 0x0010, 0x0000, 0x0002, 0x3944,\r
++      0x0013, 0x1332, 0x0015, 0x0039, 0x0000, 0x5040, 0x0015, 0x00b8,\r
++      0x0000, 0x0008, 0x0014, 0x07ed, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0001, 0xbd88, 0x0010, 0x000c, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0010, 0xc00a, 0x001b, 0x8339, 0x0010, 0xc014, 0x0000, 0xc013,\r
++      0x0000, 0xc010, 0x0013, 0x0039, 0x0015, 0x00b8, 0x0010, 0x0003,\r
++      0x0015, 0x003a, 0x0010, 0x0202, 0x0014, 0x07ed, 0x0003, 0x033d,\r
++      0x0015, 0x00b8, 0x0000, 0x0002, 0x0015, 0x003a, 0x0010, 0x0202,\r
++      0x0014, 0x07ed, 0x0003, 0x033d, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0011, 0x1388, 0x0010, 0x0003, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0000, 0xb009, 0x000b, 0x8351, 0x0011, 0x1388, 0x0010, 0x0003,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0010, 0xc00a, 0x000b, 0x8357,\r
++      0x0010, 0xb0fe, 0x0013, 0x635c, 0x0000, 0xb012, 0x0003, 0x035e,\r
++      0x0010, 0xc012, 0x0010, 0xc011, 0x0012, 0x104b, 0x0013, 0x131f,\r
++      0x0002, 0x103b, 0x0010, 0xff03, 0x0005, 0x0002, 0x0010, 0x0000,\r
++      0x0000, 0xc00d, 0x0003, 0x031f, 0x0000, 0xffb0, 0x0010, 0xc3b1,\r
++      0x0015, 0x0030, 0x0000, 0x0400, 0x0001, 0xb888, 0x0010, 0x0011,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb012, 0x001b, 0x836f,\r
++      0x0017, 0x4000, 0x0012, 0x3a43, 0x0013, 0x1380, 0x0015, 0x003a,\r
++      0x0000, 0x0800, 0x0010, 0x0db0, 0x0003, 0x6380, 0x0000, 0x0bff,\r
++      0x0001, 0xb0e0, 0x0003, 0x13a6, 0x0010, 0x09ff, 0x0001, 0xb0e0,\r
++      0x0013, 0x138a, 0x0010, 0x05ff, 0x0001, 0xb0e0, 0x0003, 0x1384,\r
++      0x0000, 0xc00e, 0x0000, 0x05fe, 0x0013, 0x6387, 0x0000, 0x050d,\r
++      0x0005, 0x0002, 0x0000, 0x0004, 0x0003, 0x03a1, 0x0000, 0x09fe,\r
++      0x0013, 0x63a3, 0x0000, 0x090d, 0x0005, 0x0002, 0x0000, 0x0001,\r
++      0x0014, 0x0405, 0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x0d88,\r
++      0x0000, 0x0004, 0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xba09,\r
++      0x000b, 0x8394, 0x0011, 0x03c8, 0x0010, 0x000f, 0x0000, 0xffb6,\r
++      0x0011, 0xb6e8, 0x0000, 0x0001, 0x0013, 0x1499, 0x0011, 0xb6e8,\r
++      0x0000, 0x0002, 0x0013, 0x14bb, 0x0011, 0xb6e8, 0x0010, 0x0003,\r
++      0x0003, 0x15a6, 0x0004, 0x07b6, 0x0013, 0x0404, 0x0010, 0x0bfe,\r
++      0x0013, 0x6404, 0x0010, 0x0b0d, 0x0005, 0x0002, 0x0000, 0x0002,\r
++      0x0014, 0x0405, 0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x0d88,\r
++      0x0000, 0x0004, 0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xba09,\r
++      0x000b, 0x83b0, 0x0000, 0xb930, 0x0005, 0x0031, 0x0010, 0x0021,\r
++      0x0015, 0x0033, 0x0000, 0xb009, 0x000b, 0x83b6, 0x0001, 0xb0a8,\r
++      0x0000, 0x199a, 0x0013, 0x23bc, 0x0005, 0x00b0, 0x0000, 0x1999,\r
++      0x0012, 0xb050, 0x0000, 0xffb0, 0x0002, 0xff50, 0x0002, 0xff50,\r
++      0x0001, 0xb080, 0x0000, 0xffb0, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0011, 0x0d88, 0x0010, 0x0006, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0000, 0xb00a, 0x001b, 0x83c9, 0x0000, 0xb930, 0x0005, 0x0031,\r
++      0x0000, 0x0019, 0x0015, 0x0033, 0x0000, 0xb009, 0x001b, 0x83cf,\r
++      0x0001, 0xb0c8, 0x0010, 0x00ff, 0x0001, 0xffe8, 0x0010, 0x0048,\r
++      0x000b, 0x1414, 0x0005, 0x0002, 0x0010, 0x0006, 0x0012, 0x0c10,\r
++      0x0010, 0xff0c, 0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x0d88,\r
++      0x0010, 0x0003, 0x0000, 0xff31, 0x0015, 0x0033, 0x0010, 0xb109,\r
++      0x000b, 0x83e0, 0x0000, 0xb10b, 0x000b, 0x63e4, 0x0010, 0xb10a,\r
++      0x0015, 0x0033, 0x0010, 0xc00a, 0x000b, 0x83e6, 0x0002, 0x032b,\r
++      0x0010, 0xff03, 0x0011, 0x0d88, 0x0010, 0x0011, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0010, 0x030a, 0x001b, 0x83ee, 0x0000, 0x11fe,\r
++      0x000b, 0x63f3, 0x0000, 0x0d12, 0x0013, 0x03fc, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0001, 0x1188, 0x0010, 0x0003, 0x0000, 0xff31,\r
++      0x0010, 0x0db0, 0x0015, 0x0033, 0x0000, 0xb00a, 0x000b, 0x83fb,\r
++      0x0000, 0x0d11, 0x0013, 0x0404, 0x0000, 0x05fe, 0x0013, 0x6404,\r
++      0x0005, 0x0002, 0x0000, 0x0004, 0x0000, 0x050d, 0x0004, 0x07b6,\r
++      0x0013, 0x0047, 0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x0d88,\r
++      0x0010, 0x0011, 0x0000, 0xff31, 0x0015, 0x0033, 0x0010, 0x0309,\r
++      0x000b, 0x840c, 0x0011, 0x0d88, 0x0010, 0x0005, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0000, 0xb909, 0x000b, 0x8412, 0x0017, 0x4000,\r
++      0x0005, 0x00b6, 0x0010, 0x0600, 0x0014, 0x05d6, 0x0004, 0x0483,\r
++      0x0000, 0xb05a, 0x0000, 0xb15b, 0x0005, 0x0054, 0x0010, 0x0829,\r
++      0x0010, 0x0d58, 0x0015, 0x0059, 0x0010, 0xffff, 0x0000, 0xb930,\r
++      0x0005, 0x0031, 0x0010, 0x001e, 0x0015, 0x0033, 0x0000, 0xb009,\r
++      0x000b, 0x8424, 0x0000, 0xb05c, 0x0005, 0x0031, 0x0000, 0x001f,\r
++      0x0015, 0x0033, 0x0000, 0xb009, 0x001b, 0x842a, 0x0001, 0xb0c8,\r
++      0x0010, 0x000f, 0x001b, 0x1431, 0x0015, 0x00ff, 0x0010, 0x0005,\r
++      0x0003, 0x0439, 0x0002, 0xb040, 0x0013, 0x1436, 0x0015, 0x00ff,\r
++      0x0000, 0x0004, 0x0003, 0x0439, 0x0001, 0xb0c8, 0x0010, 0x0006,\r
++      0x0002, 0xff60, 0x0010, 0xffb2, 0x0011, 0x0d88, 0x0000, 0x0019,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0010, 0xb109, 0x000b, 0x843f,\r
++      0x0012, 0xb170, 0x0011, 0xffc8, 0x0010, 0xff00, 0x0011, 0xb2d0,\r
++      0x0010, 0xff60, 0x0002, 0xb045, 0x0003, 0x144a, 0x0015, 0x00b2,\r
++      0x0000, 0x0002, 0x0013, 0x0454, 0x0002, 0xb046, 0x0003, 0x144f,\r
++      0x0015, 0x00b2, 0x0000, 0x0001, 0x0013, 0x0454, 0x0015, 0x00b2,\r
++      0x0010, 0x0000, 0x0000, 0xc0b0, 0x0010, 0xc0b1, 0x0003, 0x045a,\r
++      0x0000, 0xb930, 0x0005, 0x0031, 0x0010, 0x002b, 0x0015, 0x0033,\r
++      0x0000, 0xb011, 0x000b, 0x8459, 0x0010, 0xb16a, 0x0010, 0xb06b,\r
++      0x0000, 0xb261, 0x0015, 0x0044, 0x0010, 0x0018, 0x0005, 0x0031,\r
++      0x0000, 0x0023, 0x0015, 0x0033, 0x0000, 0x6241, 0x000b, 0x8463,\r
++      0x0013, 0x9464, 0x0015, 0x00a0, 0x0000, 0x0020, 0x0012, 0xd041,\r
++      0x001b, 0x1467, 0x0015, 0x00d1, 0x0010, 0x0202, 0x0013, 0x946b,\r
++      0x0000, 0x75ff, 0x0011, 0xffc8, 0x0000, 0x1804, 0x0001, 0xffd8,\r
++      0x0010, 0x0009, 0x0003, 0x9471, 0x0000, 0xff75, 0x0013, 0x9473,\r
++      0x0015, 0x00d1, 0x0000, 0x0200, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0001, 0xbd88, 0x0000, 0x0008, 0x0000, 0xff31, 0x0015, 0x00b1,\r
++      0x0010, 0x07d0, 0x0005, 0x00b0, 0x0010, 0x0009, 0x0015, 0x0033,\r
++      0x0000, 0xb012, 0x000b, 0x8481, 0x0013, 0x0404, 0x0000, 0xba30,\r
++      0x0005, 0x0031, 0x0000, 0x0031, 0x0015, 0x0033, 0x0000, 0xb009,\r
++      0x000b, 0x8488, 0x0002, 0xb040, 0x0013, 0x1496, 0x0000, 0xb7b0,\r
++      0x0000, 0xb9b1, 0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x0d88,\r
++      0x0000, 0x0013, 0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb012,\r
++      0x001b, 0x8494, 0x0013, 0x0498, 0x0010, 0xc0b1, 0x0000, 0xc0b0,\r
++      0x0017, 0x4000, 0x0005, 0x00b6, 0x0010, 0x0500, 0x0014, 0x05d6,\r
++      0x0005, 0x0054, 0x0010, 0x0889, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0011, 0x0d88, 0x0000, 0x0002, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0000, 0xb009, 0x000b, 0x84a5, 0x0010, 0xb058, 0x0000, 0x0d59,\r
++      0x0000, 0xb930, 0x0005, 0x0031, 0x0000, 0x0023, 0x0015, 0x0033,\r
++      0x0000, 0xb011, 0x001b, 0x84ad, 0x0010, 0xb15c, 0x0010, 0xb05d,\r
++      0x0005, 0x0031, 0x0010, 0x002b, 0x0015, 0x0033, 0x0000, 0xb011,\r
++      0x000b, 0x84b4, 0x0000, 0xb15e, 0x0000, 0xb05f, 0x0003, 0x94b7,\r
++      0x0015, 0x00a0, 0x0010, 0x000c, 0x0013, 0x05bb, 0x0005, 0x00b6,\r
++      0x0000, 0x0700, 0x0014, 0x05d6, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0011, 0x0d88, 0x0010, 0x0009, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0010, 0xb709, 0x000b, 0x84c5, 0x0012, 0xb749, 0x0003, 0x14cb,\r
++      0x0005, 0x0054, 0x0010, 0x0889, 0x0013, 0x04cd, 0x0005, 0x0054,\r
++      0x0010, 0x0898, 0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x0d88,\r
++      0x0000, 0x0002, 0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009,\r
++      0x000b, 0x84d4, 0x0010, 0xb058, 0x0000, 0x0d59, 0x0001, 0xb9a8,\r
++      0x0010, 0x00f0, 0x000b, 0x24f9, 0x0011, 0x0d88, 0x0010, 0x0005,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009, 0x001b, 0x84df,\r
++      0x0001, 0xb0c8, 0x0000, 0xf700, 0x0000, 0xffb0, 0x0011, 0xb0e8,\r
++      0x0000, 0xf100, 0x0013, 0x1540, 0x0011, 0xb0e8, 0x0000, 0xf200,\r
++      0x0013, 0x1545, 0x0011, 0xb0e8, 0x0010, 0xf300, 0x0013, 0x1568,\r
++      0x0011, 0xb0e8, 0x0000, 0xf400, 0x0013, 0x156d, 0x0011, 0xb0e8,\r
++      0x0010, 0xf500, 0x0013, 0x1540, 0x0011, 0xb0e8, 0x0010, 0xf600,\r
++      0x0003, 0x157e, 0x0005, 0x00ce, 0x0010, 0x0009, 0x0000, 0xb0cf,\r
++      0x0013, 0x07ab, 0x0000, 0xb930, 0x0005, 0x0031, 0x0000, 0x0025,\r
++      0x0015, 0x0033, 0x0000, 0xb039, 0x001b, 0x84fe, 0x0012, 0xb749,\r
++      0x0003, 0x1503, 0x0002, 0xb52c, 0x0000, 0xffb5, 0x0000, 0xb162,\r
++      0x0000, 0xb063, 0x0005, 0x0031, 0x0000, 0x001f, 0x0015, 0x0033,\r
++      0x0000, 0xb309, 0x001b, 0x8509, 0x0001, 0xb3c8, 0x0010, 0x0003,\r
++      0x0003, 0x1511, 0x0010, 0xffb2, 0x0001, 0xffe8, 0x0010, 0x0003,\r
++      0x000b, 0x1513, 0x0000, 0xc2b7, 0x0013, 0x059a, 0x0001, 0xb2e8,\r
++      0x0000, 0x0001, 0x0013, 0x151a, 0x0005, 0x00ce, 0x0010, 0x000a,\r
++      0x0010, 0xb2cf, 0x0013, 0x07ab, 0x0010, 0xb465, 0x0010, 0xb667,\r
++      0x0015, 0x00b7, 0x0010, 0x0018, 0x0001, 0xb5c8, 0x0010, 0x0300,\r
++      0x0003, 0x153f, 0x0012, 0xb548, 0x0013, 0x1526, 0x0000, 0xb6ff,\r
++      0x0011, 0xb780, 0x0010, 0xffb7, 0x0002, 0xb549, 0x0003, 0x152b,\r
++      0x0010, 0xb4ff, 0x0011, 0xb780, 0x0010, 0xffb7, 0x0015, 0x0044,\r
++      0x0010, 0x0018, 0x0005, 0x0031, 0x0000, 0x002c, 0x0015, 0x0033,\r
++      0x0000, 0x6841, 0x000b, 0x8531, 0x0015, 0x0044, 0x0000, 0x0019,\r
++      0x0005, 0x0031, 0x0000, 0x0034, 0x0015, 0x0033, 0x0000, 0x5029,\r
++      0x000b, 0x8538, 0x0015, 0x0044, 0x0000, 0x0008, 0x0011, 0xb7c8,\r
++      0x0010, 0x0003, 0x0003, 0x153f, 0x0010, 0xff55, 0x0013, 0x059a,\r
++      0x0005, 0x00b5, 0x0000, 0x0008, 0x0015, 0x00b7, 0x0010, 0x0018,\r
++      0x0013, 0x059a, 0x0011, 0x0d88, 0x0000, 0x000b, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0000, 0xb011, 0x000b, 0x854a, 0x0010, 0xb1ff,\r
++      0x0001, 0xb0d0, 0x0003, 0x1553, 0x0005, 0x00b5, 0x0010, 0x0b02,\r
++      0x0010, 0xb062, 0x0010, 0xb163, 0x0013, 0x0555, 0x0005, 0x00b5,\r
++      0x0000, 0x0302, 0x0015, 0x0065, 0x0010, 0x0012, 0x0005, 0x0067,\r
++      0x0000, 0x0008, 0x0015, 0x006c, 0x0000, 0x7000, 0x0005, 0x006d,\r
++      0x0010, 0x0500, 0x0015, 0x006f, 0x0010, 0x000a, 0x0015, 0x0044,\r
++      0x0000, 0x0001, 0x0005, 0x0052, 0x0000, 0x2500, 0x0015, 0x0044,\r
++      0x0000, 0x0008, 0x0015, 0x00b7, 0x0000, 0x0032, 0x0013, 0x059a,\r
++      0x0005, 0x00b5, 0x0010, 0x0028, 0x0015, 0x00b7, 0x0010, 0x0018,\r
++      0x0013, 0x059a, 0x0005, 0x00b5, 0x0000, 0x0100, 0x0005, 0x0067,\r
++      0x0000, 0x0008, 0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x0d88,\r
++      0x0010, 0x0018, 0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009,\r
++      0x001b, 0x8578, 0x0001, 0xb0c8, 0x0010, 0x00ff, 0x0015, 0x00b7,\r
++      0x0000, 0x0020, 0x0013, 0x059a, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0011, 0x0d88, 0x0010, 0x0005, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0000, 0xb609, 0x000b, 0x8585, 0x0001, 0xb6c8, 0x0010, 0xff00,\r
++      0x0000, 0xffb0, 0x0015, 0x0033, 0x0000, 0xb00a, 0x001b, 0x858b,\r
++      0x0001, 0xb6c8, 0x0010, 0x00ff, 0x0012, 0xff10, 0x000b, 0x1594,\r
++      0x0000, 0xffb5, 0x0015, 0x00b7, 0x0010, 0x0018, 0x0013, 0x059a,\r
++      0x0010, 0xff63, 0x0005, 0x00b5, 0x0000, 0x0800, 0x0015, 0x00b7,\r
++      0x0010, 0x0018, 0x0013, 0x059a, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0011, 0x0d88, 0x0010, 0x0009, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0000, 0xb009, 0x000b, 0x85a1, 0x0010, 0xb561, 0x0013, 0x95a3,\r
++      0x0010, 0xb7a0, 0x0013, 0x05bb, 0x0005, 0x00b6, 0x0010, 0x0300,\r
++      0x0014, 0x05d6, 0x0005, 0x0054, 0x0010, 0x0819, 0x0010, 0x0d58,\r
++      0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x0d88, 0x0000, 0x0002,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009, 0x000b, 0x85b3,\r
++      0x0000, 0xb059, 0x0003, 0x95b5, 0x0010, 0xc0a0, 0x0010, 0x71ff,\r
++      0x0002, 0xff28, 0x0010, 0xff71, 0x0013, 0x05bb, 0x0012, 0xd041,\r
++      0x001b, 0x15bb, 0x0015, 0x00d1, 0x0010, 0x0202, 0x0000, 0x75ff,\r
++      0x0011, 0xffc8, 0x0000, 0x1804, 0x0001, 0xffd8, 0x0010, 0x0009,\r
++      0x0003, 0x95c4, 0x0000, 0xff75, 0x0013, 0x95c6, 0x0015, 0x00d1,\r
++      0x0000, 0x0200, 0x0015, 0x0030, 0x0000, 0x0400, 0x0001, 0xbd88,\r
++      0x0000, 0x0008, 0x0000, 0xff31, 0x0005, 0x00b0, 0x0010, 0x0009,\r
++      0x0015, 0x00b1, 0x0010, 0x07d0, 0x0015, 0x0033, 0x0000, 0xb012,\r
++      0x001b, 0x85d4, 0x0013, 0x0404, 0x0015, 0x0044, 0x0000, 0x0008,\r
++      0x0005, 0x0098, 0x0010, 0x0056, 0x0015, 0x0099, 0x0000, 0x9575,\r
++      0x0014, 0x0772, 0x0000, 0xb096, 0x0012, 0xb270, 0x0010, 0xff56,\r
++      0x0004, 0x0794, 0x0010, 0xb052, 0x0010, 0xb153, 0x0000, 0xb6ff,\r
++      0x0011, 0xb2d0, 0x0010, 0xff50, 0x0010, 0xb351, 0x0017, 0x4000,\r
++      0x0015, 0x0030, 0x0000, 0x0400, 0x0001, 0x1288, 0x0010, 0x0011,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0x1009, 0x000b, 0x85ef,\r
++      0x0015, 0x000f, 0x0000, 0x0001, 0x0010, 0xc014, 0x0000, 0x1213,\r
++      0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x1388, 0x0000, 0x0004,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xba09, 0x000b, 0x85fb,\r
++      0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x1388, 0x0010, 0x0005,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0x1a09, 0x001b, 0x8603,\r
++      0x0012, 0x104b, 0x001b, 0x160c, 0x0000, 0x1a30, 0x0005, 0x0031,\r
++      0x0000, 0x000b, 0x0015, 0x0033, 0x0000, 0x1621, 0x000b, 0x860b,\r
++      0x0010, 0x15fe, 0x001b, 0x6615, 0x0004, 0x0633, 0x0002, 0x3a42,\r
++      0x000b, 0x1632, 0x0001, 0x10c8, 0x0010, 0x000f, 0x001b, 0x1695,\r
++      0x0003, 0x0631, 0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x1388,\r
++      0x0010, 0x0003, 0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009,\r
++      0x000b, 0x861c, 0x0015, 0x0033, 0x0010, 0xc00a, 0x000b, 0x861f,\r
++      0x0010, 0xb0fe, 0x0013, 0x6624, 0x0000, 0xb012, 0x0003, 0x0626,\r
++      0x0010, 0xc012, 0x0010, 0xc011, 0x0015, 0x000f, 0x0010, 0x0000,\r
++      0x0002, 0x3944, 0x0013, 0x162f, 0x0015, 0x0039, 0x0000, 0x5040,\r
++      0x0015, 0x00b8, 0x0000, 0x0008, 0x0014, 0x07ed, 0x0000, 0xc013,\r
++      0x0003, 0x0632, 0x0004, 0x07d9, 0x0003, 0x0051, 0x0003, 0xb633,\r
++      0x0005, 0x002a, 0x0000, 0x0004, 0x0000, 0xba30, 0x0005, 0x0031,\r
++      0x0010, 0x001b, 0x0015, 0x0033, 0x0000, 0xb009, 0x000b, 0x863b,\r
++      0x0000, 0xc02c, 0x0000, 0xb02d, 0x0012, 0x104b, 0x0003, 0x1656,\r
++      0x0000, 0x1a30, 0x0005, 0x0031, 0x0000, 0x0023, 0x0015, 0x0033,\r
++      0x0000, 0xb129, 0x000b, 0x8645, 0x0000, 0xb120, 0x0010, 0xb221,\r
++      0x0000, 0xb322, 0x0000, 0xb423, 0x0000, 0xb524, 0x0000, 0xc025,\r
++      0x0010, 0xb526, 0x0010, 0xc027, 0x0010, 0xb516, 0x0010, 0xc017,\r
++      0x0000, 0xb518, 0x0000, 0xc019, 0x0010, 0xc028, 0x0000, 0xc029,\r
++      0x0010, 0xc01e, 0x0003, 0x068c, 0x0012, 0x1044, 0x0013, 0x1686,\r
++      0x0002, 0x1034, 0x0000, 0xff10, 0x0000, 0x1a30, 0x0005, 0x0031,\r
++      0x0000, 0x0002, 0x0015, 0x0033, 0x0000, 0x1b29, 0x001b, 0x865f,\r
++      0x0000, 0x1c30, 0x0000, 0x1b31, 0x0015, 0x0033, 0x0000, 0xb131,\r
++      0x000b, 0x8664, 0x0002, 0x1f43, 0x000b, 0x166b, 0x0010, 0xb3b5,\r
++      0x0000, 0xb4b6, 0x0000, 0xc0b3, 0x0010, 0xc0b4, 0x0000, 0xb120,\r
++      0x0010, 0xb221, 0x0000, 0xb322, 0x0000, 0xb423, 0x0000, 0xb524,\r
++      0x0010, 0xb625, 0x0010, 0xb516, 0x0000, 0xb617, 0x0000, 0x1826,\r
++      0x0000, 0x1927, 0x0000, 0x1a30, 0x0005, 0x0031, 0x0010, 0x000f,\r
++      0x0015, 0x0033, 0x0000, 0xb011, 0x000b, 0x867a, 0x0000, 0xb028,\r
++      0x0000, 0xb129, 0x0012, 0x1e10, 0x0010, 0xff1e, 0x0003, 0x668c,\r
++      0x0002, 0x1d00, 0x0010, 0xff1d, 0x0004, 0x027f, 0x0002, 0x3a42,\r
++      0x0013, 0x168c, 0x0003, 0x0694, 0x0000, 0x1a30, 0x0005, 0x0031,\r
++      0x0000, 0x0002, 0x0015, 0x0033, 0x0000, 0x1b79, 0x001b, 0x868b,\r
++      0x0013, 0xb68c, 0x0005, 0x002a, 0x0000, 0x0001, 0x0005, 0x0015,\r
++      0x0000, 0x0001, 0x0000, 0x1efe, 0x0003, 0x6694, 0x0003, 0x024b,\r
++      0x0017, 0x4000, 0x0000, 0xba30, 0x0005, 0x0031, 0x0010, 0x001b,\r
++      0x0015, 0x0033, 0x0010, 0xb051, 0x001b, 0x869a, 0x0000, 0xb0a3,\r
++      0x0010, 0xb697, 0x0010, 0xb946, 0x0015, 0x00a5, 0x0000, 0x0010,\r
++      0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x1388, 0x0000, 0x0002,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb509, 0x000b, 0x86a7,\r
++      0x0004, 0x0794, 0x0004, 0x0783, 0x0012, 0xb470, 0x0010, 0xffb4,\r
++      0x0010, 0xb48e, 0x0010, 0xb08a, 0x0010, 0xb18b, 0x0012, 0x104d,\r
++      0x0003, 0x16b2, 0x0003, 0x06df, 0x0012, 0x104b, 0x0003, 0x16c5,\r
++      0x0005, 0x008c, 0x0010, 0x0829, 0x0010, 0xc08d, 0x0001, 0xb2d8,\r
++      0x0010, 0x0600, 0x0010, 0xff88, 0x0010, 0xb389, 0x0000, 0x1390,\r
++      0x0010, 0xb591, 0x0000, 0xc08f, 0x0010, 0x1ab9, 0x0004, 0x0483,\r
++      0x0013, 0x96c0, 0x0010, 0xb092, 0x0010, 0xb193, 0x0013, 0x96c3,\r
++      0x0003, 0x06da, 0x0005, 0x008c, 0x0000, 0x0809, 0x0015, 0x008d,\r
++      0x0000, 0x0008, 0x0001, 0xb2d8, 0x0000, 0x0100, 0x0010, 0xff88,\r
++      0x0010, 0xb389, 0x0000, 0x1390, 0x0010, 0xb591, 0x0000, 0xc08f,\r
++      0x0000, 0x1a30, 0x0005, 0x0031, 0x0010, 0x000f, 0x0015, 0x0033,\r
++      0x0000, 0xb011, 0x000b, 0x86d5, 0x0003, 0x96d6, 0x0000, 0xb192,\r
++      0x0000, 0xb093, 0x0003, 0x96d9, 0x0010, 0x19a1, 0x0000, 0x18a2,\r
++      0x0015, 0x00b1, 0x0010, 0x0096, 0x0003, 0x074e, 0x0000, 0xb590,\r
++      0x0010, 0x1391, 0x0001, 0x10c8, 0x0010, 0x000f, 0x0001, 0xffe8,\r
++      0x0010, 0x0005, 0x0013, 0x1706, 0x0001, 0xb2d8, 0x0000, 0x0700,\r
++      0x0010, 0xff88, 0x0010, 0xb389, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0011, 0x1388, 0x0010, 0x0009, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0000, 0xb009, 0x000b, 0x86f1, 0x0002, 0xb049, 0x0003, 0x16f9,\r
++      0x0005, 0x008c, 0x0010, 0x0889, 0x0015, 0x00b1, 0x0010, 0x0096,\r
++      0x0003, 0x06fd, 0x0005, 0x008c, 0x0010, 0x0898, 0x0015, 0x00b1,\r
++      0x0000, 0x0092, 0x0010, 0xc08d, 0x0000, 0xc08f, 0x0013, 0x96ff,\r
++      0x0000, 0xc092, 0x0010, 0xc093, 0x0013, 0x9702, 0x0010, 0x19a1,\r
++      0x0000, 0x18a2, 0x0003, 0x074e, 0x0001, 0xb2d8, 0x0000, 0x0100,\r
++      0x0010, 0xff88, 0x0010, 0xb389, 0x0005, 0x008c, 0x0010, 0x0880,\r
++      0x0015, 0x008d, 0x0000, 0x0008, 0x0011, 0x1388, 0x0000, 0x000e,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009, 0x001b, 0x8713,\r
++      0x0010, 0xb08f, 0x0000, 0xb590, 0x0010, 0x1391, 0x0000, 0x1a30,\r
++      0x0005, 0x0031, 0x0000, 0x000d, 0x0015, 0x0033, 0x0000, 0xb021,\r
++      0x001b, 0x871c, 0x0003, 0x971d, 0x0010, 0xb392, 0x0010, 0xb293,\r
++      0x0013, 0x9720, 0x0000, 0xb1a1, 0x0010, 0xb0a2, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0011, 0x1388, 0x0000, 0x000b, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0010, 0xb211, 0x001b, 0x872a, 0x0000, 0xb3ff,\r
++      0x0001, 0xb080, 0x0000, 0xffb3, 0x001b, 0x2731, 0x0002, 0xb200,\r
++      0x0013, 0x0732, 0x0010, 0xb2ff, 0x0011, 0xb180, 0x0010, 0xffb2,\r
++      0x0011, 0x1388, 0x0000, 0x000b, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0010, 0xb212, 0x000b, 0x8739, 0x0015, 0x00b1, 0x0000, 0x0092,\r
++      0x0002, 0x104c, 0x0003, 0x174c, 0x0011, 0xc2e8, 0x0010, 0x000c,\r
++      0x000b, 0x1744, 0x0015, 0x00ff, 0x0000, 0x0800, 0x0013, 0x074c,\r
++      0x0011, 0xc2e8, 0x0000, 0x0020, 0x001b, 0x174a, 0x0015, 0x00ff,\r
++      0x0010, 0x1800, 0x0013, 0x074c, 0x0015, 0x00ff, 0x0000, 0x1000,\r
++      0x0011, 0xb1d0, 0x0010, 0xffb1, 0x0015, 0x009a, 0x0010, 0x0036,\r
++      0x0005, 0x009b, 0x0000, 0x95d5, 0x0012, 0xd041, 0x001b, 0x1752,\r
++      0x0015, 0x00d1, 0x0010, 0x0202, 0x0003, 0x9756, 0x0012, 0x104e,\r
++      0x0003, 0x175b, 0x0012, 0xb12f, 0x0010, 0xffb1, 0x0000, 0xb175,\r
++      0x0003, 0x975c, 0x0015, 0x00d1, 0x0000, 0x0200, 0x0001, 0x19c8,\r
++      0x0010, 0xfff0, 0x000b, 0x1765, 0x0015, 0x00b1, 0x0010, 0x07d0,\r
++      0x0013, 0x0767, 0x0015, 0x00b1, 0x0000, 0x1b58, 0x0005, 0x00b0,\r
++      0x0010, 0x0009, 0x0015, 0x0030, 0x0000, 0x0400, 0x0001, 0xbd88,\r
++      0x0000, 0x000b, 0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb012,\r
++      0x001b, 0x8770, 0x0003, 0x0632, 0x0000, 0xba30, 0x0005, 0x0031,\r
++      0x0010, 0x0021, 0x0015, 0x0033, 0x0010, 0xb019, 0x000b, 0x8777,\r
++      0x0002, 0xb200, 0x0011, 0xffc8, 0x0010, 0x00ff, 0x0010, 0xffb2,\r
++      0x0010, 0xb2b7, 0x0005, 0x0031, 0x0000, 0x0023, 0x0015, 0x0033,\r
++      0x0010, 0xb20a, 0x000b, 0x8781, 0x0017, 0x4000, 0x0000, 0xba30,\r
++      0x0005, 0x0031, 0x0000, 0x0023, 0x0015, 0x0033, 0x0010, 0xb409,\r
++      0x000b, 0x8788, 0x0002, 0xb400, 0x0011, 0xffc8, 0x0010, 0x00ff,\r
++      0x0010, 0xffb4, 0x0010, 0xb4b7, 0x0005, 0x0031, 0x0000, 0x0023,\r
++      0x0015, 0x0033, 0x0010, 0xb40a, 0x001b, 0x8792, 0x0017, 0x4000,\r
++      0x0000, 0xba30, 0x0001, 0xc7c8, 0x0000, 0x0020, 0x000b, 0x17a0,\r
++      0x0005, 0x0031, 0x0010, 0x0028, 0x0015, 0x0033, 0x0010, 0xb209,\r
++      0x000b, 0x879c, 0x0011, 0xb2c8, 0x0000, 0xff80, 0x0013, 0x17a3,\r
++      0x0010, 0xc4b0, 0x0010, 0xc5b1, 0x0003, 0x07a5, 0x0010, 0xc6b1,\r
++      0x0000, 0xc0b0, 0x0005, 0x0031, 0x0000, 0x0004, 0x0015, 0x0033,\r
++      0x0010, 0xb211, 0x000b, 0x87a9, 0x0017, 0x4000, 0x0015, 0x00b8,\r
++      0x0010, 0x0009, 0x0015, 0x003a, 0x0010, 0x0707, 0x0014, 0x07ed,\r
++      0x0013, 0x002d, 0x0015, 0x00b8, 0x0010, 0x0009, 0x0015, 0x003a,\r
++      0x0010, 0x0707, 0x0003, 0x07ed, 0x0004, 0x0110, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0011, 0x0d88, 0x0000, 0x0004, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0000, 0xba09, 0x000b, 0x87be, 0x0014, 0x0772,\r
++      0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x0d88, 0x0000, 0x0010,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0010, 0xb20a, 0x001b, 0x87c7,\r
++      0x0011, 0x0d88, 0x0010, 0x0011, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0010, 0x0309, 0x001b, 0x87cd, 0x0002, 0x0327, 0x0010, 0xffb2,\r
++      0x0011, 0x0d88, 0x0010, 0x0011, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0010, 0xb20a, 0x001b, 0x87d5, 0x0015, 0x00b8, 0x0010, 0x0006,\r
++      0x0003, 0x07ed, 0x0014, 0x0122, 0x0014, 0x0772, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0011, 0x1388, 0x0000, 0x0010, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0010, 0xb20a, 0x000b, 0x87e2, 0x0012, 0x1027,\r
++      0x0010, 0xffb2, 0x0011, 0x1388, 0x0010, 0x0011, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0010, 0xb20a, 0x001b, 0x87ea, 0x0015, 0x00b8,\r
++      0x0000, 0x0007, 0x0013, 0x47ed, 0x0000, 0xb838, 0x0017, 0x4000,\r
++      0xa85a, 0x97da\r
++};\r
++unsigned short xseqflx_code_length01 = 0x0fe2;\r
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/ql2322ipx_fw.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/ql2322ipx_fw.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/ql2322ipx_fw.h       1969-12-31 16:00:00.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/ql2322ipx_fw.h    2004-04-22 19:42:21.000000000 -0700
+@@ -0,0 +1,8072 @@
++/******************************************************************************\r
++ *                  QLOGIC LINUX SOFTWARE\r
++ *\r
++ * QLogic ISP2x00 device driver for Linux 2.4.x\r
++ * Copyright (C) 2003 QLogic Corporation\r
++ * (www.qlogic.com)\r
++ *\r
++ * This program is free software; you can redistribute it and/or modify it\r
++ * under the terms of the GNU General Public License as published by the\r
++ * Free Software Foundation; either version 2, or (at your option) any\r
++ * later version.\r
++ *\r
++ * This program is distributed in the hope that it will be useful, but\r
++ * WITHOUT ANY WARRANTY; without even the implied warranty of\r
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
++ * General Public License for more details.\r
++ *\r
++ ******************************************************************************/\r
++\r
++/************************************************************************\r
++ *                                                                    *                                                                       *\r
++ *          --- ISP2322 Initiator/Target Firmware ---                 *\r
++ *            with support for Internet Protocol                      *\r
++ *            and 2K port logins.                                     *\r
++ *                                                                    *                                                                       *\r
++ ************************************************************************\r
++ */\r
++/*\r
++ *    Firmware Version 3.02.28 (14:05 Apr 03, 2004)\r
++ */\r
++\r
++#ifdef UNIQUE_FW_NAME\r
++unsigned short fw2322ipx_version = 3*1024+2;\r
++#else\r
++unsigned short risc_code_version = 3*1024+2;\r
++#endif\r
++\r
++#ifdef UNIQUE_FW_NAME\r
++unsigned char fw2322ipx_version_str[] = {3, 2,28};\r
++#else\r
++unsigned char firmware_version[] = {3, 2,28};\r
++#endif\r
++\r
++#ifdef UNIQUE_FW_NAME\r
++#define fw2322ipx_VERSION_STRING "3.02.28"\r
++#else\r
++#define FW_VERSION_STRING "3.02.28"\r
++#endif\r
++\r
++#ifdef UNIQUE_FW_NAME\r
++unsigned short fw2322ipx_addr01 = 0x0800 ;\r
++#else\r
++unsigned short risc_code_addr01 = 0x0800 ;\r
++#endif\r
++\r
++#ifdef UNIQUE_FW_NAME\r
++unsigned short fw2322ipx_code01[] = { \r
++#else\r
++unsigned short risc_code01[] = { \r
++#endif\r
++      0x0470, 0x0000, 0x0000, 0xdf42, 0x0000, 0x0003, 0x0002, 0x001c,\r
++      0x0137, 0x2043, 0x4f50, 0x5952, 0x4947, 0x4854, 0x2032, 0x3030,\r
++      0x3120, 0x514c, 0x4f47, 0x4943, 0x2043, 0x4f52, 0x504f, 0x5241,\r
++      0x5449, 0x4f4e, 0x2049, 0x5350, 0x3233, 0x3030, 0x2046, 0x6972,\r
++      0x6d77, 0x6172, 0x6520, 0x2056, 0x6572, 0x7369, 0x6f6e, 0x2030,\r
++      0x332e, 0x3032, 0x2e32, 0x3820, 0x2020, 0x2020, 0x2400, 0x20a9,\r
++      0x000f, 0x2001, 0x0000, 0x400f, 0x2091, 0x2200, 0x20a9, 0x000f,\r
++      0x2001, 0x0000, 0x400f, 0x2091, 0x2400, 0x20a9, 0x000f, 0x2001,\r
++      0x0000, 0x400f, 0x2091, 0x2600, 0x20a9, 0x000f, 0x2001, 0x0000,\r
++      0x400f, 0x2091, 0x2800, 0x20a9, 0x000f, 0x2001, 0x0000, 0x400f,\r
++      0x2091, 0x2a00, 0x20a9, 0x000f, 0x2001, 0x0000, 0x400f, 0x2091,\r
++      0x2c00, 0x20a9, 0x000f, 0x2001, 0x0000, 0x400f, 0x2091, 0x2e00,\r
++      0x20a9, 0x000f, 0x2001, 0x0000, 0x400f, 0x2091, 0x2000, 0x2001,\r
++      0x0000, 0x20c1, 0x0004, 0x20c9, 0x1cff, 0x2059, 0x0000, 0x2b78,\r
++      0x7883, 0x0004, 0x2089, 0x2ab5, 0x2051, 0x1800, 0x2a70, 0x20e1,\r
++      0x0001, 0x20e9, 0x0001, 0x2009, 0x0000, 0x080c, 0x0e55, 0x00f6,\r
++      0x7888, 0x9005, 0x11f8, 0x2061, 0xc000, 0x080c, 0x205a, 0x1170,\r
++      0x2079, 0x0300, 0x080c, 0x2070, 0x2061, 0xe000, 0x080c, 0x205a,\r
++      0x1128, 0x2079, 0x0380, 0x080c, 0x2070, 0x0060, 0x00fe, 0x7883,\r
++      0x4010, 0x7837, 0x4010, 0x7833, 0x0010, 0x2091, 0x5000, 0x2091,\r
++      0x4080, 0x0cf8, 0x00fe, 0x2029, 0x5600, 0x2031, 0xffff, 0x2039,\r
++      0x55dc, 0x2021, 0x0200, 0x20e9, 0x0001, 0x20a1, 0x0000, 0x20a9,\r
++      0x0800, 0x900e, 0x4104, 0x20e9, 0x0001, 0x20a1, 0x1000, 0x900e,\r
++      0x2001, 0x0dc1, 0x9084, 0x0fff, 0x20a8, 0x4104, 0x2001, 0x0000,\r
++      0x9086, 0x0000, 0x0120, 0x21a8, 0x4104, 0x8001, 0x1de0, 0x756e,\r
++      0x7672, 0x776a, 0x7476, 0x747a, 0x00e6, 0x2071, 0x1b4e, 0x2472,\r
++      0x00ee, 0x20a1, 0x1ddc, 0x7170, 0x810d, 0x810d, 0x810d, 0x810d,\r
++      0x918c, 0x000f, 0x2001, 0x0001, 0x9112, 0x900e, 0x21a8, 0x4104,\r
++      0x8211, 0x1de0, 0x7170, 0x3400, 0x8001, 0x9102, 0x0120, 0x0218,\r
++      0x20a8, 0x900e, 0x4104, 0x2009, 0x1800, 0x810d, 0x810d, 0x810d,\r
++      0x810d, 0x810d, 0x918c, 0x001f, 0x2001, 0x0001, 0x9112, 0x20e9,\r
++      0x0001, 0x20a1, 0x0800, 0x900e, 0x20a9, 0x0800, 0x4104, 0x8211,\r
++      0x1dd8, 0x080c, 0x0f52, 0x080c, 0x6037, 0x080c, 0xab83, 0x080c,\r
++      0x1109, 0x080c, 0x1328, 0x080c, 0x1bb0, 0x080c, 0x918d, 0x080c,\r
++      0x0d0f, 0x080c, 0x108e, 0x080c, 0x3474, 0x080c, 0x7801, 0x080c,\r
++      0x6a8f, 0x080c, 0x8905, 0x080c, 0x8569, 0x080c, 0x223f, 0x080c,\r
++      0x7ed6, 0x080c, 0x2089, 0x080c, 0x21c3, 0x080c, 0x2234, 0x2091,\r
++      0x3009, 0x7883, 0x0000, 0x1004, 0x0943, 0x7880, 0x9086, 0x0002,\r
++      0x1190, 0x7883, 0x4000, 0x7837, 0x4000, 0x7833, 0x0010, 0x0e04,\r
++      0x0937, 0x2091, 0x5000, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004,\r
++      0xd084, 0x190c, 0x11d6, 0x2071, 0x1800, 0x7003, 0x0000, 0x780c,\r
++      0x9084, 0x0030, 0x9086, 0x0000, 0x190c, 0x0d7d, 0x2071, 0x1800,\r
++      0x7000, 0x908e, 0x0003, 0x1168, 0x080c, 0x4bcc, 0x080c, 0x349b,\r
++      0x080c, 0x7869, 0x080c, 0x6fd7, 0x080c, 0x89e3, 0x080c, 0x8592,\r
++      0x0c68, 0x000b, 0x0c88, 0x096d, 0x096e, 0x0b09, 0x096b, 0x0bc3,\r
++      0x0d0e, 0x0d0e, 0x0d0e, 0x080c, 0x0d7d, 0x0005, 0x0126, 0x00f6,\r
++      0x2091, 0x8000, 0x7000, 0x9086, 0x0001, 0x1904, 0x0adc, 0x080c,\r
++      0x0ea5, 0x080c, 0x74e9, 0x0150, 0x080c, 0x750c, 0x15b0, 0x2079,\r
++      0x0100, 0x7828, 0x9085, 0x1800, 0x782a, 0x0478, 0x080c, 0x741a,\r
++      0x7000, 0x9086, 0x0001, 0x1904, 0x0adc, 0x7098, 0x9086, 0x0028,\r
++      0x1904, 0x0adc, 0x080c, 0x8561, 0x080c, 0x8553, 0x2001, 0x0161,\r
++      0x2003, 0x0001, 0x2079, 0x0100, 0x2011, 0xffff, 0x080c, 0x2a44,\r
++      0x7a28, 0x9295, 0x5e2c, 0x7a2a, 0x2011, 0x735f, 0x080c, 0x863e,\r
++      0x2011, 0x7352, 0x080c, 0x874a, 0x2011, 0x5e8e, 0x080c, 0x863e,\r
++      0x2011, 0x8030, 0x901e, 0x7396, 0x04d0, 0x080c, 0x573b, 0x2079,\r
++      0x0100, 0x7844, 0x9005, 0x1904, 0x0adc, 0x2011, 0x5e8e, 0x080c,\r
++      0x863e, 0x2011, 0x735f, 0x080c, 0x863e, 0x2011, 0x7352, 0x080c,\r
++      0x874a, 0x2001, 0x0265, 0x2001, 0x0205, 0x2003, 0x0000, 0x7840,\r
++      0x9084, 0xfffb, 0x7842, 0x2001, 0x19a6, 0x2004, 0x9005, 0x1140,\r
++      0x00c6, 0x2061, 0x0100, 0x080c, 0x5fdf, 0x00ce, 0x0804, 0x0adc,\r
++      0x780f, 0x006b, 0x7a28, 0x080c, 0x74f1, 0x0118, 0x9295, 0x5e2c,\r
++      0x0010, 0x9295, 0x402c, 0x7a2a, 0x2011, 0x8010, 0x73d8, 0x2001,\r
++      0x19a7, 0x2003, 0x0001, 0x080c, 0x2916, 0x080c, 0x4b07, 0x7248,\r
++      0xc284, 0x724a, 0x2001, 0x180c, 0x200c, 0xc1ac, 0xc1cc, 0x2102,\r
++      0x2001, 0x0390, 0x2003, 0x0400, 0x080c, 0xa896, 0x080c, 0xa073,\r
++      0x2011, 0x0004, 0x080c, 0xc848, 0x080c, 0xa8b2, 0x080c, 0x6917,\r
++      0x080c, 0x74e9, 0x1120, 0x080c, 0x2971, 0x0600, 0x0420, 0x080c,\r
++      0x5fe6, 0x0140, 0x7097, 0x0001, 0x70d3, 0x0000, 0x080c, 0x5908,\r
++      0x0804, 0x0adc, 0x080c, 0x56da, 0xd094, 0x01a8, 0x2001, 0x0390,\r
++      0x2003, 0x0404, 0x2011, 0x180c, 0x2204, 0xc0cd, 0x2012, 0x080c,\r
++      0x56de, 0xd0d4, 0x1118, 0x080c, 0x2971, 0x1270, 0x2011, 0x180c,\r
++      0x2204, 0xc0bc, 0x00a8, 0x080c, 0x56de, 0xd0d4, 0x1db8, 0x2011,\r
++      0x180c, 0x2204, 0xc0bd, 0x0060, 0x2011, 0x180c, 0x2204, 0xc0bd,\r
++      0x2012, 0x080c, 0x6a63, 0x1128, 0xd0a4, 0x0118, 0x2204, 0xc0fd,\r
++      0x2012, 0x080c, 0x6a29, 0x0120, 0x7a0c, 0xc2b4, 0x7a0e, 0x00a8,\r
++      0x707f, 0x0000, 0x080c, 0x74e9, 0x1130, 0x70b0, 0x9005, 0x1168,\r
++      0x080c, 0xcc9f, 0x0050, 0x080c, 0xcc9f, 0x70dc, 0xd09c, 0x1128,\r
++      0x70b0, 0x9005, 0x0110, 0x080c, 0x5fbc, 0x70e7, 0x0000, 0x70e3,\r
++      0x0000, 0x70a7, 0x0000, 0x080c, 0x2979, 0x0228, 0x2011, 0x0101,\r
++      0x2204, 0xc0c4, 0x2012, 0x72dc, 0x080c, 0x74e9, 0x1178, 0x9016,\r
++      0x0016, 0x080c, 0x2713, 0x2019, 0x196d, 0x211a, 0x001e, 0x705f,\r
++      0xffff, 0x7063, 0x00ef, 0x7083, 0x0000, 0x0020, 0x2019, 0x196d,\r
++      0x201b, 0x0000, 0x2079, 0x1847, 0x7804, 0xd0ac, 0x0108, 0xc295,\r
++      0x72de, 0x080c, 0x74e9, 0x0118, 0x9296, 0x0004, 0x0518, 0x2011,\r
++      0x0001, 0x080c, 0xc848, 0x70ab, 0x0000, 0x70af, 0xffff, 0x7003,\r
++      0x0002, 0x00fe, 0x080c, 0x2fb2, 0x080c, 0xa896, 0x2011, 0x0005,\r
++      0x080c, 0xa1cf, 0x080c, 0xa8b2, 0x080c, 0x74e9, 0x0148, 0x00c6,\r
++      0x2061, 0x0100, 0x0016, 0x080c, 0x2713, 0x61e2, 0x001e, 0x00ce,\r
++      0x012e, 0x00e0, 0x70ab, 0x0000, 0x70af, 0xffff, 0x7003, 0x0002,\r
++      0x080c, 0xa896, 0x2011, 0x0005, 0x080c, 0xa1cf, 0x080c, 0xa8b2,\r
++      0x080c, 0x74e9, 0x0148, 0x00c6, 0x2061, 0x0100, 0x0016, 0x080c,\r
++      0x2713, 0x61e2, 0x001e, 0x00ce, 0x00fe, 0x012e, 0x0005, 0x00c6,\r
++      0x00b6, 0x080c, 0x74e9, 0x1118, 0x20a9, 0x0800, 0x0010, 0x20a9,\r
++      0x0782, 0x080c, 0x74e9, 0x1110, 0x900e, 0x0010, 0x2009, 0x007e,\r
++      0x86ff, 0x0138, 0x9180, 0x1000, 0x2004, 0x905d, 0x0110, 0xb800,\r
++      0xd0bc, 0x090c, 0x32fc, 0x8108, 0x1f04, 0x0af0, 0x707f, 0x0000,\r
++      0x7080, 0x9084, 0x00ff, 0x7082, 0x70b3, 0x0000, 0x00be, 0x00ce,\r
++      0x0005, 0x00b6, 0x0126, 0x2091, 0x8000, 0x7000, 0x9086, 0x0002,\r
++      0x1904, 0x0bc0, 0x70ac, 0x9086, 0xffff, 0x0120, 0x080c, 0x2fb2,\r
++      0x0804, 0x0bc0, 0x70dc, 0xd0ac, 0x1110, 0xd09c, 0x0538, 0xd084,\r
++      0x0528, 0x0006, 0x2001, 0x0103, 0x2003, 0x002b, 0x000e, 0xd08c,\r
++      0x01e8, 0x080c, 0x336d, 0x11b0, 0x70e0, 0x9086, 0xffff, 0x0190,\r
++      0x080c, 0x3147, 0x70dc, 0xd094, 0x1904, 0x0bc0, 0x2011, 0x0001,\r
++      0x080c, 0xcf52, 0x0110, 0x2011, 0x0003, 0x901e, 0x080c, 0x3181,\r
++      0x0804, 0x0bc0, 0x70e4, 0x9005, 0x1904, 0x0bc0, 0x70a8, 0x9005,\r
++      0x1904, 0x0bc0, 0x70dc, 0xd0a4, 0x0118, 0xd0b4, 0x0904, 0x0bc0,\r
++      0x080c, 0x6a29, 0x1904, 0x0bc0, 0x080c, 0x6a7c, 0x1904, 0x0bc0,\r
++      0x080c, 0x6a63, 0x01c0, 0x0156, 0x00c6, 0x20a9, 0x007f, 0x900e,\r
++      0x0016, 0x080c, 0x6625, 0x1118, 0xb800, 0xd0ec, 0x1138, 0x001e,\r
++      0x8108, 0x1f04, 0x0b60, 0x00ce, 0x015e, 0x0028, 0x001e, 0x00ce,\r
++      0x015e, 0x0804, 0x0bc0, 0x0006, 0x2001, 0x0103, 0x2003, 0x002b,\r
++      0x000e, 0x2011, 0x19b3, 0x080c, 0x0fc2, 0x2011, 0x19cd, 0x080c,\r
++      0x0fc2, 0x7030, 0xc08c, 0x7032, 0x7003, 0x0003, 0x70af, 0xffff,\r
++      0x080c, 0x0e79, 0x9006, 0x080c, 0x25a0, 0x080c, 0x336d, 0x0118,\r
++      0x080c, 0x4ca4, 0x0050, 0x0036, 0x0046, 0x2019, 0xffff, 0x2021,\r
++      0x0006, 0x080c, 0x4cbe, 0x004e, 0x003e, 0x00f6, 0x2079, 0x0100,\r
++      0x080c, 0x750c, 0x0150, 0x080c, 0x74e9, 0x7828, 0x0118, 0x9084,\r
++      0xe1ff, 0x0010, 0x9084, 0xffdf, 0x782a, 0x00fe, 0x080c, 0xa896,\r
++      0x2001, 0x19e8, 0x2004, 0x9086, 0x0005, 0x1120, 0x2011, 0x0000,\r
++      0x080c, 0xa1cf, 0x2011, 0x0000, 0x080c, 0xa1d9, 0x080c, 0xa8b2,\r
++      0x012e, 0x00be, 0x0005, 0x0016, 0x0026, 0x0046, 0x00f6, 0x0126,\r
++      0x2091, 0x8000, 0x2079, 0x0100, 0x7904, 0x918c, 0xfffd, 0x7906,\r
++      0x2009, 0x00f7, 0x080c, 0x5fa5, 0x7940, 0x918c, 0x0010, 0x7942,\r
++      0x7924, 0xd1b4, 0x0120, 0x2011, 0x0040, 0x080c, 0x2a44, 0xd19c,\r
++      0x0120, 0x2011, 0x0008, 0x080c, 0x2a44, 0x0006, 0x0036, 0x0156,\r
++      0x0000, 0x2001, 0x19a7, 0x2004, 0x9005, 0x1518, 0x080c, 0x29d8,\r
++      0x1148, 0x2001, 0x0001, 0x080c, 0x2945, 0x2001, 0x0001, 0x080c,\r
++      0x2928, 0x00b8, 0x080c, 0x29e0, 0x1138, 0x9006, 0x080c, 0x2945,\r
++      0x9006, 0x080c, 0x2928, 0x0068, 0x080c, 0x29e8, 0x1d50, 0x2001,\r
++      0x1998, 0x2004, 0xd0fc, 0x0108, 0x0020, 0x080c, 0x273f, 0x0804,\r
++      0x0cc1, 0x080c, 0x2a67, 0x080c, 0x2aab, 0x20a9, 0x003a, 0x1d04,\r
++      0x0c17, 0x080c, 0x872a, 0x1f04, 0x0c17, 0x080c, 0x74fa, 0x0148,\r
++      0x080c, 0x750c, 0x1118, 0x080c, 0x77fc, 0x0050, 0x080c, 0x74f1,\r
++      0x0dd0, 0x080c, 0x77f7, 0x080c, 0x77ed, 0x080c, 0x741a, 0x0020,\r
++      0x2009, 0x00f8, 0x080c, 0x5fa5, 0x7850, 0xc0e5, 0x7852, 0x080c,\r
++      0x74e9, 0x0120, 0x7843, 0x0090, 0x7843, 0x0010, 0x2021, 0xe678,\r
++      0x2019, 0xea60, 0x0d0c, 0x872a, 0x7820, 0xd09c, 0x15a0, 0x080c,\r
++      0x74e9, 0x0904, 0x0ca3, 0x7824, 0xd0ac, 0x1904, 0x0cc6, 0x080c,\r
++      0x750c, 0x1548, 0x0046, 0x2021, 0x0320, 0x8421, 0x1df0, 0x004e,\r
++      0x2011, 0x1800, 0x080c, 0x2a44, 0x080c, 0x29f0, 0x7824, 0x9084,\r
++      0x1800, 0x1168, 0x9484, 0x0fff, 0x1140, 0x2001, 0x1810, 0x2004,\r
++      0x9084, 0x9000, 0x0110, 0x080c, 0x0ce9, 0x8421, 0x1160, 0x1d04,\r
++      0x0c73, 0x080c, 0x872a, 0x080c, 0x77f7, 0x080c, 0x77ed, 0x7003,\r
++      0x0001, 0x0804, 0x0cc6, 0x8319, 0x1928, 0x2001, 0x1810, 0x2004,\r
++      0x9084, 0x9000, 0x0110, 0x080c, 0x0ce9, 0x1d04, 0x0c89, 0x080c,\r
++      0x872a, 0x2009, 0x199b, 0x2104, 0x9005, 0x0118, 0x8001, 0x200a,\r
++      0x1188, 0x200b, 0x000a, 0x2011, 0x0048, 0x080c, 0x2a44, 0x20a9,\r
++      0x0002, 0x080c, 0x29d1, 0x7924, 0x080c, 0x29f0, 0xd19c, 0x0110,\r
++      0x080c, 0x2916, 0x00f0, 0x080c, 0x74fa, 0x1140, 0x94a2, 0x03e8,\r
++      0x1128, 0x080c, 0x74bd, 0x7003, 0x0001, 0x00c0, 0x2011, 0x1800,\r
++      0x080c, 0x2a44, 0x080c, 0x29f0, 0x7824, 0x080c, 0x7503, 0x0110,\r
++      0xd0ac, 0x1160, 0x9084, 0x1800, 0x0904, 0x0c7b, 0x7003, 0x0001,\r
++      0x0028, 0x2001, 0x0001, 0x080c, 0x25a0, 0x00a0, 0x7850, 0xc0e4,\r
++      0x7852, 0x2009, 0x180c, 0x210c, 0xd19c, 0x1120, 0x7904, 0x918d,\r
++      0x0002, 0x7906, 0x2011, 0x0048, 0x080c, 0x2a44, 0x7828, 0x9085,\r
++      0x0028, 0x782a, 0x2001, 0x19a7, 0x2003, 0x0000, 0x9006, 0x78f2,\r
++      0x015e, 0x003e, 0x000e, 0x012e, 0x00fe, 0x004e, 0x002e, 0x001e,\r
++      0x0005, 0x0006, 0x0016, 0x0026, 0x0036, 0x0046, 0x00b6, 0x00c6,\r
++      0x00d6, 0x00e6, 0x00f6, 0x0156, 0x0071, 0x0d0c, 0x872a, 0x015e,\r
++      0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be, 0x004e, 0x003e, 0x002e,\r
++      0x001e, 0x000e, 0x0005, 0x00e6, 0x2071, 0x189e, 0x7004, 0x9086,\r
++      0x0001, 0x1110, 0x080c, 0x349b, 0x00ee, 0x0005, 0x0005, 0x2a70,\r
++      0x2061, 0x19ab, 0x2063, 0x0003, 0x6007, 0x0002, 0x600b, 0x001c,\r
++      0x600f, 0x0137, 0x2001, 0x197c, 0x900e, 0x2102, 0x7196, 0x2001,\r
++      0x0100, 0x2004, 0x9082, 0x0002, 0x0218, 0x705f, 0xffff, 0x0008,\r
++      0x715e, 0x7067, 0xffff, 0x717e, 0x7182, 0x080c, 0xcc9f, 0x70ef,\r
++      0x00c0, 0x2061, 0x196c, 0x6003, 0x0909, 0x6106, 0x600b, 0x8800,\r
++      0x600f, 0x0200, 0x6013, 0x00ff, 0x6017, 0x001f, 0x611a, 0x601f,\r
++      0x07d0, 0x2061, 0x1974, 0x6003, 0x8000, 0x6106, 0x610a, 0x600f,\r
++      0x0200, 0x6013, 0x00ff, 0x6116, 0x601b, 0x0001, 0x611e, 0x2061,\r
++      0x1989, 0x6003, 0x514c, 0x6007, 0x4f47, 0x600b, 0x4943, 0x600f,\r
++      0x2020, 0x2001, 0x182c, 0x2102, 0x0005, 0x9016, 0x080c, 0x6625,\r
++      0x1178, 0xb804, 0x90c4, 0x00ff, 0x98c6, 0x0006, 0x0128, 0x90c4,\r
++      0xff00, 0x98c6, 0x0600, 0x1120, 0x9186, 0x0080, 0x0108, 0x8210,\r
++      0x8108, 0x9186, 0x0800, 0x1d50, 0x2208, 0x0005, 0x2091, 0x8000,\r
++      0x2079, 0x0000, 0x000e, 0x00f6, 0x0010, 0x2091, 0x8000, 0x0e04,\r
++      0x0d7f, 0x0006, 0x0016, 0x2001, 0x8002, 0x0006, 0x2079, 0x0000,\r
++      0x000e, 0x7882, 0x7836, 0x001e, 0x798e, 0x000e, 0x788a, 0x000e,\r
++      0x7886, 0x3900, 0x789a, 0x7833, 0x0012, 0x2091, 0x5000, 0x0156,\r
++      0x00d6, 0x0036, 0x0026, 0x2079, 0x0300, 0x2069, 0x1b24, 0x7a08,\r
++      0x226a, 0x2069, 0x1b25, 0x7a18, 0x226a, 0x8d68, 0x7a1c, 0x226a,\r
++      0x782c, 0x2019, 0x1b32, 0x201a, 0x2019, 0x1b35, 0x9016, 0x7808,\r
++      0xd09c, 0x0168, 0x7820, 0x201a, 0x8210, 0x8318, 0x9386, 0x1b4e,\r
++      0x0108, 0x0ca8, 0x7808, 0xd09c, 0x0110, 0x2011, 0xdead, 0x2019,\r
++      0x1b33, 0x782c, 0x201a, 0x8318, 0x221a, 0x7803, 0x0000, 0x2069,\r
++      0x1a7a, 0x901e, 0x20a9, 0x0020, 0x7b26, 0x7a28, 0x226a, 0x8d68,\r
++      0x8318, 0x1f04, 0x0dcc, 0x0491, 0x002e, 0x003e, 0x00de, 0x015e,\r
++      0x2079, 0x1800, 0x7803, 0x0005, 0x2091, 0x4080, 0x2001, 0x0089,\r
++      0x2004, 0xd084, 0x0180, 0x2001, 0x1a22, 0x2004, 0x9005, 0x0128,\r
++      0x2001, 0x008b, 0x2004, 0xd0fc, 0x0dd8, 0x2001, 0x008a, 0x2003,\r
++      0x0002, 0x2003, 0x1001, 0x080c, 0x56e9, 0x1170, 0x080c, 0x0f13,\r
++      0x0110, 0x080c, 0x0e66, 0x080c, 0x56e9, 0x1130, 0x2071, 0x1800,\r
++      0x2011, 0x8000, 0x080c, 0x0f27, 0x0c70, 0x0005, 0x2001, 0x0382,\r
++      0x2004, 0x9084, 0x0007, 0x9086, 0x0001, 0x1120, 0x2001, 0x0015,\r
++      0x080c, 0xa887, 0x2079, 0x0380, 0x2069, 0x1b04, 0x7818, 0x6802,\r
++      0x781c, 0x6806, 0x7840, 0x680a, 0x7844, 0x680e, 0x782c, 0x6812,\r
++      0x2019, 0x1b0f, 0x9016, 0x7808, 0xd09c, 0x0150, 0x7820, 0x201a,\r
++      0x8210, 0x8318, 0x8210, 0x9282, 0x0011, 0x0ea8, 0x2011, 0xdead,\r
++      0x6a2a, 0x7830, 0x681a, 0x7834, 0x681e, 0x7838, 0x6822, 0x783c,\r
++      0x6826, 0x7803, 0x0000, 0x2069, 0x1ac4, 0x901e, 0x20a9, 0x0020,\r
++      0x7b26, 0x7828, 0x206a, 0x8d68, 0x8318, 0x1f04, 0x0e40, 0x2069,\r
++      0x1ae4, 0x2019, 0x00b0, 0x20a9, 0x0020, 0x7b26, 0x7828, 0x206a,\r
++      0x8d68, 0x8318, 0x1f04, 0x0e4d, 0x0005, 0x918c, 0x03ff, 0x2001,\r
++      0x0003, 0x2004, 0x9084, 0x0600, 0x1118, 0x918d, 0x6c00, 0x0010,\r
++      0x918d, 0x6400, 0x2001, 0x017f, 0x2102, 0x0005, 0x0026, 0x0126,\r
++      0x2011, 0x0080, 0x080c, 0x0f05, 0x20a9, 0x0900, 0x080c, 0x0f3b,\r
++      0x2011, 0x0040, 0x080c, 0x0f05, 0x20a9, 0x0900, 0x080c, 0x0f3b,\r
++      0x0c78, 0x0026, 0x080c, 0x0f13, 0x1188, 0x2011, 0x010e, 0x2214,\r
++      0x9294, 0x0007, 0x9296, 0x0007, 0x0118, 0x2011, 0x0947, 0x0010,\r
++      0x2011, 0x1b47, 0x080c, 0x0f27, 0x002e, 0x0005, 0x2011, 0x010e,\r
++      0x2214, 0x9294, 0x0007, 0x9296, 0x0007, 0x0118, 0x2011, 0xa880,\r
++      0x0010, 0x2011, 0x6840, 0xd0e4, 0x70f3, 0x0000, 0x1128, 0x70f3,\r
++      0x0fa0, 0x080c, 0x0f18, 0x002e, 0x0005, 0x0026, 0x080c, 0x0f13,\r
++      0x0148, 0xd0a4, 0x1138, 0x2011, 0xcdd5, 0x0010, 0x2011, 0x0080,\r
++      0x080c, 0x0f18, 0x002e, 0x0005, 0x0026, 0x70f3, 0x0000, 0x080c,\r
++      0x0f13, 0x1130, 0x2011, 0x8040, 0x080c, 0x0f27, 0x002e, 0x0005,\r
++      0x080c, 0x29e8, 0x1118, 0x2011, 0xcdc5, 0x0010, 0x2011, 0xcac2,\r
++      0x080c, 0x0f18, 0x002e, 0x0005, 0x00e6, 0x0016, 0x0006, 0x2071,\r
++      0x1800, 0xd0b4, 0x70ec, 0x71e8, 0x1118, 0xc0e4, 0xc1f4, 0x0050,\r
++      0x0006, 0x3b00, 0x9084, 0xff3e, 0x20d8, 0x000e, 0x70f3, 0x0000,\r
++      0xc0e5, 0xc1f5, 0x0099, 0x000e, 0x001e, 0x00ee, 0x0005, 0x00e6,\r
++      0x2071, 0x1800, 0xd0e4, 0x70ec, 0x1110, 0xc0dc, 0x0008, 0xc0dd,\r
++      0x0016, 0x71e8, 0x0019, 0x001e, 0x00ee, 0x0005, 0x70ee, 0x71ea,\r
++      0x7000, 0x9084, 0x0007, 0x000b, 0x0005, 0x0ecb, 0x0ea5, 0x0ea5,\r
++      0x0e79, 0x0eb4, 0x0ea5, 0x0ea5, 0x0eb4, 0xc284, 0x0016, 0x3b08,\r
++      0x3a00, 0x9104, 0x918d, 0x00c1, 0x21d8, 0x9084, 0xff3e, 0x9205,\r
++      0x20d0, 0x001e, 0x0005, 0x2001, 0x183b, 0x2004, 0xd0dc, 0x0005,\r
++      0x9e86, 0x1800, 0x190c, 0x0d7d, 0x70ec, 0xd0e4, 0x0108, 0xc2e5,\r
++      0x72ee, 0xd0e4, 0x1118, 0x9294, 0x00c1, 0x08f9, 0x0005, 0x9e86,\r
++      0x1800, 0x190c, 0x0d7d, 0x70e8, 0xd0f4, 0x0108, 0xc2f5, 0x72ea,\r
++      0xd0f4, 0x1140, 0x9284, 0x8000, 0x8005, 0xc284, 0x9215, 0x9294,\r
++      0x00c1, 0x0861, 0x0005, 0x1d04, 0x0f3b, 0x2091, 0x6000, 0x1f04,\r
++      0x0f3b, 0x0005, 0x890e, 0x810e, 0x810f, 0x9194, 0x003f, 0x918c,\r
++      0xffc0, 0x0005, 0x0006, 0x2200, 0x914d, 0x894f, 0x894d, 0x894d,\r
++      0x000e, 0x0005, 0x01d6, 0x0146, 0x0036, 0x0096, 0x2061, 0x188d,\r
++      0x600b, 0x0000, 0x600f, 0x0000, 0x6003, 0x0000, 0x6007, 0x0000,\r
++      0x2009, 0xffc0, 0x2105, 0x0006, 0x2001, 0xaaaa, 0x200f, 0x2019,\r
++      0x5555, 0x9016, 0x2049, 0x0bff, 0xab02, 0xa001, 0xa001, 0xa800,\r
++      0x9306, 0x1138, 0x2105, 0x9306, 0x0120, 0x8210, 0x99c8, 0x0400,\r
++      0x0c98, 0x000e, 0x200f, 0x2001, 0x189d, 0x928a, 0x000e, 0x1638,\r
++      0x928a, 0x0006, 0x2011, 0x0006, 0x1210, 0x2011, 0x0000, 0x2202,\r
++      0x9006, 0x2008, 0x82ff, 0x01b0, 0x8200, 0x600a, 0x600f, 0xffff,\r
++      0x6003, 0x0002, 0x6007, 0x0000, 0x0026, 0x2019, 0x0010, 0x9280,\r
++      0x0001, 0x20e8, 0x21a0, 0x21a8, 0x4104, 0x8319, 0x1de0, 0x8211,\r
++      0x1da0, 0x002e, 0x009e, 0x003e, 0x014e, 0x01de, 0x0005, 0x2011,\r
++      0x000e, 0x08e8, 0x0016, 0x0026, 0x0096, 0x3348, 0x080c, 0x0f42,\r
++      0x2100, 0x9300, 0x2098, 0x22e0, 0x009e, 0x002e, 0x001e, 0x0036,\r
++      0x3518, 0x20a9, 0x0001, 0x4002, 0x8007, 0x4004, 0x8319, 0x1dd8,\r
++      0x003e, 0x0005, 0x20e9, 0x0001, 0x71b8, 0x81ff, 0x11c0, 0x9006,\r
++      0x2009, 0x0200, 0x20a9, 0x0002, 0x9298, 0x0018, 0x23a0, 0x4001,\r
++      0x2009, 0x0700, 0x20a9, 0x0002, 0x9298, 0x0008, 0x23a0, 0x4001,\r
++      0x707c, 0x8007, 0x7180, 0x810f, 0x20a9, 0x0002, 0x4001, 0x9298,\r
++      0x000c, 0x23a0, 0x900e, 0x080c, 0x0d5d, 0x2001, 0x0000, 0x810f,\r
++      0x20a9, 0x0002, 0x4001, 0x0005, 0x89ff, 0x0140, 0xa804, 0xa807,\r
++      0x0000, 0x0006, 0x080c, 0x106c, 0x009e, 0x0cb0, 0x0005, 0x00e6,\r
++      0x2071, 0x1800, 0x080c, 0x10e5, 0x090c, 0x0d7d, 0x00ee, 0x0005,\r
++      0x0086, 0x00e6, 0x0006, 0x0026, 0x0036, 0x0126, 0x2091, 0x8000,\r
++      0x00c9, 0x2071, 0x1800, 0x73c0, 0x702c, 0x9016, 0x9045, 0x0158,\r
++      0x8210, 0x9906, 0x090c, 0x0d7d, 0x2300, 0x9202, 0x0120, 0x1a0c,\r
++      0x0d7d, 0xa000, 0x0c98, 0x012e, 0x003e, 0x002e, 0x000e, 0x00ee,\r
++      0x008e, 0x0005, 0x0086, 0x00e6, 0x0006, 0x0126, 0x2091, 0x8000,\r
++      0x2071, 0x1910, 0x7010, 0x9005, 0x0140, 0x7018, 0x9045, 0x0128,\r
++      0x9906, 0x090c, 0x0d7d, 0xa000, 0x0cc8, 0x012e, 0x000e, 0x00ee,\r
++      0x008e, 0x0005, 0x00e6, 0x2071, 0x1800, 0x0126, 0x2091, 0x8000,\r
++      0x70c0, 0x8001, 0x0270, 0x70c2, 0x702c, 0x2048, 0x9085, 0x0001,\r
++      0xa800, 0x702e, 0xa803, 0x0000, 0xa807, 0x0000, 0x012e, 0x00ee,\r
++      0x0005, 0x904e, 0x0cd8, 0x00e6, 0x0126, 0x2091, 0x8000, 0x2071,\r
++      0x1800, 0x70c0, 0x90ca, 0x0020, 0x0268, 0x8001, 0x70c2, 0x702c,\r
++      0x2048, 0xa800, 0x702e, 0xa803, 0x0000, 0xa807, 0x0000, 0x012e,\r
++      0x00ee, 0x0005, 0x904e, 0x0cd8, 0x00e6, 0x0126, 0x2091, 0x8000,\r
++      0x0016, 0x890e, 0x810e, 0x810f, 0x9184, 0x003f, 0xa862, 0x9184,\r
++      0xffc0, 0xa85e, 0x001e, 0x0020, 0x00e6, 0x0126, 0x2091, 0x8000,\r
++      0x2071, 0x1800, 0x702c, 0xa802, 0x2900, 0x702e, 0x70c0, 0x8000,\r
++      0x70c2, 0x080c, 0x8553, 0x012e, 0x00ee, 0x0005, 0x2071, 0x1800,\r
++      0x9026, 0x2009, 0x0000, 0x2049, 0x0400, 0x2900, 0x702e, 0x8940,\r
++      0x2800, 0xa802, 0xa95e, 0xa863, 0x0001, 0x8420, 0x9886, 0x0440,\r
++      0x0120, 0x2848, 0x9188, 0x0040, 0x0c90, 0x2071, 0x188d, 0x7000,\r
++      0x9005, 0x11a0, 0x2001, 0x0558, 0xa802, 0x2048, 0x2009, 0x5600,\r
++      0x8940, 0x2800, 0xa802, 0xa95e, 0xa863, 0x0001, 0x8420, 0x9886,\r
++      0x0800, 0x0120, 0x2848, 0x9188, 0x0040, 0x0c90, 0x2071, 0x188d,\r
++      0x7104, 0x7200, 0x82ff, 0x01d0, 0x7308, 0x8318, 0x831f, 0x831b,\r
++      0x831b, 0x7312, 0x8319, 0x2001, 0x0800, 0xa802, 0x2048, 0x8900,\r
++      0xa802, 0x2040, 0xa95e, 0xaa62, 0x8420, 0x2300, 0x9906, 0x0130,\r
++      0x2848, 0x9188, 0x0040, 0x9291, 0x0000, 0x0c88, 0xa803, 0x0000,\r
++      0x2071, 0x1800, 0x74be, 0x74c2, 0x0005, 0x00e6, 0x0016, 0x9984,\r
++      0xfc00, 0x01e8, 0x908c, 0xf800, 0x1168, 0x9982, 0x0400, 0x02b8,\r
++      0x9982, 0x0440, 0x0278, 0x9982, 0x0558, 0x0288, 0x9982, 0x0800,\r
++      0x1270, 0x0040, 0x9982, 0x0800, 0x0250, 0x2071, 0x188d, 0x7010,\r
++      0x9902, 0x1228, 0x9085, 0x0001, 0x001e, 0x00ee, 0x0005, 0x9006,\r
++      0x0cd8, 0x00e6, 0x2071, 0x1a21, 0x7007, 0x0000, 0x9006, 0x701e,\r
++      0x7022, 0x7002, 0x2071, 0x0000, 0x7010, 0x9085, 0x8044, 0x7012,\r
++      0x2071, 0x0080, 0x9006, 0x20a9, 0x0040, 0x7022, 0x1f04, 0x111d,\r
++      0x702b, 0x0020, 0x00ee, 0x0005, 0x0126, 0x2091, 0x8000, 0x00e6,\r
++      0xa06f, 0x0000, 0x2071, 0x1a21, 0x701c, 0x9088, 0x1a2b, 0x280a,\r
++      0x8000, 0x9084, 0x003f, 0x701e, 0x7120, 0x9106, 0x090c, 0x0d7d,\r
++      0x7004, 0x9005, 0x1128, 0x00f6, 0x2079, 0x0080, 0x00a9, 0x00fe,\r
++      0x00ee, 0x012e, 0x0005, 0x0126, 0x2091, 0x8000, 0x00e6, 0x2071,\r
++      0x1a21, 0x7004, 0x9005, 0x1128, 0x00f6, 0x2079, 0x0080, 0x0021,\r
++      0x00fe, 0x00ee, 0x012e, 0x0005, 0x7004, 0x9086, 0x0000, 0x1110,\r
++      0x7007, 0x0006, 0x7000, 0x0002, 0x1166, 0x12e9, 0x1164, 0x1164,\r
++      0x12dd, 0x12dd, 0x12dd, 0x12dd, 0x080c, 0x0d7d, 0x701c, 0x7120,\r
++      0x9106, 0x1148, 0x792c, 0x9184, 0x0001, 0x1120, 0xd1fc, 0x1110,\r
++      0x7007, 0x0000, 0x0005, 0x0096, 0x9180, 0x1a2b, 0x2004, 0x700a,\r
++      0x2048, 0x8108, 0x918c, 0x003f, 0x7122, 0x782b, 0x0026, 0xa88c,\r
++      0x7802, 0xa890, 0x7806, 0xa894, 0x780a, 0xa898, 0x780e, 0xa878,\r
++      0x700e, 0xa870, 0x7016, 0xa874, 0x701a, 0xa868, 0x009e, 0xd084,\r
++      0x0120, 0x7007, 0x0001, 0x0029, 0x0005, 0x7007, 0x0002, 0x00b1,\r
++      0x0005, 0x0016, 0x0026, 0x710c, 0x2011, 0x0040, 0x9182, 0x0040,\r
++      0x1210, 0x2110, 0x9006, 0x700e, 0x7212, 0x8203, 0x7812, 0x782b,\r
++      0x0020, 0x782b, 0x0041, 0x002e, 0x001e, 0x0005, 0x0016, 0x0026,\r
++      0x0136, 0x0146, 0x0156, 0x7014, 0x20e0, 0x7018, 0x2098, 0x20e9,\r
++      0x0000, 0x20a1, 0x0088, 0x782b, 0x0026, 0x710c, 0x2011, 0x0040,\r
++      0x9182, 0x0040, 0x1210, 0x2110, 0x9006, 0x700e, 0x22a8, 0x4006,\r
++      0x8203, 0x7812, 0x782b, 0x0020, 0x3300, 0x701a, 0x782b, 0x0001,\r
++      0x015e, 0x014e, 0x013e, 0x002e, 0x001e, 0x0005, 0x2009, 0x1a21,\r
++      0x2104, 0xc095, 0x200a, 0x080c, 0x1143, 0x0005, 0x0016, 0x00e6,\r
++      0x2071, 0x1a21, 0x00f6, 0x2079, 0x0080, 0x792c, 0xd1bc, 0x190c,\r
++      0x0d76, 0x782b, 0x0002, 0xd1fc, 0x0120, 0x918c, 0x0700, 0x7004,\r
++      0x0023, 0x00fe, 0x00ee, 0x001e, 0x0005, 0x1154, 0x11fc, 0x1230,\r
++      0x1308, 0x0d7d, 0x1323, 0x0d7d, 0x918c, 0x0700, 0x1550, 0x0136,\r
++      0x0146, 0x0156, 0x7014, 0x20e8, 0x7018, 0x20a0, 0x20e1, 0x0000,\r
++      0x2099, 0x0088, 0x782b, 0x0040, 0x7010, 0x20a8, 0x4005, 0x3400,\r
++      0x701a, 0x015e, 0x014e, 0x013e, 0x700c, 0x9005, 0x0578, 0x7800,\r
++      0x7802, 0x7804, 0x7806, 0x080c, 0x1199, 0x0005, 0x7008, 0x0096,\r
++      0x2048, 0xa86f, 0x0100, 0x009e, 0x7007, 0x0000, 0x080c, 0x1154,\r
++      0x0005, 0x7008, 0x0096, 0x2048, 0xa86f, 0x0200, 0x009e, 0x0ca0,\r
++      0x918c, 0x0700, 0x1150, 0x700c, 0x9005, 0x0180, 0x7800, 0x7802,\r
++      0x7804, 0x7806, 0x080c, 0x11ae, 0x0005, 0x7008, 0x0096, 0x2048,\r
++      0xa86f, 0x0200, 0x009e, 0x7007, 0x0000, 0x0080, 0x0096, 0x7008,\r
++      0x2048, 0x7800, 0xa88e, 0x7804, 0xa892, 0x7808, 0xa896, 0x780c,\r
++      0xa89a, 0xa86f, 0x0100, 0x009e, 0x7007, 0x0000, 0x0096, 0x00d6,\r
++      0x7008, 0x2048, 0x2001, 0x18b9, 0x2004, 0x9906, 0x1128, 0xa89c,\r
++      0x080f, 0x00de, 0x009e, 0x00a0, 0x00de, 0x009e, 0x0096, 0x00d6,\r
++      0x7008, 0x2048, 0x0081, 0x0150, 0xa89c, 0x0086, 0x2940, 0x080f,\r
++      0x008e, 0x00de, 0x009e, 0x080c, 0x1143, 0x0005, 0x00de, 0x009e,\r
++      0x080c, 0x1143, 0x0005, 0xa8a8, 0xd08c, 0x0005, 0x0096, 0xa0a0,\r
++      0x904d, 0x090c, 0x0d7d, 0xa06c, 0x908e, 0x0100, 0x0130, 0xa87b,\r
++      0x0030, 0xa883, 0x0000, 0xa897, 0x4002, 0x080c, 0x6d74, 0xa09f,\r
++      0x0000, 0xa0a3, 0x0000, 0x2848, 0x080c, 0x106c, 0x009e, 0x0005,\r
++      0x00a6, 0xa0a0, 0x904d, 0x090c, 0x0d7d, 0xa06c, 0x908e, 0x0100,\r
++      0x0128, 0xa87b, 0x0001, 0xa883, 0x0000, 0x00c0, 0xa80c, 0x2050,\r
++      0xb004, 0x9005, 0x0198, 0xa80e, 0x2050, 0x8006, 0x8006, 0x8007,\r
++      0x908c, 0x003f, 0x9084, 0xffc0, 0x9080, 0x0002, 0xa076, 0xa172,\r
++      0xb000, 0xa07a, 0x2810, 0x080c, 0x1124, 0x00e8, 0xa97c, 0xa894,\r
++      0x0016, 0x0006, 0x080c, 0x6d74, 0x000e, 0x001e, 0xd1fc, 0x1138,\r
++      0xd1f4, 0x0128, 0x00c6, 0x2060, 0x080c, 0xabed, 0x00ce, 0x7008,\r
++      0x2048, 0xa89f, 0x0000, 0xa8a3, 0x0000, 0x080c, 0x106c, 0x7007,\r
++      0x0000, 0x080c, 0x1143, 0x00ae, 0x0005, 0x0126, 0x2091, 0x8000,\r
++      0x782b, 0x1001, 0x7007, 0x0005, 0x7000, 0xc094, 0x7002, 0x012e,\r
++      0x0005, 0x0096, 0x2001, 0x192e, 0x204c, 0xa87c, 0x7812, 0xa88c,\r
++      0x7802, 0xa890, 0x7806, 0xa894, 0x780a, 0xa898, 0x780e, 0x782b,\r
++      0x0020, 0x0126, 0x2091, 0x8000, 0x782b, 0x0041, 0x7007, 0x0003,\r
++      0x7000, 0xc084, 0x7002, 0x2900, 0x700a, 0x012e, 0x009e, 0x0005,\r
++      0x20e1, 0x0000, 0x2099, 0x0088, 0x782b, 0x0040, 0x0096, 0x2001,\r
++      0x192e, 0x204c, 0xaa7c, 0x009e, 0x080c, 0x8c1b, 0x2009, 0x188c,\r
++      0x2104, 0x9084, 0xfffc, 0x200a, 0x080c, 0x8a8e, 0x7007, 0x0000,\r
++      0x080c, 0x1154, 0x0005, 0x7007, 0x0000, 0x080c, 0x1154, 0x0005,\r
++      0x0126, 0x2091, 0x2200, 0x2079, 0x0300, 0x2071, 0x1a6b, 0x7003,\r
++      0x0000, 0x78bf, 0x00f6, 0x0041, 0x7807, 0x0007, 0x7803, 0x0000,\r
++      0x7803, 0x0001, 0x012e, 0x0005, 0x00c6, 0x7803, 0x0000, 0x2001,\r
++      0x0165, 0x2003, 0x4198, 0x7808, 0xd09c, 0x0118, 0x7820, 0x04e9,\r
++      0x0cd0, 0x2001, 0x1a6c, 0x2003, 0x0000, 0x78ab, 0x0004, 0x78ac,\r
++      0xd0ac, 0x1de8, 0x78ab, 0x0002, 0x7807, 0x0007, 0x7827, 0x0030,\r
++      0x782b, 0x0400, 0x7827, 0x0031, 0x782b, 0x1a7a, 0x781f, 0xff00,\r
++      0x781b, 0xff00, 0x2001, 0x0200, 0x2004, 0xd0dc, 0x0110, 0x781f,\r
++      0x0303, 0x2061, 0x1a7a, 0x602f, 0x1ddc, 0x2001, 0x181a, 0x2004,\r
++      0x9082, 0x1ddc, 0x6032, 0x603b, 0x1e55, 0x602b, 0x1aba, 0x6007,\r
++      0x1a9a, 0x2061, 0x1a9a, 0x60af, 0x193c, 0x2001, 0x1927, 0x2004,\r
++      0x60ba, 0x783f, 0x3374, 0x00ce, 0x0005, 0x9086, 0x000d, 0x11d0,\r
++      0x7808, 0xd09c, 0x01b8, 0x7820, 0x0026, 0x2010, 0x080c, 0xc826,\r
++      0x0180, 0x2260, 0x6000, 0x9086, 0x0004, 0x1158, 0x0016, 0x6120,\r
++      0x9186, 0x0009, 0x0108, 0x0020, 0x2009, 0x004c, 0x080c, 0xac8c,\r
++      0x001e, 0x002e, 0x0005, 0x0126, 0x2091, 0x2200, 0x7908, 0x9184,\r
++      0x0070, 0x190c, 0x0d76, 0xd19c, 0x05a0, 0x7820, 0x908c, 0xf000,\r
++      0x0540, 0x2060, 0x6020, 0x9086, 0x0003, 0x1550, 0x6000, 0x9086,\r
++      0x0004, 0x1530, 0x6114, 0x2148, 0xa876, 0xa87a, 0xa867, 0x0103,\r
++      0x080c, 0x6b96, 0x00b6, 0x6010, 0x2058, 0xba3c, 0x8211, 0x0208,\r
++      0xba3e, 0xb8d0, 0x9005, 0x190c, 0x6750, 0x00be, 0x6044, 0xd0fc,\r
++      0x190c, 0xa8bf, 0x080c, 0xac16, 0x7808, 0xd09c, 0x19b0, 0x012e,\r
++      0x0005, 0x908a, 0x0024, 0x1a0c, 0x0d7d, 0x002b, 0x012e, 0x0005,\r
++      0x04b0, 0x012e, 0x0005, 0x1407, 0x142d, 0x145d, 0x1462, 0x1466,\r
++      0x146b, 0x1493, 0x1497, 0x14a5, 0x14a9, 0x1407, 0x1574, 0x1578,\r
++      0x15dd, 0x15e4, 0x1407, 0x15e5, 0x15e6, 0x15f1, 0x15f8, 0x1407,\r
++      0x1407, 0x1407, 0x1407, 0x1407, 0x1407, 0x1407, 0x146d, 0x1407,\r
++      0x1435, 0x145a, 0x1421, 0x1407, 0x1441, 0x140b, 0x1409, 0x080c,\r
++      0x0d7d, 0x080c, 0x0d76, 0x080c, 0x1603, 0x2009, 0x1a79, 0x2104,\r
++      0x8000, 0x200a, 0x080c, 0x7f99, 0x080c, 0x1ab5, 0x0005, 0x6044,\r
++      0xd0fc, 0x190c, 0xa8bf, 0x2009, 0x0055, 0x080c, 0xac8c, 0x012e,\r
++      0x0005, 0x080c, 0x1603, 0x2060, 0x6044, 0xd0fc, 0x190c, 0xa8bf,\r
++      0x2009, 0x0055, 0x080c, 0xac8c, 0x0005, 0x2009, 0x0048, 0x080c,\r
++      0x1603, 0x2060, 0x080c, 0xac8c, 0x0005, 0x2009, 0x0054, 0x080c,\r
++      0x1603, 0x2060, 0x6044, 0xd0fc, 0x190c, 0xa8bf, 0x080c, 0xac8c,\r
++      0x0005, 0x080c, 0x1603, 0x2060, 0x0056, 0x0066, 0x080c, 0x1603,\r
++      0x2028, 0x080c, 0x1603, 0x2030, 0x0036, 0x0046, 0x2021, 0x0000,\r
++      0x2418, 0x2009, 0x0056, 0x080c, 0xac8c, 0x004e, 0x003e, 0x006e,\r
++      0x005e, 0x0005, 0x080c, 0x1603, 0x0005, 0x7004, 0xc085, 0xc0b5,\r
++      0x7006, 0x0005, 0x7004, 0xc085, 0x7006, 0x0005, 0x080c, 0x1603,\r
++      0x080c, 0x16c7, 0x0005, 0x080c, 0x0d7d, 0x080c, 0x1603, 0x2060,\r
++      0x6014, 0x0096, 0x2048, 0xa83b, 0xffff, 0x009e, 0x2009, 0x0048,\r
++      0x080c, 0xac8c, 0x2001, 0x015d, 0x2003, 0x0000, 0x2009, 0x03e8,\r
++      0x8109, 0x0160, 0x2001, 0x0201, 0x2004, 0x9005, 0x0dc8, 0x2001,\r
++      0x0218, 0x2004, 0xd0ec, 0x1110, 0x080c, 0x1608, 0x2001, 0x0307,\r
++      0x2003, 0x8000, 0x0005, 0x7004, 0xc095, 0x7006, 0x0005, 0x080c,\r
++      0x1603, 0x2060, 0x6014, 0x0096, 0x2048, 0xa83b, 0xffff, 0x009e,\r
++      0x2009, 0x0048, 0x080c, 0xac8c, 0x0005, 0x080c, 0x1603, 0x080c,\r
++      0x0d7d, 0x080c, 0x1603, 0x080c, 0x155f, 0x7827, 0x0018, 0x79ac,\r
++      0xd1dc, 0x0904, 0x1512, 0x7827, 0x0015, 0x7828, 0x782b, 0x0000,\r
++      0x9065, 0x0140, 0x2001, 0x020d, 0x2003, 0x0050, 0x2003, 0x0020,\r
++      0x0804, 0x1518, 0x7004, 0x9005, 0x01c8, 0x1188, 0x78ab, 0x0004,\r
++      0x7827, 0x0018, 0x782b, 0x0000, 0xd1bc, 0x090c, 0x0d7d, 0x2001,\r
++      0x020d, 0x2003, 0x0050, 0x2003, 0x0020, 0x0804, 0x1544, 0x78ab,\r
++      0x0004, 0x7803, 0x0001, 0x080c, 0x1578, 0x0005, 0x7827, 0x0018,\r
++      0xa001, 0x7828, 0x7827, 0x0011, 0xa001, 0x7928, 0x9106, 0x0110,\r
++      0x79ac, 0x08e0, 0x00e6, 0x2071, 0x0200, 0x702c, 0xd0c4, 0x0140,\r
++      0x00ee, 0x080c, 0x1ab5, 0x080c, 0x133c, 0x7803, 0x0001, 0x0005,\r
++      0x7037, 0x0001, 0xa001, 0x7150, 0x00ee, 0x918c, 0xff00, 0x9186,\r
++      0x0500, 0x0110, 0x79ac, 0x0810, 0x7004, 0xc09d, 0x7006, 0x78ab,\r
++      0x0004, 0x7803, 0x0001, 0x080c, 0x1578, 0x2001, 0x020d, 0x2003,\r
++      0x0020, 0x0005, 0x7828, 0x782b, 0x0000, 0x9065, 0x090c, 0x0d7d,\r
++      0x6014, 0x2048, 0x78ab, 0x0004, 0x918c, 0x0700, 0x0198, 0x080c,\r
++      0x7f99, 0x080c, 0x1ab5, 0x080c, 0xc838, 0x0158, 0xa9ac, 0xa936,\r
++      0xa9b0, 0xa93a, 0xa83f, 0xffff, 0xa843, 0xffff, 0xa880, 0xc0bd,\r
++      0xa882, 0x0005, 0x6020, 0x9086, 0x0009, 0x1128, 0x2009, 0x004c,\r
++      0x080c, 0xac8c, 0x0048, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be,\r
++      0xd0bc, 0x6024, 0x190c, 0xcc34, 0x2029, 0x00c8, 0x8529, 0x0128,\r
++      0x2001, 0x0201, 0x2004, 0x9005, 0x0dc8, 0x7dbc, 0x080c, 0xe6da,\r
++      0xd5a4, 0x1118, 0x080c, 0x1608, 0x0005, 0x080c, 0x7f99, 0x080c,\r
++      0x1ab5, 0x0005, 0x781f, 0x0300, 0x7803, 0x0001, 0x0005, 0x0016,\r
++      0x0066, 0x0076, 0x00f6, 0x2079, 0x0300, 0x7908, 0x918c, 0x0007,\r
++      0x9186, 0x0003, 0x0120, 0x2001, 0x0016, 0x080c, 0x1679, 0x00fe,\r
++      0x007e, 0x006e, 0x001e, 0x0005, 0x7004, 0xc09d, 0x7006, 0x0005,\r
++      0x7104, 0x9184, 0x0004, 0x190c, 0x0d7d, 0xd184, 0x1189, 0xd19c,\r
++      0x0158, 0xc19c, 0x7106, 0x2001, 0x020d, 0x2003, 0x0050, 0x2003,\r
++      0x0020, 0x080c, 0x1608, 0x0005, 0x81ff, 0x190c, 0x0d7d, 0x0005,\r
++      0xc184, 0xd1b4, 0xc1b4, 0x7106, 0x0016, 0x00e6, 0x15f0, 0x2071,\r
++      0x0200, 0x080c, 0x16b4, 0x05c8, 0x6014, 0x9005, 0x05b0, 0x0096,\r
++      0x2048, 0xa864, 0x009e, 0x9084, 0x00ff, 0x908e, 0x0029, 0x0160,\r
++      0x908e, 0x0048, 0x1550, 0x601c, 0xd084, 0x11e0, 0x00f6, 0x2c78,\r
++      0x080c, 0x1731, 0x00fe, 0x00b0, 0x00f6, 0x2c78, 0x080c, 0x18b8,\r
++      0x00fe, 0x2009, 0x01f4, 0x8109, 0x0168, 0x2001, 0x0201, 0x2004,\r
++      0x9005, 0x0dc8, 0x2001, 0x0218, 0x2004, 0xd0ec, 0x1118, 0x080c,\r
++      0x1608, 0x0040, 0x2001, 0x020d, 0x2003, 0x0020, 0x080c, 0x133c,\r
++      0x7803, 0x0001, 0x00ee, 0x001e, 0x0005, 0x2001, 0x020d, 0x2003,\r
++      0x0050, 0x2003, 0x0020, 0x0461, 0x0ca8, 0x0429, 0x2060, 0x2009,\r
++      0x0053, 0x080c, 0xac8c, 0x0005, 0x0005, 0x0005, 0x00e1, 0x2008,\r
++      0x00d1, 0x0006, 0x7004, 0xc09d, 0x7006, 0x000e, 0x080c, 0x8f78,\r
++      0x0005, 0x0089, 0x9005, 0x0118, 0x080c, 0x8b7b, 0x0cd0, 0x0005,\r
++      0x2001, 0x0036, 0x2009, 0x1820, 0x210c, 0x2011, 0x181f, 0x2214,\r
++      0x080c, 0x1679, 0x0005, 0x7808, 0xd09c, 0x0de8, 0x7820, 0x0005,\r
++      0x080c, 0x155f, 0x00d6, 0x2069, 0x0200, 0x2009, 0x01f4, 0x8109,\r
++      0x0510, 0x6804, 0x9005, 0x0dd8, 0x2001, 0x015d, 0x2003, 0x0000,\r
++      0x79bc, 0xd1a4, 0x1528, 0x79b8, 0x918c, 0x0fff, 0x0180, 0x9182,\r
++      0x0841, 0x1268, 0x9188, 0x0007, 0x918c, 0x0ff8, 0x810c, 0x810c,\r
++      0x810c, 0x080c, 0x166b, 0x6827, 0x0001, 0x8109, 0x1dd0, 0x04d9,\r
++      0x6827, 0x0002, 0x04c1, 0x6804, 0x9005, 0x1130, 0x682c, 0xd0e4,\r
++      0x1500, 0x6804, 0x9005, 0x0de8, 0x79b8, 0xd1ec, 0x1130, 0x08c0,\r
++      0x080c, 0x7f99, 0x080c, 0x1ab5, 0x0090, 0x7827, 0x0015, 0x782b,\r
++      0x0000, 0x7827, 0x0018, 0x782b, 0x0000, 0x2001, 0x020d, 0x2003,\r
++      0x0020, 0x2001, 0x0307, 0x2003, 0x0300, 0x7803, 0x0001, 0x00de,\r
++      0x0005, 0x682c, 0x9084, 0x5400, 0x9086, 0x5400, 0x0d30, 0x7827,\r
++      0x0015, 0x782b, 0x0000, 0x7803, 0x0001, 0x6800, 0x9085, 0x1800,\r
++      0x6802, 0x00de, 0x0005, 0x6824, 0x9084, 0x0003, 0x1de0, 0x0005,\r
++      0x2001, 0x0030, 0x2c08, 0x621c, 0x0021, 0x7830, 0x9086, 0x0041,\r
++      0x0005, 0x00f6, 0x2079, 0x0300, 0x0006, 0x7808, 0xd09c, 0x0140,\r
++      0x0016, 0x0026, 0x00c6, 0x080c, 0x13a3, 0x00ce, 0x002e, 0x001e,\r
++      0x000e, 0x0006, 0x7832, 0x7936, 0x7a3a, 0x781b, 0x8080, 0x0059,\r
++      0x1118, 0x000e, 0x00fe, 0x0005, 0x000e, 0x792c, 0x3900, 0x8000,\r
++      0x2004, 0x080c, 0x0d7d, 0x2009, 0xff00, 0x8109, 0x0120, 0x7818,\r
++      0xd0bc, 0x1dd8, 0x0005, 0x9085, 0x0001, 0x0005, 0x7832, 0x7936,\r
++      0x7a3a, 0x781b, 0x8080, 0x0c79, 0x1108, 0x0005, 0x792c, 0x3900,\r
++      0x8000, 0x2004, 0x080c, 0x0d7d, 0x7037, 0x0001, 0x7150, 0x7037,\r
++      0x0002, 0x7050, 0x2060, 0xd1bc, 0x1110, 0x7054, 0x2060, 0x918c,\r
++      0xff00, 0x9186, 0x0500, 0x0110, 0x9085, 0x0001, 0x0005, 0x00e6,\r
++      0x0016, 0x2071, 0x0200, 0x0c41, 0x6124, 0xd1dc, 0x01f8, 0x701c,\r
++      0xd08c, 0x0904, 0x1726, 0x7017, 0x0000, 0x2001, 0x0264, 0x2004,\r
++      0xd0bc, 0x0904, 0x1726, 0x2001, 0x0268, 0x00c6, 0x2064, 0x6104,\r
++      0x6038, 0x00ce, 0x918e, 0x0039, 0x1904, 0x1726, 0x9c06, 0x15f0,\r
++      0x0126, 0x2091, 0x2600, 0x080c, 0x7ef1, 0x012e, 0x7358, 0x745c,\r
++      0x6014, 0x905d, 0x0598, 0x2b48, 0x6010, 0x00b6, 0x2058, 0xb800,\r
++      0x00be, 0xd0bc, 0x190c, 0xcc0f, 0xab42, 0xac3e, 0x2001, 0x1869,\r
++      0x2004, 0xd0b4, 0x1170, 0x601c, 0xd0e4, 0x1158, 0x6010, 0x00b6,\r
++      0x2058, 0xb800, 0x00be, 0xd0bc, 0x1120, 0xa83b, 0x7fff, 0xa837,\r
++      0xffff, 0x080c, 0x1e75, 0x1190, 0x080c, 0x1913, 0x2a00, 0xa816,\r
++      0x0130, 0x2800, 0xa80e, 0x2c05, 0xa80a, 0x2c00, 0xa812, 0x7037,\r
++      0x0020, 0x781f, 0x0300, 0x001e, 0x00ee, 0x0005, 0x7037, 0x0050,\r
++      0x7037, 0x0020, 0x001e, 0x00ee, 0x080c, 0x1608, 0x0005, 0x080c,\r
++      0x0d7d, 0x2cf0, 0x0126, 0x2091, 0x2200, 0x00c6, 0x3e60, 0x6014,\r
++      0x2048, 0x2940, 0x903e, 0x2730, 0xa864, 0x2068, 0xa81a, 0x9d84,\r
++      0x000f, 0x9088, 0x1e55, 0x2165, 0x0002, 0x175c, 0x17ca, 0x175c,\r
++      0x175c, 0x1760, 0x17ab, 0x175c, 0x1780, 0x1755, 0x17c1, 0x175c,\r
++      0x175c, 0x1765, 0x18b6, 0x1794, 0x178a, 0xa964, 0x918c, 0x00ff,\r
++      0x918e, 0x0048, 0x0904, 0x17c1, 0x9085, 0x0001, 0x0804, 0x18ad,\r
++      0xa87c, 0xd0ac, 0x0dc8, 0x0804, 0x17d1, 0xa87c, 0xd0ac, 0x0da0,\r
++      0x0804, 0x183c, 0xa898, 0x901d, 0x1108, 0xab9c, 0x9016, 0xaab2,\r
++      0xaa3e, 0xaa42, 0x3e00, 0x9080, 0x0008, 0x2004, 0x9080, 0x9141,\r
++      0x2005, 0x9005, 0x090c, 0x0d7d, 0x2004, 0xa8ae, 0x0804, 0x1895,\r
++      0xa87c, 0xd0bc, 0x09c8, 0xa890, 0xa842, 0xa88c, 0xa83e, 0xa888,\r
++      0x0804, 0x17d1, 0xa87c, 0xd0bc, 0x0978, 0xa890, 0xa842, 0xa88c,\r
++      0xa83e, 0xa888, 0x0804, 0x183c, 0xa87c, 0xd0bc, 0x0928, 0xa890,\r
++      0xa842, 0xa88c, 0xa83e, 0xa804, 0x9045, 0x090c, 0x0d7d, 0xa164,\r
++      0xa91a, 0x91ec, 0x000f, 0x9d80, 0x1e55, 0x2065, 0xa888, 0xd19c,\r
++      0x1904, 0x183c, 0x0430, 0xa87c, 0xd0ac, 0x0904, 0x175c, 0xa804,\r
++      0x9045, 0x090c, 0x0d7d, 0xa164, 0xa91a, 0x91ec, 0x000f, 0x9d80,\r
++      0x1e55, 0x2065, 0x9006, 0xa842, 0xa83e, 0xd19c, 0x1904, 0x183c,\r
++      0x0080, 0xa87c, 0xd0ac, 0x0904, 0x175c, 0x9006, 0xa842, 0xa83e,\r
++      0x0804, 0x183c, 0xa87c, 0xd0ac, 0x0904, 0x175c, 0x9006, 0xa842,\r
++      0xa83e, 0x2c05, 0x908a, 0x0036, 0x1a0c, 0x0d7d, 0x9082, 0x001b,\r
++      0x0002, 0x17f4, 0x17f4, 0x17f6, 0x17f4, 0x17f4, 0x17f4, 0x1800,\r
++      0x17f4, 0x17f4, 0x17f4, 0x180a, 0x17f4, 0x17f4, 0x17f4, 0x1814,\r
++      0x17f4, 0x17f4, 0x17f4, 0x181e, 0x17f4, 0x17f4, 0x17f4, 0x1828,\r
++      0x17f4, 0x17f4, 0x17f4, 0x1832, 0x080c, 0x0d7d, 0xa574, 0xa478,\r
++      0x9d86, 0x0024, 0x0904, 0x176a, 0xa37c, 0xa280, 0x0804, 0x1895,\r
++      0xa584, 0xa488, 0x9d86, 0x0024, 0x0904, 0x176a, 0xa38c, 0xa290,\r
++      0x0804, 0x1895, 0xa594, 0xa498, 0x9d86, 0x0024, 0x0904, 0x176a,\r
++      0xa39c, 0xa2a0, 0x0804, 0x1895, 0xa5a4, 0xa4a8, 0x9d86, 0x0024,\r
++      0x0904, 0x176a, 0xa3ac, 0xa2b0, 0x0804, 0x1895, 0xa5b4, 0xa4b8,\r
++      0x9d86, 0x0024, 0x0904, 0x176a, 0xa3bc, 0xa2c0, 0x0804, 0x1895,\r
++      0xa5c4, 0xa4c8, 0x9d86, 0x0024, 0x0904, 0x176a, 0xa3cc, 0xa2d0,\r
++      0x0804, 0x1895, 0xa5d4, 0xa4d8, 0x9d86, 0x0024, 0x0904, 0x176a,\r
++      0xa3dc, 0xa2e0, 0x0804, 0x1895, 0x2c05, 0x908a, 0x0034, 0x1a0c,\r
++      0x0d7d, 0x9082, 0x001b, 0x0002, 0x185f, 0x185d, 0x185d, 0x185d,\r
++      0x185d, 0x185d, 0x186a, 0x185d, 0x185d, 0x185d, 0x185d, 0x185d,\r
++      0x1875, 0x185d, 0x185d, 0x185d, 0x185d, 0x185d, 0x1880, 0x185d,\r
++      0x185d, 0x185d, 0x185d, 0x185d, 0x188b, 0x080c, 0x0d7d, 0xa56c,\r
++      0xa470, 0xa774, 0xa678, 0x9d86, 0x002c, 0x0904, 0x176a, 0xa37c,\r
++      0xa280, 0x0458, 0xa584, 0xa488, 0xa78c, 0xa690, 0x9d86, 0x002c,\r
++      0x0904, 0x176a, 0xa394, 0xa298, 0x0400, 0xa59c, 0xa4a0, 0xa7a4,\r
++      0xa6a8, 0x9d86, 0x002c, 0x0904, 0x176a, 0xa3ac, 0xa2b0, 0x00a8,\r
++      0xa5b4, 0xa4b8, 0xa7bc, 0xa6c0, 0x9d86, 0x002c, 0x0904, 0x176a,\r
++      0xa3c4, 0xa2c8, 0x0050, 0xa5cc, 0xa4d0, 0xa7d4, 0xa6d8, 0x9d86,\r
++      0x002c, 0x0904, 0x176a, 0xa3dc, 0xa2e0, 0xab2e, 0xaa32, 0xad1e,\r
++      0xac22, 0xaf26, 0xae2a, 0xa988, 0x8c60, 0x2c1d, 0xa8ac, 0xaab0,\r
++      0xa836, 0xaa3a, 0x8109, 0xa916, 0x1158, 0x3e60, 0x601c, 0xc085,\r
++      0x601e, 0xa87c, 0xc0dd, 0xa87e, 0x9006, 0x00ce, 0x012e, 0x0005,\r
++      0x2800, 0xa80e, 0xab0a, 0x2c00, 0xa812, 0x0c78, 0x0804, 0x175c,\r
++      0x2ff0, 0x0126, 0x2091, 0x2200, 0x00c6, 0x3e60, 0x6014, 0x2048,\r
++      0x2940, 0xa80e, 0x2061, 0x1e50, 0xa813, 0x1e50, 0x2c05, 0xa80a,\r
++      0xa964, 0xa91a, 0xa87c, 0xd0ac, 0x090c, 0x0d7d, 0x9006, 0xa842,\r
++      0xa83e, 0x2c05, 0x908a, 0x0034, 0x1a0c, 0x0d7d, 0xadcc, 0xacd0,\r
++      0xafd4, 0xaed8, 0xabdc, 0xaae0, 0xab2e, 0xaa32, 0xad1e, 0xac22,\r
++      0xaf26, 0xae2a, 0xa8ac, 0xaab0, 0xa836, 0xaa3a, 0xa988, 0xa864,\r
++      0x9084, 0x00ff, 0x9086, 0x0008, 0x1120, 0x8109, 0xa916, 0x0128,\r
++      0x0078, 0x918a, 0x0002, 0xa916, 0x1158, 0x3e60, 0x601c, 0xc085,\r
++      0x601e, 0xa87c, 0xc0dd, 0xa87e, 0x9006, 0x00ce, 0x012e, 0x0005,\r
++      0xa804, 0x9045, 0x090c, 0x0d7d, 0xa80e, 0xa064, 0xa81a, 0x9084,\r
++      0x000f, 0x9080, 0x1e55, 0x2015, 0x82ff, 0x090c, 0x0d7d, 0xaa12,\r
++      0x2205, 0xa80a, 0x0c10, 0x903e, 0x2730, 0xa880, 0xd0fc, 0x1190,\r
++      0x2d00, 0x0002, 0x1a3d, 0x196a, 0x196a, 0x1a3d, 0x196a, 0x1a37,\r
++      0x1a3d, 0x196a, 0x19da, 0x19da, 0x19da, 0x1a3d, 0x19da, 0x1a3d,\r
++      0x1a34, 0x19da, 0xc0fc, 0xa882, 0xab2c, 0xaa30, 0xad1c, 0xac20,\r
++      0xdd9c, 0x0904, 0x1a3f, 0x2c05, 0x908a, 0x0034, 0x1a0c, 0x0d7d,\r
++      0x9082, 0x001b, 0x0002, 0x1956, 0x1954, 0x1954, 0x1954, 0x1954,\r
++      0x1954, 0x195a, 0x1954, 0x1954, 0x1954, 0x1954, 0x1954, 0x195e,\r
++      0x1954, 0x1954, 0x1954, 0x1954, 0x1954, 0x1962, 0x1954, 0x1954,\r
++      0x1954, 0x1954, 0x1954, 0x1966, 0x080c, 0x0d7d, 0xa774, 0xa678,\r
++      0x0804, 0x1a3f, 0xa78c, 0xa690, 0x0804, 0x1a3f, 0xa7a4, 0xa6a8,\r
++      0x0804, 0x1a3f, 0xa7bc, 0xa6c0, 0x0804, 0x1a3f, 0xa7d4, 0xa6d8,\r
++      0x0804, 0x1a3f, 0xa898, 0x901d, 0x1108, 0xab9c, 0x9016, 0x2c05,\r
++      0x908a, 0x0036, 0x1a0c, 0x0d7d, 0x9082, 0x001b, 0x0002, 0x1992,\r
++      0x1992, 0x1994, 0x1992, 0x1992, 0x1992, 0x199e, 0x1992, 0x1992,\r
++      0x1992, 0x19a8, 0x1992, 0x1992, 0x1992, 0x19b2, 0x1992, 0x1992,\r
++      0x1992, 0x19bc, 0x1992, 0x1992, 0x1992, 0x19c6, 0x1992, 0x1992,\r
++      0x1992, 0x19d0, 0x080c, 0x0d7d, 0xa574, 0xa478, 0x9d86, 0x0004,\r
++      0x0904, 0x1a3f, 0xa37c, 0xa280, 0x0804, 0x1a3f, 0xa584, 0xa488,\r
++      0x9d86, 0x0004, 0x0904, 0x1a3f, 0xa38c, 0xa290, 0x0804, 0x1a3f,\r
++      0xa594, 0xa498, 0x9d86, 0x0004, 0x0904, 0x1a3f, 0xa39c, 0xa2a0,\r
++      0x0804, 0x1a3f, 0xa5a4, 0xa4a8, 0x9d86, 0x0004, 0x0904, 0x1a3f,\r
++      0xa3ac, 0xa2b0, 0x0804, 0x1a3f, 0xa5b4, 0xa4b8, 0x9d86, 0x0004,\r
++      0x0904, 0x1a3f, 0xa3bc, 0xa2c0, 0x0804, 0x1a3f, 0xa5c4, 0xa4c8,\r
++      0x9d86, 0x0004, 0x0904, 0x1a3f, 0xa3cc, 0xa2d0, 0x0804, 0x1a3f,\r
++      0xa5d4, 0xa4d8, 0x9d86, 0x0004, 0x0904, 0x1a3f, 0xa3dc, 0xa2e0,\r
++      0x0804, 0x1a3f, 0xa898, 0x901d, 0x1108, 0xab9c, 0x9016, 0x2c05,\r
++      0x908a, 0x0034, 0x1a0c, 0x0d7d, 0x9082, 0x001b, 0x0002, 0x1a02,\r
++      0x1a00, 0x1a00, 0x1a00, 0x1a00, 0x1a00, 0x1a0c, 0x1a00, 0x1a00,\r
++      0x1a00, 0x1a00, 0x1a00, 0x1a16, 0x1a00, 0x1a00, 0x1a00, 0x1a00,\r
++      0x1a00, 0x1a20, 0x1a00, 0x1a00, 0x1a00, 0x1a00, 0x1a00, 0x1a2a,\r
++      0x080c, 0x0d7d, 0xa56c, 0xa470, 0xa774, 0xa678, 0x9d86, 0x000c,\r
++      0x05b0, 0xa37c, 0xa280, 0x0498, 0xa584, 0xa488, 0xa78c, 0xa690,\r
++      0x9d86, 0x000c, 0x0560, 0xa394, 0xa298, 0x0448, 0xa59c, 0xa4a0,\r
++      0xa7a4, 0xa6a8, 0x9d86, 0x000c, 0x0510, 0xa3ac, 0xa2b0, 0x00f8,\r
++      0xa5b4, 0xa4b8, 0xa7bc, 0xa6c0, 0x9d86, 0x000c, 0x01c0, 0xa3c4,\r
++      0xa2c8, 0x00a8, 0xa5cc, 0xa4d0, 0xa7d4, 0xa6d8, 0x9d86, 0x000c,\r
++      0x0170, 0xa3dc, 0xa2e0, 0x0058, 0x9d86, 0x000e, 0x1130, 0x080c,\r
++      0x1e2b, 0x1904, 0x1913, 0x900e, 0x0050, 0x080c, 0x0d7d, 0xab2e,\r
++      0xaa32, 0xad1e, 0xac22, 0xaf26, 0xae2a, 0x080c, 0x1e2b, 0x0005,\r
++      0x6014, 0x2048, 0x6118, 0x810c, 0x810c, 0x810c, 0x81ff, 0x1118,\r
++      0xa887, 0x0001, 0x0008, 0xa986, 0x601b, 0x0002, 0xa974, 0xd1dc,\r
++      0x1108, 0x0005, 0xa934, 0xa88c, 0x9106, 0x1158, 0xa938, 0xa890,\r
++      0x9106, 0x1138, 0x601c, 0xc084, 0x601e, 0x2009, 0x0048, 0x0804,\r
++      0xac8c, 0x0005, 0x0126, 0x00c6, 0x2091, 0x2200, 0x00ce, 0x7908,\r
++      0x918c, 0x0007, 0x9186, 0x0000, 0x05b0, 0x9186, 0x0003, 0x0598,\r
++      0x6020, 0x6023, 0x0000, 0x0006, 0x2031, 0x0008, 0x00c6, 0x781f,\r
++      0x0808, 0x7808, 0xd09c, 0x0120, 0x080c, 0x13a3, 0x8631, 0x1db8,\r
++      0x00ce, 0x781f, 0x0800, 0x2031, 0x0168, 0x00c6, 0x7808, 0xd09c,\r
++      0x190c, 0x13a3, 0x00ce, 0x2001, 0x0038, 0x080c, 0x1b42, 0x7930,\r
++      0x9186, 0x0040, 0x0160, 0x9186, 0x0042, 0x190c, 0x0d7d, 0x2001,\r
++      0x001e, 0x8001, 0x1df0, 0x8631, 0x1d40, 0x080c, 0x1b51, 0x000e,\r
++      0x6022, 0x012e, 0x0005, 0x080c, 0x1b3e, 0x7827, 0x0015, 0x7828,\r
++      0x9c06, 0x1db8, 0x782b, 0x0000, 0x0ca0, 0x00f6, 0x2079, 0x0300,\r
++      0x7803, 0x0000, 0x78ab, 0x0004, 0x00fe, 0x080c, 0x74e9, 0x11b0,\r
++      0x2001, 0x0138, 0x2003, 0x0000, 0x2001, 0x0160, 0x2003, 0x0000,\r
++      0x2011, 0x012c, 0xa001, 0xa001, 0x8211, 0x1de0, 0x0081, 0x2001,\r
++      0x0386, 0x2003, 0x2020, 0x080c, 0x758a, 0x0005, 0x0479, 0x0039,\r
++      0x2001, 0x0160, 0x2502, 0x2001, 0x0138, 0x2202, 0x0005, 0x00e6,\r
++      0x2071, 0x0200, 0x080c, 0x29fc, 0x2009, 0x003c, 0x080c, 0x21b0,\r
++      0x2001, 0x015d, 0x2003, 0x0000, 0x7000, 0x9084, 0x003c, 0x1de0,\r
++      0x080c, 0x8553, 0x70a0, 0x70a2, 0x7098, 0x709a, 0x709c, 0x709e,\r
++      0x2001, 0x020d, 0x2003, 0x0020, 0x00f6, 0x2079, 0x0300, 0x080c,\r
++      0x133c, 0x7803, 0x0001, 0x00fe, 0x00ee, 0x0005, 0x2001, 0x0138,\r
++      0x2014, 0x2003, 0x0000, 0x2001, 0x0160, 0x202c, 0x2003, 0x0000,\r
++      0x080c, 0x74e9, 0x1108, 0x0005, 0x2021, 0x0260, 0x2001, 0x0141,\r
++      0x201c, 0xd3dc, 0x1168, 0x2001, 0x0109, 0x201c, 0x939c, 0x0048,\r
++      0x1160, 0x2001, 0x0111, 0x201c, 0x83ff, 0x1110, 0x8421, 0x1d70,\r
++      0x2001, 0x015d, 0x2003, 0x0000, 0x0005, 0x0046, 0x2021, 0x0019,\r
++      0x2003, 0x0048, 0xa001, 0xa001, 0x201c, 0x939c, 0x0048, 0x0120,\r
++      0x8421, 0x1db0, 0x004e, 0x0c60, 0x004e, 0x0c40, 0x601c, 0xc084,\r
++      0x601e, 0x0005, 0x2c08, 0x621c, 0x080c, 0x1679, 0x7930, 0x0005,\r
++      0x2c08, 0x621c, 0x080c, 0x16a6, 0x7930, 0x0005, 0x8001, 0x1df0,\r
++      0x0005, 0x2031, 0x0005, 0x781c, 0x9084, 0x0007, 0x0170, 0x2001,\r
++      0x0038, 0x0c41, 0x9186, 0x0040, 0x0904, 0x1baf, 0x2001, 0x001e,\r
++      0x0c69, 0x8631, 0x1d80, 0x080c, 0x0d7d, 0x781f, 0x0202, 0x2001,\r
++      0x015d, 0x2003, 0x0000, 0x2001, 0x0b10, 0x0c01, 0x781c, 0xd084,\r
++      0x0110, 0x0861, 0x04e0, 0x2001, 0x0030, 0x0891, 0x9186, 0x0040,\r
++      0x0568, 0x781c, 0xd084, 0x1da8, 0x781f, 0x0101, 0x2001, 0x0014,\r
++      0x0869, 0x2001, 0x0037, 0x0821, 0x9186, 0x0040, 0x0140, 0x2001,\r
++      0x0030, 0x080c, 0x1b48, 0x9186, 0x0040, 0x190c, 0x0d7d, 0x00d6,\r
++      0x2069, 0x0200, 0x692c, 0xd1f4, 0x1170, 0xd1c4, 0x0160, 0xd19c,\r
++      0x0130, 0x6800, 0x9085, 0x1800, 0x6802, 0x00de, 0x0080, 0x6908,\r
++      0x9184, 0x0007, 0x1db0, 0x00de, 0x781f, 0x0100, 0x791c, 0x9184,\r
++      0x0007, 0x090c, 0x0d7d, 0xa001, 0xa001, 0x781f, 0x0200, 0x0005,\r
++      0x0126, 0x2091, 0x2400, 0x2079, 0x0380, 0x2001, 0x19e7, 0x2070,\r
++      0x012e, 0x0005, 0x2cf0, 0x0126, 0x2091, 0x2400, 0x3e60, 0x6014,\r
++      0x2048, 0xa964, 0xa91a, 0x918c, 0x00ff, 0x9184, 0x000f, 0x0002,\r
++      0x1be4, 0x1be4, 0x1be4, 0x1be6, 0x1be4, 0x1be4, 0x1be4, 0x1be4,\r
++      0x1bd8, 0x1bee, 0x1be4, 0x1bea, 0x1be4, 0x1be4, 0x1be4, 0x1be4,\r
++      0x9086, 0x0008, 0x1148, 0xa87c, 0xd0b4, 0x0904, 0x1d5e, 0x2011,\r
++      0x1e50, 0x2205, 0xab88, 0x00a8, 0x080c, 0x0d7d, 0x9186, 0x0013,\r
++      0x0128, 0x0cd0, 0x9186, 0x001b, 0x0108, 0x0cb0, 0xa87c, 0xd0b4,\r
++      0x0904, 0x1d5e, 0x9184, 0x000f, 0x9080, 0x1e55, 0x2015, 0x2205,\r
++      0xab88, 0x2908, 0xa80a, 0xa90e, 0xaa12, 0xab16, 0x9006, 0xa842,\r
++      0xa83e, 0x012e, 0x0005, 0x2cf0, 0x0126, 0x2091, 0x2400, 0x3e60,\r
++      0x6014, 0x2048, 0xa88c, 0xa990, 0xaaac, 0xabb0, 0xaa36, 0xab3a,\r
++      0xa83e, 0xa942, 0xa846, 0xa94a, 0xa964, 0x918c, 0x00ff, 0x9186,\r
++      0x001e, 0x0198, 0x2940, 0xa064, 0xa81a, 0x90ec, 0x000f, 0x9d80,\r
++      0x1e55, 0x2065, 0x2c05, 0x2808, 0x2c10, 0xab88, 0xa80a, 0xa90e,\r
++      0xaa12, 0xab16, 0x012e, 0x3e60, 0x0005, 0xa804, 0x2040, 0x0c58,\r
++      0x2cf0, 0x0126, 0x2091, 0x2400, 0x3e60, 0x6014, 0x2048, 0xa97c,\r
++      0x2950, 0xd1dc, 0x1904, 0x1d28, 0xc1dd, 0xa97e, 0x9006, 0xa842,\r
++      0xa83e, 0xa988, 0x8109, 0xa916, 0xa964, 0xa91a, 0x9184, 0x000f,\r
++      0x9088, 0x1e55, 0x2145, 0x0002, 0x1c5c, 0x1c6a, 0x1c5c, 0x1c5c,\r
++      0x1c5c, 0x1c5e, 0x1c5c, 0x1c5c, 0x1cbf, 0x1cbf, 0x1c5c, 0x1c5c,\r
++      0x1c5c, 0x1cbd, 0x1c5c, 0x1c5c, 0x080c, 0x0d7d, 0xa804, 0x2050,\r
++      0xb164, 0xa91a, 0x9184, 0x000f, 0x9080, 0x1e55, 0x2045, 0xd19c,\r
++      0x1904, 0x1cbf, 0x9036, 0x2638, 0x2805, 0x908a, 0x0036, 0x1a0c,\r
++      0x0d7d, 0x9082, 0x001b, 0x0002, 0x1c8f, 0x1c8f, 0x1c91, 0x1c8f,\r
++      0x1c8f, 0x1c8f, 0x1c97, 0x1c8f, 0x1c8f, 0x1c8f, 0x1c9d, 0x1c8f,\r
++      0x1c8f, 0x1c8f, 0x1ca3, 0x1c8f, 0x1c8f, 0x1c8f, 0x1ca9, 0x1c8f,\r
++      0x1c8f, 0x1c8f, 0x1caf, 0x1c8f, 0x1c8f, 0x1c8f, 0x1cb5, 0x080c,\r
++      0x0d7d, 0xb574, 0xb478, 0xb37c, 0xb280, 0x0804, 0x1d04, 0xb584,\r
++      0xb488, 0xb38c, 0xb290, 0x0804, 0x1d04, 0xb594, 0xb498, 0xb39c,\r
++      0xb2a0, 0x0804, 0x1d04, 0xb5a4, 0xb4a8, 0xb3ac, 0xb2b0, 0x0804,\r
++      0x1d04, 0xb5b4, 0xb4b8, 0xb3bc, 0xb2c0, 0x0804, 0x1d04, 0xb5c4,\r
++      0xb4c8, 0xb3cc, 0xb2d0, 0x0804, 0x1d04, 0xb5d4, 0xb4d8, 0xb3dc,\r
++      0xb2e0, 0x0804, 0x1d04, 0x0804, 0x1d04, 0x080c, 0x0d7d, 0x2805,\r
++      0x908a, 0x0034, 0x1a0c, 0x0d7d, 0x9082, 0x001b, 0x0002, 0x1ce2,\r
++      0x1ce0, 0x1ce0, 0x1ce0, 0x1ce0, 0x1ce0, 0x1ce9, 0x1ce0, 0x1ce0,\r
++      0x1ce0, 0x1ce0, 0x1ce0, 0x1cf0, 0x1ce0, 0x1ce0, 0x1ce0, 0x1ce0,\r
++      0x1ce0, 0x1cf7, 0x1ce0, 0x1ce0, 0x1ce0, 0x1ce0, 0x1ce0, 0x1cfe,\r
++      0x080c, 0x0d7d, 0xb56c, 0xb470, 0xb774, 0xb678, 0xb37c, 0xb280,\r
++      0x00d8, 0xb584, 0xb488, 0xb78c, 0xb690, 0xb394, 0xb298, 0x00a0,\r
++      0xb59c, 0xb4a0, 0xb7a4, 0xb6a8, 0xb3ac, 0xb2b0, 0x0068, 0xb5b4,\r
++      0xb4b8, 0xb7bc, 0xb6c0, 0xb3c4, 0xb2c8, 0x0030, 0xb5cc, 0xb4d0,\r
++      0xb7d4, 0xb6d8, 0xb3dc, 0xb2e0, 0xab2e, 0xaa32, 0xad1e, 0xac22,\r
++      0xaf26, 0xae2a, 0xa988, 0x8109, 0xa916, 0x1118, 0x9006, 0x012e,\r
++      0x0005, 0x8840, 0x2805, 0x9005, 0x1168, 0xb004, 0x9005, 0x090c,\r
++      0x0d7d, 0x2050, 0xb164, 0xa91a, 0x9184, 0x000f, 0x9080, 0x1e55,\r
++      0x2045, 0x2805, 0x2810, 0x2a08, 0xa80a, 0xa90e, 0xaa12, 0x0c30,\r
++      0x3e60, 0x6344, 0xd3fc, 0x190c, 0x0d7d, 0xa93c, 0xaa40, 0xa844,\r
++      0x9106, 0x1118, 0xa848, 0x9206, 0x0508, 0x2958, 0xab48, 0xac44,\r
++      0x2940, 0x080c, 0x1e75, 0x1998, 0x2850, 0x2c40, 0xab14, 0xa880,\r
++      0xd0fc, 0x1140, 0xa810, 0x2005, 0xa80a, 0x2a00, 0xa80e, 0x2009,\r
++      0x8015, 0x0070, 0x00c6, 0x3e60, 0x6044, 0xc0a4, 0x9085, 0x8005,\r
++      0x6046, 0x00ce, 0x8319, 0xab16, 0x1904, 0x1d11, 0x2009, 0x8005,\r
++      0x3e60, 0x6044, 0x9105, 0x6046, 0x0804, 0x1d0e, 0x080c, 0x0d7d,\r
++      0x00f6, 0x00e6, 0x0096, 0x00c6, 0x0026, 0x704c, 0x9c06, 0x190c,\r
++      0x0d7d, 0x2079, 0x0090, 0x2001, 0x0105, 0x2003, 0x0010, 0x782b,\r
++      0x0004, 0x7057, 0x0000, 0x6014, 0x2048, 0x080c, 0xc838, 0x0118,\r
++      0xa880, 0xc0bd, 0xa882, 0x6020, 0x9086, 0x0006, 0x1170, 0x2061,\r
++      0x0100, 0x62c8, 0x2001, 0x00fa, 0x8001, 0x1df0, 0x60c8, 0x9206,\r
++      0x1dc0, 0x60c4, 0xa89a, 0x60c8, 0xa896, 0x704c, 0x2060, 0x00c6,\r
++      0x080c, 0xc443, 0x080c, 0xa896, 0x00ce, 0x704c, 0x9c06, 0x1150,\r
++      0x2009, 0x0040, 0x080c, 0x21b0, 0x080c, 0xa34e, 0x2011, 0x0000,\r
++      0x080c, 0xa1d9, 0x002e, 0x00ce, 0x009e, 0x00ee, 0x00fe, 0x0005,\r
++      0x00f6, 0x2079, 0x0090, 0x781c, 0x0006, 0x7818, 0x0006, 0x2079,\r
++      0x0100, 0x7a14, 0x9284, 0x1984, 0x9085, 0x0012, 0x7816, 0x2019,\r
++      0x1000, 0x8319, 0x090c, 0x0d7d, 0x7820, 0xd0bc, 0x1dd0, 0x79c8,\r
++      0x000e, 0x9102, 0x001e, 0x0006, 0x0016, 0x79c4, 0x000e, 0x9103,\r
++      0x78c6, 0x000e, 0x78ca, 0x9284, 0x1984, 0x9085, 0x0012, 0x7816,\r
++      0x2079, 0x0090, 0x782b, 0x0008, 0x7057, 0x0000, 0x00fe, 0x0005,\r
++      0x00f6, 0x00e6, 0x2071, 0x19e7, 0x7054, 0x9086, 0x0000, 0x0904,\r
++      0x1e26, 0x2079, 0x0090, 0x2009, 0x0207, 0x210c, 0xd194, 0x01b8,\r
++      0x2009, 0x020c, 0x210c, 0x9184, 0x0003, 0x0188, 0x080c, 0xe723,\r
++      0x2001, 0x0133, 0x2004, 0x9005, 0x090c, 0x0d7d, 0x0016, 0x2009,\r
++      0x0040, 0x080c, 0x21b0, 0x001e, 0x2001, 0x020c, 0x2102, 0x2009,\r
++      0x0206, 0x2104, 0x2009, 0x0203, 0x210c, 0x9106, 0x1120, 0x2009,\r
++      0x0040, 0x080c, 0x21b0, 0x782c, 0xd0fc, 0x09a8, 0x080c, 0xa8b2,\r
++      0x782c, 0xd0fc, 0x1de8, 0x080c, 0xa896, 0x7054, 0x9086, 0x0000,\r
++      0x1950, 0x782b, 0x0004, 0x782c, 0xd0ac, 0x1de8, 0x2009, 0x0040,\r
++      0x080c, 0x21b0, 0x782b, 0x0002, 0x7057, 0x0000, 0x00ee, 0x00fe,\r
++      0x0005, 0x080c, 0x0d7d, 0x8c60, 0x2c05, 0x9005, 0x0110, 0x8a51,\r
++      0x0005, 0xa004, 0x9005, 0x0168, 0xa85a, 0x2040, 0xa064, 0x9084,\r
++      0x000f, 0x9080, 0x1e55, 0x2065, 0x8cff, 0x090c, 0x0d7d, 0x8a51,\r
++      0x0005, 0x2050, 0x0005, 0x0000, 0x001d, 0x0021, 0x0025, 0x0029,\r
++      0x002d, 0x0031, 0x0035, 0x0000, 0x001b, 0x0021, 0x0027, 0x002d,\r
++      0x0033, 0x0000, 0x0000, 0x0023, 0x0000, 0x0000, 0x1e48, 0x1e44,\r
++      0x1e48, 0x1e48, 0x1e52, 0x0000, 0x1e48, 0x1e4f, 0x1e4f, 0x1e4c,\r
++      0x1e4f, 0x1e4f, 0x0000, 0x1e52, 0x1e4f, 0x0000, 0x1e4a, 0x1e4a,\r
++      0x0000, 0x1e4a, 0x1e52, 0x0000, 0x1e4a, 0x1e50, 0x1e50, 0x1e50,\r
++      0x0000, 0x1e50, 0x0000, 0x1e52, 0x1e50, 0x00c6, 0x00d6, 0x0086,\r
++      0xab42, 0xac3e, 0xa888, 0x9055, 0x0904, 0x2054, 0x2940, 0xa064,\r
++      0x90ec, 0x000f, 0x9084, 0x00ff, 0x9086, 0x0008, 0x1118, 0x2061,\r
++      0x1e50, 0x00d0, 0x9de0, 0x1e55, 0x9d86, 0x0007, 0x0130, 0x9d86,\r
++      0x000e, 0x0118, 0x9d86, 0x000f, 0x1120, 0xa08c, 0x9422, 0xa090,\r
++      0x931b, 0x2c05, 0x9065, 0x1140, 0x0310, 0x0804, 0x2054, 0xa004,\r
++      0x9045, 0x0904, 0x2054, 0x08d8, 0x2c05, 0x9005, 0x0904, 0x1f3c,\r
++      0xdd9c, 0x1904, 0x1ef8, 0x908a, 0x0036, 0x1a0c, 0x0d7d, 0x9082,\r
++      0x001b, 0x0002, 0x1ecd, 0x1ecd, 0x1ecf, 0x1ecd, 0x1ecd, 0x1ecd,\r
++      0x1ed5, 0x1ecd, 0x1ecd, 0x1ecd, 0x1edb, 0x1ecd, 0x1ecd, 0x1ecd,\r
++      0x1ee1, 0x1ecd, 0x1ecd, 0x1ecd, 0x1ee7, 0x1ecd, 0x1ecd, 0x1ecd,\r
++      0x1eed, 0x1ecd, 0x1ecd, 0x1ecd, 0x1ef3, 0x080c, 0x0d7d, 0xa07c,\r
++      0x9422, 0xa080, 0x931b, 0x0804, 0x1f32, 0xa08c, 0x9422, 0xa090,\r
++      0x931b, 0x0804, 0x1f32, 0xa09c, 0x9422, 0xa0a0, 0x931b, 0x0804,\r
++      0x1f32, 0xa0ac, 0x9422, 0xa0b0, 0x931b, 0x0804, 0x1f32, 0xa0bc,\r
++      0x9422, 0xa0c0, 0x931b, 0x0804, 0x1f32, 0xa0cc, 0x9422, 0xa0d0,\r
++      0x931b, 0x0804, 0x1f32, 0xa0dc, 0x9422, 0xa0e0, 0x931b, 0x04d0,\r
++      0x908a, 0x0034, 0x1a0c, 0x0d7d, 0x9082, 0x001b, 0x0002, 0x1f1a,\r
++      0x1f18, 0x1f18, 0x1f18, 0x1f18, 0x1f18, 0x1f1f, 0x1f18, 0x1f18,\r
++      0x1f18, 0x1f18, 0x1f18, 0x1f24, 0x1f18, 0x1f18, 0x1f18, 0x1f18,\r
++      0x1f18, 0x1f29, 0x1f18, 0x1f18, 0x1f18, 0x1f18, 0x1f18, 0x1f2e,\r
++      0x080c, 0x0d7d, 0xa07c, 0x9422, 0xa080, 0x931b, 0x0098, 0xa094,\r
++      0x9422, 0xa098, 0x931b, 0x0070, 0xa0ac, 0x9422, 0xa0b0, 0x931b,\r
++      0x0048, 0xa0c4, 0x9422, 0xa0c8, 0x931b, 0x0020, 0xa0dc, 0x9422,\r
++      0xa0e0, 0x931b, 0x0630, 0x2300, 0x9405, 0x0160, 0x8a51, 0x0904,\r
++      0x2054, 0x8c60, 0x0804, 0x1ea4, 0xa004, 0x9045, 0x0904, 0x2054,\r
++      0x0804, 0x1e7f, 0x8a51, 0x0904, 0x2054, 0x8c60, 0x2c05, 0x9005,\r
++      0x1158, 0xa004, 0x9045, 0x0904, 0x2054, 0xa064, 0x90ec, 0x000f,\r
++      0x9de0, 0x1e55, 0x2c05, 0x2060, 0xa880, 0xc0fc, 0xa882, 0x0804,\r
++      0x2049, 0x2c05, 0x8422, 0x8420, 0x831a, 0x9399, 0x0000, 0xac2e,\r
++      0xab32, 0xdd9c, 0x1904, 0x1fe6, 0x9082, 0x001b, 0x0002, 0x1f82,\r
++      0x1f82, 0x1f84, 0x1f82, 0x1f82, 0x1f82, 0x1f92, 0x1f82, 0x1f82,\r
++      0x1f82, 0x1fa0, 0x1f82, 0x1f82, 0x1f82, 0x1fae, 0x1f82, 0x1f82,\r
++      0x1f82, 0x1fbc, 0x1f82, 0x1f82, 0x1f82, 0x1fca, 0x1f82, 0x1f82,\r
++      0x1f82, 0x1fd8, 0x080c, 0x0d7d, 0xa17c, 0x2400, 0x9122, 0xa180,\r
++      0x2300, 0x911b, 0x0a0c, 0x0d7d, 0xa074, 0x9420, 0xa078, 0x9319,\r
++      0x0804, 0x2044, 0xa18c, 0x2400, 0x9122, 0xa190, 0x2300, 0x911b,\r
++      0x0a0c, 0x0d7d, 0xa084, 0x9420, 0xa088, 0x9319, 0x0804, 0x2044,\r
++      0xa19c, 0x2400, 0x9122, 0xa1a0, 0x2300, 0x911b, 0x0a0c, 0x0d7d,\r
++      0xa094, 0x9420, 0xa098, 0x9319, 0x0804, 0x2044, 0xa1ac, 0x2400,\r
++      0x9122, 0xa1b0, 0x2300, 0x911b, 0x0a0c, 0x0d7d, 0xa0a4, 0x9420,\r
++      0xa0a8, 0x9319, 0x0804, 0x2044, 0xa1bc, 0x2400, 0x9122, 0xa1c0,\r
++      0x2300, 0x911b, 0x0a0c, 0x0d7d, 0xa0b4, 0x9420, 0xa0b8, 0x9319,\r
++      0x0804, 0x2044, 0xa1cc, 0x2400, 0x9122, 0xa1d0, 0x2300, 0x911b,\r
++      0x0a0c, 0x0d7d, 0xa0c4, 0x9420, 0xa0c8, 0x9319, 0x0804, 0x2044,\r
++      0xa1dc, 0x2400, 0x9122, 0xa1e0, 0x2300, 0x911b, 0x0a0c, 0x0d7d,\r
++      0xa0d4, 0x9420, 0xa0d8, 0x9319, 0x0804, 0x2044, 0x9082, 0x001b,\r
++      0x0002, 0x2004, 0x2002, 0x2002, 0x2002, 0x2002, 0x2002, 0x2011,\r
++      0x2002, 0x2002, 0x2002, 0x2002, 0x2002, 0x201e, 0x2002, 0x2002,\r
++      0x2002, 0x2002, 0x2002, 0x202b, 0x2002, 0x2002, 0x2002, 0x2002,\r
++      0x2002, 0x2038, 0x080c, 0x0d7d, 0xa17c, 0x2400, 0x9122, 0xa180,\r
++      0x2300, 0x911b, 0x0a0c, 0x0d7d, 0xa06c, 0x9420, 0xa070, 0x9319,\r
++      0x0498, 0xa194, 0x2400, 0x9122, 0xa198, 0x2300, 0x911b, 0x0a0c,\r
++      0x0d7d, 0xa084, 0x9420, 0xa088, 0x9319, 0x0430, 0xa1ac, 0x2400,\r
++      0x9122, 0xa1b0, 0x2300, 0x911b, 0x0a0c, 0x0d7d, 0xa09c, 0x9420,\r
++      0xa0a0, 0x9319, 0x00c8, 0xa1c4, 0x2400, 0x9122, 0xa1c8, 0x2300,\r
++      0x911b, 0x0a0c, 0x0d7d, 0xa0b4, 0x9420, 0xa0b8, 0x9319, 0x0060,\r
++      0xa1dc, 0x2400, 0x9122, 0xa1e0, 0x2300, 0x911b, 0x0a0c, 0x0d7d,\r
++      0xa0cc, 0x9420, 0xa0d0, 0x9319, 0xac1e, 0xab22, 0xa880, 0xc0fd,\r
++      0xa882, 0x2800, 0xa85a, 0x2c00, 0xa812, 0x2a00, 0xa816, 0x000e,\r
++      0x000e, 0x000e, 0x9006, 0x0028, 0x008e, 0x00de, 0x00ce, 0x9085,\r
++      0x0001, 0x0005, 0x00c6, 0x610c, 0x0016, 0x9026, 0x2410, 0x6004,\r
++      0x9420, 0x9291, 0x0000, 0x2c04, 0x9210, 0x9ce0, 0x0002, 0x918a,\r
++      0x0002, 0x1da8, 0x9284, 0x000f, 0x9405, 0x001e, 0x00ce, 0x0005,\r
++      0x7803, 0x0003, 0x780f, 0x0000, 0x6004, 0x7812, 0x2c04, 0x7816,\r
++      0x9ce0, 0x0002, 0x918a, 0x0002, 0x1db8, 0x0005, 0x2001, 0x0005,\r
++      0x2004, 0xd0bc, 0x190c, 0x0d76, 0xd094, 0x0110, 0x080c, 0x11de,\r
++      0x0005, 0x0126, 0x2091, 0x2600, 0x2079, 0x0200, 0x2071, 0x0260,\r
++      0x2069, 0x1800, 0x7817, 0x0000, 0x789b, 0x0814, 0x78a3, 0x0406,\r
++      0x789f, 0x0410, 0x2009, 0x013b, 0x200b, 0x0400, 0x781b, 0x0002,\r
++      0x783b, 0x001f, 0x7837, 0x0020, 0x7803, 0x1600, 0x012e, 0x0005,\r
++      0x2091, 0x2600, 0x781c, 0xd0a4, 0x190c, 0x21ad, 0x7900, 0xd1dc,\r
++      0x1118, 0x9084, 0x0006, 0x001a, 0x9084, 0x000e, 0x0002, 0x20cf,\r
++      0x20c7, 0x7ef1, 0x20c7, 0x20c9, 0x20c9, 0x20c9, 0x20c9, 0x7ed7,\r
++      0x20c7, 0x20cb, 0x20c7, 0x20c9, 0x20c7, 0x20c9, 0x20c7, 0x080c,\r
++      0x0d7d, 0x0031, 0x0020, 0x080c, 0x7ed7, 0x080c, 0x7ef1, 0x0005,\r
++      0x0006, 0x0016, 0x0026, 0x080c, 0xe723, 0x7930, 0x9184, 0x0003,\r
++      0x01f0, 0x080c, 0xa896, 0x2001, 0x19fa, 0x2004, 0x9005, 0x0180,\r
++      0x2001, 0x0133, 0x2004, 0x9005, 0x090c, 0x0d7d, 0x00c6, 0x2001,\r
++      0x19fa, 0x2064, 0x080c, 0xa8b2, 0x080c, 0xc443, 0x00ce, 0x0408,\r
++      0x2009, 0x0040, 0x080c, 0x21b0, 0x080c, 0xa8b2, 0x00d0, 0x9184,\r
++      0x0014, 0x01a0, 0x6a00, 0x9286, 0x0003, 0x0160, 0x080c, 0x74e9,\r
++      0x1138, 0x080c, 0x77ed, 0x080c, 0x6029, 0x080c, 0x741a, 0x0010,\r
++      0x080c, 0x5ee4, 0x080c, 0x7f8f, 0x0041, 0x0018, 0x9184, 0x9540,\r
++      0x1dc8, 0x002e, 0x001e, 0x000e, 0x0005, 0x00e6, 0x0036, 0x0046,\r
++      0x0056, 0x2071, 0x1a6b, 0x080c, 0x1ab5, 0x005e, 0x004e, 0x003e,\r
++      0x00ee, 0x0005, 0x0126, 0x2091, 0x2e00, 0x2071, 0x1800, 0x7128,\r
++      0x2001, 0x196f, 0x2102, 0x2001, 0x1977, 0x2102, 0x2001, 0x013b,\r
++      0x2102, 0x2079, 0x0200, 0x2001, 0x0201, 0x789e, 0x78a3, 0x0200,\r
++      0x9198, 0x0007, 0x831c, 0x831c, 0x831c, 0x9398, 0x0005, 0x2320,\r
++      0x9182, 0x0204, 0x1230, 0x2011, 0x0008, 0x8423, 0x8423, 0x8423,\r
++      0x0488, 0x9182, 0x024c, 0x1240, 0x2011, 0x0007, 0x8403, 0x8003,\r
++      0x9400, 0x9400, 0x9420, 0x0430, 0x9182, 0x02bc, 0x1238, 0x2011,\r
++      0x0006, 0x8403, 0x8003, 0x9400, 0x9420, 0x00e0, 0x9182, 0x034c,\r
++      0x1230, 0x2011, 0x0005, 0x8403, 0x8003, 0x9420, 0x0098, 0x9182,\r
++      0x042c, 0x1228, 0x2011, 0x0004, 0x8423, 0x8423, 0x0058, 0x9182,\r
++      0x059c, 0x1228, 0x2011, 0x0003, 0x8403, 0x9420, 0x0018, 0x2011,\r
++      0x0002, 0x8423, 0x9482, 0x0228, 0x8002, 0x8020, 0x8301, 0x9402,\r
++      0x0110, 0x0208, 0x8321, 0x8217, 0x8203, 0x9405, 0x789a, 0x012e,\r
++      0x0005, 0x0006, 0x00d6, 0x2069, 0x0200, 0x6814, 0x9084, 0xffc0,\r
++      0x910d, 0x6916, 0x00de, 0x000e, 0x0005, 0x00d6, 0x2069, 0x0200,\r
++      0x9005, 0x6810, 0x0110, 0xc0a5, 0x0008, 0xc0a4, 0x6812, 0x00de,\r
++      0x0005, 0x0006, 0x00d6, 0x2069, 0x0200, 0x6810, 0x9084, 0xfff8,\r
++      0x910d, 0x6912, 0x00de, 0x000e, 0x0005, 0x7938, 0x080c, 0x0d76,\r
++      0x00f6, 0x2079, 0x0200, 0x7902, 0xa001, 0xa001, 0xa001, 0xa001,\r
++      0xa001, 0xa001, 0x7902, 0xa001, 0xa001, 0xa001, 0xa001, 0xa001,\r
++      0xa001, 0x00fe, 0x0005, 0x0126, 0x2091, 0x2800, 0x2061, 0x0100,\r
++      0x2071, 0x1800, 0x2009, 0x0000, 0x080c, 0x29f6, 0x080c, 0x2916,\r
++      0x080c, 0x2a67, 0x9006, 0x080c, 0x2945, 0x9006, 0x080c, 0x2928,\r
++      0x20a9, 0x0012, 0x1d04, 0x21da, 0x2091, 0x6000, 0x1f04, 0x21da,\r
++      0x602f, 0x0100, 0x602f, 0x0000, 0x6050, 0x9085, 0x0400, 0x9084,\r
++      0xdfff, 0x6052, 0x6224, 0x080c, 0x2a44, 0x080c, 0x2634, 0x2009,\r
++      0x00ef, 0x6132, 0x6136, 0x080c, 0x2644, 0x60e7, 0x0000, 0x61ea,\r
++      0x60e3, 0x0008, 0x604b, 0xf7f7, 0x6043, 0x0000, 0x602f, 0x0080,\r
++      0x602f, 0x0000, 0x6007, 0x349f, 0x00c6, 0x2061, 0x0140, 0x608b,\r
++      0x000b, 0x608f, 0x10b8, 0x6093, 0x0000, 0x6097, 0x0198, 0x00ce,\r
++      0x6004, 0x9085, 0x8000, 0x6006, 0x60bb, 0x0000, 0x20a9, 0x0018,\r
++      0x60bf, 0x0000, 0x1f04, 0x2218, 0x60bb, 0x0000, 0x60bf, 0x0108,\r
++      0x60bf, 0x0012, 0x60bf, 0x0405, 0x60bf, 0x0014, 0x60bf, 0x0320,\r
++      0x60bf, 0x0018, 0x601b, 0x00f0, 0x601f, 0x001e, 0x600f, 0x006b,\r
++      0x602b, 0x402c, 0x012e, 0x0005, 0x00f6, 0x2079, 0x0140, 0x78c3,\r
++      0x0080, 0x78c3, 0x0083, 0x78c3, 0x0000, 0x00fe, 0x0005, 0x2001,\r
++      0x1835, 0x2003, 0x0000, 0x2001, 0x1834, 0x2003, 0x0001, 0x0005,\r
++      0x0126, 0x2091, 0x2800, 0x0006, 0x0016, 0x0026, 0x6124, 0x6028,\r
++      0x910c, 0x0066, 0x2031, 0x1837, 0x2634, 0x96b4, 0x0028, 0x006e,\r
++      0x1138, 0x6020, 0xd1bc, 0x0120, 0xd0bc, 0x1168, 0xd0b4, 0x1198,\r
++      0x9184, 0x5e2c, 0x1118, 0x9184, 0x0007, 0x00aa, 0x9195, 0x0004,\r
++      0x9284, 0x0007, 0x0082, 0x0016, 0x2001, 0x0387, 0x200c, 0xd1a4,\r
++      0x001e, 0x0d70, 0x0c98, 0x0016, 0x2001, 0x0387, 0x200c, 0xd1b4,\r
++      0x001e, 0x0d30, 0x0c58, 0x2286, 0x2283, 0x2283, 0x2283, 0x2285,\r
++      0x2283, 0x2283, 0x2283, 0x080c, 0x0d7d, 0x0029, 0x002e, 0x001e,\r
++      0x000e, 0x012e, 0x0005, 0x00a6, 0x6124, 0x6028, 0xd09c, 0x0118,\r
++      0xd19c, 0x1904, 0x2500, 0xd1f4, 0x190c, 0x0d76, 0x080c, 0x74e9,\r
++      0x0904, 0x22e3, 0x080c, 0xcf52, 0x1120, 0x7000, 0x9086, 0x0003,\r
++      0x0580, 0x6024, 0x9084, 0x1800, 0x0560, 0x080c, 0x750c, 0x0118,\r
++      0x080c, 0x74fa, 0x1530, 0x2011, 0x0020, 0x080c, 0x2a44, 0x6043,\r
++      0x0000, 0x080c, 0xcf52, 0x0168, 0x080c, 0x750c, 0x1150, 0x2001,\r
++      0x19a7, 0x2003, 0x0001, 0x6027, 0x1800, 0x080c, 0x735f, 0x0804,\r
++      0x2503, 0x70a4, 0x9005, 0x1150, 0x70a7, 0x0001, 0x00d6, 0x2069,\r
++      0x0140, 0x080c, 0x7540, 0x00de, 0x1904, 0x2503, 0x080c, 0x77f7,\r
++      0x0428, 0x080c, 0x750c, 0x1590, 0x6024, 0x9084, 0x1800, 0x1108,\r
++      0x0468, 0x080c, 0x77f7, 0x080c, 0x77ed, 0x080c, 0x6029, 0x080c,\r
++      0x741a, 0x0804, 0x2500, 0xd1ac, 0x1508, 0x6024, 0xd0dc, 0x1170,\r
++      0xd0e4, 0x1178, 0xd0d4, 0x1190, 0xd0cc, 0x0130, 0x7098, 0x9086,\r
++      0x0028, 0x1110, 0x080c, 0x76ce, 0x0804, 0x2500, 0x080c, 0x77f2,\r
++      0x0048, 0x2001, 0x197d, 0x2003, 0x0002, 0x0020, 0x080c, 0x762b,\r
++      0x0804, 0x2500, 0x080c, 0x7771, 0x0804, 0x2500, 0x6220, 0xd1bc,\r
++      0x0138, 0xd2bc, 0x1904, 0x2565, 0xd2b4, 0x1904, 0x2577, 0x0000,\r
++      0xd1ac, 0x0904, 0x240d, 0x0036, 0x6328, 0xc3bc, 0x632a, 0x003e,\r
++      0x080c, 0x74e9, 0x11d0, 0x2011, 0x0020, 0x080c, 0x2a44, 0x0006,\r
++      0x0026, 0x0036, 0x080c, 0x7503, 0x1158, 0x080c, 0x77ed, 0x080c,\r
++      0x6029, 0x080c, 0x741a, 0x003e, 0x002e, 0x000e, 0x00ae, 0x0005,\r
++      0x003e, 0x002e, 0x000e, 0x080c, 0x74bd, 0x0016, 0x0046, 0x00c6,\r
++      0x644c, 0x9486, 0xf0f0, 0x1138, 0x2061, 0x0100, 0x644a, 0x6043,\r
++      0x0090, 0x6043, 0x0010, 0x74da, 0x948c, 0xff00, 0x7038, 0xd084,\r
++      0x0178, 0x9186, 0xf800, 0x1160, 0x7048, 0xd084, 0x1148, 0xc085,\r
++      0x704a, 0x0036, 0x2418, 0x2011, 0x8016, 0x080c, 0x4b07, 0x003e,\r
++      0x080c, 0xcf4b, 0x1904, 0x23e4, 0x9196, 0xff00, 0x05a8, 0x7060,\r
++      0x9084, 0x00ff, 0x810f, 0x81ff, 0x0110, 0x9116, 0x0568, 0x7130,\r
++      0xd184, 0x1550, 0x080c, 0x3368, 0x0128, 0xc18d, 0x7132, 0x080c,\r
++      0x6a63, 0x1510, 0x6240, 0x9294, 0x0010, 0x0130, 0x6248, 0x9294,\r
++      0xff00, 0x9296, 0xff00, 0x01c0, 0x7030, 0xd08c, 0x0904, 0x23e4,\r
++      0x7038, 0xd08c, 0x1140, 0x2001, 0x180c, 0x200c, 0xd1ac, 0x1904,\r
++      0x23e4, 0xc1ad, 0x2102, 0x0036, 0x73d8, 0x2011, 0x8013, 0x080c,\r
++      0x4b07, 0x003e, 0x0804, 0x23e4, 0x7038, 0xd08c, 0x1140, 0x2001,\r
++      0x180c, 0x200c, 0xd1ac, 0x1904, 0x23e4, 0xc1ad, 0x2102, 0x0036,\r
++      0x73d8, 0x2011, 0x8013, 0x080c, 0x4b07, 0x003e, 0x7130, 0xc185,\r
++      0x7132, 0x2011, 0x1848, 0x220c, 0xd1a4, 0x01f0, 0x0016, 0x2009,\r
++      0x0001, 0x2011, 0x0100, 0x080c, 0x88ec, 0x2019, 0x000e, 0x00c6,\r
++      0x2061, 0x0000, 0x080c, 0xe239, 0x00ce, 0x9484, 0x00ff, 0x9080,\r
++      0x3374, 0x200d, 0x918c, 0xff00, 0x810f, 0x2120, 0x9006, 0x2009,\r
++      0x000e, 0x080c, 0xe2c9, 0x001e, 0x0016, 0x2009, 0x0002, 0x2019,\r
++      0x0004, 0x080c, 0x31a6, 0x001e, 0x0078, 0x0156, 0x00b6, 0x20a9,\r
++      0x007f, 0x900e, 0x080c, 0x6625, 0x1110, 0x080c, 0x6043, 0x8108,\r
++      0x1f04, 0x23da, 0x00be, 0x015e, 0x00ce, 0x004e, 0x080c, 0xa896,\r
++      0x080c, 0xab5e, 0x080c, 0xa8b2, 0x60e3, 0x0000, 0x001e, 0x2001,\r
++      0x1800, 0x2014, 0x9296, 0x0004, 0x1170, 0xd19c, 0x11b0, 0x2011,\r
++      0x180c, 0x2214, 0xd29c, 0x1120, 0x6204, 0x9295, 0x0002, 0x6206,\r
++      0x6228, 0xc29d, 0x622a, 0x2003, 0x0001, 0x2001, 0x1826, 0x2003,\r
++      0x0000, 0x2011, 0x0020, 0x080c, 0x2a44, 0xd194, 0x0904, 0x2500,\r
++      0x0016, 0x080c, 0xa896, 0x6220, 0xd2b4, 0x0904, 0x249b, 0x080c,\r
++      0x86f6, 0x080c, 0x9e32, 0x2011, 0x0004, 0x080c, 0x2a44, 0x00f6,\r
++      0x2019, 0x19f3, 0x2304, 0x907d, 0x0904, 0x2468, 0x7804, 0x9086,\r
++      0x0032, 0x15f0, 0x00d6, 0x00c6, 0x00e6, 0x0096, 0x2069, 0x0140,\r
++      0x782c, 0x685e, 0x7808, 0x685a, 0x6043, 0x0002, 0x2001, 0x0003,\r
++      0x8001, 0x1df0, 0x6043, 0x0000, 0x2001, 0x003c, 0x8001, 0x1df0,\r
++      0x080c, 0x2a1a, 0x2001, 0x001e, 0x8001, 0x0240, 0x20a9, 0x0009,\r
++      0x080c, 0x29d1, 0x6904, 0xd1dc, 0x1140, 0x0cb0, 0x2001, 0x0100,\r
++      0x080c, 0x2a0a, 0x9006, 0x080c, 0x2a0a, 0x080c, 0x95de, 0x080c,\r
++      0xa8b2, 0x7814, 0x2048, 0xa867, 0x0103, 0x2f60, 0x080c, 0xabed,\r
++      0x009e, 0x00ee, 0x00ce, 0x00de, 0x00fe, 0x001e, 0x00ae, 0x0005,\r
++      0x00fe, 0x00d6, 0x2069, 0x0140, 0x6804, 0x9084, 0x4000, 0x0110,\r
++      0x080c, 0x2a1a, 0x00de, 0x00c6, 0x2061, 0x19e7, 0x6034, 0x080c,\r
++      0xcf52, 0x0120, 0x909a, 0x0003, 0x1258, 0x0018, 0x909a, 0x00c8,\r
++      0x1238, 0x8000, 0x6036, 0x00ce, 0x080c, 0x9e0a, 0x0804, 0x24fd,\r
++      0x2061, 0x0100, 0x62c0, 0x080c, 0xa7cc, 0x2019, 0x19f3, 0x2304,\r
++      0x9065, 0x0130, 0x6003, 0x0001, 0x2009, 0x0027, 0x080c, 0xac8c,\r
++      0x00ce, 0x0804, 0x24fd, 0xd2bc, 0x0904, 0x24e0, 0x080c, 0x8703,\r
++      0x2011, 0x0004, 0x080c, 0x2a44, 0x00d6, 0x2069, 0x0140, 0x6804,\r
++      0x9084, 0x4000, 0x0110, 0x080c, 0x2a1a, 0x00de, 0x00c6, 0x2061,\r
++      0x19e7, 0x6050, 0x080c, 0xcf52, 0x0120, 0x909a, 0x0003, 0x1668,\r
++      0x0018, 0x909a, 0x00c8, 0x1648, 0x8000, 0x6052, 0x604c, 0x00ce,\r
++      0x9005, 0x05d8, 0x2009, 0x07d0, 0x080c, 0x86fb, 0x9080, 0x0008,\r
++      0x2004, 0x9086, 0x0006, 0x1138, 0x2009, 0x1984, 0x2011, 0x0012,\r
++      0x080c, 0x2a53, 0x0450, 0x9080, 0x0008, 0x2004, 0x9086, 0x0009,\r
++      0x0d98, 0x2009, 0x1984, 0x2011, 0x0016, 0x080c, 0x2a53, 0x00e8,\r
++      0x2011, 0x0004, 0x080c, 0x2a44, 0x00c0, 0x0036, 0x2019, 0x0001,\r
++      0x080c, 0xa118, 0x003e, 0x2019, 0x19fa, 0x2304, 0x9065, 0x0160,\r
++      0x2009, 0x004f, 0x6020, 0x9086, 0x0009, 0x1110, 0x2009, 0x004f,\r
++      0x6003, 0x0003, 0x080c, 0xac8c, 0x00ce, 0x080c, 0xa8b2, 0x001e,\r
++      0xd19c, 0x0904, 0x255e, 0x7038, 0xd0ac, 0x1538, 0x0016, 0x0156,\r
++      0x2011, 0x0008, 0x080c, 0x2a44, 0x6050, 0xc0e5, 0x6052, 0x20a9,\r
++      0x0367, 0x1f04, 0x252b, 0x1d04, 0x2513, 0x080c, 0x872a, 0x6020,\r
++      0xd09c, 0x1db8, 0x00f6, 0x2079, 0x0100, 0x080c, 0x2981, 0x00fe,\r
++      0x1d80, 0x6050, 0xc0e4, 0x6052, 0x2011, 0x0008, 0x080c, 0x2a44,\r
++      0x015e, 0x001e, 0x0498, 0x015e, 0x001e, 0x0016, 0x6028, 0xc09c,\r
++      0x602a, 0x080c, 0xa896, 0x080c, 0xab5e, 0x080c, 0xa8b2, 0x60e3,\r
++      0x0000, 0x080c, 0xe702, 0x080c, 0xe71d, 0x080c, 0x56de, 0xd0fc,\r
++      0x1138, 0x080c, 0xcf4b, 0x1120, 0x9085, 0x0001, 0x080c, 0x7530,\r
++      0x9006, 0x080c, 0x2a0a, 0x2009, 0x0002, 0x080c, 0x29f6, 0x00e6,\r
++      0x2071, 0x1800, 0x7003, 0x0004, 0x080c, 0x0eb4, 0x00ee, 0x2011,\r
++      0x0008, 0x080c, 0x2a44, 0x080c, 0x0bc3, 0x001e, 0x918c, 0xffd0,\r
++      0x2110, 0x080c, 0x2a44, 0x00ae, 0x0005, 0x0016, 0x2001, 0x0387,\r
++      0x200c, 0xd1a4, 0x001e, 0x0904, 0x2310, 0x0016, 0x2009, 0x2571,\r
++      0x00c0, 0x2001, 0x0387, 0x2003, 0x1000, 0x001e, 0x0c38, 0x0016,\r
++      0x2001, 0x0387, 0x200c, 0xd1b4, 0x001e, 0x0904, 0x2310, 0x0016,\r
++      0x2009, 0x2583, 0x0030, 0x2001, 0x0387, 0x2003, 0x4000, 0x001e,\r
++      0x08a8, 0x6028, 0xc0bc, 0x602a, 0x2001, 0x0156, 0x2003, 0xbc91,\r
++      0x8000, 0x2003, 0xffff, 0x6043, 0x0001, 0x080c, 0x29f0, 0x2011,\r
++      0x0080, 0x080c, 0x2a44, 0x6017, 0x0000, 0x6043, 0x0000, 0x0817,\r
++      0x0006, 0x0016, 0x0026, 0x0036, 0x00e6, 0x00f6, 0x0126, 0x2091,\r
++      0x8000, 0x2071, 0x1800, 0x71d0, 0x70d2, 0x9116, 0x0904, 0x25f3,\r
++      0x81ff, 0x01a0, 0x2009, 0x0000, 0x080c, 0x29f6, 0x2011, 0x8011,\r
++      0x2019, 0x010e, 0x231c, 0x939e, 0x0007, 0x1118, 0x2019, 0x0001,\r
++      0x0010, 0x2019, 0x0000, 0x080c, 0x4b07, 0x0468, 0x2001, 0x19a8,\r
++      0x200c, 0x81ff, 0x1140, 0x2001, 0x0109, 0x2004, 0xd0b4, 0x0118,\r
++      0x2019, 0x0003, 0x0008, 0x2118, 0x2011, 0x8012, 0x080c, 0x4b07,\r
++      0x080c, 0x0eb4, 0x080c, 0x56de, 0xd0fc, 0x11a8, 0x080c, 0xcf4b,\r
++      0x1190, 0x00c6, 0x080c, 0x268f, 0x080c, 0xa896, 0x080c, 0xa073,\r
++      0x080c, 0xa8b2, 0x2061, 0x0100, 0x2019, 0x0028, 0x2009, 0x0002,\r
++      0x080c, 0x31a6, 0x00ce, 0x012e, 0x00fe, 0x00ee, 0x003e, 0x002e,\r
++      0x001e, 0x000e, 0x0005, 0x2028, 0x918c, 0x00ff, 0x2130, 0x9094,\r
++      0xff00, 0x11f0, 0x2011, 0x1837, 0x2214, 0xd2ac, 0x11c8, 0x81ff,\r
++      0x01e8, 0x2011, 0x181f, 0x2204, 0x9106, 0x1190, 0x2011, 0x1820,\r
++      0x2214, 0x9294, 0xff00, 0x9584, 0xff00, 0x9206, 0x1148, 0x2011,\r
++      0x1820, 0x2214, 0x9294, 0x00ff, 0x9584, 0x00ff, 0x9206, 0x1120,\r
++      0x2500, 0x080c, 0x81ff, 0x0048, 0x9584, 0x00ff, 0x9080, 0x3374,\r
++      0x200d, 0x918c, 0xff00, 0x810f, 0x9006, 0x0005, 0x9080, 0x3374,\r
++      0x200d, 0x918c, 0x00ff, 0x0005, 0x00d6, 0x2069, 0x0140, 0x2001,\r
++      0x1818, 0x2003, 0x00ef, 0x20a9, 0x0010, 0x9006, 0x6852, 0x6856,\r
++      0x1f04, 0x263f, 0x00de, 0x0005, 0x0006, 0x00d6, 0x0026, 0x2069,\r
++      0x0140, 0x2001, 0x1818, 0x2102, 0x8114, 0x8214, 0x8214, 0x8214,\r
++      0x20a9, 0x0010, 0x6853, 0x0000, 0x9006, 0x82ff, 0x1128, 0x9184,\r
++      0x000f, 0x9080, 0xe731, 0x2005, 0x6856, 0x8211, 0x1f04, 0x2654,\r
++      0x002e, 0x00de, 0x000e, 0x0005, 0x00c6, 0x2061, 0x1800, 0x6030,\r
++      0x0110, 0xc09d, 0x0008, 0xc09c, 0x6032, 0x00ce, 0x0005, 0x0156,\r
++      0x00d6, 0x0026, 0x0016, 0x0006, 0x2069, 0x0140, 0x6980, 0x9116,\r
++      0x0180, 0x9112, 0x1230, 0x8212, 0x8210, 0x22a8, 0x2001, 0x0402,\r
++      0x0018, 0x22a8, 0x2001, 0x0404, 0x680e, 0x1f04, 0x2684, 0x680f,\r
++      0x0000, 0x000e, 0x001e, 0x002e, 0x00de, 0x015e, 0x0005, 0x080c,\r
++      0x56da, 0xd0c4, 0x0150, 0xd0a4, 0x0140, 0x9006, 0x0046, 0x2020,\r
++      0x2009, 0x002e, 0x080c, 0xe2c9, 0x004e, 0x0005, 0x00f6, 0x0016,\r
++      0x0026, 0x2079, 0x0140, 0x78c4, 0xd0dc, 0x0904, 0x26fb, 0x080c,\r
++      0x2971, 0x0660, 0x9084, 0x0700, 0x908e, 0x0600, 0x1120, 0x2011,\r
++      0x4000, 0x900e, 0x0458, 0x908e, 0x0500, 0x1120, 0x2011, 0x8000,\r
++      0x900e, 0x0420, 0x908e, 0x0400, 0x1120, 0x9016, 0x2009, 0x0001,\r
++      0x00e8, 0x908e, 0x0300, 0x1120, 0x9016, 0x2009, 0x0002, 0x00b0,\r
++      0x908e, 0x0200, 0x1120, 0x9016, 0x2009, 0x0004, 0x0078, 0x908e,\r
++      0x0100, 0x1548, 0x9016, 0x2009, 0x0008, 0x0040, 0x9084, 0x0700,\r
++      0x908e, 0x0300, 0x1500, 0x2011, 0x0030, 0x0058, 0x2300, 0x9080,\r
++      0x0020, 0x2018, 0x080c, 0x9166, 0x928c, 0xff00, 0x0110, 0x2011,\r
++      0x00ff, 0x2200, 0x8007, 0x9085, 0x004c, 0x78c2, 0x2009, 0x0138,\r
++      0x220a, 0x080c, 0x74e9, 0x1118, 0x2009, 0x196d, 0x220a, 0x002e,\r
++      0x001e, 0x00fe, 0x0005, 0x78c3, 0x0000, 0x0cc8, 0x0126, 0x2091,\r
++      0x2800, 0x0006, 0x0016, 0x0026, 0x2001, 0x0170, 0x200c, 0x8000,\r
++      0x2014, 0x9184, 0x0003, 0x0110, 0x080c, 0x0d76, 0x002e, 0x001e,\r
++      0x000e, 0x012e, 0x0005, 0x2001, 0x0171, 0x2004, 0xd0dc, 0x0168,\r
++      0x2001, 0x0170, 0x200c, 0x918c, 0x00ff, 0x918e, 0x004c, 0x1128,\r
++      0x200c, 0x918c, 0xff00, 0x810f, 0x0005, 0x900e, 0x2001, 0x0227,\r
++      0x2004, 0x8007, 0x9084, 0x00ff, 0x8004, 0x9108, 0x2001, 0x0226,\r
++      0x2004, 0x8007, 0x9084, 0x00ff, 0x8004, 0x9108, 0x0005, 0x0018,\r
++      0x000c, 0x0018, 0x0020, 0x1000, 0x0800, 0x1000, 0x1800, 0x0156,\r
++      0x0006, 0x0016, 0x0026, 0x00e6, 0x2001, 0x1990, 0x2004, 0x908a,\r
++      0x0007, 0x1a0c, 0x0d7d, 0x0033, 0x00ee, 0x002e, 0x001e, 0x000e,\r
++      0x015e, 0x0005, 0x2759, 0x2777, 0x279b, 0x279d, 0x27c6, 0x27c8,\r
++      0x27ca, 0x2001, 0x0001, 0x080c, 0x25a0, 0x080c, 0x29bb, 0x2001,\r
++      0x1992, 0x2003, 0x0000, 0x7828, 0x9084, 0xe1d7, 0x782a, 0x9006,\r
++      0x20a9, 0x0009, 0x080c, 0x298d, 0x2001, 0x1990, 0x2003, 0x0006,\r
++      0x2009, 0x001e, 0x2011, 0x27cb, 0x080c, 0x8708, 0x0005, 0x2009,\r
++      0x1995, 0x200b, 0x0000, 0x2001, 0x199a, 0x2003, 0x0036, 0x2001,\r
++      0x1999, 0x2003, 0x002a, 0x2001, 0x1992, 0x2003, 0x0001, 0x9006,\r
++      0x080c, 0x2928, 0x2001, 0xffff, 0x20a9, 0x0009, 0x080c, 0x298d,\r
++      0x2001, 0x1990, 0x2003, 0x0006, 0x2009, 0x001e, 0x2011, 0x27cb,\r
++      0x080c, 0x8708, 0x0005, 0x080c, 0x0d7d, 0x2001, 0x199a, 0x2003,\r
++      0x0036, 0x2001, 0x1992, 0x2003, 0x0003, 0x7a38, 0x9294, 0x0005,\r
++      0x9296, 0x0004, 0x0110, 0x9006, 0x0010, 0x2001, 0x0001, 0x080c,\r
++      0x2928, 0x2001, 0x1996, 0x2003, 0x0000, 0x2001, 0xffff, 0x20a9,\r
++      0x0009, 0x080c, 0x298d, 0x2001, 0x1990, 0x2003, 0x0006, 0x2009,\r
++      0x001e, 0x2011, 0x27cb, 0x080c, 0x8708, 0x0005, 0x080c, 0x0d7d,\r
++      0x080c, 0x0d7d, 0x0005, 0x0006, 0x0016, 0x0026, 0x00e6, 0x00f6,\r
++      0x0156, 0x0126, 0x2091, 0x8000, 0x2079, 0x0100, 0x2001, 0x1992,\r
++      0x2004, 0x908a, 0x0007, 0x1a0c, 0x0d7d, 0x0043, 0x012e, 0x015e,\r
++      0x00fe, 0x00ee, 0x002e, 0x001e, 0x000e, 0x0005, 0x27ed, 0x280d,\r
++      0x284d, 0x287d, 0x28a1, 0x28b1, 0x28b3, 0x080c, 0x2981, 0x11b0,\r
++      0x7850, 0x9084, 0xefff, 0x7852, 0x2009, 0x1998, 0x2104, 0x7a38,\r
++      0x9294, 0x0005, 0x9296, 0x0004, 0x0110, 0xc08d, 0x0008, 0xc085,\r
++      0x200a, 0x2001, 0x1990, 0x2003, 0x0001, 0x0030, 0x080c, 0x28d7,\r
++      0x2001, 0xffff, 0x080c, 0x2768, 0x0005, 0x080c, 0x28b5, 0x05e0,\r
++      0x2009, 0x1999, 0x2104, 0x8001, 0x200a, 0x080c, 0x2981, 0x1178,\r
++      0x7850, 0x9084, 0xefff, 0x7852, 0x7a38, 0x9294, 0x0005, 0x9296,\r
++      0x0005, 0x0518, 0x2009, 0x1998, 0x2104, 0xc085, 0x200a, 0x2009,\r
++      0x1995, 0x2104, 0x8000, 0x200a, 0x9086, 0x0005, 0x0118, 0x080c,\r
++      0x28bd, 0x00c0, 0x200b, 0x0000, 0x7a38, 0x9294, 0x0006, 0x9296,\r
++      0x0004, 0x0110, 0x9006, 0x0010, 0x2001, 0x0001, 0x080c, 0x2945,\r
++      0x2001, 0x1992, 0x2003, 0x0002, 0x0028, 0x2001, 0x1990, 0x2003,\r
++      0x0003, 0x0010, 0x080c, 0x278a, 0x0005, 0x080c, 0x28b5, 0x0560,\r
++      0x2009, 0x1999, 0x2104, 0x8001, 0x200a, 0x080c, 0x2981, 0x1168,\r
++      0x7850, 0x9084, 0xefff, 0x7852, 0x2001, 0x1990, 0x2003, 0x0003,\r
++      0x2001, 0x1991, 0x2003, 0x0000, 0x00b8, 0x2009, 0x1999, 0x2104,\r
++      0x9005, 0x1118, 0x080c, 0x28fa, 0x0010, 0x080c, 0x28ca, 0x080c,\r
++      0x28bd, 0x2009, 0x1995, 0x200b, 0x0000, 0x2001, 0x1992, 0x2003,\r
++      0x0001, 0x080c, 0x278a, 0x0000, 0x0005, 0x04b9, 0x0508, 0x080c,\r
++      0x2981, 0x11b8, 0x7850, 0x9084, 0xefff, 0x7852, 0x2009, 0x1996,\r
++      0x2104, 0x8000, 0x200a, 0x9086, 0x0007, 0x0108, 0x0078, 0x2001,\r
++      0x199b, 0x2003, 0x000a, 0x2009, 0x1998, 0x2104, 0xc0fd, 0x200a,\r
++      0x0038, 0x0419, 0x2001, 0x1992, 0x2003, 0x0004, 0x080c, 0x27b5,\r
++      0x0005, 0x0099, 0x0168, 0x080c, 0x2981, 0x1138, 0x7850, 0x9084,\r
++      0xefff, 0x7852, 0x080c, 0x27a1, 0x0018, 0x0079, 0x080c, 0x27b5,\r
++      0x0005, 0x080c, 0x0d7d, 0x080c, 0x0d7d, 0x2009, 0x199a, 0x2104,\r
++      0x8001, 0x200a, 0x090c, 0x2916, 0x0005, 0x7a38, 0x9294, 0x0005,\r
++      0x9296, 0x0005, 0x0110, 0x9006, 0x0010, 0x2001, 0x0001, 0x080c,\r
++      0x2945, 0x0005, 0x7a38, 0x9294, 0x0006, 0x9296, 0x0006, 0x0110,\r
++      0x9006, 0x0010, 0x2001, 0x0001, 0x080c, 0x2928, 0x0005, 0x2009,\r
++      0x1995, 0x2104, 0x8000, 0x200a, 0x9086, 0x0005, 0x0108, 0x0068,\r
++      0x200b, 0x0000, 0x7a38, 0x9294, 0x0006, 0x9296, 0x0006, 0x0110,\r
++      0x9006, 0x0010, 0x2001, 0x0001, 0x04d9, 0x7a38, 0x9294, 0x0005,\r
++      0x9296, 0x0005, 0x0110, 0x9006, 0x0010, 0x2001, 0x0001, 0x080c,\r
++      0x2945, 0x0005, 0x0086, 0x2001, 0x1998, 0x2004, 0x9084, 0x7fff,\r
++      0x090c, 0x0d7d, 0x2009, 0x1997, 0x2144, 0x8846, 0x280a, 0x9844,\r
++      0x0dd8, 0xd08c, 0x1120, 0xd084, 0x1120, 0x080c, 0x0d7d, 0x9006,\r
++      0x0010, 0x2001, 0x0001, 0x00a1, 0x008e, 0x0005, 0x0006, 0x0156,\r
++      0x2001, 0x1990, 0x20a9, 0x0009, 0x2003, 0x0000, 0x8000, 0x1f04,\r
++      0x291c, 0x2001, 0x1997, 0x2003, 0x8000, 0x015e, 0x000e, 0x0005,\r
++      0x00f6, 0x2079, 0x0100, 0x9085, 0x0000, 0x0158, 0x7838, 0x9084,\r
++      0xfff9, 0x9085, 0x0004, 0x783a, 0x2009, 0x199d, 0x210c, 0x795a,\r
++      0x0050, 0x7838, 0x9084, 0xfffb, 0x9085, 0x0006, 0x783a, 0x2009,\r
++      0x199e, 0x210c, 0x795a, 0x00fe, 0x0005, 0x00f6, 0x2079, 0x0100,\r
++      0x9085, 0x0000, 0x0158, 0x7838, 0x9084, 0xfffa, 0x9085, 0x0004,\r
++      0x783a, 0x7850, 0x9084, 0xfff0, 0x7852, 0x00c8, 0x7838, 0x9084,\r
++      0xfffb, 0x9085, 0x0005, 0x783a, 0x7850, 0x9084, 0xfff0, 0x0016,\r
++      0x2009, 0x0003, 0x210c, 0x918c, 0x0600, 0x918e, 0x0400, 0x0118,\r
++      0x9085, 0x000a, 0x0010, 0x9085, 0x0000, 0x001e, 0x7852, 0x00fe,\r
++      0x0005, 0x0006, 0x2001, 0x0100, 0x2004, 0x9082, 0x0007, 0x000e,\r
++      0x0005, 0x0006, 0x2001, 0x0100, 0x2004, 0x9082, 0x0009, 0x000e,\r
++      0x0005, 0x0156, 0x20a9, 0x0064, 0x7820, 0x080c, 0x29f0, 0xd09c,\r
++      0x1110, 0x1f04, 0x2984, 0x015e, 0x0005, 0x0126, 0x0016, 0x0006,\r
++      0x2091, 0x8000, 0x000e, 0x2008, 0x9186, 0x0000, 0x1118, 0x783b,\r
++      0x0007, 0x0090, 0x9186, 0x0001, 0x1118, 0x783b, 0x0006, 0x0060,\r
++      0x9186, 0x0002, 0x1118, 0x783b, 0x0005, 0x0030, 0x9186, 0x0003,\r
++      0x1118, 0x783b, 0x0004, 0x0000, 0x0006, 0x1d04, 0x29ad, 0x080c,\r
++      0x872a, 0x1f04, 0x29ad, 0x7850, 0x9085, 0x1000, 0x7852, 0x000e,\r
++      0x001e, 0x012e, 0x0005, 0x080c, 0x2aab, 0x0005, 0x0006, 0x0156,\r
++      0x00f6, 0x2079, 0x0100, 0x20a9, 0x000a, 0x7854, 0xd0ac, 0x1100,\r
++      0x7854, 0xd08c, 0x1110, 0x1f04, 0x29c8, 0x00fe, 0x015e, 0x000e,\r
++      0x0005, 0x1d04, 0x29d1, 0x080c, 0x872a, 0x1f04, 0x29d1, 0x0005,\r
++      0x0006, 0x2001, 0x199c, 0x2004, 0x9086, 0x0000, 0x000e, 0x0005,\r
++      0x0006, 0x2001, 0x199c, 0x2004, 0x9086, 0x0001, 0x000e, 0x0005,\r
++      0x0006, 0x2001, 0x199c, 0x2004, 0x9086, 0x0002, 0x000e, 0x0005,\r
++      0xa001, 0xa001, 0xa001, 0xa001, 0xa001, 0x0005, 0x0006, 0x2001,\r
++      0x19a8, 0x2102, 0x000e, 0x0005, 0x2009, 0x0171, 0x2104, 0xd0dc,\r
++      0x0140, 0x2009, 0x0170, 0x2104, 0x200b, 0x0080, 0xa001, 0xa001,\r
++      0x200a, 0x0005, 0x0016, 0x0026, 0x080c, 0x7503, 0x0108, 0xc0bc,\r
++      0x2009, 0x0140, 0x2114, 0x9294, 0x0001, 0x9215, 0x220a, 0x002e,\r
++      0x001e, 0x0005, 0x0016, 0x0026, 0x2009, 0x0140, 0x2114, 0x9294,\r
++      0x0001, 0x9285, 0x1000, 0x200a, 0x220a, 0x002e, 0x001e, 0x0005,\r
++      0x0016, 0x0026, 0x2009, 0x0140, 0x2114, 0x9294, 0x0001, 0x9215,\r
++      0x220a, 0x002e, 0x001e, 0x0005, 0x0006, 0x0016, 0x2009, 0x0140,\r
++      0x2104, 0x1128, 0x080c, 0x7503, 0x0110, 0xc0bc, 0x0008, 0xc0bd,\r
++      0x200a, 0x001e, 0x000e, 0x0005, 0x00f6, 0x2079, 0x0380, 0x7843,\r
++      0x0101, 0x7844, 0xd084, 0x1de8, 0x2001, 0x0109, 0x2202, 0x7843,\r
++      0x0100, 0x00fe, 0x0005, 0x00f6, 0x2079, 0x0380, 0x7843, 0x0202,\r
++      0x7844, 0xd08c, 0x1de8, 0x2079, 0x0100, 0x7814, 0x9104, 0x9205,\r
++      0x7a16, 0x2079, 0x0380, 0x7843, 0x0200, 0x00fe, 0x0005, 0x0016,\r
++      0x0026, 0x0036, 0x00c6, 0x2061, 0x0100, 0x6050, 0x9084, 0xfbff,\r
++      0x9085, 0x0040, 0x6052, 0x20a9, 0x0002, 0x080c, 0x29d1, 0x6050,\r
++      0x9085, 0x0400, 0x9084, 0xff9f, 0x6052, 0x20a9, 0x0005, 0x080c,\r
++      0x29d1, 0x6054, 0xd0bc, 0x090c, 0x0d7d, 0x20a9, 0x0005, 0x080c,\r
++      0x29d1, 0x6054, 0xd0ac, 0x090c, 0x0d7d, 0x2009, 0x19af, 0x9084,\r
++      0x7e00, 0x8007, 0x8004, 0x8004, 0x200a, 0x9085, 0x0000, 0x605a,\r
++      0x2009, 0x199d, 0x2011, 0x199e, 0x6358, 0x939c, 0x38df, 0x2320,\r
++      0x939d, 0x0000, 0x94a5, 0x0000, 0x230a, 0x2412, 0x00ce, 0x003e,\r
++      0x002e, 0x001e, 0x0005, 0x0006, 0x00c6, 0x2061, 0x0100, 0x6050,\r
++      0xc0cd, 0x6052, 0x00ce, 0x000e, 0x0005, 0x2fb1, 0x2fb1, 0x2bb5,\r
++      0x2bb5, 0x2bc1, 0x2bc1, 0x2bcd, 0x2bcd, 0x2bdb, 0x2bdb, 0x2be7,\r
++      0x2be7, 0x2bf5, 0x2bf5, 0x2c03, 0x2c03, 0x2c15, 0x2c15, 0x2c21,\r
++      0x2c21, 0x2c2f, 0x2c2f, 0x2c4d, 0x2c4d, 0x2c6d, 0x2c6d, 0x2c3d,\r
++      0x2c3d, 0x2c5d, 0x2c5d, 0x2c7b, 0x2c7b, 0x2c13, 0x2c13, 0x2c13,\r
++      0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13,\r
++      0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13,\r
++      0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13,\r
++      0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c8d, 0x2c8d, 0x2c99,\r
++      0x2c99, 0x2ca7, 0x2ca7, 0x2cb5, 0x2cb5, 0x2cc5, 0x2cc5, 0x2cd3,\r
++      0x2cd3, 0x2ce3, 0x2ce3, 0x2cf3, 0x2cf3, 0x2d05, 0x2d05, 0x2d13,\r
++      0x2d13, 0x2d23, 0x2d23, 0x2d45, 0x2d45, 0x2d69, 0x2d69, 0x2d33,\r
++      0x2d33, 0x2d57, 0x2d57, 0x2d79, 0x2d79, 0x2c13, 0x2c13, 0x2c13,\r
++      0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13,\r
++      0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13,\r
++      0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13,\r
++      0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2d8d, 0x2d8d, 0x2d99,\r
++      0x2d99, 0x2da7, 0x2da7, 0x2db5, 0x2db5, 0x2dc5, 0x2dc5, 0x2dd3,\r
++      0x2dd3, 0x2de3, 0x2de3, 0x2df3, 0x2df3, 0x2e05, 0x2e05, 0x2e13,\r
++      0x2e13, 0x2e23, 0x2e23, 0x2e33, 0x2e33, 0x2e45, 0x2e45, 0x2e55,\r
++      0x2e55, 0x2e67, 0x2e67, 0x2e79, 0x2e79, 0x2c13, 0x2c13, 0x2c13,\r
++      0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13,\r
++      0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13,\r
++      0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13,\r
++      0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2e8d, 0x2e8d, 0x2e9b,\r
++      0x2e9b, 0x2eab, 0x2eab, 0x2ebb, 0x2ebb, 0x2ecd, 0x2ecd, 0x2edd,\r
++      0x2edd, 0x2eef, 0x2eef, 0x2f01, 0x2f01, 0x2f15, 0x2f15, 0x2f25,\r
++      0x2f25, 0x2f37, 0x2f37, 0x2f49, 0x2f49, 0x2f5d, 0x2f5d, 0x2f6e,\r
++      0x2f6e, 0x2f81, 0x2f81, 0x2f94, 0x2f94, 0x2c13, 0x2c13, 0x2c13,\r
++      0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13,\r
++      0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13,\r
++      0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13,\r
++      0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x2c13, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2248, 0x0804,\r
++      0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x207e, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x207e, 0x080c,\r
++      0x2248, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0x20a8, 0x0804, 0x2fa9, 0x0106,\r
++      0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,\r
++      0x2248, 0x080c, 0x20a8, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x207e, 0x080c,\r
++      0x20a8, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0x207e, 0x080c, 0x2248, 0x080c,\r
++      0x20a8, 0x0804, 0x2fa9, 0xa001, 0x0cf0, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x13a3, 0x0804,\r
++      0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x2248, 0x080c, 0x13a3, 0x0804, 0x2fa9, 0x0106,\r
++      0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,\r
++      0x207e, 0x080c, 0x13a3, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2248, 0x080c,\r
++      0x13a3, 0x080c, 0x20a8, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x207e, 0x080c,\r
++      0x2248, 0x080c, 0x13a3, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x207e, 0x080c,\r
++      0x13a3, 0x080c, 0x20a8, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x13a3, 0x080c,\r
++      0x20a8, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0x207e, 0x080c, 0x2248, 0x080c,\r
++      0x13a3, 0x080c, 0x20a8, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x26fe, 0x0804,\r
++      0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x26fe, 0x080c, 0x2248, 0x0804, 0x2fa9, 0x0106,\r
++      0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,\r
++      0x26fe, 0x080c, 0x207e, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x26fe, 0x080c,\r
++      0x207e, 0x080c, 0x2248, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x26fe, 0x080c,\r
++      0x20a8, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0x26fe, 0x080c, 0x2248, 0x080c,\r
++      0x20a8, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0x26fe, 0x080c, 0x207e, 0x080c,\r
++      0x20a8, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0x26fe, 0x080c, 0x207e, 0x080c,\r
++      0x2248, 0x080c, 0x20a8, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x26fe, 0x080c,\r
++      0x13a3, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0x26fe, 0x080c, 0x2248, 0x080c,\r
++      0x13a3, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0x26fe, 0x080c, 0x207e, 0x080c,\r
++      0x13a3, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0x26fe, 0x080c, 0x2248, 0x080c,\r
++      0x13a3, 0x080c, 0x20a8, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x26fe, 0x080c,\r
++      0x207e, 0x080c, 0x2248, 0x080c, 0x13a3, 0x0804, 0x2fa9, 0x0106,\r
++      0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,\r
++      0x26fe, 0x080c, 0x207e, 0x080c, 0x13a3, 0x080c, 0x20a8, 0x0804,\r
++      0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x26fe, 0x080c, 0x13a3, 0x080c, 0x20a8, 0x0804,\r
++      0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x26fe, 0x080c, 0x207e, 0x080c, 0x2248, 0x080c,\r
++      0x13a3, 0x080c, 0x20a8, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0xa8fc, 0x0804,\r
++      0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0xa8fc, 0x080c, 0x2248, 0x0804, 0x2fa9, 0x0106,\r
++      0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,\r
++      0x207e, 0x080c, 0xa8fc, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x207e, 0x080c,\r
++      0xa8fc, 0x080c, 0x2248, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0xa8fc, 0x080c,\r
++      0x20a8, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0xa8fc, 0x080c, 0x2248, 0x080c,\r
++      0x20a8, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0x207e, 0x080c, 0xa8fc, 0x080c,\r
++      0x20a8, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0x207e, 0x080c, 0xa8fc, 0x080c,\r
++      0x2248, 0x080c, 0x20a8, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0xa8fc, 0x080c,\r
++      0x13a3, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0xa8fc, 0x080c, 0x2248, 0x080c,\r
++      0x13a3, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0x207e, 0x080c, 0xa8fc, 0x080c,\r
++      0x13a3, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0x207e, 0x080c, 0xa8fc, 0x080c,\r
++      0x2248, 0x080c, 0x13a3, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0xa8fc, 0x080c,\r
++      0x13a3, 0x080c, 0x20a8, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0xa8fc, 0x080c,\r
++      0x2248, 0x080c, 0x13a3, 0x080c, 0x20a8, 0x0804, 0x2fa9, 0x0106,\r
++      0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,\r
++      0x207e, 0x080c, 0xa8fc, 0x080c, 0x13a3, 0x080c, 0x20a8, 0x0804,\r
++      0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x207e, 0x080c, 0xa8fc, 0x080c, 0x2248, 0x080c,\r
++      0x13a3, 0x080c, 0x20a8, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x26fe, 0x080c,\r
++      0xa8fc, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0x26fe, 0x080c, 0xa8fc, 0x080c,\r
++      0x2248, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0x26fe, 0x080c, 0x207e, 0x080c,\r
++      0xa8fc, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,\r
++      0x0136, 0x0146, 0x0156, 0x080c, 0x26fe, 0x080c, 0x207e, 0x080c,\r
++      0xa8fc, 0x080c, 0x2248, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x26fe, 0x080c,\r
++      0xa8fc, 0x080c, 0x20a8, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x26fe, 0x080c,\r
++      0xa8fc, 0x080c, 0x2248, 0x080c, 0x20a8, 0x0804, 0x2fa9, 0x0106,\r
++      0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,\r
++      0x26fe, 0x080c, 0x207e, 0x080c, 0xa8fc, 0x080c, 0x20a8, 0x0804,\r
++      0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x26fe, 0x080c, 0x207e, 0x080c, 0xa8fc, 0x080c,\r
++      0x2248, 0x080c, 0x20a8, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x26fe, 0x080c,\r
++      0xa8fc, 0x080c, 0x13a3, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x26fe, 0x080c,\r
++      0xa8fc, 0x080c, 0x2248, 0x080c, 0x13a3, 0x0804, 0x2fa9, 0x0106,\r
++      0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,\r
++      0x26fe, 0x080c, 0x207e, 0x080c, 0xa8fc, 0x080c, 0x13a3, 0x0804,\r
++      0x2fa9, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x26fe, 0x080c, 0x207e, 0x080c, 0xa8fc, 0x080c,\r
++      0x2248, 0x080c, 0x13a3, 0x0804, 0x2fa9, 0x0106, 0x0006, 0x0126,\r
++      0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x26fe, 0x080c,\r
++      0xa8fc, 0x080c, 0x13a3, 0x080c, 0x20a8, 0x04d8, 0x0106, 0x0006,\r
++      0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x26fe,\r
++      0x080c, 0xa8fc, 0x080c, 0x2248, 0x080c, 0x13a3, 0x080c, 0x20a8,\r
++      0x0440, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x0156, 0x080c, 0x26fe, 0x080c, 0x207e, 0x080c, 0x13a3, 0x080c,\r
++      0xa8fc, 0x080c, 0x20a8, 0x00a8, 0x0106, 0x0006, 0x0126, 0x01c6,\r
++      0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x26fe, 0x080c, 0x207e,\r
++      0x080c, 0xa8fc, 0x080c, 0x2248, 0x080c, 0x13a3, 0x080c, 0x20a8,\r
++      0x0000, 0x015e, 0x014e, 0x013e, 0x01de, 0x01ce, 0x012e, 0x000e,\r
++      0x010e, 0x000d, 0x00b6, 0x00c6, 0x0026, 0x0046, 0x9026, 0x080c,\r
++      0x6a29, 0x1904, 0x30c2, 0x72dc, 0x2001, 0x197c, 0x2004, 0x9005,\r
++      0x1110, 0xd29c, 0x0148, 0xd284, 0x1138, 0xd2bc, 0x1904, 0x30c2,\r
++      0x080c, 0x30c7, 0x0804, 0x30c2, 0xd2cc, 0x1904, 0x30c2, 0x080c,\r
++      0x74e9, 0x1120, 0x70af, 0xffff, 0x0804, 0x30c2, 0xd294, 0x0120,\r
++      0x70af, 0xffff, 0x0804, 0x30c2, 0x080c, 0x3363, 0x0160, 0x080c,\r
++      0xcf52, 0x0128, 0x2001, 0x1818, 0x203c, 0x0804, 0x304f, 0x70af,\r
++      0xffff, 0x0804, 0x30c2, 0x2001, 0x1818, 0x203c, 0x7294, 0xd284,\r
++      0x0904, 0x304f, 0xd28c, 0x1904, 0x304f, 0x0036, 0x73ac, 0x938e,\r
++      0xffff, 0x1110, 0x2019, 0x0001, 0x8314, 0x92e0, 0x1d80, 0x2c04,\r
++      0x938c, 0x0001, 0x0120, 0x9084, 0xff00, 0x8007, 0x0010, 0x9084,\r
++      0x00ff, 0x970e, 0x05d0, 0x908e, 0x0000, 0x05b8, 0x908e, 0x00ff,\r
++      0x1150, 0x7230, 0xd284, 0x15b0, 0x7294, 0xc28d, 0x7296, 0x70af,\r
++      0xffff, 0x003e, 0x04a0, 0x900e, 0x080c, 0x25fb, 0x080c, 0x65c4,\r
++      0x1538, 0x9006, 0xb8bb, 0x0520, 0xb8ac, 0x9005, 0x0148, 0x00c6,\r
++      0x2060, 0x080c, 0x8b90, 0x00ce, 0x090c, 0x8f34, 0xb8af, 0x0000,\r
++      0x080c, 0x6a6b, 0x1168, 0x7030, 0xd08c, 0x0130, 0xb800, 0xd0bc,\r
++      0x0138, 0x080c, 0x6914, 0x0120, 0x080c, 0x30e0, 0x0148, 0x0028,\r
++      0x080c, 0x3238, 0x080c, 0x310c, 0x0118, 0x8318, 0x0804, 0x2ffc,\r
++      0x73ae, 0x0010, 0x70af, 0xffff, 0x003e, 0x0804, 0x30c2, 0x9780,\r
++      0x3374, 0x203d, 0x97bc, 0xff00, 0x873f, 0x2041, 0x007e, 0x70ac,\r
++      0x9096, 0xffff, 0x1118, 0x900e, 0x28a8, 0x0050, 0x9812, 0x0220,\r
++      0x2008, 0x9802, 0x20a8, 0x0020, 0x70af, 0xffff, 0x0804, 0x30c2,\r
++      0x2700, 0x0156, 0x0016, 0x9106, 0x0904, 0x30b7, 0xc484, 0x080c,\r
++      0x6625, 0x0148, 0x080c, 0xcf52, 0x1904, 0x30b7, 0x080c, 0x65c4,\r
++      0x1904, 0x30bf, 0x0008, 0xc485, 0xb8bb, 0x0520, 0xb8ac, 0x9005,\r
++      0x0148, 0x00c6, 0x2060, 0x080c, 0x8b90, 0x00ce, 0x090c, 0x8f34,\r
++      0xb8af, 0x0000, 0x080c, 0x6a6b, 0x1130, 0x7030, 0xd08c, 0x01f8,\r
++      0xb800, 0xd0bc, 0x11e0, 0x7294, 0xd28c, 0x0180, 0x080c, 0x6a6b,\r
++      0x9082, 0x0006, 0x02e0, 0xd484, 0x1118, 0x080c, 0x65e9, 0x0028,\r
++      0x080c, 0x32d1, 0x01a0, 0x080c, 0x32fc, 0x0088, 0x080c, 0x3238,\r
++      0x080c, 0xcf52, 0x1160, 0x080c, 0x310c, 0x0188, 0x0040, 0x080c,\r
++      0xcf52, 0x1118, 0x080c, 0x32d1, 0x0110, 0x0451, 0x0140, 0x001e,\r
++      0x8108, 0x015e, 0x1f04, 0x3068, 0x70af, 0xffff, 0x0018, 0x001e,\r
++      0x015e, 0x71ae, 0x004e, 0x002e, 0x00ce, 0x00be, 0x0005, 0x00c6,\r
++      0x0016, 0x70af, 0x0001, 0x2009, 0x007e, 0x080c, 0x65c4, 0x1168,\r
++      0xb813, 0x00ff, 0xb817, 0xfffe, 0x080c, 0x3238, 0x04a9, 0x0128,\r
++      0x70dc, 0xc0bd, 0x70de, 0x080c, 0xcc9f, 0x001e, 0x00ce, 0x0005,\r
++      0x0016, 0x0076, 0x00d6, 0x00c6, 0x2001, 0x184c, 0x2004, 0x9084,\r
++      0x00ff, 0xb842, 0x080c, 0xac5f, 0x01d0, 0x2b00, 0x6012, 0x080c,\r
++      0xcccc, 0x6023, 0x0001, 0x9006, 0x080c, 0x6561, 0x2001, 0x0000,\r
++      0x080c, 0x6575, 0x0126, 0x2091, 0x8000, 0x70a8, 0x8000, 0x70aa,\r
++      0x012e, 0x2009, 0x0004, 0x080c, 0xac8c, 0x9085, 0x0001, 0x00ce,\r
++      0x00de, 0x007e, 0x001e, 0x0005, 0x0016, 0x0076, 0x00d6, 0x00c6,\r
++      0x2001, 0x184c, 0x2004, 0x9084, 0x00ff, 0xb842, 0x080c, 0xac5f,\r
++      0x0548, 0x2b00, 0x6012, 0xb800, 0xc0c4, 0xb802, 0xb8a0, 0x9086,\r
++      0x007e, 0x0140, 0xb804, 0x9084, 0x00ff, 0x9086, 0x0006, 0x1110,\r
++      0x080c, 0x31e7, 0x080c, 0xcccc, 0x6023, 0x0001, 0x9006, 0x080c,\r
++      0x6561, 0x2001, 0x0002, 0x080c, 0x6575, 0x0126, 0x2091, 0x8000,\r
++      0x70a8, 0x8000, 0x70aa, 0x012e, 0x2009, 0x0002, 0x080c, 0xac8c,\r
++      0x9085, 0x0001, 0x00ce, 0x00de, 0x007e, 0x001e, 0x0005, 0x00b6,\r
++      0x00c6, 0x0026, 0x2009, 0x0080, 0x080c, 0x65c4, 0x1140, 0xb813,\r
++      0x00ff, 0xb817, 0xfffc, 0x0039, 0x0110, 0x70e3, 0xffff, 0x002e,\r
++      0x00ce, 0x00be, 0x0005, 0x0016, 0x0076, 0x00d6, 0x00c6, 0x080c,\r
++      0xab97, 0x01d0, 0x2b00, 0x6012, 0x080c, 0xcccc, 0x6023, 0x0001,\r
++      0x9006, 0x080c, 0x6561, 0x2001, 0x0002, 0x080c, 0x6575, 0x0126,\r
++      0x2091, 0x8000, 0x70e4, 0x8000, 0x70e6, 0x012e, 0x2009, 0x0002,\r
++      0x080c, 0xac8c, 0x9085, 0x0001, 0x00ce, 0x00de, 0x007e, 0x001e,\r
++      0x0005, 0x00c6, 0x00d6, 0x0126, 0x2091, 0x8000, 0x2009, 0x007f,\r
++      0x080c, 0x65c4, 0x11b8, 0xb813, 0x00ff, 0xb817, 0xfffd, 0xb8d7,\r
++      0x0004, 0x080c, 0xab97, 0x0170, 0x2b00, 0x6012, 0x6316, 0x6023,\r
++      0x0001, 0x620a, 0x080c, 0xcccc, 0x2009, 0x0022, 0x080c, 0xac8c,\r
++      0x9085, 0x0001, 0x012e, 0x00de, 0x00ce, 0x0005, 0x00e6, 0x00c6,\r
++      0x0066, 0x0036, 0x0026, 0x00b6, 0x21f0, 0x9036, 0x080c, 0xa896,\r
++      0x1110, 0x2031, 0x0001, 0x0066, 0x080c, 0x93b0, 0x080c, 0x9326,\r
++      0x080c, 0xa7ec, 0x080c, 0xbb19, 0x006e, 0x86ff, 0x0110, 0x080c,\r
++      0xa8b2, 0x3e08, 0x2130, 0x81ff, 0x0120, 0x20a9, 0x007e, 0x900e,\r
++      0x0018, 0x20a9, 0x007f, 0x900e, 0x0016, 0x080c, 0x6625, 0x1140,\r
++      0x9686, 0x0002, 0x1118, 0xb800, 0xd0bc, 0x1110, 0x080c, 0x6043,\r
++      0x001e, 0x8108, 0x1f04, 0x31cc, 0x9686, 0x0001, 0x190c, 0x3337,\r
++      0x00be, 0x002e, 0x003e, 0x006e, 0x00ce, 0x00ee, 0x0005, 0x00e6,\r
++      0x00c6, 0x0046, 0x0036, 0x0026, 0x0016, 0x00b6, 0x9016, 0x080c,\r
++      0xa896, 0x1110, 0x2011, 0x0001, 0x0026, 0x6210, 0x2258, 0xbaa0,\r
++      0x0026, 0x2019, 0x0029, 0x080c, 0x93a5, 0x0076, 0x2039, 0x0000,\r
++      0x080c, 0x9277, 0x2c08, 0x080c, 0xdfeb, 0x007e, 0x001e, 0x002e,\r
++      0x82ff, 0x0110, 0x080c, 0xa8b2, 0xba10, 0xbb14, 0xbc84, 0x080c,\r
++      0x6043, 0xba12, 0xbb16, 0xbc86, 0x00be, 0x001e, 0x002e, 0x003e,\r
++      0x004e, 0x00ce, 0x00ee, 0x0005, 0x00e6, 0x0006, 0x00b6, 0x6010,\r
++      0x2058, 0xb8a0, 0x00be, 0x9086, 0x0080, 0x0150, 0x2071, 0x1800,\r
++      0x70a8, 0x9005, 0x0110, 0x8001, 0x70aa, 0x000e, 0x00ee, 0x0005,\r
++      0x2071, 0x1800, 0x70e4, 0x9005, 0x0dc0, 0x8001, 0x70e6, 0x0ca8,\r
++      0xb800, 0xc08c, 0xb802, 0x0005, 0x00f6, 0x00e6, 0x00c6, 0x00b6,\r
++      0x0046, 0x0036, 0x0026, 0x0016, 0x0156, 0x2178, 0x9016, 0x080c,\r
++      0xa896, 0x1110, 0x2011, 0x0001, 0x0026, 0x81ff, 0x1118, 0x20a9,\r
++      0x0001, 0x0078, 0x080c, 0x56da, 0xd0c4, 0x0140, 0xd0a4, 0x0130,\r
++      0x9006, 0x2020, 0x2009, 0x002d, 0x080c, 0xe2c9, 0x20a9, 0x0800,\r
++      0x9016, 0x0026, 0x928e, 0x007e, 0x0904, 0x32ab, 0x928e, 0x007f,\r
++      0x0904, 0x32ab, 0x928e, 0x0080, 0x05f0, 0x9288, 0x1000, 0x210c,\r
++      0x81ff, 0x05c8, 0x8fff, 0x1150, 0x2001, 0x198e, 0x0006, 0x2003,\r
++      0x0001, 0x080c, 0x32be, 0x000e, 0x2003, 0x0000, 0x00b6, 0x00c6,\r
++      0x2158, 0x2001, 0x0001, 0x080c, 0x6a35, 0x00ce, 0x00be, 0x2019,\r
++      0x0029, 0x080c, 0x93a5, 0x0076, 0x2039, 0x0000, 0x080c, 0x9277,\r
++      0x00b6, 0x00c6, 0x0026, 0x2158, 0xba04, 0x9294, 0x00ff, 0x9286,\r
++      0x0006, 0x1118, 0xb807, 0x0404, 0x0028, 0x2001, 0x0004, 0x8007,\r
++      0x9215, 0xba06, 0x002e, 0x00ce, 0x00be, 0x0016, 0x2c08, 0x080c,\r
++      0xdfeb, 0x001e, 0x007e, 0x002e, 0x8210, 0x1f04, 0x3261, 0x002e,\r
++      0x82ff, 0x0110, 0x080c, 0xa8b2, 0x015e, 0x001e, 0x002e, 0x003e,\r
++      0x004e, 0x00be, 0x00ce, 0x00ee, 0x00fe, 0x0005, 0x0046, 0x0026,\r
++      0x0016, 0x080c, 0x56da, 0xd0c4, 0x0140, 0xd0a4, 0x0130, 0x9006,\r
++      0x2220, 0x2009, 0x0029, 0x080c, 0xe2c9, 0x001e, 0x002e, 0x004e,\r
++      0x0005, 0x0016, 0x0026, 0x0036, 0x00c6, 0x7294, 0x82ff, 0x01e8,\r
++      0x080c, 0x6a63, 0x11d0, 0x2100, 0x080c, 0x262e, 0x81ff, 0x01b8,\r
++      0x2019, 0x0001, 0x8314, 0x92e0, 0x1d80, 0x2c04, 0xd384, 0x0120,\r
++      0x9084, 0xff00, 0x8007, 0x0010, 0x9084, 0x00ff, 0x9116, 0x0138,\r
++      0x9096, 0x00ff, 0x0110, 0x8318, 0x0c68, 0x9085, 0x0001, 0x00ce,\r
++      0x003e, 0x002e, 0x001e, 0x0005, 0x0016, 0x00c6, 0x0126, 0x2091,\r
++      0x8000, 0x0066, 0x9036, 0x080c, 0xa896, 0x1110, 0x2031, 0x0001,\r
++      0x0066, 0x0036, 0x2019, 0x0029, 0x00d9, 0x003e, 0x006e, 0x86ff,\r
++      0x0110, 0x080c, 0xa8b2, 0x006e, 0x9180, 0x1000, 0x2004, 0x9065,\r
++      0x0158, 0x0016, 0x00c6, 0x2061, 0x1b32, 0x001e, 0x6112, 0x080c,\r
++      0x31e7, 0x001e, 0x080c, 0x65e9, 0x012e, 0x00ce, 0x001e, 0x0005,\r
++      0x0016, 0x0026, 0x2110, 0x080c, 0xa38a, 0x080c, 0xe630, 0x002e,\r
++      0x001e, 0x0005, 0x2001, 0x1837, 0x2004, 0xd0cc, 0x0005, 0x00c6,\r
++      0x00b6, 0x080c, 0x74e9, 0x1118, 0x20a9, 0x0800, 0x0010, 0x20a9,\r
++      0x0782, 0x080c, 0x74e9, 0x1110, 0x900e, 0x0010, 0x2009, 0x007e,\r
++      0x9180, 0x1000, 0x2004, 0x905d, 0x0130, 0x86ff, 0x0110, 0xb800,\r
++      0xd0bc, 0x090c, 0x65e9, 0x8108, 0x1f04, 0x3348, 0x2061, 0x1800,\r
++      0x607f, 0x0000, 0x6080, 0x9084, 0x00ff, 0x6082, 0x60b3, 0x0000,\r
++      0x00be, 0x00ce, 0x0005, 0x2001, 0x1869, 0x2004, 0xd0bc, 0x0005,\r
++      0x2011, 0x1848, 0x2214, 0xd2ec, 0x0005, 0x0026, 0x2011, 0x1867,\r
++      0x2214, 0xd2dc, 0x002e, 0x0005, 0x7eef, 0x7de8, 0x7ce4, 0x80e2,\r
++      0x7be1, 0x80e0, 0x80dc, 0x80da, 0x7ad9, 0x80d6, 0x80d5, 0x80d4,\r
++      0x80d3, 0x80d2, 0x80d1, 0x79ce, 0x78cd, 0x80cc, 0x80cb, 0x80ca,\r
++      0x80c9, 0x80c7, 0x80c6, 0x77c5, 0x76c3, 0x80bc, 0x80ba, 0x75b9,\r
++      0x80b6, 0x74b5, 0x73b4, 0x72b3, 0x80b2, 0x80b1, 0x80ae, 0x71ad,\r
++      0x80ac, 0x70ab, 0x6faa, 0x6ea9, 0x80a7, 0x6da6, 0x6ca5, 0x6ba3,\r
++      0x6a9f, 0x699e, 0x689d, 0x809b, 0x8098, 0x6797, 0x6690, 0x658f,\r
++      0x6488, 0x6384, 0x6282, 0x8081, 0x8080, 0x617c, 0x607a, 0x8079,\r
++      0x5f76, 0x8075, 0x8074, 0x8073, 0x8072, 0x8071, 0x806e, 0x5e6d,\r
++      0x806c, 0x5d6b, 0x5c6a, 0x5b69, 0x8067, 0x5a66, 0x5965, 0x5863,\r
++      0x575c, 0x565a, 0x5559, 0x8056, 0x8055, 0x5454, 0x5353, 0x5252,\r
++      0x5151, 0x504e, 0x4f4d, 0x804c, 0x804b, 0x4e4a, 0x4d49, 0x8047,\r
++      0x4c46, 0x8045, 0x8043, 0x803c, 0x803a, 0x8039, 0x8036, 0x4b35,\r
++      0x8034, 0x4a33, 0x4932, 0x4831, 0x802e, 0x472d, 0x462c, 0x452b,\r
++      0x442a, 0x4329, 0x4227, 0x8026, 0x8025, 0x4123, 0x401f, 0x3f1e,\r
++      0x3e1d, 0x3d1b, 0x3c18, 0x8017, 0x8010, 0x3b0f, 0x3a08, 0x8004,\r
++      0x3902, 0x8001, 0x8000, 0x8000, 0x3800, 0x3700, 0x3600, 0x8000,\r
++      0x3500, 0x8000, 0x8000, 0x8000, 0x3400, 0x8000, 0x8000, 0x8000,\r
++      0x8000, 0x8000, 0x8000, 0x3300, 0x3200, 0x8000, 0x8000, 0x8000,\r
++      0x8000, 0x8000, 0x8000, 0x3100, 0x3000, 0x8000, 0x8000, 0x2f00,\r
++      0x8000, 0x2e00, 0x2d00, 0x2c00, 0x8000, 0x8000, 0x8000, 0x2b00,\r
++      0x8000, 0x2a00, 0x2900, 0x2800, 0x8000, 0x2700, 0x2600, 0x2500,\r
++      0x2400, 0x2300, 0x2200, 0x8000, 0x8000, 0x2100, 0x2000, 0x1f00,\r
++      0x1e00, 0x1d00, 0x1c00, 0x8000, 0x8000, 0x1b00, 0x1a00, 0x8000,\r
++      0x1900, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x1800,\r
++      0x8000, 0x1700, 0x1600, 0x1500, 0x8000, 0x1400, 0x1300, 0x1200,\r
++      0x1100, 0x1000, 0x0f00, 0x8000, 0x8000, 0x0e00, 0x0d00, 0x0c00,\r
++      0x0b00, 0x0a00, 0x0900, 0x8000, 0x8000, 0x0800, 0x0700, 0x8000,\r
++      0x0600, 0x8000, 0x8000, 0x8000, 0x0500, 0x0400, 0x0300, 0x8000,\r
++      0x0200, 0x8000, 0x8000, 0x8000, 0x0100, 0x8000, 0x8000, 0x8000,\r
++      0x8000, 0x8000, 0x8000, 0x0000, 0x8000, 0x8000, 0x8000, 0x8000,\r
++      0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000,\r
++      0x8000, 0x8000, 0x8000, 0x8000, 0x2071, 0x189e, 0x7003, 0x0002,\r
++      0x9006, 0x7016, 0x701a, 0x704a, 0x704e, 0x700e, 0x7042, 0x7046,\r
++      0x703b, 0x18ba, 0x703f, 0x18ba, 0x7007, 0x0001, 0x080c, 0x1053,\r
++      0x090c, 0x0d7d, 0x2900, 0x706a, 0xa867, 0x0002, 0xa8ab, 0xdcb0,\r
++      0x080c, 0x1053, 0x090c, 0x0d7d, 0x2900, 0x706e, 0xa867, 0x0002,\r
++      0xa8ab, 0xdcb0, 0x0005, 0x2071, 0x189e, 0x7004, 0x0002, 0x34a3,\r
++      0x34a4, 0x34b7, 0x34cb, 0x0005, 0x1004, 0x34b4, 0x0e04, 0x34b4,\r
++      0x2079, 0x0000, 0x0126, 0x2091, 0x8000, 0x700c, 0x9005, 0x1128,\r
++      0x700f, 0x0001, 0x012e, 0x0468, 0x0005, 0x012e, 0x0ce8, 0x2079,\r
++      0x0000, 0x2061, 0x18b8, 0x2c4c, 0xa86c, 0x908e, 0x0100, 0x0128,\r
++      0x9086, 0x0200, 0x0904, 0x359f, 0x0005, 0x7018, 0x2048, 0x2061,\r
++      0x1800, 0x701c, 0x0807, 0x7014, 0x2048, 0xa864, 0x9094, 0x00ff,\r
++      0x9296, 0x0029, 0x1120, 0xaa78, 0xd2fc, 0x0128, 0x0005, 0x9086,\r
++      0x0103, 0x0108, 0x0005, 0x2079, 0x0000, 0x2061, 0x1800, 0x701c,\r
++      0x0807, 0x2061, 0x1800, 0x7880, 0x908a, 0x0040, 0x1210, 0x61d0,\r
++      0x0042, 0x2100, 0x908a, 0x003f, 0x1a04, 0x359c, 0x61d0, 0x0804,\r
++      0x3531, 0x3573, 0x35ab, 0x35b5, 0x35b9, 0x35c3, 0x35c9, 0x35cd,\r
++      0x35dd, 0x35e0, 0x35ea, 0x35ef, 0x35f4, 0x35ff, 0x360a, 0x3619,\r
++      0x3628, 0x3636, 0x364d, 0x3668, 0x359c, 0x3711, 0x374f, 0x37f4,\r
++      0x3805, 0x3828, 0x359c, 0x359c, 0x359c, 0x3860, 0x3880, 0x3889,\r
++      0x38b5, 0x38bb, 0x359c, 0x3901, 0x359c, 0x359c, 0x359c, 0x359c,\r
++      0x359c, 0x390c, 0x3915, 0x391d, 0x391f, 0x359c, 0x359c, 0x359c,\r
++      0x359c, 0x359c, 0x359c, 0x394f, 0x359c, 0x359c, 0x359c, 0x359c,\r
++      0x359c, 0x396c, 0x39d0, 0x359c, 0x359c, 0x359c, 0x359c, 0x359c,\r
++      0x359c, 0x0002, 0x39fa, 0x39fd, 0x3a5c, 0x3a75, 0x3aa5, 0x3d47,\r
++      0x359c, 0x52ab, 0x359c, 0x359c, 0x359c, 0x359c, 0x359c, 0x359c,\r
++      0x359c, 0x359c, 0x35ea, 0x35ef, 0x4246, 0x56fe, 0x4264, 0x533a,\r
++      0x538b, 0x548e, 0x359c, 0x54f0, 0x552c, 0x555d, 0x5669, 0x558a,\r
++      0x55e9, 0x359c, 0x4268, 0x441d, 0x4433, 0x4458, 0x44bd, 0x4531,\r
++      0x4551, 0x45c8, 0x4624, 0x4680, 0x4683, 0x46a8, 0x4718, 0x4782,\r
++      0x478a, 0x48bc, 0x4a31, 0x4a65, 0x4cc9, 0x359c, 0x4ce7, 0x4d93,\r
++      0x4e75, 0x4ecf, 0x359c, 0x4f84, 0x359c, 0x4fea, 0x5005, 0x478a,\r
++      0x524b, 0x714c, 0x0000, 0x2021, 0x4000, 0x080c, 0x4ae3, 0x0126,\r
++      0x2091, 0x8000, 0x0e04, 0x357d, 0x0010, 0x012e, 0x0cc0, 0x7c36,\r
++      0x9486, 0x4000, 0x0118, 0x7833, 0x0011, 0x0010, 0x7833, 0x0010,\r
++      0x7c82, 0x7986, 0x7a8a, 0x7b8e, 0x2091, 0x4080, 0x2001, 0x0089,\r
++      0x2004, 0xd084, 0x190c, 0x11d6, 0x7007, 0x0001, 0x2091, 0x5000,\r
++      0x700f, 0x0000, 0x012e, 0x0005, 0x2021, 0x4001, 0x08b0, 0x2021,\r
++      0x4002, 0x0898, 0x2021, 0x4003, 0x0880, 0x2021, 0x4005, 0x0868,\r
++      0x2021, 0x4006, 0x0850, 0x2039, 0x0001, 0x902e, 0x2520, 0x7b88,\r
++      0x7a8c, 0x7884, 0x7990, 0x0804, 0x4af0, 0x7883, 0x0004, 0x7884,\r
++      0x0807, 0x2039, 0x0001, 0x902e, 0x2520, 0x7b88, 0x7a8c, 0x7884,\r
++      0x7990, 0x0804, 0x4af3, 0x7984, 0x7888, 0x2114, 0x200a, 0x0804,\r
++      0x3573, 0x7984, 0x2114, 0x0804, 0x3573, 0x20e1, 0x0000, 0x2099,\r
++      0x0021, 0x20e9, 0x0000, 0x20a1, 0x0021, 0x20a9, 0x001f, 0x4003,\r
++      0x7984, 0x7a88, 0x7b8c, 0x0804, 0x3573, 0x7884, 0x2060, 0x04d8,\r
++      0x2009, 0x0003, 0x2011, 0x0002, 0x2019, 0x001c, 0x789b, 0x0137,\r
++      0x0804, 0x3573, 0x2039, 0x0001, 0x7d98, 0x7c9c, 0x0800, 0x2039,\r
++      0x0001, 0x7d98, 0x7c9c, 0x0848, 0x79a0, 0x9182, 0x0040, 0x0210,\r
++      0x0804, 0x35a8, 0x2138, 0x7d98, 0x7c9c, 0x0804, 0x35af, 0x79a0,\r
++      0x9182, 0x0040, 0x0210, 0x0804, 0x35a8, 0x2138, 0x7d98, 0x7c9c,\r
++      0x0804, 0x35bd, 0x79a0, 0x9182, 0x0040, 0x0210, 0x0804, 0x35a8,\r
++      0x21e8, 0x7984, 0x7888, 0x20a9, 0x0001, 0x21a0, 0x4004, 0x0804,\r
++      0x3573, 0x2061, 0x0800, 0xe10c, 0x9006, 0x2c15, 0x9200, 0x8c60,\r
++      0x8109, 0x1dd8, 0x2010, 0x9005, 0x0904, 0x3573, 0x0804, 0x35a2,\r
++      0x79a0, 0x9182, 0x0040, 0x0210, 0x0804, 0x35a8, 0x21e0, 0x20a9,\r
++      0x0001, 0x7984, 0x2198, 0x4012, 0x0804, 0x3573, 0x2069, 0x1847,\r
++      0x7884, 0x7990, 0x911a, 0x1a04, 0x35a8, 0x8019, 0x0904, 0x35a8,\r
++      0x684a, 0x6942, 0x788c, 0x6852, 0x7888, 0x6856, 0x9006, 0x685a,\r
++      0x685e, 0x080c, 0x781e, 0x0804, 0x3573, 0x2069, 0x1847, 0x7884,\r
++      0x7994, 0x911a, 0x1a04, 0x35a8, 0x8019, 0x0904, 0x35a8, 0x684e,\r
++      0x6946, 0x788c, 0x6862, 0x7888, 0x6866, 0x9006, 0x686a, 0x686e,\r
++      0x0126, 0x2091, 0x8000, 0x080c, 0x6ad5, 0x012e, 0x0804, 0x3573,\r
++      0x902e, 0x2520, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x35a5,\r
++      0x7984, 0x7b88, 0x7a8c, 0x20a9, 0x0005, 0x20e9, 0x0001, 0x20a1,\r
++      0x18a6, 0x4101, 0x080c, 0x4aa7, 0x1120, 0x2009, 0x0002, 0x0804,\r
++      0x35a5, 0x2009, 0x0020, 0xa85c, 0x9080, 0x0019, 0xaf60, 0x080c,\r
++      0x4af0, 0x701f, 0x368c, 0x0005, 0xa864, 0x2008, 0x9084, 0x00ff,\r
++      0x9096, 0x0011, 0x0168, 0x9096, 0x0019, 0x0150, 0x9096, 0x0015,\r
++      0x0138, 0x9096, 0x0048, 0x0120, 0x9096, 0x0029, 0x1904, 0x35a5,\r
++      0x810f, 0x918c, 0x00ff, 0x0904, 0x35a5, 0x7112, 0x7010, 0x8001,\r
++      0x0560, 0x7012, 0x080c, 0x4aa7, 0x1120, 0x2009, 0x0002, 0x0804,\r
++      0x35a5, 0x2009, 0x0020, 0x7068, 0x2040, 0xa28c, 0xa390, 0xa494,\r
++      0xa598, 0x9290, 0x0040, 0x9399, 0x0000, 0x94a1, 0x0000, 0x95a9,\r
++      0x0000, 0xa85c, 0x9080, 0x0019, 0xaf60, 0x080c, 0x4af0, 0x701f,\r
++      0x36ca, 0x0005, 0xa864, 0x9084, 0x00ff, 0x9096, 0x0002, 0x0120,\r
++      0x9096, 0x000a, 0x1904, 0x35a5, 0x0888, 0x7014, 0x2048, 0xa868,\r
++      0xc0fd, 0xa86a, 0xa864, 0x9084, 0x00ff, 0x9096, 0x0029, 0x1160,\r
++      0xc2fd, 0xaa7a, 0x080c, 0x6196, 0x0150, 0x0126, 0x2091, 0x8000,\r
++      0xa87a, 0xa982, 0x012e, 0x0050, 0x080c, 0x64bf, 0x1128, 0x7007,\r
++      0x0003, 0x701f, 0x36f6, 0x0005, 0x080c, 0x6fc0, 0x0126, 0x2091,\r
++      0x8000, 0x20a9, 0x0005, 0x20e1, 0x0001, 0x2099, 0x18a6, 0x400a,\r
++      0x2100, 0x9210, 0x9399, 0x0000, 0x94a1, 0x0000, 0x95a9, 0x0000,\r
++      0xa85c, 0x9080, 0x0019, 0x2009, 0x0020, 0x012e, 0xaf60, 0x0804,\r
++      0x4af3, 0x2091, 0x8000, 0x7837, 0x4000, 0x7833, 0x0010, 0x7883,\r
++      0x4000, 0x7887, 0x4953, 0x788b, 0x5020, 0x788f, 0x2020, 0x2009,\r
++      0x017f, 0x2104, 0x7892, 0x3f00, 0x7896, 0x2061, 0x0100, 0x6200,\r
++      0x2061, 0x0200, 0x603c, 0x8007, 0x9205, 0x789a, 0x2009, 0x04fd,\r
++      0x2104, 0x789e, 0x2091, 0x5000, 0x2091, 0x4080, 0x2001, 0x0089,\r
++      0x2004, 0xd084, 0x0180, 0x2001, 0x1a22, 0x2004, 0x9005, 0x0128,\r
++      0x2001, 0x008b, 0x2004, 0xd0fc, 0x0dd8, 0x2001, 0x008a, 0x2003,\r
++      0x0002, 0x2003, 0x1001, 0x2071, 0x0080, 0x0804, 0x0427, 0x81ff,\r
++      0x1904, 0x35a5, 0x7984, 0x080c, 0x6625, 0x1904, 0x35a8, 0x7e98,\r
++      0x9684, 0x3fff, 0x9082, 0x4000, 0x1a04, 0x35a8, 0x7c88, 0x7d8c,\r
++      0x080c, 0x6857, 0x080c, 0x67e8, 0x1518, 0x2061, 0x1ddc, 0x0126,\r
++      0x2091, 0x8000, 0x6000, 0x9086, 0x0000, 0x0148, 0x6014, 0x904d,\r
++      0x0130, 0xa86c, 0x9406, 0x1118, 0xa870, 0x9506, 0x0150, 0x012e,\r
++      0x9ce0, 0x001c, 0x2001, 0x181a, 0x2004, 0x9c02, 0x1a04, 0x35a5,\r
++      0x0c30, 0x080c, 0xc443, 0x012e, 0x0904, 0x35a5, 0x0804, 0x3573,\r
++      0x900e, 0x2001, 0x0005, 0x080c, 0x6fc0, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0xcb3c, 0x080c, 0x6d80, 0x012e, 0x0804, 0x3573, 0x00a6,\r
++      0x2950, 0xb198, 0x080c, 0x6625, 0x1904, 0x37e1, 0xb6a4, 0x9684,\r
++      0x3fff, 0x9082, 0x4000, 0x16e8, 0xb49c, 0xb5a0, 0x080c, 0x6857,\r
++      0x080c, 0x6802, 0x1520, 0x2061, 0x1ddc, 0x0126, 0x2091, 0x8000,\r
++      0x6000, 0x9086, 0x0000, 0x0148, 0x6014, 0x904d, 0x0130, 0xa86c,\r
++      0x9406, 0x1118, 0xa870, 0x9506, 0x0158, 0x012e, 0x9ce0, 0x001c,\r
++      0x2001, 0x181a, 0x2004, 0x9c02, 0x2009, 0x000d, 0x12b0, 0x0c28,\r
++      0x080c, 0xc443, 0x012e, 0x2009, 0x0003, 0x0178, 0x00e0, 0x900e,\r
++      0x2001, 0x0005, 0x080c, 0x6fc0, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0xcb3c, 0x080c, 0x6d74, 0x012e, 0x0070, 0xb097, 0x4005, 0xb19a,\r
++      0x0010, 0xb097, 0x4006, 0x900e, 0x9085, 0x0001, 0x2001, 0x0030,\r
++      0x2a48, 0x00ae, 0x0005, 0xb097, 0x4000, 0x9006, 0x918d, 0x0001,\r
++      0x2008, 0x2a48, 0x00ae, 0x0005, 0x81ff, 0x1904, 0x35a5, 0x080c,\r
++      0x4abe, 0x0904, 0x35a8, 0x080c, 0x66ec, 0x0904, 0x35a5, 0x080c,\r
++      0x685d, 0x0904, 0x35a5, 0x0804, 0x4548, 0x81ff, 0x1904, 0x35a5,\r
++      0x080c, 0x4ada, 0x0904, 0x35a8, 0x080c, 0x68eb, 0x0904, 0x35a5,\r
++      0x2019, 0x0005, 0x79a8, 0x080c, 0x6878, 0x0904, 0x35a5, 0x7888,\r
++      0x908a, 0x1000, 0x1a04, 0x35a8, 0x8003, 0x800b, 0x810b, 0x9108,\r
++      0x080c, 0x864c, 0x7984, 0xd184, 0x1904, 0x3573, 0x0804, 0x4548,\r
++      0x0126, 0x2091, 0x8000, 0x81ff, 0x0118, 0x2009, 0x0001, 0x0450,\r
++      0x2029, 0x07ff, 0x645c, 0x2400, 0x9506, 0x01f8, 0x2508, 0x080c,\r
++      0x6625, 0x11d8, 0x080c, 0x68eb, 0x1128, 0x2009, 0x0002, 0x62c0,\r
++      0x2518, 0x00c0, 0x2019, 0x0004, 0x900e, 0x080c, 0x6878, 0x1118,\r
++      0x2009, 0x0006, 0x0078, 0x7884, 0x908a, 0x1000, 0x1270, 0x8003,\r
++      0x800b, 0x810b, 0x9108, 0x080c, 0x864c, 0x8529, 0x1ae0, 0x012e,\r
++      0x0804, 0x3573, 0x012e, 0x0804, 0x35a5, 0x012e, 0x0804, 0x35a8,\r
++      0x080c, 0x4abe, 0x0904, 0x35a8, 0x080c, 0x66ec, 0x0904, 0x35a5,\r
++      0x080c, 0xa896, 0xbaa0, 0x2019, 0x0005, 0x00c6, 0x9066, 0x080c,\r
++      0x93a5, 0x0076, 0x903e, 0x080c, 0x9277, 0x900e, 0x080c, 0xdfeb,\r
++      0x007e, 0x00ce, 0x080c, 0xa8b2, 0x080c, 0x6857, 0x0804, 0x3573,\r
++      0x080c, 0x4abe, 0x0904, 0x35a8, 0x080c, 0x6857, 0x2208, 0x0804,\r
++      0x3573, 0x0156, 0x00d6, 0x00e6, 0x00c6, 0x2069, 0x1910, 0x6810,\r
++      0x6914, 0x910a, 0x1208, 0x900e, 0x6816, 0x9016, 0x901e, 0x2071,\r
++      0x19e7, 0x7028, 0x9065, 0x0118, 0x8210, 0x600c, 0x0cd8, 0x2300,\r
++      0x9218, 0x00ce, 0x00ee, 0x00de, 0x015e, 0x0804, 0x3573, 0x00f6,\r
++      0x0016, 0x907d, 0x0138, 0x9006, 0x8000, 0x2f0c, 0x81ff, 0x0110,\r
++      0x2178, 0x0cd0, 0x001e, 0x00fe, 0x0005, 0x2069, 0x1910, 0x6910,\r
++      0x62bc, 0x0804, 0x3573, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804,\r
++      0x35a5, 0x0126, 0x2091, 0x8000, 0x080c, 0x56ee, 0x0128, 0x2009,\r
++      0x0007, 0x012e, 0x0804, 0x35a5, 0x012e, 0x615c, 0x9190, 0x3374,\r
++      0x2215, 0x9294, 0x00ff, 0x637c, 0x83ff, 0x0108, 0x6280, 0x67dc,\r
++      0x97c4, 0x000a, 0x98c6, 0x000a, 0x1118, 0x2031, 0x0001, 0x00e8,\r
++      0x97c4, 0x0022, 0x98c6, 0x0022, 0x1118, 0x2031, 0x0003, 0x00a8,\r
++      0x97c4, 0x0012, 0x98c6, 0x0012, 0x1118, 0x2031, 0x0002, 0x0068,\r
++      0x080c, 0x74e9, 0x1118, 0x2031, 0x0004, 0x0038, 0xd79c, 0x0120,\r
++      0x2009, 0x0005, 0x0804, 0x35a5, 0x9036, 0x7e9a, 0x7f9e, 0x0804,\r
++      0x3573, 0x614c, 0x6250, 0x2019, 0x1986, 0x231c, 0x2001, 0x1987,\r
++      0x2004, 0x789a, 0x0804, 0x3573, 0x0126, 0x2091, 0x8000, 0x6138,\r
++      0x623c, 0x6340, 0x012e, 0x0804, 0x3573, 0x080c, 0x4ada, 0x0904,\r
++      0x35a8, 0xba44, 0xbb38, 0x0804, 0x3573, 0x080c, 0x0d7d, 0x080c,\r
++      0x4ada, 0x2110, 0x0904, 0x35a8, 0xb804, 0x908c, 0x00ff, 0x918e,\r
++      0x0006, 0x0140, 0x9084, 0xff00, 0x9086, 0x0600, 0x2009, 0x0009,\r
++      0x1904, 0x35a5, 0x0126, 0x2091, 0x8000, 0x2019, 0x0005, 0x00c6,\r
++      0x9066, 0x080c, 0xa896, 0x080c, 0xa38a, 0x080c, 0x93a5, 0x0076,\r
++      0x903e, 0x080c, 0x9277, 0x900e, 0x080c, 0xdfeb, 0x007e, 0x00ce,\r
++      0x080c, 0xa8b2, 0xb807, 0x0407, 0x012e, 0x0804, 0x3573, 0x614c,\r
++      0x6250, 0x7884, 0x604e, 0x7b88, 0x6352, 0x2069, 0x1847, 0x831f,\r
++      0x9305, 0x6816, 0x788c, 0x2069, 0x1986, 0x2d1c, 0x206a, 0x7e98,\r
++      0x9682, 0x0014, 0x1210, 0x2031, 0x07d0, 0x2069, 0x1987, 0x2d04,\r
++      0x266a, 0x789a, 0x0804, 0x3573, 0x0126, 0x2091, 0x8000, 0x6138,\r
++      0x7884, 0x603a, 0x910e, 0xd1b4, 0x190c, 0x0ecc, 0xd0c4, 0x01a8,\r
++      0x00d6, 0x78a8, 0x2009, 0x199d, 0x200a, 0x78ac, 0x2011, 0x199e,\r
++      0x2012, 0x2069, 0x0100, 0x6838, 0x9086, 0x0007, 0x1118, 0x2214,\r
++      0x6a5a, 0x0010, 0x210c, 0x695a, 0x00de, 0x7888, 0x603e, 0x2011,\r
++      0x0116, 0x220c, 0x7888, 0xd08c, 0x0118, 0x918d, 0x0040, 0x0010,\r
++      0x918c, 0xff7f, 0x2112, 0x6140, 0x788c, 0x6042, 0x910e, 0xd1e4,\r
++      0x190c, 0x0ee7, 0x9084, 0x0020, 0x0130, 0x78b4, 0x6046, 0x9084,\r
++      0x0001, 0x090c, 0x4246, 0x6040, 0xd0cc, 0x0120, 0x78b0, 0x2011,\r
++      0x0114, 0x2012, 0x012e, 0x0804, 0x3573, 0x00f6, 0x2079, 0x1800,\r
++      0x7a38, 0xa898, 0x9084, 0xfebf, 0x9215, 0xa89c, 0x9084, 0xfebf,\r
++      0x8002, 0x9214, 0x7838, 0x9084, 0x0140, 0x9215, 0x7a3a, 0xa897,\r
++      0x4000, 0x900e, 0x9085, 0x0001, 0x2001, 0x0000, 0x00fe, 0x0005,\r
++      0x7898, 0x9005, 0x01a8, 0x7888, 0x9025, 0x0904, 0x35a8, 0x788c,\r
++      0x902d, 0x0904, 0x35a8, 0x900e, 0x080c, 0x6625, 0x1120, 0xba44,\r
++      0xbb38, 0xbc46, 0xbd3a, 0x9186, 0x07ff, 0x0190, 0x8108, 0x0ca0,\r
++      0x080c, 0x4ada, 0x0904, 0x35a8, 0x7888, 0x900d, 0x0904, 0x35a8,\r
++      0x788c, 0x9005, 0x0904, 0x35a8, 0xba44, 0xb946, 0xbb38, 0xb83a,\r
++      0x0804, 0x3573, 0x2011, 0xbc09, 0x0010, 0x2011, 0xbc05, 0x080c,\r
++      0x56ee, 0x1904, 0x35a5, 0x00c6, 0x2061, 0x0100, 0x7984, 0x9186,\r
++      0x00ff, 0x1130, 0x2001, 0x1818, 0x2004, 0x9085, 0xff00, 0x0088,\r
++      0x9182, 0x007f, 0x16e0, 0x9188, 0x3374, 0x210d, 0x918c, 0x00ff,\r
++      0x2001, 0x1818, 0x2004, 0x0026, 0x9116, 0x002e, 0x0580, 0x810f,\r
++      0x9105, 0x0126, 0x2091, 0x8000, 0x0006, 0x080c, 0xab97, 0x000e,\r
++      0x0510, 0x602e, 0x620a, 0x7984, 0x00b6, 0x080c, 0x65ca, 0x2b08,\r
++      0x00be, 0x1500, 0x6112, 0x6023, 0x0001, 0x080c, 0x4aa7, 0x01d0,\r
++      0x9006, 0xa866, 0x7007, 0x0003, 0xa832, 0xa868, 0xc0fd, 0xa86a,\r
++      0x701f, 0x3a55, 0x2900, 0x6016, 0x2009, 0x0032, 0x080c, 0xac8c,\r
++      0x012e, 0x00ce, 0x0005, 0x012e, 0x00ce, 0x0804, 0x35a5, 0x00ce,\r
++      0x0804, 0x35a8, 0x080c, 0xabed, 0x0cb0, 0xa830, 0x9086, 0x0100,\r
++      0x0904, 0x35a5, 0x0804, 0x3573, 0x2061, 0x1a6f, 0x0126, 0x2091,\r
++      0x8000, 0x6000, 0xd084, 0x0170, 0x6104, 0x6208, 0x2061, 0x1800,\r
++      0x6354, 0x6074, 0x789a, 0x60c0, 0x789e, 0x60bc, 0x78aa, 0x012e,\r
++      0x0804, 0x3573, 0x900e, 0x2110, 0x0c88, 0x81ff, 0x1904, 0x35a5,\r
++      0x080c, 0x74e9, 0x0904, 0x35a5, 0x0126, 0x2091, 0x8000, 0x6254,\r
++      0x6074, 0x9202, 0x0248, 0x9085, 0x0001, 0x080c, 0x2664, 0x080c,\r
++      0x5908, 0x012e, 0x0804, 0x3573, 0x012e, 0x0804, 0x35a8, 0x0006,\r
++      0x0016, 0x00c6, 0x00e6, 0x2001, 0x19a9, 0x2070, 0x2061, 0x1847,\r
++      0x6008, 0x2072, 0x900e, 0x2011, 0x1400, 0x080c, 0x9166, 0x7206,\r
++      0x00ee, 0x00ce, 0x001e, 0x000e, 0x0005, 0x0126, 0x2091, 0x8000,\r
++      0x81ff, 0x0128, 0x012e, 0x2021, 0x400b, 0x0804, 0x3575, 0x7884,\r
++      0xd0fc, 0x0148, 0x2001, 0x002a, 0x2004, 0x9082, 0x00e1, 0x0288,\r
++      0x012e, 0x0804, 0x35a8, 0x2001, 0x002a, 0x2004, 0x2069, 0x1847,\r
++      0x6908, 0x9102, 0x1230, 0x012e, 0x0804, 0x35a8, 0x012e, 0x0804,\r
++      0x35a5, 0x080c, 0xab57, 0x0dd0, 0x7884, 0xd0fc, 0x0904, 0x3b20,\r
++      0x00c6, 0x080c, 0x4aa7, 0x00ce, 0x0d88, 0xa867, 0x0000, 0x7884,\r
++      0xa80a, 0x7898, 0xa80e, 0x789c, 0xa812, 0x2001, 0x002e, 0x2004,\r
++      0xa81a, 0x2001, 0x002f, 0x2004, 0xa81e, 0x2001, 0x0030, 0x2004,\r
++      0xa822, 0x2001, 0x0031, 0x2004, 0xa826, 0x2001, 0x0034, 0x2004,\r
++      0xa82a, 0x2001, 0x0035, 0x2004, 0xa82e, 0x2001, 0x002a, 0x2004,\r
++      0x9080, 0x0003, 0x9084, 0x00fc, 0x8004, 0xa816, 0x080c, 0x3caa,\r
++      0x0928, 0x7014, 0x2048, 0xad2c, 0xac28, 0xab1c, 0xaa18, 0xa930,\r
++      0xa808, 0xd0b4, 0x1120, 0x2029, 0x0000, 0x2021, 0x0000, 0x8906,\r
++      0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x001b,\r
++      0x080c, 0x4af0, 0x701f, 0x3be7, 0x7023, 0x0001, 0x012e, 0x0005,\r
++      0x080c, 0xa896, 0x0046, 0x0086, 0x0096, 0x00a6, 0x00b6, 0x00c6,\r
++      0x00d6, 0x00e6, 0x00f6, 0x080c, 0x3a8f, 0x2001, 0x199f, 0x2003,\r
++      0x0000, 0x2021, 0x000a, 0x2061, 0x0100, 0x6104, 0x0016, 0x60bb,\r
++      0x0000, 0x60bf, 0x32e1, 0x60bf, 0x0012, 0x080c, 0x3d19, 0x080c,\r
++      0x3cd8, 0x00f6, 0x00e6, 0x0086, 0x2940, 0x2071, 0x19e7, 0x2079,\r
++      0x0090, 0x00d6, 0x2069, 0x0000, 0x6884, 0xd0b4, 0x0140, 0x2001,\r
++      0x0035, 0x2004, 0x780e, 0x2001, 0x0034, 0x2004, 0x780a, 0x00de,\r
++      0x2011, 0x0001, 0x080c, 0x408a, 0x008e, 0x00ee, 0x00fe, 0x080c,\r
++      0x3fb7, 0x080c, 0x3ee4, 0x05b8, 0x2001, 0x020b, 0x2004, 0x9084,\r
++      0x0140, 0x1db8, 0x080c, 0x40fe, 0x00f6, 0x2079, 0x0300, 0x78bc,\r
++      0x00fe, 0x908c, 0x0070, 0x1560, 0x2071, 0x0200, 0x7037, 0x0000,\r
++      0x7050, 0x9084, 0xff00, 0x9086, 0x3200, 0x1510, 0x7037, 0x0001,\r
++      0x7050, 0x9084, 0xff00, 0x9086, 0xe100, 0x11d0, 0x7037, 0x0000,\r
++      0x7054, 0x7037, 0x0000, 0x715c, 0x9106, 0x1190, 0x2001, 0x1820,\r
++      0x2004, 0x9106, 0x1168, 0x00c6, 0x2061, 0x0100, 0x6024, 0x9084,\r
++      0x1e00, 0x00ce, 0x0138, 0x080c, 0x3eee, 0x080c, 0x3cd3, 0x0058,\r
++      0x080c, 0x3cd3, 0x080c, 0x4022, 0x080c, 0x3fad, 0x2001, 0x020b,\r
++      0x2004, 0xd0e4, 0x0dd8, 0x2001, 0x032a, 0x2003, 0x0004, 0x2061,\r
++      0x0100, 0x6027, 0x0002, 0x001e, 0x6106, 0x2011, 0x020d, 0x2013,\r
++      0x0020, 0x60bb, 0x0000, 0x60bf, 0x0108, 0x60bf, 0x0012, 0x2001,\r
++      0x0004, 0x200c, 0x918c, 0xfffd, 0x2102, 0x080c, 0x1328, 0x2009,\r
++      0x0028, 0x080c, 0x21b0, 0x2001, 0x0227, 0x200c, 0x2102, 0x080c,\r
++      0xa8b2, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be, 0x00ae, 0x009e,\r
++      0x008e, 0x004e, 0x2001, 0x199f, 0x2004, 0x9005, 0x1118, 0x012e,\r
++      0x0804, 0x3573, 0x012e, 0x2021, 0x400c, 0x0804, 0x3575, 0x0016,\r
++      0x0026, 0x0036, 0x0046, 0x0056, 0x0076, 0x0086, 0x0096, 0x00d6,\r
++      0x0156, 0x7014, 0x2048, 0x7020, 0x20a8, 0x8000, 0x7022, 0xa804,\r
++      0x9005, 0x0904, 0x3c43, 0x2048, 0x1f04, 0x3bf7, 0x7068, 0x2040,\r
++      0xa28c, 0xa390, 0xa494, 0xa598, 0xa930, 0xa808, 0xd0b4, 0x1120,\r
++      0x2029, 0x0000, 0x2021, 0x0000, 0x0096, 0x7014, 0x2048, 0xa864,\r
++      0x009e, 0x9086, 0x0103, 0x0170, 0x8906, 0x8006, 0x8007, 0x90bc,\r
++      0x003f, 0x9084, 0xffc0, 0x9080, 0x001b, 0x080c, 0x4af0, 0x701f,\r
++      0x3be7, 0x00b0, 0x8906, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084,\r
++      0xffc0, 0x9080, 0x001b, 0x21a8, 0x27e0, 0x2098, 0x27e8, 0x20a0,\r
++      0x0006, 0x080c, 0x0fb7, 0x000e, 0x080c, 0x4af3, 0x701f, 0x3be7,\r
++      0x015e, 0x00de, 0x009e, 0x008e, 0x007e, 0x005e, 0x004e, 0x003e,\r
++      0x002e, 0x001e, 0x0005, 0x7014, 0x2048, 0xa864, 0x9086, 0x0103,\r
++      0x1118, 0x701f, 0x3ca8, 0x0450, 0x7014, 0x2048, 0xa868, 0xc0fd,\r
++      0xa86a, 0x2009, 0x007f, 0x080c, 0x65c4, 0x0110, 0x9006, 0x0030,\r
++      0xb813, 0x00ff, 0xb817, 0xfffd, 0x080c, 0xcd1b, 0x015e, 0x00de,\r
++      0x009e, 0x008e, 0x007e, 0x005e, 0x004e, 0x003e, 0x002e, 0x001e,\r
++      0x0904, 0x35a5, 0x0016, 0x0026, 0x0036, 0x0046, 0x0056, 0x0076,\r
++      0x0086, 0x0096, 0x00d6, 0x0156, 0x701f, 0x3c7a, 0x7007, 0x0003,\r
++      0x0804, 0x3c38, 0xa830, 0x9086, 0x0100, 0x2021, 0x400c, 0x0904,\r
++      0x3575, 0x0076, 0xad10, 0xac0c, 0xab24, 0xaa20, 0xa930, 0xa808,\r
++      0xd0b4, 0x1120, 0x2029, 0x0000, 0x2021, 0x0000, 0x8906, 0x8006,\r
++      0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x001b, 0x21a8,\r
++      0x27e0, 0x2098, 0x27e8, 0x20a0, 0x0006, 0x080c, 0x0fb7, 0x000e,\r
++      0x080c, 0x4af3, 0x007e, 0x701f, 0x3be7, 0x7023, 0x0001, 0x0005,\r
++      0x0804, 0x3573, 0x0156, 0x00c6, 0xa814, 0x908a, 0x001e, 0x0218,\r
++      0xa833, 0x001e, 0x0010, 0xa832, 0x0078, 0x81ff, 0x0168, 0x0016,\r
++      0x080c, 0x4aa7, 0x001e, 0x0130, 0xa800, 0x2040, 0xa008, 0xa80a,\r
++      0x2100, 0x0c58, 0x9006, 0x0010, 0x9085, 0x0001, 0x00ce, 0x015e,\r
++      0x0005, 0x0006, 0x00f6, 0x2079, 0x0000, 0x7880, 0x9086, 0x0044,\r
++      0x00fe, 0x000e, 0x0005, 0x2001, 0x199f, 0x2003, 0x0001, 0x0005,\r
++      0x00f6, 0x00e6, 0x00c6, 0x2061, 0x0200, 0x2001, 0x19aa, 0x2004,\r
++      0x601a, 0x2061, 0x0100, 0x2001, 0x19a9, 0x2004, 0x60ce, 0x6104,\r
++      0xc1ac, 0x6106, 0x080c, 0x4aa7, 0xa813, 0x0019, 0xa817, 0x0001,\r
++      0x2900, 0xa85a, 0x2001, 0x002e, 0x2004, 0xa866, 0x2001, 0x002f,\r
++      0x2004, 0xa86a, 0x2061, 0x0090, 0x2079, 0x0100, 0x2001, 0x19a9,\r
++      0x2004, 0x6036, 0x2009, 0x0040, 0x080c, 0x21b0, 0x2001, 0x002a,\r
++      0x2004, 0x9084, 0xfff8, 0xa86e, 0x601a, 0xa873, 0x0000, 0x601f,\r
++      0x0000, 0x78ca, 0x9006, 0x600a, 0x600e, 0x00ce, 0x00ee, 0x00fe,\r
++      0x0005, 0x00e6, 0x080c, 0x4aa7, 0x2940, 0xa013, 0x0019, 0xa017,\r
++      0x0001, 0x2800, 0xa05a, 0x2001, 0x0030, 0x2004, 0xa866, 0x2001,\r
++      0x0031, 0x2004, 0xa86a, 0x2001, 0x002a, 0x2004, 0x9084, 0xfff8,\r
++      0xa86e, 0xa873, 0x0000, 0x2001, 0x032a, 0x2003, 0x0004, 0x2001,\r
++      0x0300, 0x2003, 0x0000, 0x2001, 0x020d, 0x2003, 0x0000, 0x2001,\r
++      0x0004, 0x200c, 0x918d, 0x0002, 0x2102, 0x00ee, 0x0005, 0x0126,\r
++      0x2091, 0x8000, 0x81ff, 0x0148, 0x080c, 0x29e8, 0x1130, 0x9006,\r
++      0x080c, 0x2945, 0x9006, 0x080c, 0x2928, 0x7884, 0x9084, 0x0007,\r
++      0x0002, 0x3d64, 0x3d6d, 0x3d76, 0x3d61, 0x3d61, 0x3d61, 0x3d61,\r
++      0x3d61, 0x012e, 0x0804, 0x35a8, 0x2009, 0x0114, 0x2104, 0x9085,\r
++      0x0800, 0x200a, 0x080c, 0x3f38, 0x00c0, 0x2009, 0x0114, 0x2104,\r
++      0x9085, 0x4000, 0x200a, 0x080c, 0x3f38, 0x0078, 0x080c, 0x74e9,\r
++      0x1128, 0x012e, 0x2009, 0x0016, 0x0804, 0x35a5, 0x81ff, 0x0128,\r
++      0x012e, 0x2021, 0x400b, 0x0804, 0x3575, 0x080c, 0xa896, 0x0086,\r
++      0x0096, 0x00a6, 0x00b6, 0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x080c,\r
++      0x3a8f, 0x2009, 0x0101, 0x210c, 0x0016, 0x7ec8, 0x7dcc, 0x9006,\r
++      0x2068, 0x2060, 0x2058, 0x080c, 0x41d9, 0x080c, 0x4129, 0x903e,\r
++      0x2720, 0x00f6, 0x00e6, 0x0086, 0x2940, 0x2071, 0x19e7, 0x2079,\r
++      0x0090, 0x00d6, 0x2069, 0x0000, 0x6884, 0xd0b4, 0x0120, 0x68d4,\r
++      0x780e, 0x68d0, 0x780a, 0x00de, 0x2011, 0x0001, 0x080c, 0x408a,\r
++      0x080c, 0x29f0, 0x080c, 0x29f0, 0x080c, 0x29f0, 0x080c, 0x29f0,\r
++      0x080c, 0x408a, 0x008e, 0x00ee, 0x00fe, 0x080c, 0x3fb7, 0x2009,\r
++      0x9c40, 0x8109, 0x11b0, 0x080c, 0x3eee, 0x2001, 0x0004, 0x200c,\r
++      0x918c, 0xfffd, 0x2102, 0x001e, 0x00fe, 0x00ee, 0x00de, 0x00ce,\r
++      0x00be, 0x00ae, 0x009e, 0x008e, 0x2009, 0x0017, 0x080c, 0x35a5,\r
++      0x0cf8, 0x2001, 0x020b, 0x2004, 0x9084, 0x0140, 0x1d10, 0x00f6,\r
++      0x2079, 0x0000, 0x7884, 0x00fe, 0xd0bc, 0x0178, 0x2001, 0x0201,\r
++      0x200c, 0x81ff, 0x0150, 0x080c, 0x3f95, 0x2d00, 0x9c05, 0x9b05,\r
++      0x0120, 0x080c, 0x3eee, 0x0804, 0x3e97, 0x080c, 0x40fe, 0x080c,\r
++      0x4022, 0x080c, 0x3f78, 0x080c, 0x3fad, 0x00f6, 0x2079, 0x0100,\r
++      0x7824, 0xd0ac, 0x0130, 0x8b58, 0x080c, 0x3eee, 0x00fe, 0x0804,\r
++      0x3e97, 0x00fe, 0x080c, 0x3ee4, 0x1150, 0x8d68, 0x2001, 0x0032,\r
++      0x2602, 0x2001, 0x0033, 0x2502, 0x080c, 0x3eee, 0x0080, 0x87ff,\r
++      0x0138, 0x2001, 0x0201, 0x2004, 0x9005, 0x1908, 0x8739, 0x0038,\r
++      0x2001, 0x1a6b, 0x2004, 0x9086, 0x0000, 0x1904, 0x3de7, 0x2001,\r
++      0x032f, 0x2003, 0x00f6, 0x8631, 0x1208, 0x8529, 0x2500, 0x9605,\r
++      0x0904, 0x3e97, 0x7884, 0xd0bc, 0x0128, 0x2d00, 0x9c05, 0x9b05,\r
++      0x1904, 0x3e97, 0xa013, 0x0019, 0x2001, 0x032a, 0x2003, 0x0004,\r
++      0x7884, 0xd0ac, 0x1148, 0x2001, 0x1a6b, 0x2003, 0x0003, 0x2001,\r
++      0x032a, 0x2003, 0x0009, 0x0030, 0xa017, 0x0001, 0x78b4, 0x9005,\r
++      0x0108, 0xa016, 0x2800, 0xa05a, 0x2009, 0x0040, 0x080c, 0x21b0,\r
++      0x2900, 0xa85a, 0xa813, 0x0019, 0x7884, 0xd0a4, 0x1180, 0xa817,\r
++      0x0000, 0x00c6, 0x20a9, 0x0004, 0x2061, 0x0090, 0x602b, 0x0008,\r
++      0x2001, 0x0203, 0x2004, 0x1f04, 0x3e6e, 0x00ce, 0x0030, 0xa817,\r
++      0x0001, 0x78b0, 0x9005, 0x0108, 0xa816, 0x00f6, 0x00c6, 0x2079,\r
++      0x0100, 0x2061, 0x0090, 0x7827, 0x0002, 0x2001, 0x002a, 0x2004,\r
++      0x9084, 0xfff8, 0x601a, 0x0006, 0x2001, 0x002b, 0x2004, 0x601e,\r
++      0x78c6, 0x000e, 0x78ca, 0x00ce, 0x00fe, 0x0804, 0x3da1, 0x001e,\r
++      0x00c6, 0x2001, 0x032a, 0x2003, 0x0004, 0x2061, 0x0100, 0x6027,\r
++      0x0002, 0x6106, 0x2011, 0x020d, 0x2013, 0x0020, 0x2001, 0x0004,\r
++      0x200c, 0x918c, 0xfffd, 0x2102, 0x080c, 0x1328, 0x7884, 0x9084,\r
++      0x0003, 0x9086, 0x0002, 0x01b0, 0x2009, 0x0028, 0x080c, 0x21b0,\r
++      0x2001, 0x0227, 0x200c, 0x2102, 0x6050, 0x9084, 0xb7ff, 0x080c,\r
++      0x2aab, 0x6052, 0x602f, 0x0000, 0x604b, 0xf7f7, 0x6043, 0x0090,\r
++      0x6043, 0x0010, 0x080c, 0xa8b2, 0x00ce, 0x2d08, 0x2c10, 0x2b18,\r
++      0x2b00, 0x9c05, 0x9d05, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be,\r
++      0x00ae, 0x009e, 0x008e, 0x1118, 0x012e, 0x0804, 0x3573, 0x012e,\r
++      0x2021, 0x400c, 0x0804, 0x3575, 0x9085, 0x0001, 0x1d04, 0x3eed,\r
++      0x2091, 0x6000, 0x8420, 0x9486, 0x0064, 0x0005, 0x2001, 0x0105,\r
++      0x2003, 0x0010, 0x2001, 0x032a, 0x2003, 0x0004, 0x2001, 0x1a6b,\r
++      0x2003, 0x0000, 0x0071, 0x2009, 0x0048, 0x080c, 0x21b0, 0x2001,\r
++      0x0227, 0x2024, 0x2402, 0x2001, 0x0109, 0x2003, 0x4000, 0x9026,\r
++      0x0005, 0x00f6, 0x00e6, 0x2071, 0x19e7, 0x7054, 0x9086, 0x0000,\r
++      0x0520, 0x2079, 0x0090, 0x2009, 0x0206, 0x2104, 0x2009, 0x0203,\r
++      0x210c, 0x9106, 0x1120, 0x2009, 0x0040, 0x080c, 0x21b0, 0x782c,\r
++      0xd0fc, 0x0d88, 0x080c, 0x40fe, 0x7054, 0x9086, 0x0000, 0x1d58,\r
++      0x782b, 0x0004, 0x782c, 0xd0ac, 0x1de8, 0x2009, 0x0040, 0x080c,\r
++      0x21b0, 0x782b, 0x0002, 0x7057, 0x0000, 0x00ee, 0x00fe, 0x0005,\r
++      0x00f6, 0x2079, 0x0100, 0x2001, 0x1818, 0x200c, 0x7932, 0x7936,\r
++      0x080c, 0x2644, 0x080c, 0x2a67, 0x080c, 0x2aab, 0x784b, 0xf7f7,\r
++      0x7843, 0x0090, 0x7843, 0x0010, 0x7850, 0xc0e5, 0x7852, 0x2019,\r
++      0x61a8, 0x7820, 0xd09c, 0x0110, 0x8319, 0x1dd8, 0x7850, 0xc0e4,\r
++      0x7852, 0x2011, 0x0048, 0x080c, 0x2a44, 0x7843, 0x0040, 0x2019,\r
++      0x01f4, 0xa001, 0xa001, 0x8319, 0x1de0, 0x2001, 0x0100, 0x080c,\r
++      0x2a0a, 0x2011, 0x0020, 0x080c, 0x2a44, 0x7843, 0x0000, 0x9006,\r
++      0x080c, 0x2a0a, 0x2011, 0x0048, 0x080c, 0x2a44, 0x00fe, 0x0005,\r
++      0x7884, 0xd0ac, 0x11c8, 0x00f6, 0x00e6, 0x2071, 0x1a6b, 0x2079,\r
++      0x0320, 0x2001, 0x0201, 0x2004, 0x9005, 0x0160, 0x7000, 0x9086,\r
++      0x0000, 0x1140, 0x0051, 0xd0bc, 0x0108, 0x8738, 0x7003, 0x0003,\r
++      0x782b, 0x0019, 0x00ee, 0x00fe, 0x0005, 0x00f6, 0x2079, 0x0300,\r
++      0x78bc, 0x00fe, 0x908c, 0x0070, 0x0178, 0x2009, 0x0032, 0x260a,\r
++      0x2009, 0x0033, 0x250a, 0xd0b4, 0x0108, 0x8c60, 0xd0ac, 0x0108,\r
++      0x8d68, 0xd0a4, 0x0108, 0x8b58, 0x0005, 0x00f6, 0x2079, 0x0200,\r
++      0x781c, 0xd084, 0x0110, 0x7837, 0x0050, 0x00fe, 0x0005, 0x00e6,\r
++      0x2071, 0x0100, 0x2001, 0x19aa, 0x2004, 0x70e2, 0x080c, 0x3cc9,\r
++      0x1188, 0x2001, 0x1820, 0x2004, 0x2009, 0x181f, 0x210c, 0x918c,\r
++      0x00ff, 0x706e, 0x716a, 0x7066, 0x918d, 0x3200, 0x7162, 0x7073,\r
++      0xe109, 0x0080, 0x702c, 0x9085, 0x0002, 0x702e, 0x2009, 0x1818,\r
++      0x210c, 0x716e, 0x7063, 0x0100, 0x7166, 0x719e, 0x706b, 0x0000,\r
++      0x7073, 0x0809, 0x7077, 0x0008, 0x7078, 0x9080, 0x0100, 0x707a,\r
++      0x7080, 0x8000, 0x7082, 0x7087, 0xaaaa, 0x9006, 0x708a, 0x708e,\r
++      0x707e, 0x70d6, 0x70ab, 0x0036, 0x70af, 0x95d5, 0x7014, 0x9084,\r
++      0x1984, 0x9085, 0x0092, 0x7016, 0x080c, 0x40fe, 0x00f6, 0x2071,\r
++      0x1a6b, 0x2079, 0x0320, 0x00d6, 0x2069, 0x0000, 0x6884, 0xd0b4,\r
++      0x0120, 0x689c, 0x780e, 0x6898, 0x780a, 0x00de, 0x2009, 0x03e8,\r
++      0x8109, 0x1df0, 0x792c, 0xd1fc, 0x0110, 0x782b, 0x0004, 0x2011,\r
++      0x0011, 0x080c, 0x408a, 0x2011, 0x0001, 0x080c, 0x408a, 0x00fe,\r
++      0x00ee, 0x0005, 0x00f6, 0x00e6, 0x2071, 0x1a6b, 0x2079, 0x0320,\r
++      0x792c, 0xd1fc, 0x0904, 0x4087, 0x782b, 0x0002, 0x9026, 0xd19c,\r
++      0x1904, 0x4083, 0x7000, 0x0002, 0x4087, 0x4038, 0x4068, 0x4083,\r
++      0xd1bc, 0x1170, 0xd1dc, 0x1190, 0x8001, 0x7002, 0x2011, 0x0001,\r
++      0x080c, 0x408a, 0x0904, 0x4087, 0x080c, 0x408a, 0x0804, 0x4087,\r
++      0x00f6, 0x2079, 0x0300, 0x78bf, 0x0000, 0x00fe, 0x7810, 0x7914,\r
++      0x782b, 0x0004, 0x7812, 0x7916, 0x2001, 0x0201, 0x200c, 0x81ff,\r
++      0x0de8, 0x080c, 0x3f95, 0x2009, 0x0001, 0x00f6, 0x2079, 0x0300,\r
++      0x78b8, 0x00fe, 0xd0ec, 0x0110, 0x2009, 0x0011, 0x792a, 0x00f8,\r
++      0x8001, 0x7002, 0x9184, 0x0880, 0x1140, 0x782c, 0xd0fc, 0x1904,\r
++      0x402c, 0x2011, 0x0001, 0x00b1, 0x0090, 0xa010, 0x9092, 0x0004,\r
++      0x9086, 0x0015, 0x1120, 0xa000, 0xa05a, 0x2011, 0x0031, 0xa212,\r
++      0xd1dc, 0x1960, 0x0828, 0x782b, 0x0004, 0x7003, 0x0000, 0x00ee,\r
++      0x00fe, 0x0005, 0xa014, 0x9005, 0x0550, 0x8001, 0x0036, 0x0096,\r
++      0xa016, 0xa058, 0x2048, 0xa010, 0x2009, 0x0031, 0x911a, 0x831c,\r
++      0x831c, 0x938a, 0x0007, 0x1a0c, 0x0d7d, 0x9398, 0x40b8, 0x231d,\r
++      0x083f, 0x9080, 0x0004, 0x7a2a, 0x7100, 0x8108, 0x7102, 0x009e,\r
++      0x003e, 0x908a, 0x0035, 0x1140, 0x0096, 0xa058, 0x2048, 0xa804,\r
++      0xa05a, 0x2001, 0x0019, 0x009e, 0xa012, 0x9085, 0x0001, 0x0005,\r
++      0x40f5, 0x40ec, 0x40e3, 0x40da, 0x40d1, 0x40c8, 0x40bf, 0xa964,\r
++      0x7902, 0xa968, 0x7906, 0xa96c, 0x7912, 0xa970, 0x7916, 0x0005,\r
++      0xa974, 0x7902, 0xa978, 0x7906, 0xa97c, 0x7912, 0xa980, 0x7916,\r
++      0x0005, 0xa984, 0x7902, 0xa988, 0x7906, 0xa98c, 0x7912, 0xa990,\r
++      0x7916, 0x0005, 0xa994, 0x7902, 0xa998, 0x7906, 0xa99c, 0x7912,\r
++      0xa9a0, 0x7916, 0x0005, 0xa9a4, 0x7902, 0xa9a8, 0x7906, 0xa9ac,\r
++      0x7912, 0xa9b0, 0x7916, 0x0005, 0xa9b4, 0x7902, 0xa9b8, 0x7906,\r
++      0xa9bc, 0x7912, 0xa9c0, 0x7916, 0x0005, 0xa9c4, 0x7902, 0xa9c8,\r
++      0x7906, 0xa9cc, 0x7912, 0xa9d0, 0x7916, 0x0005, 0x00f6, 0x00e6,\r
++      0x0086, 0x2071, 0x19e7, 0x2079, 0x0090, 0x792c, 0xd1fc, 0x01e8,\r
++      0x782b, 0x0002, 0x2940, 0x9026, 0x7054, 0x0002, 0x4125, 0x4111,\r
++      0x411c, 0x8001, 0x7056, 0xd19c, 0x1180, 0x2011, 0x0001, 0x080c,\r
++      0x408a, 0x190c, 0x408a, 0x0048, 0x8001, 0x7056, 0x782c, 0xd0fc,\r
++      0x1d38, 0x2011, 0x0001, 0x080c, 0x408a, 0x008e, 0x00ee, 0x00fe,\r
++      0x0005, 0x00f6, 0x00e6, 0x00c6, 0x0086, 0x2061, 0x0200, 0x2001,\r
++      0x19aa, 0x2004, 0x601a, 0x2061, 0x0100, 0x2001, 0x19a9, 0x2004,\r
++      0x60ce, 0x6104, 0xc1ac, 0x6106, 0x2001, 0x002c, 0x2004, 0x9005,\r
++      0x0520, 0x2038, 0x2001, 0x002e, 0x2024, 0x2001, 0x002f, 0x201c,\r
++      0x080c, 0x4aa7, 0xa813, 0x0019, 0xaf16, 0x2900, 0xa85a, 0x978a,\r
++      0x0007, 0x0220, 0x2138, 0x2009, 0x0007, 0x0010, 0x2708, 0x903e,\r
++      0x0096, 0xa858, 0x2048, 0xa85c, 0x9080, 0x0019, 0x009e, 0x080c,\r
++      0x41a1, 0x1d68, 0x2900, 0xa85a, 0x00d0, 0x080c, 0x4aa7, 0xa813,\r
++      0x0019, 0xa817, 0x0001, 0x2900, 0xa85a, 0x2001, 0x002e, 0x2004,\r
++      0xa866, 0x2001, 0x002f, 0x2004, 0xa86a, 0x2001, 0x002a, 0x2004,\r
++      0x9084, 0xfff8, 0xa86e, 0x2001, 0x002b, 0x2004, 0xa872, 0x2061,\r
++      0x0090, 0x2079, 0x0100, 0x2001, 0x19a9, 0x2004, 0x6036, 0x2009,\r
++      0x0040, 0x080c, 0x21b0, 0x2001, 0x002a, 0x2004, 0x9084, 0xfff8,\r
++      0x601a, 0x0006, 0x2001, 0x002b, 0x2004, 0x601e, 0x78c6, 0x000e,\r
++      0x78ca, 0x9006, 0x600a, 0x600e, 0x008e, 0x00ce, 0x00ee, 0x00fe,\r
++      0x0005, 0x00e6, 0x2071, 0x0080, 0xaa60, 0x22e8, 0x20a0, 0x20e1,\r
++      0x0000, 0x2099, 0x0088, 0x702b, 0x0026, 0x7402, 0x7306, 0x9006,\r
++      0x700a, 0x700e, 0x810b, 0x810b, 0x21a8, 0x810b, 0x7112, 0x702b,\r
++      0x0041, 0x702c, 0xd0fc, 0x0de8, 0x702b, 0x0002, 0x702b, 0x0040,\r
++      0x4005, 0x7400, 0x7304, 0x87ff, 0x0190, 0x0086, 0x0096, 0x2940,\r
++      0x0086, 0x080c, 0x4aa7, 0x008e, 0xa058, 0x00a6, 0x2050, 0x2900,\r
++      0xb006, 0xa05a, 0x00ae, 0x009e, 0x008e, 0x9085, 0x0001, 0x00ee,\r
++      0x0005, 0x00e6, 0x2001, 0x002d, 0x2004, 0x9005, 0x0528, 0x2038,\r
++      0x2001, 0x0030, 0x2024, 0x2001, 0x0031, 0x201c, 0x080c, 0x4aa7,\r
++      0x2940, 0xa813, 0x0019, 0xaf16, 0x2900, 0xa85a, 0x978a, 0x0007,\r
++      0x0220, 0x2138, 0x2009, 0x0007, 0x0010, 0x2708, 0x903e, 0x0096,\r
++      0xa858, 0x2048, 0xa85c, 0x9080, 0x0019, 0x009e, 0x080c, 0x41a1,\r
++      0x1d68, 0x2900, 0xa85a, 0x00d8, 0x080c, 0x4aa7, 0x2940, 0xa013,\r
++      0x0019, 0xa017, 0x0001, 0x2800, 0xa05a, 0x2001, 0x0030, 0x2004,\r
++      0xa066, 0x2001, 0x0031, 0x2004, 0xa06a, 0x2001, 0x002a, 0x2004,\r
++      0x9084, 0xfff8, 0xa06e, 0x2001, 0x002b, 0x2004, 0xa072, 0x2001,\r
++      0x032a, 0x2003, 0x0004, 0x7884, 0xd0ac, 0x1180, 0x2001, 0x0101,\r
++      0x200c, 0x918d, 0x0200, 0x2102, 0xa017, 0x0000, 0x2001, 0x1a6b,\r
++      0x2003, 0x0003, 0x2001, 0x032a, 0x2003, 0x0009, 0x2001, 0x0300,\r
++      0x2003, 0x0000, 0x2001, 0x020d, 0x2003, 0x0000, 0x2001, 0x0004,\r
++      0x200c, 0x918d, 0x0002, 0x2102, 0x00ee, 0x0005, 0x0126, 0x2091,\r
++      0x8000, 0x20a9, 0x0007, 0x20a1, 0x1840, 0x20e9, 0x0001, 0x9006,\r
++      0x4004, 0x20a9, 0x000c, 0x20a1, 0xfff4, 0x20e9, 0x0000, 0x9006,\r
++      0x4004, 0x2009, 0x013c, 0x200a, 0x012e, 0x7880, 0x9086, 0x0052,\r
++      0x0108, 0x0005, 0x0804, 0x3573, 0x7d98, 0x7c9c, 0x0804, 0x366a,\r
++      0x080c, 0x74e9, 0x190c, 0x5fee, 0x6040, 0x9084, 0x0020, 0x09b1,\r
++      0x2069, 0x1847, 0x2d00, 0x2009, 0x0030, 0x7a8c, 0x7b88, 0x7c9c,\r
++      0x7d98, 0x2039, 0x0001, 0x080c, 0x4af0, 0x701f, 0x4280, 0x0005,\r
++      0x080c, 0x56e9, 0x1130, 0x3b00, 0x3a08, 0xc194, 0xc095, 0x20d8,\r
++      0x21d0, 0x2069, 0x1847, 0x6800, 0x9005, 0x0904, 0x35a8, 0x6804,\r
++      0xd0ac, 0x0118, 0xd0a4, 0x0904, 0x35a8, 0xd094, 0x00c6, 0x2061,\r
++      0x0100, 0x6104, 0x0138, 0x6200, 0x9292, 0x0005, 0x0218, 0x918c,\r
++      0xffdf, 0x0010, 0x918d, 0x0020, 0x6106, 0x00ce, 0xd08c, 0x00c6,\r
++      0x2061, 0x0100, 0x6104, 0x0118, 0x918d, 0x0010, 0x0010, 0x918c,\r
++      0xffef, 0x6106, 0x00ce, 0xd084, 0x0158, 0x6a28, 0x928a, 0x007f,\r
++      0x1a04, 0x35a8, 0x9288, 0x3374, 0x210d, 0x918c, 0x00ff, 0x6166,\r
++      0xd0dc, 0x0130, 0x6828, 0x908a, 0x007f, 0x1a04, 0x35a8, 0x605e,\r
++      0x6888, 0x9084, 0x0030, 0x8004, 0x8004, 0x8004, 0x8004, 0x0006,\r
++      0x2009, 0x19b1, 0x9080, 0x2737, 0x2005, 0x200a, 0x2008, 0x2001,\r
++      0x0018, 0x080c, 0xa887, 0x2009, 0x0390, 0x200b, 0x0400, 0x000e,\r
++      0x2009, 0x19b2, 0x9080, 0x273b, 0x2005, 0x200a, 0x6808, 0x908a,\r
++      0x0100, 0x0a04, 0x35a8, 0x908a, 0x0841, 0x1a04, 0x35a8, 0x9084,\r
++      0x0007, 0x1904, 0x35a8, 0x680c, 0x9005, 0x0904, 0x35a8, 0x6810,\r
++      0x9005, 0x0904, 0x35a8, 0x6848, 0x6940, 0x910a, 0x1a04, 0x35a8,\r
++      0x8001, 0x0904, 0x35a8, 0x684c, 0x6944, 0x910a, 0x1a04, 0x35a8,\r
++      0x8001, 0x0904, 0x35a8, 0x6814, 0x908c, 0x00ff, 0x614e, 0x8007,\r
++      0x9084, 0x00ff, 0x6052, 0x080c, 0x781e, 0x080c, 0x6aa1, 0x080c,\r
++      0x6ad5, 0x6808, 0x602a, 0x080c, 0x2122, 0x2009, 0x0170, 0x200b,\r
++      0x0080, 0xa001, 0xa001, 0x200b, 0x0000, 0x0036, 0x6b08, 0x080c,\r
++      0x269e, 0x003e, 0x6000, 0x9086, 0x0000, 0x1904, 0x440b, 0x6818,\r
++      0x691c, 0x6a20, 0x6b24, 0x8007, 0x810f, 0x8217, 0x831f, 0x6016,\r
++      0x611a, 0x621e, 0x6322, 0x6c04, 0xd4f4, 0x0148, 0x6830, 0x6934,\r
++      0x6a38, 0x6b3c, 0x8007, 0x810f, 0x8217, 0x831f, 0x0010, 0x9084,\r
++      0xf0ff, 0x6006, 0x610a, 0x620e, 0x6312, 0x8007, 0x810f, 0x8217,\r
++      0x831f, 0x20a9, 0x0004, 0x20a1, 0x19b3, 0x20e9, 0x0001, 0x4001,\r
++      0x20a9, 0x0004, 0x20a1, 0x19cd, 0x20e9, 0x0001, 0x4001, 0x080c,\r
++      0x87d1, 0x00c6, 0x900e, 0x20a9, 0x0001, 0x6b70, 0xd384, 0x01c8,\r
++      0x0020, 0x839d, 0x12b0, 0x3508, 0x8109, 0x080c, 0x7ddf, 0x6878,\r
++      0x6016, 0x6874, 0x2008, 0x9084, 0xff00, 0x8007, 0x600a, 0x9184,\r
++      0x00ff, 0x6006, 0x8108, 0x1118, 0x6003, 0x0003, 0x0010, 0x6003,\r
++      0x0001, 0x1f04, 0x4369, 0x00ce, 0x00c6, 0x2061, 0x199c, 0x6a88,\r
++      0x9284, 0xc000, 0x2010, 0x9286, 0x0000, 0x1158, 0x2063, 0x0000,\r
++      0x2001, 0x0001, 0x080c, 0x2945, 0x2001, 0x0001, 0x080c, 0x2928,\r
++      0x0088, 0x9286, 0x4000, 0x1148, 0x2063, 0x0001, 0x9006, 0x080c,\r
++      0x2945, 0x9006, 0x080c, 0x2928, 0x0028, 0x9286, 0x8000, 0x1d30,\r
++      0x2063, 0x0002, 0x00ce, 0x00e6, 0x2c70, 0x080c, 0x0eb4, 0x00ee,\r
++      0x6888, 0xd0ec, 0x0130, 0x2011, 0x0114, 0x2204, 0x9085, 0x0180,\r
++      0x2012, 0x6a80, 0x9284, 0x0030, 0x9086, 0x0030, 0x1128, 0x9294,\r
++      0xffcf, 0x9295, 0x0020, 0x6a82, 0x2001, 0x197c, 0x6a80, 0x9294,\r
++      0x0030, 0x928e, 0x0000, 0x0170, 0x928e, 0x0010, 0x0118, 0x928e,\r
++      0x0020, 0x0140, 0x2003, 0xaaaa, 0x080c, 0x2713, 0x2001, 0x196d,\r
++      0x2102, 0x0008, 0x2102, 0x00c6, 0x2061, 0x0100, 0x602f, 0x0040,\r
++      0x602f, 0x0000, 0x00ce, 0x080c, 0x74e9, 0x0128, 0x080c, 0x4fde,\r
++      0x0110, 0x080c, 0x2664, 0x60d4, 0x9005, 0x01c0, 0x6003, 0x0001,\r
++      0x2009, 0x43f3, 0x00e0, 0x080c, 0x74e9, 0x1168, 0x2011, 0x735f,\r
++      0x080c, 0x863e, 0x2011, 0x7352, 0x080c, 0x874a, 0x080c, 0x77f2,\r
++      0x080c, 0x741a, 0x0040, 0x080c, 0x5ee4, 0x0028, 0x6003, 0x0004,\r
++      0x2009, 0x440b, 0x0020, 0x080c, 0x69cd, 0x0804, 0x3573, 0x2001,\r
++      0x0170, 0x2004, 0x9084, 0x00ff, 0x9086, 0x004c, 0x1118, 0x2091,\r
++      0x31bd, 0x0817, 0x2091, 0x313d, 0x0817, 0x6000, 0x9086, 0x0000,\r
++      0x0904, 0x35a5, 0x2069, 0x1847, 0x7890, 0x6842, 0x7894, 0x6846,\r
++      0x2d00, 0x2009, 0x0030, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x2039,\r
++      0x0001, 0x0804, 0x4af3, 0x9006, 0x080c, 0x2664, 0x81ff, 0x1904,\r
++      0x35a5, 0x080c, 0x74e9, 0x11b0, 0x080c, 0x77ed, 0x080c, 0x6029,\r
++      0x080c, 0x3368, 0x0118, 0x6130, 0xc18d, 0x6132, 0x080c, 0xcf52,\r
++      0x0130, 0x080c, 0x750c, 0x1118, 0x080c, 0x74bd, 0x0038, 0x080c,\r
++      0x741a, 0x0020, 0x080c, 0x5fee, 0x080c, 0x5ee4, 0x0804, 0x3573,\r
++      0x81ff, 0x1904, 0x35a5, 0x080c, 0x74e9, 0x1110, 0x0804, 0x35a5,\r
++      0x6194, 0x81ff, 0x01a8, 0x704f, 0x0000, 0x2001, 0x1d80, 0x2009,\r
++      0x0040, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x0126, 0x2091, 0x8000,\r
++      0x2039, 0x0001, 0x080c, 0x4af3, 0x701f, 0x3571, 0x012e, 0x0005,\r
++      0x704f, 0x0001, 0x00d6, 0x2069, 0x1d80, 0x20a9, 0x0040, 0x20e9,\r
++      0x0001, 0x20a1, 0x1d80, 0x2019, 0xffff, 0x4304, 0x655c, 0x9588,\r
++      0x3374, 0x210d, 0x918c, 0x00ff, 0x216a, 0x900e, 0x2011, 0x0002,\r
++      0x2100, 0x9506, 0x01a8, 0x080c, 0x6625, 0x1190, 0xb814, 0x821c,\r
++      0x0238, 0x9398, 0x1d80, 0x9085, 0xff00, 0x8007, 0x201a, 0x0038,\r
++      0x9398, 0x1d80, 0x2324, 0x94a4, 0xff00, 0x9405, 0x201a, 0x8210,\r
++      0x8108, 0x9182, 0x0080, 0x1208, 0x0c18, 0x8201, 0x8007, 0x2d0c,\r
++      0x9105, 0x206a, 0x00de, 0x20a9, 0x0040, 0x20a1, 0x1d80, 0x2099,\r
++      0x1d80, 0x080c, 0x5f79, 0x0804, 0x4465, 0x080c, 0x4ada, 0x0904,\r
++      0x35a8, 0x080c, 0x4aa7, 0x1120, 0x2009, 0x0002, 0x0804, 0x35a5,\r
++      0x080c, 0x56da, 0xd0b4, 0x0558, 0x7884, 0x908e, 0x007e, 0x0538,\r
++      0x908e, 0x007f, 0x0520, 0x908e, 0x0080, 0x0508, 0x080c, 0x3363,\r
++      0x1148, 0xb800, 0xd08c, 0x11d8, 0xb804, 0x9084, 0x00ff, 0x9086,\r
++      0x0006, 0x11a8, 0xa867, 0x0000, 0xa868, 0xc0fd, 0xa86a, 0x080c,\r
++      0xca07, 0x1120, 0x2009, 0x0003, 0x0804, 0x35a5, 0x7007, 0x0003,\r
++      0x701f, 0x44f3, 0x0005, 0x080c, 0x4ada, 0x0904, 0x35a8, 0x20a9,\r
++      0x002b, 0xb8c4, 0x20e0, 0xb8c8, 0x2098, 0xa860, 0x20e8, 0xa85c,\r
++      0x9080, 0x0002, 0x20a0, 0x4003, 0x20a9, 0x0008, 0x9080, 0x0006,\r
++      0x20a0, 0xb8c4, 0x20e0, 0xb8c8, 0x9080, 0x0006, 0x2098, 0x080c,\r
++      0x0fb7, 0x0070, 0x20a9, 0x0004, 0xa85c, 0x9080, 0x000a, 0x20a0,\r
++      0xb8c4, 0x20e0, 0xb8c8, 0x9080, 0x000a, 0x2098, 0x080c, 0x0fb7,\r
++      0x8906, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080,\r
++      0x0002, 0x2009, 0x002b, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x0804,\r
++      0x4af3, 0x81ff, 0x1904, 0x35a5, 0x080c, 0x4abe, 0x0904, 0x35a8,\r
++      0x080c, 0x6866, 0x0904, 0x35a5, 0x0058, 0xa878, 0x9005, 0x0120,\r
++      0x2009, 0x0004, 0x0804, 0x35a5, 0xa974, 0xaa94, 0x0804, 0x3573,\r
++      0x080c, 0x56e2, 0x0904, 0x3573, 0x701f, 0x453d, 0x7007, 0x0003,\r
++      0x0005, 0x81ff, 0x1904, 0x35a5, 0x7888, 0x908a, 0x1000, 0x1a04,\r
++      0x35a8, 0x080c, 0x4ada, 0x0904, 0x35a8, 0x080c, 0x6a6b, 0x0120,\r
++      0x080c, 0x6a73, 0x1904, 0x35a8, 0x080c, 0x68eb, 0x0904, 0x35a5,\r
++      0x2019, 0x0004, 0x900e, 0x080c, 0x6878, 0x0904, 0x35a5, 0x7984,\r
++      0x7a88, 0x04c9, 0x08a8, 0xa89c, 0x908a, 0x1000, 0x12f8, 0x080c,\r
++      0x4ad8, 0x01e0, 0x080c, 0x6a6b, 0x0118, 0x080c, 0x6a73, 0x11b0,\r
++      0x080c, 0x68eb, 0x2009, 0x0002, 0x0168, 0x2009, 0x0002, 0x2019,\r
++      0x0004, 0x080c, 0x6878, 0x2009, 0x0003, 0x0120, 0xa998, 0xaa9c,\r
++      0x00d1, 0x0060, 0xa897, 0x4005, 0xa99a, 0x0010, 0xa897, 0x4006,\r
++      0x900e, 0x9085, 0x0001, 0x2001, 0x0030, 0x0005, 0xa897, 0x4000,\r
++      0x080c, 0x56e2, 0x0110, 0x9006, 0x0018, 0x900e, 0x9085, 0x0001,\r
++      0x2001, 0x0000, 0x0005, 0x9186, 0x00ff, 0x0110, 0x0071, 0x0060,\r
++      0x2029, 0x007e, 0x2061, 0x1800, 0x645c, 0x2400, 0x9506, 0x0110,\r
++      0x2508, 0x0019, 0x8529, 0x1ec8, 0x0005, 0x080c, 0x6625, 0x1138,\r
++      0x2200, 0x8003, 0x800b, 0x810b, 0x9108, 0x080c, 0x864c, 0x0005,\r
++      0x81ff, 0x1904, 0x35a5, 0x798c, 0x2001, 0x1980, 0x918c, 0x8000,\r
++      0x2102, 0x080c, 0x4abe, 0x0904, 0x35a8, 0x080c, 0x6a6b, 0x0120,\r
++      0x080c, 0x6a73, 0x1904, 0x35a8, 0x080c, 0x66ec, 0x0904, 0x35a5,\r
++      0x080c, 0x686f, 0x0904, 0x35a5, 0x2001, 0x1980, 0x2004, 0xd0fc,\r
++      0x1904, 0x3573, 0x0804, 0x4548, 0xa9a0, 0x2001, 0x1980, 0x918c,\r
++      0x8000, 0xc18d, 0x2102, 0x080c, 0x4acb, 0x01a0, 0x080c, 0x6a6b,\r
++      0x0118, 0x080c, 0x6a73, 0x1170, 0x080c, 0x66ec, 0x2009, 0x0002,\r
++      0x0128, 0x080c, 0x686f, 0x1170, 0x2009, 0x0003, 0xa897, 0x4005,\r
++      0xa99a, 0x0010, 0xa897, 0x4006, 0x900e, 0x9085, 0x0001, 0x2001,\r
++      0x0030, 0x0005, 0xa897, 0x4000, 0x2001, 0x1980, 0x2004, 0xd0fc,\r
++      0x1128, 0x080c, 0x56e2, 0x0110, 0x9006, 0x0018, 0x900e, 0x9085,\r
++      0x0001, 0x2001, 0x0000, 0x0005, 0x81ff, 0x1904, 0x35a5, 0x798c,\r
++      0x2001, 0x197f, 0x918c, 0x8000, 0x2102, 0x080c, 0x4abe, 0x0904,\r
++      0x35a8, 0x080c, 0x6a6b, 0x0120, 0x080c, 0x6a73, 0x1904, 0x35a8,\r
++      0x080c, 0x66ec, 0x0904, 0x35a5, 0x080c, 0x685d, 0x0904, 0x35a5,\r
++      0x2001, 0x197f, 0x2004, 0xd0fc, 0x1904, 0x3573, 0x0804, 0x4548,\r
++      0xa9a0, 0x2001, 0x197f, 0x918c, 0x8000, 0xc18d, 0x2102, 0x080c,\r
++      0x4acb, 0x01a0, 0x080c, 0x6a6b, 0x0118, 0x080c, 0x6a73, 0x1170,\r
++      0x080c, 0x66ec, 0x2009, 0x0002, 0x0128, 0x080c, 0x685d, 0x1170,\r
++      0x2009, 0x0003, 0xa897, 0x4005, 0xa99a, 0x0010, 0xa897, 0x4006,\r
++      0x900e, 0x9085, 0x0001, 0x2001, 0x0030, 0x0005, 0xa897, 0x4000,\r
++      0x2001, 0x197f, 0x2004, 0xd0fc, 0x1128, 0x080c, 0x56e2, 0x0110,\r
++      0x9006, 0x0018, 0x900e, 0x9085, 0x0001, 0x2001, 0x0000, 0x0005,\r
++      0x6100, 0x0804, 0x3573, 0x080c, 0x4ada, 0x0904, 0x35a8, 0x080c,\r
++      0x56ee, 0x1904, 0x35a5, 0x79a8, 0xd184, 0x1158, 0xb834, 0x8007,\r
++      0x789e, 0xb830, 0x8007, 0x789a, 0xbb2c, 0x831f, 0xba28, 0x8217,\r
++      0x0050, 0xb824, 0x8007, 0x789e, 0xb820, 0x8007, 0x789a, 0xbb1c,\r
++      0x831f, 0xba18, 0x8217, 0xb900, 0x918c, 0x0200, 0x0804, 0x3573,\r
++      0x78a8, 0x909c, 0x0003, 0xd0b4, 0x1140, 0x939a, 0x0003, 0x1a04,\r
++      0x35a5, 0x625c, 0x7884, 0x9206, 0x1548, 0x080c, 0x87bb, 0x2001,\r
++      0xfff4, 0x2009, 0x000c, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x2039,\r
++      0x0000, 0x0006, 0x78a8, 0x9084, 0x0080, 0x1118, 0x000e, 0x0804,\r
++      0x4af3, 0x000e, 0x2031, 0x0000, 0x2061, 0x18b8, 0x2c44, 0xa66a,\r
++      0xa17a, 0xa772, 0xa076, 0xa28e, 0xa392, 0xa496, 0xa59a, 0x080c,\r
++      0x1124, 0x7007, 0x0002, 0x701f, 0x46fe, 0x0005, 0x81ff, 0x1904,\r
++      0x35a5, 0x080c, 0x4ada, 0x0904, 0x35a8, 0x080c, 0x6a6b, 0x1904,\r
++      0x35a5, 0x00c6, 0x080c, 0x4aa7, 0x00ce, 0x0904, 0x35a5, 0xa867,\r
++      0x0000, 0xa868, 0xc0fd, 0xa86a, 0x7ea8, 0x080c, 0xc9ad, 0x0904,\r
++      0x35a5, 0x7007, 0x0003, 0x701f, 0x4702, 0x0005, 0x080c, 0x4246,\r
++      0x0804, 0x3573, 0xa830, 0x9086, 0x0100, 0x0904, 0x35a5, 0x8906,\r
++      0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x001b,\r
++      0x2009, 0x000c, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x0804, 0x4af3,\r
++      0x9006, 0x080c, 0x2664, 0x78a8, 0x9084, 0x00ff, 0x9086, 0x00ff,\r
++      0x0118, 0x81ff, 0x1904, 0x35a5, 0x080c, 0x74e9, 0x0110, 0x080c,\r
++      0x5fee, 0x7888, 0x908a, 0x1000, 0x1a04, 0x35a8, 0x7984, 0x9186,\r
++      0x00ff, 0x0138, 0x9182, 0x007f, 0x1a04, 0x35a8, 0x2100, 0x080c,\r
++      0x262e, 0x0026, 0x00c6, 0x0126, 0x2091, 0x8000, 0x2061, 0x1a03,\r
++      0x601b, 0x0000, 0x601f, 0x0000, 0x6073, 0x0000, 0x6077, 0x0000,\r
++      0x080c, 0x74e9, 0x1158, 0x080c, 0x77ed, 0x080c, 0x6029, 0x9085,\r
++      0x0001, 0x080c, 0x7530, 0x080c, 0x741a, 0x00f0, 0x080c, 0xa896,\r
++      0x080c, 0xab5e, 0x080c, 0xa8b2, 0x2061, 0x0100, 0x2001, 0x1818,\r
++      0x2004, 0x9084, 0x00ff, 0x810f, 0x9105, 0x604a, 0x6043, 0x0090,\r
++      0x6043, 0x0010, 0x2009, 0x1999, 0x200b, 0x0000, 0x2009, 0x002d,\r
++      0x2011, 0x5f14, 0x080c, 0x8708, 0x7984, 0x080c, 0x74e9, 0x1110,\r
++      0x2009, 0x00ff, 0x7a88, 0x080c, 0x45ab, 0x012e, 0x00ce, 0x002e,\r
++      0x0804, 0x3573, 0x7984, 0x080c, 0x65c4, 0x2b08, 0x1904, 0x35a8,\r
++      0x0804, 0x3573, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x35a5,\r
++      0x60dc, 0xd0ac, 0x1130, 0xd09c, 0x1120, 0x2009, 0x0005, 0x0804,\r
++      0x35a5, 0x080c, 0x4aa7, 0x1120, 0x2009, 0x0002, 0x0804, 0x35a5,\r
++      0x7984, 0x9192, 0x0021, 0x1a04, 0x35a8, 0x7a8c, 0x7b88, 0x7c9c,\r
++      0x7d98, 0xa85c, 0x9080, 0x0019, 0x702a, 0xaf60, 0x7736, 0x080c,\r
++      0x4af0, 0x701f, 0x47ba, 0x7880, 0x9086, 0x006e, 0x0110, 0x701f,\r
++      0x5190, 0x0005, 0x2009, 0x0080, 0x080c, 0x6625, 0x1118, 0x080c,\r
++      0x6a6b, 0x0120, 0x2021, 0x400a, 0x0804, 0x3575, 0x00d6, 0x0096,\r
++      0xa964, 0xaa6c, 0xab70, 0xac74, 0xad78, 0xae7c, 0xa884, 0x90be,\r
++      0x0100, 0x0904, 0x4853, 0x90be, 0x0112, 0x0904, 0x4853, 0x90be,\r
++      0x0113, 0x0904, 0x4853, 0x90be, 0x0114, 0x0904, 0x4853, 0x90be,\r
++      0x0117, 0x0904, 0x4853, 0x90be, 0x011a, 0x0904, 0x4853, 0x90be,\r
++      0x011c, 0x0904, 0x4853, 0x90be, 0x0121, 0x0904, 0x483a, 0x90be,\r
++      0x0131, 0x0904, 0x483a, 0x90be, 0x0171, 0x0904, 0x4853, 0x90be,\r
++      0x0173, 0x0904, 0x4853, 0x90be, 0x01a1, 0x1128, 0xa894, 0x8007,\r
++      0xa896, 0x0804, 0x485e, 0x90be, 0x0212, 0x0904, 0x4847, 0x90be,\r
++      0x0213, 0x05e8, 0x90be, 0x0214, 0x0500, 0x90be, 0x0217, 0x0188,\r
++      0x90be, 0x021a, 0x1120, 0xa89c, 0x8007, 0xa89e, 0x04e0, 0x90be,\r
++      0x021f, 0x05c8, 0x90be, 0x0300, 0x05b0, 0x009e, 0x00de, 0x0804,\r
++      0x35a8, 0x7028, 0x9080, 0x0010, 0x2098, 0x20a0, 0x7034, 0x20e0,\r
++      0x20e8, 0x20a9, 0x0007, 0x080c, 0x489c, 0x7028, 0x9080, 0x000e,\r
++      0x2098, 0x20a0, 0x7034, 0x20e0, 0x20e8, 0x20a9, 0x0001, 0x080c,\r
++      0x489c, 0x00c8, 0x7028, 0x9080, 0x000c, 0x2098, 0x20a0, 0x7034,\r
++      0x20e0, 0x20e8, 0x20a9, 0x0001, 0x080c, 0x48a9, 0x00b8, 0x7028,\r
++      0x9080, 0x000e, 0x2098, 0x20a0, 0x7034, 0x20e0, 0x20e8, 0x20a9,\r
++      0x0001, 0x080c, 0x48a9, 0x7028, 0x9080, 0x000c, 0x2098, 0x20a0,\r
++      0x7034, 0x20e0, 0x20e8, 0x20a9, 0x0001, 0x04f1, 0x00c6, 0x080c,\r
++      0x4aa7, 0x0550, 0xa868, 0xc0fd, 0xa86a, 0xa867, 0x0119, 0x9006,\r
++      0xa882, 0xa87f, 0x0020, 0xa88b, 0x0001, 0x810b, 0xa9ae, 0xa8b2,\r
++      0xaab6, 0xabba, 0xacbe, 0xadc2, 0xa9c6, 0xa8ca, 0x00ce, 0x009e,\r
++      0x00de, 0xa866, 0xa822, 0xa868, 0xc0fd, 0xa86a, 0xa804, 0x2048,\r
++      0x080c, 0xc9c8, 0x1120, 0x2009, 0x0003, 0x0804, 0x35a5, 0x7007,\r
++      0x0003, 0x701f, 0x4893, 0x0005, 0x00ce, 0x009e, 0x00de, 0x2009,\r
++      0x0002, 0x0804, 0x35a5, 0xa820, 0x9086, 0x8001, 0x1904, 0x3573,\r
++      0x2009, 0x0004, 0x0804, 0x35a5, 0x0016, 0x0026, 0x3510, 0x20a9,\r
++      0x0002, 0x4002, 0x4104, 0x4004, 0x8211, 0x1dc8, 0x002e, 0x001e,\r
++      0x0005, 0x0016, 0x0026, 0x0036, 0x0046, 0x3520, 0x20a9, 0x0004,\r
++      0x4002, 0x4304, 0x4204, 0x4104, 0x4004, 0x8421, 0x1db8, 0x004e,\r
++      0x003e, 0x002e, 0x001e, 0x0005, 0x81ff, 0x0120, 0x2009, 0x0001,\r
++      0x0804, 0x35a5, 0x60dc, 0xd0ac, 0x1130, 0xd09c, 0x1120, 0x2009,\r
++      0x0005, 0x0804, 0x35a5, 0x7984, 0x78a8, 0x2040, 0x080c, 0xab57,\r
++      0x1120, 0x9182, 0x007f, 0x0a04, 0x35a8, 0x9186, 0x00ff, 0x0904,\r
++      0x35a8, 0x9182, 0x0800, 0x1a04, 0x35a8, 0x7a8c, 0x7b88, 0x607c,\r
++      0x9306, 0x1140, 0x6080, 0x924e, 0x0904, 0x35a8, 0x99cc, 0xff00,\r
++      0x0904, 0x35a8, 0x0126, 0x2091, 0x8000, 0x080c, 0x49ba, 0x0904,\r
++      0x493a, 0x0086, 0x90c6, 0x4000, 0x008e, 0x1538, 0x00c6, 0x0006,\r
++      0x0036, 0xb818, 0xbb1c, 0x9305, 0xbb20, 0x9305, 0xbb24, 0x9305,\r
++      0xbb28, 0x9305, 0xbb2c, 0x9305, 0xbb30, 0x9305, 0xbb34, 0x9305,\r
++      0x003e, 0x0570, 0xd88c, 0x1128, 0x080c, 0x6a6b, 0x0110, 0xc89d,\r
++      0x0438, 0x900e, 0x080c, 0x6914, 0x1108, 0xc185, 0xb800, 0xd0bc,\r
++      0x0108, 0xc18d, 0x000e, 0x00ce, 0x00b8, 0x90c6, 0x4007, 0x1110,\r
++      0x2408, 0x0090, 0x90c6, 0x4008, 0x1118, 0x2708, 0x2610, 0x0060,\r
++      0x90c6, 0x4009, 0x1108, 0x0040, 0x90c6, 0x4006, 0x1108, 0x0020,\r
++      0x2001, 0x4005, 0x2009, 0x000a, 0x2020, 0x012e, 0x0804, 0x3575,\r
++      0x000e, 0x00ce, 0x2b00, 0x7026, 0x0016, 0x00b6, 0x00c6, 0x00e6,\r
++      0x2c70, 0x080c, 0xac5f, 0x0904, 0x498f, 0x2b00, 0x6012, 0x080c,\r
++      0xcccc, 0x2e58, 0x00ee, 0x00e6, 0x00c6, 0x080c, 0x4aa7, 0x00ce,\r
++      0x2b70, 0x1158, 0x080c, 0xabed, 0x00ee, 0x00ce, 0x00be, 0x001e,\r
++      0x012e, 0x2009, 0x0002, 0x0804, 0x35a5, 0x900e, 0xa966, 0xa96a,\r
++      0x2900, 0x6016, 0xa932, 0xa868, 0xc0fd, 0xd88c, 0x0108, 0xc0f5,\r
++      0xa86a, 0xd89c, 0x1110, 0x080c, 0x31e7, 0x6023, 0x0001, 0x9006,\r
++      0x080c, 0x6561, 0xd89c, 0x0138, 0x2001, 0x0004, 0x080c, 0x6575,\r
++      0x2009, 0x0003, 0x0030, 0x2001, 0x0002, 0x080c, 0x6575, 0x2009,\r
++      0x0002, 0x080c, 0xac8c, 0x78a8, 0xd094, 0x0138, 0x00ee, 0x7024,\r
++      0x00e6, 0x2058, 0xb8d4, 0xc08d, 0xb8d6, 0x9085, 0x0001, 0x00ee,\r
++      0x00ce, 0x00be, 0x001e, 0x012e, 0x1120, 0x2009, 0x0003, 0x0804,\r
++      0x35a5, 0x7007, 0x0003, 0x701f, 0x499e, 0x0005, 0xa830, 0x9086,\r
++      0x0100, 0x7024, 0x2058, 0x1138, 0x2009, 0x0004, 0xba04, 0x9294,\r
++      0x00ff, 0x0804, 0x5637, 0x900e, 0xa868, 0xd0f4, 0x1904, 0x3573,\r
++      0x080c, 0x6914, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d,\r
++      0x0804, 0x3573, 0x00e6, 0x00d6, 0x0096, 0x83ff, 0x0904, 0x4a09,\r
++      0x902e, 0x080c, 0xab57, 0x0130, 0x9026, 0x20a9, 0x0800, 0x2071,\r
++      0x1000, 0x0030, 0x2021, 0x007f, 0x20a9, 0x0781, 0x2071, 0x107f,\r
++      0x2e04, 0x9005, 0x11b8, 0x2100, 0x9406, 0x1904, 0x4a1a, 0x2428,\r
++      0x94ce, 0x007f, 0x1120, 0x92ce, 0xfffd, 0x1558, 0x0030, 0x94ce,\r
++      0x0080, 0x1130, 0x92ce, 0xfffc, 0x1520, 0x93ce, 0x00ff, 0x1508,\r
++      0xc5fd, 0x0480, 0x2058, 0xbf10, 0x2700, 0x9306, 0x11e8, 0xbe14,\r
++      0x2600, 0x9206, 0x11c8, 0x2400, 0x9106, 0x1180, 0xd884, 0x0598,\r
++      0xd894, 0x1588, 0x080c, 0x6a0b, 0x1570, 0x2001, 0x4000, 0x0460,\r
++      0x080c, 0x6a6b, 0x1540, 0x2001, 0x4000, 0x0430, 0x2001, 0x4007,\r
++      0x0418, 0x2001, 0x4006, 0x0400, 0x2400, 0x9106, 0x1158, 0xbe14,\r
++      0x87ff, 0x1128, 0x86ff, 0x0918, 0x080c, 0xab57, 0x1900, 0x2001,\r
++      0x4008, 0x0090, 0x8420, 0x8e70, 0x1f04, 0x49d0, 0x85ff, 0x1130,\r
++      0x2001, 0x4009, 0x0048, 0x2001, 0x0001, 0x0030, 0x080c, 0x65c4,\r
++      0x1dd0, 0xbb12, 0xba16, 0x9006, 0x9005, 0x009e, 0x00de, 0x00ee,\r
++      0x0005, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x35a5, 0x080c,\r
++      0x4aa7, 0x1120, 0x2009, 0x0002, 0x0804, 0x35a5, 0xa867, 0x0000,\r
++      0xa868, 0xc0fd, 0xa86a, 0x7884, 0x9005, 0x0904, 0x35a8, 0x9096,\r
++      0x00ff, 0x0120, 0x9092, 0x0004, 0x1a04, 0x35a8, 0x2010, 0x2918,\r
++      0x080c, 0x3181, 0x1120, 0x2009, 0x0003, 0x0804, 0x35a5, 0x7007,\r
++      0x0003, 0x701f, 0x4a5c, 0x0005, 0xa830, 0x9086, 0x0100, 0x1904,\r
++      0x3573, 0x2009, 0x0004, 0x0804, 0x35a5, 0x7984, 0x080c, 0xab57,\r
++      0x1120, 0x9182, 0x007f, 0x0a04, 0x35a8, 0x9186, 0x00ff, 0x0904,\r
++      0x35a8, 0x9182, 0x0800, 0x1a04, 0x35a8, 0x2001, 0x9000, 0x080c,\r
++      0x5692, 0x1904, 0x35a5, 0x0804, 0x3573, 0xa998, 0x080c, 0xab57,\r
++      0x1118, 0x9182, 0x007f, 0x0280, 0x9186, 0x00ff, 0x0168, 0x9182,\r
++      0x0800, 0x1250, 0x2001, 0x9000, 0x080c, 0x5692, 0x11a8, 0x0060,\r
++      0xa897, 0x4005, 0xa99a, 0x0010, 0xa897, 0x4006, 0x900e, 0x9085,\r
++      0x0001, 0x2001, 0x0030, 0x0005, 0xa897, 0x4000, 0x900e, 0x9085,\r
++      0x0001, 0x2001, 0x0000, 0x0005, 0x2009, 0x000a, 0x0c48, 0x080c,\r
++      0x103a, 0x0198, 0x9006, 0xa802, 0x7014, 0x9005, 0x1120, 0x2900,\r
++      0x7016, 0x701a, 0x0040, 0x7018, 0xa802, 0x0086, 0x2040, 0x2900,\r
++      0xa006, 0x701a, 0x008e, 0x9085, 0x0001, 0x0005, 0x7984, 0x080c,\r
++      0x6625, 0x1130, 0x7e88, 0x9684, 0x3fff, 0x9082, 0x4000, 0x0208,\r
++      0x905e, 0x8bff, 0x0005, 0xa998, 0x080c, 0x6625, 0x1130, 0xae9c,\r
++      0x9684, 0x3fff, 0x9082, 0x4000, 0x0208, 0x905e, 0x8bff, 0x0005,\r
++      0xae98, 0x0008, 0x7e84, 0x2608, 0x080c, 0x6625, 0x1108, 0x0008,\r
++      0x905e, 0x8bff, 0x0005, 0x0016, 0x7114, 0x81ff, 0x0128, 0x2148,\r
++      0xa904, 0x080c, 0x106c, 0x0cc8, 0x7116, 0x711a, 0x001e, 0x0005,\r
++      0x2031, 0x0001, 0x0010, 0x2031, 0x0000, 0x2061, 0x18b8, 0x2c44,\r
++      0xa66a, 0xa17a, 0xa772, 0xa076, 0xa28e, 0xa392, 0xa496, 0xa59a,\r
++      0x080c, 0x1124, 0x7007, 0x0002, 0x701f, 0x3573, 0x0005, 0x00f6,\r
++      0x0126, 0x2091, 0x8000, 0x2079, 0x0000, 0x2001, 0x18b0, 0x2004,\r
++      0x9005, 0x1190, 0x0e04, 0x4b24, 0x7a36, 0x7833, 0x0012, 0x7a82,\r
++      0x7b86, 0x7c8a, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084,\r
++      0x190c, 0x11d6, 0x0804, 0x4b8a, 0x0016, 0x0086, 0x0096, 0x00c6,\r
++      0x00e6, 0x2071, 0x189e, 0x7044, 0x9005, 0x1540, 0x7148, 0x9182,\r
++      0x0010, 0x0288, 0x7038, 0x2060, 0x080c, 0x103a, 0x0904, 0x4b82,\r
++      0xa84b, 0x0000, 0x2900, 0x7046, 0x2001, 0x0002, 0x9080, 0x1e55,\r
++      0x2005, 0xa846, 0x0098, 0x7038, 0x90e0, 0x0004, 0x2001, 0x18ba,\r
++      0x9c82, 0x18fa, 0x0210, 0x2061, 0x18ba, 0x2c00, 0x703a, 0x7148,\r
++      0x81ff, 0x1108, 0x703e, 0x8108, 0x714a, 0x0460, 0x7148, 0x8108,\r
++      0x714a, 0x7044, 0x2040, 0xa144, 0x2105, 0x0016, 0x908a, 0x0036,\r
++      0x1a0c, 0x0d7d, 0x2060, 0x001e, 0x8108, 0x2105, 0x9005, 0xa146,\r
++      0x1520, 0x080c, 0x103a, 0x1130, 0x8109, 0xa946, 0x7148, 0x8109,\r
++      0x714a, 0x00d8, 0x9006, 0xa806, 0xa84a, 0xa046, 0x2800, 0xa802,\r
++      0x2900, 0xa006, 0x7046, 0x2001, 0x0002, 0x9080, 0x1e55, 0x2005,\r
++      0xa846, 0x0058, 0x2262, 0x6306, 0x640a, 0x00ee, 0x00ce, 0x009e,\r
++      0x008e, 0x001e, 0x012e, 0x00fe, 0x0005, 0x2c00, 0x9082, 0x001b,\r
++      0x0002, 0x4bac, 0x4bac, 0x4bae, 0x4bac, 0x4bac, 0x4bac, 0x4bb2,\r
++      0x4bac, 0x4bac, 0x4bac, 0x4bb6, 0x4bac, 0x4bac, 0x4bac, 0x4bba,\r
++      0x4bac, 0x4bac, 0x4bac, 0x4bbe, 0x4bac, 0x4bac, 0x4bac, 0x4bc2,\r
++      0x4bac, 0x4bac, 0x4bac, 0x4bc7, 0x080c, 0x0d7d, 0xa276, 0xa37a,\r
++      0xa47e, 0x0898, 0xa286, 0xa38a, 0xa48e, 0x0878, 0xa296, 0xa39a,\r
++      0xa49e, 0x0858, 0xa2a6, 0xa3aa, 0xa4ae, 0x0838, 0xa2b6, 0xa3ba,\r
++      0xa4be, 0x0818, 0xa2c6, 0xa3ca, 0xa4ce, 0x0804, 0x4b85, 0xa2d6,\r
++      0xa3da, 0xa4de, 0x0804, 0x4b85, 0x00e6, 0x2071, 0x189e, 0x7048,\r
++      0x9005, 0x0904, 0x4c5e, 0x0126, 0x2091, 0x8000, 0x0e04, 0x4c5d,\r
++      0x00f6, 0x2079, 0x0000, 0x00c6, 0x0096, 0x0086, 0x0076, 0x9006,\r
++      0x2038, 0x7040, 0x2048, 0x9005, 0x0500, 0xa948, 0x2105, 0x0016,\r
++      0x908a, 0x0036, 0x1a0c, 0x0d7d, 0x2060, 0x001e, 0x8108, 0x2105,\r
++      0x9005, 0xa94a, 0x1904, 0x4c60, 0xa804, 0x9005, 0x090c, 0x0d7d,\r
++      0x7042, 0x2938, 0x2040, 0xa003, 0x0000, 0x2001, 0x0002, 0x9080,\r
++      0x1e55, 0x2005, 0xa04a, 0x0804, 0x4c60, 0x703c, 0x2060, 0x2c14,\r
++      0x6304, 0x6408, 0x650c, 0x2200, 0x7836, 0x7833, 0x0012, 0x7882,\r
++      0x2300, 0x7886, 0x2400, 0x788a, 0x2091, 0x4080, 0x2001, 0x0089,\r
++      0x2004, 0xd084, 0x190c, 0x11d6, 0x87ff, 0x0118, 0x2748, 0x080c,\r
++      0x106c, 0x7048, 0x8001, 0x704a, 0x9005, 0x1170, 0x7040, 0x2048,\r
++      0x9005, 0x0128, 0x080c, 0x106c, 0x9006, 0x7042, 0x7046, 0x703b,\r
++      0x18ba, 0x703f, 0x18ba, 0x0420, 0x7040, 0x9005, 0x1508, 0x7238,\r
++      0x2c00, 0x9206, 0x0148, 0x9c80, 0x0004, 0x90fa, 0x18fa, 0x0210,\r
++      0x2001, 0x18ba, 0x703e, 0x00a0, 0x9006, 0x703e, 0x703a, 0x7044,\r
++      0x9005, 0x090c, 0x0d7d, 0x2048, 0xa800, 0x9005, 0x1de0, 0x2900,\r
++      0x7042, 0x2001, 0x0002, 0x9080, 0x1e55, 0x2005, 0xa84a, 0x0000,\r
++      0x007e, 0x008e, 0x009e, 0x00ce, 0x00fe, 0x012e, 0x00ee, 0x0005,\r
++      0x2c00, 0x9082, 0x001b, 0x0002, 0x4c7f, 0x4c7f, 0x4c81, 0x4c7f,\r
++      0x4c7f, 0x4c7f, 0x4c86, 0x4c7f, 0x4c7f, 0x4c7f, 0x4c8b, 0x4c7f,\r
++      0x4c7f, 0x4c7f, 0x4c90, 0x4c7f, 0x4c7f, 0x4c7f, 0x4c95, 0x4c7f,\r
++      0x4c7f, 0x4c7f, 0x4c9a, 0x4c7f, 0x4c7f, 0x4c7f, 0x4c9f, 0x080c,\r
++      0x0d7d, 0xaa74, 0xab78, 0xac7c, 0x0804, 0x4c0b, 0xaa84, 0xab88,\r
++      0xac8c, 0x0804, 0x4c0b, 0xaa94, 0xab98, 0xac9c, 0x0804, 0x4c0b,\r
++      0xaaa4, 0xaba8, 0xacac, 0x0804, 0x4c0b, 0xaab4, 0xabb8, 0xacbc,\r
++      0x0804, 0x4c0b, 0xaac4, 0xabc8, 0xaccc, 0x0804, 0x4c0b, 0xaad4,\r
++      0xabd8, 0xacdc, 0x0804, 0x4c0b, 0x0016, 0x0026, 0x0036, 0x00b6,\r
++      0x00c6, 0x2009, 0x007e, 0x080c, 0x6625, 0x2019, 0x0001, 0xb85c,\r
++      0xd0ac, 0x0110, 0x2019, 0x0000, 0x2011, 0x801b, 0x080c, 0x4b07,\r
++      0x00ce, 0x00be, 0x003e, 0x002e, 0x001e, 0x0005, 0x0026, 0x080c,\r
++      0x56da, 0xd0c4, 0x0120, 0x2011, 0x8014, 0x080c, 0x4b07, 0x002e,\r
++      0x0005, 0x81ff, 0x1904, 0x35a5, 0x0126, 0x2091, 0x8000, 0x6030,\r
++      0xc08d, 0xc085, 0xc0ac, 0x6032, 0x080c, 0x74e9, 0x1158, 0x080c,\r
++      0x77ed, 0x080c, 0x6029, 0x9085, 0x0001, 0x080c, 0x7530, 0x080c,\r
++      0x741a, 0x0010, 0x080c, 0x5ee4, 0x012e, 0x0804, 0x3573, 0x81ff,\r
++      0x0120, 0x2009, 0x0001, 0x0804, 0x35a5, 0x080c, 0x56ee, 0x0120,\r
++      0x2009, 0x0007, 0x0804, 0x35a5, 0x080c, 0x6a63, 0x0120, 0x2009,\r
++      0x0008, 0x0804, 0x35a5, 0x080c, 0x3363, 0x0128, 0x7984, 0x080c,\r
++      0x65c4, 0x1904, 0x35a8, 0x080c, 0x4ada, 0x0904, 0x35a8, 0x2b00,\r
++      0x7026, 0x080c, 0x6a6b, 0x7888, 0x1170, 0x9084, 0x0005, 0x1158,\r
++      0x900e, 0x080c, 0x6914, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108,\r
++      0xc18d, 0x0804, 0x3573, 0x080c, 0x4aa7, 0x0904, 0x35a5, 0x9006,\r
++      0xa866, 0xa832, 0xa868, 0xc0fd, 0xa86a, 0x080c, 0xca6a, 0x0904,\r
++      0x35a5, 0x7888, 0xd094, 0x0118, 0xb8d4, 0xc08d, 0xb8d6, 0x7007,\r
++      0x0003, 0x701f, 0x4d80, 0x0005, 0x2061, 0x1800, 0x080c, 0x56ee,\r
++      0x2009, 0x0007, 0x1578, 0x080c, 0x6a63, 0x0118, 0x2009, 0x0008,\r
++      0x0448, 0x080c, 0x3363, 0x0120, 0xa998, 0x080c, 0x65c4, 0x1530,\r
++      0x080c, 0x4ad8, 0x0518, 0x080c, 0x6a6b, 0xa89c, 0x1168, 0x9084,\r
++      0x0005, 0x1150, 0x900e, 0x080c, 0x6914, 0x1108, 0xc185, 0xb800,\r
++      0xd0bc, 0x0108, 0xc18d, 0x00d0, 0xa868, 0xc0fc, 0xa86a, 0x080c,\r
++      0xca6a, 0x11e0, 0xa89c, 0xd094, 0x0118, 0xb8d4, 0xc08d, 0xb8d6,\r
++      0x2009, 0x0003, 0xa897, 0x4005, 0xa99a, 0x0010, 0xa897, 0x4006,\r
++      0x900e, 0x9085, 0x0001, 0x2001, 0x0030, 0x0005, 0xa897, 0x4000,\r
++      0xa99a, 0x9006, 0x918d, 0x0001, 0x2008, 0x0005, 0x9006, 0x0005,\r
++      0xa830, 0x9086, 0x0100, 0x7024, 0x2058, 0x1110, 0x0804, 0x5637,\r
++      0x900e, 0x080c, 0x6914, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108,\r
++      0xc18d, 0x0804, 0x3573, 0x080c, 0x56ee, 0x0120, 0x2009, 0x0007,\r
++      0x0804, 0x35a5, 0x7f84, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x080c,\r
++      0x4aa7, 0x1120, 0x2009, 0x0002, 0x0804, 0x35a5, 0x900e, 0x2130,\r
++      0x7126, 0x7132, 0xa860, 0x20e8, 0x7036, 0xa85c, 0x9080, 0x0005,\r
++      0x702a, 0x20a0, 0x080c, 0x6625, 0x1904, 0x4e22, 0x080c, 0x6a6b,\r
++      0x0138, 0x080c, 0x6a73, 0x0120, 0x080c, 0x6a0b, 0x1904, 0x4e22,\r
++      0xd794, 0x1110, 0xd784, 0x01a8, 0xb8c4, 0x20e0, 0xb8c8, 0x9080,\r
++      0x0006, 0x2098, 0x3400, 0xd794, 0x0160, 0x20a9, 0x0008, 0x4003,\r
++      0x2098, 0x20a0, 0x3d00, 0x20e0, 0x20a9, 0x0002, 0x080c, 0x48a9,\r
++      0x0048, 0x20a9, 0x0004, 0x4003, 0x2098, 0x20a0, 0x3d00, 0x20e0,\r
++      0x080c, 0x48a9, 0x9186, 0x007e, 0x0170, 0x9186, 0x0080, 0x0158,\r
++      0x080c, 0x6a6b, 0x90c2, 0x0006, 0x1210, 0xc1fd, 0x0020, 0x080c,\r
++      0x6914, 0x1108, 0xc1fd, 0x4104, 0xc1fc, 0xd794, 0x0528, 0xb8c4,\r
++      0x20e0, 0xb8c8, 0x2060, 0x9c80, 0x0000, 0x2098, 0x20a9, 0x0002,\r
++      0x4003, 0x9c80, 0x0003, 0x2098, 0x20a9, 0x0001, 0x4005, 0x9c80,\r
++      0x0004, 0x2098, 0x3400, 0x20a9, 0x0002, 0x4003, 0x2098, 0x20a0,\r
++      0x3d00, 0x20e0, 0x080c, 0x489c, 0x9c80, 0x0026, 0x2098, 0xb8c4,\r
++      0x20e0, 0x20a9, 0x0002, 0x4003, 0xd794, 0x0110, 0x96b0, 0x000b,\r
++      0x96b0, 0x0005, 0x8108, 0x080c, 0xab57, 0x0118, 0x9186, 0x0800,\r
++      0x0040, 0xd78c, 0x0120, 0x9186, 0x0800, 0x0170, 0x0018, 0x9186,\r
++      0x007e, 0x0150, 0xd794, 0x0118, 0x9686, 0x0020, 0x0010, 0x9686,\r
++      0x0028, 0x0150, 0x0804, 0x4db2, 0x86ff, 0x1120, 0x7124, 0x810b,\r
++      0x0804, 0x3573, 0x7033, 0x0001, 0x7122, 0x7024, 0x9600, 0x7026,\r
++      0x772e, 0x2061, 0x18b8, 0x2c44, 0xa06b, 0x0000, 0xa67a, 0x7034,\r
++      0xa072, 0x7028, 0xa076, 0xa28e, 0xa392, 0xa496, 0xa59a, 0x080c,\r
++      0x1124, 0x7007, 0x0002, 0x701f, 0x4e5e, 0x0005, 0x7030, 0x9005,\r
++      0x1180, 0x7120, 0x7028, 0x20a0, 0x772c, 0x9036, 0x7034, 0x20e8,\r
++      0x2061, 0x18b8, 0x2c44, 0xa28c, 0xa390, 0xa494, 0xa598, 0x0804,\r
++      0x4db2, 0x7124, 0x810b, 0x0804, 0x3573, 0x2029, 0x007e, 0x7984,\r
++      0x7a88, 0x7b8c, 0x7c98, 0x9184, 0xff00, 0x8007, 0x90e2, 0x0020,\r
++      0x0a04, 0x35a8, 0x9502, 0x0a04, 0x35a8, 0x9184, 0x00ff, 0x90e2,\r
++      0x0020, 0x0a04, 0x35a8, 0x9502, 0x0a04, 0x35a8, 0x9284, 0xff00,\r
++      0x8007, 0x90e2, 0x0020, 0x0a04, 0x35a8, 0x9502, 0x0a04, 0x35a8,\r
++      0x9284, 0x00ff, 0x90e2, 0x0020, 0x0a04, 0x35a8, 0x9502, 0x0a04,\r
++      0x35a8, 0x9384, 0xff00, 0x8007, 0x90e2, 0x0020, 0x0a04, 0x35a8,\r
++      0x9502, 0x0a04, 0x35a8, 0x9384, 0x00ff, 0x90e2, 0x0020, 0x0a04,\r
++      0x35a8, 0x9502, 0x0a04, 0x35a8, 0x9484, 0xff00, 0x8007, 0x90e2,\r
++      0x0020, 0x0a04, 0x35a8, 0x9502, 0x0a04, 0x35a8, 0x9484, 0x00ff,\r
++      0x90e2, 0x0020, 0x0a04, 0x35a8, 0x9502, 0x0a04, 0x35a8, 0x2061,\r
++      0x1989, 0x6102, 0x6206, 0x630a, 0x640e, 0x0804, 0x3573, 0x080c,\r
++      0x4aa7, 0x0904, 0x35a5, 0x2009, 0x0016, 0x7a8c, 0x7b88, 0x7c9c,\r
++      0x7d98, 0xa85c, 0x9080, 0x0019, 0xaf60, 0x080c, 0x4af0, 0x701f,\r
++      0x4ee2, 0x0005, 0x2001, 0x0138, 0x2003, 0x0000, 0x00e6, 0x2071,\r
++      0x0300, 0x701c, 0xd0a4, 0x1de8, 0x00ee, 0x20a9, 0x0016, 0x896e,\r
++      0x8d6e, 0x8d6f, 0x9d84, 0xffc0, 0x9080, 0x0019, 0x2098, 0x9d84,\r
++      0x003f, 0x20e0, 0x2069, 0x1877, 0x20e9, 0x0001, 0x2da0, 0x4003,\r
++      0x6800, 0x9005, 0x0904, 0x4f63, 0x6804, 0x2008, 0x918c, 0xfff8,\r
++      0x1904, 0x4f63, 0x680c, 0x9005, 0x0904, 0x4f63, 0x9082, 0xff01,\r
++      0x1a04, 0x4f63, 0x6810, 0x9082, 0x005c, 0x0a04, 0x4f63, 0x6824,\r
++      0x2008, 0x9082, 0x0008, 0x0a04, 0x4f63, 0x9182, 0x0400, 0x1a04,\r
++      0x4f63, 0x0056, 0x2029, 0x0000, 0x080c, 0x8d0a, 0x005e, 0x6944,\r
++      0x6820, 0x9102, 0x06c0, 0x6820, 0x9082, 0x0019, 0x16a0, 0x6828,\r
++      0x6944, 0x810c, 0x9102, 0x0678, 0x6840, 0x9082, 0x000f, 0x1658,\r
++      0x080c, 0x1053, 0x2900, 0x0904, 0x4f7d, 0x684e, 0x00e6, 0x2071,\r
++      0x1930, 0x00b6, 0x2059, 0x0000, 0x080c, 0x8bc6, 0x00be, 0x00ee,\r
++      0x0558, 0x080c, 0x8920, 0x080c, 0x8966, 0x11e0, 0x6857, 0x0000,\r
++      0x00c6, 0x2061, 0x0100, 0x6104, 0x918d, 0x2000, 0x6106, 0x6b10,\r
++      0x2061, 0x1a6b, 0x630a, 0x00ce, 0x080c, 0x2713, 0x2001, 0x0138,\r
++      0x2102, 0x0804, 0x3573, 0x080c, 0x2713, 0x2001, 0x0138, 0x2102,\r
++      0x0804, 0x35a8, 0x00e6, 0x2071, 0x1930, 0x080c, 0x8d9b, 0x080c,\r
++      0x8daa, 0x080c, 0x8bb5, 0x00ee, 0x2001, 0x188a, 0x204c, 0x080c,\r
++      0x106c, 0x2001, 0x188a, 0x2003, 0x0000, 0x080c, 0x2713, 0x2001,\r
++      0x0138, 0x2102, 0x0804, 0x35a5, 0x2001, 0x1924, 0x200c, 0x918e,\r
++      0x0000, 0x0904, 0x4fdc, 0x080c, 0x8bb0, 0x0904, 0x4fdc, 0x2001,\r
++      0x0101, 0x200c, 0x918c, 0xdfff, 0x2102, 0x2001, 0x0138, 0x2003,\r
++      0x0000, 0x00e6, 0x2071, 0x0300, 0x701c, 0xd0a4, 0x1de8, 0x00ee,\r
++      0x080c, 0x8bb5, 0x2001, 0x0035, 0x080c, 0x1679, 0x00c6, 0x2061,\r
++      0x193c, 0x6004, 0x6100, 0x9106, 0x1de0, 0x00ce, 0x080c, 0x2713,\r
++      0x2001, 0x0138, 0x2102, 0x00e6, 0x00f6, 0x2071, 0x1923, 0x080c,\r
++      0x8af1, 0x0120, 0x2f00, 0x080c, 0x8b7b, 0x0cc8, 0x00fe, 0x00ee,\r
++      0x0126, 0x2091, 0x8000, 0x2001, 0x188a, 0x200c, 0x81ff, 0x0138,\r
++      0x2148, 0x080c, 0x106c, 0x2001, 0x188a, 0x2003, 0x0000, 0x2001,\r
++      0x183d, 0x2003, 0x0020, 0x00e6, 0x2071, 0x1930, 0x080c, 0x8d9b,\r
++      0x080c, 0x8daa, 0x00ee, 0x012e, 0x0804, 0x3573, 0x0006, 0x080c,\r
++      0x56da, 0xd0cc, 0x000e, 0x0005, 0x0006, 0x080c, 0x56de, 0xd0bc,\r
++      0x000e, 0x0005, 0x6174, 0x7a84, 0x6300, 0x82ff, 0x1118, 0x7986,\r
++      0x0804, 0x3573, 0x83ff, 0x1904, 0x35a8, 0x2001, 0xfff0, 0x9200,\r
++      0x1a04, 0x35a8, 0x2019, 0xffff, 0x6078, 0x9302, 0x9200, 0x0a04,\r
++      0x35a8, 0x7986, 0x6276, 0x0804, 0x3573, 0x080c, 0x56ee, 0x1904,\r
++      0x35a5, 0x7c88, 0x7d84, 0x7e98, 0x7f8c, 0x080c, 0x4aa7, 0x0904,\r
++      0x35a5, 0x900e, 0x901e, 0x7326, 0x7332, 0xa860, 0x20e8, 0x7036,\r
++      0xa85c, 0x9080, 0x0003, 0x702a, 0x20a0, 0x91d8, 0x1000, 0x2b5c,\r
++      0x8bff, 0x0178, 0x080c, 0x6a6b, 0x0118, 0x080c, 0x6a73, 0x1148,\r
++      0x20a9, 0x0001, 0xb814, 0x4004, 0xb810, 0x4004, 0x4104, 0x9398,\r
++      0x0003, 0x8108, 0x9182, 0x0800, 0x0120, 0x9386, 0x003c, 0x0170,\r
++      0x0c20, 0x83ff, 0x1148, 0x7224, 0x900e, 0x2001, 0x0003, 0x080c,\r
++      0x9166, 0x2208, 0x0804, 0x3573, 0x7033, 0x0001, 0x7122, 0x7024,\r
++      0x9300, 0x7026, 0x2061, 0x18b8, 0x2c44, 0xa06b, 0x0000, 0xa37a,\r
++      0x7028, 0xa076, 0x7034, 0xa072, 0xa48e, 0xa592, 0xa696, 0xa79a,\r
++      0x080c, 0x1124, 0x7007, 0x0002, 0x701f, 0x505f, 0x0005, 0x7030,\r
++      0x9005, 0x1178, 0x7120, 0x7028, 0x20a0, 0x901e, 0x7034, 0x20e8,\r
++      0x2061, 0x18b8, 0x2c44, 0xa48c, 0xa590, 0xa694, 0xa798, 0x0804,\r
++      0x501d, 0x7224, 0x900e, 0x2001, 0x0003, 0x080c, 0x9166, 0x2208,\r
++      0x0804, 0x3573, 0x00f6, 0x00e6, 0x080c, 0x56ee, 0x2009, 0x0007,\r
++      0x1904, 0x50f2, 0x2071, 0x189e, 0x745c, 0x84ff, 0x2009, 0x000e,\r
++      0x1904, 0x50f2, 0xac9c, 0xad98, 0xaea4, 0xafa0, 0x0096, 0x080c,\r
++      0x1053, 0x2009, 0x0002, 0x0904, 0x50f2, 0x2900, 0x705e, 0x900e,\r
++      0x901e, 0x7356, 0x7362, 0xa860, 0x7066, 0xa85c, 0x9080, 0x0003,\r
++      0x705a, 0x20a0, 0x91d8, 0x1000, 0x2b5c, 0x8bff, 0x0178, 0x080c,\r
++      0x6a6b, 0x0118, 0x080c, 0x6a73, 0x1148, 0xb814, 0x20a9, 0x0001,\r
++      0x4004, 0xb810, 0x4004, 0x4104, 0x9398, 0x0003, 0x8108, 0x9182,\r
++      0x0800, 0x0120, 0x9386, 0x003c, 0x01e8, 0x0c20, 0x83ff, 0x11c0,\r
++      0x7254, 0x900e, 0x2001, 0x0003, 0x080c, 0x9166, 0x2208, 0x009e,\r
++      0xa897, 0x4000, 0xa99a, 0x715c, 0x81ff, 0x090c, 0x0d7d, 0x2148,\r
++      0x080c, 0x106c, 0x9006, 0x705e, 0x918d, 0x0001, 0x2008, 0x0418,\r
++      0x7063, 0x0001, 0x7152, 0x7054, 0x9300, 0x7056, 0x2061, 0x18b9,\r
++      0x2c44, 0xa37a, 0x7058, 0xa076, 0x7064, 0xa072, 0xa48e, 0xa592,\r
++      0xa696, 0xa79a, 0xa09f, 0x50fe, 0x000e, 0xa0a2, 0x080c, 0x1124,\r
++      0x9006, 0x0048, 0x009e, 0xa897, 0x4005, 0xa99a, 0x900e, 0x9085,\r
++      0x0001, 0x2001, 0x0030, 0x00ee, 0x00fe, 0x0005, 0x00f6, 0xa0a0,\r
++      0x904d, 0x090c, 0x0d7d, 0x00e6, 0x2071, 0x189e, 0xa06c, 0x908e,\r
++      0x0100, 0x0138, 0xa87b, 0x0030, 0xa883, 0x0000, 0xa897, 0x4002,\r
++      0x00d8, 0x7060, 0x9005, 0x1158, 0x7150, 0x7058, 0x20a0, 0x901e,\r
++      0x7064, 0x20e8, 0xa48c, 0xa590, 0xa694, 0xa798, 0x0428, 0xa87b,\r
++      0x0000, 0xa883, 0x0000, 0xa897, 0x4000, 0x7254, 0x900e, 0x2001,\r
++      0x0003, 0x080c, 0x9166, 0xaa9a, 0x715c, 0x81ff, 0x090c, 0x0d7d,\r
++      0x2148, 0x080c, 0x106c, 0x705f, 0x0000, 0xa0a0, 0x2048, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0x6d80, 0x012e, 0xa09f, 0x0000, 0xa0a3,\r
++      0x0000, 0x00ee, 0x00fe, 0x0005, 0x91d8, 0x1000, 0x2b5c, 0x8bff,\r
++      0x0178, 0x080c, 0x6a6b, 0x0118, 0x080c, 0x6a73, 0x1148, 0xb814,\r
++      0x20a9, 0x0001, 0x4004, 0xb810, 0x4004, 0x4104, 0x9398, 0x0003,\r
++      0x8108, 0x9182, 0x0800, 0x0120, 0x9386, 0x003c, 0x0518, 0x0c20,\r
++      0x83ff, 0x11f0, 0x7154, 0x810c, 0xa99a, 0xa897, 0x4000, 0x715c,\r
++      0x81ff, 0x090c, 0x0d7d, 0x2148, 0x080c, 0x106c, 0x9006, 0x705e,\r
++      0x918d, 0x0001, 0x2008, 0xa0a0, 0x2048, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x6d80, 0x012e, 0xa09f, 0x0000, 0xa0a3, 0x0000, 0x0070,\r
++      0x7063, 0x0001, 0x7152, 0x7054, 0x9300, 0x7056, 0xa37a, 0xa48e,\r
++      0xa592, 0xa696, 0xa79a, 0x080c, 0x1124, 0x9006, 0x00ee, 0x0005,\r
++      0x0096, 0xa88c, 0x90be, 0x7000, 0x0148, 0x90be, 0x7100, 0x0130,\r
++      0x90be, 0x7200, 0x0118, 0x009e, 0x0804, 0x35a8, 0xa884, 0xa988,\r
++      0x080c, 0x25fb, 0x1518, 0x080c, 0x65c4, 0x1500, 0x7126, 0xbe12,\r
++      0xbd16, 0xae7c, 0x080c, 0x4aa7, 0x01c8, 0x080c, 0x4aa7, 0x01b0,\r
++      0x009e, 0xa867, 0x0000, 0xa868, 0xc0fd, 0xa86a, 0xa823, 0x0000,\r
++      0xa804, 0x2048, 0x080c, 0xc9e8, 0x1120, 0x2009, 0x0003, 0x0804,\r
++      0x35a5, 0x7007, 0x0003, 0x701f, 0x51cb, 0x0005, 0x009e, 0x2009,\r
++      0x0002, 0x0804, 0x35a5, 0x7124, 0x080c, 0x32fc, 0xa820, 0x9086,\r
++      0x8001, 0x1120, 0x2009, 0x0004, 0x0804, 0x35a5, 0x2900, 0x7022,\r
++      0xa804, 0x0096, 0x2048, 0x8906, 0x8006, 0x8007, 0x90bc, 0x003f,\r
++      0x9084, 0xffc0, 0x009e, 0x9080, 0x0002, 0x0076, 0x0006, 0x2098,\r
++      0x20a0, 0x27e0, 0x27e8, 0x20a9, 0x002a, 0x080c, 0x0fb7, 0xaa6c,\r
++      0xab70, 0xac74, 0xad78, 0x2061, 0x18b8, 0x2c44, 0xa06b, 0x0000,\r
++      0xae64, 0xaf8c, 0x97c6, 0x7000, 0x0118, 0x97c6, 0x7100, 0x1148,\r
++      0x96c2, 0x0004, 0x0600, 0x2009, 0x0004, 0x000e, 0x007e, 0x0804,\r
++      0x4af3, 0x97c6, 0x7200, 0x11b8, 0x96c2, 0x0054, 0x02a0, 0x000e,\r
++      0x007e, 0x2061, 0x18b8, 0x2c44, 0xa076, 0xa772, 0xa07b, 0x002a,\r
++      0xa28e, 0xa392, 0xa496, 0xa59a, 0x080c, 0x1124, 0x7007, 0x0002,\r
++      0x701f, 0x5227, 0x0005, 0x000e, 0x007e, 0x0804, 0x35a8, 0x7020,\r
++      0x2048, 0xa804, 0x2048, 0xa804, 0x2048, 0x8906, 0x8006, 0x8007,\r
++      0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x0002, 0x2098, 0x20a0,\r
++      0x27e0, 0x27e8, 0x20a9, 0x002a, 0x080c, 0x0fb7, 0x2100, 0x2238,\r
++      0x2061, 0x18b8, 0x2c44, 0xa28c, 0xa390, 0xa494, 0xa598, 0x2009,\r
++      0x002a, 0x0804, 0x4af3, 0x81ff, 0x1904, 0x35a5, 0x798c, 0x2001,\r
++      0x197e, 0x918c, 0x8000, 0x2102, 0x080c, 0x4abe, 0x0904, 0x35a8,\r
++      0x080c, 0x6a6b, 0x0120, 0x080c, 0x6a73, 0x1904, 0x35a8, 0x080c,\r
++      0x66ec, 0x0904, 0x35a5, 0x0126, 0x2091, 0x8000, 0x080c, 0x6881,\r
++      0x012e, 0x0904, 0x35a5, 0x2001, 0x197e, 0x2004, 0xd0fc, 0x1904,\r
++      0x3573, 0x0804, 0x4548, 0xa9a0, 0x2001, 0x197e, 0x918c, 0x8000,\r
++      0xc18d, 0x2102, 0x080c, 0x4acb, 0x01a0, 0x080c, 0x6a6b, 0x0118,\r
++      0x080c, 0x6a73, 0x1170, 0x080c, 0x66ec, 0x2009, 0x0002, 0x0128,\r
++      0x080c, 0x6881, 0x1170, 0x2009, 0x0003, 0xa897, 0x4005, 0xa99a,\r
++      0x0010, 0xa897, 0x4006, 0x900e, 0x9085, 0x0001, 0x2001, 0x0030,\r
++      0x0005, 0xa897, 0x4000, 0x2001, 0x197e, 0x2004, 0xd0fc, 0x1128,\r
++      0x080c, 0x56e2, 0x0110, 0x9006, 0x0018, 0x900e, 0x9085, 0x0001,\r
++      0x2001, 0x0000, 0x0005, 0x78a8, 0xd08c, 0x1118, 0xd084, 0x0904,\r
++      0x44bd, 0x080c, 0x4ada, 0x0904, 0x35a8, 0x080c, 0x4aa7, 0x1120,\r
++      0x2009, 0x0002, 0x0804, 0x35a5, 0x080c, 0x6a6b, 0x0130, 0x908e,\r
++      0x0004, 0x0118, 0x908e, 0x0005, 0x15a0, 0x78a8, 0xd08c, 0x0120,\r
++      0xb800, 0xc08c, 0xb802, 0x0028, 0x080c, 0x56da, 0xd0b4, 0x0904,\r
++      0x44f7, 0x7884, 0x908e, 0x007e, 0x0904, 0x44f7, 0x908e, 0x007f,\r
++      0x0904, 0x44f7, 0x908e, 0x0080, 0x0904, 0x44f7, 0xb800, 0xd08c,\r
++      0x1904, 0x44f7, 0xa867, 0x0000, 0xa868, 0xc0fd, 0xa86a, 0x080c,\r
++      0xca07, 0x1120, 0x2009, 0x0003, 0x0804, 0x35a5, 0x7007, 0x0003,\r
++      0x701f, 0x52f3, 0x0005, 0x080c, 0x4ada, 0x0904, 0x35a8, 0x0804,\r
++      0x44f7, 0x080c, 0x3363, 0x0108, 0x0005, 0x2009, 0x1834, 0x210c,\r
++      0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x35a5, 0x080c, 0x56ee,\r
++      0x0120, 0x2009, 0x0007, 0x0804, 0x35a5, 0x080c, 0x6a63, 0x0120,\r
++      0x2009, 0x0008, 0x0804, 0x35a5, 0xb89c, 0xd0a4, 0x1118, 0xd0ac,\r
++      0x1904, 0x44f7, 0x9006, 0xa866, 0xa832, 0xa868, 0xc0fd, 0xa86a,\r
++      0x080c, 0xca6a, 0x1120, 0x2009, 0x0003, 0x0804, 0x35a5, 0x7007,\r
++      0x0003, 0x701f, 0x532c, 0x0005, 0xa830, 0x9086, 0x0100, 0x1120,\r
++      0x2009, 0x0004, 0x0804, 0x5637, 0x080c, 0x4ada, 0x0904, 0x35a8,\r
++      0x0804, 0x52c5, 0x81ff, 0x2009, 0x0001, 0x1904, 0x35a5, 0x080c,\r
++      0x56ee, 0x2009, 0x0007, 0x1904, 0x35a5, 0x080c, 0x6a63, 0x0120,\r
++      0x2009, 0x0008, 0x0804, 0x35a5, 0x080c, 0x4ada, 0x0904, 0x35a8,\r
++      0x080c, 0x6a6b, 0x2009, 0x0009, 0x1904, 0x35a5, 0x080c, 0x4aa7,\r
++      0x2009, 0x0002, 0x0904, 0x35a5, 0x9006, 0xa866, 0xa832, 0xa868,\r
++      0xc0fd, 0xa86a, 0x7988, 0x9194, 0xff00, 0x918c, 0x00ff, 0x9006,\r
++      0x82ff, 0x1128, 0xc0ed, 0xa952, 0x798c, 0xa956, 0x0038, 0x928e,\r
++      0x0100, 0x1904, 0x35a8, 0xc0e5, 0xa952, 0xa956, 0xa83e, 0x080c,\r
++      0xcccd, 0x2009, 0x0003, 0x0904, 0x35a5, 0x7007, 0x0003, 0x701f,\r
++      0x5382, 0x0005, 0xa830, 0x9086, 0x0100, 0x2009, 0x0004, 0x0904,\r
++      0x35a5, 0x0804, 0x3573, 0x7aa8, 0x9284, 0xc000, 0x0148, 0xd2ec,\r
++      0x01a0, 0x080c, 0x56ee, 0x1188, 0x2009, 0x0014, 0x0804, 0x35a5,\r
++      0xd2dc, 0x1568, 0x81ff, 0x2009, 0x0001, 0x1904, 0x35a5, 0x080c,\r
++      0x56ee, 0x2009, 0x0007, 0x1904, 0x35a5, 0xd2f4, 0x0130, 0x9284,\r
++      0x5000, 0x080c, 0x56b5, 0x0804, 0x3573, 0xd2fc, 0x0158, 0x080c,\r
++      0x4ada, 0x0904, 0x35a8, 0x7984, 0x9284, 0x9000, 0x080c, 0x5692,\r
++      0x0804, 0x3573, 0x080c, 0x4ada, 0x0904, 0x35a8, 0xb804, 0x9084,\r
++      0x00ff, 0x9086, 0x0006, 0x2009, 0x0009, 0x1904, 0x546b, 0x080c,\r
++      0x4aa7, 0x2009, 0x0002, 0x0904, 0x546b, 0xa85c, 0x9080, 0x001b,\r
++      0xaf60, 0x2009, 0x0008, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x080c,\r
++      0x4af0, 0x701f, 0x53dc, 0x0005, 0xa86c, 0x9086, 0x0500, 0x1138,\r
++      0xa870, 0x9005, 0x1120, 0xa874, 0x9084, 0xff00, 0x0110, 0x1904,\r
++      0x35a8, 0xa866, 0xa832, 0xa868, 0xc0fd, 0xa86a, 0x080c, 0x4ada,\r
++      0x1110, 0x0804, 0x35a8, 0x2009, 0x0043, 0x080c, 0xcd35, 0x2009,\r
++      0x0003, 0x0904, 0x546b, 0x7007, 0x0003, 0x701f, 0x5400, 0x0005,\r
++      0xa830, 0x9086, 0x0100, 0x2009, 0x0004, 0x0904, 0x546b, 0x7984,\r
++      0x7aa8, 0x9284, 0x1000, 0x080c, 0x5692, 0x0804, 0x3573, 0x00c6,\r
++      0xaab0, 0x9284, 0xc000, 0x0140, 0xd2ec, 0x0168, 0x080c, 0x56ee,\r
++      0x1150, 0x2009, 0x0014, 0x04f0, 0x2061, 0x1800, 0x080c, 0x56ee,\r
++      0x2009, 0x0007, 0x15b8, 0xd2f4, 0x0128, 0x9284, 0x5000, 0x080c,\r
++      0x56b5, 0x0050, 0xd2fc, 0x0178, 0x080c, 0x4ad8, 0x0588, 0xa998,\r
++      0x9284, 0x9000, 0x080c, 0x5692, 0xa87b, 0x0000, 0xa883, 0x0000,\r
++      0xa897, 0x4000, 0x0438, 0x080c, 0x4ad8, 0x0510, 0x080c, 0x6a6b,\r
++      0x2009, 0x0009, 0x11b8, 0xa8c4, 0x9086, 0x0500, 0x11c8, 0xa8c8,\r
++      0x9005, 0x11b0, 0xa8cc, 0x9084, 0xff00, 0x1190, 0x080c, 0x4ad8,\r
++      0x1108, 0x0070, 0x2009, 0x004b, 0x080c, 0xcd35, 0x2009, 0x0003,\r
++      0x0108, 0x0078, 0x0429, 0x19c0, 0xa897, 0x4005, 0xa99a, 0x0010,\r
++      0xa897, 0x4006, 0x900e, 0x9085, 0x0001, 0x2001, 0x0030, 0x00ce,\r
++      0x0005, 0x9006, 0x0ce0, 0x7aa8, 0xd2dc, 0x0904, 0x35a5, 0x0016,\r
++      0x7984, 0x9284, 0x1000, 0xc0fd, 0x080c, 0x5692, 0x001e, 0x1904,\r
++      0x35a5, 0x0804, 0x3573, 0x00f6, 0x2d78, 0x0011, 0x00fe, 0x0005,\r
++      0xaab0, 0xd2dc, 0x0150, 0x0016, 0xa998, 0x9284, 0x1000, 0xc0fd,\r
++      0x080c, 0x5692, 0x001e, 0x9085, 0x0001, 0x0005, 0x81ff, 0x0120,\r
++      0x2009, 0x0001, 0x0804, 0x35a5, 0x080c, 0x56ee, 0x0120, 0x2009,\r
++      0x0007, 0x0804, 0x35a5, 0x7984, 0x7ea8, 0x96b4, 0x00ff, 0x080c,\r
++      0x6625, 0x1904, 0x35a8, 0x9186, 0x007f, 0x0138, 0x080c, 0x6a6b,\r
++      0x0120, 0x2009, 0x0009, 0x0804, 0x35a5, 0x080c, 0x4aa7, 0x1120,\r
++      0x2009, 0x0002, 0x0804, 0x35a5, 0xa867, 0x0000, 0xa868, 0xc0fd,\r
++      0xa86a, 0x2001, 0x0100, 0x8007, 0xa80a, 0x080c, 0xca21, 0x1120,\r
++      0x2009, 0x0003, 0x0804, 0x35a5, 0x7007, 0x0003, 0x701f, 0x54c9,\r
++      0x0005, 0xa808, 0x8007, 0x9086, 0x0100, 0x1120, 0x2009, 0x0004,\r
++      0x0804, 0x35a5, 0xa8e0, 0xa866, 0xa810, 0x8007, 0x9084, 0x00ff,\r
++      0x800c, 0xa814, 0x8007, 0x9084, 0x00ff, 0x8004, 0x9080, 0x0002,\r
++      0x9108, 0x8906, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0,\r
++      0x9080, 0x0004, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x0804, 0x4af3,\r
++      0x080c, 0x4aa7, 0x1120, 0x2009, 0x0002, 0x0804, 0x35a5, 0x7984,\r
++      0x9194, 0xff00, 0x918c, 0x00ff, 0x8217, 0x82ff, 0x1118, 0x7023,\r
++      0x19b3, 0x0040, 0x92c6, 0x0001, 0x1118, 0x7023, 0x19cd, 0x0010,\r
++      0x0804, 0x35a8, 0x2009, 0x001a, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98,\r
++      0xa85c, 0x9080, 0x0019, 0xaf60, 0x080c, 0x4af0, 0x701f, 0x5519,\r
++      0x0005, 0x2001, 0x182e, 0x2003, 0x0001, 0xa85c, 0x9080, 0x0019,\r
++      0x2098, 0xa860, 0x20e0, 0x20a9, 0x001a, 0x7020, 0x20a0, 0x20e9,\r
++      0x0001, 0x4003, 0x0804, 0x3573, 0x080c, 0x4aa7, 0x1120, 0x2009,\r
++      0x0002, 0x0804, 0x35a5, 0x7984, 0x9194, 0xff00, 0x918c, 0x00ff,\r
++      0x8217, 0x82ff, 0x1118, 0x2099, 0x19b3, 0x0040, 0x92c6, 0x0001,\r
++      0x1118, 0x2099, 0x19cd, 0x0010, 0x0804, 0x35a8, 0xa85c, 0x9080,\r
++      0x0019, 0x20a0, 0xa860, 0x20e8, 0x20a9, 0x001a, 0x20e1, 0x0001,\r
++      0x4003, 0x2009, 0x001a, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0xa85c,\r
++      0x9080, 0x0019, 0xaf60, 0x0804, 0x4af3, 0x7884, 0x908a, 0x1000,\r
++      0x1a04, 0x35a8, 0x0126, 0x2091, 0x8000, 0x8003, 0x800b, 0x810b,\r
++      0x9108, 0x00c6, 0x2061, 0x1a03, 0x6142, 0x00ce, 0x012e, 0x0804,\r
++      0x3573, 0x00c6, 0x080c, 0x74e9, 0x1160, 0x080c, 0x77ed, 0x080c,\r
++      0x6029, 0x9085, 0x0001, 0x080c, 0x7530, 0x080c, 0x741a, 0x080c,\r
++      0x0d7d, 0x2061, 0x1800, 0x6030, 0xc09d, 0x6032, 0x080c, 0x5ee4,\r
++      0x00ce, 0x0005, 0x00c6, 0x2001, 0x1800, 0x2004, 0x908e, 0x0000,\r
++      0x0904, 0x35a5, 0x7884, 0x9005, 0x0188, 0x7888, 0x2061, 0x199c,\r
++      0x2c0c, 0x2062, 0x080c, 0x29d8, 0x01a0, 0x080c, 0x29e0, 0x0188,\r
++      0x080c, 0x29e8, 0x0170, 0x2162, 0x0804, 0x35a8, 0x2061, 0x0100,\r
++      0x6038, 0x9086, 0x0007, 0x1118, 0x2009, 0x0001, 0x0010, 0x2009,\r
++      0x0000, 0x7884, 0x9086, 0x0002, 0x1588, 0x2061, 0x0100, 0x6028,\r
++      0xc09c, 0x602a, 0x080c, 0xa896, 0x0026, 0x2011, 0x0003, 0x080c,\r
++      0xa1cf, 0x2011, 0x0002, 0x080c, 0xa1d9, 0x002e, 0x080c, 0xa098,\r
++      0x0036, 0x901e, 0x080c, 0xa118, 0x003e, 0x080c, 0xa8b2, 0x60e3,\r
++      0x0000, 0x080c, 0xe702, 0x080c, 0xe71d, 0x9085, 0x0001, 0x080c,\r
++      0x7530, 0x9006, 0x080c, 0x2a0a, 0x2001, 0x1800, 0x2003, 0x0004,\r
++      0x0026, 0x2011, 0x0008, 0x080c, 0x2a44, 0x002e, 0x00ce, 0x0804,\r
++      0x3573, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x35a5, 0x080c,\r
++      0x56ee, 0x0120, 0x2009, 0x0007, 0x0804, 0x35a5, 0x7984, 0x7ea8,\r
++      0x96b4, 0x00ff, 0x080c, 0x6625, 0x1904, 0x35a8, 0x9186, 0x007f,\r
++      0x0138, 0x080c, 0x6a6b, 0x0120, 0x2009, 0x0009, 0x0804, 0x35a5,\r
++      0x080c, 0x4aa7, 0x1120, 0x2009, 0x0002, 0x0804, 0x35a5, 0xa867,\r
++      0x0000, 0xa868, 0xc0fd, 0xa86a, 0x080c, 0xca24, 0x1120, 0x2009,\r
++      0x0003, 0x0804, 0x35a5, 0x7007, 0x0003, 0x701f, 0x5620, 0x0005,\r
++      0xa830, 0x9086, 0x0100, 0x1120, 0x2009, 0x0004, 0x0804, 0x35a5,\r
++      0xa8e0, 0xa866, 0xa834, 0x8007, 0x800c, 0xa85c, 0x9080, 0x000c,\r
++      0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0xaf60, 0x0804, 0x4af3, 0xa898,\r
++      0x9086, 0x000d, 0x1904, 0x35a5, 0x2021, 0x4005, 0x0126, 0x2091,\r
++      0x8000, 0x0e04, 0x5644, 0x0010, 0x012e, 0x0cc0, 0x7c36, 0x9486,\r
++      0x4000, 0x0118, 0x7833, 0x0011, 0x0010, 0x7833, 0x0010, 0x7883,\r
++      0x4005, 0xa998, 0x7986, 0xa9a4, 0x799a, 0xa9a8, 0x799e, 0x080c,\r
++      0x4ae3, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c,\r
++      0x11d6, 0x7007, 0x0001, 0x2091, 0x5000, 0x700f, 0x0000, 0x012e,\r
++      0x0005, 0x0126, 0x2091, 0x8000, 0x00c6, 0x2061, 0x1a03, 0x7984,\r
++      0x6152, 0x614e, 0x6057, 0x0000, 0x604b, 0x0009, 0x7898, 0x606a,\r
++      0x789c, 0x6066, 0x7888, 0x6062, 0x788c, 0x605e, 0x2001, 0x1a11,\r
++      0x2044, 0x2001, 0x1a18, 0xa076, 0xa060, 0xa072, 0xa07b, 0x0001,\r
++      0xa07f, 0x0002, 0xa06b, 0x0000, 0xa09f, 0x0000, 0x00ce, 0x012e,\r
++      0x0804, 0x3573, 0x0126, 0x2091, 0x8000, 0x00b6, 0x00c6, 0x90e4,\r
++      0xc000, 0x0128, 0x0006, 0x080c, 0xc885, 0x000e, 0x1198, 0xd0e4,\r
++      0x0160, 0x9180, 0x1000, 0x2004, 0x905d, 0x0160, 0x080c, 0x6043,\r
++      0x080c, 0xab57, 0x0110, 0xb817, 0x0000, 0x9006, 0x00ce, 0x00be,\r
++      0x012e, 0x0005, 0x9085, 0x0001, 0x0cc8, 0x0126, 0x2091, 0x8000,\r
++      0x0156, 0x2010, 0x900e, 0x20a9, 0x0800, 0x0016, 0x9180, 0x1000,\r
++      0x2004, 0x9005, 0x0180, 0x9186, 0x007e, 0x0168, 0x9186, 0x007f,\r
++      0x0150, 0x9186, 0x0080, 0x0138, 0x9186, 0x00ff, 0x0120, 0x0026,\r
++      0x2200, 0x0801, 0x002e, 0x001e, 0x8108, 0x1f04, 0x56bd, 0x015e,\r
++      0x012e, 0x0005, 0x2001, 0x1848, 0x2004, 0x0005, 0x2001, 0x1867,\r
++      0x2004, 0x0005, 0x0006, 0x2001, 0x1810, 0x2004, 0xd0d4, 0x000e,\r
++      0x0005, 0x2001, 0x180e, 0x2004, 0xd0b4, 0x0005, 0x2001, 0x1800,\r
++      0x2004, 0x9086, 0x0003, 0x0005, 0x0016, 0x00e6, 0x2071, 0x189e,\r
++      0x7108, 0x910d, 0x710a, 0x00ee, 0x001e, 0x0005, 0x79a4, 0x9182,\r
++      0x0081, 0x1a04, 0x35a8, 0x810c, 0x0016, 0x080c, 0x4aa7, 0x080c,\r
++      0x0f42, 0x2100, 0x2238, 0x7d84, 0x7c88, 0x7b8c, 0x7a90, 0x001e,\r
++      0x080c, 0x4af0, 0x701f, 0x5715, 0x0005, 0x2079, 0x0000, 0x7d94,\r
++      0x7c98, 0x7ba8, 0x7aac, 0x79a4, 0x810c, 0x2061, 0x18b8, 0x2c44,\r
++      0xa770, 0xa074, 0x2071, 0x189e, 0x080c, 0x4af3, 0x701f, 0x5729,\r
++      0x0005, 0x2061, 0x18b8, 0x2c44, 0x0016, 0x0026, 0xa270, 0xa174,\r
++      0x080c, 0x0f4a, 0x002e, 0x001e, 0x080c, 0x0ff7, 0x9006, 0xa802,\r
++      0xa806, 0x0804, 0x3573, 0x0126, 0x0156, 0x0136, 0x0146, 0x01c6,\r
++      0x01d6, 0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x2061, 0x0100, 0x2069,\r
++      0x0200, 0x2071, 0x1800, 0x6044, 0xd0a4, 0x11e8, 0xd084, 0x0118,\r
++      0x080c, 0x58e4, 0x0068, 0xd08c, 0x0118, 0x080c, 0x57ed, 0x0040,\r
++      0xd094, 0x0118, 0x080c, 0x57bd, 0x0018, 0xd09c, 0x0108, 0x0099,\r
++      0x00fe, 0x00ee, 0x00de, 0x00ce, 0x01de, 0x01ce, 0x014e, 0x013e,\r
++      0x015e, 0x012e, 0x0005, 0x0016, 0x6128, 0xd19c, 0x1110, 0xc19d,\r
++      0x612a, 0x001e, 0x0c68, 0x0006, 0x7098, 0x9005, 0x000e, 0x0120,\r
++      0x709b, 0x0000, 0x7093, 0x0000, 0x624c, 0x9286, 0xf0f0, 0x1150,\r
++      0x6048, 0x9086, 0xf0f0, 0x0130, 0x624a, 0x6043, 0x0090, 0x6043,\r
++      0x0010, 0x0490, 0x9294, 0xff00, 0x9296, 0xf700, 0x0178, 0x7138,\r
++      0xd1a4, 0x1160, 0x6240, 0x9295, 0x0100, 0x6242, 0x9294, 0x0010,\r
++      0x0128, 0x2009, 0x00f7, 0x080c, 0x5fa5, 0x00f0, 0x6040, 0x9084,\r
++      0x0010, 0x9085, 0x0140, 0x6042, 0x6043, 0x0000, 0x7087, 0x0000,\r
++      0x70a3, 0x0001, 0x70c7, 0x0000, 0x70df, 0x0000, 0x2009, 0x1d80,\r
++      0x200b, 0x0000, 0x7097, 0x0000, 0x708b, 0x000f, 0x2009, 0x000f,\r
++      0x2011, 0x5e87, 0x080c, 0x8708, 0x0005, 0x2001, 0x1869, 0x2004,\r
++      0xd08c, 0x0110, 0x705f, 0xffff, 0x7088, 0x9005, 0x1528, 0x2011,\r
++      0x5e87, 0x080c, 0x863e, 0x6040, 0x9094, 0x0010, 0x9285, 0x0020,\r
++      0x6042, 0x20a9, 0x00c8, 0x6044, 0xd08c, 0x1168, 0x1f04, 0x57d3,\r
++      0x6242, 0x709b, 0x0000, 0x6040, 0x9094, 0x0010, 0x9285, 0x0080,\r
++      0x6042, 0x6242, 0x0048, 0x6242, 0x709b, 0x0000, 0x708f, 0x0000,\r
++      0x9006, 0x080c, 0x602e, 0x0000, 0x0005, 0x708c, 0x908a, 0x0003,\r
++      0x1a0c, 0x0d7d, 0x000b, 0x0005, 0x57f7, 0x5848, 0x58e3, 0x00f6,\r
++      0x0016, 0x6900, 0x918c, 0x0800, 0x708f, 0x0001, 0x2001, 0x015d,\r
++      0x2003, 0x0000, 0x6803, 0x00fc, 0x20a9, 0x0004, 0x6800, 0x9084,\r
++      0x00fc, 0x0120, 0x1f04, 0x5806, 0x080c, 0x0d7d, 0x68a0, 0x68a2,\r
++      0x689c, 0x689e, 0x6898, 0x689a, 0xa001, 0x918d, 0x1600, 0x6902,\r
++      0x001e, 0x6837, 0x0020, 0x080c, 0x600a, 0x2079, 0x1d00, 0x7833,\r
++      0x1101, 0x7837, 0x0000, 0x20e1, 0x0001, 0x2099, 0x1805, 0x20e9,\r
++      0x0001, 0x20a1, 0x1d0e, 0x20a9, 0x0004, 0x4003, 0x080c, 0xa690,\r
++      0x20e1, 0x0001, 0x2099, 0x1d00, 0x20e9, 0x0000, 0x20a1, 0x0240,\r
++      0x20a9, 0x0014, 0x4003, 0x60c3, 0x000c, 0x600f, 0x0000, 0x080c,\r
++      0x5eb8, 0x00fe, 0x9006, 0x7092, 0x6043, 0x0008, 0x6042, 0x0005,\r
++      0x00f6, 0x7090, 0x7093, 0x0000, 0x9025, 0x0904, 0x58c0, 0x6020,\r
++      0xd0b4, 0x1904, 0x58be, 0x71a0, 0x81ff, 0x0904, 0x58ac, 0x9486,\r
++      0x000c, 0x1904, 0x58b9, 0x9480, 0x0018, 0x8004, 0x20a8, 0x080c,\r
++      0x6003, 0x2011, 0x0260, 0x2019, 0x1d00, 0x220c, 0x2304, 0x9106,\r
++      0x11e8, 0x8210, 0x8318, 0x1f04, 0x5865, 0x6043, 0x0004, 0x2061,\r
++      0x0140, 0x605b, 0xbc94, 0x605f, 0xf0f0, 0x2061, 0x0100, 0x6043,\r
++      0x0006, 0x708f, 0x0002, 0x709b, 0x0002, 0x2009, 0x07d0, 0x2011,\r
++      0x5e8e, 0x080c, 0x8708, 0x080c, 0x600a, 0x04c0, 0x080c, 0x6003,\r
++      0x2079, 0x0260, 0x7930, 0x918e, 0x1101, 0x1558, 0x7834, 0x9005,\r
++      0x1540, 0x7900, 0x918c, 0x00ff, 0x1118, 0x7804, 0x9005, 0x0190,\r
++      0x080c, 0x6003, 0x2011, 0x026e, 0x2019, 0x1805, 0x20a9, 0x0004,\r
++      0x220c, 0x2304, 0x9102, 0x0230, 0x11a0, 0x8210, 0x8318, 0x1f04,\r
++      0x58a0, 0x0078, 0x70a3, 0x0000, 0x080c, 0x6003, 0x20e1, 0x0000,\r
++      0x2099, 0x0260, 0x20e9, 0x0001, 0x20a1, 0x1d00, 0x20a9, 0x0014,\r
++      0x4003, 0x6043, 0x0008, 0x6043, 0x0000, 0x0010, 0x00fe, 0x0005,\r
++      0x6040, 0x9085, 0x0100, 0x6042, 0x6020, 0xd0b4, 0x1db8, 0x080c,\r
++      0xa690, 0x20e1, 0x0001, 0x2099, 0x1d00, 0x20e9, 0x0000, 0x20a1,\r
++      0x0240, 0x20a9, 0x0014, 0x4003, 0x60c3, 0x000c, 0x2011, 0x19f4,\r
++      0x2013, 0x0000, 0x7093, 0x0000, 0x60a3, 0x0056, 0x60a7, 0x9575,\r
++      0x080c, 0x9e25, 0x08d8, 0x0005, 0x7098, 0x908a, 0x001d, 0x1a0c,\r
++      0x0d7d, 0x000b, 0x0005, 0x5915, 0x5928, 0x5951, 0x5971, 0x5997,\r
++      0x59c6, 0x59ec, 0x5a24, 0x5a4a, 0x5a78, 0x5ab3, 0x5aeb, 0x5b09,\r
++      0x5b34, 0x5b56, 0x5b71, 0x5b7b, 0x5baf, 0x5bd5, 0x5c04, 0x5c2a,\r
++      0x5c62, 0x5ca6, 0x5ce3, 0x5d04, 0x5d5d, 0x5d7f, 0x5dad, 0x5dad,\r
++      0x00c6, 0x2061, 0x1800, 0x6003, 0x0007, 0x2061, 0x0100, 0x6004,\r
++      0x9084, 0xfff9, 0x6006, 0x00ce, 0x0005, 0x2061, 0x0140, 0x605b,\r
++      0xbc94, 0x605f, 0xf0f0, 0x2061, 0x0100, 0x6043, 0x0002, 0x709b,\r
++      0x0001, 0x2009, 0x07d0, 0x2011, 0x5e8e, 0x080c, 0x8708, 0x0005,\r
++      0x00f6, 0x7090, 0x9086, 0x0014, 0x1510, 0x6042, 0x6020, 0xd0b4,\r
++      0x11f0, 0x080c, 0x6003, 0x2079, 0x0260, 0x7a30, 0x9296, 0x1102,\r
++      0x11a0, 0x7834, 0x9005, 0x1188, 0x7a38, 0xd2fc, 0x0128, 0x70c4,\r
++      0x9005, 0x1110, 0x70c7, 0x0001, 0x2011, 0x5e8e, 0x080c, 0x863e,\r
++      0x709b, 0x0010, 0x080c, 0x5b7b, 0x0010, 0x7093, 0x0000, 0x00fe,\r
++      0x0005, 0x00f6, 0x709b, 0x0003, 0x6043, 0x0004, 0x2011, 0x5e8e,\r
++      0x080c, 0x863e, 0x080c, 0x5f87, 0x2079, 0x0240, 0x7833, 0x1102,\r
++      0x7837, 0x0000, 0x20a9, 0x0008, 0x9f88, 0x000e, 0x200b, 0x0000,\r
++      0x8108, 0x1f04, 0x5966, 0x60c3, 0x0014, 0x080c, 0x5eb8, 0x00fe,\r
++      0x0005, 0x00f6, 0x7090, 0x9005, 0x0500, 0x2011, 0x5e8e, 0x080c,\r
++      0x863e, 0x9086, 0x0014, 0x11b8, 0x080c, 0x6003, 0x2079, 0x0260,\r
++      0x7a30, 0x9296, 0x1102, 0x1178, 0x7834, 0x9005, 0x1160, 0x7a38,\r
++      0xd2fc, 0x0128, 0x70c4, 0x9005, 0x1110, 0x70c7, 0x0001, 0x709b,\r
++      0x0004, 0x0029, 0x0010, 0x080c, 0x5fdf, 0x00fe, 0x0005, 0x00f6,\r
++      0x709b, 0x0005, 0x080c, 0x5f87, 0x2079, 0x0240, 0x7833, 0x1103,\r
++      0x7837, 0x0000, 0x080c, 0x6003, 0x080c, 0x5fe6, 0x1170, 0x7084,\r
++      0x9005, 0x1158, 0x715c, 0x9186, 0xffff, 0x0138, 0x2011, 0x0008,\r
++      0x080c, 0x5e3b, 0x0168, 0x080c, 0x5fbc, 0x20a9, 0x0008, 0x20e1,\r
++      0x0000, 0x2099, 0x026e, 0x20e9, 0x0000, 0x20a1, 0x024e, 0x4003,\r
++      0x60c3, 0x0014, 0x080c, 0x5eb8, 0x00fe, 0x0005, 0x00f6, 0x7090,\r
++      0x9005, 0x0500, 0x2011, 0x5e8e, 0x080c, 0x863e, 0x9086, 0x0014,\r
++      0x11b8, 0x080c, 0x6003, 0x2079, 0x0260, 0x7a30, 0x9296, 0x1103,\r
++      0x1178, 0x7834, 0x9005, 0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70c4,\r
++      0x9005, 0x1110, 0x70c7, 0x0001, 0x709b, 0x0006, 0x0029, 0x0010,\r
++      0x080c, 0x5fdf, 0x00fe, 0x0005, 0x00f6, 0x709b, 0x0007, 0x080c,\r
++      0x5f87, 0x2079, 0x0240, 0x7833, 0x1104, 0x7837, 0x0000, 0x080c,\r
++      0x6003, 0x080c, 0x5fe6, 0x11b8, 0x7084, 0x9005, 0x11a0, 0x7164,\r
++      0x9186, 0xffff, 0x0180, 0x9180, 0x3374, 0x200d, 0x918c, 0xff00,\r
++      0x810f, 0x2011, 0x0008, 0x080c, 0x5e3b, 0x0180, 0x080c, 0x4fe4,\r
++      0x0110, 0x080c, 0x2664, 0x20a9, 0x0008, 0x20e1, 0x0000, 0x2099,\r
++      0x026e, 0x20e9, 0x0000, 0x20a1, 0x024e, 0x4003, 0x60c3, 0x0014,\r
++      0x080c, 0x5eb8, 0x00fe, 0x0005, 0x00f6, 0x7090, 0x9005, 0x0500,\r
++      0x2011, 0x5e8e, 0x080c, 0x863e, 0x9086, 0x0014, 0x11b8, 0x080c,\r
++      0x6003, 0x2079, 0x0260, 0x7a30, 0x9296, 0x1104, 0x1178, 0x7834,\r
++      0x9005, 0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70c4, 0x9005, 0x1110,\r
++      0x70c7, 0x0001, 0x709b, 0x0008, 0x0029, 0x0010, 0x080c, 0x5fdf,\r
++      0x00fe, 0x0005, 0x00f6, 0x709b, 0x0009, 0x080c, 0x5f87, 0x2079,\r
++      0x0240, 0x7833, 0x1105, 0x7837, 0x0100, 0x080c, 0x5fe6, 0x1150,\r
++      0x7084, 0x9005, 0x1138, 0x080c, 0x5dae, 0x1188, 0x9085, 0x0001,\r
++      0x080c, 0x2664, 0x20a9, 0x0008, 0x080c, 0x6003, 0x20e1, 0x0000,\r
++      0x2099, 0x026e, 0x20e9, 0x0000, 0x20a1, 0x024e, 0x4003, 0x60c3,\r
++      0x0014, 0x080c, 0x5eb8, 0x0010, 0x080c, 0x5908, 0x00fe, 0x0005,\r
++      0x00f6, 0x7090, 0x9005, 0x05a8, 0x2011, 0x5e8e, 0x080c, 0x863e,\r
++      0x9086, 0x0014, 0x1560, 0x080c, 0x6003, 0x2079, 0x0260, 0x7a30,\r
++      0x9296, 0x1105, 0x1520, 0x7834, 0x9084, 0x0100, 0x2011, 0x0100,\r
++      0x921e, 0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70c4, 0x9005, 0x1110,\r
++      0x70c7, 0x0001, 0x709b, 0x000a, 0x00b1, 0x0098, 0x9005, 0x1178,\r
++      0x7a38, 0xd2fc, 0x0128, 0x70c4, 0x9005, 0x1110, 0x70c7, 0x0001,\r
++      0x7097, 0x0000, 0x709b, 0x000e, 0x080c, 0x5b56, 0x0010, 0x080c,\r
++      0x5fdf, 0x00fe, 0x0005, 0x00f6, 0x709b, 0x000b, 0x2011, 0x1d0e,\r
++      0x20e9, 0x0001, 0x22a0, 0x20a9, 0x0040, 0x2019, 0xffff, 0x4304,\r
++      0x080c, 0x5f87, 0x2079, 0x0240, 0x7833, 0x1106, 0x7837, 0x0000,\r
++      0x080c, 0x5fe6, 0x0118, 0x2013, 0x0000, 0x0020, 0x7060, 0x9085,\r
++      0x0100, 0x2012, 0x20a9, 0x0040, 0x2009, 0x024e, 0x2011, 0x1d0e,\r
++      0x220e, 0x8210, 0x8108, 0x9186, 0x0260, 0x1128, 0x6810, 0x8000,\r
++      0x6812, 0x2009, 0x0240, 0x1f04, 0x5ad8, 0x60c3, 0x0084, 0x080c,\r
++      0x5eb8, 0x00fe, 0x0005, 0x00f6, 0x7090, 0x9005, 0x01c0, 0x2011,\r
++      0x5e8e, 0x080c, 0x863e, 0x9086, 0x0084, 0x1178, 0x080c, 0x6003,\r
++      0x2079, 0x0260, 0x7a30, 0x9296, 0x1106, 0x1138, 0x7834, 0x9005,\r
++      0x1120, 0x709b, 0x000c, 0x0029, 0x0010, 0x080c, 0x5fdf, 0x00fe,\r
++      0x0005, 0x00f6, 0x709b, 0x000d, 0x080c, 0x5f87, 0x2079, 0x0240,\r
++      0x7833, 0x1107, 0x7837, 0x0000, 0x080c, 0x6003, 0x20a9, 0x0040,\r
++      0x2011, 0x026e, 0x2009, 0x024e, 0x220e, 0x8210, 0x8108, 0x9186,\r
++      0x0260, 0x1150, 0x6810, 0x8000, 0x6812, 0x2009, 0x0240, 0x6814,\r
++      0x8000, 0x6816, 0x2011, 0x0260, 0x1f04, 0x5b1c, 0x60c3, 0x0084,\r
++      0x080c, 0x5eb8, 0x00fe, 0x0005, 0x00f6, 0x7090, 0x9005, 0x01e0,\r
++      0x2011, 0x5e8e, 0x080c, 0x863e, 0x9086, 0x0084, 0x1198, 0x080c,\r
++      0x6003, 0x2079, 0x0260, 0x7a30, 0x9296, 0x1107, 0x1158, 0x7834,\r
++      0x9005, 0x1140, 0x7097, 0x0001, 0x080c, 0x5f59, 0x709b, 0x000e,\r
++      0x0029, 0x0010, 0x080c, 0x5fdf, 0x00fe, 0x0005, 0x918d, 0x0001,\r
++      0x080c, 0x602e, 0x709b, 0x000f, 0x7093, 0x0000, 0x2061, 0x0140,\r
++      0x605b, 0xbc85, 0x605f, 0xb5b5, 0x2061, 0x0100, 0x6043, 0x0005,\r
++      0x6043, 0x0004, 0x2009, 0x07d0, 0x2011, 0x5e8e, 0x080c, 0x8632,\r
++      0x0005, 0x7090, 0x9005, 0x0130, 0x2011, 0x5e8e, 0x080c, 0x863e,\r
++      0x709b, 0x0000, 0x0005, 0x709b, 0x0011, 0x080c, 0xa690, 0x080c,\r
++      0x6003, 0x20e1, 0x0000, 0x2099, 0x0260, 0x20e9, 0x0000, 0x20a1,\r
++      0x0240, 0x7490, 0x9480, 0x0018, 0x9080, 0x0007, 0x9084, 0x03f8,\r
++      0x8004, 0x20a8, 0x4003, 0x080c, 0x5fe6, 0x11a0, 0x717c, 0x81ff,\r
++      0x0188, 0x900e, 0x7080, 0x9084, 0x00ff, 0x0160, 0x080c, 0x25fb,\r
++      0x9186, 0x007e, 0x0138, 0x9186, 0x0080, 0x0120, 0x2011, 0x0008,\r
++      0x080c, 0x5e3b, 0x60c3, 0x0014, 0x080c, 0x5eb8, 0x0005, 0x00f6,\r
++      0x7090, 0x9005, 0x0500, 0x2011, 0x5e8e, 0x080c, 0x863e, 0x9086,\r
++      0x0014, 0x11b8, 0x080c, 0x6003, 0x2079, 0x0260, 0x7a30, 0x9296,\r
++      0x1103, 0x1178, 0x7834, 0x9005, 0x1160, 0x7a38, 0xd2fc, 0x0128,\r
++      0x70c4, 0x9005, 0x1110, 0x70c7, 0x0001, 0x709b, 0x0012, 0x0029,\r
++      0x0010, 0x7093, 0x0000, 0x00fe, 0x0005, 0x00f6, 0x709b, 0x0013,\r
++      0x080c, 0x5f95, 0x2079, 0x0240, 0x7833, 0x1103, 0x7837, 0x0000,\r
++      0x080c, 0x6003, 0x080c, 0x5fe6, 0x1170, 0x7084, 0x9005, 0x1158,\r
++      0x715c, 0x9186, 0xffff, 0x0138, 0x2011, 0x0008, 0x080c, 0x5e3b,\r
++      0x0168, 0x080c, 0x5fbc, 0x20a9, 0x0008, 0x20e1, 0x0000, 0x2099,\r
++      0x026e, 0x20e9, 0x0000, 0x20a1, 0x024e, 0x4003, 0x60c3, 0x0014,\r
++      0x080c, 0x5eb8, 0x00fe, 0x0005, 0x00f6, 0x7090, 0x9005, 0x0500,\r
++      0x2011, 0x5e8e, 0x080c, 0x863e, 0x9086, 0x0014, 0x11b8, 0x080c,\r
++      0x6003, 0x2079, 0x0260, 0x7a30, 0x9296, 0x1104, 0x1178, 0x7834,\r
++      0x9005, 0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70c4, 0x9005, 0x1110,\r
++      0x70c7, 0x0001, 0x709b, 0x0014, 0x0029, 0x0010, 0x7093, 0x0000,\r
++      0x00fe, 0x0005, 0x00f6, 0x709b, 0x0015, 0x080c, 0x5f95, 0x2079,\r
++      0x0240, 0x7833, 0x1104, 0x7837, 0x0000, 0x080c, 0x6003, 0x080c,\r
++      0x5fe6, 0x11b8, 0x7084, 0x9005, 0x11a0, 0x7164, 0x9186, 0xffff,\r
++      0x0180, 0x9180, 0x3374, 0x200d, 0x918c, 0xff00, 0x810f, 0x2011,\r
++      0x0008, 0x080c, 0x5e3b, 0x0180, 0x080c, 0x4fe4, 0x0110, 0x080c,\r
++      0x2664, 0x20a9, 0x0008, 0x20e1, 0x0000, 0x2099, 0x026e, 0x20e9,\r
++      0x0000, 0x20a1, 0x024e, 0x4003, 0x60c3, 0x0014, 0x080c, 0x5eb8,\r
++      0x00fe, 0x0005, 0x00f6, 0x7090, 0x9005, 0x05f0, 0x2011, 0x5e8e,\r
++      0x080c, 0x863e, 0x9086, 0x0014, 0x15a8, 0x080c, 0x6003, 0x2079,\r
++      0x0260, 0x7a30, 0x9296, 0x1105, 0x1568, 0x7834, 0x9084, 0x0100,\r
++      0x2011, 0x0100, 0x921e, 0x1168, 0x9085, 0x0001, 0x080c, 0x602e,\r
++      0x7a38, 0xd2fc, 0x0128, 0x70c4, 0x9005, 0x1110, 0x70c7, 0x0001,\r
++      0x0080, 0x9005, 0x11b8, 0x7a38, 0xd2fc, 0x0128, 0x70c4, 0x9005,\r
++      0x1110, 0x70c7, 0x0001, 0x9085, 0x0001, 0x080c, 0x602e, 0x7097,\r
++      0x0000, 0x7a38, 0xd2f4, 0x0110, 0x70df, 0x0008, 0x709b, 0x0016,\r
++      0x0029, 0x0010, 0x7093, 0x0000, 0x00fe, 0x0005, 0x080c, 0xa690,\r
++      0x080c, 0x6003, 0x20e1, 0x0000, 0x2099, 0x0260, 0x20e9, 0x0000,\r
++      0x20a1, 0x0240, 0x20a9, 0x000e, 0x4003, 0x2011, 0x026d, 0x2204,\r
++      0x9084, 0x0100, 0x2011, 0x024d, 0x2012, 0x2011, 0x026e, 0x709b,\r
++      0x0017, 0x080c, 0x5fe6, 0x1150, 0x7084, 0x9005, 0x1138, 0x080c,\r
++      0x5dae, 0x1188, 0x9085, 0x0001, 0x080c, 0x2664, 0x20a9, 0x0008,\r
++      0x080c, 0x6003, 0x20e1, 0x0000, 0x2099, 0x026e, 0x20e9, 0x0000,\r
++      0x20a1, 0x024e, 0x4003, 0x60c3, 0x0014, 0x080c, 0x5eb8, 0x0010,\r
++      0x080c, 0x5908, 0x0005, 0x00f6, 0x7090, 0x9005, 0x01d8, 0x2011,\r
++      0x5e8e, 0x080c, 0x863e, 0x9086, 0x0084, 0x1190, 0x080c, 0x6003,\r
++      0x2079, 0x0260, 0x7a30, 0x9296, 0x1106, 0x1150, 0x7834, 0x9005,\r
++      0x1138, 0x9006, 0x080c, 0x602e, 0x709b, 0x0018, 0x0029, 0x0010,\r
++      0x7093, 0x0000, 0x00fe, 0x0005, 0x00f6, 0x709b, 0x0019, 0x080c,\r
++      0x5f95, 0x2079, 0x0240, 0x7833, 0x1106, 0x7837, 0x0000, 0x080c,\r
++      0x6003, 0x2009, 0x026e, 0x2039, 0x1d0e, 0x20a9, 0x0040, 0x213e,\r
++      0x8738, 0x8108, 0x9186, 0x0280, 0x1128, 0x6814, 0x8000, 0x6816,\r
++      0x2009, 0x0260, 0x1f04, 0x5d17, 0x2039, 0x1d0e, 0x080c, 0x5fe6,\r
++      0x11e8, 0x2728, 0x2514, 0x8207, 0x9084, 0x00ff, 0x8000, 0x2018,\r
++      0x9294, 0x00ff, 0x8007, 0x9205, 0x202a, 0x7060, 0x2310, 0x8214,\r
++      0x92a0, 0x1d0e, 0x2414, 0x938c, 0x0001, 0x0118, 0x9294, 0xff00,\r
++      0x0018, 0x9294, 0x00ff, 0x8007, 0x9215, 0x2222, 0x20a9, 0x0040,\r
++      0x2009, 0x024e, 0x270e, 0x8738, 0x8108, 0x9186, 0x0260, 0x1128,\r
++      0x6810, 0x8000, 0x6812, 0x2009, 0x0240, 0x1f04, 0x5d4a, 0x60c3,\r
++      0x0084, 0x080c, 0x5eb8, 0x00fe, 0x0005, 0x00f6, 0x7090, 0x9005,\r
++      0x01e0, 0x2011, 0x5e8e, 0x080c, 0x863e, 0x9086, 0x0084, 0x1198,\r
++      0x080c, 0x6003, 0x2079, 0x0260, 0x7a30, 0x9296, 0x1107, 0x1158,\r
++      0x7834, 0x9005, 0x1140, 0x7097, 0x0001, 0x080c, 0x5f59, 0x709b,\r
++      0x001a, 0x0029, 0x0010, 0x7093, 0x0000, 0x00fe, 0x0005, 0x9085,\r
++      0x0001, 0x080c, 0x602e, 0x709b, 0x001b, 0x080c, 0xa690, 0x080c,\r
++      0x6003, 0x2011, 0x0260, 0x2009, 0x0240, 0x7490, 0x9480, 0x0018,\r
++      0x9080, 0x0007, 0x9084, 0x03f8, 0x8004, 0x20a8, 0x220e, 0x8210,\r
++      0x8108, 0x9186, 0x0260, 0x1150, 0x6810, 0x8000, 0x6812, 0x2009,\r
++      0x0240, 0x6814, 0x8000, 0x6816, 0x2011, 0x0260, 0x1f04, 0x5d96,\r
++      0x60c3, 0x0084, 0x080c, 0x5eb8, 0x0005, 0x0005, 0x0086, 0x0096,\r
++      0x2029, 0x1848, 0x252c, 0x20a9, 0x0008, 0x2041, 0x1d0e, 0x20e9,\r
++      0x0001, 0x28a0, 0x080c, 0x6003, 0x20e1, 0x0000, 0x2099, 0x026e,\r
++      0x4003, 0x20a9, 0x0008, 0x2011, 0x0007, 0xd5d4, 0x0108, 0x9016,\r
++      0x2800, 0x9200, 0x200c, 0x91a6, 0xffff, 0x1148, 0xd5d4, 0x0110,\r
++      0x8210, 0x0008, 0x8211, 0x1f04, 0x5dc8, 0x0804, 0x5e37, 0x82ff,\r
++      0x1160, 0xd5d4, 0x0120, 0x91a6, 0x3fff, 0x0d90, 0x0020, 0x91a6,\r
++      0x3fff, 0x0904, 0x5e37, 0x918d, 0xc000, 0x20a9, 0x0010, 0x2019,\r
++      0x0001, 0xd5d4, 0x0110, 0x2019, 0x0010, 0x2120, 0xd5d4, 0x0110,\r
++      0x8423, 0x0008, 0x8424, 0x1240, 0xd5d4, 0x0110, 0x8319, 0x0008,\r
++      0x8318, 0x1f04, 0x5dee, 0x04d8, 0x23a8, 0x2021, 0x0001, 0x8426,\r
++      0x8425, 0x1f04, 0x5e00, 0x2328, 0x8529, 0x92be, 0x0007, 0x0158,\r
++      0x0006, 0x2039, 0x0007, 0x2200, 0x973a, 0x000e, 0x27a8, 0x95a8,\r
++      0x0010, 0x1f04, 0x5e0f, 0x755e, 0x95c8, 0x3374, 0x292d, 0x95ac,\r
++      0x00ff, 0x7582, 0x6532, 0x6536, 0x0016, 0x2508, 0x080c, 0x2644,\r
++      0x001e, 0x60e7, 0x0000, 0x65ea, 0x2018, 0x2304, 0x9405, 0x201a,\r
++      0x7087, 0x0001, 0x20e9, 0x0000, 0x20a1, 0x024e, 0x20e1, 0x0001,\r
++      0x2898, 0x20a9, 0x0008, 0x4003, 0x9085, 0x0001, 0x0008, 0x9006,\r
++      0x009e, 0x008e, 0x0005, 0x0156, 0x01c6, 0x01d6, 0x0136, 0x0146,\r
++      0x22a8, 0x20e1, 0x0000, 0x2099, 0x026e, 0x20e9, 0x0000, 0x2011,\r
++      0x024e, 0x22a0, 0x4003, 0x014e, 0x013e, 0x01de, 0x01ce, 0x015e,\r
++      0x2118, 0x9026, 0x2001, 0x0007, 0x939a, 0x0010, 0x0218, 0x8420,\r
++      0x8001, 0x0cd0, 0x2118, 0x84ff, 0x0120, 0x939a, 0x0010, 0x8421,\r
++      0x1de0, 0x2021, 0x0001, 0x83ff, 0x0118, 0x8423, 0x8319, 0x1de8,\r
++      0x9238, 0x2029, 0x026e, 0x9528, 0x2504, 0x942c, 0x11b8, 0x9405,\r
++      0x203a, 0x715e, 0x91a0, 0x3374, 0x242d, 0x95ac, 0x00ff, 0x7582,\r
++      0x6532, 0x6536, 0x0016, 0x2508, 0x080c, 0x2644, 0x001e, 0x60e7,\r
++      0x0000, 0x65ea, 0x7087, 0x0001, 0x9084, 0x0000, 0x0005, 0x00e6,\r
++      0x2071, 0x1800, 0x708b, 0x0000, 0x00ee, 0x0005, 0x00e6, 0x00f6,\r
++      0x2079, 0x0100, 0x2071, 0x0140, 0x080c, 0x5f48, 0x080c, 0x9e32,\r
++      0x7004, 0x9084, 0x4000, 0x0110, 0x080c, 0x2a1a, 0x0126, 0x2091,\r
++      0x8000, 0x2071, 0x1826, 0x2073, 0x0000, 0x7840, 0x0026, 0x0016,\r
++      0x2009, 0x00f7, 0x080c, 0x5fa5, 0x001e, 0x9094, 0x0010, 0x9285,\r
++      0x0080, 0x7842, 0x7a42, 0x002e, 0x012e, 0x00fe, 0x00ee, 0x0005,\r
++      0x0126, 0x2091, 0x8000, 0x080c, 0x2979, 0x0228, 0x2011, 0x0101,\r
++      0x2204, 0xc0c5, 0x2012, 0x2011, 0x19f4, 0x2013, 0x0000, 0x7093,\r
++      0x0000, 0x012e, 0x60a3, 0x0056, 0x60a7, 0x9575, 0x080c, 0x9e25,\r
++      0x6144, 0xd184, 0x0120, 0x7198, 0x918d, 0x2000, 0x0018, 0x718c,\r
++      0x918d, 0x1000, 0x2011, 0x1999, 0x2112, 0x2009, 0x07d0, 0x2011,\r
++      0x5e8e, 0x080c, 0x8708, 0x0005, 0x0016, 0x0026, 0x00c6, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0xa896, 0x080c, 0xab5e, 0x080c, 0xa8b2,\r
++      0x2009, 0x00f7, 0x080c, 0x5fa5, 0x2061, 0x1a03, 0x900e, 0x611a,\r
++      0x611e, 0x6172, 0x6176, 0x2061, 0x1800, 0x6003, 0x0001, 0x2061,\r
++      0x0100, 0x6043, 0x0090, 0x6043, 0x0010, 0x2009, 0x1999, 0x200b,\r
++      0x0000, 0x2009, 0x002d, 0x2011, 0x5f14, 0x080c, 0x8632, 0x012e,\r
++      0x00ce, 0x002e, 0x001e, 0x0005, 0x00e6, 0x0006, 0x0126, 0x2091,\r
++      0x8000, 0x0471, 0x2071, 0x0100, 0x080c, 0x9e32, 0x2071, 0x0140,\r
++      0x7004, 0x9084, 0x4000, 0x0110, 0x080c, 0x2a1a, 0x080c, 0x74f1,\r
++      0x0188, 0x080c, 0x750c, 0x1170, 0x080c, 0x77f7, 0x0016, 0x080c,\r
++      0x2713, 0x2001, 0x196d, 0x2102, 0x001e, 0x080c, 0x77f2, 0x080c,\r
++      0x741a, 0x0050, 0x2009, 0x0001, 0x080c, 0x29f6, 0x2001, 0x0001,\r
++      0x080c, 0x25a0, 0x080c, 0x5ee4, 0x012e, 0x000e, 0x00ee, 0x0005,\r
++      0x2001, 0x180e, 0x2004, 0xd0bc, 0x0158, 0x0026, 0x0036, 0x2011,\r
++      0x8017, 0x2001, 0x1999, 0x201c, 0x080c, 0x4b07, 0x003e, 0x002e,\r
++      0x0005, 0x20a9, 0x0012, 0x20e9, 0x0001, 0x20a1, 0x1d80, 0x080c,\r
++      0x6003, 0x20e9, 0x0000, 0x2099, 0x026e, 0x0099, 0x20a9, 0x0020,\r
++      0x080c, 0x5ffd, 0x2099, 0x0260, 0x20a1, 0x1d92, 0x0051, 0x20a9,\r
++      0x000e, 0x080c, 0x6000, 0x2099, 0x0260, 0x20a1, 0x1db2, 0x0009,\r
++      0x0005, 0x0016, 0x0026, 0x3410, 0x3308, 0x2104, 0x8007, 0x2012,\r
++      0x8108, 0x8210, 0x1f04, 0x5f7d, 0x002e, 0x001e, 0x0005, 0x080c,\r
++      0xa690, 0x20e1, 0x0001, 0x2099, 0x1d00, 0x20e9, 0x0000, 0x20a1,\r
++      0x0240, 0x20a9, 0x000c, 0x4003, 0x0005, 0x080c, 0xa690, 0x080c,\r
++      0x6003, 0x20e1, 0x0000, 0x2099, 0x0260, 0x20e9, 0x0000, 0x20a1,\r
++      0x0240, 0x20a9, 0x000c, 0x4003, 0x0005, 0x00c6, 0x0006, 0x2061,\r
++      0x0100, 0x810f, 0x2001, 0x1834, 0x2004, 0x9005, 0x1138, 0x2001,\r
++      0x1818, 0x2004, 0x9084, 0x00ff, 0x9105, 0x0010, 0x9185, 0x00f7,\r
++      0x604a, 0x000e, 0x00ce, 0x0005, 0x0016, 0x0046, 0x080c, 0x6a67,\r
++      0x0158, 0x9006, 0x2020, 0x2009, 0x002a, 0x080c, 0xe2c9, 0x2001,\r
++      0x180c, 0x200c, 0xc195, 0x2102, 0x2019, 0x002a, 0x900e, 0x080c,\r
++      0x31a6, 0x080c, 0xcf52, 0x0140, 0x0036, 0x2019, 0xffff, 0x2021,\r
++      0x0007, 0x080c, 0x4cbe, 0x003e, 0x004e, 0x001e, 0x0005, 0x080c,\r
++      0x5ee4, 0x709b, 0x0000, 0x7093, 0x0000, 0x0005, 0x0006, 0x2001,\r
++      0x180c, 0x2004, 0xd09c, 0x0100, 0x000e, 0x0005, 0x0006, 0x0016,\r
++      0x0126, 0x2091, 0x8000, 0x2001, 0x0101, 0x200c, 0x918d, 0x0006,\r
++      0x2102, 0x012e, 0x001e, 0x000e, 0x0005, 0x2009, 0x0001, 0x0020,\r
++      0x2009, 0x0002, 0x0008, 0x900e, 0x6814, 0x9084, 0xffc0, 0x910d,\r
++      0x6916, 0x0005, 0x00f6, 0x0156, 0x0146, 0x01d6, 0x9006, 0x20a9,\r
++      0x0080, 0x20e9, 0x0001, 0x20a1, 0x1d00, 0x4004, 0x2079, 0x1d00,\r
++      0x7803, 0x2200, 0x7807, 0x00ef, 0x780f, 0x00ef, 0x7813, 0x0138,\r
++      0x7823, 0xffff, 0x7827, 0xffff, 0x01de, 0x014e, 0x015e, 0x00fe,\r
++      0x0005, 0x2001, 0x1800, 0x2003, 0x0001, 0x0005, 0x2001, 0x19a6,\r
++      0x0118, 0x2003, 0x0001, 0x0010, 0x2003, 0x0000, 0x0005, 0x0156,\r
++      0x20a9, 0x0800, 0x2009, 0x1000, 0x9006, 0x200a, 0x8108, 0x1f04,\r
++      0x603d, 0x015e, 0x0005, 0x00d6, 0x0036, 0x0156, 0x0136, 0x0146,\r
++      0x2069, 0x1847, 0x9006, 0xb802, 0xb8d6, 0xb807, 0x0707, 0xb80a,\r
++      0xb80e, 0xb812, 0x9198, 0x3374, 0x231d, 0x939c, 0x00ff, 0xbb16,\r
++      0x0016, 0x0026, 0xb886, 0x080c, 0xab57, 0x1120, 0x9192, 0x007e,\r
++      0x1208, 0xbb86, 0x20a9, 0x0004, 0xb8c4, 0x20e8, 0xb9c8, 0x9198,\r
++      0x0006, 0x9006, 0x23a0, 0x4004, 0x20a9, 0x0004, 0x9198, 0x000a,\r
++      0x23a0, 0x4004, 0x002e, 0x001e, 0xb83e, 0xb842, 0xb8ce, 0xb8d2,\r
++      0xb85e, 0xb862, 0xb866, 0xb86a, 0xb86f, 0x0100, 0xb872, 0xb876,\r
++      0xb87a, 0xb88a, 0xb88e, 0xb893, 0x0008, 0xb896, 0xb89a, 0xb89e,\r
++      0xb8be, 0xb9a2, 0x0096, 0xb8a4, 0x904d, 0x0110, 0x080c, 0x106c,\r
++      0xb8a7, 0x0000, 0x009e, 0x9006, 0xb84a, 0x6810, 0xb83a, 0x680c,\r
++      0xb846, 0xb8bb, 0x0520, 0xb8ac, 0x9005, 0x0198, 0x00c6, 0x2060,\r
++      0x9c82, 0x1ddc, 0x0a0c, 0x0d7d, 0x2001, 0x181a, 0x2004, 0x9c02,\r
++      0x1a0c, 0x0d7d, 0x080c, 0x8b90, 0x00ce, 0x090c, 0x8f34, 0xb8af,\r
++      0x0000, 0x6814, 0x9084, 0x00ff, 0xb842, 0x014e, 0x013e, 0x015e,\r
++      0x003e, 0x00de, 0x0005, 0x0126, 0x2091, 0x8000, 0xa974, 0xae78,\r
++      0x9684, 0x3fff, 0x9082, 0x4000, 0x1a04, 0x6119, 0x9182, 0x0800,\r
++      0x1a04, 0x611d, 0x2001, 0x180c, 0x2004, 0x9084, 0x0003, 0x1904,\r
++      0x6123, 0x9188, 0x1000, 0x2104, 0x905d, 0x0198, 0xb804, 0x9084,\r
++      0x00ff, 0x908e, 0x0006, 0x1188, 0xb8a4, 0x900d, 0x1904, 0x6135,\r
++      0x080c, 0x64ee, 0x9006, 0x012e, 0x0005, 0x2001, 0x0005, 0x900e,\r
++      0x04b8, 0x2001, 0x0028, 0x900e, 0x0498, 0x9082, 0x0006, 0x1290,\r
++      0x080c, 0xab57, 0x1160, 0xb8a0, 0x9084, 0xff80, 0x1140, 0xb900,\r
++      0xd1fc, 0x0d10, 0x2001, 0x0029, 0x2009, 0x1000, 0x0408, 0x2001,\r
++      0x0028, 0x00a8, 0x2009, 0x180c, 0x210c, 0xd18c, 0x0118, 0x2001,\r
++      0x0004, 0x0068, 0xd184, 0x0118, 0x2001, 0x0004, 0x0040, 0x2001,\r
++      0x0029, 0xb900, 0xd1fc, 0x0118, 0x2009, 0x1000, 0x0048, 0x900e,\r
++      0x0038, 0x2001, 0x0029, 0x900e, 0x0018, 0x2001, 0x0029, 0x900e,\r
++      0x9005, 0x012e, 0x0005, 0x2001, 0x180c, 0x2004, 0xd084, 0x19d0,\r
++      0x9188, 0x1000, 0x2104, 0x9065, 0x09a8, 0x080c, 0x6a6b, 0x1990,\r
++      0xb800, 0xd0bc, 0x0978, 0x0804, 0x60dc, 0x080c, 0x6890, 0x0904,\r
++      0x60e5, 0x0804, 0x60e0, 0x00e6, 0x2071, 0x19e7, 0x7004, 0x9086,\r
++      0x0002, 0x1128, 0x7030, 0x9080, 0x0004, 0x2004, 0x9b06, 0x00ee,\r
++      0x0005, 0x00b6, 0x00e6, 0x0126, 0x2091, 0x8000, 0xa874, 0x908e,\r
++      0x00ff, 0x1120, 0x2001, 0x196b, 0x205c, 0x0060, 0xa974, 0x9182,\r
++      0x0800, 0x1690, 0x9188, 0x1000, 0x2104, 0x905d, 0x01d0, 0x080c,\r
++      0x6a0b, 0x11d0, 0x080c, 0xab97, 0x0570, 0x2b00, 0x6012, 0x2900,\r
++      0x6016, 0x6023, 0x0009, 0x602b, 0x0000, 0xa874, 0x908e, 0x00ff,\r
++      0x1110, 0x602b, 0x8000, 0x2009, 0x0043, 0x080c, 0xac8c, 0x9006,\r
++      0x00b0, 0x2001, 0x0028, 0x0090, 0x2009, 0x180c, 0x210c, 0xd18c,\r
++      0x0118, 0x2001, 0x0004, 0x0038, 0xd184, 0x0118, 0x2001, 0x0004,\r
++      0x0010, 0x2001, 0x0029, 0x0010, 0x2001, 0x0029, 0x9005, 0x012e,\r
++      0x00ee, 0x00be, 0x0005, 0x2001, 0x002c, 0x0cc0, 0x00b6, 0x00e6,\r
++      0x0126, 0x2091, 0x8000, 0xa974, 0x9182, 0x0800, 0x1a04, 0x6211,\r
++      0x9188, 0x1000, 0x2104, 0x905d, 0x0904, 0x61e9, 0xb8a0, 0x9086,\r
++      0x007f, 0x0178, 0x080c, 0x6a73, 0x0160, 0xa994, 0x81ff, 0x0130,\r
++      0x908e, 0x0004, 0x0130, 0x908e, 0x0005, 0x0118, 0x080c, 0x6a6b,\r
++      0x1598, 0xa87c, 0xd0fc, 0x01e0, 0xa894, 0x9005, 0x01c8, 0x2060,\r
++      0x0026, 0x2010, 0x080c, 0xc826, 0x002e, 0x1120, 0x2001, 0x0008,\r
++      0x0804, 0x6213, 0x6020, 0x9086, 0x000a, 0x0120, 0x2001, 0x0008,\r
++      0x0804, 0x6213, 0x601a, 0x6003, 0x0008, 0x2900, 0x6016, 0x0058,\r
++      0x080c, 0xab97, 0x05e8, 0x2b00, 0x6012, 0x2900, 0x6016, 0x600b,\r
++      0xffff, 0x6023, 0x000a, 0x2009, 0x0003, 0x080c, 0xac8c, 0x9006,\r
++      0x0458, 0x2001, 0x0028, 0x0438, 0x9082, 0x0006, 0x1290, 0x080c,\r
++      0xab57, 0x1160, 0xb8a0, 0x9084, 0xff80, 0x1140, 0xb900, 0xd1fc,\r
++      0x0900, 0x2001, 0x0029, 0x2009, 0x1000, 0x00a8, 0x2001, 0x0028,\r
++      0x0090, 0x2009, 0x180c, 0x210c, 0xd18c, 0x0118, 0x2001, 0x0004,\r
++      0x0050, 0xd184, 0x0118, 0x2001, 0x0004, 0x0028, 0x2001, 0x0029,\r
++      0x0010, 0x2001, 0x0029, 0x9005, 0x012e, 0x00ee, 0x00be, 0x0005,\r
++      0x2001, 0x002c, 0x0cc0, 0x00f6, 0x00b6, 0x0126, 0x2091, 0x8000,\r
++      0xa8e0, 0x9005, 0x1550, 0xa8dc, 0x9082, 0x0101, 0x1630, 0xa8c8,\r
++      0x9005, 0x1518, 0xa8c4, 0x9082, 0x0101, 0x12f8, 0xa974, 0x2079,\r
++      0x1800, 0x9182, 0x0800, 0x12e8, 0x7830, 0x9084, 0x0003, 0x1130,\r
++      0xaa98, 0xab94, 0xa878, 0x9084, 0x0007, 0x00ea, 0x7930, 0xd18c,\r
++      0x0118, 0x2001, 0x0004, 0x0038, 0xd184, 0x0118, 0x2001, 0x0004,\r
++      0x0010, 0x2001, 0x0029, 0x900e, 0x0038, 0x2001, 0x002c, 0x900e,\r
++      0x0018, 0x2001, 0x0029, 0x900e, 0x9006, 0x0008, 0x9005, 0x012e,\r
++      0x00be, 0x00fe, 0x0005, 0x62a8, 0x6263, 0x627a, 0x62a8, 0x62a8,\r
++      0x62a8, 0x62a8, 0x62a8, 0x2100, 0x9082, 0x007e, 0x1278, 0x080c,\r
++      0x65c4, 0x0148, 0x9046, 0xb810, 0x9306, 0x1904, 0x62b0, 0xb814,\r
++      0x9206, 0x15f0, 0x0028, 0xbb12, 0xba16, 0x0010, 0x080c, 0x49ba,\r
++      0x0150, 0x04b0, 0x080c, 0x6625, 0x1598, 0xb810, 0x9306, 0x1580,\r
++      0xb814, 0x9206, 0x1568, 0x080c, 0xab97, 0x0530, 0x2b00, 0x6012,\r
++      0x080c, 0xcccc, 0x2900, 0x6016, 0x600b, 0xffff, 0x6023, 0x000a,\r
++      0xa878, 0x9086, 0x0001, 0x1170, 0x080c, 0x31e7, 0x9006, 0x080c,\r
++      0x6561, 0x2001, 0x0002, 0x080c, 0x6575, 0x2001, 0x0200, 0xb86e,\r
++      0xb893, 0x0002, 0x2009, 0x0003, 0x080c, 0xac8c, 0x9006, 0x0068,\r
++      0x2001, 0x0001, 0x900e, 0x0038, 0x2001, 0x002c, 0x900e, 0x0018,\r
++      0x2001, 0x0028, 0x900e, 0x9005, 0x0000, 0x012e, 0x00be, 0x00fe,\r
++      0x0005, 0x00b6, 0x00f6, 0x00e6, 0x0126, 0x2091, 0x8000, 0xa894,\r
++      0x90c6, 0x0015, 0x0904, 0x6497, 0x90c6, 0x0056, 0x0904, 0x649b,\r
++      0x90c6, 0x0066, 0x0904, 0x649f, 0x90c6, 0x0067, 0x0904, 0x64a3,\r
++      0x90c6, 0x0068, 0x0904, 0x64a7, 0x90c6, 0x0071, 0x0904, 0x64ab,\r
++      0x90c6, 0x0074, 0x0904, 0x64af, 0x90c6, 0x007c, 0x0904, 0x64b3,\r
++      0x90c6, 0x007e, 0x0904, 0x64b7, 0x90c6, 0x0037, 0x0904, 0x64bb,\r
++      0x9016, 0x2079, 0x1800, 0xa974, 0x9186, 0x00ff, 0x0904, 0x6492,\r
++      0x9182, 0x0800, 0x1a04, 0x6492, 0x080c, 0x6625, 0x1198, 0xb804,\r
++      0x9084, 0x00ff, 0x9082, 0x0006, 0x1268, 0xa894, 0x90c6, 0x006f,\r
++      0x0148, 0x080c, 0xab57, 0x1904, 0x647b, 0xb8a0, 0x9084, 0xff80,\r
++      0x1904, 0x647b, 0xa894, 0x90c6, 0x006f, 0x0158, 0x90c6, 0x005e,\r
++      0x0904, 0x63db, 0x90c6, 0x0064, 0x0904, 0x6404, 0x2008, 0x0804,\r
++      0x639d, 0xa998, 0xa8b0, 0x2040, 0x080c, 0xab57, 0x1120, 0x9182,\r
++      0x007f, 0x0a04, 0x639d, 0x9186, 0x00ff, 0x0904, 0x639d, 0x9182,\r
++      0x0800, 0x1a04, 0x639d, 0xaaa0, 0xab9c, 0x787c, 0x9306, 0x1188,\r
++      0x7880, 0x0096, 0x924e, 0x1128, 0x2208, 0x2310, 0x009e, 0x0804,\r
++      0x639d, 0x99cc, 0xff00, 0x009e, 0x1120, 0x2208, 0x2310, 0x0804,\r
++      0x639d, 0x080c, 0x49ba, 0x0904, 0x63a7, 0x900e, 0x9016, 0x90c6,\r
++      0x4000, 0x15e0, 0x0006, 0x080c, 0x6914, 0x1108, 0xc185, 0xb800,\r
++      0xd0bc, 0x0108, 0xc18d, 0x20a9, 0x0004, 0xa860, 0x20e8, 0xa85c,\r
++      0x9080, 0x0031, 0x20a0, 0xb8c4, 0x20e0, 0xb8c8, 0x9080, 0x0006,\r
++      0x2098, 0x080c, 0x0fb7, 0x20a9, 0x0004, 0xa860, 0x20e8, 0xa85c,\r
++      0x9080, 0x0035, 0x20a0, 0xb8c4, 0x20e0, 0xb8c8, 0x9080, 0x000a,\r
++      0x2098, 0x080c, 0x0fb7, 0xa8c4, 0xabc8, 0x9305, 0xabcc, 0x9305,\r
++      0xabd0, 0x9305, 0xabd4, 0x9305, 0xabd8, 0x9305, 0xabdc, 0x9305,\r
++      0xabe0, 0x9305, 0x9005, 0x0510, 0x000e, 0x00c8, 0x90c6, 0x4007,\r
++      0x1110, 0x2408, 0x00a0, 0x90c6, 0x4008, 0x1118, 0x2708, 0x2610,\r
++      0x0070, 0x90c6, 0x4009, 0x1108, 0x0050, 0x90c6, 0x4006, 0x0138,\r
++      0x2001, 0x4005, 0x2009, 0x000a, 0x0010, 0x2001, 0x4006, 0xa896,\r
++      0xa99a, 0xaa9e, 0x2001, 0x0030, 0x900e, 0x0478, 0x000e, 0x080c,\r
++      0xab97, 0x1130, 0x2001, 0x4005, 0x2009, 0x0003, 0x9016, 0x0c78,\r
++      0x2b00, 0x6012, 0x080c, 0xcccc, 0x2900, 0x6016, 0x6023, 0x0001,\r
++      0xa868, 0xd88c, 0x0108, 0xc0f5, 0xa86a, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x31e7, 0x012e, 0x9006, 0x080c, 0x6561, 0x2001, 0x0002,\r
++      0x080c, 0x6575, 0x2009, 0x0002, 0x080c, 0xac8c, 0xa8b0, 0xd094,\r
++      0x0118, 0xb8d4, 0xc08d, 0xb8d6, 0x9006, 0x9005, 0x012e, 0x00ee,\r
++      0x00fe, 0x00be, 0x0005, 0x080c, 0x56ee, 0x0118, 0x2009, 0x0007,\r
++      0x00f8, 0xa998, 0xaeb0, 0x080c, 0x6625, 0x1904, 0x6398, 0x9186,\r
++      0x007f, 0x0130, 0x080c, 0x6a6b, 0x0118, 0x2009, 0x0009, 0x0080,\r
++      0x0096, 0x080c, 0x103a, 0x1120, 0x009e, 0x2009, 0x0002, 0x0040,\r
++      0x2900, 0x009e, 0xa806, 0x080c, 0xca24, 0x19b0, 0x2009, 0x0003,\r
++      0x2001, 0x4005, 0x0804, 0x639f, 0xa998, 0xaeb0, 0x080c, 0x6625,\r
++      0x1904, 0x6398, 0x0096, 0x080c, 0x103a, 0x1128, 0x009e, 0x2009,\r
++      0x0002, 0x0804, 0x6458, 0x2900, 0x009e, 0xa806, 0x0096, 0x2048,\r
++      0x20a9, 0x002b, 0xb8c4, 0x20e0, 0xb8c8, 0x2098, 0xa860, 0x20e8,\r
++      0xa85c, 0x9080, 0x0002, 0x20a0, 0x4003, 0x20a9, 0x0008, 0x9080,\r
++      0x0006, 0x20a0, 0xbbc8, 0x9398, 0x0006, 0x2398, 0x080c, 0x0fb7,\r
++      0x009e, 0xa87b, 0x0000, 0xa883, 0x0000, 0xa897, 0x4000, 0xd684,\r
++      0x1168, 0x080c, 0x56da, 0xd0b4, 0x1118, 0xa89b, 0x000b, 0x00e0,\r
++      0xb800, 0xd08c, 0x0118, 0xa89b, 0x000c, 0x00b0, 0x080c, 0x6a6b,\r
++      0x0118, 0xa89b, 0x0009, 0x0080, 0x080c, 0x56ee, 0x0118, 0xa89b,\r
++      0x0007, 0x0050, 0x080c, 0xca07, 0x1904, 0x63d4, 0x2009, 0x0003,\r
++      0x2001, 0x4005, 0x0804, 0x639f, 0xa87b, 0x0030, 0xa897, 0x4005,\r
++      0xa804, 0x8006, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0,\r
++      0x9080, 0x0002, 0x2009, 0x002b, 0xaaa0, 0xab9c, 0xaca8, 0xada4,\r
++      0x2031, 0x0000, 0x2041, 0x127e, 0x080c, 0xb112, 0x1904, 0x63d4,\r
++      0x2009, 0x0002, 0x08e8, 0x2001, 0x0028, 0x900e, 0x0804, 0x63d5,\r
++      0x2009, 0x180c, 0x210c, 0xd18c, 0x0118, 0x2001, 0x0004, 0x0038,\r
++      0xd184, 0x0118, 0x2001, 0x0004, 0x0010, 0x2001, 0x0029, 0x900e,\r
++      0x0804, 0x63d5, 0x2001, 0x0029, 0x900e, 0x0804, 0x63d5, 0x080c,\r
++      0x3797, 0x0804, 0x63d6, 0x080c, 0x540f, 0x0804, 0x63d6, 0x080c,\r
++      0x4573, 0x0804, 0x63d6, 0x080c, 0x45ec, 0x0804, 0x63d6, 0x080c,\r
++      0x4648, 0x0804, 0x63d6, 0x080c, 0x4a7d, 0x0804, 0x63d6, 0x080c,\r
++      0x4d34, 0x0804, 0x63d6, 0x080c, 0x507a, 0x0804, 0x63d6, 0x080c,\r
++      0x5273, 0x0804, 0x63d6, 0x080c, 0x39b5, 0x0804, 0x63d6, 0x00b6,\r
++      0xa974, 0xae78, 0x9684, 0x3fff, 0x9082, 0x4000, 0x1608, 0x9182,\r
++      0x0800, 0x1258, 0x9188, 0x1000, 0x2104, 0x905d, 0x0130, 0x080c,\r
++      0x6a6b, 0x1138, 0x00d9, 0x9006, 0x00b0, 0x2001, 0x0028, 0x900e,\r
++      0x0090, 0x9082, 0x0006, 0x1240, 0xb900, 0xd1fc, 0x0d98, 0x2001,\r
++      0x0029, 0x2009, 0x1000, 0x0038, 0x2001, 0x0029, 0x900e, 0x0018,\r
++      0x2001, 0x0029, 0x900e, 0x9005, 0x00be, 0x0005, 0xa877, 0x0000,\r
++      0xb8d0, 0x9005, 0x1904, 0x6555, 0xb888, 0x9005, 0x1904, 0x6555,\r
++      0xb838, 0xb93c, 0x9102, 0x1a04, 0x6555, 0x2b10, 0x080c, 0xabc4,\r
++      0x0904, 0x6551, 0x8108, 0xb93e, 0x6212, 0x2900, 0x6016, 0x6023,\r
++      0x0003, 0x600b, 0xffff, 0x6007, 0x0040, 0xa878, 0x605e, 0xa880,\r
++      0x9084, 0x00ff, 0x6066, 0xa883, 0x0000, 0xa87c, 0xd0ac, 0x0588,\r
++      0xc0dd, 0xa87e, 0xa888, 0x8001, 0x1530, 0xa816, 0xa864, 0x9094,\r
++      0x00f7, 0x9296, 0x0011, 0x11f8, 0x9084, 0x00ff, 0xc0bd, 0x601e,\r
++      0xa8ac, 0xaab0, 0xa836, 0xaa3a, 0x2001, 0x000f, 0x8001, 0x1df0,\r
++      0x2001, 0x8004, 0x6003, 0x0004, 0x6046, 0x00f6, 0x2079, 0x0380,\r
++      0x7818, 0xd0bc, 0x1de8, 0x7833, 0x0010, 0x2c00, 0x7836, 0x781b,\r
++      0x8080, 0x00fe, 0x0005, 0x080c, 0x1731, 0x601c, 0xc0bd, 0x601e,\r
++      0x0c38, 0xd0b4, 0x190c, 0x1c30, 0x2001, 0x8004, 0x6003, 0x0002,\r
++      0x0c18, 0x81ff, 0x1110, 0xb88b, 0x0001, 0x2908, 0xb8cc, 0xb9ce,\r
++      0x9005, 0x1110, 0xb9d2, 0x0020, 0x0096, 0x2048, 0xa902, 0x009e,\r
++      0x0005, 0x00b6, 0x0126, 0x00c6, 0x0026, 0x2091, 0x8000, 0x6210,\r
++      0x2258, 0xba00, 0x9005, 0x0110, 0xc285, 0x0008, 0xc284, 0xba02,\r
++      0x002e, 0x00ce, 0x012e, 0x00be, 0x0005, 0x00b6, 0x0126, 0x00c6,\r
++      0x2091, 0x8000, 0x6210, 0x2258, 0xba04, 0x0006, 0x9086, 0x0006,\r
++      0x1170, 0xb89c, 0xd0ac, 0x0158, 0x080c, 0x6a67, 0x0140, 0x9284,\r
++      0xff00, 0x8007, 0x9086, 0x0007, 0x1110, 0x2011, 0x0600, 0x000e,\r
++      0x9294, 0xff00, 0x9215, 0xba06, 0x0006, 0x9086, 0x0006, 0x1120,\r
++      0xba90, 0x82ff, 0x090c, 0x0d7d, 0x000e, 0x00ce, 0x012e, 0x00be,\r
++      0x0005, 0x00b6, 0x0126, 0x00c6, 0x2091, 0x8000, 0x6210, 0x2258,\r
++      0xba04, 0x0006, 0x9086, 0x0006, 0x1168, 0xb89c, 0xd0a4, 0x0150,\r
++      0x080c, 0x6a63, 0x1138, 0x9284, 0x00ff, 0x9086, 0x0007, 0x1110,\r
++      0x2011, 0x0006, 0x000e, 0x9294, 0x00ff, 0x8007, 0x9215, 0xba06,\r
++      0x00ce, 0x012e, 0x00be, 0x0005, 0x9182, 0x0800, 0x0218, 0x9085,\r
++      0x0001, 0x0005, 0x00d6, 0x0026, 0x9190, 0x1000, 0x2204, 0x905d,\r
++      0x1188, 0x0096, 0x080c, 0x103a, 0x2958, 0x009e, 0x0168, 0x2b00,\r
++      0x2012, 0xb85c, 0xb8ca, 0xb860, 0xb8c6, 0x9006, 0xb8a6, 0xb8ae,\r
++      0x080c, 0x6043, 0x9006, 0x0010, 0x9085, 0x0001, 0x002e, 0x00de,\r
++      0x0005, 0x00b6, 0x0096, 0x0126, 0x2091, 0x8000, 0x0026, 0x9182,\r
++      0x0800, 0x0218, 0x9085, 0x0001, 0x0458, 0x00d6, 0x9190, 0x1000,\r
++      0x2204, 0x905d, 0x0518, 0x2013, 0x0000, 0xb8a4, 0x904d, 0x0110,\r
++      0x080c, 0x106c, 0x00d6, 0x00c6, 0xb8bc, 0x2060, 0x8cff, 0x0168,\r
++      0x600c, 0x0006, 0x6014, 0x2048, 0x080c, 0xc838, 0x0110, 0x080c,\r
++      0x0fec, 0x080c, 0xabed, 0x00ce, 0x0c88, 0x00ce, 0x00de, 0x2b48,\r
++      0xb8c8, 0xb85e, 0xb8c4, 0xb862, 0x080c, 0x107c, 0x00de, 0x9006,\r
++      0x002e, 0x012e, 0x009e, 0x00be, 0x0005, 0x0016, 0x9182, 0x0800,\r
++      0x0218, 0x9085, 0x0001, 0x0030, 0x9188, 0x1000, 0x2104, 0x905d,\r
++      0x0dc0, 0x9006, 0x001e, 0x0005, 0x00d6, 0x0156, 0x0136, 0x0146,\r
++      0x9006, 0xb80a, 0xb80e, 0xb800, 0xc08c, 0xb802, 0x080c, 0x74e9,\r
++      0x1510, 0xb8a0, 0x9086, 0x007e, 0x0120, 0x080c, 0xab57, 0x11d8,\r
++      0x0078, 0x7040, 0xd0e4, 0x01b8, 0x00c6, 0x2061, 0x1982, 0x7048,\r
++      0x2062, 0x704c, 0x6006, 0x7050, 0x600a, 0x7054, 0x600e, 0x00ce,\r
++      0x703c, 0x2069, 0x0140, 0x9005, 0x1110, 0x2001, 0x0001, 0x6886,\r
++      0x2069, 0x1800, 0x68b6, 0x7040, 0xb85e, 0x7048, 0xb862, 0x704c,\r
++      0xb866, 0x20e1, 0x0000, 0x2099, 0x0276, 0xb8c4, 0x20e8, 0xb8c8,\r
++      0x9088, 0x000a, 0x21a0, 0x20a9, 0x0004, 0x4003, 0x2099, 0x027a,\r
++      0x9088, 0x0006, 0x21a0, 0x20a9, 0x0004, 0x4003, 0x2069, 0x0200,\r
++      0x6817, 0x0001, 0x7040, 0xb86a, 0x7144, 0xb96e, 0x7048, 0xb872,\r
++      0x7050, 0xb876, 0x2069, 0x0200, 0x6817, 0x0000, 0xb8a0, 0x9086,\r
++      0x007e, 0x1110, 0x7144, 0xb96e, 0x9182, 0x0211, 0x1218, 0x2009,\r
++      0x0008, 0x0400, 0x9182, 0x0259, 0x1218, 0x2009, 0x0007, 0x00d0,\r
++      0x9182, 0x02c1, 0x1218, 0x2009, 0x0006, 0x00a0, 0x9182, 0x0349,\r
++      0x1218, 0x2009, 0x0005, 0x0070, 0x9182, 0x0421, 0x1218, 0x2009,\r
++      0x0004, 0x0040, 0x9182, 0x0581, 0x1218, 0x2009, 0x0003, 0x0010,\r
++      0x2009, 0x0002, 0xb992, 0x014e, 0x013e, 0x015e, 0x00de, 0x0005,\r
++      0x0016, 0x0026, 0x00e6, 0x2071, 0x0260, 0x7034, 0xb896, 0x703c,\r
++      0xb89a, 0x7054, 0xb89e, 0x0036, 0xbbd4, 0xc384, 0xba00, 0x2009,\r
++      0x1867, 0x210c, 0xd0bc, 0x0120, 0xd1ec, 0x0110, 0xc2ad, 0x0008,\r
++      0xc2ac, 0xd0c4, 0x0148, 0xd1e4, 0x0138, 0xc2bd, 0xd0cc, 0x0128,\r
++      0xd38c, 0x1108, 0xc385, 0x0008, 0xc2bc, 0xba02, 0xbbd6, 0x003e,\r
++      0x00ee, 0x002e, 0x001e, 0x0005, 0x0096, 0x0126, 0x2091, 0x8000,\r
++      0xb8a4, 0x904d, 0x0578, 0xa900, 0x81ff, 0x15c0, 0xaa04, 0x9282,\r
++      0x0010, 0x16c8, 0x0136, 0x0146, 0x01c6, 0x01d6, 0x8906, 0x8006,\r
++      0x8007, 0x908c, 0x003f, 0x21e0, 0x9084, 0xffc0, 0x9080, 0x0004,\r
++      0x2098, 0x2009, 0x0010, 0x20a9, 0x0001, 0x4002, 0x9086, 0xffff,\r
++      0x0120, 0x8109, 0x1dd0, 0x080c, 0x0d7d, 0x3c00, 0x20e8, 0x3300,\r
++      0x8001, 0x20a0, 0x4604, 0x8210, 0xaa06, 0x01de, 0x01ce, 0x014e,\r
++      0x013e, 0x0060, 0x080c, 0x103a, 0x0170, 0x2900, 0xb8a6, 0xa803,\r
++      0x0000, 0x080c, 0x68b0, 0xa807, 0x0001, 0xae12, 0x9085, 0x0001,\r
++      0x012e, 0x009e, 0x0005, 0x9006, 0x0cd8, 0x0126, 0x2091, 0x8000,\r
++      0x0096, 0xb8a4, 0x904d, 0x0188, 0xa800, 0x9005, 0x1150, 0x080c,\r
++      0x68bf, 0x1158, 0xa804, 0x908a, 0x0002, 0x0218, 0x8001, 0xa806,\r
++      0x0020, 0x080c, 0x106c, 0xb8a7, 0x0000, 0x009e, 0x012e, 0x0005,\r
++      0x0096, 0x00c6, 0xb888, 0x9005, 0x1904, 0x67a9, 0xb8d0, 0x904d,\r
++      0x0904, 0x67a9, 0x080c, 0xabc4, 0x0904, 0x67a5, 0x8210, 0xba3e,\r
++      0xa800, 0xb8d2, 0x9005, 0x1108, 0xb8ce, 0x2b00, 0x6012, 0x2900,\r
++      0x6016, 0x6023, 0x0003, 0x600b, 0xffff, 0x6007, 0x0040, 0xa878,\r
++      0x605e, 0xa880, 0x9084, 0x00ff, 0x6066, 0xa883, 0x0000, 0xa87c,\r
++      0xd0ac, 0x01c8, 0xc0dd, 0xa87e, 0xa888, 0x8001, 0x1568, 0xa816,\r
++      0xa864, 0x9094, 0x00f7, 0x9296, 0x0011, 0x1530, 0x9084, 0x00ff,\r
++      0xc0bd, 0x601e, 0xa8ac, 0xaab0, 0xa836, 0xaa3a, 0x2001, 0x8004,\r
++      0x6003, 0x0004, 0x0030, 0x080c, 0x1c30, 0x2001, 0x8004, 0x6003,\r
++      0x0002, 0x6046, 0x2001, 0x0010, 0x2c08, 0x080c, 0xa887, 0xb838,\r
++      0xba3c, 0x9202, 0x0a04, 0x6756, 0x0020, 0x82ff, 0x1110, 0xb88b,\r
++      0x0001, 0x00ce, 0x009e, 0x0005, 0x080c, 0x1731, 0x601c, 0xc0bd,\r
++      0x601e, 0x08e0, 0x00b6, 0x0096, 0x0016, 0x20a9, 0x0800, 0x900e,\r
++      0x0016, 0x080c, 0x6625, 0x1158, 0xb8d0, 0x904d, 0x0140, 0x3e00,\r
++      0x9086, 0x0002, 0x1118, 0xb800, 0xd0bc, 0x1108, 0x0041, 0x001e,\r
++      0x8108, 0x1f04, 0x67b8, 0x001e, 0x00be, 0x009e, 0x0005, 0x0096,\r
++      0x0016, 0xb8d0, 0x904d, 0x0188, 0xa800, 0xb8d2, 0x9005, 0x1108,\r
++      0xb8ce, 0x9006, 0xa802, 0xa867, 0x0103, 0xab7a, 0xa877, 0x0000,\r
++      0x080c, 0xcb36, 0x080c, 0x6d80, 0x0c60, 0x001e, 0x009e, 0x0005,\r
++      0x0086, 0x9046, 0xb8d0, 0x904d, 0x0198, 0xa86c, 0x9406, 0x1118,\r
++      0xa870, 0x9506, 0x0128, 0x2940, 0xa800, 0x904d, 0x0148, 0x0ca8,\r
++      0xa800, 0x88ff, 0x1110, 0xb8d2, 0x0008, 0xa002, 0xa803, 0x0000,\r
++      0x008e, 0x0005, 0x901e, 0x0010, 0x2019, 0x0001, 0x00e6, 0x0096,\r
++      0x00c6, 0x0086, 0x0026, 0x0126, 0x2091, 0x8000, 0x2071, 0x19e7,\r
++      0x9046, 0x7028, 0x9065, 0x01e8, 0x6014, 0x2068, 0x83ff, 0x0120,\r
++      0x605c, 0x9606, 0x0158, 0x0030, 0xa86c, 0x9406, 0x1118, 0xa870,\r
++      0x9506, 0x0120, 0x2c40, 0x600c, 0x2060, 0x0c60, 0x600c, 0x0006,\r
++      0x0066, 0x2830, 0x080c, 0x9fa2, 0x006e, 0x000e, 0x83ff, 0x0508,\r
++      0x0c08, 0x9046, 0xb8d0, 0x904d, 0x01e0, 0x83ff, 0x0120, 0xa878,\r
++      0x9606, 0x0158, 0x0030, 0xa86c, 0x9406, 0x1118, 0xa870, 0x9506,\r
++      0x0120, 0x2940, 0xa800, 0x2048, 0x0c70, 0xb8d0, 0xaa00, 0x0026,\r
++      0x9906, 0x1110, 0xbad2, 0x0008, 0xa202, 0x000e, 0x83ff, 0x0108,\r
++      0x0c10, 0x002e, 0x008e, 0x00ce, 0x009e, 0x00ee, 0x0005, 0x9016,\r
++      0x0489, 0x1110, 0x2011, 0x0001, 0x0005, 0x080c, 0x6914, 0x0128,\r
++      0x080c, 0xc8f9, 0x0010, 0x9085, 0x0001, 0x0005, 0x080c, 0x6914,\r
++      0x0128, 0x080c, 0xc89a, 0x0010, 0x9085, 0x0001, 0x0005, 0x080c,\r
++      0x6914, 0x0128, 0x080c, 0xc8f6, 0x0010, 0x9085, 0x0001, 0x0005,\r
++      0x080c, 0x6914, 0x0128, 0x080c, 0xc8b9, 0x0010, 0x9085, 0x0001,\r
++      0x0005, 0x080c, 0x6914, 0x0128, 0x080c, 0xc93a, 0x0010, 0x9085,\r
++      0x0001, 0x0005, 0xb8a4, 0x900d, 0x1118, 0x9085, 0x0001, 0x0005,\r
++      0x0136, 0x01c6, 0xa800, 0x9005, 0x11b8, 0x890e, 0x810e, 0x810f,\r
++      0x9184, 0x003f, 0x20e0, 0x9184, 0xffc0, 0x9080, 0x0004, 0x2098,\r
++      0x20a9, 0x0001, 0x2009, 0x0010, 0x4002, 0x9606, 0x0128, 0x8109,\r
++      0x1dd8, 0x9085, 0x0001, 0x0008, 0x9006, 0x01ce, 0x013e, 0x0005,\r
++      0x0146, 0x01d6, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0004, 0x20a0,\r
++      0x20a9, 0x0010, 0x2009, 0xffff, 0x4104, 0x01de, 0x014e, 0x0136,\r
++      0x01c6, 0xa800, 0x9005, 0x11b8, 0x890e, 0x810e, 0x810f, 0x9184,\r
++      0x003f, 0x20e0, 0x9184, 0xffc0, 0x9080, 0x0004, 0x2098, 0x20a9,\r
++      0x0001, 0x2009, 0x0010, 0x4002, 0x9606, 0x0128, 0x8109, 0x1dd8,\r
++      0x9085, 0x0001, 0x0068, 0x0146, 0x01d6, 0x3300, 0x8001, 0x20a0,\r
++      0x3c00, 0x20e8, 0x2001, 0xffff, 0x4004, 0x01de, 0x014e, 0x9006,\r
++      0x01ce, 0x013e, 0x0005, 0x0096, 0x0126, 0x2091, 0x8000, 0xb8a4,\r
++      0x904d, 0x1128, 0x080c, 0x103a, 0x0168, 0x2900, 0xb8a6, 0x080c,\r
++      0x68b0, 0xa803, 0x0001, 0xa807, 0x0000, 0x9085, 0x0001, 0x012e,\r
++      0x009e, 0x0005, 0x9006, 0x0cd8, 0x0096, 0x0126, 0x2091, 0x8000,\r
++      0xb8a4, 0x904d, 0x0130, 0xb8a7, 0x0000, 0x080c, 0x106c, 0x9085,\r
++      0x0001, 0x012e, 0x009e, 0x0005, 0xb89c, 0xd0a4, 0x0005, 0x00b6,\r
++      0x00f6, 0x080c, 0x74e9, 0x01b0, 0x71c4, 0x81ff, 0x1198, 0x71dc,\r
++      0xd19c, 0x0180, 0x2001, 0x007e, 0x9080, 0x1000, 0x2004, 0x905d,\r
++      0x0148, 0xb804, 0x9084, 0x00ff, 0x9086, 0x0006, 0x1118, 0xb800,\r
++      0xc0ed, 0xb802, 0x2079, 0x1847, 0x7804, 0xd0a4, 0x01d0, 0x0156,\r
++      0x20a9, 0x007f, 0x900e, 0x0016, 0x080c, 0x6625, 0x1168, 0xb804,\r
++      0x9084, 0xff00, 0x8007, 0x9096, 0x0004, 0x0118, 0x9086, 0x0006,\r
++      0x1118, 0xb800, 0xc0ed, 0xb802, 0x001e, 0x8108, 0x1f04, 0x693b,\r
++      0x015e, 0x080c, 0x6a29, 0x0120, 0x2001, 0x1985, 0x200c, 0x0038,\r
++      0x2079, 0x1847, 0x7804, 0xd0a4, 0x0130, 0x2009, 0x07d0, 0x2011,\r
++      0x6966, 0x080c, 0x8708, 0x00fe, 0x00be, 0x0005, 0x00b6, 0x2011,\r
++      0x6966, 0x080c, 0x863e, 0x080c, 0x6a29, 0x01d8, 0x2001, 0x107e,\r
++      0x2004, 0x2058, 0xb900, 0xc1ec, 0xb902, 0x080c, 0x6a67, 0x0130,\r
++      0x2009, 0x07d0, 0x2011, 0x6966, 0x080c, 0x8708, 0x00e6, 0x2071,\r
++      0x1800, 0x9006, 0x707e, 0x7060, 0x7082, 0x080c, 0x2fb2, 0x00ee,\r
++      0x04d0, 0x0156, 0x00c6, 0x20a9, 0x007f, 0x900e, 0x0016, 0x080c,\r
++      0x6625, 0x1558, 0xb800, 0xd0ec, 0x0540, 0x0046, 0xbaa0, 0x2220,\r
++      0x9006, 0x2009, 0x0029, 0x080c, 0xe2c9, 0xb800, 0xc0e5, 0xc0ec,\r
++      0xb802, 0x080c, 0x6a63, 0x2001, 0x0707, 0x1128, 0xb804, 0x9084,\r
++      0x00ff, 0x9085, 0x0700, 0xb806, 0x080c, 0xa896, 0x2019, 0x0029,\r
++      0x080c, 0x93a5, 0x0076, 0x903e, 0x080c, 0x9277, 0x900e, 0x080c,\r
++      0xdfeb, 0x007e, 0x004e, 0x080c, 0xa8b2, 0x001e, 0x8108, 0x1f04,\r
++      0x698e, 0x00ce, 0x015e, 0x00be, 0x0005, 0x00b6, 0x6010, 0x2058,\r
++      0xb800, 0xc0ec, 0xb802, 0x00be, 0x0005, 0x00b6, 0x00c6, 0x0096,\r
++      0x080c, 0x1053, 0x090c, 0x0d7d, 0x2958, 0x009e, 0x2001, 0x196b,\r
++      0x2b02, 0x8b07, 0x8006, 0x8006, 0x908c, 0x003f, 0xb9c6, 0x908c,\r
++      0xffc0, 0xb9ca, 0xb8af, 0x0000, 0x2009, 0x00ff, 0x080c, 0x6043,\r
++      0xb807, 0x0006, 0xb813, 0x00ff, 0xb817, 0xffff, 0xb86f, 0x0200,\r
++      0xb86c, 0xb893, 0x0002, 0xb8bb, 0x0520, 0xb8a3, 0x00ff, 0xb8af,\r
++      0x0000, 0x00ce, 0x00be, 0x0005, 0x7810, 0x00b6, 0x2058, 0xb800,\r
++      0x00be, 0xd0ac, 0x0005, 0x6010, 0x00b6, 0x905d, 0x0108, 0xb800,\r
++      0x00be, 0xd0bc, 0x0005, 0x0006, 0x0016, 0x0026, 0xb804, 0x908c,\r
++      0x00ff, 0x9196, 0x0006, 0x0188, 0x9196, 0x0004, 0x0170, 0x9196,\r
++      0x0005, 0x0158, 0x908c, 0xff00, 0x810f, 0x9196, 0x0006, 0x0128,\r
++      0x9196, 0x0004, 0x0110, 0x9196, 0x0005, 0x002e, 0x001e, 0x000e,\r
++      0x0005, 0x00b6, 0x00f6, 0x2001, 0x107e, 0x2004, 0x905d, 0x0110,\r
++      0xb800, 0xd0ec, 0x00fe, 0x00be, 0x0005, 0x0126, 0x0026, 0x2091,\r
++      0x8000, 0x0006, 0xbaa0, 0x9290, 0x1000, 0x2204, 0x9b06, 0x190c,\r
++      0x0d7d, 0x000e, 0xba00, 0x9005, 0x0110, 0xc2fd, 0x0008, 0xc2fc,\r
++      0xba02, 0x002e, 0x012e, 0x0005, 0x2011, 0x1837, 0x2204, 0xd0cc,\r
++      0x0138, 0x2001, 0x1983, 0x200c, 0x2011, 0x6a59, 0x080c, 0x8708,\r
++      0x0005, 0x2011, 0x6a59, 0x080c, 0x863e, 0x2011, 0x1837, 0x2204,\r
++      0xc0cc, 0x2012, 0x0005, 0x080c, 0x56da, 0xd0ac, 0x0005, 0x080c,\r
++      0x56da, 0xd0a4, 0x0005, 0x0016, 0xb904, 0x9184, 0x00ff, 0x908e,\r
++      0x0006, 0x001e, 0x0005, 0x0016, 0xb904, 0x9184, 0xff00, 0x8007,\r
++      0x908e, 0x0006, 0x001e, 0x0005, 0x00b6, 0x00f6, 0x080c, 0xcf52,\r
++      0x0158, 0x70dc, 0x9084, 0x0028, 0x0138, 0x2001, 0x107f, 0x2004,\r
++      0x905d, 0x0110, 0xb8d4, 0xd094, 0x00fe, 0x00be, 0x0005, 0x2071,\r
++      0x1910, 0x7003, 0x0001, 0x7007, 0x0000, 0x9006, 0x7012, 0x7016,\r
++      0x701a, 0x701e, 0x700a, 0x7046, 0x2001, 0x1947, 0x2003, 0x0000,\r
++      0x0005, 0x0016, 0x00e6, 0x2071, 0x1948, 0x900e, 0x710a, 0x080c,\r
++      0x56da, 0xd0fc, 0x1140, 0x080c, 0x56da, 0x900e, 0xd09c, 0x0108,\r
++      0x8108, 0x7102, 0x00f8, 0x2001, 0x1867, 0x200c, 0x9184, 0x0007,\r
++      0x0002, 0x6aab, 0x6aab, 0x6aab, 0x6aab, 0x6aab, 0x6ac1, 0x6acf,\r
++      0x6aab, 0x7003, 0x0003, 0x2009, 0x1868, 0x210c, 0x9184, 0xff00,\r
++      0x8007, 0x9005, 0x1110, 0x2001, 0x0002, 0x7006, 0x0018, 0x7003,\r
++      0x0005, 0x0c88, 0x00ee, 0x001e, 0x0005, 0x00e6, 0x2071, 0x0050,\r
++      0x684c, 0x9005, 0x1150, 0x00e6, 0x2071, 0x1910, 0x7028, 0xc085,\r
++      0x702a, 0x00ee, 0x9085, 0x0001, 0x0488, 0x6844, 0x9005, 0x0158,\r
++      0x080c, 0x785f, 0x6a60, 0x9200, 0x7002, 0x6864, 0x9101, 0x7006,\r
++      0x9006, 0x7012, 0x7016, 0x6860, 0x7002, 0x6864, 0x7006, 0x6868,\r
++      0x700a, 0x686c, 0x700e, 0x6844, 0x9005, 0x1110, 0x7012, 0x7016,\r
++      0x684c, 0x701a, 0x701c, 0x9085, 0x0040, 0x701e, 0x7037, 0x0019,\r
++      0x702b, 0x0001, 0x00e6, 0x2071, 0x1910, 0x7028, 0xc084, 0x702a,\r
++      0x7007, 0x0001, 0x700b, 0x0000, 0x00ee, 0x9006, 0x00ee, 0x0005,\r
++      0x00e6, 0x0026, 0x2071, 0x1948, 0x7000, 0x9015, 0x0904, 0x6d85,\r
++      0x9286, 0x0003, 0x0904, 0x6c15, 0x9286, 0x0005, 0x0904, 0x6c15,\r
++      0x2071, 0x1877, 0xa87c, 0x9005, 0x0904, 0x6b76, 0x7140, 0xa868,\r
++      0x9102, 0x0a04, 0x6d85, 0xa878, 0xd084, 0x15d8, 0xa853, 0x0019,\r
++      0x2001, 0x8023, 0xa84e, 0x2071, 0x1910, 0x701c, 0x9005, 0x1904,\r
++      0x6f28, 0x0e04, 0x6f96, 0x2071, 0x0000, 0xa850, 0x7032, 0xa84c,\r
++      0x7082, 0xa870, 0x7086, 0xa86c, 0x708a, 0xa880, 0x708e, 0x7036,\r
++      0x0146, 0x01d6, 0x0136, 0x01c6, 0x0156, 0x20e9, 0x0000, 0x20a1,\r
++      0x002a, 0xa868, 0x20a8, 0xa860, 0x20e0, 0xa85c, 0x9080, 0x0021,\r
++      0x2098, 0x4003, 0x015e, 0x01ce, 0x013e, 0x01de, 0x014e, 0x2091,\r
++      0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x11d6, 0x0804,\r
++      0x6bf8, 0xa853, 0x001b, 0x2001, 0x8027, 0x0820, 0x7004, 0xd08c,\r
++      0x1904, 0x6d85, 0xa853, 0x001a, 0x2001, 0x8024, 0x0804, 0x6b3a,\r
++      0x00e6, 0x0026, 0x2071, 0x1948, 0x7000, 0x9015, 0x0904, 0x6d85,\r
++      0x9286, 0x0003, 0x0904, 0x6c15, 0x9286, 0x0005, 0x0904, 0x6c15,\r
++      0xa84f, 0x8022, 0xa853, 0x0018, 0x0804, 0x6bdd, 0xa868, 0xd0fc,\r
++      0x11d8, 0x00e6, 0x0026, 0x2001, 0x1948, 0x2004, 0x9005, 0x0904,\r
++      0x6d85, 0xa87c, 0xd0bc, 0x1904, 0x6d85, 0xa978, 0xa874, 0x9105,\r
++      0x1904, 0x6d85, 0x2001, 0x1948, 0x2004, 0x0002, 0x6d85, 0x6bd9,\r
++      0x6c15, 0x6c15, 0x6d85, 0x6c15, 0x0005, 0xa868, 0xd0fc, 0x1500,\r
++      0x00e6, 0x0026, 0x2009, 0x1948, 0x210c, 0x81ff, 0x0904, 0x6d85,\r
++      0xa87c, 0xd0cc, 0x0904, 0x6d85, 0xa880, 0x9084, 0x00ff, 0x9086,\r
++      0x0001, 0x1904, 0x6d85, 0x9186, 0x0003, 0x0904, 0x6c15, 0x9186,\r
++      0x0005, 0x0904, 0x6c15, 0xa84f, 0x8021, 0xa853, 0x0017, 0x0028,\r
++      0x0005, 0xa84f, 0x8020, 0xa853, 0x0016, 0x2071, 0x1910, 0x701c,\r
++      0x9005, 0x1904, 0x6f28, 0x0e04, 0x6f96, 0x2071, 0x0000, 0xa84c,\r
++      0x7082, 0xa850, 0x7032, 0xa86c, 0x7086, 0x7036, 0xa870, 0x708a,\r
++      0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x11d6,\r
++      0x2071, 0x1800, 0x2011, 0x0001, 0xa804, 0x900d, 0x702c, 0x1158,\r
++      0xa802, 0x2900, 0x702e, 0x70c0, 0x9200, 0x70c2, 0x080c, 0x8553,\r
++      0x002e, 0x00ee, 0x0005, 0x0096, 0x2148, 0xa904, 0xa802, 0x8210,\r
++      0x2900, 0x81ff, 0x1dc8, 0x009e, 0x0c58, 0xa84f, 0x0000, 0x00f6,\r
++      0x2079, 0x0050, 0x2071, 0x1910, 0xa803, 0x0000, 0x7010, 0x9005,\r
++      0x1904, 0x6d0a, 0x782c, 0x908c, 0x0780, 0x190c, 0x70e2, 0x8004,\r
++      0x8004, 0x8004, 0x9084, 0x0003, 0x0002, 0x6c33, 0x6d0a, 0x6c58,\r
++      0x6ca5, 0x080c, 0x0d7d, 0x2071, 0x1800, 0x2900, 0x7822, 0xa804,\r
++      0x900d, 0x1170, 0x2071, 0x1a03, 0x703c, 0x9005, 0x1328, 0x2001,\r
++      0x1949, 0x2004, 0x8005, 0x703e, 0x00fe, 0x002e, 0x00ee, 0x0005,\r
++      0x9016, 0x702c, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff,\r
++      0x1dc8, 0x702e, 0x70c0, 0x9200, 0x70c2, 0x080c, 0x8553, 0x0c10,\r
++      0x2071, 0x1800, 0x2900, 0x7822, 0xa804, 0x900d, 0x15a8, 0x7824,\r
++      0x00e6, 0x2071, 0x0040, 0x712c, 0xd19c, 0x1170, 0x2009, 0x1830,\r
++      0x210c, 0x918a, 0x0020, 0x0240, 0x7022, 0x2001, 0x1dc0, 0x200c,\r
++      0x8108, 0x2102, 0x00ee, 0x0058, 0x00ee, 0x2048, 0x702c, 0xa802,\r
++      0x2900, 0x702e, 0x70c0, 0x8000, 0x70c2, 0x080c, 0x8553, 0x782c,\r
++      0x9094, 0x0780, 0x190c, 0x70e2, 0xd0a4, 0x19c8, 0x2071, 0x1a03,\r
++      0x703c, 0x9005, 0x1328, 0x2001, 0x1949, 0x2004, 0x8005, 0x703e,\r
++      0x00fe, 0x002e, 0x00ee, 0x0005, 0x9016, 0x702c, 0x2148, 0xa904,\r
++      0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e, 0x70c0, 0x9200,\r
++      0x70c2, 0x080c, 0x8553, 0x0804, 0x6c5f, 0x0096, 0x00e6, 0x7824,\r
++      0x2048, 0x2071, 0x1800, 0x702c, 0xa802, 0x2900, 0x702e, 0x70c0,\r
++      0x8000, 0x70c2, 0x080c, 0x8553, 0x782c, 0x9094, 0x0780, 0x190c,\r
++      0x70e2, 0xd0a4, 0x1d60, 0x00ee, 0x782c, 0x9094, 0x0780, 0x190c,\r
++      0x70e2, 0xd09c, 0x11a0, 0x009e, 0x2900, 0x7822, 0xa804, 0x900d,\r
++      0x1560, 0x2071, 0x1a03, 0x703c, 0x9005, 0x1328, 0x2001, 0x1949,\r
++      0x2004, 0x8005, 0x703e, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x009e,\r
++      0x2908, 0x7010, 0x8000, 0x7012, 0x7018, 0x904d, 0x711a, 0x0110,\r
++      0xa902, 0x0008, 0x711e, 0x2148, 0xa804, 0x900d, 0x1170, 0x2071,\r
++      0x1a03, 0x703c, 0x9005, 0x1328, 0x2001, 0x1949, 0x2004, 0x8005,\r
++      0x703e, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x2071, 0x1800, 0x9016,\r
++      0x702c, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8,\r
++      0x702e, 0x70c0, 0x9200, 0x70c2, 0x080c, 0x8553, 0x00fe, 0x002e,\r
++      0x00ee, 0x0005, 0x2908, 0x7010, 0x8000, 0x7012, 0x7018, 0x904d,\r
++      0x711a, 0x0110, 0xa902, 0x0008, 0x711e, 0x2148, 0xa804, 0x900d,\r
++      0x1904, 0x6d5f, 0x782c, 0x9094, 0x0780, 0x190c, 0x70e2, 0xd09c,\r
++      0x1198, 0x701c, 0x904d, 0x0180, 0x7010, 0x8001, 0x7012, 0x1108,\r
++      0x701a, 0xa800, 0x701e, 0x2900, 0x7822, 0x782c, 0x9094, 0x0780,\r
++      0x190c, 0x70e2, 0xd09c, 0x0d68, 0x782c, 0x9094, 0x0780, 0x190c,\r
++      0x70e2, 0xd0a4, 0x01b0, 0x00e6, 0x7824, 0x2048, 0x2071, 0x1800,\r
++      0x702c, 0xa802, 0x2900, 0x702e, 0x70c0, 0x8000, 0x70c2, 0x080c,\r
++      0x8553, 0x782c, 0x9094, 0x0780, 0x190c, 0x70e2, 0xd0a4, 0x1d60,\r
++      0x00ee, 0x2071, 0x1a03, 0x703c, 0x9005, 0x1328, 0x2001, 0x1949,\r
++      0x2004, 0x8005, 0x703e, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x00e6,\r
++      0x2071, 0x1800, 0x9016, 0x702c, 0x2148, 0xa904, 0xa802, 0x8210,\r
++      0x2900, 0x81ff, 0x1dc8, 0x702e, 0x70c0, 0x9200, 0x70c2, 0x080c,\r
++      0x8553, 0x00ee, 0x0804, 0x6d1a, 0xa868, 0xd0fc, 0x1560, 0x0096,\r
++      0xa804, 0xa807, 0x0000, 0x904d, 0x190c, 0x0fec, 0x009e, 0x0018,\r
++      0xa868, 0xd0fc, 0x1500, 0x00e6, 0x0026, 0xa84f, 0x0000, 0x00f6,\r
++      0x2079, 0x0050, 0x2071, 0x1910, 0xa803, 0x0000, 0x7010, 0x9005,\r
++      0x1904, 0x6ea2, 0x782c, 0x908c, 0x0780, 0x190c, 0x70e2, 0x8004,\r
++      0x8004, 0x8004, 0x9084, 0x0003, 0x0002, 0x6da4, 0x6ea2, 0x6dbf,\r
++      0x6e31, 0x080c, 0x0d7d, 0x0005, 0x2071, 0x1800, 0x2900, 0x7822,\r
++      0xa804, 0x900d, 0x1120, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x9016,\r
++      0x702c, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8,\r
++      0x702e, 0x70c0, 0x9200, 0x70c2, 0x080c, 0x8553, 0x0c60, 0x2071,\r
++      0x1800, 0x2900, 0x7822, 0xa804, 0x900d, 0x1904, 0x6e20, 0x7830,\r
++      0xd0dc, 0x1120, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x7824, 0x00e6,\r
++      0x2071, 0x0040, 0x712c, 0xd19c, 0x1170, 0x2009, 0x1830, 0x210c,\r
++      0x918a, 0x0020, 0x0240, 0x7022, 0x2001, 0x1dc0, 0x200c, 0x8108,\r
++      0x2102, 0x00ee, 0x0058, 0x00ee, 0x2048, 0x702c, 0xa802, 0x2900,\r
++      0x702e, 0x70c0, 0x8000, 0x70c2, 0x080c, 0x8553, 0x782c, 0x9094,\r
++      0x0780, 0x190c, 0x70e2, 0xd0a4, 0x19c8, 0x0e04, 0x6e17, 0x7838,\r
++      0x7938, 0x910e, 0x1de0, 0x00d6, 0x2069, 0x0000, 0x6836, 0x6833,\r
++      0x0013, 0x00de, 0x2001, 0x1921, 0x200c, 0xc184, 0x2102, 0x2091,\r
++      0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x11d6, 0x2009,\r
++      0x1947, 0x200b, 0x0000, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x2001,\r
++      0x1921, 0x200c, 0xc185, 0x2102, 0x00fe, 0x002e, 0x00ee, 0x0005,\r
++      0x9016, 0x702c, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff,\r
++      0x1dc8, 0x702e, 0x70c0, 0x9200, 0x70c2, 0x080c, 0x8553, 0x0804,\r
++      0x6dce, 0x0096, 0x00e6, 0x7824, 0x2048, 0x2071, 0x1800, 0x702c,\r
++      0xa802, 0x2900, 0x702e, 0x70c0, 0x8000, 0x70c2, 0x080c, 0x8553,\r
++      0x782c, 0x9094, 0x0780, 0x190c, 0x70e2, 0xd0a4, 0x1d60, 0x00ee,\r
++      0x0e04, 0x6e75, 0x7838, 0x7938, 0x910e, 0x1de0, 0x00d6, 0x2069,\r
++      0x0000, 0x6836, 0x6833, 0x0013, 0x00de, 0x7044, 0xc084, 0x7046,\r
++      0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x11d6,\r
++      0x2009, 0x1947, 0x200b, 0x0000, 0x782c, 0x9094, 0x0780, 0x190c,\r
++      0x70e2, 0xd09c, 0x1170, 0x009e, 0x2900, 0x7822, 0xa804, 0x900d,\r
++      0x11e0, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x7044, 0xc085, 0x7046,\r
++      0x0c58, 0x009e, 0x2908, 0x7010, 0x8000, 0x7012, 0x7018, 0x904d,\r
++      0x711a, 0x0110, 0xa902, 0x0008, 0x711e, 0x2148, 0xa804, 0x900d,\r
++      0x1120, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x2071, 0x1800, 0x9016,\r
++      0x702c, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8,\r
++      0x702e, 0x70c0, 0x9200, 0x70c2, 0x080c, 0x8553, 0x00fe, 0x002e,\r
++      0x00ee, 0x0005, 0x2908, 0x7010, 0x8000, 0x7012, 0x7018, 0x904d,\r
++      0x711a, 0x0110, 0xa902, 0x0008, 0x711e, 0x2148, 0xa804, 0x900d,\r
++      0x1904, 0x6f13, 0x782c, 0x9094, 0x0780, 0x190c, 0x70e2, 0xd09c,\r
++      0x11b0, 0x701c, 0x904d, 0x0198, 0xa84c, 0x9005, 0x1180, 0x7010,\r
++      0x8001, 0x7012, 0x1108, 0x701a, 0xa800, 0x701e, 0x2900, 0x7822,\r
++      0x782c, 0x9094, 0x0780, 0x190c, 0x70e2, 0xd09c, 0x0d50, 0x782c,\r
++      0x9094, 0x0780, 0x190c, 0x70e2, 0xd0a4, 0x05c8, 0x00e6, 0x7824,\r
++      0x2048, 0x2071, 0x1800, 0x702c, 0xa802, 0x2900, 0x702e, 0x70c0,\r
++      0x8000, 0x70c2, 0x080c, 0x8553, 0x782c, 0x9094, 0x0780, 0x190c,\r
++      0x70e2, 0xd0a4, 0x1d60, 0x00ee, 0x0e04, 0x6f0c, 0x7838, 0x7938,\r
++      0x910e, 0x1de0, 0x00d6, 0x2069, 0x0000, 0x6836, 0x6833, 0x0013,\r
++      0x00de, 0x7044, 0xc084, 0x7046, 0x2091, 0x4080, 0x2001, 0x0089,\r
++      0x2004, 0xd084, 0x190c, 0x11d6, 0x2009, 0x1947, 0x200b, 0x0000,\r
++      0x00fe, 0x002e, 0x00ee, 0x0005, 0x7044, 0xc085, 0x7046, 0x00fe,\r
++      0x002e, 0x00ee, 0x0005, 0x00e6, 0x2071, 0x1800, 0x9016, 0x702c,\r
++      0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e,\r
++      0x70c0, 0x9200, 0x70c2, 0x080c, 0x8553, 0x00ee, 0x0804, 0x6eb2,\r
++      0x2071, 0x1910, 0xa803, 0x0000, 0x2908, 0x7010, 0x8000, 0x7012,\r
++      0x7018, 0x904d, 0x711a, 0x0110, 0xa902, 0x0008, 0x711e, 0x2148,\r
++      0xa804, 0x900d, 0x1128, 0x1e04, 0x6f53, 0x002e, 0x00ee, 0x0005,\r
++      0x2071, 0x1800, 0x9016, 0x702c, 0x2148, 0xa904, 0xa802, 0x8210,\r
++      0x2900, 0x81ff, 0x1dc8, 0x702e, 0x70c0, 0x9200, 0x70c2, 0x080c,\r
++      0x8553, 0x0e04, 0x6f3d, 0x2071, 0x1910, 0x701c, 0x2048, 0xa84c,\r
++      0x900d, 0x0d18, 0x2071, 0x0000, 0x7182, 0xa850, 0x7032, 0xa86c,\r
++      0x7086, 0x7036, 0xa870, 0x708a, 0xa850, 0x9082, 0x0019, 0x1278,\r
++      0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x11d6,\r
++      0x2071, 0x1910, 0x080c, 0x70ce, 0x002e, 0x00ee, 0x0005, 0xa850,\r
++      0x9082, 0x001c, 0x1e68, 0xa880, 0x708e, 0x7036, 0x0146, 0x01d6,\r
++      0x0136, 0x01c6, 0x0156, 0x20e9, 0x0000, 0x20a1, 0x002a, 0xa868,\r
++      0x20a8, 0xa860, 0x20e0, 0xa85c, 0x9080, 0x0021, 0x2098, 0x4003,\r
++      0x015e, 0x01ce, 0x013e, 0x01de, 0x014e, 0x0890, 0x2071, 0x1910,\r
++      0xa803, 0x0000, 0x2908, 0x7010, 0x8000, 0x7012, 0x7018, 0x904d,\r
++      0x711a, 0x0110, 0xa902, 0x0008, 0x711e, 0x2148, 0xa804, 0x900d,\r
++      0x1118, 0x002e, 0x00ee, 0x0005, 0x2071, 0x1800, 0x9016, 0x702c,\r
++      0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e,\r
++      0x70c0, 0x9200, 0x70c2, 0x080c, 0x8553, 0x002e, 0x00ee, 0x0005,\r
++      0x0006, 0xa87c, 0x0006, 0xa867, 0x0103, 0x20a9, 0x001c, 0xa860,\r
++      0x20e8, 0xa85c, 0x9080, 0x001d, 0x20a0, 0x9006, 0x4004, 0x000e,\r
++      0x9084, 0x00ff, 0xa87e, 0x000e, 0xa87a, 0xa982, 0x0005, 0x2071,\r
++      0x1910, 0x7004, 0x0002, 0x6fe1, 0x6fe2, 0x70cd, 0x6fe2, 0x0d7d,\r
++      0x70cd, 0x0005, 0x2001, 0x1948, 0x2004, 0x0002, 0x6fec, 0x6fec,\r
++      0x7066, 0x7067, 0x6fec, 0x7067, 0x0126, 0x2091, 0x8000, 0x1e0c,\r
++      0x70ed, 0x701c, 0x904d, 0x0508, 0xa84c, 0x9005, 0x0904, 0x7037,\r
++      0x0e04, 0x7015, 0xa94c, 0x2071, 0x0000, 0x7182, 0xa850, 0x7032,\r
++      0xa86c, 0x7086, 0x7036, 0xa870, 0x708a, 0xa850, 0x9082, 0x0019,\r
++      0x1278, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c,\r
++      0x11d6, 0x2071, 0x1910, 0x080c, 0x70ce, 0x012e, 0x0804, 0x7065,\r
++      0xa850, 0x9082, 0x001c, 0x1e68, 0xa880, 0x708e, 0x7036, 0x0146,\r
++      0x01d6, 0x0136, 0x01c6, 0x0156, 0x20e9, 0x0000, 0x20a1, 0x002a,\r
++      0xa868, 0x20a8, 0xa860, 0x20e0, 0xa85c, 0x9080, 0x0021, 0x2098,\r
++      0x4003, 0x015e, 0x01ce, 0x013e, 0x01de, 0x014e, 0x0890, 0x2001,\r
++      0x005b, 0x2004, 0x9094, 0x0780, 0x190c, 0x70e2, 0xd09c, 0x2071,\r
++      0x1910, 0x1510, 0x2071, 0x1910, 0x700f, 0x0001, 0xa964, 0x9184,\r
++      0x00ff, 0x9086, 0x0003, 0x1130, 0x810f, 0x918c, 0x00ff, 0x8101,\r
++      0x0108, 0x710e, 0x2900, 0x00d6, 0x2069, 0x0050, 0x6822, 0x00de,\r
++      0x2071, 0x1910, 0x701c, 0x2048, 0x7010, 0x8001, 0x7012, 0xa800,\r
++      0x701e, 0x9005, 0x1108, 0x701a, 0x012e, 0x0005, 0x0005, 0x00d6,\r
++      0x2008, 0x2069, 0x1a03, 0x683c, 0x9005, 0x0760, 0x0158, 0x9186,\r
++      0x0003, 0x0540, 0x2001, 0x1815, 0x2004, 0x2009, 0x1b4e, 0x210c,\r
++      0x9102, 0x1500, 0x0126, 0x2091, 0x8000, 0x2069, 0x0050, 0x693c,\r
++      0x6838, 0x9106, 0x0190, 0x0e04, 0x7099, 0x2069, 0x0000, 0x6837,\r
++      0x8040, 0x6833, 0x0012, 0x6883, 0x8040, 0x2091, 0x4080, 0x2001,\r
++      0x0089, 0x2004, 0xd084, 0x190c, 0x11d6, 0x2069, 0x1a03, 0x683f,\r
++      0xffff, 0x012e, 0x00de, 0x0126, 0x2091, 0x8000, 0x1e0c, 0x7163,\r
++      0x701c, 0x904d, 0x0540, 0x2001, 0x005b, 0x2004, 0x9094, 0x0780,\r
++      0x15c9, 0xd09c, 0x1500, 0x2071, 0x1910, 0x700f, 0x0001, 0xa964,\r
++      0x9184, 0x00ff, 0x9086, 0x0003, 0x1130, 0x810f, 0x918c, 0x00ff,\r
++      0x8101, 0x0108, 0x710e, 0x2900, 0x00d6, 0x2069, 0x0050, 0x6822,\r
++      0x00de, 0x701c, 0x2048, 0x7010, 0x8001, 0x7012, 0xa800, 0x701e,\r
++      0x9005, 0x1108, 0x701a, 0x012e, 0x0005, 0x0005, 0x0126, 0x2091,\r
++      0x8000, 0x701c, 0x904d, 0x0160, 0x7010, 0x8001, 0x7012, 0xa800,\r
++      0x701e, 0x9005, 0x1108, 0x701a, 0x012e, 0x080c, 0x106c, 0x0005,\r
++      0x012e, 0x0005, 0x2091, 0x8000, 0x0e04, 0x70e4, 0x0006, 0x0016,\r
++      0x2001, 0x8004, 0x0006, 0x0804, 0x0d86, 0x0096, 0x00f6, 0x2079,\r
++      0x0050, 0x7044, 0xd084, 0x01e0, 0xc084, 0x7046, 0x7838, 0x7938,\r
++      0x910e, 0x1de0, 0x00d6, 0x2069, 0x0000, 0x6836, 0x6833, 0x0013,\r
++      0x00de, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c,\r
++      0x11d6, 0x2009, 0x1947, 0x200b, 0x0000, 0x00fe, 0x009e, 0x0005,\r
++      0x782c, 0x9094, 0x0780, 0x1971, 0xd0a4, 0x0db8, 0x2009, 0x1947,\r
++      0x2104, 0x8000, 0x200a, 0x9082, 0x000f, 0x0e78, 0x00e6, 0x2071,\r
++      0x1800, 0x7824, 0x00e6, 0x2071, 0x0040, 0x712c, 0xd19c, 0x1170,\r
++      0x2009, 0x1830, 0x210c, 0x918a, 0x0020, 0x0240, 0x7022, 0x2001,\r
++      0x1dc0, 0x200c, 0x8108, 0x2102, 0x00ee, 0x0058, 0x00ee, 0x2048,\r
++      0x702c, 0xa802, 0x2900, 0x702e, 0x70c0, 0x8000, 0x70c2, 0x080c,\r
++      0x8553, 0x782c, 0x9094, 0x0780, 0x190c, 0x70e2, 0xd0a4, 0x19c8,\r
++      0x7838, 0x7938, 0x910e, 0x1de0, 0x00d6, 0x2069, 0x0000, 0x6836,\r
++      0x6833, 0x0013, 0x00de, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004,\r
++      0xd084, 0x190c, 0x11d6, 0x2009, 0x1947, 0x200b, 0x0000, 0x00ee,\r
++      0x00fe, 0x009e, 0x0005, 0x00f6, 0x2079, 0x0050, 0x7044, 0xd084,\r
++      0x01b8, 0xc084, 0x7046, 0x7838, 0x7938, 0x910e, 0x1de0, 0x00d6,\r
++      0x2069, 0x0000, 0x6836, 0x6833, 0x0013, 0x00de, 0x2091, 0x4080,\r
++      0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x11d6, 0x00fe, 0x0005,\r
++      0x782c, 0x9094, 0x0780, 0x190c, 0x70e2, 0xd0a4, 0x0db8, 0x00e6,\r
++      0x2071, 0x1800, 0x7824, 0x2048, 0x702c, 0xa802, 0x2900, 0x702e,\r
++      0x70c0, 0x8000, 0x70c2, 0x080c, 0x8553, 0x782c, 0x9094, 0x0780,\r
++      0x190c, 0x70e2, 0xd0a4, 0x1d70, 0x00d6, 0x2069, 0x0050, 0x693c,\r
++      0x2069, 0x1948, 0x6808, 0x690a, 0x2069, 0x1a03, 0x9102, 0x1118,\r
++      0x683c, 0x9005, 0x1328, 0x2001, 0x1949, 0x200c, 0x810d, 0x693e,\r
++      0x00de, 0x00ee, 0x00fe, 0x0005, 0x7098, 0x908a, 0x0029, 0x1a0c,\r
++      0x0d7d, 0x9082, 0x001d, 0x003b, 0x0026, 0x2011, 0x1e00, 0x080c,\r
++      0x2a44, 0x002e, 0x0005, 0x728f, 0x7215, 0x7231, 0x725b, 0x727e,\r
++      0x72be, 0x72d0, 0x7231, 0x72a6, 0x71d0, 0x71fe, 0x71cf, 0x0005,\r
++      0x00d6, 0x2069, 0x0200, 0x6804, 0x9005, 0x1180, 0x6808, 0x9005,\r
++      0x1518, 0x709b, 0x0028, 0x2069, 0x198f, 0x2d04, 0x7002, 0x080c,\r
++      0x762b, 0x6028, 0x9085, 0x0600, 0x602a, 0x00b0, 0x709b, 0x0028,\r
++      0x2069, 0x198f, 0x2d04, 0x7002, 0x6028, 0x9085, 0x0600, 0x602a,\r
++      0x00e6, 0x0036, 0x0046, 0x0056, 0x2071, 0x1a6b, 0x080c, 0x1ab5,\r
++      0x005e, 0x004e, 0x003e, 0x00ee, 0x00de, 0x0005, 0x00d6, 0x2069,\r
++      0x0200, 0x6804, 0x9005, 0x1178, 0x6808, 0x9005, 0x1160, 0x709b,\r
++      0x0028, 0x2069, 0x198f, 0x2d04, 0x7002, 0x080c, 0x76ce, 0x6028,\r
++      0x9085, 0x0600, 0x602a, 0x00de, 0x0005, 0x0006, 0x2001, 0x0090,\r
++      0x080c, 0x2a0a, 0x000e, 0x6124, 0xd1e4, 0x1190, 0x080c, 0x7341,\r
++      0xd1d4, 0x1160, 0xd1dc, 0x1138, 0xd1cc, 0x0150, 0x709b, 0x0020,\r
++      0x080c, 0x7341, 0x0028, 0x709b, 0x001d, 0x0010, 0x709b, 0x001f,\r
++      0x0005, 0x2001, 0x0088, 0x080c, 0x2a0a, 0x6124, 0xd1cc, 0x11e8,\r
++      0xd1dc, 0x11c0, 0xd1e4, 0x1198, 0x9184, 0x1e00, 0x11d8, 0x080c,\r
++      0x1adf, 0x60e3, 0x0001, 0x600c, 0xc0b4, 0x600e, 0x080c, 0x7515,\r
++      0x2001, 0x0080, 0x080c, 0x2a0a, 0x709b, 0x0028, 0x0058, 0x709b,\r
++      0x001e, 0x0040, 0x709b, 0x001d, 0x0028, 0x709b, 0x0020, 0x0010,\r
++      0x709b, 0x001f, 0x0005, 0x080c, 0x1adf, 0x60e3, 0x0001, 0x600c,\r
++      0xc0b4, 0x600e, 0x080c, 0x7515, 0x2001, 0x0080, 0x080c, 0x2a0a,\r
++      0x6124, 0xd1d4, 0x1180, 0xd1dc, 0x1158, 0xd1e4, 0x1130, 0x9184,\r
++      0x1e00, 0x1158, 0x709b, 0x0028, 0x0040, 0x709b, 0x001e, 0x0028,\r
++      0x709b, 0x001d, 0x0010, 0x709b, 0x001f, 0x0005, 0x2001, 0x00a0,\r
++      0x080c, 0x2a0a, 0x6124, 0xd1dc, 0x1138, 0xd1e4, 0x0138, 0x080c,\r
++      0x1adf, 0x709b, 0x001e, 0x0010, 0x709b, 0x001d, 0x0005, 0x080c,\r
++      0x73ca, 0x6124, 0xd1dc, 0x1188, 0x080c, 0x7341, 0x0016, 0x080c,\r
++      0x1adf, 0x001e, 0xd1d4, 0x1128, 0xd1e4, 0x0138, 0x709b, 0x001e,\r
++      0x0020, 0x709b, 0x001f, 0x080c, 0x7341, 0x0005, 0x0006, 0x2001,\r
++      0x00a0, 0x080c, 0x2a0a, 0x000e, 0x6124, 0xd1d4, 0x1160, 0xd1cc,\r
++      0x1150, 0xd1dc, 0x1128, 0xd1e4, 0x0140, 0x709b, 0x001e, 0x0028,\r
++      0x709b, 0x001d, 0x0010, 0x709b, 0x0021, 0x0005, 0x080c, 0x73ca,\r
++      0x6124, 0xd1d4, 0x1150, 0xd1dc, 0x1128, 0xd1e4, 0x0140, 0x709b,\r
++      0x001e, 0x0028, 0x709b, 0x001d, 0x0010, 0x709b, 0x001f, 0x0005,\r
++      0x0006, 0x2001, 0x0090, 0x080c, 0x2a0a, 0x000e, 0x6124, 0xd1d4,\r
++      0x1178, 0xd1cc, 0x1150, 0xd1dc, 0x1128, 0xd1e4, 0x0158, 0x709b,\r
++      0x001e, 0x0040, 0x709b, 0x001d, 0x0028, 0x709b, 0x0020, 0x0010,\r
++      0x709b, 0x001f, 0x0005, 0x0016, 0x00c6, 0x00d6, 0x00e6, 0x0126,\r
++      0x2061, 0x0100, 0x2069, 0x0140, 0x2071, 0x1800, 0x2091, 0x8000,\r
++      0x080c, 0x74e9, 0x11f8, 0x2001, 0x180c, 0x200c, 0xd1b4, 0x01d0,\r
++      0xc1b4, 0x2102, 0x0026, 0x2011, 0x0200, 0x080c, 0x2a44, 0x002e,\r
++      0x080c, 0x29f0, 0x6024, 0xd0cc, 0x0148, 0x2001, 0x00a0, 0x080c,\r
++      0x2a0a, 0x080c, 0x77ed, 0x080c, 0x6029, 0x0428, 0x6028, 0xc0cd,\r
++      0x602a, 0x0408, 0x080c, 0x7503, 0x0150, 0x080c, 0x74fa, 0x1138,\r
++      0x2001, 0x0001, 0x080c, 0x25a0, 0x080c, 0x74bd, 0x00a0, 0x080c,\r
++      0x73c7, 0x0178, 0x2001, 0x0001, 0x080c, 0x25a0, 0x7098, 0x9086,\r
++      0x001e, 0x0120, 0x7098, 0x9086, 0x0022, 0x1118, 0x709b, 0x0025,\r
++      0x0010, 0x709b, 0x0021, 0x012e, 0x00ee, 0x00de, 0x00ce, 0x001e,\r
++      0x0005, 0x0026, 0x2011, 0x7352, 0x080c, 0x874a, 0x002e, 0x0016,\r
++      0x0026, 0x2009, 0x0064, 0x2011, 0x7352, 0x080c, 0x8741, 0x002e,\r
++      0x001e, 0x0005, 0x00e6, 0x00f6, 0x0016, 0x080c, 0x9e32, 0x2071,\r
++      0x1800, 0x080c, 0x72eb, 0x001e, 0x00fe, 0x00ee, 0x0005, 0x0016,\r
++      0x0026, 0x0036, 0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x0126, 0x080c,\r
++      0x9e32, 0x2061, 0x0100, 0x2069, 0x0140, 0x2071, 0x1800, 0x2091,\r
++      0x8000, 0x6028, 0xc09c, 0x602a, 0x080c, 0xa896, 0x2011, 0x0003,\r
++      0x080c, 0xa1cf, 0x2011, 0x0002, 0x080c, 0xa1d9, 0x080c, 0xa098,\r
++      0x080c, 0x86f6, 0x0036, 0x901e, 0x080c, 0xa118, 0x003e, 0x080c,\r
++      0xa8b2, 0x60e3, 0x0000, 0x080c, 0xe702, 0x080c, 0xe71d, 0x2009,\r
++      0x0004, 0x080c, 0x29f6, 0x080c, 0x2916, 0x2001, 0x1800, 0x2003,\r
++      0x0004, 0x2011, 0x0008, 0x080c, 0x2a44, 0x2011, 0x7352, 0x080c,\r
++      0x874a, 0x080c, 0x7503, 0x0118, 0x9006, 0x080c, 0x2a0a, 0x080c,\r
++      0x0bc3, 0x2001, 0x0001, 0x080c, 0x25a0, 0x012e, 0x00fe, 0x00ee,\r
++      0x00de, 0x00ce, 0x003e, 0x002e, 0x001e, 0x0005, 0x0026, 0x00e6,\r
++      0x2011, 0x735f, 0x2071, 0x1a03, 0x701c, 0x9206, 0x1118, 0x7018,\r
++      0x9005, 0x0110, 0x9085, 0x0001, 0x00ee, 0x002e, 0x0005, 0x6020,\r
++      0xd09c, 0x0005, 0x6800, 0x9084, 0xfffe, 0x9086, 0x00c0, 0x01b8,\r
++      0x2001, 0x00c0, 0x080c, 0x2a0a, 0x0156, 0x20a9, 0x002d, 0x1d04,\r
++      0x73d7, 0x2091, 0x6000, 0x1f04, 0x73d7, 0x015e, 0x00d6, 0x2069,\r
++      0x1800, 0x689c, 0x8001, 0x0220, 0x0118, 0x689e, 0x00de, 0x0005,\r
++      0x689f, 0x0014, 0x68ec, 0xd0dc, 0x0dc8, 0x6800, 0x9086, 0x0001,\r
++      0x1da8, 0x080c, 0x8756, 0x0c90, 0x00c6, 0x00d6, 0x00e6, 0x2061,\r
++      0x0100, 0x2069, 0x0140, 0x2071, 0x1800, 0x080c, 0x77fc, 0x2001,\r
++      0x196d, 0x2003, 0x0000, 0x9006, 0x709a, 0x60e2, 0x6886, 0x080c,\r
++      0x266f, 0x9006, 0x080c, 0x2a0a, 0x080c, 0x5ee4, 0x0026, 0x2011,\r
++      0xffff, 0x080c, 0x2a44, 0x002e, 0x602b, 0x182c, 0x00ee, 0x00de,\r
++      0x00ce, 0x0005, 0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100, 0x2069,\r
++      0x0140, 0x2071, 0x1800, 0x2001, 0x197d, 0x200c, 0x9186, 0x0000,\r
++      0x0158, 0x9186, 0x0001, 0x0158, 0x9186, 0x0002, 0x0158, 0x9186,\r
++      0x0003, 0x0158, 0x0804, 0x74ad, 0x709b, 0x0022, 0x0040, 0x709b,\r
++      0x0021, 0x0028, 0x709b, 0x0023, 0x0010, 0x709b, 0x0024, 0x60e3,\r
++      0x0000, 0x6887, 0x0001, 0x2001, 0x0001, 0x080c, 0x266f, 0x080c,\r
++      0xa896, 0x0026, 0x080c, 0xab5e, 0x002e, 0x080c, 0xa8b2, 0x7000,\r
++      0x908e, 0x0004, 0x0118, 0x602b, 0x0028, 0x0010, 0x602b, 0x0020,\r
++      0x0156, 0x0126, 0x2091, 0x8000, 0x20a9, 0x0005, 0x6024, 0xd0ac,\r
++      0x0150, 0x012e, 0x015e, 0x080c, 0xcf52, 0x0118, 0x9006, 0x080c,\r
++      0x2a34, 0x0804, 0x74b9, 0x6800, 0x9084, 0x00a1, 0xc0bd, 0x6802,\r
++      0x080c, 0x29f0, 0x6904, 0xd1d4, 0x1140, 0x2001, 0x0100, 0x080c,\r
++      0x2a0a, 0x1f04, 0x745e, 0x080c, 0x7540, 0x012e, 0x015e, 0x080c,\r
++      0x74fa, 0x0170, 0x6044, 0x9005, 0x0130, 0x080c, 0x7540, 0x9006,\r
++      0x8001, 0x1df0, 0x0028, 0x6804, 0xd0d4, 0x1110, 0x080c, 0x7540,\r
++      0x080c, 0xcf52, 0x0118, 0x9006, 0x080c, 0x2a34, 0x0016, 0x0026,\r
++      0x7000, 0x908e, 0x0004, 0x0130, 0x2009, 0x00c8, 0x2011, 0x735f,\r
++      0x080c, 0x8708, 0x002e, 0x001e, 0x080c, 0x854a, 0x7034, 0xc085,\r
++      0x7036, 0x2001, 0x197d, 0x2003, 0x0004, 0x080c, 0x71b4, 0x080c,\r
++      0x74fa, 0x0138, 0x6804, 0xd0d4, 0x1120, 0xd0dc, 0x1100, 0x080c,\r
++      0x77f2, 0x00ee, 0x00de, 0x00ce, 0x0005, 0x00c6, 0x00d6, 0x00e6,\r
++      0x2061, 0x0100, 0x2069, 0x0140, 0x2071, 0x1800, 0x080c, 0x8561,\r
++      0x080c, 0x8553, 0x080c, 0x77fc, 0x2001, 0x196d, 0x2003, 0x0000,\r
++      0x9006, 0x709a, 0x60e2, 0x6886, 0x080c, 0x266f, 0x9006, 0x080c,\r
++      0x2a0a, 0x6043, 0x0090, 0x6043, 0x0010, 0x0026, 0x2011, 0xffff,\r
++      0x080c, 0x2a44, 0x002e, 0x602b, 0x182c, 0x00ee, 0x00de, 0x00ce,\r
++      0x0005, 0x0006, 0x2001, 0x197c, 0x2004, 0x9086, 0xaaaa, 0x000e,\r
++      0x0005, 0x0006, 0x080c, 0x56de, 0x9084, 0x0030, 0x9086, 0x0000,\r
++      0x000e, 0x0005, 0x0006, 0x080c, 0x56de, 0x9084, 0x0030, 0x9086,\r
++      0x0030, 0x000e, 0x0005, 0x0006, 0x080c, 0x56de, 0x9084, 0x0030,\r
++      0x9086, 0x0010, 0x000e, 0x0005, 0x0006, 0x080c, 0x56de, 0x9084,\r
++      0x0030, 0x9086, 0x0020, 0x000e, 0x0005, 0x0036, 0x0016, 0x2001,\r
++      0x180c, 0x2004, 0x908c, 0x0013, 0x0180, 0x0020, 0x080c, 0x268f,\r
++      0x900e, 0x0028, 0x080c, 0x6a63, 0x1dc8, 0x2009, 0x0002, 0x2019,\r
++      0x0028, 0x080c, 0x31a6, 0x9006, 0x0019, 0x001e, 0x003e, 0x0005,\r
++      0x00e6, 0x2071, 0x180c, 0x2e04, 0x0130, 0x080c, 0xcf4b, 0x1128,\r
++      0x9085, 0x0010, 0x0010, 0x9084, 0xffef, 0x2072, 0x00ee, 0x0005,\r
++      0x6050, 0x0006, 0x60ec, 0x0006, 0x600c, 0x0006, 0x6004, 0x0006,\r
++      0x6028, 0x0006, 0x602f, 0x0100, 0x602f, 0x0000, 0x602f, 0x0040,\r
++      0x602f, 0x0000, 0x20a9, 0x0002, 0x080c, 0x29d1, 0x0026, 0x2011,\r
++      0x0040, 0x080c, 0x2a44, 0x002e, 0x000e, 0x602a, 0x000e, 0x6006,\r
++      0x000e, 0x600e, 0x000e, 0x60ee, 0x60e3, 0x0000, 0x6887, 0x0001,\r
++      0x2001, 0x0001, 0x080c, 0x266f, 0x2001, 0x00a0, 0x0006, 0x080c,\r
++      0xcf52, 0x000e, 0x0130, 0x080c, 0x2a28, 0x9006, 0x080c, 0x2a34,\r
++      0x0010, 0x080c, 0x2a0a, 0x000e, 0x6052, 0x6050, 0x0006, 0xc0e5,\r
++      0x6052, 0x00f6, 0x2079, 0x0100, 0x080c, 0x2981, 0x00fe, 0x000e,\r
++      0x6052, 0x0005, 0x0156, 0x0016, 0x0026, 0x0036, 0x00c6, 0x00d6,\r
++      0x00e6, 0x2061, 0x0100, 0x2069, 0x0140, 0x2071, 0x1800, 0x080c,\r
++      0xa8f4, 0x0158, 0x2001, 0x0386, 0x2004, 0xd0b4, 0x1130, 0x2001,\r
++      0x0016, 0x080c, 0xa887, 0x0804, 0x761d, 0x2001, 0x180c, 0x200c,\r
++      0xc1c4, 0x2102, 0x6028, 0x9084, 0xe1ff, 0x602a, 0x2011, 0x0200,\r
++      0x080c, 0x2a44, 0x2001, 0x0090, 0x080c, 0x2a0a, 0x20a9, 0x0366,\r
++      0x6024, 0xd0cc, 0x1558, 0x1d04, 0x75b8, 0x2091, 0x6000, 0x1f04,\r
++      0x75b8, 0x080c, 0xa896, 0x2011, 0x0003, 0x080c, 0xa1cf, 0x2011,\r
++      0x0002, 0x080c, 0xa1d9, 0x080c, 0xa098, 0x901e, 0x080c, 0xa118,\r
++      0x2001, 0x0386, 0x2003, 0x7000, 0x080c, 0xa8b2, 0x2001, 0x00a0,\r
++      0x080c, 0x2a0a, 0x080c, 0x77ed, 0x080c, 0x6029, 0x080c, 0xcf52,\r
++      0x0110, 0x080c, 0x0ce9, 0x9085, 0x0001, 0x04e8, 0x2001, 0x0386,\r
++      0x2004, 0xd0ac, 0x0110, 0x080c, 0x1adf, 0x60e3, 0x0000, 0x2001,\r
++      0x196d, 0x2004, 0x080c, 0x266f, 0x60e2, 0x2001, 0x0080, 0x080c,\r
++      0x2a0a, 0x20a9, 0x0366, 0x2011, 0x1e00, 0x080c, 0x2a44, 0x2009,\r
++      0x1e00, 0x080c, 0x29f0, 0x6024, 0x910c, 0x0140, 0x1d04, 0x75fb,\r
++      0x2091, 0x6000, 0x1f04, 0x75fb, 0x0804, 0x75c1, 0x2001, 0x0386,\r
++      0x2003, 0x7000, 0x6028, 0x9085, 0x1e00, 0x602a, 0x70b4, 0x9005,\r
++      0x1118, 0x6887, 0x0001, 0x0008, 0x6886, 0x080c, 0xcf52, 0x0110,\r
++      0x080c, 0x0ce9, 0x9006, 0x00ee, 0x00de, 0x00ce, 0x003e, 0x002e,\r
++      0x001e, 0x015e, 0x0005, 0x0156, 0x0016, 0x0026, 0x0036, 0x00c6,\r
++      0x00d6, 0x00e6, 0x2061, 0x0100, 0x2071, 0x1800, 0x7000, 0x9086,\r
++      0x0003, 0x1168, 0x2001, 0x020b, 0x2004, 0x9084, 0x5540, 0x9086,\r
++      0x5540, 0x1128, 0x2069, 0x1a77, 0x2d04, 0x8000, 0x206a, 0x2069,\r
++      0x0140, 0x6020, 0x9084, 0x00c0, 0x0120, 0x6884, 0x9005, 0x1904,\r
++      0x7694, 0x2001, 0x0088, 0x080c, 0x2a0a, 0x9006, 0x60e2, 0x6886,\r
++      0x080c, 0x266f, 0x2069, 0x0200, 0x6804, 0x9005, 0x1118, 0x6808,\r
++      0x9005, 0x01d0, 0x6028, 0x9084, 0xfbff, 0x602a, 0x2011, 0x0400,\r
++      0x080c, 0x2a44, 0x2069, 0x198f, 0x7000, 0x206a, 0x709b, 0x0026,\r
++      0x7003, 0x0001, 0x20a9, 0x0002, 0x1d04, 0x7674, 0x2091, 0x6000,\r
++      0x1f04, 0x7674, 0x0804, 0x76c6, 0x2069, 0x0140, 0x20a9, 0x0384,\r
++      0x2011, 0x1e00, 0x080c, 0x2a44, 0x2009, 0x1e00, 0x080c, 0x29f0,\r
++      0x6024, 0x910c, 0x0528, 0x9084, 0x1a00, 0x1510, 0x1d04, 0x7680,\r
++      0x2091, 0x6000, 0x1f04, 0x7680, 0x080c, 0xa896, 0x2011, 0x0003,\r
++      0x080c, 0xa1cf, 0x2011, 0x0002, 0x080c, 0xa1d9, 0x080c, 0xa098,\r
++      0x901e, 0x080c, 0xa118, 0x080c, 0xa8b2, 0x2001, 0x00a0, 0x080c,\r
++      0x2a0a, 0x080c, 0x77ed, 0x080c, 0x6029, 0x9085, 0x0001, 0x00b0,\r
++      0x2001, 0x0080, 0x080c, 0x2a0a, 0x2069, 0x0140, 0x60e3, 0x0000,\r
++      0x70b4, 0x9005, 0x1118, 0x6887, 0x0001, 0x0008, 0x6886, 0x2001,\r
++      0x196d, 0x2004, 0x080c, 0x266f, 0x60e2, 0x9006, 0x00ee, 0x00de,\r
++      0x00ce, 0x003e, 0x002e, 0x001e, 0x015e, 0x0005, 0x0156, 0x0016,\r
++      0x0026, 0x0036, 0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100, 0x2071,\r
++      0x1800, 0x6020, 0x9084, 0x00c0, 0x01e8, 0x080c, 0xa896, 0x2011,\r
++      0x0003, 0x080c, 0xa1cf, 0x2011, 0x0002, 0x080c, 0xa1d9, 0x080c,\r
++      0xa098, 0x901e, 0x080c, 0xa118, 0x080c, 0xa8b2, 0x2069, 0x0140,\r
++      0x2001, 0x00a0, 0x080c, 0x2a0a, 0x080c, 0x77ed, 0x080c, 0x6029,\r
++      0x0804, 0x7769, 0x2001, 0x180c, 0x200c, 0xd1b4, 0x1160, 0xc1b5,\r
++      0x2102, 0x080c, 0x7347, 0x2069, 0x0140, 0x2001, 0x0080, 0x080c,\r
++      0x2a0a, 0x60e3, 0x0000, 0x2069, 0x0200, 0x6804, 0x9005, 0x1118,\r
++      0x6808, 0x9005, 0x0190, 0x6028, 0x9084, 0xfdff, 0x602a, 0x2011,\r
++      0x0200, 0x080c, 0x2a44, 0x2069, 0x198f, 0x7000, 0x206a, 0x709b,\r
++      0x0027, 0x7003, 0x0001, 0x0804, 0x7769, 0x2011, 0x1e00, 0x080c,\r
++      0x2a44, 0x2009, 0x1e00, 0x080c, 0x29f0, 0x6024, 0x910c, 0x01c8,\r
++      0x9084, 0x1c00, 0x11b0, 0x1d04, 0x7725, 0x0006, 0x0016, 0x00c6,\r
++      0x00d6, 0x00e6, 0x080c, 0x8592, 0x00ee, 0x00de, 0x00ce, 0x001e,\r
++      0x000e, 0x00e6, 0x2071, 0x1a03, 0x7018, 0x00ee, 0x9005, 0x19e8,\r
++      0x0500, 0x0026, 0x2011, 0x735f, 0x080c, 0x863e, 0x2011, 0x7352,\r
++      0x080c, 0x874a, 0x002e, 0x2069, 0x0140, 0x60e3, 0x0000, 0x70b4,\r
++      0x9005, 0x1118, 0x6887, 0x0001, 0x0008, 0x6886, 0x2001, 0x196d,\r
++      0x2004, 0x080c, 0x266f, 0x60e2, 0x2001, 0x180c, 0x200c, 0xc1b4,\r
++      0x2102, 0x00ee, 0x00de, 0x00ce, 0x003e, 0x002e, 0x001e, 0x015e,\r
++      0x0005, 0x0156, 0x0016, 0x0026, 0x0036, 0x0046, 0x00c6, 0x00e6,\r
++      0x2061, 0x0100, 0x2071, 0x1800, 0x080c, 0xcf4b, 0x1904, 0x77d7,\r
++      0x7130, 0xd184, 0x1170, 0x080c, 0x3368, 0x0138, 0xc18d, 0x7132,\r
++      0x2011, 0x1848, 0x2214, 0xd2ac, 0x1120, 0x7030, 0xd08c, 0x0904,\r
++      0x77d7, 0x2011, 0x1848, 0x220c, 0xd1a4, 0x0538, 0x0016, 0x2019,\r
++      0x000e, 0x080c, 0xe239, 0x0156, 0x00b6, 0x20a9, 0x007f, 0x900e,\r
++      0x9186, 0x007e, 0x01a0, 0x9186, 0x0080, 0x0188, 0x080c, 0x6625,\r
++      0x1170, 0x2120, 0x9006, 0x0016, 0x2009, 0x000e, 0x080c, 0xe2c9,\r
++      0x2009, 0x0001, 0x2011, 0x0100, 0x080c, 0x88ec, 0x001e, 0x8108,\r
++      0x1f04, 0x77a0, 0x00be, 0x015e, 0x001e, 0xd1ac, 0x1148, 0x0016,\r
++      0x2009, 0x0002, 0x2019, 0x0004, 0x080c, 0x31a6, 0x001e, 0x0078,\r
++      0x0156, 0x00b6, 0x20a9, 0x007f, 0x900e, 0x080c, 0x6625, 0x1110,\r
++      0x080c, 0x6043, 0x8108, 0x1f04, 0x77cd, 0x00be, 0x015e, 0x080c,\r
++      0x1adf, 0x080c, 0xa896, 0x080c, 0xab5e, 0x080c, 0xa8b2, 0x60e3,\r
++      0x0000, 0x080c, 0x6029, 0x080c, 0x741a, 0x00ee, 0x00ce, 0x004e,\r
++      0x003e, 0x002e, 0x001e, 0x015e, 0x0005, 0x2001, 0x197d, 0x2003,\r
++      0x0001, 0x0005, 0x2001, 0x197d, 0x2003, 0x0000, 0x0005, 0x2001,\r
++      0x197c, 0x2003, 0xaaaa, 0x0005, 0x2001, 0x197c, 0x2003, 0x0000,\r
++      0x0005, 0x2071, 0x18fa, 0x7003, 0x0000, 0x7007, 0x0000, 0x080c,\r
++      0x1053, 0x090c, 0x0d7d, 0xa8ab, 0xdcb0, 0x2900, 0x704e, 0x080c,\r
++      0x1053, 0x090c, 0x0d7d, 0xa8ab, 0xdcb0, 0x2900, 0x7052, 0xa867,\r
++      0x0000, 0xa86b, 0x0001, 0xa89f, 0x0000, 0x0005, 0x00e6, 0x2071,\r
++      0x0040, 0x6848, 0x9005, 0x1118, 0x9085, 0x0001, 0x04b0, 0x6840,\r
++      0x9005, 0x0150, 0x04a1, 0x6a50, 0x9200, 0x7002, 0x6854, 0x9101,\r
++      0x7006, 0x9006, 0x7012, 0x7016, 0x6850, 0x7002, 0x6854, 0x7006,\r
++      0x6858, 0x700a, 0x685c, 0x700e, 0x6840, 0x9005, 0x1110, 0x7012,\r
++      0x7016, 0x6848, 0x701a, 0x701c, 0x9085, 0x0040, 0x701e, 0x2001,\r
++      0x0019, 0x7036, 0x702b, 0x0001, 0x2001, 0x0004, 0x200c, 0x918c,\r
++      0xfff7, 0x918d, 0x8000, 0x2102, 0x00d6, 0x2069, 0x18fa, 0x6807,\r
++      0x0001, 0x00de, 0x080c, 0x7de4, 0x9006, 0x00ee, 0x0005, 0x900e,\r
++      0x0156, 0x20a9, 0x0006, 0x8003, 0x818d, 0x1f04, 0x7863, 0x015e,\r
++      0x0005, 0x2079, 0x0040, 0x2071, 0x18fa, 0x7004, 0x0002, 0x7879,\r
++      0x787a, 0x78c5, 0x7920, 0x7a30, 0x7877, 0x7877, 0x7a5a, 0x080c,\r
++      0x0d7d, 0x0005, 0x2079, 0x0040, 0x2001, 0x1dc0, 0x2003, 0x0000,\r
++      0x782c, 0x908c, 0x0780, 0x190c, 0x7ec6, 0xd0a4, 0x0570, 0x2001,\r
++      0x1dc0, 0x2004, 0x9082, 0x0080, 0x1640, 0x1d04, 0x7897, 0x2001,\r
++      0x1a06, 0x200c, 0x8109, 0x0508, 0x2091, 0x6000, 0x2102, 0x7824,\r
++      0x2048, 0x9006, 0xa802, 0xa806, 0xa864, 0x9084, 0x00ff, 0x908a,\r
++      0x0040, 0x0608, 0x00b8, 0x2001, 0x1800, 0x200c, 0x9186, 0x0003,\r
++      0x1160, 0x7104, 0x9186, 0x0004, 0x0140, 0x9186, 0x0007, 0x0128,\r
++      0x9186, 0x0003, 0x1968, 0x080c, 0x7920, 0x782c, 0xd09c, 0x090c,\r
++      0x7de4, 0x0005, 0x9082, 0x005a, 0x1218, 0x2100, 0x003b, 0x0c18,\r
++      0x080c, 0x7956, 0x0c90, 0x00e3, 0x08f0, 0x0005, 0x7956, 0x7956,\r
++      0x7956, 0x7956, 0x7956, 0x7956, 0x7956, 0x7956, 0x7978, 0x7956,\r
++      0x7956, 0x7956, 0x7956, 0x7956, 0x7956, 0x7956, 0x7956, 0x7956,\r
++      0x7956, 0x7956, 0x7956, 0x7956, 0x7956, 0x7956, 0x7956, 0x7956,\r
++      0x7956, 0x7956, 0x7962, 0x7956, 0x7b4b, 0x7956, 0x7956, 0x7956,\r
++      0x7978, 0x7956, 0x7962, 0x7b8c, 0x7bcd, 0x7c14, 0x7c28, 0x7956,\r
++      0x7956, 0x7978, 0x7962, 0x798c, 0x7956, 0x7a04, 0x7cd3, 0x7cee,\r
++      0x7956, 0x7978, 0x7956, 0x798c, 0x7956, 0x7956, 0x79fa, 0x7cee,\r
++      0x7956, 0x7956, 0x7956, 0x7956, 0x7956, 0x7956, 0x7956, 0x7956,\r
++      0x7956, 0x79a0, 0x7956, 0x7956, 0x7956, 0x7956, 0x7956, 0x7956,\r
++      0x7956, 0x7956, 0x7956, 0x7e6a, 0x7956, 0x7e14, 0x7956, 0x7e14,\r
++      0x7956, 0x79b5, 0x7956, 0x7956, 0x7956, 0x7956, 0x7956, 0x7956,\r
++      0x2079, 0x0040, 0x7004, 0x9086, 0x0003, 0x1198, 0x782c, 0x080c,\r
++      0x7e0d, 0xd0a4, 0x0170, 0x7824, 0x2048, 0x9006, 0xa802, 0xa806,\r
++      0xa864, 0x9084, 0x00ff, 0x908a, 0x001a, 0x1210, 0x002b, 0x0c50,\r
++      0x00e9, 0x080c, 0x7de4, 0x0005, 0x7956, 0x7962, 0x7b37, 0x7956,\r
++      0x7962, 0x7956, 0x7962, 0x7962, 0x7956, 0x7962, 0x7b37, 0x7962,\r
++      0x7962, 0x7962, 0x7962, 0x7962, 0x7956, 0x7962, 0x7b37, 0x7956,\r
++      0x7956, 0x7962, 0x7956, 0x7956, 0x7956, 0x7962, 0x00e6, 0x2071,\r
++      0x18fa, 0x2009, 0x0400, 0x0071, 0x00ee, 0x0005, 0x2009, 0x1000,\r
++      0x0049, 0x0005, 0x2009, 0x2000, 0x0029, 0x0005, 0x2009, 0x0800,\r
++      0x0009, 0x0005, 0x7007, 0x0001, 0xa868, 0x9084, 0x00ff, 0x9105,\r
++      0xa86a, 0x0126, 0x2091, 0x8000, 0x080c, 0x6d80, 0x012e, 0x0005,\r
++      0xa864, 0x8007, 0x9084, 0x00ff, 0x0d08, 0x8001, 0x1120, 0x7007,\r
++      0x0001, 0x0804, 0x7ad9, 0x7007, 0x0003, 0x7012, 0x2900, 0x7016,\r
++      0x701a, 0x704b, 0x7ad9, 0x0005, 0xa864, 0x8007, 0x9084, 0x00ff,\r
++      0x0968, 0x8001, 0x1120, 0x7007, 0x0001, 0x0804, 0x7af4, 0x7007,\r
++      0x0003, 0x7012, 0x2900, 0x7016, 0x701a, 0x704b, 0x7af4, 0x0005,\r
++      0xa864, 0x8007, 0x9084, 0x00ff, 0x0904, 0x795e, 0x8001, 0x1120,\r
++      0x7007, 0x0001, 0x0804, 0x7b10, 0x7007, 0x0003, 0x7012, 0x2900,\r
++      0x7016, 0x701a, 0x704b, 0x7b10, 0x0005, 0xa864, 0x8007, 0x9084,\r
++      0x00ff, 0x9086, 0x0001, 0x1904, 0x795e, 0x7007, 0x0001, 0x2009,\r
++      0x1834, 0x210c, 0x81ff, 0x11a8, 0xa868, 0x9084, 0x00ff, 0xa86a,\r
++      0xa883, 0x0000, 0x080c, 0x62b9, 0x1108, 0x0005, 0x0126, 0x2091,\r
++      0x8000, 0xa867, 0x0139, 0xa87a, 0xa982, 0x080c, 0x6d80, 0x012e,\r
++      0x0ca0, 0xa994, 0x9186, 0x0071, 0x0d38, 0x9186, 0x0064, 0x0d20,\r
++      0x9186, 0x007c, 0x0d08, 0x9186, 0x0028, 0x09f0, 0x9186, 0x0038,\r
++      0x09d8, 0x9186, 0x0078, 0x09c0, 0x9186, 0x005f, 0x09a8, 0x9186,\r
++      0x0056, 0x0990, 0xa897, 0x4005, 0xa89b, 0x0001, 0x2001, 0x0030,\r
++      0x900e, 0x08a0, 0xa87c, 0x9084, 0x00c0, 0x9086, 0x00c0, 0x1120,\r
++      0x7007, 0x0001, 0x0804, 0x7d05, 0x2900, 0x7016, 0x701a, 0x20a9,\r
++      0x0004, 0xa860, 0x20e0, 0xa85c, 0x9080, 0x0030, 0x2098, 0x7050,\r
++      0x2040, 0xa060, 0x20e8, 0xa05c, 0x9080, 0x0023, 0x20a0, 0x4003,\r
++      0xa888, 0x7012, 0x9082, 0x0401, 0x1a04, 0x7966, 0xaab4, 0x928a,\r
++      0x0002, 0x1a04, 0x7966, 0x82ff, 0x1138, 0xa8b8, 0xa9bc, 0x9105,\r
++      0x0118, 0x2001, 0x7a97, 0x0018, 0x9280, 0x7a8d, 0x2005, 0x7056,\r
++      0x7010, 0x9015, 0x0904, 0x7a78, 0x080c, 0x1053, 0x1118, 0x7007,\r
++      0x0004, 0x0005, 0x2900, 0x7022, 0x7054, 0x2060, 0xe000, 0xa866,\r
++      0x7050, 0x2040, 0xa95c, 0xe004, 0x9100, 0xa076, 0xa860, 0xa072,\r
++      0xe008, 0x920a, 0x1210, 0x900e, 0x2200, 0x7112, 0xe20c, 0x8003,\r
++      0x800b, 0x9296, 0x0004, 0x0108, 0x9108, 0xa17a, 0x810b, 0xa17e,\r
++      0x080c, 0x1124, 0xa06c, 0x908e, 0x0100, 0x0170, 0x9086, 0x0200,\r
++      0x0118, 0x7007, 0x0007, 0x0005, 0x7020, 0x2048, 0x080c, 0x106c,\r
++      0x7014, 0x2048, 0x0804, 0x7966, 0x7020, 0x2048, 0x7018, 0xa802,\r
++      0xa807, 0x0000, 0x2908, 0x2048, 0xa906, 0x711a, 0x0804, 0x7a30,\r
++      0x7014, 0x2048, 0x7007, 0x0001, 0xa8b4, 0x9005, 0x1128, 0xa8b8,\r
++      0xa9bc, 0x9105, 0x0108, 0x00b9, 0xa864, 0x9084, 0x00ff, 0x9086,\r
++      0x001e, 0x0904, 0x7d05, 0x0804, 0x7ad9, 0x7a8f, 0x7a93, 0x0002,\r
++      0x001d, 0x0007, 0x0004, 0x000a, 0x001b, 0x0005, 0x0006, 0x000a,\r
++      0x001d, 0x0005, 0x0004, 0x0076, 0x0066, 0xafb8, 0xaebc, 0xa804,\r
++      0x2050, 0xb0c0, 0xb0e2, 0xb0bc, 0xb0de, 0xb0b8, 0xb0d2, 0xb0b4,\r
++      0xb0ce, 0xb6da, 0xb7d6, 0xb0b0, 0xb0ca, 0xb0ac, 0xb0c6, 0xb0a8,\r
++      0xb0ba, 0xb0a4, 0xb0b6, 0xb6c2, 0xb7be, 0xb0a0, 0xb0b2, 0xb09c,\r
++      0xb0ae, 0xb098, 0xb0a2, 0xb094, 0xb09e, 0xb6aa, 0xb7a6, 0xb090,\r
++      0xb09a, 0xb08c, 0xb096, 0xb088, 0xb08a, 0xb084, 0xb086, 0xb692,\r
++      0xb78e, 0xb080, 0xb082, 0xb07c, 0xb07e, 0xb078, 0xb072, 0xb074,\r
++      0xb06e, 0xb67a, 0xb776, 0xb004, 0x9055, 0x1958, 0x006e, 0x007e,\r
++      0x0005, 0x2009, 0x1834, 0x210c, 0x81ff, 0x1178, 0x080c, 0x60bb,\r
++      0x1108, 0x0005, 0x080c, 0x6fc0, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0xcb36, 0x080c, 0x6d80, 0x012e, 0x0ca0, 0x080c, 0xcf4b, 0x1d70,\r
++      0x2001, 0x0028, 0x900e, 0x0c70, 0x2009, 0x1834, 0x210c, 0x81ff,\r
++      0x1188, 0xa888, 0x9005, 0x0188, 0xa883, 0x0000, 0x080c, 0x6149,\r
++      0x1108, 0x0005, 0xa87a, 0x0126, 0x2091, 0x8000, 0x080c, 0x6d80,\r
++      0x012e, 0x0cb8, 0x2001, 0x0028, 0x0ca8, 0x2001, 0x0000, 0x0c90,\r
++      0x2009, 0x1834, 0x210c, 0x81ff, 0x11d8, 0xa888, 0x9005, 0x01e0,\r
++      0xa883, 0x0000, 0xa87c, 0xd0f4, 0x0120, 0x080c, 0x621b, 0x1138,\r
++      0x0005, 0x9006, 0xa87a, 0x080c, 0x6196, 0x1108, 0x0005, 0x0126,\r
++      0x2091, 0x8000, 0xa87a, 0xa982, 0x080c, 0x6d80, 0x012e, 0x0cb0,\r
++      0x2001, 0x0028, 0x900e, 0x0c98, 0x2001, 0x0000, 0x0c80, 0x7018,\r
++      0xa802, 0x2908, 0x2048, 0xa906, 0x711a, 0x7010, 0x8001, 0x7012,\r
++      0x0118, 0x7007, 0x0003, 0x0030, 0x7014, 0x2048, 0x7007, 0x0001,\r
++      0x7048, 0x080f, 0x0005, 0x00b6, 0x7007, 0x0001, 0xa974, 0xa878,\r
++      0x9084, 0x00ff, 0x9096, 0x0004, 0x0540, 0x20a9, 0x0001, 0x9096,\r
++      0x0001, 0x0190, 0x900e, 0x20a9, 0x0800, 0x9096, 0x0002, 0x0160,\r
++      0x9005, 0x11d8, 0xa974, 0x080c, 0x6625, 0x11b8, 0x0066, 0xae80,\r
++      0x080c, 0x6735, 0x006e, 0x0088, 0x0046, 0x2011, 0x180c, 0x2224,\r
++      0xc484, 0x2412, 0x004e, 0x00c6, 0x080c, 0x6625, 0x1110, 0x080c,\r
++      0x6904, 0x8108, 0x1f04, 0x7b74, 0x00ce, 0xa87c, 0xd084, 0x1120,\r
++      0x080c, 0x106c, 0x00be, 0x0005, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0x6d80, 0x012e, 0x00be, 0x0005, 0x0126, 0x2091, 0x8000, 0x7007,\r
++      0x0001, 0x080c, 0x6a67, 0x0580, 0x2061, 0x1a6f, 0x6100, 0xd184,\r
++      0x0178, 0xa888, 0x9084, 0x00ff, 0x1550, 0x6000, 0xd084, 0x0520,\r
++      0x6004, 0x9005, 0x1538, 0x6003, 0x0000, 0x600b, 0x0000, 0x00c8,\r
++      0x2011, 0x0001, 0xa890, 0x9005, 0x1110, 0x2001, 0x001e, 0x8000,\r
++      0x6016, 0xa888, 0x9084, 0x00ff, 0x0178, 0x6006, 0xa888, 0x8007,\r
++      0x9084, 0x00ff, 0x0148, 0x600a, 0xa888, 0x8000, 0x1108, 0xc28d,\r
++      0x6202, 0x012e, 0x0804, 0x7dce, 0x012e, 0x0804, 0x7dc8, 0x012e,\r
++      0x0804, 0x7dc2, 0x012e, 0x0804, 0x7dc5, 0x0126, 0x2091, 0x8000,\r
++      0x7007, 0x0001, 0x080c, 0x6a67, 0x05e0, 0x2061, 0x1a6f, 0x6000,\r
++      0xd084, 0x05b8, 0x6204, 0x6308, 0xd08c, 0x1530, 0xac78, 0x9484,\r
++      0x0003, 0x0170, 0xa988, 0x918c, 0x00ff, 0x8001, 0x1120, 0x2100,\r
++      0x9210, 0x0620, 0x0028, 0x8001, 0x1508, 0x2100, 0x9212, 0x02f0,\r
++      0x9484, 0x000c, 0x0188, 0xa988, 0x810f, 0x918c, 0x00ff, 0x9082,\r
++      0x0004, 0x1120, 0x2100, 0x9318, 0x0288, 0x0030, 0x9082, 0x0004,\r
++      0x1168, 0x2100, 0x931a, 0x0250, 0xa890, 0x9005, 0x0110, 0x8000,\r
++      0x6016, 0x6206, 0x630a, 0x012e, 0x0804, 0x7dce, 0x012e, 0x0804,\r
++      0x7dcb, 0x012e, 0x0804, 0x7dc8, 0x0126, 0x2091, 0x8000, 0x7007,\r
++      0x0001, 0x2061, 0x1a6f, 0x6300, 0xd38c, 0x1120, 0x6308, 0x8318,\r
++      0x0220, 0x630a, 0x012e, 0x0804, 0x7ddc, 0x012e, 0x0804, 0x7dcb,\r
++      0x00b6, 0x0126, 0x00c6, 0x2091, 0x8000, 0x7007, 0x0001, 0xa87c,\r
++      0xd0ac, 0x0148, 0x00c6, 0x2061, 0x1a6f, 0x6000, 0x9084, 0xfcff,\r
++      0x6002, 0x00ce, 0x0440, 0xa888, 0x9005, 0x05d8, 0xa88c, 0x9065,\r
++      0x0598, 0x2001, 0x1834, 0x2004, 0x9005, 0x0118, 0x080c, 0xac28,\r
++      0x0068, 0x6017, 0xf400, 0x6063, 0x0000, 0xa97c, 0xd1a4, 0x0110,\r
++      0xa980, 0x6162, 0x2009, 0x0041, 0x080c, 0xac8c, 0xa988, 0x918c,\r
++      0xff00, 0x9186, 0x2000, 0x1138, 0x0026, 0x900e, 0x2011, 0xfdff,\r
++      0x080c, 0x88ec, 0x002e, 0xa87c, 0xd0c4, 0x0148, 0x2061, 0x1a6f,\r
++      0x6000, 0xd08c, 0x1120, 0x6008, 0x8000, 0x0208, 0x600a, 0x00ce,\r
++      0x012e, 0x00be, 0x0804, 0x7dce, 0x00ce, 0x012e, 0x00be, 0x0804,\r
++      0x7dc8, 0xa984, 0x9186, 0x002e, 0x0d30, 0x9186, 0x002d, 0x0d18,\r
++      0x9186, 0x0045, 0x0510, 0x9186, 0x002a, 0x1130, 0x2001, 0x180c,\r
++      0x200c, 0xc194, 0x2102, 0x08b8, 0x9186, 0x0020, 0x0158, 0x9186,\r
++      0x0029, 0x1d10, 0xa974, 0x080c, 0x6625, 0x1968, 0xb800, 0xc0e4,\r
++      0xb802, 0x0848, 0xa88c, 0x9065, 0x09b8, 0x6007, 0x0024, 0x2001,\r
++      0x1986, 0x2004, 0x601a, 0x0804, 0x7c63, 0xa88c, 0x9065, 0x0960,\r
++      0x00e6, 0xa890, 0x9075, 0x2001, 0x1834, 0x2004, 0x9005, 0x0150,\r
++      0x080c, 0xac28, 0x8eff, 0x0118, 0x2e60, 0x080c, 0xac28, 0x00ee,\r
++      0x0804, 0x7c63, 0x6024, 0xc0dc, 0xc0d5, 0x6026, 0x2e60, 0x6007,\r
++      0x003a, 0xa8a0, 0x9005, 0x0130, 0x6007, 0x003b, 0xa8a4, 0x602e,\r
++      0xa8a8, 0x6016, 0x6003, 0x0001, 0x2009, 0x8020, 0x080c, 0x921e,\r
++      0x00ee, 0x0804, 0x7c63, 0x2061, 0x1a6f, 0x6000, 0xd084, 0x0190,\r
++      0xd08c, 0x1904, 0x7ddc, 0x0126, 0x2091, 0x8000, 0x6204, 0x8210,\r
++      0x0220, 0x6206, 0x012e, 0x0804, 0x7ddc, 0x012e, 0xa883, 0x0016,\r
++      0x0804, 0x7dd5, 0xa883, 0x0007, 0x0804, 0x7dd5, 0xa864, 0x8007,\r
++      0x9084, 0x00ff, 0x0130, 0x8001, 0x1138, 0x7007, 0x0001, 0x0069,\r
++      0x0005, 0x080c, 0x795e, 0x0040, 0x7007, 0x0003, 0x7012, 0x2900,\r
++      0x7016, 0x701a, 0x704b, 0x7d05, 0x0005, 0x00b6, 0x00e6, 0x0126,\r
++      0x2091, 0x8000, 0x903e, 0x2061, 0x1800, 0x61d0, 0x81ff, 0x1904,\r
++      0x7d87, 0x6130, 0xd194, 0x1904, 0x7db1, 0xa878, 0x2070, 0x9e82,\r
++      0x1ddc, 0x0a04, 0x7d7b, 0x6068, 0x9e02, 0x1a04, 0x7d7b, 0x7120,\r
++      0x9186, 0x0006, 0x1904, 0x7d6d, 0x7010, 0x905d, 0x0904, 0x7d87,\r
++      0xb800, 0xd0e4, 0x1904, 0x7dab, 0x2061, 0x1a6f, 0x6100, 0x9184,\r
++      0x0301, 0x9086, 0x0001, 0x15a0, 0x7024, 0xd0dc, 0x1904, 0x7db4,\r
++      0xa883, 0x0000, 0xa803, 0x0000, 0x2908, 0x7014, 0x9005, 0x1198,\r
++      0x7116, 0xa87c, 0xd0f4, 0x1904, 0x7db7, 0x080c, 0x56da, 0xd09c,\r
++      0x1118, 0xa87c, 0xc0cc, 0xa87e, 0x2e60, 0x080c, 0x87df, 0x012e,\r
++      0x00ee, 0x00be, 0x0005, 0x2048, 0xa800, 0x9005, 0x1de0, 0xa902,\r
++      0x2148, 0xa87c, 0xd0f4, 0x1904, 0x7db7, 0x012e, 0x00ee, 0x00be,\r
++      0x0005, 0x012e, 0x00ee, 0xa883, 0x0006, 0x00be, 0x0804, 0x7dd5,\r
++      0xd184, 0x0db8, 0xd1c4, 0x1190, 0x00a0, 0xa974, 0x080c, 0x6625,\r
++      0x15d0, 0xb800, 0xd0e4, 0x15b8, 0x7120, 0x9186, 0x0007, 0x1118,\r
++      0xa883, 0x0002, 0x0490, 0xa883, 0x0008, 0x0478, 0xa883, 0x000e,\r
++      0x0460, 0xa883, 0x0017, 0x0448, 0xa883, 0x0035, 0x0430, 0x080c,\r
++      0x56de, 0xd0fc, 0x01e8, 0xa878, 0x2070, 0x9e82, 0x1ddc, 0x02c0,\r
++      0x6068, 0x9e02, 0x12a8, 0x7120, 0x9186, 0x0006, 0x1188, 0x7010,\r
++      0x905d, 0x0170, 0xb800, 0xd0bc, 0x0158, 0x2039, 0x0001, 0x7000,\r
++      0x9086, 0x0007, 0x1904, 0x7d11, 0x7003, 0x0002, 0x0804, 0x7d11,\r
++      0xa883, 0x0028, 0x0010, 0xa883, 0x0029, 0x012e, 0x00ee, 0x00be,\r
++      0x0420, 0xa883, 0x002a, 0x0cc8, 0xa883, 0x0045, 0x0cb0, 0x2e60,\r
++      0x2019, 0x0002, 0x601b, 0x0014, 0x080c, 0xde1b, 0x012e, 0x00ee,\r
++      0x00be, 0x0005, 0x2009, 0x003e, 0x0058, 0x2009, 0x0004, 0x0040,\r
++      0x2009, 0x0006, 0x0028, 0x2009, 0x0016, 0x0010, 0x2009, 0x0001,\r
++      0xa884, 0x9084, 0xff00, 0x9105, 0xa886, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x6d80, 0x012e, 0x0005, 0x080c, 0x106c, 0x0005, 0x00d6,\r
++      0x080c, 0x87d6, 0x00de, 0x0005, 0x00d6, 0x00e6, 0x0126, 0x2091,\r
++      0x8000, 0x2071, 0x0040, 0x702c, 0xd084, 0x01d8, 0x908c, 0x0780,\r
++      0x190c, 0x7ec6, 0xd09c, 0x11a8, 0x2071, 0x1800, 0x70c0, 0x90ea,\r
++      0x0020, 0x0278, 0x8001, 0x70c2, 0x702c, 0x2048, 0xa800, 0x702e,\r
++      0x9006, 0xa802, 0xa806, 0x2071, 0x0040, 0x2900, 0x7022, 0x702c,\r
++      0x0c28, 0x012e, 0x00ee, 0x00de, 0x0005, 0x0006, 0x9084, 0x0780,\r
++      0x190c, 0x7ec6, 0x000e, 0x0005, 0xa898, 0x9084, 0x0003, 0x05a8,\r
++      0x080c, 0xab97, 0x05d8, 0x2900, 0x6016, 0xa864, 0x9084, 0x00ff,\r
++      0x9086, 0x0035, 0x1138, 0x6028, 0xc0fd, 0x602a, 0x2001, 0x196b,\r
++      0x2004, 0x0098, 0xa8a0, 0x9084, 0x00ff, 0xa99c, 0x918c, 0xff00,\r
++      0x9105, 0xa99c, 0x918c, 0x00ff, 0x080c, 0x25fb, 0x1540, 0x00b6,\r
++      0x080c, 0x6625, 0x2b00, 0x00be, 0x1510, 0x6012, 0x6023, 0x0001,\r
++      0x2009, 0x0040, 0xa864, 0x9084, 0x00ff, 0x9086, 0x0035, 0x0110,\r
++      0x2009, 0x0041, 0x080c, 0xac8c, 0x0005, 0xa87b, 0x0101, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0x6d80, 0x012e, 0x0005, 0xa87b, 0x002c,\r
++      0x0126, 0x2091, 0x8000, 0x080c, 0x6d80, 0x012e, 0x0005, 0xa87b,\r
++      0x0028, 0x0126, 0x2091, 0x8000, 0x080c, 0x6d80, 0x012e, 0x080c,\r
++      0xabed, 0x0005, 0x00d6, 0x00c6, 0x0036, 0x0026, 0x0016, 0x00b6,\r
++      0x7007, 0x0001, 0xaa74, 0x9282, 0x0004, 0x1a04, 0x7eb7, 0xa97c,\r
++      0x9188, 0x1000, 0x2104, 0x905d, 0xb804, 0xd284, 0x0140, 0x05e8,\r
++      0x8007, 0x9084, 0x00ff, 0x9084, 0x0006, 0x1108, 0x04b0, 0x2b10,\r
++      0x080c, 0xab97, 0x1118, 0x080c, 0xac5f, 0x05a8, 0x6212, 0xa874,\r
++      0x0002, 0x7e95, 0x7e9a, 0x7e9d, 0x7ea3, 0x2019, 0x0002, 0x080c,\r
++      0xe239, 0x0060, 0x080c, 0xe1c9, 0x0048, 0x2019, 0x0002, 0xa980,\r
++      0x080c, 0xe1e8, 0x0018, 0xa980, 0x080c, 0xe1c9, 0x080c, 0xabed,\r
++      0xa887, 0x0000, 0x0126, 0x2091, 0x8000, 0x080c, 0x6d80, 0x012e,\r
++      0x00be, 0x001e, 0x002e, 0x003e, 0x00ce, 0x00de, 0x0005, 0xa887,\r
++      0x0006, 0x0c80, 0xa887, 0x0002, 0x0c68, 0xa887, 0x0005, 0x0c50,\r
++      0xa887, 0x0004, 0x0c38, 0xa887, 0x0007, 0x0c20, 0x2091, 0x8000,\r
++      0x0e04, 0x7ec8, 0x0006, 0x0016, 0x2001, 0x8003, 0x0006, 0x0804,\r
++      0x0d86, 0x2001, 0x1834, 0x2004, 0x9005, 0x0005, 0x0005, 0x00f6,\r
++      0x2079, 0x0300, 0x2001, 0x0200, 0x200c, 0xc1e5, 0xc1dc, 0x2102,\r
++      0x2009, 0x0218, 0x210c, 0xd1ec, 0x1120, 0x080c, 0x1608, 0x00fe,\r
++      0x0005, 0x2001, 0x020d, 0x2003, 0x0020, 0x781f, 0x0300, 0x00fe,\r
++      0x0005, 0x781c, 0xd08c, 0x0904, 0x7f49, 0x68c0, 0x90aa, 0x0005,\r
++      0x0a04, 0x854a, 0x7d44, 0x7c40, 0xd59c, 0x190c, 0x0d7d, 0x9584,\r
++      0x00f6, 0x1508, 0x9484, 0x7000, 0x0138, 0x908a, 0x2000, 0x1258,\r
++      0x9584, 0x0700, 0x8007, 0x04f0, 0x7000, 0x9084, 0xff00, 0x9086,\r
++      0x8100, 0x0db0, 0x00b0, 0x9484, 0x0fff, 0x1130, 0x7000, 0x9084,\r
++      0xff00, 0x9086, 0x8100, 0x11c0, 0x080c, 0xe6da, 0x080c, 0x8441,\r
++      0x7817, 0x0140, 0x00a8, 0x9584, 0x0076, 0x1118, 0x080c, 0x849d,\r
++      0x19c8, 0xd5a4, 0x0148, 0x0046, 0x0056, 0x080c, 0x7f99, 0x080c,\r
++      0x2115, 0x005e, 0x004e, 0x0020, 0x080c, 0xe6da, 0x7817, 0x0140,\r
++      0x080c, 0x74e9, 0x0168, 0x2001, 0x0111, 0x2004, 0xd08c, 0x0140,\r
++      0x6893, 0x0000, 0x2001, 0x0110, 0x2003, 0x0008, 0x2003, 0x0000,\r
++      0x0489, 0x0005, 0x0002, 0x7f56, 0x8263, 0x7f53, 0x7f53, 0x7f53,\r
++      0x7f53, 0x7f53, 0x7f53, 0x7817, 0x0140, 0x0005, 0x7000, 0x908c,\r
++      0xff00, 0x9194, 0xf000, 0x810f, 0x9484, 0x0fff, 0x6892, 0x9286,\r
++      0x2000, 0x1150, 0x6800, 0x9086, 0x0001, 0x1118, 0x080c, 0x573b,\r
++      0x0070, 0x080c, 0x7fb9, 0x0058, 0x9286, 0x3000, 0x1118, 0x080c,\r
++      0x81a0, 0x0028, 0x9286, 0x8000, 0x1110, 0x080c, 0x8377, 0x7817,\r
++      0x0140, 0x0005, 0x2001, 0x1810, 0x2004, 0xd08c, 0x0178, 0x2001,\r
++      0x1800, 0x2004, 0x9086, 0x0003, 0x1148, 0x0026, 0x0036, 0x2011,\r
++      0x8048, 0x2518, 0x080c, 0x4b07, 0x003e, 0x002e, 0x0005, 0x0036,\r
++      0x0046, 0x0056, 0x00f6, 0x2079, 0x0200, 0x2019, 0xfffe, 0x7c30,\r
++      0x0050, 0x0036, 0x0046, 0x0056, 0x00f6, 0x2079, 0x0200, 0x7d44,\r
++      0x7c40, 0x2019, 0xffff, 0x2001, 0x1810, 0x2004, 0xd08c, 0x0160,\r
++      0x2001, 0x1800, 0x2004, 0x9086, 0x0003, 0x1130, 0x0026, 0x2011,\r
++      0x8048, 0x080c, 0x4b07, 0x002e, 0x00fe, 0x005e, 0x004e, 0x003e,\r
++      0x0005, 0x00b6, 0x00c6, 0x7010, 0x9084, 0xff00, 0x8007, 0x9096,\r
++      0x0001, 0x0120, 0x9096, 0x0023, 0x1904, 0x8171, 0x9186, 0x0023,\r
++      0x15c0, 0x080c, 0x840c, 0x0904, 0x8171, 0x6120, 0x9186, 0x0001,\r
++      0x0150, 0x9186, 0x0004, 0x0138, 0x9186, 0x0008, 0x0120, 0x9186,\r
++      0x000a, 0x1904, 0x8171, 0x7124, 0x610a, 0x7030, 0x908e, 0x0200,\r
++      0x1130, 0x2009, 0x0015, 0x080c, 0xac8c, 0x0804, 0x8171, 0x908e,\r
++      0x0214, 0x0118, 0x908e, 0x0210, 0x1130, 0x2009, 0x0015, 0x080c,\r
++      0xac8c, 0x0804, 0x8171, 0x908e, 0x0100, 0x1904, 0x8171, 0x7034,\r
++      0x9005, 0x1904, 0x8171, 0x2009, 0x0016, 0x080c, 0xac8c, 0x0804,\r
++      0x8171, 0x9186, 0x0022, 0x1904, 0x8171, 0x7030, 0x908e, 0x0300,\r
++      0x1580, 0x68dc, 0xd0a4, 0x0528, 0xc0b5, 0x68de, 0x7100, 0x918c,\r
++      0x00ff, 0x697e, 0x7004, 0x6882, 0x00f6, 0x2079, 0x0100, 0x79e6,\r
++      0x78ea, 0x0006, 0x9084, 0x00ff, 0x0016, 0x2008, 0x080c, 0x2644,\r
++      0x7932, 0x7936, 0x001e, 0x000e, 0x00fe, 0x080c, 0x25fb, 0x695e,\r
++      0x703c, 0x00e6, 0x2071, 0x0140, 0x7086, 0x2071, 0x1800, 0x70b6,\r
++      0x00ee, 0x7034, 0x9005, 0x1904, 0x8171, 0x2009, 0x0017, 0x0804,\r
++      0x8121, 0x908e, 0x0400, 0x1190, 0x7034, 0x9005, 0x1904, 0x8171,\r
++      0x080c, 0x74e9, 0x0120, 0x2009, 0x001d, 0x0804, 0x8121, 0x68dc,\r
++      0xc0a5, 0x68de, 0x2009, 0x0030, 0x0804, 0x8121, 0x908e, 0x0500,\r
++      0x1140, 0x7034, 0x9005, 0x1904, 0x8171, 0x2009, 0x0018, 0x0804,\r
++      0x8121, 0x908e, 0x2010, 0x1120, 0x2009, 0x0019, 0x0804, 0x8121,\r
++      0x908e, 0x2110, 0x1120, 0x2009, 0x001a, 0x0804, 0x8121, 0x908e,\r
++      0x5200, 0x1140, 0x7034, 0x9005, 0x1904, 0x8171, 0x2009, 0x001b,\r
++      0x0804, 0x8121, 0x908e, 0x5000, 0x1140, 0x7034, 0x9005, 0x1904,\r
++      0x8171, 0x2009, 0x001c, 0x0804, 0x8121, 0x908e, 0x1300, 0x1120,\r
++      0x2009, 0x0034, 0x0804, 0x8121, 0x908e, 0x1200, 0x1140, 0x7034,\r
++      0x9005, 0x1904, 0x8171, 0x2009, 0x0024, 0x0804, 0x8121, 0x908c,\r
++      0xff00, 0x918e, 0x2400, 0x1170, 0x2009, 0x002d, 0x2001, 0x1810,\r
++      0x2004, 0xd09c, 0x0904, 0x8121, 0x080c, 0xd64f, 0x1904, 0x8171,\r
++      0x0804, 0x811f, 0x908c, 0xff00, 0x918e, 0x5300, 0x1120, 0x2009,\r
++      0x002a, 0x0804, 0x8121, 0x908e, 0x0f00, 0x1120, 0x2009, 0x0020,\r
++      0x0804, 0x8121, 0x908e, 0x6104, 0x1530, 0x2029, 0x0205, 0x2011,\r
++      0x026d, 0x8208, 0x2204, 0x9082, 0x0004, 0x8004, 0x8004, 0x20a8,\r
++      0x2011, 0x8015, 0x211c, 0x8108, 0x0046, 0x2124, 0x080c, 0x4b07,\r
++      0x004e, 0x8108, 0x0f04, 0x80d5, 0x9186, 0x0280, 0x1d88, 0x2504,\r
++      0x8000, 0x202a, 0x2009, 0x0260, 0x0c58, 0x202b, 0x0000, 0x2009,\r
++      0x0023, 0x0804, 0x8121, 0x908e, 0x6000, 0x1120, 0x2009, 0x003f,\r
++      0x0804, 0x8121, 0x908e, 0x5400, 0x1138, 0x080c, 0x84fa, 0x1904,\r
++      0x8171, 0x2009, 0x0046, 0x04a8, 0x908e, 0x5500, 0x1148, 0x080c,\r
++      0x8522, 0x1118, 0x2009, 0x0041, 0x0460, 0x2009, 0x0042, 0x0448,\r
++      0x908e, 0x7800, 0x1118, 0x2009, 0x0045, 0x0418, 0x908e, 0x1000,\r
++      0x1118, 0x2009, 0x004e, 0x00e8, 0x908e, 0x6300, 0x1118, 0x2009,\r
++      0x004a, 0x00b8, 0x908c, 0xff00, 0x918e, 0x5600, 0x1118, 0x2009,\r
++      0x004f, 0x0078, 0x908c, 0xff00, 0x918e, 0x5700, 0x1118, 0x2009,\r
++      0x0050, 0x0038, 0x2009, 0x001d, 0x6838, 0xd0d4, 0x0110, 0x2009,\r
++      0x004c, 0x0016, 0x2011, 0x0263, 0x2204, 0x8211, 0x220c, 0x080c,\r
++      0x25fb, 0x1904, 0x8174, 0x080c, 0x65c4, 0x1904, 0x8174, 0xbe12,\r
++      0xbd16, 0x001e, 0x0016, 0x080c, 0x74e9, 0x01c0, 0x68dc, 0xd08c,\r
++      0x1148, 0x7000, 0x9084, 0x00ff, 0x1188, 0x7004, 0x9084, 0xff00,\r
++      0x1168, 0x0040, 0x687c, 0x9606, 0x1148, 0x6880, 0x9506, 0x9084,\r
++      0xff00, 0x1120, 0x9584, 0x00ff, 0xb886, 0x0080, 0xb884, 0x9005,\r
++      0x1168, 0x9186, 0x0046, 0x1150, 0x687c, 0x9606, 0x1138, 0x6880,\r
++      0x9506, 0x9084, 0xff00, 0x1110, 0x001e, 0x0098, 0x080c, 0xab97,\r
++      0x01a8, 0x2b08, 0x6112, 0x6023, 0x0004, 0x7120, 0x610a, 0x001e,\r
++      0x9186, 0x004c, 0x1110, 0x6023, 0x000a, 0x0016, 0x001e, 0x080c,\r
++      0xac8c, 0x00ce, 0x00be, 0x0005, 0x001e, 0x0cd8, 0x2001, 0x180e,\r
++      0x2004, 0xd0ec, 0x0120, 0x2011, 0x8049, 0x080c, 0x4b07, 0x080c,\r
++      0xac5f, 0x0d90, 0x2b08, 0x6112, 0x6023, 0x0004, 0x7120, 0x610a,\r
++      0x001e, 0x0016, 0x9186, 0x0017, 0x0118, 0x9186, 0x0030, 0x1128,\r
++      0x6007, 0x0009, 0x6017, 0x2900, 0x0020, 0x6007, 0x0051, 0x6017,\r
++      0x0000, 0x602f, 0x0009, 0x6003, 0x0001, 0x080c, 0x9225, 0x08a0,\r
++      0x080c, 0x3332, 0x1140, 0x7010, 0x9084, 0xff00, 0x8007, 0x908e,\r
++      0x0008, 0x1108, 0x0009, 0x0005, 0x00b6, 0x00c6, 0x0046, 0x7000,\r
++      0x908c, 0xff00, 0x810f, 0x9186, 0x0033, 0x11e8, 0x080c, 0x840c,\r
++      0x0904, 0x81fb, 0x7124, 0x610a, 0x7030, 0x908e, 0x0200, 0x1140,\r
++      0x7034, 0x9005, 0x15c0, 0x2009, 0x0015, 0x080c, 0xac8c, 0x0498,\r
++      0x908e, 0x0100, 0x1580, 0x7034, 0x9005, 0x1568, 0x2009, 0x0016,\r
++      0x080c, 0xac8c, 0x0440, 0x9186, 0x0032, 0x1528, 0x7030, 0x908e,\r
++      0x1400, 0x1508, 0x2009, 0x0038, 0x0016, 0x2011, 0x0263, 0x2204,\r
++      0x8211, 0x220c, 0x080c, 0x25fb, 0x11a8, 0x080c, 0x65c4, 0x1190,\r
++      0xbe12, 0xbd16, 0x080c, 0xab97, 0x0168, 0x2b08, 0x6112, 0x080c,\r
++      0xcccc, 0x6023, 0x0004, 0x7120, 0x610a, 0x001e, 0x080c, 0xac8c,\r
++      0x0010, 0x00ce, 0x001e, 0x004e, 0x00ce, 0x00be, 0x0005, 0x00b6,\r
++      0x0046, 0x00e6, 0x00d6, 0x2028, 0x2130, 0x9696, 0x00ff, 0x11b8,\r
++      0x9592, 0xfffc, 0x02a0, 0x9596, 0xfffd, 0x1120, 0x2009, 0x007f,\r
++      0x0804, 0x825d, 0x9596, 0xfffe, 0x1120, 0x2009, 0x007e, 0x0804,\r
++      0x825d, 0x9596, 0xfffc, 0x1118, 0x2009, 0x0080, 0x04f0, 0x2011,\r
++      0x0000, 0x2019, 0x1837, 0x231c, 0xd3ac, 0x0130, 0x9026, 0x20a9,\r
++      0x0800, 0x2071, 0x1000, 0x0030, 0x2021, 0x0081, 0x20a9, 0x077f,\r
++      0x2071, 0x1081, 0x2e1c, 0x93dd, 0x0000, 0x1140, 0x82ff, 0x11d0,\r
++      0x9496, 0x00ff, 0x01b8, 0x2410, 0xc2fd, 0x00a0, 0xbf10, 0x2600,\r
++      0x9706, 0xb814, 0x1120, 0x9546, 0x1110, 0x2408, 0x00b0, 0x9745,\r
++      0x1148, 0x94c6, 0x007e, 0x0130, 0x94c6, 0x007f, 0x0118, 0x94c6,\r
++      0x0080, 0x1d20, 0x8420, 0x8e70, 0x1f04, 0x8232, 0x82ff, 0x1118,\r
++      0x9085, 0x0001, 0x0018, 0xc2fc, 0x2208, 0x9006, 0x00de, 0x00ee,\r
++      0x004e, 0x00be, 0x0005, 0x7000, 0x908c, 0xff00, 0x810f, 0x9184,\r
++      0x000f, 0x0002, 0x827a, 0x827a, 0x827a, 0x841e, 0x827a, 0x827d,\r
++      0x82a2, 0x832b, 0x827a, 0x827a, 0x827a, 0x827a, 0x827a, 0x827a,\r
++      0x827a, 0x827a, 0x7817, 0x0140, 0x0005, 0x00b6, 0x7110, 0xd1bc,\r
++      0x01e8, 0x7120, 0x2160, 0x9c8c, 0x0003, 0x11c0, 0x9c8a, 0x1ddc,\r
++      0x02a8, 0x6868, 0x9c02, 0x1290, 0x7008, 0x9084, 0x00ff, 0x6110,\r
++      0x2158, 0xb910, 0x9106, 0x1150, 0x700c, 0xb914, 0x9106, 0x1130,\r
++      0x7124, 0x610a, 0x2009, 0x0046, 0x080c, 0xac8c, 0x7817, 0x0140,\r
++      0x00be, 0x0005, 0x00b6, 0x00c6, 0x9484, 0x0fff, 0x0904, 0x8307,\r
++      0x7110, 0xd1bc, 0x1904, 0x8307, 0x7108, 0x700c, 0x2028, 0x918c,\r
++      0x00ff, 0x2130, 0x9094, 0xff00, 0x15c8, 0x81ff, 0x15b8, 0x9080,\r
++      0x3374, 0x200d, 0x918c, 0xff00, 0x810f, 0x2001, 0x0080, 0x9106,\r
++      0x0904, 0x8307, 0x9182, 0x0801, 0x1a04, 0x8307, 0x9190, 0x1000,\r
++      0x2204, 0x905d, 0x05e0, 0xbe12, 0xbd16, 0xb800, 0xd0ec, 0x15b8,\r
++      0xba04, 0x9294, 0xff00, 0x9286, 0x0600, 0x1190, 0x080c, 0xab97,\r
++      0x0598, 0x2b08, 0x7028, 0x6052, 0x702c, 0x604e, 0x6112, 0x6023,\r
++      0x0006, 0x7120, 0x610a, 0x7130, 0x615e, 0x080c, 0xd8b5, 0x00f8,\r
++      0x080c, 0x6a6b, 0x1138, 0xb807, 0x0606, 0x0c40, 0x190c, 0x81ff,\r
++      0x11b0, 0x0880, 0x080c, 0xab97, 0x2b08, 0x0188, 0x6112, 0x6023,\r
++      0x0004, 0x7120, 0x610a, 0x9286, 0x0400, 0x1118, 0x6007, 0x0005,\r
++      0x0010, 0x6007, 0x0001, 0x6003, 0x0001, 0x080c, 0x9225, 0x7817,\r
++      0x0140, 0x00ce, 0x00be, 0x0005, 0x2001, 0x180e, 0x2004, 0xd0ec,\r
++      0x0120, 0x2011, 0x8049, 0x080c, 0x4b07, 0x080c, 0xac5f, 0x0d78,\r
++      0x2b08, 0x6112, 0x6023, 0x0006, 0x7120, 0x610a, 0x7130, 0x615e,\r
++      0x6017, 0xf300, 0x6003, 0x0001, 0x6007, 0x0041, 0x2009, 0xa022,\r
++      0x080c, 0x921e, 0x08e0, 0x00b6, 0x7110, 0xd1bc, 0x05d0, 0x7020,\r
++      0x2060, 0x9c84, 0x0003, 0x15a8, 0x9c82, 0x1ddc, 0x0690, 0x6868,\r
++      0x9c02, 0x1678, 0x9484, 0x0fff, 0x9082, 0x000c, 0x0650, 0x7008,\r
++      0x9084, 0x00ff, 0x6110, 0x2158, 0xb910, 0x9106, 0x1510, 0x700c,\r
++      0xb914, 0x9106, 0x11f0, 0x7124, 0x610a, 0x601c, 0xd0fc, 0x11c8,\r
++      0x2001, 0x0271, 0x2004, 0x9005, 0x1180, 0x9484, 0x0fff, 0x9082,\r
++      0x000c, 0x0158, 0x0066, 0x2031, 0x0100, 0xa001, 0xa001, 0x8631,\r
++      0x1de0, 0x006e, 0x601c, 0xd0fc, 0x1120, 0x2009, 0x0045, 0x080c,\r
++      0xac8c, 0x7817, 0x0140, 0x00be, 0x0005, 0x6120, 0x9186, 0x0002,\r
++      0x0128, 0x9186, 0x0005, 0x0110, 0x9085, 0x0001, 0x0005, 0x080c,\r
++      0x3332, 0x1168, 0x7010, 0x9084, 0xff00, 0x8007, 0x9086, 0x0000,\r
++      0x1130, 0x9184, 0x000f, 0x908a, 0x0006, 0x1208, 0x000b, 0x0005,\r
++      0x838e, 0x838f, 0x838e, 0x838e, 0x83ee, 0x83fd, 0x0005, 0x00b6,\r
++      0x7110, 0xd1bc, 0x0120, 0x702c, 0xd084, 0x0904, 0x83ec, 0x700c,\r
++      0x7108, 0x080c, 0x25fb, 0x1904, 0x83ec, 0x080c, 0x65c4, 0x1904,\r
++      0x83ec, 0xbe12, 0xbd16, 0x7110, 0xd1bc, 0x01d8, 0x080c, 0x6a6b,\r
++      0x0118, 0x9086, 0x0004, 0x1588, 0x00c6, 0x080c, 0x840c, 0x00ce,\r
++      0x05d8, 0x080c, 0xab97, 0x2b08, 0x05b8, 0x6112, 0x080c, 0xcccc,\r
++      0x6023, 0x0002, 0x7120, 0x610a, 0x2009, 0x0088, 0x080c, 0xac8c,\r
++      0x0458, 0x080c, 0x6a6b, 0x0148, 0x9086, 0x0004, 0x0130, 0x080c,\r
++      0x6a73, 0x0118, 0x9086, 0x0004, 0x1180, 0x080c, 0xab97, 0x2b08,\r
++      0x01d8, 0x6112, 0x080c, 0xcccc, 0x6023, 0x0005, 0x7120, 0x610a,\r
++      0x2009, 0x0088, 0x080c, 0xac8c, 0x0078, 0x080c, 0xab97, 0x2b08,\r
++      0x0158, 0x6112, 0x080c, 0xcccc, 0x6023, 0x0004, 0x7120, 0x610a,\r
++      0x2009, 0x0001, 0x080c, 0xac8c, 0x00be, 0x0005, 0x7110, 0xd1bc,\r
++      0x0158, 0x00d1, 0x0148, 0x080c, 0x836d, 0x1130, 0x7124, 0x610a,\r
++      0x2009, 0x0089, 0x080c, 0xac8c, 0x0005, 0x7110, 0xd1bc, 0x0158,\r
++      0x0059, 0x0148, 0x080c, 0x836d, 0x1130, 0x7124, 0x610a, 0x2009,\r
++      0x008a, 0x080c, 0xac8c, 0x0005, 0x7020, 0x2060, 0x9c84, 0x0003,\r
++      0x1158, 0x9c82, 0x1ddc, 0x0240, 0x2001, 0x181a, 0x2004, 0x9c02,\r
++      0x1218, 0x9085, 0x0001, 0x0005, 0x9006, 0x0ce8, 0x00b6, 0x7110,\r
++      0xd1bc, 0x11d8, 0x7024, 0x2060, 0x9c84, 0x0003, 0x11b0, 0x9c82,\r
++      0x1ddc, 0x0298, 0x6868, 0x9c02, 0x1280, 0x7008, 0x9084, 0x00ff,\r
++      0x6110, 0x2158, 0xb910, 0x9106, 0x1140, 0x700c, 0xb914, 0x9106,\r
++      0x1120, 0x2009, 0x0051, 0x080c, 0xac8c, 0x7817, 0x0140, 0x00be,\r
++      0x0005, 0x2031, 0x0105, 0x0069, 0x0005, 0x2031, 0x0206, 0x0049,\r
++      0x0005, 0x2031, 0x0207, 0x0029, 0x0005, 0x2031, 0x0213, 0x0009,\r
++      0x0005, 0x00c6, 0x0096, 0x00f6, 0x7000, 0x9084, 0xf000, 0x9086,\r
++      0xc000, 0x05c0, 0x080c, 0xab97, 0x05a8, 0x0066, 0x00c6, 0x0046,\r
++      0x2011, 0x0263, 0x2204, 0x8211, 0x220c, 0x080c, 0x25fb, 0x1590,\r
++      0x080c, 0x65c4, 0x1578, 0xbe12, 0xbd16, 0x2b00, 0x004e, 0x00ce,\r
++      0x6012, 0x080c, 0xcccc, 0x080c, 0x103a, 0x0500, 0x2900, 0x6062,\r
++      0x9006, 0xa802, 0xa866, 0xac6a, 0xa85c, 0x90f8, 0x001b, 0x20a9,\r
++      0x000e, 0xa860, 0x20e8, 0x20e1, 0x0000, 0x2fa0, 0x2e98, 0x4003,\r
++      0x006e, 0x6616, 0x6007, 0x003e, 0x6023, 0x0001, 0x6003, 0x0001,\r
++      0x080c, 0x9225, 0x00fe, 0x009e, 0x00ce, 0x0005, 0x080c, 0xabed,\r
++      0x006e, 0x0cc0, 0x004e, 0x00ce, 0x0cc8, 0x00c6, 0x7000, 0x908c,\r
++      0xff00, 0x9184, 0xf000, 0x810f, 0x9086, 0x2000, 0x1904, 0x84f4,\r
++      0x9186, 0x0022, 0x15f0, 0x2001, 0x0111, 0x2004, 0x9005, 0x1904,\r
++      0x84f6, 0x7030, 0x908e, 0x0400, 0x0904, 0x84f6, 0x908e, 0x6000,\r
++      0x05e8, 0x908e, 0x5400, 0x05d0, 0x908e, 0x0300, 0x11d8, 0x2009,\r
++      0x1837, 0x210c, 0xd18c, 0x1590, 0xd1a4, 0x1580, 0x080c, 0x6a29,\r
++      0x0558, 0x68b0, 0x9084, 0x00ff, 0x7100, 0x918c, 0x00ff, 0x9106,\r
++      0x1518, 0x6880, 0x69b0, 0x918c, 0xff00, 0x9105, 0x7104, 0x9106,\r
++      0x11d8, 0x00e0, 0x2009, 0x0103, 0x210c, 0xd1b4, 0x11a8, 0x908e,\r
++      0x5200, 0x09e8, 0x908e, 0x0500, 0x09d0, 0x908e, 0x5000, 0x09b8,\r
++      0x0058, 0x9186, 0x0023, 0x1140, 0x080c, 0x840c, 0x0128, 0x6004,\r
++      0x9086, 0x0002, 0x0118, 0x0000, 0x9006, 0x0010, 0x9085, 0x0001,\r
++      0x00ce, 0x0005, 0x0156, 0x0046, 0x0016, 0x0036, 0x7038, 0x2020,\r
++      0x8427, 0x94a4, 0x0007, 0xd484, 0x0148, 0x20a9, 0x0004, 0x2019,\r
++      0x1805, 0x2011, 0x027a, 0x080c, 0xbbae, 0x1178, 0xd48c, 0x0148,\r
++      0x20a9, 0x0004, 0x2019, 0x1801, 0x2011, 0x027e, 0x080c, 0xbbae,\r
++      0x1120, 0xd494, 0x0110, 0x9085, 0x0001, 0x003e, 0x001e, 0x004e,\r
++      0x015e, 0x0005, 0x0156, 0x0046, 0x0016, 0x0036, 0x7038, 0x2020,\r
++      0x8427, 0x94a4, 0x0007, 0xd484, 0x0148, 0x20a9, 0x0004, 0x2019,\r
++      0x1805, 0x2011, 0x0272, 0x080c, 0xbbae, 0x1178, 0xd48c, 0x0148,\r
++      0x20a9, 0x0004, 0x2019, 0x1801, 0x2011, 0x0276, 0x080c, 0xbbae,\r
++      0x1120, 0xd494, 0x0110, 0x9085, 0x0001, 0x003e, 0x001e, 0x004e,\r
++      0x015e, 0x0005, 0x00f6, 0x2079, 0x0200, 0x7800, 0xc0e5, 0xc0cc,\r
++      0x7802, 0x00fe, 0x0005, 0x00f6, 0x2079, 0x1800, 0x7834, 0xd084,\r
++      0x1130, 0x2079, 0x0200, 0x7800, 0x9085, 0x1200, 0x7802, 0x00fe,\r
++      0x0005, 0x00e6, 0x2071, 0x1800, 0x7034, 0xc084, 0x7036, 0x00ee,\r
++      0x0005, 0x2071, 0x1a03, 0x7003, 0x0003, 0x700f, 0x0361, 0x9006,\r
++      0x701a, 0x7072, 0x7012, 0x7017, 0x1ddc, 0x7007, 0x0000, 0x7026,\r
++      0x702b, 0x9e54, 0x7032, 0x7037, 0x9ed1, 0x703f, 0xffff, 0x7042,\r
++      0x7047, 0x5571, 0x704a, 0x705b, 0x8711, 0x080c, 0x1053, 0x090c,\r
++      0x0d7d, 0x2900, 0x703a, 0xa867, 0x0003, 0xa86f, 0x0100, 0xa8ab,\r
++      0xdcb0, 0x0005, 0x2071, 0x1a03, 0x1d04, 0x862d, 0x2091, 0x6000,\r
++      0x700c, 0x8001, 0x700e, 0x1590, 0x2001, 0x013c, 0x2004, 0x9005,\r
++      0x190c, 0x87bb, 0x2001, 0x1869, 0x2004, 0xd0c4, 0x0158, 0x3a00,\r
++      0xd08c, 0x1140, 0x20d1, 0x0000, 0x20d1, 0x0001, 0x20d1, 0x0000,\r
++      0x080c, 0x0d7d, 0x700f, 0x0361, 0x7007, 0x0001, 0x0126, 0x2091,\r
++      0x8000, 0x2069, 0x1800, 0x69ec, 0xd1e4, 0x1138, 0xd1dc, 0x1118,\r
++      0x080c, 0x877f, 0x0010, 0x080c, 0x8756, 0x7040, 0x900d, 0x0148,\r
++      0x8109, 0x7142, 0x1130, 0x7044, 0x080f, 0x0018, 0x0126, 0x2091,\r
++      0x8000, 0x7024, 0x900d, 0x0188, 0x7020, 0x8001, 0x7022, 0x1168,\r
++      0x7023, 0x0009, 0x8109, 0x7126, 0x9186, 0x03e8, 0x1110, 0x7028,\r
++      0x080f, 0x81ff, 0x1110, 0x7028, 0x080f, 0x7030, 0x900d, 0x0180,\r
++      0x702c, 0x8001, 0x702e, 0x1160, 0x702f, 0x0009, 0x8109, 0x7132,\r
++      0x0128, 0x9184, 0x007f, 0x090c, 0x9f6d, 0x0010, 0x7034, 0x080f,\r
++      0x703c, 0x9005, 0x0118, 0x0310, 0x8001, 0x703e, 0x704c, 0x900d,\r
++      0x0168, 0x7048, 0x8001, 0x704a, 0x1148, 0x704b, 0x0009, 0x8109,\r
++      0x714e, 0x1120, 0x7150, 0x714e, 0x7058, 0x080f, 0x7018, 0x900d,\r
++      0x01d8, 0x0016, 0x7070, 0x900d, 0x0158, 0x706c, 0x8001, 0x706e,\r
++      0x1138, 0x706f, 0x0009, 0x8109, 0x7172, 0x1110, 0x7074, 0x080f,\r
++      0x001e, 0x7008, 0x8001, 0x700a, 0x1138, 0x700b, 0x0009, 0x8109,\r
++      0x711a, 0x1110, 0x701c, 0x080f, 0x012e, 0x7004, 0x0002, 0x8655,\r
++      0x8656, 0x8680, 0x00e6, 0x2071, 0x1a03, 0x7018, 0x9005, 0x1120,\r
++      0x711a, 0x721e, 0x700b, 0x0009, 0x00ee, 0x0005, 0x00e6, 0x0006,\r
++      0x2071, 0x1a03, 0x701c, 0x9206, 0x1120, 0x701a, 0x701e, 0x7072,\r
++      0x7076, 0x000e, 0x00ee, 0x0005, 0x00e6, 0x2071, 0x1a03, 0xb888,\r
++      0x9102, 0x0208, 0xb98a, 0x00ee, 0x0005, 0x0005, 0x00b6, 0x2031,\r
++      0x0010, 0x7110, 0x080c, 0x6625, 0x11a8, 0xb888, 0x8001, 0x0290,\r
++      0xb88a, 0x1180, 0x0126, 0x2091, 0x8000, 0x0066, 0xb8d0, 0x9005,\r
++      0x0138, 0x0026, 0xba3c, 0x0016, 0x080c, 0x6750, 0x001e, 0x002e,\r
++      0x006e, 0x012e, 0x8108, 0x9182, 0x0800, 0x1220, 0x8631, 0x0128,\r
++      0x7112, 0x0c00, 0x900e, 0x7007, 0x0002, 0x7112, 0x00be, 0x0005,\r
++      0x2031, 0x0010, 0x7014, 0x2060, 0x0126, 0x2091, 0x8000, 0x6048,\r
++      0x9005, 0x0128, 0x8001, 0x604a, 0x1110, 0x080c, 0xcb4d, 0x6018,\r
++      0x9005, 0x0904, 0x86d8, 0x00f6, 0x2079, 0x0300, 0x7918, 0xd1b4,\r
++      0x1904, 0x86eb, 0x781b, 0x2020, 0xa001, 0x7918, 0xd1b4, 0x0120,\r
++      0x781b, 0x2000, 0x0804, 0x86eb, 0x8001, 0x601a, 0x0106, 0x781b,\r
++      0x2000, 0xa001, 0x7918, 0xd1ac, 0x1dd0, 0x010e, 0x00fe, 0x1540,\r
++      0x6120, 0x9186, 0x0003, 0x0148, 0x9186, 0x0006, 0x0130, 0x9186,\r
++      0x0009, 0x11e0, 0x611c, 0xd1c4, 0x1100, 0x080c, 0xc838, 0x01b0,\r
++      0x6014, 0x2048, 0xa884, 0x908a, 0x199a, 0x0280, 0x9082, 0x1999,\r
++      0xa886, 0x908a, 0x199a, 0x0210, 0x2001, 0x1999, 0x8003, 0x800b,\r
++      0x810b, 0x9108, 0x611a, 0x080c, 0xcf7e, 0x0110, 0x080c, 0xc536,\r
++      0x012e, 0x9c88, 0x001c, 0x7116, 0x2001, 0x181a, 0x2004, 0x9102,\r
++      0x1228, 0x8631, 0x0138, 0x2160, 0x0804, 0x8684, 0x7017, 0x1ddc,\r
++      0x7007, 0x0000, 0x0005, 0x00fe, 0x0c58, 0x00e6, 0x2071, 0x1a03,\r
++      0x7027, 0x07d0, 0x7023, 0x0009, 0x00ee, 0x0005, 0x2001, 0x1a0c,\r
++      0x2003, 0x0000, 0x0005, 0x00e6, 0x2071, 0x1a03, 0x7132, 0x702f,\r
++      0x0009, 0x00ee, 0x0005, 0x2011, 0x1a0f, 0x2013, 0x0000, 0x0005,\r
++      0x00e6, 0x2071, 0x1a03, 0x711a, 0x721e, 0x700b, 0x0009, 0x00ee,\r
++      0x0005, 0x0086, 0x0026, 0x7054, 0x8000, 0x7056, 0x2001, 0x1a11,\r
++      0x2044, 0xa06c, 0x9086, 0x0000, 0x0150, 0x7068, 0xa09a, 0x7064,\r
++      0xa096, 0x7060, 0xa092, 0x705c, 0xa08e, 0x080c, 0x1124, 0x002e,\r
++      0x008e, 0x0005, 0x0006, 0x0016, 0x0096, 0x00a6, 0x00b6, 0x00c6,\r
++      0x00d6, 0x00e6, 0x00f6, 0x0156, 0x080c, 0x8592, 0x015e, 0x00fe,\r
++      0x00ee, 0x00de, 0x00ce, 0x00be, 0x00ae, 0x009e, 0x001e, 0x000e,\r
++      0x0005, 0x00e6, 0x2071, 0x1a03, 0x7172, 0x7276, 0x706f, 0x0009,\r
++      0x00ee, 0x0005, 0x00e6, 0x0006, 0x2071, 0x1a03, 0x7074, 0x9206,\r
++      0x1110, 0x7072, 0x7076, 0x000e, 0x00ee, 0x0005, 0x2069, 0x1800,\r
++      0x69ec, 0xd1e4, 0x1518, 0x0026, 0xd1ec, 0x0140, 0x6a54, 0x6874,\r
++      0x9202, 0x0288, 0x8117, 0x9294, 0x00c1, 0x0088, 0x9184, 0x0007,\r
++      0x01a0, 0x8109, 0x9184, 0x0007, 0x0110, 0x69ee, 0x0070, 0x8107,\r
++      0x9084, 0x0007, 0x910d, 0x8107, 0x9106, 0x9094, 0x00c1, 0x9184,\r
++      0xff3e, 0x9205, 0x68ee, 0x080c, 0x0f05, 0x002e, 0x0005, 0x69e8,\r
++      0x9184, 0x003f, 0x05b8, 0x8109, 0x9184, 0x003f, 0x01a8, 0x6a54,\r
++      0x6874, 0x9202, 0x0220, 0xd1bc, 0x0168, 0xc1bc, 0x0018, 0xd1bc,\r
++      0x1148, 0xc1bd, 0x2110, 0x00e6, 0x2071, 0x1800, 0x080c, 0x0f27,\r
++      0x00ee, 0x0400, 0x69ea, 0x00f0, 0x0026, 0x8107, 0x9094, 0x0007,\r
++      0x0128, 0x8001, 0x8007, 0x9085, 0x0007, 0x0050, 0x2010, 0x8004,\r
++      0x8004, 0x8004, 0x9084, 0x0007, 0x9205, 0x8007, 0x9085, 0x0028,\r
++      0x9086, 0x0040, 0x2010, 0x00e6, 0x2071, 0x1800, 0x080c, 0x0f27,\r
++      0x00ee, 0x002e, 0x0005, 0x0016, 0x00c6, 0x2009, 0xfffc, 0x210d,\r
++      0x2061, 0x0100, 0x60f0, 0x9100, 0x60f3, 0x0000, 0x2009, 0xfffc,\r
++      0x200f, 0x1220, 0x8108, 0x2105, 0x8000, 0x200f, 0x00ce, 0x001e,\r
++      0x0005, 0x00c6, 0x2061, 0x1a6f, 0x00ce, 0x0005, 0x9184, 0x000f,\r
++      0x8003, 0x8003, 0x8003, 0x9080, 0x1a6f, 0x2060, 0x0005, 0xa884,\r
++      0x908a, 0x199a, 0x1638, 0x9005, 0x1150, 0x00c6, 0x2061, 0x1a6f,\r
++      0x6014, 0x00ce, 0x9005, 0x1130, 0x2001, 0x001e, 0x0018, 0x908e,\r
++      0xffff, 0x01b0, 0x8003, 0x800b, 0x810b, 0x9108, 0x611a, 0xa87c,\r
++      0x908c, 0x00c0, 0x918e, 0x00c0, 0x0904, 0x8896, 0xd0b4, 0x1168,\r
++      0xd0bc, 0x1904, 0x886f, 0x2009, 0x0006, 0x080c, 0x88c3, 0x0005,\r
++      0x900e, 0x0c60, 0x2001, 0x1999, 0x08b0, 0xd0fc, 0x05c8, 0x908c,\r
++      0x2023, 0x1550, 0x87ff, 0x1540, 0x6124, 0x918c, 0x0500, 0x1520,\r
++      0x6100, 0x918e, 0x0007, 0x1500, 0x2009, 0x1869, 0x210c, 0xd184,\r
++      0x11d8, 0x6003, 0x0003, 0x6007, 0x0043, 0x6047, 0xb035, 0x080c,\r
++      0x1c03, 0xa87c, 0xc0dd, 0xa87e, 0x600f, 0x0000, 0x00f6, 0x2079,\r
++      0x0380, 0x7818, 0xd0bc, 0x1de8, 0x7833, 0x0013, 0x2c00, 0x7836,\r
++      0x781b, 0x8080, 0x00fe, 0x0005, 0x908c, 0x0003, 0x0120, 0x918e,\r
++      0x0003, 0x1904, 0x88bd, 0x908c, 0x2020, 0x918e, 0x2020, 0x01a8,\r
++      0x6024, 0xd0d4, 0x11e8, 0x2009, 0x1869, 0x2104, 0xd084, 0x1138,\r
++      0x87ff, 0x1120, 0x2009, 0x0043, 0x0804, 0xac8c, 0x0005, 0x87ff,\r
++      0x1de8, 0x2009, 0x0042, 0x0804, 0xac8c, 0x6110, 0x00b6, 0x2158,\r
++      0xb900, 0x00be, 0xd1ac, 0x0d20, 0x6024, 0xc0cd, 0x6026, 0x0c00,\r
++      0xc0d4, 0x6026, 0xa890, 0x602e, 0xa88c, 0x6032, 0x08e0, 0xd0fc,\r
++      0x0160, 0x908c, 0x0003, 0x0120, 0x918e, 0x0003, 0x1904, 0x88bd,\r
++      0x908c, 0x2020, 0x918e, 0x2020, 0x0170, 0x0076, 0x00f6, 0x2c78,\r
++      0x080c, 0x1731, 0x00fe, 0x007e, 0x87ff, 0x1120, 0x2009, 0x0042,\r
++      0x080c, 0xac8c, 0x0005, 0x6110, 0x00b6, 0x2158, 0xb900, 0x00be,\r
++      0xd1ac, 0x0d58, 0x6124, 0xc1cd, 0x6126, 0x0c38, 0xd0fc, 0x0188,\r
++      0x908c, 0x2020, 0x918e, 0x2020, 0x01a8, 0x9084, 0x0003, 0x908e,\r
++      0x0002, 0x0148, 0x87ff, 0x1120, 0x2009, 0x0041, 0x080c, 0xac8c,\r
++      0x0005, 0x00b9, 0x0ce8, 0x87ff, 0x1dd8, 0x2009, 0x0043, 0x080c,\r
++      0xac8c, 0x0cb0, 0x6110, 0x00b6, 0x2158, 0xb900, 0x00be, 0xd1ac,\r
++      0x0d20, 0x6124, 0xc1cd, 0x6126, 0x0c00, 0x2009, 0x0004, 0x0019,\r
++      0x0005, 0x2009, 0x0001, 0x0096, 0x080c, 0xc838, 0x0518, 0x6014,\r
++      0x2048, 0xa982, 0xa800, 0x6016, 0x9186, 0x0001, 0x1188, 0xa97c,\r
++      0x918c, 0x8100, 0x918e, 0x8100, 0x1158, 0x00c6, 0x2061, 0x1a6f,\r
++      0x6200, 0xd28c, 0x1120, 0x6204, 0x8210, 0x0208, 0x6206, 0x00ce,\r
++      0x080c, 0x6bb5, 0x6014, 0x904d, 0x0076, 0x2039, 0x0000, 0x190c,\r
++      0x87df, 0x007e, 0x009e, 0x0005, 0x0156, 0x00c6, 0x2061, 0x1a6f,\r
++      0x6000, 0x81ff, 0x0110, 0x9205, 0x0008, 0x9204, 0x6002, 0x00ce,\r
++      0x015e, 0x0005, 0x6800, 0xd08c, 0x1138, 0x6808, 0x9005, 0x0120,\r
++      0x8001, 0x680a, 0x9085, 0x0001, 0x0005, 0x2071, 0x1923, 0x7003,\r
++      0x0006, 0x7007, 0x0000, 0x700f, 0x0000, 0x7013, 0x0001, 0x080c,\r
++      0x1053, 0x090c, 0x0d7d, 0xa867, 0x0006, 0xa86b, 0x0001, 0xa8ab,\r
++      0xdcb0, 0xa89f, 0x0000, 0x2900, 0x702e, 0x7033, 0x0000, 0x0005,\r
++      0x0096, 0x00e6, 0x2071, 0x1923, 0x702c, 0x2048, 0x6a2c, 0x721e,\r
++      0x6b30, 0x7322, 0x6834, 0x7026, 0xa896, 0x6838, 0x702a, 0xa89a,\r
++      0x6824, 0x7016, 0x683c, 0x701a, 0x2009, 0x0028, 0x200a, 0x9005,\r
++      0x0148, 0x900e, 0x9188, 0x000c, 0x8001, 0x1de0, 0x2100, 0x9210,\r
++      0x1208, 0x8318, 0xaa8e, 0xab92, 0x7010, 0xd084, 0x0178, 0xc084,\r
++      0x7007, 0x0001, 0x700f, 0x0000, 0x0006, 0x2009, 0x181d, 0x2104,\r
++      0x9082, 0x0007, 0x2009, 0x1b4e, 0x200a, 0x000e, 0xc095, 0x7012,\r
++      0x2008, 0x2001, 0x003b, 0x080c, 0x1679, 0x9006, 0x2071, 0x193c,\r
++      0x7002, 0x7006, 0x702a, 0x00ee, 0x009e, 0x0005, 0x00e6, 0x0126,\r
++      0x0156, 0x2091, 0x8000, 0x2071, 0x1800, 0x7154, 0x2001, 0x0008,\r
++      0x910a, 0x0638, 0x2001, 0x187d, 0x20ac, 0x9006, 0x9080, 0x0008,\r
++      0x1f04, 0x8976, 0x71c0, 0x9102, 0x02e0, 0x2071, 0x1877, 0x20a9,\r
++      0x0007, 0x00c6, 0x080c, 0xab97, 0x6023, 0x0009, 0x6003, 0x0004,\r
++      0x601f, 0x0101, 0x0089, 0x0126, 0x2091, 0x8000, 0x080c, 0x8afc,\r
++      0x012e, 0x1f04, 0x8982, 0x9006, 0x00ce, 0x015e, 0x012e, 0x00ee,\r
++      0x0005, 0x9085, 0x0001, 0x0cc8, 0x00e6, 0x00b6, 0x0096, 0x0086,\r
++      0x0056, 0x0046, 0x0026, 0x7118, 0x720c, 0x7620, 0x7004, 0xd084,\r
++      0x1128, 0x2021, 0x0024, 0x2029, 0x0002, 0x0020, 0x2021, 0x002c,\r
++      0x2029, 0x000a, 0x080c, 0x103a, 0x090c, 0x0d7d, 0x2900, 0x6016,\r
++      0x2058, 0xac66, 0x9006, 0xa802, 0xa806, 0xa86a, 0xa87a, 0xa8aa,\r
++      0xa887, 0x0005, 0xa87f, 0x0020, 0x7008, 0xa89a, 0x7010, 0xa89e,\r
++      0xae8a, 0xa8af, 0xffff, 0xa8b3, 0x0000, 0x8109, 0x0160, 0x080c,\r
++      0x103a, 0x090c, 0x0d7d, 0xad66, 0x2b00, 0xa802, 0x2900, 0xb806,\r
++      0x2058, 0x8109, 0x1da0, 0x002e, 0x004e, 0x005e, 0x008e, 0x009e,\r
++      0x00be, 0x00ee, 0x0005, 0x2079, 0x0000, 0x2071, 0x1923, 0x7004,\r
++      0x004b, 0x700c, 0x0002, 0x89ee, 0x89e7, 0x89e7, 0x0005, 0x89f8,\r
++      0x8a59, 0x8a59, 0x8a59, 0x8a5a, 0x8a6b, 0x8a6b, 0x700c, 0x0cba,\r
++      0x0126, 0x2091, 0x8000, 0x78a0, 0x79a0, 0x9106, 0x0128, 0x78a0,\r
++      0x79a0, 0x9106, 0x1904, 0x8a4c, 0x2001, 0x0005, 0x2004, 0xd0bc,\r
++      0x0130, 0x2011, 0x0004, 0x2204, 0xc0c5, 0x2012, 0x0ca8, 0x012e,\r
++      0x7018, 0x910a, 0x1130, 0x7030, 0x9005, 0x05a8, 0x080c, 0x8a9a,\r
++      0x0490, 0x1210, 0x7114, 0x910a, 0x9192, 0x000a, 0x0210, 0x2009,\r
++      0x000a, 0x2001, 0x1888, 0x2014, 0x2001, 0x1935, 0x2004, 0x9100,\r
++      0x9202, 0x0e48, 0x080c, 0x8be6, 0x2200, 0x9102, 0x0208, 0x2208,\r
++      0x0096, 0x702c, 0x2048, 0xa873, 0x0001, 0xa976, 0x080c, 0x8cef,\r
++      0x2100, 0xa87e, 0xa86f, 0x0000, 0x009e, 0x0126, 0x2091, 0x8000,\r
++      0x2009, 0x1a21, 0x2104, 0xc085, 0x200a, 0x700f, 0x0002, 0x012e,\r
++      0x080c, 0x1143, 0x1de8, 0x0005, 0x2001, 0x0005, 0x2004, 0xd0bc,\r
++      0x0130, 0x2011, 0x0004, 0x2204, 0xc0c5, 0x2012, 0x0ca8, 0x012e,\r
++      0x0005, 0x0005, 0x700c, 0x0002, 0x8a5f, 0x8a62, 0x8a61, 0x080c,\r
++      0x89f6, 0x0005, 0x8001, 0x700e, 0x0096, 0x702c, 0x2048, 0xa974,\r
++      0x009e, 0x0011, 0x0ca0, 0x0005, 0x0096, 0x702c, 0x2048, 0x7018,\r
++      0x9100, 0x7214, 0x921a, 0x1130, 0x701c, 0xa88e, 0x7020, 0xa892,\r
++      0x9006, 0x0068, 0x0006, 0x080c, 0x8cef, 0x2100, 0xaa8c, 0x9210,\r
++      0xaa8e, 0x1220, 0xa890, 0x9081, 0x0000, 0xa892, 0x000e, 0x009e,\r
++      0x2f08, 0x9188, 0x0028, 0x200a, 0x701a, 0x0005, 0x00e6, 0x2071,\r
++      0x1923, 0x700c, 0x0002, 0x8a98, 0x8a98, 0x8a96, 0x700f, 0x0001,\r
++      0x00ee, 0x0005, 0x0126, 0x2091, 0x8000, 0x7030, 0x9005, 0x0508,\r
++      0x2078, 0x7814, 0x2048, 0xae88, 0x00b6, 0x2059, 0x0000, 0x080c,\r
++      0x8b05, 0x00be, 0x01b0, 0x00e6, 0x2071, 0x193c, 0x080c, 0x8b4c,\r
++      0x00ee, 0x0178, 0x0096, 0x080c, 0x1053, 0x2900, 0x009e, 0x0148,\r
++      0xa8aa, 0x04b9, 0x0041, 0x2001, 0x1946, 0x2003, 0x0000, 0x012e,\r
++      0x08c8, 0x012e, 0x0005, 0x00d6, 0x00c6, 0x0086, 0x00a6, 0x2940,\r
++      0x2650, 0x2600, 0x9005, 0x0180, 0xa864, 0x9084, 0x000f, 0x2068,\r
++      0x9d88, 0x1e55, 0x2165, 0x0056, 0x2029, 0x0000, 0x080c, 0x8c74,\r
++      0x080c, 0x1e2b, 0x1dd8, 0x005e, 0x00ae, 0x2001, 0x187f, 0x2004,\r
++      0xa88a, 0x080c, 0x1731, 0x781f, 0x0101, 0x7813, 0x0000, 0x0126,\r
++      0x2091, 0x8000, 0x080c, 0x8b5b, 0x012e, 0x008e, 0x00ce, 0x00de,\r
++      0x0005, 0x7030, 0x9005, 0x0138, 0x2078, 0x780c, 0x7032, 0x2001,\r
++      0x1946, 0x2003, 0x0001, 0x0005, 0x00e6, 0x2071, 0x1923, 0x7030,\r
++      0x600e, 0x2c00, 0x7032, 0x00ee, 0x0005, 0x00d6, 0x00c6, 0x0026,\r
++      0x9b80, 0x8dce, 0x2005, 0x906d, 0x090c, 0x0d7d, 0x9b80, 0x8dc6,\r
++      0x2005, 0x9065, 0x090c, 0x0d7d, 0x6114, 0x2600, 0x9102, 0x0248,\r
++      0x6828, 0x9102, 0x02f0, 0x9085, 0x0001, 0x002e, 0x00ce, 0x00de,\r
++      0x0005, 0x6804, 0xd094, 0x0148, 0x6854, 0xd084, 0x1178, 0xc085,\r
++      0x6856, 0x2011, 0x8026, 0x080c, 0x4b07, 0x684c, 0x0096, 0x904d,\r
++      0x090c, 0x0d7d, 0xa804, 0x8000, 0xa806, 0x009e, 0x9006, 0x2030,\r
++      0x0c20, 0x6854, 0xd08c, 0x1d08, 0xc08d, 0x6856, 0x2011, 0x8025,\r
++      0x080c, 0x4b07, 0x684c, 0x0096, 0x904d, 0x090c, 0x0d7d, 0xa800,\r
++      0x8000, 0xa802, 0x009e, 0x0888, 0x7000, 0x2019, 0x0008, 0x8319,\r
++      0x7104, 0x9102, 0x1118, 0x2300, 0x9005, 0x0020, 0x0210, 0x9302,\r
++      0x0008, 0x8002, 0x0005, 0x00d6, 0x7814, 0x9005, 0x090c, 0x0d7d,\r
++      0x781c, 0x9084, 0x0101, 0x9086, 0x0101, 0x190c, 0x0d7d, 0x2069,\r
++      0x193c, 0x6804, 0x9080, 0x193e, 0x2f08, 0x2102, 0x6904, 0x8108,\r
++      0x9182, 0x0008, 0x0208, 0x900e, 0x6906, 0x9180, 0x193e, 0x2003,\r
++      0x0000, 0x00de, 0x0005, 0x0096, 0x00c6, 0x2060, 0x6014, 0x2048,\r
++      0xa8a8, 0x0096, 0x2048, 0x9005, 0x190c, 0x106c, 0x009e, 0xa8ab,\r
++      0x0000, 0x080c, 0x0fec, 0x080c, 0xabed, 0x00ce, 0x009e, 0x0005,\r
++      0x6020, 0x9086, 0x0009, 0x1128, 0x601c, 0xd0c4, 0x0110, 0x9006,\r
++      0x0005, 0x9085, 0x0001, 0x0005, 0x6000, 0x9086, 0x0000, 0x0178,\r
++      0x6010, 0x9005, 0x0150, 0x00b6, 0x2058, 0x080c, 0x8f01, 0x00be,\r
++      0x6013, 0x0000, 0x601b, 0x0000, 0x0010, 0x2c00, 0x0861, 0x0005,\r
++      0x2009, 0x1927, 0x210c, 0xd194, 0x0005, 0x00e6, 0x2071, 0x1923,\r
++      0x7110, 0xc194, 0xd19c, 0x1118, 0xc185, 0x7007, 0x0000, 0x7112,\r
++      0x2001, 0x003b, 0x080c, 0x1679, 0x00ee, 0x0005, 0x0096, 0x00d6,\r
++      0x9006, 0x7006, 0x700e, 0x701a, 0x701e, 0x7022, 0x7016, 0x702a,\r
++      0x7026, 0x702f, 0x0000, 0x080c, 0x8d4e, 0x0170, 0x080c, 0x8d83,\r
++      0x0158, 0x2900, 0x7002, 0x700a, 0x701a, 0x7013, 0x0001, 0x701f,\r
++      0x000a, 0x00de, 0x009e, 0x0005, 0x900e, 0x0cd8, 0x00e6, 0x0096,\r
++      0x0086, 0x00d6, 0x00c6, 0x2071, 0x1930, 0x721c, 0x2100, 0x9202,\r
++      0x1618, 0x080c, 0x8d83, 0x090c, 0x0d7d, 0x7018, 0x9005, 0x1160,\r
++      0x2900, 0x7002, 0x700a, 0x701a, 0x9006, 0x7006, 0x700e, 0xa806,\r
++      0xa802, 0x7012, 0x701e, 0x0038, 0x2040, 0xa806, 0x2900, 0xa002,\r
++      0x701a, 0xa803, 0x0000, 0x7010, 0x8000, 0x7012, 0x701c, 0x9080,\r
++      0x000a, 0x701e, 0x721c, 0x08d0, 0x721c, 0x00ce, 0x00de, 0x008e,\r
++      0x009e, 0x00ee, 0x0005, 0x0096, 0x0156, 0x0136, 0x0146, 0x00e6,\r
++      0x0126, 0x2091, 0x8000, 0x2071, 0x1930, 0x7300, 0x831f, 0x831e,\r
++      0x831e, 0x9384, 0x003f, 0x20e8, 0x939c, 0xffc0, 0x9398, 0x0003,\r
++      0x7104, 0x080c, 0x8cef, 0x810c, 0x2100, 0x9318, 0x8003, 0x2228,\r
++      0x2021, 0x0078, 0x9402, 0x9532, 0x0208, 0x2028, 0x2500, 0x8004,\r
++      0x20a8, 0x23a0, 0xa001, 0xa001, 0x4005, 0x2508, 0x080c, 0x8cf8,\r
++      0x2130, 0x7014, 0x9600, 0x7016, 0x2600, 0x711c, 0x9102, 0x701e,\r
++      0x7004, 0x9600, 0x2008, 0x9082, 0x000a, 0x1190, 0x7000, 0x2048,\r
++      0xa800, 0x9005, 0x1148, 0x2009, 0x0001, 0x0026, 0x080c, 0x8be6,\r
++      0x002e, 0x7000, 0x2048, 0xa800, 0x7002, 0x7007, 0x0000, 0x0008,\r
++      0x7106, 0x2500, 0x9212, 0x1904, 0x8c25, 0x012e, 0x00ee, 0x014e,\r
++      0x013e, 0x015e, 0x009e, 0x0005, 0x0016, 0x0026, 0x00e6, 0x0126,\r
++      0x2091, 0x8000, 0x9580, 0x8dc6, 0x2005, 0x9075, 0x090c, 0x0d7d,\r
++      0x080c, 0x8cca, 0x012e, 0x9580, 0x8dc2, 0x2005, 0x9075, 0x090c,\r
++      0x0d7d, 0x0156, 0x0136, 0x01c6, 0x0146, 0x01d6, 0x831f, 0x831e,\r
++      0x831e, 0x9384, 0x003f, 0x20e0, 0x9384, 0xffc0, 0x9100, 0x2098,\r
++      0xa860, 0x20e8, 0xa95c, 0x2c05, 0x9100, 0x20a0, 0x20a9, 0x0002,\r
++      0x4003, 0x2e0c, 0x2d00, 0x0002, 0x8cb4, 0x8cb4, 0x8cb6, 0x8cb4,\r
++      0x8cb6, 0x8cb4, 0x8cb4, 0x8cb4, 0x8cb4, 0x8cb4, 0x8cbc, 0x8cb4,\r
++      0x8cbc, 0x8cb4, 0x8cb4, 0x8cb4, 0x080c, 0x0d7d, 0x4104, 0x20a9,\r
++      0x0002, 0x4002, 0x4003, 0x0028, 0x20a9, 0x0002, 0x4003, 0x4104,\r
++      0x4003, 0x01de, 0x014e, 0x01ce, 0x013e, 0x015e, 0x00ee, 0x002e,\r
++      0x001e, 0x0005, 0x0096, 0x7014, 0x8001, 0x7016, 0x710c, 0x2110,\r
++      0x00f1, 0x810c, 0x9188, 0x0003, 0x7308, 0x8210, 0x9282, 0x000a,\r
++      0x1198, 0x7008, 0x2048, 0xa800, 0x9005, 0x0158, 0x0006, 0x080c,\r
++      0x8d92, 0x009e, 0xa807, 0x0000, 0x2900, 0x700a, 0x7010, 0x8001,\r
++      0x7012, 0x700f, 0x0000, 0x0008, 0x720e, 0x009e, 0x0005, 0x0006,\r
++      0x810b, 0x810b, 0x2100, 0x810b, 0x9100, 0x2008, 0x000e, 0x0005,\r
++      0x0006, 0x0026, 0x2100, 0x9005, 0x0158, 0x9092, 0x000c, 0x0240,\r
++      0x900e, 0x8108, 0x9082, 0x000c, 0x1de0, 0x002e, 0x000e, 0x0005,\r
++      0x900e, 0x0cd8, 0x2d00, 0x90b8, 0x0008, 0x690c, 0x6810, 0x2019,\r
++      0x0001, 0x2031, 0x8d38, 0x9112, 0x0220, 0x0118, 0x8318, 0x2208,\r
++      0x0cd0, 0x6808, 0x9005, 0x0108, 0x8318, 0x233a, 0x6804, 0xd084,\r
++      0x2300, 0x2021, 0x0001, 0x1150, 0x9082, 0x0003, 0x0967, 0x0a67,\r
++      0x8420, 0x9082, 0x0007, 0x0967, 0x0a67, 0x0cd0, 0x9082, 0x0002,\r
++      0x0967, 0x0a67, 0x8420, 0x9082, 0x0005, 0x0967, 0x0a67, 0x0cd0,\r
++      0x6c1a, 0x2d00, 0x90b8, 0x0007, 0x00e6, 0x2071, 0x1800, 0x7128,\r
++      0x6810, 0x2019, 0x0001, 0x910a, 0x0118, 0x0210, 0x8318, 0x0cd8,\r
++      0x2031, 0x8d4b, 0x0870, 0x6c16, 0x00ee, 0x0005, 0x0096, 0x0046,\r
++      0x0126, 0x2091, 0x8000, 0x2b00, 0x9080, 0x8dca, 0x2005, 0x9005,\r
++      0x090c, 0x0d7d, 0x2004, 0x90a0, 0x000a, 0x080c, 0x1053, 0x01d0,\r
++      0x2900, 0x7026, 0xa803, 0x0000, 0xa807, 0x0000, 0x080c, 0x1053,\r
++      0x0188, 0x7024, 0xa802, 0xa807, 0x0000, 0x2900, 0x7026, 0x94a2,\r
++      0x000a, 0x0110, 0x0208, 0x0c90, 0x9085, 0x0001, 0x012e, 0x004e,\r
++      0x009e, 0x0005, 0x7024, 0x9005, 0x0dc8, 0x2048, 0xac00, 0x080c,\r
++      0x106c, 0x2400, 0x0cc0, 0x0126, 0x2091, 0x8000, 0x7024, 0x2048,\r
++      0x9005, 0x0130, 0xa800, 0x7026, 0xa803, 0x0000, 0xa807, 0x0000,\r
++      0x012e, 0x0005, 0x0126, 0x2091, 0x8000, 0x7024, 0xa802, 0x2900,\r
++      0x7026, 0x012e, 0x0005, 0x0096, 0x9e80, 0x0009, 0x2004, 0x9005,\r
++      0x0138, 0x2048, 0xa800, 0x0006, 0x080c, 0x106c, 0x000e, 0x0cb8,\r
++      0x009e, 0x0005, 0x0096, 0x7008, 0x9005, 0x0138, 0x2048, 0xa800,\r
++      0x0006, 0x080c, 0x106c, 0x000e, 0x0cb8, 0x9006, 0x7002, 0x700a,\r
++      0x7006, 0x700e, 0x701a, 0x701e, 0x7022, 0x702a, 0x7026, 0x702e,\r
++      0x009e, 0x0005, 0x1a6d, 0x0000, 0x0000, 0x0000, 0x1930, 0x0000,\r
++      0x0000, 0x0000, 0x1888, 0x0000, 0x0000, 0x0000, 0x1877, 0x0000,\r
++      0x0000, 0x0000, 0x00e6, 0x00c6, 0x00b6, 0x00a6, 0xa8a8, 0x2040,\r
++      0x2071, 0x1877, 0x080c, 0x8eec, 0xa067, 0x0023, 0x6010, 0x905d,\r
++      0x0904, 0x8ec1, 0xb814, 0xa06e, 0xb910, 0xa172, 0xb9a0, 0xa176,\r
++      0x2001, 0x0003, 0xa07e, 0xa834, 0xa082, 0xa07b, 0x0000, 0xa898,\r
++      0x9005, 0x0118, 0xa078, 0xc085, 0xa07a, 0x2858, 0x2031, 0x0018,\r
++      0xa068, 0x908a, 0x0019, 0x1a0c, 0x0d7d, 0x2020, 0x2050, 0x2940,\r
++      0xa864, 0x90bc, 0x00ff, 0x908c, 0x000f, 0x91e0, 0x1e55, 0x2c65,\r
++      0x9786, 0x0024, 0x2c05, 0x1590, 0x908a, 0x0036, 0x1a0c, 0x0d7d,\r
++      0x9082, 0x001b, 0x0002, 0x8e2e, 0x8e2e, 0x8e30, 0x8e2e, 0x8e2e,\r
++      0x8e2e, 0x8e32, 0x8e2e, 0x8e2e, 0x8e2e, 0x8e34, 0x8e2e, 0x8e2e,\r
++      0x8e2e, 0x8e36, 0x8e2e, 0x8e2e, 0x8e2e, 0x8e38, 0x8e2e, 0x8e2e,\r
++      0x8e2e, 0x8e3a, 0x8e2e, 0x8e2e, 0x8e2e, 0x8e3c, 0x080c, 0x0d7d,\r
++      0xa180, 0x04b8, 0xa190, 0x04a8, 0xa1a0, 0x0498, 0xa1b0, 0x0488,\r
++      0xa1c0, 0x0478, 0xa1d0, 0x0468, 0xa1e0, 0x0458, 0x908a, 0x0034,\r
++      0x1a0c, 0x0d7d, 0x9082, 0x001b, 0x0002, 0x8e60, 0x8e5e, 0x8e5e,\r
++      0x8e5e, 0x8e5e, 0x8e5e, 0x8e62, 0x8e5e, 0x8e5e, 0x8e5e, 0x8e5e,\r
++      0x8e5e, 0x8e64, 0x8e5e, 0x8e5e, 0x8e5e, 0x8e5e, 0x8e5e, 0x8e66,\r
++      0x8e5e, 0x8e5e, 0x8e5e, 0x8e5e, 0x8e5e, 0x8e68, 0x080c, 0x0d7d,\r
++      0xa180, 0x0038, 0xa198, 0x0028, 0xa1b0, 0x0018, 0xa1c8, 0x0008,\r
++      0xa1e0, 0x2600, 0x0002, 0x8e84, 0x8e86, 0x8e88, 0x8e8a, 0x8e8c,\r
++      0x8e8e, 0x8e90, 0x8e92, 0x8e94, 0x8e96, 0x8e98, 0x8e9a, 0x8e9c,\r
++      0x8e9e, 0x8ea0, 0x8ea2, 0x8ea4, 0x8ea6, 0x8ea8, 0x8eaa, 0x8eac,\r
++      0x8eae, 0x8eb0, 0x8eb2, 0x8eb4, 0x080c, 0x0d7d, 0xb9e2, 0x0468,\r
++      0xb9de, 0x0458, 0xb9da, 0x0448, 0xb9d6, 0x0438, 0xb9d2, 0x0428,\r
++      0xb9ce, 0x0418, 0xb9ca, 0x0408, 0xb9c6, 0x00f8, 0xb9c2, 0x00e8,\r
++      0xb9be, 0x00d8, 0xb9ba, 0x00c8, 0xb9b6, 0x00b8, 0xb9b2, 0x00a8,\r
++      0xb9ae, 0x0098, 0xb9aa, 0x0088, 0xb9a6, 0x0078, 0xb9a2, 0x0068,\r
++      0xb99e, 0x0058, 0xb99a, 0x0048, 0xb996, 0x0038, 0xb992, 0x0028,\r
++      0xb98e, 0x0018, 0xb98a, 0x0008, 0xb986, 0x8631, 0x8421, 0x0120,\r
++      0x080c, 0x1e2b, 0x0804, 0x8e08, 0x00ae, 0x00be, 0x00ce, 0x00ee,\r
++      0x0005, 0xa86c, 0xa06e, 0xa870, 0xa072, 0xa077, 0x00ff, 0x9006,\r
++      0x0804, 0x8dea, 0x0006, 0x0016, 0x00b6, 0x6010, 0x2058, 0xb810,\r
++      0x9005, 0x01b0, 0x2001, 0x1924, 0x2004, 0x9005, 0x0188, 0x2001,\r
++      0x1800, 0x2004, 0x9086, 0x0003, 0x1158, 0x0036, 0x0046, 0xbba0,\r
++      0x2021, 0x0004, 0x2011, 0x8014, 0x080c, 0x4b07, 0x004e, 0x003e,\r
++      0x00be, 0x001e, 0x000e, 0x0005, 0x9016, 0x710c, 0xa834, 0x910a,\r
++      0xa936, 0x7008, 0x9005, 0x0120, 0x8210, 0x910a, 0x0238, 0x0130,\r
++      0x7010, 0x8210, 0x910a, 0x0210, 0x0108, 0x0cd8, 0xaa8a, 0xa26a,\r
++      0x0005, 0x00f6, 0x00d6, 0x0036, 0x2079, 0x0300, 0x781b, 0x0200,\r
++      0x7818, 0xd094, 0x1dd8, 0x781b, 0x0202, 0xa001, 0xa001, 0x7818,\r
++      0xd094, 0x1da0, 0xb8ac, 0x9005, 0x01b8, 0x2068, 0x2079, 0x0000,\r
++      0x2c08, 0x911e, 0x1118, 0x680c, 0xb8ae, 0x0060, 0x9106, 0x0140,\r
++      0x2d00, 0x2078, 0x680c, 0x9005, 0x090c, 0x0d7d, 0x2068, 0x0cb0,\r
++      0x6b0c, 0x7b0e, 0x600f, 0x0000, 0x2079, 0x0300, 0x781b, 0x0200,\r
++      0x003e, 0x00de, 0x00fe, 0x0005, 0x00e6, 0x00d6, 0x0096, 0x00c6,\r
++      0x0036, 0x0126, 0x2091, 0x8000, 0x0156, 0x20a9, 0x01ff, 0x2071,\r
++      0x0300, 0x701b, 0x0200, 0x7018, 0xd094, 0x0110, 0x1f04, 0x8f41,\r
++      0x701b, 0x0202, 0xa001, 0xa001, 0x7018, 0xd094, 0x1d90, 0xb8ac,\r
++      0x9005, 0x01d0, 0x2060, 0x600c, 0xb8ae, 0x6003, 0x0004, 0x601b,\r
++      0x0000, 0x6013, 0x0000, 0x601f, 0x0101, 0x6014, 0x2048, 0xa88b,\r
++      0x0000, 0xa8a8, 0xa8ab, 0x0000, 0x904d, 0x090c, 0x0d7d, 0x080c,\r
++      0x106c, 0x080c, 0x8afc, 0x0c18, 0x2071, 0x0300, 0x701b, 0x0200,\r
++      0x015e, 0x012e, 0x003e, 0x00ce, 0x009e, 0x00de, 0x00ee, 0x0005,\r
++      0x00c6, 0x00b6, 0x0016, 0x0006, 0x0156, 0x080c, 0x25fb, 0x015e,\r
++      0x11b0, 0x080c, 0x65c4, 0x190c, 0x0d7d, 0x000e, 0x001e, 0xb912,\r
++      0xb816, 0x080c, 0xab97, 0x0140, 0x2b00, 0x6012, 0x6023, 0x0001,\r
++      0x2009, 0x0001, 0x080c, 0xac8c, 0x00be, 0x00ce, 0x0005, 0x000e,\r
++      0x001e, 0x0cd0, 0x0066, 0x6000, 0x90b2, 0x0016, 0x1a0c, 0x0d7d,\r
++      0x0013, 0x006e, 0x0005, 0x8fb3, 0x8fb3, 0x8fb3, 0x8fb5, 0x8ffe,\r
++      0x8fb3, 0x8fb3, 0x8fb3, 0x9061, 0x8fb3, 0x9099, 0x8fb3, 0x8fb3,\r
++      0x8fb3, 0x8fb3, 0x8fb3, 0x080c, 0x0d7d, 0x9182, 0x0040, 0x0002,\r
++      0x8fc8, 0x8fc8, 0x8fc8, 0x8fc8, 0x8fc8, 0x8fc8, 0x8fc8, 0x8fc8,\r
++      0x8fc8, 0x8fca, 0x8fdb, 0x8fc8, 0x8fc8, 0x8fc8, 0x8fc8, 0x8fec,\r
++      0x080c, 0x0d7d, 0x0096, 0x6114, 0x2148, 0xa87b, 0x0000, 0x6010,\r
++      0x00b6, 0x2058, 0xb8bb, 0x0500, 0x00be, 0x080c, 0x6b80, 0x080c,\r
++      0xabed, 0x009e, 0x0005, 0x080c, 0x963b, 0x00d6, 0x6114, 0x080c,\r
++      0xc838, 0x0130, 0x0096, 0x6114, 0x2148, 0x080c, 0x6d80, 0x009e,\r
++      0x00de, 0x080c, 0xabed, 0x0005, 0x080c, 0x963b, 0x080c, 0x31e7,\r
++      0x6114, 0x0096, 0x2148, 0x080c, 0xc838, 0x0120, 0xa87b, 0x0029,\r
++      0x080c, 0x6d80, 0x009e, 0x080c, 0xabed, 0x0005, 0x601b, 0x0000,\r
++      0x9182, 0x0040, 0x0096, 0x0002, 0x9019, 0x9019, 0x9019, 0x9019,\r
++      0x9019, 0x9019, 0x9019, 0x9019, 0x901b, 0x9019, 0x9019, 0x9019,\r
++      0x905d, 0x9019, 0x9019, 0x9019, 0x9019, 0x9019, 0x9019, 0x9021,\r
++      0x9019, 0x080c, 0x0d7d, 0x6114, 0x2148, 0xa938, 0x918e, 0xffff,\r
++      0x05e0, 0x00e6, 0x6114, 0x2148, 0x080c, 0x8dd2, 0x0096, 0xa8a8,\r
++      0x2048, 0x080c, 0x6b18, 0x009e, 0xa8ab, 0x0000, 0x6010, 0x9005,\r
++      0x0128, 0x00b6, 0x2058, 0x080c, 0x8f01, 0x00be, 0xae88, 0x00b6,\r
++      0x2059, 0x0000, 0x080c, 0x8b05, 0x00be, 0x01e0, 0x2071, 0x193c,\r
++      0x080c, 0x8b4c, 0x01b8, 0x9086, 0x0001, 0x1128, 0x2001, 0x1946,\r
++      0x2004, 0x9005, 0x1178, 0x0096, 0x080c, 0x103a, 0x2900, 0x009e,\r
++      0x0148, 0xa8aa, 0x00f6, 0x2c78, 0x080c, 0x8ac3, 0x00fe, 0x00ee,\r
++      0x009e, 0x0005, 0x080c, 0x8afc, 0x0cd0, 0x080c, 0x9115, 0x009e,\r
++      0x0005, 0x9182, 0x0040, 0x0096, 0x0002, 0x9075, 0x9075, 0x9075,\r
++      0x9077, 0x9075, 0x9075, 0x9075, 0x9097, 0x9075, 0x9075, 0x9075,\r
++      0x9075, 0x9075, 0x9075, 0x9075, 0x9075, 0x080c, 0x0d7d, 0x6003,\r
++      0x0003, 0x6106, 0x6014, 0x2048, 0xa8ac, 0xa836, 0xa8b0, 0xa83a,\r
++      0xa847, 0x0000, 0xa84b, 0x0000, 0xa884, 0x9092, 0x199a, 0x0210,\r
++      0x2001, 0x1999, 0x8003, 0x8013, 0x8213, 0x9210, 0x621a, 0x080c,\r
++      0x1bba, 0x2009, 0x8030, 0x080c, 0x9265, 0x009e, 0x0005, 0x080c,\r
++      0x0d7d, 0x080c, 0x963b, 0x6114, 0x2148, 0xa87b, 0x0000, 0x6010,\r
++      0x00b6, 0x2058, 0xb8bb, 0x0500, 0x00be, 0x080c, 0x6d80, 0x080c,\r
++      0xabed, 0x009e, 0x0005, 0x080c, 0xa896, 0x6144, 0xd1fc, 0x0120,\r
++      0xd1ac, 0x1110, 0x6003, 0x0003, 0x6000, 0x908a, 0x0016, 0x1a0c,\r
++      0x0d7d, 0x0096, 0x0023, 0x009e, 0x080c, 0xa8b2, 0x0005, 0x90cf,\r
++      0x90cf, 0x90cf, 0x90d1, 0x90e2, 0x90cf, 0x90cf, 0x90cf, 0x90cf,\r
++      0x90cf, 0x90cf, 0x90cf, 0x90cf, 0x90cf, 0x90cf, 0x90cf, 0x080c,\r
++      0x0d7d, 0x080c, 0xaa2a, 0x6114, 0x2148, 0xa87b, 0x0006, 0x6010,\r
++      0x00b6, 0x2058, 0xb8bb, 0x0500, 0x00be, 0x080c, 0x6d80, 0x080c,\r
++      0xabed, 0x0005, 0x0491, 0x0005, 0x080c, 0xa896, 0x6000, 0x6144,\r
++      0xd1fc, 0x0130, 0xd1ac, 0x1120, 0x6003, 0x0003, 0x2009, 0x0003,\r
++      0x908a, 0x0016, 0x1a0c, 0x0d7d, 0x0096, 0x0033, 0x009e, 0x0106,\r
++      0x080c, 0xa8b2, 0x010e, 0x0005, 0x910c, 0x910c, 0x910c, 0x910e,\r
++      0x9115, 0x910c, 0x910c, 0x910c, 0x910c, 0x910c, 0x910c, 0x910c,\r
++      0x910c, 0x910c, 0x910c, 0x910c, 0x080c, 0x0d7d, 0x0036, 0x00e6,\r
++      0x080c, 0xaa2a, 0x00ee, 0x003e, 0x0005, 0x00f6, 0x00e6, 0x601b,\r
++      0x0000, 0x6014, 0x2048, 0x6010, 0x9005, 0x0128, 0x00b6, 0x2058,\r
++      0x080c, 0x8f01, 0x00be, 0x2071, 0x193c, 0x080c, 0x8b4c, 0x0160,\r
++      0x2001, 0x187f, 0x2004, 0xa88a, 0x2031, 0x0000, 0x2c78, 0x080c,\r
++      0x8ac3, 0x00ee, 0x00fe, 0x0005, 0x0096, 0xa88b, 0x0000, 0xa8a8,\r
++      0x2048, 0x080c, 0x106c, 0x009e, 0xa8ab, 0x0000, 0x080c, 0x8afc,\r
++      0x0c80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\r
++      0x0000, 0x0000, 0x187a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\r
++      0x0000, 0x0126, 0x2091, 0x8000, 0x0036, 0x0046, 0x20a9, 0x0010,\r
++      0x9006, 0x8004, 0x8086, 0x818e, 0x1208, 0x9200, 0x1f04, 0x915a,\r
++      0x8086, 0x818e, 0x004e, 0x003e, 0x012e, 0x0005, 0x0126, 0x2091,\r
++      0x8000, 0x0076, 0x0156, 0x20a9, 0x0010, 0x9005, 0x01c8, 0x911a,\r
++      0x12b8, 0x8213, 0x818d, 0x0228, 0x911a, 0x1220, 0x1f04, 0x9171,\r
++      0x0028, 0x911a, 0x2308, 0x8210, 0x1f04, 0x9171, 0x0006, 0x3200,\r
++      0x9084, 0xefff, 0x2080, 0x000e, 0x015e, 0x007e, 0x012e, 0x0005,\r
++      0x0006, 0x3200, 0x9085, 0x1000, 0x0ca8, 0x0126, 0x2091, 0x2800,\r
++      0x2079, 0x19e7, 0x012e, 0x00d6, 0x2069, 0x19e7, 0x6803, 0x0005,\r
++      0x0156, 0x0146, 0x01d6, 0x20e9, 0x0000, 0x2069, 0x0200, 0x080c,\r
++      0xa690, 0x04a9, 0x080c, 0xa67b, 0x0491, 0x080c, 0xa67e, 0x0479,\r
++      0x080c, 0xa681, 0x0461, 0x080c, 0xa684, 0x0449, 0x080c, 0xa687,\r
++      0x0431, 0x080c, 0xa68a, 0x0419, 0x080c, 0xa68d, 0x0401, 0x01de,\r
++      0x014e, 0x015e, 0x6857, 0x0000, 0x00f6, 0x2079, 0x0380, 0x00f9,\r
++      0x7807, 0x0003, 0x7803, 0x0000, 0x7803, 0x0001, 0x2069, 0x0004,\r
++      0x2d04, 0x9084, 0xfffe, 0x9085, 0x8000, 0x206a, 0x2069, 0x0100,\r
++      0x6828, 0x9084, 0xfffc, 0x682a, 0x00fe, 0x00de, 0x0005, 0x20a9,\r
++      0x0020, 0x20a1, 0x0240, 0x2001, 0x0000, 0x4004, 0x0005, 0x00c6,\r
++      0x7803, 0x0000, 0x9006, 0x7827, 0x0030, 0x782b, 0x0400, 0x7827,\r
++      0x0031, 0x782b, 0x1aef, 0x781f, 0xff00, 0x781b, 0xff00, 0x2061,\r
++      0x1ae4, 0x602f, 0x19e7, 0x6033, 0x1800, 0x6037, 0x1a03, 0x603b,\r
++      0x1e55, 0x603f, 0x1e65, 0x6042, 0x6047, 0x1aba, 0x00ce, 0x0005,\r
++      0x2001, 0x0382, 0x2004, 0x9084, 0x0007, 0x9086, 0x0001, 0x01b0,\r
++      0x00c6, 0x6146, 0x600f, 0x0000, 0x2c08, 0x2061, 0x19e7, 0x602c,\r
++      0x8000, 0x602e, 0x601c, 0x9005, 0x0130, 0x9080, 0x0003, 0x2102,\r
++      0x611e, 0x00ce, 0x0005, 0x6122, 0x611e, 0x0cd8, 0x6146, 0x2c08,\r
++      0x2001, 0x0012, 0x080c, 0xa887, 0x0005, 0x0016, 0x2009, 0x8020,\r
++      0x6146, 0x2c08, 0x2001, 0x0382, 0x2004, 0x9084, 0x0007, 0x9086,\r
++      0x0001, 0x1128, 0x2001, 0x0019, 0x080c, 0xa887, 0x0088, 0x00c6,\r
++      0x2061, 0x19e7, 0x602c, 0x8000, 0x602e, 0x600c, 0x9005, 0x0128,\r
++      0x9080, 0x0003, 0x2102, 0x610e, 0x0010, 0x6112, 0x610e, 0x00ce,\r
++      0x001e, 0x0005, 0x2001, 0x0382, 0x2004, 0x9084, 0x0007, 0x9086,\r
++      0x0001, 0x0198, 0x00c6, 0x6146, 0x600f, 0x0000, 0x2c08, 0x2061,\r
++      0x19e7, 0x6044, 0x9005, 0x0130, 0x9080, 0x0003, 0x2102, 0x6146,\r
++      0x00ce, 0x0005, 0x614a, 0x6146, 0x0cd8, 0x6146, 0x600f, 0x0000,\r
++      0x2c08, 0x2001, 0x0013, 0x080c, 0xa887, 0x0005, 0x6044, 0xd0dc,\r
++      0x0128, 0x9006, 0x7007, 0x0000, 0x700a, 0x7032, 0x0005, 0x00f6,\r
++      0x00e6, 0x00d6, 0x00c6, 0x00b6, 0x0096, 0x0076, 0x0066, 0x0056,\r
++      0x0036, 0x0026, 0x0016, 0x0006, 0x0126, 0x902e, 0x2071, 0x19e7,\r
++      0x7648, 0x2660, 0x2678, 0x2091, 0x8000, 0x8cff, 0x0904, 0x92f0,\r
++      0x6010, 0x2058, 0xb8a0, 0x9206, 0x1904, 0x92eb, 0x87ff, 0x0120,\r
++      0x605c, 0x9106, 0x1904, 0x92eb, 0x704c, 0x9c06, 0x1178, 0x0036,\r
++      0x2019, 0x0001, 0x080c, 0xa118, 0x703f, 0x0000, 0x9006, 0x704e,\r
++      0x706a, 0x7052, 0x706e, 0x003e, 0x2029, 0x0001, 0x080c, 0x926e,\r
++      0x7048, 0x9c36, 0x1110, 0x660c, 0x764a, 0x7044, 0x9c36, 0x1140,\r
++      0x2c00, 0x9f36, 0x0118, 0x2f00, 0x7046, 0x0010, 0x7047, 0x0000,\r
++      0x660c, 0x0066, 0x2c00, 0x9f06, 0x0110, 0x7e0e, 0x0008, 0x2678,\r
++      0x600f, 0x0000, 0x080c, 0xc838, 0x01c8, 0x6014, 0x2048, 0x6020,\r
++      0x9086, 0x0003, 0x1560, 0xa867, 0x0103, 0xab7a, 0xa877, 0x0000,\r
++      0x0016, 0x0036, 0x0076, 0x080c, 0xcb36, 0x080c, 0xe621, 0x080c,\r
++      0x6d80, 0x007e, 0x003e, 0x001e, 0x080c, 0xca27, 0x080c, 0xac28,\r
++      0x00ce, 0x0804, 0x928d, 0x2c78, 0x600c, 0x2060, 0x0804, 0x928d,\r
++      0x012e, 0x000e, 0x001e, 0x002e, 0x003e, 0x005e, 0x006e, 0x007e,\r
++      0x009e, 0x00be, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x0005, 0x6020,\r
++      0x9086, 0x0006, 0x1158, 0x0016, 0x0036, 0x0076, 0x080c, 0xe621,\r
++      0x080c, 0xe26c, 0x007e, 0x003e, 0x001e, 0x08c0, 0x6020, 0x9086,\r
++      0x0009, 0x1168, 0xa87b, 0x0006, 0x0016, 0x0036, 0x0076, 0x080c,\r
++      0x6d80, 0x080c, 0xabed, 0x007e, 0x003e, 0x001e, 0x0848, 0x6020,\r
++      0x9086, 0x000a, 0x0904, 0x92d5, 0x0804, 0x92d3, 0x0006, 0x0066,\r
++      0x0096, 0x00c6, 0x00d6, 0x00f6, 0x9036, 0x0126, 0x2091, 0x8000,\r
++      0x2079, 0x19e7, 0x7848, 0x9065, 0x0904, 0x9385, 0x600c, 0x0006,\r
++      0x600f, 0x0000, 0x784c, 0x9c06, 0x11a0, 0x0036, 0x2019, 0x0001,\r
++      0x080c, 0xa118, 0x783f, 0x0000, 0x901e, 0x7b4e, 0x7b6a, 0x7b52,\r
++      0x7b6e, 0x003e, 0x000e, 0x9005, 0x1118, 0x600c, 0x600f, 0x0000,\r
++      0x0006, 0x00e6, 0x2f70, 0x080c, 0x926e, 0x00ee, 0x080c, 0xc838,\r
++      0x0520, 0x6014, 0x2048, 0x6020, 0x9086, 0x0003, 0x1580, 0x3e08,\r
++      0x918e, 0x0002, 0x1188, 0x6010, 0x9005, 0x0170, 0x00b6, 0x2058,\r
++      0xb800, 0x00be, 0xd0bc, 0x0140, 0x6048, 0x9005, 0x1198, 0x2001,\r
++      0x1988, 0x2004, 0x604a, 0x0070, 0xa867, 0x0103, 0xab7a, 0xa877,\r
++      0x0000, 0x080c, 0x6d74, 0x080c, 0xca27, 0x6044, 0xc0fc, 0x6046,\r
++      0x080c, 0xac28, 0x000e, 0x0804, 0x9333, 0x7e4a, 0x7e46, 0x012e,\r
++      0x00fe, 0x00de, 0x00ce, 0x009e, 0x006e, 0x000e, 0x0005, 0x6020,\r
++      0x9086, 0x0006, 0x1118, 0x080c, 0xe26c, 0x0c38, 0x6020, 0x9086,\r
++      0x0009, 0x1130, 0xab7a, 0x080c, 0x6d80, 0x080c, 0xabed, 0x0c10,\r
++      0x6020, 0x9086, 0x000a, 0x0990, 0x0878, 0x0016, 0x0026, 0x0086,\r
++      0x9046, 0x00a9, 0x080c, 0x9496, 0x008e, 0x002e, 0x001e, 0x0005,\r
++      0x00f6, 0x0126, 0x2079, 0x19e7, 0x2091, 0x8000, 0x080c, 0x94df,\r
++      0x080c, 0x9573, 0x080c, 0x67b2, 0x012e, 0x00fe, 0x0005, 0x00b6,\r
++      0x0096, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0016, 0x0006,\r
++      0x0126, 0x2091, 0x8000, 0x2071, 0x19e7, 0x7620, 0x2660, 0x2678,\r
++      0x8cff, 0x0904, 0x945b, 0x6010, 0x2058, 0xb8a0, 0x9206, 0x1904,\r
++      0x9456, 0x88ff, 0x0120, 0x605c, 0x9106, 0x1904, 0x9456, 0x7030,\r
++      0x9c06, 0x1570, 0x2069, 0x0100, 0x6820, 0xd0a4, 0x1508, 0x080c,\r
++      0x86f6, 0x080c, 0x9e32, 0x68c3, 0x0000, 0x080c, 0xa338, 0x7033,\r
++      0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0x9384, 0x1000, 0x0138,\r
++      0x2001, 0x0100, 0x080c, 0x2a0a, 0x9006, 0x080c, 0x2a0a, 0x2069,\r
++      0x0100, 0x6824, 0xd084, 0x0110, 0x6827, 0x0001, 0x003e, 0x0040,\r
++      0x7008, 0xc0ad, 0x700a, 0x6003, 0x0009, 0x630a, 0x0804, 0x9456,\r
++      0x7020, 0x9c36, 0x1110, 0x660c, 0x7622, 0x701c, 0x9c36, 0x1140,\r
++      0x2c00, 0x9f36, 0x0118, 0x2f00, 0x701e, 0x0010, 0x701f, 0x0000,\r
++      0x660c, 0x0066, 0x2c00, 0x9f06, 0x0110, 0x7e0e, 0x0008, 0x2678,\r
++      0x600f, 0x0000, 0x6044, 0xc0fc, 0x6046, 0x6014, 0x2048, 0x080c,\r
++      0xc838, 0x01e8, 0x6020, 0x9086, 0x0003, 0x1580, 0x080c, 0xca4d,\r
++      0x1118, 0x080c, 0xb5b5, 0x0098, 0xa867, 0x0103, 0xab7a, 0xa877,\r
++      0x0000, 0x0016, 0x0036, 0x0086, 0x080c, 0xcb36, 0x080c, 0xe621,\r
++      0x080c, 0x6d80, 0x008e, 0x003e, 0x001e, 0x080c, 0xca27, 0x080c,\r
++      0xac28, 0x080c, 0xa20e, 0x00ce, 0x0804, 0x93d0, 0x2c78, 0x600c,\r
++      0x2060, 0x0804, 0x93d0, 0x012e, 0x000e, 0x001e, 0x006e, 0x00ce,\r
++      0x00de, 0x00ee, 0x00fe, 0x009e, 0x00be, 0x0005, 0x6020, 0x9086,\r
++      0x0006, 0x1158, 0x0016, 0x0036, 0x0086, 0x080c, 0xe621, 0x080c,\r
++      0xe26c, 0x008e, 0x003e, 0x001e, 0x08d0, 0x080c, 0xb5b5, 0x6020,\r
++      0x9086, 0x0002, 0x1160, 0x6004, 0x0006, 0x9086, 0x0085, 0x000e,\r
++      0x0904, 0x943c, 0x9086, 0x008b, 0x0904, 0x943c, 0x0840, 0x6020,\r
++      0x9086, 0x0005, 0x1920, 0x6004, 0x0006, 0x9086, 0x0085, 0x000e,\r
++      0x09c8, 0x9086, 0x008b, 0x09b0, 0x0804, 0x944f, 0x0006, 0x00f6,\r
++      0x00e6, 0x0096, 0x00b6, 0x00c6, 0x0066, 0x0016, 0x0126, 0x2091,\r
++      0x8000, 0x9280, 0x1000, 0x2004, 0x905d, 0x2079, 0x19e7, 0x9036,\r
++      0x7828, 0x2060, 0x8cff, 0x0538, 0x6010, 0x9b06, 0x1500, 0x6043,\r
++      0xffff, 0x080c, 0xaa75, 0x01d8, 0x610c, 0x0016, 0x080c, 0x9fa2,\r
++      0x6014, 0x2048, 0xa867, 0x0103, 0xab7a, 0xa877, 0x0000, 0x0016,\r
++      0x0036, 0x0086, 0x080c, 0xcb36, 0x080c, 0xe621, 0x080c, 0x6d80,\r
++      0x008e, 0x003e, 0x001e, 0x080c, 0xac28, 0x00ce, 0x08d8, 0x2c30,\r
++      0x600c, 0x2060, 0x08b8, 0x080c, 0x67cf, 0x012e, 0x001e, 0x006e,\r
++      0x00ce, 0x00be, 0x009e, 0x00ee, 0x00fe, 0x000e, 0x0005, 0x0096,\r
++      0x0006, 0x0066, 0x00c6, 0x00d6, 0x9036, 0x7820, 0x9065, 0x0904,\r
++      0x9546, 0x600c, 0x0006, 0x6044, 0xc0fc, 0x6046, 0x600f, 0x0000,\r
++      0x7830, 0x9c06, 0x1588, 0x2069, 0x0100, 0x6820, 0xd0a4, 0x1508,\r
++      0x080c, 0x86f6, 0x080c, 0x9e32, 0x68c3, 0x0000, 0x080c, 0xa338,\r
++      0x7833, 0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0x9384, 0x1000,\r
++      0x0138, 0x2001, 0x0100, 0x080c, 0x2a0a, 0x9006, 0x080c, 0x2a0a,\r
++      0x2069, 0x0100, 0x6824, 0xd084, 0x0110, 0x6827, 0x0001, 0x003e,\r
++      0x0058, 0x080c, 0x6a03, 0x1538, 0x6003, 0x0009, 0x630a, 0x7808,\r
++      0xc0ad, 0x780a, 0x2c30, 0x00f8, 0x6014, 0x2048, 0x080c, 0xc836,\r
++      0x01b0, 0x6020, 0x9086, 0x0003, 0x1508, 0x080c, 0xca4d, 0x1118,\r
++      0x080c, 0xb5b5, 0x0060, 0x080c, 0x6a03, 0x1168, 0xa867, 0x0103,\r
++      0xab7a, 0xa877, 0x0000, 0x080c, 0x6d80, 0x080c, 0xca27, 0x080c,\r
++      0xac28, 0x080c, 0xa20e, 0x000e, 0x0804, 0x94e6, 0x7e22, 0x7e1e,\r
++      0x00de, 0x00ce, 0x006e, 0x000e, 0x009e, 0x0005, 0x6020, 0x9086,\r
++      0x0006, 0x1118, 0x080c, 0xe26c, 0x0c50, 0x080c, 0xb5b5, 0x6020,\r
++      0x9086, 0x0002, 0x1150, 0x6004, 0x0006, 0x9086, 0x0085, 0x000e,\r
++      0x0990, 0x9086, 0x008b, 0x0978, 0x08d0, 0x6020, 0x9086, 0x0005,\r
++      0x19b0, 0x6004, 0x0006, 0x9086, 0x0085, 0x000e, 0x0d18, 0x9086,\r
++      0x008b, 0x0d00, 0x0860, 0x0006, 0x0096, 0x00b6, 0x00c6, 0x0066,\r
++      0x9036, 0x7828, 0x9065, 0x0510, 0x6010, 0x2058, 0x600c, 0x0006,\r
++      0x3e08, 0x918e, 0x0002, 0x1118, 0xb800, 0xd0bc, 0x11a8, 0x6043,\r
++      0xffff, 0x080c, 0xaa75, 0x0180, 0x610c, 0x080c, 0x9fa2, 0x6014,\r
++      0x2048, 0xa867, 0x0103, 0xab7a, 0xa877, 0x0000, 0x080c, 0x6d80,\r
++      0x080c, 0xac28, 0x000e, 0x08f0, 0x2c30, 0x0ce0, 0x006e, 0x00ce,\r
++      0x00be, 0x009e, 0x000e, 0x0005, 0x00e6, 0x00d6, 0x0096, 0x0066,\r
++      0x080c, 0x613b, 0x11b0, 0x2071, 0x19e7, 0x7030, 0x9080, 0x0005,\r
++      0x2004, 0x904d, 0x0170, 0xa878, 0x9606, 0x1158, 0x2071, 0x19e7,\r
++      0x7030, 0x9035, 0x0130, 0x9080, 0x0005, 0x2004, 0x9906, 0x1108,\r
++      0x0029, 0x006e, 0x009e, 0x00de, 0x00ee, 0x0005, 0x00c6, 0x2660,\r
++      0x6043, 0xffff, 0x080c, 0xaa75, 0x0178, 0x080c, 0x9fa2, 0x6014,\r
++      0x2048, 0xa867, 0x0103, 0xab7a, 0xa877, 0x0000, 0x080c, 0xcb36,\r
++      0x080c, 0x6d80, 0x080c, 0xac28, 0x00ce, 0x0005, 0x00b6, 0x00e6,\r
++      0x00c6, 0x080c, 0xa8f4, 0x0106, 0x190c, 0xa896, 0x2071, 0x0101,\r
++      0x2e04, 0xc0c4, 0x2072, 0x6044, 0xd0fc, 0x1138, 0x010e, 0x190c,\r
++      0xa8b2, 0x00ce, 0x00ee, 0x00be, 0x0005, 0x2071, 0x19e7, 0x7030,\r
++      0x9005, 0x0da0, 0x9c06, 0x190c, 0x0d7d, 0x7036, 0x080c, 0x86f6,\r
++      0x7004, 0x9084, 0x0007, 0x0002, 0x960e, 0x9610, 0x9617, 0x9621,\r
++      0x962f, 0x960e, 0x9617, 0x960c, 0x080c, 0x0d7d, 0x0428, 0x0005,\r
++      0x080c, 0xaa60, 0x7007, 0x0000, 0x7033, 0x0000, 0x00e8, 0x0066,\r
++      0x9036, 0x080c, 0x9fa2, 0x006e, 0x7007, 0x0000, 0x7033, 0x0000,\r
++      0x0098, 0x080c, 0xaa4b, 0x0140, 0x080c, 0xaa60, 0x0128, 0x0066,\r
++      0x9036, 0x080c, 0x9fa2, 0x006e, 0x7033, 0x0000, 0x0028, 0x080c,\r
++      0xaa4b, 0x080c, 0xa338, 0x0000, 0x010e, 0x190c, 0xa8b2, 0x00ce,\r
++      0x00ee, 0x00be, 0x0005, 0x00d6, 0x00c6, 0x080c, 0xa8f4, 0x0106,\r
++      0x190c, 0xa896, 0x6044, 0xd0fc, 0x1130, 0x010e, 0x190c, 0xa8b2,\r
++      0x00ce, 0x00de, 0x0005, 0x2069, 0x19e7, 0x684c, 0x9005, 0x0da8,\r
++      0x9c06, 0x190c, 0x0d7d, 0x6852, 0x00e6, 0x2d70, 0x080c, 0x926e,\r
++      0x00ee, 0x080c, 0x8703, 0x0016, 0x2009, 0x0040, 0x080c, 0x21b0,\r
++      0x001e, 0x683c, 0x9084, 0x0003, 0x0002, 0x966b, 0x966c, 0x968a,\r
++      0x9669, 0x080c, 0x0d7d, 0x0460, 0x6868, 0x9086, 0x0001, 0x0190,\r
++      0x600c, 0x9015, 0x0160, 0x6a4a, 0x600f, 0x0000, 0x6044, 0xc0fc,\r
++      0x6046, 0x9006, 0x7042, 0x684e, 0x683f, 0x0000, 0x00c8, 0x684a,\r
++      0x6846, 0x0ca0, 0x686b, 0x0000, 0x6848, 0x9065, 0x0d78, 0x6003,\r
++      0x0002, 0x0c60, 0x9006, 0x686a, 0x6852, 0x686e, 0x600c, 0x9015,\r
++      0x0120, 0x6a4a, 0x600f, 0x0000, 0x0018, 0x684e, 0x684a, 0x6846,\r
++      0x684f, 0x0000, 0x010e, 0x190c, 0xa8b2, 0x00ce, 0x00de, 0x0005,\r
++      0x0005, 0x6020, 0x9084, 0x000f, 0x000b, 0x0005, 0x96b6, 0x96b9,\r
++      0x9b27, 0x9bb6, 0x96b9, 0x9b27, 0x9bb6, 0x96b6, 0x96b9, 0x96b6,\r
++      0x96b6, 0x96b6, 0x96b6, 0x96b6, 0x96b6, 0x96b6, 0x080c, 0x95de,\r
++      0x0005, 0x00b6, 0x0156, 0x0136, 0x0146, 0x01c6, 0x01d6, 0x00c6,\r
++      0x00d6, 0x00e6, 0x00f6, 0x2069, 0x0200, 0x2071, 0x0240, 0x6004,\r
++      0x908a, 0x0053, 0x1a0c, 0x0d7d, 0x6110, 0x2158, 0xb984, 0x2c78,\r
++      0x2061, 0x0100, 0x619a, 0x908a, 0x0040, 0x1a04, 0x9725, 0x005b,\r
++      0x00fe, 0x00ee, 0x00de, 0x00ce, 0x01de, 0x01ce, 0x014e, 0x013e,\r
++      0x015e, 0x00be, 0x0005, 0x98aa, 0x98e5, 0x990e, 0x99b6, 0x99d8,\r
++      0x99de, 0x99eb, 0x99f3, 0x99ff, 0x9a05, 0x9a16, 0x9a05, 0x9a6e,\r
++      0x99f3, 0x9a7a, 0x9a80, 0x99ff, 0x9a80, 0x9a8c, 0x9723, 0x9723,\r
++      0x9723, 0x9723, 0x9723, 0x9723, 0x9723, 0x9723, 0x9723, 0x9723,\r
++      0x9723, 0x9fc3, 0x9fe6, 0x9ff7, 0xa017, 0xa049, 0x99eb, 0x9723,\r
++      0x99eb, 0x9a05, 0x9723, 0x990e, 0x99b6, 0x9723, 0xa42b, 0x9a05,\r
++      0x9723, 0xa447, 0x9a05, 0x9723, 0x99ff, 0x98a4, 0x9746, 0x9723,\r
++      0xa463, 0xa4d0, 0xa5b0, 0x9723, 0xa5bd, 0x99e8, 0xa5e8, 0x9723,\r
++      0xa053, 0xa5f4, 0x9723, 0x080c, 0x0d7d, 0x2100, 0x005b, 0x00fe,\r
++      0x00ee, 0x00de, 0x00ce, 0x01de, 0x01ce, 0x014e, 0x013e, 0x015e,\r
++      0x00be, 0x0005, 0xa694, 0xa746, 0x9744, 0x976d, 0x9819, 0x9824,\r
++      0x9744, 0x99eb, 0x9744, 0x986b, 0x9877, 0x9788, 0x9744, 0x97a3,\r
++      0x97d7, 0xaacb, 0xab10, 0x9a05, 0x080c, 0x0d7d, 0x00d6, 0x0096,\r
++      0x080c, 0x9a9f, 0x7003, 0x2414, 0x7007, 0x0018, 0x700b, 0x0800,\r
++      0x7814, 0x2048, 0xa83c, 0x700e, 0xa850, 0x7022, 0xa854, 0x7026,\r
++      0x60c3, 0x0018, 0x080c, 0x9e02, 0x009e, 0x00de, 0x0005, 0x7810,\r
++      0x00b6, 0x2058, 0xb8a0, 0x00be, 0x080c, 0xab57, 0x1118, 0x9084,\r
++      0xff80, 0x0110, 0x9085, 0x0001, 0x0005, 0x00d6, 0x0096, 0x080c,\r
++      0x9a9f, 0x7003, 0x0500, 0x7814, 0x2048, 0xa874, 0x700a, 0xa878,\r
++      0x700e, 0xa87c, 0x7012, 0xa880, 0x7016, 0xa884, 0x701a, 0xa888,\r
++      0x701e, 0x60c3, 0x0010, 0x080c, 0x9e02, 0x009e, 0x00de, 0x0005,\r
++      0x00d6, 0x0096, 0x080c, 0x9a9f, 0x7003, 0x0500, 0x7814, 0x2048,\r
++      0xa8cc, 0x700a, 0xa8d0, 0x700e, 0xa8d4, 0x7012, 0xa8d8, 0x7016,\r
++      0xa8dc, 0x701a, 0xa8e0, 0x701e, 0x60c3, 0x0010, 0x080c, 0x9e02,\r
++      0x009e, 0x00de, 0x0005, 0x00d6, 0x0096, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x9a9f, 0x20e9, 0x0000, 0x2001, 0x19a3, 0x2003, 0x0000,\r
++      0x7814, 0x2048, 0xa814, 0x8003, 0x60c2, 0xa830, 0x20a8, 0xa860,\r
++      0x20e0, 0xa85c, 0x9080, 0x001b, 0x2098, 0x2001, 0x19a3, 0x0016,\r
++      0x200c, 0x2001, 0x0001, 0x080c, 0x2195, 0x080c, 0xd5b1, 0x9006,\r
++      0x080c, 0x2195, 0x001e, 0xa804, 0x9005, 0x0110, 0x2048, 0x0c28,\r
++      0x04d9, 0x080c, 0x9e02, 0x012e, 0x009e, 0x00de, 0x0005, 0x00d6,\r
++      0x0096, 0x0126, 0x2091, 0x8000, 0x080c, 0x9aea, 0x20e9, 0x0000,\r
++      0x2001, 0x19a3, 0x2003, 0x0000, 0x7814, 0x2048, 0xa86f, 0x0200,\r
++      0xa873, 0x0000, 0xa814, 0x8003, 0x60c2, 0xa830, 0x20a8, 0xa860,\r
++      0x20e0, 0xa85c, 0x9080, 0x001b, 0x2098, 0x2001, 0x19a3, 0x0016,\r
++      0x200c, 0x080c, 0xd5b1, 0x001e, 0xa804, 0x9005, 0x0110, 0x2048,\r
++      0x0c60, 0x0051, 0x7814, 0x2048, 0x080c, 0x0fec, 0x080c, 0x9e02,\r
++      0x012e, 0x009e, 0x00de, 0x0005, 0x60c0, 0x8004, 0x9084, 0x0003,\r
++      0x9005, 0x0130, 0x9082, 0x0004, 0x20a3, 0x0000, 0x8000, 0x1de0,\r
++      0x0005, 0x080c, 0x9a9f, 0x7003, 0x7800, 0x7808, 0x8007, 0x700a,\r
++      0x60c3, 0x0008, 0x0804, 0x9e02, 0x00d6, 0x00e6, 0x080c, 0x9aea,\r
++      0x7814, 0x9084, 0xff00, 0x2073, 0x0200, 0x8e70, 0x8e70, 0x9095,\r
++      0x0010, 0x2272, 0x8e70, 0x2073, 0x0034, 0x8e70, 0x2069, 0x1805,\r
++      0x20a9, 0x0004, 0x2d76, 0x8d68, 0x8e70, 0x1f04, 0x983a, 0x2069,\r
++      0x1801, 0x20a9, 0x0004, 0x2d76, 0x8d68, 0x8e70, 0x1f04, 0x9843,\r
++      0x2069, 0x19b3, 0x9086, 0xdf00, 0x0110, 0x2069, 0x19cd, 0x20a9,\r
++      0x001a, 0x9e86, 0x0260, 0x1148, 0x00c6, 0x2061, 0x0200, 0x6010,\r
++      0x8000, 0x6012, 0x00ce, 0x2071, 0x0240, 0x2d04, 0x8007, 0x2072,\r
++      0x8d68, 0x8e70, 0x1f04, 0x9851, 0x60c3, 0x004c, 0x080c, 0x9e02,\r
++      0x00ee, 0x00de, 0x0005, 0x080c, 0x9a9f, 0x7003, 0x6300, 0x7007,\r
++      0x0028, 0x7808, 0x700e, 0x60c3, 0x0008, 0x0804, 0x9e02, 0x00d6,\r
++      0x0026, 0x0016, 0x080c, 0x9aea, 0x7003, 0x0200, 0x7814, 0x700e,\r
++      0x00e6, 0x9ef0, 0x0004, 0x2009, 0x0001, 0x2011, 0x000c, 0x2069,\r
++      0x1923, 0x6810, 0xd084, 0x1148, 0x2073, 0x0500, 0x8e70, 0x2073,\r
++      0x0000, 0x8e70, 0x8108, 0x9290, 0x0004, 0x2073, 0x0800, 0x8e70,\r
++      0x2073, 0x0000, 0x00ee, 0x7206, 0x710a, 0x62c2, 0x080c, 0x9e02,\r
++      0x001e, 0x002e, 0x00de, 0x0005, 0x2001, 0x1818, 0x2004, 0x609a,\r
++      0x0804, 0x9e02, 0x080c, 0x9a9f, 0x7003, 0x5200, 0x2069, 0x1847,\r
++      0x6804, 0xd084, 0x0130, 0x6828, 0x0016, 0x080c, 0x262e, 0x710e,\r
++      0x001e, 0x20a9, 0x0004, 0x20e1, 0x0001, 0x2099, 0x1805, 0x20e9,\r
++      0x0000, 0x20a1, 0x0250, 0x4003, 0x20a9, 0x0004, 0x2099, 0x1801,\r
++      0x20a1, 0x0254, 0x4003, 0x080c, 0xab57, 0x1120, 0xb8a0, 0x9082,\r
++      0x007f, 0x0248, 0x2001, 0x181f, 0x2004, 0x7032, 0x2001, 0x1820,\r
++      0x2004, 0x7036, 0x0030, 0x2001, 0x1818, 0x2004, 0x9084, 0x00ff,\r
++      0x7036, 0x60c3, 0x001c, 0x0804, 0x9e02, 0x080c, 0x9a9f, 0x7003,\r
++      0x0500, 0x080c, 0xab57, 0x1120, 0xb8a0, 0x9082, 0x007f, 0x0248,\r
++      0x2001, 0x181f, 0x2004, 0x700a, 0x2001, 0x1820, 0x2004, 0x700e,\r
++      0x0030, 0x2001, 0x1818, 0x2004, 0x9084, 0x00ff, 0x700e, 0x20a9,\r
++      0x0004, 0x20e1, 0x0001, 0x2099, 0x1805, 0x20e9, 0x0000, 0x20a1,\r
++      0x0250, 0x4003, 0x60c3, 0x0010, 0x0804, 0x9e02, 0x080c, 0x9a9f,\r
++      0x9006, 0x080c, 0x6a35, 0xb8a0, 0x9086, 0x007e, 0x1130, 0x7003,\r
++      0x0400, 0x620c, 0xc2b4, 0x620e, 0x0058, 0x7814, 0x0096, 0x904d,\r
++      0x0120, 0x9006, 0xa89a, 0xa8a6, 0xa8aa, 0x009e, 0x7003, 0x0300,\r
++      0xb8a0, 0x9086, 0x007e, 0x1904, 0x997d, 0x00d6, 0x2069, 0x196c,\r
++      0x2001, 0x1837, 0x2004, 0xd0a4, 0x0188, 0x6800, 0x700a, 0x6808,\r
++      0x9084, 0x2000, 0x7012, 0x080c, 0xab6e, 0x680c, 0x7016, 0x701f,\r
++      0x2710, 0x6818, 0x7022, 0x681c, 0x7026, 0x0090, 0x6800, 0x700a,\r
++      0x6804, 0x700e, 0x6808, 0x080c, 0x74e9, 0x1118, 0x9084, 0x37ff,\r
++      0x0010, 0x9084, 0x3fff, 0x7012, 0x080c, 0xab6e, 0x680c, 0x7016,\r
++      0x00de, 0x20a9, 0x0004, 0x20e1, 0x0001, 0x2099, 0x1805, 0x20e9,\r
++      0x0000, 0x20a1, 0x0256, 0x4003, 0x20a9, 0x0004, 0x2099, 0x1801,\r
++      0x20a1, 0x025a, 0x4003, 0x00d6, 0x080c, 0xa67b, 0x2069, 0x1974,\r
++      0x2071, 0x024e, 0x6800, 0xc0dd, 0x7002, 0x080c, 0x56de, 0xd0e4,\r
++      0x0110, 0x680c, 0x700e, 0x00de, 0x04a8, 0x2001, 0x1837, 0x2004,\r
++      0xd0a4, 0x0170, 0x0016, 0x2001, 0x196d, 0x200c, 0x60e0, 0x9106,\r
++      0x0130, 0x2100, 0x60e3, 0x0000, 0x080c, 0x266f, 0x61e2, 0x001e,\r
++      0x20e1, 0x0001, 0x2099, 0x196c, 0x20e9, 0x0000, 0x20a1, 0x024e,\r
++      0x20a9, 0x0008, 0x4003, 0x20a9, 0x0004, 0x2099, 0x1805, 0x20a1,\r
++      0x0256, 0x4003, 0x20a9, 0x0004, 0x2099, 0x1801, 0x20a1, 0x025a,\r
++      0x4003, 0x080c, 0xa67b, 0x20a1, 0x024e, 0x20a9, 0x0008, 0x2099,\r
++      0x1974, 0x4003, 0x60c3, 0x0074, 0x0804, 0x9e02, 0x080c, 0x9a9f,\r
++      0x7003, 0x2010, 0x7007, 0x0014, 0x700b, 0x0800, 0x700f, 0x2000,\r
++      0x9006, 0x00f6, 0x2079, 0x1847, 0x7904, 0x00fe, 0xd1ac, 0x1110,\r
++      0x9085, 0x0020, 0xd1a4, 0x0110, 0x9085, 0x0010, 0x9085, 0x0002,\r
++      0x00d6, 0x0804, 0x9a4f, 0x7026, 0x60c3, 0x0014, 0x0804, 0x9e02,\r
++      0x080c, 0x9a9f, 0x7003, 0x5000, 0x0804, 0x9928, 0x080c, 0x9a9f,\r
++      0x7003, 0x2110, 0x7007, 0x0014, 0x60c3, 0x0014, 0x0804, 0x9e02,\r
++      0x080c, 0x9ae1, 0x0010, 0x080c, 0x9aea, 0x7003, 0x0200, 0x60c3,\r
++      0x0004, 0x0804, 0x9e02, 0x080c, 0x9aea, 0x7003, 0x0100, 0x700b,\r
++      0x0003, 0x700f, 0x2a00, 0x60c3, 0x0008, 0x0804, 0x9e02, 0x080c,\r
++      0x9aea, 0x7003, 0x0200, 0x0804, 0x9928, 0x080c, 0x9aea, 0x7003,\r
++      0x0100, 0x782c, 0x9005, 0x0110, 0x700a, 0x0010, 0x700b, 0x0003,\r
++      0x7814, 0x700e, 0x60c3, 0x0008, 0x0804, 0x9e02, 0x00d6, 0x080c,\r
++      0x9aea, 0x7003, 0x0210, 0x7007, 0x0014, 0x700b, 0x0800, 0xb894,\r
++      0x9086, 0x0014, 0x1198, 0xb99c, 0x9184, 0x0030, 0x0190, 0xb998,\r
++      0x9184, 0xc000, 0x1140, 0xd1ec, 0x0118, 0x700f, 0x2100, 0x0058,\r
++      0x700f, 0x0100, 0x0040, 0x700f, 0x0400, 0x0028, 0x700f, 0x0700,\r
++      0x0010, 0x700f, 0x0800, 0x00f6, 0x2079, 0x1847, 0x7904, 0x00fe,\r
++      0xd1ac, 0x1110, 0x9085, 0x0020, 0xd1a4, 0x0110, 0x9085, 0x0010,\r
++      0x2009, 0x1869, 0x210c, 0xd184, 0x1110, 0x9085, 0x0002, 0x0026,\r
++      0x2009, 0x1867, 0x210c, 0xd1e4, 0x0150, 0xc0c5, 0xbad4, 0xd28c,\r
++      0x1108, 0xc0cd, 0x9094, 0x0030, 0x9296, 0x0010, 0x0140, 0xd1ec,\r
++      0x0130, 0x9094, 0x0030, 0x9296, 0x0010, 0x0108, 0xc0bd, 0x002e,\r
++      0x7026, 0x60c3, 0x0014, 0x00de, 0x0804, 0x9e02, 0x080c, 0x9aea,\r
++      0x7003, 0x0210, 0x7007, 0x0014, 0x700f, 0x0100, 0x60c3, 0x0014,\r
++      0x0804, 0x9e02, 0x080c, 0x9aea, 0x7003, 0x0200, 0x0804, 0x98ae,\r
++      0x080c, 0x9aea, 0x7003, 0x0100, 0x700b, 0x0003, 0x700f, 0x2a00,\r
++      0x60c3, 0x0008, 0x0804, 0x9e02, 0x080c, 0x9aea, 0x7003, 0x0100,\r
++      0x700b, 0x000b, 0x60c3, 0x0008, 0x0804, 0x9e02, 0x0026, 0x00d6,\r
++      0x0036, 0x0046, 0x2019, 0x3200, 0x2021, 0x0800, 0x0040, 0x0026,\r
++      0x00d6, 0x0036, 0x0046, 0x2019, 0x2200, 0x2021, 0x0100, 0x080c,\r
++      0xa690, 0xb810, 0x9305, 0x7002, 0xb814, 0x7006, 0x2069, 0x1800,\r
++      0x687c, 0x700a, 0x6880, 0x700e, 0x9485, 0x0029, 0x7012, 0x004e,\r
++      0x003e, 0x00de, 0x080c, 0x9df6, 0x721a, 0x9f95, 0x0000, 0x7222,\r
++      0x7027, 0xffff, 0x2071, 0x024c, 0x002e, 0x0005, 0x0026, 0x080c,\r
++      0xa690, 0x7003, 0x02ff, 0x7007, 0xfffc, 0x00d6, 0x2069, 0x1800,\r
++      0x687c, 0x700a, 0x6880, 0x700e, 0x00de, 0x7013, 0x2029, 0x0c10,\r
++      0x7003, 0x0100, 0x7007, 0x0000, 0x700b, 0xfc02, 0x700f, 0x0000,\r
++      0x0005, 0x0026, 0x00d6, 0x0036, 0x0046, 0x2019, 0x3300, 0x2021,\r
++      0x0800, 0x0040, 0x0026, 0x00d6, 0x0036, 0x0046, 0x2019, 0x2300,\r
++      0x2021, 0x0100, 0x080c, 0xa690, 0xb810, 0x9305, 0x7002, 0xb814,\r
++      0x7006, 0x2069, 0x1800, 0xb810, 0x9005, 0x1140, 0xb814, 0x9005,\r
++      0x1128, 0x700b, 0x00ff, 0x700f, 0xfffe, 0x0020, 0x687c, 0x700a,\r
++      0x6880, 0x700e, 0x0000, 0x9485, 0x0098, 0x7012, 0x004e, 0x003e,\r
++      0x00de, 0x080c, 0x9df6, 0x721a, 0x7a08, 0x7222, 0x2f10, 0x7226,\r
++      0x2071, 0x024c, 0x002e, 0x0005, 0x080c, 0x9df6, 0x721a, 0x7a08,\r
++      0x7222, 0x7814, 0x7026, 0x2071, 0x024c, 0x002e, 0x0005, 0x00b6,\r
++      0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x2069, 0x0200, 0x2071, 0x0240,\r
++      0x6004, 0x908a, 0x0085, 0x0a0c, 0x0d7d, 0x908a, 0x0092, 0x1a0c,\r
++      0x0d7d, 0x6110, 0x2158, 0xb984, 0x2c78, 0x2061, 0x0100, 0x619a,\r
++      0x9082, 0x0085, 0x0033, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be,\r
++      0x0005, 0x9b58, 0x9b67, 0x9b72, 0x9b56, 0x9b56, 0x9b56, 0x9b58,\r
++      0x9b56, 0x9b56, 0x9b56, 0x9b56, 0x9b56, 0x9b56, 0x080c, 0x0d7d,\r
++      0x0411, 0x60c3, 0x0000, 0x0026, 0x080c, 0x2979, 0x0228, 0x2011,\r
++      0x0101, 0x2204, 0xc0c5, 0x2012, 0x002e, 0x0804, 0x9e02, 0x0431,\r
++      0x7808, 0x700a, 0x7814, 0x700e, 0x7017, 0xffff, 0x60c3, 0x000c,\r
++      0x0804, 0x9e02, 0x0479, 0x7003, 0x0003, 0x7007, 0x0300, 0x60c3,\r
++      0x0004, 0x0804, 0x9e02, 0x0026, 0x080c, 0xa690, 0xb810, 0x9085,\r
++      0x8100, 0x7002, 0xb814, 0x7006, 0x2069, 0x1800, 0x687c, 0x700a,\r
++      0x6880, 0x700e, 0x7013, 0x0009, 0x0804, 0x9aba, 0x0026, 0x080c,\r
++      0xa690, 0xb810, 0x9085, 0x8400, 0x7002, 0xb814, 0x7006, 0x2069,\r
++      0x1800, 0x687c, 0x700a, 0x6880, 0x700e, 0x2001, 0x0099, 0x7012,\r
++      0x0804, 0x9b1c, 0x0026, 0x080c, 0xa690, 0xb810, 0x9085, 0x8500,\r
++      0x7002, 0xb814, 0x7006, 0x2069, 0x1800, 0x687c, 0x700a, 0x6880,\r
++      0x700e, 0x2001, 0x0099, 0x7012, 0x0804, 0x9b1c, 0x00b6, 0x00c6,\r
++      0x00d6, 0x00e6, 0x00f6, 0x2c78, 0x2069, 0x0200, 0x2071, 0x0240,\r
++      0x7804, 0x908a, 0x0040, 0x0a0c, 0x0d7d, 0x908a, 0x0057, 0x1a0c,\r
++      0x0d7d, 0x7910, 0x2158, 0xb984, 0x2061, 0x0100, 0x619a, 0x9082,\r
++      0x0040, 0x0033, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be, 0x0005,\r
++      0x9beb, 0x9beb, 0x9beb, 0x9c11, 0x9beb, 0x9beb, 0x9beb, 0x9beb,\r
++      0x9beb, 0x9beb, 0x9beb, 0xa1eb, 0xa1f3, 0xa1fb, 0xa203, 0x9beb,\r
++      0x9beb, 0x9beb, 0xa1e3, 0x080c, 0x0d7d, 0x6813, 0x0008, 0xba8c,\r
++      0x8210, 0xb8d4, 0xd084, 0x0128, 0x7a4e, 0x7b14, 0x7b52, 0x722e,\r
++      0x732a, 0x9294, 0x00ff, 0xba8e, 0x8217, 0x721a, 0xba10, 0x9295,\r
++      0x0600, 0x7202, 0xba14, 0x7206, 0x2069, 0x1800, 0x6a7c, 0x720a,\r
++      0x6a80, 0x720e, 0x7013, 0x0829, 0x2f10, 0x7222, 0x7027, 0xffff,\r
++      0x0005, 0x0016, 0x7814, 0x9084, 0x0700, 0x8007, 0x0013, 0x001e,\r
++      0x0005, 0x9c21, 0x9c21, 0x9c23, 0x9c21, 0x9c21, 0x9c21, 0x9c3d,\r
++      0x9c21, 0x080c, 0x0d7d, 0x7914, 0x918c, 0x08ff, 0x918d, 0xf600,\r
++      0x7916, 0x2009, 0x0003, 0x00b9, 0x2069, 0x1847, 0x6804, 0xd0bc,\r
++      0x0130, 0x682c, 0x9084, 0x00ff, 0x8007, 0x7032, 0x0010, 0x7033,\r
++      0x3f00, 0x60c3, 0x0001, 0x0804, 0x9e02, 0x2009, 0x0003, 0x0019,\r
++      0x7033, 0x7f00, 0x0cb0, 0x0016, 0x080c, 0xa690, 0x001e, 0xb810,\r
++      0x9085, 0x0100, 0x7002, 0xb814, 0x7006, 0x2069, 0x1800, 0x6a7c,\r
++      0x720a, 0x6a80, 0x720e, 0x7013, 0x0888, 0x918d, 0x0008, 0x7116,\r
++      0x080c, 0x9df6, 0x721a, 0x7a08, 0x7222, 0x2f10, 0x7226, 0x0005,\r
++      0x00b6, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0056, 0x0046, 0x0036,\r
++      0x2061, 0x0100, 0x2071, 0x1800, 0x7160, 0x7810, 0x2058, 0x76dc,\r
++      0x96b4, 0x0028, 0x0110, 0x737c, 0x7480, 0x2500, 0x76dc, 0x96b4,\r
++      0x0028, 0x0140, 0x2001, 0x04ff, 0x6062, 0x6067, 0xffff, 0x636a,\r
++      0x646e, 0x0050, 0x2001, 0x00ff, 0x9085, 0x0400, 0x6062, 0x6067,\r
++      0xffff, 0x606b, 0x0000, 0x616e, 0xb8b8, 0x6073, 0x0530, 0x6077,\r
++      0x0008, 0xb88c, 0x8000, 0x9084, 0x00ff, 0xb88e, 0x8007, 0x9085,\r
++      0x0020, 0x607a, 0x607f, 0x0000, 0x2b00, 0x6082, 0x6087, 0xffff,\r
++      0x7814, 0x0096, 0x2048, 0xa848, 0x608a, 0xa844, 0x608e, 0xa838,\r
++      0x60c6, 0xa834, 0x60ca, 0x009e, 0xb86c, 0x60ce, 0x60ab, 0x0036,\r
++      0x60af, 0x95d5, 0x60d7, 0x0000, 0x2001, 0x1837, 0x2004, 0x9084,\r
++      0x0028, 0x0128, 0x609f, 0x0000, 0x2001, 0x0092, 0x0058, 0x6028,\r
++      0xc0bd, 0x602a, 0x609f, 0x00ff, 0x2011, 0xffff, 0x080c, 0x2a44,\r
++      0x2001, 0x00b2, 0x2010, 0x900e, 0x080c, 0x2a53, 0x2009, 0x07d0,\r
++      0x080c, 0x86fb, 0x003e, 0x004e, 0x005e, 0x006e, 0x00ce, 0x00de,\r
++      0x00ee, 0x00be, 0x0005, 0x00b6, 0x00e6, 0x00d6, 0x00c6, 0x0066,\r
++      0x0056, 0x0046, 0x0036, 0x2061, 0x0100, 0x2071, 0x1800, 0x7160,\r
++      0x7810, 0x2058, 0xb8a0, 0x2028, 0x76dc, 0xd6ac, 0x1168, 0x9582,\r
++      0x007e, 0x1250, 0x2500, 0x9094, 0xff80, 0x1130, 0x9080, 0x3374,\r
++      0x2015, 0x9294, 0x00ff, 0x0020, 0xb910, 0xba14, 0x737c, 0x7480,\r
++      0x70dc, 0xd0ac, 0x1130, 0x9582, 0x007e, 0x1218, 0x9584, 0xff80,\r
++      0x0138, 0x9185, 0x0400, 0x6062, 0x6266, 0x636a, 0x646e, 0x0030,\r
++      0x6063, 0x0400, 0x6266, 0x606b, 0x0000, 0x616e, 0xb8b8, 0x6072,\r
++      0x6077, 0x0000, 0xb864, 0xd0a4, 0x0110, 0x6077, 0x0008, 0xb88c,\r
++      0x8000, 0x9084, 0x00ff, 0xb88e, 0x8007, 0x9085, 0x0020, 0x607a,\r
++      0x607f, 0x0000, 0x2b00, 0x6082, 0x6087, 0xffff, 0x7814, 0x0096,\r
++      0x2048, 0xa848, 0x608a, 0xa844, 0x608e, 0xa838, 0x60c6, 0xa834,\r
++      0x60ca, 0x009e, 0xb86c, 0x60ce, 0x60ab, 0x0036, 0x60af, 0x95d5,\r
++      0x60d7, 0x0000, 0xba84, 0x629e, 0x00f6, 0x2079, 0x0140, 0x7803,\r
++      0x0000, 0x00fe, 0x900e, 0x2011, 0x0092, 0x080c, 0x2a53, 0x2009,\r
++      0x07d0, 0x080c, 0x86fb, 0x003e, 0x004e, 0x005e, 0x006e, 0x00ce,\r
++      0x00de, 0x00ee, 0x00be, 0x0005, 0x00b6, 0x0096, 0x00e6, 0x00d6,\r
++      0x00c6, 0x0056, 0x0046, 0x0036, 0x2061, 0x0100, 0x2071, 0x1800,\r
++      0x7810, 0x2058, 0xb8a0, 0x2028, 0xb910, 0xba14, 0x737c, 0x7480,\r
++      0x7820, 0x0002, 0x9d81, 0x9d81, 0x9d81, 0x9d81, 0x9d81, 0x9d81,\r
++      0x9d81, 0x9d81, 0x9d81, 0x9d81, 0x9d83, 0x9d81, 0x9d81, 0x9d81,\r
++      0x9d81, 0x080c, 0x0d7d, 0xb884, 0x609e, 0x7814, 0x2048, 0xa87c,\r
++      0xd0fc, 0x0558, 0xaf90, 0x9784, 0xff00, 0x9105, 0x6062, 0x873f,\r
++      0x9784, 0xff00, 0x0006, 0x7814, 0x2048, 0xa878, 0xc0fc, 0x9005,\r
++      0x000e, 0x1160, 0xaf94, 0x87ff, 0x0198, 0x2039, 0x0098, 0x9705,\r
++      0x6072, 0x7808, 0x6082, 0x2f00, 0x6086, 0x0038, 0x9185, 0x2200,\r
++      0x6062, 0x6073, 0x0129, 0x6077, 0x0000, 0xb884, 0x609e, 0x0050,\r
++      0x2039, 0x0029, 0x9705, 0x6072, 0x0cc0, 0x9185, 0x0200, 0x6062,\r
++      0x6073, 0x2029, 0xa87c, 0xd0fc, 0x0118, 0xaf94, 0x87ff, 0x1120,\r
++      0x2f00, 0x6082, 0x7808, 0x6086, 0x6266, 0x636a, 0x646e, 0x6077,\r
++      0x0000, 0xb88c, 0x8000, 0x9084, 0x00ff, 0xb88e, 0x8007, 0x607a,\r
++      0x607f, 0x0000, 0xa848, 0x608a, 0xa844, 0x608e, 0xa838, 0x60c6,\r
++      0xa834, 0x60ca, 0xb86c, 0x60ce, 0x60af, 0x95d5, 0x60d7, 0x0000,\r
++      0x080c, 0xa670, 0x2009, 0x07d0, 0x60c4, 0x9084, 0xfff0, 0x9005,\r
++      0x0110, 0x2009, 0x1b58, 0x080c, 0x86fb, 0x003e, 0x004e, 0x005e,\r
++      0x00ce, 0x00de, 0x00ee, 0x009e, 0x00be, 0x0005, 0x7a40, 0x9294,\r
++      0x00ff, 0x8217, 0x0005, 0x00d6, 0x2069, 0x19e7, 0x686b, 0x0001,\r
++      0x00de, 0x0005, 0x60a3, 0x0056, 0x60a7, 0x9575, 0x00f1, 0x080c,\r
++      0x86ed, 0x0005, 0x0016, 0x2001, 0x180c, 0x200c, 0x9184, 0x0600,\r
++      0x9086, 0x0600, 0x0128, 0x0089, 0x080c, 0x86ed, 0x001e, 0x0005,\r
++      0xc1e5, 0x2001, 0x180c, 0x2102, 0x2001, 0x19e8, 0x2003, 0x0000,\r
++      0x2001, 0x19f3, 0x2003, 0x0000, 0x0c88, 0x0006, 0x0016, 0x0026,\r
++      0x2009, 0x1804, 0x2011, 0x0009, 0x080c, 0x2a53, 0x002e, 0x001e,\r
++      0x000e, 0x0005, 0x0016, 0x00c6, 0x0006, 0x080c, 0xa8f4, 0x0106,\r
++      0x190c, 0xa896, 0x2061, 0x0100, 0x61a4, 0x60a7, 0x95f5, 0x0016,\r
++      0x0026, 0x2009, 0x1804, 0x2011, 0x0008, 0x080c, 0x2a53, 0x002e,\r
++      0x001e, 0x010e, 0x190c, 0xa8b2, 0x000e, 0xa001, 0xa001, 0xa001,\r
++      0x61a6, 0x00ce, 0x001e, 0x0005, 0x00c6, 0x00d6, 0x0016, 0x0026,\r
++      0x2061, 0x0100, 0x2069, 0x0140, 0x080c, 0x74e9, 0x1510, 0x2001,\r
++      0x1a0c, 0x2004, 0x9005, 0x1904, 0x9eb3, 0x080c, 0x758a, 0x11a8,\r
++      0x2069, 0x0380, 0x6843, 0x0101, 0x6844, 0xd084, 0x1de8, 0x2061,\r
++      0x0100, 0x6020, 0xd0b4, 0x1120, 0x6024, 0xd084, 0x090c, 0x0d7d,\r
++      0x6843, 0x0100, 0x080c, 0x86ed, 0x04b0, 0x00c6, 0x2061, 0x19e7,\r
++      0x00f0, 0x6904, 0x9194, 0x4000, 0x0598, 0x080c, 0x9e32, 0x080c,\r
++      0x2a1a, 0x00c6, 0x2061, 0x19e7, 0x6134, 0x9192, 0x0008, 0x1278,\r
++      0x8108, 0x6136, 0x080c, 0xa896, 0x6130, 0x080c, 0xa8b2, 0x00ce,\r
++      0x81ff, 0x01c8, 0x080c, 0x86ed, 0x080c, 0x9e25, 0x00a0, 0x080c,\r
++      0xa896, 0x6130, 0x91e5, 0x0000, 0x0150, 0x080c, 0xe717, 0x080c,\r
++      0x86f6, 0x6003, 0x0001, 0x2009, 0x0014, 0x080c, 0xac8c, 0x080c,\r
++      0xa8b2, 0x00ce, 0x0000, 0x002e, 0x001e, 0x00de, 0x00ce, 0x0005,\r
++      0x2001, 0x1a0c, 0x2004, 0x9005, 0x1db0, 0x00c6, 0x2061, 0x19e7,\r
++      0x6134, 0x9192, 0x0003, 0x1ad8, 0x8108, 0x6136, 0x00ce, 0x080c,\r
++      0x86ed, 0x080c, 0x5ee4, 0x2009, 0x1846, 0x2114, 0x8210, 0x220a,\r
++      0x0c10, 0x0096, 0x00c6, 0x00d6, 0x00e6, 0x0016, 0x0026, 0x080c,\r
++      0x8703, 0x080c, 0xa896, 0x2001, 0x0387, 0x2003, 0x0202, 0x2071,\r
++      0x19e7, 0x714c, 0x81ff, 0x0904, 0x9f5b, 0x2061, 0x0100, 0x2069,\r
++      0x0140, 0x080c, 0x74e9, 0x1510, 0x0036, 0x2019, 0x0002, 0x080c,\r
++      0xa118, 0x003e, 0x714c, 0x2160, 0x080c, 0xe717, 0x2009, 0x004a,\r
++      0x6220, 0x9296, 0x0009, 0x1130, 0x6114, 0x2148, 0xa87b, 0x0006,\r
++      0x2009, 0x004a, 0x6003, 0x0003, 0x080c, 0xac8c, 0x2001, 0x0386,\r
++      0x2003, 0x5040, 0x080c, 0x758a, 0x0804, 0x9f5b, 0x6904, 0xd1f4,\r
++      0x0904, 0x9f68, 0x080c, 0x2a1a, 0x00c6, 0x704c, 0x9065, 0x090c,\r
++      0x0d7d, 0x6020, 0x00ce, 0x9086, 0x0006, 0x1518, 0x61c8, 0x60c4,\r
++      0x9105, 0x11f8, 0x2009, 0x180c, 0x2104, 0xd0d4, 0x01d0, 0x6214,\r
++      0x9294, 0x1800, 0x1128, 0x6224, 0x9294, 0x0002, 0x1560, 0x0010,\r
++      0xc0d4, 0x200a, 0x6014, 0x9084, 0xe7fd, 0x9085, 0x0010, 0x6016,\r
++      0x704c, 0x2060, 0x080c, 0x963b, 0x2009, 0x0049, 0x080c, 0xac8c,\r
++      0x00d0, 0x0036, 0x2019, 0x0001, 0x080c, 0xa118, 0x003e, 0x714c,\r
++      0x2160, 0x080c, 0xe717, 0x2009, 0x004a, 0x6220, 0x9296, 0x0009,\r
++      0x1130, 0x6114, 0x2148, 0xa87b, 0x0006, 0x2009, 0x004a, 0x6003,\r
++      0x0003, 0x080c, 0xac8c, 0x2001, 0x0387, 0x2003, 0x0200, 0x080c,\r
++      0xa8b2, 0x002e, 0x001e, 0x00ee, 0x00de, 0x00ce, 0x009e, 0x0005,\r
++      0xd1ec, 0x1904, 0x9f12, 0x0804, 0x9f14, 0x0026, 0x00e6, 0x2071,\r
++      0x19e7, 0x706c, 0xd084, 0x01e8, 0xc084, 0x706e, 0x714c, 0x81ff,\r
++      0x01c0, 0x2071, 0x0100, 0x9188, 0x0008, 0x2114, 0x928e, 0x0006,\r
++      0x1138, 0x2009, 0x1984, 0x2011, 0x0012, 0x080c, 0x2a53, 0x0048,\r
++      0x928e, 0x0009, 0x0db0, 0x2009, 0x1984, 0x2011, 0x0016, 0x080c,\r
++      0x2a53, 0x00ee, 0x002e, 0x0005, 0x9036, 0x2001, 0x19f1, 0x2004,\r
++      0x9005, 0x0128, 0x9c06, 0x0128, 0x2c30, 0x600c, 0x0cc8, 0x9085,\r
++      0x0001, 0x0005, 0x00f6, 0x2079, 0x19e7, 0x610c, 0x9006, 0x600e,\r
++      0x6044, 0xc0fc, 0x6046, 0x86ff, 0x1140, 0x7824, 0x9c06, 0x1118,\r
++      0x7826, 0x782a, 0x0050, 0x792a, 0x0040, 0x00c6, 0x2660, 0x610e,\r
++      0x00ce, 0x7824, 0x9c06, 0x1108, 0x7e26, 0x080c, 0xa20e, 0x080c,\r
++      0xca27, 0x00fe, 0x0005, 0x080c, 0x9a9f, 0x7003, 0x1200, 0x7838,\r
++      0x7012, 0x783c, 0x7016, 0x00c6, 0x7820, 0x9086, 0x0004, 0x1148,\r
++      0x7810, 0x9005, 0x0130, 0x00b6, 0x2058, 0xb810, 0xb914, 0x00be,\r
++      0x0020, 0x2061, 0x1800, 0x607c, 0x6180, 0x9084, 0x00ff, 0x700a,\r
++      0x710e, 0x00ce, 0x60c3, 0x002c, 0x0804, 0x9e02, 0x080c, 0x9a9f,\r
++      0x7003, 0x0f00, 0x7808, 0xd09c, 0x0128, 0xb810, 0x9084, 0x00ff,\r
++      0x700a, 0xb814, 0x700e, 0x60c3, 0x0008, 0x0804, 0x9e02, 0x0156,\r
++      0x080c, 0x9aea, 0x7003, 0x0200, 0x080c, 0x87bb, 0x20a9, 0x0006,\r
++      0x2011, 0xfff4, 0x2019, 0xfff5, 0x9ef0, 0x0002, 0x2305, 0x2072,\r
++      0x8e70, 0x2205, 0x2072, 0x8e70, 0x9398, 0x0002, 0x9290, 0x0002,\r
++      0x1f04, 0xa006, 0x60c3, 0x001c, 0x015e, 0x0804, 0x9e02, 0x0016,\r
++      0x0026, 0x080c, 0x9ac6, 0x080c, 0x9ad8, 0x9e80, 0x0004, 0x20e9,\r
++      0x0000, 0x20a0, 0x7814, 0x0096, 0x2048, 0xa800, 0x2048, 0xa860,\r
++      0x20e0, 0xa85c, 0x9080, 0x0021, 0x2098, 0x009e, 0x7808, 0x9088,\r
++      0x0002, 0x21a8, 0x9192, 0x0010, 0x1250, 0x4003, 0x9080, 0x0004,\r
++      0x8003, 0x60c2, 0x080c, 0x9e02, 0x002e, 0x001e, 0x0005, 0x20a9,\r
++      0x0010, 0x4003, 0x080c, 0xa67b, 0x20a1, 0x0240, 0x22a8, 0x4003,\r
++      0x0c68, 0x080c, 0x9a9f, 0x7003, 0x6200, 0x7808, 0x700e, 0x60c3,\r
++      0x0008, 0x0804, 0x9e02, 0x0016, 0x0026, 0x080c, 0x9a9f, 0x20e9,\r
++      0x0000, 0x20a1, 0x024c, 0x7814, 0x0096, 0x2048, 0xa800, 0x2048,\r
++      0xa860, 0x20e0, 0xa85c, 0x9080, 0x0023, 0x2098, 0x009e, 0x7808,\r
++      0x9088, 0x0002, 0x21a8, 0x4003, 0x8003, 0x60c2, 0x080c, 0x9e02,\r
++      0x002e, 0x001e, 0x0005, 0x00e6, 0x00c6, 0x0006, 0x0126, 0x2091,\r
++      0x8000, 0x2071, 0x19e7, 0x7010, 0x2060, 0x8cff, 0x0188, 0x080c,\r
++      0xca4d, 0x1110, 0x080c, 0xb5b5, 0x600c, 0x0006, 0x080c, 0xccc4,\r
++      0x600f, 0x0000, 0x080c, 0xabed, 0x080c, 0xa20e, 0x00ce, 0x0c68,\r
++      0x2c00, 0x7012, 0x700e, 0x012e, 0x000e, 0x00ce, 0x00ee, 0x0005,\r
++      0x0126, 0x0156, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0026,\r
++      0x0016, 0x0006, 0x2091, 0x8000, 0x2001, 0x180c, 0x200c, 0x918c,\r
++      0xe7ff, 0x2102, 0x2069, 0x0100, 0x2079, 0x0140, 0x2071, 0x19e7,\r
++      0x7030, 0x2060, 0x8cff, 0x0548, 0x080c, 0x9e32, 0x6ac0, 0x68c3,\r
++      0x0000, 0x080c, 0x86f6, 0x00c6, 0x2061, 0x0100, 0x080c, 0xa7cc,\r
++      0x00ce, 0x20a9, 0x01f4, 0x04b1, 0x080c, 0x95de, 0x6044, 0xd0ac,\r
++      0x1128, 0x2001, 0x1988, 0x2004, 0x604a, 0x0020, 0x2009, 0x0013,\r
++      0x080c, 0xac8c, 0x000e, 0x001e, 0x002e, 0x006e, 0x00ce, 0x00de,\r
++      0x00ee, 0x00fe, 0x015e, 0x012e, 0x0005, 0x2001, 0x1800, 0x2004,\r
++      0x9096, 0x0001, 0x0d78, 0x9096, 0x0004, 0x0d60, 0x080c, 0x86f6,\r
++      0x6814, 0x9084, 0x0001, 0x0110, 0x68a7, 0x95f5, 0x6817, 0x0008,\r
++      0x68c3, 0x0000, 0x2011, 0x5e8e, 0x080c, 0x863e, 0x20a9, 0x01f4,\r
++      0x0009, 0x08c0, 0x6824, 0xd094, 0x0140, 0x6827, 0x0004, 0x7804,\r
++      0x9084, 0x4000, 0x190c, 0x2a1a, 0x0090, 0xd084, 0x0118, 0x6827,\r
++      0x0001, 0x0010, 0x1f04, 0xa0fa, 0x7804, 0x9084, 0x1000, 0x0138,\r
++      0x2001, 0x0100, 0x080c, 0x2a0a, 0x9006, 0x080c, 0x2a0a, 0x0005,\r
++      0x0126, 0x0156, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0026,\r
++      0x0016, 0x0006, 0x2091, 0x8000, 0x2001, 0x180c, 0x200c, 0x918c,\r
++      0xdbff, 0x2102, 0x2069, 0x0100, 0x2079, 0x0140, 0x2071, 0x0380,\r
++      0x701c, 0x0006, 0x701f, 0x0202, 0x2071, 0x19e7, 0x704c, 0x2060,\r
++      0x8cff, 0x0904, 0xa1bd, 0x9386, 0x0002, 0x1128, 0x6814, 0x9084,\r
++      0x0002, 0x0904, 0xa1bd, 0x68af, 0x95f5, 0x6817, 0x0010, 0x2009,\r
++      0x00fa, 0x8109, 0x1df0, 0x69c6, 0x68cb, 0x0008, 0x080c, 0x8703,\r
++      0x080c, 0x1dd8, 0x0046, 0x2009, 0x00a5, 0x080c, 0x0e55, 0x2021,\r
++      0x0169, 0x2404, 0x9084, 0x000f, 0x9086, 0x0004, 0x11f8, 0x68af,\r
++      0x95f5, 0x68c6, 0x68cb, 0x0008, 0x00e6, 0x00f6, 0x2079, 0x0090,\r
++      0x2071, 0x19e7, 0x6814, 0x9084, 0x1984, 0x9085, 0x0012, 0x6816,\r
++      0x782b, 0x0008, 0x7057, 0x0000, 0x00fe, 0x00ee, 0x9386, 0x0002,\r
++      0x1128, 0x7884, 0x9005, 0x1110, 0x7887, 0x0001, 0x0016, 0x2009,\r
++      0x0040, 0x080c, 0x21b0, 0x001e, 0x2009, 0x0000, 0x080c, 0x0e55,\r
++      0x004e, 0x20a9, 0x03e8, 0x6824, 0xd094, 0x0140, 0x6827, 0x0004,\r
++      0x7804, 0x9084, 0x4000, 0x190c, 0x2a1a, 0x0090, 0xd08c, 0x0118,\r
++      0x6827, 0x0002, 0x0010, 0x1f04, 0xa18b, 0x7804, 0x9084, 0x1000,\r
++      0x0138, 0x2001, 0x0100, 0x080c, 0x2a0a, 0x9006, 0x080c, 0x2a0a,\r
++      0x6827, 0x4000, 0x6824, 0x83ff, 0x1180, 0x2009, 0x0049, 0x6020,\r
++      0x9086, 0x0009, 0x0150, 0x080c, 0x963b, 0x6044, 0xd0ac, 0x1118,\r
++      0x6003, 0x0002, 0x0010, 0x080c, 0xac8c, 0x000e, 0x2071, 0x0380,\r
++      0xd08c, 0x1110, 0x701f, 0x0200, 0x000e, 0x001e, 0x002e, 0x006e,\r
++      0x00ce, 0x00de, 0x00ee, 0x00fe, 0x015e, 0x012e, 0x0005, 0x00d6,\r
++      0x0126, 0x2091, 0x8000, 0x2069, 0x19e7, 0x6a06, 0x012e, 0x00de,\r
++      0x0005, 0x00d6, 0x0126, 0x2091, 0x8000, 0x2069, 0x19e7, 0x6a3e,\r
++      0x012e, 0x00de, 0x0005, 0x080c, 0x9bed, 0x785c, 0x7032, 0x7042,\r
++      0x7047, 0x1000, 0x00f8, 0x080c, 0x9bed, 0x785c, 0x7032, 0x7042,\r
++      0x7047, 0x4000, 0x00b8, 0x080c, 0x9bed, 0x785c, 0x7032, 0x7042,\r
++      0x7047, 0x2000, 0x0078, 0x080c, 0x9bed, 0x785c, 0x7032, 0x7042,\r
++      0x7047, 0x0400, 0x0038, 0x080c, 0x9bed, 0x785c, 0x7032, 0x7042,\r
++      0x7047, 0x0200, 0x60c3, 0x0020, 0x0804, 0x9e02, 0x00e6, 0x2071,\r
++      0x19e7, 0x702c, 0x9005, 0x0110, 0x8001, 0x702e, 0x00ee, 0x0005,\r
++      0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0076, 0x0066, 0x0006, 0x0126,\r
++      0x2091, 0x8000, 0x2071, 0x19e7, 0x7620, 0x2660, 0x2678, 0x2039,\r
++      0x0001, 0x87ff, 0x0904, 0xa2b3, 0x8cff, 0x0904, 0xa2b3, 0x6020,\r
++      0x9086, 0x0006, 0x1904, 0xa2ae, 0x88ff, 0x0138, 0x2800, 0x9c06,\r
++      0x1904, 0xa2ae, 0x2039, 0x0000, 0x0050, 0x6010, 0x9b06, 0x1904,\r
++      0xa2ae, 0x85ff, 0x0120, 0x605c, 0x9106, 0x1904, 0xa2ae, 0x7030,\r
++      0x9c06, 0x15b0, 0x2069, 0x0100, 0x68c0, 0x9005, 0x1160, 0x6824,\r
++      0xd084, 0x0148, 0x6827, 0x0001, 0x080c, 0x86f6, 0x080c, 0xa338,\r
++      0x7033, 0x0000, 0x0428, 0x080c, 0x86f6, 0x6820, 0xd0b4, 0x0110,\r
++      0x68a7, 0x95f5, 0x6817, 0x0008, 0x68c3, 0x0000, 0x080c, 0xa338,\r
++      0x7033, 0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0x9384, 0x1000,\r
++      0x0138, 0x2001, 0x0100, 0x080c, 0x2a0a, 0x9006, 0x080c, 0x2a0a,\r
++      0x2069, 0x0100, 0x6824, 0xd084, 0x0110, 0x6827, 0x0001, 0x003e,\r
++      0x7020, 0x9c36, 0x1110, 0x660c, 0x7622, 0x701c, 0x9c36, 0x1140,\r
++      0x2c00, 0x9f36, 0x0118, 0x2f00, 0x701e, 0x0010, 0x701f, 0x0000,\r
++      0x660c, 0x0066, 0x2c00, 0x9f06, 0x0110, 0x7e0e, 0x0008, 0x2678,\r
++      0x89ff, 0x1168, 0x600f, 0x0000, 0x6014, 0x0096, 0x2048, 0x080c,\r
++      0xc836, 0x0110, 0x080c, 0xe26c, 0x009e, 0x080c, 0xac28, 0x080c,\r
++      0xa20e, 0x88ff, 0x1190, 0x00ce, 0x0804, 0xa229, 0x2c78, 0x600c,\r
++      0x2060, 0x0804, 0xa229, 0x9006, 0x012e, 0x000e, 0x006e, 0x007e,\r
++      0x00ce, 0x00de, 0x00ee, 0x00fe, 0x0005, 0x601b, 0x0000, 0x00ce,\r
++      0x98c5, 0x0001, 0x0c88, 0x00f6, 0x00e6, 0x00d6, 0x0096, 0x00c6,\r
++      0x0066, 0x0026, 0x0006, 0x0126, 0x2091, 0x8000, 0x2071, 0x19e7,\r
++      0x7648, 0x2660, 0x2678, 0x8cff, 0x0904, 0xa327, 0x6020, 0x9086,\r
++      0x0006, 0x1904, 0xa322, 0x87ff, 0x0128, 0x2700, 0x9c06, 0x1904,\r
++      0xa322, 0x0040, 0x6010, 0x9b06, 0x15e8, 0x85ff, 0x0118, 0x605c,\r
++      0x9106, 0x15c0, 0x704c, 0x9c06, 0x1168, 0x0036, 0x2019, 0x0001,\r
++      0x080c, 0xa118, 0x703f, 0x0000, 0x9006, 0x704e, 0x706a, 0x7052,\r
++      0x706e, 0x003e, 0x7048, 0x9c36, 0x1110, 0x660c, 0x764a, 0x7044,\r
++      0x9c36, 0x1140, 0x2c00, 0x9f36, 0x0118, 0x2f00, 0x7046, 0x0010,\r
++      0x7047, 0x0000, 0x660c, 0x0066, 0x2c00, 0x9f06, 0x0110, 0x7e0e,\r
++      0x0008, 0x2678, 0x600f, 0x0000, 0x6014, 0x2048, 0x080c, 0xc836,\r
++      0x0110, 0x080c, 0xe26c, 0x080c, 0xac28, 0x87ff, 0x1198, 0x00ce,\r
++      0x0804, 0xa2d3, 0x2c78, 0x600c, 0x2060, 0x0804, 0xa2d3, 0x9006,\r
++      0x012e, 0x000e, 0x002e, 0x006e, 0x00ce, 0x009e, 0x00de, 0x00ee,\r
++      0x00fe, 0x0005, 0x601b, 0x0000, 0x00ce, 0x97bd, 0x0001, 0x0c80,\r
++      0x00e6, 0x2071, 0x19e7, 0x7033, 0x0000, 0x7004, 0x9086, 0x0003,\r
++      0x0158, 0x2001, 0x1800, 0x2004, 0x9086, 0x0002, 0x1118, 0x7007,\r
++      0x0005, 0x0010, 0x7007, 0x0000, 0x00ee, 0x0005, 0x00f6, 0x00e6,\r
++      0x00c6, 0x0066, 0x0026, 0x0006, 0x0126, 0x2091, 0x8000, 0x2071,\r
++      0x19e7, 0x2c10, 0x7648, 0x2660, 0x2678, 0x8cff, 0x0518, 0x2200,\r
++      0x9c06, 0x11e0, 0x7048, 0x9c36, 0x1110, 0x660c, 0x764a, 0x7044,\r
++      0x9c36, 0x1140, 0x2c00, 0x9f36, 0x0118, 0x2f00, 0x7046, 0x0010,\r
++      0x7047, 0x0000, 0x660c, 0x2c00, 0x9f06, 0x0110, 0x7e0e, 0x0008,\r
++      0x2678, 0x600f, 0x0000, 0x9085, 0x0001, 0x0020, 0x2c78, 0x600c,\r
++      0x2060, 0x08d8, 0x012e, 0x000e, 0x002e, 0x006e, 0x00ce, 0x00ee,\r
++      0x00fe, 0x0005, 0x0096, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0066,\r
++      0x0026, 0x0006, 0x0126, 0x2091, 0x8000, 0x2071, 0x19e7, 0x7610,\r
++      0x2660, 0x2678, 0x8cff, 0x0904, 0xa41a, 0x6010, 0x00b6, 0x2058,\r
++      0xb8a0, 0x00be, 0x9206, 0x1904, 0xa415, 0x7030, 0x9c06, 0x1520,\r
++      0x2069, 0x0100, 0x68c0, 0x9005, 0x0904, 0xa3f1, 0x080c, 0x9e32,\r
++      0x68c3, 0x0000, 0x080c, 0xa338, 0x7033, 0x0000, 0x0036, 0x2069,\r
++      0x0140, 0x6b04, 0x9384, 0x1000, 0x0138, 0x2001, 0x0100, 0x080c,\r
++      0x2a0a, 0x9006, 0x080c, 0x2a0a, 0x2069, 0x0100, 0x6824, 0xd084,\r
++      0x0110, 0x6827, 0x0001, 0x003e, 0x7010, 0x9c36, 0x1110, 0x660c,\r
++      0x7612, 0x700c, 0x9c36, 0x1140, 0x2c00, 0x9f36, 0x0118, 0x2f00,\r
++      0x700e, 0x0010, 0x700f, 0x0000, 0x660c, 0x0066, 0x2c00, 0x9f06,\r
++      0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f, 0x0000, 0x080c, 0xca3c,\r
++      0x1158, 0x080c, 0x321c, 0x080c, 0xca4d, 0x11f0, 0x080c, 0xb5b5,\r
++      0x00d8, 0x080c, 0xa338, 0x08c0, 0x080c, 0xca4d, 0x1118, 0x080c,\r
++      0xb5b5, 0x0090, 0x6014, 0x2048, 0x080c, 0xc836, 0x0168, 0x6020,\r
++      0x9086, 0x0003, 0x1508, 0xa867, 0x0103, 0xab7a, 0xa877, 0x0000,\r
++      0x080c, 0x6d74, 0x080c, 0xca27, 0x080c, 0xccc4, 0x080c, 0xac28,\r
++      0x080c, 0xa20e, 0x00ce, 0x0804, 0xa39a, 0x2c78, 0x600c, 0x2060,\r
++      0x0804, 0xa39a, 0x012e, 0x000e, 0x002e, 0x006e, 0x00ce, 0x00de,\r
++      0x00ee, 0x00fe, 0x009e, 0x0005, 0x6020, 0x9086, 0x0006, 0x1d20,\r
++      0x080c, 0xe26c, 0x0c08, 0x00d6, 0x080c, 0x9aea, 0x7003, 0x0200,\r
++      0x7007, 0x0014, 0x60c3, 0x0014, 0x20e1, 0x0001, 0x2099, 0x1989,\r
++      0x20e9, 0x0000, 0x20a1, 0x0250, 0x20a9, 0x0004, 0x4003, 0x7023,\r
++      0x0004, 0x7027, 0x7878, 0x080c, 0x9e02, 0x00de, 0x0005, 0x080c,\r
++      0x9aea, 0x700b, 0x0800, 0x7814, 0x9084, 0xff00, 0x700e, 0x7814,\r
++      0x9084, 0x00ff, 0x7022, 0x782c, 0x7026, 0x7860, 0x9084, 0x00ff,\r
++      0x9085, 0x0200, 0x7002, 0x7860, 0x9084, 0xff00, 0x8007, 0x7006,\r
++      0x60c2, 0x0804, 0x9e02, 0x00b6, 0x00d6, 0x0016, 0x00d6, 0x2f68,\r
++      0x2009, 0x0035, 0x080c, 0xceca, 0x00de, 0x1904, 0xa4c8, 0x080c,\r
++      0x9a9f, 0x7003, 0x1300, 0x782c, 0x080c, 0xa5d3, 0x2068, 0x6820,\r
++      0x9086, 0x0003, 0x0560, 0x7810, 0x2058, 0xbaa0, 0x080c, 0xab57,\r
++      0x11d8, 0x9286, 0x007e, 0x1128, 0x700b, 0x00ff, 0x700f, 0xfffe,\r
++      0x0498, 0x9286, 0x007f, 0x1128, 0x700b, 0x00ff, 0x700f, 0xfffd,\r
++      0x0458, 0x9284, 0xff80, 0x0180, 0x9286, 0x0080, 0x1128, 0x700b,\r
++      0x00ff, 0x700f, 0xfffc, 0x0400, 0x92d8, 0x1000, 0x2b5c, 0xb810,\r
++      0x700a, 0xb814, 0x700e, 0x00c0, 0xb884, 0x700e, 0x00a8, 0x080c,\r
++      0xab57, 0x1130, 0x7810, 0x2058, 0xb8a0, 0x9082, 0x007e, 0x0250,\r
++      0x00d6, 0x2069, 0x181f, 0x2d04, 0x700a, 0x8d68, 0x2d04, 0x700e,\r
++      0x00de, 0x0010, 0x6034, 0x700e, 0x7838, 0x7012, 0x783c, 0x7016,\r
++      0x60c3, 0x000c, 0x001e, 0x00de, 0x080c, 0x9e02, 0x00be, 0x0005,\r
++      0x781b, 0x0001, 0x7803, 0x0006, 0x001e, 0x00de, 0x00be, 0x0005,\r
++      0x792c, 0x9180, 0x0008, 0x200c, 0x9186, 0x0006, 0x01c0, 0x9186,\r
++      0x0003, 0x0904, 0xa546, 0x9186, 0x0005, 0x0904, 0xa52e, 0x9186,\r
++      0x0004, 0x05f0, 0x9186, 0x0008, 0x0904, 0xa537, 0x7807, 0x0037,\r
++      0x782f, 0x0003, 0x7817, 0x1700, 0x080c, 0xa5b0, 0x0005, 0x080c,\r
++      0xa571, 0x00d6, 0x0026, 0x792c, 0x2168, 0x2009, 0x4000, 0x6800,\r
++      0x6a44, 0xd2fc, 0x11f8, 0x0002, 0xa50f, 0xa51a, 0xa511, 0xa51a,\r
++      0xa516, 0xa50f, 0xa50f, 0xa51a, 0xa51a, 0xa51a, 0xa51a, 0xa50f,\r
++      0xa50f, 0xa50f, 0xa50f, 0xa50f, 0xa51a, 0xa50f, 0xa51a, 0x080c,\r
++      0x0d7d, 0x6824, 0xd0e4, 0x0110, 0xd0cc, 0x0110, 0x900e, 0x0010,\r
++      0x2009, 0x2000, 0x682c, 0x7022, 0x6830, 0x7026, 0x0804, 0xa56a,\r
++      0x080c, 0xa571, 0x00d6, 0x0026, 0x792c, 0x2168, 0x2009, 0x4000,\r
++      0x6a00, 0x9286, 0x0002, 0x1108, 0x900e, 0x04e0, 0x080c, 0xa571,\r
++      0x00d6, 0x0026, 0x792c, 0x2168, 0x2009, 0x4000, 0x0498, 0x04c9,\r
++      0x00d6, 0x0026, 0x792c, 0x2168, 0x2009, 0x4000, 0x9286, 0x0005,\r
++      0x0118, 0x9286, 0x0002, 0x1108, 0x900e, 0x0420, 0x0451, 0x00d6,\r
++      0x0026, 0x792c, 0x2168, 0x6814, 0x0096, 0x2048, 0xa9ac, 0xa834,\r
++      0x9112, 0xa9b0, 0xa838, 0x009e, 0x9103, 0x7022, 0x7226, 0x792c,\r
++      0x9180, 0x0011, 0x2004, 0xd0fc, 0x1148, 0x9180, 0x0000, 0x2004,\r
++      0x908e, 0x0002, 0x0130, 0x908e, 0x0004, 0x0118, 0x2009, 0x4000,\r
++      0x0008, 0x900e, 0x712a, 0x60c3, 0x0018, 0x002e, 0x00de, 0x0804,\r
++      0x9e02, 0x00b6, 0x0036, 0x0046, 0x0056, 0x0066, 0x080c, 0x9aea,\r
++      0x9006, 0x7003, 0x0200, 0x7938, 0x710a, 0x793c, 0x710e, 0x7810,\r
++      0x2058, 0xb8a0, 0x080c, 0xab57, 0x1118, 0x9092, 0x007e, 0x0268,\r
++      0x00d6, 0x2069, 0x181f, 0x2d2c, 0x8d68, 0x2d34, 0x90d8, 0x1000,\r
++      0x2b5c, 0xbb10, 0xbc14, 0x00de, 0x0028, 0x901e, 0xbc84, 0x2029,\r
++      0x0000, 0x6634, 0x782c, 0x9080, 0x0008, 0x2004, 0x9086, 0x0003,\r
++      0x1128, 0x7512, 0x7616, 0x731a, 0x741e, 0x0020, 0x7312, 0x7416,\r
++      0x751a, 0x761e, 0x006e, 0x005e, 0x004e, 0x003e, 0x00be, 0x0005,\r
++      0x080c, 0x9aea, 0x7003, 0x0100, 0x782c, 0x700a, 0x7814, 0x700e,\r
++      0x700e, 0x60c3, 0x0008, 0x0804, 0x9e02, 0x080c, 0x9a96, 0x7003,\r
++      0x1400, 0x7838, 0x700a, 0x0079, 0x783c, 0x700e, 0x782c, 0x7012,\r
++      0x7830, 0x7016, 0x7834, 0x9084, 0x00ff, 0x8007, 0x701a, 0x60c3,\r
++      0x0010, 0x0804, 0x9e02, 0x00e6, 0x2071, 0x0240, 0x0006, 0x00f6,\r
++      0x2078, 0x7810, 0x00b6, 0x2058, 0xb8d4, 0xd084, 0x0120, 0x7850,\r
++      0x702a, 0x784c, 0x702e, 0x00be, 0x00fe, 0x000e, 0x00ee, 0x0005,\r
++      0x080c, 0x9ae1, 0x7003, 0x0100, 0x782c, 0x700a, 0x7814, 0x700e,\r
++      0x60c3, 0x0008, 0x0804, 0x9e02, 0x00a9, 0x7914, 0x712a, 0x60c3,\r
++      0x0000, 0x60a7, 0x9575, 0x0026, 0x080c, 0x2979, 0x0228, 0x2011,\r
++      0x0101, 0x2204, 0xc0c5, 0x2012, 0x002e, 0x080c, 0x9e25, 0x080c,\r
++      0x86ed, 0x0005, 0x0036, 0x0096, 0x00d6, 0x00e6, 0x7860, 0x2048,\r
++      0xaa7c, 0x9296, 0x00c0, 0x9294, 0xfffd, 0xaa7e, 0xaa80, 0x9294,\r
++      0x0300, 0xaa82, 0xa96c, 0x9194, 0x00ff, 0xab74, 0x9384, 0x00ff,\r
++      0x908d, 0xc200, 0xa96e, 0x9384, 0xff00, 0x9215, 0xaa76, 0xa870,\r
++      0xaa78, 0xa87a, 0xaa72, 0x00d6, 0x2069, 0x0200, 0x080c, 0xa690,\r
++      0x00de, 0x20e9, 0x0000, 0x20a1, 0x0240, 0x20a9, 0x000a, 0xa860,\r
++      0x20e0, 0xa85c, 0x9080, 0x001b, 0x2098, 0x4003, 0x60a3, 0x0035,\r
++      0xaa68, 0x9294, 0x7000, 0x9286, 0x3000, 0x0110, 0x60a3, 0x0037,\r
++      0x00ee, 0x00de, 0x009e, 0x003e, 0x0005, 0x900e, 0x7814, 0x0096,\r
++      0x2048, 0xa87c, 0xd0fc, 0x01c0, 0x9084, 0x0003, 0x11a8, 0x2001,\r
++      0x180c, 0x2004, 0xd0bc, 0x0180, 0x7824, 0xd0cc, 0x1168, 0xd0c4,\r
++      0x1158, 0xa8a8, 0x9005, 0x1140, 0x2001, 0x180c, 0x200c, 0xc1d5,\r
++      0x2102, 0x2009, 0x19b2, 0x210c, 0x009e, 0x918d, 0x0092, 0x0010,\r
++      0x2009, 0x0096, 0x60ab, 0x0036, 0x0026, 0x2110, 0x900e, 0x080c,\r
++      0x2a53, 0x002e, 0x0005, 0x2009, 0x0009, 0x00a0, 0x2009, 0x000a,\r
++      0x0088, 0x2009, 0x000b, 0x0070, 0x2009, 0x000c, 0x0058, 0x2009,\r
++      0x000d, 0x0040, 0x2009, 0x000e, 0x0028, 0x2009, 0x000f, 0x0010,\r
++      0x2009, 0x0008, 0x6912, 0x0005, 0x080c, 0x9a9f, 0x0016, 0x0026,\r
++      0x0096, 0x00d6, 0x7814, 0x2048, 0x7013, 0x0138, 0x2001, 0x1837,\r
++      0x2004, 0x9084, 0x0028, 0x1138, 0x2001, 0x197c, 0x2004, 0x9086,\r
++      0xaaaa, 0x1904, 0xa735, 0x7003, 0x5400, 0x00c6, 0x2061, 0x1800,\r
++      0x607c, 0x9084, 0x00ff, 0xa998, 0x810f, 0x918c, 0xff00, 0x9105,\r
++      0x700a, 0x6080, 0x700e, 0xa998, 0x918c, 0xff00, 0x7112, 0x20a9,\r
++      0x0004, 0x2009, 0x1805, 0x2e10, 0x9290, 0x0006, 0x2104, 0x2012,\r
++      0x8108, 0x8210, 0x1f04, 0xa6c6, 0x20a9, 0x0004, 0x2009, 0x1801,\r
++      0x2104, 0x2012, 0x8108, 0x8210, 0x1f04, 0xa6d0, 0xa860, 0x20e0,\r
++      0xa85c, 0x9080, 0x0029, 0x2098, 0x2009, 0x0006, 0x20a9, 0x0001,\r
++      0x4002, 0x8007, 0x2012, 0x8210, 0x8109, 0x1dc0, 0x00d6, 0x2069,\r
++      0x0200, 0x080c, 0xa67b, 0x00de, 0x2071, 0x0240, 0x2011, 0x0240,\r
++      0x2009, 0x0002, 0x20a9, 0x0001, 0x4002, 0x8007, 0x2012, 0x8210,\r
++      0x8109, 0x1dc0, 0x2009, 0x0008, 0x20a9, 0x0001, 0x4002, 0x8007,\r
++      0x2012, 0x8210, 0x8109, 0x1dc0, 0xa85c, 0x9080, 0x0031, 0x2098,\r
++      0x2009, 0x0008, 0x20a9, 0x0001, 0x4002, 0x8007, 0x2012, 0x8210,\r
++      0x8109, 0x1dc0, 0x00ce, 0x60c3, 0x004c, 0x60a3, 0x0056, 0x60a7,\r
++      0x9575, 0x2001, 0x1837, 0x2004, 0x9084, 0x0028, 0x1168, 0x080c,\r
++      0x74e9, 0x0150, 0x6028, 0xc0bd, 0x602a, 0x2009, 0x1804, 0x2011,\r
++      0x0029, 0x080c, 0x2a53, 0x0010, 0x080c, 0x9e02, 0x080c, 0x86ed,\r
++      0x00de, 0x009e, 0x002e, 0x001e, 0x0005, 0x00e6, 0x2071, 0x0240,\r
++      0x2001, 0x2200, 0x9085, 0x00ff, 0x7002, 0x7007, 0xffff, 0x2071,\r
++      0x0100, 0x709b, 0x00ff, 0x00ee, 0x0804, 0xa6ab, 0x080c, 0x9a9f,\r
++      0x0016, 0x0026, 0x0096, 0x00d6, 0x7814, 0x2048, 0x7013, 0x0138,\r
++      0x7003, 0x5500, 0x00c6, 0xa89c, 0x9084, 0x00ff, 0xa998, 0x810f,\r
++      0x918c, 0xff00, 0x9105, 0x700a, 0xa99c, 0x918c, 0xff00, 0xa8a0,\r
++      0x9084, 0x00ff, 0x9105, 0x700e, 0xa998, 0x918c, 0xff00, 0x2061,\r
++      0x1800, 0x607c, 0x9084, 0x00ff, 0x910d, 0x7112, 0x6180, 0x7116,\r
++      0x2009, 0x0008, 0xa860, 0x20e0, 0xa85c, 0x9080, 0x0029, 0x2098,\r
++      0x2e10, 0x9290, 0x0006, 0x20a9, 0x0001, 0x4002, 0x8007, 0x2012,\r
++      0x8210, 0x8109, 0x1dc0, 0x20a9, 0x0004, 0x2009, 0x1805, 0x2104,\r
++      0x2012, 0x8108, 0x8210, 0x1f04, 0xa787, 0x20a9, 0x0002, 0x2009,\r
++      0x1801, 0x2104, 0x2012, 0x8108, 0x8210, 0x1f04, 0xa791, 0x00d6,\r
++      0x0016, 0x2069, 0x0200, 0x080c, 0xa67b, 0x001e, 0x00de, 0x2071,\r
++      0x0240, 0x20a9, 0x0002, 0x2009, 0x1803, 0x2011, 0x0240, 0x2104,\r
++      0x2012, 0x8108, 0x8210, 0x1f04, 0xa7a7, 0x2009, 0x0008, 0x4002,\r
++      0x8007, 0x2012, 0x8210, 0x8109, 0x1dd0, 0x9006, 0x20a9, 0x0008,\r
++      0x2012, 0x8210, 0x1f04, 0xa7b8, 0x00ce, 0x60c3, 0x004c, 0x60a3,\r
++      0x0056, 0x60a7, 0x9575, 0x080c, 0x9e02, 0x080c, 0x86ed, 0x00de,\r
++      0x009e, 0x002e, 0x001e, 0x0005, 0x00d6, 0x9290, 0x0018, 0x8214,\r
++      0x20e9, 0x0000, 0x2069, 0x0200, 0x6813, 0x0000, 0x22a8, 0x9284,\r
++      0x00e0, 0x0128, 0x20a9, 0x0020, 0x9292, 0x0020, 0x0008, 0x9016,\r
++      0x20a1, 0x0240, 0x9006, 0x4004, 0x82ff, 0x0120, 0x6810, 0x8000,\r
++      0x6812, 0x0c60, 0x00de, 0x0005, 0x00f6, 0x00e6, 0x00d6, 0x00c6,\r
++      0x00a6, 0x0096, 0x0066, 0x0126, 0x2091, 0x8000, 0x2071, 0x19e7,\r
++      0x7610, 0x2660, 0x2678, 0x8cff, 0x0904, 0xa873, 0x7030, 0x9c06,\r
++      0x1520, 0x2069, 0x0100, 0x68c0, 0x9005, 0x0904, 0xa84a, 0x080c,\r
++      0x9e32, 0x68c3, 0x0000, 0x080c, 0xa338, 0x7033, 0x0000, 0x0036,\r
++      0x2069, 0x0140, 0x6b04, 0x9384, 0x1000, 0x0138, 0x2001, 0x0100,\r
++      0x080c, 0x2a0a, 0x9006, 0x080c, 0x2a0a, 0x2069, 0x0100, 0x6824,\r
++      0xd084, 0x0110, 0x6827, 0x0001, 0x003e, 0x7010, 0x9c36, 0x1110,\r
++      0x660c, 0x7612, 0x700c, 0x9c36, 0x1140, 0x2c00, 0x9f36, 0x0118,\r
++      0x2f00, 0x700e, 0x0010, 0x700f, 0x0000, 0x660c, 0x0066, 0x2c00,\r
++      0x9f06, 0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f, 0x0000, 0x080c,\r
++      0xca3c, 0x1158, 0x080c, 0x321c, 0x080c, 0xca4d, 0x11f0, 0x080c,\r
++      0xb5b5, 0x00d8, 0x080c, 0xa338, 0x08c0, 0x080c, 0xca4d, 0x1118,\r
++      0x080c, 0xb5b5, 0x0090, 0x6014, 0x2048, 0x080c, 0xc836, 0x0168,\r
++      0x6020, 0x9086, 0x0003, 0x1520, 0xa867, 0x0103, 0xab7a, 0xa877,\r
++      0x0000, 0x080c, 0x6d80, 0x080c, 0xca27, 0x080c, 0xccc4, 0x080c,\r
++      0xac28, 0x080c, 0xa20e, 0x00ce, 0x0804, 0xa7fb, 0x2c78, 0x600c,\r
++      0x2060, 0x0804, 0xa7fb, 0x7013, 0x0000, 0x700f, 0x0000, 0x012e,\r
++      0x006e, 0x009e, 0x00ae, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x0005,\r
++      0x6020, 0x9086, 0x0006, 0x1d08, 0x080c, 0xe26c, 0x08f0, 0x00f6,\r
++      0x0036, 0x2079, 0x0380, 0x7b18, 0xd3bc, 0x1de8, 0x7832, 0x7936,\r
++      0x7a3a, 0x781b, 0x8080, 0x003e, 0x00fe, 0x0005, 0x0016, 0x2001,\r
++      0x0382, 0x2004, 0x9084, 0x0007, 0x9086, 0x0001, 0x1188, 0x2001,\r
++      0x0015, 0x0c29, 0x2009, 0x1000, 0x2001, 0x0382, 0x2004, 0x9084,\r
++      0x0007, 0x9086, 0x0003, 0x0120, 0x8109, 0x1db0, 0x080c, 0x0d7d,\r
++      0x001e, 0x0005, 0x2001, 0x0382, 0x2004, 0x9084, 0x0007, 0x9086,\r
++      0x0003, 0x1120, 0x2001, 0x0380, 0x2003, 0x0001, 0x0005, 0x0156,\r
++      0x0016, 0x0026, 0x00e6, 0x900e, 0x2071, 0x19e7, 0x0469, 0x0106,\r
++      0x0190, 0x7004, 0x9086, 0x0003, 0x0148, 0x20a9, 0x1000, 0x6044,\r
++      0xd0fc, 0x01d8, 0x1f04, 0xa8cf, 0x080c, 0x0d7d, 0x080c, 0xa896,\r
++      0x6044, 0xd0fc, 0x0190, 0x7030, 0x9c06, 0x1148, 0x080c, 0x95de,\r
++      0x6044, 0xd0dc, 0x0150, 0xc0dc, 0x6046, 0x700a, 0x7042, 0x704c,\r
++      0x9c06, 0x190c, 0x0d7d, 0x080c, 0x963b, 0x010e, 0x1919, 0x00ee,\r
++      0x002e, 0x001e, 0x015e, 0x0005, 0x2001, 0x0382, 0x2004, 0x9084,\r
++      0x0007, 0x9086, 0x0003, 0x0005, 0x0126, 0x2091, 0x2400, 0x7808,\r
++      0xd0a4, 0x190c, 0x0d76, 0xd09c, 0x0128, 0x7820, 0x908c, 0xf000,\r
++      0x11b8, 0x0012, 0x012e, 0x0005, 0xa91c, 0xa95a, 0xa981, 0xa9b8,\r
++      0xa9c8, 0xa9d9, 0xa9e8, 0xa9f6, 0xaa23, 0xaa27, 0xa91c, 0xa91c,\r
++      0xa91c, 0xa91c, 0xa91c, 0xa91c, 0x080c, 0x0d7d, 0x012e, 0x0005,\r
++      0x2060, 0x6044, 0xd0bc, 0x0140, 0xc0bc, 0x6046, 0x6000, 0x908a,\r
++      0x0016, 0x1a0c, 0x0d7d, 0x0012, 0x012e, 0x0005, 0xa941, 0xa943,\r
++      0xa941, 0xa949, 0xa941, 0xa941, 0xa941, 0xa941, 0xa941, 0xa943,\r
++      0xa941, 0xa943, 0xa941, 0xa943, 0xa941, 0xa941, 0xa941, 0xa943,\r
++      0xa941, 0x080c, 0x0d7d, 0x2009, 0x0013, 0x080c, 0xac8c, 0x012e,\r
++      0x0005, 0x6014, 0x2048, 0xa87c, 0xd0dc, 0x0130, 0x080c, 0x88c1,\r
++      0x080c, 0xabed, 0x012e, 0x0005, 0x2009, 0x0049, 0x080c, 0xac8c,\r
++      0x012e, 0x0005, 0x080c, 0xa896, 0x2001, 0x1a0c, 0x2003, 0x0000,\r
++      0x7030, 0x9065, 0x090c, 0x0d7d, 0x7034, 0x9092, 0x00c8, 0x1258,\r
++      0x8000, 0x7036, 0x7004, 0x9086, 0x0003, 0x0110, 0x7007, 0x0000,\r
++      0x781f, 0x0808, 0x0040, 0x080c, 0xe717, 0x6003, 0x0001, 0x2009,\r
++      0x0014, 0x080c, 0xac8c, 0x781f, 0x0100, 0x080c, 0xa8b2, 0x012e,\r
++      0x0005, 0x080c, 0xa896, 0x714c, 0x81ff, 0x1128, 0x2011, 0x1a0f,\r
++      0x2013, 0x0000, 0x0438, 0x2061, 0x0100, 0x7150, 0x9192, 0x7530,\r
++      0x12f0, 0x8108, 0x7152, 0x714c, 0x9188, 0x0008, 0x210c, 0x918e,\r
++      0x0006, 0x1138, 0x6014, 0x9084, 0x1984, 0x9085, 0x0012, 0x6016,\r
++      0x0088, 0x714c, 0x9188, 0x0008, 0x210c, 0x918e, 0x0009, 0x0d90,\r
++      0x6014, 0x9084, 0x1984, 0x9085, 0x0016, 0x6016, 0x0018, 0x706c,\r
++      0xc085, 0x706e, 0x781f, 0x0200, 0x080c, 0xa8b2, 0x012e, 0x0005,\r
++      0x080c, 0xa896, 0x714c, 0x2160, 0x6003, 0x0003, 0x2009, 0x004a,\r
++      0x080c, 0xac8c, 0x781f, 0x0200, 0x080c, 0xa8b2, 0x012e, 0x0005,\r
++      0x7808, 0xd09c, 0x0de8, 0x7820, 0x2060, 0x6003, 0x0003, 0x080c,\r
++      0xa896, 0x080c, 0x1d60, 0x781f, 0x0400, 0x080c, 0xa8b2, 0x012e,\r
++      0x0005, 0x7808, 0xd09c, 0x0de8, 0x7820, 0x2060, 0x080c, 0xa896,\r
++      0x080c, 0x1da8, 0x781f, 0x0400, 0x080c, 0xa8b2, 0x012e, 0x0005,\r
++      0x7030, 0x9065, 0x0148, 0x6044, 0xc0bc, 0x6046, 0x7104, 0x9186,\r
++      0x0003, 0x0110, 0x080c, 0x96a1, 0x012e, 0x0005, 0x00f6, 0x703c,\r
++      0x9086, 0x0002, 0x0528, 0x704c, 0x907d, 0x0510, 0x7844, 0xc0bc,\r
++      0x7846, 0x7820, 0x9086, 0x0009, 0x0118, 0x080c, 0x9d5c, 0x00c0,\r
++      0x7828, 0xd0fc, 0x1118, 0x080c, 0x9cdb, 0x0090, 0x2001, 0x1837,\r
++      0x2004, 0x9084, 0x0028, 0x1130, 0x2001, 0x197c, 0x2004, 0x9086,\r
++      0xaaaa, 0x1120, 0x2001, 0x0387, 0x2003, 0x1000, 0x080c, 0x9c60,\r
++      0x00fe, 0x012e, 0x0005, 0x080c, 0x758a, 0x012e, 0x0005, 0x080c,\r
++      0x0d7d, 0x0005, 0x00e6, 0x2071, 0x19e7, 0x6044, 0xc0bc, 0x6046,\r
++      0xd0fc, 0x01b8, 0x704c, 0x9c06, 0x1190, 0x2019, 0x0001, 0x080c,\r
++      0xa118, 0x704f, 0x0000, 0x2001, 0x0109, 0x2004, 0xd08c, 0x1138,\r
++      0x2001, 0x0108, 0x2004, 0xd0bc, 0x1110, 0x703f, 0x0000, 0x080c,\r
++      0xa34e, 0x00ee, 0x0005, 0x0026, 0x7010, 0x9c06, 0x1178, 0x080c,\r
++      0xa20e, 0x6044, 0xc0fc, 0x6046, 0x600c, 0x9015, 0x0120, 0x7212,\r
++      0x600f, 0x0000, 0x0010, 0x7212, 0x720e, 0x9006, 0x002e, 0x0005,\r
++      0x0026, 0x7020, 0x9c06, 0x1178, 0x080c, 0xa20e, 0x6044, 0xc0fc,\r
++      0x6046, 0x600c, 0x9015, 0x0120, 0x7222, 0x600f, 0x0000, 0x0010,\r
++      0x7222, 0x721e, 0x9006, 0x002e, 0x0005, 0x00d6, 0x0036, 0x7830,\r
++      0x9c06, 0x1558, 0x2069, 0x0100, 0x68c0, 0x9005, 0x01f8, 0x080c,\r
++      0x86f6, 0x080c, 0x9e32, 0x68c3, 0x0000, 0x080c, 0xa338, 0x2069,\r
++      0x0140, 0x6b04, 0x9384, 0x1000, 0x0138, 0x2001, 0x0100, 0x080c,\r
++      0x2a0a, 0x9006, 0x080c, 0x2a0a, 0x2069, 0x0100, 0x6824, 0xd084,\r
++      0x0110, 0x6827, 0x0001, 0x9085, 0x0001, 0x0038, 0x7808, 0xc0ad,\r
++      0x780a, 0x6003, 0x0009, 0x630a, 0x9006, 0x003e, 0x00de, 0x0005,\r
++      0x0016, 0x0026, 0x0036, 0x6100, 0x2019, 0x0100, 0x2001, 0x0382,\r
++      0x2004, 0xd09c, 0x0190, 0x00c6, 0x0126, 0x2091, 0x2800, 0x0016,\r
++      0x0036, 0x080c, 0xa8fc, 0x003e, 0x001e, 0x012e, 0x00ce, 0x6200,\r
++      0x2200, 0x9106, 0x0d58, 0x2200, 0x0010, 0x8319, 0x1d38, 0x003e,\r
++      0x002e, 0x001e, 0x0005, 0x00d6, 0x0156, 0x080c, 0x9aea, 0x7a14,\r
++      0x82ff, 0x0138, 0x7003, 0x0100, 0x700b, 0x0003, 0x60c3, 0x0008,\r
++      0x0490, 0x7003, 0x0200, 0x7007, 0x0000, 0x2069, 0x1800, 0x901e,\r
++      0x6800, 0x9086, 0x0004, 0x1110, 0xc38d, 0x0060, 0x080c, 0x74e9,\r
++      0x1110, 0xc3ad, 0x0008, 0xc3a5, 0x6adc, 0xd29c, 0x1110, 0xd2ac,\r
++      0x0108, 0xc39d, 0x730e, 0x080c, 0x87bb, 0x20a9, 0x0006, 0x2011,\r
++      0xfff4, 0x2019, 0xfff5, 0x2071, 0x0250, 0x2305, 0x2072, 0x8e70,\r
++      0x2205, 0x2072, 0x8e70, 0x9398, 0x0002, 0x9290, 0x0002, 0x1f04,\r
++      0xaafd, 0x60c3, 0x0020, 0x080c, 0x9e02, 0x015e, 0x00de, 0x0005,\r
++      0x0156, 0x080c, 0x9aea, 0x7a14, 0x82ff, 0x0168, 0x9286, 0xffff,\r
++      0x0118, 0x9282, 0x000e, 0x1238, 0x7003, 0x0100, 0x700b, 0x0003,\r
++      0x60c3, 0x0008, 0x0488, 0x7003, 0x0200, 0x7007, 0x001c, 0x700f,\r
++      0x0001, 0x2011, 0x19bd, 0x2204, 0x8007, 0x701a, 0x8210, 0x2204,\r
++      0x8007, 0x701e, 0x0421, 0x1120, 0xb8a0, 0x9082, 0x007f, 0x0248,\r
++      0x2001, 0x181f, 0x2004, 0x7022, 0x2001, 0x1820, 0x2004, 0x7026,\r
++      0x0030, 0x2001, 0x1818, 0x2004, 0x9084, 0x00ff, 0x7026, 0x20a9,\r
++      0x0004, 0x20e1, 0x0001, 0x2099, 0x1805, 0x20e9, 0x0000, 0x20a1,\r
++      0x0256, 0x4003, 0x60c3, 0x001c, 0x015e, 0x0804, 0x9e02, 0x0006,\r
++      0x2001, 0x1837, 0x2004, 0xd0ac, 0x000e, 0x0005, 0x2011, 0x0003,\r
++      0x080c, 0xa1cf, 0x2011, 0x0002, 0x080c, 0xa1d9, 0x080c, 0xa098,\r
++      0x0036, 0x901e, 0x080c, 0xa118, 0x003e, 0x0005, 0x080c, 0x336d,\r
++      0x0188, 0x0016, 0x00b6, 0x00c6, 0x7010, 0x9085, 0x0020, 0x7012,\r
++      0x2009, 0x007e, 0x080c, 0x6625, 0xb85c, 0xc0ac, 0xb85e, 0x00ce,\r
++      0x00be, 0x001e, 0x0005, 0x2071, 0x188d, 0x7000, 0x9005, 0x0140,\r
++      0x2001, 0x0812, 0x2071, 0x1800, 0x7076, 0x707a, 0x706b, 0xffd4,\r
++      0x2071, 0x1800, 0x7074, 0x7056, 0x705b, 0x1ddc, 0x0005, 0x00e6,\r
++      0x0126, 0x2071, 0x1800, 0x2091, 0x8000, 0x7554, 0x9582, 0x0010,\r
++      0x0608, 0x7058, 0x2060, 0x6000, 0x9086, 0x0000, 0x0148, 0x9ce0,\r
++      0x001c, 0x7068, 0x9c02, 0x1208, 0x0cb0, 0x2061, 0x1ddc, 0x0c98,\r
++      0x6003, 0x0008, 0x8529, 0x7556, 0x9ca8, 0x001c, 0x7068, 0x9502,\r
++      0x1230, 0x755a, 0x9085, 0x0001, 0x012e, 0x00ee, 0x0005, 0x705b,\r
++      0x1ddc, 0x0cc0, 0x9006, 0x0cc0, 0x00e6, 0x2071, 0x1800, 0x7554,\r
++      0x9582, 0x0010, 0x0600, 0x7058, 0x2060, 0x6000, 0x9086, 0x0000,\r
++      0x0148, 0x9ce0, 0x001c, 0x7068, 0x9c02, 0x1208, 0x0cb0, 0x2061,\r
++      0x1ddc, 0x0c98, 0x6003, 0x0008, 0x8529, 0x7556, 0x9ca8, 0x001c,\r
++      0x7068, 0x9502, 0x1228, 0x755a, 0x9085, 0x0001, 0x00ee, 0x0005,\r
++      0x705b, 0x1ddc, 0x0cc8, 0x9006, 0x0cc8, 0x9c82, 0x1ddc, 0x0a0c,\r
++      0x0d7d, 0x2001, 0x181a, 0x2004, 0x9c02, 0x1a0c, 0x0d7d, 0x9006,\r
++      0x6006, 0x600a, 0x600e, 0x6016, 0x601a, 0x6012, 0x6023, 0x0000,\r
++      0x6003, 0x0000, 0x601e, 0x605e, 0x6062, 0x6026, 0x602a, 0x602e,\r
++      0x6032, 0x6036, 0x603a, 0x603e, 0x604a, 0x602a, 0x6046, 0x6042,\r
++      0x2061, 0x1800, 0x6054, 0x8000, 0x6056, 0x0005, 0x9006, 0x600e,\r
++      0x6016, 0x601a, 0x6012, 0x6022, 0x6002, 0x601e, 0x605e, 0x6062,\r
++      0x604a, 0x6046, 0x2061, 0x1800, 0x6054, 0x8000, 0x6056, 0x0005,\r
++      0x0006, 0x6000, 0x9086, 0x0000, 0x01d0, 0x601c, 0xd084, 0x190c,\r
++      0x1a6a, 0x6023, 0x0007, 0x2001, 0x1986, 0x2004, 0x0006, 0x9082,\r
++      0x0051, 0x000e, 0x0208, 0x8004, 0x601a, 0x080c, 0xe524, 0x604b,\r
++      0x0000, 0x6044, 0xd0fc, 0x1129, 0x9006, 0x6046, 0x6016, 0x000e,\r
++      0x0005, 0x080c, 0xa8f4, 0x0106, 0x190c, 0xa896, 0x2001, 0x19fa,\r
++      0x2004, 0x9c06, 0x1130, 0x0036, 0x2019, 0x0001, 0x080c, 0xa118,\r
++      0x003e, 0x080c, 0xa34e, 0x010e, 0x190c, 0xa8b2, 0x0005, 0x00e6,\r
++      0x0126, 0x2071, 0x1800, 0x2091, 0x8000, 0x7554, 0x9582, 0x0001,\r
++      0x0608, 0x7058, 0x2060, 0x6000, 0x9086, 0x0000, 0x0148, 0x9ce0,\r
++      0x001c, 0x7068, 0x9c02, 0x1208, 0x0cb0, 0x2061, 0x1ddc, 0x0c98,\r
++      0x6003, 0x0008, 0x8529, 0x7556, 0x9ca8, 0x001c, 0x7068, 0x9502,\r
++      0x1230, 0x755a, 0x9085, 0x0001, 0x012e, 0x00ee, 0x0005, 0x705b,\r
++      0x1ddc, 0x0cc0, 0x9006, 0x0cc0, 0x6020, 0x9084, 0x000f, 0x0002,\r
++      0xaca0, 0xacaa, 0xacc5, 0xace0, 0xcf9c, 0xcfb9, 0xcfd4, 0xaca0,\r
++      0xacaa, 0x8f9a, 0xacfc, 0xaca0, 0xaca0, 0xaca0, 0xaca0, 0xaca0,\r
++      0x9186, 0x0013, 0x1130, 0x6044, 0xd0fc, 0x0110, 0x080c, 0x95de,\r
++      0x0005, 0x0005, 0x0066, 0x6000, 0x90b2, 0x0016, 0x1a0c, 0x0d7d,\r
++      0x0013, 0x006e, 0x0005, 0xacc3, 0xb421, 0xb5fc, 0xacc3, 0xb692,\r
++      0xafc5, 0xacc3, 0xacc3, 0xb3a3, 0xbbfa, 0xacc3, 0xacc3, 0xacc3,\r
++      0xacc3, 0xacc3, 0xacc3, 0x080c, 0x0d7d, 0x0066, 0x6000, 0x90b2,\r
++      0x0016, 0x1a0c, 0x0d7d, 0x0013, 0x006e, 0x0005, 0xacde, 0xc205,\r
++      0xacde, 0xacde, 0xacde, 0xacde, 0xacde, 0xacde, 0xc1aa, 0xc388,\r
++      0xacde, 0xc242, 0xc2c6, 0xc242, 0xc2c6, 0xacde, 0x080c, 0x0d7d,\r
++      0x6000, 0x9082, 0x0016, 0x1a0c, 0x0d7d, 0x6000, 0x0002, 0xacfa,\r
++      0xbc44, 0xbcdb, 0xbe5b, 0xbeca, 0xacfa, 0xacfa, 0xacfa, 0xbc13,\r
++      0xc12b, 0xc12e, 0xacfa, 0xacfa, 0xacfa, 0xacfa, 0xc15e, 0xacfa,\r
++      0xacfa, 0xacfa, 0x080c, 0x0d7d, 0x0066, 0x6000, 0x90b2, 0x0016,\r
++      0x1a0c, 0x0d7d, 0x0013, 0x006e, 0x0005, 0xad15, 0xad15, 0xad53,\r
++      0xadf2, 0xae72, 0xad15, 0xad15, 0xad15, 0xad17, 0xad15, 0xad15,\r
++      0xad15, 0xad15, 0xad15, 0xad15, 0xad15, 0x080c, 0x0d7d, 0x9186,\r
++      0x004c, 0x0560, 0x9186, 0x0003, 0x190c, 0x0d7d, 0x0096, 0x601c,\r
++      0xc0ed, 0x601e, 0x6003, 0x0003, 0x6106, 0x6014, 0x2048, 0xa87c,\r
++      0x9084, 0xa000, 0xc0b5, 0xa87e, 0xa8ac, 0xa836, 0xa8b0, 0xa83a,\r
++      0x9006, 0xa846, 0xa84a, 0xa884, 0x9092, 0x199a, 0x0210, 0x2001,\r
++      0x1999, 0x8003, 0x8013, 0x8213, 0x9210, 0x621a, 0x009e, 0x080c,\r
++      0x1bba, 0x2009, 0x8030, 0x080c, 0x9265, 0x0005, 0x6010, 0x00b6,\r
++      0x2058, 0xbca0, 0x00be, 0x2c00, 0x080c, 0xae94, 0x080c, 0xcf6a,\r
++      0x6003, 0x0007, 0x0005, 0x00d6, 0x0096, 0x00f6, 0x2079, 0x1800,\r
++      0x7a90, 0x6014, 0x2048, 0xa87c, 0xd0ec, 0x1110, 0x9290, 0x0018,\r
++      0xac78, 0xc4fc, 0x0046, 0xa8e0, 0x9005, 0x1140, 0xa8dc, 0x921a,\r
++      0x0140, 0x0220, 0xa87b, 0x0007, 0x2010, 0x0028, 0xa87b, 0x0015,\r
++      0x0010, 0xa87b, 0x0000, 0x8214, 0xa883, 0x0000, 0xaa02, 0x0006,\r
++      0x0016, 0x0026, 0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x2400, 0x9005,\r
++      0x1108, 0x009a, 0x2100, 0x9086, 0x0015, 0x1118, 0x2001, 0x0001,\r
++      0x0038, 0x2100, 0x9086, 0x0016, 0x0118, 0x2001, 0x0001, 0x002a,\r
++      0x94a4, 0x0007, 0x8423, 0x9405, 0x0002, 0xadba, 0xadba, 0xadb5,\r
++      0xadb8, 0xadba, 0xadb2, 0xada5, 0xada5, 0xada5, 0xada5, 0xada5,\r
++      0xada5, 0xada5, 0xada5, 0xada5, 0xada5, 0x00fe, 0x00ee, 0x00de,\r
++      0x00ce, 0x002e, 0x001e, 0x000e, 0x004e, 0x00fe, 0x009e, 0x00de,\r
++      0x080c, 0x0d7d, 0x080c, 0xb84f, 0x0028, 0x080c, 0xb934, 0x0010,\r
++      0x080c, 0xba2a, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x002e, 0x001e,\r
++      0x2c00, 0xa896, 0x000e, 0x080c, 0xaf52, 0x0530, 0xa804, 0xa80e,\r
++      0x00a6, 0x2050, 0xb100, 0x00ae, 0x8006, 0x8006, 0x8007, 0x90bc,\r
++      0x003f, 0x9084, 0xffc0, 0x9080, 0x0002, 0xaacc, 0xabd0, 0xacd4,\r
++      0xadd8, 0x2031, 0x0000, 0x2041, 0x1298, 0x080c, 0xb112, 0x0160,\r
++      0x000e, 0x9005, 0x0120, 0x00fe, 0x009e, 0x00de, 0x0005, 0x00fe,\r
++      0x009e, 0x00de, 0x0804, 0xabed, 0x2001, 0x002c, 0x900e, 0x080c,\r
++      0xafb8, 0x0c70, 0x91b6, 0x0015, 0x0170, 0x91b6, 0x0016, 0x0158,\r
++      0x91b2, 0x0047, 0x0a0c, 0x0d7d, 0x91b2, 0x0050, 0x1a0c, 0x0d7d,\r
++      0x9182, 0x0047, 0x0042, 0x080c, 0xaaa8, 0x0120, 0x9086, 0x0002,\r
++      0x0904, 0xad53, 0x0005, 0xae14, 0xae14, 0xae16, 0xae48, 0xae14,\r
++      0xae14, 0xae14, 0xae14, 0xae5b, 0x080c, 0x0d7d, 0x00d6, 0x0016,\r
++      0x0096, 0x6003, 0x0004, 0x6114, 0x2148, 0xa87c, 0xd0fc, 0x01c0,\r
++      0xa878, 0xc0fc, 0x9005, 0x1158, 0xa894, 0x9005, 0x0140, 0x2001,\r
++      0x0000, 0x900e, 0x080c, 0xafb8, 0x080c, 0xabed, 0x00a8, 0x6003,\r
++      0x0002, 0xa8a4, 0xa9a8, 0x9105, 0x1178, 0xa8ae, 0xa8b2, 0x0c78,\r
++      0xa87f, 0x0020, 0xa88c, 0xa88a, 0xa8a4, 0xa8ae, 0xa8a8, 0xa8b2,\r
++      0xa8c7, 0x0000, 0xa8cb, 0x0000, 0x009e, 0x001e, 0x00de, 0x0005,\r
++      0x080c, 0x963b, 0x00d6, 0x0096, 0x6114, 0x2148, 0x080c, 0xc838,\r
++      0x0120, 0xa87b, 0x0006, 0x080c, 0x6d80, 0x009e, 0x00de, 0x080c,\r
++      0xabed, 0x0804, 0x96a0, 0x080c, 0x963b, 0x080c, 0x31e7, 0x080c,\r
++      0xcf67, 0x00d6, 0x0096, 0x6114, 0x2148, 0x080c, 0xc838, 0x0120,\r
++      0xa87b, 0x0029, 0x080c, 0x6d80, 0x009e, 0x00de, 0x080c, 0xabed,\r
++      0x0804, 0x96a0, 0x9182, 0x0047, 0x0002, 0xae82, 0xae84, 0xae82,\r
++      0xae82, 0xae82, 0xae82, 0xae82, 0xae82, 0xae82, 0xae82, 0xae82,\r
++      0xae82, 0xae84, 0x080c, 0x0d7d, 0x00d6, 0x0096, 0x601f, 0x0000,\r
++      0x6114, 0x2148, 0xa87b, 0x0000, 0xa883, 0x0000, 0x080c, 0x6d80,\r
++      0x009e, 0x00de, 0x0804, 0xabed, 0x0026, 0x0036, 0x0056, 0x0066,\r
++      0x0096, 0x00a6, 0x00f6, 0x0006, 0x080c, 0x103a, 0x000e, 0x090c,\r
++      0x0d7d, 0xa960, 0x21e8, 0xa95c, 0x9188, 0x0019, 0x21a0, 0x900e,\r
++      0x20a9, 0x0020, 0x4104, 0xa87a, 0x2079, 0x1800, 0x7990, 0x9188,\r
++      0x0018, 0x918c, 0x0fff, 0xa972, 0xac76, 0x2950, 0x00a6, 0x2001,\r
++      0x0205, 0x2003, 0x0000, 0x901e, 0x2029, 0x0001, 0x9182, 0x0034,\r
++      0x1228, 0x2011, 0x001f, 0x080c, 0xc40b, 0x04c0, 0x2130, 0x2009,\r
++      0x0034, 0x2011, 0x001f, 0x080c, 0xc40b, 0x96b2, 0x0034, 0xb004,\r
++      0x904d, 0x0110, 0x080c, 0x0fec, 0x080c, 0x103a, 0x01d0, 0x8528,\r
++      0xa867, 0x0110, 0xa86b, 0x0000, 0x2920, 0xb406, 0x968a, 0x003d,\r
++      0x1230, 0x2608, 0x2011, 0x001b, 0x080c, 0xc40b, 0x00b8, 0x96b2,\r
++      0x003c, 0x2009, 0x003c, 0x2950, 0x2011, 0x001b, 0x080c, 0xc40b,\r
++      0x0c18, 0x2001, 0x0205, 0x2003, 0x0000, 0x00ae, 0x852f, 0x95ad,\r
++      0x0050, 0xb566, 0xb070, 0xc0fd, 0xb072, 0x0048, 0x2001, 0x0205,\r
++      0x2003, 0x0000, 0x00ae, 0x852f, 0x95ad, 0x0050, 0xb566, 0x2a48,\r
++      0xa804, 0xa807, 0x0000, 0x0006, 0x080c, 0x6d80, 0x000e, 0x2048,\r
++      0x9005, 0x1db0, 0x00fe, 0x00ae, 0x009e, 0x006e, 0x005e, 0x003e,\r
++      0x002e, 0x0005, 0x00d6, 0x00f6, 0x0096, 0x0006, 0x080c, 0x103a,\r
++      0x000e, 0x090c, 0x0d7d, 0xa960, 0x21e8, 0xa95c, 0x9188, 0x0019,\r
++      0x21a0, 0x900e, 0x20a9, 0x0020, 0x4104, 0xaa66, 0xa87a, 0x2079,\r
++      0x1800, 0x7990, 0x810c, 0x9188, 0x000c, 0x9182, 0x001a, 0x0210,\r
++      0x2009, 0x001a, 0x21a8, 0x810b, 0xa972, 0xac76, 0x2e98, 0xa85c,\r
++      0x9080, 0x001f, 0x20a0, 0x2001, 0x0205, 0x200c, 0x918d, 0x0080,\r
++      0x2102, 0x4003, 0x2003, 0x0000, 0x080c, 0x6d80, 0x009e, 0x00fe,\r
++      0x00de, 0x0005, 0x0016, 0x00d6, 0x00f6, 0x0096, 0x0016, 0x2001,\r
++      0x0205, 0x200c, 0x918d, 0x0080, 0x2102, 0x001e, 0x2079, 0x0200,\r
++      0x2e98, 0xa87c, 0xd0ec, 0x0118, 0x9e80, 0x000c, 0x2098, 0x2021,\r
++      0x003e, 0x901e, 0x9282, 0x0020, 0x0218, 0x2011, 0x0020, 0x2018,\r
++      0x9486, 0x003e, 0x1170, 0x0096, 0x080c, 0x103a, 0x2900, 0x009e,\r
++      0x05c0, 0xa806, 0x2048, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0002,\r
++      0x20a0, 0x3300, 0x908e, 0x0260, 0x0140, 0x2009, 0x0280, 0x9102,\r
++      0x920a, 0x0218, 0x2010, 0x2100, 0x9318, 0x2200, 0x9402, 0x1228,\r
++      0x2400, 0x9202, 0x2410, 0x9318, 0x9006, 0x2020, 0x22a8, 0xa800,\r
++      0x9200, 0xa802, 0x20e1, 0x0000, 0x4003, 0x83ff, 0x0180, 0x3300,\r
++      0x9086, 0x0280, 0x1130, 0x7814, 0x8000, 0x9085, 0x0080, 0x7816,\r
++      0x2e98, 0x2310, 0x84ff, 0x0904, 0xaf67, 0x0804, 0xaf69, 0x9085,\r
++      0x0001, 0x7817, 0x0000, 0x009e, 0x00fe, 0x00de, 0x001e, 0x0005,\r
++      0x00d6, 0x0036, 0x0096, 0x6314, 0x2348, 0xa87a, 0xa982, 0x080c,\r
++      0x6d74, 0x009e, 0x003e, 0x00de, 0x0005, 0x91b6, 0x0015, 0x1118,\r
++      0x080c, 0xabed, 0x0030, 0x91b6, 0x0016, 0x190c, 0x0d7d, 0x080c,\r
++      0xabed, 0x0005, 0x20a9, 0x000e, 0x20e1, 0x0000, 0x2e98, 0x6014,\r
++      0x0096, 0x2048, 0xa860, 0x20e8, 0xa85c, 0x20a0, 0x009e, 0x4003,\r
++      0x0136, 0x9080, 0x001b, 0x2011, 0x0006, 0x20a9, 0x0001, 0x3418,\r
++      0x8318, 0x23a0, 0x4003, 0x3318, 0x8318, 0x2398, 0x8211, 0x1db8,\r
++      0x2011, 0x0006, 0x013e, 0x20a0, 0x3318, 0x8318, 0x2398, 0x4003,\r
++      0x3418, 0x8318, 0x23a0, 0x8211, 0x1db8, 0x0096, 0x080c, 0xc838,\r
++      0x0130, 0x6014, 0x2048, 0xa807, 0x0000, 0xa867, 0x0103, 0x009e,\r
++      0x0804, 0xabed, 0x0096, 0x00d6, 0x0036, 0x7330, 0x9386, 0x0200,\r
++      0x11a8, 0x6010, 0x00b6, 0x2058, 0xb8d7, 0x0000, 0x00be, 0x6014,\r
++      0x9005, 0x0130, 0x2048, 0xa807, 0x0000, 0xa867, 0x0103, 0xab32,\r
++      0x080c, 0xabed, 0x003e, 0x00de, 0x009e, 0x0005, 0x0011, 0x1d48,\r
++      0x0cc8, 0x0006, 0x0016, 0x080c, 0xcf52, 0x0188, 0x6014, 0x9005,\r
++      0x1170, 0x600b, 0x0003, 0x601b, 0x0000, 0x604b, 0x0000, 0x2009,\r
++      0x0022, 0x080c, 0xb3f9, 0x9006, 0x001e, 0x000e, 0x0005, 0x9085,\r
++      0x0001, 0x0cd0, 0x0096, 0x0016, 0x20a9, 0x0014, 0x9e80, 0x000c,\r
++      0x20e1, 0x0000, 0x2098, 0x6014, 0x2048, 0xa860, 0x20e8, 0xa85c,\r
++      0x9080, 0x0002, 0x20a0, 0x4003, 0x2001, 0x0205, 0x2003, 0x0001,\r
++      0x2099, 0x0260, 0x20a9, 0x0016, 0x4003, 0x20a9, 0x000a, 0xa804,\r
++      0x2048, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0002, 0x20a0, 0x4003,\r
++      0x2001, 0x0205, 0x2003, 0x0002, 0x2099, 0x0260, 0x20a9, 0x0020,\r
++      0x4003, 0x2003, 0x0000, 0x6014, 0x2048, 0xa800, 0x2048, 0xa867,\r
++      0x0103, 0x080c, 0xabed, 0x001e, 0x009e, 0x0005, 0x0096, 0x0016,\r
++      0x900e, 0x7030, 0x9086, 0x0100, 0x0140, 0x7038, 0x9084, 0x00ff,\r
++      0x800c, 0x703c, 0x9084, 0x00ff, 0x8004, 0x9080, 0x0004, 0x9108,\r
++      0x810b, 0x2011, 0x0002, 0x2019, 0x000c, 0x6014, 0x2048, 0x080c,\r
++      0xc40b, 0x080c, 0xc838, 0x0140, 0x6014, 0x2048, 0xa807, 0x0000,\r
++      0xa864, 0xa8e2, 0xa867, 0x0103, 0x080c, 0xabed, 0x001e, 0x009e,\r
++      0x0005, 0x0016, 0x2009, 0x0000, 0x7030, 0x9086, 0x0200, 0x0110,\r
++      0x2009, 0x0001, 0x0096, 0x6014, 0x904d, 0x090c, 0x0d7d, 0xa97a,\r
++      0x080c, 0x6d80, 0x009e, 0x080c, 0xabed, 0x001e, 0x0005, 0x0016,\r
++      0x0096, 0x7030, 0x9086, 0x0100, 0x1118, 0x2009, 0x0004, 0x0010,\r
++      0x7034, 0x800c, 0x810b, 0x2011, 0x000c, 0x2019, 0x000c, 0x6014,\r
++      0x2048, 0xa804, 0x0096, 0x9005, 0x0108, 0x2048, 0x080c, 0xc40b,\r
++      0x009e, 0x080c, 0xc838, 0x0148, 0xa804, 0x9005, 0x1158, 0xa807,\r
++      0x0000, 0xa864, 0xa8e2, 0xa867, 0x0103, 0x080c, 0xabed, 0x009e,\r
++      0x001e, 0x0005, 0x0086, 0x2040, 0xa030, 0x8007, 0x9086, 0x0100,\r
++      0x1118, 0x080c, 0xb5b5, 0x00e0, 0xa034, 0x8007, 0x800c, 0x8806,\r
++      0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x000c,\r
++      0xa87b, 0x0000, 0xa883, 0x0000, 0xa897, 0x4000, 0xaaa0, 0xab9c,\r
++      0xaca8, 0xada4, 0x2031, 0x0000, 0x2041, 0x127e, 0x0019, 0x0d08,\r
++      0x008e, 0x0898, 0x0096, 0x0006, 0x080c, 0x103a, 0x000e, 0x01b0,\r
++      0xa8ab, 0x0dcb, 0xa876, 0x000e, 0xa8a2, 0x0006, 0xae6a, 0x2800,\r
++      0xa89e, 0xa97a, 0xaf72, 0xaa8e, 0xab92, 0xac96, 0xad9a, 0x0086,\r
++      0x2940, 0x080c, 0x1124, 0x008e, 0x9085, 0x0001, 0x009e, 0x0005,\r
++      0x00e6, 0x00d6, 0x0026, 0x7008, 0x9084, 0x00ff, 0x6210, 0x00b6,\r
++      0x2258, 0xba10, 0x00be, 0x9206, 0x1520, 0x700c, 0x6210, 0x00b6,\r
++      0x2258, 0xba14, 0x00be, 0x9206, 0x11e0, 0x604b, 0x0000, 0x2c68,\r
++      0x0016, 0x2009, 0x0035, 0x080c, 0xceca, 0x001e, 0x1158, 0x622c,\r
++      0x2268, 0x2071, 0x026c, 0x6b20, 0x9386, 0x0003, 0x0130, 0x9386,\r
++      0x0006, 0x0128, 0x080c, 0xabed, 0x0020, 0x0039, 0x0010, 0x080c,\r
++      0xb22e, 0x002e, 0x00de, 0x00ee, 0x0005, 0x0096, 0x6814, 0x2048,\r
++      0x9186, 0x0015, 0x0904, 0xb20d, 0x918e, 0x0016, 0x1904, 0xb22c,\r
++      0x700c, 0x908c, 0xff00, 0x9186, 0x1700, 0x0120, 0x9186, 0x0300,\r
++      0x1904, 0xb1e7, 0x89ff, 0x1138, 0x6800, 0x9086, 0x000f, 0x0904,\r
++      0xb1c9, 0x0804, 0xb22a, 0x6808, 0x9086, 0xffff, 0x1904, 0xb20f,\r
++      0xa87c, 0x9084, 0x0060, 0x9086, 0x0020, 0x1128, 0xa83c, 0xa940,\r
++      0x9105, 0x1904, 0xb20f, 0x6824, 0xd0b4, 0x1904, 0xb20f, 0x080c,\r
++      0xca27, 0x6864, 0xa882, 0xa87c, 0xc0dc, 0xc0f4, 0xc0d4, 0xa87e,\r
++      0x0026, 0x900e, 0x6a18, 0x2001, 0x000a, 0x080c, 0x9166, 0xa884,\r
++      0x920a, 0x0208, 0x8011, 0xaa86, 0x82ff, 0x002e, 0x1138, 0x00c6,\r
++      0x2d60, 0x080c, 0xc55e, 0x00ce, 0x0804, 0xb22a, 0x00c6, 0xa868,\r
++      0xd0fc, 0x1118, 0x080c, 0x60bb, 0x0010, 0x080c, 0x64bf, 0x00ce,\r
++      0x1904, 0xb20f, 0x00c6, 0x2d60, 0x080c, 0xabed, 0x00ce, 0x0804,\r
++      0xb22a, 0x00c6, 0x080c, 0xac5f, 0x0198, 0x6017, 0x0000, 0x6810,\r
++      0x6012, 0x080c, 0xcccc, 0x6023, 0x0003, 0x6904, 0x00c6, 0x2d60,\r
++      0x080c, 0xabed, 0x00ce, 0x080c, 0xac8c, 0x00ce, 0x0804, 0xb22a,\r
++      0x2001, 0x1988, 0x2004, 0x684a, 0x00ce, 0x0804, 0xb22a, 0x7008,\r
++      0x9086, 0x000b, 0x11c8, 0x6010, 0x00b6, 0x2058, 0xb900, 0xc1bc,\r
++      0xb902, 0x00be, 0x00c6, 0x2d60, 0xa87b, 0x0003, 0x080c, 0xcf0c,\r
++      0x6007, 0x0085, 0x6003, 0x000b, 0x6023, 0x0002, 0x2009, 0x8020,\r
++      0x080c, 0x921e, 0x00ce, 0x0430, 0x700c, 0x9086, 0x2a00, 0x1138,\r
++      0x2001, 0x1988, 0x2004, 0x684a, 0x00e8, 0x04c1, 0x00e8, 0x89ff,\r
++      0x090c, 0x0d7d, 0x00c6, 0x00d6, 0x2d60, 0xa867, 0x0103, 0xa87b,\r
++      0x0003, 0x080c, 0x6b96, 0x080c, 0xca27, 0x080c, 0xac28, 0x0026,\r
++      0x6010, 0x00b6, 0x2058, 0xba3c, 0x080c, 0x6750, 0x00be, 0x002e,\r
++      0x00de, 0x00ce, 0x080c, 0xabed, 0x009e, 0x0005, 0x9186, 0x0015,\r
++      0x1128, 0x2001, 0x1988, 0x2004, 0x684a, 0x0068, 0x918e, 0x0016,\r
++      0x1160, 0x00c6, 0x2d00, 0x2060, 0x080c, 0xe524, 0x080c, 0x88c1,\r
++      0x080c, 0xabed, 0x00ce, 0x080c, 0xabed, 0x0005, 0x0026, 0x0036,\r
++      0x0046, 0x7228, 0xacb0, 0xabac, 0xd2f4, 0x0130, 0x2001, 0x1988,\r
++      0x2004, 0x684a, 0x0804, 0xb2a8, 0x00c6, 0x2d60, 0x080c, 0xc436,\r
++      0x00ce, 0x6804, 0x9086, 0x0050, 0x1168, 0x00c6, 0x2d00, 0x2060,\r
++      0x6003, 0x0001, 0x6007, 0x0050, 0x2009, 0x8023, 0x080c, 0x921e,\r
++      0x00ce, 0x04f0, 0x6800, 0x9086, 0x000f, 0x01a8, 0x89ff, 0x090c,\r
++      0x0d7d, 0x6800, 0x9086, 0x0004, 0x1190, 0xa87c, 0xd0ac, 0x0178,\r
++      0xa843, 0x0fff, 0xa83f, 0x0fff, 0xa880, 0xc0fc, 0xa882, 0x2001,\r
++      0x0001, 0x6832, 0x0400, 0x2001, 0x0007, 0x6832, 0x00e0, 0xa87c,\r
++      0xd0b4, 0x1150, 0xd0ac, 0x0db8, 0x6824, 0xd0f4, 0x1d48, 0xa838,\r
++      0xa934, 0x9105, 0x0d80, 0x0c20, 0xd2ec, 0x1d68, 0x7024, 0x9306,\r
++      0x1118, 0x7020, 0x9406, 0x0d38, 0x7020, 0x683e, 0x7024, 0x683a,\r
++      0x2001, 0x0005, 0x6832, 0x080c, 0xcbb6, 0x080c, 0x96a0, 0x0010,\r
++      0x080c, 0xabed, 0x004e, 0x003e, 0x002e, 0x0005, 0x00e6, 0x00d6,\r
++      0x0026, 0x7008, 0x9084, 0x00ff, 0x6210, 0x00b6, 0x2258, 0xba10,\r
++      0x00be, 0x9206, 0x1904, 0xb313, 0x700c, 0x6210, 0x00b6, 0x2258,\r
++      0xba14, 0x00be, 0x9206, 0x1904, 0xb313, 0x6038, 0x2068, 0x6824,\r
++      0xc0dc, 0x6826, 0x6a20, 0x9286, 0x0007, 0x0904, 0xb313, 0x9286,\r
++      0x0002, 0x0904, 0xb313, 0x9286, 0x0000, 0x05e8, 0x6808, 0x633c,\r
++      0x9306, 0x15c8, 0x2071, 0x026c, 0x9186, 0x0015, 0x0570, 0x918e,\r
++      0x0016, 0x1100, 0x00c6, 0x6038, 0x2060, 0x6104, 0x9186, 0x004b,\r
++      0x01c0, 0x9186, 0x004c, 0x01a8, 0x9186, 0x004d, 0x0190, 0x9186,\r
++      0x004e, 0x0178, 0x9186, 0x0052, 0x0160, 0x6014, 0x0096, 0x2048,\r
++      0x080c, 0xc838, 0x090c, 0x0d7d, 0xa87b, 0x0003, 0x009e, 0x080c,\r
++      0xcf0c, 0x6007, 0x0085, 0x6003, 0x000b, 0x6023, 0x0002, 0x2009,\r
++      0x8020, 0x080c, 0x921e, 0x00ce, 0x0030, 0x6038, 0x2070, 0x2001,\r
++      0x1988, 0x2004, 0x704a, 0x080c, 0xabed, 0x002e, 0x00de, 0x00ee,\r
++      0x0005, 0x00b6, 0x0096, 0x00f6, 0x6014, 0x2048, 0x6010, 0x2058,\r
++      0x91b6, 0x0015, 0x0130, 0xba08, 0xbb0c, 0xbc00, 0xc48c, 0xbc02,\r
++      0x0460, 0x0096, 0x0156, 0x0036, 0x0026, 0x2b48, 0x9e90, 0x0010,\r
++      0x2019, 0x000a, 0x20a9, 0x0004, 0x080c, 0xbbc2, 0x002e, 0x003e,\r
++      0x015e, 0x009e, 0x1904, 0xb382, 0x0096, 0x0156, 0x0036, 0x0026,\r
++      0x2b48, 0x9e90, 0x0014, 0x2019, 0x0006, 0x20a9, 0x0004, 0x080c,\r
++      0xbbc2, 0x002e, 0x003e, 0x015e, 0x009e, 0x15a0, 0x7238, 0xba0a,\r
++      0x733c, 0xbb0e, 0xbc00, 0xc48d, 0xbc02, 0xa804, 0x9005, 0x1128,\r
++      0x00fe, 0x009e, 0x00be, 0x0804, 0xaffd, 0x0096, 0x2048, 0xaa12,\r
++      0xab16, 0xac0a, 0x009e, 0x8006, 0x8006, 0x8007, 0x90bc, 0x003f,\r
++      0x9084, 0xffc0, 0x9080, 0x0002, 0x2009, 0x002b, 0xaaa0, 0xab9c,\r
++      0xaca8, 0xada4, 0x2031, 0x0000, 0x2041, 0x127e, 0x080c, 0xb112,\r
++      0x0130, 0x00fe, 0x009e, 0x080c, 0xabed, 0x00be, 0x0005, 0x080c,\r
++      0xb5b5, 0x0cb8, 0x2b78, 0x00f6, 0x080c, 0x31e7, 0x080c, 0xcf67,\r
++      0x00fe, 0x00c6, 0x080c, 0xab97, 0x2f00, 0x6012, 0x6017, 0x0000,\r
++      0x6023, 0x0001, 0x6007, 0x0001, 0x6003, 0x0001, 0x2001, 0x0007,\r
++      0x080c, 0x6575, 0x080c, 0x65a1, 0x080c, 0x9225, 0x080c, 0x96a0,\r
++      0x00ce, 0x0804, 0xb355, 0x2100, 0x91b2, 0x0053, 0x1a0c, 0x0d7d,\r
++      0x91b2, 0x0040, 0x1a04, 0xb40b, 0x0002, 0xb3f9, 0xb3f9, 0xb3ef,\r
++      0xb3f9, 0xb3f9, 0xb3f9, 0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed,\r
++      0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed,\r
++      0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed,\r
++      0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed, 0xb3f9, 0xb3ed, 0xb3f9, 0xb3f9,\r
++      0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed, 0xb3ef, 0xb3ed, 0xb3ed,\r
++      0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed, 0xb3f9,\r
++      0xb3f9, 0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed, 0xb3ed,\r
++      0xb3ed, 0xb3ed, 0xb3f9, 0xb3ed, 0xb3ed, 0x080c, 0x0d7d, 0x0066,\r
++      0x00b6, 0x6610, 0x2658, 0xb8d4, 0xc08c, 0xb8d6, 0x00be, 0x006e,\r
++      0x0000, 0x6003, 0x0001, 0x6106, 0x9186, 0x0032, 0x0118, 0x080c,\r
++      0x9225, 0x0010, 0x080c, 0x921e, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0x96a0, 0x012e, 0x0005, 0x2600, 0x0002, 0xb3f9, 0xb3f9, 0xb41f,\r
++      0xb3f9, 0xb3f9, 0xb41f, 0xb41f, 0xb41f, 0xb41f, 0xb3f9, 0xb41f,\r
++      0xb3f9, 0xb41f, 0xb3f9, 0xb41f, 0xb41f, 0xb41f, 0xb41f, 0x080c,\r
++      0x0d7d, 0x6004, 0x90b2, 0x0053, 0x1a0c, 0x0d7d, 0x91b6, 0x0013,\r
++      0x0904, 0xb4f6, 0x91b6, 0x0027, 0x1904, 0xb4a2, 0x080c, 0x95de,\r
++      0x6004, 0x080c, 0xca3c, 0x01b0, 0x080c, 0xca4d, 0x01a8, 0x908e,\r
++      0x0021, 0x0904, 0xb49f, 0x908e, 0x0022, 0x1130, 0x080c, 0xb029,\r
++      0x0904, 0xb49b, 0x0804, 0xb49c, 0x908e, 0x003d, 0x0904, 0xb49f,\r
++      0x0804, 0xb495, 0x080c, 0x321c, 0x2001, 0x0007, 0x080c, 0x6575,\r
++      0x6010, 0x00b6, 0x2058, 0xb9a0, 0x00be, 0x080c, 0xb5b5, 0x9186,\r
++      0x007e, 0x1148, 0x2001, 0x1837, 0x2014, 0xc285, 0x080c, 0x74e9,\r
++      0x1108, 0xc2ad, 0x2202, 0x080c, 0xa896, 0x0036, 0x0026, 0x2019,\r
++      0x0028, 0x2110, 0x080c, 0xe630, 0x002e, 0x003e, 0x0016, 0x0026,\r
++      0x0036, 0x2110, 0x2019, 0x0028, 0x080c, 0x93a5, 0x0076, 0x903e,\r
++      0x080c, 0x9277, 0x6010, 0x00b6, 0x905d, 0x0100, 0x00be, 0x2c08,\r
++      0x080c, 0xdfeb, 0x007e, 0x003e, 0x002e, 0x001e, 0x080c, 0xa8b2,\r
++      0x080c, 0xcf67, 0x0016, 0x080c, 0xccc4, 0x080c, 0xabed, 0x001e,\r
++      0x080c, 0x32fc, 0x080c, 0x96a0, 0x0030, 0x080c, 0xccc4, 0x080c,\r
++      0xabed, 0x080c, 0x96a0, 0x0005, 0x080c, 0xb5b5, 0x0cb0, 0x080c,\r
++      0xb5f1, 0x0c98, 0x9186, 0x0015, 0x0118, 0x9186, 0x0016, 0x1140,\r
++      0x080c, 0xaaa8, 0x0d80, 0x9086, 0x0002, 0x0904, 0xb5fc, 0x0c58,\r
++      0x9186, 0x0014, 0x1d40, 0x080c, 0x95de, 0x6004, 0x908e, 0x0022,\r
++      0x1118, 0x080c, 0xb029, 0x09f8, 0x080c, 0x31e7, 0x080c, 0xcf67,\r
++      0x080c, 0xca3c, 0x1190, 0x080c, 0x321c, 0x6010, 0x00b6, 0x2058,\r
++      0xb9a0, 0x00be, 0x080c, 0xb5b5, 0x9186, 0x007e, 0x1128, 0x2001,\r
++      0x1837, 0x200c, 0xc185, 0x2102, 0x0800, 0x080c, 0xca4d, 0x1120,\r
++      0x080c, 0xb5b5, 0x0804, 0xb495, 0x6004, 0x908e, 0x0032, 0x1160,\r
++      0x00e6, 0x00f6, 0x2071, 0x189e, 0x2079, 0x0000, 0x080c, 0x35a5,\r
++      0x00fe, 0x00ee, 0x0804, 0xb495, 0x6004, 0x908e, 0x0021, 0x0d40,\r
++      0x908e, 0x0022, 0x090c, 0xb5b5, 0x0804, 0xb495, 0x90b2, 0x0040,\r
++      0x1a04, 0xb595, 0x2008, 0x0002, 0xb53e, 0xb53f, 0xb542, 0xb545,\r
++      0xb548, 0xb54b, 0xb53c, 0xb53c, 0xb53c, 0xb53c, 0xb53c, 0xb53c,\r
++      0xb53c, 0xb53c, 0xb53c, 0xb53c, 0xb53c, 0xb53c, 0xb53c, 0xb53c,\r
++      0xb53c, 0xb53c, 0xb53c, 0xb53c, 0xb53c, 0xb53c, 0xb53c, 0xb53c,\r
++      0xb53c, 0xb53c, 0xb54e, 0xb557, 0xb53c, 0xb558, 0xb557, 0xb53c,\r
++      0xb53c, 0xb53c, 0xb53c, 0xb53c, 0xb557, 0xb557, 0xb53c, 0xb53c,\r
++      0xb53c, 0xb53c, 0xb53c, 0xb53c, 0xb53c, 0xb53c, 0xb580, 0xb557,\r
++      0xb53c, 0xb553, 0xb53c, 0xb53c, 0xb53c, 0xb554, 0xb53c, 0xb53c,\r
++      0xb53c, 0xb557, 0xb57b, 0xb53c, 0x080c, 0x0d7d, 0x00c0, 0x2001,\r
++      0x000b, 0x00e8, 0x2001, 0x0003, 0x00d0, 0x2001, 0x0005, 0x00b8,\r
++      0x2001, 0x0001, 0x00a0, 0x2001, 0x0009, 0x0088, 0x6003, 0x0005,\r
++      0x080c, 0x96a0, 0x0058, 0x0018, 0x0010, 0x080c, 0x6575, 0x04b8,\r
++      0x080c, 0xcf6a, 0x6003, 0x0004, 0x080c, 0x96a0, 0x0005, 0x080c,\r
++      0x6575, 0x6003, 0x0002, 0x0036, 0x2019, 0x1852, 0x2304, 0x9084,\r
++      0xff00, 0x1120, 0x2001, 0x1986, 0x201c, 0x0040, 0x8007, 0x909a,\r
++      0x0004, 0x0ec0, 0x8003, 0x801b, 0x831b, 0x9318, 0x631a, 0x003e,\r
++      0x080c, 0x96a0, 0x0c18, 0x080c, 0xccc4, 0x080c, 0xabed, 0x08f0,\r
++      0x00e6, 0x00f6, 0x2071, 0x189e, 0x2079, 0x0000, 0x080c, 0x35a5,\r
++      0x00fe, 0x00ee, 0x080c, 0x95de, 0x080c, 0xabed, 0x0878, 0x6003,\r
++      0x0002, 0x080c, 0xcf6a, 0x0804, 0x96a0, 0x2600, 0x2008, 0x0002,\r
++      0xb5ac, 0xb58f, 0xb5aa, 0xb58f, 0xb58f, 0xb5aa, 0xb5aa, 0xb5aa,\r
++      0xb5aa, 0xb58f, 0xb5aa, 0xb58f, 0xb5aa, 0xb58f, 0xb5aa, 0xb5aa,\r
++      0xb5aa, 0xb5aa, 0x080c, 0x0d7d, 0x0096, 0x6014, 0x2048, 0x080c,\r
++      0x6d80, 0x009e, 0x080c, 0xabed, 0x0005, 0x00e6, 0x0096, 0x0026,\r
++      0x0016, 0x080c, 0xc838, 0x0568, 0x6014, 0x2048, 0xa864, 0x9086,\r
++      0x0139, 0x11a8, 0xa894, 0x9086, 0x0056, 0x1148, 0x080c, 0x547b,\r
++      0x0130, 0x2001, 0x0000, 0x900e, 0x2011, 0x4000, 0x0028, 0x2001,\r
++      0x0030, 0x900e, 0x2011, 0x4005, 0x080c, 0xce31, 0x0090, 0xa868,\r
++      0xd0fc, 0x0178, 0xa807, 0x0000, 0x0016, 0x6004, 0x908e, 0x0021,\r
++      0x0168, 0x908e, 0x003d, 0x0150, 0x001e, 0xa867, 0x0103, 0xa833,\r
++      0x0100, 0x001e, 0x002e, 0x009e, 0x00ee, 0x0005, 0x001e, 0x0009,\r
++      0x0cc0, 0x0096, 0x6014, 0x2048, 0xa800, 0x2048, 0xa867, 0x0103,\r
++      0xa823, 0x8001, 0x009e, 0x0005, 0x00b6, 0x6610, 0x2658, 0xb804,\r
++      0x9084, 0x00ff, 0x90b2, 0x000c, 0x1a0c, 0x0d7d, 0x6604, 0x96b6,\r
++      0x004d, 0x1120, 0x080c, 0xcd50, 0x0804, 0xb681, 0x6604, 0x96b6,\r
++      0x0043, 0x1120, 0x080c, 0xcd99, 0x0804, 0xb681, 0x6604, 0x96b6,\r
++      0x004b, 0x1120, 0x080c, 0xcdc5, 0x0804, 0xb681, 0x6604, 0x96b6,\r
++      0x0033, 0x1120, 0x080c, 0xcce6, 0x0804, 0xb681, 0x6604, 0x96b6,\r
++      0x0028, 0x1120, 0x080c, 0xca86, 0x0804, 0xb681, 0x6604, 0x96b6,\r
++      0x0029, 0x1120, 0x080c, 0xcac7, 0x0804, 0xb681, 0x6604, 0x96b6,\r
++      0x001f, 0x1120, 0x080c, 0xafd2, 0x0804, 0xb681, 0x6604, 0x96b6,\r
++      0x0000, 0x1118, 0x080c, 0xb319, 0x04e0, 0x6604, 0x96b6, 0x0022,\r
++      0x1118, 0x080c, 0xb00a, 0x04a8, 0x6604, 0x96b6, 0x0035, 0x1118,\r
++      0x080c, 0xb130, 0x0470, 0x6604, 0x96b6, 0x0039, 0x1118, 0x080c,\r
++      0xb2ae, 0x0438, 0x6604, 0x96b6, 0x003d, 0x1118, 0x080c, 0xb042,\r
++      0x0400, 0x6604, 0x96b6, 0x0044, 0x1118, 0x080c, 0xb07e, 0x00c8,\r
++      0x6604, 0x96b6, 0x0049, 0x1118, 0x080c, 0xb0bf, 0x0090, 0x6604,\r
++      0x96b6, 0x0041, 0x1118, 0x080c, 0xb0a9, 0x0058, 0x91b6, 0x0015,\r
++      0x1110, 0x0063, 0x0030, 0x91b6, 0x0016, 0x1128, 0x00be, 0x0804,\r
++      0xb8db, 0x00be, 0x0005, 0x080c, 0xaca9, 0x0cd8, 0xb69e, 0xb6a1,\r
++      0xb69e, 0xb6e8, 0xb69e, 0xb84f, 0xb8e8, 0xb69e, 0xb69e, 0xb8b1,\r
++      0xb69e, 0xb8c7, 0x0096, 0x601f, 0x0000, 0x6014, 0x2048, 0xa800,\r
++      0x2048, 0xa867, 0x0103, 0x009e, 0x0804, 0xabed, 0xa001, 0xa001,\r
++      0x0005, 0x00e6, 0x2071, 0x1800, 0x7090, 0x9086, 0x0074, 0x1540,\r
++      0x080c, 0xdfbc, 0x11b0, 0x6010, 0x00b6, 0x2058, 0x7030, 0xd08c,\r
++      0x0128, 0xb800, 0xd0bc, 0x0110, 0xc0c5, 0xb802, 0x00f9, 0x00be,\r
++      0x2001, 0x0006, 0x080c, 0x6575, 0x080c, 0x321c, 0x080c, 0xabed,\r
++      0x0098, 0x2001, 0x000a, 0x080c, 0x6575, 0x080c, 0x321c, 0x6003,\r
++      0x0001, 0x6007, 0x0001, 0x080c, 0x9225, 0x080c, 0x96a0, 0x0020,\r
++      0x2001, 0x0001, 0x080c, 0xb81f, 0x00ee, 0x0005, 0x00d6, 0xb800,\r
++      0xd084, 0x0160, 0x9006, 0x080c, 0x6561, 0x2069, 0x1847, 0x6804,\r
++      0xd0a4, 0x0120, 0x2001, 0x0006, 0x080c, 0x65a1, 0x00de, 0x0005,\r
++      0x00b6, 0x0096, 0x00d6, 0x2011, 0x1824, 0x2204, 0x9086, 0x0074,\r
++      0x1904, 0xb7f6, 0x6010, 0x2058, 0xbaa0, 0x9286, 0x007e, 0x1120,\r
++      0x080c, 0xba35, 0x0804, 0xb75a, 0x080c, 0xba2a, 0x6010, 0x2058,\r
++      0xbaa0, 0x9286, 0x0080, 0x1510, 0x6014, 0x9005, 0x01a8, 0x2048,\r
++      0xa864, 0x9084, 0x00ff, 0x9086, 0x0039, 0x1140, 0x2001, 0x0000,\r
++      0x900e, 0x2011, 0x4000, 0x080c, 0xce31, 0x0030, 0xa807, 0x0000,\r
++      0xa867, 0x0103, 0xa833, 0x0200, 0x2001, 0x0006, 0x080c, 0x6575,\r
++      0x080c, 0x321c, 0x080c, 0xabed, 0x0804, 0xb7f9, 0x080c, 0xb807,\r
++      0x6014, 0x9005, 0x0190, 0x2048, 0xa868, 0xd0f4, 0x01e8, 0xa864,\r
++      0x9084, 0x00ff, 0x9086, 0x0039, 0x1d08, 0x2001, 0x0000, 0x900e,\r
++      0x2011, 0x4000, 0x080c, 0xce31, 0x08f8, 0x080c, 0xb7fd, 0x0160,\r
++      0x9006, 0x080c, 0x6561, 0x2001, 0x0004, 0x080c, 0x65a1, 0x2001,\r
++      0x0007, 0x080c, 0x6575, 0x08a0, 0x2001, 0x0004, 0x080c, 0x6575,\r
++      0x6003, 0x0001, 0x6007, 0x0003, 0x080c, 0x9225, 0x080c, 0x96a0,\r
++      0x0804, 0xb7f9, 0xb85c, 0xd0e4, 0x01d8, 0x080c, 0xcc5e, 0x080c,\r
++      0x74e9, 0x0118, 0xd0dc, 0x1904, 0xb71c, 0x2011, 0x1837, 0x2204,\r
++      0xc0ad, 0x2012, 0x2001, 0x196d, 0x2004, 0x00f6, 0x2079, 0x0100,\r
++      0x78e3, 0x0000, 0x080c, 0x266f, 0x78e2, 0x00fe, 0x0804, 0xb71c,\r
++      0x080c, 0xcc9f, 0x2011, 0x1837, 0x2204, 0xc0a5, 0x2012, 0x0006,\r
++      0x080c, 0xe14c, 0x000e, 0x1904, 0xb71c, 0xc0b5, 0x2012, 0x2001,\r
++      0x0006, 0x080c, 0x6575, 0x9006, 0x080c, 0x6561, 0x00c6, 0x2001,\r
++      0x180f, 0x2004, 0xd09c, 0x0520, 0x00f6, 0x2079, 0x0100, 0x00e6,\r
++      0x2071, 0x1800, 0x700c, 0x9084, 0x00ff, 0x78e6, 0x707e, 0x7010,\r
++      0x78ea, 0x7082, 0x908c, 0x00ff, 0x00ee, 0x780c, 0xc0b5, 0x780e,\r
++      0x00fe, 0x080c, 0x2644, 0x00f6, 0x2100, 0x900e, 0x080c, 0x25fb,\r
++      0x795e, 0x00fe, 0x9186, 0x0081, 0x01d8, 0x2009, 0x0081, 0x00c8,\r
++      0x2009, 0x00ef, 0x00f6, 0x2079, 0x0100, 0x79ea, 0x7932, 0x7936,\r
++      0x780c, 0xc0b5, 0x780e, 0x00fe, 0x080c, 0x2644, 0x00f6, 0x2079,\r
++      0x1800, 0x7982, 0x2100, 0x900e, 0x080c, 0x25fb, 0x795e, 0x00fe,\r
++      0x8108, 0x080c, 0x65c4, 0x2b00, 0x00ce, 0x1904, 0xb71c, 0x6012,\r
++      0x2009, 0x180f, 0x210c, 0xd19c, 0x0150, 0x2009, 0x027c, 0x210c,\r
++      0x918c, 0x00ff, 0xb912, 0x2009, 0x027d, 0x210c, 0xb916, 0x2001,\r
++      0x0002, 0x080c, 0x6575, 0x6023, 0x0001, 0x6003, 0x0001, 0x6007,\r
++      0x0002, 0x080c, 0x9225, 0x080c, 0x96a0, 0x0018, 0x2001, 0x0001,\r
++      0x0431, 0x00de, 0x009e, 0x00be, 0x0005, 0x2001, 0x1810, 0x2004,\r
++      0xd0a4, 0x0120, 0x2001, 0x1848, 0x2004, 0xd0ac, 0x0005, 0x00e6,\r
++      0x080c, 0xe689, 0x0190, 0x2071, 0x0260, 0x7108, 0x720c, 0x918c,\r
++      0x00ff, 0x1118, 0x9284, 0xff00, 0x0140, 0x6010, 0x2058, 0xb8a0,\r
++      0x9084, 0xff80, 0x1110, 0xb912, 0xba16, 0x00ee, 0x0005, 0x2030,\r
++      0x9005, 0x0158, 0x2001, 0x0007, 0x080c, 0x6575, 0x080c, 0x56ee,\r
++      0x1120, 0x2001, 0x0007, 0x080c, 0x65a1, 0x2600, 0x9005, 0x11b0,\r
++      0x6014, 0x0096, 0x2048, 0xa868, 0x009e, 0xd0fc, 0x1178, 0x0036,\r
++      0x0046, 0x6010, 0x00b6, 0x2058, 0xbba0, 0x00be, 0x2021, 0x0004,\r
++      0x2011, 0x8014, 0x080c, 0x4b07, 0x004e, 0x003e, 0x080c, 0x321c,\r
++      0x6020, 0x9086, 0x000a, 0x1108, 0x0005, 0x0804, 0xabed, 0x00b6,\r
++      0x00e6, 0x0026, 0x0016, 0x2071, 0x1800, 0x7090, 0x9086, 0x0014,\r
++      0x1904, 0xb8a7, 0x080c, 0x56ee, 0x1170, 0x6014, 0x9005, 0x1158,\r
++      0x0036, 0x0046, 0x6010, 0x2058, 0xbba0, 0x2021, 0x0006, 0x080c,\r
++      0x4cbe, 0x004e, 0x003e, 0x00d6, 0x6010, 0x2058, 0x080c, 0x66c0,\r
++      0x080c, 0xb6d6, 0x00de, 0x080c, 0xbafb, 0x1588, 0x6010, 0x2058,\r
++      0xb890, 0x9005, 0x0560, 0x2001, 0x0006, 0x080c, 0x6575, 0x0096,\r
++      0x6014, 0x904d, 0x01d0, 0xa864, 0x9084, 0x00ff, 0x9086, 0x0039,\r
++      0x1140, 0x2001, 0x0000, 0x900e, 0x2011, 0x4000, 0x080c, 0xce31,\r
++      0x0060, 0xa864, 0x9084, 0x00ff, 0x9086, 0x0029, 0x0130, 0xa807,\r
++      0x0000, 0xa867, 0x0103, 0xa833, 0x0200, 0x009e, 0x080c, 0x321c,\r
++      0x6020, 0x9086, 0x000a, 0x0140, 0x080c, 0xabed, 0x0028, 0x080c,\r
++      0xb5b5, 0x9006, 0x080c, 0xb81f, 0x001e, 0x002e, 0x00ee, 0x00be,\r
++      0x0005, 0x2011, 0x1824, 0x2204, 0x9086, 0x0014, 0x1160, 0x2001,\r
++      0x0002, 0x080c, 0x6575, 0x6003, 0x0001, 0x6007, 0x0001, 0x080c,\r
++      0x9225, 0x0804, 0x96a0, 0x2001, 0x0001, 0x0804, 0xb81f, 0x2030,\r
++      0x2011, 0x1824, 0x2204, 0x9086, 0x0004, 0x1148, 0x96b6, 0x000b,\r
++      0x1120, 0x2001, 0x0007, 0x080c, 0x6575, 0x0804, 0xabed, 0x2001,\r
++      0x0001, 0x0804, 0xb81f, 0x0002, 0xb69e, 0xb8f3, 0xb69e, 0xb934,\r
++      0xb69e, 0xb9e1, 0xb8e8, 0xb69e, 0xb69e, 0xb9f5, 0xb69e, 0xba07,\r
++      0x6604, 0x9686, 0x0003, 0x0904, 0xb84f, 0x96b6, 0x001e, 0x1110,\r
++      0x080c, 0xabed, 0x0005, 0x00b6, 0x00d6, 0x00c6, 0x080c, 0xba19,\r
++      0x11a0, 0x9006, 0x080c, 0x6561, 0x080c, 0x31e7, 0x080c, 0xcf67,\r
++      0x2001, 0x0002, 0x080c, 0x6575, 0x6003, 0x0001, 0x6007, 0x0002,\r
++      0x080c, 0x9225, 0x080c, 0x96a0, 0x0418, 0x2009, 0x026e, 0x2104,\r
++      0x9086, 0x0009, 0x1160, 0x6010, 0x2058, 0xb840, 0x9084, 0x00ff,\r
++      0x9005, 0x0170, 0x8001, 0xb842, 0x601b, 0x000a, 0x0088, 0x2009,\r
++      0x026f, 0x2104, 0x9084, 0xff00, 0x9086, 0x1900, 0x1108, 0x08a0,\r
++      0x080c, 0x31e7, 0x080c, 0xcf67, 0x2001, 0x0001, 0x080c, 0xb81f,\r
++      0x00ce, 0x00de, 0x00be, 0x0005, 0x0096, 0x00b6, 0x0026, 0x9016,\r
++      0x080c, 0xba27, 0x00d6, 0x2069, 0x197c, 0x2d04, 0x9005, 0x0168,\r
++      0x6010, 0x2058, 0xb8a0, 0x9086, 0x007e, 0x1138, 0x2069, 0x1820,\r
++      0x2d04, 0x8000, 0x206a, 0x00de, 0x0010, 0x00de, 0x0088, 0x9006,\r
++      0x080c, 0x6561, 0x2001, 0x0002, 0x080c, 0x6575, 0x6003, 0x0001,\r
++      0x6007, 0x0002, 0x080c, 0x9225, 0x080c, 0x96a0, 0x0804, 0xb9b1,\r
++      0x080c, 0xc838, 0x01b0, 0x6014, 0x2048, 0xa864, 0x2010, 0x9086,\r
++      0x0139, 0x1138, 0x6007, 0x0016, 0x2001, 0x0002, 0x080c, 0xce8b,\r
++      0x00b0, 0x6014, 0x2048, 0xa864, 0xd0fc, 0x0118, 0x2001, 0x0001,\r
++      0x0ca8, 0x2001, 0x180e, 0x2004, 0xd0dc, 0x0148, 0x6010, 0x2058,\r
++      0xb840, 0x9084, 0x00ff, 0x9005, 0x1110, 0x9006, 0x0c38, 0x080c,\r
++      0xb5b5, 0x2009, 0x026e, 0x2134, 0x96b4, 0x00ff, 0x9686, 0x0005,\r
++      0x0520, 0x9686, 0x000b, 0x01c8, 0x2009, 0x026f, 0x2104, 0x9084,\r
++      0xff00, 0x1118, 0x9686, 0x0009, 0x01c0, 0x9086, 0x1900, 0x1168,\r
++      0x9686, 0x0009, 0x0190, 0x2001, 0x0004, 0x080c, 0x6575, 0x2001,\r
++      0x0028, 0x601a, 0x6007, 0x0052, 0x0020, 0x2001, 0x0001, 0x080c,\r
++      0xb81f, 0x002e, 0x00be, 0x009e, 0x0005, 0x9286, 0x0139, 0x0160,\r
++      0x6014, 0x2048, 0x080c, 0xc838, 0x0140, 0xa864, 0x9086, 0x0139,\r
++      0x0118, 0xa868, 0xd0fc, 0x0108, 0x0c40, 0x6010, 0x2058, 0xb840,\r
++      0x9084, 0x00ff, 0x9005, 0x0138, 0x8001, 0xb842, 0x601b, 0x000a,\r
++      0x6007, 0x0016, 0x08f0, 0xb8a0, 0x9086, 0x007e, 0x1138, 0x00e6,\r
++      0x2071, 0x1800, 0x080c, 0x5fbc, 0x00ee, 0x0010, 0x080c, 0x31e7,\r
++      0x0860, 0x080c, 0xba27, 0x1160, 0x2001, 0x0004, 0x080c, 0x6575,\r
++      0x6003, 0x0001, 0x6007, 0x0003, 0x080c, 0x9225, 0x0804, 0x96a0,\r
++      0x080c, 0xb5b5, 0x9006, 0x0804, 0xb81f, 0x0489, 0x1160, 0x2001,\r
++      0x0008, 0x080c, 0x6575, 0x6003, 0x0001, 0x6007, 0x0005, 0x080c,\r
++      0x9225, 0x0804, 0x96a0, 0x2001, 0x0001, 0x0804, 0xb81f, 0x00f9,\r
++      0x1160, 0x2001, 0x000a, 0x080c, 0x6575, 0x6003, 0x0001, 0x6007,\r
++      0x0001, 0x080c, 0x9225, 0x0804, 0x96a0, 0x2001, 0x0001, 0x0804,\r
++      0xb81f, 0x2009, 0x026e, 0x2104, 0x9086, 0x0003, 0x1138, 0x2009,\r
++      0x026f, 0x2104, 0x9084, 0xff00, 0x9086, 0x2a00, 0x0005, 0x9085,\r
++      0x0001, 0x0005, 0x00b6, 0x00c6, 0x0016, 0x6110, 0x2158, 0x080c,\r
++      0x6634, 0x001e, 0x00ce, 0x00be, 0x0005, 0x00b6, 0x00f6, 0x00e6,\r
++      0x00d6, 0x0036, 0x0016, 0x6010, 0x2058, 0x2009, 0x1837, 0x2104,\r
++      0x9085, 0x0003, 0x200a, 0x080c, 0xbacd, 0x0560, 0x2009, 0x1837,\r
++      0x2104, 0xc0cd, 0x200a, 0x080c, 0x6a67, 0x0158, 0x9006, 0x2020,\r
++      0x2009, 0x002a, 0x080c, 0xe2c9, 0x2001, 0x180c, 0x200c, 0xc195,\r
++      0x2102, 0x2019, 0x002a, 0x2009, 0x0001, 0x080c, 0x31a6, 0x00e6,\r
++      0x2071, 0x1800, 0x080c, 0x2fb2, 0x00ee, 0x00c6, 0x0156, 0x20a9,\r
++      0x0781, 0x2009, 0x007f, 0x080c, 0x32fc, 0x8108, 0x1f04, 0xba6b,\r
++      0x015e, 0x00ce, 0x080c, 0xba2a, 0x2071, 0x0260, 0x2079, 0x0200,\r
++      0x7817, 0x0001, 0x2001, 0x1837, 0x200c, 0xc1c5, 0x7018, 0xd0fc,\r
++      0x0110, 0xd0dc, 0x0118, 0x7038, 0xd0dc, 0x1108, 0xc1c4, 0x7817,\r
++      0x0000, 0x2001, 0x1837, 0x2102, 0x2079, 0x0100, 0x2e04, 0x9084,\r
++      0x00ff, 0x2069, 0x181f, 0x206a, 0x78e6, 0x0006, 0x8e70, 0x2e04,\r
++      0x2069, 0x1820, 0x206a, 0x78ea, 0x7832, 0x7836, 0x2010, 0x9084,\r
++      0xff00, 0x001e, 0x9105, 0x2009, 0x182c, 0x200a, 0x2200, 0x9084,\r
++      0x00ff, 0x2008, 0x080c, 0x2644, 0x080c, 0x74e9, 0x0170, 0x2071,\r
++      0x0260, 0x2069, 0x1982, 0x7048, 0x206a, 0x704c, 0x6806, 0x7050,\r
++      0x680a, 0x7054, 0x680e, 0x080c, 0xcc5e, 0x0040, 0x2001, 0x0006,\r
++      0x080c, 0x6575, 0x080c, 0x321c, 0x080c, 0xabed, 0x001e, 0x003e,\r
++      0x00de, 0x00ee, 0x00fe, 0x00be, 0x0005, 0x0096, 0x0026, 0x0036,\r
++      0x00e6, 0x0156, 0x2019, 0x182c, 0x231c, 0x83ff, 0x01f0, 0x2071,\r
++      0x0260, 0x7200, 0x9294, 0x00ff, 0x7004, 0x9084, 0xff00, 0x9205,\r
++      0x9306, 0x1198, 0x2011, 0x0276, 0x20a9, 0x0004, 0x2b48, 0x2019,\r
++      0x000a, 0x080c, 0xbbc2, 0x1148, 0x2011, 0x027a, 0x20a9, 0x0004,\r
++      0x2019, 0x0006, 0x080c, 0xbbc2, 0x1100, 0x015e, 0x00ee, 0x003e,\r
++      0x002e, 0x009e, 0x0005, 0x00e6, 0x2071, 0x0260, 0x7034, 0x9086,\r
++      0x0014, 0x11a8, 0x7038, 0x9086, 0x0800, 0x1188, 0x703c, 0xd0ec,\r
++      0x0160, 0x9084, 0x0f00, 0x9086, 0x0100, 0x1138, 0x7054, 0xd0a4,\r
++      0x1110, 0xd0ac, 0x0110, 0x9006, 0x0010, 0x9085, 0x0001, 0x00ee,\r
++      0x0005, 0x00e6, 0x0096, 0x00c6, 0x0076, 0x0056, 0x0046, 0x0026,\r
++      0x0006, 0x0126, 0x2091, 0x8000, 0x2029, 0x19f3, 0x252c, 0x2021,\r
++      0x19fa, 0x2424, 0x2061, 0x1ddc, 0x2071, 0x1800, 0x7254, 0x7074,\r
++      0x9202, 0x1a04, 0xbb8e, 0x080c, 0x8b90, 0x0904, 0xbb87, 0x080c,\r
++      0xe2fa, 0x0904, 0xbb87, 0x6720, 0x9786, 0x0007, 0x0904, 0xbb87,\r
++      0x2500, 0x9c06, 0x0904, 0xbb87, 0x2400, 0x9c06, 0x0904, 0xbb87,\r
++      0x3e08, 0x9186, 0x0002, 0x1148, 0x6010, 0x9005, 0x0130, 0x00b6,\r
++      0x2058, 0xb800, 0x00be, 0xd0bc, 0x1590, 0x00c6, 0x6043, 0xffff,\r
++      0x6000, 0x9086, 0x0004, 0x1110, 0x080c, 0x1a6a, 0x9786, 0x000a,\r
++      0x0148, 0x080c, 0xca4d, 0x1130, 0x00ce, 0x080c, 0xb5b5, 0x080c,\r
++      0xac28, 0x00e8, 0x6014, 0x2048, 0x080c, 0xc838, 0x01a8, 0x9786,\r
++      0x0003, 0x1530, 0xa867, 0x0103, 0xa87c, 0xd0cc, 0x0130, 0x0096,\r
++      0xa878, 0x2048, 0x080c, 0x0fec, 0x009e, 0xab7a, 0xa877, 0x0000,\r
++      0x080c, 0x6d74, 0x080c, 0xca27, 0x080c, 0xac28, 0x00ce, 0x9ce0,\r
++      0x001c, 0x7068, 0x9c02, 0x1210, 0x0804, 0xbb2e, 0x012e, 0x000e,\r
++      0x002e, 0x004e, 0x005e, 0x007e, 0x00ce, 0x009e, 0x00ee, 0x0005,\r
++      0x9786, 0x0006, 0x1118, 0x080c, 0xe26c, 0x0c30, 0x9786, 0x0009,\r
++      0x1148, 0x6000, 0x9086, 0x0004, 0x0d08, 0x2009, 0x004c, 0x080c,\r
++      0xac8c, 0x08e0, 0x9786, 0x000a, 0x0938, 0x0820, 0x220c, 0x2304,\r
++      0x9106, 0x1130, 0x8210, 0x8318, 0x1f04, 0xbbae, 0x9006, 0x0005,\r
++      0x2304, 0x9102, 0x0218, 0x2001, 0x0001, 0x0008, 0x9006, 0x918d,\r
++      0x0001, 0x0005, 0x0136, 0x01c6, 0x0016, 0x8906, 0x8006, 0x8007,\r
++      0x908c, 0x003f, 0x21e0, 0x9084, 0xffc0, 0x9300, 0x2098, 0x3518,\r
++      0x20a9, 0x0001, 0x220c, 0x4002, 0x910e, 0x1140, 0x8210, 0x8319,\r
++      0x1dc8, 0x9006, 0x001e, 0x01ce, 0x013e, 0x0005, 0x220c, 0x9102,\r
++      0x0218, 0x2001, 0x0001, 0x0010, 0x2001, 0x0000, 0x918d, 0x0001,\r
++      0x001e, 0x01ce, 0x013e, 0x0005, 0x220c, 0x810f, 0x2304, 0x9106,\r
++      0x1130, 0x8210, 0x8318, 0x1f04, 0xbbec, 0x9006, 0x0005, 0x918d,\r
++      0x0001, 0x0005, 0x6004, 0x908a, 0x0053, 0x1a0c, 0x0d7d, 0x080c,\r
++      0xca3c, 0x0120, 0x080c, 0xca4d, 0x0158, 0x0028, 0x080c, 0x321c,\r
++      0x080c, 0xca4d, 0x0128, 0x080c, 0x95de, 0x080c, 0xabed, 0x0005,\r
++      0x080c, 0xb5b5, 0x0cc0, 0x9182, 0x0057, 0x1220, 0x9182, 0x0040,\r
++      0x0208, 0x000a, 0x0005, 0xbc32, 0xbc32, 0xbc32, 0xbc32, 0xbc32,\r
++      0xbc32, 0xbc32, 0xbc32, 0xbc32, 0xbc32, 0xbc32, 0xbc34, 0xbc34,\r
++      0xbc34, 0xbc34, 0xbc32, 0xbc32, 0xbc32, 0xbc34, 0xbc32, 0xbc32,\r
++      0xbc32, 0xbc32, 0x080c, 0x0d7d, 0x600b, 0xffff, 0x6003, 0x000f,\r
++      0x6106, 0x0126, 0x2091, 0x8000, 0x080c, 0xcf6a, 0x2009, 0x8000,\r
++      0x080c, 0x921e, 0x012e, 0x0005, 0x9186, 0x0013, 0x1128, 0x6004,\r
++      0x9082, 0x0040, 0x0804, 0xbcb9, 0x9186, 0x0027, 0x1520, 0x080c,\r
++      0x95de, 0x080c, 0x31e7, 0x080c, 0xcf67, 0x0096, 0x6114, 0x2148,\r
++      0x080c, 0xc838, 0x0198, 0x080c, 0xca4d, 0x1118, 0x080c, 0xb5b5,\r
++      0x0068, 0xa867, 0x0103, 0xa87b, 0x0029, 0xa877, 0x0000, 0xa97c,\r
++      0xc1c5, 0xa97e, 0x080c, 0x6d80, 0x080c, 0xca27, 0x009e, 0x080c,\r
++      0xabed, 0x0804, 0x96a0, 0x9186, 0x0014, 0x1120, 0x6004, 0x9082,\r
++      0x0040, 0x0018, 0x080c, 0x0d7d, 0x0005, 0x0002, 0xbc97, 0xbc95,\r
++      0xbc95, 0xbc95, 0xbc95, 0xbc95, 0xbc95, 0xbc95, 0xbc95, 0xbc95,\r
++      0xbc95, 0xbcb0, 0xbcb0, 0xbcb0, 0xbcb0, 0xbc95, 0xbcb0, 0xbc95,\r
++      0xbcb0, 0xbc95, 0xbc95, 0xbc95, 0xbc95, 0x080c, 0x0d7d, 0x080c,\r
++      0x95de, 0x0096, 0x6114, 0x2148, 0x080c, 0xc838, 0x0168, 0xa867,\r
++      0x0103, 0xa87b, 0x0006, 0xa877, 0x0000, 0xa880, 0xc0ec, 0xa882,\r
++      0x080c, 0x6d80, 0x080c, 0xca27, 0x009e, 0x080c, 0xabed, 0x0005,\r
++      0x080c, 0x95de, 0x080c, 0xca4d, 0x090c, 0xb5b5, 0x080c, 0xabed,\r
++      0x0005, 0x0002, 0xbcd3, 0xbcd1, 0xbcd1, 0xbcd1, 0xbcd1, 0xbcd1,\r
++      0xbcd1, 0xbcd1, 0xbcd1, 0xbcd1, 0xbcd1, 0xbcd5, 0xbcd5, 0xbcd5,\r
++      0xbcd5, 0xbcd1, 0xbcd7, 0xbcd1, 0xbcd5, 0xbcd1, 0xbcd1, 0xbcd1,\r
++      0xbcd1, 0x080c, 0x0d7d, 0x080c, 0x0d7d, 0x080c, 0x0d7d, 0x080c,\r
++      0xabed, 0x0804, 0x96a0, 0x9182, 0x0057, 0x1220, 0x9182, 0x0040,\r
++      0x0208, 0x000a, 0x0005, 0xbcfa, 0xbcfa, 0xbcfa, 0xbcfa, 0xbcfa,\r
++      0xbd33, 0xbe22, 0xbcfa, 0xbe2e, 0xbcfa, 0xbcfa, 0xbcfa, 0xbcfa,\r
++      0xbcfa, 0xbcfa, 0xbcfa, 0xbcfa, 0xbcfa, 0xbcfa, 0xbe2e, 0xbcfc,\r
++      0xbcfa, 0xbe2c, 0x080c, 0x0d7d, 0x00b6, 0x0096, 0x6114, 0x2148,\r
++      0x6010, 0x2058, 0xb800, 0xd0bc, 0x1508, 0xa87b, 0x0000, 0xa867,\r
++      0x0103, 0xa877, 0x0000, 0xa87c, 0xd0ac, 0x0128, 0xa834, 0xa938,\r
++      0x9115, 0x190c, 0xbeb3, 0x080c, 0x6b96, 0x6210, 0x2258, 0xba3c,\r
++      0x82ff, 0x0110, 0x8211, 0xba3e, 0xb8d0, 0x9005, 0x0110, 0x080c,\r
++      0x6750, 0x080c, 0xabed, 0x009e, 0x00be, 0x0005, 0xa87c, 0xd0ac,\r
++      0x09e0, 0xa838, 0xa934, 0x9105, 0x09c0, 0xa880, 0xd0bc, 0x19a8,\r
++      0x080c, 0xcb7d, 0x0c80, 0x00b6, 0x0096, 0x6114, 0x2148, 0x601c,\r
++      0xd0fc, 0x1110, 0x7644, 0x0008, 0x9036, 0x96b4, 0x0fff, 0x86ff,\r
++      0x1590, 0x6010, 0x2058, 0xb800, 0xd0bc, 0x1904, 0xbe11, 0xa87b,\r
++      0x0000, 0xa867, 0x0103, 0xae76, 0xa87c, 0xd0ac, 0x0128, 0xa834,\r
++      0xa938, 0x9115, 0x190c, 0xbeb3, 0x080c, 0x6b96, 0x6210, 0x2258,\r
++      0xba3c, 0x82ff, 0x0110, 0x8211, 0xba3e, 0xb8d0, 0x9005, 0x0110,\r
++      0x080c, 0x6750, 0x601c, 0xd0fc, 0x1148, 0x7044, 0xd0e4, 0x1904,\r
++      0xbdf5, 0x080c, 0xabed, 0x009e, 0x00be, 0x0005, 0x2009, 0x0211,\r
++      0x210c, 0x080c, 0x0d7d, 0x968c, 0x0c00, 0x0150, 0x6010, 0x2058,\r
++      0xb800, 0xd0bc, 0x1904, 0xbdf9, 0x7348, 0xab92, 0x734c, 0xab8e,\r
++      0x968c, 0x00ff, 0x9186, 0x0002, 0x0508, 0x9186, 0x0028, 0x1118,\r
++      0xa87b, 0x001c, 0x00e8, 0xd6dc, 0x01a0, 0xa87b, 0x0015, 0xa87c,\r
++      0xd0ac, 0x0170, 0xa938, 0xaa34, 0x2100, 0x9205, 0x0148, 0x7048,\r
++      0x9106, 0x1118, 0x704c, 0x9206, 0x0118, 0xa992, 0xaa8e, 0xc6dc,\r
++      0x0038, 0xd6d4, 0x0118, 0xa87b, 0x0007, 0x0010, 0xa87b, 0x0000,\r
++      0xa867, 0x0103, 0xae76, 0x901e, 0xd6c4, 0x01d8, 0x9686, 0x0100,\r
++      0x1130, 0x7064, 0x9005, 0x1118, 0xc6c4, 0x0804, 0xbd3f, 0x735c,\r
++      0xab86, 0x83ff, 0x0170, 0x938a, 0x0009, 0x0210, 0x2019, 0x0008,\r
++      0x0036, 0x2308, 0x2019, 0x0018, 0x2011, 0x0025, 0x080c, 0xc40b,\r
++      0x003e, 0xd6cc, 0x0904, 0xbd54, 0x7154, 0xa98a, 0x81ff, 0x0904,\r
++      0xbd54, 0x9192, 0x0021, 0x1278, 0x8304, 0x9098, 0x0018, 0x2011,\r
++      0x0029, 0x080c, 0xc40b, 0x2011, 0x0205, 0x2013, 0x0000, 0x080c,\r
++      0xcef7, 0x0804, 0xbd54, 0xa868, 0xd0fc, 0x0120, 0x2009, 0x0020,\r
++      0xa98a, 0x0c50, 0x00a6, 0x2950, 0x080c, 0xc3aa, 0x00ae, 0x080c,\r
++      0xcef7, 0x080c, 0xc3fb, 0x0804, 0xbd56, 0x080c, 0xcb40, 0x0804,\r
++      0xbd6b, 0xa87c, 0xd0ac, 0x0904, 0xbd7c, 0xa880, 0xd0bc, 0x1904,\r
++      0xbd7c, 0x7348, 0xa838, 0x9306, 0x11c8, 0x734c, 0xa834, 0x931e,\r
++      0x0904, 0xbd7c, 0xd6d4, 0x0190, 0xab38, 0x9305, 0x0904, 0xbd7c,\r
++      0x0068, 0xa87c, 0xd0ac, 0x0904, 0xbd47, 0xa838, 0xa934, 0x9105,\r
++      0x0904, 0xbd47, 0xa880, 0xd0bc, 0x1904, 0xbd47, 0x080c, 0xcb7d,\r
++      0x0804, 0xbd6b, 0x00f6, 0x2079, 0x026c, 0x7c04, 0x7b00, 0x7e0c,\r
++      0x7d08, 0x00fe, 0x0021, 0x0005, 0x0011, 0x0005, 0x0005, 0x0096,\r
++      0x6003, 0x0002, 0x6007, 0x0043, 0x6014, 0x2048, 0xa87c, 0xd0ac,\r
++      0x0128, 0x009e, 0x0005, 0x2130, 0x2228, 0x0058, 0x2400, 0xa9ac,\r
++      0x910a, 0x2300, 0xaab0, 0x9213, 0x2600, 0x9102, 0x2500, 0x9203,\r
++      0x0e90, 0xac46, 0xab4a, 0xae36, 0xad3a, 0x6044, 0xd0fc, 0x190c,\r
++      0xa8bf, 0x604b, 0x0000, 0x080c, 0x1c30, 0x1118, 0x6144, 0x080c,\r
++      0x924a, 0x009e, 0x0005, 0x9182, 0x0057, 0x1220, 0x9182, 0x0040,\r
++      0x0208, 0x000a, 0x0005, 0xbe7a, 0xbe7a, 0xbe7a, 0xbe7a, 0xbe7a,\r
++      0xbe7a, 0xbe7a, 0xbe7a, 0xbe7a, 0xbe7a, 0xbe7c, 0xbe7a, 0xbe7a,\r
++      0xbe7a, 0xbe7a, 0xbe8d, 0xbe7a, 0xbe7a, 0xbe7a, 0xbe7a, 0xbeb1,\r
++      0xbe7a, 0xbe7a, 0x080c, 0x0d7d, 0x6004, 0x9086, 0x0040, 0x1110,\r
++      0x080c, 0x95de, 0x2019, 0x0001, 0x080c, 0xa118, 0x6003, 0x0002,\r
++      0x080c, 0xcf6f, 0x080c, 0x963b, 0x0005, 0x6004, 0x9086, 0x0040,\r
++      0x1110, 0x080c, 0x95de, 0x2019, 0x0001, 0x080c, 0xa118, 0x080c,\r
++      0x963b, 0x080c, 0x31e7, 0x080c, 0xcf67, 0x0096, 0x6114, 0x2148,\r
++      0x080c, 0xc838, 0x0150, 0xa867, 0x0103, 0xa87b, 0x0029, 0xa877,\r
++      0x0000, 0x080c, 0x6d80, 0x080c, 0xca27, 0x009e, 0x080c, 0xabed,\r
++      0x0005, 0x080c, 0x0d7d, 0xa87b, 0x0015, 0xd1fc, 0x0180, 0xa87b,\r
++      0x0007, 0x8002, 0x8000, 0x810a, 0x9189, 0x0000, 0x0006, 0x0016,\r
++      0x2009, 0x1a78, 0x2104, 0x8000, 0x200a, 0x001e, 0x000e, 0xa992,\r
++      0xa88e, 0x0005, 0x9182, 0x0057, 0x1220, 0x9182, 0x0040, 0x0208,\r
++      0x000a, 0x0005, 0xbee9, 0xbee9, 0xbee9, 0xbee9, 0xbee9, 0xbeeb,\r
++      0xbee9, 0xbee9, 0xbfa8, 0xbee9, 0xbee9, 0xbee9, 0xbee9, 0xbee9,\r
++      0xbee9, 0xbee9, 0xbee9, 0xbee9, 0xbee9, 0xc0ec, 0xbee9, 0xc0f6,\r
++      0xbee9, 0x080c, 0x0d7d, 0x601c, 0xd0bc, 0x0178, 0xd084, 0x0168,\r
++      0xd0f4, 0x0120, 0xc084, 0x601e, 0x0804, 0xbcdb, 0x6114, 0x0096,\r
++      0x2148, 0xa87c, 0xc0e5, 0xa87e, 0x009e, 0x0076, 0x00a6, 0x00e6,\r
++      0x0096, 0x2071, 0x0260, 0x6114, 0x2150, 0x601c, 0xd0fc, 0x1110,\r
++      0x7644, 0x0008, 0x9036, 0xb676, 0x96b4, 0x0fff, 0xb77c, 0xc7e5,\r
++      0xb77e, 0x6210, 0x00b6, 0x2258, 0xba3c, 0x82ff, 0x0110, 0x8211,\r
++      0xba3e, 0x00be, 0x86ff, 0x0904, 0xbfa1, 0x9694, 0xff00, 0x9284,\r
++      0x0c00, 0x0120, 0x7048, 0xb092, 0x704c, 0xb08e, 0x9284, 0x0300,\r
++      0x0904, 0xbfa1, 0x9686, 0x0100, 0x1130, 0x7064, 0x9005, 0x1118,\r
++      0xc6c4, 0xb676, 0x0c38, 0x080c, 0x103a, 0x090c, 0x0d7d, 0x2900,\r
++      0xb07a, 0xb77c, 0x97bd, 0x0200, 0xb77e, 0xa867, 0x0103, 0xb068,\r
++      0xa86a, 0xb06c, 0xa86e, 0xb070, 0xa872, 0x7044, 0x9084, 0xf000,\r
++      0x9635, 0xae76, 0x968c, 0x0c00, 0x0120, 0x7348, 0xab92, 0x734c,\r
++      0xab8e, 0x968c, 0x00ff, 0x9186, 0x0002, 0x0180, 0x9186, 0x0028,\r
++      0x1118, 0xa87b, 0x001c, 0x0060, 0xd6dc, 0x0118, 0xa87b, 0x0015,\r
++      0x0038, 0xd6d4, 0x0118, 0xa87b, 0x0007, 0x0010, 0xa87b, 0x0000,\r
++      0xaf7e, 0xb080, 0xa882, 0xb084, 0xa886, 0x901e, 0xd6c4, 0x0190,\r
++      0x735c, 0xab86, 0x83ff, 0x0170, 0x938a, 0x0009, 0x0210, 0x2019,\r
++      0x0008, 0x0036, 0x2308, 0x2019, 0x0018, 0x2011, 0x0025, 0x080c,\r
++      0xc40b, 0x003e, 0xd6cc, 0x01e8, 0x7154, 0xa98a, 0x81ff, 0x01c8,\r
++      0x9192, 0x0021, 0x1260, 0x8304, 0x9098, 0x0018, 0x2011, 0x0029,\r
++      0x080c, 0xc40b, 0x2011, 0x0205, 0x2013, 0x0000, 0x0050, 0xb068,\r
++      0xd0fc, 0x0120, 0x2009, 0x0020, 0xa98a, 0x0c68, 0x2950, 0x080c,\r
++      0xc3aa, 0x080c, 0x1a48, 0x009e, 0x00ee, 0x00ae, 0x007e, 0x0005,\r
++      0x2001, 0x1988, 0x2004, 0x604a, 0x0096, 0x6114, 0x2148, 0xa83c,\r
++      0xa940, 0x9105, 0x1118, 0xa87c, 0xc0dc, 0xa87e, 0x6003, 0x0002,\r
++      0x080c, 0xcf78, 0x0904, 0xc0e7, 0x604b, 0x0000, 0x6010, 0x00b6,\r
++      0x2058, 0xb800, 0x00be, 0xd0bc, 0x1500, 0xd1cc, 0x0904, 0xc0a6,\r
++      0xa978, 0xa868, 0xd0fc, 0x0904, 0xc067, 0x0016, 0xa87c, 0x0006,\r
++      0xa880, 0x0006, 0x00a6, 0x2150, 0xb174, 0x9184, 0x00ff, 0x90b6,\r
++      0x0002, 0x0904, 0xc035, 0x9086, 0x0028, 0x1904, 0xc021, 0xa87b,\r
++      0x001c, 0xb07b, 0x001c, 0x0804, 0xc03d, 0x6024, 0xd0f4, 0x11d0,\r
++      0xa838, 0xaa34, 0x9205, 0x09c8, 0xa838, 0xaa90, 0x9206, 0x1120,\r
++      0xa88c, 0xaa34, 0x9206, 0x0988, 0x6024, 0xd0d4, 0x1148, 0xa9ac,\r
++      0xa834, 0x9102, 0x603a, 0xa9b0, 0xa838, 0x9103, 0x603e, 0x6024,\r
++      0xc0f5, 0x6026, 0x6010, 0x00b6, 0x2058, 0xb83c, 0x8000, 0xb83e,\r
++      0x00be, 0x601c, 0xc0fc, 0x601e, 0x9006, 0xa876, 0xa892, 0xa88e,\r
++      0xa87c, 0xc0e4, 0xa87e, 0xd0cc, 0x0140, 0xc0cc, 0xa87e, 0x0096,\r
++      0xa878, 0x2048, 0x080c, 0x0fec, 0x009e, 0x080c, 0xcb7d, 0x0804,\r
++      0xc0e7, 0xd1dc, 0x0158, 0xa87b, 0x0015, 0xb07b, 0x0015, 0x080c,\r
++      0xce1a, 0x0118, 0xb174, 0xc1dc, 0xb176, 0x0078, 0xd1d4, 0x0128,\r
++      0xa87b, 0x0007, 0xb07b, 0x0007, 0x0040, 0xa87c, 0xd0ac, 0x0128,\r
++      0xa834, 0xa938, 0x9115, 0x190c, 0xbeb3, 0xa87c, 0xb07e, 0xa890,\r
++      0xb092, 0xa88c, 0xb08e, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0019,\r
++      0x20a0, 0x20a9, 0x0020, 0x8a06, 0x8006, 0x8007, 0x9094, 0x003f,\r
++      0x22e0, 0x9084, 0xffc0, 0x9080, 0x0019, 0x2098, 0x4003, 0x00ae,\r
++      0x000e, 0xa882, 0x000e, 0xa87e, 0x080c, 0xcef7, 0x001e, 0xa874,\r
++      0x0006, 0x2148, 0x080c, 0x0fec, 0x001e, 0x0804, 0xc0d3, 0x0016,\r
++      0x00a6, 0x2150, 0xb174, 0x9184, 0x00ff, 0x90b6, 0x0002, 0x01e0,\r
++      0x9086, 0x0028, 0x1128, 0xa87b, 0x001c, 0xb07b, 0x001c, 0x00e0,\r
++      0xd1dc, 0x0158, 0xa87b, 0x0015, 0xb07b, 0x0015, 0x080c, 0xce1a,\r
++      0x0118, 0xb174, 0xc1dc, 0xb176, 0x0078, 0xd1d4, 0x0128, 0xa87b,\r
++      0x0007, 0xb07b, 0x0007, 0x0040, 0xa87c, 0xd0ac, 0x0128, 0xa834,\r
++      0xa938, 0x9115, 0x190c, 0xbeb3, 0xa890, 0xb092, 0xa88c, 0xb08e,\r
++      0xa87c, 0xb07e, 0x00ae, 0x080c, 0x0fec, 0x009e, 0x080c, 0xcef7,\r
++      0xa974, 0x0016, 0x080c, 0xc3fb, 0x001e, 0x0468, 0xa867, 0x0103,\r
++      0xa974, 0x9184, 0x00ff, 0x90b6, 0x0002, 0x01b0, 0x9086, 0x0028,\r
++      0x1118, 0xa87b, 0x001c, 0x00d0, 0xd1dc, 0x0148, 0xa87b, 0x0015,\r
++      0x080c, 0xce1a, 0x0118, 0xa974, 0xc1dc, 0xa976, 0x0078, 0xd1d4,\r
++      0x0118, 0xa87b, 0x0007, 0x0050, 0xa87b, 0x0000, 0xa87c, 0xd0ac,\r
++      0x0128, 0xa834, 0xa938, 0x9115, 0x190c, 0xbeb3, 0xa974, 0x0016,\r
++      0x080c, 0x6b96, 0x001e, 0x6010, 0x00b6, 0x2058, 0xba3c, 0x82ff,\r
++      0x0110, 0x8211, 0xba3e, 0xb8d0, 0x9005, 0x0120, 0x0016, 0x080c,\r
++      0x6750, 0x001e, 0x00be, 0xd1e4, 0x1120, 0x080c, 0xabed, 0x009e,\r
++      0x0005, 0x080c, 0xcb40, 0x0cd8, 0x6114, 0x0096, 0x2148, 0xa97c,\r
++      0x080c, 0xcf78, 0x190c, 0x1a56, 0x009e, 0x0005, 0x0096, 0x6114,\r
++      0x2148, 0xa83c, 0xa940, 0x9105, 0x01e8, 0xa877, 0x0000, 0xa87b,\r
++      0x0000, 0xa867, 0x0103, 0x00b6, 0x6010, 0x2058, 0xa834, 0xa938,\r
++      0x9115, 0x11a0, 0x080c, 0x6b96, 0xba3c, 0x8211, 0x0208, 0xba3e,\r
++      0xb8d0, 0x9005, 0x0110, 0x080c, 0x6750, 0x080c, 0xabed, 0x00be,\r
++      0x009e, 0x0005, 0xa87c, 0xc0dc, 0xa87e, 0x08f8, 0xb800, 0xd0bc,\r
++      0x1120, 0xa834, 0x080c, 0xbeb3, 0x0c28, 0xa880, 0xd0bc, 0x1dc8,\r
++      0x080c, 0xcb7d, 0x0c60, 0x080c, 0x95de, 0x0010, 0x080c, 0x963b,\r
++      0x601c, 0xd084, 0x0110, 0x080c, 0x1a6a, 0x080c, 0xc838, 0x01f0,\r
++      0x0096, 0x6114, 0x2148, 0x080c, 0xca4d, 0x1118, 0x080c, 0xb5b5,\r
++      0x00a0, 0xa867, 0x0103, 0x2009, 0x180c, 0x210c, 0xd18c, 0x1198,\r
++      0xd184, 0x1170, 0x6108, 0xa97a, 0x918e, 0x0029, 0x1110, 0x080c,\r
++      0xe621, 0xa877, 0x0000, 0x080c, 0x6d80, 0x009e, 0x0804, 0xac28,\r
++      0xa87b, 0x0004, 0x0cb0, 0xa87b, 0x0004, 0x0c98, 0x9182, 0x0057,\r
++      0x1220, 0x9182, 0x0040, 0x0208, 0x000a, 0x0005, 0xc17d, 0xc17d,\r
++      0xc17d, 0xc17d, 0xc17d, 0xc17f, 0xc17d, 0xc17d, 0xc17d, 0xc17d,\r
++      0xc17d, 0xc17d, 0xc17d, 0xc17d, 0xc17d, 0xc17d, 0xc17d, 0xc17d,\r
++      0xc17d, 0xc17d, 0xc1a3, 0xc17d, 0xc17d, 0x080c, 0x0d7d, 0x080c,\r
++      0x56e2, 0x01f8, 0x6014, 0x7144, 0x918c, 0x0fff, 0x9016, 0xd1c4,\r
++      0x0118, 0x7264, 0x9294, 0x00ff, 0x0096, 0x904d, 0x0188, 0xa87b,\r
++      0x0000, 0xa864, 0x9086, 0x0139, 0x0128, 0xa867, 0x0103, 0xa976,\r
++      0xaa96, 0x0030, 0xa897, 0x4000, 0xa99a, 0xaa9e, 0x080c, 0x6d80,\r
++      0x009e, 0x0804, 0xabed, 0x080c, 0x56e2, 0x0dd8, 0x6014, 0x900e,\r
++      0x9016, 0x0c10, 0x9182, 0x0085, 0x0002, 0xc1bc, 0xc1ba, 0xc1ba,\r
++      0xc1c8, 0xc1ba, 0xc1ba, 0xc1ba, 0xc1ba, 0xc1ba, 0xc1ba, 0xc1ba,\r
++      0xc1ba, 0xc1ba, 0x080c, 0x0d7d, 0x6003, 0x0001, 0x6106, 0x0126,\r
++      0x2091, 0x8000, 0x2009, 0x8020, 0x080c, 0x921e, 0x012e, 0x0005,\r
++      0x0026, 0x0056, 0x00d6, 0x00e6, 0x2071, 0x0260, 0x7224, 0x6216,\r
++      0x7220, 0x080c, 0xc826, 0x01a0, 0x2268, 0x6800, 0x9086, 0x0000,\r
++      0x0178, 0x6010, 0x6d10, 0x952e, 0x1158, 0x00c6, 0x2d60, 0x080c,\r
++      0xc436, 0x00ce, 0x0128, 0x6803, 0x0002, 0x6007, 0x0086, 0x0010,\r
++      0x6007, 0x0087, 0x6003, 0x0001, 0x2009, 0x8020, 0x080c, 0x921e,\r
++      0x9280, 0x0004, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc, 0x0140,\r
++      0x6824, 0xd0ec, 0x0128, 0x00c6, 0x2260, 0x080c, 0xcb7d, 0x00ce,\r
++      0x00ee, 0x00de, 0x005e, 0x002e, 0x0005, 0x9186, 0x0013, 0x1160,\r
++      0x6004, 0x908a, 0x0085, 0x0a0c, 0x0d7d, 0x908a, 0x0092, 0x1a0c,\r
++      0x0d7d, 0x9082, 0x0085, 0x00e2, 0x9186, 0x0027, 0x0120, 0x9186,\r
++      0x0014, 0x190c, 0x0d7d, 0x080c, 0x95de, 0x0096, 0x6014, 0x2048,\r
++      0x080c, 0xc838, 0x0140, 0xa867, 0x0103, 0xa877, 0x0000, 0xa87b,\r
++      0x0029, 0x080c, 0x6d80, 0x009e, 0x080c, 0xac28, 0x0804, 0x96a0,\r
++      0xc23d, 0xc23f, 0xc23f, 0xc23d, 0xc23d, 0xc23d, 0xc23d, 0xc23d,\r
++      0xc23d, 0xc23d, 0xc23d, 0xc23d, 0xc23d, 0x080c, 0x0d7d, 0x080c,\r
++      0xac28, 0x0005, 0x9186, 0x0013, 0x1130, 0x6004, 0x9082, 0x0085,\r
++      0x2008, 0x0804, 0xc28e, 0x9186, 0x0027, 0x1558, 0x080c, 0x95de,\r
++      0x080c, 0x31e7, 0x080c, 0xcf67, 0x0096, 0x6014, 0x2048, 0x080c,\r
++      0xc838, 0x0150, 0xa867, 0x0103, 0xa877, 0x0000, 0xa87b, 0x0029,\r
++      0x080c, 0x6d80, 0x080c, 0xca27, 0x009e, 0x080c, 0xabed, 0x0005,\r
++      0x9186, 0x0089, 0x0118, 0x9186, 0x008a, 0x1140, 0x080c, 0xaaa8,\r
++      0x0128, 0x9086, 0x000c, 0x0904, 0xc2c6, 0x0000, 0x080c, 0xaca9,\r
++      0x0c70, 0x9186, 0x0014, 0x1d60, 0x080c, 0x95de, 0x0096, 0x6014,\r
++      0x2048, 0x080c, 0xc838, 0x0d00, 0xa867, 0x0103, 0xa877, 0x0000,\r
++      0xa87b, 0x0006, 0xa880, 0xc0ec, 0xa882, 0x0890, 0x0002, 0xc29e,\r
++      0xc29c, 0xc29c, 0xc29c, 0xc29c, 0xc29c, 0xc2b2, 0xc29c, 0xc29c,\r
++      0xc29c, 0xc29c, 0xc29c, 0xc29c, 0x080c, 0x0d7d, 0x6034, 0x908c,\r
++      0xff00, 0x810f, 0x9186, 0x0039, 0x0118, 0x9186, 0x0035, 0x1118,\r
++      0x2001, 0x1986, 0x0010, 0x2001, 0x1987, 0x2004, 0x601a, 0x6003,\r
++      0x000c, 0x0005, 0x6034, 0x908c, 0xff00, 0x810f, 0x9186, 0x0039,\r
++      0x0118, 0x9186, 0x0035, 0x1118, 0x2001, 0x1986, 0x0010, 0x2001,\r
++      0x1987, 0x2004, 0x601a, 0x6003, 0x000e, 0x0005, 0x9182, 0x0092,\r
++      0x1220, 0x9182, 0x0085, 0x0208, 0x0012, 0x0804, 0xaca9, 0xc2dc,\r
++      0xc2dc, 0xc2dc, 0xc2dc, 0xc2de, 0xc32b, 0xc2dc, 0xc2dc, 0xc2dc,\r
++      0xc2dc, 0xc2dc, 0xc2dc, 0xc2dc, 0x080c, 0x0d7d, 0x0096, 0x6010,\r
++      0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc, 0x0168, 0x6034, 0x908c,\r
++      0xff00, 0x810f, 0x9186, 0x0039, 0x0118, 0x9186, 0x0035, 0x1118,\r
++      0x009e, 0x0804, 0xc33f, 0x080c, 0xc838, 0x1118, 0x080c, 0xca27,\r
++      0x0068, 0x6014, 0x2048, 0x080c, 0xcf7e, 0x1110, 0x080c, 0xca27,\r
++      0xa867, 0x0103, 0x080c, 0xcf32, 0x080c, 0x6d80, 0x00d6, 0x2c68,\r
++      0x080c, 0xab97, 0x01d0, 0x6003, 0x0001, 0x6007, 0x001e, 0x600b,\r
++      0xffff, 0x2009, 0x026e, 0x210c, 0x613a, 0x2009, 0x026f, 0x210c,\r
++      0x613e, 0x6910, 0x6112, 0x080c, 0xcccc, 0x695c, 0x615e, 0x6023,\r
++      0x0001, 0x2009, 0x8020, 0x080c, 0x921e, 0x2d60, 0x00de, 0x080c,\r
++      0xabed, 0x009e, 0x0005, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be,\r
++      0xd0bc, 0x05a0, 0x6034, 0x908c, 0xff00, 0x810f, 0x9186, 0x0035,\r
++      0x0130, 0x9186, 0x001e, 0x0118, 0x9186, 0x0039, 0x1538, 0x00d6,\r
++      0x2c68, 0x080c, 0xceca, 0x11f0, 0x080c, 0xab97, 0x01d8, 0x6106,\r
++      0x6003, 0x0001, 0x6023, 0x0001, 0x6910, 0x6112, 0x692c, 0x612e,\r
++      0x6930, 0x6132, 0x6934, 0x918c, 0x00ff, 0x6136, 0x6938, 0x613a,\r
++      0x693c, 0x613e, 0x695c, 0x615e, 0x080c, 0xcccc, 0x2009, 0x8020,\r
++      0x080c, 0x921e, 0x2d60, 0x00de, 0x0804, 0xabed, 0x0096, 0x6014,\r
++      0x2048, 0x080c, 0xc838, 0x01c8, 0xa867, 0x0103, 0xa880, 0xd0b4,\r
++      0x0128, 0xc0ec, 0xa882, 0xa87b, 0x0006, 0x0048, 0xd0bc, 0x0118,\r
++      0xa87b, 0x0002, 0x0020, 0xa87b, 0x0005, 0x080c, 0xcb3c, 0xa877,\r
++      0x0000, 0x080c, 0x6d80, 0x080c, 0xca27, 0x009e, 0x0804, 0xabed,\r
++      0x0016, 0x0096, 0x6014, 0x2048, 0x080c, 0xc838, 0x0140, 0xa867,\r
++      0x0103, 0xa87b, 0x0028, 0xa877, 0x0000, 0x080c, 0x6d80, 0x009e,\r
++      0x001e, 0x9186, 0x0013, 0x0158, 0x9186, 0x0014, 0x0130, 0x9186,\r
++      0x0027, 0x0118, 0x080c, 0xaca9, 0x0020, 0x080c, 0x95de, 0x080c,\r
++      0xac28, 0x0005, 0x0056, 0x0066, 0x0096, 0x00a6, 0x2029, 0x0001,\r
++      0x9182, 0x0101, 0x1208, 0x0010, 0x2009, 0x0100, 0x2130, 0x8304,\r
++      0x9098, 0x0018, 0x2009, 0x0020, 0x2011, 0x0029, 0x080c, 0xc40b,\r
++      0x96b2, 0x0020, 0xb004, 0x904d, 0x0110, 0x080c, 0x0fec, 0x080c,\r
++      0x103a, 0x0520, 0x8528, 0xa867, 0x0110, 0xa86b, 0x0000, 0x2920,\r
++      0xb406, 0x968a, 0x003d, 0x1228, 0x2608, 0x2011, 0x001b, 0x0499,\r
++      0x00a8, 0x96b2, 0x003c, 0x2009, 0x003c, 0x2950, 0x2011, 0x001b,\r
++      0x0451, 0x0c28, 0x2001, 0x0205, 0x2003, 0x0000, 0x00ae, 0x852f,\r
++      0x95ad, 0x0003, 0xb566, 0x95ac, 0x0000, 0x0048, 0x2001, 0x0205,\r
++      0x2003, 0x0000, 0x00ae, 0x852f, 0x95ad, 0x0003, 0xb566, 0x009e,\r
++      0x006e, 0x005e, 0x0005, 0x00a6, 0x89ff, 0x0158, 0xa804, 0x9055,\r
++      0x0130, 0xa807, 0x0000, 0x080c, 0x6d80, 0x2a48, 0x0cb8, 0x080c,\r
++      0x6d80, 0x00ae, 0x0005, 0x00f6, 0x2079, 0x0200, 0x7814, 0x9085,\r
++      0x0080, 0x7816, 0xd184, 0x0108, 0x8108, 0x810c, 0x20a9, 0x0001,\r
++      0xa860, 0x20e8, 0xa85c, 0x9200, 0x20a0, 0x20e1, 0x0000, 0x2300,\r
++      0x9e00, 0x2098, 0x4003, 0x8318, 0x9386, 0x0020, 0x1148, 0x2018,\r
++      0x2300, 0x9e00, 0x2098, 0x7814, 0x8000, 0x9085, 0x0080, 0x7816,\r
++      0x8109, 0x1d80, 0x7817, 0x0000, 0x00fe, 0x0005, 0x0066, 0x0126,\r
++      0x2091, 0x8000, 0x2031, 0x0001, 0x6020, 0x9084, 0x000f, 0x0083,\r
++      0x012e, 0x006e, 0x0005, 0x0126, 0x2091, 0x8000, 0x0066, 0x2031,\r
++      0x0000, 0x6020, 0x9084, 0x000f, 0x001b, 0x006e, 0x012e, 0x0005,\r
++      0xc488, 0xc488, 0xc483, 0xc4ac, 0xc460, 0xc483, 0xc462, 0xc483,\r
++      0xc460, 0x90e4, 0xc483, 0xc483, 0xc483, 0xc460, 0xc460, 0xc460,\r
++      0x080c, 0x0d7d, 0x6010, 0x9080, 0x0000, 0x2004, 0xd0bc, 0x190c,\r
++      0xc4ac, 0x0036, 0x6014, 0x0096, 0x2048, 0xa880, 0x009e, 0xd0cc,\r
++      0x0118, 0x2019, 0x000c, 0x0038, 0xd094, 0x0118, 0x2019, 0x000d,\r
++      0x0010, 0x2019, 0x0010, 0x080c, 0xde1b, 0x6023, 0x0006, 0x6003,\r
++      0x0007, 0x003e, 0x0005, 0x9006, 0x0005, 0x9085, 0x0001, 0x0005,\r
++      0x0096, 0x86ff, 0x11e8, 0x6014, 0x2048, 0x080c, 0xc838, 0x01d0,\r
++      0x6043, 0xffff, 0xa864, 0x9086, 0x0139, 0x1128, 0xa87b, 0x0005,\r
++      0xa883, 0x0000, 0x0028, 0x900e, 0x2001, 0x0005, 0x080c, 0x6fc0,\r
++      0x080c, 0xcb3c, 0x080c, 0x6d74, 0x080c, 0xac28, 0x9085, 0x0001,\r
++      0x009e, 0x0005, 0x9006, 0x0ce0, 0x080c, 0xa896, 0x080c, 0xcf8c,\r
++      0x6000, 0x908a, 0x0016, 0x1a0c, 0x0d7d, 0x002b, 0x0106, 0x080c,\r
++      0xa8b2, 0x010e, 0x0005, 0xc4cb, 0xc4f9, 0xc4cd, 0xc520, 0xc4f4,\r
++      0xc4cb, 0xc483, 0xc488, 0xc488, 0xc483, 0xc483, 0xc483, 0xc483,\r
++      0xc483, 0xc483, 0xc483, 0x080c, 0x0d7d, 0x86ff, 0x1510, 0x6020,\r
++      0x9086, 0x0006, 0x01f0, 0x0096, 0x6014, 0x2048, 0x080c, 0xc838,\r
++      0x0158, 0xa87c, 0xd0cc, 0x0130, 0x0096, 0xa878, 0x2048, 0x080c,\r
++      0x0fec, 0x009e, 0x080c, 0xcb3c, 0x009e, 0x080c, 0xcf0c, 0x6007,\r
++      0x0085, 0x6003, 0x000b, 0x6023, 0x0002, 0x2009, 0x8020, 0x080c,\r
++      0x9200, 0x9085, 0x0001, 0x0005, 0x0066, 0x080c, 0x1a6a, 0x006e,\r
++      0x08a0, 0x00e6, 0x2071, 0x19e7, 0x7030, 0x9c06, 0x1120, 0x080c,\r
++      0xa098, 0x00ee, 0x0850, 0x6020, 0x9084, 0x000f, 0x9086, 0x0006,\r
++      0x1150, 0x0086, 0x0096, 0x2049, 0x0001, 0x2c40, 0x080c, 0xa218,\r
++      0x009e, 0x008e, 0x0040, 0x0066, 0x080c, 0x9f94, 0x190c, 0x0d7d,\r
++      0x080c, 0x9fa2, 0x006e, 0x00ee, 0x1904, 0xc4cd, 0x0804, 0xc483,\r
++      0x0036, 0x00e6, 0x2071, 0x19e7, 0x704c, 0x9c06, 0x1138, 0x901e,\r
++      0x080c, 0xa118, 0x00ee, 0x003e, 0x0804, 0xc4cd, 0x080c, 0xa34e,\r
++      0x00ee, 0x003e, 0x1904, 0xc4cd, 0x0804, 0xc483, 0x00c6, 0x0066,\r
++      0x6020, 0x9084, 0x000f, 0x001b, 0x006e, 0x00ce, 0x0005, 0xc556,\r
++      0xc618, 0xc77f, 0xc55e, 0xac28, 0xc556, 0xde0d, 0xcf74, 0xc618,\r
++      0x90ab, 0xc7fe, 0xc54f, 0xc54f, 0xc54f, 0xc54f, 0xc54f, 0x080c,\r
++      0x0d7d, 0x080c, 0xca4d, 0x1110, 0x080c, 0xb5b5, 0x0005, 0x080c,\r
++      0x95de, 0x0804, 0xabed, 0x601b, 0x0001, 0x0005, 0x080c, 0xc838,\r
++      0x0130, 0x6014, 0x0096, 0x2048, 0x2c00, 0xa896, 0x009e, 0x080c,\r
++      0xa896, 0x080c, 0xcf8c, 0x6000, 0x908a, 0x0016, 0x1a0c, 0x0d7d,\r
++      0x0013, 0x0804, 0xa8b2, 0xc583, 0xc585, 0xc5af, 0xc5c3, 0xc5ee,\r
++      0xc583, 0xc556, 0xc556, 0xc556, 0xc5ca, 0xc5ca, 0xc583, 0xc583,\r
++      0xc583, 0xc583, 0xc5d4, 0x080c, 0x0d7d, 0x00e6, 0x6014, 0x0096,\r
++      0x2048, 0xa880, 0xc0b5, 0xa882, 0x009e, 0x2071, 0x19e7, 0x7030,\r
++      0x9c06, 0x01d0, 0x0066, 0x080c, 0x9f94, 0x190c, 0x0d7d, 0x080c,\r
++      0x9fa2, 0x006e, 0x080c, 0xcf0c, 0x6007, 0x0085, 0x6003, 0x000b,\r
++      0x6023, 0x0002, 0x2001, 0x1987, 0x2004, 0x601a, 0x2009, 0x8020,\r
++      0x080c, 0x9200, 0x00ee, 0x0005, 0x601b, 0x0001, 0x0cd8, 0x0096,\r
++      0x6014, 0x2048, 0xa880, 0xc0b5, 0xa882, 0x009e, 0x080c, 0xcf0c,\r
++      0x6007, 0x0085, 0x6003, 0x000b, 0x6023, 0x0002, 0x2009, 0x8020,\r
++      0x080c, 0x9200, 0x0005, 0x080c, 0xa896, 0x080c, 0xaa2a, 0x080c,\r
++      0xa8b2, 0x0c28, 0x0096, 0x601b, 0x0001, 0x6014, 0x2048, 0xa880,\r
++      0xc0b5, 0xa882, 0x009e, 0x0005, 0x080c, 0x56e2, 0x01a8, 0x6014,\r
++      0x0096, 0x904d, 0x0180, 0xa864, 0xa867, 0x0103, 0xa87b, 0x0006,\r
++      0x9086, 0x0139, 0x1140, 0xa867, 0x0139, 0xa897, 0x4005, 0xa89b,\r
++      0x0004, 0x080c, 0x6d80, 0x009e, 0x0804, 0xabed, 0x6014, 0x0096,\r
++      0x904d, 0x0508, 0x080c, 0xcf78, 0x01f0, 0x080c, 0xa8b2, 0x2001,\r
++      0x180f, 0x2004, 0xd0c4, 0x0110, 0x009e, 0x0005, 0xa884, 0x009e,\r
++      0x8003, 0x800b, 0x810b, 0x9108, 0x611a, 0x2001, 0x0037, 0x2c08,\r
++      0x080c, 0x1679, 0x6000, 0x9086, 0x0004, 0x1120, 0x2009, 0x0048,\r
++      0x080c, 0xac8c, 0x0005, 0x009e, 0x080c, 0x1a6a, 0x0804, 0xc5af,\r
++      0x6000, 0x908a, 0x0016, 0x1a0c, 0x0d7d, 0x000b, 0x0005, 0xc62f,\r
++      0xc55b, 0xc631, 0xc62f, 0xc631, 0xc631, 0xc557, 0xc62f, 0xc551,\r
++      0xc551, 0xc62f, 0xc62f, 0xc62f, 0xc62f, 0xc62f, 0xc62f, 0x080c,\r
++      0x0d7d, 0x6010, 0x00b6, 0x2058, 0xb804, 0x9084, 0x00ff, 0x00be,\r
++      0x908a, 0x000c, 0x1a0c, 0x0d7d, 0x00b6, 0x0013, 0x00be, 0x0005,\r
++      0xc64c, 0xc719, 0xc64e, 0xc68e, 0xc64e, 0xc68e, 0xc64e, 0xc65c,\r
++      0xc64c, 0xc68e, 0xc64c, 0xc67d, 0x080c, 0x0d7d, 0x6004, 0x908e,\r
++      0x0016, 0x05c0, 0x908e, 0x0004, 0x05a8, 0x908e, 0x0002, 0x0590,\r
++      0x908e, 0x0052, 0x0904, 0xc715, 0x6004, 0x080c, 0xca4d, 0x0904,\r
++      0xc732, 0x908e, 0x0004, 0x1110, 0x080c, 0x321c, 0x908e, 0x0021,\r
++      0x0904, 0xc736, 0x908e, 0x0022, 0x0904, 0xc77a, 0x908e, 0x003d,\r
++      0x0904, 0xc736, 0x908e, 0x0039, 0x0904, 0xc73a, 0x908e, 0x0035,\r
++      0x0904, 0xc73a, 0x908e, 0x001e, 0x0178, 0x908e, 0x0001, 0x1140,\r
++      0x6010, 0x2058, 0xb804, 0x9084, 0x00ff, 0x9086, 0x0006, 0x0110,\r
++      0x080c, 0x31e7, 0x080c, 0xb5b5, 0x0804, 0xac28, 0x00c6, 0x00d6,\r
++      0x6104, 0x9186, 0x0016, 0x0904, 0xc706, 0x9186, 0x0002, 0x1904,\r
++      0xc6db, 0x2001, 0x1837, 0x2004, 0xd08c, 0x11c8, 0x080c, 0x74e9,\r
++      0x11b0, 0x080c, 0xcf52, 0x0138, 0x080c, 0x750c, 0x1120, 0x080c,\r
++      0x73f4, 0x0804, 0xc763, 0x2001, 0x197d, 0x2003, 0x0001, 0x2001,\r
++      0x1800, 0x2003, 0x0001, 0x080c, 0x741a, 0x0804, 0xc763, 0x6010,\r
++      0x2058, 0x2001, 0x1837, 0x2004, 0xd0ac, 0x1904, 0xc763, 0xb8a0,\r
++      0x9084, 0xff80, 0x1904, 0xc763, 0xb840, 0x9084, 0x00ff, 0x9005,\r
++      0x0190, 0x8001, 0xb842, 0x6017, 0x0000, 0x6023, 0x0007, 0x601b,\r
++      0x0398, 0x604b, 0x0000, 0x080c, 0xab97, 0x0128, 0x2b00, 0x6012,\r
++      0x6023, 0x0001, 0x0458, 0x00de, 0x00ce, 0x6004, 0x908e, 0x0002,\r
++      0x11a0, 0x6010, 0x2058, 0xb8a0, 0x9086, 0x007e, 0x1170, 0x2009,\r
++      0x1837, 0x2104, 0xc085, 0x200a, 0x00e6, 0x2071, 0x1800, 0x080c,\r
++      0x5fbc, 0x00ee, 0x080c, 0xb5b5, 0x0030, 0x080c, 0xb5b5, 0x080c,\r
++      0x31e7, 0x080c, 0xcf67, 0x00e6, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0x321c, 0x012e, 0x00ee, 0x080c, 0xac28, 0x0005, 0x2001, 0x0002,\r
++      0x080c, 0x6575, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x9225,\r
++      0x080c, 0x96a0, 0x00de, 0x00ce, 0x0c80, 0x080c, 0x321c, 0x0804,\r
++      0xc68a, 0x00c6, 0x00d6, 0x6104, 0x9186, 0x0016, 0x0d38, 0x6010,\r
++      0x2058, 0xb840, 0x9084, 0x00ff, 0x9005, 0x0904, 0xc6db, 0x8001,\r
++      0xb842, 0x6003, 0x0001, 0x080c, 0x9225, 0x080c, 0x96a0, 0x00de,\r
++      0x00ce, 0x0898, 0x080c, 0xb5b5, 0x0804, 0xc68c, 0x080c, 0xb5f1,\r
++      0x0804, 0xc68c, 0x00d6, 0x2c68, 0x6104, 0x080c, 0xceca, 0x00de,\r
++      0x0118, 0x080c, 0xabed, 0x00f0, 0x6004, 0x8007, 0x6134, 0x918c,\r
++      0x00ff, 0x9105, 0x6036, 0x6007, 0x0085, 0x6003, 0x000b, 0x6023,\r
++      0x0002, 0x603c, 0x600a, 0x2001, 0x1987, 0x2004, 0x601a, 0x602c,\r
++      0x2c08, 0x2060, 0x6024, 0xc0b5, 0x6026, 0x2160, 0x2009, 0x8020,\r
++      0x080c, 0x921e, 0x0005, 0x00de, 0x00ce, 0x080c, 0xb5b5, 0x080c,\r
++      0x31e7, 0x00e6, 0x0126, 0x2091, 0x8000, 0x080c, 0x321c, 0x6017,\r
++      0x0000, 0x6023, 0x0007, 0x601b, 0x0398, 0x604b, 0x0000, 0x012e,\r
++      0x00ee, 0x0005, 0x080c, 0xb029, 0x1904, 0xc732, 0x0005, 0x6000,\r
++      0x908a, 0x0016, 0x1a0c, 0x0d7d, 0x0096, 0x00d6, 0x001b, 0x00de,\r
++      0x009e, 0x0005, 0xc79a, 0xc79a, 0xc79a, 0xc79a, 0xc79a, 0xc79a,\r
++      0xc79a, 0xc79a, 0xc79a, 0xc556, 0xc79a, 0xc55b, 0xc79c, 0xc55b,\r
++      0xc7a9, 0xc79a, 0x080c, 0x0d7d, 0x6004, 0x9086, 0x008b, 0x0148,\r
++      0x6007, 0x008b, 0x6003, 0x000d, 0x2009, 0x8020, 0x080c, 0x921e,\r
++      0x0005, 0x080c, 0xcf46, 0x0118, 0x080c, 0xcf59, 0x0010, 0x080c,\r
++      0xcf67, 0x080c, 0xca27, 0x080c, 0xc838, 0x0570, 0x080c, 0x31e7,\r
++      0x080c, 0xc838, 0x0168, 0x6014, 0x2048, 0xa867, 0x0103, 0xa87b,\r
++      0x0006, 0xa877, 0x0000, 0xa880, 0xc0ed, 0xa882, 0x080c, 0x6d80,\r
++      0x2c68, 0x080c, 0xab97, 0x0150, 0x6810, 0x6012, 0x080c, 0xcccc,\r
++      0x00c6, 0x2d60, 0x080c, 0xac28, 0x00ce, 0x0008, 0x2d60, 0x6017,\r
++      0x0000, 0x6023, 0x0001, 0x6007, 0x0001, 0x6003, 0x0001, 0x080c,\r
++      0x9225, 0x080c, 0x96a0, 0x00c8, 0x080c, 0xcf46, 0x0138, 0x6034,\r
++      0x9086, 0x4000, 0x1118, 0x080c, 0x31e7, 0x08d0, 0x6034, 0x908c,\r
++      0xff00, 0x810f, 0x9186, 0x0039, 0x0118, 0x9186, 0x0035, 0x1118,\r
++      0x080c, 0x31e7, 0x0868, 0x080c, 0xac28, 0x0005, 0x6000, 0x908a,\r
++      0x0016, 0x1a0c, 0x0d7d, 0x0002, 0xc814, 0xc814, 0xc816, 0xc816,\r
++      0xc816, 0xc814, 0xc814, 0xac28, 0xc814, 0xc814, 0xc814, 0xc814,\r
++      0xc814, 0xc814, 0xc814, 0xc814, 0x080c, 0x0d7d, 0x080c, 0xa896,\r
++      0x080c, 0xaa2a, 0x080c, 0xa8b2, 0x6114, 0x0096, 0x2148, 0xa87b,\r
++      0x0006, 0x080c, 0x6d80, 0x009e, 0x0804, 0xabed, 0x9284, 0x0003,\r
++      0x1158, 0x9282, 0x1ddc, 0x0240, 0x2001, 0x181a, 0x2004, 0x9202,\r
++      0x1218, 0x9085, 0x0001, 0x0005, 0x9006, 0x0ce8, 0x0096, 0x0028,\r
++      0x0096, 0x0006, 0x6014, 0x2048, 0x000e, 0x0006, 0x9984, 0xf000,\r
++      0x9086, 0xf000, 0x0110, 0x080c, 0x10e5, 0x000e, 0x009e, 0x0005,\r
++      0x00e6, 0x00c6, 0x0036, 0x0006, 0x0126, 0x2091, 0x8000, 0x2061,\r
++      0x1ddc, 0x2071, 0x1800, 0x7354, 0x7074, 0x9302, 0x1640, 0x6020,\r
++      0x9206, 0x11f8, 0x080c, 0xcf52, 0x0180, 0x9286, 0x0001, 0x1168,\r
++      0x6004, 0x9086, 0x0004, 0x1148, 0x080c, 0x31e7, 0x080c, 0xcf67,\r
++      0x00c6, 0x080c, 0xac28, 0x00ce, 0x0060, 0x080c, 0xcc3e, 0x0148,\r
++      0x080c, 0xca4d, 0x1110, 0x080c, 0xb5b5, 0x00c6, 0x080c, 0xabed,\r
++      0x00ce, 0x9ce0, 0x001c, 0x7068, 0x9c02, 0x1208, 0x08a0, 0x012e,\r
++      0x000e, 0x003e, 0x00ce, 0x00ee, 0x0005, 0x00e6, 0x00c6, 0x0016,\r
++      0x9188, 0x1000, 0x210c, 0x81ff, 0x0128, 0x2061, 0x1b32, 0x6112,\r
++      0x080c, 0x31e7, 0x9006, 0x0010, 0x9085, 0x0001, 0x001e, 0x00ce,\r
++      0x00ee, 0x0005, 0x00c6, 0x0126, 0x2091, 0x8000, 0x080c, 0xab97,\r
++      0x01b0, 0x665e, 0x2b00, 0x6012, 0x080c, 0x56e2, 0x0118, 0x080c,\r
++      0xc969, 0x0168, 0x080c, 0xcccc, 0x6023, 0x0003, 0x2009, 0x004b,\r
++      0x080c, 0xac8c, 0x9085, 0x0001, 0x012e, 0x00ce, 0x0005, 0x9006,\r
++      0x0cd8, 0x00c6, 0x0126, 0x2091, 0x8000, 0xbaa0, 0x080c, 0xac5f,\r
++      0x0580, 0x605f, 0x0000, 0x2b00, 0x6012, 0x080c, 0xcccc, 0x6023,\r
++      0x0003, 0x0016, 0x080c, 0xa896, 0x080c, 0x93a5, 0x0076, 0x903e,\r
++      0x080c, 0x9277, 0x2c08, 0x080c, 0xdfeb, 0x007e, 0x080c, 0xa8b2,\r
++      0x001e, 0xd184, 0x0128, 0x080c, 0xabed, 0x9085, 0x0001, 0x0070,\r
++      0x080c, 0x56e2, 0x0128, 0xd18c, 0x1170, 0x080c, 0xc969, 0x0148,\r
++      0x2009, 0x004c, 0x080c, 0xac8c, 0x9085, 0x0001, 0x012e, 0x00ce,\r
++      0x0005, 0x9006, 0x0cd8, 0x2900, 0x6016, 0x0c90, 0x2009, 0x004d,\r
++      0x0010, 0x2009, 0x004e, 0x00f6, 0x00c6, 0x0046, 0x0016, 0x080c,\r
++      0xab97, 0x2c78, 0x0590, 0x7e5e, 0x2b00, 0x7812, 0x7823, 0x0003,\r
++      0x2021, 0x0005, 0x080c, 0xc97b, 0x9186, 0x004d, 0x0118, 0x9186,\r
++      0x004e, 0x0148, 0x2001, 0x1980, 0x200c, 0xd1fc, 0x0168, 0x2f60,\r
++      0x080c, 0xabed, 0x00d0, 0x2001, 0x197f, 0x200c, 0xd1fc, 0x0120,\r
++      0x2f60, 0x080c, 0xabed, 0x0088, 0x2f60, 0x080c, 0x56e2, 0x0138,\r
++      0xd18c, 0x1118, 0x04f1, 0x0148, 0x0010, 0x2900, 0x7816, 0x001e,\r
++      0x0016, 0x080c, 0xac8c, 0x9085, 0x0001, 0x001e, 0x004e, 0x00ce,\r
++      0x00fe, 0x0005, 0x00f6, 0x00c6, 0x0046, 0x080c, 0xab97, 0x2c78,\r
++      0x0508, 0x7e5e, 0x2b00, 0x7812, 0x7823, 0x0003, 0x0096, 0x2021,\r
++      0x0004, 0x0489, 0x009e, 0x2001, 0x197e, 0x200c, 0xd1fc, 0x0120,\r
++      0x2f60, 0x080c, 0xabed, 0x0060, 0x2f60, 0x080c, 0x56e2, 0x0120,\r
++      0xd18c, 0x1160, 0x0071, 0x0130, 0x2009, 0x0052, 0x080c, 0xac8c,\r
++      0x9085, 0x0001, 0x004e, 0x00ce, 0x00fe, 0x0005, 0x2900, 0x7816,\r
++      0x0c98, 0x00c6, 0x080c, 0x4aa7, 0x00ce, 0x1120, 0x080c, 0xabed,\r
++      0x9006, 0x0005, 0xa867, 0x0000, 0xa86b, 0x8000, 0x2900, 0x6016,\r
++      0x9085, 0x0001, 0x0005, 0x0096, 0x0076, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0xa896, 0x080c, 0x6804, 0x0158, 0x2001, 0xc982, 0x0006,\r
++      0x900e, 0x2400, 0x080c, 0x6fc0, 0x080c, 0x6d80, 0x000e, 0x0807,\r
++      0x2418, 0x080c, 0x95a4, 0xbaa0, 0x0086, 0x2041, 0x0001, 0x2039,\r
++      0x0001, 0x2608, 0x080c, 0x93bf, 0x008e, 0x080c, 0x9277, 0x2f08,\r
++      0x2648, 0x080c, 0xdfeb, 0xb93c, 0x81ff, 0x090c, 0x9496, 0x080c,\r
++      0xa8b2, 0x012e, 0x007e, 0x009e, 0x0005, 0x00c6, 0x0126, 0x2091,\r
++      0x8000, 0x080c, 0xab97, 0x0190, 0x660a, 0x2b08, 0x6112, 0x080c,\r
++      0xcccc, 0x6023, 0x0001, 0x2900, 0x6016, 0x2009, 0x001f, 0x080c,\r
++      0xac8c, 0x9085, 0x0001, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8,\r
++      0x00c6, 0x0126, 0x2091, 0x8000, 0x080c, 0xac5f, 0x01b8, 0x660a,\r
++      0x2b08, 0x6112, 0x080c, 0xcccc, 0x6023, 0x0008, 0x2900, 0x6016,\r
++      0x00f6, 0x2c78, 0x080c, 0x1731, 0x00fe, 0x2009, 0x0021, 0x080c,\r
++      0xac8c, 0x9085, 0x0001, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8,\r
++      0x2009, 0x003d, 0x00c6, 0x0126, 0x0016, 0x2091, 0x8000, 0x080c,\r
++      0xab97, 0x0198, 0x660a, 0x2b08, 0x6112, 0x080c, 0xcccc, 0x6023,\r
++      0x0001, 0x2900, 0x6016, 0x001e, 0x0016, 0x080c, 0xac8c, 0x9085,\r
++      0x0001, 0x001e, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd0, 0x00c6,\r
++      0x0126, 0x2091, 0x8000, 0x080c, 0xac5f, 0x0188, 0x2b08, 0x6112,\r
++      0x080c, 0xcccc, 0x6023, 0x0001, 0x2900, 0x6016, 0x2009, 0x0000,\r
++      0x080c, 0xac8c, 0x9085, 0x0001, 0x012e, 0x00ce, 0x0005, 0x9006,\r
++      0x0cd8, 0x2009, 0x0044, 0x0830, 0x2009, 0x0049, 0x0818, 0x0026,\r
++      0x00b6, 0x6210, 0x2258, 0xba3c, 0x82ff, 0x0118, 0x8211, 0xba3e,\r
++      0x1140, 0xb8d0, 0x9005, 0x0128, 0xb888, 0x9005, 0x1110, 0xb88b,\r
++      0x0001, 0x00be, 0x002e, 0x0005, 0x0006, 0x0016, 0x6004, 0x908e,\r
++      0x0002, 0x0140, 0x908e, 0x0003, 0x0128, 0x908e, 0x0004, 0x0110,\r
++      0x9085, 0x0001, 0x001e, 0x000e, 0x0005, 0x0006, 0x0096, 0x6020,\r
++      0x9086, 0x0004, 0x0190, 0x6014, 0x904d, 0x080c, 0xc838, 0x0168,\r
++      0xa864, 0x9086, 0x0139, 0x0158, 0x6020, 0x9086, 0x0003, 0x0128,\r
++      0xa868, 0xd0fc, 0x0110, 0x9006, 0x0010, 0x9085, 0x0001, 0x009e,\r
++      0x000e, 0x0005, 0x00c6, 0x0126, 0x2091, 0x8000, 0x080c, 0xac5f,\r
++      0x0198, 0x2b08, 0x6112, 0x080c, 0xcccc, 0x6023, 0x0001, 0x2900,\r
++      0x6016, 0x080c, 0x31e7, 0x2009, 0x0028, 0x080c, 0xac8c, 0x9085,\r
++      0x0001, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8, 0x9186, 0x0015,\r
++      0x11a8, 0x2011, 0x1824, 0x2204, 0x9086, 0x0074, 0x1178, 0x00b6,\r
++      0x080c, 0xb807, 0x00be, 0x080c, 0xba2a, 0x6003, 0x0001, 0x6007,\r
++      0x0029, 0x080c, 0x9225, 0x080c, 0x96a0, 0x0078, 0x6014, 0x0096,\r
++      0x2048, 0xa868, 0x009e, 0xd0fc, 0x0148, 0x2001, 0x0001, 0x080c,\r
++      0xce8b, 0x080c, 0xb5b5, 0x080c, 0xabed, 0x0005, 0x0096, 0x6014,\r
++      0x904d, 0x090c, 0x0d7d, 0xa87b, 0x0030, 0xa883, 0x0000, 0xa897,\r
++      0x4005, 0xa89b, 0x0004, 0xa867, 0x0139, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x6d80, 0x012e, 0x009e, 0x080c, 0xabed, 0x0c30, 0x0096,\r
++      0x9186, 0x0016, 0x1128, 0x2001, 0x0004, 0x080c, 0x6575, 0x00e8,\r
++      0x9186, 0x0015, 0x1510, 0x2011, 0x1824, 0x2204, 0x9086, 0x0014,\r
++      0x11e0, 0x6010, 0x00b6, 0x2058, 0x080c, 0x66c0, 0x00be, 0x080c,\r
++      0xbafb, 0x1198, 0x6010, 0x00b6, 0x2058, 0xb890, 0x00be, 0x9005,\r
++      0x0160, 0x2001, 0x0006, 0x080c, 0x6575, 0x6014, 0x2048, 0xa868,\r
++      0xd0fc, 0x0170, 0x080c, 0xaffd, 0x0048, 0x6014, 0x2048, 0xa868,\r
++      0xd0fc, 0x0528, 0x080c, 0xb5b5, 0x080c, 0xabed, 0x009e, 0x0005,\r
++      0x6014, 0x6310, 0x2358, 0x904d, 0x090c, 0x0d7d, 0xa87b, 0x0000,\r
++      0xa883, 0x0000, 0xa897, 0x4000, 0x900e, 0x080c, 0x6914, 0x1108,\r
++      0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d, 0xa99a, 0x0126, 0x2091,\r
++      0x8000, 0x080c, 0x6d80, 0x012e, 0x080c, 0xabed, 0x08f8, 0x6014,\r
++      0x904d, 0x090c, 0x0d7d, 0xa87b, 0x0030, 0xa883, 0x0000, 0xa897,\r
++      0x4005, 0xa89b, 0x0004, 0xa867, 0x0139, 0x0126, 0x2091, 0x8000,\r
++      0x080c, 0x6d80, 0x012e, 0x080c, 0xabed, 0x0840, 0xa878, 0x9086,\r
++      0x0005, 0x1108, 0x0009, 0x0005, 0xa880, 0xc0ad, 0xa882, 0x0005,\r
++      0x604b, 0x0000, 0x6017, 0x0000, 0x6003, 0x0001, 0x6007, 0x0050,\r
++      0x2009, 0x8023, 0x080c, 0x921e, 0x0005, 0x00c6, 0x6010, 0x00b6,\r
++      0x2058, 0xb800, 0x00be, 0xd0bc, 0x0130, 0x0066, 0x6020, 0x9084,\r
++      0x000f, 0x001b, 0x006e, 0x00ce, 0x0005, 0xc556, 0xcb6f, 0xcb6f,\r
++      0xcb72, 0xe318, 0xe333, 0xe336, 0xc556, 0xc556, 0xc556, 0xc556,\r
++      0xc556, 0xc556, 0xc556, 0xc556, 0xc556, 0x080c, 0x0d7d, 0xa001,\r
++      0xa001, 0x0005, 0x0096, 0x6014, 0x904d, 0x0118, 0xa87c, 0xd0e4,\r
++      0x1110, 0x009e, 0x0010, 0x009e, 0x0005, 0x6010, 0x00b6, 0x2058,\r
++      0xb800, 0x00be, 0xd0bc, 0x0550, 0x2001, 0x1834, 0x2004, 0x9005,\r
++      0x1540, 0x00f6, 0x2c78, 0x080c, 0xab97, 0x0508, 0x7810, 0x6012,\r
++      0x080c, 0xcccc, 0x7820, 0x9086, 0x0003, 0x0128, 0x7808, 0x603a,\r
++      0x2f00, 0x603e, 0x0020, 0x7808, 0x603e, 0x2f00, 0x603a, 0x602e,\r
++      0x6023, 0x0001, 0x6007, 0x0035, 0x6003, 0x0001, 0x795c, 0x615e,\r
++      0x2009, 0x8020, 0x080c, 0x921e, 0x2f60, 0x00fe, 0x0005, 0x2f60,\r
++      0x00fe, 0x2001, 0x1988, 0x2004, 0x604a, 0x0005, 0x0016, 0x0096,\r
++      0x6814, 0x2048, 0x681c, 0xd0fc, 0xc0fc, 0x681e, 0xa87c, 0x1108,\r
++      0xd0e4, 0x0180, 0xc0e4, 0xa87e, 0xa877, 0x0000, 0xa893, 0x0000,\r
++      0xa88f, 0x0000, 0xd0cc, 0x0130, 0xc0cc, 0xa87e, 0xa878, 0x2048,\r
++      0x080c, 0x0fec, 0x6830, 0x6036, 0x908e, 0x0001, 0x0148, 0x6803,\r
++      0x0002, 0x9086, 0x0005, 0x0170, 0x9006, 0x602e, 0x6032, 0x00d0,\r
++      0x681c, 0xc085, 0x681e, 0x6803, 0x0004, 0x6824, 0xc0f4, 0x9085,\r
++      0x0c00, 0x6826, 0x6814, 0x2048, 0xa8ac, 0x6938, 0x9102, 0xa8b0,\r
++      0x693c, 0x9103, 0x1e48, 0x683c, 0x602e, 0x6838, 0x9084, 0xfffc,\r
++      0x683a, 0x6032, 0x2d00, 0x603a, 0x6808, 0x603e, 0x6910, 0x6112,\r
++      0x695c, 0x615e, 0x6023, 0x0001, 0x6007, 0x0039, 0x6003, 0x0001,\r
++      0x2009, 0x8020, 0x080c, 0x921e, 0x009e, 0x001e, 0x0005, 0x6024,\r
++      0xd0d4, 0x0510, 0xd0f4, 0x11f8, 0x6038, 0x940a, 0x603c, 0x9303,\r
++      0x0230, 0x9105, 0x0120, 0x6024, 0xc0d4, 0xc0f5, 0x0098, 0x643a,\r
++      0x633e, 0xac3e, 0xab42, 0x0046, 0x0036, 0x2400, 0xacac, 0x9402,\r
++      0xa836, 0x2300, 0xabb0, 0x9303, 0xa83a, 0x003e, 0x004e, 0x6024,\r
++      0xc0d4, 0x0000, 0x6026, 0x0005, 0xd0f4, 0x1138, 0xa83c, 0x603a,\r
++      0xa840, 0x603e, 0x6024, 0xc0f5, 0x6026, 0x0005, 0x0006, 0x0016,\r
++      0x6004, 0x908e, 0x0034, 0x01b8, 0x908e, 0x0035, 0x01a0, 0x908e,\r
++      0x0036, 0x0188, 0x908e, 0x0037, 0x0170, 0x908e, 0x0038, 0x0158,\r
++      0x908e, 0x0039, 0x0140, 0x908e, 0x003a, 0x0128, 0x908e, 0x003b,\r
++      0x0110, 0x9085, 0x0001, 0x001e, 0x000e, 0x0005, 0x0006, 0x0016,\r
++      0x0026, 0x0036, 0x00e6, 0x2001, 0x1982, 0x200c, 0x8000, 0x2014,\r
++      0x2001, 0x0032, 0x080c, 0x9166, 0x2001, 0x1986, 0x82ff, 0x1110,\r
++      0x2011, 0x0014, 0x2202, 0x2001, 0x1984, 0x200c, 0x8000, 0x2014,\r
++      0x2071, 0x196c, 0x711a, 0x721e, 0x2001, 0x0064, 0x080c, 0x9166,\r
++      0x2001, 0x1987, 0x82ff, 0x1110, 0x2011, 0x0014, 0x2202, 0x2001,\r
++      0x1988, 0x9288, 0x000a, 0x2102, 0x2001, 0x0017, 0x080c, 0xa887,\r
++      0x2001, 0x1a89, 0x2102, 0x2001, 0x0032, 0x080c, 0x1679, 0x080c,\r
++      0x6a4c, 0x00ee, 0x003e, 0x002e, 0x001e, 0x000e, 0x0005, 0x0006,\r
++      0x0016, 0x00e6, 0x2001, 0x1986, 0x2003, 0x0028, 0x2001, 0x1987,\r
++      0x2003, 0x0014, 0x2071, 0x196c, 0x701b, 0x0000, 0x701f, 0x07d0,\r
++      0x2001, 0x1988, 0x2009, 0x001e, 0x2102, 0x2001, 0x0017, 0x080c,\r
++      0xa887, 0x2001, 0x1a89, 0x2102, 0x2001, 0x0032, 0x080c, 0x1679,\r
++      0x00ee, 0x001e, 0x000e, 0x0005, 0x0096, 0x6060, 0x904d, 0x0110,\r
++      0x080c, 0x106c, 0x009e, 0x0005, 0x0005, 0x00c6, 0x0126, 0x2091,\r
++      0x8000, 0x080c, 0xab97, 0x0180, 0x2b08, 0x6112, 0x0ca9, 0x6023,\r
++      0x0001, 0x2900, 0x6016, 0x2009, 0x0033, 0x080c, 0xac8c, 0x9085,\r
++      0x0001, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8, 0x0096, 0x00e6,\r
++      0x00f6, 0x2071, 0x1800, 0x9186, 0x0015, 0x1500, 0x7090, 0x9086,\r
++      0x0018, 0x11e0, 0x6014, 0x2048, 0xaa3c, 0xd2e4, 0x1160, 0x2c78,\r
++      0x080c, 0x975f, 0x01d8, 0x707c, 0xaa50, 0x9206, 0x1160, 0x7080,\r
++      0xaa54, 0x9206, 0x1140, 0x6210, 0x00b6, 0x2258, 0xbaa0, 0x00be,\r
++      0x900e, 0x080c, 0x323c, 0x080c, 0xaffd, 0x0020, 0x080c, 0xb5b5,\r
++      0x080c, 0xabed, 0x00fe, 0x00ee, 0x009e, 0x0005, 0x7060, 0xaa54,\r
++      0x9206, 0x0d48, 0x0c80, 0x00c6, 0x0126, 0x2091, 0x8000, 0x080c,\r
++      0xab97, 0x0188, 0x2b08, 0x6112, 0x080c, 0xcccc, 0x6023, 0x0001,\r
++      0x2900, 0x6016, 0x2009, 0x004d, 0x080c, 0xac8c, 0x9085, 0x0001,\r
++      0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8, 0x00c6, 0x0126, 0x2091,\r
++      0x8000, 0x0016, 0x080c, 0xab97, 0x0180, 0x2b08, 0x6112, 0x080c,\r
++      0xcccc, 0x6023, 0x0001, 0x2900, 0x6016, 0x001e, 0x080c, 0xac8c,\r
++      0x9085, 0x0001, 0x012e, 0x00ce, 0x0005, 0x001e, 0x9006, 0x0cd0,\r
++      0x0016, 0x0026, 0x0036, 0x0046, 0x0056, 0x0066, 0x0096, 0x00e6,\r
++      0x00f6, 0x2071, 0x1800, 0x9186, 0x0015, 0x1568, 0x7190, 0x6014,\r
++      0x2048, 0xa814, 0x8003, 0x9106, 0x1530, 0x20e1, 0x0000, 0x2001,\r
++      0x19a0, 0x2003, 0x0000, 0x6014, 0x2048, 0xa830, 0x20a8, 0x8906,\r
++      0x8006, 0x8007, 0x9094, 0x003f, 0x22e8, 0x9084, 0xffc0, 0x9080,\r
++      0x001b, 0x20a0, 0x2001, 0x19a0, 0x0016, 0x200c, 0x080c, 0xd565,\r
++      0x001e, 0xa804, 0x9005, 0x0110, 0x2048, 0x0c38, 0x6014, 0x2048,\r
++      0xa867, 0x0103, 0x0010, 0x080c, 0xb5b5, 0x080c, 0xabed, 0x00fe,\r
++      0x00ee, 0x009e, 0x006e, 0x005e, 0x004e, 0x003e, 0x002e, 0x001e,\r
++      0x0005, 0x0096, 0x00e6, 0x00f6, 0x2071, 0x1800, 0x9186, 0x0015,\r
++      0x11b8, 0x7090, 0x9086, 0x0004, 0x1198, 0x6014, 0x2048, 0x2c78,\r
++      0x080c, 0x975f, 0x01a8, 0x707c, 0xaa74, 0x9206, 0x1130, 0x7080,\r
++      0xaa78, 0x9206, 0x1110, 0x080c, 0x31e7, 0x080c, 0xaffd, 0x0020,\r
++      0x080c, 0xb5b5, 0x080c, 0xabed, 0x00fe, 0x00ee, 0x009e, 0x0005,\r
++      0x7060, 0xaa78, 0x9206, 0x0d78, 0x0c80, 0x0096, 0x00e6, 0x00f6,\r
++      0x2071, 0x1800, 0x9186, 0x0015, 0x1550, 0x7090, 0x9086, 0x0004,\r
++      0x1530, 0x6014, 0x2048, 0x2c78, 0x080c, 0x975f, 0x05f0, 0x707c,\r
++      0xaacc, 0x9206, 0x1180, 0x7080, 0xaad0, 0x9206, 0x1160, 0x080c,\r
++      0x31e7, 0x0016, 0xa998, 0xaab0, 0x9284, 0x1000, 0xc0fd, 0x080c,\r
++      0x5692, 0x001e, 0x0010, 0x080c, 0x547b, 0x080c, 0xc838, 0x0508,\r
++      0xa87b, 0x0000, 0xa883, 0x0000, 0xa897, 0x4000, 0x0080, 0x080c,\r
++      0xc838, 0x01b8, 0x6014, 0x2048, 0x080c, 0x547b, 0x1d70, 0xa87b,\r
++      0x0030, 0xa883, 0x0000, 0xa897, 0x4005, 0xa89b, 0x0004, 0x0126,\r
++      0x2091, 0x8000, 0xa867, 0x0139, 0x080c, 0x6d80, 0x012e, 0x080c,\r
++      0xabed, 0x00fe, 0x00ee, 0x009e, 0x0005, 0x7060, 0xaad0, 0x9206,\r
++      0x0930, 0x0888, 0x0016, 0x0026, 0xa87c, 0xd0ac, 0x0178, 0xa938,\r
++      0xaa34, 0x2100, 0x9205, 0x0150, 0xa890, 0x9106, 0x1118, 0xa88c,\r
++      0x9206, 0x0120, 0xa992, 0xaa8e, 0x9085, 0x0001, 0x002e, 0x001e,\r
++      0x0005, 0x00b6, 0x00d6, 0x0036, 0x080c, 0xc838, 0x0904, 0xce87,\r
++      0x0096, 0x6314, 0x2348, 0xa87a, 0xa982, 0x929e, 0x4000, 0x1580,\r
++      0x6310, 0x00c6, 0x2358, 0x2009, 0x0000, 0xa868, 0xd0f4, 0x1140,\r
++      0x080c, 0x6914, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d,\r
++      0xaa96, 0xa99a, 0x20a9, 0x0004, 0xa860, 0x20e8, 0xa85c, 0x9080,\r
++      0x0031, 0x20a0, 0xb8c4, 0x20e0, 0xb8c8, 0x9080, 0x0006, 0x2098,\r
++      0x080c, 0x0fb7, 0x20a9, 0x0004, 0xa85c, 0x9080, 0x0035, 0x20a0,\r
++      0xb8c8, 0x9080, 0x000a, 0x2098, 0x080c, 0x0fb7, 0x00ce, 0x0090,\r
++      0xaa96, 0x3918, 0x9398, 0x0007, 0x231c, 0x6004, 0x9086, 0x0016,\r
++      0x0110, 0xa89b, 0x0004, 0xaba2, 0x6310, 0x2358, 0xb804, 0x9084,\r
++      0x00ff, 0xa89e, 0x080c, 0x6d74, 0x6017, 0x0000, 0x009e, 0x003e,\r
++      0x00de, 0x00be, 0x0005, 0x0026, 0x0036, 0x0046, 0x00b6, 0x0096,\r
++      0x00f6, 0x6214, 0x2248, 0x6210, 0x2258, 0x2079, 0x0260, 0x9096,\r
++      0x0000, 0x11a0, 0xb814, 0x9084, 0x00ff, 0x900e, 0x080c, 0x25fb,\r
++      0x2118, 0x831f, 0x939c, 0xff00, 0x7838, 0x9084, 0x00ff, 0x931d,\r
++      0x7c3c, 0x2011, 0x8018, 0x080c, 0x4b07, 0x00a8, 0x9096, 0x0001,\r
++      0x1148, 0x89ff, 0x0180, 0xa89b, 0x000d, 0x7838, 0xa8a6, 0x783c,\r
++      0xa8aa, 0x0048, 0x9096, 0x0002, 0x1130, 0xa89b, 0x000d, 0x7838,\r
++      0xa8a6, 0x783c, 0xa8aa, 0x00fe, 0x009e, 0x00be, 0x004e, 0x003e,\r
++      0x002e, 0x0005, 0x00c6, 0x0026, 0x0016, 0x9186, 0x0035, 0x0110,\r
++      0x6a38, 0x0008, 0x6a2c, 0x080c, 0xc826, 0x01f0, 0x2260, 0x6120,\r
++      0x9186, 0x0003, 0x0118, 0x9186, 0x0006, 0x1190, 0x6838, 0x9206,\r
++      0x0140, 0x683c, 0x9206, 0x1160, 0x6108, 0x6838, 0x9106, 0x1140,\r
++      0x0020, 0x6008, 0x693c, 0x9106, 0x1118, 0x6010, 0x6910, 0x9106,\r
++      0x001e, 0x002e, 0x00ce, 0x0005, 0x9085, 0x0001, 0x0cc8, 0xa974,\r
++      0xd1cc, 0x0188, 0x918c, 0x00ff, 0x918e, 0x0002, 0x1160, 0xa9a8,\r
++      0x918c, 0x0f00, 0x810f, 0x918e, 0x0001, 0x1128, 0xa834, 0xa938,\r
++      0x9115, 0x190c, 0xbeb3, 0x0005, 0x0036, 0x2019, 0x0001, 0x0010,\r
++      0x0036, 0x901e, 0x0499, 0x01e0, 0x080c, 0xc838, 0x01c8, 0x080c,\r
++      0xca27, 0x6037, 0x4000, 0x6014, 0x6017, 0x0000, 0x0096, 0x2048,\r
++      0xa87c, 0x080c, 0xca4d, 0x1118, 0x080c, 0xb5b5, 0x0040, 0xa867,\r
++      0x0103, 0xa877, 0x0000, 0x83ff, 0x1129, 0x080c, 0x6d80, 0x009e,\r
++      0x003e, 0x0005, 0xa880, 0xd0b4, 0x0128, 0xa87b, 0x0006, 0xc0ec,\r
++      0xa882, 0x0048, 0xd0bc, 0x0118, 0xa87b, 0x0002, 0x0020, 0xa87b,\r
++      0x0005, 0x080c, 0xcb3c, 0xa877, 0x0000, 0x0005, 0x2001, 0x1810,\r
++      0x2004, 0xd0ec, 0x0005, 0x0006, 0x2001, 0x1810, 0x2004, 0xd0f4,\r
++      0x000e, 0x0005, 0x0006, 0x2001, 0x1810, 0x2004, 0xd0e4, 0x000e,\r
++      0x0005, 0x0036, 0x0046, 0x6010, 0x00b6, 0x2058, 0xbba0, 0x00be,\r
++      0x2021, 0x0007, 0x080c, 0x4cbe, 0x004e, 0x003e, 0x0005, 0x0c51,\r
++      0x1d81, 0x0005, 0x2001, 0x1986, 0x2004, 0x601a, 0x0005, 0x2001,\r
++      0x1988, 0x2004, 0x604a, 0x0005, 0x080c, 0xabed, 0x0804, 0x96a0,\r
++      0x611c, 0xd1fc, 0xa97c, 0x1108, 0xd1e4, 0x0005, 0x601c, 0xd0fc,\r
++      0xa87c, 0x1108, 0xd0e4, 0x0005, 0x601c, 0xd0fc, 0xc0fc, 0x601e,\r
++      0xa87c, 0x1108, 0xd0e4, 0x0005, 0x6044, 0xd0fc, 0x0160, 0xd0dc,\r
++      0x1128, 0x908c, 0x000f, 0x9186, 0x0005, 0x1118, 0x6003, 0x0003,\r
++      0x0010, 0x6003, 0x0001, 0x0005, 0x00b6, 0x0066, 0x6000, 0x90b2,\r
++      0x0016, 0x1a0c, 0x0d7d, 0x001b, 0x006e, 0x00be, 0x0005, 0xcfb7,\r
++      0xd6c0, 0xd811, 0xcfb7, 0xcfb7, 0xcfb7, 0xcfb7, 0xcfb7, 0xcfee,\r
++      0xd893, 0xcfb7, 0xcfb7, 0xcfb7, 0xcfb7, 0xcfb7, 0xcfb7, 0x080c,\r
++      0x0d7d, 0x0066, 0x6000, 0x90b2, 0x0016, 0x1a0c, 0x0d7d, 0x0013,\r
++      0x006e, 0x0005, 0xcfd2, 0xddaa, 0xcfd2, 0xcfd2, 0xcfd2, 0xcfd2,\r
++      0xcfd2, 0xcfd2, 0xdd59, 0xddfc, 0xcfd2, 0xe453, 0xe487, 0xe453,\r
++      0xe487, 0xcfd2, 0x080c, 0x0d7d, 0x6000, 0x9082, 0x0016, 0x1a0c,\r
++      0x0d7d, 0x6000, 0x000a, 0x0005, 0xcfec, 0xda6f, 0xdb38, 0xdb5a,\r
++      0xdbd5, 0xcfec, 0xdccf, 0xdc5d, 0xd89d, 0xdd31, 0xdd46, 0xcfec,\r
++      0xcfec, 0xcfec, 0xcfec, 0xcfec, 0x080c, 0x0d7d, 0x91b2, 0x0053,\r
++      0x1a0c, 0x0d7d, 0x2100, 0x91b2, 0x0040, 0x1a04, 0xd436, 0x0002,\r
++      0xd038, 0xd227, 0xd038, 0xd038, 0xd038, 0xd230, 0xd038, 0xd038,\r
++      0xd038, 0xd038, 0xd038, 0xd038, 0xd038, 0xd038, 0xd038, 0xd038,\r
++      0xd038, 0xd038, 0xd038, 0xd038, 0xd038, 0xd038, 0xd038, 0xd03a,\r
++      0xd0a1, 0xd0b0, 0xd114, 0xd13f, 0xd1b8, 0xd212, 0xd038, 0xd038,\r
++      0xd233, 0xd038, 0xd038, 0xd248, 0xd255, 0xd038, 0xd038, 0xd038,\r
++      0xd038, 0xd038, 0xd2d8, 0xd038, 0xd038, 0xd2ec, 0xd038, 0xd038,\r
++      0xd2a7, 0xd038, 0xd038, 0xd038, 0xd304, 0xd038, 0xd038, 0xd038,\r
++      0xd381, 0xd038, 0xd038, 0xd038, 0xd038, 0xd038, 0xd038, 0xd3fe,\r
++      0x080c, 0x0d7d, 0x080c, 0x6a29, 0x1150, 0x2001, 0x1837, 0x2004,\r
++      0xd0cc, 0x1128, 0x9084, 0x0009, 0x9086, 0x0008, 0x1140, 0x6007,\r
++      0x0009, 0x602f, 0x0009, 0x6017, 0x0000, 0x0804, 0xd220, 0x080c,\r
++      0x69c5, 0x00e6, 0x00c6, 0x0036, 0x0026, 0x0016, 0x6210, 0x2258,\r
++      0xbaa0, 0x0026, 0x2019, 0x0029, 0x080c, 0xa896, 0x080c, 0x93a5,\r
++      0x0076, 0x903e, 0x080c, 0x9277, 0x2c08, 0x080c, 0xdfeb, 0x007e,\r
++      0x001e, 0x080c, 0xa8b2, 0x001e, 0x002e, 0x003e, 0x00ce, 0x00ee,\r
++      0x6610, 0x2658, 0x080c, 0x6634, 0xbe04, 0x9684, 0x00ff, 0x9082,\r
++      0x0006, 0x1268, 0x0016, 0x0026, 0x6210, 0x00b6, 0x2258, 0xbaa0,\r
++      0x00be, 0x2c08, 0x080c, 0xe6b0, 0x002e, 0x001e, 0x1178, 0x080c,\r
++      0xdf19, 0x1904, 0xd10c, 0x080c, 0xdeb5, 0x1120, 0x6007, 0x0008,\r
++      0x0804, 0xd220, 0x6007, 0x0009, 0x0804, 0xd220, 0x080c, 0xe14c,\r
++      0x0128, 0x080c, 0xdf19, 0x0d78, 0x0804, 0xd10c, 0x6017, 0x1900,\r
++      0x0c88, 0x080c, 0x3332, 0x1904, 0xd433, 0x6106, 0x080c, 0xde66,\r
++      0x6007, 0x0006, 0x0804, 0xd220, 0x6007, 0x0007, 0x0804, 0xd220,\r
++      0x080c, 0xe4c3, 0x1904, 0xd433, 0x080c, 0x3332, 0x1904, 0xd433,\r
++      0x00d6, 0x6610, 0x2658, 0xbe04, 0x9684, 0x00ff, 0x9082, 0x0006,\r
++      0x1220, 0x2001, 0x0001, 0x080c, 0x6561, 0x96b4, 0xff00, 0x8637,\r
++      0x9686, 0x0006, 0x0188, 0x9686, 0x0004, 0x0170, 0xbe04, 0x96b4,\r
++      0x00ff, 0x9686, 0x0006, 0x0140, 0x9686, 0x0004, 0x0128, 0x9686,\r
++      0x0005, 0x0110, 0x00de, 0x0480, 0x00e6, 0x2071, 0x0260, 0x7034,\r
++      0x9084, 0x0003, 0x1140, 0x7034, 0x9082, 0x0014, 0x0220, 0x7030,\r
++      0x9084, 0x0003, 0x0130, 0x00ee, 0x6017, 0x0000, 0x602f, 0x0007,\r
++      0x00b0, 0x00ee, 0x080c, 0xdf81, 0x1190, 0x9686, 0x0006, 0x1140,\r
++      0x0026, 0x6210, 0x2258, 0xbaa0, 0x900e, 0x080c, 0x323c, 0x002e,\r
++      0x080c, 0x66c0, 0x6007, 0x000a, 0x00de, 0x0804, 0xd220, 0x6007,\r
++      0x000b, 0x00de, 0x0804, 0xd220, 0x080c, 0x31e7, 0x080c, 0xcf67,\r
++      0x6007, 0x0001, 0x0804, 0xd220, 0x080c, 0xe4c3, 0x1904, 0xd433,\r
++      0x080c, 0x3332, 0x1904, 0xd433, 0x2071, 0x0260, 0x7034, 0x90b4,\r
++      0x0003, 0x1948, 0x90b2, 0x0014, 0x0a30, 0x7030, 0x9084, 0x0003,\r
++      0x1910, 0x6610, 0x2658, 0xbe04, 0x9686, 0x0707, 0x09e8, 0x0026,\r
++      0x6210, 0x2258, 0xbaa0, 0x900e, 0x080c, 0x323c, 0x002e, 0x6007,\r
++      0x000c, 0x2001, 0x0001, 0x080c, 0xe690, 0x0804, 0xd220, 0x080c,\r
++      0x6a29, 0x1140, 0x2001, 0x1837, 0x2004, 0x9084, 0x0009, 0x9086,\r
++      0x0008, 0x1110, 0x0804, 0xd047, 0x080c, 0x69c5, 0x6610, 0x2658,\r
++      0xbe04, 0x9684, 0x00ff, 0x9082, 0x0006, 0x06c8, 0x1138, 0x0026,\r
++      0x2001, 0x0006, 0x080c, 0x65a1, 0x002e, 0x0050, 0x96b4, 0xff00,\r
++      0x8637, 0x9686, 0x0004, 0x0120, 0x9686, 0x0006, 0x1904, 0xd10c,\r
++      0x080c, 0xdf8e, 0x1120, 0x6007, 0x000e, 0x0804, 0xd220, 0x0046,\r
++      0x6410, 0x2458, 0xbca0, 0x0046, 0x080c, 0x31e7, 0x080c, 0xcf67,\r
++      0x004e, 0x0016, 0x9006, 0x2009, 0x1848, 0x210c, 0xd1a4, 0x0148,\r
++      0x2009, 0x0029, 0x080c, 0xe2c9, 0x6010, 0x2058, 0xb800, 0xc0e5,\r
++      0xb802, 0x001e, 0x004e, 0x6007, 0x0001, 0x0804, 0xd220, 0x2001,\r
++      0x0001, 0x080c, 0x6561, 0x0156, 0x0016, 0x0026, 0x0036, 0x20a9,\r
++      0x0004, 0x2019, 0x1805, 0x2011, 0x0270, 0x080c, 0xbbae, 0x003e,\r
++      0x002e, 0x001e, 0x015e, 0x9005, 0x0168, 0x96b4, 0xff00, 0x8637,\r
++      0x9682, 0x0004, 0x0a04, 0xd10c, 0x9682, 0x0007, 0x0a04, 0xd168,\r
++      0x0804, 0xd10c, 0x6017, 0x1900, 0x6007, 0x0009, 0x0804, 0xd220,\r
++      0x080c, 0x6a29, 0x1140, 0x2001, 0x1837, 0x2004, 0x9084, 0x0009,\r
++      0x9086, 0x0008, 0x1110, 0x0804, 0xd047, 0x080c, 0x69c5, 0x6610,\r
++      0x2658, 0xbe04, 0x9684, 0x00ff, 0x9082, 0x0006, 0x0698, 0x0150,\r
++      0x96b4, 0xff00, 0x8637, 0x9686, 0x0004, 0x0120, 0x9686, 0x0006,\r
++      0x1904, 0xd10c, 0x080c, 0xdfbc, 0x1130, 0x080c, 0xdeb5, 0x1118,\r
++      0x6007, 0x0010, 0x04e8, 0x0046, 0x6410, 0x2458, 0xbca0, 0x0046,\r
++      0x080c, 0x31e7, 0x080c, 0xcf67, 0x004e, 0x0016, 0x9006, 0x2009,\r
++      0x1848, 0x210c, 0xd1a4, 0x0148, 0x2009, 0x0029, 0x080c, 0xe2c9,\r
++      0x6010, 0x2058, 0xb800, 0xc0e5, 0xb802, 0x001e, 0x004e, 0x6007,\r
++      0x0001, 0x00f0, 0x080c, 0xe14c, 0x0140, 0x96b4, 0xff00, 0x8637,\r
++      0x9686, 0x0006, 0x0978, 0x0804, 0xd10c, 0x6017, 0x1900, 0x6007,\r
++      0x0009, 0x0070, 0x080c, 0x3332, 0x1904, 0xd433, 0x080c, 0xe4c3,\r
++      0x1904, 0xd433, 0x080c, 0xd600, 0x1904, 0xd10c, 0x6007, 0x0012,\r
++      0x6003, 0x0001, 0x080c, 0x9225, 0x080c, 0x96a0, 0x0005, 0x6007,\r
++      0x0001, 0x6003, 0x0001, 0x080c, 0x9225, 0x080c, 0x96a0, 0x0cb0,\r
++      0x6007, 0x0005, 0x0c68, 0x080c, 0xe4c3, 0x1904, 0xd433, 0x080c,\r
++      0x3332, 0x1904, 0xd433, 0x080c, 0xd600, 0x1904, 0xd10c, 0x6007,\r
++      0x0020, 0x6003, 0x0001, 0x080c, 0x9225, 0x080c, 0x96a0, 0x0005,\r
++      0x080c, 0x3332, 0x1904, 0xd433, 0x6007, 0x0023, 0x6003, 0x0001,\r
++      0x080c, 0x9225, 0x080c, 0x96a0, 0x0005, 0x080c, 0xe4c3, 0x1904,\r
++      0xd433, 0x080c, 0x3332, 0x1904, 0xd433, 0x080c, 0xd600, 0x1904,\r
++      0xd10c, 0x0016, 0x0026, 0x00e6, 0x2071, 0x0260, 0x7244, 0x9286,\r
++      0xffff, 0x0180, 0x2c08, 0x080c, 0xc826, 0x01b0, 0x2260, 0x7240,\r
++      0x6008, 0x9206, 0x1188, 0x6010, 0x9190, 0x0004, 0x2214, 0x9206,\r
++      0x01b8, 0x0050, 0x7240, 0x2c08, 0x9006, 0x080c, 0xe293, 0x1180,\r
++      0x7244, 0x9286, 0xffff, 0x01b0, 0x2160, 0x6007, 0x0026, 0x6017,\r
++      0x1700, 0x7214, 0x9296, 0xffff, 0x1180, 0x6007, 0x0025, 0x0068,\r
++      0x6020, 0x9086, 0x0007, 0x1d80, 0x6004, 0x9086, 0x0024, 0x1110,\r
++      0x080c, 0xabed, 0x2160, 0x6007, 0x0025, 0x6003, 0x0001, 0x080c,\r
++      0x9225, 0x080c, 0x96a0, 0x00ee, 0x002e, 0x001e, 0x0005, 0x2001,\r
++      0x0001, 0x080c, 0x6561, 0x0156, 0x0016, 0x0026, 0x0036, 0x20a9,\r
++      0x0004, 0x2019, 0x1805, 0x2011, 0x0276, 0x080c, 0xbbae, 0x003e,\r
++      0x002e, 0x001e, 0x015e, 0x0120, 0x6007, 0x0031, 0x0804, 0xd220,\r
++      0x080c, 0xb81f, 0x080c, 0x74e9, 0x1190, 0x0006, 0x0026, 0x0036,\r
++      0x080c, 0x7503, 0x1138, 0x080c, 0x77ed, 0x080c, 0x6029, 0x080c,\r
++      0x741a, 0x0010, 0x080c, 0x74bd, 0x003e, 0x002e, 0x000e, 0x0005,\r
++      0x080c, 0x3332, 0x1904, 0xd433, 0x080c, 0xd600, 0x1904, 0xd10c,\r
++      0x6106, 0x080c, 0xd61c, 0x1120, 0x6007, 0x002b, 0x0804, 0xd220,\r
++      0x6007, 0x002c, 0x0804, 0xd220, 0x080c, 0xe4c3, 0x1904, 0xd433,\r
++      0x080c, 0x3332, 0x1904, 0xd433, 0x080c, 0xd600, 0x1904, 0xd10c,\r
++      0x6106, 0x080c, 0xd621, 0x1120, 0x6007, 0x002e, 0x0804, 0xd220,\r
++      0x6007, 0x002f, 0x0804, 0xd220, 0x080c, 0x3332, 0x1904, 0xd433,\r
++      0x00e6, 0x00d6, 0x00c6, 0x6010, 0x2058, 0xb904, 0x9184, 0x00ff,\r
++      0x9086, 0x0006, 0x0158, 0x9184, 0xff00, 0x8007, 0x9086, 0x0006,\r
++      0x0128, 0x00ce, 0x00de, 0x00ee, 0x0804, 0xd227, 0x080c, 0x56de,\r
++      0xd0e4, 0x0904, 0xd37e, 0x2071, 0x026c, 0x7010, 0x603a, 0x7014,\r
++      0x603e, 0x7108, 0x720c, 0x080c, 0x6a67, 0x0140, 0x6010, 0x2058,\r
++      0xb810, 0x9106, 0x1118, 0xb814, 0x9206, 0x0510, 0x080c, 0x6a63,\r
++      0x15b8, 0x2069, 0x1800, 0x6880, 0x9206, 0x1590, 0x687c, 0x9106,\r
++      0x1578, 0x7210, 0x080c, 0xc826, 0x0590, 0x080c, 0xd4eb, 0x0578,\r
++      0x080c, 0xe345, 0x0560, 0x622e, 0x6007, 0x0036, 0x6003, 0x0001,\r
++      0x2009, 0x8020, 0x080c, 0x921e, 0x00ce, 0x00de, 0x00ee, 0x0005,\r
++      0x7214, 0x9286, 0xffff, 0x0150, 0x080c, 0xc826, 0x01c0, 0x9280,\r
++      0x0002, 0x2004, 0x7110, 0x9106, 0x1190, 0x08e0, 0x7210, 0x2c08,\r
++      0x9085, 0x0001, 0x080c, 0xe293, 0x2c10, 0x2160, 0x0140, 0x0890,\r
++      0x6007, 0x0037, 0x602f, 0x0009, 0x6017, 0x1500, 0x08b8, 0x6007,\r
++      0x0037, 0x602f, 0x0003, 0x6017, 0x1700, 0x0880, 0x6007, 0x0012,\r
++      0x0868, 0x080c, 0x3332, 0x1904, 0xd433, 0x6010, 0x2058, 0xb804,\r
++      0x9084, 0xff00, 0x8007, 0x9086, 0x0006, 0x1904, 0xd227, 0x00e6,\r
++      0x00d6, 0x00c6, 0x080c, 0x56de, 0xd0e4, 0x0904, 0xd3f6, 0x2069,\r
++      0x1800, 0x2071, 0x026c, 0x7008, 0x603a, 0x720c, 0x623e, 0x9286,\r
++      0xffff, 0x1150, 0x7208, 0x00c6, 0x2c08, 0x9085, 0x0001, 0x080c,\r
++      0xe293, 0x2c10, 0x00ce, 0x05e8, 0x080c, 0xc826, 0x05d0, 0x7108,\r
++      0x9280, 0x0002, 0x2004, 0x9106, 0x15a0, 0x00c6, 0x0026, 0x2260,\r
++      0x080c, 0xc436, 0x002e, 0x00ce, 0x7118, 0x918c, 0xff00, 0x810f,\r
++      0x9186, 0x0001, 0x0178, 0x9186, 0x0005, 0x0118, 0x9186, 0x0007,\r
++      0x1198, 0x9280, 0x0005, 0x2004, 0x9005, 0x0170, 0x080c, 0xd4eb,\r
++      0x0904, 0xd377, 0x0056, 0x7510, 0x7614, 0x080c, 0xe35e, 0x005e,\r
++      0x00ce, 0x00de, 0x00ee, 0x0005, 0x6007, 0x003b, 0x602f, 0x0009,\r
++      0x6017, 0x2a00, 0x6003, 0x0001, 0x2009, 0x8020, 0x080c, 0x921e,\r
++      0x0c78, 0x6007, 0x003b, 0x602f, 0x0003, 0x6017, 0x0300, 0x6003,\r
++      0x0001, 0x2009, 0x8020, 0x080c, 0x921e, 0x0c10, 0x6007, 0x003b,\r
++      0x602f, 0x000b, 0x6017, 0x0000, 0x0804, 0xd34e, 0x00e6, 0x0026,\r
++      0x080c, 0x6a29, 0x0550, 0x080c, 0x69c5, 0x080c, 0xe535, 0x1518,\r
++      0x2071, 0x1800, 0x70dc, 0x9085, 0x0003, 0x70de, 0x00f6, 0x2079,\r
++      0x0100, 0x72b0, 0x9284, 0x00ff, 0x707e, 0x78e6, 0x9284, 0xff00,\r
++      0x7280, 0x9205, 0x7082, 0x78ea, 0x00fe, 0x70e7, 0x0000, 0x080c,\r
++      0x6a67, 0x0120, 0x2011, 0x1a09, 0x2013, 0x07d0, 0xd0ac, 0x1128,\r
++      0x080c, 0x2fb2, 0x0010, 0x080c, 0xe567, 0x002e, 0x00ee, 0x080c,\r
++      0xabed, 0x0804, 0xd226, 0x080c, 0xabed, 0x0005, 0x2600, 0x0002,\r
++      0xd44a, 0xd47b, 0xd48c, 0xd44a, 0xd44a, 0xd44c, 0xd49d, 0xd44a,\r
++      0xd44a, 0xd44a, 0xd469, 0xd44a, 0xd44a, 0xd44a, 0xd4a8, 0xd4b5,\r
++      0xd4e6, 0xd44a, 0x080c, 0x0d7d, 0x080c, 0xe4c3, 0x1d20, 0x080c,\r
++      0x3332, 0x1d08, 0x080c, 0xd600, 0x1148, 0x7038, 0x6016, 0x6007,\r
++      0x0045, 0x6003, 0x0001, 0x080c, 0x9225, 0x0005, 0x080c, 0x31e7,\r
++      0x080c, 0xcf67, 0x6007, 0x0001, 0x6003, 0x0001, 0x080c, 0x9225,\r
++      0x0005, 0x080c, 0xe4c3, 0x1938, 0x080c, 0x3332, 0x1920, 0x080c,\r
++      0xd600, 0x1d60, 0x703c, 0x6016, 0x6007, 0x004a, 0x6003, 0x0001,\r
++      0x080c, 0x9225, 0x0005, 0x080c, 0x3332, 0x1904, 0xd433, 0x2009,\r
++      0x0041, 0x080c, 0xe570, 0x6007, 0x0047, 0x6003, 0x0001, 0x080c,\r
++      0x9225, 0x080c, 0x96a0, 0x0005, 0x080c, 0x3332, 0x1904, 0xd433,\r
++      0x2009, 0x0042, 0x080c, 0xe570, 0x6007, 0x0047, 0x6003, 0x0001,\r
++      0x080c, 0x9225, 0x080c, 0x96a0, 0x0005, 0x080c, 0x3332, 0x1904,\r
++      0xd433, 0x2009, 0x0046, 0x080c, 0xe570, 0x080c, 0xabed, 0x0005,\r
++      0x080c, 0xd508, 0x0904, 0xd433, 0x6007, 0x004e, 0x6003, 0x0001,\r
++      0x080c, 0x9225, 0x080c, 0x96a0, 0x0005, 0x6007, 0x004f, 0x6017,\r
++      0x0000, 0x7134, 0x918c, 0x00ff, 0x81ff, 0x0508, 0x9186, 0x0001,\r
++      0x1160, 0x7140, 0x2001, 0x19bd, 0x2004, 0x9106, 0x11b0, 0x7144,\r
++      0x2001, 0x19be, 0x2004, 0x9106, 0x0190, 0x9186, 0x0002, 0x1168,\r
++      0x2011, 0x0276, 0x20a9, 0x0004, 0x6010, 0x0096, 0x2048, 0x2019,\r
++      0x000a, 0x080c, 0xbbc2, 0x009e, 0x0110, 0x6017, 0x0001, 0x6003,\r
++      0x0001, 0x080c, 0x9225, 0x080c, 0x96a0, 0x0005, 0x6007, 0x0050,\r
++      0x703c, 0x6016, 0x0ca0, 0x0016, 0x00e6, 0x2071, 0x0260, 0x00b6,\r
++      0x00c6, 0x2260, 0x6010, 0x2058, 0xb8d4, 0xd084, 0x0150, 0x7128,\r
++      0x6050, 0x9106, 0x1120, 0x712c, 0x604c, 0x9106, 0x0110, 0x9006,\r
++      0x0010, 0x9085, 0x0001, 0x00ce, 0x00be, 0x00ee, 0x001e, 0x0005,\r
++      0x0016, 0x0096, 0x0086, 0x00e6, 0x01c6, 0x01d6, 0x0126, 0x2091,\r
++      0x8000, 0x2071, 0x1800, 0x7090, 0x908a, 0x00f9, 0x16e8, 0x20e1,\r
++      0x0000, 0x2001, 0x19a0, 0x2003, 0x0000, 0x080c, 0x1053, 0x05a0,\r
++      0x2900, 0x6016, 0x7090, 0x8004, 0xa816, 0x908a, 0x001e, 0x02d0,\r
++      0xa833, 0x001e, 0x20a9, 0x001e, 0xa860, 0x20e8, 0xa85c, 0x9080,\r
++      0x001b, 0x20a0, 0x2001, 0x19a0, 0x0016, 0x200c, 0x0471, 0x001e,\r
++      0x2940, 0x080c, 0x1053, 0x01c0, 0x2900, 0xa006, 0x2100, 0x81ff,\r
++      0x0180, 0x0c18, 0xa832, 0x20a8, 0xa860, 0x20e8, 0xa85c, 0x9080,\r
++      0x001b, 0x20a0, 0x2001, 0x19a0, 0x0016, 0x200c, 0x00b1, 0x001e,\r
++      0x0000, 0x9085, 0x0001, 0x0048, 0x2071, 0x1800, 0x7093, 0x0000,\r
++      0x6014, 0x2048, 0x080c, 0x0fec, 0x9006, 0x012e, 0x01de, 0x01ce,\r
++      0x00ee, 0x008e, 0x009e, 0x001e, 0x0005, 0x0006, 0x0016, 0x0026,\r
++      0x0036, 0x00c6, 0x918c, 0xffff, 0x11a8, 0x080c, 0x2189, 0x2099,\r
++      0x026c, 0x2001, 0x0014, 0x3518, 0x9312, 0x1218, 0x23a8, 0x4003,\r
++      0x00f8, 0x20a8, 0x4003, 0x22a8, 0x8108, 0x080c, 0x2189, 0x2099,\r
++      0x0260, 0x0ca8, 0x080c, 0x2189, 0x2061, 0x19a0, 0x6004, 0x2098,\r
++      0x6008, 0x3518, 0x9312, 0x1218, 0x23a8, 0x4003, 0x0048, 0x20a8,\r
++      0x4003, 0x22a8, 0x8108, 0x080c, 0x2189, 0x2099, 0x0260, 0x0ca8,\r
++      0x2061, 0x19a0, 0x2019, 0x0280, 0x3300, 0x931e, 0x0110, 0x6006,\r
++      0x0020, 0x2001, 0x0260, 0x6006, 0x8108, 0x2162, 0x9292, 0x0021,\r
++      0x9296, 0xffff, 0x620a, 0x00ce, 0x003e, 0x002e, 0x001e, 0x000e,\r
++      0x0005, 0x0006, 0x0016, 0x0026, 0x0036, 0x00c6, 0x81ff, 0x11b8,\r
++      0x080c, 0x21a1, 0x20a1, 0x024c, 0x2001, 0x0014, 0x3518, 0x9312,\r
++      0x1218, 0x23a8, 0x4003, 0x0418, 0x20a8, 0x4003, 0x82ff, 0x01f8,\r
++      0x22a8, 0x8108, 0x080c, 0x21a1, 0x20a1, 0x0240, 0x0c98, 0x080c,\r
++      0x21a1, 0x2061, 0x19a3, 0x6004, 0x20a0, 0x6008, 0x3518, 0x9312,\r
++      0x1218, 0x23a8, 0x4003, 0x0058, 0x20a8, 0x4003, 0x82ff, 0x0138,\r
++      0x22a8, 0x8108, 0x080c, 0x21a1, 0x20a1, 0x0240, 0x0c98, 0x2061,\r
++      0x19a3, 0x2019, 0x0260, 0x3400, 0x931e, 0x0110, 0x6006, 0x0020,\r
++      0x2001, 0x0240, 0x6006, 0x8108, 0x2162, 0x9292, 0x0021, 0x9296,\r
++      0xffff, 0x620a, 0x00ce, 0x003e, 0x002e, 0x001e, 0x000e, 0x0005,\r
++      0x00b6, 0x0066, 0x6610, 0x2658, 0xbe04, 0x96b4, 0xff00, 0x8637,\r
++      0x9686, 0x0006, 0x0170, 0x9686, 0x0004, 0x0158, 0xbe04, 0x96b4,\r
++      0x00ff, 0x9686, 0x0006, 0x0128, 0x9686, 0x0004, 0x0110, 0x9085,\r
++      0x0001, 0x006e, 0x00be, 0x0005, 0x00d6, 0x080c, 0xd696, 0x00de,\r
++      0x0005, 0x00d6, 0x080c, 0xd6a3, 0x1520, 0x680c, 0x908c, 0xff00,\r
++      0x6820, 0x9084, 0x00ff, 0x9115, 0x6216, 0x6824, 0x602e, 0xd1e4,\r
++      0x0130, 0x9006, 0x080c, 0xe690, 0x2009, 0x0001, 0x0078, 0xd1ec,\r
++      0x0180, 0x6920, 0x918c, 0x00ff, 0x6824, 0x080c, 0x25fb, 0x1148,\r
++      0x2001, 0x0001, 0x080c, 0xe690, 0x2110, 0x900e, 0x080c, 0x323c,\r
++      0x0018, 0x9085, 0x0001, 0x0008, 0x9006, 0x00de, 0x0005, 0x00b6,\r
++      0x00c6, 0x080c, 0xac5f, 0x0598, 0x0016, 0x0026, 0x00c6, 0x2011,\r
++      0x0263, 0x2204, 0x8211, 0x220c, 0x080c, 0x25fb, 0x1568, 0x080c,\r
++      0x65c4, 0x1550, 0xbe12, 0xbd16, 0x00ce, 0x002e, 0x001e, 0x2b00,\r
++      0x6012, 0x080c, 0xe4c3, 0x11c8, 0x080c, 0x3332, 0x11b0, 0x080c,\r
++      0xd600, 0x0500, 0x2001, 0x0007, 0x080c, 0x6575, 0x2001, 0x0007,\r
++      0x080c, 0x65a1, 0x6017, 0x0000, 0x6023, 0x0001, 0x6007, 0x0001,\r
++      0x6003, 0x0001, 0x080c, 0x9225, 0x0010, 0x080c, 0xabed, 0x9085,\r
++      0x0001, 0x00ce, 0x00be, 0x0005, 0x080c, 0xabed, 0x00ce, 0x002e,\r
++      0x001e, 0x0ca8, 0x080c, 0xabed, 0x9006, 0x0c98, 0x2069, 0x026d,\r
++      0x6800, 0x9082, 0x0010, 0x1228, 0x6017, 0x0000, 0x9085, 0x0001,\r
++      0x0008, 0x9006, 0x0005, 0x6017, 0x0000, 0x2069, 0x026c, 0x6808,\r
++      0x9084, 0xff00, 0x9086, 0x0800, 0x1190, 0x6904, 0x9186, 0x0018,\r
++      0x0118, 0x9186, 0x0014, 0x1158, 0x810f, 0x6800, 0x9084, 0x00ff,\r
++      0x910d, 0x6162, 0x908e, 0x0014, 0x0110, 0x908e, 0x0010, 0x0005,\r
++      0x6004, 0x90b2, 0x0053, 0x1a0c, 0x0d7d, 0x91b6, 0x0013, 0x1130,\r
++      0x2008, 0x91b2, 0x0040, 0x1a04, 0xd7e5, 0x0092, 0x91b6, 0x0027,\r
++      0x0120, 0x91b6, 0x0014, 0x190c, 0x0d7d, 0x2001, 0x0007, 0x080c,\r
++      0x65a1, 0x080c, 0x95de, 0x080c, 0xac28, 0x080c, 0x96a0, 0x0005,\r
++      0xd720, 0xd722, 0xd720, 0xd720, 0xd720, 0xd722, 0xd72f, 0xd7e2,\r
++      0xd77f, 0xd7e2, 0xd793, 0xd7e2, 0xd72f, 0xd7e2, 0xd7da, 0xd7e2,\r
++      0xd7da, 0xd7e2, 0xd7e2, 0xd720, 0xd720, 0xd720, 0xd720, 0xd720,\r
++      0xd720, 0xd720, 0xd720, 0xd720, 0xd720, 0xd720, 0xd722, 0xd720,\r
++      0xd7e2, 0xd720, 0xd720, 0xd7e2, 0xd720, 0xd7df, 0xd7e2, 0xd720,\r
++      0xd720, 0xd720, 0xd720, 0xd7e2, 0xd7e2, 0xd720, 0xd7e2, 0xd7e2,\r
++      0xd720, 0xd72a, 0xd720, 0xd720, 0xd720, 0xd720, 0xd7de, 0xd7e2,\r
++      0xd720, 0xd720, 0xd7e2, 0xd7e2, 0xd720, 0xd720, 0xd720, 0xd720,\r
++      0x080c, 0x0d7d, 0x080c, 0xcf6a, 0x6003, 0x0002, 0x080c, 0x96a0,\r
++      0x0804, 0xd7e4, 0x9006, 0x080c, 0x6561, 0x0804, 0xd7e2, 0x080c,\r
++      0x6a63, 0x1904, 0xd7e2, 0x9006, 0x080c, 0x6561, 0x6010, 0x2058,\r
++      0xb810, 0x9086, 0x00ff, 0x1140, 0x00f6, 0x2079, 0x1800, 0x78a8,\r
++      0x8000, 0x78aa, 0x00fe, 0x0428, 0x6010, 0x2058, 0xb884, 0x9005,\r
++      0x1178, 0x080c, 0xcf52, 0x1904, 0xd7e2, 0x0036, 0x0046, 0xbba0,\r
++      0x2021, 0x0007, 0x080c, 0x4cbe, 0x004e, 0x003e, 0x0804, 0xd7e2,\r
++      0x080c, 0x3363, 0x1904, 0xd7e2, 0x2001, 0x1800, 0x2004, 0x9086,\r
++      0x0002, 0x1138, 0x00f6, 0x2079, 0x1800, 0x78a8, 0x8000, 0x78aa,\r
++      0x00fe, 0x2001, 0x0002, 0x080c, 0x6575, 0x6023, 0x0001, 0x6003,\r
++      0x0001, 0x6007, 0x0002, 0x080c, 0x9225, 0x080c, 0x96a0, 0x6110,\r
++      0x2158, 0x2009, 0x0001, 0x080c, 0x864c, 0x0804, 0xd7e4, 0x6610,\r
++      0x2658, 0xbe04, 0x96b4, 0xff00, 0x8637, 0x9686, 0x0006, 0x0904,\r
++      0xd7e2, 0x9686, 0x0004, 0x0904, 0xd7e2, 0x080c, 0x8eca, 0x2001,\r
++      0x0004, 0x0804, 0xd7e0, 0x2001, 0x1800, 0x2004, 0x9086, 0x0003,\r
++      0x1158, 0x0036, 0x0046, 0x6010, 0x2058, 0xbba0, 0x2021, 0x0006,\r
++      0x080c, 0x4cbe, 0x004e, 0x003e, 0x2001, 0x0006, 0x080c, 0xd7fe,\r
++      0x6610, 0x2658, 0xbe04, 0x0066, 0x96b4, 0xff00, 0x8637, 0x9686,\r
++      0x0006, 0x006e, 0x0168, 0x2001, 0x0006, 0x080c, 0x65a1, 0x9284,\r
++      0x00ff, 0x908e, 0x0007, 0x1120, 0x2001, 0x0006, 0x080c, 0x6575,\r
++      0x080c, 0x6a63, 0x11f8, 0x2001, 0x1837, 0x2004, 0xd0a4, 0x01d0,\r
++      0xbe04, 0x96b4, 0x00ff, 0x9686, 0x0006, 0x01a0, 0x00f6, 0x2079,\r
++      0x1800, 0x78a8, 0x8000, 0x78aa, 0x00fe, 0x0804, 0xd769, 0x2001,\r
++      0x0004, 0x0030, 0x2001, 0x0006, 0x0409, 0x0020, 0x0018, 0x0010,\r
++      0x080c, 0x65a1, 0x080c, 0xabed, 0x0005, 0x2600, 0x0002, 0xd7f9,\r
++      0xd7f9, 0xd7f9, 0xd7f9, 0xd7f9, 0xd7fb, 0xd7f9, 0xd7fb, 0xd7f9,\r
++      0xd7f9, 0xd7fb, 0xd7f9, 0xd7f9, 0xd7f9, 0xd7fb, 0xd7fb, 0xd7fb,\r
++      0xd7fb, 0x080c, 0x0d7d, 0x080c, 0xabed, 0x0005, 0x0016, 0x00b6,\r
++      0x00d6, 0x6110, 0x2158, 0xb900, 0xd184, 0x0138, 0x080c, 0x6575,\r
++      0x9006, 0x080c, 0x6561, 0x080c, 0x321c, 0x00de, 0x00be, 0x001e,\r
++      0x0005, 0x6610, 0x2658, 0xb804, 0x9084, 0xff00, 0x8007, 0x90b2,\r
++      0x000c, 0x1a0c, 0x0d7d, 0x91b6, 0x0015, 0x1110, 0x003b, 0x0028,\r
++      0x91b6, 0x0016, 0x190c, 0x0d7d, 0x006b, 0x0005, 0xb69e, 0xb69e,\r
++      0xb69e, 0xb69e, 0xb69e, 0xb69e, 0xd87d, 0xd83e, 0xb69e, 0xb69e,\r
++      0xb69e, 0xb69e, 0xb69e, 0xb69e, 0xb69e, 0xb69e, 0xb69e, 0xb69e,\r
++      0xd87d, 0xd884, 0xb69e, 0xb69e, 0xb69e, 0xb69e, 0x00f6, 0x080c,\r
++      0x6a63, 0x11d8, 0x080c, 0xcf52, 0x11c0, 0x6010, 0x905d, 0x01a8,\r
++      0xb884, 0x9005, 0x0190, 0x9006, 0x080c, 0x6561, 0x2001, 0x0002,\r
++      0x080c, 0x6575, 0x6023, 0x0001, 0x6003, 0x0001, 0x6007, 0x0002,\r
++      0x080c, 0x9225, 0x080c, 0x96a0, 0x00f0, 0x2011, 0x0263, 0x2204,\r
++      0x8211, 0x220c, 0x080c, 0x25fb, 0x11b0, 0x080c, 0x6625, 0x0118,\r
++      0x080c, 0xabed, 0x0080, 0xb810, 0x0006, 0xb814, 0x0006, 0xb884,\r
++      0x0006, 0x080c, 0x6043, 0x000e, 0xb886, 0x000e, 0xb816, 0x000e,\r
++      0xb812, 0x080c, 0xabed, 0x00fe, 0x0005, 0x6604, 0x96b6, 0x001e,\r
++      0x1110, 0x080c, 0xabed, 0x0005, 0x080c, 0xba27, 0x1148, 0x6003,\r
++      0x0001, 0x6007, 0x0001, 0x080c, 0x9225, 0x080c, 0x96a0, 0x0010,\r
++      0x080c, 0xabed, 0x0005, 0x6004, 0x908a, 0x0053, 0x1a0c, 0x0d7d,\r
++      0x080c, 0x95de, 0x080c, 0xac28, 0x0005, 0x9182, 0x0040, 0x0002,\r
++      0xd8b3, 0xd8b3, 0xd8b3, 0xd8b3, 0xd8b5, 0xd8b3, 0xd8b3, 0xd8b3,\r
++      0xd8b3, 0xd8b3, 0xd8b3, 0xd8b3, 0xd8b3, 0xd8b3, 0xd8b3, 0xd8b3,\r
++      0xd8b3, 0xd8b3, 0xd8b3, 0x080c, 0x0d7d, 0x0096, 0x00b6, 0x00d6,\r
++      0x00e6, 0x00f6, 0x0046, 0x0026, 0x6210, 0x2258, 0xb8bc, 0x9005,\r
++      0x11b0, 0x6007, 0x0044, 0x2071, 0x0260, 0x7444, 0x94a4, 0xff00,\r
++      0x0904, 0xd91c, 0x080c, 0xe684, 0x1170, 0x9486, 0x2000, 0x1158,\r
++      0x2009, 0x0001, 0x2011, 0x0200, 0x080c, 0x88ec, 0x0020, 0x9026,\r
++      0x080c, 0xe508, 0x0c30, 0x080c, 0x103a, 0x090c, 0x0d7d, 0x6003,\r
++      0x0007, 0xa867, 0x010d, 0x9006, 0xa802, 0xa86a, 0xac8a, 0x2c00,\r
++      0xa88e, 0x6008, 0xa8e2, 0x6010, 0x2058, 0xb8a0, 0x7130, 0xa97a,\r
++      0x0016, 0xa876, 0xa87f, 0x0000, 0xa883, 0x0000, 0xa887, 0x0036,\r
++      0x080c, 0x6d80, 0x001e, 0x080c, 0xe684, 0x1904, 0xd97c, 0x9486,\r
++      0x2000, 0x1130, 0x2019, 0x0017, 0x080c, 0xe239, 0x0804, 0xd97c,\r
++      0x9486, 0x0200, 0x1120, 0x080c, 0xe1c9, 0x0804, 0xd97c, 0x9486,\r
++      0x0400, 0x0120, 0x9486, 0x1000, 0x1904, 0xd97c, 0x2019, 0x0002,\r
++      0x080c, 0xe1e8, 0x0804, 0xd97c, 0x2069, 0x1a6f, 0x6a00, 0xd284,\r
++      0x0904, 0xd9e6, 0x9284, 0x0300, 0x1904, 0xd9df, 0x6804, 0x9005,\r
++      0x0904, 0xd9c7, 0x2d78, 0x6003, 0x0007, 0x080c, 0x1053, 0x0904,\r
++      0xd988, 0x7800, 0xd08c, 0x1118, 0x7804, 0x8001, 0x7806, 0x6017,\r
++      0x0000, 0x2001, 0x180f, 0x2004, 0xd084, 0x1904, 0xd9ea, 0x9006,\r
++      0xa802, 0xa867, 0x0116, 0xa86a, 0x6008, 0xa8e2, 0x2c00, 0xa87a,\r
++      0x6010, 0x2058, 0xb8a0, 0x7130, 0xa9b6, 0xa876, 0xb928, 0xa9ba,\r
++      0xb92c, 0xa9be, 0xb930, 0xa9c2, 0xb934, 0xa9c6, 0xa883, 0x003d,\r
++      0x7044, 0x9084, 0x0003, 0x9080, 0xd984, 0x2005, 0xa87e, 0x20a9,\r
++      0x000a, 0x2001, 0x0270, 0xaa5c, 0x9290, 0x0021, 0x2009, 0x0205,\r
++      0x200b, 0x0080, 0x20e1, 0x0000, 0xab60, 0x23e8, 0x2098, 0x22a0,\r
++      0x4003, 0x200b, 0x0000, 0x2001, 0x027a, 0x200c, 0xa9b2, 0x8000,\r
++      0x200c, 0xa9ae, 0x080c, 0x6d83, 0x002e, 0x004e, 0x00fe, 0x00ee,\r
++      0x00de, 0x00be, 0x009e, 0x0005, 0x0000, 0x0080, 0x0040, 0x0000,\r
++      0x2001, 0x1810, 0x2004, 0xd084, 0x0120, 0x080c, 0x103a, 0x1904,\r
++      0xd931, 0x6017, 0xf100, 0x6003, 0x0001, 0x6007, 0x0041, 0x2009,\r
++      0xa022, 0x080c, 0x921e, 0x0c00, 0x2069, 0x0260, 0x6848, 0x9084,\r
++      0xff00, 0x9086, 0x1200, 0x1198, 0x686c, 0x9084, 0x00ff, 0x0016,\r
++      0x6114, 0x918c, 0xf700, 0x910d, 0x6116, 0x001e, 0x6003, 0x0001,\r
++      0x6007, 0x0043, 0x2009, 0xa025, 0x080c, 0x921e, 0x0828, 0x6868,\r
++      0x602e, 0x686c, 0x6032, 0x6017, 0xf200, 0x6003, 0x0001, 0x6007,\r
++      0x0041, 0x2009, 0xa022, 0x080c, 0x921e, 0x0804, 0xd97c, 0x2001,\r
++      0x180e, 0x2004, 0xd0ec, 0x0120, 0x2011, 0x8049, 0x080c, 0x4b07,\r
++      0x6017, 0xf300, 0x0010, 0x6017, 0xf100, 0x6003, 0x0001, 0x6007,\r
++      0x0041, 0x2009, 0xa022, 0x080c, 0x921e, 0x0804, 0xd97c, 0x6017,\r
++      0xf500, 0x0c98, 0x6017, 0xf600, 0x0804, 0xd99c, 0x6017, 0xf200,\r
++      0x0804, 0xd99c, 0xa867, 0x0146, 0xa86b, 0x0000, 0x6008, 0xa886,\r
++      0x2c00, 0xa87a, 0x7044, 0x9084, 0x0003, 0x9080, 0xd984, 0x2005,\r
++      0xa87e, 0x2928, 0x6010, 0x2058, 0xb8a0, 0xa876, 0xb828, 0xa88a,\r
++      0xb82c, 0xa88e, 0xb830, 0xa892, 0xb834, 0xa896, 0xa883, 0x003d,\r
++      0x2009, 0x0205, 0x2104, 0x9085, 0x0080, 0x200a, 0x20e1, 0x0000,\r
++      0x2011, 0x0210, 0x2214, 0x9294, 0x0fff, 0xaaa2, 0x9282, 0x0111,\r
++      0x1a0c, 0x0d7d, 0x8210, 0x821c, 0x2001, 0x026c, 0x2098, 0xa860,\r
++      0x20e8, 0xa85c, 0x9080, 0x0029, 0x20a0, 0x2011, 0xda66, 0x2041,\r
++      0x0001, 0x223d, 0x9784, 0x00ff, 0x9322, 0x1208, 0x2300, 0x20a8,\r
++      0x4003, 0x931a, 0x0530, 0x8210, 0xd7fc, 0x1130, 0x8d68, 0x2d0a,\r
++      0x2001, 0x0260, 0x2098, 0x0c68, 0x2950, 0x080c, 0x1053, 0x0170,\r
++      0x2900, 0xb002, 0xa867, 0x0147, 0xa86b, 0x0000, 0xa860, 0x20e8,\r
++      0xa85c, 0x9080, 0x001b, 0x20a0, 0x8840, 0x08d8, 0x2548, 0xa800,\r
++      0x902d, 0x0118, 0x080c, 0x106c, 0x0cc8, 0x080c, 0x106c, 0x0804,\r
++      0xd988, 0x2548, 0x8847, 0x9885, 0x0046, 0xa866, 0x2009, 0x0205,\r
++      0x200b, 0x0000, 0x080c, 0xe26c, 0x0804, 0xd97c, 0x8010, 0x0004,\r
++      0x801a, 0x0006, 0x8018, 0x0008, 0x8016, 0x000a, 0x8014, 0x9186,\r
++      0x0013, 0x1160, 0x6004, 0x908a, 0x0057, 0x1a0c, 0x0d7d, 0x9082,\r
++      0x0040, 0x0a0c, 0x0d7d, 0x2008, 0x0804, 0xdaf1, 0x9186, 0x0051,\r
++      0x0108, 0x0040, 0x080c, 0xaaa8, 0x01e8, 0x9086, 0x0002, 0x0904,\r
++      0xdb38, 0x00c0, 0x9186, 0x0027, 0x0180, 0x9186, 0x0048, 0x0128,\r
++      0x9186, 0x0014, 0x0150, 0x190c, 0x0d7d, 0x080c, 0xaaa8, 0x0150,\r
++      0x9086, 0x0004, 0x0904, 0xdbd5, 0x0028, 0x6004, 0x9082, 0x0040,\r
++      0x2008, 0x001a, 0x080c, 0xaca9, 0x0005, 0xdab8, 0xdaba, 0xdaba,\r
++      0xdae1, 0xdab8, 0xdab8, 0xdab8, 0xdab8, 0xdab8, 0xdab8, 0xdab8,\r
++      0xdab8, 0xdab8, 0xdab8, 0xdab8, 0xdab8, 0xdab8, 0xdab8, 0xdab8,\r
++      0x080c, 0x0d7d, 0x080c, 0x95de, 0x080c, 0x96a0, 0x0036, 0x0096,\r
++      0x6014, 0x904d, 0x01d8, 0x080c, 0xc838, 0x01c0, 0x6003, 0x0002,\r
++      0x6010, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc, 0x1178, 0x2019,\r
++      0x0004, 0x080c, 0xe26c, 0x6017, 0x0000, 0x6018, 0x9005, 0x1120,\r
++      0x2001, 0x1987, 0x2004, 0x601a, 0x6003, 0x0007, 0x009e, 0x003e,\r
++      0x0005, 0x0096, 0x080c, 0x95de, 0x080c, 0x96a0, 0x080c, 0xc838,\r
++      0x0120, 0x6014, 0x2048, 0x080c, 0x106c, 0x080c, 0xac28, 0x009e,\r
++      0x0005, 0x0002, 0xdb05, 0xdb1a, 0xdb07, 0xdb2f, 0xdb05, 0xdb05,\r
++      0xdb05, 0xdb05, 0xdb05, 0xdb05, 0xdb05, 0xdb05, 0xdb05, 0xdb05,\r
++      0xdb05, 0xdb05, 0xdb05, 0xdb05, 0xdb05, 0x080c, 0x0d7d, 0x0096,\r
++      0x6014, 0x2048, 0xa87c, 0xd0b4, 0x0138, 0x6003, 0x0007, 0x2009,\r
++      0x0043, 0x080c, 0xac8c, 0x0010, 0x6003, 0x0004, 0x080c, 0x96a0,\r
++      0x009e, 0x0005, 0x080c, 0xc838, 0x0138, 0x6114, 0x0096, 0x2148,\r
++      0xa97c, 0x009e, 0xd1ec, 0x1138, 0x080c, 0x88c1, 0x080c, 0xabed,\r
++      0x080c, 0x96a0, 0x0005, 0x080c, 0xe4cc, 0x0db0, 0x0cc8, 0x6003,\r
++      0x0001, 0x6007, 0x0041, 0x2009, 0xa022, 0x080c, 0x921e, 0x0005,\r
++      0x9182, 0x0040, 0x0002, 0xdb4e, 0xdb50, 0xdb4e, 0xdb4e, 0xdb4e,\r
++      0xdb4e, 0xdb4e, 0xdb4e, 0xdb4e, 0xdb4e, 0xdb4e, 0xdb4e, 0xdb4e,\r
++      0xdb4e, 0xdb4e, 0xdb4e, 0xdb4e, 0xdb51, 0xdb4e, 0x080c, 0x0d7d,\r
++      0x0005, 0x00d6, 0x080c, 0x88c1, 0x00de, 0x080c, 0xe524, 0x080c,\r
++      0xabed, 0x0005, 0x9182, 0x0040, 0x0002, 0xdb70, 0xdb70, 0xdb70,\r
++      0xdb70, 0xdb70, 0xdb70, 0xdb70, 0xdb70, 0xdb70, 0xdb72, 0xdb9d,\r
++      0xdb70, 0xdb70, 0xdb70, 0xdb70, 0xdb9d, 0xdb70, 0xdb70, 0xdb70,\r
++      0x080c, 0x0d7d, 0x6014, 0x0096, 0x2048, 0xa87c, 0xd0fc, 0x0168,\r
++      0x908c, 0x0003, 0x918e, 0x0002, 0x0180, 0x6144, 0xd1e4, 0x1168,\r
++      0x2009, 0x0041, 0x009e, 0x0804, 0xdc5d, 0x6003, 0x0007, 0x601b,\r
++      0x0000, 0x080c, 0x88c1, 0x009e, 0x0005, 0x6014, 0x2048, 0xa97c,\r
++      0xd1ec, 0x1130, 0x080c, 0x88c1, 0x080c, 0xabed, 0x009e, 0x0005,\r
++      0x080c, 0xe4cc, 0x0db8, 0x009e, 0x0005, 0x2001, 0x180c, 0x200c,\r
++      0xc1d4, 0x2102, 0x0036, 0x080c, 0x963b, 0x080c, 0x96a0, 0x6014,\r
++      0x0096, 0x2048, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc,\r
++      0x0188, 0xa87c, 0x9084, 0x0003, 0x9086, 0x0002, 0x0140, 0xa8ac,\r
++      0x6330, 0x931a, 0x6332, 0xa8b0, 0x632c, 0x931b, 0x632e, 0x6003,\r
++      0x0002, 0x0080, 0x2019, 0x0004, 0x080c, 0xe26c, 0x6018, 0x9005,\r
++      0x1128, 0x2001, 0x1987, 0x2004, 0x8003, 0x601a, 0x6017, 0x0000,\r
++      0x6003, 0x0007, 0x009e, 0x003e, 0x0005, 0x9182, 0x0040, 0x0002,\r
++      0xdbec, 0xdbec, 0xdbec, 0xdbec, 0xdbec, 0xdbec, 0xdbec, 0xdbec,\r
++      0xdbee, 0xdbec, 0xdbec, 0xdbec, 0xdbec, 0xdbec, 0xdbec, 0xdbec,\r
++      0xdbec, 0xdbec, 0xdbec, 0xdc39, 0x080c, 0x0d7d, 0x6014, 0x0096,\r
++      0x2048, 0xa834, 0xaa38, 0x6110, 0x00b6, 0x2158, 0xb900, 0x00be,\r
++      0xd1bc, 0x1190, 0x920d, 0x1518, 0xa87c, 0xd0fc, 0x0128, 0x2009,\r
++      0x0041, 0x009e, 0x0804, 0xdc5d, 0x6003, 0x0007, 0x601b, 0x0000,\r
++      0x080c, 0x88c1, 0x009e, 0x0005, 0x6124, 0xd1f4, 0x1d58, 0x0006,\r
++      0x0046, 0xacac, 0x9422, 0xa9b0, 0x2200, 0x910b, 0x6030, 0x9420,\r
++      0x6432, 0x602c, 0x9109, 0x612e, 0x004e, 0x000e, 0x08d8, 0x6110,\r
++      0x00b6, 0x2158, 0xb900, 0x00be, 0xd1bc, 0x1178, 0x2009, 0x180e,\r
++      0x210c, 0xd19c, 0x0118, 0x6003, 0x0007, 0x0010, 0x6003, 0x0006,\r
++      0x00e9, 0x080c, 0x88c3, 0x009e, 0x0005, 0x6003, 0x0002, 0x009e,\r
++      0x0005, 0x6024, 0xd0f4, 0x0128, 0x080c, 0x1670, 0x1904, 0xdbee,\r
++      0x0005, 0x6014, 0x0096, 0x2048, 0xa834, 0xa938, 0x009e, 0x9105,\r
++      0x1120, 0x080c, 0x1670, 0x1904, 0xdbee, 0x0005, 0xd2fc, 0x0140,\r
++      0x8002, 0x8000, 0x8212, 0x9291, 0x0000, 0x2009, 0x0009, 0x0010,\r
++      0x2009, 0x0015, 0xaa9a, 0xa896, 0x0005, 0x9182, 0x0040, 0x0208,\r
++      0x0062, 0x9186, 0x0013, 0x0120, 0x9186, 0x0014, 0x190c, 0x0d7d,\r
++      0x6024, 0xd0dc, 0x090c, 0x0d7d, 0x0005, 0xdc80, 0xdc8c, 0xdc98,\r
++      0xdca4, 0xdc80, 0xdc80, 0xdc80, 0xdc80, 0xdc87, 0xdc82, 0xdc82,\r
++      0xdc80, 0xdc80, 0xdc80, 0xdc80, 0xdc82, 0xdc80, 0xdc82, 0xdc80,\r
++      0x080c, 0x0d7d, 0x6024, 0xd0dc, 0x090c, 0x0d7d, 0x0005, 0x6014,\r
++      0x9005, 0x190c, 0x0d7d, 0x0005, 0x6003, 0x0001, 0x6106, 0x0126,\r
++      0x2091, 0x8000, 0x2009, 0xa022, 0x080c, 0x9200, 0x012e, 0x0005,\r
++      0x6003, 0x0004, 0x6106, 0x0126, 0x2091, 0x8000, 0x2009, 0xa001,\r
++      0x080c, 0x921e, 0x012e, 0x0005, 0x6003, 0x0003, 0x6106, 0x080c,\r
++      0x1c03, 0x0126, 0x2091, 0x8000, 0x6014, 0x0096, 0x2048, 0xa87c,\r
++      0xd0fc, 0x0188, 0x9084, 0x0003, 0x9086, 0x0002, 0x01a0, 0x6024,\r
++      0xd0cc, 0x1148, 0xd0c4, 0x1138, 0xa8a8, 0x9005, 0x1120, 0x6144,\r
++      0x918d, 0xb035, 0x0018, 0x6144, 0x918d, 0xa035, 0x009e, 0x080c,\r
++      0x9265, 0x012e, 0x0005, 0x6144, 0x918d, 0xa032, 0x0cb8, 0x0126,\r
++      0x2091, 0x8000, 0x0036, 0x0096, 0x9182, 0x0040, 0x0023, 0x009e,\r
++      0x003e, 0x012e, 0x0005, 0xdceb, 0xdced, 0xdd02, 0xdd1c, 0xdceb,\r
++      0xdceb, 0xdceb, 0xdceb, 0xdceb, 0xdceb, 0xdceb, 0xdceb, 0xdceb,\r
++      0xdceb, 0xdceb, 0xdceb, 0x080c, 0x0d7d, 0x6014, 0x2048, 0xa87c,\r
++      0xd0fc, 0x0510, 0x909c, 0x0003, 0x939e, 0x0003, 0x01e8, 0x6003,\r
++      0x0001, 0x6106, 0x0126, 0x2091, 0x8000, 0x2009, 0xa022, 0x080c,\r
++      0x921e, 0x0470, 0x6014, 0x2048, 0xa87c, 0xd0fc, 0x0168, 0x909c,\r
++      0x0003, 0x939e, 0x0003, 0x0140, 0x6003, 0x0001, 0x6106, 0x2009,\r
++      0xa001, 0x080c, 0x921e, 0x00e0, 0x901e, 0x6316, 0x631a, 0x2019,\r
++      0x0004, 0x080c, 0xe26c, 0x00a0, 0x6014, 0x2048, 0xa87c, 0xd0fc,\r
++      0x0d98, 0x909c, 0x0003, 0x939e, 0x0003, 0x0d70, 0x6003, 0x0003,\r
++      0x6106, 0x080c, 0x1c03, 0x6144, 0x918d, 0xa035, 0x080c, 0x9265,\r
++      0x0005, 0x080c, 0x95de, 0x6114, 0x81ff, 0x0158, 0x0096, 0x2148,\r
++      0x080c, 0xe621, 0x0036, 0x2019, 0x0029, 0x080c, 0xe26c, 0x003e,\r
++      0x009e, 0x080c, 0xac28, 0x080c, 0x96a0, 0x0005, 0x080c, 0x963b,\r
++      0x6114, 0x81ff, 0x0158, 0x0096, 0x2148, 0x080c, 0xe621, 0x0036,\r
++      0x2019, 0x0029, 0x080c, 0xe26c, 0x003e, 0x009e, 0x080c, 0xac28,\r
++      0x0005, 0x9182, 0x0085, 0x0002, 0xdd6b, 0xdd69, 0xdd69, 0xdd77,\r
++      0xdd69, 0xdd69, 0xdd69, 0xdd69, 0xdd69, 0xdd69, 0xdd69, 0xdd69,\r
++      0xdd69, 0x080c, 0x0d7d, 0x6003, 0x000b, 0x6106, 0x0126, 0x2091,\r
++      0x8000, 0x2009, 0x8020, 0x080c, 0x921e, 0x012e, 0x0005, 0x0026,\r
++      0x00e6, 0x080c, 0xe4c3, 0x0118, 0x080c, 0xabed, 0x0440, 0x2071,\r
++      0x0260, 0x7224, 0x6216, 0x2001, 0x180e, 0x2004, 0xd0e4, 0x0150,\r
++      0x6010, 0x00b6, 0x2058, 0xbca0, 0x00be, 0x2c00, 0x2011, 0x014e,\r
++      0x080c, 0xaf1a, 0x7220, 0x080c, 0xe102, 0x0118, 0x6007, 0x0086,\r
++      0x0040, 0x6007, 0x0087, 0x7224, 0x9296, 0xffff, 0x1110, 0x6007,\r
++      0x0086, 0x6003, 0x0001, 0x2009, 0x8020, 0x080c, 0x921e, 0x00ee,\r
++      0x002e, 0x0005, 0x9186, 0x0013, 0x1160, 0x6004, 0x908a, 0x0085,\r
++      0x0a0c, 0x0d7d, 0x908a, 0x0092, 0x1a0c, 0x0d7d, 0x9082, 0x0085,\r
++      0x00a2, 0x9186, 0x0027, 0x0130, 0x9186, 0x0014, 0x0118, 0x080c,\r
++      0xaca9, 0x0050, 0x2001, 0x0007, 0x080c, 0x65a1, 0x080c, 0x95de,\r
++      0x080c, 0xac28, 0x080c, 0x96a0, 0x0005, 0xddda, 0xdddc, 0xdddc,\r
++      0xddda, 0xddda, 0xddda, 0xddda, 0xddda, 0xddda, 0xddda, 0xddda,\r
++      0xddda, 0xddda, 0x080c, 0x0d7d, 0x080c, 0xac28, 0x080c, 0x96a0,\r
++      0x0005, 0x9182, 0x0085, 0x0a0c, 0x0d7d, 0x9182, 0x0092, 0x1a0c,\r
++      0x0d7d, 0x9182, 0x0085, 0x0002, 0xddf9, 0xddf9, 0xddf9, 0xddfb,\r
++      0xddf9, 0xddf9, 0xddf9, 0xddf9, 0xddf9, 0xddf9, 0xddf9, 0xddf9,\r
++      0xddf9, 0x080c, 0x0d7d, 0x0005, 0x9186, 0x0013, 0x0148, 0x9186,\r
++      0x0014, 0x0130, 0x9186, 0x0027, 0x0118, 0x080c, 0xaca9, 0x0020,\r
++      0x080c, 0x95de, 0x080c, 0xac28, 0x0005, 0x0036, 0x080c, 0xe524,\r
++      0x604b, 0x0000, 0x2019, 0x000b, 0x0031, 0x6023, 0x0006, 0x6003,\r
++      0x0007, 0x003e, 0x0005, 0x0126, 0x0036, 0x2091, 0x8000, 0x2001,\r
++      0x0382, 0x2004, 0x9084, 0x0007, 0x0006, 0x9086, 0x0003, 0x0110,\r
++      0x080c, 0xa896, 0x0086, 0x2c40, 0x0096, 0x904e, 0x080c, 0xa218,\r
++      0x009e, 0x008e, 0x1550, 0x0076, 0x2c38, 0x080c, 0xa2c3, 0x007e,\r
++      0x1520, 0x6000, 0x9086, 0x0000, 0x0500, 0x6020, 0x9086, 0x0007,\r
++      0x01e0, 0x0096, 0x601c, 0xd084, 0x0140, 0x080c, 0xe524, 0x080c,\r
++      0xcf6a, 0x080c, 0x1a6a, 0x6023, 0x0007, 0x6014, 0x2048, 0x080c,\r
++      0xc838, 0x0110, 0x080c, 0xe26c, 0x009e, 0x6017, 0x0000, 0x080c,\r
++      0xe524, 0x6023, 0x0007, 0x080c, 0xcf6a, 0x000e, 0x9086, 0x0003,\r
++      0x0110, 0x080c, 0xa8b2, 0x003e, 0x012e, 0x0005, 0x00f6, 0x00c6,\r
++      0x00b6, 0x0036, 0x0156, 0x2079, 0x0260, 0x7938, 0x783c, 0x080c,\r
++      0x25fb, 0x15e8, 0x0016, 0x00c6, 0x080c, 0x6625, 0x15b0, 0x001e,\r
++      0x00c6, 0x2160, 0x080c, 0xcf67, 0x00ce, 0x002e, 0x0026, 0x0016,\r
++      0x080c, 0xa896, 0x2019, 0x0029, 0x080c, 0xa38a, 0x080c, 0x93a5,\r
++      0x0076, 0x903e, 0x080c, 0x9277, 0x007e, 0x001e, 0x0076, 0x903e,\r
++      0x080c, 0xdfeb, 0x007e, 0x080c, 0xa8b2, 0x0026, 0xba04, 0x9294,\r
++      0xff00, 0x8217, 0x9286, 0x0006, 0x0118, 0x9286, 0x0004, 0x1118,\r
++      0xbaa0, 0x080c, 0x32be, 0x002e, 0xbc84, 0x001e, 0x080c, 0x6043,\r
++      0xbe12, 0xbd16, 0xbc86, 0x9006, 0x0010, 0x00ce, 0x001e, 0x015e,\r
++      0x003e, 0x00be, 0x00ce, 0x00fe, 0x0005, 0x00c6, 0x00d6, 0x00b6,\r
++      0x0016, 0x2009, 0x1824, 0x2104, 0x9086, 0x0074, 0x1904, 0xdf0e,\r
++      0x2069, 0x0260, 0x6944, 0x9182, 0x0100, 0x06e0, 0x6940, 0x9184,\r
++      0x8000, 0x0904, 0xdf0b, 0x2001, 0x197c, 0x2004, 0x9005, 0x1140,\r
++      0x6010, 0x2058, 0xb884, 0x9005, 0x0118, 0x9184, 0x0800, 0x0598,\r
++      0x6948, 0x918a, 0x0001, 0x0648, 0x080c, 0xe689, 0x0118, 0x6978,\r
++      0xd1fc, 0x11b8, 0x2009, 0x0205, 0x200b, 0x0001, 0x693c, 0x81ff,\r
++      0x1198, 0x6944, 0x9182, 0x0100, 0x02a8, 0x6940, 0x81ff, 0x1178,\r
++      0x6948, 0x918a, 0x0001, 0x0288, 0x6950, 0x918a, 0x0001, 0x0298,\r
++      0x00d0, 0x6017, 0x0100, 0x00a0, 0x6017, 0x0300, 0x0088, 0x6017,\r
++      0x0500, 0x0070, 0x6017, 0x0700, 0x0058, 0x6017, 0x0900, 0x0040,\r
++      0x6017, 0x0b00, 0x0028, 0x6017, 0x0f00, 0x0010, 0x6017, 0x2d00,\r
++      0x9085, 0x0001, 0x0008, 0x9006, 0x001e, 0x00be, 0x00de, 0x00ce,\r
++      0x0005, 0x00c6, 0x00b6, 0x0026, 0x0036, 0x0156, 0x6210, 0x2258,\r
++      0xbb04, 0x9394, 0x00ff, 0x9286, 0x0006, 0x0180, 0x9286, 0x0004,\r
++      0x0168, 0x9394, 0xff00, 0x8217, 0x9286, 0x0006, 0x0138, 0x9286,\r
++      0x0004, 0x0120, 0x080c, 0x6634, 0x0804, 0xdf7a, 0x2011, 0x0276,\r
++      0x20a9, 0x0004, 0x0096, 0x2b48, 0x2019, 0x000a, 0x080c, 0xbbc2,\r
++      0x009e, 0x15c8, 0x2011, 0x027a, 0x20a9, 0x0004, 0x0096, 0x2b48,\r
++      0x2019, 0x0006, 0x080c, 0xbbc2, 0x009e, 0x1568, 0x0046, 0x0016,\r
++      0xbaa0, 0x2220, 0x9006, 0x2009, 0x1848, 0x210c, 0xd1a4, 0x0138,\r
++      0x2009, 0x0029, 0x080c, 0xe2c9, 0xb800, 0xc0e5, 0xb802, 0x080c,\r
++      0xa896, 0x2019, 0x0029, 0x080c, 0x93a5, 0x0076, 0x2039, 0x0000,\r
++      0x080c, 0x9277, 0x2c08, 0x080c, 0xdfeb, 0x007e, 0x080c, 0xa8b2,\r
++      0x2001, 0x0007, 0x080c, 0x65a1, 0x2001, 0x0007, 0x080c, 0x6575,\r
++      0x001e, 0x004e, 0x9006, 0x015e, 0x003e, 0x002e, 0x00be, 0x00ce,\r
++      0x0005, 0x00d6, 0x2069, 0x026e, 0x6800, 0x9086, 0x0800, 0x0118,\r
++      0x6017, 0x0000, 0x0008, 0x9006, 0x00de, 0x0005, 0x00b6, 0x00f6,\r
++      0x0016, 0x0026, 0x0036, 0x0156, 0x2079, 0x026c, 0x7930, 0x7834,\r
++      0x080c, 0x25fb, 0x11d0, 0x080c, 0x6625, 0x11b8, 0x2011, 0x0270,\r
++      0x20a9, 0x0004, 0x0096, 0x2b48, 0x2019, 0x000a, 0x080c, 0xbbc2,\r
++      0x009e, 0x1158, 0x2011, 0x0274, 0x20a9, 0x0004, 0x0096, 0x2b48,\r
++      0x2019, 0x0006, 0x080c, 0xbbc2, 0x009e, 0x015e, 0x003e, 0x002e,\r
++      0x001e, 0x00fe, 0x00be, 0x0005, 0x00b6, 0x0006, 0x0016, 0x0026,\r
++      0x0036, 0x0156, 0x2011, 0x0263, 0x2204, 0x8211, 0x220c, 0x080c,\r
++      0x25fb, 0x11d0, 0x080c, 0x6625, 0x11b8, 0x2011, 0x0276, 0x20a9,\r
++      0x0004, 0x0096, 0x2b48, 0x2019, 0x000a, 0x080c, 0xbbc2, 0x009e,\r
++      0x1158, 0x2011, 0x027a, 0x20a9, 0x0004, 0x0096, 0x2b48, 0x2019,\r
++      0x0006, 0x080c, 0xbbc2, 0x009e, 0x015e, 0x003e, 0x002e, 0x001e,\r
++      0x000e, 0x00be, 0x0005, 0x00e6, 0x00c6, 0x0086, 0x0076, 0x0066,\r
++      0x0056, 0x0046, 0x0026, 0x0126, 0x2091, 0x8000, 0x080c, 0xa8f4,\r
++      0x0106, 0x190c, 0xa896, 0x2740, 0x2029, 0x19f3, 0x252c, 0x2021,\r
++      0x19fa, 0x2424, 0x2061, 0x1ddc, 0x2071, 0x1800, 0x7654, 0x7074,\r
++      0x81ff, 0x0150, 0x0006, 0x9186, 0x1b32, 0x000e, 0x0128, 0x8001,\r
++      0x9602, 0x1a04, 0xe090, 0x0018, 0x9606, 0x0904, 0xe090, 0x080c,\r
++      0x8b90, 0x0904, 0xe087, 0x2100, 0x9c06, 0x0904, 0xe087, 0x080c,\r
++      0xe30a, 0x1904, 0xe087, 0x080c, 0xe6a6, 0x0904, 0xe087, 0x080c,\r
++      0xe2fa, 0x0904, 0xe087, 0x6720, 0x9786, 0x0001, 0x1148, 0x080c,\r
++      0x3363, 0x0904, 0xe0d2, 0x6004, 0x9086, 0x0000, 0x1904, 0xe0d2,\r
++      0x9786, 0x0004, 0x0904, 0xe0d2, 0x9786, 0x0007, 0x0904, 0xe087,\r
++      0x2500, 0x9c06, 0x0904, 0xe087, 0x2400, 0x9c06, 0x0904, 0xe087,\r
++      0x88ff, 0x0118, 0x605c, 0x9906, 0x15d0, 0x0096, 0x6043, 0xffff,\r
++      0x6000, 0x9086, 0x0004, 0x1120, 0x0016, 0x080c, 0x1a6a, 0x001e,\r
++      0x9786, 0x000a, 0x0148, 0x080c, 0xca4d, 0x1130, 0x080c, 0xb5b5,\r
++      0x009e, 0x080c, 0xac28, 0x0418, 0x6014, 0x2048, 0x080c, 0xc838,\r
++      0x01d8, 0x9786, 0x0003, 0x1588, 0xa867, 0x0103, 0xa87c, 0xd0cc,\r
++      0x0130, 0x0096, 0xa878, 0x2048, 0x080c, 0x0fec, 0x009e, 0xab7a,\r
++      0xa877, 0x0000, 0x080c, 0xe621, 0x0016, 0x080c, 0xcb36, 0x080c,\r
++      0x6d74, 0x001e, 0x080c, 0xca27, 0x009e, 0x080c, 0xac28, 0x9ce0,\r
++      0x001c, 0x2001, 0x181a, 0x2004, 0x9c02, 0x1210, 0x0804, 0xe004,\r
++      0x010e, 0x190c, 0xa8b2, 0x012e, 0x002e, 0x004e, 0x005e, 0x006e,\r
++      0x007e, 0x008e, 0x00ce, 0x00ee, 0x0005, 0x9786, 0x0006, 0x1150,\r
++      0x9386, 0x0005, 0x0128, 0x080c, 0xe621, 0x080c, 0xe26c, 0x08e0,\r
++      0x009e, 0x08e8, 0x9786, 0x0009, 0x11f8, 0x6000, 0x9086, 0x0004,\r
++      0x01c0, 0x6000, 0x9086, 0x0003, 0x11a0, 0x080c, 0x963b, 0x0096,\r
++      0x6114, 0x2148, 0x080c, 0xc838, 0x0118, 0x6010, 0x080c, 0x6d80,\r
++      0x009e, 0x00c6, 0x080c, 0xabed, 0x00ce, 0x0036, 0x080c, 0x96a0,\r
++      0x003e, 0x009e, 0x0804, 0xe087, 0x9786, 0x000a, 0x0904, 0xe06e,\r
++      0x0804, 0xe06c, 0x81ff, 0x0904, 0xe087, 0x9180, 0x0001, 0x2004,\r
++      0x9086, 0x0018, 0x0138, 0x9180, 0x0001, 0x2004, 0x9086, 0x002d,\r
++      0x1904, 0xe087, 0x6000, 0x9086, 0x0002, 0x1904, 0xe087, 0x080c,\r
++      0xca3c, 0x0138, 0x080c, 0xca4d, 0x1904, 0xe087, 0x080c, 0xb5b5,\r
++      0x0038, 0x080c, 0x321c, 0x080c, 0xca4d, 0x1110, 0x080c, 0xb5b5,\r
++      0x080c, 0xac28, 0x0804, 0xe087, 0xa864, 0x9084, 0x00ff, 0x9086,\r
++      0x0039, 0x0005, 0x00c6, 0x00e6, 0x0016, 0x2c08, 0x2170, 0x9006,\r
++      0x080c, 0xe293, 0x001e, 0x0120, 0x6020, 0x9084, 0x000f, 0x001b,\r
++      0x00ee, 0x00ce, 0x0005, 0xe121, 0xe121, 0xe121, 0xe121, 0xe121,\r
++      0xe121, 0xe123, 0xe121, 0xe121, 0xe121, 0xe121, 0xac28, 0xac28,\r
++      0xe121, 0x9006, 0x0005, 0x0036, 0x0046, 0x0016, 0x7010, 0x00b6,\r
++      0x2058, 0xbca0, 0x00be, 0x2c00, 0x2009, 0x0020, 0x080c, 0xe2c9,\r
++      0x001e, 0x004e, 0x2019, 0x0002, 0x080c, 0xde1b, 0x003e, 0x9085,\r
++      0x0001, 0x0005, 0x0096, 0x080c, 0xc838, 0x0140, 0x6014, 0x904d,\r
++      0x080c, 0xc443, 0x687b, 0x0005, 0x080c, 0x6d80, 0x009e, 0x080c,\r
++      0xac28, 0x9085, 0x0001, 0x0005, 0x2001, 0x0001, 0x080c, 0x6561,\r
++      0x0156, 0x0016, 0x0026, 0x0036, 0x20a9, 0x0004, 0x2019, 0x1805,\r
++      0x2011, 0x0276, 0x080c, 0xbbae, 0x003e, 0x002e, 0x001e, 0x015e,\r
++      0x9005, 0x0005, 0x00f6, 0x00e6, 0x00c6, 0x0086, 0x0076, 0x0066,\r
++      0x00b6, 0x0126, 0x2091, 0x8000, 0x2740, 0x2061, 0x1ddc, 0x2079,\r
++      0x0001, 0x8fff, 0x0904, 0xe1bc, 0x2071, 0x1800, 0x7654, 0x7074,\r
++      0x8001, 0x9602, 0x1a04, 0xe1bc, 0x88ff, 0x0120, 0x2800, 0x9c06,\r
++      0x1590, 0x2078, 0x080c, 0xe2fa, 0x0570, 0x2400, 0x9c06, 0x0558,\r
++      0x6720, 0x9786, 0x0006, 0x1538, 0x9786, 0x0007, 0x0520, 0x88ff,\r
++      0x1140, 0x6010, 0x9b06, 0x11f8, 0x85ff, 0x0118, 0x605c, 0x9106,\r
++      0x11d0, 0x0096, 0x601c, 0xd084, 0x0140, 0x080c, 0xe524, 0x080c,\r
++      0xcf6a, 0x080c, 0x1a6a, 0x6023, 0x0007, 0x6014, 0x2048, 0x080c,\r
++      0xc838, 0x0120, 0x0046, 0x080c, 0xe26c, 0x004e, 0x009e, 0x080c,\r
++      0xac28, 0x88ff, 0x1198, 0x9ce0, 0x001c, 0x2001, 0x181a, 0x2004,\r
++      0x9c02, 0x1210, 0x0804, 0xe171, 0x9006, 0x012e, 0x00be, 0x006e,\r
++      0x007e, 0x008e, 0x00ce, 0x00ee, 0x00fe, 0x0005, 0x98c5, 0x0001,\r
++      0x0ca0, 0x080c, 0xa896, 0x00b6, 0x0076, 0x0056, 0x0086, 0x9046,\r
++      0x2029, 0x0001, 0x2c20, 0x2019, 0x0002, 0x6210, 0x2258, 0x0096,\r
++      0x904e, 0x080c, 0xa218, 0x009e, 0x008e, 0x903e, 0x080c, 0xa2c3,\r
++      0x080c, 0xe162, 0x005e, 0x007e, 0x00be, 0x080c, 0xa8b2, 0x0005,\r
++      0x080c, 0xa896, 0x00b6, 0x0046, 0x0056, 0x0076, 0x00c6, 0x0156,\r
++      0x2c20, 0x2128, 0x20a9, 0x007f, 0x900e, 0x0016, 0x0036, 0x080c,\r
++      0x6625, 0x1190, 0x0056, 0x0086, 0x9046, 0x2508, 0x2029, 0x0001,\r
++      0x0096, 0x904e, 0x080c, 0xa218, 0x009e, 0x008e, 0x903e, 0x080c,\r
++      0xa2c3, 0x080c, 0xe162, 0x005e, 0x003e, 0x001e, 0x8108, 0x1f04,\r
++      0xe1f5, 0x015e, 0x00ce, 0x007e, 0x005e, 0x004e, 0x00be, 0x080c,\r
++      0xa8b2, 0x0005, 0x080c, 0xa896, 0x00b6, 0x0076, 0x0056, 0x6210,\r
++      0x2258, 0x0086, 0x9046, 0x2029, 0x0001, 0x2019, 0x0048, 0x0096,\r
++      0x904e, 0x080c, 0xa218, 0x009e, 0x008e, 0x903e, 0x080c, 0xa2c3,\r
++      0x2c20, 0x080c, 0xe162, 0x005e, 0x007e, 0x00be, 0x080c, 0xa8b2,\r
++      0x0005, 0x080c, 0xa896, 0x00b6, 0x0046, 0x0056, 0x0076, 0x00c6,\r
++      0x0156, 0x2c20, 0x20a9, 0x0800, 0x900e, 0x0016, 0x0036, 0x080c,\r
++      0x6625, 0x11a0, 0x0086, 0x9046, 0x2828, 0x0046, 0x2021, 0x0001,\r
++      0x080c, 0xe508, 0x004e, 0x0096, 0x904e, 0x080c, 0xa218, 0x009e,\r
++      0x008e, 0x903e, 0x080c, 0xa2c3, 0x080c, 0xe162, 0x003e, 0x001e,\r
++      0x8108, 0x1f04, 0xe245, 0x015e, 0x00ce, 0x007e, 0x005e, 0x004e,\r
++      0x00be, 0x080c, 0xa8b2, 0x0005, 0x0016, 0x00f6, 0x080c, 0xc836,\r
++      0x0198, 0xa864, 0x9084, 0x00ff, 0x9086, 0x0046, 0x0180, 0xa800,\r
++      0x907d, 0x0138, 0xa803, 0x0000, 0xab82, 0x080c, 0x6d80, 0x2f48,\r
++      0x0cb0, 0xab82, 0x080c, 0x6d80, 0x00fe, 0x001e, 0x0005, 0xa800,\r
++      0x907d, 0x0130, 0xa803, 0x0000, 0x080c, 0x6d80, 0x2f48, 0x0cb8,\r
++      0x080c, 0x6d80, 0x0c88, 0x00e6, 0x0046, 0x0036, 0x2061, 0x1ddc,\r
++      0x9005, 0x1138, 0x2071, 0x1800, 0x7454, 0x7074, 0x8001, 0x9402,\r
++      0x12f8, 0x2100, 0x9c06, 0x0188, 0x6000, 0x9086, 0x0000, 0x0168,\r
++      0x6008, 0x9206, 0x1150, 0x6320, 0x9386, 0x0009, 0x01b0, 0x6010,\r
++      0x91a0, 0x0004, 0x2424, 0x9406, 0x0140, 0x9ce0, 0x001c, 0x2001,\r
++      0x181a, 0x2004, 0x9c02, 0x1220, 0x0c20, 0x9085, 0x0001, 0x0008,\r
++      0x9006, 0x003e, 0x004e, 0x00ee, 0x0005, 0x631c, 0xd3c4, 0x1d68,\r
++      0x0c30, 0x0096, 0x0006, 0x080c, 0x103a, 0x000e, 0x090c, 0x0d7d,\r
++      0xaae2, 0xa867, 0x010d, 0xa88e, 0x0026, 0x2010, 0x080c, 0xc826,\r
++      0x2001, 0x0000, 0x0120, 0x2200, 0x9080, 0x0017, 0x2004, 0x002e,\r
++      0xa87a, 0x9186, 0x0020, 0x0110, 0xa8e3, 0xffff, 0xa986, 0xac76,\r
++      0xa87f, 0x0000, 0x2001, 0x198e, 0x2004, 0xa882, 0x9006, 0xa802,\r
++      0xa86a, 0xa88a, 0x0126, 0x2091, 0x8000, 0x080c, 0x6d80, 0x012e,\r
++      0x009e, 0x0005, 0x6700, 0x9786, 0x0000, 0x0158, 0x9786, 0x0001,\r
++      0x0140, 0x9786, 0x000a, 0x0128, 0x9786, 0x0009, 0x0110, 0x9085,\r
++      0x0001, 0x0005, 0x00e6, 0x6010, 0x9075, 0x0138, 0x00b6, 0x2058,\r
++      0xb8a0, 0x00be, 0x9206, 0x00ee, 0x0005, 0x9085, 0x0001, 0x0cd8,\r
++      0x0016, 0x6004, 0x908e, 0x001e, 0x11a0, 0x8007, 0x6134, 0x918c,\r
++      0x00ff, 0x9105, 0x6036, 0x6007, 0x0085, 0x6003, 0x000b, 0x6023,\r
++      0x0005, 0x2001, 0x1987, 0x2004, 0x601a, 0x2009, 0x8020, 0x080c,\r
++      0x921e, 0x001e, 0x0005, 0xa001, 0xa001, 0x0005, 0x6024, 0xd0e4,\r
++      0x0158, 0xd0cc, 0x0118, 0x080c, 0xcb7d, 0x0030, 0x080c, 0xe524,\r
++      0x080c, 0x88c1, 0x080c, 0xabed, 0x0005, 0x9280, 0x0008, 0x2004,\r
++      0x9084, 0x000f, 0x0002, 0xe359, 0xe359, 0xe359, 0xe35b, 0xe359,\r
++      0xe35b, 0xe35b, 0xe359, 0xe35b, 0xe359, 0xe359, 0xe359, 0xe359,\r
++      0xe359, 0x9006, 0x0005, 0x9085, 0x0001, 0x0005, 0x9280, 0x0008,\r
++      0x2004, 0x9084, 0x000f, 0x0002, 0xe372, 0xe372, 0xe372, 0xe372,\r
++      0xe372, 0xe372, 0xe37f, 0xe372, 0xe372, 0xe372, 0xe372, 0xe372,\r
++      0xe372, 0xe372, 0x6007, 0x003b, 0x602f, 0x0009, 0x6017, 0x2a00,\r
++      0x6003, 0x0001, 0x2009, 0x8020, 0x080c, 0x921e, 0x0005, 0x0096,\r
++      0x00c6, 0x2260, 0x080c, 0xe524, 0x604b, 0x0000, 0x6024, 0xc0f4,\r
++      0xc0e4, 0x6026, 0x603b, 0x0000, 0x00ce, 0x00d6, 0x2268, 0x9186,\r
++      0x0007, 0x1904, 0xe3d8, 0x6814, 0x9005, 0x0138, 0x2048, 0xa87c,\r
++      0xd0fc, 0x1118, 0x00de, 0x009e, 0x08a8, 0x6007, 0x003a, 0x6003,\r
++      0x0001, 0x2009, 0x8020, 0x080c, 0x921e, 0x00c6, 0x2d60, 0x6100,\r
++      0x9186, 0x0002, 0x1904, 0xe44f, 0x6014, 0x9005, 0x1138, 0x6000,\r
++      0x9086, 0x0007, 0x190c, 0x0d7d, 0x0804, 0xe44f, 0x2048, 0x080c,\r
++      0xc838, 0x1130, 0x0028, 0x2048, 0xa800, 0x9005, 0x1de0, 0x2900,\r
++      0x2048, 0xa87c, 0x9084, 0x0003, 0x9086, 0x0002, 0x1168, 0xa87c,\r
++      0xc0dc, 0xc0f4, 0xa87e, 0xa880, 0xc0fc, 0xa882, 0x2009, 0x0043,\r
++      0x080c, 0xdc5d, 0x0804, 0xe44f, 0x2009, 0x0041, 0x0804, 0xe449,\r
++      0x9186, 0x0005, 0x15a0, 0x6814, 0x2048, 0xa87c, 0xd0bc, 0x1120,\r
++      0x00de, 0x009e, 0x0804, 0xe372, 0xd0b4, 0x0128, 0xd0fc, 0x090c,\r
++      0x0d7d, 0x0804, 0xe393, 0x6007, 0x003a, 0x6003, 0x0001, 0x2009,\r
++      0x8020, 0x080c, 0x921e, 0x00c6, 0x2d60, 0x6100, 0x9186, 0x0002,\r
++      0x0120, 0x9186, 0x0004, 0x1904, 0xe44f, 0x6814, 0x2048, 0xa97c,\r
++      0xc1f4, 0xc1dc, 0xa97e, 0xa980, 0xc1fc, 0xc1bc, 0xa982, 0x00f6,\r
++      0x2c78, 0x080c, 0x1731, 0x00fe, 0x2009, 0x0042, 0x04d0, 0x0036,\r
++      0x080c, 0x103a, 0x090c, 0x0d7d, 0xa867, 0x010d, 0x9006, 0xa802,\r
++      0xa86a, 0xa88a, 0x2d18, 0xab8e, 0xa887, 0x0045, 0x2c00, 0xa892,\r
++      0x6038, 0xa8a2, 0x2360, 0x6024, 0xc0dd, 0x6026, 0x6010, 0x00b6,\r
++      0x2058, 0xb8a0, 0x00be, 0x2004, 0x635c, 0xab7a, 0xa876, 0x9006,\r
++      0xa87e, 0xa882, 0xad9a, 0xae96, 0xa89f, 0x0001, 0x080c, 0x6d80,\r
++      0x2019, 0x0045, 0x6008, 0x2068, 0x080c, 0xde1b, 0x2d00, 0x600a,\r
++      0x6023, 0x0006, 0x6003, 0x0007, 0x901e, 0x631a, 0x634a, 0x003e,\r
++      0x0038, 0x604b, 0x0000, 0x6003, 0x0007, 0x080c, 0xdc5d, 0x00ce,\r
++      0x00de, 0x009e, 0x0005, 0x9186, 0x0013, 0x1128, 0x6004, 0x9082,\r
++      0x0085, 0x2008, 0x00c2, 0x9186, 0x0027, 0x1178, 0x080c, 0x95de,\r
++      0x0036, 0x0096, 0x6014, 0x2048, 0x2019, 0x0004, 0x080c, 0xe26c,\r
++      0x009e, 0x003e, 0x080c, 0x96a0, 0x0005, 0x9186, 0x0014, 0x0d70,\r
++      0x080c, 0xaca9, 0x0005, 0xe482, 0xe480, 0xe480, 0xe480, 0xe480,\r
++      0xe480, 0xe482, 0xe480, 0xe480, 0xe480, 0xe480, 0xe480, 0xe480,\r
++      0x080c, 0x0d7d, 0x6003, 0x000c, 0x080c, 0x96a0, 0x0005, 0x9182,\r
++      0x0092, 0x1220, 0x9182, 0x0085, 0x0208, 0x001a, 0x080c, 0xaca9,\r
++      0x0005, 0xe49e, 0xe49e, 0xe49e, 0xe49e, 0xe4a0, 0xe4c0, 0xe49e,\r
++      0xe49e, 0xe49e, 0xe49e, 0xe49e, 0xe49e, 0xe49e, 0x080c, 0x0d7d,\r
++      0x00d6, 0x2c68, 0x080c, 0xab97, 0x01b0, 0x6003, 0x0001, 0x6007,\r
++      0x001e, 0x2009, 0x026e, 0x210c, 0x613a, 0x2009, 0x026f, 0x210c,\r
++      0x613e, 0x600b, 0xffff, 0x6910, 0x6112, 0x6023, 0x0004, 0x2009,\r
++      0x8020, 0x080c, 0x921e, 0x2d60, 0x080c, 0xabed, 0x00de, 0x0005,\r
++      0x080c, 0xabed, 0x0005, 0x00e6, 0x6010, 0x00b6, 0x2058, 0xb800,\r
++      0x00be, 0xd0ec, 0x00ee, 0x0005, 0x2009, 0x1867, 0x210c, 0xd1ec,\r
++      0x05b0, 0x6003, 0x0002, 0x6024, 0xc0e5, 0x6026, 0xd0cc, 0x0150,\r
++      0x2001, 0x1988, 0x2004, 0x604a, 0x2009, 0x1867, 0x210c, 0xd1f4,\r
++      0x1520, 0x00a0, 0x2009, 0x1867, 0x210c, 0xd1f4, 0x0128, 0x6024,\r
++      0xc0e4, 0x6026, 0x9006, 0x00d8, 0x2001, 0x1988, 0x200c, 0x2001,\r
++      0x1986, 0x2004, 0x9100, 0x9080, 0x000a, 0x604a, 0x6010, 0x00b6,\r
++      0x2058, 0xb8bc, 0x00be, 0x0008, 0x2104, 0x9005, 0x0118, 0x9088,\r
++      0x0003, 0x0cd0, 0x2c0a, 0x600f, 0x0000, 0x9085, 0x0001, 0x0005,\r
++      0x0016, 0x00c6, 0x00e6, 0x615c, 0xb8bc, 0x2060, 0x8cff, 0x0180,\r
++      0x84ff, 0x1118, 0x605c, 0x9106, 0x1138, 0x600c, 0x2072, 0x080c,\r
++      0x88c1, 0x080c, 0xabed, 0x0010, 0x9cf0, 0x0003, 0x2e64, 0x0c70,\r
++      0x00ee, 0x00ce, 0x001e, 0x0005, 0x00d6, 0x00b6, 0x6010, 0x2058,\r
++      0xb8bc, 0x2068, 0x9005, 0x0130, 0x9c06, 0x0110, 0x680c, 0x0cd0,\r
++      0x600c, 0x680e, 0x00be, 0x00de, 0x0005, 0x0026, 0x0036, 0x0156,\r
++      0x2011, 0x182c, 0x2204, 0x9084, 0x00ff, 0x2019, 0x026e, 0x2334,\r
++      0x9636, 0x1508, 0x8318, 0x2334, 0x2204, 0x9084, 0xff00, 0x9636,\r
++      0x11d0, 0x2011, 0x0270, 0x20a9, 0x0004, 0x6010, 0x0096, 0x2048,\r
++      0x2019, 0x000a, 0x080c, 0xbbc2, 0x009e, 0x1168, 0x2011, 0x0274,\r
++      0x20a9, 0x0004, 0x6010, 0x0096, 0x2048, 0x2019, 0x0006, 0x080c,\r
++      0xbbc2, 0x009e, 0x1100, 0x015e, 0x003e, 0x002e, 0x0005, 0x00e6,\r
++      0x2071, 0x1800, 0x080c, 0x5fbc, 0x080c, 0x2fb2, 0x00ee, 0x0005,\r
++      0x0096, 0x0026, 0x080c, 0x103a, 0x090c, 0x0d7d, 0xa85c, 0x9080,\r
++      0x001a, 0x20a0, 0x20a9, 0x000c, 0xa860, 0x20e8, 0x9006, 0x4004,\r
++      0x9186, 0x0046, 0x1118, 0xa867, 0x0136, 0x0038, 0xa867, 0x0138,\r
++      0x9186, 0x0041, 0x0110, 0xa87b, 0x0001, 0x7038, 0x9084, 0xff00,\r
++      0x7240, 0x9294, 0xff00, 0x8007, 0x9215, 0xaa9a, 0x9186, 0x0046,\r
++      0x1168, 0x7038, 0x9084, 0x00ff, 0x723c, 0x9294, 0xff00, 0x9215,\r
++      0xaa9e, 0x723c, 0x9294, 0x00ff, 0xaaa2, 0x0060, 0x7040, 0x9084,\r
++      0x00ff, 0x7244, 0x9294, 0xff00, 0x9215, 0xaa9e, 0x7244, 0x9294,\r
++      0x00ff, 0xaaa2, 0x9186, 0x0046, 0x1118, 0x9e90, 0x0012, 0x0010,\r
++      0x9e90, 0x001a, 0x2204, 0x8007, 0xa8a6, 0x8210, 0x2204, 0x8007,\r
++      0xa8aa, 0x8210, 0x2204, 0x8007, 0xa8ae, 0x8210, 0x2204, 0x8007,\r
++      0xa8b2, 0x8210, 0x9186, 0x0046, 0x11b8, 0x9e90, 0x0016, 0x2204,\r
++      0x8007, 0xa8b6, 0x8210, 0x2204, 0x8007, 0xa8ba, 0x8210, 0x2204,\r
++      0x8007, 0xa8be, 0x8210, 0x2204, 0x8007, 0xa8c2, 0x8210, 0x2011,\r
++      0x0205, 0x2013, 0x0001, 0x00b0, 0x9e90, 0x001e, 0x2204, 0x8007,\r
++      0xa8b6, 0x8210, 0x2204, 0x8007, 0xa8ba, 0x2011, 0x0205, 0x2013,\r
++      0x0001, 0x2011, 0x0260, 0x2204, 0x8007, 0xa8be, 0x8210, 0x2204,\r
++      0x8007, 0xa8c2, 0x9186, 0x0046, 0x1118, 0x2011, 0x0262, 0x0010,\r
++      0x2011, 0x026a, 0x0146, 0x01d6, 0x0036, 0x20a9, 0x0001, 0x2019,\r
++      0x0008, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0031, 0x20a0, 0x2204,\r
++      0x8007, 0x4004, 0x8210, 0x8319, 0x1dd0, 0x003e, 0x01ce, 0x013e,\r
++      0x2011, 0x0205, 0x2013, 0x0000, 0x002e, 0x080c, 0x6d80, 0x009e,\r
++      0x0005, 0x00e6, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0fc,\r
++      0x0108, 0x0011, 0x00ee, 0x0005, 0xa880, 0xc0e5, 0xa882, 0x0005,\r
++      0x00e6, 0x00d6, 0x00c6, 0x0076, 0x0066, 0x0056, 0x0046, 0x0026,\r
++      0x0016, 0x0126, 0x2091, 0x8000, 0x2029, 0x19f3, 0x252c, 0x2021,\r
++      0x19fa, 0x2424, 0x2061, 0x1ddc, 0x2071, 0x1800, 0x7654, 0x7074,\r
++      0x9606, 0x0578, 0x6720, 0x9786, 0x0001, 0x0118, 0x9786, 0x0008,\r
++      0x1500, 0x2500, 0x9c06, 0x01e8, 0x2400, 0x9c06, 0x01d0, 0x080c,\r
++      0xe2fa, 0x01b8, 0x080c, 0xe30a, 0x11a0, 0x6000, 0x9086, 0x0004,\r
++      0x1120, 0x0016, 0x080c, 0x1a6a, 0x001e, 0x080c, 0xca3c, 0x1110,\r
++      0x080c, 0x321c, 0x080c, 0xca4d, 0x1110, 0x080c, 0xb5b5, 0x080c,\r
++      0xac28, 0x9ce0, 0x001c, 0x2001, 0x181a, 0x2004, 0x9c02, 0x1208,\r
++      0x0858, 0x012e, 0x001e, 0x002e, 0x004e, 0x005e, 0x006e, 0x007e,\r
++      0x00ce, 0x00de, 0x00ee, 0x0005, 0x2001, 0x1810, 0x2004, 0xd0dc,\r
++      0x0005, 0x0006, 0x2001, 0x1837, 0x2004, 0xd09c, 0x000e, 0x0005,\r
++      0x0006, 0x0036, 0x0046, 0x080c, 0xcf52, 0x0168, 0x2019, 0xffff,\r
++      0x9005, 0x0128, 0x6010, 0x00b6, 0x2058, 0xbba0, 0x00be, 0x2021,\r
++      0x0004, 0x080c, 0x4cbe, 0x004e, 0x003e, 0x000e, 0x6004, 0x9086,\r
++      0x0001, 0x1128, 0x080c, 0xa38a, 0x080c, 0xac28, 0x9006, 0x0005,\r
++      0x00e6, 0x00c6, 0x00b6, 0x0046, 0x2061, 0x1ddc, 0x2071, 0x1800,\r
++      0x7454, 0x7074, 0x8001, 0x9402, 0x12b8, 0x2100, 0x9c06, 0x0148,\r
++      0x6000, 0x9086, 0x0000, 0x0128, 0x6010, 0x2058, 0xb8a0, 0x9206,\r
++      0x0140, 0x9ce0, 0x001c, 0x2001, 0x181a, 0x2004, 0x9c02, 0x1220,\r
++      0x0c60, 0x9085, 0x0001, 0x0008, 0x9006, 0x004e, 0x00be, 0x00ce,\r
++      0x00ee, 0x0005, 0x0126, 0x0006, 0x00e6, 0x0016, 0x2091, 0x8000,\r
++      0x2071, 0x1840, 0xd5a4, 0x0118, 0x7004, 0x8000, 0x7006, 0xd5b4,\r
++      0x0118, 0x7000, 0x8000, 0x7002, 0xd5ac, 0x0178, 0x2500, 0x9084,\r
++      0x0007, 0x908e, 0x0003, 0x0148, 0x908e, 0x0004, 0x0130, 0x908e,\r
++      0x0005, 0x0118, 0x2071, 0xfffe, 0x0089, 0x001e, 0x00ee, 0x000e,\r
++      0x012e, 0x0005, 0x0126, 0x0006, 0x00e6, 0x2091, 0x8000, 0x2071,\r
++      0xfff6, 0x0021, 0x00ee, 0x000e, 0x012e, 0x0005, 0x2e05, 0x8000,\r
++      0x2077, 0x1220, 0x8e70, 0x2e05, 0x8000, 0x2077, 0x0005, 0x00e6,\r
++      0x2071, 0xfff4, 0x0c99, 0x00ee, 0x0005, 0x00e6, 0x2071, 0xfff8,\r
++      0x0c69, 0x00ee, 0x0005, 0x0126, 0x0006, 0x00e6, 0x2091, 0x8000,\r
++      0x2071, 0x1840, 0x7014, 0x8000, 0x7016, 0x00ee, 0x000e, 0x012e,\r
++      0x0005, 0x0001, 0x0002, 0x0004, 0x0008, 0x0010, 0x0020, 0x0040,\r
++      0x0080, 0x0100, 0x0200, 0x0400, 0x0800, 0x1000, 0x2000, 0x4000,\r
++      0x8000, 0x7155\r
++};\r
++#ifdef UNIQUE_FW_NAME\r
++unsigned short fw2322ipx_length01 = 0xdf42;\r
++#else\r
++unsigned short risc_code_length01 = 0xdf42;\r
++#endif\r
++\r
++/*\r
++ *\r
++ */\r
++\r
++unsigned long rseqipx_code_addr01 = 0x0001c000 ;\r
++unsigned short rseqipx_code01[] = { \r
++0x000b, 0x0003, 0x0000, 0x09d8, 0x0001, 0xc000, 0x0008, 0x8064,\r
++      0x0000, 0x0010, 0x0000, 0x8066, 0x0008, 0x0101, 0x0003, 0xc007,\r
++      0x0008, 0x80e0, 0x0008, 0xff00, 0x0000, 0x80e2, 0x0008, 0xff00,\r
++      0x0008, 0x0162, 0x0000, 0x8066, 0x0008, 0xa101, 0x000b, 0xc00f,\r
++      0x0008, 0x0d02, 0x0000, 0x8060, 0x0000, 0x0400, 0x0003, 0x60c2,\r
++      0x0003, 0x5817, 0x000b, 0x7ae0, 0x000b, 0x521c, 0x000b, 0xc813,\r
++      0x0009, 0xbac0, 0x0000, 0x008a, 0x0003, 0x8813, 0x0000, 0x15fc,\r
++      0x000b, 0xb013, 0x0009, 0xc4c0, 0x0000, 0x7000, 0x0001, 0xffa0,\r
++      0x0000, 0x2000, 0x0003, 0x9394, 0x0008, 0x808c, 0x0000, 0x0001,\r
++      0x0007, 0x0000, 0x0007, 0x0000, 0x0000, 0x40d4, 0x000a, 0x4047,\r
++      0x0008, 0x808c, 0x0000, 0x0002, 0x0007, 0x0000, 0x0003, 0x082e,\r
++      0x0000, 0x4022, 0x0003, 0x0034, 0x0008, 0x4122, 0x0009, 0xeac0,\r
++      0x0008, 0xff00, 0x0009, 0xffe0, 0x0008, 0x0500, 0x0003, 0x0bbb,\r
++      0x0002, 0x4447, 0x000b, 0x8bb8, 0x0008, 0x0bfe, 0x0001, 0x11a0,\r
++      0x0003, 0x139a, 0x0001, 0x0ca0, 0x0003, 0x139a, 0x0001, 0x9180,\r
++      0x0000, 0x0004, 0x0000, 0x8060, 0x0000, 0x0400, 0x0008, 0x7f62,\r
++      0x0000, 0x8066, 0x0008, 0x0009, 0x000b, 0xc042, 0x0008, 0x808c,\r
++      0x0008, 0x0000, 0x0008, 0x0060, 0x0008, 0x8062, 0x0000, 0x0004,\r
++      0x0000, 0x8066, 0x0000, 0x0411, 0x0003, 0xc04a, 0x0000, 0x03fe,\r
++      0x0001, 0x43e0, 0x0003, 0x8b97, 0x0009, 0xc2c0, 0x0008, 0x00ff,\r
++      0x0001, 0x02e0, 0x0003, 0x8b97, 0x0001, 0x9180, 0x0008, 0x0005,\r
++      0x0000, 0x8060, 0x0000, 0x0400, 0x0008, 0x7f62, 0x0000, 0x8066,\r
++      0x0000, 0x0019, 0x000b, 0xc059, 0x0002, 0x0240, 0x000b, 0x0b94,\r
++      0x0008, 0x00fc, 0x0003, 0x3397, 0x000a, 0x0244, 0x000b, 0x086b,\r
++      0x000c, 0x01f5, 0x0001, 0x9180, 0x0000, 0x0007, 0x0008, 0x7f62,\r
++      0x0000, 0x8060, 0x0000, 0x0400, 0x0002, 0x0234, 0x0008, 0x7f04,\r
++      0x0000, 0x8066, 0x0000, 0x040a, 0x000b, 0xc06a, 0x000a, 0x0248,\r
++      0x000b, 0x0875, 0x0001, 0x9180, 0x0008, 0x0006, 0x0008, 0x7f62,\r
++      0x0008, 0x8002, 0x0008, 0x0003, 0x0000, 0x8066, 0x0000, 0x020a,\r
++      0x000b, 0xc074, 0x0000, 0x112a, 0x0008, 0x002e, 0x0008, 0x022c,\r
++      0x0002, 0x3a44, 0x0003, 0x8813, 0x0008, 0x808c, 0x0000, 0x0002,\r
++      0x0008, 0x1760, 0x0008, 0x8062, 0x0008, 0x000f, 0x0000, 0x8066,\r
++      0x0008, 0x0011, 0x000b, 0xc081, 0x0008, 0x01fe, 0x0009, 0x42e0,\r
++      0x000b, 0x8b87, 0x0000, 0x00fe, 0x0001, 0x43e0, 0x000b, 0x8b87,\r
++      0x0000, 0x1734, 0x0000, 0x1530, 0x0008, 0x1632, 0x0008, 0x0d2a,\r
++      0x0001, 0x9880, 0x0008, 0x0012, 0x0000, 0x8060, 0x0000, 0x0400,\r
++      0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0x1e0a, 0x000b, 0xc093,\r
++      0x0008, 0x808a, 0x0008, 0x0003, 0x0000, 0x1a60, 0x0008, 0x8062,\r
++      0x0000, 0x0002, 0x0003, 0x5899, 0x0000, 0x8066, 0x0000, 0x3679,\r
++      0x000b, 0xc09c, 0x000b, 0x589d, 0x0008, 0x8054, 0x0008, 0x0011,\r
++      0x0000, 0x8074, 0x0008, 0x1010, 0x0008, 0x1efc, 0x0003, 0x3013,\r
++      0x0004, 0x00a6, 0x0003, 0x0013, 0x0000, 0x1c60, 0x0000, 0x1b62,\r
++      0x0000, 0x8066, 0x0008, 0x0231, 0x000b, 0xc0aa, 0x000b, 0x58ab,\r
++      0x0008, 0x0140, 0x0000, 0x0242, 0x0002, 0x1f43, 0x0003, 0x88b5,\r
++      0x0000, 0x0d44, 0x0008, 0x0d46, 0x0008, 0x0348, 0x0008, 0x044a,\r
++      0x0003, 0x00b9, 0x0008, 0x0344, 0x0008, 0x0446, 0x0008, 0x0548,\r
++      0x0000, 0x064a, 0x000a, 0x1948, 0x000b, 0x08bc, 0x0008, 0x0d4a,\r
++      0x000b, 0x58bc, 0x0008, 0x8054, 0x0000, 0x0001, 0x0000, 0x8074,\r
++      0x0008, 0x2020, 0x000f, 0x4000, 0x0000, 0x4820, 0x0008, 0x0bfe,\r
++      0x0009, 0x10a0, 0x0003, 0x1123, 0x0001, 0x0ca0, 0x0003, 0x1123,\r
++      0x0000, 0x8060, 0x0000, 0x0400, 0x0009, 0x9080, 0x0000, 0x0008,\r
++      0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0x0009, 0x000b, 0xc0cf,\r
++      0x0001, 0x80e0, 0x0008, 0x0003, 0x000b, 0x8923, 0x0000, 0x49b4,\r
++      0x0002, 0x4b4e, 0x000b, 0x892c, 0x0008, 0x808a, 0x0000, 0x0004,\r
++      0x0000, 0x18fe, 0x0001, 0x10e0, 0x000b, 0x88dd, 0x0002, 0x192f,\r
++      0x0008, 0x7f32, 0x0008, 0x15fe, 0x0001, 0x10e0, 0x000b, 0x88e2,\r
++      0x0002, 0x162f, 0x0008, 0x7f2c, 0x0000, 0x8060, 0x0000, 0x0400,\r
++      0x0009, 0x9080, 0x0000, 0x0007, 0x0008, 0x7f62, 0x0000, 0x8066,\r
++      0x0008, 0x0009, 0x0003, 0xc0e9, 0x000a, 0x004f, 0x000b, 0x891a,\r
++      0x000a, 0x0040, 0x0003, 0x0904, 0x0002, 0x004e, 0x0003, 0x0904,\r
++      0x0002, 0x0030, 0x0002, 0x7f2f, 0x0000, 0x7f00, 0x0000, 0x8066,\r
++      0x0008, 0x000a, 0x000b, 0xc0f5, 0x0008, 0x1010, 0x0004, 0x01dc,\r
++      0x000b, 0xb0fd, 0x000c, 0x035b, 0x000c, 0x01c6, 0x000b, 0x7814,\r
++      0x0003, 0x0013, 0x0000, 0x0806, 0x0008, 0x8010, 0x0000, 0x001f,\r
++      0x000c, 0x035b, 0x0000, 0x0310, 0x000c, 0x035b, 0x0003, 0x00fb,\r
++      0x000a, 0x002f, 0x0000, 0x7f00, 0x0000, 0x8066, 0x0008, 0x000a,\r
++      0x000b, 0xc108, 0x000c, 0x019f, 0x000a, 0x0040, 0x000b, 0x091d,\r
++      0x000c, 0x020c, 0x0000, 0x8000, 0x0000, 0x0002, 0x0000, 0x8060,\r
++      0x0000, 0x0400, 0x0009, 0x9080, 0x0008, 0x0006, 0x0008, 0x7f62,\r
++      0x0000, 0x8066, 0x0008, 0x000a, 0x000b, 0xc116, 0x0000, 0x8072,\r
++      0x0000, 0x4000, 0x0003, 0x00fb, 0x0008, 0x8010, 0x0008, 0x001e,\r
++      0x000b, 0x011f, 0x0008, 0x8010, 0x0008, 0x001d, 0x000c, 0x035b,\r
++      0x0008, 0x1010, 0x000c, 0x035b, 0x000b, 0x0014, 0x0002, 0x4b4e,\r
++      0x0003, 0x0929, 0x0008, 0x808a, 0x0000, 0x0004, 0x000b, 0x6129,\r
++      0x000f, 0x8000, 0x0008, 0x808a, 0x0000, 0x0004, 0x000b, 0x0014,\r
++      0x0000, 0x8060, 0x0000, 0x0400, 0x0009, 0x9080, 0x0008, 0x0011,\r
++      0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0x0009, 0x0003, 0xc133,\r
++      0x000a, 0x004f, 0x0003, 0x8990, 0x0000, 0x8060, 0x0000, 0x0400,\r
++      0x0009, 0x9080, 0x0008, 0x0005, 0x0008, 0x7f62, 0x0000, 0x8066,\r
++      0x0008, 0x0009, 0x000b, 0xc13d, 0x0008, 0x0060, 0x0008, 0x8062,\r
++      0x0000, 0x001f, 0x0000, 0x8066, 0x0000, 0x0209, 0x000b, 0xc143,\r
++      0x000a, 0x014b, 0x000b, 0x0990, 0x0008, 0x8062, 0x0008, 0x000f,\r
++      0x0000, 0x8066, 0x0000, 0x0211, 0x000b, 0xc14a, 0x0008, 0x01fe,\r
++      0x0001, 0x02d0, 0x0003, 0x8990, 0x0004, 0x01a8, 0x000b, 0x0990,\r
++      0x0008, 0x03a0, 0x0008, 0x8004, 0x0000, 0x0002, 0x0000, 0x8006,\r
++      0x0000, 0x0043, 0x0008, 0x4908, 0x0008, 0x808a, 0x0000, 0x0004,\r
++      0x0000, 0x8060, 0x0000, 0x0400, 0x0009, 0x9080, 0x0008, 0x0000,\r
++      0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0x041a, 0x0003, 0xc15f,\r
++      0x000b, 0xe160, 0x0008, 0x4908, 0x0008, 0x480a, 0x0008, 0x808a,\r
++      0x0000, 0x0004, 0x0008, 0x0060, 0x0008, 0x8062, 0x0008, 0x002b,\r
++      0x0000, 0x8066, 0x0000, 0x0411, 0x0003, 0xc16a, 0x0008, 0x04fe,\r
++      0x0009, 0x02a0, 0x0003, 0x9171, 0x0002, 0x0500, 0x000b, 0x098d,\r
++      0x0003, 0x0172, 0x0000, 0x05fe, 0x0001, 0x03a0, 0x000b, 0x118d,\r
++      0x0000, 0x0d0c, 0x0008, 0x0d0e, 0x0008, 0x0d10, 0x0000, 0x0d12,\r
++      0x0008, 0x0060, 0x0008, 0x8062, 0x0000, 0x000d, 0x0000, 0x8066,\r
++      0x0008, 0x0832, 0x0003, 0xc17d, 0x0000, 0x800a, 0x0000, 0x8005,\r
++      0x0000, 0x8060, 0x0000, 0x0400, 0x0009, 0x9080, 0x0008, 0x0011,\r
++      0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0x0a12, 0x0003, 0xc187,\r
++      0x0008, 0x5006, 0x0008, 0x100e, 0x0004, 0x01b3, 0x000b, 0x7814,\r
++      0x0003, 0x0013, 0x0008, 0x0208, 0x0008, 0x030a, 0x0003, 0x0174,\r
++      0x000c, 0x019f, 0x0008, 0x808a, 0x0000, 0x0004, 0x0008, 0x8010,\r
++      0x0008, 0x0021, 0x000c, 0x035b, 0x0008, 0x1010, 0x000c, 0x035b,\r
++      0x0000, 0x4810, 0x000c, 0x035b, 0x0008, 0x4910, 0x000c, 0x035b,\r
++      0x0008, 0x808a, 0x0000, 0x0004, 0x000b, 0x0014, 0x0000, 0x8060,\r
++      0x0000, 0x0400, 0x0009, 0x9080, 0x0000, 0x0002, 0x0008, 0x7f62,\r
++      0x0000, 0x8066, 0x0008, 0xb40a, 0x0003, 0xc1a6, 0x000f, 0x4000,\r
++      0x0000, 0x8060, 0x0000, 0x0400, 0x0000, 0x0a62, 0x0000, 0x8066,\r
++      0x0000, 0x0411, 0x000b, 0xc1ad, 0x0002, 0x0210, 0x0001, 0xffc0,\r
++      0x0000, 0x0007, 0x0009, 0x03e0, 0x000f, 0x4000, 0x0000, 0x8060,\r
++      0x0000, 0x0400, 0x0001, 0x8380, 0x0000, 0x0002, 0x0009, 0x0a80,\r
++      0x0008, 0x7f62, 0x0000, 0x8066, 0x0000, 0x0e0a, 0x0003, 0xc1bb,\r
++      0x0002, 0x0300, 0x0001, 0xffc0, 0x0000, 0x0007, 0x0000, 0x7f06,\r
++      0x0002, 0x0a00, 0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0x060a,\r
++      0x000b, 0xc1c4, 0x000f, 0x4000, 0x0000, 0x0da0, 0x0008, 0x0da2,\r
++      0x0008, 0x0da4, 0x0009, 0x8880, 0x0000, 0x0001, 0x0008, 0x7f62,\r
++      0x0000, 0x8060, 0x0000, 0x0400, 0x0000, 0x8066, 0x0008, 0xa012,\r
++      0x0000, 0x0da6, 0x0008, 0x0da8, 0x0000, 0x0daa, 0x0000, 0x0dac,\r
++      0x0003, 0xc1d4, 0x0009, 0x8880, 0x0008, 0x0009, 0x0008, 0x7f62,\r
++      0x0000, 0x8066, 0x0008, 0xa03a, 0x000b, 0xc1da, 0x000f, 0x4000,\r
++      0x0009, 0x8880, 0x0008, 0x0005, 0x0000, 0x8060, 0x0000, 0x0400,\r
++      0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0x0009, 0x000b, 0xc1e3,\r
++      0x0008, 0x0060, 0x0008, 0x8062, 0x0000, 0x000d, 0x0000, 0x8066,\r
++      0x0008, 0x0021, 0x000b, 0xc1e9, 0x0000, 0x00fe, 0x0001, 0x01d0,\r
++      0x000b, 0x89f2, 0x0008, 0x02fe, 0x0009, 0x03d0, 0x0003, 0x09f2,\r
++      0x0000, 0x0d06, 0x000f, 0x4000, 0x0000, 0x8006, 0x0000, 0x0001,\r
++      0x000f, 0x4000, 0x0008, 0x0060, 0x0008, 0x8062, 0x0008, 0x002b,\r
++      0x0000, 0x8066, 0x0008, 0xa041, 0x0003, 0xc1fa, 0x0002, 0x0243,\r
++      0x000b, 0x8a01, 0x0000, 0x54ac, 0x0000, 0x55ae, 0x0008, 0x0da8,\r
++      0x0000, 0x0daa, 0x0000, 0x50b0, 0x0000, 0x51b2, 0x0000, 0x0db4,\r
++      0x0008, 0x0db6, 0x0008, 0x0060, 0x0008, 0x8062, 0x0000, 0x0007,\r
++      0x0000, 0x8066, 0x0008, 0xa452, 0x0003, 0xc20a, 0x000f, 0x4000,\r
++      0x000a, 0x3945, 0x000b, 0x8a16, 0x0000, 0x8072, 0x0008, 0x4040,\r
++      0x0007, 0x0000, 0x000a, 0x3945, 0x0003, 0x8a14, 0x000f, 0x4000,\r
++      0x0000, 0x8072, 0x0000, 0x4000, 0x0007, 0x0000, 0x0007, 0x0000,\r
++      0x0007, 0x0000, 0x000a, 0x3945, 0x0003, 0x0a0e, 0x000b, 0x0216,\r
++      0x000a, 0x3a40, 0x000b, 0x8817, 0x0008, 0x2b24, 0x0008, 0x2b24,\r
++      0x0003, 0x5a20, 0x0008, 0x8054, 0x0000, 0x0002, 0x0002, 0x1242,\r
++      0x0003, 0x0a64, 0x000a, 0x3a45, 0x000b, 0x0a55, 0x000a, 0x1e10,\r
++      0x0000, 0x7f3c, 0x0003, 0x0a52, 0x0002, 0x1d00, 0x0000, 0x7f3a,\r
++      0x0000, 0x0d60, 0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0x0009,\r
++      0x0003, 0xc230, 0x0008, 0x00fc, 0x0003, 0xb24f, 0x0000, 0x1c60,\r
++      0x0008, 0x8062, 0x0000, 0x0001, 0x0000, 0x8066, 0x0008, 0x0009,\r
++      0x000b, 0xc238, 0x0008, 0x00fc, 0x0003, 0x3370, 0x0000, 0x0038,\r
++      0x0008, 0x0060, 0x0008, 0x8062, 0x0000, 0x0019, 0x0000, 0x8066,\r
++      0x0008, 0x0009, 0x0003, 0xc241, 0x0009, 0x80c0, 0x0008, 0x00ff,\r
++      0x0008, 0x7f3e, 0x0000, 0x0d60, 0x0008, 0x0efe, 0x0001, 0x1f80,\r
++      0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0x0009, 0x0003, 0xc24b,\r
++      0x0008, 0x003a, 0x0000, 0x1dfe, 0x000b, 0x022c, 0x0008, 0x0036,\r
++      0x0004, 0x00a6, 0x000b, 0x0264, 0x0000, 0x8074, 0x0000, 0x2000,\r
++      0x000b, 0x0264, 0x0002, 0x3a44, 0x000b, 0x0b9d, 0x0000, 0x8074,\r
++      0x0000, 0x1000, 0x0000, 0x2d0e, 0x0000, 0x2d0e, 0x000b, 0xb36d,\r
++      0x0008, 0x26fe, 0x0008, 0x26fe, 0x0008, 0x2700, 0x0008, 0x2700,\r
++      0x0009, 0x00d0, 0x0003, 0x8a74, 0x0000, 0x8074, 0x0008, 0x4040,\r
++      0x0003, 0x5a64, 0x000b, 0x521c, 0x000a, 0x3a46, 0x0003, 0x8a74,\r
++      0x0002, 0x3a47, 0x000b, 0x0a6f, 0x0008, 0x8054, 0x0000, 0x0004,\r
++      0x0000, 0x8074, 0x0000, 0x8000, 0x0003, 0x02d4, 0x0009, 0x92c0,\r
++      0x0000, 0x0fc8, 0x000b, 0x0813, 0x000a, 0x1246, 0x0003, 0x8b67,\r
++      0x0000, 0x1a60, 0x0008, 0x8062, 0x0000, 0x0002, 0x0000, 0x8066,\r
++      0x0000, 0x367a, 0x000b, 0xc279, 0x0009, 0x92c0, 0x0008, 0x0780,\r
++      0x000b, 0x8b81, 0x0002, 0x124b, 0x000b, 0x0a82, 0x0002, 0x2e4d,\r
++      0x0002, 0x2e4d, 0x000b, 0x0b6d, 0x000a, 0x3a46, 0x000b, 0x8a92,\r
++      0x000b, 0x5a84, 0x0008, 0x8054, 0x0000, 0x0004, 0x000a, 0x1243,\r
++      0x000b, 0x0ad2, 0x0008, 0x8010, 0x0000, 0x000d, 0x000c, 0x035b,\r
++      0x000a, 0x1948, 0x0003, 0x0a8f, 0x0004, 0x0350, 0x0000, 0x1810,\r
++      0x000c, 0x035b, 0x0003, 0x02d2, 0x000a, 0x1948, 0x000b, 0x0a96,\r
++      0x000a, 0x1243, 0x000b, 0x0b70, 0x000a, 0x194d, 0x000b, 0x0a9a,\r
++      0x000a, 0x1243, 0x0003, 0x0b77, 0x000b, 0x5a9a, 0x0008, 0x8054,\r
++      0x0000, 0x0004, 0x000a, 0x192e, 0x0008, 0x7f32, 0x000a, 0x1947,\r
++      0x000b, 0x0acc, 0x0002, 0x194f, 0x000b, 0x0aaa, 0x0004, 0x0350,\r
++      0x0000, 0x1810, 0x0004, 0x01dc, 0x000b, 0xb2c5, 0x000c, 0x035b,\r
++      0x000c, 0x01c6, 0x0003, 0x02d2, 0x0000, 0x1a60, 0x0008, 0x8062,\r
++      0x0000, 0x001f, 0x0000, 0x8066, 0x0008, 0x0009, 0x0003, 0xc2af,\r
++      0x000a, 0x004c, 0x0003, 0x8acc, 0x0000, 0x8060, 0x0000, 0x0400,\r
++      0x0001, 0x9880, 0x0000, 0x0007, 0x0008, 0x7f62, 0x0000, 0x8066,\r
++      0x0000, 0x320a, 0x000b, 0xc2b9, 0x0000, 0x8060, 0x0000, 0x0400,\r
++      0x0001, 0x9880, 0x0008, 0x0012, 0x0008, 0x7f62, 0x0000, 0x8066,\r
++      0x0008, 0x1e0a, 0x000b, 0xc2c1, 0x0000, 0x1826, 0x0000, 0x1928,\r
++      0x0003, 0x02d2, 0x0000, 0x0806, 0x0008, 0x8010, 0x0000, 0x001f,\r
++      0x000c, 0x035b, 0x0000, 0x0310, 0x000c, 0x035b, 0x0003, 0x02d2,\r
++      0x0004, 0x0350, 0x0008, 0x8010, 0x0000, 0x0001, 0x000c, 0x035b,\r
++      0x0000, 0x1810, 0x000c, 0x035b, 0x0000, 0x8074, 0x0008, 0xf000,\r
++      0x0000, 0x0d30, 0x0002, 0x3a42, 0x000b, 0x8ada, 0x0000, 0x15fc,\r
++      0x000b, 0xb07a, 0x0003, 0x0013, 0x0000, 0x8074, 0x0000, 0x0501,\r
++      0x0008, 0x8010, 0x0008, 0x000c, 0x000c, 0x035b, 0x0003, 0x0013,\r
++      0x0009, 0xbbe0, 0x0008, 0x0030, 0x0003, 0x8af6, 0x0000, 0x18fe,\r
++      0x0009, 0x3ce0, 0x000b, 0x0af3, 0x0008, 0x15fe, 0x0009, 0x3ce0,\r
++      0x000b, 0x0af3, 0x0008, 0x13fe, 0x0009, 0x3ce0, 0x000b, 0x8aef,\r
++      0x000c, 0x0349, 0x0008, 0x0d26, 0x0003, 0x02f0, 0x0004, 0x034b,\r
++      0x0008, 0x8076, 0x0000, 0x0040, 0x0003, 0x0346, 0x0008, 0x8076,\r
++      0x0008, 0x0041, 0x0003, 0x0346, 0x0009, 0xbbe0, 0x0000, 0x0032,\r
++      0x000b, 0x8afb, 0x0008, 0x3c1e, 0x0003, 0x0346, 0x0009, 0xbbe0,\r
++      0x0000, 0x003b, 0x000b, 0x8b00, 0x0000, 0x3cdc, 0x0003, 0x0346,\r
++      0x0009, 0xbbe0, 0x0008, 0x0035, 0x000b, 0x8b06, 0x0000, 0x8072,\r
++      0x0000, 0x8000, 0x0003, 0x04aa, 0x0009, 0xbbe0, 0x0008, 0x0036,\r
++      0x000b, 0x0bcd, 0x0009, 0xbbe0, 0x0000, 0x0037, 0x000b, 0x8b27,\r
++      0x0000, 0x18fe, 0x0009, 0x3ce0, 0x0003, 0x8af3, 0x0008, 0x8076,\r
++      0x0000, 0x0040, 0x0000, 0x1a60, 0x0008, 0x8062, 0x0000, 0x000d,\r
++      0x0008, 0x2604, 0x0008, 0x2604, 0x0008, 0x2706, 0x0008, 0x2706,\r
++      0x0000, 0x2808, 0x0000, 0x2808, 0x0000, 0x290a, 0x0000, 0x290a,\r
++      0x0000, 0x8066, 0x0000, 0x0422, 0x000b, 0xc31e, 0x0004, 0x0350,\r
++      0x0008, 0x8054, 0x0000, 0x0004, 0x0000, 0x8074, 0x0008, 0xf000,\r
++      0x0000, 0x8072, 0x0000, 0x8000, 0x0003, 0x02d4, 0x0009, 0xbbe0,\r
++      0x0000, 0x0038, 0x000b, 0x8b39, 0x0000, 0x18fe, 0x0009, 0x3ce0,\r
++      0x0003, 0x0b36, 0x0008, 0x15fe, 0x0009, 0x3ce0, 0x000b, 0x8ae9,\r
++      0x0004, 0x034b, 0x0008, 0x8076, 0x0000, 0x0040, 0x0000, 0x8072,\r
++      0x0000, 0x8000, 0x0003, 0x0394, 0x0008, 0x8076, 0x0008, 0x0042,\r
++      0x0003, 0x0346, 0x0009, 0xbbe0, 0x0000, 0x0016, 0x0003, 0x8b46,\r
++      0x0000, 0x8074, 0x0008, 0x0808, 0x0002, 0x3a44, 0x0003, 0x8816,\r
++      0x0000, 0x8074, 0x0000, 0x0800, 0x0000, 0x8072, 0x0000, 0x8000,\r
++      0x000f, 0x8000, 0x0003, 0x0013, 0x0000, 0x8072, 0x0000, 0x8000,\r
++      0x0003, 0x0013, 0x0002, 0x1430, 0x0003, 0x034c, 0x000a, 0x3d30,\r
++      0x0000, 0x7f00, 0x0001, 0xbc80, 0x0000, 0x0007, 0x0003, 0x0354,\r
++      0x000a, 0x1930, 0x0000, 0x7f00, 0x0001, 0x9880, 0x0000, 0x0007,\r
++      0x0000, 0x8060, 0x0000, 0x0400, 0x0008, 0x7f62, 0x0000, 0x8066,\r
++      0x0008, 0x000a, 0x000b, 0xc359, 0x000f, 0x4000, 0x000b, 0x235b,\r
++      0x0008, 0x0870, 0x000f, 0x4000, 0x0009, 0xbac0, 0x0008, 0x0090,\r
++      0x000b, 0x0b64, 0x0000, 0x8074, 0x0000, 0x0706, 0x000b, 0x0366,\r
++      0x0000, 0x8074, 0x0000, 0x0703, 0x000f, 0x4000, 0x0008, 0x8010,\r
++      0x0000, 0x0023, 0x0003, 0x03a2, 0x0008, 0x8010, 0x0000, 0x0008,\r
++      0x0003, 0x03a2, 0x0008, 0x8010, 0x0008, 0x0022, 0x0003, 0x03a2,\r
++      0x0004, 0x0350, 0x0008, 0x8010, 0x0000, 0x0007, 0x000c, 0x035b,\r
++      0x0000, 0x1810, 0x000c, 0x035b, 0x000b, 0x03ac, 0x0004, 0x0350,\r
++      0x0008, 0x8010, 0x0008, 0x001b, 0x000c, 0x035b, 0x0000, 0x1810,\r
++      0x000c, 0x035b, 0x0000, 0x8074, 0x0000, 0xf080, 0x0000, 0x0d30,\r
++      0x0003, 0x0013, 0x0008, 0x8010, 0x0008, 0x0009, 0x0003, 0x03a2,\r
++      0x0008, 0x8010, 0x0008, 0x0005, 0x0003, 0x03a2, 0x000a, 0x1648,\r
++      0x000b, 0x8888, 0x0008, 0x808c, 0x0000, 0x0001, 0x0007, 0x0000,\r
++      0x0008, 0x8010, 0x0000, 0x0004, 0x000a, 0x4143, 0x0003, 0x0888,\r
++      0x0002, 0x3a44, 0x0003, 0x8813, 0x0008, 0x0d2a, 0x0003, 0x03a2,\r
++      0x0008, 0x8010, 0x0008, 0x0003, 0x0003, 0x03a4, 0x0008, 0x8010,\r
++      0x0000, 0x000b, 0x0003, 0x03a4, 0x0008, 0x8010, 0x0000, 0x0002,\r
++      0x0003, 0x03a4, 0x0002, 0x3a47, 0x000b, 0x8a64, 0x0008, 0x8010,\r
++      0x0008, 0x0006, 0x0003, 0x03a4, 0x0000, 0x8074, 0x0008, 0xf000,\r
++      0x000c, 0x035b, 0x000c, 0x035e, 0x000a, 0x3a40, 0x000b, 0x0813,\r
++      0x0008, 0x8010, 0x0008, 0x000c, 0x000c, 0x035b, 0x0003, 0x0013,\r
++      0x0000, 0x8074, 0x0000, 0xf080, 0x0000, 0x0d30, 0x0002, 0x2e4d,\r
++      0x0002, 0x2e4d, 0x000b, 0x0bb5, 0x0008, 0x8054, 0x0000, 0x0019,\r
++      0x0003, 0x0013, 0x0008, 0x8054, 0x0008, 0x0009, 0x0003, 0x0013,\r
++      0x0002, 0x3a44, 0x0003, 0x8813, 0x0003, 0x0397, 0x0008, 0x808c,\r
++      0x0008, 0x0000, 0x0002, 0x4447, 0x0003, 0x0be1, 0x0001, 0xc0c0,\r
++      0x0008, 0x00ff, 0x0009, 0xffe0, 0x0008, 0x00ff, 0x000b, 0x8bb8,\r
++      0x0001, 0xc1e0, 0x0008, 0xffff, 0x000b, 0x8bb8, 0x0008, 0x8010,\r
++      0x0000, 0x0013, 0x000c, 0x035b, 0x0000, 0x8074, 0x0008, 0x0202,\r
++      0x0003, 0x0013, 0x000a, 0x3a40, 0x000b, 0x8bde, 0x0000, 0x8074,\r
++      0x0000, 0x0200, 0x0000, 0x3d00, 0x0000, 0x3cfe, 0x0000, 0x8072,\r
++      0x0000, 0x8000, 0x0001, 0x43e0, 0x0003, 0x8bdc, 0x0000, 0x42fe,\r
++      0x0001, 0xffc0, 0x0008, 0x00ff, 0x0009, 0x00e0, 0x0003, 0x0bb8,\r
++      0x0008, 0x0d08, 0x000b, 0x0431, 0x0000, 0x8072, 0x0000, 0x8000,\r
++      0x0003, 0x0013, 0x0004, 0x04b3, 0x0008, 0x808c, 0x0000, 0x0001,\r
++      0x0000, 0x04fc, 0x0003, 0x3496, 0x0000, 0x0460, 0x0008, 0x8062,\r
++      0x0000, 0x0001, 0x0000, 0x8066, 0x0008, 0x0009, 0x000b, 0xc3eb,\r
++      0x0000, 0x0004, 0x0009, 0x80c0, 0x0008, 0x00ff, 0x0000, 0x7f00,\r
++      0x0001, 0x80e0, 0x0000, 0x0004, 0x000b, 0x0c05, 0x0001, 0x80e0,\r
++      0x0008, 0x0005, 0x000b, 0x0c05, 0x0001, 0x80e0, 0x0008, 0x0006,\r
++      0x000b, 0x0c05, 0x0001, 0x82c0, 0x0008, 0xff00, 0x0008, 0x7f04,\r
++      0x0009, 0x82e0, 0x0008, 0x0600, 0x000b, 0x0c05, 0x0009, 0x82e0,\r
++      0x0008, 0x0500, 0x000b, 0x0c05, 0x0009, 0x82e0, 0x0000, 0x0400,\r
++      0x0003, 0x8c96, 0x0009, 0xc4c0, 0x0000, 0x7000, 0x0009, 0xffe0,\r
++      0x0000, 0x1000, 0x0003, 0x0c31, 0x0004, 0x04a4, 0x0002, 0x3941,\r
++      0x0003, 0x0c10, 0x0000, 0x8072, 0x0000, 0x0400, 0x0003, 0x0013,\r
++      0x0000, 0x0460, 0x0008, 0x80fe, 0x0008, 0x002b, 0x0008, 0x7f62,\r
++      0x0000, 0x8066, 0x0008, 0x2209, 0x000b, 0xc416, 0x0008, 0x11fc,\r
++      0x000b, 0x342c, 0x0001, 0x9180, 0x0000, 0x0002, 0x0000, 0x8060,\r
++      0x0000, 0x0400, 0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0x0609,\r
++      0x000b, 0xc420, 0x0000, 0x42fe, 0x0001, 0xffc0, 0x0008, 0xff00,\r
++      0x0009, 0x03e0, 0x000b, 0x8c29, 0x0000, 0x8072, 0x0000, 0x0400,\r
++      0x0003, 0x0052, 0x0001, 0x9180, 0x0008, 0x0003, 0x000b, 0x0413,\r
++      0x0000, 0x8072, 0x0000, 0x0400, 0x0008, 0x8010, 0x0000, 0x0010,\r
++      0x000b, 0x0489, 0x0004, 0x04a4, 0x0002, 0x3941, 0x0003, 0x0c37,\r
++      0x0000, 0x8072, 0x0000, 0x0400, 0x0003, 0x0013, 0x0004, 0x046e,\r
++      0x0008, 0x11fc, 0x000b, 0xb43f, 0x0000, 0x8072, 0x0000, 0x0400,\r
++      0x0008, 0x8010, 0x0000, 0x000e, 0x000b, 0x0489, 0x0000, 0x8060,\r
++      0x0000, 0x0400, 0x0000, 0x04fc, 0x0003, 0xb454, 0x0008, 0x808c,\r
++      0x0008, 0x0000, 0x0001, 0x9180, 0x0008, 0x0005, 0x0008, 0x7f62,\r
++      0x0000, 0x8066, 0x0008, 0x0009, 0x000b, 0xc44a, 0x0008, 0x0060,\r
++      0x0008, 0x8062, 0x0008, 0x001b, 0x0008, 0x4304, 0x0008, 0x4206,\r
++      0x0000, 0x8066, 0x0000, 0x0412, 0x000b, 0xc452, 0x000b, 0x046b,\r
++      0x0008, 0x808c, 0x0000, 0x0001, 0x0000, 0x0460, 0x0008, 0x8062,\r
++      0x0008, 0x002b, 0x0000, 0x8066, 0x0008, 0x0609, 0x000b, 0xc45b,\r
++      0x0000, 0x8066, 0x0008, 0x220a, 0x000b, 0xc45e, 0x0000, 0x42fe,\r
++      0x0001, 0xffc0, 0x0008, 0xff00, 0x0008, 0x7f04, 0x0000, 0x8060,\r
++      0x0000, 0x0400, 0x0001, 0x9180, 0x0000, 0x0002, 0x0008, 0x7f62,\r
++      0x0000, 0x8066, 0x0008, 0x041a, 0x0003, 0xc46a, 0x0000, 0x8072,\r
++      0x0000, 0x0400, 0x0003, 0x0052, 0x0000, 0x8060, 0x0000, 0x0400,\r
++      0x0008, 0x6b62, 0x0000, 0x8066, 0x0000, 0x0411, 0x000b, 0xc473,\r
++      0x0008, 0x02fe, 0x0009, 0x03e0, 0x000b, 0x8c79, 0x0000, 0x0d22,\r
++      0x000f, 0x4000, 0x0009, 0x8280, 0x0000, 0x0002, 0x0001, 0x6b80,\r
++      0x0008, 0x7f62, 0x0000, 0x8066, 0x0008, 0x2209, 0x000b, 0xc47f,\r
++      0x000a, 0x0200, 0x0001, 0xffc0, 0x0000, 0x0007, 0x0000, 0x7f06,\r
++      0x0008, 0x6b62, 0x0000, 0x8066, 0x0008, 0x060a, 0x0003, 0xc487,\r
++      0x000f, 0x4000, 0x0002, 0x3a44, 0x0003, 0x8813, 0x000a, 0x2f44,\r
++      0x000a, 0x2f44, 0x0003, 0x8b97, 0x0008, 0x808a, 0x0008, 0x0003,\r
++      0x0000, 0x8074, 0x0000, 0xf080, 0x0003, 0x5c92, 0x0008, 0x8054,\r
++      0x0000, 0x0019, 0x0003, 0x0013, 0x0002, 0x3a44, 0x0003, 0x8813,\r
++      0x0008, 0x808c, 0x0008, 0x0000, 0x0008, 0x8010, 0x0008, 0x0011,\r
++      0x000c, 0x035b, 0x0000, 0x42fe, 0x0001, 0xffc0, 0x0008, 0x00ff,\r
++      0x0008, 0x7f10, 0x000c, 0x035b, 0x0008, 0x4310, 0x0003, 0x03a4,\r
++      0x0002, 0x3941, 0x0003, 0x0ca7, 0x000f, 0x4000, 0x0000, 0x8072,\r
++      0x0008, 0x0404, 0x000f, 0x4000, 0x0008, 0x8010, 0x0008, 0x0012,\r
++      0x000c, 0x035b, 0x0004, 0x046e, 0x0000, 0x1110, 0x000c, 0x035b,\r
++      0x0008, 0x11fc, 0x0003, 0xb4ad, 0x0003, 0x0013, 0x0009, 0xc2c0,\r
++      0x0008, 0x00ff, 0x0000, 0x7f00, 0x0001, 0xc3c0, 0x0008, 0xff00,\r
++      0x0009, 0x00d0, 0x000b, 0x0cd8, 0x0000, 0x0d0a, 0x0001, 0x8580,\r
++      0x0000, 0x1000, 0x0008, 0x7f62, 0x0000, 0x8060, 0x0000, 0x0400,\r
++      0x0000, 0x8066, 0x0000, 0x0809, 0x000b, 0xc4c2, 0x0000, 0x04fc,\r
++      0x0003, 0x34d1, 0x0000, 0x0460, 0x0008, 0x8062, 0x0000, 0x0004,\r
++      0x0000, 0x8066, 0x0000, 0x0211, 0x0003, 0xc4ca, 0x0008, 0x01fe,\r
++      0x0009, 0x00e0, 0x0003, 0x8cd1, 0x0008, 0x02fe, 0x0001, 0x43e0,\r
++      0x000b, 0x0cd7, 0x0002, 0x0500, 0x0000, 0x7f0a, 0x0009, 0xffe0,\r
++      0x0000, 0x0800, 0x0003, 0x8cbb, 0x0008, 0x0d08, 0x000f, 0x4000,\r
++      0x0008, 0x43fe, 0x0001, 0x3e80, 0x0000, 0x0d60, 0x0008, 0x7f62,\r
++      0x0000, 0x8066, 0x0000, 0x0809, 0x0003, 0xc4de, 0x0000, 0x8060,\r
++      0x0000, 0x0400, 0x0001, 0x84c0, 0x0008, 0xff00, 0x0002, 0x7f70,\r
++      0x0009, 0xff80, 0x0000, 0x1000, 0x0008, 0x7f62, 0x0000, 0x8066,\r
++      0x0000, 0x0809, 0x000b, 0xc4e9, 0x000f, 0x4000, 0xe55a, 0x71f6\r
++};\r
++unsigned short rseqipx_code_length01 = 0x09d8;\r
++/*\r
++ *\r
++ */\r
++\r
++unsigned long xseqipx_code_addr01 = 0x0001e000 ;\r
++unsigned short xseqipx_code01[] = { \r
++0x0013, 0x0003, 0x0000, 0x1082, 0x0001, 0xe000, 0x0005, 0x0032,\r
++      0x0000, 0x0010, 0x0015, 0x0033, 0x0010, 0xbb39, 0x000b, 0x8007,\r
++      0x0004, 0x010b, 0x0014, 0x011d, 0x0010, 0xc000, 0x0000, 0xc001,\r
++      0x0000, 0xc0b0, 0x0010, 0xc0b1, 0x0010, 0xc0b2, 0x0000, 0xc0b3,\r
++      0x0010, 0xc0b4, 0x0000, 0xc0b5, 0x0000, 0xc0b6, 0x0010, 0xc0b7,\r
++      0x0010, 0xc0b8, 0x0000, 0xc0b9, 0x0000, 0xc0ba, 0x0000, 0xc0c2,\r
++      0x0010, 0xc0c3, 0x0000, 0xc0c4, 0x0010, 0xc0c5, 0x0010, 0xc0c6,\r
++      0x0000, 0xc0c7, 0x0000, 0xc0c8, 0x0010, 0xc0c9, 0x0010, 0xc0ca,\r
++      0x0000, 0xc0cb, 0x0010, 0xc0cc, 0x0000, 0xc0cd, 0x0000, 0xc0ce,\r
++      0x0010, 0xc0cf, 0x0015, 0x0039, 0x0010, 0xff00, 0x0015, 0x003a,\r
++      0x0010, 0xff00, 0x0005, 0x00d0, 0x0010, 0xff00, 0x0015, 0x00d1,\r
++      0x0010, 0xff00, 0x0012, 0x3a40, 0x000b, 0x1031, 0x0002, 0x7940,\r
++      0x001b, 0x112f, 0x0002, 0x3a42, 0x001b, 0x1035, 0x0003, 0xb035,\r
++      0x0003, 0xa1d8, 0x0002, 0x3a41, 0x001b, 0x1039, 0x0012, 0x7941,\r
++      0x000b, 0x12f6, 0x0003, 0xe055, 0x0012, 0xd042, 0x0003, 0x103f,\r
++      0x0000, 0x75ff, 0x0002, 0xff41, 0x001b, 0x1055, 0x0000, 0x0cfe,\r
++      0x0003, 0x6049, 0x0002, 0x3a44, 0x000b, 0x1049, 0x0011, 0x02e8,\r
++      0x0010, 0x0000, 0x0013, 0x1383, 0x0011, 0x02e8, 0x0010, 0x0005,\r
++      0x0003, 0x1413, 0x0012, 0x3a46, 0x001b, 0x1055, 0x0012, 0xd042,\r
++      0x0003, 0x1050, 0x0000, 0x75ff, 0x0012, 0xff40, 0x001b, 0x1055,\r
++      0x0000, 0x12fe, 0x0013, 0x6055, 0x0001, 0x0fe8, 0x0010, 0x0000,\r
++      0x0013, 0x1619, 0x0015, 0x0030, 0x0000, 0x0400, 0x0010, 0xc131,\r
++      0x0015, 0x0033, 0x0010, 0xb211, 0x001b, 0x805a, 0x0010, 0xb2ff,\r
++      0x0001, 0xb3e0, 0x001c, 0x10cd, 0x000b, 0xf02d, 0x0011, 0x3be8,\r
++      0x0000, 0x0010, 0x001b, 0x1072, 0x0000, 0x0afe, 0x000b, 0x6066,\r
++      0x0000, 0x3c0b, 0x0003, 0x006e, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0001, 0x0a88, 0x0010, 0x0003, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0010, 0x3c0a, 0x000b, 0x806d, 0x0010, 0x3c0a, 0x0002, 0x0c00,\r
++      0x0010, 0xff0c, 0x0013, 0x00ca, 0x0011, 0x3be8, 0x0010, 0x0012,\r
++      0x000b, 0x1085, 0x0010, 0x08fe, 0x001b, 0x6079, 0x0010, 0x3c09,\r
++      0x0013, 0x0081, 0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x0888,\r
++      0x0010, 0x0003, 0x0000, 0xff31, 0x0015, 0x0033, 0x0010, 0x3c0a,\r
++      0x000b, 0x8080, 0x0000, 0x3c08, 0x0002, 0x0c00, 0x0010, 0xff0c,\r
++      0x0013, 0x00ca, 0x0011, 0x3be8, 0x0000, 0x0013, 0x001b, 0x108b,\r
++      0x0000, 0x3cb0, 0x0004, 0x00dd, 0x0013, 0x00ca, 0x0011, 0x3be8,\r
++      0x0000, 0x0019, 0x000b, 0x109e, 0x0010, 0x04fe, 0x001b, 0x6092,\r
++      0x0010, 0x3c05, 0x0013, 0x009a, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0011, 0x0488, 0x0010, 0x0003, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0010, 0x3c0a, 0x001b, 0x8099, 0x0000, 0x3c04, 0x0002, 0x0c00,\r
++      0x0010, 0xff0c, 0x0013, 0x00ca, 0x0011, 0x3be8, 0x0000, 0x0015,\r
++      0x001b, 0x10aa, 0x0014, 0x0114, 0x0004, 0x0126, 0x0015, 0x0039,\r
++      0x0000, 0x8000, 0x0017, 0x8000, 0x0004, 0x010b, 0x0014, 0x011d,\r
++      0x0004, 0x00f6, 0x0013, 0x002d, 0x0011, 0x3be8, 0x0000, 0x0016,\r
++      0x000b, 0x10bc, 0x0001, 0x0fe8, 0x0010, 0x0000, 0x0013, 0x10b6,\r
++      0x0001, 0x0fe8, 0x0000, 0x0002, 0x0013, 0x10b6, 0x0015, 0x0039,\r
++      0x0010, 0x1010, 0x0013, 0x00ca, 0x0015, 0x0039, 0x0000, 0x5040,\r
++      0x0015, 0x00b8, 0x0000, 0x0008, 0x0004, 0x083d, 0x0013, 0x00ca,\r
++      0x0011, 0x3be8, 0x0010, 0x0017, 0x000b, 0x10c1, 0x0010, 0x3cc3,\r
++      0x0013, 0x00ca, 0x0011, 0x3be8, 0x0010, 0x0018, 0x001b, 0x10c6,\r
++      0x0000, 0x3cc2, 0x0013, 0x00ca, 0x0005, 0x00ce, 0x0000, 0x0001,\r
++      0x0000, 0x3bcf, 0x0004, 0x0801, 0x0015, 0x0039, 0x0000, 0x8000,\r
++      0x0013, 0x002d, 0x0001, 0xb288, 0x0000, 0x0002, 0x0001, 0xc180,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009, 0x000b, 0x80d3,\r
++      0x0002, 0xb200, 0x0011, 0xffc8, 0x0000, 0x0007, 0x0010, 0xffb2,\r
++      0x0010, 0xc131, 0x0015, 0x0033, 0x0010, 0xb20a, 0x0001, 0xb0d0,\r
++      0x000b, 0x80dc, 0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0xb088,\r
++      0x0000, 0x0010, 0x0000, 0xff31, 0x0015, 0x0033, 0x0010, 0xb109,\r
++      0x001b, 0x80e4, 0x0001, 0xb1e8, 0x0010, 0xffff, 0x0003, 0x10f5,\r
++      0x0000, 0x11fe, 0x001b, 0x60ec, 0x0000, 0xb012, 0x0003, 0x00f4,\r
++      0x0015, 0x0030, 0x0000, 0x0400, 0x0001, 0x1188, 0x0010, 0x0003,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb00a, 0x001b, 0x80f3,\r
++      0x0000, 0xb011, 0x0017, 0x4000, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0011, 0xbc88, 0x0000, 0x001f, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0000, 0xc411, 0x000b, 0x80fd, 0x0011, 0xbc88, 0x0010, 0x0018,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0010, 0xc609, 0x000b, 0x8103,\r
++      0x0011, 0xbc88, 0x0000, 0x0037, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0000, 0xc709, 0x000b, 0x8109, 0x0017, 0x4000, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0001, 0xbb88, 0x0000, 0x0001, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0000, 0x0269, 0x000b, 0x8112, 0x0017, 0x4000,\r
++      0x0015, 0x0030, 0x0000, 0x0400, 0x0001, 0xbb88, 0x0000, 0x0001,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0x026a, 0x000b, 0x811b,\r
++      0x0017, 0x4000, 0x0015, 0x0030, 0x0000, 0x0400, 0x0001, 0xbb88,\r
++      0x0010, 0x000f, 0x0000, 0xff31, 0x0015, 0x0033, 0x0010, 0x0f59,\r
++      0x000b, 0x8124, 0x0017, 0x4000, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0001, 0xbb88, 0x0010, 0x000f, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0010, 0x0f5a, 0x000b, 0x812d, 0x0017, 0x4000, 0x0000, 0xd0ff,\r
++      0x0012, 0xff40, 0x000b, 0x1031, 0x0015, 0x00d1, 0x0010, 0x0101,\r
++      0x0013, 0x9134, 0x0005, 0x0079, 0x0000, 0x0001, 0x0013, 0x9137,\r
++      0x0015, 0x00d1, 0x0000, 0x0100, 0x0011, 0x02e8, 0x0000, 0x0002,\r
++      0x0003, 0x115d, 0x0011, 0x02e8, 0x0000, 0x0001, 0x0003, 0x1175,\r
++      0x0011, 0x02e8, 0x0000, 0x0004, 0x0013, 0x1193, 0x0011, 0x02e8,\r
++      0x0010, 0x0003, 0x0003, 0x11c4, 0x0005, 0x0002, 0x0010, 0x0000,\r
++      0x0000, 0xc00e, 0x0000, 0xc00d, 0x0010, 0xc003, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0001, 0xbd88, 0x0010, 0x0009, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0010, 0xc00a, 0x001b, 0x8152, 0x0012, 0x3a45,\r
++      0x0013, 0x115a, 0x0015, 0x003a, 0x0000, 0x2000, 0x0015, 0x003a,\r
++      0x0010, 0x1010, 0x0004, 0x0829, 0x0012, 0xd042, 0x0013, 0x1031,\r
++      0x0013, 0x0050, 0x0012, 0x7849, 0x0013, 0x11d2, 0x0010, 0x0dfe,\r
++      0x0003, 0x6148, 0x0012, 0x0c10, 0x0010, 0xff0c, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0011, 0x0d88, 0x0010, 0x0003, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0000, 0xb309, 0x000b, 0x816a, 0x0010, 0xb3fe,\r
++      0x0003, 0x6172, 0x0010, 0xb30b, 0x0015, 0x0033, 0x0010, 0xc00a,\r
++      0x001b, 0x8170, 0x0013, 0x01c7, 0x0000, 0xc00b, 0x0010, 0xc00a,\r
++      0x0013, 0x01c7, 0x0000, 0x78b0, 0x0012, 0xb044, 0x0013, 0x11d2,\r
++      0x0002, 0xb049, 0x0013, 0x11d2, 0x0010, 0x71ff, 0x0012, 0xff38,\r
++      0x0010, 0xff71, 0x0010, 0x0dfe, 0x0013, 0x6146, 0x0012, 0x0c10,\r
++      0x0010, 0xff0c, 0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x0d88,\r
++      0x0010, 0x0003, 0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb309,\r
++      0x000b, 0x8188, 0x0010, 0xb3fe, 0x0003, 0x6190, 0x0000, 0xb309,\r
++      0x0015, 0x0033, 0x0010, 0xc00a, 0x000b, 0x818e, 0x0013, 0x01c7,\r
++      0x0010, 0xc009, 0x0000, 0xc008, 0x0013, 0x01c7, 0x0000, 0x78b0,\r
++      0x0012, 0xb044, 0x0013, 0x11d2, 0x0002, 0xb049, 0x0013, 0x11d2,\r
++      0x0010, 0x71ff, 0x0012, 0xff38, 0x0010, 0xff71, 0x0010, 0x0dfe,\r
++      0x0013, 0x6146, 0x0012, 0x0c10, 0x0010, 0xff0c, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0011, 0x0d88, 0x0010, 0x0003, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0000, 0xb309, 0x000b, 0x81a6, 0x0010, 0xb3fe,\r
++      0x0013, 0x61ae, 0x0000, 0xb305, 0x0015, 0x0033, 0x0010, 0xc00a,\r
++      0x000b, 0x81ac, 0x0013, 0x01b0, 0x0010, 0xc005, 0x0000, 0xc004,\r
++      0x0002, 0x033f, 0x0002, 0xff27, 0x0000, 0x0db8, 0x0004, 0x0378,\r
++      0x0000, 0x0db8, 0x0004, 0x083d, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0011, 0xbc88, 0x0010, 0x0000, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0000, 0xb309, 0x000b, 0x81bd, 0x0011, 0xb3e8, 0x0000, 0x0002,\r
++      0x001b, 0x1146, 0x0005, 0x0002, 0x0010, 0x0005, 0x0003, 0x0148,\r
++      0x0012, 0x7849, 0x0013, 0x11d2, 0x0003, 0x0148, 0x0000, 0x0db8,\r
++      0x0012, 0x0345, 0x001b, 0x11cd, 0x0002, 0x033f, 0x0004, 0x0378,\r
++      0x0013, 0x0146, 0x0002, 0x033f, 0x0002, 0xff27, 0x0004, 0x0378,\r
++      0x0004, 0x083d, 0x0013, 0x0146, 0x0015, 0x00b8, 0x0000, 0x0001,\r
++      0x0015, 0x003a, 0x0010, 0x0101, 0x0004, 0x083d, 0x0003, 0x0153,\r
++      0x0000, 0x2bba, 0x0003, 0xb1d9, 0x0005, 0x002a, 0x0000, 0x0002,\r
++      0x0001, 0xbac8, 0x0000, 0x0700, 0x000b, 0x12b1, 0x0011, 0x15e8,\r
++      0x0000, 0x0002, 0x0003, 0x122c, 0x0011, 0x15e8, 0x0000, 0x0001,\r
++      0x0013, 0x11e8, 0x0005, 0x0015, 0x0010, 0x0000, 0x0003, 0x020f,\r
++      0x0005, 0x0015, 0x0010, 0x0000, 0x0002, 0xba43, 0x0003, 0x1210,\r
++      0x0003, 0xb1ec, 0x0005, 0x002a, 0x0000, 0x0004, 0x0012, 0xba42,\r
++      0x0003, 0x1216, 0x0012, 0x104b, 0x000b, 0x120f, 0x0000, 0x1a30,\r
++      0x0005, 0x0031, 0x0000, 0x0002, 0x0015, 0x0033, 0x0000, 0x1b2a,\r
++      0x001b, 0x81f8, 0x0010, 0x20b0, 0x0010, 0x21b1, 0x0010, 0x22b2,\r
++      0x0010, 0x23b3, 0x0010, 0x24b4, 0x0010, 0x25b5, 0x0010, 0x28b8,\r
++      0x0010, 0x29b9, 0x0000, 0x1a30, 0x0005, 0x0031, 0x0000, 0x0007,\r
++      0x0015, 0x0033, 0x0010, 0xb032, 0x000b, 0x8206, 0x0000, 0x1a30,\r
++      0x0005, 0x0031, 0x0010, 0x000f, 0x0015, 0x0033, 0x0010, 0xb812,\r
++      0x000b, 0x820c, 0x0005, 0x0015, 0x0010, 0x0000, 0x0013, 0x0035,\r
++      0x0000, 0x1efe, 0x0003, 0x6224, 0x0014, 0x0256, 0x0000, 0x1efe,\r
++      0x000c, 0x6256, 0x0003, 0x020f, 0x0000, 0x1a30, 0x0005, 0x0031,\r
++      0x0000, 0x0020, 0x0015, 0x0033, 0x0000, 0xb009, 0x000b, 0x821b,\r
++      0x0002, 0xb02f, 0x0000, 0xffb0, 0x0005, 0x0031, 0x0000, 0x0020,\r
++      0x0015, 0x0033, 0x0000, 0xb00a, 0x000b, 0x8222, 0x0003, 0x01f3,\r
++      0x0015, 0x00b8, 0x0010, 0x0005, 0x0004, 0x083d, 0x0000, 0x13b8,\r
++      0x0015, 0x003a, 0x0010, 0x0404, 0x0004, 0x083d, 0x0003, 0x020f,\r
++      0x0005, 0x0015, 0x0000, 0x0001, 0x0012, 0xba42, 0x0013, 0x1239,\r
++      0x0013, 0xb230, 0x0010, 0x2bff, 0x0012, 0xff4f, 0x000b, 0x11d8,\r
++      0x0002, 0xba43, 0x001b, 0x1216, 0x0000, 0x1efe, 0x000c, 0x6256,\r
++      0x0003, 0x020f, 0x0010, 0x28b8, 0x0010, 0x29b9, 0x0004, 0x02c7,\r
++      0x0002, 0x3a42, 0x000b, 0x120f, 0x0000, 0x1c30, 0x0015, 0x00ff,\r
++      0x0000, 0x0002, 0x0002, 0x1f43, 0x001b, 0x1246, 0x0001, 0xff88,\r
++      0x0000, 0x0002, 0x0003, 0x0248, 0x0001, 0xff88, 0x0000, 0x0004,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb011, 0x000b, 0x824b,\r
++      0x0000, 0xb0ff, 0x0011, 0x16a0, 0x0000, 0xff16, 0x000b, 0x24e2,\r
++      0x0002, 0xb100, 0x0003, 0x0253, 0x0010, 0xb1ff, 0x0001, 0x17a0,\r
++      0x0010, 0xff17, 0x0013, 0x0216, 0x0000, 0x16ff, 0x0001, 0x18a0,\r
++      0x0010, 0xff00, 0x001b, 0x225d, 0x0002, 0x1700, 0x0003, 0x12b0,\r
++      0x0013, 0x025e, 0x0010, 0x17ff, 0x0011, 0x19a0, 0x0003, 0x22b0,\r
++      0x0011, 0x00d0, 0x0003, 0x12b0, 0x0000, 0x1c30, 0x0000, 0x1b31,\r
++      0x0015, 0x0033, 0x0000, 0xb131, 0x000b, 0x8266, 0x0003, 0xb267,\r
++      0x0000, 0xb120, 0x0010, 0xb221, 0x0002, 0x1f43, 0x001b, 0x1273,\r
++      0x0010, 0xc022, 0x0000, 0xc023, 0x0000, 0xb324, 0x0000, 0xb425,\r
++      0x0010, 0xb3b5, 0x0000, 0xb4b6, 0x0003, 0x0277, 0x0000, 0xb322,\r
++      0x0000, 0xb423, 0x0000, 0xb524, 0x0010, 0xb625, 0x0013, 0xb277,\r
++      0x0005, 0x002a, 0x0000, 0x0001, 0x0012, 0x1500, 0x0000, 0xff15,\r
++      0x0000, 0x16ff, 0x0001, 0xb580, 0x0000, 0xff16, 0x000b, 0x2282,\r
++      0x0002, 0x1700, 0x0013, 0x0283, 0x0010, 0x17ff, 0x0001, 0xb680,\r
++      0x0010, 0xff17, 0x0012, 0x1e10, 0x0010, 0xff1e, 0x0013, 0x62b0,\r
++      0x0002, 0x1d00, 0x0010, 0xff1d, 0x0010, 0xc030, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0000, 0xb009, 0x000b, 0x828e, 0x0010, 0xb0fe,\r
++      0x001b, 0x62af, 0x0000, 0x1c30, 0x0005, 0x0031, 0x0000, 0x0001,\r
++      0x0015, 0x0033, 0x0000, 0xb009, 0x000b, 0x8296, 0x0010, 0xb0fe,\r
++      0x001b, 0x629c, 0x0005, 0x00ce, 0x0010, 0x0005, 0x0013, 0x0801,\r
++      0x0010, 0xb01c, 0x0000, 0x1c30, 0x0005, 0x0031, 0x0000, 0x0019,\r
++      0x0015, 0x0033, 0x0000, 0xb009, 0x001b, 0x82a2, 0x0001, 0xb0c8,\r
++      0x0010, 0x00ff, 0x0000, 0xff1f, 0x0010, 0xc030, 0x0011, 0xbe80,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009, 0x001b, 0x82ab,\r
++      0x0000, 0xb01d, 0x0010, 0x1dff, 0x0013, 0x028a, 0x0000, 0xb01b,\r
++      0x0017, 0x4000, 0x0002, 0x3a41, 0x0003, 0x12b9, 0x0003, 0xb2b3,\r
++      0x0005, 0x002a, 0x0000, 0x0004, 0x0005, 0x0015, 0x0010, 0x0000,\r
++      0x0003, 0x020f, 0x0000, 0x1a30, 0x0005, 0x0031, 0x0000, 0x0002,\r
++      0x0015, 0x0033, 0x0000, 0x1b2a, 0x000b, 0x82be, 0x0015, 0x00b8,\r
++      0x0000, 0x0004, 0x0004, 0x083d, 0x0000, 0x13b8, 0x0015, 0x003a,\r
++      0x0010, 0x0404, 0x0004, 0x083d, 0x0013, 0x0039, 0x0002, 0x1e00,\r
++      0x0010, 0xff1e, 0x0012, 0x1d10, 0x0010, 0xff1d, 0x0010, 0xc030,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009, 0x000b, 0x82cf,\r
++      0x0010, 0xb0fe, 0x000b, 0x62f4, 0x0000, 0x1cff, 0x0001, 0x1ae0,\r
++      0x0013, 0x12de, 0x0000, 0x1c30, 0x0005, 0x0031, 0x0010, 0x0000,\r
++      0x0015, 0x0033, 0x0000, 0xb009, 0x001b, 0x82da, 0x0010, 0xb0fe,\r
++      0x001b, 0x62de, 0x0000, 0x1aff, 0x0000, 0xff1c, 0x0000, 0x1c30,\r
++      0x0005, 0x0031, 0x0000, 0x0019, 0x0015, 0x0033, 0x0000, 0xb009,\r
++      0x000b, 0x82e4, 0x0001, 0xb0c8, 0x0010, 0x000f, 0x0000, 0xff1f,\r
++      0x0001, 0xbf80, 0x0010, 0xff1d, 0x0010, 0xc030, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0000, 0xb009, 0x000b, 0x82ee, 0x0010, 0xb0fe,\r
++      0x000b, 0x62f4, 0x0005, 0x00ce, 0x0010, 0x0006, 0x0013, 0x0801,\r
++      0x0000, 0xb01b, 0x0017, 0x4000, 0x0010, 0x79b0, 0x0000, 0xd0ff,\r
++      0x0012, 0xff40, 0x001b, 0x1039, 0x0015, 0x00d1, 0x0010, 0x0101,\r
++      0x0003, 0x92fc, 0x0005, 0x0079, 0x0000, 0x0002, 0x0003, 0x92ff,\r
++      0x0015, 0x00d1, 0x0000, 0x0100, 0x0010, 0x13fe, 0x0003, 0x6334,\r
++      0x0012, 0xb04e, 0x001b, 0x1350, 0x0012, 0x784a, 0x0003, 0x1356,\r
++      0x0000, 0x75ff, 0x0011, 0xffc8, 0x0010, 0x1800, 0x001b, 0x1356,\r
++      0x0001, 0x0fe8, 0x0000, 0x0001, 0x001b, 0x1318, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0011, 0x1388, 0x0000, 0x000e, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0000, 0x8f0a, 0x000b, 0x8316, 0x0013, 0x035c,\r
++      0x0001, 0x0fe8, 0x0000, 0x0002, 0x000b, 0x1323, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0005, 0x0031, 0x0000, 0x001a, 0x0015, 0x0033,\r
++      0x0010, 0xc00a, 0x001b, 0x8321, 0x0013, 0x035c, 0x0001, 0x0fe8,\r
++      0x0010, 0x0000, 0x0013, 0x132a, 0x0005, 0x00ce, 0x0000, 0x0007,\r
++      0x0010, 0x0fcf, 0x0013, 0x07fb, 0x0000, 0x13b8, 0x0002, 0x1045,\r
++      0x0013, 0x1332, 0x0012, 0x103f, 0x0002, 0xff27, 0x0004, 0x0378,\r
++      0x0004, 0x083d, 0x0003, 0x0334, 0x0012, 0x103f, 0x0004, 0x0378,\r
++      0x0015, 0x000f, 0x0010, 0x0000, 0x0002, 0x3944, 0x0013, 0x133d,\r
++      0x0015, 0x0039, 0x0000, 0x5040, 0x0015, 0x00b8, 0x0000, 0x0008,\r
++      0x0004, 0x083d, 0x0015, 0x0030, 0x0000, 0x0400, 0x0001, 0xbd88,\r
++      0x0010, 0x000c, 0x0000, 0xff31, 0x0015, 0x0033, 0x0010, 0xc00a,\r
++      0x001b, 0x8344, 0x0010, 0xc014, 0x0000, 0xc013, 0x0000, 0xc010,\r
++      0x0002, 0x3a47, 0x0013, 0x134f, 0x0015, 0x003a, 0x0000, 0x8000,\r
++      0x0015, 0x003a, 0x0010, 0x4040, 0x0014, 0x0806, 0x0013, 0x0039,\r
++      0x0015, 0x00b8, 0x0010, 0x0003, 0x0015, 0x003a, 0x0010, 0x0202,\r
++      0x0004, 0x083d, 0x0013, 0x0348, 0x0015, 0x00b8, 0x0000, 0x0002,\r
++      0x0015, 0x003a, 0x0010, 0x0202, 0x0004, 0x083d, 0x0013, 0x0348,\r
++      0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x1388, 0x0010, 0x0003,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009, 0x001b, 0x8363,\r
++      0x0011, 0x1388, 0x0010, 0x0003, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0010, 0xc00a, 0x001b, 0x8369, 0x0010, 0xb0fe, 0x0003, 0x636e,\r
++      0x0000, 0xb012, 0x0003, 0x0370, 0x0010, 0xc012, 0x0010, 0xc011,\r
++      0x0012, 0x104b, 0x0013, 0x132a, 0x0002, 0x103b, 0x0010, 0xff03,\r
++      0x0005, 0x0002, 0x0010, 0x0000, 0x0000, 0xc00d, 0x0003, 0x032a,\r
++      0x0000, 0xffb0, 0x0010, 0xc3b1, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0001, 0xb888, 0x0010, 0x0011, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0000, 0xb012, 0x001b, 0x8381, 0x0017, 0x4000, 0x0012, 0x3a43,\r
++      0x0013, 0x1392, 0x0015, 0x003a, 0x0000, 0x0800, 0x0010, 0x0db0,\r
++      0x0003, 0x6392, 0x0000, 0x0bff, 0x0001, 0xb0e0, 0x0003, 0x13bb,\r
++      0x0010, 0x09ff, 0x0001, 0xb0e0, 0x0003, 0x139f, 0x0010, 0x05ff,\r
++      0x0001, 0xb0e0, 0x0003, 0x1396, 0x0000, 0xc00e, 0x0000, 0x05fe,\r
++      0x0013, 0x639c, 0x0000, 0x050d, 0x0005, 0x0002, 0x0000, 0x0004,\r
++      0x0014, 0x041d, 0x0002, 0x3a47, 0x001b, 0x141c, 0x0003, 0x03b6,\r
++      0x0000, 0x09fe, 0x0013, 0x63b8, 0x0000, 0x090d, 0x0005, 0x0002,\r
++      0x0000, 0x0001, 0x0014, 0x0436, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0011, 0x0d88, 0x0000, 0x0004, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0000, 0xba09, 0x001b, 0x83a9, 0x0011, 0x03c8, 0x0010, 0x000f,\r
++      0x0000, 0xffb6, 0x0011, 0xb6e8, 0x0000, 0x0001, 0x0013, 0x14ca,\r
++      0x0011, 0xb6e8, 0x0000, 0x0002, 0x0003, 0x14ec, 0x0011, 0xb6e8,\r
++      0x0010, 0x0003, 0x0003, 0x15d7, 0x0014, 0x0806, 0x0013, 0x041c,\r
++      0x0010, 0x0bfe, 0x0013, 0x641c, 0x0010, 0x0b0d, 0x0005, 0x0002,\r
++      0x0000, 0x0002, 0x0014, 0x0436, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0011, 0x0d88, 0x0000, 0x0004, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0000, 0xba09, 0x001b, 0x83c5, 0x0000, 0xb930, 0x0005, 0x0031,\r
++      0x0010, 0x0021, 0x0015, 0x0033, 0x0000, 0xb009, 0x000b, 0x83cb,\r
++      0x0001, 0xb0a8, 0x0000, 0x199a, 0x0003, 0x23d1, 0x0005, 0x00b0,\r
++      0x0000, 0x1999, 0x0012, 0xb050, 0x0000, 0xffb0, 0x0002, 0xff50,\r
++      0x0002, 0xff50, 0x0001, 0xb080, 0x0000, 0xffb0, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0011, 0x0d88, 0x0010, 0x0006, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0000, 0xb00a, 0x001b, 0x83de, 0x0000, 0xb930,\r
++      0x0005, 0x0031, 0x0000, 0x0019, 0x0015, 0x0033, 0x0000, 0xb009,\r
++      0x001b, 0x83e4, 0x0001, 0xb0c8, 0x0010, 0x00ff, 0x0001, 0xffe8,\r
++      0x0010, 0x0048, 0x001b, 0x1445, 0x0005, 0x0002, 0x0010, 0x0006,\r
++      0x0012, 0x0c10, 0x0010, 0xff0c, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0011, 0x0d88, 0x0010, 0x0003, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0010, 0xb109, 0x001b, 0x83f5, 0x0000, 0xb10b, 0x000b, 0x63f9,\r
++      0x0010, 0xb10a, 0x0015, 0x0033, 0x0010, 0xc00a, 0x000b, 0x83fb,\r
++      0x0002, 0x032b, 0x0010, 0xff03, 0x0011, 0x0d88, 0x0010, 0x0011,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0010, 0x030a, 0x000b, 0x8403,\r
++      0x0000, 0x11fe, 0x000b, 0x6408, 0x0000, 0x0d12, 0x0003, 0x0411,\r
++      0x0015, 0x0030, 0x0000, 0x0400, 0x0001, 0x1188, 0x0010, 0x0003,\r
++      0x0000, 0xff31, 0x0010, 0x0db0, 0x0015, 0x0033, 0x0000, 0xb00a,\r
++      0x001b, 0x8410, 0x0000, 0x0d11, 0x0013, 0x041c, 0x0000, 0x05fe,\r
++      0x0013, 0x641c, 0x0005, 0x0002, 0x0000, 0x0004, 0x0000, 0x050d,\r
++      0x0014, 0x041d, 0x0002, 0x3a47, 0x001b, 0x141c, 0x0014, 0x0806,\r
++      0x0003, 0x0049, 0x0001, 0xc7c8, 0x0010, 0x0028, 0x000b, 0x1435,\r
++      0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x0d88, 0x0010, 0x000a,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009, 0x000b, 0x8427,\r
++      0x0002, 0xb04f, 0x0013, 0x1435, 0x0001, 0x0fe8, 0x0010, 0x0000,\r
++      0x0013, 0x1433, 0x0001, 0x0fe8, 0x0000, 0x0002, 0x0013, 0x1433,\r
++      0x0015, 0x003a, 0x0010, 0x8080, 0x0003, 0x0435, 0x0015, 0x003a,\r
++      0x0010, 0x4040, 0x0017, 0x4000, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0011, 0x0d88, 0x0010, 0x0011, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0010, 0x0309, 0x001b, 0x843d, 0x0011, 0x0d88, 0x0010, 0x0005,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb909, 0x001b, 0x8443,\r
++      0x0017, 0x4000, 0x0005, 0x00b6, 0x0010, 0x0600, 0x0014, 0x0607,\r
++      0x0014, 0x04b4, 0x0000, 0xb05a, 0x0000, 0xb15b, 0x0005, 0x0054,\r
++      0x0010, 0x0829, 0x0010, 0x0d58, 0x0015, 0x0059, 0x0010, 0xffff,\r
++      0x0000, 0xb930, 0x0005, 0x0031, 0x0010, 0x001e, 0x0015, 0x0033,\r
++      0x0000, 0xb009, 0x000b, 0x8455, 0x0000, 0xb05c, 0x0005, 0x0031,\r
++      0x0000, 0x001f, 0x0015, 0x0033, 0x0000, 0xb009, 0x001b, 0x845b,\r
++      0x0001, 0xb0c8, 0x0010, 0x000f, 0x001b, 0x1462, 0x0015, 0x00ff,\r
++      0x0010, 0x0005, 0x0003, 0x046a, 0x0002, 0xb040, 0x0003, 0x1467,\r
++      0x0015, 0x00ff, 0x0000, 0x0004, 0x0003, 0x046a, 0x0001, 0xb0c8,\r
++      0x0010, 0x0006, 0x0002, 0xff60, 0x0010, 0xffb2, 0x0011, 0x0d88,\r
++      0x0000, 0x0019, 0x0000, 0xff31, 0x0015, 0x0033, 0x0010, 0xb109,\r
++      0x001b, 0x8470, 0x0012, 0xb170, 0x0011, 0xffc8, 0x0010, 0xff00,\r
++      0x0011, 0xb2d0, 0x0010, 0xff60, 0x0002, 0xb045, 0x0013, 0x147b,\r
++      0x0015, 0x00b2, 0x0000, 0x0002, 0x0013, 0x0485, 0x0002, 0xb046,\r
++      0x0003, 0x1480, 0x0015, 0x00b2, 0x0000, 0x0001, 0x0013, 0x0485,\r
++      0x0015, 0x00b2, 0x0010, 0x0000, 0x0000, 0xc0b0, 0x0010, 0xc0b1,\r
++      0x0003, 0x048b, 0x0000, 0xb930, 0x0005, 0x0031, 0x0010, 0x002b,\r
++      0x0015, 0x0033, 0x0000, 0xb011, 0x001b, 0x848a, 0x0010, 0xb16a,\r
++      0x0010, 0xb06b, 0x0000, 0xb261, 0x0015, 0x0044, 0x0010, 0x0018,\r
++      0x0005, 0x0031, 0x0000, 0x0023, 0x0015, 0x0033, 0x0000, 0x6241,\r
++      0x001b, 0x8494, 0x0003, 0x9495, 0x0015, 0x00a0, 0x0000, 0x0020,\r
++      0x0012, 0xd041, 0x001b, 0x1498, 0x0015, 0x00d1, 0x0010, 0x0202,\r
++      0x0003, 0x949c, 0x0000, 0x75ff, 0x0011, 0xffc8, 0x0000, 0x1804,\r
++      0x0001, 0xffd8, 0x0010, 0x0009, 0x0013, 0x94a2, 0x0000, 0xff75,\r
++      0x0013, 0x94a4, 0x0015, 0x00d1, 0x0000, 0x0200, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0001, 0xbd88, 0x0000, 0x0008, 0x0000, 0xff31,\r
++      0x0015, 0x00b1, 0x0010, 0x07d0, 0x0005, 0x00b0, 0x0010, 0x0009,\r
++      0x0015, 0x0033, 0x0000, 0xb012, 0x000b, 0x84b2, 0x0013, 0x041c,\r
++      0x0000, 0xba30, 0x0005, 0x0031, 0x0010, 0x0035, 0x0015, 0x0033,\r
++      0x0000, 0xb009, 0x001b, 0x84b9, 0x0002, 0xb040, 0x0003, 0x14c7,\r
++      0x0000, 0xb7b0, 0x0000, 0xb9b1, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0011, 0x0d88, 0x0000, 0x0013, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0000, 0xb012, 0x000b, 0x84c5, 0x0003, 0x04c9, 0x0010, 0xc0b1,\r
++      0x0000, 0xc0b0, 0x0017, 0x4000, 0x0005, 0x00b6, 0x0010, 0x0500,\r
++      0x0014, 0x0607, 0x0005, 0x0054, 0x0010, 0x0889, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0011, 0x0d88, 0x0000, 0x0002, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0000, 0xb009, 0x001b, 0x84d6, 0x0010, 0xb058,\r
++      0x0000, 0x0d59, 0x0000, 0xb930, 0x0005, 0x0031, 0x0000, 0x0023,\r
++      0x0015, 0x0033, 0x0000, 0xb011, 0x000b, 0x84de, 0x0010, 0xb15c,\r
++      0x0010, 0xb05d, 0x0005, 0x0031, 0x0010, 0x002b, 0x0015, 0x0033,\r
++      0x0000, 0xb011, 0x001b, 0x84e5, 0x0000, 0xb15e, 0x0000, 0xb05f,\r
++      0x0003, 0x94e8, 0x0015, 0x00a0, 0x0010, 0x000c, 0x0003, 0x05ec,\r
++      0x0005, 0x00b6, 0x0000, 0x0700, 0x0014, 0x0607, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0011, 0x0d88, 0x0010, 0x0009, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0010, 0xb709, 0x000b, 0x84f6, 0x0012, 0xb749,\r
++      0x0013, 0x14fc, 0x0005, 0x0054, 0x0010, 0x0889, 0x0013, 0x04fe,\r
++      0x0005, 0x0054, 0x0010, 0x0898, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0011, 0x0d88, 0x0000, 0x0002, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0000, 0xb009, 0x001b, 0x8505, 0x0010, 0xb058, 0x0000, 0x0d59,\r
++      0x0001, 0xb9a8, 0x0010, 0x00f0, 0x000b, 0x252a, 0x0011, 0x0d88,\r
++      0x0010, 0x0005, 0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009,\r
++      0x000b, 0x8510, 0x0001, 0xb0c8, 0x0000, 0xf700, 0x0000, 0xffb0,\r
++      0x0011, 0xb0e8, 0x0000, 0xf100, 0x0003, 0x1571, 0x0011, 0xb0e8,\r
++      0x0000, 0xf200, 0x0013, 0x1576, 0x0011, 0xb0e8, 0x0010, 0xf300,\r
++      0x0003, 0x1599, 0x0011, 0xb0e8, 0x0000, 0xf400, 0x0013, 0x159e,\r
++      0x0011, 0xb0e8, 0x0010, 0xf500, 0x0003, 0x1571, 0x0011, 0xb0e8,\r
++      0x0010, 0xf600, 0x0003, 0x15af, 0x0005, 0x00ce, 0x0010, 0x0009,\r
++      0x0000, 0xb0cf, 0x0013, 0x07fb, 0x0000, 0xb930, 0x0005, 0x0031,\r
++      0x0000, 0x0025, 0x0015, 0x0033, 0x0000, 0xb039, 0x000b, 0x852f,\r
++      0x0012, 0xb749, 0x0013, 0x1534, 0x0002, 0xb52c, 0x0000, 0xffb5,\r
++      0x0000, 0xb162, 0x0000, 0xb063, 0x0005, 0x0031, 0x0000, 0x001f,\r
++      0x0015, 0x0033, 0x0000, 0xb309, 0x001b, 0x853a, 0x0001, 0xb3c8,\r
++      0x0010, 0x0003, 0x0003, 0x1542, 0x0010, 0xffb2, 0x0001, 0xffe8,\r
++      0x0010, 0x0003, 0x001b, 0x1544, 0x0000, 0xc2b7, 0x0003, 0x05cb,\r
++      0x0001, 0xb2e8, 0x0000, 0x0001, 0x0003, 0x154b, 0x0005, 0x00ce,\r
++      0x0010, 0x000a, 0x0010, 0xb2cf, 0x0013, 0x07fb, 0x0010, 0xb465,\r
++      0x0010, 0xb667, 0x0015, 0x00b7, 0x0010, 0x0018, 0x0001, 0xb5c8,\r
++      0x0010, 0x0300, 0x0013, 0x1570, 0x0012, 0xb548, 0x0013, 0x1557,\r
++      0x0000, 0xb6ff, 0x0011, 0xb780, 0x0010, 0xffb7, 0x0002, 0xb549,\r
++      0x0003, 0x155c, 0x0010, 0xb4ff, 0x0011, 0xb780, 0x0010, 0xffb7,\r
++      0x0015, 0x0044, 0x0010, 0x0018, 0x0005, 0x0031, 0x0000, 0x002c,\r
++      0x0015, 0x0033, 0x0000, 0x6841, 0x000b, 0x8562, 0x0015, 0x0044,\r
++      0x0000, 0x0019, 0x0005, 0x0031, 0x0000, 0x0034, 0x0015, 0x0033,\r
++      0x0000, 0x5029, 0x001b, 0x8569, 0x0015, 0x0044, 0x0000, 0x0008,\r
++      0x0011, 0xb7c8, 0x0010, 0x0003, 0x0013, 0x1570, 0x0010, 0xff55,\r
++      0x0003, 0x05cb, 0x0005, 0x00b5, 0x0000, 0x0008, 0x0015, 0x00b7,\r
++      0x0010, 0x0018, 0x0003, 0x05cb, 0x0011, 0x0d88, 0x0000, 0x000b,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb011, 0x001b, 0x857b,\r
++      0x0010, 0xb1ff, 0x0001, 0xb0d0, 0x0003, 0x1584, 0x0005, 0x00b5,\r
++      0x0010, 0x0b02, 0x0010, 0xb062, 0x0010, 0xb163, 0x0003, 0x0586,\r
++      0x0005, 0x00b5, 0x0000, 0x0302, 0x0015, 0x0065, 0x0010, 0x0012,\r
++      0x0005, 0x0067, 0x0000, 0x0008, 0x0015, 0x006c, 0x0000, 0x7000,\r
++      0x0005, 0x006d, 0x0010, 0x0500, 0x0015, 0x006f, 0x0010, 0x000a,\r
++      0x0015, 0x0044, 0x0000, 0x0001, 0x0005, 0x0052, 0x0000, 0x2500,\r
++      0x0015, 0x0044, 0x0000, 0x0008, 0x0015, 0x00b7, 0x0000, 0x0032,\r
++      0x0003, 0x05cb, 0x0005, 0x00b5, 0x0010, 0x0028, 0x0015, 0x00b7,\r
++      0x0010, 0x0018, 0x0003, 0x05cb, 0x0005, 0x00b5, 0x0000, 0x0100,\r
++      0x0005, 0x0067, 0x0000, 0x0008, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0011, 0x0d88, 0x0010, 0x0018, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0000, 0xb009, 0x001b, 0x85a9, 0x0001, 0xb0c8, 0x0010, 0x00ff,\r
++      0x0015, 0x00b7, 0x0000, 0x0020, 0x0003, 0x05cb, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0011, 0x0d88, 0x0010, 0x0005, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0000, 0xb609, 0x000b, 0x85b6, 0x0001, 0xb6c8,\r
++      0x0010, 0xff00, 0x0000, 0xffb0, 0x0015, 0x0033, 0x0000, 0xb00a,\r
++      0x000b, 0x85bc, 0x0001, 0xb6c8, 0x0010, 0x00ff, 0x0012, 0xff10,\r
++      0x001b, 0x15c5, 0x0000, 0xffb5, 0x0015, 0x00b7, 0x0010, 0x0018,\r
++      0x0003, 0x05cb, 0x0010, 0xff63, 0x0005, 0x00b5, 0x0000, 0x0800,\r
++      0x0015, 0x00b7, 0x0010, 0x0018, 0x0003, 0x05cb, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0011, 0x0d88, 0x0010, 0x0009, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0000, 0xb009, 0x001b, 0x85d2, 0x0010, 0xb561,\r
++      0x0013, 0x95d4, 0x0010, 0xb7a0, 0x0003, 0x05ec, 0x0005, 0x00b6,\r
++      0x0010, 0x0300, 0x0014, 0x0607, 0x0005, 0x0054, 0x0010, 0x0819,\r
++      0x0010, 0x0d58, 0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x0d88,\r
++      0x0000, 0x0002, 0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009,\r
++      0x001b, 0x85e4, 0x0000, 0xb059, 0x0003, 0x95e6, 0x0010, 0xc0a0,\r
++      0x0010, 0x71ff, 0x0002, 0xff28, 0x0010, 0xff71, 0x0003, 0x05ec,\r
++      0x0012, 0xd041, 0x000b, 0x15ec, 0x0015, 0x00d1, 0x0010, 0x0202,\r
++      0x0000, 0x75ff, 0x0011, 0xffc8, 0x0000, 0x1804, 0x0001, 0xffd8,\r
++      0x0010, 0x0009, 0x0013, 0x95f5, 0x0000, 0xff75, 0x0003, 0x95f7,\r
++      0x0015, 0x00d1, 0x0000, 0x0200, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0001, 0xbd88, 0x0000, 0x0008, 0x0000, 0xff31, 0x0005, 0x00b0,\r
++      0x0010, 0x0009, 0x0015, 0x00b1, 0x0010, 0x07d0, 0x0015, 0x0033,\r
++      0x0000, 0xb012, 0x001b, 0x8605, 0x0013, 0x041c, 0x0015, 0x0044,\r
++      0x0000, 0x0008, 0x0005, 0x0098, 0x0010, 0x0056, 0x0015, 0x0099,\r
++      0x0000, 0x9575, 0x0004, 0x07c2, 0x0000, 0xb096, 0x0012, 0xb270,\r
++      0x0010, 0xff56, 0x0014, 0x07e4, 0x0010, 0xb052, 0x0010, 0xb153,\r
++      0x0000, 0xb6ff, 0x0011, 0xb2d0, 0x0010, 0xff50, 0x0010, 0xb351,\r
++      0x0017, 0x4000, 0x0015, 0x0030, 0x0000, 0x0400, 0x0001, 0x1288,\r
++      0x0010, 0x0011, 0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0x1009,\r
++      0x000b, 0x8620, 0x0015, 0x000f, 0x0000, 0x0001, 0x0010, 0xc014,\r
++      0x0000, 0x1213, 0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x1388,\r
++      0x0000, 0x0004, 0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xba09,\r
++      0x000b, 0x862c, 0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x1388,\r
++      0x0010, 0x0005, 0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0x1a09,\r
++      0x000b, 0x8634, 0x0012, 0x104b, 0x000b, 0x163d, 0x0000, 0x1a30,\r
++      0x0005, 0x0031, 0x0000, 0x000b, 0x0015, 0x0033, 0x0000, 0x1621,\r
++      0x001b, 0x863c, 0x0010, 0x15fe, 0x000b, 0x665c, 0x0014, 0x0683,\r
++      0x0002, 0x3a42, 0x001b, 0x1682, 0x0001, 0x10c8, 0x0010, 0x000f,\r
++      0x000b, 0x16e5, 0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x1388,\r
++      0x0000, 0x0008, 0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009,\r
++      0x000b, 0x864c, 0x0011, 0xb0e8, 0x0010, 0x0009, 0x0003, 0x1653,\r
++      0x0011, 0xb0e8, 0x0000, 0x0001, 0x001b, 0x1681, 0x0011, 0x1388,\r
++      0x0010, 0x000a, 0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009,\r
++      0x000b, 0x8658, 0x0002, 0xb04f, 0x001b, 0x1678, 0x0013, 0x0681,\r
++      0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x1388, 0x0010, 0x0003,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009, 0x001b, 0x8663,\r
++      0x0015, 0x0033, 0x0010, 0xc00a, 0x001b, 0x8666, 0x0010, 0xb0fe,\r
++      0x0003, 0x666b, 0x0000, 0xb012, 0x0003, 0x066d, 0x0010, 0xc012,\r
++      0x0010, 0xc011, 0x0015, 0x000f, 0x0010, 0x0000, 0x0002, 0x3944,\r
++      0x0013, 0x1676, 0x0015, 0x0039, 0x0000, 0x5040, 0x0015, 0x00b8,\r
++      0x0000, 0x0008, 0x0004, 0x083d, 0x0000, 0xc013, 0x0013, 0x0682,\r
++      0x0010, 0x02fe, 0x0013, 0x667d, 0x0015, 0x003a, 0x0010, 0x2020,\r
++      0x0013, 0x0682, 0x0015, 0x003a, 0x0000, 0x2000, 0x0015, 0x003a,\r
++      0x0010, 0x1010, 0x0004, 0x0829, 0x0013, 0x0055, 0x0013, 0xb683,\r
++      0x0005, 0x002a, 0x0000, 0x0004, 0x0000, 0xba30, 0x0005, 0x0031,\r
++      0x0010, 0x001b, 0x0015, 0x0033, 0x0000, 0xb009, 0x001b, 0x868b,\r
++      0x0000, 0xc02c, 0x0000, 0xb02d, 0x0012, 0x104b, 0x0003, 0x16a6,\r
++      0x0000, 0x1a30, 0x0005, 0x0031, 0x0000, 0x0023, 0x0015, 0x0033,\r
++      0x0000, 0xb129, 0x001b, 0x8695, 0x0000, 0xb120, 0x0010, 0xb221,\r
++      0x0000, 0xb322, 0x0000, 0xb423, 0x0000, 0xb524, 0x0000, 0xc025,\r
++      0x0010, 0xb526, 0x0010, 0xc027, 0x0010, 0xb516, 0x0010, 0xc017,\r
++      0x0000, 0xb518, 0x0000, 0xc019, 0x0010, 0xc028, 0x0000, 0xc029,\r
++      0x0010, 0xc01e, 0x0003, 0x06dc, 0x0012, 0x1044, 0x0013, 0x16d6,\r
++      0x0002, 0x1034, 0x0000, 0xff10, 0x0000, 0x1a30, 0x0005, 0x0031,\r
++      0x0000, 0x0002, 0x0015, 0x0033, 0x0000, 0x1b29, 0x001b, 0x86af,\r
++      0x0000, 0x1c30, 0x0000, 0x1b31, 0x0015, 0x0033, 0x0000, 0xb131,\r
++      0x001b, 0x86b4, 0x0002, 0x1f43, 0x001b, 0x16bb, 0x0010, 0xb3b5,\r
++      0x0000, 0xb4b6, 0x0000, 0xc0b3, 0x0010, 0xc0b4, 0x0000, 0xb120,\r
++      0x0010, 0xb221, 0x0000, 0xb322, 0x0000, 0xb423, 0x0000, 0xb524,\r
++      0x0010, 0xb625, 0x0010, 0xb516, 0x0000, 0xb617, 0x0000, 0x1826,\r
++      0x0000, 0x1927, 0x0000, 0x1a30, 0x0005, 0x0031, 0x0010, 0x000f,\r
++      0x0015, 0x0033, 0x0000, 0xb011, 0x001b, 0x86ca, 0x0000, 0xb028,\r
++      0x0000, 0xb129, 0x0012, 0x1e10, 0x0010, 0xff1e, 0x0003, 0x66dc,\r
++      0x0002, 0x1d00, 0x0010, 0xff1d, 0x0004, 0x028a, 0x0002, 0x3a42,\r
++      0x0013, 0x16dc, 0x0013, 0x06e4, 0x0000, 0x1a30, 0x0005, 0x0031,\r
++      0x0000, 0x0002, 0x0015, 0x0033, 0x0000, 0x1b79, 0x001b, 0x86db,\r
++      0x0013, 0xb6dc, 0x0005, 0x002a, 0x0000, 0x0001, 0x0005, 0x0015,\r
++      0x0000, 0x0001, 0x0000, 0x1efe, 0x0013, 0x66e4, 0x0003, 0x0256,\r
++      0x0017, 0x4000, 0x0000, 0xba30, 0x0005, 0x0031, 0x0010, 0x001b,\r
++      0x0015, 0x0033, 0x0010, 0xb051, 0x000b, 0x86ea, 0x0000, 0xb0a3,\r
++      0x0010, 0xb697, 0x0010, 0xb946, 0x0015, 0x00a5, 0x0000, 0x0010,\r
++      0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x1388, 0x0000, 0x0002,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb509, 0x000b, 0x86f7,\r
++      0x0014, 0x07e4, 0x0004, 0x07d3, 0x0012, 0xb470, 0x0010, 0xffb4,\r
++      0x0010, 0xb48e, 0x0010, 0xb08a, 0x0010, 0xb18b, 0x0012, 0x104d,\r
++      0x0003, 0x1702, 0x0013, 0x072f, 0x0012, 0x104b, 0x0003, 0x1715,\r
++      0x0005, 0x008c, 0x0010, 0x0829, 0x0010, 0xc08d, 0x0001, 0xb2d8,\r
++      0x0010, 0x0600, 0x0010, 0xff88, 0x0010, 0xb389, 0x0000, 0x1390,\r
++      0x0010, 0xb591, 0x0000, 0xc08f, 0x0010, 0x1ab9, 0x0014, 0x04b4,\r
++      0x0013, 0x9710, 0x0010, 0xb092, 0x0010, 0xb193, 0x0013, 0x9713,\r
++      0x0013, 0x072a, 0x0005, 0x008c, 0x0000, 0x0809, 0x0015, 0x008d,\r
++      0x0000, 0x0008, 0x0001, 0xb2d8, 0x0000, 0x0100, 0x0010, 0xff88,\r
++      0x0010, 0xb389, 0x0000, 0x1390, 0x0010, 0xb591, 0x0000, 0xc08f,\r
++      0x0000, 0x1a30, 0x0005, 0x0031, 0x0010, 0x000f, 0x0015, 0x0033,\r
++      0x0000, 0xb011, 0x001b, 0x8725, 0x0013, 0x9726, 0x0000, 0xb192,\r
++      0x0000, 0xb093, 0x0013, 0x9729, 0x0010, 0x19a1, 0x0000, 0x18a2,\r
++      0x0015, 0x00b1, 0x0010, 0x0096, 0x0013, 0x079e, 0x0000, 0xb590,\r
++      0x0010, 0x1391, 0x0001, 0x10c8, 0x0010, 0x000f, 0x0001, 0xffe8,\r
++      0x0010, 0x0005, 0x0013, 0x1756, 0x0001, 0xb2d8, 0x0000, 0x0700,\r
++      0x0010, 0xff88, 0x0010, 0xb389, 0x0015, 0x0030, 0x0000, 0x0400,\r
++      0x0011, 0x1388, 0x0010, 0x0009, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0000, 0xb009, 0x000b, 0x8741, 0x0002, 0xb049, 0x0003, 0x1749,\r
++      0x0005, 0x008c, 0x0010, 0x0889, 0x0015, 0x00b1, 0x0010, 0x0096,\r
++      0x0003, 0x074d, 0x0005, 0x008c, 0x0010, 0x0898, 0x0015, 0x00b1,\r
++      0x0000, 0x0092, 0x0010, 0xc08d, 0x0000, 0xc08f, 0x0013, 0x974f,\r
++      0x0000, 0xc092, 0x0010, 0xc093, 0x0013, 0x9752, 0x0010, 0x19a1,\r
++      0x0000, 0x18a2, 0x0013, 0x079e, 0x0001, 0xb2d8, 0x0000, 0x0100,\r
++      0x0010, 0xff88, 0x0010, 0xb389, 0x0005, 0x008c, 0x0010, 0x0880,\r
++      0x0015, 0x008d, 0x0000, 0x0008, 0x0011, 0x1388, 0x0000, 0x000e,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb009, 0x000b, 0x8763,\r
++      0x0010, 0xb08f, 0x0000, 0xb590, 0x0010, 0x1391, 0x0000, 0x1a30,\r
++      0x0005, 0x0031, 0x0000, 0x000d, 0x0015, 0x0033, 0x0000, 0xb021,\r
++      0x000b, 0x876c, 0x0013, 0x976d, 0x0010, 0xb392, 0x0010, 0xb293,\r
++      0x0013, 0x9770, 0x0000, 0xb1a1, 0x0010, 0xb0a2, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0011, 0x1388, 0x0000, 0x000b, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0010, 0xb211, 0x001b, 0x877a, 0x0000, 0xb3ff,\r
++      0x0001, 0xb080, 0x0000, 0xffb3, 0x000b, 0x2781, 0x0002, 0xb200,\r
++      0x0003, 0x0782, 0x0010, 0xb2ff, 0x0011, 0xb180, 0x0010, 0xffb2,\r
++      0x0011, 0x1388, 0x0000, 0x000b, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0010, 0xb212, 0x001b, 0x8789, 0x0015, 0x00b1, 0x0000, 0x0092,\r
++      0x0002, 0x104c, 0x0013, 0x179c, 0x0011, 0xc2e8, 0x0010, 0x000c,\r
++      0x001b, 0x1794, 0x0015, 0x00ff, 0x0000, 0x0800, 0x0003, 0x079c,\r
++      0x0011, 0xc2e8, 0x0000, 0x0020, 0x000b, 0x179a, 0x0015, 0x00ff,\r
++      0x0010, 0x1800, 0x0003, 0x079c, 0x0015, 0x00ff, 0x0000, 0x1000,\r
++      0x0011, 0xb1d0, 0x0010, 0xffb1, 0x0015, 0x009a, 0x0010, 0x0036,\r
++      0x0005, 0x009b, 0x0000, 0x95d5, 0x0012, 0xd041, 0x001b, 0x17a2,\r
++      0x0015, 0x00d1, 0x0010, 0x0202, 0x0003, 0x97a6, 0x0012, 0x104e,\r
++      0x0003, 0x17ab, 0x0012, 0xb12f, 0x0010, 0xffb1, 0x0000, 0xb175,\r
++      0x0003, 0x97ac, 0x0015, 0x00d1, 0x0000, 0x0200, 0x0001, 0x19c8,\r
++      0x0010, 0xfff0, 0x001b, 0x17b5, 0x0015, 0x00b1, 0x0010, 0x07d0,\r
++      0x0003, 0x07b7, 0x0015, 0x00b1, 0x0000, 0x1b58, 0x0005, 0x00b0,\r
++      0x0010, 0x0009, 0x0015, 0x0030, 0x0000, 0x0400, 0x0001, 0xbd88,\r
++      0x0000, 0x000b, 0x0000, 0xff31, 0x0015, 0x0033, 0x0000, 0xb012,\r
++      0x000b, 0x87c0, 0x0013, 0x0682, 0x0000, 0xba30, 0x0005, 0x0031,\r
++      0x0010, 0x0021, 0x0015, 0x0033, 0x0010, 0xb019, 0x001b, 0x87c7,\r
++      0x0002, 0xb200, 0x0011, 0xffc8, 0x0010, 0x00ff, 0x0010, 0xffb2,\r
++      0x0010, 0xb2b7, 0x0005, 0x0031, 0x0000, 0x0023, 0x0015, 0x0033,\r
++      0x0010, 0xb20a, 0x000b, 0x87d1, 0x0017, 0x4000, 0x0000, 0xba30,\r
++      0x0005, 0x0031, 0x0000, 0x0023, 0x0015, 0x0033, 0x0010, 0xb409,\r
++      0x000b, 0x87d8, 0x0002, 0xb400, 0x0011, 0xffc8, 0x0010, 0x00ff,\r
++      0x0010, 0xffb4, 0x0010, 0xb4b7, 0x0005, 0x0031, 0x0000, 0x0023,\r
++      0x0015, 0x0033, 0x0010, 0xb40a, 0x000b, 0x87e2, 0x0017, 0x4000,\r
++      0x0000, 0xba30, 0x0001, 0xc7c8, 0x0000, 0x0020, 0x000b, 0x17f0,\r
++      0x0005, 0x0031, 0x0010, 0x0028, 0x0015, 0x0033, 0x0010, 0xb209,\r
++      0x001b, 0x87ec, 0x0011, 0xb2c8, 0x0000, 0xff80, 0x0013, 0x17f3,\r
++      0x0010, 0xc4b0, 0x0010, 0xc5b1, 0x0003, 0x07f5, 0x0010, 0xc6b1,\r
++      0x0000, 0xc0b0, 0x0005, 0x0031, 0x0000, 0x0004, 0x0015, 0x0033,\r
++      0x0010, 0xb211, 0x000b, 0x87f9, 0x0017, 0x4000, 0x0015, 0x00b8,\r
++      0x0010, 0x0009, 0x0015, 0x003a, 0x0010, 0x0707, 0x0004, 0x083d,\r
++      0x0013, 0x002d, 0x0015, 0x00b8, 0x0010, 0x0009, 0x0015, 0x003a,\r
++      0x0010, 0x0707, 0x0013, 0x083d, 0x0014, 0x0114, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0011, 0x0d88, 0x0000, 0x0004, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0000, 0xba09, 0x001b, 0x880e, 0x0004, 0x07c2,\r
++      0x0015, 0x0030, 0x0000, 0x0400, 0x0011, 0x0d88, 0x0000, 0x0010,\r
++      0x0000, 0xff31, 0x0015, 0x0033, 0x0010, 0xb20a, 0x000b, 0x8817,\r
++      0x0011, 0x0d88, 0x0010, 0x0011, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0010, 0x0309, 0x000b, 0x881d, 0x0002, 0x0327, 0x0010, 0xffb2,\r
++      0x0011, 0x0d88, 0x0010, 0x0011, 0x0000, 0xff31, 0x0015, 0x0033,\r
++      0x0010, 0xb20a, 0x001b, 0x8825, 0x0015, 0x00b8, 0x0010, 0x0006,\r
++      0x0013, 0x083d, 0x0004, 0x0126, 0x0004, 0x07c2, 0x0015, 0x0030,\r
++      0x0000, 0x0400, 0x0011, 0x1388, 0x0000, 0x0010, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0010, 0xb20a, 0x001b, 0x8832, 0x0012, 0x1027,\r
++      0x0010, 0xffb2, 0x0011, 0x1388, 0x0010, 0x0011, 0x0000, 0xff31,\r
++      0x0015, 0x0033, 0x0010, 0xb20a, 0x000b, 0x883a, 0x0015, 0x00b8,\r
++      0x0000, 0x0007, 0x0003, 0x483d, 0x0000, 0xb838, 0x0017, 0x4000,\r
++      0xa4bc, 0xa221\r
++};\r
++unsigned short xseqipx_code_length01 = 0x1082;\r
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla2200.c linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla2200.c
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla2200.c    2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla2200.c 2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla2300.c linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla2300.c
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla2300.c    2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla2300.c 2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+@@ -22,6 +22,9 @@
+  * command source for 2300 module
+  */
+ #define ISP2300
++#define ISP2322
++#define EXTENDED_IDS
++#define IPX
+ #if !defined(LINUX)
+ #define LINUX
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla2x00.c linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla2x00.c
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla2x00.c    2003-10-28 10:34:18.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla2x00.c 2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * Portions (C) Arjan van de Ven <arjanv@redhat.com> for Red Hat, Inc.
+@@ -44,6 +44,10 @@
+ #error "This driver does not support kernel versions earlier than 2.4.0"
+ #endif
++#if defined(FC_IP_SUPPORT)
++#error "IP support is unsupported and unavailable in this driver release!!!"
++#endif
++
+ /* IP support not available on ISP2100 */
+ #if defined(ISP2100) && defined(FC_IP_SUPPORT)
+ #error "The ISP2100 does not support IP"
+@@ -51,11 +55,6 @@
+ #include "qla_settings.h"
+-#if defined(ISP2300)
+-#include "qla_devtbl.h"
+-#endif
+-
+-
+ static int num_hosts = 0;       /* ioctl related  */
+ static int apiHBAInstance = 0;  /* ioctl related keeps track of API HBA Instance */
+@@ -80,13 +79,12 @@ static unsigned long mem_id[1000];
+ #include <linux/pci.h>
+ #include <linux/proc_fs.h>
+ #include <linux/blk.h>
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+ #include <linux/tqueue.h>
+-#endif
+ #include <linux/interrupt.h>
+ #include <linux/stat.h>
+ #include <linux/slab.h>
+ #include <linux/ctype.h>
++#include <linux/utsname.h>
+ #define  APIDEV        1
+@@ -109,12 +107,9 @@ static unsigned long mem_id[1000];
+ * options would be SIGPWR, I suppose.
+ */
+ #define SHUTDOWN_SIGS (sigmask(SIGHUP))
+-#include "../sd.h"
+-#include "../scsi.h"
+-#include "../hosts.h"
+-#ifdef __VMWARE__
+-#include "vmklinux_dist.h"
+-#endif
++#include "sd.h"
++#include "scsi.h"
++#include "hosts.h"
+ #if defined(FC_IP_SUPPORT)
+ #include <linux/ip.h>
+@@ -130,7 +125,7 @@ static unsigned long mem_id[1000];
+ #include "qla2x00.h"
+-#define UNIQUE_FW_NAME                 /* unique F/W array names */
++#define UNIQUE_FW_NAME                     /* unique F/W array names */
+ #if defined(ISP2100)
+ #include "ql2100_fw.h"                     /* ISP RISC 2100 TP code */
+ #endif
+@@ -141,16 +136,21 @@ static unsigned long mem_id[1000];
+ #include "ql2200_fw.h"                     /* ISP RISC 2200 TP code */
+ #endif
+ #endif
++
+ #if defined(ISP2300)
+-#if defined(FC_IP_SUPPORT)
+-#include "ql2300ip_fw.h"                   /* ISP RISC 2300 IP code */
+-#else
+-#include "ql2300_fw.h"                     /* ISP RISC 2300 TP code */
+-#endif
++#include "ql2300flx_fw.h"                  /* ISP RISC 2300 FLX code */
++#include "ql2322flx_fw.h"                  /* ISP RISC 2300 FLX code */
++#include "ql2300ipx_fw.h"                  /* ISP RISC 2300 IPX code */
++#include "ql2322ipx_fw.h"                  /* ISP RISC 2322 IPX code */
+ #endif
++
+ #include "qla_cfg.h"
++#include "qlfolimits.h"
++
+ #include "qla_gbl.h"
++#include "qla_devtbl.h"
++
+ #if NO_LONG_DELAYS
+ #define  SYS_DELAY(x)         qla2x00_sleep(x)
+@@ -164,13 +164,6 @@ static unsigned long mem_id[1000];
+ #define  UDELAY(x)            udelay(x)
+ #endif
+-/* 
+- * We only use these macros in 64bit_start and not 32bit_start, so
+- * we can assume a 8-byte address (a).
+- */
+-#define pci_dma_hi32(a) ((u32) (0xffffffff & (((u64)(a))>>32)))
+-#define pci_dma_lo32(a) ((u32) (0xffffffff & (((u64)(a)))))
+-
+ #define  CACHE_FLUSH(a) (RD_REG_WORD(a))
+ #define  INVALID_HANDLE    (MAX_OUTSTANDING_COMMANDS+1)
+@@ -226,7 +219,8 @@ del_timer_sync(&(h)->timer); \
+ #define DRIVER_NAME "qla2300"
+ #endif
+-static char qla2x00_version_str[40];
++#define QLA_DRVR_VERSION_LEN  40
++static char qla2x00_version_str[QLA_DRVR_VERSION_LEN];
+ typedef unsigned long paddr32_t;
+ /* proc info string processing */
+@@ -239,7 +233,7 @@ struct info_str {
+ /*
+-*  Qlogic Driver support Function Prototypes.
++*  QLogic Driver support Function Prototypes.
+ */
+ STATIC void copy_mem_info(struct info_str *, char *, int);
+ STATIC int copy_info(struct info_str *, char *, ...);
+@@ -247,14 +241,7 @@ STATIC int copy_info(struct info_str *, 
+ STATIC uint8_t qla2x00_register_with_Linux(scsi_qla_host_t *ha,
+                       uint8_t maxchannels);
+ STATIC int qla2x00_done(scsi_qla_host_t *);
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+-STATIC void qla2x00_select_queue_depth(struct Scsi_Host *, Scsi_Device *);
+-#endif
+-
+-#if defined (CONFIG_SCSIFCHOTSWAP) || defined(CONFIG_GAMAP)
+-static int qla2x00_get_scsi_info_from_wwn (int mode, unsigned long long wwn, int *host, int *channel, int *lun, int *id);
+-static int qla2x00_get_wwn_from_scsi_info (int host, int id, unsigned long long *wwn);
+-#endif /* CONFIG_SCSIFCHOTSWAP || CONFIG_GAMAP */
++static void qla2x00_select_queue_depth(struct Scsi_Host *, Scsi_Device *);
+ STATIC void qla2x00_timer(scsi_qla_host_t *);
+@@ -264,7 +251,6 @@ static void qla2x00_dump_regs(struct Scs
+ #if STOP_ON_ERROR
+ static void qla2x00_panic(char *, struct Scsi_Host *host);
+ #endif
+-static 
+ void qla2x00_print_scsi_cmd(Scsi_Cmnd *cmd);
+ #if 0
+@@ -272,7 +258,7 @@ STATIC void qla2x00_abort_pending_queue(
+ #endif
+ STATIC void qla2x00_mem_free(scsi_qla_host_t *ha);
+-STATIC void qla2x00_do_dpc(void *p);
++void qla2x00_do_dpc(void *p);
+ static inline void qla2x00_callback(scsi_qla_host_t *ha, Scsi_Cmnd *cmd);
+@@ -302,9 +288,6 @@ STATIC uint8_t qla2100_nvram_config(scsi
+ #else
+ STATIC uint8_t qla2x00_nvram_config(scsi_qla_host_t *);
+ #endif
+-STATIC uint8_t qla2x00_get_link_status(scsi_qla_host_t *,
+-              uint8_t, void *, uint16_t *);
+-
+ STATIC uint8_t qla2x00_loop_reset(scsi_qla_host_t *ha);
+ STATIC uint8_t qla2x00_abort_isp(scsi_qla_host_t *);
+ STATIC uint8_t qla2x00_loop_resync(scsi_qla_host_t *);
+@@ -312,8 +295,8 @@ STATIC uint8_t qla2x00_loop_resync(scsi_
+ STATIC void qla2x00_nv_write(scsi_qla_host_t *, uint16_t);
+ STATIC void qla2x00_nv_deselect(scsi_qla_host_t *ha);
+ STATIC void qla2x00_poll(scsi_qla_host_t *);
+-STATIC void qla2x00_init_fc_db(scsi_qla_host_t *);
+ STATIC void qla2x00_init_tgt_map(scsi_qla_host_t *);
++STATIC fc_port_t *qla2x00_alloc_fcport(scsi_qla_host_t *, int);
+ STATIC void qla2x00_reset_adapter(scsi_qla_host_t *);
+ STATIC void qla2x00_enable_lun(scsi_qla_host_t *);
+ STATIC void qla2x00_isp_cmd(scsi_qla_host_t *);
+@@ -342,14 +325,14 @@ STATIC uint8_t qla2x00_configure_hba(scs
+ STATIC void qla2x00_reset_chip(scsi_qla_host_t *ha);
+ STATIC void qla2x00_display_fc_names(scsi_qla_host_t *ha);
+-static void qla2x00_dump_requests(scsi_qla_host_t *ha);
++void qla2x00_dump_requests(scsi_qla_host_t *ha);
+ static void qla2x00_get_properties(scsi_qla_host_t *ha, char *string);
+ STATIC uint8_t qla2x00_find_propname(scsi_qla_host_t *ha,
+               char *propname, char *propstr, char *db, int siz);
+ static int qla2x00_get_prop_16chars(scsi_qla_host_t *ha,
+               char *propname, char *propval, char *cmdline);
+ static char *qla2x00_get_line(char *str, char *line);
+-static void qla2x00_check_fabric_devices(scsi_qla_host_t *ha);
++void qla2x00_check_fabric_devices(scsi_qla_host_t *ha);
+ #if defined(ISP2300)
+ STATIC void qla2x00_blink_led(scsi_qla_host_t *ha);
+ #endif
+@@ -403,13 +386,10 @@ static int  qla2x00_tx_timeout(scsi_qla_
+ #endif        /* if defined(FC_IP_SUPPORT) */
+ static void qla2x00_device_resync(scsi_qla_host_t *);
+-STATIC uint8_t qla2x00_update_fc_database(scsi_qla_host_t *, fcdev_t *,
+-              uint8_t);
+-STATIC uint8_t qla2x00_configure_fabric(scsi_qla_host_t *, uint8_t );
++STATIC uint8_t qla2x00_configure_fabric(scsi_qla_host_t *);
+ static uint8_t qla2x00_find_all_fabric_devs(scsi_qla_host_t *,
+-              sns_cmd_rsp_t *, dma_addr_t, struct new_dev *,
+-              uint16_t *, uint8_t *);
++              sns_cmd_rsp_t *, dma_addr_t, struct list_head *);
+ #if REG_FC4_ENABLED
+ static uint8_t qla2x00_register_fc4(scsi_qla_host_t *, sns_cmd_rsp_t *, dma_addr_t);
+ static uint8_t qla2x00_register_fc4_feature(scsi_qla_host_t *, sns_cmd_rsp_t *, dma_addr_t);
+@@ -418,63 +398,55 @@ static uint8_t qla2x00_register_nn(scsi_
+ static uint8_t qla2x00_register_snn(scsi_qla_host_t *);
+ #endif
+ static uint8_t qla2x00_gnn_ft(scsi_qla_host_t *, sns_cmd_rsp_t *, dma_addr_t,
+-              struct new_dev *, uint32_t);
++    sw_info_t *, uint32_t);
+ static uint8_t qla2x00_gpn_id(scsi_qla_host_t *, sns_cmd_rsp_t *, dma_addr_t,
+-              struct new_dev *);
++    sw_info_t *);
+ static uint8_t qla2x00_gan(scsi_qla_host_t *, sns_cmd_rsp_t *, dma_addr_t,
+-              fcdev_t *);
+-static uint8_t qla2x00_fabric_login(scsi_qla_host_t *, fcdev_t *);
++    fc_port_t *);
++static uint8_t qla2x00_fabric_login(scsi_qla_host_t *, fc_port_t *, uint16_t *);
+ static uint8_t qla2x00_local_device_login(scsi_qla_host_t *, uint16_t);
+ STATIC uint8_t qla2x00_configure_loop(scsi_qla_host_t *);
+-static uint8_t qla2x00_configure_local_loop(scsi_qla_host_t *, uint8_t );
+-static uint8_t qla2x00_configure_fcports( scsi_qla_host_t *ha );
++static uint8_t qla2x00_configure_local_loop(scsi_qla_host_t *);
+ STATIC uint8_t qla2x00_32bit_start_scsi(srb_t *sp);
+-
+ STATIC uint8_t qla2x00_64bit_start_scsi(srb_t *sp);
+ /* Routines for Failover */
+-static os_tgt_t *qla2x00_tgt_alloc(scsi_qla_host_t *ha, uint16_t t);
++os_tgt_t *qla2x00_tgt_alloc(scsi_qla_host_t *ha, uint16_t t);
+ #if APIDEV
+ static int apidev_init(struct Scsi_Host*);
+ static int apidev_cleanup(void);
+ #endif
+-static void qla2x00_tgt_free(scsi_qla_host_t *ha, uint16_t t);
+-static os_lun_t *qla2x00_lun_alloc(scsi_qla_host_t *ha, uint16_t t, uint16_t l);
++void qla2x00_tgt_free(scsi_qla_host_t *ha, uint16_t t);
++os_lun_t *qla2x00_lun_alloc(scsi_qla_host_t *ha, uint16_t t, uint16_t l);
+ static void qla2x00_lun_free(scsi_qla_host_t *ha, uint16_t t, uint16_t l);
+ #if  defined(ISP2300)
+ static inline void
+       qla2x00_process_response_queue_in_zio_mode(scsi_qla_host_t *);
+ #endif
+-static void qla2x00_next(scsi_qla_host_t *vis_ha);
+-static int qla2x00_build_fcport_list(scsi_qla_host_t *ha);
++void qla2x00_next(scsi_qla_host_t *vis_ha);
+ static void qla2x00_config_os(scsi_qla_host_t *ha);
+-static uint16_t qla2x00_fcport_bind(scsi_qla_host_t *ha, fc_port_t *fcport);
+-static int qla2x00_update_fcport(scsi_qla_host_t *ha, fc_port_t *fcport, int);
+-static int qla2x00_lun_discovery(scsi_qla_host_t *ha, fc_port_t *fcport, int);
++static uint16_t qla2x00_fcport_bind(scsi_qla_host_t *, fc_port_t *);
++static os_lun_t *qla2x00_fclun_bind(scsi_qla_host_t *, fc_port_t *, fc_lun_t *);
++static int qla2x00_update_fcport(scsi_qla_host_t *ha, fc_port_t *fcport);
++static int qla2x00_lun_discovery(scsi_qla_host_t *ha, fc_port_t *fcport);
+ static int qla2x00_rpt_lun_discovery(scsi_qla_host_t *ha, fc_port_t *fcport);
+ static void qla2x00_cfg_lun(fc_port_t *fcport, uint16_t lun);
+-
+ STATIC void qla2x00_process_failover(scsi_qla_host_t *ha) ;
+ STATIC int qla2x00_device_reset(scsi_qla_host_t *, fc_port_t *);
+ static inline int qla2x00_is_wwn_zero(uint8_t *wwn);
+-static void qla2x00_get_lun_mask_from_config(scsi_qla_host_t *ha, fc_port_t *port,
++void qla2x00_get_lun_mask_from_config(scsi_qla_host_t *ha, fc_port_t *port,
+                                       uint16_t tgt, uint16_t dev_no);
+-static void 
+-qla2x00_print_q_info(os_lun_t *q);
+-
+-#if QLA2X_PERFORMANCE
+-static void qla2x00_done_tasklet(long p);
+-#endif
++void qla2x00_print_q_info(os_lun_t *q);
+ STATIC void qla2x00_failover_cleanup(srb_t *);
+ void qla2x00_flush_failover_q(scsi_qla_host_t *, os_lun_t *);
+-static void qla2x00_chg_endian(uint8_t buf[], size_t size);
++void qla2x00_chg_endian(uint8_t buf[], size_t size);
+ STATIC uint8_t qla2x00_check_sense(Scsi_Cmnd *cp, os_lun_t *);
+ STATIC uint8_t 
+@@ -488,7 +460,11 @@ qla2x00_suspend_target(scsi_qla_host_t *
+ STATIC uint8_t
+ qla2x00_check_for_devices_online(scsi_qla_host_t *ha);
++int qla2x00_test_active_port( fc_port_t *fcport ); 
++STATIC void qla2x00_probe_for_all_luns(scsi_qla_host_t *ha); 
++void qla2x00_find_all_active_ports(srb_t *sp); 
++int qla2x00_test_active_lun( fc_port_t *fcport, fc_lun_t *fclun );
+ #if DEBUG_QLA2100
+ #if !defined(QL_DEBUG_ROUTINES)
+@@ -510,7 +486,7 @@ STATIC int  mbxtimeout = 0;
+ #endif
+ #if DEBUG_GET_FW_DUMP
+-#if defined(ISP2300)
++#if defined(ISP2300) 
+ STATIC void qla2300_dump_isp(scsi_qla_host_t *ha),
+ #endif
+ qla2x00_dump_word(uint8_t *, uint32_t, uint32_t);
+@@ -520,13 +496,14 @@ STATIC void qla2x00_sleep_done (struct s
+ #endif
+ STATIC void qla2x00_retry_command(scsi_qla_host_t *, srb_t *);
+-STATIC uint8_t qla2x00_allocate_sp_pool( scsi_qla_host_t *ha);
+-STATIC void qla2x00_free_sp_pool(scsi_qla_host_t *ha );
++static inline void qla2x00_add_timer_to_cmd(srb_t *, int);
++uint8_t qla2x00_allocate_sp_pool( scsi_qla_host_t *ha);
++void qla2x00_free_sp_pool(scsi_qla_host_t *ha );
+ STATIC srb_t * qla2x00_get_new_sp (scsi_qla_host_t *ha);
+ STATIC uint8_t qla2x00_check_tgt_status(scsi_qla_host_t *ha, Scsi_Cmnd *cmd);
+ STATIC uint8_t qla2x00_check_port_status(scsi_qla_host_t *ha,
+               fc_port_t *fcport);
+-STATIC void qla2x00_mark_device_lost(scsi_qla_host_t *ha, fc_port_t *fcport);
++STATIC void qla2x00_mark_device_lost(scsi_qla_host_t *, fc_port_t *, int);
+ STATIC void qla2x00_mark_all_devices_lost( scsi_qla_host_t *ha );
+ STATIC inline void qla2x00_delete_from_done_queue(scsi_qla_host_t *, srb_t *); 
+@@ -564,18 +541,12 @@ STATIC uint8_t qla2x00_erase_flash_secto
+               uint32_t addr, uint32_t sec_mask, uint8_t mid);
+ STATIC uint8_t qla2x00_get_flash_manufacturer(scsi_qla_host_t *ha);
+ STATIC uint16_t qla2x00_get_flash_version(scsi_qla_host_t *);
++STATIC uint16_t qla2x00_get_fcode_version(scsi_qla_host_t *, uint32_t);
+ #if defined(NOT_USED_FUNCTION)
+ STATIC uint16_t qla2x00_get_flash_image(scsi_qla_host_t *ha, uint8_t *image);
+ #endif
+ STATIC uint16_t qla2x00_set_flash_image(scsi_qla_host_t *ha, uint8_t *image);
+-#if USE_FLASH_DATABASE
+-STATIC void qla2x00_flash_enable_database(scsi_qla_host_t *);
+-STATIC void qla2x00_flash_disable_database(scsi_qla_host_t *);
+-STATIC uint8_t qla2x00_get_database(scsi_qla_host_t *);
+-STATIC uint8_t qla2x00_save_database(scsi_qla_host_t *);
+-#endif
+-
+ /* Some helper functions */
+ static inline uint32_t qla2x00_normalize_dma_addr(
+               dma_addr_t *e_addr,  uint32_t *e_len,
+@@ -592,8 +563,11 @@ static inline cont_entry_t *qla2x00_prep
+ static inline cont_a64_entry_t *qla2x00_prep_a64_cont_packet(
+               scsi_qla_host_t *ha,
+               uint16_t *req_ring_index, request_t **request_ring_ptr);
++STATIC inline void 
++qla2x00_free_request_resources(scsi_qla_host_t *dest_ha, srb_t *sp);
++ 
+-static inline void qla2x00_config_dma_addressing(scsi_qla_host_t *ha);
++#include "qla_inline.h"
+ /**
+  * qla2x00_normalize_dma_addr() - Normalize an DMA address.
+@@ -659,12 +633,10 @@ qla2x00_normalize_dma_addr(
+       return (normalized);
+ }
+-static int
+-qla2x00_add_initiator_device(scsi_qla_host_t *ha, fcdev_t *device);
+-
++void qla2x00_ioctl_error_recovery(scsi_qla_host_t *); 
+ /* Debug print buffer */
+-static char          debug_buff[LINESIZE*3];
++char          debug_buff[LINESIZE*3];
+ /*
+ * insmod needs to find the variable and make it point to something
+@@ -673,7 +645,7 @@ static char *ql2xdevconf = NULL;
+ static int ql2xdevflag = 0;
+ #if MPIO_SUPPORT
+-static int ql2xretrycount = 30;
++static int ql2xretrycount = 60;
+ #else
+ static int ql2xretrycount = 20;
+ #endif
+@@ -684,13 +656,14 @@ static int ql2xlogintimeout = 20;
+ static int qlport_down_retry = 0;
+ #endif
+ static int ql2xmaxqdepth = 0;
+-static int displayConfig = 0;
++static int displayConfig = 1;                 /* 1- default, 2 - for lunids */
+ static int retry_gnnft         = 10; 
+ static int qfull_retry_count = 16;
+ static int qfull_retry_delay = 2;
+ static int extended_error_logging = 0;                /* 0 = off, 1 = log errors */
++static int ql2xplogiabsentdevice = 0;
+ #if defined(ISP2300)
+-static int ql2xintrdelaytimer = 10;
++static int ql2xintrdelaytimer = 3;
+ #endif
+ /* Enable for failover */
+@@ -700,6 +673,10 @@ static int ql2xfailover = 1;
+ static int ql2xfailover = 0;
+ #endif
++#if defined(ISP2200) || defined(ISP2300)
++static int qlogin_retry_count = 0;
++#endif
++
+ static int ConfigRequired = 0;
+ static int recoveryTime = MAX_RECOVERYTIME;
+ static int failbackTime = MAX_FAILBACKTIME;
+@@ -708,8 +685,8 @@ static int failbackTime = MAX_FAILBACKTI
+ static int Bind = BIND_BY_PORT_NAME;
+ static int ql2xsuspendcount = SUSPEND_COUNT;
++static int ql2xioctltimeout = QLA_PT_CMD_TOV;
+-#if defined(MODULE)
+ static char *ql2xopts = NULL;
+ /* insmod qla2100 ql2xopts=verbose" */
+@@ -785,7 +762,7 @@ MODULE_PARM_DESC(failbackTime,
+ MODULE_PARM(Bind, "i");
+ MODULE_PARM_DESC(Bind,
+               "Target persistent binding method: "
+-              "0 by Portname (default); 1 by PortID; 2 by Nodename. ");
++              "0 by Portname (default); 1 by PortID. ");
+ MODULE_PARM(ql2xsuspendcount,"i");
+ MODULE_PARM_DESC(ql2xsuspendcount,
+@@ -810,8 +787,25 @@ MODULE_PARM_DESC(extended_error_logging,
+               "Option to enable extended error logging, "
+               "Default is 0 - no logging. 1 - log errors.");
++MODULE_PARM(ql2xplogiabsentdevice, "i");
++MODULE_PARM_DESC(ql2xplogiabsentdevice,
++              "Option to enable PLOGI to devices that are not present after "
++              "a Fabric scan.  This is needed for several broken switches."
++              "Default is 0 - no PLOGI. 1 - perfom PLOGI.");
++
++#if defined(ISP2200) || defined(ISP2300)
++MODULE_PARM(qlogin_retry_count,"i");
++MODULE_PARM_DESC(qlogin_retry_count,
++              "Option to modify the login retry count.");
++#endif
++
++MODULE_PARM(ql2xioctltimeout,"i");
++MODULE_PARM_DESC(ql2xioctltimeout,
++              "IOCTL timeout value in seconds for pass-thur commands, "
++              "Default=66");
++
+ MODULE_DESCRIPTION("QLogic Fibre Channel Host Adapter Driver");
+-MODULE_AUTHOR("QLogic Corporation");
++MODULE_AUTHOR(QLOGIC_COMPANY_NAME);
+ #if defined(MODULE_LICENSE)
+        MODULE_LICENSE("GPL");
+ #endif
+@@ -834,8 +828,6 @@ MODULE_PARM_DESC(ql2xuseextopts,
+ static char *ql2x_extopts = NULL;
+-#endif
+-
+ #include "listops.h"
+ #include "qla_fo.cfg"
+@@ -850,6 +842,9 @@ static int qla2x00_lip = 0;
+ /* multi-OS QLOGIC IOCTL definition file */
+ #include "exioct.h"
++#if REG_FDMI_ENABLED
++#include "qla_gs.h"
++#endif
+ #if QLA_SCSI_VENDOR_DIR
+ /* Include routine to set direction for vendor specific commands */
+@@ -887,117 +882,12 @@ static int qla2x00_lip = 0;
+ #include "qla_debug.h"
++uint8_t copyright[48] = "Copyright 1999-2003, QLogic Corporation";
++
+ /****************************************************************************/
+ /*  LINUX -  Loadable Module Functions.                                     */
+ /****************************************************************************/
+-/*****************************************/
+-/*   ISP Boards supported by this driver */
+-/*****************************************/
+-#define QLA2X00_VENDOR_ID   0x1077
+-#define QLA2100_DEVICE_ID   0x2100
+-#define QLA2200_DEVICE_ID   0x2200
+-#define QLA2200A_DEVICE_ID  0x2200A
+-#define QLA2300_DEVICE_ID   0x2300
+-#define QLA2312_DEVICE_ID   0x2312
+-#define QLA2200A_RISC_ROM_VER  4
+-#define FPM_2300            6
+-#define FPM_2310            7
+-
+-#if defined(ISP2100)
+-#define NUM_OF_ISP_DEVICES  2
+-static struct pci_device_id qla2100_pci_tbl[] =
+-{
+-      {QLA2X00_VENDOR_ID, QLA2100_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID,},
+-      {0,}
+-};
+-MODULE_DEVICE_TABLE(pci, qla2100_pci_tbl);
+-#endif
+-#if defined(ISP2200)
+-#define NUM_OF_ISP_DEVICES  2
+-static struct pci_device_id qla2200_pci_tbl[] =
+-{
+-      {QLA2X00_VENDOR_ID, QLA2200_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID,},
+-      {0,}
+-};
+-MODULE_DEVICE_TABLE(pci, qla2200_pci_tbl);
+-#endif
+-#if defined(ISP2300)
+-#define NUM_OF_ISP_DEVICES  3
+-static struct pci_device_id qla2300_pci_tbl[] =
+-{
+-      {QLA2X00_VENDOR_ID, QLA2300_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID,},
+-      {QLA2X00_VENDOR_ID, QLA2312_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID,},
+-      {0,}
+-};
+-MODULE_DEVICE_TABLE(pci, qla2300_pci_tbl);
+-#endif
+-
+-typedef struct _qlaboards
+-{
+-        unsigned char   bdName[9];       /* Board ID String             */
+-        unsigned long   device_id;       /* Device ID                   */
+-        int   numPorts;                  /* number of loops on adapter  */
+-        unsigned short   *fwcode;        /* pointer to FW array         */
+-        unsigned short   *fwlen;         /* number of words in array    */
+-        unsigned short   *fwstart;       /* start address for F/W       */
+-        unsigned char   *fwver;          /* Ptr to F/W version array    */
+-}
+-qla_boards_t;
+-
+-/*
+- * NOTE: Check the Product ID of the Chip during chip diagnostics
+- *       whenever support for new ISP is added. 
+- */
+-static struct _qlaboards   QLBoardTbl_fc[NUM_OF_ISP_DEVICES] =
+-{
+-      /* Name ,  Board PCI Device ID,         Number of ports */
+-#if defined(ISP2300)
+-      {"QLA2312 ", QLA2312_DEVICE_ID,           MAX_BUSES,
+-#if defined(FC_IP_SUPPORT)
+-              &fw2300ip_code01[0], &fw2300ip_length01,
+-              &fw2300ip_addr01, &fw2300ip_version_str[0]
+-      },
+-#else
+-              &fw2300tp_code01[0], &fw2300tp_length01,
+-              &fw2300tp_addr01, &fw2300tp_version_str[0]
+-      },
+-#endif
+-      {"QLA2300 ", QLA2300_DEVICE_ID,           MAX_BUSES,
+-#if defined(FC_IP_SUPPORT)
+-              &fw2300ip_code01[0], &fw2300ip_length01,
+-              &fw2300ip_addr01, &fw2300ip_version_str[0]
+-      },
+-#else
+-              &fw2300tp_code01[0], &fw2300tp_length01,
+-              &fw2300tp_addr01, &fw2300tp_version_str[0]
+-      },
+-#endif
+-#endif
+-
+-#if defined(ISP2200)
+-      {"QLA2200 ", QLA2200_DEVICE_ID,           MAX_BUSES,
+-#if defined(FC_IP_SUPPORT)
+-              &fw2200ip_code01[0], &fw2200ip_length01,
+-              &fw2200ip_addr01, &fw2200ip_version_str[0]
+-      },
+-#else
+-              &fw2200tp_code01[0], &fw2200tp_length01,
+-              &fw2200tp_addr01, &fw2200tp_version_str[0]
+-      },
+-#endif
+-#endif
+-
+-#if defined(ISP2100)
+-      {"QLA2100 ", QLA2100_DEVICE_ID,           MAX_BUSES,
+-              &fw2100tp_code01[0], &fw2100tp_length01,
+-              &fw2100tp_addr01, &fw2100tp_version_str[0]
+-      },
+-#endif
+-
+-      {"        ",                 0,           0}
+-};
+-
+ /*
+ * Stat info for all adpaters
+ */
+@@ -1009,10 +899,6 @@ static struct _qla2100stats  {
+         unsigned long   loop_resync;
+         unsigned long   outarray_full;
+         unsigned long   retry_q_cnt;
+-#ifdef PERF_MONITORING
+-        unsigned long   highmem_io;
+-#endif
+-        scsi_qla_host_t *irqhba;
+ }
+ qla2x00_stats;
+@@ -1056,26 +942,40 @@ STATIC int qla2x00_retryq_dmp = 0;      
+ #include <scsi/scsi_ioctl.h>
+ #include <asm/uaccess.h>
++static inline void qla2x00_config_dma_addressing(scsi_qla_host_t *ha);
++/**
++ * qla2x00_config_dma_addressing() - Configure OS DMA addressing method.
++ * @ha: HA context
++ *
++ * At exit, the @ha's flags.enable_64bit_addressing set to indicated
++ * supported addressing method.
++ */
++static inline void
++qla2x00_config_dma_addressing(scsi_qla_host_t *ha)
++{
++      /* Assume 32bit DMA address */
++      ha->flags.enable_64bit_addressing = 0;
++
++      if (sizeof(dma_addr_t) > 4) {
++              /* Update our PCI device dma_mask for full 64 bits */
++              if (pci_set_dma_mask(ha->pdev, 0xffffffffffffffffULL) == 0) {
++                      ha->flags.enable_64bit_addressing = 1;
++              } else {
++                      printk("qla2x00: Failed to set 64 bit PCI mask; using "
++                          "32 bit mask.\n");
++                      pci_set_dma_mask(ha->pdev, 0xffffffff);
++              }
++      } else {
++              pci_set_dma_mask(ha->pdev, 0xffffffff);
++      }
+-#define MAX_LOCAL_LOOP_IDS    127
+-static uint8_t alpa_table[MAX_LOCAL_LOOP_IDS] = {
+-      0xEF, 0xE8, 0xE4, 0xE2, 0xE1, 0xE0, 0xDC, 0xDA,
+-      0xD9, 0xD6, 0xD5, 0xD4, 0xD3, 0xD2, 0xD1, 0xCE,
+-      0xCD, 0xCC, 0xCB, 0xCA, 0xC9, 0xC7, 0xC6, 0xC5,
+-      0xC3, 0xBC, 0xBA, 0xB9, 0xB6, 0xB5, 0xB4, 0xB3,
+-      0xB2, 0xB1, 0xAE, 0xAD, 0xAC, 0xAB, 0xAA, 0xA9,
+-      0xA7, 0xA6, 0xA5, 0xA3, 0x9F, 0x9E, 0x9D, 0x9B,
+-      0x98, 0x97, 0x90, 0x8F, 0x88, 0x84, 0x82, 0x81,
+-      0x80, 0x7C, 0x7A, 0x79, 0x76, 0x75, 0x74, 0x73,
+-      0x72, 0x71, 0x6E, 0x6D, 0x6C, 0x6B, 0x6A, 0x69,
+-      0x67, 0x66, 0x65, 0x63, 0x5C, 0x5A, 0x59, 0x56,
+-      0x55, 0x54, 0x53, 0x52, 0x51, 0x4E, 0x4D, 0x4C,
+-      0x4B, 0x4A, 0x49, 0x47, 0x46, 0x45, 0x43, 0x3C,
+-      0x3A, 0x39, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31,
+-      0x2E, 0x2D, 0x2C, 0x2B, 0x2A, 0x29, 0x27, 0x26,
+-      0x25, 0x23, 0x1F, 0x1E, 0x1D, 0x1B, 0x18, 0x17,
+-      0x10, 0x0F, 0x08, 0x04, 0x02, 0x01, 0x00
+-};
++      printk(KERN_INFO
++          "scsi(%ld): %d Bit PCI Addressing Enabled.\n", ha->host_no,
++          (ha->flags.enable_64bit_addressing ? 64 : 32));
++      DEBUG2(printk(KERN_INFO
++          "scsi(%ld): Scatter/Gather entries= %d\n", ha->host_no,
++          ha->host->sg_tablesize));
++}
+ /*************************************************************************
+ *   qla2x00_set_info
+@@ -1085,13 +985,12 @@ static uint8_t alpa_table[MAX_LOCAL_LOOP
+ *
+ * Returns:
+ *************************************************************************/
+-static int
++int
+ qla2x00_set_info(char *buffer, int length, scsi_qla_host_t *ha)
+ {
+-      
+-
+-      if (length < 13 || strncmp("scsi-qla", buffer, 7))
++      if (length < 13 || strncmp("scsi-qla", buffer, 8))
+               goto out;
++
+       /*
+        * Usage: echo "scsi-qlascan " > /proc/scsi/<driver-name>/<adapter-id>
+        *
+@@ -1105,10 +1004,19 @@ qla2x00_set_info(char *buffer, int lengt
+        * Scan for all luns on all ports. 
+        */
+       if (!strncmp("scan", buffer + 8, 4)) {
+-                      printk("scsi-qla%ld: Scheduling SCAN for new luns.... \n",ha->host_no);
+-                      printk(KERN_INFO "scsi-qla%ld: Scheduling SCAN for new luns.... \n",ha->host_no);
+-                      set_bit(PORT_SCAN_NEEDED, &ha->dpc_flags);
++              printk("scsi-qla%ld: Scheduling SCAN for new luns.... \n",
++                  ha->host_no);
++              printk(KERN_INFO
++                  "scsi-qla%ld: Scheduling SCAN for new luns.... \n",
++                  ha->host_no);
++              set_bit(PORT_SCAN_NEEDED, &ha->dpc_flags);
++      } else if (!strncmp("lip", buffer + 8, 3)) {
++              printk("scsi-qla%ld: Scheduling LIP.... \n", ha->host_no);
++              printk(KERN_INFO
++                  "scsi-qla%ld: Scheduling LIP.... \n", ha->host_no);
++              set_bit(LOOP_RESET_NEEDED, &ha->dpc_flags);
+       }
++
+ out:
+       /* return (-ENOSYS); */  /* Currently this is a no-op */
+       return (length);  /* Currently this is a no-op */
+@@ -1187,7 +1095,7 @@ copy_info(struct info_str *info, char *f
+ *         < 0:  error. errno value.
+ *         >= 0: sizeof data returned.
+ *************************************************************************/
+-static int
++int
+ qla2x00_proc_info(char *buffer, char **start, off_t offset,
+                 int length, int hostno, int inout)
+ {
+@@ -1204,6 +1112,11 @@ qla2x00_proc_info(char *buffer, char **s
+       struct list_head *list, *temp;
+       unsigned long   cpu_flags;
+       uint8_t         *loop_state;
++      fc_port_t       *fcport;
++      os_tgt_t        *tq;
++#if defined(ISP2300)
++      struct qla2x00_special_options special_options;
++#endif
+ #if REQ_TRACE
+@@ -1340,12 +1253,6 @@ qla2x00_proc_info(char *buffer, char **s
+           ha->qthreads, ha->retry_q_cnt,
+           ha->done_q_cnt, ha->scsi_retry_q_cnt);
+-#ifdef PERF_MONITORING
+-      copy_info(&info,
+-          "Number of highmem_io = %ld\n",
+-          qla2x00_stats.highmem_io);
+-#endif
+-
+       if (ha->flags.failover_enabled) {
+               copy_info(&info,
+                   "Number of reqs in failover_q= %d\n",
+@@ -1354,17 +1261,17 @@ qla2x00_proc_info(char *buffer, char **s
+       flags = (unsigned long *) &ha->flags;
+-      if (ha->loop_state == LOOP_DOWN) {
++      if (atomic_read(&ha->loop_state) == LOOP_DOWN) {
+               loop_state = "DOWN";
+-      } else if (ha->loop_state == LOOP_UP) {
++      } else if (atomic_read(&ha->loop_state) == LOOP_UP) {
+               loop_state = "UP";
+-      } else if (ha->loop_state == LOOP_READY) {
++      } else if (atomic_read(&ha->loop_state) == LOOP_READY) {
+               loop_state = "READY";
+-      } else if (ha->loop_state == LOOP_TIMEOUT) {
++      } else if (atomic_read(&ha->loop_state) == LOOP_TIMEOUT) {
+               loop_state = "TIMEOUT";
+-      } else if (ha->loop_state == LOOP_UPDATE) {
++      } else if (atomic_read(&ha->loop_state) == LOOP_UPDATE) {
+               loop_state = "UPDATE";
+-      } else if (ha->loop_state == LOOP_DEAD) {
++      } else if (atomic_read(&ha->loop_state) == LOOP_DEAD) {
+               loop_state = "DEAD";
+       } else {
+               loop_state = "UNKNOWN";
+@@ -1393,6 +1300,34 @@ qla2x00_proc_info(char *buffer, char **s
+           "Commands retried with dropped frame(s) = %d\n",
+           ha->dropped_frame_error_cnt);
++#if defined(ISP2300)
++      *((uint16_t *) &special_options) =
++          le16_to_cpu(*((uint16_t *) &ha->init_cb->special_options));
++
++      copy_info(&info,
++          "Configured characteristic impedence: %d ohms\n",
++          special_options.enable_50_ohm_termination ? 50 : 75);
++
++      switch (special_options.data_rate) {
++      case 0:
++              loop_state = "1 Gb/sec";
++              break;
++
++      case 1:
++              loop_state = "2 Gb/sec";
++              break;
++
++      case 2:
++              loop_state = "1-2 Gb/sec auto-negotiate";
++              break;
++
++      default:
++              loop_state = "unknown";
++              break;
++      }
++      copy_info(&info, "Configured data rate: %s\n", loop_state);
++#endif
++
+       copy_info(&info, "\n");
+ #if REQ_TRACE
+@@ -1491,52 +1426,43 @@ qla2x00_proc_info(char *buffer, char **s
+           ha->init_cb->port_name[7]);
+       /* Print out device port names */
+-      for (i = 0; i < MAX_FIBRE_DEVICES; i++) {
+-              if (ha->fc_db[i].loop_id == PORT_UNUSED) {
+-                      continue;
+-              }
++      if (ha->flags.failover_enabled) {
++              i = 0;
++              list_for_each_entry(fcport, &ha->fcports, list) {
++                      if(fcport->port_type != FCT_TARGET)
++                              continue;
+-              if (ha->flags.failover_enabled) {
+-                      copy_info(&info,
+-                          "scsi-qla%d-port-%d="
+-                          "%02x%02x%02x%02x%02x%02x%02x%02x:"
+-                          "%02x%02x%02x%02x%02x%02x%02x%02x;\n",
+-                          (int)ha->instance, i,
+-                          ha->fc_db[i].name[0],
+-                          ha->fc_db[i].name[1],
+-                          ha->fc_db[i].name[2],
+-                          ha->fc_db[i].name[3],
+-                          ha->fc_db[i].name[4],
+-                          ha->fc_db[i].name[5],
+-                          ha->fc_db[i].name[6],
+-                          ha->fc_db[i].name[7],
+-                          ha->fc_db[i].wwn[0],
+-                          ha->fc_db[i].wwn[1],
+-                          ha->fc_db[i].wwn[2],
+-                          ha->fc_db[i].wwn[3],
+-                          ha->fc_db[i].wwn[4],
+-                          ha->fc_db[i].wwn[5],
+-                          ha->fc_db[i].wwn[6],
+-                          ha->fc_db[i].wwn[7]);
+-              } else {
++                              copy_info(&info,
++                              "scsi-qla%d-port-%d="
++                              "%02x%02x%02x%02x%02x%02x%02x%02x:"
++                              "%02x%02x%02x%02x%02x%02x%02x%02x;\n",
++                              (int)ha->instance, i,
++                              fcport->node_name[0], fcport->node_name[1],
++                              fcport->node_name[2], fcport->node_name[3],
++                              fcport->node_name[4], fcport->node_name[5],
++                              fcport->node_name[6], fcport->node_name[7],
++                              fcport->port_name[0], fcport->port_name[1],
++                              fcport->port_name[2], fcport->port_name[3],
++                              fcport->port_name[4], fcport->port_name[5],
++                              fcport->port_name[6], fcport->port_name[7]); 
++                      i++;
++              }
++      } else {
++              for (t = 0; t < MAX_FIBRE_DEVICES; t++) {
++                      if ((tq = TGT_Q(ha, t)) == NULL)
++                              continue;
+                       copy_info(&info,
+-                          "scsi-qla%d-target-%d="
+-                          "%02x%02x%02x%02x%02x%02x%02x%02x;\n",
+-                          (int)ha->instance, i,
+-                          ha->fc_db[i].wwn[0],
+-                          ha->fc_db[i].wwn[1],
+-                          ha->fc_db[i].wwn[2],
+-                          ha->fc_db[i].wwn[3],
+-                          ha->fc_db[i].wwn[4],
+-                          ha->fc_db[i].wwn[5],
+-                          ha->fc_db[i].wwn[6],
+-                          ha->fc_db[i].wwn[7]);
++                      "scsi-qla%d-target-%d="
++                      "%02x%02x%02x%02x%02x%02x%02x%02x;\n",
++                      (int)ha->instance, t,
++                      tq->port_name[0], tq->port_name[1],
++                      tq->port_name[2], tq->port_name[3],
++                      tq->port_name[4], tq->port_name[5],
++                      tq->port_name[6], tq->port_name[7]);
+               }
+-
+-      } /* 2.25 node/port display to proc */
++      }
+       copy_info(&info, "\nSCSI LUN Information:\n");
+-
+       copy_info(&info, "(Id:Lun)  * - indicates lun is not registered with the OS.\n");
+       /* scan for all equipment stats */
+@@ -1573,13 +1499,6 @@ qla2x00_proc_info(char *buffer, char **s
+                                   (int)up->q_flag);
+                       }
+-#ifdef PERF_MONITORING
+-                      copy_info(&info, 
+-                        " %lx:%lx (act,resp),",
+-                        up->act_time/up->io_cnt,
+-                        up->resp_time/up->io_cnt);
+-#endif
+-
+                       copy_info(&info, 
+                           " %ld:%d:%02x,",
+                           up->fclun->fcport->ha->instance,
+@@ -1650,8 +1569,6 @@ pci_set_dma_mask(struct pci_dev *dev, u6
+ static inline void
+ sp_put(struct scsi_qla_host * ha, srb_t *sp)
+ {
+-        unsigned long flags;
+-
+         if (atomic_read(&sp->ref_count) == 0) {
+               printk(KERN_INFO
+                       "%s(): **** SP->ref_count not zero\n",
+@@ -1665,19 +1582,7 @@ sp_put(struct scsi_qla_host * ha, srb_t 
+                 return;
+         }
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+-        spin_lock_irqsave(&io_request_lock, flags);
+-#else
+-        spin_lock_irqsave(ha->host->host_lock, flags);
+-#endif
+-
+         qla2x00_callback(ha, sp->cmd);
+-
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+-        spin_unlock_irqrestore(&io_request_lock, flags);
+-#else
+-        spin_unlock_irqrestore(ha->host->host_lock, flags);
+-#endif
+ }
+ /**************************************************************************
+@@ -1753,7 +1658,7 @@ __sp_put(struct scsi_qla_host * ha, srb_
+ * None.
+ * Note:Need to add the support for if( sp->state == SRB_FAILOVER_STATE).
+ **************************************************************************/
+-static void
++void
+ qla2x00_cmd_timeout(srb_t *sp)
+ {
+       int t, l;
+@@ -1761,9 +1666,7 @@ qla2x00_cmd_timeout(srb_t *sp)
+       scsi_qla_host_t *vis_ha, *dest_ha;
+       Scsi_Cmnd *cmd;
+       ulong      flags;
+-#if defined(QL_DEBUG_LEVEL_3)
+       ulong      cpu_flags;
+-#endif
+       fc_port_t       *fcport;
+       cmd = sp->cmd;
+@@ -1799,8 +1702,12 @@ qla2x00_cmd_timeout(srb_t *sp)
+                * DID_BUS_BUSY to let the OS  retry this cmd.
+                */
+               if (atomic_read(&fcport->state) == FC_DEVICE_DEAD ||
+-                              ( vis_ha->loop_state == LOOP_DEAD )){
++                  atomic_read(&fcport->ha->loop_state) == LOOP_DEAD) {
+                       cmd->result = DID_NO_CONNECT << 16;
++                      if (atomic_read(&fcport->ha->loop_state) == LOOP_DOWN) 
++                              sp->err_id = SRB_ERR_LOOP;
++                      else
++                              sp->err_id = SRB_ERR_PORT;
+               } else {
+                       cmd->result = DID_BUS_BUSY << 16;
+               }
+@@ -1809,12 +1716,8 @@ qla2x00_cmd_timeout(srb_t *sp)
+       } 
+       spin_unlock_irqrestore(&vis_ha->list_lock, flags);
+       if (processed) {
+-#if QLA2X_PERFORMANCE
+-               tasklet_schedule(&vis_ha->run_qla_task);
+-#else
+                if (vis_ha->dpc_wait && !vis_ha->dpc_active) 
+                        up(vis_ha->dpc_wait);
+-#endif
+                return;
+       }
+@@ -1847,10 +1750,15 @@ qla2x00_cmd_timeout(srb_t *sp)
+               if (dest_ha->flags.failover_enabled) {
+                       cmd->result = DID_BUS_BUSY << 16;
+               } else {
+-                      if ((atomic_read(&fcport->state) == FC_DEVICE_DEAD)  ||
+-                              ( dest_ha->loop_state == LOOP_DEAD )){
++                      if (atomic_read(&fcport->state) == FC_DEVICE_DEAD ||
++                          atomic_read(&dest_ha->loop_state) == LOOP_DEAD) {
+                               qla2x00_extend_timeout(cmd, EXTEND_CMD_TIMEOUT);
+                               cmd->result = DID_NO_CONNECT << 16;
++                              if (atomic_read(&dest_ha->loop_state) ==
++                                  LOOP_DOWN) 
++                                      sp->err_id = SRB_ERR_LOOP;
++                              else
++                                      sp->err_id = SRB_ERR_PORT;
+                       } else {
+                               cmd->result = DID_BUS_BUSY << 16;
+                       }
+@@ -1861,16 +1769,11 @@ qla2x00_cmd_timeout(srb_t *sp)
+       } 
+       spin_unlock_irqrestore(&dest_ha->list_lock, flags);
+       if (processed) {
+-#if QLA2X_PERFORMANCE
+-               tasklet_schedule(&dest_ha->run_qla_task);
+-#else
+                if (dest_ha->dpc_wait && !dest_ha->dpc_active) 
+                        up(dest_ha->dpc_wait);
+-#endif
+                return;
+       }
+-#if defined(QL_DEBUG_LEVEL_3)
+       spin_lock_irqsave(&dest_ha->list_lock, cpu_flags);
+       if (sp->state == SRB_DONE_STATE) {
+               /* IO in done_q  -- leave it */
+@@ -1893,6 +1796,24 @@ qla2x00_cmd_timeout(srb_t *sp)
+                       DEBUG(printk("cmd_timeout: Found in ISP \n");)
++                      if (sp->flags & SRB_TAPE) {
++                              /*
++                               * We cannot allow the midlayer error handler
++                               * to wakeup and begin the abort process.
++                               * Extend the timer so that the firmware can
++                               * properly return the IOCB.
++                               */
++                              DEBUG(printk("cmd_timeout: Extending timeout "
++                                  "of FCP2 tape command!\n"));
++                              qla2x00_extend_timeout(sp->cmd,
++                                  EXTEND_CMD_TIMEOUT);
++                      } else if (sp->flags & SRB_IOCTL) {
++                              dest_ha->ioctl_err_cmd = sp->cmd;
++                              set_bit(IOCTL_ERROR_RECOVERY, &dest_ha->dpc_flags);
++                              if (dest_ha->dpc_wait && !dest_ha->dpc_active) 
++                                      up(dest_ha->dpc_wait);
++                      }
++
+                       sp->state = SRB_ACTIVE_TIMEOUT_STATE;
+                       spin_unlock_irqrestore(&dest_ha->hardware_lock, flags);
+               } else {
+@@ -1917,8 +1838,7 @@ qla2x00_cmd_timeout(srb_t *sp)
+                       "cmd_timeout: LOST command state = 0x%x\n", sp->state);
+       }
+       spin_unlock_irqrestore(&dest_ha->list_lock, cpu_flags);
+-#endif
+-      
++
+       DEBUG3(printk("cmd_timeout: Leaving\n");)
+ }
+@@ -1943,16 +1863,7 @@ qla2x00_add_timer_to_cmd(srb_t *sp, int 
+       sp->timer.expires = jiffies + timeout * HZ;
+       sp->timer.data = (unsigned long) sp;
+       sp->timer.function = (void (*) (unsigned long))qla2x00_cmd_timeout;
+-#ifndef __VMWARE__
+       add_timer(&sp->timer);
+-#else
+-        if (timeout) {
+-           add_timer(&sp->timer);
+-        }
+-        else {
+-           sp->timer.function = NULL;
+-        }
+-#endif
+ }
+ /**************************************************************************
+@@ -1981,7 +1892,7 @@ qla2x00_delete_timer_from_cmd(srb_t *sp 
+ * qla2x00_detect
+ *
+ * Description:
+-*    This routine will probe for Qlogic FC SCSI host adapters.
++*    This routine will probe for QLogic FC SCSI host adapters.
+ *    It returns the number of host adapters of a particular
+ *    type that were found.     It also initialize all data necessary for
+ *    the driver.  It is passed-in the host number, so that it
+@@ -1993,7 +1904,7 @@ qla2x00_delete_timer_from_cmd(srb_t *sp 
+ * Returns:
+ *  num - number of host adapters found.
+ **************************************************************************/
+-static int
++int
+ qla2x00_detect(Scsi_Host_Template *template)
+ {
+       int             ret;
+@@ -2010,17 +1921,7 @@ qla2x00_detect(Scsi_Host_Template *templ
+       ENTER("qla2x00_detect");
+-#ifdef __VMWARE__
+-        if (vmk_check_version(VMKDRIVER_VERSION) != VMK_VERSION_OK) {
+-           return 0;
+-        }
+-        /* In the vmkernel, we do not hold the io_request lock during init,
+-         * so leave it unlocked and do not lock it before returning. */
+-#else
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+       spin_unlock_irq(&io_request_lock);
+-#endif
+-#endif //__VMWARE__
+ #if defined(MODULE)
+       DEBUG3(printk("DEBUG: qla2x00_set_info starts at address = %p\n",
+@@ -2043,12 +1944,12 @@ qla2x00_detect(Scsi_Host_Template *templ
+       /* Increments the usage count of module: qla2[23]00_conf */
+ #if defined(ISP2200)
+-      ql2x_extopts = (char *) inter_module_get_request("qla22XX_conf",
+-                                      "qla2200_conf");
++      ql2x_extopts =
++          (char *) inter_module_get_request("qla22XX_conf", "qla2200_conf");
+ #endif
+ #if defined(ISP2300)
+-      ql2x_extopts = (char *) inter_module_get_request("qla23XX_conf",
+-                                      "qla2300_conf");
++      ql2x_extopts =
++          (char *) inter_module_get_request("qla23XX_conf", "qla2300_conf");
+ #endif
+       DEBUG4(printk("qla2x00_detect: ql2xopts=%p ql2x_extopts=%p "
+@@ -2061,8 +1962,8 @@ qla2x00_detect(Scsi_Host_Template *templ
+               /* Force to use old option. */
+               qla2x00_setup(ql2xopts);
+               printk(KERN_INFO "qla2x00:Loading driver with config data "
+-                  " from /etc/modules.conf. Config Data length=0x%x\n",
+-                  strlen(ql2xopts));
++                  " from /etc/modules.conf. Config Data length=0x%lx\n",
++                  (ulong)strlen(ql2xopts));
+       } else if (ql2x_extopts != NULL && *ql2x_extopts != '\0') {
+               DEBUG4(printk( "qla2x00_detect: using new opt:"
+@@ -2073,8 +1974,8 @@ qla2x00_detect(Scsi_Host_Template *templ
+                       ql2xdevflag++;
+               }
+               printk(KERN_INFO "qla2x00: Loading driver with config data "
+-                  "from config module. Config Data length=0x%x\n",
+-                  strlen(ql2x_extopts));
++                  "from config module. Config Data length=0x%lx\n",
++                  (ulong)strlen(ql2x_extopts));
+       }
+       if (dummy_buffer[0] != 'P')
+@@ -2091,11 +1992,8 @@ qla2x00_detect(Scsi_Host_Template *templ
+       if (!pci_present()) {
+               printk("scsi: PCI not present\n");
+-#ifndef __VMWARE__
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+               spin_lock_irq(&io_request_lock);
+-#endif
+-#endif //__VMWARE__
++
+               return 0;
+       } /* end of !pci_present() */
+@@ -2121,6 +2019,7 @@ qla2x00_detect(Scsi_Host_Template *templ
+       for (i = 0; bdp->device_id != 0 && i < NUM_OF_ISP_DEVICES;
+               i++, bdp++) {
++              pdev = NULL;
+               /* PCI_SUBSYSTEM_IDS supported */
+               while ((pdev = pci_find_subsys(QLA2X00_VENDOR_ID,
+                                               bdp->device_id,
+@@ -2142,25 +2041,6 @@ qla2x00_detect(Scsi_Host_Template *templ
+                       subsystem_vendor = pdev->subsystem_vendor;
+                       subsystem_device = pdev->subsystem_device;
+-                      /* If it's an XXX SubSys Vendor ID adapter, skip it. */
+-                      /*
+-                         if (pdev->subsystem_vendor == PCI_VENDOR_ID_XXX) {
+-                         printk(KERN_WARNING
+-                         "qla2x00: Skip XXX SubSys Vendor ID "
+-                         "Controller\n");
+-                         continue;
+-                         }
+-                       */
+-
+-#ifdef __VMWARE__
+-         /* We do not need to hold any lock when calling the
+-          * functions below in the vmkernel. */
+-#else
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+-                      spin_lock_irq(&io_request_lock);
+-#endif
+-#endif //__VMWARE__
+-
+ #if defined(ISP2100)
+                       template->name = "QLogic Fibre Channel 2100";
+ #endif
+@@ -2170,35 +2050,20 @@ qla2x00_detect(Scsi_Host_Template *templ
+ #if defined(ISP2300)
+                       template->name = "QLogic Fibre Channel 2300";
+ #endif
+-                      if ((host = 
+-                              scsi_register(
+-                                      template,
+-                                      sizeof(scsi_qla_host_t))) == NULL) {
+-
++                      spin_lock_irq(&io_request_lock);
++                      host = scsi_register(template, sizeof(scsi_qla_host_t));
++                      spin_unlock_irq(&io_request_lock);
++                      if (host == NULL) {
+                               printk(KERN_WARNING
+-                                      "qla2x00: couldn't register "
+-                                      "with scsi layer\n");
+-                              return 0;
++                                  "qla2x00: couldn't register with scsi "
++                                  "layer\n");
++                              goto bailout;
+                       }
+                       ha = (scsi_qla_host_t *)host->hostdata;
+-#if defined(CONFIG_VMNIX) && !defined(__VMWARE__)
+-                      host->bus = pdev->bus->number;
+-                      host->function = pdev->devfn;
+-                      host->devid = ha; 
+-#endif
+                       /* Clear our data area */
+                       memset(ha, 0, sizeof(scsi_qla_host_t));
+-#ifdef __VMWARE__
+-                      scsi_register_uinfo(host, pdev->bus->number, pdev->devfn, ha);
+-
+-                      /* Now get and save the adapter pointer... */
+-                      ha->vmk_adapter = host->adapter;
+-                      if (ha->vmk_adapter == NULL) {
+-                        panic("qla : vmkernel adapter structure is NULL\n");
+-                      }
+-#endif
+                       ha->host_no = host->host_no;
+                       ha->host = host;
+@@ -2208,10 +2073,10 @@ qla2x00_detect(Scsi_Host_Template *templ
+                       ret = qla2x00_iospace_config(ha);
+                       if (ret != 0) {
+                               printk(KERN_WARNING
+-                                  "qla2x00: couldn't configure PCI I/O space!\n");
+-
++                                  "qla2x00: couldn't configure PCI I/O "
++                                  "space!\n");
++                              spin_lock_irq(&io_request_lock);
+                               scsi_unregister(host);
+-
+                               spin_unlock_irq(&io_request_lock);
+       
+                               continue;
+@@ -2230,18 +2095,21 @@ qla2x00_detect(Scsi_Host_Template *templ
+                       ha->devnum = i;
+                       if (qla2x00_verbose) {
+                               printk(KERN_INFO
+-                                      "scsi(%d): Found a %s @ bus %d, "
+-                                      "device 0x%x, irq %d, iobase 0x%p\n",
+-                                      host->host_no,
+-                                      bdp->bdName, 
+-                                      ha->pdev->bus->number,
+-                                      PCI_SLOT(ha->pdev->devfn),
+-                                      host->irq, 
+-                                      ha->iobase);
++                                  "scsi(%d): Found a %s @ bus %d, device "
++                                  "0x%x, irq %d, iobase 0x%p\n",
++                                  host->host_no, bdp->bdName,
++                                  ha->pdev->bus->number,
++                                  PCI_SLOT(ha->pdev->devfn), host->irq,
++                                  ha->iobase);
+                       }
+                       spin_lock_init(&ha->hardware_lock);
++#if defined(SH_HAS_HOST_LOCK)
++                      spin_lock_init(&ha->host_lock);
++                      host->host_lock = &ha->host_lock;
++#endif
++
+                       /* 4.23 Initialize /proc/scsi/qla2x00 counters */
+                       ha->actthreads = 0;
+                       ha->qthreads   = 0;
+@@ -2254,9 +2122,10 @@ qla2x00_detect(Scsi_Host_Template *templ
+                       ha->total_bytes = 0;
+                       /* Initialized memory allocation pointers */
+-                      INIT_LIST_HEAD(&ha->fcinitiators);
+                       INIT_LIST_HEAD(&ha->free_queue);
++                      INIT_LIST_HEAD(&ha->fcports);
++
+                       INIT_LIST_HEAD(&ha->done_queue);
+                         INIT_LIST_HEAD(&ha->retry_queue);
+                         INIT_LIST_HEAD(&ha->scsi_retry_queue);
+@@ -2264,42 +2133,22 @@ qla2x00_detect(Scsi_Host_Template *templ
+                         INIT_LIST_HEAD(&ha->pending_queue);
+-                      /*
+-                       * Need to call this before the PCI allocations are
+-                       * done in qla2x00_mem_alloc().
+-                       */
+                       qla2x00_config_dma_addressing(ha);
+-#ifndef __VMWARE__
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+-                      spin_unlock_irq(&io_request_lock);
+-#endif
+-#endif //__VMWARE__
++
+                       if (qla2x00_mem_alloc(ha)) {
+                               printk(KERN_WARNING
+-                                      "scsi(%d): [ERROR] Failed to allocate "
+-                                      "memory for adapter\n",
+-                                      host->host_no);
++                                  "scsi(%d): [ERROR] Failed to allocate "
++                                  "memory for adapter\n", host->host_no);
+                               qla2x00_mem_free(ha);
+-#ifndef __VMWARE__
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
++                              pci_release_regions(ha->pdev);
++
+                               spin_lock_irq(&io_request_lock);
+-#endif
+-#endif //__VMWARE__
+                               scsi_unregister(host);
+-#ifndef __VMWARE__
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+                               spin_unlock_irq(&io_request_lock);
+-#endif
+-#endif //__VMWARE__
++
+                               continue;
+                       }
+-#ifndef __VMWARE__
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+-                      spin_lock_irq(&io_request_lock);
+-#endif
+-#endif //__VMWARE__
+-
+                       ha->prev_topology = 0;
+                       ha->ports = bdp->numPorts;
+@@ -2319,11 +2168,6 @@ qla2x00_detect(Scsi_Host_Template *templ
+                       else
+                               ha->flags.failover_enabled = 0;
+-#if QLA2X_PERFORMANCE
+-                      tasklet_init(&ha->run_qla_task,
+-                                      (void *)qla2x00_done_tasklet,
+-                                      (unsigned long) ha);
+-#endif
+                       /*
+                        * These locks are used to prevent more than one CPU
+@@ -2337,61 +2181,30 @@ qla2x00_detect(Scsi_Host_Template *templ
+                       spin_lock_init(&ha->mbx_q_lock);
+                       spin_lock_init(&ha->list_lock);
+-#ifndef __VMWARE__
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+-                      spin_unlock_irq(&io_request_lock);
+-#endif
+-#endif //__VMWARE__
+-
+                       if (qla2x00_initialize_adapter(ha) &&
+                               !(ha->device_flags & DFLG_NO_CABLE)) {
+                               printk(KERN_WARNING
+-                                      "qla2x00: Failed to "
+-                                      "initialize adapter\n");
++                                  "qla2x00: Failed to initialize adapter\n");
+-                              DEBUG2(printk(KERN_INFO "scsi%ld: Failed to initialize "
+-                                              "adapter - Adapter flags %x.\n",
+-                                              ha->host_no, ha->device_flags);)
++                              DEBUG2(printk(KERN_INFO
++                                  "scsi%ld: Failed to initialize adapter - "
++                                  "Adapter flags %x.\n", ha->host_no,
++                                  ha->device_flags);)
+                               qla2x00_mem_free(ha);
+-#if QLA2X_PERFORMANCE
+-                              tasklet_kill(&ha->run_qla_task);
+-#endif
+-#ifdef __VMWARE__
+-                               /* No need to grab the lock just to call
+-                                * scsi_unregister in the vmkernel.
+-                                */
+-#else
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
++                              pci_release_regions(ha->pdev);
+                               spin_lock_irq(&io_request_lock);
+-#endif
+-#endif //__VMWARE__
+-
+                               scsi_unregister(host);
+-
+-#ifndef __VMWARE__
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+                               spin_unlock_irq(&io_request_lock);
+-#endif
+-#endif //__VMWARE__
++
+                               continue;
+                       }
+                       /*
+                        * Startup the kernel thread for this host adapter
+                        */
+-#ifdef __VMWARE__
+-                      /*
+-                       * Initialize the extensions defined in ha to
+-                       * communicate with the DPC kernel thread.
+-                       */
+-                      ha->should_die = FALSE;
+-                        
+-                      ha->notify_sema = (struct semaphore)__SEMAPHORE_INITIALIZER(ha->notify_sema, 0);
+-                      ha->dpc_notify = &ha->notify_sema;
+-#else
+ #if defined(ISP2100)
+                       ha->dpc_notify = &qla2100_detect_sem;
+ #endif
+@@ -2401,20 +2214,13 @@ qla2x00_detect(Scsi_Host_Template *templ
+ #if defined(ISP2300)
+                       ha->dpc_notify = &qla2300_detect_sem;
+ #endif
+-#endif //__VMWARE__
+-
+                       kernel_thread((int (*)(void *))qla2x00_do_dpc,
+-                                      (void *) ha, 0);
++                          (void *) ha, 0);
+                       /*
+                        * Now wait for the kernel dpc thread to initialize
+                        * and go to sleep.
+                        */
+-#ifdef __VMWARE__
+-                      printk("qla: waiting for kernel_thread\n");
+-                      down(ha->dpc_notify);
+-                      printk("qla: kernel_thread back\n");
+-#else
+ #if defined(ISP2100)
+                       down(&qla2100_detect_sem);
+ #endif
+@@ -2424,56 +2230,29 @@ qla2x00_detect(Scsi_Host_Template *templ
+ #if defined(ISP2300)
+                       down(&qla2300_detect_sem);
+ #endif
+-#endif //__VMWARE__
+                       ha->dpc_notify = NULL;
+                       ha->next = NULL;
+-                      /*  Mark preallocated Loop IDs in use. */
+-                      ha->fabricid[SNS_FL_PORT].in_use = TRUE;
+-                      ha->fabricid[FABRIC_CONTROLLER].in_use = TRUE;
+-                      ha->fabricid[SIMPLE_NAME_SERVER].in_use = TRUE;
+-
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+-                      spin_lock_irq(&io_request_lock);
+-#endif
+                       /* Register our resources with Linux */
+                       if (qla2x00_register_with_Linux(ha, bdp->numPorts-1)) {
+                               printk(KERN_WARNING
+-                                      "scsi%ld: Failed to "
+-                                      "register resources.\n",
+-                                      ha->host_no);
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+-                              spin_unlock_irq(&io_request_lock);
+-#endif
++                                  "scsi%ld: Failed to register resources.\n",
++                                  ha->host_no);
+                               qla2x00_mem_free(ha);
+-#if QLA2X_PERFORMANCE
+-                              tasklet_kill(&ha->run_qla_task);
+-#endif
+-#ifdef __VMWARE__
+-                               /* No need to grab the lock just to call
+-                                * scsi_unregister in the vmkernel.
+-                                */
+-#else
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+-                              spin_lock_irq(&io_request_lock);
+-#endif
+-#endif //__VMWARE__
++                              pci_release_regions(ha->pdev);
++                              spin_lock_irq(&io_request_lock);
+                               scsi_unregister(host);
+-
+-#ifndef __VMWARE__
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+                               spin_unlock_irq(&io_request_lock);
+-#endif
+-#endif //__VMWARE__
++
+                               continue;
+                       }
+                       DEBUG2(printk(KERN_INFO "DEBUG: detect hba %ld at "
+-                                      "address = %p\n",
+-                                      ha->host_no, ha);)
++                          "address = %p - adding to hba list\n", ha->host_no,
++                          ha);)
+                       reg = ha->iobase;
+@@ -2482,14 +2261,15 @@ qla2x00_detect(Scsi_Host_Template *templ
+                       /* Ensure mailbox registers are free. */
+                       spin_lock_irqsave(&ha->hardware_lock, flags);
++
+                       WRT_REG_WORD(&reg->semaphore, 0);
+                       WRT_REG_WORD(&reg->host_cmd, HC_CLR_RISC_INT);
+                       WRT_REG_WORD(&reg->host_cmd, HC_CLR_HOST_INT);
+                       /* Enable proper parity */
+-#if defined(ISP2300)
+-                      if (ha->device_id == QLA2312_DEVICE_ID)
+-                              /* SRAM, Instruction RAM and GP RAM parity */
++#if defined(ISP2300) 
++                      if (check_all_device_ids(ha))       
++                      /* SRAM, Instruction RAM and GP RAM parity */
+                               WRT_REG_WORD(&reg->host_cmd,
+                                   (HC_ENABLE_PARITY + 0x7));
+                       else
+@@ -2500,10 +2280,6 @@ qla2x00_detect(Scsi_Host_Template *templ
+                       spin_unlock_irqrestore(&ha->hardware_lock, flags);
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+-                      spin_unlock_irq(&io_request_lock);
+-#endif
+-
+                       /*
+                        * if failover is enabled read the user configuration
+                        */
+@@ -2513,9 +2289,9 @@ qla2x00_detect(Scsi_Host_Template *templ
+                               else
+                                       mp_config_required = 0;
+-                              DEBUG(printk("qla2x00_detect: qla2x00_cfg_init "
+-                                              "for hba %ld\n",
+-                                              ha->instance);)
++                              DEBUG2(printk("qla2x00_detect: "
++                                  "qla2x00_cfg_init for hba %ld\n",
++                                  ha->instance);)
+                               qla2x00_cfg_init(ha);
+                       }
+@@ -2526,12 +2302,12 @@ qla2x00_detect(Scsi_Host_Template *templ
+                       /* Insert new entry into the list of adapters */
+                       ha->next = NULL;
+-                      if( qla2x00_hostlist == NULL ) {
++                      if (qla2x00_hostlist == NULL) {
+                               qla2x00_hostlist = ha;
+                       } else {
+                               cur_ha = qla2x00_hostlist;
+-                              while( cur_ha->next != NULL )
++                              while (cur_ha->next != NULL)
+                                       cur_ha = cur_ha->next;
+                               cur_ha->next = ha;
+@@ -2543,17 +2319,15 @@ qla2x00_detect(Scsi_Host_Template *templ
+                        * devices to come on-line. We don't want Linux
+                        * scanning before we are ready.
+                        */
+-                      for (wait_switch = jiffies + 
+-                              (ha->loop_reset_delay * HZ);
+-                              /* jiffies < wait_switch */
+-                              time_before(jiffies,wait_switch)  &&
+-                              !(ha->device_flags &
+-                                      (DFLG_NO_CABLE | DFLG_FABRIC_DEVICES))
+-                              && (ha->device_flags & SWITCH_FOUND) ;) {
++                      wait_switch = jiffies + (ha->loop_reset_delay * HZ);
++                      for ( ; time_before(jiffies, wait_switch) &&
++                          !(ha->device_flags & (DFLG_NO_CABLE |
++                              DFLG_FABRIC_DEVICES)) &&
++                          (ha->device_flags & SWITCH_FOUND); ) {
+                               qla2x00_check_fabric_devices(ha);
+-                              set_current_state(TASK_INTERRUPTIBLE);
++                              set_current_state(TASK_UNINTERRUPTIBLE);
+                               schedule_timeout(5);
+                       }
+@@ -2561,6 +2335,7 @@ qla2x00_detect(Scsi_Host_Template *templ
+                       if (displayConfig && (!ha->flags.failover_enabled))
+                               qla2x00_display_fc_names(ha);
++                      printk(KERN_INFO"%s num_hosts=%d\n",__func__,num_hosts);
+                       ha->init_done = 1;
+                       num_hosts++;
+               }
+@@ -2568,26 +2343,24 @@ qla2x00_detect(Scsi_Host_Template *templ
+       /* Decrement the usage count of module: qla2[23]00_conf */
+ #if defined(ISP2200)
+-      if(ql2x_extopts)
++      if (ql2x_extopts)
+                inter_module_put("qla22XX_conf");
+ #endif
+ #if defined(ISP2300)
+-      if(ql2x_extopts)
++      if (ql2x_extopts)
+               inter_module_put("qla23XX_conf");
+ #endif
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
++      if (ql2xfailover) {
++              /* remap any paths on other hbas */
++              qla2x00_cfg_remap(qla2x00_hostlist);
++              if (displayConfig)
++                      qla2x00_cfg_display_devices(displayConfig == 2);
++      }
++
++bailout:
+       spin_lock_irq(&io_request_lock);
+-#endif
+-      if (displayConfig && ha->flags.failover_enabled)
+-              qla2x00_cfg_display_devices();
+-#ifdef __VMWARE__
+-        /* We do not hold the io_request lock when calling init and we
+-         * should not hold it when returning.
+-         */
+-        spin_unlock_irq(&io_request_lock);
+-#endif
+       LEAVE("qla2x00_detect");
+       return num_hosts;
+@@ -2615,16 +2388,8 @@ qla2x00_register_with_Linux(scsi_qla_hos
+       host->can_queue = max_srbs;  /* default value:-MAX_SRBS(4096)  */
+       host->cmd_per_lun = 1;
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+       host->select_queue_depths = qla2x00_select_queue_depth;
+-#endif
+-#if defined (CONFIG_SCSIFCHOTSWAP) || defined(CONFIG_GAMAP)
+-      host->hostt->get_scsi_info_from_wwn = qla2x00_get_scsi_info_from_wwn;
+-      host->hostt->get_wwn_from_scsi_info = qla2x00_get_wwn_from_scsi_info;
+-#endif /* CONFIG_SCSIFCHOTSWAP || CONFIG_GAMAP */
+-
+       host->n_io_port = 0xFF;
+-
+       host->base = 0;
+ #if MEMORY_MAPPED_IO
+       host->base = (unsigned long)ha->mmio_address;
+@@ -2642,31 +2407,12 @@ qla2x00_register_with_Linux(scsi_qla_hos
+       /* set our host ID  (need to do something about our two IDs) */
+       host->this_id = 255;
+-#if defined(CONFIG_MD_MULTIHOST_FC)
+-      {
+-              unsigned long   i;
+-              unsigned long   j;
+-
+-              union {
+-                      __u64   identifier;
+-                      char    wwn[WWN_SIZE];
+-              } foo;
+-
+-              for (i = 0, j = WWN_SIZE-1; i < WWN_SIZE; i++, j--) {
+-                      foo.wwn[i] = ha->init_cb->port_name[j];
+-              }
+-
+-              host->fc_wwn = foo.identifier;
+-      }
+-#endif /* CONFIG_MD_MULTIHOST_FC */
+-
+       /* Register the IRQ with Linux (sharable) */
+       if (request_irq(host->irq, qla2x00_intr_handler,
+-                      SA_INTERRUPT|SA_SHIRQ, DRIVER_NAME, ha)) {
++          SA_INTERRUPT|SA_SHIRQ, DRIVER_NAME, ha)) {
+               printk(KERN_WARNING
+-                      "qla2x00 : Failed to reserve interrupt %d "
+-                      "already in use\n",
+-                      host->irq);
++                  "qla2x00 : Failed to reserve interrupt %d already in use\n",
++                  host->irq);
+               return 1;
+       }
+@@ -2690,7 +2436,7 @@ qla2x00_register_with_Linux(scsi_qla_hos
+ * Returns:
+ *  0 - Always returns good status
+ **************************************************************************/
+-static int
++int
+ qla2x00_release(struct Scsi_Host *host)
+ {
+       scsi_qla_host_t *ha = (scsi_qla_host_t *) host->hostdata;
+@@ -2715,20 +2461,6 @@ qla2x00_release(struct Scsi_Host *host)
+       /* Kill the kernel thread for this host */
+       if (ha->dpc_handler != NULL ) {
+-#ifdef __VMWARE__
+-              extern int vmk_shutting_down(void);
+-              if (vmk_shutting_down()) {
+-                      printk("qla: vmkernel shutting down\n");
+-              } else {
+-                      printk("qla: killing thread and waiting\n");
+-                      ha->should_die = 1;
+-                      ha->notify_sema = (struct semaphore)__SEMAPHORE_INITIALIZER(ha->notify_sema, 0);
+-                      ha->dpc_notify = &ha->notify_sema;
+-                      up(&ha->wait_sema);
+-                      down(ha->dpc_notify);
+-                      printk("qla: back from killing thread\n");
+-              }
+-#else
+ #if defined(ISP2100)
+               ha->dpc_notify = &qla2100_detect_sem;
+@@ -2752,35 +2484,13 @@ qla2x00_release(struct Scsi_Host *host)
+               down(&qla2300_detect_sem);
+ #endif
+-#endif //__VMWARE__
+               ha->dpc_notify = NULL;
+       }
+-#if QLA2X_PERFORMANCE
+-      tasklet_kill(&ha->run_qla_task);
+-#endif
+-
+-#if USE_FLASH_DATABASE
+-      /* Move driver database to flash, if enabled. */
+-      if (ha->flags.enable_flash_db_update &&
+-              ha->flags.updated_fc_db) {
+-
+-              ha->flags.updated_fc_db = FALSE;
+-              qla2x00_save_database(ha);
+-      }
+-#endif
+-
+ #if APIDEV
+       apidev_cleanup();
+ #endif
+-#ifdef __VMWARE__
+-      spin_lock_destroy(&ha->hardware_lock);
+-      spin_lock_destroy(&ha->mbx_bits_lock);
+-      spin_lock_destroy(&ha->mbx_reg_lock);
+-      spin_lock_destroy(&ha->mbx_q_lock);
+-      spin_lock_destroy(&ha->list_lock);
+-#endif
+       qla2x00_mem_free(ha);
+       if (ha->flags.failover_enabled)
+@@ -2821,7 +2531,7 @@ qla2x00_release(struct Scsi_Host *host)
+ * Returns:
+ *     Return a text string describing the driver.
+ **************************************************************************/
+-static const char *
++const char *
+ qla2x00_info(struct Scsi_Host *host)
+ {
+       static char qla2x00_buffer[255];
+@@ -2884,7 +2594,8 @@ qla2x00_get_new_sp(scsi_qla_host_t *ha)
+                               "ref_count not zero.\n");
+               })
+-              sp_get(ha, sp);
++              atomic_set(&sp->ref_count, 1);
++                      
+       }
+       return (sp);
+@@ -2925,12 +2636,12 @@ qla2x00_check_tgt_status(scsi_qla_host_t
+       if (TGT_Q(ha, t) == NULL || 
+               l >= ha->max_luns ||
+               (atomic_read(&fcport->state) == FC_DEVICE_DEAD) ||
+-              ha->loop_state == LOOP_DEAD ||
++              atomic_read(&fcport->ha->loop_state) == LOOP_DEAD ||
+               (!atomic_read(&ha->loop_down_timer) && 
+-              ha->loop_state == LOOP_DOWN)||
++              atomic_read(&ha->loop_state) == LOOP_DOWN)||
+               (test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags)) ||
+               ABORTS_ACTIVE  || 
+-              ha->loop_state != LOOP_READY) {
++              atomic_read(&ha->loop_state) != LOOP_READY) {
+               DEBUG(printk(KERN_INFO
+                               "scsi(%ld:%2d:%2d:%2d): %s connection is "
+@@ -2968,17 +2679,17 @@ qla2x00_check_port_status(scsi_qla_host_
+       }
+       if (atomic_read(&fcport->state) == FC_DEVICE_DEAD ||
+-          ha->loop_state == LOOP_DEAD) {
++          atomic_read(&fcport->ha->loop_state) == LOOP_DEAD) {
+               return (QL_STATUS_ERROR);
+       }
+-      if ((atomic_read(&fcport->state) != FC_ONLINE) || 
+-              (!atomic_read(&ha->loop_down_timer) && 
+-              ha->loop_state == LOOP_DOWN) ||
+-              (test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags)) ||
+-              test_bit(CFG_ACTIVE, &ha->cfg_flags) ||
+-              ABORTS_ACTIVE || 
+-              ha->loop_state != LOOP_READY) {
++      if ((atomic_read(&fcport->state) != FC_ONLINE) ||
++          (!atomic_read(&ha->loop_down_timer) &&
++              atomic_read(&ha->loop_state) == LOOP_DOWN) ||
++          (test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags)) ||
++          test_bit(CFG_ACTIVE, &ha->cfg_flags) ||
++          ABORTS_ACTIVE ||
++          atomic_read(&ha->loop_state) != LOOP_READY) {
+               DEBUG(printk(KERN_INFO
+                               "%s(%ld): connection is down. fcport=%p.\n",
+@@ -2992,6 +2703,20 @@ qla2x00_check_port_status(scsi_qla_host_
+ }
++#if defined(SH_HAS_CAN_QUEUE_MASK) 
++static void update_host_queue_mask(scsi_qla_host_t *ha)
++{
++      unsigned long newmask;
++      if ((max_srbs - ha->srb_cnt) > (REQUEST_ENTRY_CNT/5))
++              newmask = (1 <<  ha->last_irq_cpu);
++      else
++              newmask = ~0;
++              
++      if (ha->host->can_queue_mask != newmask)
++              ha->host->can_queue_mask = newmask;
++}
++#endif
++
+ /**************************************************************************
+ * qla2x00_queuecommand
+ *
+@@ -3011,7 +2736,7 @@ qla2x00_check_port_status(scsi_qla_host_
+ * interrupt handler may call this routine as part of request-completion
+ * handling).
+ **************************************************************************/
+-static int
++int
+ qla2x00_queuecommand(Scsi_Cmnd *cmd, void (*fn)(Scsi_Cmnd *))
+ {
+       fc_port_t       *fcport;
+@@ -3027,14 +2752,15 @@ qla2x00_queuecommand(Scsi_Cmnd *cmd, voi
+ #else
+       u_long          handle;
+ #endif
++      int pendingempty = 1;
+       ENTER(__func__);
+       host = cmd->host;
+       ha = (scsi_qla_host_t *) host->hostdata;
+-
++      
+       cmd->scsi_done = fn;
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
++#if !defined(SH_HAS_HOST_LOCK)
+       spin_unlock(&io_request_lock);
+ #else
+       spin_unlock(ha->host->host_lock);
+@@ -3049,7 +2775,7 @@ qla2x00_queuecommand(Scsi_Cmnd *cmd, voi
+                       "%s(): Couldn't allocate memory for sp - retried.\n",
+                       __func__);
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
++#if !defined(SH_HAS_HOST_LOCK)
+               spin_lock_irq(&io_request_lock);
+ #else
+               spin_lock_irq(ha->host->host_lock);
+@@ -3066,6 +2792,7 @@ qla2x00_queuecommand(Scsi_Cmnd *cmd, voi
+       sp->fo_retry_cnt = 0;
+       sp->iocb_cnt = 0;
+       sp->qfull_retry_count = 0;
++      sp->err_id = 0;
+       /* Generate LU queue on bus, target, LUN */
+       b = SCSI_BUS_32(cmd);
+@@ -3084,8 +2811,9 @@ qla2x00_queuecommand(Scsi_Cmnd *cmd, voi
+               qla2x00_add_timer_to_cmd(sp, (CMD_TIMEOUT(cmd)/HZ));
+       if (l >= ha->max_luns) {
++              sp->err_id = SRB_ERR_PORT;
+               CMD_RESULT(cmd) = DID_NO_CONNECT << 16;
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
++#if !defined(SH_HAS_HOST_LOCK)
+               spin_lock_irq(&io_request_lock);
+ #else
+               spin_lock_irq(ha->host->host_lock);
+@@ -3138,8 +2866,9 @@ qla2x00_queuecommand(Scsi_Cmnd *cmd, voi
+               DEBUG3(printk("scsi(%ld:%2d:%2d): port unavailable\n",
+                               ha->host_no,t,l);)
++              sp->err_id = SRB_ERR_PORT;
+               CMD_RESULT(cmd) = DID_NO_CONNECT << 16;
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
++#if !defined(SH_HAS_HOST_LOCK)
+               spin_lock_irq(&io_request_lock);
+ #else
+               spin_lock_irq(ha->host->host_lock);
+@@ -3150,10 +2879,12 @@ qla2x00_queuecommand(Scsi_Cmnd *cmd, voi
+       /* Only modify the allowed count if the target is a *non* tape device */
+       if ((fcport->flags & FC_TAPE_DEVICE) == 0) {
++              sp->flags &= ~SRB_TAPE;
+               if (cmd->allowed < ql2xretrycount) {
+                       cmd->allowed = ql2xretrycount;
+               }
+-      }
++      } else
++              sp->flags |= SRB_TAPE;
+       DEBUG5(printk("%s(): pid=%ld, opcode=%d, timeout= %d\n",
+                       __func__,
+@@ -3186,20 +2917,35 @@ qla2x00_queuecommand(Scsi_Cmnd *cmd, voi
+        *      Either PORT_DOWN_TIMER OR LINK_DOWN_TIMER Expired.
+        */
+       if (atomic_read(&fcport->state) == FC_DEVICE_DEAD ||
+-              ha->loop_state == LOOP_DEAD ) {
++          atomic_read(&fcport->ha->loop_state) == LOOP_DEAD) {
+               /*
+                * Add the command to the done-queue for later failover
+-               * processing
++               * processing.
+                */
++              if (atomic_read(&ha->loop_state) == LOOP_DOWN) 
++                      sp->err_id = SRB_ERR_LOOP;
++              else
++                      sp->err_id = SRB_ERR_PORT;
+               CMD_RESULT(cmd) = DID_NO_CONNECT << 16;
+               add_to_done_queue(ha, sp);
+-#if QLA2X_PERFORMANCE
+-              tasklet_schedule(&ha->run_qla_task);
+-#else
+               qla2x00_done(ha);
++#if !defined(SH_HAS_HOST_LOCK)
++              spin_lock_irq(&io_request_lock);
++#else
++              spin_lock_irq(ha->host->host_lock);
+ #endif
++              return (0);
++      }
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
++      /* ignore SPINUP commands for MSA1000 */
++      if ((fcport->flags & (FC_MSA_DEVICE|FC_EVA_DEVICE)) &&
++          cmd->cmnd[0] == START_STOP) {
++              CMD_RESULT(cmd) = DID_OK << 16;
++              DEBUG2(printk(KERN_INFO
++                  "%s(): Ignoring SPIN_STOP scsi command...\n ", __func__));
++              add_to_done_queue(ha, sp);
++              qla2x00_done(ha);
++#if !defined(SH_HAS_HOST_LOCK)
+               spin_lock_irq(&io_request_lock);
+ #else
+               spin_lock_irq(ha->host->host_lock);
+@@ -3208,21 +2954,46 @@ qla2x00_queuecommand(Scsi_Cmnd *cmd, voi
+       }
+       /* if target suspended put incoming in retry_q */
+-      if( tq && test_bit(TGT_SUSPENDED, &tq->q_flags) ) {
++      if (tq && test_bit(TGT_SUSPENDED, &tq->q_flags) &&
++          (sp->flags & SRB_TAPE) == 0) {
+               qla2x00_extend_timeout(sp->cmd, ha->qfull_retry_delay << 2);
+               add_to_scsi_retry_queue(ha,sp);
+       } else
+-      add_to_pending_queue(ha, sp);
+-
+-      /* First start cmds for this lun if possible */
+-      qla2x00_next(ha);
+-
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
++              pendingempty = add_to_pending_queue(ha, sp);
++  
++#if defined(ISP2100) || defined(ISP2200)
++      if (ha->flags.online) {
++              unsigned long flags;
++              
++              if (ha->response_ring_ptr->signature != RESPONSE_PROCESSED) {
++                      spin_lock_irqsave(&ha->hardware_lock, flags);   
++                      qla2x00_process_response_queue(ha);
++                      spin_unlock_irqrestore(&ha->hardware_lock, flags);
++              }
++      }
++#endif        
++  
++      /* we submit to the hardware if
++       * 1) we're on the cpu the irq's arrive on or
++       * 2) there are very few io's outstanding.
++       * in all other cases we'll let an irq pick up our IO and submit it
++       * to the controller to improve affinity
++       */
++      if (smp_processor_id() == ha->last_irq_cpu ||  /* condition 1 */
++         (((max_srbs - ha->srb_cnt) < REQUEST_ENTRY_CNT/10) && /* less than 10% outstanding io's */
++         (pendingempty)))
++              qla2x00_next(ha);
++      
++#if !defined(SH_HAS_HOST_LOCK) 
+       spin_lock_irq(&io_request_lock);
+ #else
+       spin_lock_irq(ha->host->host_lock);
+ #endif
++#if defined(SH_HAS_CAN_QUEUE_MASK) 
++      update_host_queue_mask(ha);
++#endif
++
+       LEAVE(__func__);
+       return (0);
+ }
+@@ -3284,16 +3055,16 @@ qla2x00_eh_wait_on_command(scsi_qla_host
+                       break;
+               }
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
++#if !defined(SH_HAS_HOST_LOCK)
+               spin_unlock_irq(&io_request_lock);
+ #else
+               spin_unlock_irq(ha->host->host_lock);
+ #endif
+-              set_current_state(TASK_INTERRUPTIBLE);
++              set_current_state(TASK_UNINTERRUPTIBLE);
+               schedule_timeout(2*HZ);
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
++#if !defined(SH_HAS_HOST_LOCK)
+               spin_lock_irq(&io_request_lock);
+ #else
+               spin_lock_irq(ha->host->host_lock);
+@@ -3336,22 +3107,25 @@ static inline int 
+ qla2x00_wait_for_hba_online(scsi_qla_host_t *ha)
+ {
+       int      return_status ;
++      unsigned long           wait_online = 0;
+       ENTER(__func__);
+-       while((test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags)) ||
++       for (wait_online = jiffies + (MAX_LOOP_TIMEOUT *HZ);
++               ((test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags)) ||
+               test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags) ||
+-              test_bit(ISP_ABORT_RETRY, &ha->dpc_flags)){
++              test_bit(ISP_ABORT_RETRY, &ha->dpc_flags))&&
++              time_before(jiffies,wait_online) ; ){
+-              set_current_state(TASK_INTERRUPTIBLE);
+-              schedule_timeout(3 * HZ);
++              set_current_state(TASK_UNINTERRUPTIBLE);
++              schedule_timeout(HZ);
+       }
+       if(ha->flags.online == TRUE ) 
+               return_status = QL_STATUS_SUCCESS; 
+       else
+               return_status = QL_STATUS_ERROR;/*Adapter is disabled/offline */
+-      DEBUG2(printk(KERN_INFO "%s return_status=%d\n",__func__,return_status);)
++      DEBUG(printk(KERN_INFO "%s return_status=%d\n",__func__,return_status);)
+       LEAVE(__func__);
+       return(return_status);
+@@ -3383,19 +3157,19 @@ qla2x00_wait_for_loop_ready(scsi_qla_hos
+       loop_timeout = jiffies + (MAX_LOOP_TIMEOUT * HZ ); 
+       while (((test_bit(LOOP_RESET_NEEDED, &ha->dpc_flags)) ||
+-              ( !atomic_read(&ha->loop_down_timer) &&
+-               ha->loop_state == LOOP_DOWN )   ||
+-              test_bit(CFG_ACTIVE, &ha->cfg_flags) ||
+-              ha->loop_state != LOOP_READY)) {
++          (!atomic_read(&ha->loop_down_timer) &&
++              atomic_read(&ha->loop_state) == LOOP_DOWN) ||
++          test_bit(CFG_ACTIVE, &ha->cfg_flags) ||
++          atomic_read(&ha->loop_state) != LOOP_READY)) {
+-              set_current_state(TASK_INTERRUPTIBLE);
++              set_current_state(TASK_UNINTERRUPTIBLE);
+               schedule_timeout(3 * HZ);
+               if (time_after_eq(jiffies, loop_timeout)) {
+                       return_status = QL_STATUS_ERROR;
+                       break;
+               }
+       }
+-      DEBUG2(printk(KERN_INFO "%s :return_status=%d\n",__func__,return_status);)
++      DEBUG(printk(KERN_INFO "%s :return_status=%d\n",__func__,return_status);)
+       LEAVE(__func__);
+       return return_status;   
+ }
+@@ -3414,7 +3188,7 @@ qla2x00_wait_for_loop_ready(scsi_qla_hos
+ *
+ * Note:
+ **************************************************************************/
+-static int
++int
+ qla2xxx_eh_abort(Scsi_Cmnd *cmd)
+ {
+       int             i;
+@@ -3503,15 +3277,15 @@ qla2xxx_eh_abort(Scsi_Cmnd *cmd)
+       DEBUG2(qla2x00_print_scsi_cmd(cmd));
+       DEBUG2(qla2x00_print_q_info(q);)
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+-              spin_unlock_irq(&io_request_lock);
++#if !defined(SH_HAS_HOST_LOCK)
++      spin_unlock_irq(&io_request_lock);
+ #else
+-              spin_unlock_irq(ha->host->host_lock);
++      spin_unlock_irq(ha->host->host_lock);
+ #endif
+       /* Blocking call-Does context switching if abort isp is active etc */  
+       if( qla2x00_wait_for_hba_online(ha) != QL_STATUS_SUCCESS){
+               DEBUG2(printk(KERN_INFO "%s failed:board disabled\n",__func__);)
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
++#if !defined(SH_HAS_HOST_LOCK)
+               spin_lock_irq(&io_request_lock);
+ #else
+               spin_lock_irq(ha->host->host_lock);
+@@ -3519,10 +3293,10 @@ qla2xxx_eh_abort(Scsi_Cmnd *cmd)
+               return(FAILED);
+       }
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+-              spin_lock_irq(&io_request_lock);
++#if !defined(SH_HAS_HOST_LOCK) 
++      spin_lock_irq(&io_request_lock);
+ #else
+-              spin_lock_irq(ha->host->host_lock);
++      spin_lock_irq(ha->host->host_lock);
+ #endif
+       /* Search done queue */
+@@ -3694,7 +3468,7 @@ qla2xxx_eh_abort(Scsi_Cmnd *cmd)
+                       sp_get(ha,sp);
+                       spin_unlock_irqrestore(&ha->hardware_lock, flags);
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
++#if !defined(SH_HAS_HOST_LOCK)
+                       spin_unlock(&io_request_lock);
+ #else
+                       spin_unlock(ha->host->host_lock);
+@@ -3712,7 +3486,7 @@ qla2xxx_eh_abort(Scsi_Cmnd *cmd)
+                       }
+                       sp_put(ha,sp);
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
++#if !defined(SH_HAS_HOST_LOCK)
+                       spin_lock_irq(&io_request_lock);
+ #else
+                       spin_lock_irq(ha->host->host_lock);
+@@ -3820,77 +3594,63 @@ qla2x00_eh_wait_for_pending_target_comma
+ *    SUCCESS/FAILURE (defined as macro in scsi.h).
+ *
+ **************************************************************************/
+-static int
++int
+ qla2xxx_eh_device_reset(Scsi_Cmnd *cmd)
+ {
+-      int             return_status = SUCCESS;
++      int             return_status;
+       uint32_t        b, t, l;
+-      srb_t   *sp;
+       scsi_qla_host_t *ha;
++      os_tgt_t        *tq;
+       os_lun_t        *lq;
++      fc_port_t       *fcport_to_reset;
++      srb_t           *rp;
++      unsigned long   flags;
++      struct list_head *list, *temp;
+-#if defined(LOGOUT_AFTER_DEVICE_RESET)
+-      fc_port_t       *fcport;
+-#endif
+-
+-      ENTER(__func__);
++      return_status = FAILED;
+       if (cmd == NULL) {
+               printk(KERN_INFO
+                       "%s(): **** SCSI mid-layer passing in NULL cmd\n",
+                       __func__);
+-              return (FAILED);
+-      }
+-      sp = (srb_t *) CMD_SP(cmd);
+-
+-      /*
+-       * If sp is NULL, command is already returned.
+-       * sp is NULLED just before we call back scsi_done
+-       *
+-       */
+-      if (sp == NULL) {
+-              /* no action - we don't have command */
+-              printk(KERN_INFO "%s: cmd already done sp=%p\n", __func__, sp);
+-              DEBUG(printk("%s: cmd already done sp=%p\n", __func__, sp);)
+-
+-              return (SUCCESS);
+-      }
+-      if (sp) {
+-              DEBUG(printk("%s: refcount %i\n", __func__,
+-                  atomic_read(&sp->ref_count));)
++              return (return_status);
+       }
+-      /* Verify the device exists. */
+-      ha = (scsi_qla_host_t *)cmd->host->hostdata;
+-      if (ha->flags.failover_enabled)
+-              ha = (scsi_qla_host_t *)sp->ha;
+-      else
+-              ha = (scsi_qla_host_t *)cmd->host->hostdata;
+-
+-      ha->eh_start = 0;
+       b = SCSI_BUS_32(cmd);
+       t = SCSI_TCN_32(cmd);
+       l = SCSI_LUN_32(cmd);
+-      if (TGT_Q(ha, t) == NULL) {
++      ha = (scsi_qla_host_t *)cmd->host->hostdata;
++
++      tq = TGT_Q(ha, t);
++      if (tq == NULL) {
+               printk(KERN_INFO
+                       "%s(): **** CMD derives a NULL TGT_Q\n",
+                       __func__);
+-              return (FAILED);
++              return (return_status);
+       }
+       lq = (os_lun_t *)LUN_Q(ha, t, l);
+       if (lq == NULL) {
+               printk(KERN_INFO
+                   "%s(): **** CMD derives a NULL LUN_Q\n", __func__);
+-              return (FAILED);
++              return (return_status);
+       }
++      fcport_to_reset = lq->fclun->fcport;
++
++      /*
++       * If we are coming in from the back-door, stall I/O until
++       * completion
++       */
++      if (!cmd->host->eh_active) {
++              set_bit(TGT_SUSPENDED, &tq->q_flags);
++      }
++
++      ha->eh_start = 0;
+ #if STOP_ON_RESET
+       printk(debug_buff,"Resetting Device= 0x%x\n", (int)cmd);
+-/* WE SHOULD NOT call this function, since it dereferences SP */
+-      //qla2x00_print_scsi_cmd(cmd);
+       qla2x00_panic(__func__, ha->host);
+ #endif
+@@ -3899,21 +3659,33 @@ qla2xxx_eh_device_reset(Scsi_Cmnd *cmd)
+                       "scsi(%ld:%d:%d:%d): DEVICE RESET ISSUED.\n",
+                       ha->host_no, (int)b, (int)t, (int)l);
+-      DEBUG2(printk(KERN_INFO "scsi(%ld): DEVICE_RESET cmd=%p jiffies = 0x%lx, "
+-              "timeout=%x, dpc_flags=%lx, status=%x allowed=%d "
+-              "cmd.state=%x\n",
+-              ha->host_no,
+-              cmd,
+-              jiffies,
+-              CMD_TIMEOUT(cmd)/HZ,
+-              ha->dpc_flags,
+-              cmd->result,
+-              cmd->allowed,
+-              cmd->state);)
+-/* WE SHOULD NOT call this function, since it dereferences SP */
+-      //qla2x00_print_scsi_cmd(cmd);
++      DEBUG2(printk(KERN_INFO
++          "scsi(%ld): DEVICE_RESET cmd=%p jiffies = 0x%lx, timeout=%x, "
++          "dpc_flags=%lx, status=%x allowed=%d cmd.state=%x\n",
++          ha->host_no, cmd, jiffies, CMD_TIMEOUT(cmd)/HZ, ha->dpc_flags,
++          cmd->result, cmd->allowed, cmd->state);)
++
++      /*
++       * Clear commands from the retry queue
++       */
++      spin_lock_irqsave(&ha->list_lock, flags);
++      list_for_each_safe(list, temp, &ha->retry_queue) {
++              rp = list_entry(list, srb_t, list);
++ 
++              if( t != SCSI_TCN_32(rp->cmd) ) 
++                      continue;
++ 
++              DEBUG2(printk(KERN_INFO "qla2xxx_eh_reset: found "
++                  "in retry queue. SP=%p\n", rp);)
++ 
++              __del_from_retry_queue(ha, rp);
++              CMD_RESULT(rp->cmd) = DID_RESET << 16;
++              __add_to_done_queue(ha, rp);
++ 
++      } /* list_for_each_safe() */
++      spin_unlock_irqrestore(&ha->list_lock, flags);
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
++#if !defined(SH_HAS_HOST_LOCK)
+       spin_unlock_irq(&io_request_lock);
+ #else
+       spin_unlock_irq(ha->host->host_lock);
+@@ -3921,66 +3693,79 @@ qla2xxx_eh_device_reset(Scsi_Cmnd *cmd)
+       /* Blocking call-Does context switching if abort isp is active etc */  
+       if (qla2x00_wait_for_hba_online(ha) != QL_STATUS_SUCCESS) {
+               DEBUG2(printk(KERN_INFO "%s failed:board disabled\n",__func__);)
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
++#if !defined(SH_HAS_HOST_LOCK)
+               spin_lock_irq(&io_request_lock);
+ #else
+               spin_lock_irq(ha->host->host_lock);
+ #endif
+-              return (FAILED);
++              goto eh_dev_reset_done;
+       }
+       /* Blocking call-Does context switching if loop is Not Ready */
+       if (qla2x00_wait_for_loop_ready(ha) == QL_STATUS_SUCCESS) {
+               clear_bit(DEVICE_RESET_NEEDED, &ha->dpc_flags);
+-              if (qla2x00_device_reset(ha, lq->fclun->fcport) != 0) {
+-                      return_status = FAILED;
++              if (qla2x00_device_reset(ha, fcport_to_reset) == 0) {
++                      return_status = SUCCESS;
+               }
+ #if defined(LOGOUT_AFTER_DEVICE_RESET)
+               if (return_status == SUCCESS) {
+-                      fcport = lq->fclun->fcport;
+-
+-                      if (fcport->flags & FC_FABRIC_DEVICE) {
++                      if (fcport_to_reset->flags & FC_FABRIC_DEVICE) {
+                               qla2x00_fabric_logout(ha,
+-                                  ha->fc_db[t].loop_id & 0xff);
+-                              ha->fc_db[t].flag |= DEV_RELOGIN;
+-                              qla2x00_mark_device_lost(ha, fcport);
++                                  fcport_to_reset->loop_id);
++                              qla2x00_mark_device_lost(ha, fcport_to_reset,
++                                  1);
+                       }
+               }
+ #endif
+       } else {
+-              return_status = FAILED;
++              DEBUG2(printk(KERN_INFO
++                  "%s failed: loop not ready\n",__func__);)
+       }
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
++#if !defined(SH_HAS_HOST_LOCK)
+       spin_lock_irq(&io_request_lock);
+ #else
+       spin_lock_irq(ha->host->host_lock);
+ #endif
+       if (return_status == FAILED) {
+-              DEBUG3(printk("%s(%ld): reset failed\n",
+-                                      __func__,ha->host_no);)
+-              printk(KERN_INFO "%s(%ld): reset failed\n",
+-                              __func__,ha->host_no);
+-              return (FAILED);
++              DEBUG3(printk("%s(%ld): device reset failed\n",
++                  __func__,ha->host_no);)
++              printk(KERN_INFO "%s(%ld): device reset failed\n",
++                  __func__,ha->host_no);
++
++              goto eh_dev_reset_done;
+       }
+-      /* Waiting for all commands to complete for the device */
+-      if (qla2x00_eh_wait_for_pending_target_commands(ha, t))
+-              return_status = FAILED;
++      /*
++       * If we are coming down the EH path, wait for all commands to
++       * complete for the device.
++       */
++      if (cmd->host->eh_active) {
++              if (qla2x00_eh_wait_for_pending_target_commands(ha, t))
++                      return_status = FAILED;
+-      if (return_status == FAILED) {
+-              DEBUG3(printk("%s(%ld): reset failed\n",
+-                                      __func__,ha->host_no);)
+-              printk(KERN_INFO "%s(%ld): reset failed\n",
+-                              __func__,ha->host_no);
+-              return (FAILED);
++              if (return_status == FAILED) {
++                      DEBUG3(printk("%s(%ld): failed while waiting for "
++                          "commands\n", __func__, ha->host_no);)
++                      printk(KERN_INFO "%s(%ld): failed while waiting for "
++                          "commands\n", __func__, ha->host_no); 
++
++                      goto eh_dev_reset_done;
++              }
+       }
+-      printk(KERN_INFO "%s(%ld):reset success\n", __func__,ha->host_no);
+-      LEAVE(__func__);
++      printk(KERN_INFO
++              "scsi(%ld:%d:%d:%d): DEVICE RESET SUCCEEDED.\n",
++              ha->host_no, (int)b, (int)t, (int)l);
++
++eh_dev_reset_done:
++
++      if (!cmd->host->eh_active) {
++              clear_bit(TGT_SUSPENDED, &tq->q_flags);
++      }
+       return (return_status);
+ }
+@@ -4047,7 +3832,7 @@ qla2x00_eh_wait_for_pending_commands(scs
+ *    SUCCESS/FAILURE (defined as macro in scsi.h).
+ *
+ **************************************************************************/
+-static int
++int
+ qla2xxx_eh_bus_reset(Scsi_Cmnd *cmd)
+ {
+       int        return_status = SUCCESS;
+@@ -4105,15 +3890,15 @@ qla2xxx_eh_bus_reset(Scsi_Cmnd *cmd)
+                       "scsi(%ld:%d:%d:%d): LOOP RESET ISSUED.\n",
+                       ha->host_no, (int)b, (int)t, (int)l);
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+-              spin_unlock_irq(&io_request_lock);
++#if !defined(SH_HAS_HOST_LOCK)
++      spin_unlock_irq(&io_request_lock);
+ #else
+-              spin_unlock_irq(ha->host->host_lock);
++      spin_unlock_irq(ha->host->host_lock);
+ #endif
+       /* Blocking call-Does context switching if abort isp is active etc*/  
+       if( qla2x00_wait_for_hba_online(ha) != QL_STATUS_SUCCESS){
+               DEBUG2(printk(KERN_INFO "%s failed:board disabled\n",__func__);)
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
++#if !defined(SH_HAS_HOST_LOCK)
+               spin_lock_irq(&io_request_lock);
+ #else
+               spin_lock_irq(ha->host->host_lock);
+@@ -4130,7 +3915,7 @@ qla2xxx_eh_bus_reset(Scsi_Cmnd *cmd)
+       } else {
+               return_status = FAILED;
+       }
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
++#if !defined(SH_HAS_HOST_LOCK)
+               spin_lock_irq(&io_request_lock);
+ #else
+               spin_lock_irq(ha->host->host_lock);
+@@ -4184,7 +3969,7 @@ qla2xxx_eh_bus_reset(Scsi_Cmnd *cmd)
+ *
+ * Note:
+ **************************************************************************/
+-static int
++int
+ qla2xxx_eh_host_reset(Scsi_Cmnd *cmd)
+ {
+       int             return_status = SUCCESS;
+@@ -4264,14 +4049,14 @@ qla2xxx_eh_host_reset(Scsi_Cmnd *cmd)
+                       ((scsi_qla_host_t *)cmd->host->hostdata)->host_no,
+                       (int)b, (int)t, (int)l, ha->host_no);)
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+-              spin_unlock_irq(&io_request_lock);
++#if !defined(SH_HAS_HOST_LOCK)
++      spin_unlock_irq(&io_request_lock);
+ #else
+-              spin_unlock_irq(ha->host->host_lock);
++      spin_unlock_irq(ha->host->host_lock);
+ #endif
+       /* Blocking call-Does context switching if abort isp is active etc*/  
+       if( qla2x00_wait_for_hba_online(ha) != QL_STATUS_SUCCESS){
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
++#if !defined(SH_HAS_HOST_LOCK)
+               spin_lock_irq(&io_request_lock);
+ #else
+               spin_lock_irq(ha->host->host_lock);
+@@ -4306,7 +4091,7 @@ qla2xxx_eh_host_reset(Scsi_Cmnd *cmd)
+               clear_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags);
+       }
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
++#if !defined(SH_HAS_HOST_LOCK)
+       spin_lock_irq(&io_request_lock);
+ #else
+       spin_lock_irq(ha->host->host_lock);
+@@ -4349,11 +4134,26 @@ qla2xxx_eh_host_reset(Scsi_Cmnd *cmd)
+ * Description:
+ *   Return the disk geometry for the given SCSI device.
+ **************************************************************************/
+-static int
++int
+ qla2x00_biosparam(Disk *disk, kdev_t dev, int geom[])
+ {
+       int heads, sectors, cylinders;
++      int     ret;
++      struct  buffer_head *bh;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,17)
++      bh = bread(MKDEV(MAJOR(dev), MINOR(dev) & ~0xf), 0, block_size(dev));
++#else
++      bh = bread(MKDEV(MAJOR(dev), MINOR(dev) & ~0xf), 0, 1024);
++#endif
++
++      if (bh) {
++              ret = scsi_partsize(bh, disk->capacity,
++                  &geom[2], &geom[0], &geom[1]);
++              brelse(bh);
++              if (ret != -1)
++                      return (ret);
++      }
+       heads = 64;
+       sectors = 32;
+       cylinders = disk->capacity / (heads * sectors);
+@@ -4378,7 +4178,7 @@ qla2x00_biosparam(Disk *disk, kdev_t dev
+ *
+ * Context: Interrupt
+ **************************************************************************/
+-static void
++void
+ qla2x00_intr_handler(int irq, void *dev_id, struct pt_regs *regs)
+ {
+       unsigned long flags = 0;
+@@ -4398,8 +4198,6 @@ qla2x00_intr_handler(int irq, void *dev_
+               return;
+       }
+-      qla2x00_stats.irqhba = ha;
+-
+       reg = ha->iobase;
+       spin_lock_irqsave(&ha->hardware_lock, flags);
+@@ -4416,6 +4214,8 @@ qla2x00_intr_handler(int irq, void *dev_
+               qla2x00_isr(ha, data, &got_mbx);
+       }
+       spin_unlock_irqrestore(&ha->hardware_lock, flags);
++      qla2x00_next(ha);
++      ha->last_irq_cpu = smp_processor_id();
+       if (test_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags) &&
+               got_mbx && ha->flags.mbox_int) {
+@@ -4449,11 +4249,7 @@ qla2x00_intr_handler(int irq, void *dev_
+       }
+       if (!list_empty(&ha->done_queue))
+-#if QLA2X_PERFORMANCE
+-              tasklet_schedule(&ha->run_qla_task);
+-#else
+               qla2x00_done(ha);
+-#endif
+       /* Wakeup the DPC routine */
+       if ((!ha->flags.mbox_busy &&
+@@ -4465,39 +4261,12 @@ qla2x00_intr_handler(int irq, void *dev_
+               up(ha->dpc_wait);
+       }
+-      LEAVE_INTR("qla2x00_intr_handler");
+-}
+-
+-
+-#if QLA2X_PERFORMANCE
+-/*
+- * qla2x00_done_tasklet
+- *
+- * This is a task to process completion only similar to a
+- * bottom half handler.
+- *
+- *      Input:
+- *      p -- pointer to hba struct
+- *
+- */
+-static void
+-qla2x00_done_tasklet(long p)
+-{
+-      scsi_qla_host_t *ha = (scsi_qla_host_t *) p;
+-
+-      ENTER(__func__);
+-
+-      set_bit(TASKLET_SCHED, &ha->dpc_flags);
+-
+-      if (!list_empty(&ha->done_queue))
+-              qla2x00_done(ha);
+-      
+-      clear_bit(TASKLET_SCHED, &ha->dpc_flags);
+-
+-      LEAVE(__func__);
+-}
++#if defined(SH_HAS_CAN_QUEUE_MASK) 
++      update_host_queue_mask(ha);
+ #endif
++      LEAVE_INTR("qla2x00_intr_handler");
++}
+ /*
+  * qla2x00_retry_command
+@@ -4519,6 +4288,7 @@ qla2x00_retry_command(scsi_qla_host_t *h
+       /* restore original timeout */
+       qla2x00_extend_timeout(sp->cmd, 
+               (CMD_TIMEOUT(sp->cmd)/HZ) - QLA_CMD_TIMER_DELTA);
++      qla2x00_free_request_resources(ha,sp);
+       __add_to_pending_queue( ha, sp);
+ }
+@@ -4535,14 +4305,11 @@ qla2x00_retry_command(scsi_qla_host_t *h
+ * the timer routine detects a event it will one of the task
+ * bits then wake us up.
+ **************************************************************************/
+-static void
++void
+ qla2x00_do_dpc(void *p)
+ {
+-#ifndef __VMWARE__
+       DECLARE_MUTEX_LOCKED(sem);
+-#endif
+-      fcdev_t         dev;
+-      fc_port_t       *fcport;
++      fc_port_t       *fcport = NULL;
+       os_lun_t        *q;
+       os_tgt_t        *tq;
+       scsi_qla_host_t *ha = (scsi_qla_host_t *) p;
+@@ -4553,19 +4320,10 @@ qla2x00_do_dpc(void *p)
+       struct list_head *list, *templist;
+       int     dead_cnt, online_cnt;
+       int     retry_cmds;
++      uint16_t next_loopid;
+       ENTER(__func__);
+-#ifdef __VMWARE__
+-      /*
+-       * We are not a real Linux thread so no need to handle all the
+-       * task setup.
+-       */
+-      printk("qla: DPC init\n");
+-      ha->wait_sema = (struct semaphore)__SEMAPHORE_INITIALIZER(ha->wait_sema, 0);
+-      ha->dpc_wait = &ha->wait_sema;
+-      ha->dpc_handler = (struct task_struct *)1;
+-#else
+ #if defined(MODULE)
+       siginitsetinv(&current->blocked, SHUTDOWN_SIGS);
+ #else
+@@ -4581,8 +4339,6 @@ qla2x00_do_dpc(void *p)
+        * FIXME(dg) this is still a child process of the one that did
+        * the insmod.  This needs to be attached to task[0] instead.
+        */
+-
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,9)
+       /* As mentioned in kernel/sched.c(RA).....
+        * Reparent the calling kernel thread to the init task.
+@@ -4600,7 +4356,6 @@ qla2x00_do_dpc(void *p)
+        */
+       reparent_to_init();
+ #endif
+-#endif
+       /*
+        * Set the name of this process.
+@@ -4611,7 +4366,6 @@ qla2x00_do_dpc(void *p)
+       ha->dpc_handler = current;
+       unlock_kernel();
+-#endif //__VMWARE__
+       /*
+        * Wake up the thread that created us.
+@@ -4630,24 +4384,13 @@ qla2x00_do_dpc(void *p)
+                */
+               DEBUG3(printk("qla2x00: DPC handler sleeping\n");)
+-#ifdef __VMWARE__
+-              down_interruptible(ha->dpc_wait);
+-
+-              if (ha->should_die)
+-                      break;  /* get out */
+-#else
+               down_interruptible(&sem);
+               if (signal_pending(current))
+                       break;   /* get out */
+-#endif //__VMWARE__
+               if (!list_empty(&ha->done_queue))
+-#if QLA2X_PERFORMANCE
+-                      tasklet_schedule(&ha->run_qla_task);
+-#else
+                       qla2x00_done(ha);
+-#endif
+               DEBUG3(printk("qla2x00: DPC handler waking up\n");)
+@@ -4664,7 +4407,7 @@ qla2x00_do_dpc(void *p)
+               /* Process commands in retry queue */
+               if (test_and_clear_bit(PORT_RESTART_NEEDED, &ha->dpc_flags)) {
+-                      DEBUG2(printk(KERN_INFO "%s(%ld): (1) DPC checking retry_q. "
++                      DEBUG3(printk(KERN_INFO "%s(%ld): (1) DPC checking retry_q. "
+                                       "total=%d\n",
+                                       __func__,
+                                       ha->host_no,
+@@ -4687,13 +4430,19 @@ qla2x00_do_dpc(void *p)
+                                       continue;
+                               fcport = q->fclun->fcport;
+-                              if (atomic_read(&fcport->state) == 
+-                                      FC_DEVICE_DEAD ||
+-                                      ( ha->loop_state == LOOP_DEAD )){
++                              if (atomic_read(&fcport->state) ==
++                                  FC_DEVICE_DEAD ||
++                                  atomic_read(&fcport->ha->loop_state)
++                                       == LOOP_DEAD) {
+                                       __del_from_retry_queue(ha, sp);
+                                       CMD_RESULT(sp->cmd) = 
+                                               DID_NO_CONNECT << 16;
++                                      if (atomic_read(&ha->loop_state) ==
++                                          LOOP_DOWN) 
++                                              sp->err_id = SRB_ERR_LOOP;
++                                      else
++                                              sp->err_id = SRB_ERR_PORT;
+                                       CMD_HANDLE(sp->cmd) = 
+                                               (unsigned char *) NULL;
+                                       __add_to_done_queue(ha, sp);
+@@ -4767,7 +4516,7 @@ qla2x00_do_dpc(void *p)
+                                       q->q_state, tq->q_flags);)
+                                       online_cnt++;
+                                       __del_from_scsi_retry_queue(ha, sp);
+-                                      if( test_bit(TGT_UNSUSPENDED, 
++                                      if( test_bit(TGT_RETRY_CMDS, 
+                                               &tq->q_flags) ) {
+                                               qla2x00_retry_command(ha,sp);
+                                               retry_cmds++;
+@@ -4782,8 +4531,8 @@ qla2x00_do_dpc(void *p)
+                               if ((tq = ha->otgt[t]) == NULL)
+                                       continue;
+-                              if( test_bit(TGT_UNSUSPENDED, &tq->q_flags) )
+-                                      clear_bit(TGT_UNSUSPENDED, &tq->q_flags);
++                              if( test_bit(TGT_RETRY_CMDS, &tq->q_flags) )
++                                      clear_bit(TGT_RETRY_CMDS, &tq->q_flags);
+                       }
+                       if( retry_cmds )
+@@ -4859,17 +4608,18 @@ qla2x00_do_dpc(void *p)
+                       /* v2.19.8 Retry each device up to login retry count */
+                       if ((test_and_clear_bit(RELOGIN_NEEDED,
+-                                                      &ha->dpc_flags)) &&
+-                              !test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags) &&
+-                              ha->loop_state != LOOP_DOWN) { /* v2.19.5 */
++                          &ha->dpc_flags)) &&
++                          !test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags) &&
++                          atomic_read(&ha->loop_state) != LOOP_DOWN) {
+                               DEBUG(printk("dpc%ld: qla2x00_port_login\n",
+                                               ha->host_no);)
+-                              for (fcport = ha->fcport;
+-                                      fcport != NULL;
+-                                      fcport = fcport->next) {
+-                                      
++                              next_loopid = 0;
++                              list_for_each_entry(fcport, &ha->fcports, list) {
++                                      if(fcport->port_type != FCT_TARGET)
++                                              continue;
++
+                                       /*
+                                        * If the port is not ONLINE then try
+                                        * to login to it if we haven't run
+@@ -4877,37 +4627,28 @@ qla2x00_do_dpc(void *p)
+                                        */
+                                       if (atomic_read(&fcport->state) != FC_ONLINE &&
+                                               fcport->login_retry) {
+-
+                                               fcport->login_retry--;
+-                                              memset(&dev, 0, sizeof(fcdev_t));
+-                                              dev.loop_id = fcport->old_loop_id;
+-                                              dev.d_id.b24 = fcport->d_id.b24;
+-                                              if(ha->fc_db[fcport->dev_id].flag & DEV_PUBLIC) 
+-                                                      status = qla2x00_fabric_login(ha, &dev);
++                                              if (fcport->flags & FC_FABRIC_DEVICE)
++                                                      status = qla2x00_fabric_login(ha, fcport, &next_loopid);
+                                               else    
+-                                                      status = qla2x00_local_device_login(ha, (dev.loop_id & 0xff));
++                                                      status = qla2x00_local_device_login(ha, fcport->loop_id);
+                                               if (status == QL_STATUS_SUCCESS) {
+-                                                      ha->fc_db[fcport->dev_id].loop_id = dev.loop_id;
+-                                                      fcport->loop_id = dev.loop_id;
+-                                                      fcport->old_loop_id = dev.loop_id;
++                                                      fcport->old_loop_id = fcport->loop_id;
+                                                       DEBUG(printk("dpc%ld port login OK: logged in ID 0x%x\n",
+                                                                       ha->host_no, fcport->loop_id);)
++                                                      printk(KERN_INFO "dpc%ld port login OK: logged in ID 0x%x\n",
++                                                                      ha->host_no, fcport->loop_id);
+                                                       
++                                                      fcport->login_retry = 0;
+                                                       fcport->port_login_retry_count = ha->port_down_retry_count *
+                                                                                               PORT_RETRY_TIME;
+                                                       atomic_set(&fcport->state, FC_ONLINE);
+                                                       atomic_set(&fcport->port_down_timer,
+                                                                       ha->port_down_retry_count * PORT_RETRY_TIME);
+-                                                      fcport->login_retry = 0;
+                                               } else if (status == 1) {
+-                                                      if (dev.loop_id != fcport->old_loop_id) {
+-                                                              fcport->old_loop_id = dev.loop_id;
+-                                                              ha->fc_db[fcport->dev_id].loop_id = dev.loop_id;
+-                                                      }
+-
+                                                       set_bit(RELOGIN_NEEDED, &ha->dpc_flags);
+                                                       /* retry the login again */
+                                                       DEBUG(printk("dpc: Retrying %d login again loop_id 0x%x\n",
+@@ -4925,7 +4666,7 @@ qla2x00_do_dpc(void *p)
+                       /* v2.19.5 */
+                       if ((test_bit(LOGIN_RETRY_NEEDED, &ha->dpc_flags)) &&
+-                              ha->loop_state != LOOP_DOWN ) { /* v2.19.5 */
++                          atomic_read(&ha->loop_state) != LOOP_DOWN) { /* v2.19.5 */
+                               clear_bit(LOGIN_RETRY_NEEDED, &ha->dpc_flags);
+                               DEBUG(printk("dpc(%ld): qla2x00_login_retry\n",
+@@ -4957,15 +4698,30 @@ qla2x00_do_dpc(void *p)
+                                               ha->host_no);)
+                       }
+-                      if (test_and_clear_bit(PORT_SCAN_NEEDED, &ha->dpc_flags)) {
++                      if (test_and_clear_bit(PORT_SCAN_NEEDED,
++                          &ha->dpc_flags)) {
+                               DEBUG(printk("dpc(%ld): qla2x00: RESCAN ...\n",
+-                                              ha->host_no);)
+-                              printk(KERN_INFO"dpc(%ld): qla2x00: RESCAN .\n",
+-                                      ha->host_no); 
+-                                      ha->loop_state = LOOP_UPDATE;
+-                                      qla2x00_mark_all_devices_lost(ha); 
+-                                      qla2x00_configure_fcports( ha );
++                                  ha->host_no);)
++                              printk(KERN_INFO
++                                  "dpc(%ld): qla2x00: RESCAN .\n",
++                                  ha->host_no); 
++
++                              if ( !(test_bit(LOGIN_RETRY_NEEDED, &ha->dpc_flags)) &&
++                                      atomic_read(&ha->loop_state) != LOOP_DOWN) { 
++                                      /* suspend new I/O for await */
++                                      atomic_set(&ha->loop_state, LOOP_UPDATE);
++                                      qla2x00_probe_for_all_luns(ha); 
++
++                                      /* If we found all devices then go ready */
++                                      atomic_set(&ha->loop_state, LOOP_READY);
++
++                                      if (!ha->flags.failover_enabled)
++                                              qla2x00_config_os(ha);
++                                      else    
++                                              qla2x00_cfg_remap(qla2x00_hostlist);
++                              }
++
+                               DEBUG(printk("dpc(%ld): qla2x00: RESCAN ...done\n",
+                                               ha->host_no);)
+                               printk(KERN_INFO"dpc(%ld): qla2x00: RESCAN" 
+@@ -4983,7 +4739,7 @@ qla2x00_do_dpc(void *p)
+                                               if (test_and_clear_bit(FAILOVER_EVENT,
+                                                               &ha->dpc_flags)) {
+-                                                      DEBUG(printk("dpc(%ld): "
++                                                      DEBUG2(printk("dpc(%ld): "
+                                                               "qla2x00_cfg_event_notify\n",
+                                                               ha->host_no);)
+@@ -4991,7 +4747,7 @@ qla2x00_do_dpc(void *p)
+                                                               qla2x00_cfg_event_notify(ha, ha->failover_type);
+                                                       }
+-                                                      DEBUG(printk("dpc(%ld): "
++                                                      DEBUG2(printk("dpc(%ld): "
+                                                               "qla2x00_cfg_event_notify - done\n",
+                                                               ha->host_no);)
+                                               }
+@@ -5003,12 +4759,12 @@ qla2x00_do_dpc(void *p)
+                                               /*
+                                                * Get any requests from failover queue
+                                                */
+-                                              DEBUG(printk("dpc: qla2x00_process "
++                                              DEBUG2(printk("dpc: qla2x00_process "
+                                                               "failover\n");)
+                                               qla2x00_process_failover(ha);
+-                                              DEBUG(printk("dpc: qla2x00_process "
++                                              DEBUG2(printk("dpc: qla2x00_process "
+                                                               "failover - done\n");)
+                                       }
+                               }
+@@ -5029,16 +4785,19 @@ qla2x00_do_dpc(void *p)
+                                       
+                               qla2x00_abort_queues(ha, FALSE);
+                       }
+-                      if (!ha->interrupts_on)
+-                              qla2x00_enable_intrs(ha);
++
++                      if (test_and_clear_bit(IOCTL_ERROR_RECOVERY,
++                          &ha->dpc_flags)) {
++                              qla2x00_ioctl_error_recovery(ha);       
++                      }
++
++                      if (!ha->interrupts_on)
++                              qla2x00_enable_intrs(ha);
++
+               }
+               if (!list_empty(&ha->done_queue))
+-#if QLA2X_PERFORMANCE
+-                      tasklet_schedule(&ha->run_qla_task);
+-#else
+                       qla2x00_done(ha);
+-#endif
+               /* spin_unlock_irqrestore(&io_request_lock, ha->cpu_flags);*/
+@@ -5070,7 +4829,6 @@ qla2x00_do_dpc(void *p)
+       LEAVE(__func__);
+ }
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+ /**************************************************************************
+ * qla2x00_device_queue_depth
+ *   Determines the queue depth for a given device.  There are two ways
+@@ -5080,7 +4838,7 @@ qla2x00_do_dpc(void *p)
+ *   as the default queue depth.  Otherwise, we use either 4 or 8 as the
+ *   default queue depth (dependent on the number of hardware SCBs).
+ **************************************************************************/
+-static void
++void
+ qla2x00_device_queue_depth(scsi_qla_host_t *p, Scsi_Device *device)
+ {
+       int default_depth = 32;
+@@ -5089,10 +4847,9 @@ qla2x00_device_queue_depth(scsi_qla_host
+       if (device->tagged_supported) {
+               device->tagged_queue = 1;
+               device->current_tag = 0;
+-#if defined(MODULE)
+-              if (!(ql2xmaxqdepth == 0 || ql2xmaxqdepth > 256))
++
++              if (!(ql2xmaxqdepth == 0 || ql2xmaxqdepth > 255))
+                       device->queue_depth = ql2xmaxqdepth;
+-#endif
+               printk(KERN_INFO
+                       "scsi(%ld:%d:%d:%d): Enabled tagged queuing, "
+@@ -5114,7 +4871,7 @@ qla2x00_device_queue_depth(scsi_qla_host
+ *   host adapter.  We use a queue depth of 2 for devices that do not
+ *   support tagged queueing.
+ **************************************************************************/
+-STATIC void
++static void
+ qla2x00_select_queue_depth(struct Scsi_Host *host, Scsi_Device *scsi_devs)
+ {
+       Scsi_Device *device;
+@@ -5129,109 +4886,6 @@ qla2x00_select_queue_depth(struct Scsi_H
+       LEAVE(__func__);
+ }
+-#endif
+-
+-#if defined (CONFIG_SCSIFCHOTSWAP) || defined(CONFIG_GAMAP)
+-union wwnmap {
+-      unsigned long long wwn;
+-      unsigned char wwn_u8[8];
+-};
+-
+-int qla2x00_get_scsi_info_from_wwn (int mode,
+-      unsigned long long wwn,
+-      int *host,
+-      int *channel,
+-      int *lun,
+-      int *id) {
+-
+-scsi_qla_host_t *list;
+-Scsi_Device *scsi_device;
+-union wwnmap wwncompare;
+-union wwnmap wwncompare2;
+-int i, j, k;
+-
+-      /*
+-       * Retrieve big endian version of world wide name
+-       */
+-      wwncompare2.wwn = wwn;
+-      for (j = 0, k=7; j < 8; j++, k--) {
+-              wwncompare.wwn_u8[j] = wwncompare2.wwn_u8[k];
+-      }
+-
+-      /*
+-       * query all hosts searching for WWN
+-       */
+-      for (list = qla2x00_hostlist; list; list = list->next) {
+-              for (i = 0; i < MAX_FIBRE_DEVICES; i++) {
+-                      /*
+-                       * Scan all devices in FibreChannel database
+-                       * if WWN match found, return SCSI device information
+-                       */
+-                      if (memcmp (wwncompare.wwn_u8, list->fc_db[i].name, 8) == 0) {
+-                              /*
+-                               * If inserting, avoid scan for channel and lun information
+-                               */
+-                              if (mode == 0) {
+-                                      *channel = 0;
+-                                      *lun = 0;
+-                                      *host = list->host->host_no;
+-                                      *id = i;
+-                                      return (0);
+-                              }
+-                      
+-
+-                              /*
+-                               * WWN matches, find channel and lun information from scsi
+-                               * device
+-                               */
+-                              for (scsi_device = list->host->host_queue; scsi_device; scsi_device = scsi_device->next) {
+-                                      if (scsi_device->id == i) {
+-                                              *channel = scsi_device->channel;
+-                                              *lun = scsi_device->lun;
+-                                              break;
+-                                      }
+-                              }
+-                              if (scsi_device == 0) {
+-                                      return (-ENOENT);
+-                              }
+-                              /*
+-                               * Device found, return all data
+-                               */
+-                              *host = list->host->host_no;
+-                              *id = i;
+-                              return (0);
+-                      } /* memcmp */
+-              } /* i < MAXFIBREDEVICES */
+-      }
+-      return (-ENOENT);
+-}
+-
+-int qla2x00_get_wwn_from_scsi_info (int host, int id, unsigned long long *wwn) {
+-scsi_qla_host_t *list;
+-union wwnmap wwnendian;
+-union wwnmap wwnendian2;
+-int j, k;
+-
+-      /*
+-       * Examine all QLogic hosts
+-       */
+-      for (list = qla2x00_hostlist; list; list = list->next) {
+-              if (host == list->host->host_no) {
+-                      /*
+-                       * Get endian corrected 64 bit WWN
+-                       */
+-
+-                      memcpy (&wwnendian2.wwn, list->fc_db[id].name, 8);
+-                      for (j = 0, k=7; j < 8; j++, k--) {
+-                              wwnendian.wwn_u8[j] = wwnendian2.wwn_u8[k];
+-                      }
+-                      *wwn = wwnendian.wwn;
+-                      return (0);
+-              }
+-      }
+-      return (-ENOENT);
+-}
+-#endif /* CONFIG_SCSIFCHOTSWAP || CONFIG_GAMAP */
+ /**************************************************************************
+ * ** Driver Support Routines **
+@@ -5269,6 +4923,38 @@ qla2x00_disable_intrs(scsi_qla_host_t *h
+       spin_unlock_irqrestore(&ha->hardware_lock, flags);
+ }
++STATIC inline void 
++qla2x00_free_request_resources(scsi_qla_host_t *dest_ha, srb_t *sp) 
++{
++      if (sp->flags & SRB_DMA_VALID) {
++              sp->flags &= ~SRB_DMA_VALID;
++
++#ifndef __VMWARE__
++              /* Release memory used for this I/O */
++              if (sp->cmd->use_sg) {
++                      pci_unmap_sg(dest_ha->pdev,
++                                      sp->cmd->request_buffer,
++                                      sp->cmd->use_sg,
++                                      scsi_to_pci_dma_dir(
++                                              sp->cmd->sc_data_direction));
++              } else if (sp->cmd->request_bufflen) {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,13)
++                      pci_unmap_page(dest_ha->pdev,
++                                      sp->saved_dma_handle,
++                                      sp->cmd->request_bufflen,
++                                      scsi_to_pci_dma_dir(
++                                              sp->cmd->sc_data_direction));
++#else
++                      pci_unmap_single(dest_ha->pdev,
++                                      sp->saved_dma_handle,
++                                      sp->cmd->request_bufflen,
++                                      scsi_to_pci_dma_dir(
++                                              sp->cmd->sc_data_direction));
++#endif
++              }
++#endif
++      }
++}
+ STATIC inline void 
+ qla2x00_delete_from_done_queue(scsi_qla_host_t *dest_ha, srb_t *sp) 
+@@ -5281,7 +4967,6 @@ qla2x00_delete_from_done_queue(scsi_qla_
+       if (sp->flags & SRB_DMA_VALID) {
+               sp->flags &= ~SRB_DMA_VALID;
+-#ifndef __VMWARE__
+               /* Release memory used for this I/O */
+               if (sp->cmd->use_sg) {
+                       pci_unmap_sg(dest_ha->pdev,
+@@ -5304,7 +4989,6 @@ qla2x00_delete_from_done_queue(scsi_qla_
+                                               sp->cmd->sc_data_direction));
+ #endif
+               }
+-#endif
+       }
+ }
+@@ -5321,7 +5005,6 @@ qla2x00_delete_from_done_queue(scsi_qla_
+ STATIC int
+ qla2x00_done(scsi_qla_host_t *old_ha)
+ {
+-      srb_t           *sp;
+       os_lun_t        *lq;
+       Scsi_Cmnd       *cmd;
+       unsigned long   flags = 0;
+@@ -5329,49 +5012,29 @@ qla2x00_done(scsi_qla_host_t *old_ha)
+       scsi_qla_host_t *vis_ha;
+       int     cnt;
+       int     send_marker_once = 0;
+-      srb_t *done_queue_first = NULL;
+-      srb_t *done_queue_last = NULL;
++      struct list_head        *spl, *sptemp;
++      srb_t           *sp;
++      struct  list_head local_sp_list;
+       ENTER(__func__);
+-      if (test_bit(DONE_RUNNING, &old_ha->dpc_flags))
+-              return (0);
+-
+-      set_bit(DONE_RUNNING, &old_ha->dpc_flags);
+       cnt = 0;
++      INIT_LIST_HEAD(&local_sp_list);
++
+       /*
+        * Get into local queue such that we do not wind up calling done queue
+        * takslet for the same IOs from DPC or any other place.
+        */
+       spin_lock_irqsave(&old_ha->list_lock,flags);
+-      while (!list_empty(&old_ha->done_queue)) {
+-              sp = list_entry(old_ha->done_queue.next, srb_t, list);
+-              /* remove command from done list */
+-              list_del_init(&sp->list);
++      qla_list_splice_init(&old_ha->done_queue, &local_sp_list);
++      spin_unlock_irqrestore(&old_ha->list_lock, flags);
++      list_for_each_safe(spl, sptemp, &local_sp_list) {
++              sp = list_entry(local_sp_list.next, srb_t, list);
+               old_ha->done_q_cnt--;
+-              sp->s_next = NULL;
+               sp->state = SRB_NO_QUEUE_STATE;
+-              /* insert in local queue */
+-              if (done_queue_first == NULL) {
+-                      done_queue_first = sp;
+-                      done_queue_last = sp;
+-              } else {
+-                      done_queue_last->s_next = sp;
+-                      done_queue_last = sp;
+-              }
+-      } /* end of while list_empty(&ha->done_queue) */
+-      spin_unlock_irqrestore(&old_ha->list_lock, flags);
+-
+-      /*
+-       * All done commands are in local queue. Now do the call back
+-       */
+-      while ((sp = done_queue_first) != NULL) {
+-              done_queue_first = sp->s_next;
+-              if (sp->s_next == NULL)
+-                      done_queue_last = NULL;
+-              sp->s_next = NULL;
++              list_del_init(&sp->list);
+               cnt++;
+@@ -5387,14 +5050,17 @@ qla2x00_done(scsi_qla_host_t *old_ha)
+               vis_ha = (scsi_qla_host_t *)cmd->host->hostdata;
+               lq = sp->lun_queue;
++#if 0
+               ha = lq->fclun->fcport->ha;
++#else
++              ha = sp->ha;
++#endif
+               if (sp->flags & SRB_DMA_VALID) {
+                       sp->flags &= ~SRB_DMA_VALID;
+                       /* 4.10   64 and 32 bit */
+                       /* Release memory used for this I/O */
+-#ifndef __VMWARE__
+                       if (cmd->use_sg) {
+                               pci_unmap_sg(ha->pdev,
+                                   cmd->request_buffer,
+@@ -5416,17 +5082,17 @@ qla2x00_done(scsi_qla_host_t *old_ha)
+                                           cmd->sc_data_direction));
+ #endif
+                       }
+-#endif
+               }
+-
+-              if (!(sp->flags & SRB_IOCTL) &&
++              if (!(sp->flags & (SRB_IOCTL | SRB_TAPE | SRB_FDMI_CMD)) &&
+                       ha->flags.failover_enabled) {
+                       /*
+                        * This routine checks for DID_NO_CONNECT to decide
+                        * whether to failover to another path or not. We only
+-                       * failover on that status.
++                       * failover on selection timeout(DID_NO_CONNECT) status.
+                        */
+-                      if (qla2x00_fo_check(ha,sp)) {
++                      if ( !(lq->fclun->fcport->flags & FC_FAILOVER_DISABLE) &&
++                           !(lq->fclun->flags & FC_VISIBLE_LUN) &&
++                              qla2x00_fo_check(ha,sp)) {
+                               if ((sp->state != SRB_FAILOVER_STATE)) {
+                                       /*
+                                        * Retry the command on this path
+@@ -5450,7 +5116,7 @@ qla2x00_done(scsi_qla_host_t *old_ha)
+                       case DID_OK:
+                       case DID_ERROR:
+-                              break;
++                              break; 
+                       case DID_RESET:
+                               /*
+@@ -5490,15 +5156,18 @@ qla2x00_done(scsi_qla_host_t *old_ha)
+                       default:
+                               DEBUG(printk("scsi(%ld:%d:%d) %s: did_error "
+-                                              "= %d, pid=%ld, comp-scsi= 0x%x-0x%x.\n",
+-                              vis_ha->host_no,
+-                              SCSI_TCN_32(cmd),
+-                              SCSI_LUN_32(cmd),
+-                              __func__,
+-                              (CMD_RESULT(cmd)>>16),
+-                              cmd->serial_number,
+-                              CMD_COMPL_STATUS(cmd),
+-                              CMD_SCSI_STATUS(cmd));)
++                                  "= %d, pid=%ld, comp-scsi= 0x%x-0x%x "
++                                  "fcport_state=0x%x sp_flags=0%x.\n",
++                                  vis_ha->host_no,
++                                  SCSI_TCN_32(cmd),
++                                  SCSI_LUN_32(cmd),
++                                  __func__,
++                                  (CMD_RESULT(cmd)>>16),
++                                  cmd->serial_number,
++                                  CMD_COMPL_STATUS(cmd),
++                                  CMD_SCSI_STATUS(cmd),
++                                  atomic_read(&sp->fclun->fcport->state),
++                                  sp->flags);)
+                               break;
+               }
+@@ -5507,10 +5176,11 @@ qla2x00_done(scsi_qla_host_t *old_ha)
+                */
+               sp_put(ha, sp);
+-              qla2x00_next(vis_ha);
++              if (vis_ha != old_ha)
++                      qla2x00_next(vis_ha);
+       } /* end of while */
+-      clear_bit(DONE_RUNNING, &old_ha->dpc_flags);
++      qla2x00_next(old_ha);
+       LEAVE(__func__);
+@@ -5935,24 +5605,32 @@ qla2x00_timer(scsi_qla_host_t *ha)
+        * down timer every second until it reaches zero. Once  it reaches zero
+        * the port it marked DEAD. 
+        */
+-      for (t=0, fcport = ha->fcport; 
+-              fcport != NULL;
+-              fcport = fcport->next, t++) {
++      t = 0;
++      list_for_each_entry(fcport, &ha->fcports, list) {
++              if(fcport->port_type != FCT_TARGET)
++                      continue;
+               if (atomic_read(&fcport->state) == FC_DEVICE_LOST) {
+                       if (atomic_read(&fcport->port_down_timer) == 0)
+                               continue;
+-                      if (atomic_dec_and_test(&fcport->port_down_timer) != 0) 
++                      if (atomic_dec_and_test(&fcport->port_down_timer)
++                                      != 0) {
+                               atomic_set(&fcport->state, FC_DEVICE_DEAD);
++                              DEBUG2(printk(" scsi(%ld): Port num %d marked DEAD"
++                  " at portid=%02x%02x%02x.\n",
++                  ha->host_no, t, fcport->d_id.b.domain,
++                  fcport->d_id.b.area, fcport->d_id.b.al_pa); )
++                      }
+                       
+-                      DEBUG(printk("scsi(%ld): fcport-%d - port retry count "
++                      DEBUG2(printk("scsi(%ld): fcport-%d - port retry count "
+                                       ":%d remainning\n",
+                                       ha->host_no, 
+                                       t,
+                                       atomic_read(&fcport->port_down_timer));)
+               }
++              t++;
+       } /* End of for fcport  */
+       /*
+@@ -5982,7 +5660,8 @@ qla2x00_timer(scsi_qla_host_t *ha)
+                                       "scsi%ld: Ending - target %d suspension.\n",
+                                       ha->host_no, t);)
+                               clear_bit(TGT_SUSPENDED, &tq->q_flags); 
+-                              set_bit(TGT_UNSUSPENDED, &tq->q_flags); 
++                              /* retry the commands */
++                              set_bit(TGT_RETRY_CMDS, &tq->q_flags); 
+                               start_dpc++;
+                       }
+               }
+@@ -6039,8 +5718,15 @@ qla2x00_timer(scsi_qla_host_t *ha)
+                                       "before time expire\n",
+                                       ha->instance);)
+ #if !defined(ISP2100)
+-                      if(ha->link_down_timeout)
+-                              ha->loop_state = LOOP_DEAD; 
++                      if(ha->link_down_timeout) {
++                              atomic_set(&ha->loop_state, LOOP_DEAD); 
++                              printk(KERN_INFO
++                                      "scsi(%ld): LOOP DEAD detected.\n",
++                                      ha->host_no);
++                              DEBUG2(printk(
++                                      "scsi(%ld): LOOP DEAD detected.\n",
++                                      ha->host_no);)
++                      }
+ #endif
+                       set_bit(ABORT_QUEUES_NEEDED, &ha->dpc_flags);
+                       start_dpc++;
+@@ -6061,7 +5747,9 @@ qla2x00_timer(scsi_qla_host_t *ha)
+                                       ha->instance);)
+                       }
+               }
+-              DEBUG3(printk("qla%ld: Loop Down - seconds remainning %d\n",
++              if (!(ha->device_flags & DFLG_NO_CABLE))
++                       DEBUG2(printk(KERN_INFO
++                           "qla%ld: Loop Down - seconds remainning %d\n",
+                               ha->instance, 
+                               atomic_read(&ha->loop_down_timer));)
+       }
+@@ -6070,14 +5758,8 @@ qla2x00_timer(scsi_qla_host_t *ha)
+        * Done Q Handler -- dgFIXME This handler will kick off doneq if we
+        * haven't process it in 2 seconds.
+        */
+-      if (!list_empty(&ha->done_queue)) {
+-#if QLA2X_PERFORMANCE
+-              tasklet_schedule(&ha->run_qla_task);
+-#else
+-              start_dpc++;
+-              /* qla2x00_done(ha); */
+-#endif
+-      }
++      if (!list_empty(&ha->done_queue))
++              qla2x00_done(ha);
+ #if QLA2100_LIPTEST
+       /*
+@@ -6149,6 +5831,8 @@ qla2x00_timer(scsi_qla_host_t *ha)
+               test_bit(FAILOVER_EVENT, &ha->dpc_flags) ||
+               test_bit(FAILOVER_NEEDED, &ha->dpc_flags) ||
+               test_bit(PORT_SCAN_NEEDED, &ha->dpc_flags) ||
++              test_bit(LOOP_RESET_NEEDED, &ha->dpc_flags) ||
++              test_bit(IOCTL_ERROR_RECOVERY, &ha->dpc_flags) ||
+               test_bit(MAILBOX_CMD_NEEDED, &ha->dpc_flags)) &&
+               ha->dpc_wait && !ha->dpc_active ){   /* v2.19.4 */
+@@ -6194,7 +5878,8 @@ qla2x00_callback(scsi_qla_host_t *ha, Sc
+       srb_t *sp = (srb_t *) CMD_SP(cmd);
+       scsi_qla_host_t *vis_ha;
+       os_lun_t *lq;
+-      int got_sense;
++      uint8_t is_fdmi_cmnd;
++      uint8_t got_sense;
+       unsigned long   cpu_flags = 0;
+       ENTER(__func__);
+@@ -6223,12 +5908,33 @@ qla2x00_callback(scsi_qla_host_t *ha, Sc
+       sp->cmd   = NULL;
+       CMD_SP(cmd) = NULL;
+       lq = sp->lun_queue;
++      is_fdmi_cmnd = (sp->flags & SRB_FDMI_CMD) ? 1 : 0;
+       got_sense = (sp->flags & SRB_GOT_SENSE)? 1: 0;
++#if REG_FDMI_ENABLED
++      if (is_fdmi_cmnd) {
++              DEBUG13(printk("%s(%ld): going to free fdmi srb tmpmem. "
++                  "result=%d.\n",
++                  __func__, vis_ha->host_no, CMD_RESULT(cmd)>>16);)
++              /* free some tmp buffers saved in sp */
++              qla2x00_fdmi_srb_tmpmem_free(sp);
++      }
++#endif
+       add_to_free_queue(vis_ha, sp);
+       if ((CMD_RESULT(cmd)>>16) == DID_OK) {
+               /* device ok */
+-              ha->total_bytes += cmd->bufflen;
++              if (!is_fdmi_cmnd) {
++                      /* keep IO stats for SCSI commands only. */
++                      ha->total_bytes += cmd->bufflen;
++
++                      if (cmd->bufflen) {
++                              if (sp->dir & __constant_cpu_to_le16(CF_READ))
++                                      ha->total_input_bytes += cmd->bufflen;
++                              else
++                                      ha->total_output_bytes += cmd->bufflen;
++                      }
++              }
++
+               if (!got_sense) {
+                       /* COMPAQ*/
+ #if defined(COMPAQ)
+@@ -6294,7 +6000,7 @@ qla2x00_mem_alloc(scsi_qla_host_t *ha)
+                */
+               if( retry != 10 )
+-                      printk(KERN_INFO
++                      printk( KERN_INFO
+                               "scsi(%ld): Memory Allocation retry %d \n",
+                               ha->host_no, retry);
+                       
+@@ -6309,7 +6015,7 @@ qla2x00_mem_alloc(scsi_qla_host_t *ha)
+                               "scsi(%ld): Memory Allocation failed - "
+                               "risc_rec_q\n",
+                               ha->host_no);
+-                      set_current_state(TASK_INTERRUPTIBLE);
++                      set_current_state(TASK_UNINTERRUPTIBLE);
+                       schedule_timeout(HZ/10);
+                       continue;
+               }
+@@ -6325,7 +6031,7 @@ qla2x00_mem_alloc(scsi_qla_host_t *ha)
+                               "scsi(%ld): Memory Allocation failed - "
+                               "request_ring\n",
+                               ha->host_no);
+-                      set_current_state(TASK_INTERRUPTIBLE);
++                      set_current_state(TASK_UNINTERRUPTIBLE);
+                       schedule_timeout(HZ/10);
+                       continue;
+               }
+@@ -6341,7 +6047,7 @@ qla2x00_mem_alloc(scsi_qla_host_t *ha)
+                               "response_ring\n",
+                               ha->host_no);
+                       qla2x00_mem_free(ha);
+-                      set_current_state(TASK_INTERRUPTIBLE);
++                      set_current_state(TASK_UNINTERRUPTIBLE);
+                       schedule_timeout(HZ/10);
+                       continue;
+               }
+@@ -6357,7 +6063,7 @@ qla2x00_mem_alloc(scsi_qla_host_t *ha)
+                               "init_cb\n",
+                               ha->host_no);
+                       qla2x00_mem_free(ha);
+-                      set_current_state(TASK_INTERRUPTIBLE);
++                      set_current_state(TASK_UNINTERRUPTIBLE);
+                       schedule_timeout(HZ/10);
+                       continue;
+               }
+@@ -6371,7 +6077,7 @@ qla2x00_mem_alloc(scsi_qla_host_t *ha)
+                               "ioctl_mem\n",
+                               ha->host_no);
+                       qla2x00_mem_free(ha);
+-                      set_current_state(TASK_INTERRUPTIBLE);
++                      set_current_state(TASK_UNINTERRUPTIBLE);
+                       schedule_timeout(HZ/10);
+                       continue;
+               }
+@@ -6383,7 +6089,7 @@ qla2x00_mem_alloc(scsi_qla_host_t *ha)
+                               "qla2x00_allocate_sp_pool\n",
+                               ha->host_no);
+                       qla2x00_mem_free(ha);
+-                      set_current_state(TASK_INTERRUPTIBLE);
++                      set_current_state(TASK_UNINTERRUPTIBLE);
+                       schedule_timeout(HZ/10);
+                       continue;
+               }
+@@ -6400,7 +6106,7 @@ qla2x00_mem_alloc(scsi_qla_host_t *ha)
+                               "mbx_cmd_q",
+                               ha->host_no);
+                       qla2x00_mem_free(ha);
+-                      set_current_state(TASK_INTERRUPTIBLE);
++                      set_current_state(TASK_UNINTERRUPTIBLE);
+                       schedule_timeout(HZ/10);
+                       continue;
+               }
+@@ -6447,13 +6153,11 @@ STATIC void
+ qla2x00_mem_free(scsi_qla_host_t *ha)
+ {
+       uint32_t        t;
+-      fc_lun_t        *fclun, *fclun_next;
+-      fc_port_t       *fcport, *fcport_next;
++      fc_port_t       *fcport, *fcptemp;
++      fc_lun_t        *fclun, *fcltemp;
+       mbx_cmdq_t      *ptmp;
+       mbx_cmdq_t      *tmp_q_head;
+       unsigned long   wtime;/* max wait time if mbx cmd is busy. */
+-      struct list_head *fcil, *fcitemp;
+-      fc_initiator_t  *fcinitiator;
+       ENTER(__func__);
+@@ -6490,15 +6194,6 @@ qla2x00_mem_free(scsi_qla_host_t *ha)
+       /* free ioctl memory */
+       qla2x00_free_ioctl_mem(ha);
+-      /* Free host database. */
+-      list_for_each_safe(fcil, fcitemp, &ha->fcinitiators) {
+-              fcinitiator = list_entry(fcil, fc_initiator_t, list);
+-
+-              list_del(&fcinitiator->list);
+-              kfree(fcinitiator);
+-      }
+-      INIT_LIST_HEAD(&ha->fcinitiators);
+-
+       /* free sp pool */
+       qla2x00_free_sp_pool(ha);
+@@ -6545,24 +6240,16 @@ qla2x00_mem_free(scsi_qla_host_t *ha)
+       ha->response_ring = NULL;
+       ha->response_dma = 0;
+-      /* fc ports */
+-      for (fcport = ha->fcport; 
+-              fcport != NULL;
+-              fcport = fcport_next) {
+-
+-              fcport_next = fcport->next;
+-
+-              /* fc luns */
+-              for (fclun = fcport->fclun; 
+-                      fclun != NULL;
+-                      fclun = fclun_next) {
+-
+-                      fclun_next = fclun->next;
++      list_for_each_entry_safe(fcport, fcptemp, &ha->fcports, list) {
++              list_for_each_entry_safe(fclun, fcltemp, &fcport->fcluns,
++                  list) {
++                      list_del_init(&fclun->list);
+                       kfree(fclun);
+               }
++              list_del_init(&fcport->list);
+               kfree(fcport);
+       }
+-      ha->fcport = NULL ;
++      INIT_LIST_HEAD(&ha->fcports);
+       LEAVE(__func__);
+ }
+@@ -6635,9 +6322,8 @@ qla2x00_initialize_adapter(scsi_qla_host
+       ha->flags.online = FALSE;
+       ha->flags.disable_host_adapter = FALSE;
+       ha->flags.reset_active = FALSE;
+-      ha->flags.watchdog_enabled = FALSE;
+       atomic_set(&ha->loop_down_timer, LOOP_DOWN_TIME);
+-      ha->loop_state = LOOP_DOWN;
++      atomic_set(&ha->loop_state, LOOP_DOWN);
+       ha->device_flags = 0;
+       ha->sns_retry_cnt = 0;
+       ha->device_flags = 0;
+@@ -6663,9 +6349,6 @@ qla2x00_initialize_adapter(scsi_qla_host
+               qla2x00_reset_chip(ha);
+-              /* Initialize Fibre Channel database. */
+-              qla2x00_init_fc_db(ha);
+-
+               /* Initialize target map database. */
+               qla2x00_init_tgt_map(ha);
+@@ -6682,7 +6365,6 @@ qla2x00_initialize_adapter(scsi_qla_host
+               qla2x00_nvram_config(ha);
+ #endif
+-              ha->retry_count = ql2xretrycount;
+ #if USE_PORTNAME
+               ha->flags.port_name_used =1;
+ #else
+@@ -6706,7 +6388,7 @@ qla2x00_initialize_adapter(scsi_qla_host
+                               qla2x00_get_properties(ha, ql2xdevconf);
+               }
+-              retry = 10;
++              retry = QLA2XXX_LOOP_RETRY_COUNT;
+               /*
+                * Try configure the loop.
+                */
+@@ -6727,7 +6409,7 @@ qla2x00_initialize_adapter(scsi_qla_host
+                                       status = qla2x00_setup_chip(ha);
+                               if (!status) {
+-                                      DEBUG(printk("scsi(%ld): Chip verified "
++                                      DEBUG2(printk("scsi(%ld): Chip verified "
+                                                       "and RISC loaded...\n",
+                                                       ha->host_no));
+                               }
+@@ -6742,7 +6424,7 @@ qla2x00_initialize_adapter(scsi_qla_host
+                                * value OR a minimum of 4 seconds OR If no 
+                                * cable, only 5 seconds.
+                                */
+-                              DEBUG(printk("qla2x00_init_rings OK, call "
++                              DEBUG2(printk("qla2x00_init_rings OK, call "
+                                               "qla2x00_fw_ready...\n");)
+ check_fw_ready_again:
+@@ -6766,11 +6448,9 @@ check_fw_ready_again:
+                                                       break;
+                                               }
+-                                              /* if loop state changed while
+-                                               * we were discoverying devices
+-                                               * then wait for LIP to complete
+-                                               */
+-                                              if( ha->loop_state == LOOP_DOWN && retry-- ) {
++                                              /* if loop state change while we were discoverying devices
++                                                      then wait for LIP to complete */
++                                              if (atomic_read(&ha->loop_state) == LOOP_DOWN && retry--) {
+                                                       goto check_fw_ready_again;
+                                               }
+@@ -6783,7 +6463,7 @@ check_fw_ready_again:
+                                                       !time_after_eq(jiffies,wait_device);) {
+                                                       qla2x00_check_fabric_devices(ha);
+-                                                      set_current_state(TASK_INTERRUPTIBLE);
++                                                      set_current_state(TASK_UNINTERRUPTIBLE);
+                                                       schedule_timeout(5);
+                                               }
+ #endif
+@@ -6940,6 +6620,7 @@ qla2x00_iospace_config(scsi_qla_host_t *
+                   "scsi(%ld): cannot remap MMIO (%s), aborting\n",
+                   ha->host_no, ha->pdev->slot_name);
++              pci_release_regions(ha->pdev);
+               goto iospace_error_exit;
+       }
+       ha->iobase = (device_reg_t *) ha->mmio_address;
+@@ -6978,38 +6659,28 @@ qla2x00_pci_config(scsi_qla_host_t *ha)
+        * Turn on PCI master; for system BIOSes that don't turn it on by
+        * default.
+        */
++
+       pci_set_master(ha->pdev);
+       pci_read_config_word(ha->pdev, PCI_REVISION_ID, &buf_wd);
+       ha->revision = buf_wd;
++#ifndef MEMORY_MAPPED_IO
+       if (ha->iobase)
+               return 0;
+-
++#endif
+       do { /* Quick exit */
+               /* Get command register. */
+               pci_ret = pci_read_config_word(ha->pdev, PCI_COMMAND, &buf_wd);
+               if (pci_ret != PCIBIOS_SUCCESSFUL)
+                       break;
+-              /*
+-               * Set Bus Master Enable (bit-2), Memory Address Space Enable
+-               * and reset any error bits.
+-               */
+-              buf_wd &= ~0x7;
+-
+-#if MEMORY_MAPPED_IO
+-              DEBUG(printk("%s(): I/O SPACE and MEMORY MAPPED I/O is "
+-                              "enabled.\n",
+-                              __func__));
+-              buf_wd |= (PCI_COMMAND_MASTER |
+-                              PCI_COMMAND_MEMORY |
+-                              PCI_COMMAND_IO);
+-#else
+-              DEBUG(printk("%s(): I/O SPACE Enabled and MEMORY MAPPED "
+-                              "I/O is disabled.\n",
+-                              __func__));
+-              buf_wd |= (PCI_COMMAND_MASTER | PCI_COMMAND_IO);
+-#endif
++              /* PCI Specification Revision 2.3 changes */
++              if (check_device_id(ha)) { 
++                      /* Command Register
++                       *  -- Reset Interrupt Disable -- BIT_10
++                       */
++                      buf_wd &= ~BIT_10;
++              }
+               pci_ret = pci_write_config_word(ha->pdev, PCI_COMMAND, buf_wd);
+               if (pci_ret != PCIBIOS_SUCCESSFUL)
+@@ -7103,7 +6774,7 @@ qla2x00_chip_diag(scsi_qla_host_t *ha)
+       uint8_t         status = 0;
+       device_reg_t    *reg = ha->iobase;
+       unsigned long   flags = 0;
+-#if defined(ISP2300)
++#if defined(ISP2300) 
+       uint16_t        buf_wd;
+ #endif
+       uint16_t        data;
+@@ -7112,13 +6783,16 @@ qla2x00_chip_diag(scsi_qla_host_t *ha)
+       ENTER(__func__);
+       DEBUG3(printk("%s(): testing device at %lx.\n",
+-                      __func__,
+-                      (u_long)&reg->flash_address);)
++          __func__,
++          (u_long)&reg->flash_address);)
+       spin_lock_irqsave(&ha->hardware_lock, flags);
+       /* Reset ISP chip. */
+       WRT_REG_WORD(&reg->ctrl_status, CSR_ISP_SOFT_RESET);
++      CACHE_FLUSH(&reg->ctrl_status);
++      /* Delay after reset, for chip to recover. */
++      udelay(20);
+       data = qla2x00_debounce_register(&reg->ctrl_status);
+       for (cnt = 6000000 ; cnt && (data & CSR_ISP_SOFT_RESET); cnt--) {
+               udelay(5);
+@@ -7128,30 +6802,31 @@ qla2x00_chip_diag(scsi_qla_host_t *ha)
+       if (cnt) {
+               DEBUG3(printk("%s(): reset register cleared by chip reset\n",
+-                              __func__);)
++                  __func__);)
+-#if defined(ISP2300)
++#if defined(ISP2300) 
+               pci_read_config_word(ha->pdev, PCI_COMMAND, &buf_wd);
+               buf_wd |= (PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER);
+               data = RD_REG_WORD(&reg->mailbox6);
+-
+-              if ((ha->device_id == QLA2312_DEVICE_ID) ||
+-                      ((data & 0xff) == FPM_2310))
++              if (check_all_device_ids(ha))       
+                       /* Enable Memory Write and Invalidate. */
+                       buf_wd |= PCI_COMMAND_INVALIDATE;
+               else
+                       buf_wd &= ~PCI_COMMAND_INVALIDATE;
++
+               pci_write_config_word(ha->pdev, PCI_COMMAND, buf_wd);
+ #endif
+               /* Reset RISC processor. */
+               WRT_REG_WORD(&reg->host_cmd, HC_RESET_RISC);
++              CACHE_FLUSH(&reg->host_cmd);
+               WRT_REG_WORD(&reg->host_cmd, HC_RELEASE_RISC);
++              CACHE_FLUSH(&reg->host_cmd);
+-#if defined(ISP2300)
++#if defined(ISP2300) 
+               /* Workaround for QLA2312 PCI parity error */
+-              if (ha->device_id == QLA2312_DEVICE_ID)
++              if (check_all_device_ids(ha)) {             
+                       udelay(10);
+-              else {
++              } else {
+                       data = qla2x00_debounce_register(&reg->mailbox0);
+                       for (cnt = 6000000; cnt && (data == MBS_BUSY); cnt--) {
+@@ -7173,7 +6848,7 @@ qla2x00_chip_diag(scsi_qla_host_t *ha)
+               if (cnt) {
+                       /* Check product ID of chip */
+                       DEBUG3(printk("%s(): Checking product ID of chip\n",
+-                                      __func__);)
++                          __func__);)
+                       if (RD_REG_WORD(&reg->mailbox1) != PROD_ID_1 ||
+                           (RD_REG_WORD(&reg->mailbox2) != PROD_ID_2 &&
+@@ -7197,26 +6872,26 @@ qla2x00_chip_diag(scsi_qla_host_t *ha)
+                                       ha->device_id = QLA2200A_DEVICE_ID;
+                                       DEBUG3(printk("%s(): Found QLA2200A "
+-                                                      "chip.\n",
+-                                                      __func__);)
++                                          "chip.\n",
++                                          __func__);)
+                               }
+ #endif
+                               spin_unlock_irqrestore(&ha->hardware_lock,
+-                                              flags);
++                                  flags);
+                               DEBUG3(printk("%s(): Checking mailboxes.\n",
+-                                              __func__);)
++                                  __func__);)
+                               /* Wrap Incoming Mailboxes Test. */
+                               status = qla2x00_mbx_reg_test(ha);
+                               if (status) {
+                                       printk(KERN_WARNING
+-                                              "%s(): failed mailbox send "
+-                                              "register test\n",
+-                                              __func__);
++                                          "%s(): failed mailbox send "
++                                          "register test\n",
++                                          __func__);
+                                       DEBUG(printk("%s(): Failed mailbox "
+-                                                      "send register test\n",
+-                                                      __func__);)
++                                          "send register test\n",
++                                          __func__);)
+                               }
+                               spin_lock_irqsave(&ha->hardware_lock, flags);
+                       }
+@@ -7225,8 +6900,10 @@ qla2x00_chip_diag(scsi_qla_host_t *ha)
+       } else
+               status = 1;
+-      if (status)
++      if (status){
+               DEBUG2_3(printk(KERN_INFO "%s(): **** FAILED ****\n", __func__);)
++              printk("%s(): **** FAILED ****\n", __func__);
++      }
+       spin_unlock_irqrestore(&ha->hardware_lock, flags);
+@@ -7251,30 +6928,17 @@ qla2x00_setup_chip(scsi_qla_host_t *ha)
+ {
+       uint8_t         status = 0;
+       uint16_t        cnt;
+-      uint16_t        risc_address;
+       uint16_t        *risc_code_address;
++      unsigned long   risc_address;
+       unsigned long   risc_code_size;
+       int             num;
+-#if defined(WORD_FW_LOAD)
+-      uint16_t        data;
+-      uint16_t        *ql21_risc_code_addr01;
+-      uint16_t        ql21_risc_code_length01;
+-      uint8_t         dump_status;
+-#endif
++      struct qla_fw_info      *fw_iter;
++      int i;
++      uint16_t *req_ring;
+       ENTER(__func__);
+-      /* Load RISC code. */
+-      risc_address = *QLBoardTbl_fc[ha->devnum].fwstart;
+-      risc_code_address = QLBoardTbl_fc[ha->devnum].fwcode;
+-      risc_code_size = *QLBoardTbl_fc[ha->devnum].fwlen;
+-
+-      DEBUG(printk("%s(): Loading RISC code size =(0x%lx) req virt=%p "
+-                      "phys=%llx\n",
+-                      __func__,
+-                      risc_code_size,
+-                      ha->request_ring,
+-                      (u64)ha->request_dma);)
++      fw_iter = QLBoardTbl_fc[ha->devnum].fwinfo;
+       /*
+        * Save active FC4 type depending on firmware support. This info is
+@@ -7282,124 +6946,94 @@ qla2x00_setup_chip(scsi_qla_host_t *ha)
+        */
+       ha->active_fc4_types = EXT_DEF_FC4_TYPE_SCSI;
+ #if defined(FC_IP_SUPPORT)
+-      ha->active_fc4_types |= EXT_DEF_FC4_TYPE_IP;
++      if (ha->flags.enable_ip)
++              ha->active_fc4_types |= EXT_DEF_FC4_TYPE_IP;
+ #endif
+ #if defined(FC_SCTP_SUPPORT)
++      risc_address = *fw_iter->fwstart;
+       if (risc_address == fw2300sctp_code01)
+               ha->active_fc4_types |= EXT_DEF_FC4_TYPE_SCTP;
+ #endif
+-      num = 0;
+-      while (risc_code_size > 0 && !status) {
+-              cnt = REQUEST_ENTRY_SIZE * REQUEST_ENTRY_CNT >> 1;
+-#if defined(ISP2200)
+-              /* for 2200A set transfer size to 128 bytes */
+-              if (ha->device_id == QLA2200A_DEVICE_ID)
+-                      cnt = 128 >> 1;
+-#endif
+-
+-              if (cnt > risc_code_size)
+-                      cnt = risc_code_size;
+-
+-              DEBUG7(printk("%s(): loading risc segment@ addr %p, number of "
+-                              "bytes 0x%x, offset 0x%x.\n",
+-                              __func__,
+-                              risc_code_address,
+-                              cnt,
+-                              risc_address);)
+-
+-#if defined(__LITTLE_ENDIAN)
+-              memcpy(ha->request_ring, risc_code_address, (cnt << 1));
+-#else
+-      {
+-              int i;
+-              uint16_t *req_ring;
++      /* Load firmware sequences */
++      while (fw_iter->addressing != FW_INFO_ADDR_NOMORE) {
++              risc_code_address = fw_iter->fwcode;
++              risc_code_size = *fw_iter->fwlen;
++
++              if (fw_iter->addressing == FW_INFO_ADDR_NORMAL) {
++                      risc_address = *fw_iter->fwstart;
++                      DEBUG7(printk(KERN_INFO "%s risc_address=%lx" 
++                          "address=%d\n",__func__,risc_address,
++                          fw_iter->addressing);)
++              } else {
++                      /* Extended address */
++                      risc_address = *fw_iter->lfwstart;
++                      DEBUG7(printk(KERN_INFO "%s risc_address=%lx" 
++                          "address=%d\n",__func__,risc_address,
++                          fw_iter->addressing);)
++              }
+-              req_ring = (uint16_t *)ha->request_ring;
+-              for (i = 0; i < cnt; i++)
+-                      req_ring[i] = cpu_to_le16(risc_code_address[i]);
+-      };
++              num = 0;
++              while (risc_code_size > 0 && !status) {
++                      cnt = REQUEST_ENTRY_SIZE * REQUEST_ENTRY_CNT >> 1;
++#if defined(ISP2200)
++                      /* for 2200A set transfer size to 128 bytes */
++                      if (ha->device_id == QLA2200A_DEVICE_ID)
++                              cnt = 128 >> 1;
+ #endif
+-              /*
+-               * Flush written firmware to the ha->request_ring buffer before
+-               * DMA
+-               */
+-              flush_cache_all();
+-
+-              status = qla2x00_load_ram(ha,
+-                              ha->request_dma, risc_address, cnt);
++                      if (cnt > risc_code_size)
++                              cnt = risc_code_size;
+-              if (status) {
+-                      qla2x00_dump_regs(ha->host);
+-                      printk(KERN_WARNING
+-                              "qla2x00: [ERROR] Failed to load segment "
+-                              "%d of FW\n",
+-                              num);
+-                      DEBUG(printk("%s(): Failed to load segment %d of FW\n",
+-                                      __func__,
+-                                      num);)
+-                      break;
+-              }
+-
+-              risc_address += cnt;
+-              risc_code_size -= cnt;
+-              risc_code_address += cnt;
+-              num++;
+-      }
+-
+-#if defined(WORD_FW_LOAD)
+-      {
+-              int i;
++                      DEBUG7(printk("%s(): loading risc segment@ addr %p," 
++                          " number of bytes 0x%x, offset 0x%lx.\n",
++                          __func__, risc_code_address, cnt, risc_address);)
+-              risc_address = *QLBoardTbl_fc[ha->devnum].fwstart;
+-              ql21_risc_code_addr01  = QLBoardTbl_fc[ha->devnum].fwcode;
+-              ql21_risc_code_length01 = *QLBoardTbl_fc[ha->devnum].fwlen;
+-
+-              for (i = 0; i < ql21_risc_code_length01 ; i++) {
+-                      dump_status = qla2x00_write_ram_word(ha,
+-                                      risc_address + i, 
+-                                      *(ql21_risc_code_addr01 + i));
++                      req_ring = (uint16_t *)ha->request_ring;
++                      for (i = 0; i < cnt; i++)
++                              req_ring[i] = cpu_to_le16(risc_code_address[i]);
+-                      if (dump_status) {
+-                              printk(KERN_WARNING
+-                                      "qla2x00: [ERROR] firmware load "
+-                                      "failure\n");
+-                              break;
++                      /*
++                      * Flush written firmware to the ha->request_ring 
++                      * buffer before DMA */
++                      flush_cache_all();
++                      if (fw_iter->addressing == FW_INFO_ADDR_NORMAL) {
++                              status = qla2x00_load_ram(ha,
++                                  ha->request_dma, risc_address, cnt);
++                      } else {
++                              status = qla2x00_load_ram_ext(ha,
++                                  ha->request_dma, risc_address, cnt);
+                       }
+-                      dump_status = qla2x00_read_ram_word(ha,
+-                                      risc_address + i, &data);
+-
+-                      if (dump_status) {
++                      if (status) {
++                              qla2x00_dump_regs(ha->host);
+                               printk(KERN_WARNING
+-                                      "qla2x00: [ERROR] RISC FW Read "
+-                                      "Failure\n");
+-                              break;
++                                  "qla2x00: [ERROR] Failed to load segment "
++                                  "%d of FW\n", num);
++                              DEBUG2(printk("%s(): Failed to load segment %d" 
++                                  " of FW\n", __func__, num);)
++                                      break;
+                       }
+-                      if (data != *(ql21_risc_code_addr01 + i)) {
+-                              printk(KERN_WARNING
+-                                      "qla2x00: [ERROR] RISC FW Compare "
+-                                      "ERROR @ (0x%p)\n",
+-                                      (void *)(ql21_risc_code_addr01+i));
+-                      }
++                      risc_address += cnt;
++                      risc_code_size -= cnt;
++                      risc_code_address += cnt;
++                      num++;
+               }
+-              printk(KERN_INFO
+-                      "qla2x00: RISC FW download confirmed... \n");
++              /* Next firmware sequence */
++              fw_iter++;
+       }
+-#endif /* WORD_FW_LOAD */
+       /* Verify checksum of loaded RISC code. */
+       if (!status) {
+-              DEBUG(printk("%s(): Verifying Check Sum of loaded RISC code.\n",
++              DEBUG2(printk("%s(): Verifying Check Sum of loaded RISC code.\n",
+                               __func__);)
+               status = (uint8_t)qla2x00_verify_checksum(ha);
+               if (status == QL_STATUS_SUCCESS) {
+                       /* Start firmware execution. */
+-                      DEBUG(printk("%s(): CS Ok, Start firmware running\n",
++                      DEBUG2(printk("%s(): CS Ok, Start firmware running\n",
+                                       __func__);)
+                       status = qla2x00_execute_fw(ha);
+               }
+@@ -7493,16 +7127,18 @@ qla2x00_init_rings(scsi_qla_host_t *ha)
+       /* Initialize response queue entries */
+       qla2x00_init_response_q_entries(ha);
+-#if defined(ISP2300)
++#if defined(ISP2300) 
+       WRT_REG_WORD(&reg->req_q_in, 0);
+       WRT_REG_WORD(&reg->req_q_out, 0);
+       WRT_REG_WORD(&reg->rsp_q_in, 0);
+       WRT_REG_WORD(&reg->rsp_q_out, 0);
++      CACHE_FLUSH(&reg->rsp_q_out);
+ #else
+       WRT_REG_WORD(&reg->mailbox4, 0);
+       WRT_REG_WORD(&reg->mailbox4, 0);
+       WRT_REG_WORD(&reg->mailbox5, 0);
+       WRT_REG_WORD(&reg->mailbox5, 0);
++      CACHE_FLUSH(&reg->mailbox5);
+ #endif
+       spin_unlock_irqrestore(&ha->hardware_lock, flags);
+@@ -7516,18 +7152,20 @@ qla2x00_init_rings(scsi_qla_host_t *ha)
+                               __func__,
+                               ha->host_no);)
+       } else {
++#if defined(ISP2300)
+               /* Setup seriallink options */
+               uint16_t        opt10, opt11;
++#endif
++              qla2x00_get_firmware_options(ha,
++                  &ha->fw_options1, &ha->fw_options2, &ha->fw_options3);
++#if defined(ISP2300)
+               DEBUG3(printk("%s(%ld): Serial link options:\n",
+                   __func__, ha->host_no);)
+               DEBUG3(qla2x00_dump_buffer(
+                   (uint8_t *)&ha->fw_seriallink_options,
+                   sizeof(ha->fw_seriallink_options));)
+-              qla2x00_get_firmware_options(ha,
+-                  &ha->fw_options1, &ha->fw_options2, &ha->fw_options3);
+-
+               ha->fw_options1 &= ~BIT_8;
+               if (ha->fw_seriallink_options.output_enable)
+                       ha->fw_options1 |= BIT_8;
+@@ -7537,12 +7175,15 @@ qla2x00_init_rings(scsi_qla_host_t *ha)
+               opt11 = (ha->fw_seriallink_options.output_emphasis_2g << 14) |
+                   (ha->fw_seriallink_options.output_swing_2g << 8) | 0x3;
++              /* TAPE FIX */
++              /* Return the IOCB without waiting for the ABTS. */
++              ha->fw_options3 |= BIT_13;
++
+               qla2x00_set_firmware_options(ha, ha->fw_options1,
+                   ha->fw_options2, ha->fw_options3, opt10, opt11);
+-
+-              DEBUG3(printk("%s(%ld): exiting normally.\n",
+-                              __func__,
+-                              ha->host_no);)
++#endif
++              DEBUG3(printk("%s(%ld): exiting normally.\n", __func__,
++                  ha->host_no));
+       }
+       return (status);
+@@ -7571,7 +7212,11 @@ qla2x00_fw_ready(scsi_qla_host_t *ha)
+       ENTER(__func__);
+-      min_wait = 60;          /* 60 seconds for loop down. */
++      if (!ha->init_done)
++              min_wait = 60;          /* 60 seconds for loop down. */
++      else
++              min_wait = 20;          /* 20 seconds for loop down. */
++      ha->device_flags &= ~DFLG_NO_CABLE;
+       /*
+        * Firmware should take at most one RATOV to login, plus 5 seconds for
+@@ -7644,8 +7289,8 @@ qla2x00_fw_ready(scsi_qla_host_t *ha)
+                       break;
+               /* Delay for a while */
+-              set_current_state(TASK_INTERRUPTIBLE);
+-              schedule_timeout(HZ / 2);
++              set_current_state(TASK_UNINTERRUPTIBLE);
++              schedule_timeout(HZ / HZ);
+               DEBUG3(printk("%s(): fw_state=%x curr time=%lx.\n",
+                               __func__,
+@@ -7791,45 +7436,6 @@ qla2x00_configure_hba(scsi_qla_host_t *h
+       return(rval);
+ }
+-/**
+- * qla2x00_config_dma_addressing() - Configure OS DMA addressing method.
+- * @ha: HA context
+- *
+- * At exit, the @ha's flags.enable_64bit_addressing set to indicated
+- * supported addressing method.
+- */
+-static inline void
+-qla2x00_config_dma_addressing(scsi_qla_host_t *ha)
+-{
+-      /*
+-       * Given the two variants of pci_set_dma_mask(), allow the compiler to
+-       * assist in setting the proper dma mask.
+-       */
+-      if (sizeof(dma_addr_t) > 4) {
+-              ha->flags.enable_64bit_addressing = 1;
+-              /* Update our PCI device dma_mask for full 64 bit mask */
+-              if (pci_set_dma_mask(ha->pdev, 0xffffffffffffffffULL)) {
+-                      printk("qla2x00: failed to set 64 bit PCI DMA mask, "
+-                              "using 32 bits\n");
+-                      ha->flags.enable_64bit_addressing = 0;
+-                      pci_set_dma_mask(ha->pdev, 0xffffffff);
+-              }
+-              (void) pci_set_consistent_dma_mask(ha->pdev, 0xffffffffffffffffULL);
+-      }
+-      else {
+-              ha->flags.enable_64bit_addressing = 0;
+-              pci_set_dma_mask(ha->pdev, 0xffffffff);
+-      }
+-      printk(KERN_INFO
+-              "scsi(%ld): %d Bit PCI Addressing Enabled.\n",
+-              ha->host_no,
+-              (ha->flags.enable_64bit_addressing ? 64 : 32));
+-      printk(KERN_INFO
+-              "scsi(%ld): Scatter/Gather entries= %d\n",
+-              ha->host_no,
+-              ha->host->sg_tablesize);
+-}
+-
+ #if defined(ISP2100)
+ /*
+ * NVRAM configuration for 2100.
+@@ -7962,13 +7568,10 @@ qla2100_nvram_config(scsi_qla_host_t *ha
+       ha->flags.disable_luns            = nv->host_p.disable_luns;
+       ha->flags.disable_risc_code_load  = nv->host_p.disable_risc_code_load;
+       ha->flags.set_cache_line_size_1   = nv->host_p.set_cache_line_size_1;
+-      ha->flags.enable_64bit_addressing = nv->host_p.enable_64bit_addressing;
+       if (nv->host_p.enable_extended_logging)
+               extended_error_logging = 1 ;
+-      qla2x00_config_dma_addressing(ha);
+-
+       ha->flags.link_down_error_enable  = 1;
+       ha->flags.enable_lip_reset        = nv->host_p.enable_lip_reset;
+@@ -8032,8 +7635,7 @@ qla2100_nvram_config(scsi_qla_host_t *ha
+       ha->binding_type = Bind;
+       if ((ha->binding_type != BIND_BY_PORT_NAME) &&
+-              (ha->binding_type != BIND_BY_PORT_ID) &&
+-              (ha->binding_type != BIND_BY_NODE_NAME)) {
++              (ha->binding_type != BIND_BY_PORT_ID)) {
+               printk(KERN_WARNING
+                       "scsi(%ld): Invalid binding type specified "
+@@ -8050,10 +7652,10 @@ qla2100_nvram_config(scsi_qla_host_t *ha
+       icb->response_q_inpointer  = 0;
+       icb->request_q_length      = REQUEST_ENTRY_CNT;
+       icb->response_q_length     = RESPONSE_ENTRY_CNT;
+-      icb->request_q_address[0]  = LS_64BITS(ha->request_dma);
+-      icb->request_q_address[1]  = MS_64BITS(ha->request_dma);
+-      icb->response_q_address[0] = LS_64BITS(ha->response_dma);
+-      icb->response_q_address[1] = MS_64BITS(ha->response_dma);
++      icb->request_q_address[0]  = LSD(ha->request_dma);
++      icb->request_q_address[1]  = MSD(ha->request_dma);
++      icb->response_q_address[0] = LSD(ha->response_dma);
++      icb->response_q_address[1] = MSD(ha->response_dma);
+       ha->qfull_retry_count = qfull_retry_count;
+@@ -8072,20 +7674,6 @@ qla2100_nvram_config(scsi_qla_host_t *ha
+       return(status);
+ }
+ #else
+-#if defined(CONFIG_IA64_GENERIC) || defined(CONFIG_IA64_SGI_SN2)
+-/*
+- * SGI systems can't adjust NVRAM settings, and some cards for SGI
+- * systems have incorrect defaults.
+- */
+-void
+-sgi_sn_nvram_fixup(nvram22_t *nv)
+-{
+-      nv->frame_payload_size = __constant_cpu_to_le16(2048);
+-#if defined(ISP2300)
+-      nv->special_options.data_rate = SO_DATA_RATE_AUTO;
+-#endif
+-}
+-#endif
+ /*
+ * NVRAM configuration for the 2200/2300/2312
+ *
+@@ -8106,7 +7694,7 @@ sgi_sn_nvram_fixup(nvram22_t *nv)
+ STATIC uint8_t
+ qla2x00_nvram_config(scsi_qla_host_t *ha)
+ {
+-#if defined(ISP2300)
++#if defined(ISP2300) 
+       device_reg_t *reg = ha->iobase;
+       uint16_t  data;
+ #endif
+@@ -8126,8 +7714,8 @@ qla2x00_nvram_config(scsi_qla_host_t *ha
+       ENTER(__func__);
+       if (!ha->flags.nvram_config_done) {
+-#if defined(ISP2300)
+-              if (ha->device_id == QLA2312_DEVICE_ID) {
++#if defined(ISP2300) 
++              if (check_all_device_ids(ha)) {
+                       data = RD_REG_WORD(&reg->ctrl_status);
+                       if ((data >> 14) == 1)
+                               base = 0x80;
+@@ -8163,8 +7751,8 @@ qla2x00_nvram_config(scsi_qla_host_t *ha
+                       chksum += (uint8_t)(*wptr >> 8);
+                       wptr++;
+               }
+-#if defined(ISP2300)
+-              if (ha->device_id == QLA2312_DEVICE_ID) {
++#if defined(ISP2300) 
++              if (check_all_device_ids(ha)) {             
+                       /* Unlock resource */
+                       WRT_REG_WORD(&reg->host_semaphore, 0);
+               }
+@@ -8252,22 +7840,25 @@ qla2x00_nvram_config(scsi_qla_host_t *ha
+                       nv->link_down_timeout = 60;
+                       status = 1;
+               }
+-#if defined(CONFIG_IA64_GENERIC) || defined(CONFIG_IA64_SGI_SN2)
+-              if (ia64_platform_is("sn2"))
+-                      sgi_sn_nvram_fixup(nv);
+-#endif
+ #if defined(ISP2200)
+               /* Model Number */
+               sprintf(ha->model_number,"QLA22xx");
+ #endif
+-#if defined(ISP2300)
++#if defined(ISP2300) 
+               /* Sub System Id (QLA2300/QLA2310): 0x9 */
+-              if(ha->pdev->subsystem_device  == 0x9 ) {
++              if (ha->device_id == QLA2300_DEVICE_ID &&
++                  ha->pdev->subsystem_device  == 0x9 ) {
+                       /* Model Number */
+                       sprintf(ha->model_number,"QLA2300/2310");
+-              } else {
++              } else
++              {
++                      /* This should be later versions of 23xx, with NVRAM
++                       * support of hardware ID.
++                       */
++                      strncpy(ha->hw_id_version, nv->hw_id, NVRAM_HW_ID_SIZE);
++
+                       /* Get the Model Number from the NVRAM. If
+                        * the string is empty then lookup the table. 
+                        */     
+@@ -8286,13 +7877,15 @@ qla2x00_nvram_config(scsi_qla_host_t *ha
+                                       sprintf(ha->model_number,
+                                               qla2x00_model_name[index]);
+                               } else {
+-                                      sprintf(ha->model_number,
+-                                              "QLA23xx");
++                                      set_model_number(ha);
+                               }
+                       }
+               }
+               
+ #endif
++    
++              sprintf(ha->model_desc,"QLogic %s PCI Fibre Channel Adapter",
++                  ha->model_number);
+               /* Reset NVRAM data. */
+               memset(icb, 0, sizeof(init_cb_t));
+@@ -8348,6 +7941,7 @@ qla2x00_nvram_config(scsi_qla_host_t *ha
+               firmware_options.enable_full_login_on_lip = 1;
+ #if defined(ISP2300)
+               firmware_options.enable_fast_posting = 0;
++              icb->special_options.data_rate = 2;
+ #endif
+ #if !defined(FC_IP_SUPPORT)
+               /* Enable FC-Tape support */
+@@ -8355,25 +7949,30 @@ qla2x00_nvram_config(scsi_qla_host_t *ha
+               additional_firmware_options.enable_fc_tape = 1;
+               additional_firmware_options.enable_fc_confirm = 1;
+ #endif
++#if defined(ISP2200)
++              additional_firmware_options.operation_mode = 4;
++              icb->response_accum_timer = 3;
++              icb->interrupt_delay_timer = 5;
++#endif
+               /*
+                * Set host adapter parameters
+                */
+               ha->flags.enable_target_mode = firmware_options.enable_target_mode;
+               ha->flags.disable_luns = host_p.disable_luns;
++              if (check_device_id(ha)) 
++                      host_p.disable_risc_code_load = 0;
+               ha->flags.disable_risc_code_load = host_p.disable_risc_code_load;
+               ha->flags.set_cache_line_size_1 = host_p.set_cache_line_size_1;
+-              ha->flags.enable_64bit_addressing = host_p.enable_64bit_addressing;
+               if(host_p.enable_extended_logging)
+                       extended_error_logging = 1 ;
+-              qla2x00_config_dma_addressing(ha);
+-
+               ha->flags.enable_lip_reset = host_p.enable_lip_reset;
+               ha->flags.enable_lip_full_login = host_p.enable_lip_full_login;
+               ha->flags.enable_target_reset = host_p.enable_target_reset;
+               ha->flags.enable_flash_db_update = host_p.enable_database_storage;
+               ha->operating_mode = additional_firmware_options.connection_options;
+-
++              DEBUG2(printk("%s(%ld):operating mode=%d\n",__func__,
++                          ha->host_no, ha->operating_mode);)
+               /*
+                * Set serial firmware options
+                */
+@@ -8403,8 +8002,10 @@ qla2x00_nvram_config(scsi_qla_host_t *ha
+               ha->hiwat = le16_to_cpu(icb->iocb_allocation);
+               ha->execution_throttle = le16_to_cpu(nv->execution_throttle);
++#if defined(ISP2200) || defined(ISP2300)
+               if (nv->login_timeout < ql2xlogintimeout)
+                       nv->login_timeout = ql2xlogintimeout;
++#endif
+               icb->execution_throttle = __constant_cpu_to_le16(0xFFFF);
+               ha->retry_count = nv->retry_count;
+@@ -8475,8 +8076,7 @@ qla2x00_nvram_config(scsi_qla_host_t *ha
+               ha->binding_type = Bind;
+               if ((ha->binding_type != BIND_BY_PORT_NAME) &&
+-                      (ha->binding_type != BIND_BY_PORT_ID) &&
+-                      (ha->binding_type != BIND_BY_NODE_NAME)) {
++                      (ha->binding_type != BIND_BY_PORT_ID)) {
+                       printk(KERN_WARNING
+                               "scsi(%ld): Invalid binding type specified "
+@@ -8489,8 +8089,11 @@ qla2x00_nvram_config(scsi_qla_host_t *ha
+               /*
+                * Need enough time to try and get the port back.
+                */
++              ha->port_down_retry_count = 30;
++#if defined(ISP2200) || defined(ISP2300)
+               if (qlport_down_retry)
+                       ha->port_down_retry_count = qlport_down_retry;
++#endif
+ #if defined(COMPAQ)
+               else if (ha->port_down_retry_count < HSG80_PORT_RETRY_COUNT)
+                       ha->port_down_retry_count = HSG80_PORT_RETRY_COUNT;
+@@ -8503,6 +8106,11 @@ qla2x00_nvram_config(scsi_qla_host_t *ha
+               else if ( ha->port_down_retry_count > ha->login_retry_count )
+                       ha->login_retry_count = ha->port_down_retry_count;
++#if defined(ISP2200) || defined(ISP2300)
++              if(qlogin_retry_count)
++                      ha->login_retry_count = qlogin_retry_count;
++#endif
++
+               /*
+                * Setup ring parameters in initialization control block
+                */
+@@ -8512,14 +8120,10 @@ qla2x00_nvram_config(scsi_qla_host_t *ha
+                       __constant_cpu_to_le16(REQUEST_ENTRY_CNT);
+               icb->response_q_length     =
+                       __constant_cpu_to_le16(RESPONSE_ENTRY_CNT);
+-              icb->request_q_address[0]  =
+-                      cpu_to_le32(LS_64BITS(ha->request_dma));
+-              icb->request_q_address[1]  =
+-                      cpu_to_le32(MS_64BITS(ha->request_dma));
+-              icb->response_q_address[0] =
+-                      cpu_to_le32(LS_64BITS(ha->response_dma));
+-              icb->response_q_address[1] =
+-                      cpu_to_le32(MS_64BITS(ha->response_dma));
++              icb->request_q_address[0]  = cpu_to_le32(LSD(ha->request_dma));
++              icb->request_q_address[1]  = cpu_to_le32(MSD(ha->request_dma));
++              icb->response_q_address[0] = cpu_to_le32(LSD(ha->response_dma));
++              icb->response_q_address[1] = cpu_to_le32(MSD(ha->response_dma));
+               icb->lun_enables = __constant_cpu_to_le16(0);
+               icb->command_resource_count = 0;
+@@ -8531,14 +8135,14 @@ qla2x00_nvram_config(scsi_qla_host_t *ha
+               if (icb->additional_firmware_options.operation_mode 
+                               == ZIO_MODE){
+                       icb->interrupt_delay_timer = ql2xintrdelaytimer;
+-                      DEBUG2(printk(KERN_INFO "%s ZIO enabled:intr_timer_delay=%d\n",
+-                                              __func__,ql2xintrdelaytimer);)
++                      DEBUG2(printk(KERN_INFO "%s ZIO enabled:" 
++                                  " intr_timer_delay=%d\n", __func__,
++                                  ql2xintrdelaytimer);)
+                       printk(KERN_INFO "%s ZIO enabled:intr_timer_delay=%d\n",
+                                       __func__,ql2xintrdelaytimer);
+                       ha->flags.process_response_queue = 1;
+               }
+ #endif
+-
+               ha->qfull_retry_count = qfull_retry_count;
+               ha->qfull_retry_delay = qfull_retry_delay;
+@@ -8648,6 +8252,7 @@ qla2x00_nvram_request(scsi_qla_host_t *h
+       /* Deselect chip. */
+       WRT_REG_WORD(&reg->nvram, NV_DESELECT);
++      CACHE_FLUSH(&reg->nvram);
+       /* qla2x00_nv_delay(ha); */
+       NVRAM_DELAY();
+@@ -8660,13 +8265,15 @@ qla2x00_nv_write(scsi_qla_host_t *ha, ui
+       device_reg_t *reg = ha->iobase;
+       WRT_REG_WORD(&reg->nvram, data | NV_SELECT);
++      CACHE_FLUSH(&reg->nvram);
+       NVRAM_DELAY();
+-      /* qla2x00_nv_delay(ha); */
++
+       WRT_REG_WORD(&reg->nvram, data | NV_SELECT | NV_CLOCK);
+-      /* qla2x00_nv_delay(ha); */
++      CACHE_FLUSH(&reg->nvram);
+       NVRAM_DELAY();
++
+       WRT_REG_WORD(&reg->nvram, data | NV_SELECT);
+-      /* qla2x00_nv_delay(ha); */
++      CACHE_FLUSH(&reg->nvram);
+       NVRAM_DELAY();
+ }
+@@ -8676,6 +8283,7 @@ qla2x00_nv_deselect(scsi_qla_host_t *ha)
+       device_reg_t *reg = ha->iobase;
+       WRT_REG_WORD(&reg->nvram, NV_DESELECT);
++      CACHE_FLUSH(&reg->nvram);
+       NVRAM_DELAY();
+ }
+@@ -8696,16 +8304,8 @@ qla2x00_poll(scsi_qla_host_t *ha)
+       ENTER(__func__);
+-#ifdef __VMWARE__
+-   /* This function is only called from qla2x00_ms_req_pkt and
+-    * qla2x00_req_pkt. Since these functions drop the hardware
+-    * lock and we immediately regrab it here, we drop releasing
+-    * it there and drop grabbing it here. -- Thor
+-    */
+-#else
+       /* Acquire interrupt specific lock */
+       spin_lock_irqsave(&ha->hardware_lock, flags);
+-#endif
+       /* Check for pending interrupts. */
+ #if defined(ISP2100) || defined(ISP2200)
+@@ -8713,7 +8313,7 @@ qla2x00_poll(scsi_qla_host_t *ha)
+       if (data & RISC_INT)
+               qla2x00_isr(ha, data, &discard);
+ #else
+-      if (ha->device_id == QLA2312_DEVICE_ID) {
++      if (check_all_device_ids(ha)) {
+               data = RD_REG_WORD(&reg->istatus);
+               if (data & RISC_INT) {
+                       data = RD_REG_WORD(&reg->host_status_lo);
+@@ -8726,22 +8326,11 @@ qla2x00_poll(scsi_qla_host_t *ha)
+                       qla2x00_isr(ha, data, &discard);
+       }
+ #endif
+-#ifdef __VMWARE__
+-   /* Again, we do not grab and release this lock since the caller
+-    * already has this lock. The effect is that tasklet_schedule below
+-    * is called with interrupts disabled, which is fine. -- Thor
+-    */
+-#else
+       /* Release interrupt specific lock */
+       spin_unlock_irqrestore(&ha->hardware_lock, flags);
+-#endif
+       if (!list_empty(&ha->done_queue))
+-#if QLA2X_PERFORMANCE
+-              tasklet_schedule(&ha->run_qla_task);
+-#else
+               qla2x00_done(ha);
+-#endif
+       LEAVE(__func__);
+ }
+@@ -8756,7 +8345,7 @@ qla2x00_poll(scsi_qla_host_t *ha)
+ * Returns:
+ *      0 = success
+ */
+-static int
++int
+ qla2x00_restart_isp(scsi_qla_host_t *ha)
+ {
+       uint8_t         status = 0;
+@@ -8783,7 +8372,7 @@ qla2x00_restart_isp(scsi_qla_host_t *ha)
+                       spin_lock_irqsave(&ha->hardware_lock, flags);
+                       /* Enable proper parity */
+-                      if (ha->device_id == QLA2312_DEVICE_ID)
++                      if (check_all_device_ids(ha))       
+                               /* SRAM, Instruction RAM and GP RAM parity */
+                               WRT_REG_WORD(&reg->host_cmd,
+                                   (HC_ENABLE_PARITY + 0x7));
+@@ -8841,9 +8430,6 @@ qla2x00_abort_isp(scsi_qla_host_t *ha)
+       uint16_t       cnt;
+       srb_t          *sp;
+       uint8_t        status = 0;
+-#ifdef PERF_MONITORING
+-      os_lun_t        *lq;
+-#endif
+       ENTER("qla2x00_abort_isp");
+@@ -8861,8 +8447,8 @@ qla2x00_abort_isp(scsi_qla_host_t *ha)
+                       ha->host_no,ha);
+               qla2x00_reset_chip(ha);
+-              if (ha->loop_state != LOOP_DOWN) {
+-                      ha->loop_state = LOOP_DOWN;
++              if (atomic_read(&ha->loop_state) != LOOP_DOWN) {
++                      atomic_set(&ha->loop_state, LOOP_DOWN);
+                       atomic_set(&ha->loop_down_timer, LOOP_DOWN_TIME);
+                       qla2x00_mark_all_devices_lost(ha);
+               }
+@@ -8890,13 +8476,6 @@ qla2x00_abort_isp(scsi_qla_host_t *ha)
+                                       ha->actthreads--;
+                               sp->lun_queue->out_cnt--;
+                               ha->iocb_cnt -= sp->iocb_cnt;
+-#ifdef PERF_MONITORING
+-                              /* update stats */
+-                              lq = sp->lun_queue;
+-                              lq->resp_time += jiffies - sp->u_start; 
+-                              lq->act_time += jiffies - sp->r_start;  
+-#endif
+-                              
+                               sp->flags = 0;
+                               /* 
+@@ -9005,47 +8584,6 @@ qla2x00_abort_isp(scsi_qla_host_t *ha)
+ }
+ /*
+-* qla2x00_init_fc_db
+-*      Initializes Fibre Channel Device Database.
+-*
+-* Input:
+-*      ha = adapter block pointer.
+-*
+-* Output:
+-*      ha->fc_db = initialized
+-*/
+-STATIC void
+-qla2x00_init_fc_db(scsi_qla_host_t *ha)
+-{
+-      uint16_t cnt;
+-
+-      ENTER(__func__);
+-
+-      /* Initialize fc database if it is not initialized. */
+-      if (!ha->fc_db[0].loop_id && !ha->fc_db[1].loop_id) {
+-              ha->flags.updated_fc_db = FALSE;
+-
+-              /* Initialize target database. */
+-              for (cnt = 0; cnt < MAX_FIBRE_DEVICES; cnt++) {
+-                      ha->fc_db[cnt].name[0] = 0L;
+-                      ha->fc_db[cnt].name[1] = 0L;
+-                      ha->fc_db[cnt].loop_id = PORT_UNUSED;
+-                      ha->fc_db[cnt].port_login_retry_count =
+-                              ha->port_down_retry_count * PORT_RETRY_TIME;
+-                      ha->fc_db[cnt].flag = 0;   /* v2.19.5b3 */
+-              }
+-
+-#if USE_FLASH_DATABASE
+-              /* Move flash database to driver database. */
+-              qla2x00_get_database(ha);
+-#endif
+-      }
+-
+-      LEAVE(__func__);
+-}
+-
+-
+-/*
+ * qla2x00_init_tgt_map
+ *      Initializes target map.
+ *
+@@ -9069,6 +8607,35 @@ qla2x00_init_tgt_map(scsi_qla_host_t *ha
+ }
++/**
++ * qla2x00_alloc_fcport() - Allocate a generic fcport.
++ * @ha: HA context
++ * @flags: allocation flags
++ *
++ * Returns a pointer to the allocated fcport, or NULL, if none available.
++ */
++STATIC fc_port_t *
++qla2x00_alloc_fcport(scsi_qla_host_t *ha, int flags)
++{
++      fc_port_t *fcport;
++
++      fcport = kmalloc(sizeof(fc_port_t), flags);
++      if (fcport == NULL)
++              return (fcport);
++
++      /* Setup fcport template structure. */
++      memset(fcport, 0, sizeof (fc_port_t));
++      fcport->ha = ha;
++      fcport->port_type = FCT_UNKNOWN;
++      fcport->loop_id = FC_NO_LOOP_ID;
++      atomic_set(&fcport->state, FC_DEVICE_DEAD);
++      fcport->flags = FC_SUPPORT_RPT_LUNS;
++      INIT_LIST_HEAD(&fcport->fcluns);
++
++      return (fcport);
++}
++
++
+ /*
+ * qla2x00_reset_adapter
+ *      Reset adapter.
+@@ -9128,35 +8695,12 @@ qla2x00_loop_reset(scsi_qla_host_t *ha)
+                               continue;
+                       status = qla2x00_target_reset(ha, 0, t);
+-#ifndef __VMWARE__NO_BUG_FIX
+-                      /* Ignore error from qla2x00_target_reset(),
+-                       * because it is always returning an error in the
+-                       * multipath driver. */
+-#else
+-                      if (status != QL_STATUS_SUCCESS) {
+-                              break;
+-                      }
+-#endif
+               }
+       }
+-      if (
+-
+-#ifdef __VMWARE__NO_BUG_FIX
+-              status == QL_STATUS_SUCCESS &&
+-#else
+-   /* Do not look at status, since it may very well be the result of
+-    * the last target reset and will not tell whether the lip_reset
+-    * was completed successfully!!!
+-    */
+-#endif
+-              ((!ha->flags.enable_target_reset && 
+-                !ha->flags.enable_lip_reset) ||
+-              ha->flags.enable_lip_full_login)) {
++      if ((!ha->flags.enable_target_reset && !ha->flags.enable_lip_reset) ||
++              ha->flags.enable_lip_full_login) {
+-#ifdef __VMWARE__
+-        printk("Doing full login LIP\n");
+-#endif
+               status = qla2x00_full_login_lip(ha);
+       }
+@@ -9240,7 +8784,11 @@ __qla2x00_marker(scsi_qla_host_t *ha, ui
+       if (type != MK_SYNC_ALL) {
+               pkt->lun = cpu_to_le16(lun);
+-              pkt->target = (uint8_t)loop_id;
++#if defined(EXTENDED_IDS)
++                pkt->target = cpu_to_le16(loop_id);
++#else
++                pkt->target = (uint8_t)loop_id;
++#endif
+       }
+       /* Issue command to ISP */
+@@ -9416,7 +8964,6 @@ qla2x00_64bit_start_scsi(srb_t *sp)
+       uint32_t        timeout;
+       device_reg_t    *reg;
+-      uint16_t        reg_flushed;
+       ENTER(__func__);
+@@ -9440,6 +8987,7 @@ qla2x00_64bit_start_scsi(srb_t *sp)
+               ha->marker_needed = 0;
+       }
++
+       /* Acquire ring specific lock */
+       spin_lock_irqsave(&ha->hardware_lock, flags);
+@@ -9502,7 +9050,11 @@ qla2x00_64bit_start_scsi(srb_t *sp)
+       cur_dsd = (uint32_t *)&cmd_pkt->dseg_0_address;
+       /* Set target ID */
+-      cmd_pkt->target = (uint8_t)fclun->fcport->loop_id;
++#if defined(EXTENDED_IDS)
++        cmd_pkt->target = cpu_to_le16(fclun->fcport->loop_id);
++#else
++        cmd_pkt->target = (uint8_t)fclun->fcport->loop_id;
++#endif
+       /* Set LUN number*/
+ #if VSA
+@@ -9561,8 +9113,8 @@ qla2x00_64bit_start_scsi(srb_t *sp)
+       cmd_pkt->byte_count = cpu_to_le32((uint32_t)cmd->request_bufflen);
+-      if (cmd->request_bufflen == 0 || 
+-              cmd->sc_data_direction == SCSI_DATA_NONE) {
++      if (cmd->request_bufflen == 0 ||
++          cmd->sc_data_direction == SCSI_DATA_NONE) {
+               /* No data transfer */
+               cmd_pkt->byte_count = __constant_cpu_to_le32(0);
+               DEBUG5(printk("%s(): No data, command packet data - "
+@@ -9573,50 +9125,7 @@ qla2x00_64bit_start_scsi(srb_t *sp)
+                               (uint32_t)SCSI_LUN_32(cmd));)
+               DEBUG5(qla2x00_dump_buffer((uint8_t *)cmd_pkt,
+                                               REQUEST_ENTRY_SIZE);)
+-      }
+-      else {
+-#if defined(SANE_USAGE_OF_CMD_DIRECTION)
+-              /* Set transfer direction */
+-#ifndef __VMWARE__
+-              if (cmd->sc_data_direction == SCSI_DATA_WRITE) {
+-                      cmd_pkt->control_flags |=
+-                          __constant_cpu_to_le16(CF_WRITE);
+-              } else if (cmd->sc_data_direction == SCSI_DATA_READ) {
+-                      cmd_pkt->control_flags |=
+-                          __constant_cpu_to_le16(CF_READ);
+-              } else
+-#else
+-              /* Always set the data direction here, since the vmkernel
+-               * does not do it for us (otherwise it will hold a default
+-               * value of zero, which means SCSI_DATA_WRITE)
+-               */
+-              if (1)
+-#endif //__VMWARE__
+-              {
+-                      switch (cmd->data_cmnd[0]) {
+-                              case FORMAT_UNIT:
+-                              case WRITE_6:
+-                              case MODE_SELECT:
+-                              case SEND_DIAGNOSTIC:
+-                              case WRITE_10:
+-                              case WRITE_BUFFER:
+-                              case WRITE_LONG:
+-                              case WRITE_SAME:
+-                              case MODE_SELECT_10:
+-                              case WRITE_12:
+-                              case WRITE_VERIFY:
+-                              case WRITE_VERIFY_12:
+-                              case SEND_VOLUME_TAG:
+-                                      cmd_pkt->control_flags |=
+-                                         __constant_cpu_to_le16(CF_WRITE);
+-                                      break;
+-                              default:
+-                                      cmd_pkt->control_flags |=
+-                                         __constant_cpu_to_le16(CF_READ);
+-                                      break;
+-                      }
+-              }
+-#else
++      } else {
+               switch (cmd->data_cmnd[0]) {
+                       case FORMAT_UNIT:
+                       case WRITE_6:
+@@ -9635,20 +9144,15 @@ qla2x00_64bit_start_scsi(srb_t *sp)
+                                       __constant_cpu_to_le16(CF_WRITE);
+                               break;
+                       default:
+-#ifdef __VMWARE__
+-                              cmd_pkt->control_flags |=
+-                                         __constant_cpu_to_le16(CF_READ);
+-#else
+                               if (cmd->sc_data_direction == SCSI_DATA_WRITE)
+                                       cmd_pkt->control_flags |=
+                                          __constant_cpu_to_le16(CF_WRITE);
+                               else
+                                       cmd_pkt->control_flags |=
+                                          __constant_cpu_to_le16(CF_READ);
+-#endif //__VMWARE__
+                               break;
+               }
+-#endif
++
+               sp->dir = cmd_pkt->control_flags &
+                                 __constant_cpu_to_le16(CF_READ | CF_WRITE);
+@@ -9659,15 +9163,8 @@ qla2x00_64bit_start_scsi(srb_t *sp)
+                       int     nseg;
+                       cur_seg = (struct scatterlist *)cmd->request_buffer;
+-#ifdef __VMWARE__
+-                      /*
+-                      * The dma addresses in sg have already been set up.
+-                      */
+-                      nseg = cmd->use_sg;
+-#else
+                       nseg = pci_map_sg(ha->pdev, cur_seg, cmd->use_sg,
+                               scsi_to_pci_dma_dir(cmd->sc_data_direction));
+-#endif
+                       end_seg = cur_seg + nseg;
+                       while (cur_seg < end_seg) {
+@@ -9706,15 +9203,8 @@ qla2x00_64bit_start_scsi(srb_t *sp)
+                                               &nml_dma, &nml_len);
+                               /* One entry always consumed */
+-                              *cur_dsd++ = cpu_to_le32(
+-                                      pci_dma_lo32(sle_dma));
+-                              *cur_dsd++ = cpu_to_le32(
+-                                      pci_dma_hi32(sle_dma));
+-#ifdef PERF_MONITORING
+-                              if ( pci_dma_hi32(sle_dma) != 0L) {
+-                                      qla2x00_stats.highmem_io++;
+-                              }
+-#endif
++                              *cur_dsd++ = cpu_to_le32(LSD(sle_dma));
++                              *cur_dsd++ = cpu_to_le32(MSD(sle_dma));
+                               *cur_dsd++ = cpu_to_le32(sle_len);
+                               tot_dsds++;
+                               avail_dsds--;
+@@ -9746,10 +9236,8 @@ qla2x00_64bit_start_scsi(srb_t *sp)
+                                               avail_dsds = 5;
+                                       }
+-                                      *cur_dsd++ = cpu_to_le32(
+-                                                      pci_dma_lo32(nml_dma));
+-                                      *cur_dsd++ = cpu_to_le32(
+-                                                      pci_dma_hi32(nml_dma));
++                                      *cur_dsd++ = cpu_to_le32(LSD(nml_dma));
++                                      *cur_dsd++ = cpu_to_le32(MSD(nml_dma));
+                                       *cur_dsd++ = cpu_to_le32(nml_len);
+                                       tot_dsds++;
+                                       avail_dsds--;
+@@ -9771,12 +9259,6 @@ qla2x00_64bit_start_scsi(srb_t *sp)
+                       uint32_t        nml_len;
+                       uint32_t        normalized;
+-#ifdef __VMWARE__
+-                      /*
+-                      * We already have the machine address.
+-                      */
+-                      req_dma = (unsigned long)cmd->request_buffer;
+-#else
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,13)
+                       struct page *page = virt_to_page(cmd->request_buffer);
+                       unsigned long offset = ((unsigned long)
+@@ -9796,7 +9278,6 @@ qla2x00_64bit_start_scsi(srb_t *sp)
+                                       scsi_to_pci_dma_dir(
+                                               cmd->sc_data_direction));
+ #endif
+-#endif
+                       req_len = cmd->request_bufflen;
+                       sp->saved_dma_handle = req_dma;
+@@ -9806,23 +9287,14 @@ qla2x00_64bit_start_scsi(srb_t *sp)
+                                       &nml_dma, &nml_len);
+                       /* One entry always consumed */
+-                      *cur_dsd++ = cpu_to_le32(
+-                              pci_dma_lo32(req_dma));
+-                      *cur_dsd++ = cpu_to_le32(
+-                              pci_dma_hi32(req_dma));
++                      *cur_dsd++ = cpu_to_le32(LSD(req_dma));
++                      *cur_dsd++ = cpu_to_le32(MSD(req_dma));
+                       *cur_dsd++ = cpu_to_le32(req_len);
+                       tot_dsds++;
+-#ifdef PERF_MONITORING
+-                      if ( pci_dma_hi32(req_dma) != 0L) {
+-                              qla2x00_stats.highmem_io++;
+-                      }
+-#endif
+                       if (normalized) {
+-                              *cur_dsd++ = cpu_to_le32(
+-                                              pci_dma_lo32(nml_dma));
+-                              *cur_dsd++ = cpu_to_le32(
+-                                              pci_dma_hi32(nml_dma));
++                              *cur_dsd++ = cpu_to_le32(LSD(nml_dma));
++                              *cur_dsd++ = cpu_to_le32(MSD(nml_dma));
+                               *cur_dsd++ = cpu_to_le32(nml_len);
+                               tot_dsds++;
+                       }
+@@ -9857,6 +9329,16 @@ qla2x00_64bit_start_scsi(srb_t *sp)
+       ha->actthreads++;
+       ha->total_ios++;
++
++      if (cmd_pkt->control_flags & __constant_cpu_to_le16(CF_WRITE) &&
++          cmd->request_bufflen != 0) {
++              ha->total_output_cnt++;
++      } else if (cmd_pkt->control_flags & __constant_cpu_to_le16(CF_READ)) {
++              ha->total_input_cnt++;
++      } else {
++              ha->total_ctrl_cnt++;
++      }
++
+       sp->ha = ha;
+       sp->lun_queue->out_cnt++;
+       sp->flags |= SRB_DMA_VALID;
+@@ -9871,21 +9353,19 @@ qla2x00_64bit_start_scsi(srb_t *sp)
+ #endif
+ #if defined(ISP2100) || defined(ISP2200)
+-      reg_flushed = CACHE_FLUSH(&reg->mailbox4);
+       WRT_REG_WORD(&reg->mailbox4, ha->req_ring_index);
++      CACHE_FLUSH(&reg->mailbox4);
+ #else
+-      reg_flushed = CACHE_FLUSH(&reg->req_q_in);
+       WRT_REG_WORD(&reg->req_q_in, ha->req_ring_index);
++      CACHE_FLUSH(&reg->req_q_in);
+ #endif
+       spin_unlock_irqrestore(&ha->hardware_lock, flags);
+       return (0);
+ mapped_queuing_error_64:
+-#ifndef __VMWARE__
+       pci_unmap_sg(ha->pdev, (struct scatterlist *)cmd->request_buffer,
+               cmd->use_sg, scsi_to_pci_dma_dir(cmd->sc_data_direction));
+-#endif
+ queuing_error_64:
+       spin_unlock_irqrestore(&ha->hardware_lock, flags);
+@@ -9897,7 +9377,7 @@ queuing_error_64:
+ *      The start SCSI is responsible for building request packets on
+ *      request ring and modifying ISP input pointer.
+ *
+-*      The Qlogic firmware interface allows every queue slot to have a SCSI
++*      The QLogic firmware interface allows every queue slot to have a SCSI
+ *      command and up to 4 scatter/gather (SG) entries.  If we need more
+ *      than 4 SG entries, then continuation entries are used that can
+ *      hold another 7 entries each.  The start routine determines if there
+@@ -9937,7 +9417,6 @@ qla2x00_32bit_start_scsi(srb_t *sp)
+       uint32_t        timeout;
+       device_reg_t    *reg;
+-      uint16_t        reg_flushed;
+       ENTER(__func__);
+@@ -10023,7 +9502,11 @@ qla2x00_32bit_start_scsi(srb_t *sp)
+       cur_dsd = (uint32_t *)&cmd_pkt->dseg_0_address;
+       /* Set target ID */
++#if defined(EXTENDED_IDS)
++      cmd_pkt->target = cpu_to_le16(fclun->fcport->loop_id);
++#else
+       cmd_pkt->target = (uint8_t)fclun->fcport->loop_id;
++#endif
+       /* Set LUN number*/
+ #if VSA
+@@ -10094,50 +9577,7 @@ qla2x00_32bit_start_scsi(srb_t *sp)
+                               (uint32_t)SCSI_LUN_32(cmd));)
+               DEBUG5(qla2x00_dump_buffer((uint8_t *)cmd_pkt,
+                                               REQUEST_ENTRY_SIZE);)
+-      }
+-      else {
+-#if defined(SANE_USAGE_OF_CMD_DIRECTION)
+-#ifndef __VMWARE__
+-              /* Set transfer direction */
+-              if (cmd->sc_data_direction == SCSI_DATA_WRITE) {
+-                      cmd_pkt->control_flags |=
+-                              __constant_cpu_to_le16(CF_WRITE);
+-              } else if (cmd->sc_data_direction == SCSI_DATA_READ) {
+-                      cmd_pkt->control_flags |=
+-                              __constant_cpu_to_le16(CF_READ);
+-              } else
+-#else
+-              /* Always set the data direction here, since the vmkernel
+-               * does not do it for us (otherwise it will hold a default
+-               * value of zero, which means SCSI_DATA_WRITE)
+-               */
+-              if (1)
+-#endif //__VMWARE__
+-              {
+-                      switch (cmd->data_cmnd[0]) {
+-                              case FORMAT_UNIT:
+-                              case WRITE_6:
+-                              case MODE_SELECT:
+-                              case SEND_DIAGNOSTIC:
+-                              case WRITE_10:
+-                              case WRITE_BUFFER:
+-                              case WRITE_LONG:
+-                              case WRITE_SAME:
+-                              case MODE_SELECT_10:
+-                              case WRITE_12:
+-                              case WRITE_VERIFY:
+-                              case WRITE_VERIFY_12:
+-                              case SEND_VOLUME_TAG:
+-                                      cmd_pkt->control_flags |=
+-                                         __constant_cpu_to_le16(CF_WRITE);
+-                                      break;
+-                              default:
+-                                      cmd_pkt->control_flags |=
+-                                         __constant_cpu_to_le16(CF_READ);
+-                                      break;
+-                      }
+-              }
+-#else
++      } else {
+               switch (cmd->data_cmnd[0]) {
+                       case FORMAT_UNIT:
+                       case WRITE_6:
+@@ -10156,20 +9596,14 @@ qla2x00_32bit_start_scsi(srb_t *sp)
+                                       __constant_cpu_to_le16(CF_WRITE);
+                               break;
+                       default:
+-#ifdef __VMWARE__
+-                              cmd_pkt->control_flags |=
+-                                         __constant_cpu_to_le16(CF_READ);
+-#else
+                               if (cmd->sc_data_direction == SCSI_DATA_WRITE)
+                                       cmd_pkt->control_flags |=
+                                          __constant_cpu_to_le16(CF_WRITE);
+                               else
+                                       cmd_pkt->control_flags |=
+                                          __constant_cpu_to_le16(CF_READ);
+-#endif //__VMWARE__
+                               break;
+               }
+-#endif
+               sp->dir = cmd_pkt->control_flags &
+                                 __constant_cpu_to_le16(CF_READ | CF_WRITE);
+@@ -10180,21 +9614,11 @@ qla2x00_32bit_start_scsi(srb_t *sp)
+                       int     nseg;
+                       cur_seg = (struct scatterlist *)cmd->request_buffer;
+-#ifdef __VMWARE__
+-                      /*
+-                       * The dma addresses in sg have already been set up.
+-                       */
+-                      nseg = cmd->use_sg;
+-#else
+                       nseg = pci_map_sg(ha->pdev, cur_seg, cmd->use_sg,
+                               scsi_to_pci_dma_dir(cmd->sc_data_direction));
+-#endif
+                       end_seg = cur_seg + nseg;
+                       while (cur_seg < end_seg) {
+-                              dma_addr_t      sle_dma;
+-                              uint32_t        sle_len;
+-
+                               /* Allocate additional continuation packets? */
+                               if (avail_dsds == 0) {
+                                       tot_iocbs++;
+@@ -10216,13 +9640,10 @@ qla2x00_32bit_start_scsi(srb_t *sp)
+                                       avail_dsds = 7;
+                               }
+-                              sle_dma = sg_dma_address(cur_seg);
+-                              sle_len = sg_dma_len(cur_seg);
+-
+                               /* One entry always consumed */
+-                              *cur_dsd++ = cpu_to_le32(
+-                                      pci_dma_lo32(sle_dma));
+-                              *cur_dsd++ = cpu_to_le32(sle_len);
++                              *cur_dsd++ =
++                                  cpu_to_le32(sg_dma_address(cur_seg));
++                              *cur_dsd++ = cpu_to_le32(sg_dma_len(cur_seg));
+                               tot_dsds++;
+                               avail_dsds--;
+@@ -10235,14 +9656,7 @@ qla2x00_32bit_start_scsi(srb_t *sp)
+                        * of request.
+                        */
+                       dma_addr_t      req_dma;
+-                      uint32_t        req_len;
+-#ifdef __VMWARE__
+-                      /*
+-                       * We already have the machine address.
+-                       */
+-                      req_dma = (unsigned long)cmd->request_buffer;
+-#else
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,13)
+                       struct page *page = virt_to_page(cmd->request_buffer);
+                       unsigned long offset = ((unsigned long)
+@@ -10262,15 +9676,11 @@ qla2x00_32bit_start_scsi(srb_t *sp)
+                                       scsi_to_pci_dma_dir(
+                                               cmd->sc_data_direction));
+ #endif
+-#endif
+-                      req_len = cmd->request_bufflen;
+-
+                       sp->saved_dma_handle = req_dma;
+                       /* One entry always consumed */
+-                      *cur_dsd++ = cpu_to_le32(
+-                              pci_dma_lo32(req_dma));
+-                      *cur_dsd++ = cpu_to_le32(req_len);
++                      *cur_dsd++ = cpu_to_le32(req_dma);
++                      *cur_dsd++ = cpu_to_le32(cmd->request_bufflen);
+                       tot_dsds++;
+               }
+       }
+@@ -10302,6 +9712,16 @@ qla2x00_32bit_start_scsi(srb_t *sp)
+       ha->actthreads++;
+       ha->total_ios++;
++
++      if (cmd_pkt->control_flags & __constant_cpu_to_le16(CF_WRITE) &&
++          cmd->request_bufflen != 0) {
++              ha->total_output_cnt++;
++      } else if (cmd_pkt->control_flags & __constant_cpu_to_le16(CF_READ)) {
++              ha->total_input_cnt++;
++      } else {
++              ha->total_ctrl_cnt++;
++      }
++
+       sp->ha = ha;
+       sp->lun_queue->out_cnt++;
+       sp->flags |= SRB_DMA_VALID;
+@@ -10316,21 +9736,19 @@ qla2x00_32bit_start_scsi(srb_t *sp)
+ #endif
+ #if defined(ISP2100) || defined(ISP2200)
+-      reg_flushed = CACHE_FLUSH(&reg->mailbox4);
+       WRT_REG_WORD(&reg->mailbox4, ha->req_ring_index);
++      CACHE_FLUSH(&reg->mailbox4);
+ #else
+-      reg_flushed = CACHE_FLUSH(&reg->req_q_in);
+       WRT_REG_WORD(&reg->req_q_in, ha->req_ring_index);
++      CACHE_FLUSH(&reg->req_q_in);
+ #endif
+       spin_unlock_irqrestore(&ha->hardware_lock, flags);
+       return (0);
+ mapped_queuing_error_32:
+-#ifndef __VMWARE__
+       pci_unmap_sg(ha->pdev, (struct scatterlist *)cmd->request_buffer,
+               cmd->use_sg, scsi_to_pci_dma_dir(cmd->sc_data_direction));
+-#endif
+ queuing_error_32:
+       spin_unlock_irqrestore(&ha->hardware_lock, flags);
+@@ -10428,16 +9846,6 @@ qla2x00_ms_req_pkt(scsi_qla_host_t *ha, 
+                       break;
+               }
+-#ifdef __VMWARE__
+-              /* The qla2x00_poll function is only called from here and
+-               * from qla2x00_req_pkt (in a similar way). Since
+-               * qla2x00_poll will immediately regrab the hardware lock,
+-               * we drop releasing it here and drop grabbing it in the
+-               * poll function. -- Thor
+-               */
+-              udelay(20);
+-              qla2x00_poll(ha);
+-#else
+               /* Release ring specific lock */
+               spin_unlock(&ha->hardware_lock);
+               udelay(20);
+@@ -10445,7 +9853,6 @@ qla2x00_ms_req_pkt(scsi_qla_host_t *ha, 
+               /* Check for pending interrupts. */
+               qla2x00_poll(ha);
+               spin_lock_irq(&ha->hardware_lock);
+-#endif
+       }
+ #if defined(QL_DEBUG_LEVEL_2) || defined(QL_DEBUG_LEVEL_3)
+@@ -10517,17 +9924,6 @@ qla2x00_req_pkt(scsi_qla_host_t *ha)
+                       break;
+               }
+-#ifdef __VMWARE__
+-              /* The qla2x00_poll function is only called from here and
+-               * from qla2x00_ms_req_pkt (in a similar way). Since
+-               * qla2x00_poll will immediately regrab the hardware lock,
+-               * we drop releasing it here and drop grabbing it in the
+-               * poll function. -- Thor
+-               */
+-              udelay(2);
+-              if (!ha->marker_needed)
+-                      qla2x00_poll(ha);
+-#else
+               /* Release ring specific lock */
+               spin_unlock(&ha->hardware_lock);
+@@ -10539,7 +9935,6 @@ qla2x00_req_pkt(scsi_qla_host_t *ha)
+                       qla2x00_poll(ha);
+               spin_lock_irq(&ha->hardware_lock);
+-#endif
+       }
+ #if defined(QL_DEBUG_LEVEL_2) || defined(QL_DEBUG_LEVEL_3)
+@@ -10582,8 +9977,10 @@ qla2x00_isp_cmd(scsi_qla_host_t *ha)
+       /* Set chip new ring index. */
+ #if defined(ISP2100) || defined(ISP2200)
+       WRT_REG_WORD(&reg->mailbox4, ha->req_ring_index);
++      CACHE_FLUSH(&reg->mailbox4);
+ #else
+       WRT_REG_WORD(&reg->req_q_in, ha->req_ring_index);
++      CACHE_FLUSH(&reg->req_q_in);
+ #endif
+       LEAVE(__func__);
+@@ -10644,9 +10041,6 @@ qla2x00_process_good_request(struct scsi
+ {
+       srb_t *sp;
+       struct scsi_qla_host *vis_ha;
+-#ifdef PERF_MONITORING
+-      os_lun_t        *lq;
+-#endif
+       ENTER(__func__);
+@@ -10673,13 +10067,6 @@ qla2x00_process_good_request(struct scsi
+               CMD_COMPL_STATUS(sp->cmd) = 0L;
+               CMD_SCSI_STATUS(sp->cmd) = 0L;
+-#ifdef PERF_MONITORING
+-              /* update stats */
+-              lq = sp->lun_queue;
+-              lq->resp_time += jiffies - sp->u_start; 
+-              lq->act_time += jiffies - sp->r_start;  
+-#endif
+-
+               /* Save ISP completion status */
+               CMD_RESULT(sp->cmd) = DID_OK << 16;
+               sp->fo_retry_cnt = 0;
+@@ -10791,7 +10178,7 @@ qla2x00_isr(scsi_qla_host_t *ha, uint16_
+ #if defined(ISP2100) || defined(ISP2200)
+       uint16_t     response_index = RESPONSE_ENTRY_CNT;
+ #endif
+-#if defined(ISP2300)
++#if defined(ISP2300) 
+       uint16_t     temp2;
+       uint8_t      mailbox_int;
+       uint16_t     hccr;
+@@ -10823,6 +10210,7 @@ qla2x00_isr(scsi_qla_host_t *ha, uint16_
+                * get out of the RISC PAUSED state.
+                */
+               WRT_REG_WORD(&reg->host_cmd, HC_RESET_RISC);
++              CACHE_FLUSH(&reg->host_cmd);
+               set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+       }
+ #endif
+@@ -10852,6 +10240,7 @@ qla2x00_isr(scsi_qla_host_t *ha, uint16_
+                       break;
+               case RESPONSE_QUEUE_INT:
+                       WRT_REG_WORD(&reg->host_cmd, HC_CLR_RISC_INT);
++                      CACHE_FLUSH(&reg->host_cmd);
+                       goto response_queue_int;
+                       break;
+@@ -10922,7 +10311,8 @@ qla2x00_isr(scsi_qla_host_t *ha, uint16_
+                  if (!(test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags)))
+                  QLA_MBX_REG_LOCK(ha);
+                */
+-              if (temp1 == MBA_SCSI_COMPLETION) {
++              if (( temp1 == MBA_SCSI_COMPLETION) ||
++                      ((temp1 >= RIO_MBS_CMD_CMP_1_16) && (temp1 <= RIO_MBS_CMD_CMP_5_16))) {
+ #if defined(ISP2100) || defined(ISP2200)
+                       mailbox[1] = RD_REG_WORD(&reg->mailbox1);
+ #else
+@@ -10930,6 +10320,10 @@ qla2x00_isr(scsi_qla_host_t *ha, uint16_
+ #endif
+                       mailbox[2] = RD_REG_WORD(&reg->mailbox2);
++                      mailbox[3] = RD_REG_WORD(&reg->mailbox3);
++                      mailbox[5] = RD_REG_WORD(&reg->mailbox5);
++                      mailbox[6] = RD_REG_WORD(&reg->mailbox6);
++                      mailbox[7] = RD_REG_WORD(&reg->mailbox7);
+               } else {
+                       MBOX_TRACE(ha,BIT_4);
+                       mailbox[0] = temp1;
+@@ -10960,6 +10354,7 @@ qla2x00_isr(scsi_qla_host_t *ha, uint16_
+               /* Release mailbox registers. */
+               WRT_REG_WORD(&reg->semaphore, 0);
+               WRT_REG_WORD(&reg->host_cmd, HC_CLR_RISC_INT);
++              CACHE_FLUSH(&reg->host_cmd);
+               DEBUG5(printk("%s(): mailbox interrupt mailbox[0] = %x.\n",
+                               __func__,
+@@ -10968,12 +10363,10 @@ qla2x00_isr(scsi_qla_host_t *ha, uint16_
+               /* Handle asynchronous event */
+               switch (temp1) {
+-#if  defined(ISP2300)
+                       case MBA_ZIO_UPDATE:
+                               DEBUG5(printk("%s ZIO update completion\n",
+                                                       __func__);)
+                               break;
+-#endif
+                       case MBA_SCSI_COMPLETION:       /* Completion */
+                               
+                               DEBUG5(printk("%s(): mailbox response "
+@@ -10984,12 +10377,73 @@ qla2x00_isr(scsi_qla_host_t *ha, uint16_
+                                       break;
+                               /* Get outstanding command index  */
+-                              index = (uint32_t)
+-                                              (mailbox[2] << 16 | mailbox[1]);
++                              index = le32_to_cpu(((uint32_t)(mailbox[2] << 16)) | mailbox[1]);
++
+                               qla2x00_process_good_request(ha,
+                                               index, MBA_SCSI_COMPLETION);
+                               break;
++                      case RIO_MBS_CMD_CMP_1_16:      /* Mitigated Response completion */
++                              DEBUG5(printk("qla2100_isr: mailbox response completion\n"));
++                              if (ha->flags.online) {
++                                      /* Get outstanding command index. */
++                                      index = (uint32_t) (mailbox[1]);
++                                      qla2x00_process_good_request(ha, index, RIO_MBS_CMD_CMP_1_16);
++                              }
++                              break;
++                      case RIO_MBS_CMD_CMP_2_16:      /* Mitigated Response completion */
++                              DEBUG5(printk("qla2100_isr: mailbox response completion\n"));
++                              if (ha->flags.online) {
++                                      /* Get outstanding command index. */
++                                      index = (uint32_t) (mailbox[1]);
++                                      qla2x00_process_good_request(ha, index, RIO_MBS_CMD_CMP_2_16);
++                                      index = (uint32_t) (mailbox[2]);
++                                      qla2x00_process_good_request(ha, index, RIO_MBS_CMD_CMP_2_16);
++                              }
++                              break;
++                      case RIO_MBS_CMD_CMP_3_16:      /* Mitigated Response completion */
++                              DEBUG5(printk("qla2100_isr: mailbox response completion\n"));
++                              if (ha->flags.online) {
++                                      /* Get outstanding command index. */
++                                      index = (uint32_t) (mailbox[1]);
++                                      qla2x00_process_good_request(ha, index, RIO_MBS_CMD_CMP_3_16);
++                                      index = (uint32_t) (mailbox[2]);
++                                      qla2x00_process_good_request(ha, index, RIO_MBS_CMD_CMP_3_16);
++                                      index = (uint32_t) (mailbox[3]);
++                                      qla2x00_process_good_request(ha, index, RIO_MBS_CMD_CMP_3_16);
++                              }
++                              break;
++                      case RIO_MBS_CMD_CMP_4_16:      /* Mitigated Response completion */
++                              DEBUG5(printk("qla2100_isr: mailbox response completion\n"));
++                              if (ha->flags.online) {
++                                      /* Get outstanding command index. */
++                                      index = (uint32_t) (mailbox[1]);
++                                      qla2x00_process_good_request(ha, index, RIO_MBS_CMD_CMP_4_16);
++                                      index = (uint32_t) (mailbox[2]);
++                                      qla2x00_process_good_request(ha, index, RIO_MBS_CMD_CMP_4_16);
++                                      index = (uint32_t) (mailbox[3]);
++                                      qla2x00_process_good_request(ha, index, RIO_MBS_CMD_CMP_4_16);
++                                      index = (uint32_t) (mailbox[6]);
++                                      qla2x00_process_good_request(ha, index, RIO_MBS_CMD_CMP_4_16);
++                              }
++                              break;
++                      case RIO_MBS_CMD_CMP_5_16:      /* Mitigated Response completion */
++                              DEBUG5(printk("qla2100_isr: mailbox response completion\n"));
++                              if (ha->flags.online) {
++                                      /* Get outstanding command index. */
++                                      index = (uint32_t) (mailbox[1]);
++                                      qla2x00_process_good_request(ha, index, RIO_MBS_CMD_CMP_5_16);
++                                      index = (uint32_t) (mailbox[2]);
++                                      qla2x00_process_good_request(ha, index, RIO_MBS_CMD_CMP_5_16);
++                                      index = (uint32_t) (mailbox[3]);
++                                      qla2x00_process_good_request(ha, index, RIO_MBS_CMD_CMP_5_16);
++                                      index = (uint32_t) (mailbox[6]);
++                                      qla2x00_process_good_request(ha, index, RIO_MBS_CMD_CMP_5_16);
++                                      index = (uint32_t) (mailbox[7]);
++                                      qla2x00_process_good_request(ha, index, RIO_MBS_CMD_CMP_5_16);
++                              }
++                              break;
++                              
+                       case MBA_RESET:                 /* Reset */
+                               DEBUG2(printk(KERN_INFO "scsi(%ld): %s: asynchronous "
+@@ -11061,8 +10515,8 @@ qla2x00_isr(scsi_qla_host_t *ha, uint16_
+                               /* Save LIP sequence. */
+                               ha->lip_seq = mailbox[1];
+-                              if (ha->loop_state != LOOP_DOWN) {
+-                                      ha->loop_state = LOOP_DOWN;
++                              if (atomic_read(&ha->loop_state) != LOOP_DOWN) {
++                                      atomic_set(&ha->loop_state, LOOP_DOWN);
+                                       atomic_set(&ha->loop_down_timer,
+                                                       LOOP_DOWN_TIME);
+                                       qla2x00_mark_all_devices_lost(ha);
+@@ -11125,13 +10579,16 @@ qla2x00_isr(scsi_qla_host_t *ha, uint16_
+                                               "MBA_LOOP_DOWN.\n",
+                                               ha->host_no, __func__);)
+-                              if (ha->loop_state != LOOP_DOWN) {
+-                                      ha->loop_state = LOOP_DOWN;
++                              if (atomic_read(&ha->loop_state) != LOOP_DOWN) {
++                                      ha->device_flags |= DFLG_NO_CABLE;
++                                      atomic_set(&ha->loop_state, LOOP_DOWN);
+                                       atomic_set(&ha->loop_down_timer,
+-                                                      LOOP_DOWN_TIME);
++                                          LOOP_DOWN_TIME);
+                                       qla2x00_mark_all_devices_lost(ha);
+                               }
++                              clear_bit(FDMI_REGISTER_NEEDED, &ha->fdmi_flags);
++
+                               ha->flags.management_server_logged_in = 0;
+                               ha->current_speed = 0; /* reset value */
+@@ -11157,10 +10614,10 @@ qla2x00_isr(scsi_qla_host_t *ha, uint16_
+                               set_bit(COMMAND_WAIT_NEEDED, &ha->dpc_flags);
+                               set_bit(RESET_MARKER_NEEDED, &ha->dpc_flags);
+-                              if( ha->loop_state != LOOP_DOWN ) {
+-                                      atomic_set(&ha->loop_down_timer, 
+-                                                      LOOP_DOWN_TIME);
+-                                      ha->loop_state = LOOP_DOWN;
++                              if (atomic_read(&ha->loop_state) != LOOP_DOWN) {
++                                      atomic_set(&ha->loop_state, LOOP_DOWN);
++                                      atomic_set(&ha->loop_down_timer,
++                                          LOOP_DOWN_TIME);
+                                       qla2x00_mark_all_devices_lost(ha);
+                               }
+                               ha->operating_mode = LOOP;
+@@ -11202,12 +10659,12 @@ qla2x00_isr(scsi_qla_host_t *ha, uint16_
+                               set_bit(REGISTER_FC4_NEEDED, &ha->dpc_flags);
+ #endif
+-                              if (ha->loop_state != LOOP_DOWN) {
++                              if (atomic_read(&ha->loop_state) != LOOP_DOWN) {
+                                       if (!atomic_read(&ha->loop_down_timer))
+                                               atomic_set(&ha->loop_down_timer,
+-                                                              LOOP_DOWN_TIME);
++                                                  LOOP_DOWN_TIME);
+-                                      ha->loop_state = LOOP_DOWN;
++                                      atomic_set(&ha->loop_state, LOOP_DOWN);
+                                       qla2x00_mark_all_devices_lost(ha);
+                               }
+                               break;
+@@ -11224,9 +10681,9 @@ qla2x00_isr(scsi_qla_host_t *ha, uint16_
+                                               "MBA_UPDATE_CONFIG.\n",
+                                               ha->host_no, __func__);)
+-                              if (ha->loop_state != LOOP_DOWN) {
++                              if (atomic_read(&ha->loop_state) != LOOP_DOWN) {
+                                       /* dg - 03/30 */
+-                                      ha->loop_state = LOOP_DOWN;  
++                                      atomic_set(&ha->loop_state, LOOP_DOWN);  
+                                       if (!atomic_read(&ha->loop_down_timer))
+                                               atomic_set(&ha->loop_down_timer,
+                                                               LOOP_DOWN_TIME);
+@@ -11247,7 +10704,7 @@ qla2x00_isr(scsi_qla_host_t *ha, uint16_
+                             * to come in.
+                             */
+                               
+-                           if (ha->loop_state == LOOP_DOWN) {
++                           if (atomic_read(&ha->loop_state) == LOOP_DOWN) {
+                               printk(KERN_INFO "scsi(%ld): Port database "
+                                               "changed.\n",
+                                               ha->host_no);
+@@ -11256,6 +10713,8 @@ qla2x00_isr(scsi_qla_host_t *ha, uint16_
+                                               "MBA_PORT_UPDATE.\n",
+                                               ha->host_no, __func__);)
++                              set_bit(FDMI_REGISTER_NEEDED, &ha->fdmi_flags);
++
+                               /* dg - 06/19/01
+                                *
+                                * Mark all devices as missing so we will
+@@ -11264,7 +10723,7 @@ qla2x00_isr(scsi_qla_host_t *ha, uint16_
+                               ha->flags.rscn_queue_overflow = 1;
+                               atomic_set(&ha->loop_down_timer, 0);
+-                              ha->loop_state = LOOP_UP;
++                              atomic_set(&ha->loop_state, LOOP_UP);
+                               qla2x00_mark_all_devices_lost(ha);
+                               set_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags);
+                               set_bit(LOCAL_LOOP_UPDATE, &ha->dpc_flags);
+@@ -11273,7 +10732,7 @@ qla2x00_isr(scsi_qla_host_t *ha, uint16_
+                                *
+                                * ha->flags.loop_resync_needed = TRUE;
+                                */
+-                              ha->loop_state = LOOP_UPDATE;
++                              atomic_set(&ha->loop_state, LOOP_UPDATE);
+                               if (ha->ioctl->flags &
+                                               IOCTL_AEN_TRACKING_ENABLE) {
+                                       /* Update AEN queue. */
+@@ -11295,10 +10754,11 @@ qla2x00_isr(scsi_qla_host_t *ha, uint16_
+                                               ha->host_no,
+                                               mailbox[1],
+                                               mailbox[2]);)
+-
+-                              DEBUG3(printk("scsi%ld %s: asynchronous "
+-                                              "MBA_RSCR_UPDATE.\n",
+-                                              ha->host_no, __func__);)
++                              printk(KERN_INFO "scsi(%ld): RSCN database changed "
++                                              "-0x%x,0x%x.\n",
++                                              ha->host_no,
++                                              mailbox[1],
++                                              mailbox[2]);
+                               rscn_queue_index = ha->rscn_in_ptr + 1;
+                               if (rscn_queue_index == MAX_RSCN_COUNT)
+@@ -11327,13 +10787,12 @@ qla2x00_isr(scsi_qla_host_t *ha, uint16_
+                               atomic_set(&ha->loop_down_timer, 0);
+                               ha->flags.management_server_logged_in = 0;
+-                              ha->loop_state = LOOP_UPDATE;
++                              atomic_set(&ha->loop_state, LOOP_UPDATE);
+                               if (ha->ioctl->flags &
+-                                              IOCTL_AEN_TRACKING_ENABLE) {
++                                  IOCTL_AEN_TRACKING_ENABLE) {
+                                       /* Update AEN queue. */
+                                       qla2x00_enqueue_aen(ha,
+-                                                      MBA_RSCN_UPDATE,
+-                                                      &mailbox[0]);
++                                          MBA_RSCN_UPDATE, &mailbox[0]);
+                               }
+                               break;
+@@ -11345,6 +10804,7 @@ qla2x00_isr(scsi_qla_host_t *ha, uint16_
+                               break;
++
+                       default:
+                               if (temp1 >= MBA_ASYNC_EVENT)
+@@ -11366,14 +10826,13 @@ qla2x00_isr(scsi_qla_host_t *ha, uint16_
+                                                       "ERROR.\n",
+                                                       __func__);)
+                               }
+-                              DEBUG5(printk("%s(): Returning mailbox data\n",
++                              DEBUG3(printk("%s(): Returning mailbox data\n",
+                                               __func__);)
+                               break;
+               }
+       } else {
+               WRT_REG_WORD(&reg->host_cmd, HC_CLR_RISC_INT);
+       }
+-
+ #if defined(ISP2300)
+ response_queue_int:
+ #endif
+@@ -11425,6 +10884,42 @@ qla2x00_rst_aen(scsi_qla_host_t *ha) 
+       LEAVE(__func__);
+ }
++
++static void qla2x00_handle_RIO_type2_iocb(struct scsi_qla_host * ha, response_t *pkt)
++{
++      struct rio_iocb_type2_entry *rio;
++      int i;
++      ENTER("qla2x00_handle_RIO_type2_iocb");
++      
++      rio = (struct rio_iocb_type2_entry *) pkt;
++
++      if (rio->handle_count > 29) {
++              printk("Invalid packet 22 count: %i \n", rio->handle_count);
++      }
++
++      for (i=0; i < rio->handle_count; i++) 
++              qla2x00_process_good_request(ha, rio->handle[i], 0x22);
++      LEAVE("qla2x00_handle_RIO_type2_iocb");
++}
++
++static void qla2x00_handle_RIO_type1_iocb(struct scsi_qla_host * ha, response_t *pkt)
++{
++      struct rio_iocb_type1_entry *rio;
++      int i;
++      ENTER("qla2x00_handle_RIO_type1_iocb");
++
++      rio = (struct rio_iocb_type1_entry *) pkt;
++
++      if (rio->handle_count > 14) {
++              printk("Invalid packet 21 count! %i\n", rio->handle_count);
++      }
++
++      for (i=0; i < rio->handle_count; i++) 
++              qla2x00_process_good_request(ha, rio->handle[i], 0x22);
++      LEAVE("qla2x00_handle_RIO_type1_iocb");
++      
++}
++
+ /*
+  *  qla2x00_process_response_queue
+  *      Processes Response Queue.
+@@ -11443,10 +10938,9 @@ qla2x00_process_response_queue(scsi_qla_
+       while (ha->response_ring_ptr->signature != RESPONSE_PROCESSED ) {
+               pkt = ( sts_entry_t *) ha->response_ring_ptr;
+-              DEBUG5(printk("%s(): ha->rsp_ring_index=%ld index=%ld.\n",
++              DEBUG5(printk("%s(): ha->rsp_ring_index=%ld.\n",
+                               __func__,
+-                              (u_long)ha->rsp_ring_index, 
+-                              (u_long)index);)
++                              (u_long)ha->rsp_ring_index));
+               DEBUG5(printk("%s(): response packet data:", __func__);)
+               DEBUG5(qla2x00_dump_buffer((uint8_t *)pkt,
+                               RESPONSE_ENTRY_SIZE);)
+@@ -11473,6 +10967,7 @@ qla2x00_process_response_queue(scsi_qla_
+                                       __func__);)
+                       qla2x00_error_entry(ha, pkt);
+                       ((response_t *)pkt)->signature = RESPONSE_PROCESSED;
++                      wmb();
+                       continue;
+               }
+@@ -11504,7 +10999,7 @@ qla2x00_process_response_queue(scsi_qla_
+                       case ET_IP_RECEIVE:
+                               /* Handle IP receive packet */
+-                              qla2x00_ip_receive(ha, pkt);
++                              qla2x00_ip_receive(ha, (request_t *)pkt);
+                               break;
+                       case ET_MAILBOX_COMMAND:
+@@ -11514,6 +11009,12 @@ qla2x00_process_response_queue(scsi_qla_
+                                       break;
+                               }       
+ #endif  /* FC_IP_SUPPORT */
++                      case RIO_IOCB_TYPE1:
++                              qla2x00_handle_RIO_type1_iocb(ha, (response_t*)pkt);
++                              break;
++                      case RIO_IOCB_TYPE2:
++                              qla2x00_handle_RIO_type2_iocb(ha, (response_t*)pkt);
++                              break;
+                       default:
+                               /* Type Not Supported. */
+@@ -11527,13 +11028,16 @@ qla2x00_process_response_queue(scsi_qla_
+                               break;
+               }
+               ((response_t *)pkt)->signature = RESPONSE_PROCESSED;
++              wmb();
+       } 
+       /* Adjust ring index -- once, instead of for all entries. */
+ #if defined(ISP2100) || defined(ISP2200)
+       WRT_REG_WORD(&reg->mailbox5, ha->rsp_ring_index);
++      CACHE_FLUSH(&reg->mailbox5);
+ #else
+       WRT_REG_WORD(&reg->rsp_q_out, ha->rsp_ring_index);
++      CACHE_FLUSH(&reg->rsp_q_out);
+ #endif
+       LEAVE(__func__);
+@@ -11587,6 +11091,7 @@ qla2x00_status_entry(scsi_qla_host_t *ha
+       uint8_t         lscsi_status;
+       fc_port_t       *fcport;
+       scsi_qla_host_t *vis_ha;
++      uint16_t        rsp_info_len;
+       ENTER(__func__);
+@@ -11664,20 +11169,13 @@ qla2x00_status_entry(scsi_qla_host_t *ha
+       tq = sp->tgt_queue;
+       lq = sp->lun_queue;
+-#ifdef PERF_MONITORING
+-      /* update stats */
+-      lq->resp_time += jiffies - sp->u_start; 
+-      lq->act_time += jiffies - sp->r_start;  
+-#endif
+-
+       /*
+        * If loop is in transient state Report DID_BUS_BUSY
+        */
+-      if (!(sp->flags & SRB_IOCTL) &&
+-              (atomic_read(&ha->loop_down_timer) ||
+-               ha->loop_state != LOOP_READY) &&
+-              (comp_status != CS_COMPLETE ||
+-               scsi_status != 0)) {
++      if (!(sp->flags & (SRB_IOCTL | SRB_TAPE | SRB_FDMI_CMD)) &&
++          (atomic_read(&ha->loop_down_timer) ||
++              atomic_read(&ha->loop_state) != LOOP_READY) &&
++          (comp_status != CS_COMPLETE || scsi_status != 0)) {
+               DEBUG2(printk(KERN_INFO "scsi(%ld:%d:%d:%d): Loop Not Ready - pid=%lx.\n",
+                               ha->host_no, 
+@@ -11693,6 +11191,24 @@ qla2x00_status_entry(scsi_qla_host_t *ha
+               return;
+       }
++      /* Check for any FCP transport errors. */
++      if (scsi_status & SS_RESPONSE_INFO_LEN_VALID) {
++              rsp_info_len = le16_to_cpu(pkt->rsp_info_len);
++              if (rsp_info_len > 3 && pkt->rsp_info[3]) {
++                      DEBUG2(printk("scsi(%ld:%d:%d:%d) FCP I/O protocol "
++                          "failure (%x/%02x%02x%02x%02x%02x%02x%02x%02x)..."
++                          "retrying command\n", ha->host_no, b, t, l,
++                          rsp_info_len, pkt->rsp_info[0], pkt->rsp_info[1],
++                          pkt->rsp_info[2], pkt->rsp_info[3],
++                          pkt->rsp_info[4], pkt->rsp_info[5],
++                          pkt->rsp_info[6], pkt->rsp_info[7]));
++
++                      cp->result = DID_BUS_BUSY << 16;
++                      add_to_done_queue(ha, sp);
++                      return;
++              }
++      }
++
+       /*
+        * Based on Host and scsi status generate status code for Linux
+        */
+@@ -11705,7 +11221,6 @@ qla2x00_status_entry(scsi_qla_host_t *ha
+                       if (scsi_status == 0) {
+                               CMD_RESULT(cp) = DID_OK << 16;
+-#ifndef __VMWARE__
+                               /*
+                                * Special case consideration On an Inquiry
+                                * command (0x12) for Lun 0, device responds
+@@ -11716,7 +11231,6 @@ qla2x00_status_entry(scsi_qla_host_t *ha
+                                */
+                               /* Perform any post command processing */
+                               qla2x00_filter_command(ha, sp);
+-#endif
+                       } else {   /* Check for non zero scsi status */
+                               if (lscsi_status == SS_BUSY_CONDITION) {
+                                       CMD_RESULT(cp) = DID_BUS_BUSY << 16 |
+@@ -11761,9 +11275,10 @@ qla2x00_status_entry(scsi_qla_host_t *ha
+                                       if (sp->request_sense_length != 0)
+                                               ha->status_srb = sp;
+-                                      if (!(sp->flags & SRB_IOCTL) &&
+-                                              qla2x00_check_sense(cp, lq) ==
+-                                                      QL_STATUS_SUCCESS) {
++                                      if (!(sp->flags & (SRB_IOCTL |
++                                          SRB_TAPE | SRB_FDMI_CMD)) &&
++                                          qla2x00_check_sense(cp, lq) ==
++                                          QL_STATUS_SUCCESS) {
+                                               /*
+                                                * Throw away status_cont
+                                                * if any
+@@ -11772,7 +11287,8 @@ qla2x00_status_entry(scsi_qla_host_t *ha
+                                               add_to_scsi_retry_queue(ha, sp);
+                                               return;
+                                       }
+-#if defined(QL_DEBUG_LEVEL_5)
++#if defined(QL_DEBUG_LEVEL_2)
++                                      if (sense_sz) {
+                                       printk("%s(): Check condition Sense "
+                                               "data, scsi(%ld:%d:%d:%d) "
+                                               "cmd=%p pid=%ld\n",
+@@ -11780,10 +11296,10 @@ qla2x00_status_entry(scsi_qla_host_t *ha
+                                               ha->host_no, 
+                                               b, t, l,
+                                               cp, cp->serial_number);
+-                                      if (sense_sz)
+                                               qla2x00_dump_buffer(
+                                                       cp->sense_buffer,
+                                                       CMD_ACTUAL_SNSLEN(cp));
++                                      }
+ #endif
+                               }
+                       }
+@@ -11848,21 +11364,23 @@ qla2x00_status_entry(scsi_qla_host_t *ha
+                                       if (sp->request_sense_length != 0)
+                                               ha->status_srb = sp;
+-                                      if (!(sp->flags & SRB_IOCTL) && 
+-                                              (qla2x00_check_sense(cp, lq) ==
+-                                                      QL_STATUS_SUCCESS)) {
++                                      if (!(sp->flags & (SRB_IOCTL |
++                                          SRB_TAPE | SRB_FDMI_CMD)) &&
++                                          (qla2x00_check_sense(cp, lq) ==
++                                          QL_STATUS_SUCCESS)) {
+                                               ha->status_srb = NULL;
+                                               add_to_scsi_retry_queue(ha,sp);
+                                               return;
+                                       }
+-#if defined(QL_DEBUG_LEVEL_5)
++#if defined(QL_DEBUG_LEVEL_2)
++                                      if (sense_sz) {
+                                       printk("scsi: Check condition Sense "
+                                               "data, scsi(%ld:%d:%d:%d)\n",
+                                               ha->host_no, b, t, l);
+-                                      if (sense_sz)
+                                               qla2x00_dump_buffer(
+                                                       cp->sense_buffer,
+                                                       CMD_ACTUAL_SNSLEN(cp));
++                                      }
+ #endif
+                               }
+                       } else {
+@@ -11916,7 +11434,6 @@ qla2x00_status_entry(scsi_qla_host_t *ha
+                               /* Everybody online, looking good... */
+                               CMD_RESULT(cp) = DID_OK << 16;
+-#ifndef __VMWARE__
+                               /*
+                                * Special case consideration On an Inquiry
+                                * command (0x12) for Lun 0, device responds
+@@ -11927,7 +11444,6 @@ qla2x00_status_entry(scsi_qla_host_t *ha
+                                */
+                               /* Perform any post command processing */
+                               qla2x00_filter_command(ha, sp);
+-#endif
+                       }
+                       break;
+@@ -11950,18 +11466,32 @@ qla2x00_status_entry(scsi_qla_host_t *ha
+                                       sp->cmd->serial_number,
+                                       comp_status,
+                                       atomic_read(&fcport->state));)
+-                      if ((sp->flags & SRB_IOCTL) ||
+-                          (atomic_read(&fcport->state) == FC_DEVICE_DEAD)) {
+-                              CMD_RESULT(cp) = DID_NO_CONNECT << 16;
+-                              add_to_done_queue(ha, sp);
+-                      } else {
++                      DEBUG2(printk( "scsi(%ld:%2d:%2d): status_entry: "
++                                      "Port Down pid=%ld, compl "
++                                      "status=0x%x, port state=0x%x\n",
++                                      ha->host_no,
++                                      t, l,
++                                      sp->cmd->serial_number,
++                                      comp_status,
++                                      atomic_read(&fcport->state));)
++
++                      if ((sp->flags & (SRB_IOCTL | SRB_TAPE |
++                          SRB_FDMI_CMD)) || (atomic_read(&fcport->state) ==
++                          FC_DEVICE_DEAD)) {
++                              CMD_RESULT(cp) = DID_NO_CONNECT << 16;
++                              add_to_done_queue(ha, sp);
++                              if (atomic_read(&ha->loop_state) == LOOP_DOWN) 
++                                      sp->err_id = SRB_ERR_LOOP;
++                              else
++                                      sp->err_id = SRB_ERR_PORT;
++                      } else {
+                               qla2x00_extend_timeout(cp,
+                                               EXTEND_CMD_TIMEOUT);
+                               add_to_retry_queue(ha, sp);
+                       }
+                       if (atomic_read(&fcport->state) == FC_ONLINE) {
+-                              qla2x00_mark_device_lost(ha, fcport);
++                              qla2x00_mark_device_lost(ha, fcport, 1);
+                       }
+                       return;
+@@ -11975,7 +11505,7 @@ qla2x00_status_entry(scsi_qla_host_t *ha
+                                       comp_status, 
+                                       scsi_status);)
+-                      if (sp->flags & SRB_IOCTL) {
++                      if (sp->flags & (SRB_IOCTL | SRB_TAPE | SRB_FDMI_CMD)) {
+                               CMD_RESULT(cp) = DID_RESET << 16;
+                       }
+                       else {
+@@ -12025,17 +11555,15 @@ qla2x00_status_entry(scsi_qla_host_t *ha
+                                               "public device loop id (%x), "
+                                               "attempt new recovery\n",
+                                               le16_to_cpu(pkt->status_flags), 
+-                                              ha->fc_db[t].loop_id);)
+-                              ha->fc_db[t].flag |= DEV_RELOGIN;
+-                              fcport->login_retry = ha->login_retry_count;
+-                              set_bit(RELOGIN_NEEDED, &ha->dpc_flags);
++                                              fcport->loop_id);)
++                              qla2x00_mark_device_lost(ha, fcport, 1);
+                       }
+                       break;
+               case CS_QUEUE_FULL:
+-                      printk(KERN_INFO
++                      DEBUG2(printk(KERN_INFO
+                              "scsi(%ld:%d:%d): QUEUE FULL status detected "
+                              "0x%x-0x%x, pid=%ld.\n",
+                               ha->host_no, 
+@@ -12043,7 +11571,7 @@ qla2x00_status_entry(scsi_qla_host_t *ha
+                               l,
+                               comp_status, 
+                               scsi_status, 
+-                              sp->cmd->serial_number);
++                              sp->cmd->serial_number));
+                       /*
+                        * SCSI Mid-Layer handles device queue full
+                        */                              
+@@ -12083,10 +11611,11 @@ qla2x00_status_entry(scsi_qla_host_t *ha
+                       break;
+       } /* end of switch comp_status */
+-
+       /* Place command on done queue. */
+-      if (ha->status_srb == NULL)
++      if (ha->status_srb == NULL){
++
+               add_to_done_queue(ha, sp);
++      }
+       LEAVE(__func__);
+ }
+@@ -12164,9 +11693,6 @@ STATIC void
+ qla2x00_error_entry(scsi_qla_host_t *ha, sts_entry_t *pkt) 
+ {
+       srb_t *sp;
+-#ifdef PERF_MONITORING
+-      os_lun_t        *lq;
+-#endif
+       ENTER(__func__);
+@@ -12198,12 +11724,6 @@ qla2x00_error_entry(scsi_qla_host_t *ha,
+                       ha->actthreads--;
+               sp->lun_queue->out_cnt--;
+               ha->iocb_cnt -= sp->iocb_cnt;
+-#ifdef PERF_MONITORING
+-              /* update stats */
+-              lq = sp->lun_queue;
+-              lq->resp_time += jiffies - sp->u_start; 
+-              lq->act_time += jiffies - sp->r_start;  
+-#endif
+               sp->flags |= SRB_ISP_COMPLETED;
+@@ -12234,6 +11754,7 @@ qla2x00_error_entry(scsi_qla_host_t *ha,
+       LEAVE(__func__);
+ }
++
+ STATIC void
+ qla2x00_ms_entry(scsi_qla_host_t *ha, ms_iocb_entry_t *pkt) 
+ {
+@@ -12302,6 +11823,9 @@ qla2x00_restart_queues(scsi_qla_host_t *
+               spin_lock_irqsave(&ha->list_lock,flags);
+               list_for_each_safe(list, temp, &ha->pending_queue) {
+                       sp = list_entry(list, srb_t, list);
++
++                      if ((sp->flags & SRB_TAPE))
++                              continue;
+                       /* 
+                        * When time expire return request back to OS as BUSY 
+                        */
+@@ -12372,11 +11896,7 @@ qla2x00_restart_queues(scsi_qla_host_t *
+       }
+       if (!list_empty(&ha->done_queue))
+-#if QLA2X_PERFORMANCE
+-              tasklet_schedule(&ha->run_qla_task);
+-#else
+               qla2x00_done(ha);
+-#endif
+       LEAVE(__func__);
+ }
+@@ -12424,6 +11944,32 @@ qla2x00_abort_queues(scsi_qla_host_t *ha
+       LEAVE(__func__);
+ }
++void
++qla2x00_ioctl_error_recovery(scsi_qla_host_t *ha)     
++{
++      int return_status; 
++      unsigned long flags;
++
++      printk(KERN_INFO
++          "%s(%ld) issuing device reset\n", __func__,ha->host_no);
++      if (!ha->ioctl_err_cmd) {
++              printk("%s(%ld) should not occur\n", __func__, ha->host_no);
++              return;
++      }
++
++      spin_lock_irqsave(&io_request_lock, flags);
++      return_status = qla2xxx_eh_device_reset(ha->ioctl_err_cmd);
++      if (return_status != SUCCESS){
++              printk("%s(%ld) elevation to host_reset\n",
++                  __func__, ha->host_no);
++              return_status = qla2xxx_eh_host_reset(ha->ioctl_err_cmd);
++              printk("%s(%ld) return_status=%x\n", __func__, ha->host_no,
++                  return_status);
++      }
++      ha->ioctl_err_cmd = NULL ;
++      spin_unlock_irqrestore(&io_request_lock, flags);
++}
++
+ /*
+  * qla2x00_reset_lun_fo_counts
+@@ -12491,12 +12037,84 @@ qla2x00_failover_cleanup(srb_t *sp) 
+       CMD_RESULT(sp->cmd) = DID_BUS_BUSY << 16;
+       CMD_HANDLE(sp->cmd) = (unsigned char *) NULL;
++      if( (sp->flags & SRB_GOT_SENSE ) ) {
++               sp->flags &= ~SRB_GOT_SENSE;
++               sp->cmd->sense_buffer[0] = 0;
++      }
+       /* turn-off all failover flags */
+       sp->flags = sp->flags & ~(SRB_RETRY|SRB_FAILOVER|SRB_FO_CANCEL);
+ }
++void qla2x00_find_all_active_ports(srb_t *sp) 
++{
++      scsi_qla_host_t *ha = qla2x00_hostlist;
++      fc_port_t *fcport;
++      fc_lun_t        *fclun;
++      fc_lun_t        *orig_fclun;
++
++      DEBUG2(printk(KERN_INFO "%s: Scanning for active ports... %d\n",
++                      __func__, sp->lun_queue->fclun->lun);)
++      orig_fclun = sp->lun_queue->fclun;
++      for ( ; (ha != NULL); ha=ha->next) {
++              list_for_each_entry(fcport, &ha->fcports, list) {
++                      if (fcport->port_type != FCT_TARGET )
++                              continue;
++                              if ( (fcport->flags & (FC_EVA_DEVICE|FC_MSA_DEVICE)) ) {
++                              list_for_each_entry(fclun, &fcport->fcluns, list) {
++                                      if (fclun->flags & FC_VISIBLE_LUN)
++                                              continue;
++                                      if (orig_fclun->lun != fclun->lun)
++                                              continue;
++                                      qla2x00_test_active_lun(fcport,fclun);
++                              }
++                      }
++                              if ( (fcport->flags & FC_MSA_DEVICE) )
++                               qla2x00_test_active_port(fcport);
++              }
++      }
++      DEBUG2(printk(KERN_INFO "%s: Scanning ports...Done\n",
++                      __func__);)
++}
++
++
++int qla2x00_suspend_failover_targets(scsi_qla_host_t *ha) 
++{
++      unsigned long flags;
++      struct list_head *list, *temp;
++      srb_t       *sp;
++      int      count;
++      os_tgt_t        *tq;
++
++      spin_lock_irqsave(&ha->list_lock, flags);
++        count = ha->failover_cnt;
++      list_for_each_safe(list, temp, &ha->failover_queue) {
++              sp = list_entry(ha->failover_queue.next, srb_t, list);
++              tq = sp->tgt_queue;
++              if( !(test_bit(TGT_SUSPENDED, &tq->q_flags)) )
++                      set_bit(TGT_SUSPENDED, &tq->q_flags);
++      }
++      spin_unlock_irqrestore(&ha->list_lock,flags);
++
++      return count;
++}
++
++srb_t *
++qla2x00_failover_next_request(scsi_qla_host_t *ha) 
++{
++      unsigned long flags;
++      srb_t       *sp = NULL;
++
++      spin_lock_irqsave(&ha->list_lock, flags);
++      if (!list_empty(&ha->failover_queue)) {
++              sp = list_entry(ha->failover_queue.next, srb_t, list);
++              __del_from_failover_queue(ha, sp);
++      }
++      spin_unlock_irqrestore(&ha->list_lock, flags);
++      return( sp );
++}
++
+ /*
+  *  qla2x00_process_failover
+  *    Process any command on the failover queue.
+@@ -12515,75 +12133,106 @@ qla2x00_process_failover(scsi_qla_host_t
+       os_lun_t        *lq;
+       srb_t       *sp;
+       fc_port_t *fcport;
+-      struct list_head *list, *temp;
+-      unsigned long flags;
+       uint32_t    t, l;
+-      scsi_qla_host_t *vis_ha = NULL;
++      scsi_qla_host_t *vis_ha = ha;
++      int      count, i;
+-      DEBUG(printk("%s(): Processing failover for hba %ld\n",
++      DEBUG2(printk(KERN_INFO "%s: hba %ld active=%ld, retry=%d, "
++                      "done=%ld, failover=%d, scsi retry=%d commands.\n",
+                       __func__,
+-                      ha->host_no);)
++                      ha->host_no,
++                      ha->actthreads,
++                      ha->retry_q_cnt,
++                      ha->done_q_cnt,
++                      ha->failover_cnt,
++                      ha->scsi_retry_q_cnt);)
+-      /*
+-       * Process all the commands in the failover queue. Attempt to failover
+-       * then either complete the command as is or requeue for retry.
+-       */
+-      /* Prevent or allow acceptance of new I/O requests. */
+-      spin_lock_irqsave(&ha->list_lock, flags);
++      /* Prevent acceptance of new I/O requests for failover target. */
++      count = qla2x00_suspend_failover_targets(ha);
+       /*
+-       * Get first entry to find our visible adapter.  We could never get
+-       * here if the list is empty
++       * Process all the commands in the failover queue. Attempt to failover
++       * then either complete the command as is or requeue for retry.
+        */
+-      list = ha->failover_queue.next;
+-      sp = list_entry(list, srb_t, list);
+-      vis_ha = (scsi_qla_host_t *) sp->cmd->host->hostdata;
+-      list_for_each_safe(list, temp, &ha->failover_queue) {
+-              sp = list_entry(list, srb_t, list);
+-
++      for( i = 0; i < count ; i++ ) {
++              sp = qla2x00_failover_next_request(ha); 
++              if( sp == NULL )
++                      break;
++              qla2x00_extend_timeout(sp->cmd, 360);
++              if( i == 0 ) {
++                      vis_ha = (scsi_qla_host_t *) sp->cmd->host->hostdata;
++              }
+               tq = sp->tgt_queue;
+               lq = sp->lun_queue;
+               fcport = lq->fclun->fcport;
+-
+-              /* Remove srb from failover queue. */
+-              __del_from_failover_queue(ha, sp);
+-
+-              DEBUG3(printk("%s(): pid %ld retrycnt=%d\n",
++              DEBUG(printk("%s(): pid %ld retrycnt=%d,"
++                               "fcport =%p, state=0x%x, \nloop state=0x%x"
++                               " fclun=%p, lq fclun=%p, lq=%p, lun=%d\n",
+                               __func__,
+                               sp->cmd->serial_number,
+-                              sp->cmd->retries);)
+-
++                              sp->cmd->retries,
++                              fcport,
++                               atomic_read(&fcport->state),
++                               atomic_read(&ha->loop_state),
++                               sp->fclun, lq->fclun, lq, lq->fclun->lun);)
++              if ( sp->err_id == SRB_ERR_DEVICE &&
++                   sp->fclun == lq->fclun && 
++                   atomic_read(&fcport->state) == FC_ONLINE) {
++                  if( !(qla2x00_test_active_lun(fcport, sp->fclun))  ) { 
++                       DEBUG2(printk("scsi(%ld) %s Detected INACTIVE Port 0x%02x \n",
++                              ha->host_no,__func__,fcport->loop_id);)
++                       sp->err_id = SRB_ERR_OTHER;
++                       sp->cmd->sense_buffer[2] = 0;
++                       CMD_RESULT(sp->cmd) = DID_BUS_BUSY << 16;
++                  }   
++              }
++              if( (sp->flags & SRB_GOT_SENSE ) ) {
++                       sp->flags &= ~SRB_GOT_SENSE;
++                       sp->cmd->sense_buffer[0] = 0;
++                       CMD_RESULT(sp->cmd) = DID_BUS_BUSY << 16;
++                       CMD_HANDLE(sp->cmd) = (unsigned char *) NULL;
++              }
+               /*** Select an alternate path ***/
+               /* 
+                * If the path has already been change by a previous request
+                * sp->fclun != lq->fclun
+                */
+               if (sp->fclun != lq->fclun || 
+-                      atomic_read(&fcport->state) != FC_DEVICE_DEAD) {
++                      ( sp->err_id != SRB_ERR_OTHER &&
++                        atomic_read(&fcport->ha->loop_state)
++                                       != LOOP_DEAD &&
++                      atomic_read(&fcport->state) != FC_DEVICE_DEAD) ) {
+                       qla2x00_failover_cleanup(sp);
+               } else if (qla2x00_cfg_failover(ha, lq->fclun,
+                                               tq, sp) == NULL) {
+                       /*
+-                       * We ran out of paths, so just post the status which
+-                       * is already set in the cmd.
++                       * We ran out of paths, so just retry the status which
++                       * is already set in the cmd. We want to serialize the 
++                       * failovers, so we make them go thur visible HBA.
+                        */
+                       printk(KERN_INFO
+-                              "%s(): Ran out of paths - pid %ld\n",
++                              "%s(): Ran out of paths - pid %ld - retrying\n",
+                               __func__,
+                               sp->cmd->serial_number);
+               } else {
+                       qla2x00_failover_cleanup(sp);
+               }
+-              __add_to_done_queue(ha, sp);
+-      } /* list_for_each_safe */
+-      spin_unlock_irqrestore(&ha->list_lock,flags);
++              add_to_done_queue(ha, sp);
++      } 
+       for (t = 0; t < vis_ha->max_targets; t++) {
+               if ((tq = vis_ha->otgt[t]) == NULL)
+                       continue;
++              if( test_and_clear_bit(TGT_SUSPENDED, &tq->q_flags) ) {
++                      /* EMPTY */
++                      DEBUG2(printk("%s(): remove suspend for "
++                                      "target %d\n",
++                                      __func__,
++                                      t);)
++              }
+               for (l = 0; l < vis_ha->max_luns; l++) {
+                       if ((lq = (os_lun_t *) tq->olun[l]) == NULL)
+                               continue;
+@@ -12596,12 +12245,11 @@ qla2x00_process_failover(scsi_qla_host_t
+                                               lq->fclun->lun);)
+                       }
+               }
+-      }
++          }
+-      //qla2x00_restart_queues(ha,TRUE);
+       qla2x00_restart_queues(ha, FALSE);
+-      DEBUG(printk("%s() - done", __func__);)
++      DEBUG2(printk("%s() - done\n", __func__);)
+ }
+ /*
+@@ -12623,7 +12271,7 @@ qla2x00_loop_resync(scsi_qla_host_t *ha)
+       DEBUG(printk("%s(): entered\n", __func__);)
+-      ha->loop_state = LOOP_UPDATE;
++      atomic_set(&ha->loop_state, LOOP_UPDATE);
+       qla2x00_stats.loop_resync++;
+       ha->total_loop_resync++;
+       clear_bit(ISP_ABORT_RETRY, &ha->dpc_flags);
+@@ -12631,7 +12279,7 @@ qla2x00_loop_resync(scsi_qla_host_t *ha)
+               if (!(status = qla2x00_fw_ready(ha))) {
+                       do {
+                               /* v2.19.05b6 */
+-                              ha->loop_state = LOOP_UPDATE;
++                              atomic_set(&ha->loop_state,  LOOP_UPDATE);
+                               /*
+                                * Issue marker command only when we are going
+@@ -12679,12 +12327,13 @@ qla2x00_loop_resync(scsi_qla_host_t *ha)
+ STATIC uint16_t
+ qla2x00_debounce_register(volatile uint16_t *addr) 
+ {
+-      volatile uint16_t ret;
+-      volatile uint16_t ret2;
++      uint16_t ret;
++      uint16_t ret2;
+       do {
+               ret = RD_REG_WORD(addr);
+               barrier();
++              cpu_relax();
+               ret2 = RD_REG_WORD(addr);
+       } while (ret != ret2);
+@@ -12719,7 +12368,7 @@ qla2x00_reset_chip(scsi_qla_host_t *ha) 
+       /* Pause RISC. */
+       WRT_REG_WORD(&reg->host_cmd, HC_PAUSE_RISC);
+ #if defined(ISP2300)
+-      if (ha->device_id == QLA2312_DEVICE_ID) {
++      if (check_all_device_ids(ha)) {             
+               UDELAY(10);
+       } else {
+               for (cnt = 0; cnt < 30000; cnt++) {
+@@ -12750,7 +12399,20 @@ qla2x00_reset_chip(scsi_qla_host_t *ha) 
+       WRT_REG_WORD(&reg->ctrl_status, 0x10);
+       /* Reset frame buffer FIFOs. */
++#if defined(ISP2200)
+       WRT_REG_WORD(&reg->fb_cmd, 0xa000);
++#else
++      WRT_REG_WORD(&reg->fb_cmd, 0x00fc);
++
++      /* Read back fb_cmd until zero or 3 seconds max */
++      for (cnt = 0; cnt < 3000; cnt++) {
++              if ((RD_REG_WORD(&reg->fb_cmd) & 0xff) == 0)
++                      break;
++              udelay(100);
++      }
++
++
++#endif
+       /* Select RISC module registers. */
+       WRT_REG_WORD(&reg->ctrl_status, 0);
+@@ -12764,7 +12426,7 @@ qla2x00_reset_chip(scsi_qla_host_t *ha) 
+       WRT_REG_WORD(&reg->ctrl_status, CSR_ISP_SOFT_RESET);
+ #if defined(ISP2300)
+-      if (ha->device_id == QLA2312_DEVICE_ID) {
++      if (check_all_device_ids(ha)) {             
+               UDELAY(10);
+       } else {
+               /* Wait for RISC to recover from reset. */
+@@ -12789,7 +12451,7 @@ qla2x00_reset_chip(scsi_qla_host_t *ha) 
+       WRT_REG_WORD(&reg->host_cmd, HC_RELEASE_RISC);
+ #if defined(ISP2300)
+-      if (ha->device_id == QLA2312_DEVICE_ID) {
++      if (check_all_device_ids(ha)) {             
+               UDELAY(10);
+       } else {
+               for (cnt = 0; cnt < 30000; cnt++) {
+@@ -12846,12 +12508,8 @@ qla2x00_reset_chip(scsi_qla_host_t *ha) 
+       /* Reset ISP chip. */
+       WRT_REG_WORD(&reg->ctrl_status, CSR_ISP_SOFT_RESET);
+-
+-      /*
+-       * Delay after reset, for chip to recover.  Otherwise causes system
+-       * PANIC
+-       */
+-      mdelay(2);
++      /* Delay after reset, for chip to recover. */
++      udelay(20);
+       for (cnt = 30000; cnt; cnt--) {
+               if (!(RD_REG_WORD(&reg->ctrl_status) & CSR_ISP_SOFT_RESET))
+@@ -12885,7 +12543,7 @@ qla2x00_reset_chip(scsi_qla_host_t *ha) 
+  * This routine will wait for fabric devices for
+  * the reset delay.
+  */
+-static void qla2x00_check_fabric_devices(scsi_qla_host_t *ha) 
++void qla2x00_check_fabric_devices(scsi_qla_host_t *ha) 
+ {
+       uint16_t        fw_state;
+@@ -13001,22 +12659,6 @@ qla2x00_display_fc_names(scsi_qla_host_t
+                                       tgt,
+                                       tq->d_id.b24);
+                               break;
+-
+-                      case BIND_BY_NODE_NAME:
+-                              printk(KERN_INFO
+-                                      "scsi-qla%d-tgt-%d-di-0-node="
+-                                      "%02x%02x%02x%02x%02x%02x%02x%02x\\;\n",
+-                                      (int)ha->instance, 
+-                                      tgt,
+-                                      tq->node_name[0], 
+-                                      tq->node_name[1],
+-                                      tq->node_name[2], 
+-                                      tq->node_name[3],
+-                                      tq->node_name[4], 
+-                                      tq->node_name[5],
+-                                      tq->node_name[6], 
+-                                      tq->node_name[7]);
+-                              break;
+               }
+ #if VSA
+@@ -13250,179 +12892,6 @@ qla2x00_get_properties(scsi_qla_host_t *
+ }
+ /*
+- * qla2x00_update_fc_database
+- *      This routine updates the device data in the database.
+- *
+- * Input:
+- *      ha = adapter block pointer.
+- *      device = device data pointer.
+- *
+- * Returns:
+- *      0 = success, if device found or added to database.
+- *      BIT_0 = error
+- *      BIT_1 = database was full and device was not configured.
+- */
+-STATIC uint8_t
+-qla2x00_update_fc_database(scsi_qla_host_t *ha, 
+-                              fcdev_t *device, uint8_t enable_slot_reuse) 
+-{
+-      int             rval;
+-      uint16_t        cnt, i;
+-
+-      DEBUG(printk("qla2x00: Found device - "
+-          "nodename=%02x%02x%02x%02x%02x%02x%02x%02x, "
+-          "portname=%02x%02x%02x%02x%02x%02x%02x%02x, "
+-          "port Id=%06x, loop id=%04x\n",
+-          device->name[0], device->name[1],
+-          device->name[2], device->name[3],
+-          device->name[4], device->name[5],
+-          device->name[6], device->name[7],
+-          device->wwn[0], device->wwn[1],
+-          device->wwn[2], device->wwn[3],
+-          device->wwn[4], device->wwn[5],
+-          device->wwn[6], device->wwn[7],
+-          device->d_id.b24, device->loop_id);)
+-
+-      /* Look for device in database. */
+-      for (cnt = 0; cnt < MAX_FIBRE_DEVICES; cnt++) {
+-              if (ha->fc_db[cnt].loop_id == PORT_UNUSED)
+-                      continue;
+-
+-              rval = 1;
+-              switch (ha->binding_type) {
+-                      case BIND_BY_PORT_NAME:
+-                              rval = memcmp(device->wwn,
+-                                  ha->fc_db[cnt].wwn, WWN_SIZE);
+-                              break;
+-
+-                      case BIND_BY_PORT_ID:
+-                              rval = (device->d_id.b24 !=
+-                                  ha->fc_db[cnt].d_id.b24);
+-                              break;
+-
+-                      case BIND_BY_NODE_NAME:
+-                              rval = memcmp(device->name,
+-                                  ha->fc_db[cnt].name, WWN_SIZE);
+-                              break;
+-              }
+-              if (rval)
+-                      continue;
+-
+-              DEBUG(printk("qla2x00: Reusing slot %d "
+-                  "for device "
+-                  "%02x%02x%02x%02x%02x%02x%02x%02x\n",
+-                  cnt,
+-                  device->wwn[0],
+-                  device->wwn[1],
+-                  device->wwn[2],
+-                  device->wwn[3],
+-                  device->wwn[4],
+-                  device->wwn[5],
+-                  device->wwn[6],
+-                  device->wwn[7]);)
+-
+-              if (device->flag & DEV_PUBLIC) {
+-                      ha->fc_db[cnt].flag |= DEV_PUBLIC;
+-              } else {
+-                      if (ha->fc_db[cnt].flag & DEV_PUBLIC) {
+-                              ha->fc_db[cnt].flag &= ~DEV_PUBLIC;
+-                              ha->fabricid[ha->fc_db[cnt].loop_id].in_use 
+-                                  = FALSE;
+-                      }
+-              }
+-
+-              ha->fc_db[cnt].loop_id = device->loop_id;
+-              ha->fc_db[cnt].d_id.b24 = device->d_id.b24;
+-
+-              /* Update volatile unbound fields for PortID binding only */
+-              if (ha->binding_type == BIND_BY_PORT_ID) {
+-                      memcpy(ha->fc_db[cnt].name, device->name, WWN_SIZE);
+-                      memcpy(ha->fc_db[cnt].wwn, device->wwn, WWN_SIZE);
+-              }
+-
+-              return (0);
+-      }
+-
+-      /* Find a empty slot and add device into database. */
+-      for (i = 0; i < MAX_FIBRE_DEVICES; i++) {
+-
+-/* FlexServ Patch */
+-#if QLA2XXX_HOTSWAP_ENUMERATION
+-              /*
+-               * Enumerate upon the actual ID so add-single-device works
+-               */
+-              if (i != device->loop_id) {
+-                      continue;
+-              }
+-#endif
+-
+-              if ((ha->fc_db[i].loop_id == PORT_UNUSED) ||
+-                      (ha->fc_db[i].loop_id == PORT_NEED_MAP)) {
+-
+-                      DEBUG(printk("qla2x00: New slot %d for device "
+-                          "%02x%02x%02x%02x%02x%02x%02x%02x\n",
+-                          i,
+-                          device->wwn[0],
+-                          device->wwn[1],
+-                          device->wwn[2],
+-                          device->wwn[3],
+-                          device->wwn[4],
+-                          device->wwn[5],
+-                          device->wwn[6],
+-                          device->wwn[7]);)
+-
+-                      memcpy(ha->fc_db[i].name, device->name, WWN_SIZE);
+-                      memcpy(ha->fc_db[i].wwn, device->wwn, WWN_SIZE);
+-                      ha->fc_db[i].loop_id = device->loop_id;
+-                      ha->fc_db[i].d_id.b24 = device->d_id.b24;
+-
+-                      if (device->flag & DEV_PUBLIC)
+-                              ha->fc_db[i].flag |= DEV_PUBLIC;
+-
+-                      ha->flags.updated_fc_db = TRUE;
+-
+-                      return (0);
+-              }
+-      }
+-
+-      if (enable_slot_reuse) {
+-              for (i = 0; i < MAX_FIBRE_DEVICES; i++) {
+-                      if (ha->fc_db[i].loop_id == PORT_AVAILABLE) {
+-                              DEBUG(printk("qla2x00: Assigned slot %d "
+-                                  "reuse for device "
+-                                  "%02x%02x%02x%02x%02x%02x%02x%02x\n",
+-                                  i, 
+-                                  device->wwn[0],
+-                                  device->wwn[1],
+-                                  device->wwn[2],
+-                                  device->wwn[3],
+-                                  device->wwn[4],
+-                                  device->wwn[5],
+-                                  device->wwn[6],
+-                                  device->wwn[7]);)
+-
+-                              memcpy(ha->fc_db[i].name,
+-                                  device->name, WWN_SIZE);
+-                              memcpy(ha->fc_db[i].wwn,
+-                                  device->wwn, WWN_SIZE);
+-                              ha->fc_db[i].loop_id = device->loop_id;
+-                              ha->fc_db[i].d_id.b24 = device->d_id.b24;
+-
+-                              if (device->flag & DEV_PUBLIC)
+-                                      ha->fc_db[i].flag |= DEV_PUBLIC;
+-
+-                              ha->flags.updated_fc_db = TRUE;
+-
+-                              return (0);
+-                      }
+-              }
+-      }
+-
+-      return(BIT_1);
+-}
+-
+-
+-/*
+  * qla2x00_device_resync
+  *    Marks devices in the database that needs resynchronization.
+  *
+@@ -13435,11 +12904,9 @@ qla2x00_update_fc_database(scsi_qla_host
+ static void
+ qla2x00_device_resync(scsi_qla_host_t *ha) 
+ {
+-      uint16_t index;
+       uint32_t mask;
+       rscn_t dev;
+-      struct list_head *fcil;
+-      fc_initiator_t  *fcinitiator;
++      fc_port_t *fcport;
+       ENTER(__func__);
+@@ -13484,44 +12951,19 @@ qla2x00_device_resync(scsi_qla_host_t *h
+               }
+               /* Mark target devices indicated by RSCN for later processing */
+-              for (index = 0; index < MAX_FIBRE_DEVICES; index++) {
+-                      if ((ha->fc_db[index].flag & DEV_PUBLIC) &&
+-                              (ha->fc_db[index].d_id.b24 & mask) ==
+-                               dev.d_id.b24) {
+-
+-                              /* fabric device */
+-                              if (ha->fc_db[index].loop_id != PORT_UNUSED) {
+-                                      ha->fc_db[index].loop_id |=
+-                                                              PORT_LOST_ID;
+-
+-                                      DEBUG(printk("qla%d: RSCN port @ "
+-                                                      "slot %d "
+-                                                      "port_id=%06x\n",
+-                                                      (int)ha->instance,
+-                                                      index,
+-                                                      ha->fc_db[index].d_id.b24);)
+-                              }
+-                      }
+-              }
+-
+-              if (dev.format == 3)
+-                      continue;
+-
+-              /*
+-               * Invalidate initiator devices indicated by RSCN so we know
+-               * they are no longer logged in.
+-               */
+-              list_for_each(fcil, &ha->fcinitiators) {
+-                      fcinitiator = list_entry(fcil, fc_initiator_t, list);
+-
+-                      if ((fcinitiator->d_id.b24 & mask) != dev.d_id.b24)
+-                              continue;
+-                      if (fcinitiator->loop_id & PORT_LOST_ID ||
+-                              fcinitiator->loop_id & PORT_LOGIN_NEEDED)
++              list_for_each_entry(fcport, &ha->fcports, list) {
++                      if ((fcport->flags & FC_FABRIC_DEVICE) == 0 ||
++                          (fcport->d_id.b24 & mask) != dev.d_id.b24 ||
++                          fcport->port_type == FCT_BROADCAST)
+                               continue;
+-                      fcinitiator->loop_id |= PORT_LOST_ID;
+-                      fcinitiator->d_id.b24 = 0;
++                      if (atomic_read(&fcport->state) == FC_ONLINE) {
++                              if (dev.format != 3 ||
++                                  fcport->port_type != FCT_INITIATOR) {
++                                      atomic_set(&fcport->state,
++                                          FC_DEVICE_LOST);
++                              }
++                      }
+               }
+       }
+@@ -13529,63 +12971,314 @@ qla2x00_device_resync(scsi_qla_host_t *h
+ }
+ /*
+- * qla2x00_configure_fabric
+- *      Setup SNS devices with loop ID's.
++ * qla2x00_find_new_loop_id
++ *    Scan through our port list and find a new usable loop ID.
+  *
+  * Input:
+- *      ha = adapter block pointer.
++ *    ha:     adapter state pointer.
++ *    dev:    port structure pointer.
+  *
+  * Returns:
+- *      0 = success.
+- *      BIT_0 = error
+- *      BIT_1 = database was full and device was not configured.
++ *    qla2x00 local function return status code.
++ *
++ * Context:
++ *    Kernel context.
+  */
+-#define MAX_PUBLIC_LOOP_IDS LAST_SNS_LOOP_ID + 1
+-
+-STATIC uint8_t
+-qla2x00_configure_fabric(scsi_qla_host_t *ha, uint8_t enable_slot_reuse) 
++int
++qla2x00_find_new_loop_id(scsi_qla_host_t *ha, fc_port_t *dev)
+ {
+-      uint8_t     rval = 0;
+-      uint8_t     rval1;
+-      uint8_t     local_flags = 0;
+-      sns_cmd_rsp_t  *sns;
+-      uint8_t     tmp_name[8];
+-      fcdev_t     dev;
+-      uint16_t    i, index, found_cnt;
+-      dma_addr_t  phys_address = 0;
+-      uint16_t    new_dev_cnt;
+-      uint16_t    tmp_loop_id;
+-      uint16_t    tmp_topo;
+-      struct new_dev *new_dev_list;
+-      struct list_head *fcil, *fcitemp;
+-      fc_initiator_t  *fcinitiator;
++      int     rval;
++      int     found;
++      fc_port_t *fcport;
++      uint16_t first_loop_id;
+-      ENTER(__func__);
++      rval = QL_STATUS_SUCCESS;
+-      DEBUG2(printk(KERN_INFO "scsi%ld: Enter qla2x00_configure_fabric: hba=%p\n",
+-                      ha->host_no, ha);)
++      /* Save starting loop ID. */
++      first_loop_id = dev->loop_id;
+-      /* If FL port exists, then SNS is present */
+-      rval1 = qla2x00_get_port_name(ha, SNS_FL_PORT, tmp_name, 0);
+-      if (rval1 || qla2x00_is_wwn_zero(tmp_name)) {
+-              DEBUG2(printk(KERN_INFO "%s(): MBC_GET_PORT_NAME Failed, No FL Port\n",
+-                              __func__);)
++      for (;;) {
++              /* Skip loop ID if already used by adapter. */
++              if (dev->loop_id == ha->loop_id) {
++                      dev->loop_id++;
++              }
+-              ha->device_flags &= ~SWITCH_FOUND;
+-              return (0);
+-      }
++              /* Skip reserved loop IDs. */
++              while (RESERVED_LOOP_ID(dev->loop_id)) {
++                      dev->loop_id++;
++              }
+-      ha->device_flags |= SWITCH_FOUND;
++              /* Reset loop ID if passed the end. */
++              if (dev->loop_id > SNS_LAST_LOOP_ID) {
++                      /* first loop ID. */
++                      dev->loop_id = ha->min_external_loopid;
++              }
+-      /* Get adapter port ID. */
+-      rval = qla2x00_get_adapter_id(ha, &tmp_loop_id, &ha->d_id.b.al_pa,
+-                      &ha->d_id.b.area, &ha->d_id.b.domain, &tmp_topo);
++              /* Check for loop ID being already in use. */
++              found = 0;
++              fcport = NULL;
++              list_for_each_entry(fcport, &ha->fcports, list) {
++                      if (fcport->loop_id == dev->loop_id && fcport != dev) {
++                              /* ID possibly in use */
++                              found++;
++                              break;
++                      }
++              }
+-      sns = pci_alloc_consistent(ha->pdev, 
+-                      sizeof(sns_cmd_rsp_t), 
+-                      &phys_address);
+-      if (sns == NULL) {
+-              printk(KERN_WARNING
++              /* If not in use then it is free to use. */
++              if (!found) {
++                      break;
++              }
++
++              /* ID in use. Try next value. */
++              dev->loop_id++;
++
++              /* If wrap around. No free ID to use. */
++              if (dev->loop_id == first_loop_id) {
++                      dev->loop_id = FC_NO_LOOP_ID;
++                      rval = QL_STATUS_ERROR;
++                      break;
++              }
++      }
++
++      return (rval);
++}
++
++/*
++ * qla2x00_fabric_dev_login
++ *    Login fabric target device and update FC port database.
++ *
++ * Input:
++ *    ha:             adapter state pointer.
++ *    fcport:         port structure list pointer.
++ *    next_loopid:    contains value of a new loop ID that can be used
++ *                    by the next login attempt.
++ *
++ * Returns:
++ *    qla2x00 local function return status code.
++ *
++ * Context:
++ *    Kernel context.
++ */
++static int
++qla2x00_fabric_dev_login(scsi_qla_host_t *ha, fc_port_t *fcport,
++    uint16_t *next_loopid)
++{
++      int     rval;
++      int     retry;
++
++      rval = QL_STATUS_SUCCESS;
++      retry = 0;
++
++      rval = qla2x00_fabric_login(ha, fcport, next_loopid);
++      if (rval == QL_STATUS_SUCCESS) {
++              rval = qla2x00_get_port_database(ha, fcport, BIT_1 | BIT_0);
++              if (rval != QL_STATUS_SUCCESS) {
++                      qla2x00_fabric_logout(ha, fcport->loop_id);
++              } else {
++                      qla2x00_update_fcport(ha, fcport);
++              }
++      }
++
++      return (rval);
++}
++
++/*
++ * qla2x00_fabric_login
++ *    Issue fabric login command.
++ *
++ * Input:
++ *    ha = adapter block pointer.
++ *    device = pointer to FC device type structure.
++ *
++ * Returns:
++ *      0 - Login successfully
++ *      1 - Login failed
++ *      2 - Initiator device
++ *      3 - Fatal error
++ */
++static uint8_t
++qla2x00_fabric_login(scsi_qla_host_t *ha, fc_port_t *fcport,
++    uint16_t *next_loopid)
++{
++      int     rval;
++      int     retry;
++      uint16_t tmp_loopid;
++      uint16_t mb[MAILBOX_REGISTER_COUNT];
++
++      retry = 0;
++      tmp_loopid = 0;
++
++      for (;;) {
++              DEBUG(printk("scsi(%ld): Trying Fabric Login w/loop id 0x%04x "
++                  "for port %02x%02x%02x.\n",
++                  ha->host_no, fcport->loop_id, fcport->d_id.b.domain,
++                  fcport->d_id.b.area, fcport->d_id.b.al_pa));
++
++              /* Login fcport on switch. */
++              qla2x00_login_fabric(ha, fcport->loop_id,
++                  fcport->d_id.b.domain, fcport->d_id.b.area,
++                  fcport->d_id.b.al_pa, mb, BIT_0);
++              if (mb[0] == MBS_PORT_ID_USED) {
++                      /*
++                       * Device has another loop ID.  The firmware team
++                       * recommends us to perform an implicit login with the
++                       * specified ID again. The ID we just used is save here
++                       * so we return with an ID that can be tried by the
++                       * next login.
++                       */
++                      retry++;
++                      tmp_loopid = fcport->loop_id;
++                      fcport->loop_id = mb[1];
++
++                      DEBUG(printk("Fabric Login: port in use - next "
++                          "loop id=0x%04x, port Id=%02x%02x%02x.\n",
++                          fcport->loop_id, fcport->d_id.b.domain,
++                          fcport->d_id.b.area, fcport->d_id.b.al_pa));
++
++              } else if (mb[0] == MBS_COMMAND_COMPLETE) {
++                      /*
++                       * Login succeeded.
++                       */
++                      if (retry) {
++                              /* A retry occurred before. */
++                              *next_loopid = tmp_loopid;
++                      } else {
++                              /*
++                               * No retry occurred before. Just increment the
++                               * ID value for next login.
++                               */
++                              *next_loopid = (fcport->loop_id + 1);
++                      }
++
++                      if (mb[1] & BIT_0) {
++                              fcport->port_type = FCT_INITIATOR;
++                      } else {
++                              fcport->port_type = FCT_TARGET;
++                              if (mb[1] & BIT_1) {
++                                      fcport->flags |= FC_TAPE_DEVICE;
++                              }
++                      }
++
++                      rval = QL_STATUS_SUCCESS;
++                      break;
++              } else if (mb[0] == MBS_LOOP_ID_USED) {
++                      /*
++                       * Loop ID already used, try next loop ID.
++                       */
++                      fcport->loop_id++;
++                      rval = qla2x00_find_new_loop_id(ha, fcport);
++                      if (rval != QL_STATUS_SUCCESS) {
++                              /* Ran out of loop IDs to use */
++                              break;
++                      }
++              } else if (mb[0] == MBS_CMD_ERR) {
++                      /*
++                       * Firmware possibly timed out during login. If NO
++                       * retries are left to do then the device is declared
++                       * dead.
++                       */
++                      *next_loopid = fcport->loop_id;
++                      qla2x00_fabric_logout(ha, fcport->loop_id);
++                      fcport->loop_id = FC_NO_LOOP_ID;
++                      if (mb[1] ==  MBS_SC_TOPOLOGY_ERR){
++                              printk(KERN_INFO "%s:HBA trying to log "
++                                  "through FL_Port\n", __func__);
++                              DEBUG2(printk(KERN_INFO "%s:HBA trying to log "
++                                  "through FL_Port\n", __func__);)
++
++                              atomic_set(&fcport->state, FC_DEVICE_DEAD);
++                      }
++
++                      rval = 3;
++                      break;
++              } else {
++                      /*
++                       * unrecoverable / not handled error
++                       */
++                      DEBUG2(printk("%s(%ld): failed=%x port_id=%02x%02x%02x "
++                          "loop_id=%x jiffies=%lx.\n", 
++                          __func__, ha->host_no, mb[0], 
++                          fcport->d_id.b.domain, fcport->d_id.b.area,
++                          fcport->d_id.b.al_pa, fcport->loop_id, jiffies));
++
++                      /* Trying to log into more than 8 Target */
++                      if(mb[0] == MBS_ALL_LOOP_IDS_IN_USE){
++                              printk(KERN_INFO "%s:No more loop ids\n"
++                                  ,__func__);
++                              DEBUG2(printk("%s:No more loop ids\n"
++                                  ,__func__);)
++                      }
++                      *next_loopid = fcport->loop_id;
++                      qla2x00_fabric_logout(ha, fcport->loop_id);
++                      fcport->loop_id = FC_NO_LOOP_ID;
++                      atomic_set(&fcport->state, FC_DEVICE_DEAD);
++
++                      rval = 1;
++                      break;
++              }
++      }
++
++      return (rval);
++}
++
++/*
++ * qla2x00_configure_fabric
++ *      Setup SNS devices with loop ID's.
++ *
++ * Input:
++ *      ha = adapter block pointer.
++ *
++ * Returns:
++ *      0 = success.
++ *      BIT_0 = error
++ *      BIT_1 = database was full and device was not configured.
++ */
++#define MAX_PUBLIC_LOOP_IDS SNS_LAST_LOOP_ID + 1
++
++STATIC uint8_t
++qla2x00_configure_fabric(scsi_qla_host_t *ha) 
++{
++      uint8_t     rval = 0;
++      uint8_t     rval1;
++      sns_cmd_rsp_t  *sns;
++      uint8_t     tmp_name[8];
++      dma_addr_t  phys_address = 0;
++      uint16_t    tmp_loop_id;
++      uint16_t    tmp_topo;
++      fc_port_t       *fcport, *fcptemp;
++      uint16_t        next_loopid;
++      LIST_HEAD(new_fcports);
++#if REG_FC4_ENABLED
++      uint16_t        mb[MAILBOX_REGISTER_COUNT];
++#endif
++
++      ENTER(__func__);
++
++      DEBUG2(printk(KERN_INFO "scsi(%ld): Enter qla2x00_configure_fabric:" 
++                          "hba=%p\n", ha->host_no, ha);)
++
++      /* If FL port exists, then SNS is present */
++      rval1 = qla2x00_get_port_name(ha, SNS_FL_PORT, tmp_name, 0);
++      if (rval1 || qla2x00_is_wwn_zero(tmp_name)) {
++              DEBUG2(printk(KERN_INFO "%s(): MBC_GET_PORT_NAME Failed, No FL Port\n",
++                              __func__);)
++
++              ha->device_flags &= ~SWITCH_FOUND;
++              return (0);
++      }
++
++      ha->device_flags |= SWITCH_FOUND;
++
++      /* Get adapter port ID. */
++      rval = qla2x00_get_adapter_id(ha, &tmp_loop_id, &ha->d_id.b.al_pa,
++                      &ha->d_id.b.area, &ha->d_id.b.domain, &tmp_topo);
++
++      sns = pci_alloc_consistent(ha->pdev, 
++                      sizeof(sns_cmd_rsp_t), 
++                      &phys_address);
++      if (sns == NULL) {
++              printk(KERN_WARNING
+                       "qla(%ld): Memory Allocation failed - sns.\n",
+                       ha->host_no);
+               ha->mem_err++;
+@@ -13596,9 +13289,38 @@ qla2x00_configure_fabric(scsi_qla_host_t
+       /* Mark devices that need re-synchronization. */
+       qla2x00_device_resync(ha);
+-      found_cnt = 0;
+       do {
++#if REG_FDMI_ENABLED
++              /* FDMI support */
++              /* login to management server */
++              if (!ha->init_done) {
++                      if (test_and_clear_bit(FDMI_REGISTER_NEEDED,
++                          &ha->fdmi_flags)) {
++                              if (qla2x00_mgmt_svr_login(ha) !=
++                                  QL_STATUS_SUCCESS) {
++                                      DEBUG2(printk("%s(%ld): failed MS "
++                                          "server login.\n", __func__,
++                                          ha->host_no);)
++                              } else {
++                                      /* use mbx commands to send commands */
++                                      qla2x00_fdmi_register(ha);
++                              }
++                      }
++              }
++#endif
++
+ #if REG_FC4_ENABLED
++              /* Ensure we are logged into the SNS. */
++              qla2x00_login_fabric(ha, SIMPLE_NAME_SERVER, 0xff, 0xff, 0xfc,
++                  mb, BIT_0);
++              if (mb[0] != MBS_COMMAND_COMPLETE) {
++                      printk(KERN_INFO "scsi(%ld): Failed SNS login: "
++                          "loop_id=%x mb[0]=%x mb[1]=%x mb[2]=%x mb[6]=%x "
++                          "mb[7]=%x\n", ha->host_no, SIMPLE_NAME_SERVER,
++                          mb[0], mb[1], mb[2], mb[6], mb[7]);
++                      return (QL_STATUS_ERROR);
++              }
++
+               if (test_and_clear_bit(REGISTER_FC4_NEEDED, &ha->dpc_flags)) {
+                       if (qla2x00_register_fc4(ha, sns, phys_address)) {
+                               /* EMPTY */
+@@ -13632,21 +13354,8 @@ qla2x00_configure_fabric(scsi_qla_host_t
+                       }
+               }
+ #endif
+-              new_dev_list =  kmalloc( MAX_FIBRE_DEVICES * 
+-                                       sizeof(struct new_dev), GFP_ATOMIC);
+-              if( new_dev_list == NULL ){
+-                      printk("%s Failed to allocate memory for"
+-                              "New Device List\n",__func__);
+-                      rval = BIT_0 ;
+-                      break;
+-              }else {
+-                      memset(new_dev_list , 0 ,
+-                              MAX_FIBRE_DEVICES * sizeof(struct new_dev));
+-                      rval = qla2x00_find_all_fabric_devs(ha, 
+-                              sns, phys_address,
+-                              new_dev_list, &new_dev_cnt, 
+-                              &local_flags);
+-              }
++              rval = qla2x00_find_all_fabric_devs(ha, sns, phys_address,
++                  &new_fcports);
+               if (rval != 0)
+                       break;
+@@ -13654,150 +13363,95 @@ qla2x00_configure_fabric(scsi_qla_host_t
+                * Logout all previous fabric devices marked lost, except
+                * tape devices.
+                */
+-              for (index = 0; index < MAX_FIBRE_DEVICES &&
+-                      !atomic_read(&ha->loop_down_timer) &&
+-                      !(test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags)); 
+-                      index++) {
+-
+-                      if (ha->fc_db[index].loop_id & PORT_LOST_ID &&
+-                          (ha->fc_db[index].flag & DEV_PUBLIC) &&
+-                          !(ha->fc_db[index].flag & DEV_TAPE_DEVICE)) {
+-
+-                              qla2x00_fabric_logout(ha, 
+-                                              ha->fc_db[index].loop_id & 
+-                                               0xff);
+-                              local_flags |= LOGOUT_PERFORMED;
+-                      }
+-              }
+-
+-              /* Logout and remove any lost initiator devices */
+-              list_for_each_safe(fcil, fcitemp, &ha->fcinitiators) {
+-                      fcinitiator = list_entry(fcil, fc_initiator_t, list);
++              list_for_each_entry(fcport, &ha->fcports, list) {
++                      if (test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags))
++                              break;
+-                      if ((fcinitiator->loop_id & PORT_LOST_ID) == 0)
++                      if ((fcport->flags & FC_FABRIC_DEVICE) == 0)
+                               continue;
+-                      qla2x00_fabric_logout(ha, fcinitiator->loop_id & 0xff);
+-                      ha->fabricid[fcinitiator->loop_id &0xFF].in_use = FALSE;
+-
+-                      list_del(&fcinitiator->list);
+-                      kfree(fcinitiator);
+-              }
+-
+-#if 0
+-              /*
+-               * Wait for all remaining IO's to finish if there was logout.
+-               */
+-              if (local_flags & LOGOUT_PERFORMED) {
+-                      local_flags &= ~LOGOUT_PERFORMED;
+-
+-                      if (ha->init_done) {
+-                              if (!(ha->dpc_flags & COMMAND_WAIT_ACTIVE)) {
+-                                      ha->dpc_flags |= COMMAND_WAIT_ACTIVE;
+-
+-                                      qla2x00_cmd_wait(ha);
+-
+-                                      ha->dpc_flags &= ~COMMAND_WAIT_ACTIVE;
++                      if (atomic_read(&fcport->state) == FC_DEVICE_LOST) {
++                              qla2x00_mark_device_lost(ha, fcport,
++                                  ql2xplogiabsentdevice);
++
++                              if (fcport->loop_id != FC_NO_LOOP_ID &&
++                                  (fcport->flags & FC_TAPE_DEVICE) == 0 &&
++                                  fcport->port_type != FCT_INITIATOR &&
++                                  fcport->port_type != FCT_BROADCAST) {
++
++                                      qla2x00_fabric_logout(ha,
++                                          fcport->loop_id);
++                                      fcport->loop_id = FC_NO_LOOP_ID;
+                               }
+                       }
+               }
+-#endif
++
++              /* Starting free loop ID. */
++              next_loopid = ha->min_external_loopid;
+               /*
+-               * Scan through our database and login entries already in our
+-               * database.
++               * Scan through our port list and login entries that need to be
++               * logged in.
+                */
+-              for (index = 0; index < MAX_FIBRE_DEVICES &&
+-                      !atomic_read(&ha->loop_down_timer) &&
+-                      !(test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags)); index++) {
++              list_for_each_entry(fcport, &ha->fcports, list) {
++                      if (atomic_read(&ha->loop_down_timer) ||
++                          test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags))
++                              break;
+-                      if (!(ha->fc_db[index].loop_id & PORT_LOGIN_NEEDED))
++                      if ((fcport->flags & FC_FABRIC_DEVICE) == 0 ||
++                          (fcport->flags & FC_LOGIN_NEEDED) == 0)
+                               continue;
+-                      ha->fc_db[index].loop_id &= ~PORT_LOGIN_NEEDED;
+-                      if (ha->fc_db[index].loop_id <= LAST_SNS_LOOP_ID) {
+-
+-                              /* loop_id reusable */
+-                              dev.loop_id = ha->fc_db[index].loop_id & 0xff;
+-                      } else {
+-                              for (i = ha->min_external_loopid;
+-                                      i < MAX_PUBLIC_LOOP_IDS; 
+-                                      i++) {
+-
+-                                      if (!ha->fabricid[i].in_use) {
+-                                              ha->fabricid[i].in_use = TRUE;
+-                                              dev.loop_id = i;
+-                                              break;
+-                                      }
+-                              }
+-
+-                              if (i == MAX_PUBLIC_LOOP_IDS)
++                      if (fcport->loop_id == FC_NO_LOOP_ID) {
++                              fcport->loop_id = next_loopid;
++                              rval = qla2x00_find_new_loop_id(ha, fcport);
++                              if (rval != QL_STATUS_SUCCESS) {
++                                      /* Ran out of IDs to use */
+                                       break;
++                              }
+                       }
+-                      dev.d_id.b24 = ha->fc_db[index].d_id.b24;
++                      /* Login and update database */
++                      qla2x00_fabric_dev_login(ha, fcport, &next_loopid);
++              }
+-                      /* login and update database */
+-                      if (qla2x00_fabric_login(ha, &dev) == 0) {
+-                              ha->fc_db[index].loop_id = dev.loop_id;
+-                              found_cnt++;
+-                      }
++              /* Exit if out of loop IDs. */
++              if (rval != QL_STATUS_SUCCESS) {
++                      break;
+               }
+               /*
+-               * Scan through new device list and login and add to our
+-               * database.
++               * Login and add the new devices to our port list.
+                */
+-              for (index = 0; index < new_dev_cnt &&
+-                      !atomic_read(&ha->loop_down_timer) &&
+-                      !(test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags)); 
+-                      index++) {
+-
+-                      if (new_dev_list[index].ignore)
+-                              continue;
+-
+-                      memcpy(&dev, &new_dev_list[index],
+-                                      sizeof(struct new_dev));
+-
+-                      dev.flag = DEV_PUBLIC;
+-
+-                      for (i = ha->min_external_loopid;
+-                              i < MAX_PUBLIC_LOOP_IDS; 
+-                              i++) {
+-
+-                              if (!ha->fabricid[i].in_use) {
+-                                      ha->fabricid[i].in_use = TRUE;
+-                                      dev.loop_id = i;
+-                                      break;
+-                              }
+-                      }
+-
+-                      if (i == MAX_PUBLIC_LOOP_IDS)
++              list_for_each_entry_safe(fcport, fcptemp, &new_fcports, list) {
++                      if (atomic_read(&ha->loop_down_timer) ||
++                          test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags))
+                               break;
+-                      DEBUG(printk("%s(): calling qla2100_fabric_login()\n",
+-                                      __func__);)
++                      /* Find a new loop ID to use. */
++                      fcport->loop_id = next_loopid;
++                      rval = qla2x00_find_new_loop_id(ha, fcport);
++                      if (rval != QL_STATUS_SUCCESS) {
++                              /* Ran out of IDs to use */
++                              break;
++                      }
+-                      if (qla2x00_fabric_login(ha, &dev) == 0) {
+-                              found_cnt++;
+-                              if ((rval = 
+-                                      qla2x00_update_fc_database(ha, 
+-                                                      &dev,
+-                                                      enable_slot_reuse)) ) {
++                      /* Login and update database */
++                      qla2x00_fabric_dev_login(ha, fcport, &next_loopid);
+-                                      qla2x00_fabric_logout(ha, dev.loop_id);
+-                                      ha->fabricid[i].in_use = FALSE;
+-                                      break;
+-                              }
+-                      }
++                      /* Remove device from the new list and add it to DB */
++                      list_del(&fcport->list);
++                      list_add_tail(&fcport->list, &ha->fcports);
+               }
+-      } while(0);
++      } while (0);
+       pci_free_consistent(ha->pdev, sizeof(sns_cmd_rsp_t), sns, phys_address);
+-      if( new_dev_list != NULL ){
+-              kfree(new_dev_list);
+-      } 
++      /* Free all new device structures not processed. */
++      list_for_each_entry_safe(fcport, fcptemp, &new_fcports, list) {
++              list_del(&fcport->list);
++              kfree(fcport);
++      }
+       if (rval) {
+               DEBUG2(printk(KERN_INFO "%s(%ld): error exit: rval=%d\n",
+@@ -13806,9 +13460,6 @@ qla2x00_configure_fabric(scsi_qla_host_t
+                               rval);)
+       } else {
+               /* EMPTY */
+-              DEBUG2(if (found_cnt))
+-              DEBUG2(printk(KERN_INFO "scsi%ld Found (%d) ports\n",
+-                              ha->host_no, found_cnt);) 
+               DEBUG2(printk(KERN_INFO "scsi%ld: %s: exit\n", ha->host_no, __func__);)
+       }
+@@ -13838,38 +13489,54 @@ qla2x00_configure_fabric(scsi_qla_host_t
+  *    Kernel context.
+  */
+ static uint8_t
+-qla2x00_find_all_fabric_devs(scsi_qla_host_t *ha, 
+-    sns_cmd_rsp_t *sns, dma_addr_t phys_addr, 
+-    struct new_dev *new_dev_list, uint16_t *new_dev_cnt, uint8_t *flags) 
++qla2x00_find_all_fabric_devs(scsi_qla_host_t *ha, sns_cmd_rsp_t *sns,
++    dma_addr_t phys_addr, struct list_head *new_fcports)
+ {
+-      fcdev_t         first_dev, dev;
+       uint8_t         rval = 0;
+-      uint8_t         use_gan = 0;
+-      uint8_t         wrap_around;    /* device list */
+       uint16_t        i;
+-      uint16_t        index, device_index = 0;
+-      uint16_t        new_cnt;
+       uint16_t        public_count;
+-      uint16_t        initiator;
+-      struct list_head *fcil;
+-      fc_initiator_t  *fcinitiator;
++
++      fc_port_t       *fcport, *new_fcport, *tmp_fcport = NULL;
++      int             found;
++      sw_info_t       *swl;
++      int             swl_idx;
++      int             first_dev, last_dev;
++      port_id_t       wrap;
+       ENTER(__func__);
++
+       /* Try GNN_FT to get the list of SCSI type devices */
+-      if (qla2x00_gnn_ft(ha, sns, phys_addr, 
+-                              new_dev_list, SCSI_TYPE) != QL_STATUS_SUCCESS){
+-              use_gan = 1;
+-              printk(KERN_INFO "%s GNN_FT Failed-Try"
+-                                      " issuing GAN \n",__func__);
+-      }else if(qla2x00_gpn_id(ha, sns, phys_addr,                  
+-                              new_dev_list) != QL_STATUS_SUCCESS) {
+-              use_gan = 1;
+-              printk(KERN_INFO "%s GPN_ID Failed-Try"
+-                                      " issuing GAN \n",__func__);
++      swl = kmalloc(sizeof(sw_info_t) * MAX_FIBRE_DEVICES, GFP_ATOMIC);
++      if (swl == NULL) {
++              /*EMPTY*/
++              DEBUG2(printk("scsi(%ld): GNN_FT allocations failed, fallback "
++                  "on GAN\n", ha->host_no));
++      } else {
++              memset(swl, 0 ,MAX_FIBRE_DEVICES * sizeof (sw_info_t));
++              if (qla2x00_gnn_ft(ha, sns, phys_addr, swl, SCSI_TYPE) !=
++                  QL_STATUS_SUCCESS) {
++                      kfree(swl);
++                      swl = NULL;
++              } else if (qla2x00_gpn_id(ha, sns, phys_addr, swl) !=
++                  QL_STATUS_SUCCESS) {
++                      kfree(swl);
++                      swl = NULL;
++              }
++      }
++
++      /* Allocate temporary fcport for any new fcports discovered. */
++      new_fcport = qla2x00_alloc_fcport(ha, GFP_KERNEL);
++      if (new_fcport == NULL) {
++              if (swl)
++                      kfree(swl);
++              return (QL_STATUS_ERROR);
+       }
++      new_fcport->flags |= FC_FABRIC_DEVICE;
++      new_fcport->flags |= FC_LOGIN_NEEDED;
++
+ #if defined(ISP2100)
+-      ha->max_public_loop_ids = LAST_SNS_LOOP_ID - SNS_FIRST_LOOP_ID + 1;
++      ha->max_public_loop_ids = SNS_LAST_LOOP_ID - SNS_FIRST_LOOP_ID + 1;
+ #else
+       ha->max_public_loop_ids = MAX_PUBLIC_LOOP_IDS;
+ #endif
+@@ -13887,84 +13554,74 @@ qla2x00_find_all_fabric_devs(scsi_qla_ho
+ #endif
+       /* Set start port ID scan at adapter ID. */
+-      dev.d_id.b24 = 0;
+-      first_dev.d_id.b24 = 0;
+-      wrap_around = FALSE ;   /* device list */
++      swl_idx = 0;
++      first_dev = 1;
++      last_dev = 0;
+-      new_cnt = 0;    /* new device count */
+-
+-      DEBUG2(printk(KERN_INFO "%s(%ld): use_gan=%d dpc_flags=0x%lx\n",
+-          __func__, ha->host_no, use_gan, ha->dpc_flags);)
++      DEBUG2(printk(KERN_INFO "%s(%ld): dpc_flags=0x%lx\n",
++          __func__, ha->host_no, ha->dpc_flags);)
+       for (i = 0; 
+           i < public_count && !atomic_read(&ha->loop_down_timer) &&
+           !(test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags)); i++) {
+-              if( ! use_gan ){
+-                      if (wrap_around){
+-                              dev.d_id.b24 = first_dev.d_id.b24;
+-                      }else{
+-                              new_dev_list[device_index].ignore++;
+-                              dev.d_id.b24 = 
+-                                      new_dev_list[device_index].d_id.b24;
+-                              memcpy(dev.name ,
+-                                  new_dev_list[device_index].name, WWN_SIZE);
+-                              memcpy(dev.wwn ,
+-                                  new_dev_list[device_index].wwn, WWN_SIZE);
+-
+-                              /* Last Device */
+-                              if ( new_dev_list[device_index].d_id.b.rsvd_1 
+-                                  != 0) {
+-                                      wrap_around = TRUE;
++              if (swl != NULL) {
++                      if (last_dev) {
++                              wrap.b24 = new_fcport->d_id.b24;
++                      } else {
++                              new_fcport->d_id.b24 = swl[swl_idx].d_id.b24;
++                              memcpy(new_fcport->node_name,
++                                  swl[swl_idx].node_name, WWN_SIZE);
++                              memcpy(new_fcport->port_name,
++                                  swl[swl_idx].port_name, WWN_SIZE);
++
++                              if (swl[swl_idx].d_id.b.rsvd_1 != 0) {
++                                      last_dev = 1;
+                               }
+-                              device_index++;
++                              swl_idx++;
+                       }
+               } else {
+                       /* Send GAN to the switch */
+                       rval = 0;
+-                      if (qla2x00_gan(ha, sns, phys_addr, &dev)) {
++                      if (qla2x00_gan(ha, sns, phys_addr, new_fcport)) {
+                               rval = rval | BIT_0;
+                               break;
+                       }
+               }
+               /* If wrap on switch device list, exit. */
+-              if (dev.d_id.b24 == first_dev.d_id.b24)
++              if (first_dev) {
++                      wrap.b24 = new_fcport->d_id.b24;
++                      first_dev = 0;
++              } else if (new_fcport->d_id.b24 == wrap.b24){
++                      DEBUG(printk("%s switch device list wrapped\n"
++                          ,__func__);)
+                       break;
++              }
+               DEBUG(printk("scsi(%ld): found fabric(%d) - "
+                               "port Id=%06x\n", 
+                               ha->host_no, 
+                               i, 
+-                              dev.d_id.b24);)
+-
+-              if (first_dev.d_id.b24 == 0)
+-                      first_dev.d_id.b24 = dev.d_id.b24;
++                              new_fcport->d_id.b24);)
+-              if(use_gan){
+-                      /* If port type not equal to N or NL port, skip it. */
+-                      if (sns->p.gan_rsp[16] != 1 
+-                              && sns->p.gan_rsp[16] != 2) {
+-                              continue;       /* needed for McData switch */
+-                      }
+-              }
+               /* Bypass if host adapter. */
+-              if (dev.d_id.b24 == ha->d_id.b24)
++              if (new_fcport->d_id.b24 == ha->d_id.b24)
+                       continue;
+               /* Bypass reserved domain fields. */
+-              if ((dev.d_id.b.domain & 0xf0) == 0xf0)
++              if ((new_fcport->d_id.b.domain & 0xf0) == 0xf0)
+                       continue;
+               /* Bypass if same domain and area of adapter. */
+-              if ((dev.d_id.b24 & 0xffff00) == (ha->d_id.b24 & 0xffff00))
++              if ((new_fcport->d_id.b24 & 0xffff00) ==
++                  (ha->d_id.b24 & 0xffff00))
+                       continue;
+-
+ #if defined(FC_IP_SUPPORT)
+               /* Check for IP device */
+-              if(use_gan){
++              if(swl == NULL){
+                       if (sns->p.gan_rsp[579] & 0x20) {
+                               /* Found IP device */
+                               DEBUG12(printk("qla%ld: IP fabric WWN: "
+@@ -13982,179 +13639,100 @@ qla2x00_find_all_fabric_devs(scsi_qla_ho
+               }
+ #endif
+-              /* Bypass if initiator */
+-              initiator = FALSE;
+-              list_for_each(fcil, &ha->fcinitiators) {
+-                      fcinitiator = list_entry(fcil, fc_initiator_t, list);
+-
+-                      if (memcmp(dev.wwn, fcinitiator->port_name, 8) != 0)
++              /* Locate matching device in database. */
++              found = 0;
++              list_for_each_entry(fcport, &ha->fcports, list) {
++                      if (memcmp(new_fcport->port_name, fcport->port_name,
++                          WWN_SIZE))
+                               continue;
+-                      initiator = TRUE;
+-                      DEBUG(printk("qla%ld: found host "
+-                          "%02x%02x%02x%02x%02x%02x%02x%02x, "
+-                          "port Id=%06x\n",
+-                          ha->instance,
+-                          dev.name[0], dev.name[1],
+-                          dev.name[2], dev.name[3],
+-                          dev.name[4], dev.name[5],
+-                          dev.name[6], dev.name[7], 
+-                          dev.d_id.b24);)
++                      found++;
+                       /*
+-                       * If the initiator was marked as lost, perform the
+-                       * required logout and relogin the initiator by
+-                       * assuming a new device.
++                       * If device was not a fabric device before.
+                        */
+-                      if ((fcinitiator->loop_id & PORT_LOST_ID) == 0)
++                      if ((fcport->flags & FC_FABRIC_DEVICE) == 0) {
++                              fcport->d_id.b24 = new_fcport->d_id.b24;
++                              fcport->loop_id = FC_NO_LOOP_ID;
++                              fcport->flags |= FC_LOGIN_NEEDED;
++                              fcport->flags |= FC_FABRIC_DEVICE;
+                               break;
+-
+-                      initiator = FALSE;
+-                      break;
+-              }
+-
+-              /* Bypass if initiator */
+-              if (initiator)
+-                      continue;
+-              /* Locate matching device in database. */
+-              for (index = 0; index < MAX_FIBRE_DEVICES; index++) {
+-                      if (ha->fc_db[index].loop_id == PORT_UNUSED)
+-                              continue;
+-
+-                      rval = 1;
+-                      switch (ha->binding_type) {
+-                              case BIND_BY_PORT_NAME:
+-                                      rval = memcmp(dev.wwn,
+-                                          ha->fc_db[index].wwn, WWN_SIZE);
+-                                      break;
+-
+-                              case BIND_BY_PORT_ID:
+-                                      rval = (dev.d_id.b24 !=
+-                                          ha->fc_db[index].d_id.b24);
+-                                      break;
+-
+-                              case BIND_BY_NODE_NAME:
+-                                      rval = memcmp(dev.name,
+-                                          ha->fc_db[index].name, WWN_SIZE);
+-                                      break;
+                       }
+-                      if (rval)
+-                              continue;
+                       /*
+-                       * Update volatile unbound fields for PortID binding
+-                       * only
++                       * If address the same and state FCS_ONLINE, nothing
++                       * changed.
+                        */
+-                      if (ha->binding_type == BIND_BY_PORT_ID) {
+-                              memcpy(ha->fc_db[index].name,
+-                                  dev.name, WWN_SIZE);
+-                              memcpy(ha->fc_db[index].wwn,
+-                                  dev.wwn, WWN_SIZE);
+-                      }
+-
+-                      /* Now we found a matching device name */
+-                      DEBUG(printk("qla%ld: found fabric dev %d in tgt %d "
+-                          "db, flags= 0x%x, loop_id="
+-                          "0x%04x, port=%06x, name="
+-                          "%02x%02x%02x%02x%02x%02x%02x%02x\n",
+-                          ha->instance,
+-                          i, index,
+-                          ha->fc_db[index].flag,
+-                          ha->fc_db[index].loop_id,
+-                          ha->fc_db[index].d_id.b24,
+-                          dev.wwn[0], dev.wwn[1],
+-                          dev.wwn[2], dev.wwn[3],
+-                          dev.wwn[4], dev.wwn[5],
+-                          dev.wwn[6], dev.wwn[7]);)
+-
+-                      if (!(ha->fc_db[index].flag & DEV_PUBLIC)) {
+-                              /*
+-                               * This was in our database as a local device.
+-                               * Here we assume this device either has
+-                               * changed location so configure_local_loop has
+-                               * already done necessary clean up, or it's
+-                               * saved here due to persistent name binding.
+-                               * We'll just add it in as a fabric device.
+-                               */
+-                              /* Copy port id and name fields. */
+-                              ha->fc_db[index].flag |= DEV_PUBLIC;
+-                              ha->fc_db[index].d_id.b24 = dev.d_id.b24;
+-                              ha->fc_db[index].loop_id |= PORT_LOGIN_NEEDED;
+-
+-                              break;
+-                      }
+-
+-                      /* This was in our database as a fabric device. */
+-                      if ((ha->fc_db[index].d_id.b24 == dev.d_id.b24) &&
+-                              (ha->fc_db[index].loop_id <= LAST_SNS_LOOP_ID))
+-                              /* Device didn't change */
+-                              break;
+-
+-                      if (ha->fc_db[index].loop_id == PORT_AVAILABLE) {
+-                              ha->fc_db[index].flag |= DEV_PUBLIC;
+-                              ha->fc_db[index].d_id.b24 = dev.d_id.b24;
+-                              ha->fc_db[index].loop_id |= PORT_LOGIN_NEEDED;
++                      if (fcport->d_id.b24 == new_fcport->d_id.b24 &&
++                          atomic_read(&fcport->state) == FC_ONLINE) {
+                               break;
+                       }
+                       /*
+                        * Port ID changed or device was marked to be updated;
+-                       * logout and mark it for relogin later.
++                       * Log it out if still logged in and mark it for
++                       * relogin later.
+                        */
+-                      qla2x00_fabric_logout(ha,
+-                          ha->fc_db[index].loop_id & 0xff);
+-
+-                      ha->fc_db[index].flag |= DEV_PUBLIC;
+-                      ha->fc_db[index].d_id.b24 = dev.d_id.b24;
+-
+-                      ha->fc_db[index].loop_id |= PORT_LOGIN_NEEDED;
+-                      ha->fc_db[index].loop_id &= ~PORT_LOST_ID;
+-
+-                      *flags |= LOGOUT_PERFORMED;
++                      fcport->d_id.b24 = new_fcport->d_id.b24;
++                      fcport->flags |= FC_LOGIN_NEEDED;
++                      if (fcport->loop_id != FC_NO_LOOP_ID &&
++                          (fcport->flags & FC_TAPE_DEVICE) == 0 &&
++                          fcport->port_type != FCT_INITIATOR &&
++                          fcport->port_type != FCT_BROADCAST) {
++                              qla2x00_fabric_logout(ha, fcport->loop_id);
++                              fcport->loop_id = FC_NO_LOOP_ID;
++                      }
+                       break;
+               }
+-              if (index == MAX_FIBRE_DEVICES) {
+-                      /*
+-                       * Did not find a match in our database.  This is a new
+-                       * device.
+-                       */
+-                      DEBUG3(printk("%s(): new device "
+-                          "%02x%02x%02x%02x%02x%02x%02x%02x.\n",
+-                          __func__,
+-                          dev.wwn[0], dev.wwn[1], dev.wwn[2], dev.wwn[3],
+-                          dev.wwn[4], dev.wwn[5], dev.wwn[6], dev.wwn[7]);) 
+-
+-                      if( use_gan){
+-                              memcpy(&new_dev_list[new_cnt], &dev,
+-                                      sizeof(struct new_dev));
+-                      } else {
+-                              new_dev_list[device_index-1].ignore = 0;
+-                      }
+-                      new_cnt++;
++              if (found)
++                      continue;
++
++              /* If device was not in our fcports list, then add it. */
++              list_add_tail(&new_fcport->list, new_fcports);
++              tmp_fcport = new_fcport;
++
++              /* Allocate a new replacement fcport. */
++              new_fcport = qla2x00_alloc_fcport(ha, GFP_KERNEL);
++              if (new_fcport == NULL) {
++                      if (swl)
++                              kfree(swl);
++                      return (QL_STATUS_ERROR);
+               }
++              new_fcport->flags |= FC_FABRIC_DEVICE;
++              new_fcport->flags |= FC_LOGIN_NEEDED;
++              new_fcport->d_id.b24 = tmp_fcport->d_id.b24;
+       }
+-      if (use_gan) {
+-              *new_dev_cnt = new_cnt;
+-      } else {
+-              *new_dev_cnt = device_index;
+-      }
++      if (swl)
++              kfree(swl);
++
++      if (new_fcport)
++              kfree(new_fcport);
+-      if (new_cnt >  0)
++      if (!list_empty(new_fcports))
+               ha->device_flags |= DFLG_FABRIC_DEVICES;
+       DEBUG(printk("%s(%ld): exit. rval=%d dpc_flags=0x%lx" 
+-          " total_no_of_new_devices=%d. loop_down_timer=%i\n",
+-           __func__,ha->host_no,rval,ha->dpc_flags,new_cnt,
++          " loop_down_timer=%i\n",
++           __func__,ha->host_no,rval,ha->dpc_flags,
+           atomic_read(&ha->loop_down_timer));)
++      DEBUG2(printk(KERN_INFO "%s(%ld): exit. rval=%d dpc_flags=0x%lx" 
++          " loop_down_timer=%i\n",
++           __func__,ha->host_no,rval,ha->dpc_flags,
++          atomic_read(&ha->loop_down_timer)));
+       LEAVE(__func__);
+       return (rval);
+ }
++
++#if REG_FDMI_ENABLED
++#include "qla_gs.c"
++#endif
++
+ static __inline__ ms_iocb_entry_t *
+ qla2x00_prep_ms_iocb(scsi_qla_host_t *, uint32_t, uint32_t);
+ /**
+@@ -14188,12 +13766,12 @@ qla2x00_prep_ms_iocb(scsi_qla_host_t *ha
+       ms_pkt->rsp_bytecount = cpu_to_le32(rsp_size);
+       ms_pkt->req_bytecount = cpu_to_le32(req_size);
+-      ms_pkt->dseg_req_address[0] = cpu_to_le32(LSD(ha->ct_sns_dma));
+-      ms_pkt->dseg_req_address[1] = cpu_to_le32(MSD(ha->ct_sns_dma));
++      ms_pkt->dseg_req_address[0] = cpu_to_le32(LSD(ha->ct_iu_dma));
++      ms_pkt->dseg_req_address[1] = cpu_to_le32(MSD(ha->ct_iu_dma));
+       ms_pkt->dseg_req_length = ms_pkt->req_bytecount;
+-      ms_pkt->dseg_rsp_address[0] = cpu_to_le32(LSD(ha->ct_sns_dma));
+-      ms_pkt->dseg_rsp_address[1] = cpu_to_le32(MSD(ha->ct_sns_dma));
++      ms_pkt->dseg_rsp_address[0] = cpu_to_le32(LSD(ha->ct_iu_dma));
++      ms_pkt->dseg_rsp_address[1] = cpu_to_le32(MSD(ha->ct_iu_dma));
+       ms_pkt->dseg_rsp_length = ms_pkt->rsp_bytecount;
+       return (ms_pkt);
+@@ -14250,8 +13828,8 @@ qla2x00_register_fc4(scsi_qla_host_t *ha
+       memset(sns, 0, sizeof(sns_cmd_rsp_t));
+       wc = RFT_DATA_SIZE / 2;
+       sns->p.cmd.buffer_length = cpu_to_le16(wc);
+-      sns->p.cmd.buffer_address[0] = cpu_to_le32(LS_64BITS(phys_addr));
+-      sns->p.cmd.buffer_address[1] = cpu_to_le32(MS_64BITS(phys_addr));
++      sns->p.cmd.buffer_address[0] = cpu_to_le32(LSD(phys_addr));
++      sns->p.cmd.buffer_address[1] = cpu_to_le32(MSD(phys_addr));
+       sns->p.cmd.subcommand_length = __constant_cpu_to_le16(22);
+       sns->p.cmd.subcommand = __constant_cpu_to_le16(0x217);
+       wc = (RFT_DATA_SIZE - 16) / 4;
+@@ -14315,8 +13893,8 @@ qla2x00_register_fc4_feature(scsi_qla_ho
+       memset(sns, 0, sizeof(sns_cmd_rsp_t));
+       wc = RFF_DATA_SIZE / 2;
+       sns->p.cmd.buffer_length = cpu_to_le16(wc);
+-      sns->p.cmd.buffer_address[0] = cpu_to_le32(LS_64BITS(phys_addr));
+-      sns->p.cmd.buffer_address[1] = cpu_to_le32(MS_64BITS(phys_addr));
++      sns->p.cmd.buffer_address[0] = cpu_to_le32(LSD(phys_addr));
++      sns->p.cmd.buffer_address[1] = cpu_to_le32(MSD(phys_addr));
+       sns->p.cmd.subcommand_length = __constant_cpu_to_le16(8);
+       sns->p.cmd.subcommand = __constant_cpu_to_le16(0x21f);
+       wc = (RFF_DATA_SIZE - 16) / 4;
+@@ -14377,8 +13955,8 @@ qla2x00_register_nn(scsi_qla_host_t *ha,
+       memset(sns, 0, sizeof(sns_cmd_rsp_t));
+       wc = RNN_DATA_SIZE / 2;
+       sns->p.cmd.buffer_length = cpu_to_le16(wc);
+-      sns->p.cmd.buffer_address[0] = cpu_to_le32(LS_64BITS(phys_addr));
+-      sns->p.cmd.buffer_address[1] = cpu_to_le32(MS_64BITS(phys_addr));
++      sns->p.cmd.buffer_address[0] = cpu_to_le32(LSD(phys_addr));
++      sns->p.cmd.buffer_address[1] = cpu_to_le32(MSD(phys_addr));
+       sns->p.cmd.subcommand_length = __constant_cpu_to_le16(10);
+       sns->p.cmd.subcommand = __constant_cpu_to_le16(0x213);
+       wc = (RNN_DATA_SIZE - 16) / 4;
+@@ -14437,6 +14015,7 @@ qla2x00_register_snn(scsi_qla_host_t *ha
+       uint8_t         version[20];
+       ms_iocb_entry_t *ms_pkt;
++      struct ct_sns_pkt       *ct_iu;
+       struct ct_sns_req       *ct_req;
+       struct ct_sns_rsp       *ct_rsp;
+       qla_boards_t    *bdp;
+@@ -14444,10 +14023,12 @@ qla2x00_register_snn(scsi_qla_host_t *ha
+       ENTER(__func__);
+       /* Get consistent memory allocated for MS IOCB */
+-      ha->ms_iocb = pci_alloc_consistent(ha->pdev,
+-                          sizeof(ms_iocb_entry_t), &ha->ms_iocb_dma);
++      if (ha->ms_iocb == NULL){
++              ha->ms_iocb = pci_alloc_consistent(ha->pdev,
++                  sizeof(ms_iocb_entry_t), &ha->ms_iocb_dma);
++      }
+-      if( ha->ms_iocb == NULL){
++      if (ha->ms_iocb == NULL){
+                /* error */
+               printk(KERN_WARNING
+                   "scsi(%ld): Memory Allocation failed - ms_iocb\n",
+@@ -14457,10 +14038,13 @@ qla2x00_register_snn(scsi_qla_host_t *ha
+       }
+       memset(ha->ms_iocb, 0, sizeof(ms_iocb_entry_t));
+  
+-      /* Get consistent memory allocated for CT SNS commands */
+-        ha->ct_sns = pci_alloc_consistent(ha->pdev,
+-                          sizeof(struct ct_sns_pkt), &ha->ct_sns_dma);
+-      if( ha->ct_sns == NULL){
++      /* Get consistent memory allocated for CT SNS command */
++      if (ha->ct_iu == NULL) {
++              ha->ct_iu = pci_alloc_consistent(ha->pdev,
++                  sizeof(struct ct_sns_pkt), &ha->ct_iu_dma);
++      }
++
++      if( ha->ct_iu == NULL){
+                /* error */
+               printk(KERN_WARNING
+                   "scsi(%ld): Memory Allocation failed - ct_sns\n",
+@@ -14469,7 +14053,7 @@ qla2x00_register_snn(scsi_qla_host_t *ha
+               return (rval) ;
+       }
+-        memset(ha->ct_sns, 0, sizeof(struct ct_sns_pkt));
++        memset(ha->ct_iu, 0, sizeof(struct ct_sns_pkt));
+       /* Prepare common MS IOCB- Request size adjusted
+        * after CT preparation */
+@@ -14477,8 +14061,9 @@ qla2x00_register_snn(scsi_qla_host_t *ha
+       ms_pkt = qla2x00_prep_ms_iocb(ha, 0, RSNN_NN_RSP_SIZE);
+       /* Prepare CT request */
+-      ct_req = &ha->ct_sns->p.req;
+-      ct_rsp = &ha->ct_sns->p.rsp;
++      ct_iu = (struct ct_sns_pkt *)ha->ct_iu;
++      ct_req = &ct_iu->p.req;
++      ct_rsp = &ct_iu->p.rsp;
+       /* Initialize Name Server CT-Command header */
+       qla2x00_prep_nsrv_ct_cmd_hdr(ct_req,RSNN_NN_CMD,RSNN_NN_RSP_SIZE);
+@@ -14528,11 +14113,11 @@ qla2x00_register_snn(scsi_qla_host_t *ha
+                   __func__ ,ha->host_no));
+       }
+       pci_free_consistent(ha->pdev,
+-          sizeof(struct ct_sns_pkt), ha->ct_sns, ha->ct_sns_dma);
++          sizeof(struct ct_sns_pkt), ha->ct_iu, ha->ct_iu_dma);
+       pci_free_consistent(ha->pdev,
+           sizeof(ms_iocb_entry_t), ha->ms_iocb, ha->ms_iocb_dma);
+-      ha->ct_sns = NULL;
++      ha->ct_iu = NULL;
+         ha->ms_iocb = NULL;
+       LEAVE(__func__);
+@@ -14562,7 +14147,7 @@ qla2x00_register_snn(scsi_qla_host_t *ha
+  */
+ static uint8_t 
+ qla2x00_gnn_ft(scsi_qla_host_t  *ha, sns_cmd_rsp_t  *sns, dma_addr_t phys_addr,
+-                      struct  new_dev *new_dev_list , uint32_t protocol)
++    sw_info_t *swl , uint32_t protocol)
+ {
+       uint8_t         rval = BIT_0 ;
+       uint16_t        wc;
+@@ -14570,63 +14155,65 @@ qla2x00_gnn_ft(scsi_qla_host_t  *ha, sns
+       ENTER(__func__);
+-      /* Retry GNNFT till valid list or retries exhausted- 
+-       * Default value of retry_gnnft: 10
+-       */
+-      while( retry_count++ < retry_gnnft ) {
++      /* Retry GNNFT till valid list or retries exhausted - Default value of
++       * retry_gnnft: 10 */
++      while (retry_count++ < retry_gnnft) {
+               /* Get Node Name and Port Id for device on SNS. */
+               memset(sns, 0, sizeof(sns_cmd_rsp_t));
+               wc = GNNFT_DATA_SIZE / 2;       /* Size in 16 bit words*/
+               sns->p.cmd.buffer_length = cpu_to_le16(wc);
+-              sns->p.cmd.buffer_address[0] =
+-                              cpu_to_le32(LS_64BITS(phys_addr));
+-              sns->p.cmd.buffer_address[1] = 
+-                              cpu_to_le32(MS_64BITS(phys_addr));
++              sns->p.cmd.buffer_address[0] = cpu_to_le32(LSD(phys_addr));
++              sns->p.cmd.buffer_address[1] = cpu_to_le32(MSD(phys_addr));
+               sns->p.cmd.subcommand_length = __constant_cpu_to_le16(6);
+               sns->p.cmd.subcommand = 
+-                              __constant_cpu_to_le16(0x173);  /* GNN_FT */
++                  __constant_cpu_to_le16(0x173);      /* GNN_FT */
+               wc = (GNNFT_DATA_SIZE - 16) / 4; /* Size in 32 bit words */
+               sns->p.cmd.size = cpu_to_le16(wc);
+               sns->p.cmd.param[0] =  protocol;        /* SCSI Type : 0x8 */
+               rval = BIT_0;
+               if (!qla2x00_send_sns(ha, phys_addr, GNNFT_CMD_SIZE / 2,
+-                              sizeof(sns_cmd_rsp_t))) {
+-                      if (sns->p.gnnft_rsp[8] == 0x80 
+-                              && sns->p.gnnft_rsp[9] == 0x2) {
++                  sizeof(sns_cmd_rsp_t))) {
++                      if (sns->p.gnnft_rsp[8] == 0x80 &&
++                          sns->p.gnnft_rsp[9] == 0x2) {
+                               uint32_t        i,j;
+-                      /* Set port IDs and Node Name in new device list. */
+-                              for (i = 16, j = 0; i < GNNFT_DATA_SIZE; 
+-                                              i += 16, j++) {
+-                                      new_dev_list[j].d_id.b.domain = 
+-                                              sns->p.gnnft_rsp[i + 1];
+-                                      new_dev_list[j].d_id.b.area = 
+-                                              sns->p.gnnft_rsp[i + 2];
+-                                      new_dev_list[j].d_id.b.al_pa = 
+-                                              sns->p.gnnft_rsp[i + 3];
++                              /*
++                               * Set port IDs and Node Name in new device
++                               * list.
++                               */
++                              for (i = 16, j = 0; i < GNNFT_DATA_SIZE;
++                                  i += 16, j++) {
++                                      swl[j].d_id.b.domain =
++                                          sns->p.gnnft_rsp[i + 1];
++                                      swl[j].d_id.b.area = 
++                                          sns->p.gnnft_rsp[i + 2];
++                                      swl[j].d_id.b.al_pa = 
++                                          sns->p.gnnft_rsp[i + 3];
+                                       /* Extract Nodename */
+-                                      memcpy(new_dev_list[j].name, 
+-                                      &sns->p.gnnft_rsp[i + 8], WWN_SIZE);
++                                      memcpy(swl[j].node_name,
++                                          &sns->p.gnnft_rsp[i + 8], WWN_SIZE);
++
++                                      DEBUG2(printk(KERN_INFO
++                                          "qla2x00: gnn_ft entry - "
++                                          "nodename "
++                                          "%02x%02x%02x%02x%02x%02x%02x%02x "
++                                          "port Id=%06x\n",
++                                          sns->p.gnnft_rsp[i+8],
++                                          sns->p.gnnft_rsp[i+9],
++                                          sns->p.gnnft_rsp[i+10],
++                                          sns->p.gnnft_rsp[i+11],
++                                          sns->p.gnnft_rsp[i+12],
++                                          sns->p.gnnft_rsp[i+13],
++                                          sns->p.gnnft_rsp[i+14],
++                                          sns->p.gnnft_rsp[i+15],
++                                          swl[j].d_id.b24));
+-                                      DEBUG2(printk(KERN_INFO "qla2x00: gnn_ft entry - "
+-                                              "nodename "
+-                                      "%02x%02x%02x%02x%02x%02x%02x%02x "
+-                                      "port Id=%06x\n",
+-                                      sns->p.gnnft_rsp[i+8],
+-                                      sns->p.gnnft_rsp[i+9],
+-                                      sns->p.gnnft_rsp[i+10],
+-                                      sns->p.gnnft_rsp[i+11],
+-                                      sns->p.gnnft_rsp[i+12],
+-                                      sns->p.gnnft_rsp[i+13],
+-                                      sns->p.gnnft_rsp[i+14],
+-                                      sns->p.gnnft_rsp[i+15],                                                         new_dev_list[j].d_id.b24);)
+-                      
+                                       /* Last one exit. */
+                                       if (sns->p.gnnft_rsp[i] & BIT_7) {
+-                                              new_dev_list[j].d_id.b.rsvd_1 = 
+-                                                      sns->p.gnnft_rsp[i];
++                                              swl[j].d_id.b.rsvd_1 = 
++                                                  sns->p.gnnft_rsp[i];
+                                               rval = 0;
+                                               break;
+                                       }
+@@ -14634,15 +14221,17 @@ qla2x00_gnn_ft(scsi_qla_host_t  *ha, sns
+                               /* Successfully completed,no need to
+                                * retry any more */
+                               break;
+-                      }else{
+-                              DEBUG2(printk(KERN_INFO "%s(%ld): GNN_FT retrying"
+-                                              "retry_count=%d\n",
+-                                      __func__,ha->host_no,retry_count);)
+-                      //      DEBUG2(qla2x00_dump_buffer(
+-                      //                      (uint8_t *)sns->p.gnnft_rsp, 
+-                      //                      GNNFT_DATA_SIZE);)
++                      } else{
++                              DEBUG2(printk(KERN_INFO
++                                  "%s(%ld): GNN_FT retrying retry_count=%d\n",
++                                  __func__,ha->host_no,retry_count));
++
++                              DEBUG5(qla2x00_dump_buffer(
++                                  (uint8_t *)sns->p.gnnft_rsp,
++                                  GNNFT_DATA_SIZE);)
+                       }
+               }
++
+               /* Wait for 1ms before retrying */
+               udelay(10000);
+       } /* end of while */
+@@ -14655,7 +14244,6 @@ qla2x00_gnn_ft(scsi_qla_host_t  *ha, sns
+       LEAVE(__func__);
+       return (rval);
+-
+ }
+ /*
+@@ -14675,8 +14263,8 @@ qla2x00_gnn_ft(scsi_qla_host_t  *ha, sns
+  *    Kernel context.
+  */
+ static uint8_t 
+-qla2x00_gpn_id(scsi_qla_host_t  *ha, sns_cmd_rsp_t *sns, dma_addr_t phys_addr,
+-                      struct  new_dev *new_dev_list)
++qla2x00_gpn_id(scsi_qla_host_t *ha, sns_cmd_rsp_t *sns, dma_addr_t phys_addr,
++    sw_info_t *swl)
+ {
+       uint8_t         rval = BIT_0 ;
+       uint16_t        wc;
+@@ -14691,10 +14279,10 @@ qla2x00_gpn_id(scsi_qla_host_t  *ha, sns
+                       memset(sns, 0, sizeof(sns_cmd_rsp_t));
+                       wc = GPN_DATA_SIZE / 2; /* Size in 16 bit words*/
+                       sns->p.cmd.buffer_length = cpu_to_le16(wc);
+-                      sns->p.cmd.buffer_address[0] 
+-                                      = cpu_to_le32(LS_64BITS(phys_addr));
+-                      sns->p.cmd.buffer_address[1] 
+-                                      = cpu_to_le32(MS_64BITS(phys_addr));
++                      sns->p.cmd.buffer_address[0] =
++                          cpu_to_le32(LSD(phys_addr));
++                      sns->p.cmd.buffer_address[1] =
++                          cpu_to_le32(MSD(phys_addr));
+                       sns->p.cmd.subcommand_length 
+                                       = __constant_cpu_to_le16(6);
+                       sns->p.cmd.subcommand 
+@@ -14703,45 +14291,46 @@ qla2x00_gpn_id(scsi_qla_host_t  *ha, sns
+                       wc = (GPN_DATA_SIZE - 16) / 4; 
+                                                /* Size in 32 bit words */
+                       sns->p.cmd.size = cpu_to_le16(wc);
+-                      sns->p.cmd.param[0] = new_dev_list[i].d_id.b.al_pa;
+-                      sns->p.cmd.param[1] = new_dev_list[i].d_id.b.area;
+-                      sns->p.cmd.param[2] = new_dev_list[i].d_id.b.domain;
++                      sns->p.cmd.param[0] = swl[i].d_id.b.al_pa;
++                      sns->p.cmd.param[1] = swl[i].d_id.b.area;
++                      sns->p.cmd.param[2] = swl[i].d_id.b.domain;
+                       rval = BIT_0;
+                       if (!qla2x00_send_sns(ha, phys_addr, GPN_CMD_SIZE / 2,
+                               sizeof(sns_cmd_rsp_t))) {
+-                              if (sns->p.gpn_rsp[8] == 0x80 && 
+-                                              sns->p.gpn_rsp[9] == 0x2) {
++                              if (sns->p.gpn_rsp[8] == 0x80 &&
++                                  sns->p.gpn_rsp[9] == 0x2) {
+                                       /* Extract Portname */
+-                                      memcpy(new_dev_list[i].wwn, 
+-                                              &sns->p.gpn_rsp[16], WWN_SIZE);
++                                      memcpy(swl[i].port_name,
++                                          &sns->p.gpn_rsp[16], WWN_SIZE);
+-                                      DEBUG2(printk(KERN_INFO "qla2x00: gpn entry -"
+-                                                      " portname "
+-                                      "%02x%02x%02x%02x%02x%02x%02x%02x "
+-                                      "port Id=%06x\n",
+-                                      sns->p.gpn_rsp[16], sns->p.gpn_rsp[17],
+-                                      sns->p.gpn_rsp[18], sns->p.gpn_rsp[19],
+-                                      sns->p.gpn_rsp[20], sns->p.gpn_rsp[21],
+-                                      sns->p.gpn_rsp[22], sns->p.gpn_rsp[23], 
+-                                      new_dev_list[i].d_id.b24);)
++                                      DEBUG2(printk(KERN_INFO
++                                          "qla2x00: gpn entry - portname "
++                                          "%02x%02x%02x%02x%02x%02x%02x%02x "
++                                          "port Id=%06x\n",
++                                          sns->p.gpn_rsp[16],
++                                          sns->p.gpn_rsp[17],
++                                          sns->p.gpn_rsp[18],
++                                          sns->p.gpn_rsp[19],
++                                          sns->p.gpn_rsp[20],
++                                          sns->p.gpn_rsp[21],
++                                          sns->p.gpn_rsp[22],
++                                          sns->p.gpn_rsp[23],
++                                          swl[i].d_id.b24);)
+                                       rval = 0;
+                                       break;
+                               }
+-                      }else{
+-                              DEBUG2(printk(KERN_INFO "%s(%ld): GPN_ID retrying"
+-                                              "retry_count=%d\n",
+-                              __func__,ha->host_no,retry_gpnid);)
+-                      //      DEBUG2(qla2x00_dump_buffer(
+-                                      //      (uint8_t *)sns->p.gpn_rsp, 
+-                                      //      GPN_DATA_SIZE);)
++                      } else {
++                              DEBUG2(printk(KERN_INFO
++                                  "%s(%ld): GPN_ID retrying retry_count=%d\n",
++                                  __func__,ha->host_no,retry_gpnid);)
+                       }
+               } /* end of while */
+               /* Last one exit. */
+-              if ( new_dev_list[i].d_id.b.rsvd_1 != 0) {
++              if (swl[i].d_id.b.rsvd_1 != 0) {
+                       break;
+               }
+       } /* end of for */
+@@ -14772,9 +14361,8 @@ qla2x00_gpn_id(scsi_qla_host_t  *ha, sns
+  *    Kernel context.
+  */
+ static uint8_t
+-qla2x00_gan(scsi_qla_host_t *ha, 
+-              sns_cmd_rsp_t *sns, 
+-              dma_addr_t phys_addr, fcdev_t *dev) 
++qla2x00_gan(scsi_qla_host_t *ha, sns_cmd_rsp_t *sns, dma_addr_t phys_addr,
++    fc_port_t *fcport) 
+ {
+       uint8_t         rval;
+       uint16_t        wc;
+@@ -14785,38 +14373,41 @@ qla2x00_gan(scsi_qla_host_t *ha, 
+       memset(sns, 0, sizeof(sns_cmd_rsp_t));
+       wc = GAN_DATA_SIZE / 2;
+       sns->p.cmd.buffer_length = cpu_to_le16(wc);
+-      sns->p.cmd.buffer_address[0] = cpu_to_le32(LS_64BITS(phys_addr));
+-      sns->p.cmd.buffer_address[1] = cpu_to_le32(MS_64BITS(phys_addr));
++      sns->p.cmd.buffer_address[0] = cpu_to_le32(LSD(phys_addr));
++      sns->p.cmd.buffer_address[1] = cpu_to_le32(MSD(phys_addr));
+       sns->p.cmd.subcommand_length = __constant_cpu_to_le16(6);
+       sns->p.cmd.subcommand = __constant_cpu_to_le16(0x100);  /* GA_NXT */
+       wc = (GAN_DATA_SIZE - 16) / 4;
+       sns->p.cmd.size = cpu_to_le16(wc);
+-      sns->p.cmd.param[0] = dev->d_id.b.al_pa;
+-      sns->p.cmd.param[1] = dev->d_id.b.area;
+-      sns->p.cmd.param[2] = dev->d_id.b.domain;
++      sns->p.cmd.param[0] = fcport->d_id.b.al_pa;
++      sns->p.cmd.param[1] = fcport->d_id.b.area;
++      sns->p.cmd.param[2] = fcport->d_id.b.domain;
+       rval = BIT_0;
+       if (!qla2x00_send_sns(ha, phys_addr, 14, sizeof(sns_cmd_rsp_t))) {
+               if (sns->p.gan_rsp[8] == 0x80 && sns->p.gan_rsp[9] == 0x2) {
+-                      dev->d_id.b.al_pa = sns->p.gan_rsp[19];
+-                      dev->d_id.b.area = sns->p.gan_rsp[18];
+-                      dev->d_id.b.domain = sns->p.gan_rsp[17];
+-                      dev->flag = DEV_PUBLIC;
++                      fcport->d_id.b.al_pa = sns->p.gan_rsp[19];
++                      fcport->d_id.b.area = sns->p.gan_rsp[18];
++                      fcport->d_id.b.domain = sns->p.gan_rsp[17];
++
++                      memcpy(fcport->node_name, &sns->p.gan_rsp[284],
++                          WWN_SIZE);
++                      memcpy(fcport->port_name, &sns->p.gan_rsp[20],
++                          WWN_SIZE);
+-                      /* Save FC name */
+-                      memcpy(dev->name, &sns->p.gan_rsp[284], WWN_SIZE);
+-
+-                      /* Extract portname */
+-                      memcpy(dev->wwn, &sns->p.gan_rsp[20], WWN_SIZE);
++                      /* If port type not equal to N or NL port, skip it. */
++                      if (sns->p.gan_rsp[16] != 1 &&
++                          sns->p.gan_rsp[16] != 2)
++                              fcport->d_id.b.domain = 0xf0;
+-                      DEBUG3(printk("qla2x00: gan entry - portname "
++                      DEBUG2(printk(KERN_INFO "qla2x00: gan entry - portname "
+                                       "%02x%02x%02x%02x%02x%02x%02x%02x "
+                                       "port Id=%06x\n",
+                                       sns->p.gan_rsp[20], sns->p.gan_rsp[21],
+                                       sns->p.gan_rsp[22], sns->p.gan_rsp[23],
+                                       sns->p.gan_rsp[24], sns->p.gan_rsp[25],
+                                       sns->p.gan_rsp[26], sns->p.gan_rsp[27], 
+-                                      dev->d_id.b24);)
++                                      fcport->d_id.b24));
+                       rval = 0;
+               }
+       }
+@@ -14832,87 +14423,6 @@ qla2x00_gan(scsi_qla_host_t *ha, 
+ }
+ /*
+- * qla2x00_fabric_login
+- *    Issue fabric login command.
+- *
+- * Input:
+- *    ha = adapter block pointer.
+- *    device = pointer to FC device type structure.
+- *
+- * Returns:
+- *      0 - Login successfully
+- *      1 - Login failed
+- *      2 - Initiator device
+- *      3 - Fatal error
+- */
+-static uint8_t
+-qla2x00_fabric_login(scsi_qla_host_t *ha, fcdev_t *device) 
+-{
+-      uint16_t        status[3];
+-
+-      for (;;) {
+-              DEBUG(printk("scsi(%ld): Trying Fabric Login w/loop id 0x%04x "
+-                  "for port %06x\n",
+-                  ha->host_no, device->loop_id, device->d_id.b24);)
+-
+-              /* Login device on switch. */
+-              qla2x00_login_fabric(ha,
+-                  device->loop_id, device->d_id.b.domain,
+-                  device->d_id.b.area, device->d_id.b.al_pa, 
+-                  &status[0], BIT_0);
+-              if( status[0] != 0x4000)
+-                      DEBUG2(printk(KERN_INFO "%s mbx[0]=0x%x mbx[1]=0x%x\n"
+-                              ,__func__,status[0],status[1]);)
+-              if (status[0] == 0x4007) {
+-                      ha->fabricid[device->loop_id].in_use = FALSE;
+-                      device->loop_id = status[1];
+-
+-                      DEBUG(printk("Fabric Login: port in use - next "
+-                          "loop id=0x%04x, port Id=%06x\n",
+-                          device->loop_id, device->d_id.b24);)
+-
+-                      if (device->loop_id <= LAST_SNS_LOOP_ID)
+-                              ha->fabricid[device->loop_id].in_use = TRUE;
+-                      else
+-                              return 1;
+-
+-              } else if (status[0] == 0x4000) {
+-                      if (status[1] & 0x0001) {
+-                              /* Initiator only device */
+-                              qla2x00_add_initiator_device(ha, device);
+-
+-                              return 2;
+-                      }
+-
+-                      /* This is target capable device */
+-                      qla2x00_get_port_database(ha, device, 0);
+-
+-                      DEBUG(printk("scsi(%ld): Fabric Login OK. loop "
+-                          "id=0x%04x, port Id=%06x\n",
+-                          ha->host_no, device->loop_id, device->d_id.b24);)
+-                      return 0;
+-
+-              } else if (status[0] == 0x4008) {
+-
+-                      if (device->loop_id++ <= LAST_SNS_LOOP_ID)
+-                              ha->fabricid[device->loop_id].in_use = TRUE;
+-                      else
+-                              return 1;
+-
+-              } else if (status[0] == 0x4006) {
+-                      /* No more retry needed. */
+-                      return 3;
+-              } else {
+-                      DEBUG(printk("%s(%ld): failed=%x port_id=%06x "
+-                          "loop_id=%x jiffies=%lx.\n", 
+-                          __func__, ha->host_no, status[0], 
+-                          device->d_id.b24, device->loop_id, jiffies);)
+-                      return 1;
+-              }
+-      }
+-}
+-
+-/*
+  * qla2x00_local_device_login
+  *    Issue local device login command.
+  *
+@@ -14944,64 +14454,6 @@ qla2x00_local_device_login(scsi_qla_host
+       return rval;
+ }
+-
+-/*
+- * qla2x00_configure_fcports
+- *    Updates Fibre Channel port database
+- *
+- * Input:
+- *    ha = adapter block pointer.
+- *
+- * Returns:
+- *    0 = success.
+- *    1 = error.
+- */
+-static uint8_t
+-qla2x00_configure_fcports( scsi_qla_host_t *ha )
+-{
+-      uint8_t  rval = 0;
+-      uint8_t  rval1;
+-
+-      rval1 = qla2x00_build_fcport_list(ha);
+-      if (((rval1 & BIT_0) || 
+-              ha->mem_err != 0) && 
+-              ha->sns_retry_cnt < 8 ) {
+-
+-              ha->sns_retry_cnt++;
+-              set_bit(LOGIN_RETRY_NEEDED, &ha->dpc_flags);
+-      }
+-
+-      if(!ha->flags.failover_enabled)
+-              qla2x00_config_os(ha);
+-
+-      /* If we found all devices then go ready */
+-      if (!(test_bit(LOGIN_RETRY_NEEDED, &ha->dpc_flags))) {
+-              ha->loop_state = LOOP_READY;
+-
+-              if (ha->flags.failover_enabled) {
+-                      DEBUG(printk("%s(%ld): schedule "
+-                                      "FAILBACK EVENT\n", 
+-                                      __func__,
+-                                      ha->host_no);)
+-                      if (!(test_and_set_bit(FAILOVER_EVENT_NEEDED,
+-                                              &ha->dpc_flags))) {
+-                              ha->failback_delay = failbackTime;
+-                      }
+-                      set_bit(COMMAND_WAIT_NEEDED, &ha->dpc_flags);
+-                      ha->failover_type = MP_NOTIFY_LOOP_UP;
+-              }
+-
+-              DEBUG2(printk("%s(%ld): LOOP READY\n", 
+-                                      __func__,
+-                                      ha->host_no);)
+-      } else {
+-              rval = 1;
+-      }
+-
+-      return(rval);
+-}
+-
+-
+ /*
+  * qla2x00_configure_loop
+  *      Updates Fibre Channel Device Database with what is actually on loop.
+@@ -15010,7 +14462,6 @@ qla2x00_configure_fcports( scsi_qla_host
+  *      ha                = adapter block pointer.
+  *
+  * Output:
+- *      ha->fc_db = updated
+  *
+  * Returns:
+  *      0 = success.
+@@ -15022,15 +14473,13 @@ qla2x00_configure_loop(scsi_qla_host_t *
+ {
+       uint8_t  rval = 0;
+       uint8_t  rval1 = 0;
+-      uint8_t  enable_slot_reuse = FALSE;
+-      uint16_t  cnt;
+-      static unsigned long  flags, save_flags;
++      unsigned long  flags, save_flags;
+ #if defined(FC_IP_SUPPORT)
+       struct ip_device        *ipdev;
+ #endif
++      unsigned long sflags;
+       DEBUG3(printk("%s(%ld): entered\n", __func__, ha->host_no);)
+-      DEBUG(printk("scsi%ld: Enter %s():\n", ha->host_no, __func__);)
+       /* Get Initiator ID */
+       if (qla2x00_configure_hba(ha)) {
+@@ -15046,17 +14495,19 @@ qla2x00_configure_loop(scsi_qla_host_t *
+               ipdev->flags &= ~IP_DEV_FLAG_PRESENT;
+ #endif /* FC_IP_SUPPORT */
+-      save_flags = flags = ha->dpc_flags;
+-      DEBUG(printk("%s(): dpc flags =0x%lx\n", __func__, flags);)
+-
+-      /* dg 02/26/02 ha->dpc_flags &= ~(LOCAL_LOOP_UPDATE | RSCN_UPDATE); */
++      
++      DEBUG(printk("%s(): dpc flags =0x%lx\n", __func__, ha->dpc_flags);)
++      spin_lock_irqsave(&ha->hardware_lock, sflags);
++      save_flags = flags = ha->dpc_flags;
+       /*
+        * If we have both an RSCN and PORT UPDATE pending then handle them
+        * both at the same time.
+        */
+       clear_bit(LOCAL_LOOP_UPDATE, &ha->dpc_flags);
+       clear_bit(RSCN_UPDATE, &ha->dpc_flags);
++      spin_unlock_irqrestore(&ha->hardware_lock, sflags);
++
+       ha->mem_err = 0 ;
+       /* Determine what we need to do */
+@@ -15084,56 +14535,53 @@ qla2x00_configure_loop(scsi_qla_host_t *
+       do {
+               if (test_bit(LOCAL_LOOP_UPDATE, &flags)) {
+                       rval = rval | 
+-                              qla2x00_configure_local_loop(ha,
+-                                      enable_slot_reuse);
++                              qla2x00_configure_local_loop(ha);
+               }
+               if (test_bit(RSCN_UPDATE, &flags)) {
+-                      rval1 = qla2x00_configure_fabric(ha, enable_slot_reuse);
++                      rval1 = qla2x00_configure_fabric(ha);
+                       if ((rval1 & BIT_0) && ha->sns_retry_cnt < 8) {
+                               ha->sns_retry_cnt++;
+                               set_bit(LOGIN_RETRY_NEEDED, &ha->dpc_flags);
+                       }
+               }
+-              /* If devices not configured first time try reusing slots.*/
+-              if (enable_slot_reuse == FALSE && (rval & BIT_1))
+-                      enable_slot_reuse = TRUE;
+-              else
+-                      enable_slot_reuse = FALSE;
+-
+               /* Isolate error status. */
+               if (rval & BIT_0) {
+                       rval = 1;
+               } else {
+-                      rval = 0;
++                      rval = QLA2X00_SUCCESS;
+               }
+-      } while (enable_slot_reuse == TRUE && rval == 0);
++      } while (rval != QLA2X00_SUCCESS);
+       if (!atomic_read(&ha->loop_down_timer) && 
+               !(test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags))) {
+-              /* Mark devices that are not present as DEV_ABSENCE */
+-              for (cnt = 0; cnt < MAX_FIBRE_DEVICES; cnt++) {
+-                      if (ha->fc_db[cnt].loop_id & PORT_LOST_ID) {
+-                              ha->fc_db[cnt].flag |= DEV_ABSENCE;
+-                      } else {
+-                              /* device returned */
+-                              if (ha->fc_db[cnt].loop_id <=
+-                                              LAST_SNS_LOOP_ID && 
+-                                      ha->fc_db[cnt].flag & DEV_ABSENCE) {
+-
+-                                      ha->fc_db[cnt].flag &= ~DEV_ABSENCE;
+-                                      ha->fc_db[cnt].flag |= DEV_RETURN;
+-                                      ha->fc_db[cnt].port_login_retry_count =
+-                                              ha->port_down_retry_count *
+-                                               PORT_RETRY_TIME;
++              if (!ha->flags.failover_enabled)
++                      qla2x00_config_os(ha);
++
++              /* If we found all devices then go ready */
++              if (!(test_bit(LOGIN_RETRY_NEEDED, &ha->dpc_flags))) {
++                      atomic_set(&ha->loop_state, LOOP_READY);
++                      if (ha->flags.failover_enabled) {
++                              DEBUG(printk("%s(%ld): schedule "
++                                              "FAILBACK EVENT\n", 
++                                              __func__,
++                                              ha->host_no);)
++                              if (!(test_and_set_bit(FAILOVER_EVENT_NEEDED,
++                                                      &ha->dpc_flags))) {
++                                      ha->failback_delay = failbackTime;
+                               }
++                              set_bit(COMMAND_WAIT_NEEDED, &ha->dpc_flags);
++                              ha->failover_type = MP_NOTIFY_LOOP_UP;
+                       }
+-              }
+-              if ( qla2x00_configure_fcports( ha ) ) {
++                      DEBUG2(printk("%s(%ld): LOOP READY\n", 
++                                              __func__,
++                                              ha->host_no);)
++
++              } else {
+                       if (test_bit(LOCAL_LOOP_UPDATE, &save_flags))
+                               set_bit(LOCAL_LOOP_UPDATE, &ha->dpc_flags);
+                       if (test_bit(RSCN_UPDATE, &save_flags))
+@@ -15158,6 +14606,14 @@ qla2x00_configure_loop(scsi_qla_host_t *
+               DEBUG3(printk("%s: exiting normally\n", __func__);)
+       }
++      /* Restore state if a resync event occured during processing */
++      if (test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags)) {
++              if (test_bit(LOCAL_LOOP_UPDATE, &save_flags))
++                      set_bit(LOCAL_LOOP_UPDATE, &ha->dpc_flags);
++              if (test_bit(RSCN_UPDATE, &save_flags))
++                      set_bit(RSCN_UPDATE, &ha->dpc_flags);
++      }
++
+       return(rval);
+ }
+@@ -15177,92 +14633,25 @@ qla2x00_config_os(scsi_qla_host_t *ha) 
+ {
+       fc_port_t       *fcport;
+       fc_lun_t        *fclun;
+-      os_lun_t        *lq;
+-      uint16_t        t, l;
+-
+       DEBUG3(printk("%s(%ld): entered.\n", __func__, ha->host_no);)
+-      for (fcport = ha->fcport; fcport != NULL; fcport = fcport->next) {
+-              /* Allocate target */
+-#if 0
+-              if (fcport->loop_id == FC_NO_LOOP_ID)
++      list_for_each_entry(fcport, &ha->fcports, list) {
++              if (atomic_read(&fcport->state) != FC_ONLINE ||
++                  fcport->port_type == FCT_INITIATOR ||
++                  fcport->port_type == FCT_BROADCAST) {
++                      fcport->dev_id = MAX_TARGETS;
+                       continue;
+-#endif
+-
+-              /* Bind fcport to target number. */
+-              DEBUG5(printk("%s(%ld): fcport bind= %p\n",
+-                              __func__,
+-                              ha->host_no,fcport);)
++              }
+-              if ((t = qla2x00_fcport_bind(ha, fcport)) == MAX_TARGETS)
++              /* Bind FC port to OS target number. */
++              if (qla2x00_fcport_bind(ha, fcport) == MAX_TARGETS) {
+                       continue;
++              }
+-#if VSA
+-              if( (ha->fc_db[t].flag & DEV_FLAG_VSA) )
+-                      fcport->flags |= FC_VSA;
+-#endif
+-              DEBUG5(printk("%s(%ld): going to alloc lun for tgt %d. mask="
+-                              "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x"
+-                              "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x"
+-                              "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x"
+-                              ".\n",
+-                              __func__,
+-                              ha->host_no, 
+-                              t, 
+-                              fcport->lun_mask.mask[0],
+-                              fcport->lun_mask.mask[1],
+-                              fcport->lun_mask.mask[2],
+-                              fcport->lun_mask.mask[3],
+-                              fcport->lun_mask.mask[4],
+-                              fcport->lun_mask.mask[5],
+-                              fcport->lun_mask.mask[6],
+-                              fcport->lun_mask.mask[7],
+-                              fcport->lun_mask.mask[8],
+-                              fcport->lun_mask.mask[9],
+-                              fcport->lun_mask.mask[10],
+-                              fcport->lun_mask.mask[11],
+-                              fcport->lun_mask.mask[12],
+-                              fcport->lun_mask.mask[13],
+-                              fcport->lun_mask.mask[14],
+-                              fcport->lun_mask.mask[15],
+-                              fcport->lun_mask.mask[16],
+-                              fcport->lun_mask.mask[17],
+-                              fcport->lun_mask.mask[18],
+-                              fcport->lun_mask.mask[19],
+-                              fcport->lun_mask.mask[20],
+-                              fcport->lun_mask.mask[21],
+-                              fcport->lun_mask.mask[22],
+-                              fcport->lun_mask.mask[23],
+-                              fcport->lun_mask.mask[24],
+-                              fcport->lun_mask.mask[25],
+-                              fcport->lun_mask.mask[26],
+-                              fcport->lun_mask.mask[27],
+-                              fcport->lun_mask.mask[28],
+-                              fcport->lun_mask.mask[29],
+-                              fcport->lun_mask.mask[30],
+-                              fcport->lun_mask.mask[31]);)
+-
+-              /* Allocate LUNs */
+-              for (fclun = fcport->fclun;
+-                      fclun != NULL; fclun = fclun->next) {
+-
+-                      l = fclun->lun;         /* Must not exceed MAX_LUN */
+-
+-                      /*
+-                       * Always alloc LUN 0 so kernel will scan past LUN 0.
+-                       */
+-                      if (l != 0 &&
+-                              (EXT_IS_LUN_BIT_SET(&(fcport->lun_mask), l))) {
+-
+-                              /* mask this LUN */
+-                              continue;
+-                      }
+-
+-                      if ((lq = qla2x00_lun_alloc(ha, t, l)) == NULL)
+-                              continue;
+-
+-                      lq->fclun = fclun;
++              /* Bind FC LUN to OS LUN number. */
++              list_for_each_entry(fclun, &fcport->fcluns, list) {
++                      qla2x00_fclun_bind(ha, fcport, fclun);
+               }
+       }
+@@ -15286,445 +14675,162 @@ qla2x00_config_os(scsi_qla_host_t *ha) 
+ static uint16_t
+ qla2x00_fcport_bind(scsi_qla_host_t *ha, fc_port_t *fcport) 
+ {
+-      int             rval;
+-      uint16_t        t;
++      uint16_t        tgt;
+       os_tgt_t        *tq;
++      uint8_t         rval;
+-      ENTER(__func__);
+-
+-      /* Check for tgt already allocated for persistent binding. */
+-      for (t = 0; t < MAX_TARGETS; t++) {
+-              if ((tq = TGT_Q(ha, t)) == NULL)
++      /* Check for persistent binding. */
++      for (tgt = 0; tgt < MAX_TARGETS; tgt++) {
++              if ((tq = TGT_Q(ha, tgt)) == NULL)
+                       continue;
+-
+-              rval = 0;
++              rval = 1;
+               switch (ha->binding_type) {
+-                      case BIND_BY_PORT_NAME:
+-                              rval = memcmp(fcport->port_name,
+-                                              tq->port_name, WWN_SIZE);
+-                              break;
+-
+                       case BIND_BY_PORT_ID:
+-                              rval = (fcport->d_id.b24 != tq->d_id.b24);
+-                              break;
++                              if(fcport->d_id.b24 == tq->d_id.b24){
++                                      memcpy(tq->node_name, fcport->node_name,
++                                          WWN_SIZE);
++                                      memcpy(tq->port_name, fcport->port_name,
++                                          WWN_SIZE);
++                                      rval = 0;
++                              }
++                          break;
+-                      case BIND_BY_NODE_NAME:
+-                              rval = memcmp(fcport->node_name,
+-                                              tq->node_name, WWN_SIZE);
++                      case BIND_BY_PORT_NAME:    
++                              if (memcmp(fcport->port_name, tq->port_name,
++                                          WWN_SIZE) == 0) {
++                              /* In case of persistent binding, update 
++                               * the WWNN */
++                                      memcpy(tq->node_name, fcport->node_name,
++                                          WWN_SIZE);
++                                      rval = 0;
++                              }
+                               break;
+               }
+-              /* Found a persistently bound match */
+-              if (rval == 0)
+-                      break;
++              if(rval == 0)
++                  break;      
+       }
+-      if (fcport->loop_id == FC_NO_LOOP_ID) {
+-              DEBUG(tq = TGT_Q(ha, t);)
+-              DEBUG(printk("scsi%ld: Missing target ID %02x @ %p to "
+-                              "loop id: %04x, port state=0x%x, "
+-                              "port down retry=%d\n",
+-                              ha->host_no,
+-                              t,
+-                              tq,
+-                              fcport->loop_id,
+-                              atomic_read(&fcport->state),
+-                              atomic_read(&fcport->port_down_timer));)
+-              return (MAX_TARGETS);
++      if ( ConfigRequired == 0 && tgt == MAX_TARGETS) {
++              /* Check if targetID 0 available. */
++              tgt = 0;
++
++              if (TGT_Q(ha, tgt) != NULL) {
++                      /* Locate first free target for device. */
++                      for (tgt = 0; tgt < MAX_TARGETS; tgt++) {
++                              if (TGT_Q(ha, tgt) == NULL) {
++                                      break;
++                              }
++                      }
++              }
++              if (tgt != MAX_TARGETS) {
++                      if ((tq = qla2x00_tgt_alloc(ha, tgt)) != NULL) {
++                              memcpy(tq->node_name, fcport->node_name,
++                                  WWN_SIZE);
++                              memcpy(tq->port_name, fcport->port_name,
++                                  WWN_SIZE);
++                              tq->d_id.b24 = fcport->d_id.b24;
++                      }
++              }
+       }
+-      if (t != MAX_TARGETS) {
+-              tq = TGT_Q(ha, t);
++      /* Reset target numbers incase it changed. */
++      fcport->dev_id = tgt;
++      if (tgt != MAX_TARGETS && tq != NULL) {
++              DEBUG2(printk("scsi(%ld): Assigning target ID=%02d @ %p to "
++                  "loop id=0x%04x, port state=0x%x, port down retry=%d\n",
++                  ha->host_no, tgt, tq, fcport->loop_id,
++                  atomic_read(&fcport->state),
++                  atomic_read(&fcport->port_down_timer)));
++
+               tq->vis_port = fcport;
++              tq->port_down_retry_count = ha->port_down_retry_count;
+-              DEBUG(printk("scsi%ld: Assigning target ID %02x @ %p to "
+-                              "loop id: %04x, port state=0x%x, "
+-                              "port down retry=%d\n",
+-                              ha->host_no,
+-                              t,
+-                              tq,
+-                              fcport->loop_id,
+-                              atomic_read(&fcport->state),
+-                              atomic_read(&fcport->port_down_timer));)
+-              return (t);
++              if (!ha->flags.failover_enabled)
++                      qla2x00_get_lun_mask_from_config(ha, fcport, tgt, 0);
+       }
+-      /* Check for persistent binding not yet configured. */
+-      for (t = 0; t < MAX_TARGETS; t++) {
+-              rval = 0;
+-              switch (ha->binding_type) {
+-                      case BIND_BY_PORT_NAME:
+-                              rval = memcmp(fcport->port_name,
+-                                              ha->fc_db[t].wwn, WWN_SIZE);
+-                              break;
++      if ( ConfigRequired == 0 && tgt == MAX_TARGETS) {
++              printk(KERN_WARNING
++                  "scsi(%ld): Unable to bind fcport, loop_id=%x\n",
++                  ha->host_no, fcport->loop_id);
++      }
+-                      case BIND_BY_PORT_ID:
+-                              rval = (fcport->d_id.b24 !=
+-                                              ha->fc_db[t].d_id.b24);
+-                              break;
++      return (tgt);
++}
+-                      case BIND_BY_NODE_NAME:
+-                              rval = memcmp(fcport->node_name,
+-                                              ha->fc_db[t].name, WWN_SIZE);
+-                              break;
+-              }
+-              /* Found not-yet-allocated target at t */
+-              if (rval == 0)
+-                      break;
+-      }
++/*
++ * qla2x00_fclun_bind
++ *    Binds all FC device LUNS to OS LUNS.
++ *
++ * Input:
++ *    ha:             adapter state pointer.
++ *    fcport:         FC port structure pointer.
++ *
++ * Returns:
++ *    target number
++ *
++ * Context:
++ *    Kernel context.
++ */
++static os_lun_t *
++qla2x00_fclun_bind(scsi_qla_host_t *ha, fc_port_t *fcport, fc_lun_t *fclun)
++{
++      os_lun_t        *lq;
++      uint16_t        tgt;
++      uint16_t        lun;
+-      if (t == MAX_TARGETS) {
+-              /* Check if slot at loop ID is available. */
+-              t = fcport->loop_id;
+-              if (TGT_Q(ha, t) != NULL) {
+-                      /* Locate first free target id in db for device. */
+-                      for (t = 0; t < MAX_TARGETS; t++) {
+-                              if (TGT_Q(ha, t) == NULL)
+-                                      break;
+-                      }
+-              }
++      tgt = fcport->dev_id;
++      lun = fclun->lun;
++
++      /* Allocate LUNs */
++      if (lun >= MAX_LUNS) {
++              DEBUG2(printk("scsi(%ld): Unable to bind lun, invalid "
++                  "lun=(%x).\n", ha->host_no, lun));
++              return (NULL);
+       }
+-      if (t != MAX_TARGETS) {
+-              tq = qla2x00_tgt_alloc(ha, t);
+-              if (tq != NULL) {
+-                      memcpy(tq->port_name, fcport->port_name, WWN_SIZE);
+-                      tq->d_id.b24 = fcport->d_id.b24;
+-                      memcpy(tq->node_name, fcport->node_name, WWN_SIZE);
+-              }
+-              else
+-                      t = MAX_TARGETS;
++      /* Always alloc LUN 0 so kernel will scan past LUN 0. */
++      if (lun != 0 && (EXT_IS_LUN_BIT_SET(&(fcport->lun_mask), lun))) {
++              return (NULL);
+       }
+-      if (t == MAX_TARGETS) {
++      if ((lq = qla2x00_lun_alloc(ha, tgt, lun)) == NULL) {
+               printk(KERN_WARNING
+-                      "%s(): **** FAILED ****", __func__);
+-      } else {
+-              if (!ha->flags.failover_enabled) {
+-                      /* fcport IS the visible port in non-failover mode */
+-                      tq = TGT_Q(ha, t);
+-                      tq->vis_port = fcport;
+-              }
+-
+-              DEBUG(tq = TGT_Q(ha, t);)
+-              DEBUG(printk("scsi%ld: Assigning target ID %02x @ %p to "
+-                              "loop id: %04x, port state=0x%x, "
+-                              "port down retry=%d\n",
+-                              ha->host_no,
+-                              t,
+-                              tq,
+-                              fcport->loop_id,
+-                              atomic_read(&fcport->state),
+-                              atomic_read(&fcport->port_down_timer));)
++                  "scsi(%ld): Unable to bind fclun, loop_id=%x lun=%x\n",
++                  ha->host_no, fcport->loop_id, lun);
++              return (NULL);
+       }
+-      LEAVE(__func__);
++      lq->fclun = fclun;
+-      return (t);
++      return (lq);
+ }
+ /*
+- * qla2x00_build_fcport_list
+- *    Updates device on list.
++ * qla2x00_mark_device_lost
++ *    Updates fcport state when device goes offline.
+  *
+  * Input:
+  *    ha = adapter block pointer.
+  *    fcport = port structure pointer.
+  *
+  * Return:
+- *    0  - Success
+- *  BIT_0 - error
++ *    None.
+  *
+  * Context:
+- *    Kernel context.
+  */
+-static int 
+-qla2x00_build_fcport_list(scsi_qla_host_t *ha) 
++STATIC void
++qla2x00_mark_device_lost(scsi_qla_host_t *ha, fc_port_t *fcport, int do_login) 
+ {
+-      int     rval;
+-      fcdev_t         *dev;
+-      int     found = 0;
+-      int cnt, i;
+-      fc_port_t       *fcport;
+-      fc_port_t       *prev_fcport;
+-
+-      ENTER(__func__);
+-
+-      for (cnt = 0; cnt < MAX_FIBRE_DEVICES; cnt++) {
+-              dev = &ha->fc_db[cnt];
+-
+-              /* Skip if zero port name */
+-              if (qla2x00_is_wwn_zero(dev->wwn)) {
+-                      continue;
+-              }
+-
+-              DEBUG3(printk("%s(%ld): found tgt %d in fc_db.\n",
+-                              __func__, ha->host_no, cnt);)
+-
+-              /* Check for matching device in port list. */
+-              found = 0;
+-              prev_fcport = NULL;
+-              for (i=0, fcport = ha->fcport; 
+-                      fcport != NULL;
+-                      fcport = fcport->next, i++) {
+-
+-                      rval = 1;
+-                      switch (ha->binding_type) {
+-                              case BIND_BY_PORT_NAME:
+-                                      rval = memcmp(dev->wwn,
+-                                                      fcport->port_name,
+-                                                      WWN_SIZE);
+-                                      break;
+-
+-                              case BIND_BY_PORT_ID:
+-                                      rval = (dev->d_id.b24 !=
+-                                               fcport->d_id.b24);
+-                                      break;
+-
+-                              case BIND_BY_NODE_NAME:
+-                                      rval = memcmp(dev->name,
+-                                                      fcport->node_name,
+-                                                      WWN_SIZE);
+-                                      break;
+-                      }
+-                      if (rval) {
+-                              prev_fcport = fcport;
+-                              continue;
+-                      }
+-
+-                      /*
+-                       * Update volatile unbound fields for PortID binding
+-                       * only
+-                       */
+-                      if (ha->binding_type == BIND_BY_PORT_ID) {
+-                              memcpy(fcport->node_name, dev->name, WWN_SIZE);
+-                              memcpy(fcport->port_name, dev->wwn, WWN_SIZE);
+-                      }
+-
+-                      DEBUG(printk("%s(%ld): Found matching port %06x, "
+-                                      "device flags= 0x%x\n",
+-                                      __func__,ha->host_no,
+-                                      dev->d_id.b24, 
+-                                      dev->flag);)
+-
+-                      /* if device found is missing then mark it */
+-                      if (dev->flag & DEV_ABSENCE) {
+-                              DEBUG(printk("%s(%ld): Port missing ---  "
+-                                              "(port_name) -> "
+-                                              "%02x%02x%02x%02x%02x"
+-                                              "%02x%02x%02x, "
+-                                              "loop id = 0x%04x\n",
+-                                              __func__,ha->host_no,
+-                                              fcport->port_name[0],
+-                                              fcport->port_name[1],
+-                                              fcport->port_name[2],
+-                                              fcport->port_name[3],
+-                                              fcport->port_name[4],
+-                                              fcport->port_name[5],
+-                                              fcport->port_name[6],
+-                                              fcport->port_name[7],
+-                                              fcport->loop_id);)
+-
+-                              fcport->loop_id = FC_NO_LOOP_ID;
+-
+-                              qla2x00_mark_device_lost(ha, fcport);
+-
+-                              found++;
+-                              break;
+-                      }
+-
+-                      /* if device was missing but returned */
+-                      if (fcport->loop_id == FC_NO_LOOP_ID ||
+-                              !(dev->flag & DEV_PUBLIC) ||
+-                              atomic_read(&fcport->state) != FC_ONLINE) {
+-
+-                              DEBUG(printk("%s(): Port returned +++  "
+-                                              "(port_name) -> "
+-                                              "%02x%02x%02x%02x%02x"
+-                                              "%02x%02x%02x, "
+-                                              "loop id = 0x%04x\n",
+-                                              __func__,
+-                                              fcport->port_name[0],
+-                                              fcport->port_name[1],
+-                                              fcport->port_name[2],
+-                                              fcport->port_name[3],
+-                                              fcport->port_name[4],
+-                                              fcport->port_name[5],
+-                                              fcport->port_name[6],
+-                                              fcport->port_name[7],
+-                                              fcport->loop_id);)
+-
+-                              fcport->loop_id = dev->loop_id;
+-                              fcport->old_loop_id = dev->loop_id;
+-                              fcport->d_id.b24 = dev->d_id.b24;
+-
+-                              break;
+-                      }
+-
+-                      DEBUG(printk("%s(): Match - fcport[%d] = fc_db[%d] "
+-                                      "(ignored) -> "
+-                                      "%02x%02x%02x%02x%02x%02x%02x%02x, "
+-                                      "loop id = 0x%04x\n",
+-                                      __func__,
+-                                      i, 
+-                                      cnt,
+-                                      fcport->port_name[0],
+-                                      fcport->port_name[1],
+-                                      fcport->port_name[2],
+-                                      fcport->port_name[3],
+-                                      fcport->port_name[4],
+-                                      fcport->port_name[5],
+-                                      fcport->port_name[6],
+-                                      fcport->port_name[7],
+-                                      fcport->loop_id);)
+-                      found++;
+-                      break;
+-              }
+-              if (found)
+-                      continue;
+-
+-              /* Add device to port list. */
+-              if (fcport == NULL) {
+-                      DEBUG3(printk("%s(%ld): adding new device to list.\n",
+-                                      __func__,
+-                                      ha->host_no);)
+-
+-                      fcport = kmalloc(sizeof(fc_port_t), GFP_ATOMIC);
+-                      if (fcport == NULL)
+-                              break;
+-
+-                      memset(fcport, 0, sizeof(fc_port_t));
+-
+-                      /* copy fields into fcport */
+-                      memcpy(fcport->port_name, dev->wwn, WWN_SIZE);
+-                      memcpy(fcport->node_name, dev->name, WWN_SIZE);
+-
+-                      fcport->dev_id = cnt;
+-
+-                      if (dev->flag & DEV_ABSENCE) {
+-                              DEBUG(printk("%s(): Port missing --- "
+-                                              "(port_name) -> "
+-                                              "%02x%02x%02x%02x"
+-                                              "%02x%02x%02x%02x, "
+-                                              "loop id = 0x%04x\n",
+-                                              __func__,
+-                                              fcport->port_name[0],
+-                                              fcport->port_name[1],
+-                                              fcport->port_name[2],
+-                                              fcport->port_name[3],
+-                                              fcport->port_name[4],
+-                                              fcport->port_name[5],
+-                                              fcport->port_name[6],
+-                                              fcport->port_name[7],
+-                                              fcport->loop_id);)
+-
+-                              fcport->loop_id = FC_NO_LOOP_ID;
+-
+-                              qla2x00_mark_device_lost(ha, fcport);
+-                      } else {
+-                              fcport->loop_id = dev->loop_id;
+-                              fcport->old_loop_id = dev->loop_id;
+-                      }
+-
+-                      fcport->d_id.b24 = dev->d_id.b24;
+-
+-                      DEBUG(printk("%s(): New Device +++ (port_name) -> "
+-                                      "%02x%02x%02x%02x%02x%02x%02x%02x, "
+-                                      "loop id = 0x%04x\n",
+-                                      __func__,
+-                                      fcport->port_name[0],
+-                                      fcport->port_name[1],
+-                                      fcport->port_name[2],
+-                                      fcport->port_name[3],
+-                                      fcport->port_name[4],
+-                                      fcport->port_name[5],
+-                                      fcport->port_name[6],
+-                                      fcport->port_name[7],
+-                                      fcport->loop_id);)
+-
+-                      /* flags */
+-                      if (dev->flag & DEV_PUBLIC)
+-                              fcport->flags |= FC_FABRIC_DEVICE;
+-
+-                      if (dev->flag & DEV_INITIATOR)
+-                              fcport->flags |= FC_INITIATOR_DEVICE;
+-
+-                      /* Assume the device supports RLC */
+-                      fcport->flags |= FC_SUPPORT_RPT_LUNS;
+-
+-                      if (!ha->flags.failover_enabled)
+-                              qla2x00_get_lun_mask_from_config(ha, 
+-                                  fcport, cnt, 0);
+-
+-                      if (prev_fcport == NULL) {
+-                              /* nothing in fcport list yet */
+-                              ha->fcport = fcport;
+-                      } else {
+-                              /*
+-                               * prev_fcport should be pointing to last
+-                               * port in list
+-                               */
+-                              prev_fcport->next = fcport;
+-                      }
+-
+-              } else {
+-                      DEBUG3(printk("%s(%ld): updating device to list.\n", 
+-                          __func__, ha->host_no);)
+-                      fcport->loop_id = dev->loop_id;
+-                      fcport->loop_id = dev->loop_id;
+-                      fcport->old_loop_id = dev->loop_id;
+-              }
+-
+-              if (atomic_read(&fcport->state) != FC_ONLINE) {
+-                      if (qla2x00_update_fcport(ha, fcport, cnt)) {
+-                              DEBUG2(printk(KERN_INFO "%s(%ld): update_fcport "
+-                                  "failed.\n",
+-                                  __func__, ha->host_no);)
+-
+-                              return BIT_0;
+-                      }
+-              }
+-
+-      }
+-
+-      LEAVE(__func__);
+-
+-      return (0);
+-}
+-
+-/*
+- * qla2x00_mark_device_lost
+- *    Updates fcport state when device goes offline.
+- *
+- * Input:
+- *    ha = adapter block pointer.
+- *    fcport = port structure pointer.
+- *
+- * Return:
+- *    None.
+- *
+- * Context:
+- */
+-STATIC void
+-qla2x00_mark_device_lost( scsi_qla_host_t *ha, fc_port_t *fcport ) 
+-{
+-#if 0
+-      /*
+-       * No point in marking the device as lost, if the device is already
+-       * DEAD.
+-       */
+-      if (atomic_read(&fcport->state) == FC_DEVICE_DEAD)
+-              return;
+-
+-      /* Mark the device LOST */
+-      atomic_set(&fcport->state, FC_DEVICE_LOST);
+-#else
+       /* 
+        * We may need to retry the login, so don't change the
+        * state of the port but do the retries.
+        */
+       if (atomic_read(&fcport->state) != FC_DEVICE_DEAD)
+               atomic_set(&fcport->state, FC_DEVICE_LOST);
+-#endif
++ 
++      if (!do_login)
++              return;
+ #if defined(PORT_LOGIN_4xWAY)
+       if (PORT_LOGIN_RETRY(fcport) > 0) {
+@@ -15767,107 +14873,562 @@ qla2x00_mark_device_lost( scsi_qla_host_
+               set_bit(RELOGIN_NEEDED, &ha->dpc_flags);
+       }
+ #endif
+-}
++}
++
++/*
++ * qla2x00_mark_all_devices_lost
++ *    Updates fcport state when device goes offline.
++ *
++ * Input:
++ *    ha = adapter block pointer.
++ *    fcport = port structure pointer.
++ *
++ * Return:
++ *    None.
++ *
++ * Context:
++ */
++STATIC void
++qla2x00_mark_all_devices_lost(scsi_qla_host_t *ha) 
++{
++      struct list_head        *fcpl;
++      fc_port_t               *fcport;
++
++      list_for_each(fcpl, &ha->fcports) {
++              fcport = list_entry(fcpl, fc_port_t, list);
++              if(fcport->port_type != FCT_TARGET)
++                      continue;
++
++              /*
++               * No point in marking the device as lost, if the device is
++               * already DEAD.
++               */
++              if (atomic_read(&fcport->state) == FC_DEVICE_DEAD)
++                      continue;
++
++              atomic_set(&fcport->state, FC_DEVICE_LOST);
++      }
++}
++
++/*
++ * qla2x00_check_for_devices_online
++ *
++ *    Check fcport state of all devices to make sure online.
++ *
++ * Input:
++ *    ha = adapter block pointer.
++ *
++ * Return:
++ *    None.
++ *
++ * Context:
++ */
++STATIC uint8_t
++qla2x00_check_for_devices_online(scsi_qla_host_t *ha) 
++{
++      fc_port_t       *fcport;
++      int             found, cnt;
++
++      found = 0;
++      cnt = 0;
++      list_for_each_entry(fcport, &ha->fcports, list) {
++              if(fcport->port_type != FCT_TARGET)
++                      continue;
++
++              if ((atomic_read(&fcport->state) == FC_ONLINE) ||
++                   (fcport->flags & FC_FAILBACK_DISABLE) ||
++                      (atomic_read(&fcport->state) == FC_DEVICE_DEAD))
++                      found++;
++
++              cnt++;
++      }
++      if (cnt == found) {
++              DEBUG5(printk("%s(%ld): all online\n",
++                              __func__,
++                              ha->host_no);)
++              return 1;
++      } else
++              return 0;
++}
++
++STATIC void
++qla2x00_probe_for_all_luns(scsi_qla_host_t *ha) 
++{
++      fc_port_t       *fcport;
++
++      qla2x00_mark_all_devices_lost(ha); 
++      list_for_each_entry(fcport, &ha->fcports, list) {
++              if(fcport->port_type != FCT_TARGET)
++                      continue;
++
++              qla2x00_update_fcport(ha, fcport); 
++      }
++}
++
++/*
++ * qla2x00_update_fcport
++ *    Updates device on list.
++ *
++ * Input:
++ *    ha = adapter block pointer.
++ *    fcport = port structure pointer.
++ *
++ * Return:
++ *    0  - Success
++ *  BIT_0 - error
++ *
++ * Context:
++ *    Kernel context.
++ */
++static int
++qla2x00_update_fcport(scsi_qla_host_t *ha, fc_port_t *fcport) 
++{
++      int             rval;
++
++      DEBUG4(printk("%s(): entered, loop_id = %d\n",
++                      __func__,
++                      fcport->loop_id);)
++
++      fcport->port_login_retry_count =
++              ha->port_down_retry_count * PORT_RETRY_TIME;
++      fcport->flags &= ~FC_LOGIN_NEEDED;
++      atomic_set(&fcport->state, FC_ONLINE);
++      fcport->login_retry = 0;
++      fcport->ha = ha;
++      atomic_set(&fcport->port_down_timer,
++                      ha->port_down_retry_count * PORT_RETRY_TIME);
++
++      if (fcport->port_type != FCT_TARGET)
++              return (QLA2X00_SUCCESS);
++
++      /* Do LUN discovery. */
++      rval = qla2x00_lun_discovery(ha, fcport);
++              if ( (fcport->flags & (FC_MSA_DEVICE|FC_EVA_DEVICE)) )
++              qla2x00_test_active_port(fcport); 
++
++      return (rval);
++}
++
++
++
++int
++qla2x00_issue_scsi_inquiry(scsi_qla_host_t *ha, 
++      fc_port_t *fcport, fc_lun_t *fclun )
++{
++      inq_cmd_rsp_t   *pkt;
++      int             rval;
++      dma_addr_t      phys_address = 0;
++      int             retry;
++      uint16_t        comp_status;
++      uint16_t        scsi_status;
++      int             ret = 0;
++      
++      uint16_t        lun = fclun->lun;
++
++
++      pkt = pci_alloc_consistent(ha->pdev,
++                              sizeof(inq_cmd_rsp_t), &phys_address);
++
++      if (pkt == NULL) {
++              printk(KERN_WARNING
++                      "scsi(%ld): Memory Allocation failed - INQ\n",
++                      ha->host_no);
++              ha->mem_err++;
++              return BIT_0;
++      }
++
++      retry = 2;
++      do {
++              memset(pkt, 0, sizeof(inq_cmd_rsp_t));
++              pkt->p.cmd.entry_type = COMMAND_A64_TYPE;
++              pkt->p.cmd.entry_count = 1;
++              pkt->p.cmd.lun = cpu_to_le16(lun);
++#if defined(EXTENDED_IDS)
++              pkt->p.cmd.target = cpu_to_le16(fcport->loop_id);
++#else
++              pkt->p.cmd.target = (uint8_t)fcport->loop_id;
++#endif
++              pkt->p.cmd.control_flags =
++                      __constant_cpu_to_le16(CF_READ | CF_SIMPLE_TAG);
++              pkt->p.cmd.scsi_cdb[0] = INQ_SCSI_OPCODE;
++              pkt->p.cmd.scsi_cdb[4] = INQ_DATA_SIZE;
++              pkt->p.cmd.dseg_count = __constant_cpu_to_le16(1);
++              pkt->p.cmd.timeout = __constant_cpu_to_le16(3);
++              pkt->p.cmd.byte_count =
++                      __constant_cpu_to_le32(INQ_DATA_SIZE);
++              pkt->p.cmd.dseg_0_address[0] = cpu_to_le32(
++                    LSD(phys_address + sizeof(sts_entry_t)));
++              pkt->p.cmd.dseg_0_address[1] = cpu_to_le32(
++                    MSD(phys_address + sizeof(sts_entry_t)));
++              pkt->p.cmd.dseg_0_length =
++                      __constant_cpu_to_le32(INQ_DATA_SIZE);
++
++              DEBUG(printk("scsi(%ld:0x%x:%d) %s: Inquiry - fcport=%p,"
++                      " lun (%d)\n", 
++                      ha->host_no, fcport->loop_id, lun,
++                      __func__,fcport, 
++                      lun);)
++
++              rval = qla2x00_issue_iocb(ha, pkt,
++                              phys_address, sizeof(inq_cmd_rsp_t));
++
++              comp_status = le16_to_cpu(pkt->p.rsp.comp_status);
++              scsi_status = le16_to_cpu(pkt->p.rsp.scsi_status);
++
++      } while ((rval != QLA2X00_SUCCESS ||
++              comp_status != CS_COMPLETE) && 
++              retry--);
++
++      if (rval != QLA2X00_SUCCESS ||
++              comp_status != CS_COMPLETE ||
++              (scsi_status & SS_CHECK_CONDITION)) {
++
++              DEBUG2(printk("%s: Failed lun inquiry - "
++                      "inq[0]= 0x%x, comp status 0x%x, "
++                      "scsi status 0x%x. loop_id=%d\n",
++                      __func__,pkt->inq[0], 
++                      comp_status,
++                      scsi_status, 
++                      fcport->loop_id);)
++              ret = 1;
++      } else {
++              fclun->inq0 = pkt->inq[0];
++      }
++
++      pci_free_consistent(ha->pdev, sizeof(inq_cmd_rsp_t), pkt, phys_address);
++
++      return( ret );
++}
++
++int
++qla2x00_test_active_lun( fc_port_t *fcport, fc_lun_t *fclun ) 
++{
++      tur_cmd_rsp_t   *pkt;
++      int             rval = 0 ; 
++      dma_addr_t      phys_address = 0;
++      int             retry;
++      uint16_t        comp_status;
++      uint16_t        scsi_status;
++      scsi_qla_host_t *ha;
++      uint16_t        lun = 0;
++
++      ENTER(__func__);
++
++
++      ha = fcport->ha;
++      if (atomic_read(&fcport->state) == FC_DEVICE_DEAD){
++              DEBUG2(printk("scsi(%ld) %s leaving: Port loop_id 0x%02x is marked DEAD\n",
++                      ha->host_no,__func__,fcport->loop_id);)
++              return rval;
++      }
++      
++      if ( fclun == NULL ){
++              DEBUG2(printk("scsi(%ld) %s Bad fclun ptr on entry.\n",
++                      ha->host_no,__func__);)
++              return rval;
++      }
++      
++      lun = fclun->lun;
++
++      pkt = pci_alloc_consistent(ha->pdev,
++          sizeof(tur_cmd_rsp_t), &phys_address);
++
++      if (pkt == NULL) {
++              printk(KERN_WARNING
++                  "scsi(%ld): Memory Allocation failed - TUR\n",
++                  ha->host_no);
++              ha->mem_err++;
++              return rval;
++      }
++
++      retry = 4;
++      do {
++              memset(pkt, 0, sizeof(tur_cmd_rsp_t));
++              pkt->p.cmd.entry_type = COMMAND_A64_TYPE;
++              pkt->p.cmd.entry_count = 1;
++              pkt->p.cmd.lun = cpu_to_le16(lun);
++#if defined(EXTENDED_IDS)
++              pkt->p.cmd.target = cpu_to_le16(fcport->loop_id);
++#else
++              pkt->p.cmd.target = (uint8_t)fcport->loop_id;
++#endif
++              /* no direction for this command */
++              pkt->p.cmd.control_flags =
++                      __constant_cpu_to_le16(CF_SIMPLE_TAG);
++              pkt->p.cmd.scsi_cdb[0] = TEST_UNIT_READY;
++              pkt->p.cmd.dseg_count = __constant_cpu_to_le16(0);
++              pkt->p.cmd.timeout = __constant_cpu_to_le16(3);
++              pkt->p.cmd.byte_count = __constant_cpu_to_le32(0);
+-/*
+- * qla2x00_mark_all_devices_lost
+- *    Updates fcport state when device goes offline.
+- *
+- * Input:
+- *    ha = adapter block pointer.
+- *    fcport = port structure pointer.
+- *
+- * Return:
+- *    None.
+- *
+- * Context:
+- */
+-STATIC void
+-qla2x00_mark_all_devices_lost(scsi_qla_host_t *ha) 
+-{
+-      fc_port_t *fcport;
++              rval = qla2x00_issue_iocb(ha, pkt,
++                          phys_address, sizeof(tur_cmd_rsp_t));
+-      for (fcport = ha->fcport; fcport != NULL; fcport = fcport->next) {
+-              /*
+-               * No point in marking the device as lost, if the device is
+-               * already DEAD.
+-               */
+-              if (atomic_read(&fcport->state) == FC_DEVICE_DEAD)
+-                      continue;
++              comp_status = le16_to_cpu(pkt->p.rsp.comp_status);
++              scsi_status = le16_to_cpu(pkt->p.rsp.scsi_status);
+-              atomic_set(&fcport->state, FC_DEVICE_LOST);
++              /* Port Logged Out, so don't retry */
++              if(     comp_status == CS_PORT_LOGGED_OUT  ||
++                      comp_status == CS_PORT_CONFIG_CHG ||
++                      comp_status == CS_PORT_BUSY ||
++                      comp_status == CS_INCOMPLETE ||
++                      comp_status == CS_PORT_UNAVAILABLE )
++                      break;
++
++              DEBUG(printk("scsi(%ld:%04x:%d) "
++                     "%s: TEST UNIT READY - "
++                  " comp status 0x%x, "
++                  "scsi status 0x%x, rval=%d\n",ha->host_no,
++                      fcport->loop_id,
++                      lun,__func__,
++                  comp_status, scsi_status, rval);)
++              if( (scsi_status & SS_CHECK_CONDITION)  ) {
++                      DEBUG2(printk("%s: check status bytes =  0x%02x 0x%02x 0x%02x\n", 
++                       __func__, pkt->p.rsp.req_sense_data[2],
++                       pkt->p.rsp.req_sense_data[12] ,
++                       pkt->p.rsp.req_sense_data[13]);)
++
++                      if (pkt->p.rsp.req_sense_data[2] == NOT_READY && 
++                       pkt->p.rsp.req_sense_data[12] == 0x4 &&
++                       pkt->p.rsp.req_sense_data[13] == 0x2 ) 
++                              break;
++              }
++      } while ( (rval != QLA2X00_SUCCESS ||
++                 comp_status != CS_COMPLETE ||
++                 (scsi_status & SS_CHECK_CONDITION)) && 
++              retry--);
++
++      if (rval == QLA2X00_SUCCESS &&
++              ( !( (scsi_status & SS_CHECK_CONDITION) && 
++                      (pkt->p.rsp.req_sense_data[2] == NOT_READY && 
++                       pkt->p.rsp.req_sense_data[12] == 0x4 &&
++                       pkt->p.rsp.req_sense_data[13] == 0x2 ) ) && 
++          comp_status == CS_COMPLETE) ) {
++              
++              DEBUG2(printk("scsi(%ld) %s - Lun (0x%02x:%d) set to ACTIVE.\n",
++                      ha->host_no, __func__,
++                      (uint8_t)fcport->loop_id,lun);)
++              /* We found an active path */
++                      fclun->flags |= FC_ACTIVE_LUN;
++              rval = 1;
++      } else {
++              DEBUG2(printk("scsi(%ld) %s - Lun (0x%02x:%d) set to INACTIVE.\n",
++                      ha->host_no, __func__,
++                      (uint8_t)fcport->loop_id,lun);)
++                      /* fcport->flags &= ~(FC_MSA_PORT_ACTIVE); */
++                      fclun->flags &= ~(FC_ACTIVE_LUN);
+       }
++
++      pci_free_consistent(ha->pdev, sizeof(tur_cmd_rsp_t), 
++                              pkt, phys_address);
++
++      LEAVE(__func__);
++
++      return rval;
++
+ }
+-/*
+- * qla2x00_check_for_devices_online
+- *
+- *    Check fcport state of all devices to make sure online.
+- *
+- * Input:
+- *    ha = adapter block pointer.
+- *
+- * Return:
+- *    None.
+- *
+- * Context:
+- */
+-STATIC uint8_t
+-qla2x00_check_for_devices_online(scsi_qla_host_t *ha) 
++
++static fc_lun_t *
++qla2x00_find_data_lun( fc_port_t *fcport ) 
+ {
+-      fc_port_t       *fcport;
+-      int             found, cnt;
++      scsi_qla_host_t *ha;
++      fc_lun_t        *fclun, *ret_fclun;
+-      found = 0;
+-      for (cnt = 0, fcport = ha->fcport; 
+-              fcport != NULL;
+-              fcport = fcport->next, cnt++) {
++      ha = fcport->ha;
++      ret_fclun = NULL;
+-              if ((atomic_read(&fcport->state) == FC_ONLINE) ||
+-                      (atomic_read(&fcport->state) == FC_DEVICE_DEAD))
+-                      found++;
++      /* Go thur all luns and find a good data lun */
++      list_for_each_entry(fclun, &fcport->fcluns, list) {
++              fclun->flags &= ~FC_VISIBLE_LUN;
++              if (fclun->inq0 == 0xff)
++                      qla2x00_issue_scsi_inquiry(ha, fcport, fclun);
++              if (fclun->inq0 == 0xc)
++                      fclun->flags |= FC_VISIBLE_LUN;
++              else if (fclun->inq0 == 0 ) {
++                      ret_fclun = fclun;
++              }
+       }
+-      if (cnt == found) {
+-              DEBUG5(printk("%s(%ld): all online\n",
+-                              __func__,
+-                              ha->host_no);)
+-              return 1;
+-      } else
+-              return 0;
++      return (ret_fclun);
+ }
+ /*
+- * qla2x00_update_fcport
+- *    Updates device on list.
++ * qla2x00_test_active_port
++ *    Determines if the port is in active or standby mode. First, we
++ *    need to locate a storage lun then do a TUR on it. 
+  *
+  * Input:
+- *    ha = adapter block pointer.
+  *    fcport = port structure pointer.
++ *    
+  *
+  * Return:
+- *    0  - Success
+- *  BIT_0 - error
++ *    0  - Standby or error
++ *  1 - Active
+  *
+  * Context:
+  *    Kernel context.
+  */
+-static int
+-qla2x00_update_fcport(scsi_qla_host_t *ha, fc_port_t *fcport, int index) 
++int
++qla2x00_test_active_port( fc_port_t *fcport ) 
+ {
+-      DEBUG4(printk("%s(): entered, loop_id = %d\n",
+-                      __func__,
++      tur_cmd_rsp_t   *pkt;
++      int             rval = 0 ; 
++      dma_addr_t      phys_address = 0;
++      int             retry;
++      uint16_t        comp_status;
++      uint16_t        scsi_status;
++      scsi_qla_host_t *ha;
++      uint16_t        lun = 0;
++      fc_lun_t        *fclun;
++
++      ENTER(__func__);
++
++
++      ha = fcport->ha;
++      if (atomic_read(&fcport->state) == FC_DEVICE_DEAD){
++              DEBUG2(printk("scsi(%ld) %s leaving: Port 0x%02x is marked DEAD\n",
++                      ha->host_no,__func__,fcport->loop_id);)
++              return rval;
++      }
++              
++
++      if( (fclun = qla2x00_find_data_lun( fcport )) == NULL ) {
++              DEBUG2(printk(KERN_INFO "%s leaving: Couldn't find data lun\n",__func__);)
++              return rval;
++      } 
++      lun = fclun->lun;
++
++      pkt = pci_alloc_consistent(ha->pdev,
++          sizeof(tur_cmd_rsp_t), &phys_address);
++
++      if (pkt == NULL) {
++              printk(KERN_WARNING
++                  "scsi(%ld): Memory Allocation failed - TUR\n",
++                  ha->host_no);
++              ha->mem_err++;
++              return rval;
++      }
++
++      retry = 4;
++      do {
++              memset(pkt, 0, sizeof(tur_cmd_rsp_t));
++              pkt->p.cmd.entry_type = COMMAND_A64_TYPE;
++              pkt->p.cmd.entry_count = 1;
++              pkt->p.cmd.lun = cpu_to_le16(lun);
++              /* pkt->p.cmd.lun = lun; */
++#if defined(EXTENDED_IDS)
++              pkt->p.cmd.target = cpu_to_le16(fcport->loop_id);
++#else
++              pkt->p.cmd.target = (uint8_t)fcport->loop_id;
++#endif
++              /* no direction for this command */
++              pkt->p.cmd.control_flags =
++                      __constant_cpu_to_le16(CF_SIMPLE_TAG);
++              pkt->p.cmd.scsi_cdb[0] = TEST_UNIT_READY;
++              pkt->p.cmd.dseg_count = __constant_cpu_to_le16(0);
++              pkt->p.cmd.timeout = __constant_cpu_to_le16(3);
++              pkt->p.cmd.byte_count = __constant_cpu_to_le32(0);
++
++              rval = qla2x00_issue_iocb(ha, pkt,
++                          phys_address, sizeof(tur_cmd_rsp_t));
++
++              comp_status = le16_to_cpu(pkt->p.rsp.comp_status);
++              scsi_status = le16_to_cpu(pkt->p.rsp.scsi_status);
++
++              /* Port Logged Out, so don't retry */
++              if(     comp_status == CS_PORT_LOGGED_OUT  ||
++                      comp_status == CS_PORT_CONFIG_CHG ||
++                      comp_status == CS_PORT_BUSY ||
++                      comp_status == CS_INCOMPLETE ||
++                      comp_status == CS_PORT_UNAVAILABLE )
++                      break;
++
++              DEBUG(printk("scsi(%ld:%04x:%d) "
++                     "%s: TEST UNIT READY - "
++                  " comp status 0x%x, "
++                  "scsi status 0x%x, rval=%d\n",ha->host_no,
++                      fcport->loop_id,
++                      lun,__func__,
++                  comp_status, scsi_status, rval);)
++              if( (scsi_status & SS_CHECK_CONDITION)  ) {
++                      DEBUG2(printk("%s: check status bytes =  0x%02x 0x%02x 0x%02x\n", 
++                       __func__, pkt->p.rsp.req_sense_data[2],
++                       pkt->p.rsp.req_sense_data[12] ,
++                       pkt->p.rsp.req_sense_data[13]);)
++
++                      if (pkt->p.rsp.req_sense_data[2] == NOT_READY && 
++                       pkt->p.rsp.req_sense_data[12] == 0x4 &&
++                       pkt->p.rsp.req_sense_data[13] == 0x2 ) 
++                              break;
++              }
++      } while ( (rval != QLA2X00_SUCCESS ||
++                 comp_status != CS_COMPLETE ||
++                 (scsi_status & SS_CHECK_CONDITION)) && 
++              retry--);
++
++      if (rval == QLA2X00_SUCCESS &&
++              ( !( (scsi_status & SS_CHECK_CONDITION) && 
++                      (pkt->p.rsp.req_sense_data[2] == NOT_READY && 
++                       pkt->p.rsp.req_sense_data[12] == 0x4 &&
++                       pkt->p.rsp.req_sense_data[13] == 0x2 ) ) && 
++          comp_status == CS_COMPLETE) ) {
++              DEBUG2(printk("scsi(%ld) %s - Port (0x%04x) set to ACTIVE.\n",
++                      ha->host_no, __func__,
++                      fcport->loop_id);)
++              /* We found an active path */
++                      fcport->flags |= FC_MSA_PORT_ACTIVE;
++              rval = 1;
++      } else {
++              DEBUG2(printk("scsi(%ld) %s - Port (0x%04x) set to INACTIVE.\n",
++                      ha->host_no, __func__,
+                       fcport->loop_id);)
++                      fcport->flags &= ~(FC_MSA_PORT_ACTIVE);
++      }
+-      fcport->port_login_retry_count =
+-              ha->port_down_retry_count * PORT_RETRY_TIME;
+-      atomic_set(&fcport->state, FC_ONLINE);
+-      fcport->login_retry = 0;
+-      fcport->ha = ha;
+-      atomic_set(&fcport->port_down_timer,
+-                      ha->port_down_retry_count * PORT_RETRY_TIME);
++      pci_free_consistent(ha->pdev, sizeof(tur_cmd_rsp_t), 
++                              pkt, phys_address);
+-      /* Do LUN discovery. */
+-      return (qla2x00_lun_discovery(ha, fcport, index));
++      LEAVE(__func__);
++
++      return rval;
++
++}
++
++void
++qla2x00_set_device_flags(scsi_qla_host_t *ha, 
++      fc_port_t *fcport )
++{
++
++      if ( fcport->cfg_id != -1 ){
++         fcport->flags &= ~(FC_XP_DEVICE|FC_MSA_DEVICE|FC_EVA_DEVICE);
++         if ( (cfg_device_list[fcport->cfg_id].flags & 1) ){
++              printk(KERN_INFO 
++              "scsi(%ld) :Loop id 0x%04x is an XP device\n",
++              ha->host_no,
++              fcport->loop_id);
++                fcport->flags |= FC_XP_DEVICE;
++         } else if ( (cfg_device_list[fcport->cfg_id].flags & 2) ){
++              printk(KERN_INFO 
++              "scsi(%ld) :Loop id 0x%04x is a MSA1000 device\n",
++              ha->host_no,
++              fcport->loop_id);
++                fcport->flags |= FC_MSA_DEVICE;
++              fcport->flags |= FC_FAILBACK_DISABLE;
++         } else if ( (cfg_device_list[fcport->cfg_id].flags & 4) ){
++              printk(KERN_INFO 
++              "scsi(%ld) :Loop id 0x%04x is a EVA device\n",
++              ha->host_no,
++              fcport->loop_id);
++                fcport->flags |= FC_EVA_DEVICE;
++              fcport->flags |= FC_FAILBACK_DISABLE;
++         } 
++         if ( (cfg_device_list[fcport->cfg_id].flags & 8) ){
++              fcport->flags |= FC_FAILOVER_DISABLE;
++              printk(KERN_INFO 
++              "scsi(%ld) :Loop id 0x%04x has FAILOVERS disabled.\n",
++              ha->host_no,
++              fcport->loop_id);
++         }
++      }
+ }
+ /*
+@@ -15886,19 +15447,21 @@ qla2x00_update_fcport(scsi_qla_host_t *h
+  *    Kernel context.
+  */
+ static int
+-qla2x00_lun_discovery(scsi_qla_host_t *ha, fc_port_t *fcport, int index) 
++qla2x00_lun_discovery(scsi_qla_host_t *ha, fc_port_t *fcport) 
+ {
+       inq_cmd_rsp_t   *pkt;
+       int             rval;
+       uint16_t        lun;
++      struct list_head        *fcll;
+       fc_lun_t        *fclun;
++      int             found;
+       dma_addr_t      phys_address = 0;
+       int             disconnected;
+       int             retry;
+-      fcdev_t         dev;
+-      int             rlc_succeeded;
++      int             rlc_succeeded, first;
+       uint16_t        comp_status;
+       uint16_t        scsi_status;
++      uint16_t        next_loopid;
+       ENTER(__func__);
+@@ -15933,14 +15496,20 @@ qla2x00_lun_discovery(scsi_qla_host_t *h
+               return BIT_0;
+       }
++      first = 0;
+       for (lun = 0; lun < ha->max_probe_luns; lun++) {
+               retry = 2;
+               do {
++                      // FIXME: dma_addr_t could be 64bits in length!
+                       memset(pkt, 0, sizeof(inq_cmd_rsp_t));
+                       pkt->p.cmd.entry_type = COMMAND_A64_TYPE;
+                       pkt->p.cmd.entry_count = 1;
+                       pkt->p.cmd.lun = cpu_to_le16(lun);
++#if defined(EXTENDED_IDS)
++                      pkt->p.cmd.target = cpu_to_le16(fcport->loop_id);
++#else
+                       pkt->p.cmd.target = (uint8_t)fcport->loop_id;
++#endif
+                       pkt->p.cmd.control_flags =
+                               __constant_cpu_to_le16(CF_READ | CF_SIMPLE_TAG);
+                       pkt->p.cmd.scsi_cdb[0] = INQ_SCSI_OPCODE;
+@@ -15950,13 +15519,13 @@ qla2x00_lun_discovery(scsi_qla_host_t *h
+                       pkt->p.cmd.byte_count =
+                               __constant_cpu_to_le32(INQ_DATA_SIZE);
+                       pkt->p.cmd.dseg_0_address[0] = cpu_to_le32(
+-                            pci_dma_lo32(phys_address + sizeof(sts_entry_t)));
++                            LSD(phys_address + sizeof(sts_entry_t)));
+                       pkt->p.cmd.dseg_0_address[1] = cpu_to_le32(
+-                            pci_dma_hi32(phys_address + sizeof(sts_entry_t)));
++                            MSD(phys_address + sizeof(sts_entry_t)));
+                       pkt->p.cmd.dseg_0_length =
+                               __constant_cpu_to_le32(INQ_DATA_SIZE);
+-                      DEBUG5(printk("lun_discovery: Lun Inquiry - fcport=%p,"
++                      DEBUG(printk("lun_discovery: Lun Inquiry - fcport=%p,"
+                                       " lun (%d)\n", 
+                                       fcport, 
+                                       lun);)
+@@ -15977,12 +15546,16 @@ qla2x00_lun_discovery(scsi_qla_host_t *h
+                       /* if port not logged in then try and login */
+                       if (lun == 0 && comp_status == CS_PORT_LOGGED_OUT) {
+-                              memset(&dev, 0, sizeof (dev));
+-                              dev.d_id.b24 = ha->fc_db[index].d_id.b24;
+-
+-                              /* login and update database */
+-                              if (qla2x00_fabric_login(ha, &dev) == 0)
+-                                      ha->fc_db[index].loop_id = dev.loop_id;
++                              if (fcport->flags & FC_FABRIC_DEVICE) {
++                                      /* login and update database */
++                                      next_loopid = 0;
++                                      qla2x00_fabric_login(ha, fcport,
++                                          &next_loopid);
++                              } else {
++                                      /* Loop device gone but no LIP... */
++                                      rval = QL_STATUS_ERROR;
++                                      break;
++                              }
+                       }
+               } while ((rval != QLA2X00_SUCCESS ||
+                               comp_status != CS_COMPLETE) && 
+@@ -15992,7 +15565,7 @@ qla2x00_lun_discovery(scsi_qla_host_t *h
+                       comp_status != CS_COMPLETE ||
+                       (scsi_status & SS_CHECK_CONDITION)) {
+-                      DEBUG(printk("lun_discovery: Failed lun inquiry - "
++                      DEBUG2(printk("lun_discovery: Failed lun inquiry - "
+                                       "inq[0]= 0x%x, comp status 0x%x, "
+                                       "scsi status 0x%x. loop_id=%d\n",
+                                       pkt->inq[0], 
+@@ -16012,12 +15585,15 @@ qla2x00_lun_discovery(scsi_qla_host_t *h
+               if (rlc_succeeded == 1) {
+                       if (pkt->inq[0] == 0 || pkt->inq[0] == 0xc) {
+                               fcport->flags &= ~(FC_TAPE_DEVICE);
+-                              ha->fc_db[index].flag &= ~DEV_TAPE_DEVICE;
+                       } else if (pkt->inq[0] == 1 || pkt->inq[0] == 8) {
+                               fcport->flags |= FC_TAPE_DEVICE;
+-                              ha->fc_db[index].flag |= DEV_TAPE_DEVICE;
+                       }
+-
++                      /* Does this port require special failover handling? */
++                      if (ha->flags.failover_enabled) {
++                              fcport->cfg_id = qla2x00_cfg_lookup_device(
++                                      &pkt->inq[0]);
++                              qla2x00_set_device_flags(ha, fcport);
++                      }
+                       /* Stop the scan */
+                       break;
+               }
+@@ -16031,35 +15607,37 @@ qla2x00_lun_discovery(scsi_qla_host_t *h
+                */
+               if (pkt->inq[0] == 0 || pkt->inq[0] == 0xc) {
+                       fcport->flags &= ~(FC_TAPE_DEVICE);
+-                      ha->fc_db[index].flag &= ~DEV_TAPE_DEVICE;
+               } else if (pkt->inq[0] == 1 || pkt->inq[0] == 8) {
+                       fcport->flags |= FC_TAPE_DEVICE;
+-                      ha->fc_db[index].flag |= DEV_TAPE_DEVICE;
+               } else if (pkt->inq[0] == 0x20 || pkt->inq[0] == 0x7f) {
+                       disconnected++;
+               } else {
+                       continue;
+               }
+               
++              /* Does this port require special failover handling? */
++              if (ha->flags.failover_enabled && !first) {
++                      fcport->cfg_id = qla2x00_cfg_lookup_device(&pkt->inq[0]);
++                      qla2x00_set_device_flags(ha,fcport);
++                              first++;
++              }
+               /* Allocate LUN if not already allocated. */
+-              for (fclun = fcport->fclun; 
+-                      fclun != NULL; 
+-                      fclun = fclun->next) {
++              found = 0;
++              list_for_each(fcll, &fcport->fcluns) {
++                      fclun = list_entry(fcll, fc_lun_t, list);
+-                      if (fclun->lun == lun)
++                      if (fclun->lun == lun) {
++                              found++;
+                               break;
++                      }
+               }
+-
+-              if (fclun != NULL) {
+-                      /* Found this lun already in our list */
++              if (found)
+                       continue;
+-              }
+               /* Add this lun to our list */
+-              fcport->lun_cnt++;
+-
+               fclun = kmalloc(sizeof(fc_lun_t), GFP_ATOMIC);
+               if (fclun != NULL) {
++                      fcport->lun_cnt++;
+                       /* Setup LUN structure. */
+                       memset(fclun, 0, sizeof(fc_lun_t));
+@@ -16070,12 +15648,13 @@ qla2x00_lun_discovery(scsi_qla_host_t *h
+                       fclun->fcport = fcport;
+                       fclun->lun = lun;
++                      fclun->inq0 = 0xff;
+                       if (disconnected)
+                               fclun->flags |= FC_DISCON_LUN;
+-                      fclun->next = fcport->fclun;
+-                      fcport->fclun = fclun;
++                      list_add_tail(&fclun->list, &fcport->fcluns);
++
+                       DEBUG5(printk("lun_discvery: Allocated fclun %p, "
+                                       "fclun.lun=%d\n", 
+@@ -16094,7 +15673,7 @@ qla2x00_lun_discovery(scsi_qla_host_t *h
+       }
+-      DEBUG(printk("lun_discovery(%ld): fcport lun count=%d, fcport= %p\n", 
++      DEBUG2(printk("lun_discovery(%ld): fcport lun count=%d, fcport= %p\n", 
+                       ha->host_no,
+                       fcport->lun_cnt, 
+                       fcport);)
+@@ -16153,10 +15732,15 @@ qla2x00_rpt_lun_discovery(scsi_qla_host_
+       }
+       for (retries = 4; retries; retries--) {
++              // FIXME: dma_addr_t could be 64bits in length!
+               memset(pkt, 0, sizeof(rpt_lun_cmd_rsp_t));
+               pkt->p.cmd.entry_type = COMMAND_A64_TYPE;
+               pkt->p.cmd.entry_count = 1;
++#if defined(EXTENDED_IDS)
++              pkt->p.cmd.target = cpu_to_le16(fcport->loop_id);
++#else
+               pkt->p.cmd.target = (uint8_t)fcport->loop_id;
++#endif
+               pkt->p.cmd.control_flags =
+                       __constant_cpu_to_le16(CF_READ | CF_SIMPLE_TAG);
+               pkt->p.cmd.scsi_cdb[0] = RPT_LUN_SCSI_OPCODE;
+@@ -16167,9 +15751,9 @@ qla2x00_rpt_lun_discovery(scsi_qla_host_
+               pkt->p.cmd.byte_count = 
+                       __constant_cpu_to_le32(sizeof(rpt_lun_lst_t));
+               pkt->p.cmd.dseg_0_address[0] = cpu_to_le32(
+-                      pci_dma_lo32(phys_address + sizeof(sts_entry_t)));
++                      LSD(phys_address + sizeof(sts_entry_t)));
+               pkt->p.cmd.dseg_0_address[1] = cpu_to_le32(
+-                      pci_dma_hi32(phys_address + sizeof(sts_entry_t)));
++                      MSD(phys_address + sizeof(sts_entry_t)));
+               pkt->p.cmd.dseg_0_length =
+                       __constant_cpu_to_le32(sizeof(rpt_lun_lst_t));
+@@ -16280,26 +15864,29 @@ qla2x00_rpt_lun_discovery(scsi_qla_host_
+ static void
+ qla2x00_cfg_lun(fc_port_t *fcport, uint16_t lun) 
+ {
++      int found;
+       fc_lun_t                *fclun;
+       /* Allocate LUN if not already allocated. */
+-      for (fclun = fcport->fclun; fclun != NULL; fclun = fclun->next) {
++      found = 0;
++      list_for_each_entry(fclun, &fcport->fcluns, list) {
+               if (fclun->lun == lun) {
++                      found++;
+                       break;
+               }
+       }
+-      if (fclun == NULL) {
++      if (!found) {
+               fclun = kmalloc(sizeof(fc_lun_t), GFP_ATOMIC);
+               if (fclun != NULL) {
++                      fcport->lun_cnt++;
++
+                       /* Setup LUN structure. */
+                       memset(fclun, 0, sizeof(fc_lun_t));
+-                      fcport->lun_cnt++;
+                       fclun->fcport = fcport;
+-                      /* How dow we assign the following */
+-                      /*  fclun->state = FCS_ONLINE; */
+                       fclun->lun = lun;
+-                      fclun->next = fcport->fclun;
+-                      fcport->fclun = fclun;
++                      fclun->inq0 = 0xff;
++
++                      list_add_tail(&fclun->list, &fcport->fcluns);
+               } else {
+                       printk(KERN_WARNING
+                               "%s(): Memory Allocation failed - FCLUN\n",
+@@ -16322,20 +15909,40 @@ qla2x00_cfg_lun(fc_port_t *fcport, uint1
+  *    BIT_1 = database was full and a device was not configured.
+  */
+ static uint8_t
+-qla2x00_configure_local_loop(scsi_qla_host_t *ha, uint8_t enable_slot_reuse) 
++qla2x00_configure_local_loop(scsi_qla_host_t *ha) 
+ {
+-      uint8_t  status = 0;
+       uint8_t  rval;
+-      uint8_t  port_name[8];
++      int  rval2;
++#if defined(FC_IP_SUPPORT)
+       uint8_t  update_status = 0;
+-      uint16_t index, size;
+-      dma_addr_t phys_address = 0;
+-      fcdev_t device;
+-      port_list_entry_t *gn_list, *port_entry;
+-      uint16_t localdevices = 0;
++#endif
++      uint16_t localdevices;
++
++      uint16_t        index;
++      uint16_t        entries;
++      uint16_t        loop_id;
++      struct dev_id {
++              uint8_t al_pa;
++              uint8_t area;
++              uint8_t domain;
++#if defined(EXTENDED_IDS)
++              uint8_t reserved;
++              uint16_t loop_id;
++#else
++              uint8_t loop_id;
++#endif
++      } *id_list;
++#define MAX_ID_LIST_SIZE (sizeof(struct dev_id) * MAX_FIBRE_DEVICES)
++      dma_addr_t      id_list_dma;
++
++      int             found;
++      fc_port_t       *fcport, *new_fcport;
+       ENTER(__func__);
++      localdevices = 0;
++      new_fcport = NULL;
++
+       /*
+        * No point in continuing if the loop is in a volatile state -- 
+        * reschedule LOCAL_LOOP_UPDATE for later processing
+@@ -16345,187 +15952,146 @@ qla2x00_configure_local_loop(scsi_qla_ho
+               return (0);
+       }
+-      gn_list = pci_alloc_consistent(ha->pdev,
+-                      sizeof(GN_LIST_LENGTH), &phys_address);
+-      if (gn_list == NULL) {
+-              printk(KERN_WARNING
+-                      "scsi(%ld): Memory Allocation failed - port_list",
+-                      ha->host_no);
+-              ha->mem_err++;
++      entries = MAX_FIBRE_DEVICES;
++      id_list = pci_alloc_consistent(ha->pdev, MAX_ID_LIST_SIZE,
++          &id_list_dma);
++      if (id_list == NULL) {
++              DEBUG2(printk("scsi(%ld): Failed to allocate memory, No local "
++                  "loop\n", ha->host_no));
+-              DEBUG2(printk(KERN_INFO "%s(%ld): Failed to allocate memory, No "
+-                              "local loop\n",
+-                              __func__,
+-                              ha->host_no);)
++              printk(KERN_WARNING
++                  "scsi(%ld): Memory Allocation failed - port_list",
++                  ha->host_no);
++              ha->mem_err++;
+               return (BIT_0);
+       }
+-      memset(gn_list, 0, sizeof(GN_LIST_LENGTH));
+-
+-      /* Mark all local devices PORT_LOST_ID first */
+-      for (index = 0; index < MAX_FIBRE_DEVICES; index++) {
+-              if (ha->fc_db[index].loop_id <= LAST_SNS_LOOP_ID &&
+-                      !(ha->fc_db[index].flag & DEV_PUBLIC)) {
+-
+-                      DEBUG(printk("%s(%ld): port lost @ slot %d %06x\n", 
+-                                      __func__,
+-                                      ha->host_no,
+-                                      index, 
+-                                      ha->fc_db[index].d_id.b24);)
+-
+-                      ha->fc_db[index].loop_id |= PORT_LOST_ID;
+-              }
+-      }
++      memset(id_list, 0, MAX_ID_LIST_SIZE);
+-      DEBUG3(printk("%s(%ld): Getting FCAL position map\n",
+-              __func__, ha->host_no));
++      DEBUG3(printk("scsi(%ld): Getting FCAL position map\n", ha->host_no));
+       DEBUG3(qla2x00_get_fcal_position_map(ha, NULL));
+-      /* Get port name list.*/
+-#if defined(FC_IP_SUPPORT)
+-      if (ha->flags.enable_ip == FALSE)
+-              rval = qla2x00_get_port_list(ha,
+-                              gn_list, phys_address, BIT_0, &size);
+-      else
+-              /*
+-               * Bit 0 - return node names,
+-               * Bit 1 - loop IDs 0-255
+-               */
+-              rval = qla2x00_get_port_list(ha,
+-                              gn_list, phys_address, BIT_0|BIT_1, &size);
+-#else
+-      rval = qla2x00_get_port_list(ha, gn_list, phys_address, BIT_0, &size);
+-#endif
++      /* Get list of logged in devices. */
++      rval = qla2x00_get_id_list(ha, id_list, id_list_dma, &entries);
+       if (rval) {
+-              status = BIT_0;
++              rval = BIT_0;
+               goto cleanup_allocation;
+       }
+-      DEBUG3(printk("%s(%ld): port list size (%d)\n",
+-              __func__, ha->host_no, size));
+-      DEBUG3(qla2x00_dump_buffer((uint8_t *)gn_list, size));
+-
+-      /* Any valid entries returned? */
+-      /* dg: 10/29/99 for an empty list */
+-      if (size / sizeof(port_list_entry_t) == 0)
++      DEBUG3(printk("scsi(%ld): Entries in ID list (%d)\n",
++          ha->host_no, entries));
++      DEBUG3(qla2x00_dump_buffer((uint8_t *)id_list,
++          entries * sizeof(struct dev_id)));
++
++      /* Allocate temporary fcport for any new fcports discovered. */
++      new_fcport = qla2x00_alloc_fcport(ha, GFP_KERNEL);
++      if (new_fcport == NULL) {
++              rval = BIT_0;
+               goto cleanup_allocation;
++      }
+-      port_entry = gn_list;
+-      for ( ; size >= sizeof(port_list_entry_t);
+-                      size -= sizeof(port_list_entry_t),
+-                      port_entry++) {
+-              device.loop_id = le16_to_cpu(port_entry->loop_id);
++      /* Mark all local ports LOST first */
++      list_for_each_entry(fcport, &ha->fcports, list) {
++              if (!(fcport->flags & FC_FABRIC_DEVICE)) {
++                      /*
++                       * No point in marking the device as lost, if the
++                       * device is already DEAD.
++                       */
++                      if (atomic_read(&fcport->state) == FC_DEVICE_DEAD)
++                              continue;
+-#if defined(FC_IP_SUPPORT)
+-              device.loop_id &= LOOP_ID_MASK; 
+-#endif
++                      atomic_set(&fcport->state, FC_DEVICE_LOST);
++              }
++      }
+-              /* Skip any non-local loop-ids - this includes 'known ports' */
+-              if (device.loop_id > LAST_LOCAL_LOOP_ID) 
++      /* Add devices to port list. */
++      for (index = 0; index < entries; index++) {
++              /* Bypass reserved domain fields. */
++              if ((id_list[index].domain & 0xf0) == 0xf0)
+                       continue;
+-#if NOT_NEEDED
+-              /* Skip the known ports. */
+-              if ((device.loop_id == SNS_FL_PORT) ||
+-                      (device.loop_id == FABRIC_CONTROLLER) ||
+-                      (device.loop_id == SIMPLE_NAME_SERVER))
++
++              /* Bypass if not same domain and area of adapter. */
++              if (id_list[index].area != ha->d_id.b.area ||
++                  id_list[index].domain != ha->d_id.b.domain)
+                       continue;
++
++              /* Bypass invalid local loop ID. */
++#if defined(EXTENDED_IDS)
++              loop_id = le16_to_cpu(id_list[index].loop_id);
++#else
++              loop_id = (uint16_t)id_list[index].loop_id;
+ #endif
++              if (loop_id > LAST_LOCAL_LOOP_ID)
++                      continue;
+-              /* Get port name */
+-              rval = qla2x00_get_port_name(ha, device.loop_id, port_name, 0);
+-              if (rval || qla2x00_is_wwn_zero(port_name)) {
+-                      DEBUG2(printk(KERN_INFO "%s(%ld): get_port_name error.\n",
+-                                      __func__,
+-                                      ha->host_no);)
+-                      status = BIT_0;
++              /* Fill in member data. */
++              new_fcport->d_id.b.domain = id_list[index].domain;
++              new_fcport->d_id.b.area = id_list[index].area;
++              new_fcport->d_id.b.al_pa = id_list[index].al_pa;
++              new_fcport->loop_id = loop_id;
++              rval2 = qla2x00_get_port_database(ha, new_fcport, 0);
++              if (rval2 != QL_STATUS_SUCCESS) {
++                      DEBUG2(printk("scsi(%ld): Failed to retrieve fcport "
++                          "information -- get_port_database=%x, "
++                          "loop_id=0x%04x\n",
++                          ha->host_no, rval2, new_fcport->loop_id));
++                      continue;
++              }
++
++              /* Check for matching device in port list. */
++              found = 0;
++              fcport = NULL;
++              list_for_each_entry(fcport, &ha->fcports, list) {
++                      if (memcmp(new_fcport->port_name, fcport->port_name,
++                          WWN_SIZE))
++                              continue;
++
++                      fcport->flags &= ~FC_FABRIC_DEVICE;
++                      fcport->loop_id = new_fcport->loop_id;
++                      fcport->port_type = new_fcport->port_type;
++                      fcport->d_id.b24 = new_fcport->d_id.b24;
++                      memcpy(fcport->node_name, new_fcport->node_name,
++                          WWN_SIZE);
++
++                      found++;
+                       break;
+               }
+-              memcpy(device.wwn, port_name, WWN_SIZE);
+-              DEBUG3(printk("%s(%ld): found portname -> "
+-                              "%02x%02x%02x%02x%02x%02x%02x%02x\n",
+-                              __func__,
+-                              ha->host_no,
+-                              port_name[0], port_name[1],
+-                              port_name[2], port_name[3],
+-                              port_name[4], port_name[5],
+-                              port_name[6], port_name[7]);)
+-      
+-              /* Now get node name -- big-endian format */
+-              *((u64 *)device.name) = be64_to_cpup((u64 *)port_entry->name);
+-              DEBUG3(printk("%s(%ld): found nodename -> "
+-                              "%02x%02x%02x%02x%02x%02x%02x%02x\n",
+-                              __func__,
+-                              ha->host_no,
+-                              device.name[0], device.name[1],
+-                              device.name[2], device.name[3],
+-                              device.name[4], device.name[5],
+-                              device.name[6], device.name[7]);)
+-
+-              device.flag = 0;
+-
+-              /* Derive portid from alpa table */
+-              device.d_id.b24 = 0;
+-              device.d_id.b.al_pa = alpa_table[device.loop_id];
+-#if defined(FC_IP_SUPPORT)
+-              if (!(list_entry_loop_id & PLE_NOT_SCSI_DEVICE)) {
+-#endif
+-                      /* SCSI type device */
+-                      update_status = qla2x00_update_fc_database(ha,
+-                                      &device, enable_slot_reuse);
++              if (!found) {
++                      /* New device, add to fcports list. */
++                      list_add_tail(&new_fcport->list, &ha->fcports);
++
++                      /* Allocate a new replacement fcport. */
++                      fcport = new_fcport;
++                      new_fcport = qla2x00_alloc_fcport(ha, GFP_KERNEL);
++                      if (new_fcport == NULL) {
++                              rval = BIT_0;
++                              goto cleanup_allocation;
++                      }
++              }
+-                      if (update_status)
+-                              status |= update_status;
+-                      else
+-                              localdevices++;
++              qla2x00_update_fcport(ha, fcport);
+-#if defined(FC_IP_SUPPORT)
+-              } else if (ha->flags.enable_ip == TRUE) {
+-                      /* SCSI login failed, assume it is IP device */
+-                      DEBUG12(printk("qla%ld: IP local WWN:"
+-                                      "%02x%02x%02x%02x%02x%02x%02x%02x "
+-                                      "DID:%06x\n",
+-                                      ha->instance,
+-                                      device.name[0], device.name[1],
+-                                      device.name[2], device.name[3],
+-                                      device.name[4], device.name[5],
+-                                      device.name[6], device.name[7],
+-                                      device.d_id.b24);)
+-
+-                      update_status = qla2x00_update_ip_device_data(ha,
+-                                      &device);
+-
+-                      if (update_status == QL_STATUS_SUCCESS)
+-                              localdevices++;
+-                      else if (update_status == QL_STATUS_RESOURCE_ERROR)
+-                              status |= BIT_1;
+-                      else
+-                              status |= BIT_0;
+-              }
+-#endif
+-      } /* for each port entry */
++              localdevices++;
++      }
+ cleanup_allocation:
++      pci_free_consistent(ha->pdev, MAX_ID_LIST_SIZE, id_list, id_list_dma);
+-      pci_free_consistent(ha->pdev,
+-                      sizeof(GN_LIST_LENGTH), gn_list, phys_address);
++      if (new_fcport)
++              kfree(new_fcport);
+-#if defined(QL_DEBUG_LEVEL_2) || defined(QL_DEBUG_LEVEL_3)
+-      if (status & BIT_0)
+-              printk(KERN_WARNING
+-                      "%s(%ld): *** FAILED ***\n",
+-                      __func__,
+-                      ha->host_no);
+-#endif
++      if (rval & BIT_0) {
++              DEBUG2(printk("scsi(%ld): Configure local loop error exit: "
++                  "rval=%x\n", ha->host_no, rval));
++      }
+       if (localdevices > 0) {
+               ha->device_flags |= DFLG_LOCAL_DEVICES;
+               ha->device_flags &= ~DFLG_RETRY_LOCAL_DEVICES;
+       }
+-      LEAVE(__func__);
+-
+-      return (status);
++      return (rval);
+ }
+@@ -16543,7 +16109,7 @@ cleanup_allocation:
+  * Context:
+  *    Kernel context.
+  */
+-static os_tgt_t *
++os_tgt_t *
+ qla2x00_tgt_alloc(scsi_qla_host_t *ha, uint16_t t) 
+ {
+       os_tgt_t        *tq;
+@@ -16599,7 +16165,7 @@ qla2x00_tgt_alloc(scsi_qla_host_t *ha, u
+  * Context:
+  *    Kernel context.
+  */
+-static void
++void
+ qla2x00_tgt_free(scsi_qla_host_t *ha, uint16_t t) 
+ {
+       os_tgt_t        *tq;
+@@ -16648,7 +16214,7 @@ qla2x00_tgt_free(scsi_qla_host_t *ha, ui
+  * Context:
+  *    Kernel context.
+  */
+-static os_lun_t *
++os_lun_t *
+ qla2x00_lun_alloc(scsi_qla_host_t *ha, uint16_t t, uint16_t l) 
+ {
+       os_lun_t        *lq;
+@@ -16741,9 +16307,6 @@ qla2x00_lun_free(scsi_qla_host_t *ha, ui
+               (lq = LUN_Q(ha, t, l)) != NULL) {
+               LUN_Q(ha, t, l) = NULL;
+-#ifdef __VMWARE__
+-              spin_lock_destroy(&lq->q_lock);
+-#endif
+               kfree(lq);
+               DEBUG3(printk("Dealloc lun @ %p -- deleted\n", lq);)
+@@ -16783,11 +16346,7 @@ qla2x00_process_response_queue_in_zio_mo
+                                               , flags);
+                                 /* Complete any commands in done_queue */
+                                 if (!list_empty(&ha->done_queue)){
+-#if QLA2X_PERFORMANCE
+-                                        tasklet_schedule(&ha->run_qla_task);
+-#else
+                                       qla2x00_done(ha);
+-#endif
+                               }
+                       }
+@@ -16814,7 +16373,7 @@ qla2x00_process_response_queue_in_zio_mo
+  * 
+  * Note: This routine will always try to start I/O from visible HBA.
+  */
+-static void
++void
+ qla2x00_next(scsi_qla_host_t *vis_ha) 
+ {
+       scsi_qla_host_t *dest_ha = NULL;
+@@ -16833,7 +16392,7 @@ qla2x00_next(scsi_qla_host_t *vis_ha) 
+               dest_ha = fcport->ha;
+               /* Check if command can be started, exit if not. */
+-              if (LOOP_TRANSITION(dest_ha)) {
++              if (!(sp->flags & SRB_TAPE) && LOOP_TRANSITION(dest_ha)) {
+                       break;
+               }
+@@ -16845,19 +16404,19 @@ qla2x00_next(scsi_qla_host_t *vis_ha) 
+                       CMD_RESULT(sp->cmd) = DID_NO_CONNECT << 16;
+-                      if (!atomic_read(&dest_ha->loop_down_timer) && 
+-                              dest_ha->loop_state == LOOP_DOWN) {
+-                              sp->err_id = 2;
+-
++                      if (atomic_read(&dest_ha->loop_state) == LOOP_DOWN) {
++                              sp->err_id = SRB_ERR_LOOP;
+                       } else {
+-                              sp->err_id = 1;
++                              sp->err_id = SRB_ERR_PORT;
+                       }
++
+                       DEBUG3(printk("scsi(%ld): loop/port is down - "
+-                                      "pid=%ld, sp=%p loopid=0x%x queued "
++                                      "pid=%ld, sp=%p err_id %d, loopid=0x%x queued "
+                                       "to dest HBA scsi%ld.\n", 
+                                       dest_ha->host_no,
+                                       sp->cmd->serial_number,
+                                       sp,
++                                      sp->err_id,
+                                       fcport->loop_id,
+                                       dest_ha->host_no);)
+                       /* 
+@@ -16882,12 +16441,18 @@ qla2x00_next(scsi_qla_host_t *vis_ha) 
+                * continues until the LOOP DOWN time expires or the condition
+                * goes away.
+                */
+-              if (!(sp->flags & SRB_IOCTL) &&
+-                      (atomic_read(&fcport->state) != FC_ONLINE ||
+-                       test_bit(ABORT_ISP_ACTIVE, &dest_ha->dpc_flags) ||
+-                       (dest_ha->loop_state != LOOP_READY)
+-                       || (sp->flags & SRB_FAILOVER)
+-                       )) {
++              if (sp->flags & SRB_TAPE &&
++                  (atomic_read(&dest_ha->loop_state) != LOOP_READY)) {
++                      qla2x00_extend_timeout(sp->cmd,
++                          vis_ha->loop_down_timeout);
++                      __add_to_retry_queue(vis_ha, sp);
++                      continue;
++              } else if (!(sp->flags & (SRB_IOCTL | SRB_FDMI_CMD)) &&
++                  (atomic_read(&fcport->state) != FC_ONLINE ||
++                  test_bit(CFG_FAILOVER, &dest_ha->cfg_flags) || 
++                      test_bit(ABORT_ISP_ACTIVE, &dest_ha->dpc_flags) ||
++                      (atomic_read(&dest_ha->loop_state) != LOOP_READY)
++                      || (sp->flags & SRB_FAILOVER))) {
+                       DEBUG3(printk("scsi(%ld): port=(0x%x) retry_q(%d) loop "
+                                       "state = %d, loop counter = 0x%x"
+@@ -16895,7 +16460,7 @@ qla2x00_next(scsi_qla_host_t *vis_ha) 
+                                       dest_ha->host_no,
+                                       fcport->loop_id,
+                                       atomic_read(&fcport->state),
+-                                      dest_ha->loop_state,
++                                      atomic_read(&dest_ha->loop_state),
+                                       atomic_read(&dest_ha->loop_down_timer),
+                                       dest_ha->dpc_flags);)
+@@ -16908,7 +16473,7 @@ qla2x00_next(scsi_qla_host_t *vis_ha) 
+                * if this request's lun is suspended then put the request on
+                * the  scsi_retry queue. 
+                */
+-              if (!(sp->flags & SRB_IOCTL) &&
++              if (!(sp->flags & (SRB_IOCTL | SRB_TAPE | SRB_FDMI_CMD)) &&
+                       sp->lun_queue->q_state == LUN_STATE_WAIT) {
+                       DEBUG3(printk("%s(): lun wait state - pid=%ld, "
+                                       "opcode=%d, allowed=%d, retries=%d\n",
+@@ -17109,7 +16674,7 @@ qla2x00_bstr_to_hex(char *s, uint8_t *bp
+  * Context:
+  *      Kernel context.
+  */
+-static int
++int
+ qla2x00_get_prop_xstr(scsi_qla_host_t *ha, 
+               char *propname, uint8_t *propval, int size) 
+ {
+@@ -17162,7 +16727,7 @@ qla2x00_get_prop_xstr(scsi_qla_host_t *h
+  * Context:
+  *    Kernel context.
+  */
+-static void
++void
+ qla2x00_chg_endian(uint8_t buf[], size_t size) 
+ {
+       uint8_t byte;
+@@ -17191,7 +16756,7 @@ qla2x00_chg_endian(uint8_t buf[], size_t
+  * 
+  * Note: Sets the ref_count for non Null sp to one.
+  */
+-static uint8_t
++uint8_t
+ qla2x00_allocate_sp_pool(scsi_qla_host_t *ha) 
+ {
+       srb_t   *sp;
+@@ -17236,7 +16801,7 @@ qla2x00_allocate_sp_pool(scsi_qla_host_t
+       if (ha->srb_alloc_cnt == 0)
+               status = QL_STATUS_ERROR;
+-      printk(KERN_INFO
++      printk(KERN_DEBUG
+               "scsi(%ld): Allocated %d SRB(s).\n",
+               ha->host_no,
+               ha->srb_alloc_cnt);
+@@ -17250,7 +16815,7 @@ qla2x00_allocate_sp_pool(scsi_qla_host_t
+  *  This routine frees all adapter allocated memory.
+  *  
+  */
+-static void
++void
+ qla2x00_free_sp_pool( scsi_qla_host_t *ha) 
+ {
+       struct list_head *list, *temp;
+@@ -17497,60 +17062,182 @@ qla2x00_get_flash_manufacturer(scsi_qla_
+  *
+  * Returns QL_STATUS_SUCCESS on successful retrieval of flash version.
+  */
+-STATIC uint16_t
++uint16_t
+ qla2x00_get_flash_version(scsi_qla_host_t *ha)
+ {
++      uint8_t         code_type, last_image;
+       uint16_t        ret = QL_STATUS_SUCCESS;
+-      uint32_t        loop_cnt = 1;  /* this is for error exit only */
+-      uint32_t        pcir_adr;
+-
+-      ENTER(__func__);
++      uint32_t        pcihdr, pcids;
+       qla2x00_flash_enable(ha);
+-      do {    /* Loop once to provide quick error exit */
+-              /* Match signature */
+-              if (!(qla2x00_read_flash_byte(ha, 0) == 0x55 &&
+-                      qla2x00_read_flash_byte(ha, 1) == 0xaa)) {
++
++      /* Begin with first PCI expansion ROM header. */
++      pcihdr = 0;
++      last_image = 1;
++      do {
++              /* Verify PCI expansion ROM header. */
++              if (qla2x00_read_flash_byte(ha, pcihdr) != 0x55 ||
++                  qla2x00_read_flash_byte(ha, pcihdr + 0x01) != 0xaa) {
+                       /* No signature */
+-                      DEBUG2(printk(KERN_INFO "%s(): No matching signature.\n",
+-                                      __func__);)
++                      DEBUG2(printk("scsi(%ld): No matching ROM signature.\n",
++                          ha->host_no));
+                       ret = QL_STATUS_ERROR;
+                       break;
+               }
+-              pcir_adr = qla2x00_read_flash_byte(ha, 0x18) & 0xff;
+-
+-              /* validate signature of PCI data structure */
+-              if ((qla2x00_read_flash_byte(ha, pcir_adr)) == 'P' &&
+-                      (qla2x00_read_flash_byte(ha, pcir_adr + 1)) == 'C' &&
+-                      (qla2x00_read_flash_byte(ha, pcir_adr + 2)) == 'I' &&
+-                      (qla2x00_read_flash_byte(ha, pcir_adr + 3)) == 'R') {
+-
+-                      /* Read version */
+-                      ha->optrom_minor = qla2x00_read_flash_byte(ha,
+-                                      pcir_adr + 0x12);
+-                      ha->optrom_major = qla2x00_read_flash_byte(ha,
+-                                      pcir_adr + 0x13);
+-                      DEBUG3(printk("%s(): got %d.%d.\n",
+-                                      __func__, 
+-                                      ha->optrom_major, ha->optrom_minor);)
+-              } else {
+-                      /* error */
+-                      DEBUG2(printk(KERN_INFO "%s(): PCI data struct not found. "
+-                                      "pcir_adr=%x.\n",
+-                                      __func__, pcir_adr);)
++              /* Locate PCI data structure. */
++              pcids = pcihdr +
++                  ((qla2x00_read_flash_byte(ha, pcihdr + 0x19) << 8) |
++                      qla2x00_read_flash_byte(ha, pcihdr + 0x18));
++
++              /* Validate signature of PCI data structure. */
++              if (qla2x00_read_flash_byte(ha, pcids) != 'P' ||
++                  qla2x00_read_flash_byte(ha, pcids + 0x1) != 'C' ||
++                  qla2x00_read_flash_byte(ha, pcids + 0x2) != 'I' ||
++                  qla2x00_read_flash_byte(ha, pcids + 0x3) != 'R') {
++                      /* Incorrect header. */
++                      DEBUG2(printk("%s(): PCI data struct not found "
++                          "pcir_adr=%x.\n",
++                          __func__, pcids));
+                       ret = QL_STATUS_ERROR;
+                       break;
+               }
+-      } while (--loop_cnt);
+-      qla2x00_flash_disable(ha);
++              /* Read version */
++              code_type = qla2x00_read_flash_byte(ha, pcids + 0x14);
++              switch (code_type) {
++              case ROM_CODE_TYPE_BIOS:
++                      /* Intel x86, PC-AT compatible. */
++                      set_bit(ROM_CODE_TYPE_BIOS, &ha->code_types);
++                      ha->bios_revision[0] =
++                          qla2x00_read_flash_byte(ha, pcids + 0x12);
++                      ha->bios_revision[1] =
++                          qla2x00_read_flash_byte(ha, pcids + 0x13);
++                      DEBUG3(printk("%s(): read BIOS %d.%d.\n", __func__,
++                          ha->bios_revision[1], ha->bios_revision[0]));
++                      break;
++              case ROM_CODE_TYPE_FCODE:
++                      /* Open Firmware standard for PCI (FCode). */
++                      /* Eeeewww... */
++                      if (qla2x00_get_fcode_version(ha, pcids) ==
++                          QL_STATUS_SUCCESS)
++                              set_bit(ROM_CODE_TYPE_FCODE, &ha->code_types);
++                      break;
++              case ROM_CODE_TYPE_EFI:
++                      /* Extensible Firmware Interface (EFI). */
++                      set_bit(ROM_CODE_TYPE_EFI, &ha->code_types);
++                      ha->efi_revision[0] =
++                          qla2x00_read_flash_byte(ha, pcids + 0x12);
++                      ha->efi_revision[1] =
++                          qla2x00_read_flash_byte(ha, pcids + 0x13);
++                      DEBUG3(printk("%s(): read EFI %d.%d.\n", __func__,
++                          ha->efi_revision[1], ha->efi_revision[0]));
++                      break;
++              default:
++                      DEBUG2(printk("%s(): Unrecognized code type %x at "
++                          "pcids %x.\n", __func__, code_type, pcids));
++                      break;
++              }
+-      LEAVE(__func__);
++              last_image = qla2x00_read_flash_byte(ha, pcids + 0x15) & BIT_7;
++
++              /* Locate next PCI expansion ROM. */
++              pcihdr += ((qla2x00_read_flash_byte(ha, pcids + 0x11) << 8) |
++                  qla2x00_read_flash_byte(ha, pcids + 0x10)) * 512;
++      } while (!last_image);
++
++      qla2x00_flash_disable(ha);
+       return (ret);
+ }
++/**
++ * qla2x00_get_fcode_version() - Determine an FCODE image's version.
++ * @ha: HA context
++ * @pcids: Pointer to the FCODE PCI data structure
++ *
++ * The process of retrieving the FCODE version information is at best
++ * described as interesting.
++ *
++ * Within the first 100h bytes of the image an ASCII string is present
++ * which contains several pieces of information including the FCODE
++ * version.  Unfortunately it seems the only reliable way to retrieve
++ * the version is by scanning for another sentinel within the string,
++ * the FCODE build date:
++ *
++ *    ... 2.00.02 10/17/02 ...
++ *
++ * Returns QL_STATUS_SUCCESS on successful retrieval of version.
++ */
++static uint16_t
++qla2x00_get_fcode_version(scsi_qla_host_t *ha, uint32_t pcids)
++{
++      uint16_t        ret = QL_STATUS_ERROR;
++      uint32_t        istart, iend, iter, vend;
++      uint8_t         do_next, *vbyte;
++
++      memset(ha->fcode_revision, 0, sizeof(ha->fcode_revision));
++
++      /* Skip the PCI data structure. */
++      istart = pcids +
++          ((qla2x00_read_flash_byte(ha, pcids + 0x0B) << 8) |
++              qla2x00_read_flash_byte(ha, pcids + 0x0A));
++      iend = istart + 0x100;
++      do {
++              /* Scan for the sentinel date string...eeewww. */
++              do_next = 0;
++              iter = istart;
++              while ((iter < iend) && !do_next) {
++                      iter++;
++                      if (qla2x00_read_flash_byte(ha, iter) == '/') {
++                              if (qla2x00_read_flash_byte(ha, iter + 2) ==
++                                  '/')
++                                      do_next++;
++                              else if (qla2x00_read_flash_byte(ha,
++                                  iter + 3) == '/')
++                                      do_next++;
++                      }
++              }
++              if (!do_next)
++                      break;
++
++              /* Backtrack to previous ' ' (space). */
++              do_next = 0;
++              while ((iter > istart) && !do_next) {
++                      iter--;
++                      if (qla2x00_read_flash_byte(ha, iter) == ' ')
++                              do_next++;
++              }
++              if (!do_next)
++                      break;
++
++              /* Mark end of version tag, and find previous ' ' (space). */
++              vend = iter - 1;
++              do_next = 0;
++              while ((iter > istart) && !do_next) {
++                      iter--;
++                      if (qla2x00_read_flash_byte(ha, iter) == ' ')
++                              do_next++;
++              }
++              if (!do_next)
++                      break;
++
++              /* Mark beginning of version tag, and copy data. */
++              iter++;
++              if ((vend - iter) &&
++                  ((vend - iter) < sizeof(ha->fcode_revision))) {
++                      vbyte = ha->fcode_revision;
++                      while (iter <= vend) {
++                              *vbyte++ = qla2x00_read_flash_byte(ha, iter);
++                              iter++;
++                      }
++                      ret = QL_STATUS_SUCCESS;        
++              }
++      } while (0);
++
++      return ret;
++}
++
+ #if defined(NOT_USED_FUNCTION)
+ /**
+  * qla2x00_get_flash_image() - Read image from flash chip.
+@@ -17608,6 +17295,8 @@ qla2x00_set_flash_image(scsi_qla_host_t 
+       /* Reset ISP chip. */
+       WRT_REG_WORD(&reg->ctrl_status, CSR_ISP_SOFT_RESET);
++      /* Delay after reset, for chip to recover. */
++      udelay(20);
+       qla2x00_flash_enable(ha);
+       do {    /* Loop once to provide quick error exit */
+@@ -17687,312 +17376,11 @@ qla2x00_set_flash_image(scsi_qla_host_t 
+       return (status);
+ }
+-#if USE_FLASH_DATABASE
+-#error Do not use FLASH DATABASE!!!!
+-
+-/*
+-* qla2x00_flash_enable_database
+-*      Setup flash for reading/writing.
+-*
+-* Input:
+-*      ha = adapter block pointer.
+-*/
+-STATIC void
+-qla2x00_flash_enable_database(scsi_qla_host_t *ha)
+-{
+-      device_reg_t *reg = ha->iobase;
+-
+-      /* Setup bit 16 of flash address. */
+-      WRT_REG_WORD(&reg->nvram, NV_SELECT);
+-
+-      /* Enable Flash Read/Write. */
+-      WRT_REG_WORD(&reg->ctrl_status, CSR_FLASH_ENABLE);
+-
+-      /* Read/Reset Command Sequence */
+-      qla2x00_write_flash_byte(ha, 0x5555, 0xaa);
+-      qla2x00_write_flash_byte(ha, 0x2aaa, 0x55);
+-      qla2x00_write_flash_byte(ha, 0x5555, 0xf0);
+-      qla2x00_read_flash_byte(ha, FLASH_DATABASE_0);
+-}
+-
+-/*
+-* qla2x00_flash_disable_database
+-*      Disable flash and allow RISC to run.
+-*
+-* Input:
+-*      ha = adapter block pointer.
+-*/
+-STATIC void
+-qla2x00_flash_disable_database(scsi_qla_host_t *ha)
+-{
+-      device_reg_t *reg = ha->iobase;
+-
+-      /* Restore chip registers. */
+-      WRT_REG_WORD(&reg->ctrl_status, 0);
+-      WRT_REG_WORD(&reg->nvram, 0);
+-}
+-
+-
+-/*
+-* qla2x00_get_database
+-*      Copies and converts flash database to driver database.
+-*      (may sleep)
+-*
+-* Input:
+-*      ha = adapter block pointer.
+-*
+-* Returns:
+-*      0 = success.
+-*/
+-STATIC uint8_t
+-qla2x00_get_database(scsi_qla_host_t *ha)
+-{
+-      flash_database_t *fptr;
+-      uint8_t          status = 1;
+-      uint32_t         addr;
+-      uint16_t         cnt;
+-      uint8_t          *bptr;
+-      uint8_t          checksum;
+-      uint32_t         b, t;
+-
+-      ENTER("qla2x00_get_database");
+-
+-      /* Default setup. */
+-      ha->flash_db = FLASH_DATABASE_0;
+-      ha->flash_seq = 0;
+-
+-      fptr = kmalloc(sizeof(flash_database_t), GFP_ATOMIC);
+-      if (!fptr) {
+-              printk(KERN_WARNING
+-                      "scsi(%d): Memory Allocation failed - flash mem",
+-                      (int)ha->host_no);
+-              ha->mem_err++;
+-              return (status);
+-      }
+-
+-      /* Enable Flash Read/Write. */
+-      qla2x00_flash_enable_database(ha);
+-
+-      /* 
+-       * Start with flash database with the highest sequence number. 
+-       */
+-      b = qla2x00_read_flash_byte(ha, FLASH_DATABASE_0);
+-      b |= qla2x00_read_flash_byte(ha, FLASH_DATABASE_0 + 1) << 8;
+-      b |= qla2x00_read_flash_byte(ha, FLASH_DATABASE_0 + 1) << 16;
+-      b |= qla2x00_read_flash_byte(ha, FLASH_DATABASE_0 + 1) << 24;
+-      t = qla2x00_read_flash_byte(ha, FLASH_DATABASE_1);
+-      t |= qla2x00_read_flash_byte(ha, FLASH_DATABASE_1 + 1) << 8;
+-      t |= qla2x00_read_flash_byte(ha, FLASH_DATABASE_1 + 1) << 16;
+-      t |= qla2x00_read_flash_byte(ha, FLASH_DATABASE_1 + 1) << 24;
+-      if (t > b) {
+-              ha->flash_db = FLASH_DATABASE_1;
+-      }
+-
+-      /* Select the flash database with the good checksum. */
+-      for (t = 0; t < 2; t++) {
+-              checksum = 0;
+-              addr = ha->flash_db;
+-              bptr = (uint8_t *)fptr;
+-              fptr->hdr.size = sizeof(flash_database_t);
+-
+-              /* Read flash database to driver. */
+-              for (cnt = 0; cnt < fptr->hdr.size; cnt++) {
+-                      *bptr = (uint8_t)qla2x00_read_flash_byte(ha, addr++);
+-                      checksum += *bptr++;
+-                      if (bptr == &fptr->hdr.spares[0] &&
+-                              (fptr->hdr.size > sizeof(flash_database_t) ||
+-                               fptr->hdr.size < sizeof(flash_hdr_t) ||
+-                               !fptr->hdr.version) ) {
+-
+-                              checksum = 1;
+-                              break;
+-                      }
+-              }
+-
+-              if (!checksum) {
+-                      status = 0;
+-                      break;
+-              }
+-              /* trying other database */
+-              if (ha->flash_db == FLASH_DATABASE_0) {
+-                      ha->flash_db = FLASH_DATABASE_1;
+-              } else {
+-                      ha->flash_db = FLASH_DATABASE_0;
+-              }
+-      }
+-
+-      if (!status) {
+-              ha->flash_seq = fptr->hdr.seq;
+-
+-              /* Convert flash database to driver database format. */
+-              if (fptr->hdr.size -= sizeof(flash_hdr_t)) {
+-                      for (cnt = 0; cnt < MAX_FIBRE_DEVICES; cnt++) {
+-                              ha->fc_db[cnt].name[0] =
+-                                              fptr->node[cnt].name[0];
+-                              ha->fc_db[cnt].name[1] =
+-                                              fptr->node[cnt].name[1];
+-                              /* UNKNOWN CODE!!! 
+-                              cnt,
+-                              ha->fc_db[cnt].name[1],
+-                              ha->fc_db[cnt].name[0]);
+-                              */
+-
+-                              ha->fc_db[cnt].loop_id = PORT_AVAILABLE;
+-                              ha->fc_db[cnt].flag = 0;  /* v2.19.05b3 */
+-                              if(!(fptr->hdr.size -= sizeof(flash_node_t)))
+-                                      break;
+-                      }
+-              }
+-      }
+-
+-      qla2x00_flash_disable_database(ha);
+-
+-      kfree(fptr);
+-
+-#if defined(QL_DEBUG_LEVEL_2) || defined(QL_DEBUG_LEVEL_3)
+-      if (status)
+-              printk("qla2x00_get_database: **** FAILED ****\n");
+-#endif
+-
+-      LEAVE("qla2x00_get_database");
+-
+-      return(status);
+-}
+-
+-/*
+-* qla2x00_save_database
+-*      Copies and converts driver database to flash database.
+-*      (may sleep)
+-*
+-* Input:
+-*      ha = adapter block pointer.
+-*
+-* Returns:
+-*      0 = success.
+-*/
+-STATIC uint8_t
+-qla2x00_save_database(scsi_qla_host_t *ha)
+-{
+-      flash_database_t *fptr;
+-      uint8_t          status = 1;
+-      uint32_t         addr;
+-      uint16_t         cnt;
+-      uint8_t          *bptr;
+-      uint8_t          checksum;
+-
+-      ENTER("qla2x00_save_database");
+-
+-      fptr = kmalloc(sizeof(flash_database_t), GFP_ATOMIC);
+-      if (!fptr) {
+-              printk(KERN_WARNING
+-                      "scsi(%d): Memory Allocation failed - flash mem",
+-                      (int)ha->host_no);
+-              ha->mem_err++;
+-              return (status);
+-      }
+-
+-      /* Enable Flash Read/Write. */
+-      qla2x00_flash_enable_database(ha);
+-
+-      fptr->hdr.seq = ++ha->flash_seq;
+-      fptr->hdr.version = FLASH_DATABASE_VERSION;
+-      fptr->hdr.size = sizeof(flash_hdr_t);
+-
+-      /* Copy and convert driver database to flash database. */
+-      for (cnt = 0; cnt < MAX_FIBRE_DEVICES; cnt++) {
+-              if (ha->fc_db[cnt].loop_id == PORT_UNUSED)
+-                      break;
+-              else {
+-                      fptr->node[cnt].name[0] = ha->fc_db[cnt].name[0];
+-                      fptr->node[cnt].name[1] = ha->fc_db[cnt].name[1];
+-                      fptr->hdr.size += sizeof(flash_node_t);
+-              }
+-      }
+-
+-      /* Calculate checksum. */
+-      checksum = 0;
+-      bptr = (uint8_t *)fptr;
+-      for (cnt = 0; cnt < fptr->hdr.size; cnt++)
+-              checksum += *bptr++;
+-      fptr->hdr.checksum = ~checksum + 1;
+-
+-      /* Setup next sector address for flash */
+-      if (ha->flash_db == FLASH_DATABASE_0)
+-              addr = FLASH_DATABASE_1;
+-      else
+-              addr = FLASH_DATABASE_0;
+-      ha->flash_db = addr;
+-
+-      /* Erase flash sector prior to write. */
+-      status = qla2x00_erase_flash_sector(ha, addr);
+-
+-      /* Write database to flash. */
+-      bptr = (uint8_t *)fptr;
+-      for (cnt = 0; cnt < fptr->hdr.size && !status; cnt++)
+-              status = qla2x00_program_flash_address(ha, addr++, *bptr++);
+-
+-      qla2x00_flash_disable_database(ha);
+-
+-      kfree(fptr);
+-
+-#if defined(QL_DEBUG_LEVEL_2) || defined(QL_DEBUG_LEVEL_3)
+-      if (status)
+-              printk("qla2x00_save_database: **** FAILED ****\n");
+-#endif
+-
+-      LEAVE("qla2x00_save_database");
+-
+-      return(status);
+-}
+-
+-#endif
+-
+-
+-/*
+- *qla2x00_add_initiator_device
+- *      This routine adds the initiator device to the list
+- *
+- * Input:
+- *      ha = adapter block pointer.
+- *      device = device data pointer.
+- *
+- * Returns:
+- *      0 = success, initiator added to the list
+- *      1 = Failed to allocate memory
+- */
+-static int
+-qla2x00_add_initiator_device(scsi_qla_host_t *ha, fcdev_t *device)
+-{
+-      int     ret;
+-      fc_initiator_t  *fcinitiator;
+-
+-      ret = 1;
+-      fcinitiator = kmalloc(sizeof(fc_initiator_t), GFP_ATOMIC);
+-      if (fcinitiator != NULL) {
+-              /* Setup initiator structure. */
+-              memset(fcinitiator, 0, sizeof(fc_initiator_t));
+-      
+-              memcpy(fcinitiator->node_name, device->name, WWN_SIZE);
+-              memcpy(fcinitiator->port_name, device->wwn, WWN_SIZE);
+-              fcinitiator->d_id.b24 = device->d_id.b24;
+-              fcinitiator->loop_id = device->loop_id;
+-              list_add_tail(&fcinitiator->list, &ha->fcinitiators);
+-              ret = 0;
+-      } else {
+-              printk(KERN_WARNING
+-                      "%s(): Memory Allocation failed - FCINITIATOR\n",
+-                      __func__);
+-      }
+-
+-      return (ret);
+-}
+-
+-
+ /*
+ * Declarations for load module
+ */
+ static  Scsi_Host_Template driver_template = QLA2100_LINUX_TEMPLATE;
+-#include "../scsi_module.c"
++#include "scsi_module.c"
+ /****************************************************************************/
+ /*                         Driver Debug Functions.                          */
+@@ -18004,11 +17392,10 @@ qla2x00_dump_buffer(uint8_t * b, uint32_
+       uint32_t cnt;
+       uint8_t c;
+-      printk(" 0   1   2   3   4   5   6   7   8   9 "
+-                      "       Ah  Bh  Ch  Dh  Eh  Fh\n");
+-      printk("---------------------------------------"
+-                      "------------------------\n");
+-
++      printk(" 0   1   2   3   4   5   6   7   8   9  "
++          "Ah  Bh  Ch  Dh  Eh  Fh\n");
++      printk("----------------------------------------"
++          "----------------------\n");
+       for (cnt = 0; cnt < size;) {
+               c = *b++;
+               printk("%02x",(uint32_t) c);
+@@ -18018,8 +17405,7 @@ qla2x00_dump_buffer(uint8_t * b, uint32_
+               else
+                       printk("  ");
+       }
+-      if (cnt % 16)
+-              printk("\n");
++      printk("\n");
+ }
+ /**************************************************************************
+@@ -18028,7 +17414,7 @@ qla2x00_dump_buffer(uint8_t * b, uint32_
+  *   Input     
+  *     cmd : Scsi_Cmnd
+  **************************************************************************/
+-static void
++void
+ qla2x00_print_scsi_cmd(Scsi_Cmnd * cmd) 
+ {
+       struct scsi_qla_host *ha;
+@@ -18083,7 +17469,7 @@ qla2x00_print_scsi_cmd(Scsi_Cmnd * cmd) 
+  * Input
+  *      q: lun queue   
+  */ 
+-static void 
++void 
+ qla2x00_print_q_info(struct os_lun *q) 
+ {
+       printk("Queue info: flags=0x%lx\n", q->q_flag);
+@@ -18100,7 +17486,7 @@ qla2x00_print_q_info(struct os_lun *q) 
+  *       wd_size = word size 8, 16, 32 or 64 bits
+  *       count   = number of words.
+  */
+-static void
++void
+ qla2x00_formatted_dump_buffer(char *string, uint8_t * buffer, 
+                               uint8_t wd_size, uint32_t count) 
+ {
+@@ -18231,7 +17617,7 @@ qla2x00_panic(char *cp, struct Scsi_Host
+ *   qla2x00_dump_requests
+ *
+ **************************************************************************/
+-static void
++void
+ qla2x00_dump_requests(scsi_qla_host_t *ha) 
+ {
+@@ -18418,6 +17804,7 @@ qla2x00_get_tokens(char *line, char **ar
+ }
+ #if VSA
++/* XXX: There is no fc_db member in HA. */
+ /*
+  * qla2x00_get_vsa_opt_from_config
+  *      Get VSA option from the configuration parameters.
+@@ -18506,8 +17893,6 @@ qla2x00_cfg_persistent_binding(scsi_qla_
+               rval = qla2x00_get_prop_16chars(ha, propbuf, pnn, cmdline);
+               if (rval != 0)
+                       pnn = NULL;
+-              if (ha->binding_type == BIND_BY_NODE_NAME && rval != 0)
+-                      continue;
+               tq = qla2x00_tgt_alloc(ha, tgt);
+               if (tq == NULL) {
+@@ -18517,13 +17902,8 @@ qla2x00_cfg_persistent_binding(scsi_qla_
+                       continue;
+               }
+-              ha->fc_db[tgt].loop_id = PORT_AVAILABLE;
+-              ha->fc_db[tgt].flag = 0;  /* v2.19.05b3 */
+-              ha->fc_db[tgt].flag |= DEV_CONFIGURED;
+-
+               if (ppn != NULL) {
+                       memcpy(tq->port_name, ppn, WWN_SIZE);
+-                      memcpy(ha->fc_db[tgt].wwn, ppn, WWN_SIZE);
+               }
+               if (pd_id != NULL) {
+                       /*
+@@ -18534,11 +17914,9 @@ qla2x00_cfg_persistent_binding(scsi_qla_
+                       pd_id->r.d_id[1] = portid[1];
+                       pd_id->r.d_id[2] = portid[0];
+                       tq->d_id.b24 = pd_id->b24;
+-                      ha->fc_db[tgt].d_id.b24 = pd_id->b24;
+               }
+               if (pnn != NULL) {
+                       memcpy(tq->node_name, pnn, WWN_SIZE);
+-                      memcpy(ha->fc_db[tgt].name, pnn, WWN_SIZE);
+               }
+               DEBUG(printk("Target %03d - configured by user: ",tgt);)
+@@ -18556,20 +17934,11 @@ qla2x00_cfg_persistent_binding(scsi_qla_
+                                       tgt,
+                                       pd_id->b24);)
+                               break;
+-
+-                      case BIND_BY_NODE_NAME:
+-                              DEBUG(printk("**bind tgt by port-%03d="
+-                                      "%02x%02x%02x%02x%02x%02x%02x%02x\n",
+-                                      tgt,
+-                                      pnn[0], pnn[1], pnn[2], pnn[3],
+-                                      pnn[4], pnn[5], pnn[6], pnn[7]);)
+-                              break;
+               }
+               /* look for VSA */
+ #if VSA
+               qla2x00_get_vsa_opt_from_config(ha, tgt, dev_no);
+ #endif
+-
+       }
+       LEAVE(__func__);
+@@ -18580,7 +17949,7 @@ qla2x00_cfg_persistent_binding(scsi_qla_
+  * kmem_zalloc
+  * Allocate and zero out the block of memory
+  */
+-static inline void *
++inline void *
+ kmem_zalloc( int siz, int code, int id) 
+ {
+       uint8_t *bp;
+@@ -18627,6 +17996,7 @@ kmem_free(void *ptr) 
+ /*
+  * Declarations for failover
+  */
++
+ #include "qla_cfg.c"
+ #include "qla_fo.c"
+@@ -18646,18 +18016,10 @@ static struct Scsi_Host *apidev_host = 0
+ static int 
+ apidev_open(struct inode *inode, struct file *file) 
+ {
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+       DEBUG9(printk(KERN_INFO
+                       "%s(): open MAJOR number = %d, MINOR number = %d\n",
+                       __func__,
+                       MAJOR(inode->i_rdev), MINOR(inode->i_rdev));)
+-#else
+-      DEBUG9(printk(KERN_INFO 
+-                      "%s(): open MAJOR number = %d, MINOR number = %d\n", 
+-                      __func__,
+-                      major(inode->i_rdev), minor(inode->i_rdev));)
+-#endif
+-
+       return 0;
+ }
+@@ -18684,14 +18046,20 @@ apidev_ioctl(struct inode *inode, struct
+ }
+ static struct file_operations apidev_fops = {
+-       ioctl:
+-               apidev_ioctl,
+-       open:
+-               apidev_open,
+-       release:
+-               apidev_close
++      owner:
++              THIS_MODULE,
++      ioctl:
++              apidev_ioctl,
++      open:
++              apidev_open,
++      release:
++              apidev_close
+ };
++#if defined(QLA_CONFIG_COMPAT)
++#include "qla_ppc64.c"
++#endif
++
+ static int 
+ apidev_init(struct Scsi_Host *host) 
+ {
+@@ -18717,22 +18085,19 @@ apidev_init(struct Scsi_Host *host) 
+                       host->hostt->proc_dir->name, 
+                       APIDEV_NODE, apidev_major);)
+-#ifndef __VMWARE__
+-           // XXX: Fix this when proc_mknod works again on main!!!
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+       proc_mknod(APIDEV_NODE, 0777+S_IFCHR, host->hostt->proc_dir,
+                       (kdev_t)MKDEV(apidev_major, 0));
+-#else
+-      proc_mknod(APIDEV_NODE, 0777+S_IFCHR, host->hostt->proc_dir,
+-                      (kdev_t)mk_kdev(apidev_major, 0));
++
++#if defined(QLA_CONFIG_COMPAT)
++      apidev_init_ppc64();
+ #endif
+-#endif //__VMWARE__
+       return 0;
+ }
+ static int apidev_cleanup() 
+ {
++
+       if (!apidev_host)
+               return 0;
+@@ -18740,6 +18105,10 @@ static int apidev_cleanup() 
+       remove_proc_entry(APIDEV_NODE,apidev_host->hostt->proc_dir);
+       apidev_host = 0;
++#if defined(QLA_CONFIG_COMPAT)
++      apidev_cleanup_ppc64();
++#endif
++
+       return 0;
+ }
+ #endif /* APIDEV */
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla2x00.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla2x00.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla2x00.h    2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla2x00.h 2004-04-22 19:42:53.000000000 -0700
+@@ -2,7 +2,7 @@
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.4.x
+-* Copyright (C) 2003 Qlogic Corporation
++* Copyright (C) 2003 QLogic Corporation
+ * (www.qlogic.com)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+@@ -45,12 +45,15 @@ extern "C" {
+ /* #define QL_DEBUG_LEVEL_10 */ /* Output IOCTL error msgs */
+ /* #define QL_DEBUG_LEVEL_11 */ /* Output Mbx Cmd trace msgs */
+ /* #define QL_DEBUG_LEVEL_12 */ /* Output IP trace msgs */
++/* #define QL_DEBUG_LEVEL_13 */ /* Output fdmi function trace msgs */
+ #define QL_DEBUG_CONSOLE            /* Output to console */
+ #include <asm/bitops.h>
+ #include <asm/semaphore.h>
++#define QLOGIC_COMPANY_NAME   "QLogic Corporation"
++
+ /*
+  * Data bit definitions.
+  */
+@@ -87,18 +90,14 @@ extern "C" {
+ #define BIT_30  0x40000000
+ #define BIT_31  0x80000000
+-#define LS_64BITS(x)  ((uint32_t)(0xffffffff & ((u64)(x))))
+-#define MS_64BITS(x)  ((uint32_t)(0xffffffff & (((u64)(x))>>16>>16)))
++#define LSB(x)        ((uint8_t)(x))
++#define MSB(x)        ((uint8_t)((uint16_t)(x) >> 8))
+-#define MSB(x)          (uint8_t)(((uint16_t)(x) >> 8) & 0xff)
+-#define LSB(x)          (uint8_t)(x & 0xff)
+-#define MSW(x)          (uint16_t)(((uint32_t)(x) >> 16) & 0xffff)
+-#define LSW(x)          (uint16_t)(x & 0xffff)
+-#define QL21_64BITS_3RDWD(x)   ((uint16_t) (( (x) >> 16) >> 16) & 0xffff)
+-#define QL21_64BITS_4THWD(x)   ((uint16_t) ((( (x) >>16)>>16)>>16) & 0xffff)
++#define LSW(x)        ((uint16_t)(x))
++#define MSW(x)        ((uint16_t)((uint32_t)(x) >> 16))
+-#define LSD(x)  ((uint32_t)((uint64_t)(x)))
+-#define MSD(x)  ((uint32_t)((uint64_t)(x) >> 32))
++#define LSD(x)        ((uint32_t)((uint64_t)(x)))
++#define MSD(x)        ((uint32_t)((((uint64_t)(x)) >> 16) >> 16))
+@@ -143,7 +142,7 @@ typedef char BOOL;
+  * I/O register
+ */
+ /* #define MEMORY_MAPPED_IO  */    /* Enable memory mapped I/O */
+-#undef MEMORY_MAPPED_IO            /* Disable memory mapped I/O */
++#define MEMORY_MAPPED_IO  1
+ #if defined(MEMORY_MAPPED_IO)
+ #define RD_REG_BYTE(addr)         readb(addr)
+@@ -164,6 +163,10 @@ typedef char BOOL;
+  * Fibre Channel device definitions.
+  */
+ #define WWN_SIZE              8       /* Size of WWPN, WWN & WWNN */
++#if defined(ISP200)
++#define MAX_FABRIC_DEVICES    8  /* Fabric Devices */ 
++#define MAX_LLOOP_DEVICES     16 /* Local Loop Devices */
++#endif
+ #define MAX_FIBRE_DEVICES     256
+ #define MAX_FIBRE_LUNS        256
+ #define       MAX_RSCN_COUNT          10
+@@ -186,14 +189,25 @@ typedef char BOOL;
+ /*
+  * Fibre Channel device definitions.
+  */
++#if defined(EXTENDED_IDS)
++#define SNS_LAST_LOOP_ID      0x7ff
++#else
++#define SNS_LAST_LOOP_ID      0xfe
++#endif
++
+ #define LAST_LOCAL_LOOP_ID  0x7d
+ #define SNS_FL_PORT         0x7e
+ #define FABRIC_CONTROLLER   0x7f
+ #define SIMPLE_NAME_SERVER  0x80
+ #define SNS_FIRST_LOOP_ID   0x81
+-#define LAST_SNS_LOOP_ID    0xfe
+ #define MANAGEMENT_SERVER   0xfe
+ #define BROADCAST           0xff
++
++#define RESERVED_LOOP_ID(x)   ((x > LAST_LOCAL_LOOP_ID && \
++                               x < SNS_FIRST_LOOP_ID) || \
++                               x == MANAGEMENT_SERVER || \
++                               x == BROADCAST)
++
+ #define SNS_ACCEPT          0x0280      /* 8002 swapped */
+ #define SNS_REJECT          0x0180      /* 8001 swapped */
+@@ -214,10 +228,10 @@ typedef char BOOL;
+ #define       LOOP_DOWN_RESET         (LOOP_DOWN_TIME - 30)
+ /* Maximum outstanding commands in ISP queues (1-65535) */
+-#define MAX_OUTSTANDING_COMMANDS   1024
++#define MAX_OUTSTANDING_COMMANDS   2048
+ /* ISP request and response entry counts (37-65535) */
+-#define REQUEST_ENTRY_CNT       128     /* Number of request entries. */
++#define REQUEST_ENTRY_CNT       512     /* Number of request entries. */
+ #if defined(ISP2100) || defined(ISP2200)
+ #define RESPONSE_ENTRY_CNT      64      /* Number of response entries.*/
+ #else
+@@ -243,16 +257,12 @@ typedef char BOOL;
+ #define SGDATA_PER_REQUEST    2 
+ #define SGDATA_PER_CONT               7
+-#define SG_SEGMENTS   (SGDATA_PER_REQUEST + (SGDATA_PER_CONT * REQUEST_ENTRY_CNT - 2))     
+-
+ /*
+  * SCSI Request Block 
+  */
+ typedef struct srb
+ {
+     struct list_head   list;
+-    struct srb  *s_next;             /* (4) Next block on LU queue */
+-    struct srb  *s_prev;             /* (4) Previous block on LU queue */
+     Scsi_Cmnd  *cmd;                 /* Linux SCSI command pkt */
+     struct scsi_qla_host *ha;         /* ha this SP is queued on */
+     uint8_t     more_cdb[4];         /* For 16 bytes CDB pass thru cmd since
+@@ -288,10 +298,15 @@ typedef struct srb
+       /* Target/LUN queue pointers. */
+     struct os_tgt             *tgt_queue;     /* ptr to visible ha's target */
+     struct os_lun             *lun_queue;     /* ptr to visible ha's lun */
+-      struct fc_lun           *fclun;         /* FC LUN context pointer. */
++    struct fc_lun             *fclun;         /* FC LUN context pointer. */
+       /* Raw completion info for use by failover ? */
+     uint8_t   fo_retry_cnt;   /* Retry count this request */
+     uint8_t   err_id;         /* error id */
++#define SRB_ERR_PORT       1    /* Request failed because "port down" */
++#define SRB_ERR_LOOP       2    /* Request failed because "loop down" */
++#define SRB_ERR_DEVICE     3    /* Request failed because "device error" */
++#define SRB_ERR_OTHER      4
++
+     uint8_t   cmd_length;             /* command length */
+     uint8_t   qfull_retry_count;
+@@ -301,7 +316,7 @@ typedef struct srb
+     u_long      e_start;             /* jiffies at start of extend timeout */
+     u_long      r_start;             /* jiffies at start of request */
+     u_long      u_start;             /* jiffies when sent to F/W    */
+-    u_long      f_start;            /*ra 10/29/01*/ /*jiffies when put in failov                                      er queue*/
++    u_long      f_start;            /*ra 10/29/01*/ /*jiffies when put in failover queue*/
+     uint32_t    resid;              /* Residual transfer length */
+     uint16_t    sense_len;          /* Sense data length */
+     uint32_t    request_sense_length;
+@@ -329,6 +344,8 @@ typedef struct srb
+ #define       SRB_ISP_STARTED      BIT_11     /* Command sent to ISP. */
+ #define       SRB_ISP_COMPLETED    BIT_12     /* ISP finished with command */
++#define       SRB_FDMI_CMD         BIT_13     /* MSIOCB/non-ioctl command. */
++#define       SRB_TAPE                BIT_14  /* TAPE command. */
+ /*
+@@ -440,7 +457,7 @@ typedef volatile struct
+ #else
+ /*
+- *  I/O Register Set structure definitions for ISP2300.
++ *  I/O Register Set structure definitions for ISP2300/ISP200.
+  */
+ typedef volatile struct
+ {
+@@ -597,12 +614,23 @@ typedef struct {
+ #define MBS_TEST_FAILED     0x4003      /* Test Failed. */
+ #define MBS_CMD_ERR         0x4005      /* Command Error. */
+ #define MBS_CMD_PARAM_ERR   0x4006      /* Command Parameter Error. */
++#define MBS_PORT_ID_USED      0x4007
++#define MBS_LOOP_ID_USED      0x4008
++#define MBS_ALL_IDS_IN_USE    0x4009 /* For ISP200 if host tries to log
++                                        into more than 8 targets */
++#define MBS_NOT_LOGGED_IN     0x400A
++
+ #define MBS_FATAL_ERROR     0xF000      /* Command Fatal Error. */
+ #define MBS_FIRMWARE_ALIVE          0x0000 
+ #define MBS_COMMAND_COMPLETE        0x4000 
+ #define MBS_INVALID_COMMAND         0x4001 
++/* F/W will return mbx0:0x4005 and mbx1:0x16 if
++ * HBA tries to log into a target through FL Port
++ */ 
++#define MBS_SC_TOPOLOGY_ERR   0x16  
++
+ /* QLogic subroutine status definitions */
+ #define QL_STATUS_SUCCESS           0
+ #define QL_STATUS_ERROR             1
+@@ -632,11 +660,17 @@ typedef struct {
+ #define MBA_RSCN_UPDATE         MBA_SCR_UPDATE
+ #define MBA_SCSI_COMPLETION     0x8020  /* SCSI Command Complete. */
+ #define MBA_CTIO_COMPLETION     0x8021  /* CTIO Complete. */
+-#if !defined(ISP2100)
+ #define MBA_LINK_MODE_UP        0x8030  /* FC Link Mode UP. */
+ #define MBA_UPDATE_CONFIG       0x8036  /* FC Update Configuration. */
+ #define MBA_ZIO_UPDATE          0x8040  /* ZIO-Process response queue */
+-#endif
++#define RIO_MBS_CMD_CMP_1_16  0x8031  /* Scsi command complete */
++#define RIO_MBS_CMD_CMP_2_16  0x8032  /* Scsi command complete */
++#define RIO_MBS_CMD_CMP_3_16  0x8033  /* Scsi command complete */
++#define RIO_MBS_CMD_CMP_4_16  0x8034  /* Scsi command complete */
++#define RIO_MBS_CMD_CMP_5_16  0x8035  /* Scsi command complete */
++#define RIO_RESPONSE_UPDATE   0x8040  /* Scsi command complete but check iocb */
++
++
+ /*
+  * ISP mailbox commands
+@@ -689,7 +723,7 @@ typedef struct {
+ #define       MBC_INITIALIZE_RECEIVE_QUEUE    0x77    /* Initialize receive queue */
+ #define       MBC_SEND_FARP_REQ_COMMAND       0x78    /* FARP request. */
+ #define       MBC_SEND_FARP_REPLY_COMMAND     0x79    /* FARP reply. */
+-#define       MBC_PORT_LOOP_NAME_LIST         0x7C    /* Get port/node name list. */
++#define       MBC_GET_ID_LIST                 0x7C    /* Get Port ID list. */
+ #define       MBC_SEND_LFA_COMMAND            0x7D    /* Send Loop Fabric Address */
+ #define       MBC_LUN_RESET                   0x7E    /* Send LUN reset */
+@@ -1203,10 +1237,12 @@ struct qla2x00_hba_features
+ /* For future QLA2XXX */
+ #define NVRAM_MOD_OFFSET        200 /* Model Number offset: 200-215 */
+ #define BINZERO                 "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+-#define NVRAM_MODEL_SIZE        16 /* 16 bytes reserved for model_num string*/
+ #endif
++#define NVRAM_HW_ID_SIZE        16 /* 16 bytes reserved for hw_id string*/
++#define NVRAM_MODEL_SIZE        16 /* 16 bytes reserved for model_num string*/
++
+ #if !defined(ISP2100)
+ /*
+@@ -1283,7 +1319,10 @@ typedef struct
+     uint8_t    link_down_timeout;             
+     /* Offset 112 */
+-    uint8_t    reserved_7_2[38];
++    uint8_t    hw_id[16];
++
++    /* Offset 128 */
++    uint8_t    reserved_7_2[22];
+     /* Offset 150 */
+     uint16_t    reserved_8[25];
+@@ -1404,8 +1443,12 @@ typedef struct
+     uint8_t  sys_define;                /* System defined. */
+     uint8_t  entry_status;              /* Entry Status. */
+     uint32_t handle;                    /* System handle. */
++#if defined(EXTENDED_IDS)
++    uint16_t  target;                    /* SCSI ID */
++#else
+     uint8_t  reserved;
+     uint8_t  target;                    /* SCSI ID */
++#endif
+     uint16_t lun;                       /* SCSI LUN */
+     uint16_t control_flags;             /* Control flags. */
+ #define CF_HEAD_TAG           BIT_1
+@@ -1437,8 +1480,12 @@ typedef struct
+     uint8_t  sys_define;                /* System defined. */
+     uint8_t  entry_status;              /* Entry Status. */
+     uint32_t handle;                    /* System handle. */
++#if defined(EXTENDED_IDS)
++    uint16_t  target;                    /* SCSI ID */
++#else
+     uint8_t  reserved;
+     uint8_t  target;                    /* SCSI ID */
++#endif
+     uint16_t lun;                       /* SCSI LUN */
+     uint16_t control_flags;             /* Control flags. */
+     uint16_t reserved_1;
+@@ -1554,8 +1601,12 @@ typedef struct
+     uint8_t  sys_define;                /* System defined. */
+     uint8_t  entry_status;              /* Entry Status. */
+     uint32_t sys_define_2;              /* System defined. */
++#if defined(EXTENDED_IDS)
++    uint16_t  target;                    /* SCSI ID */
++#else
+     uint8_t  reserved;
+     uint8_t  target;                    /* SCSI ID */
++#endif
+     uint8_t  modifier;                  /* Modifier (7-0). */
+         #define MK_SYNC_ID_LUN      0   /* Synchronize ID/LUN */
+         #define MK_SYNC_ID          1   /* Synchronize ID */
+@@ -1633,8 +1684,12 @@ typedef struct
+     uint32_t sys_define_2;              /* System defined. */
+     uint8_t  reserved_8;
+     uint8_t  initiator_id;
++#if defined(EXTENDED_IDS)
++    uint16_t  target;                    
++#else
+     uint8_t  reserved_1;
+     uint8_t  target_id;
++#endif
+     uint32_t reserved_2;
+     uint16_t status;
+     uint16_t task_flags;
+@@ -1657,8 +1712,12 @@ typedef struct
+     uint32_t sys_define_2;              /* System defined. */
+     uint8_t  reserved_8;
+     uint8_t  initiator_id;
++#if defined(EXTENDED_IDS)
++    uint16_t  target;                    
++#else
+     uint8_t  reserved_1;
+     uint8_t  target_id;
++#endif
+     uint16_t flags;
+     uint16_t reserved_2;
+     uint16_t status;
+@@ -1678,8 +1737,12 @@ typedef struct
+     uint8_t  sys_define;                /* System defined. */
+     uint8_t  entry_status;              /* Entry Status. */
+     uint32_t sys_define_2;              /* System defined. */
++#if defined(EXTENDED_IDS)
++    uint16_t initiator_id;
++#else
+     uint8_t  reserved_8;
+     uint8_t  initiator_id;
++#endif
+     uint16_t exchange_id;
+     uint16_t flags;
+     uint16_t status;
+@@ -1707,8 +1770,12 @@ typedef struct
+     uint8_t  sys_define;                /* System defined. */
+     uint8_t  entry_status;              /* Entry Status. */
+     uint32_t sys_define_2;              /* System defined. */
++#if defined(EXTENDED_IDS)
++    uint16_t initiator_id;
++#else
+     uint8_t  reserved_8;
+     uint8_t  initiator_id;
++#endif
+     uint16_t exchange_id;
+     uint16_t flags;
+     uint16_t status;
+@@ -1738,8 +1805,12 @@ typedef struct
+     uint8_t  sys_define;                /* System defined. */
+     uint8_t  entry_status;              /* Entry Status. */
+     uint32_t sys_define_2;              /* System defined. */
++#if defined(EXTENDED_IDS)
++    uint16_t initiator_id;
++#else
+     uint8_t  reserved_8;
+     uint8_t  initiator_id;
++#endif
+     uint16_t exchange_id;
+     uint16_t flags;
+     uint16_t status;
+@@ -1763,8 +1834,12 @@ typedef struct
+     uint8_t  sys_define;                /* System defined. */
+     uint8_t  entry_status;              /* Entry Status. */
+     uint32_t sys_define_2;              /* System defined. */
++#if defined(EXTENDED_IDS)
++    uint16_t initiator_id;
++#else
+     uint8_t  reserved_8;
+     uint8_t  initiator_id;
++#endif
+     uint16_t exchange_id;
+     uint16_t flags;
+     uint16_t status;
+@@ -1792,8 +1867,12 @@ typedef struct
+     uint8_t  sys_define;                /* System defined. */
+     uint8_t  entry_status;              /* Entry Status. */
+     uint32_t sys_define_2;              /* System defined. */
++#if defined(EXTENDED_IDS)
++    uint16_t initiator_id;
++#else
+     uint8_t  reserved_8;
+     uint8_t  initiator_id;
++#endif
+     uint16_t exchange_id;
+     uint16_t flags;
+     uint16_t status;
+@@ -1883,10 +1962,15 @@ typedef struct
+     uint8_t  sys_define;                /* System defined. */
+     uint8_t  entry_status;              /* Entry Status. */
+     uint32_t handle1;                   /* System handle. */
++#if defined(EXTENDED_IDS)
++    uint16_t loop_id;
++#else
+     uint8_t  reserved;
+     uint8_t  loop_id;
++#endif
+     uint16_t status;
+     uint16_t control_flags;             /* Control flags. */
++#define CF_ELS_PASSTHRU               BIT_15
+     uint16_t reserved2;
+     uint16_t timeout;
+     uint16_t cmd_dsd_count;
+@@ -1904,6 +1988,31 @@ typedef struct
+     uint32_t dseg_rsp_length;             /* Data segment 1 length. */
+ } ms_iocb_entry_t;
++/* 4.15
++ * RIO Type 1 IOCB response
++ */
++struct rio_iocb_type1_entry
++{
++    uint8_t  entry_type;                /* Entry type. */
++        #define RIO_IOCB_TYPE1 0x21       /*  IO Completion IOCB */
++    uint8_t  entry_count;               /* Entry count. */
++    uint8_t  handle_count;              /* # of valid handles. */
++    uint8_t  entry_status;              /* Entry Status. */
++    uint32_t handle[14];              /* handles finished */
++}; 
++
++/* 4.16
++ * RIO Type 2 IOCB response
++ */
++struct rio_iocb_type2_entry
++{
++    uint8_t  entry_type;                /* Entry type. */
++        #define RIO_IOCB_TYPE2 0x22       /*  IO Completion IOCB */
++    uint8_t  entry_count;               /* Entry count. */
++    uint8_t  handle_count;              /* # of valid handles. */
++    uint8_t  entry_status;              /* Entry Status. */
++    uint16_t handle[29];              /* handles finished */
++}; 
+ /*
+  * ISP request and response queue entry sizes
+@@ -1941,11 +2050,8 @@ typedef struct
+ #define SS_RESIDUAL_UNDER       BIT_11
+ #define SS_RESIDUAL_OVER        BIT_10
+ #define SS_SENSE_LEN_VALID      BIT_9
+-#if defined(ISP2100)
+ #define SS_RESIDUAL_LEN_VALID   BIT_8
+-#else
+ #define SS_RESPONSE_INFO_LEN_VALID BIT_8
+-#endif
+ #define SS_RESERVE_CONFLICT     (BIT_4 | BIT_3)
+ #define SS_BUSY_CONDITION       BIT_3
+@@ -1994,36 +2100,18 @@ typedef union {
+       }b;
+ } port_id_t;
+-typedef struct
+-{
+-    port_id_t d_id;
+-    uint8_t   name[WWN_SIZE];
+-    uint8_t   wwn[WWN_SIZE];          /* port name */
+-    uint16_t  loop_id;
+-    uint16_t   flag;
+-  /* flags bits defined as follows */
+-#define DEV_PUBLIC          BIT_0
+-#define DEV_LUNMASK_SET     BIT_1  /* some LUNs masked for this device */
+-#define       DEV_TAPE_DEVICE         BIT_2
+-#define       DEV_RELOGIN             BIT_3
+-#define       DEV_PORT_DOWN       BIT_4
+-#define       DEV_CONFIGURED          BIT_5
+-#define       DEV_ABSENCE             BIT_6
+-#define       DEV_RETURN              BIT_7
+-#define       DEV_INITIATOR           BIT_8
+-#define       DEV_FLAG_VSA            BIT_9
+-      int                     port_login_retry_count;
+-    uint8_t  port_timer;
+-}fcdev_t;
++/*
++ * Switch info gathering structure.
++ */
++typedef struct {
++      port_id_t d_id;
++      uint8_t node_name[WWN_SIZE];
++      uint8_t port_name[WWN_SIZE];
++      uint32_t type;
++#define SW_TYPE_SCSI  BIT_0
++#define SW_TYPE_IP    BIT_1
++} sw_info_t;
+-/* New device name list struct; used in configure_fabric. */
+-struct new_dev {
+-    port_id_t  d_id;
+-    uint8_t    name[WWN_SIZE];                /* node name */
+-    uint8_t    wwn[WWN_SIZE];          /* port name */
+-    uint16_t   ignore;
+-};
+-#define LOGOUT_PERFORMED  0x01
+ /*
+  * Inquiry command structure.
+  */
+@@ -2038,6 +2126,26 @@ typedef struct {
+       uint8_t inq[INQ_DATA_SIZE];
+ } inq_cmd_rsp_t;
++#define VITAL_PRODUCT_DATA_SIZE 32
++#define INQ_EVPD_SET  1
++#define INQ_DEV_IDEN_PAGE  0x83       
++#define WWLUN_SIZE    32      
++
++typedef struct {
++      union {
++              cmd_a64_entry_t cmd;
++              sts_entry_t rsp;
++      } p;
++      uint8_t inq[VITAL_PRODUCT_DATA_SIZE];
++} evpd_inq_cmd_rsp_t;
++
++typedef struct {
++      union {
++              cmd_a64_entry_t cmd;
++              sts_entry_t rsp;
++      } p;
++} tur_cmd_rsp_t;
++
+ /*
+  * Report LUN command structure.
+  */
+@@ -2092,7 +2200,7 @@ typedef struct os_tgt {
+       atomic_t        q_timer;        /* suspend timer */
+       unsigned long   q_flags;           /* suspend flags */
+ #define       TGT_SUSPENDED           1
+-#define       TGT_UNSUSPENDED         2
++#define       TGT_RETRY_CMDS          2
+ } os_tgt_t;
+ /*
+@@ -2141,32 +2249,45 @@ typedef struct lun_bit_mask {
+ } lun_bit_mask_t;
+ /*
++ * Fibre channel port type.
++ */
++ typedef enum {
++      FCT_UNKNOWN,
++      FCT_RSCN,
++      FCT_SWITCH,
++      FCT_BROADCAST,
++      FCT_INITIATOR,
++      FCT_TARGET
++} fc_port_type_t;
++
++/*
+  * Fibre channel port structure.
+  */
+ typedef struct fc_port {
+-      struct fc_port          *next;
+-      struct fc_lun           *fclun;
++      struct list_head list;
++      struct list_head fcluns;
++
+       struct scsi_qla_host    *ha;
+       struct scsi_qla_host    *vis_ha; /* only used when suspending lun */
+       port_id_t               d_id;
+       uint16_t                loop_id;
+       uint16_t                old_loop_id;
+       int16_t                 lun_cnt;
+-      int16_t                 dev_id; /* index in fc_dev table */
++      uint16_t                dev_id;
+ #define FC_NO_LOOP_ID         0x100
+       uint8_t                 node_name[WWN_SIZE];    /* Big Endian. */
+       uint8_t                 port_name[WWN_SIZE];    /* Big Endian. */
+       uint8_t                 mp_byte;        /* multi-path byte */
+       uint8_t                 cur_path;       /* current path id */
+       int                     port_login_retry_count;
+-      int             login_retry;
+-      atomic_t                state;          /* port state */
+-#define FC_DEVICE_DEAD                1
+-#define FC_DEVICE_LOST                2
+-#define FC_ONLINE             3
+-#define FC_LOGIN_NEEDED               4
++      int                     login_retry;
++      atomic_t                state;          /* state for I/O routing */
++#define FC_DEVICE_DEAD                1               /* Device has been missing for the expired time */
++                                                                      /* "port timeout" */
++#define FC_DEVICE_LOST                2               /* Device is missing */
++#define FC_ONLINE             3               /* Device is ready and online */
+-      uint8_t                 flags;
++      uint16_t                flags;
+ #define       FC_FABRIC_DEVICE        BIT_0
+ #define       FC_TAPE_DEVICE          BIT_1
+ #define       FC_INITIATOR_DEVICE     BIT_2
+@@ -2174,7 +2295,25 @@ typedef struct fc_port {
+ #define       FC_VSA                  BIT_4
+ #define       FC_HD_DEVICE            BIT_5
+ #define       FC_SUPPORT_RPT_LUNS     BIT_6
+-      atomic_t        port_down_timer;
++#define FC_XP_DEVICE            BIT_7
++#define FC_CONFIG_DEVICE        BIT_8
++#define FC_MSA_DEVICE            BIT_9
++#define FC_MSA_PORT_ACTIVE     BIT_10
++#define FC_FAILBACK_DISABLE           BIT_11
++#define FC_LOGIN_NEEDED               BIT_12
++#define FC_EVA_DEVICE            BIT_13
++#define FC_FAILOVER_DISABLE           BIT_14
++      int16_t                 cfg_id;         /* index into cfg device table */
++      uint16_t        notify_type;
++      atomic_t                port_down_timer;
++      int     (*fo_combine)(void *, uint16_t, 
++              struct fc_port *, uint16_t );
++      int     (*fo_detect)(void);
++      int     (*fo_notify)(void);
++      int     (*fo_select)(void);
++
++      fc_port_type_t  port_type;
++
+       lun_bit_mask_t  lun_mask;
+ } fc_port_t;
+@@ -2182,28 +2321,22 @@ typedef struct fc_port {
+  * Fibre channel LUN structure.
+  */
+ typedef struct fc_lun {
+-      struct fc_lun           *next;
++        struct list_head      list;
++
+       fc_port_t               *fcport;
+       uint16_t                lun;
+       uint8_t                 max_path_retries;
+       uint8_t                 flags;
+ #define       FC_DISCON_LUN           BIT_0
++#define       FC_VISIBLE_LUN          BIT_2
++#define       FC_ACTIVE_LUN           BIT_3
++      uint8_t                 inq0;
+       u_long                  kbytes;
++      void                    *mplun; 
++      void                    *mpbuf; /* ptr to buffer use by multi-path driver */
++      int                     mplen;
+ } fc_lun_t;
+-typedef struct
+-{
+-    uint8_t   in_use;
+-}fabricid_t;
+-
+-typedef struct {
+-      struct list_head        list;
+-
+-      uint8_t         node_name[WWN_SIZE];
+-      uint8_t         port_name[WWN_SIZE];
+-      port_id_t       d_id;
+-      uint16_t        loop_id;
+-} fc_initiator_t;
+ /*
+  * Registered State Change Notification structures.
+@@ -2607,6 +2740,13 @@ typedef struct scsi_qla_host
+       uint32_t        total_dev_errs;         /* device error cnt */
+       uint32_t        total_ios;              /* IO cnt */
+       uint64_t        total_bytes;            /* xfr byte cnt */
++
++      uint64_t        total_input_cnt;        /* input request cnt */
++      uint64_t        total_output_cnt;       /* output request cnt */
++      uint64_t        total_ctrl_cnt;         /* control request cnt */
++      uint64_t        total_input_bytes;      /* input xfr bytes cnt */
++      uint64_t        total_output_bytes;     /* output xfr bytes cnt */
++
+       uint32_t        total_mbx_timeout;      /* mailbox timeout cnt */
+       uint32_t        total_loop_resync;      /* loop resyn cnt */
+@@ -2656,37 +2796,30 @@ typedef struct scsi_qla_host
+       uint16_t        max_targets;
+       
+       /* Fibre Channel Device List. */
+-      fc_port_t               *fcport;
++        struct list_head      fcports;
+       /* OS target queue pointers. */
+       os_tgt_t                *otgt[MAX_FIBRE_DEVICES];
+-      /* Fibre Channel Device Database and LIP sequence. */
+-      fcdev_t           fc_db[MAX_FIBRE_DEVICES]; /* Driver database. */
+       uint32_t          flash_db;         /* Flash database address in use. */
+-      fabricid_t        fabricid[MAX_FIBRE_DEVICES]; /* Fabric ids table . */
+       uint32_t          flash_seq;        /* Flash database seq # in use. */
+       volatile uint16_t lip_seq;          /* LIP sequence number. */
+       
+-      /* Tracks host adapters we find */      
+-      struct list_head        fcinitiators;   /* Initiator database */
+-    
+         /* RSCN queue. */
+       rscn_t rscn_queue[MAX_RSCN_COUNT];
+       uint8_t rscn_in_ptr;
+       uint8_t rscn_out_ptr;
++      
++      unsigned long  last_irq_cpu; /* cpu where we got our last irq */
+-#if QLA2X_PERFORMANCE 
+-      /* Doneq bottom half handler */
+-      struct tasklet_struct run_qla_task;
+-#endif
+       /*
+        * Need to hold the list_lock with irq's disabled in order to
+        * access the following list.
+        * This list_lock is of lower priority than the io_request_lock.
+        */
+       /*********************************************************/
+-        spinlock_t              list_lock;      /* lock to guard lists which 
++        spinlock_t              list_lock  ____cacheline_aligned;      
++                                           /* lock to guard lists which 
+                                                  hold srb_t's*/
+         struct list_head        retry_queue;    /* watchdog queue */
+         struct list_head        done_queue;     /* job on done queue */
+@@ -2695,17 +2828,9 @@ typedef struct scsi_qla_host
+       struct list_head        scsi_retry_queue;     /* SCSI retry queue */
+       
+       struct list_head        pending_queue;  /* SCSI command pending queue */
+-
++      
+         /*********************************************************/
+-      /* This spinlock is used to protect "io transactions", you must 
+-       * aquire it before doing any IO to the card, eg with RD_REG*() and
+-       * WRT_REG*() for the duration of your entire commandtransaction.
+-       *
+-       * This spinlock is of lower priority than the io request lock.
+-       */
+-
+-      spinlock_t              hardware_lock;
+       /* Linux kernel thread */
+       struct task_struct  *dpc_handler;     /* kernel thread */
+@@ -2717,6 +2842,15 @@ typedef struct scsi_qla_host
+       /* Received ISP mailbox data. */
+       volatile uint16_t mailbox_out[MAILBOX_REGISTER_COUNT];
++      /* This spinlock is used to protect "io transactions", you must 
++       * aquire it before doing any IO to the card, eg with RD_REG*() and
++       * WRT_REG*() for the duration of your entire commandtransaction.
++       *
++       * This spinlock is of lower priority than the io request lock.
++       */
++
++      spinlock_t              hardware_lock ____cacheline_aligned;
++
+       /* Outstandings ISP commands. */
+       srb_t           *outstanding_cmds[MAX_OUTSTANDING_COMMANDS];
+       uint32_t current_outstanding_cmd; 
+@@ -2815,6 +2949,7 @@ typedef struct scsi_qla_host
+       uint8_t *cmdline;
+         uint32_t      login_retry_count; 
++        
+     
+       volatile struct
+       {
+@@ -2825,7 +2960,7 @@ typedef struct scsi_qla_host
+               uint32_t     port_name_used          :1;   /* 4 */
+               uint32_t     failover_enabled        :1;   /* 5 */
+-              uint32_t     watchdog_enabled        :1;   /* 6 */
++              uint32_t     failback_disabled       :1;   /* 6 */
+               uint32_t     cfg_suspended           :1;   /* 7 */
+               uint32_t     disable_host_adapter    :1;   /* 8 */
+@@ -2853,11 +2988,7 @@ typedef struct scsi_qla_host
+ #if defined(FC_IP_SUPPORT)
+                 uint32_t     enable_ip               :1;   /* 27 */
+ #endif
+-#if defined(ISP2300)
+               uint32_t     process_response_queue  :1;   /* 28 */
+-#endif
+-
+-
+       } flags;
+       uint32_t     device_flags;
+@@ -2912,6 +3043,7 @@ typedef struct scsi_qla_host
+ #define ISP_ABORT_RETRY         27      /* ISP aborted. */
+ #define PORT_SCAN_NEEDED      28      /* */
++#define IOCTL_ERROR_RECOVERY  29      
+ /* macro for timer to start dpc for handling mailbox commands */
+@@ -2926,13 +3058,13 @@ typedef struct scsi_qla_host
+       uint8_t         interrupts_on;
+       uint8_t         init_done;
+-      volatile uint16_t loop_state;
+-#define LOOP_TIMEOUT 0x01
+-#define LOOP_DOWN    0x02
+-#define LOOP_UP      0x04
+-#define LOOP_UPDATE  0x08
+-#define LOOP_READY   0x10
+-#define LOOP_DEAD    0x20  /* Link Down Timer expires */
++      atomic_t                loop_state;
++#define LOOP_TIMEOUT 1
++#define LOOP_DOWN    2
++#define LOOP_UP      3
++#define LOOP_UPDATE  4
++#define LOOP_READY   5
++#define LOOP_DEAD    6  /* Link Down Timer expires */
+       mbx_cmd_t       mc;
+       uint32_t        mbx_flags;
+@@ -2948,8 +3080,15 @@ typedef struct scsi_qla_host
+       hba_ioctl_context *ioctl;
+       uint8_t     node_name[WWN_SIZE];
+-      uint8_t     optrom_major; 
+-      uint8_t     optrom_minor; 
++      /* PCI expansion ROM image information. */
++      unsigned long   code_types;
++#define ROM_CODE_TYPE_BIOS    0
++#define ROM_CODE_TYPE_FCODE   1
++#define ROM_CODE_TYPE_EFI     3
++
++      uint8_t         bios_revision[2];
++      uint8_t         efi_revision[2];
++      uint8_t         fcode_revision[16];
+       uint8_t     nvram_version; 
+@@ -2963,7 +3102,7 @@ typedef struct scsi_qla_host
+       uint8_t     serial1;
+       uint8_t     serial2;
+-      /* Offset 200-215 : Model Number */
++      /* NVRAM Offset 200-215 : Model Number */
+       uint8_t    model_number[16];
+       /* oem related items */
+@@ -2978,6 +3117,7 @@ typedef struct scsi_qla_host
+       uint32_t failback_delay;
+       unsigned long   cfg_flags;
+ #define       CFG_ACTIVE      0       /* CFG during a failover, event update, or ioctl */
++#define       CFG_FAILOVER    1       /* CFG during path change */
+       /* uint8_t      cfg_active; */
+       int     eh_start;
+@@ -2993,7 +3133,6 @@ typedef struct scsi_qla_host
+       uint32_t        binding_type;
+ #define BIND_BY_PORT_NAME     0
+ #define BIND_BY_PORT_ID               1
+-#define BIND_BY_NODE_NAME     2
+       srb_t   *status_srb;    /* Keep track of Status Continuation Entries */
+@@ -3010,10 +3149,23 @@ typedef struct scsi_qla_host
+ #endif
+       ms_iocb_entry_t         *ms_iocb;
+       dma_addr_t              ms_iocb_dma;
+-      struct ct_sns_pkt       *ct_sns;
+-      dma_addr_t              ct_sns_dma;
++      void                    *ct_iu;
++      dma_addr_t              ct_iu_dma;
++
++      Scsi_Cmnd       *ioctl_err_cmd;  
++      unsigned long   fdmi_flags;
++#define FDMI_REGISTER_NEEDED  0 /* bit 0 */
++      /* Hardware ID/version string from NVRAM */
++      uint8_t         hw_id_version[16];
++      /* Model description string from our table based on NVRAM spec */
++      uint8_t         model_desc[80];
++
++      /* Scsi midlayer lock */
++#if defined(SH_HAS_HOST_LOCK)
++      spinlock_t              host_lock ____cacheline_aligned;
++#endif
+ } scsi_qla_host_t;
+ #if defined(__BIG_ENDIAN)
+@@ -3059,8 +3211,6 @@ typedef struct scsi_qla_host
+ #define       TGT_Q(ha, t)            (ha->otgt[t])
+ #define       LUN_Q(ha, t, l)         (TGT_Q(ha, t)->olun[l])
+ #define GET_LU_Q(ha, t, l)  ( (TGT_Q(ha,t) != NULL)? TGT_Q(ha, t)->olun[l] : NULL)
+-#define PORT_DOWN_TIMER(ha, t)    ((ha)->fc_db[(t)].port_timer)
+-#define PORT(ha, t)                   ((ha)->fc_db[(t)])
+ #define PORT_LOGIN_RETRY(fcport)    ((fcport)->port_login_retry_count)
+ #define MBOX_TRACE(ha,b)              {(ha)->mbox_trace |= (b);}
+@@ -3078,35 +3228,46 @@ typedef struct scsi_qla_host
+ }
+ #endif
+-static void qla2x00_device_queue_depth(scsi_qla_host_t *, Scsi_Device *);
++void qla2x00_device_queue_depth(scsi_qla_host_t *, Scsi_Device *);
+ #endif
+-#if defined(__386__)
+-#  define QLA2100_BIOSPARAM  qla2x00_biosparam
+-#else
+-#  define QLA2100_BIOSPARAM  NULL
+-#endif
+ /*
+  *  Linux - SCSI Driver Interface Function Prototypes.
+  */
+-static int qla2x00_ioctl(Scsi_Device *, int , void *);
+-static int qla2x00_proc_info ( char *, char **, off_t, int, int, int);
+-static const char * qla2x00_info(struct Scsi_Host *host);
+-static int qla2x00_detect(Scsi_Host_Template *);
+-static int qla2x00_release(struct Scsi_Host *);
+-static const char * qla2x00_info(struct Scsi_Host *);
+-static int qla2x00_queuecommand(Scsi_Cmnd *, void (* done)(Scsi_Cmnd *));
++int qla2x00_ioctl(Scsi_Device *, int , void *);
++int qla2x00_proc_info ( char *, char **, off_t, int, int, int);
++const char * qla2x00_info(struct Scsi_Host *host);
++int qla2x00_detect(Scsi_Host_Template *);
++int qla2x00_release(struct Scsi_Host *);
++const char * qla2x00_info(struct Scsi_Host *);
++int qla2x00_queuecommand(Scsi_Cmnd *, void (* done)(Scsi_Cmnd *));
+ int qla2x00_abort(Scsi_Cmnd *);
+ int qla2x00_reset(Scsi_Cmnd *, unsigned int);
+-static int qla2x00_biosparam(Disk *, kdev_t, int[]);
+-static void qla2x00_intr_handler(int, void *, struct pt_regs *);
++int qla2x00_biosparam(Disk *, kdev_t, int[]);
++void qla2x00_intr_handler(int, void *, struct pt_regs *);
+ #if !defined(MODULE)
+-static int __init qla2x00_setup (char *s);
++static int __init qla2100_setup (char *s);
+ #else
+ void qla2x00_setup(char *s);
+ #endif
++#if defined(CONFIG_COMPAT) || \
++      ( defined(CONFIG_SUSE_KERNEL) && \
++       (defined(CONFIG_PPC64) || defined(CONFIG_X86_64)))
++#define       QLA_CONFIG_COMPAT
++#endif
++
++/*
++ * Scsi_Host_template (see hosts.h) 
++ * Device driver Interfaces to mid-level SCSI driver.
++ */
++
++/* Kernel version specific template additions */
++
++/* Number of segments 1 - 65535 */
++#define SG_SEGMENTS     32             /* Cmd entry + 6 continuations */
++
+ /*
+  * Scsi_Host_template (see hosts.h) 
+  * Device driver Interfaces to mid-level SCSI driver.
+@@ -3119,7 +3280,7 @@ void qla2x00_setup(char *s);
+  *
+  */
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,8)
+-#define TEMPLATE_MAX_SECTORS  max_sectors: 8192,
++#define TEMPLATE_MAX_SECTORS  max_sectors: 512,
+ #else
+ #define TEMPLATE_MAX_SECTORS 
+ #endif
+@@ -3127,60 +3288,99 @@ void qla2x00_setup(char *s);
+  * use_new_eh_code
+  *
+  */
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
+-#define TEMPLATE_USE_NEW_EH_CODE
+-#else
+ #define TEMPLATE_USE_NEW_EH_CODE use_new_eh_code: 1,
+-#endif
+ /*
+  * emulated
+  *
+  */
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
+-#define TEMPLATE_EMULATED
+-#else
+ #define TEMPLATE_EMULATED emulated: 0,
+-#endif
+ /*
+  * next
+  *
+  */
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
+-#define TEMPLATE_NEXT
+-#else
+ #define TEMPLATE_NEXT next: NULL,
+-#endif
+ /*
+  * module
+  *
+  */
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
+-#define TEMPLATE_MODULE
+-#else
+ #define TEMPLATE_MODULE module: NULL,
+-#endif
+ /*
+  * proc_dir
+  *
+  */
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
+-#define TEMPLATE_PROC_DIR
+-#else
+ #define TEMPLATE_PROC_DIR proc_dir: NULL,
++
++/* highmem_io */
++#ifdef SHT_HAS_HIGHMEM_IO
++#define TEMPLATE_HIGHMEM_IO   highmem_io: 1,
++#else
++#define TEMPLATE_HIGHMEM_IO
++#endif
++/* can_dma_32 */
++#ifdef SHT_HAS_CAN_DMA_32
++#define TEMPLATE_CAN_DMA_32   can_dma_32: 1,
++#else
++#define TEMPLATE_CAN_DMA_32
++#endif
++/* single_sg_ok A.S. 2.1 */
++#ifdef SHT_HAS_SINGLE_SG_OK
++#define TEMPLATE_SINGLE_SG_OK single_sg_ok: 1,
++#else
++#define TEMPLATE_SINGLE_SG_OK
++#endif
++/* can_do_varyio -- A.S. 2.1 */
++#ifdef SHT_HAS_CAN_DO_VARYIO
++#define TEMPLATE_CAN_DO_VARYIO        can_do_varyio: 1,
++#else
++#define TEMPLATE_CAN_DO_VARYIO
++#endif
++/* vary_io -- SLES 8 */
++#ifdef SHT_HAS_VARY_IO
++#define TEMPLATE_VARY_IO      vary_io: 1,
++#else
++#define TEMPLATE_VARY_IO
+ #endif
++/* RHEL3 specifics */
++
++/* need_plug_timer -- RHEL3 */
++#ifdef SHT_HAS_NEED_PLUG_TIMER
++/* As per RH, backout scsi-affine feature. */
++#define TEMPLATE_NEED_PLUG_TIMER
++/*#define TEMPLATE_NEED_PLUG_TIMER need_plug_timer: 1, */
++#else
++#define TEMPLATE_NEED_PLUG_TIMER
++#endif
++
++/*
++ * There are several Scsi_Host members that are RHEL3 specific
++ * yet depend on the SCSI_HAS_HOST_LOCK define for visibility.
++ * Unfortuantely, it seems several RH kernels have the define
++ * set, but do not have a host_lock member.
++ *
++ * Use the SH_HAS_HOST_LOCK define determined during driver
++ * compilation rather than SCSI_HAS_HOST_LOCK.
++ *
++ * Also use SH_HAS_CAN_QUEUE_MASK to determine if can_queue_mask
++ * is an Scsi_Host member.
++ *
++ *    SH_HAS_HOST_LOCK        -- host_lock defined
++ *    SH_HAS_CAN_QUEUE_MASK   -- can_queue_mask defined
++ */
++/* As per RH, backout scsi-affine feature. */
++#undef SH_HAS_CAN_QUEUE_MASK
+ #define QLA2100_LINUX_TEMPLATE {                              \
+ TEMPLATE_NEXT                                                         \
+ TEMPLATE_MODULE                                               \
+ TEMPLATE_PROC_DIR                                             \
+       proc_info: qla2x00_proc_info,                           \
+-      name:           "Qlogic Fibre Channel 2x00",            \
++      name:           "QLogic Fibre Channel 2x00",            \
+       detect:         qla2x00_detect,                         \
+       release:        qla2x00_release,                        \
+       info:           qla2x00_info,                           \
+-      ioctl: qla2x00_ioctl,                                   \
++      ioctl: qla2x00_ioctl,                                    \
+       command: NULL,                                          \
+       queuecommand: qla2x00_queuecommand,                     \
+       eh_strategy_handler: NULL,                              \
+@@ -3191,19 +3391,23 @@ TEMPLATE_PROC_DIR                                              \
+       abort: NULL,                                            \
+       reset: NULL,                                            \
+       slave_attach: NULL,                                     \
+-      bios_param: QLA2100_BIOSPARAM,                          \
+-      can_queue: 256,         /* max simultaneous cmds      */\
++      bios_param: qla2x00_biosparam,                          \
++      can_queue: REQUEST_ENTRY_CNT+128, /* max simultaneous cmds      */\
+       this_id: -1,            /* scsi id of host adapter    */\
+       sg_tablesize: SG_SEGMENTS,      /* max scatter-gather cmds */\
+       cmd_per_lun: 3,         /* cmds per lun (linked cmds) */\
+       present: 0,             /* number of 7xxx's present   */\
+       unchecked_isa_dma: 0,   /* no memory DMA restrictions */\
+-      use_clustering: ENABLE_CLUSTERING,                      \
+ TEMPLATE_USE_NEW_EH_CODE                                      \
+ TEMPLATE_MAX_SECTORS                                          \
+ TEMPLATE_EMULATED                                             \
+-      highmem_io :1,                                          \
+-      vary_io: 1,                                             \
++TEMPLATE_HIGHMEM_IO                                           \
++TEMPLATE_CAN_DMA_32                                           \
++TEMPLATE_SINGLE_SG_OK                                         \
++TEMPLATE_CAN_DO_VARYIO                                                \
++TEMPLATE_VARY_IO                                              \
++TEMPLATE_NEED_PLUG_TIMER                                      \
++      use_clustering: ENABLE_CLUSTERING                       \
+ }
+ #endif /* _IO_HBA_QLA2100_H */
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla2x00_ioctl.c linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla2x00_ioctl.c
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla2x00_ioctl.c      2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla2x00_ioctl.c   2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+@@ -18,9 +18,8 @@
+  ******************************************************************************/
+-#define       QLA_PT_CMD_TOV                  (60) /* firmware timeout */
+-#define QLA_PT_CMD_DRV_TOV            (QLA_PT_CMD_TOV + 1) /* drvr timeout */
+-#define QLA_IOCTL_ACCESS_WAIT_TIME    (QLA_PT_CMD_DRV_TOV + 2) /* wait_q tov */
++#define QLA_PT_CMD_DRV_TOV            (ql2xioctltimeout + 1) /* drvr timeout */
++#define QLA_IOCTL_ACCESS_WAIT_TIME    (ql2xioctltimeout + 2) /* wait_q tov */
+ #define QLA_INITIAL_IOCTLMEM_SIZE     (2 * PAGE_SIZE)
+ #define QLA_IOCTL_SCRAP_SIZE          2048 /* scrap memory for local use. */
+@@ -39,12 +38,12 @@
+ #if defined(INTAPI)
+ #include "inioct.h"
+ /* from qla_inioct.c */
+-static int qla2x00_read_nvram(scsi_qla_host_t *, EXT_IOCTL *, int);
+-static int qla2x00_update_nvram(scsi_qla_host_t *, EXT_IOCTL *, int);
+-static int qla2x00_write_nvram_word(scsi_qla_host_t *, uint8_t, uint16_t);
+-static int qla2x00_send_loopback(scsi_qla_host_t *, EXT_IOCTL *, int);
+-static int qla2x00_read_option_rom(scsi_qla_host_t *, EXT_IOCTL *, int);
+-static int qla2x00_update_option_rom(scsi_qla_host_t *, EXT_IOCTL *, int);
++extern int qla2x00_read_nvram(scsi_qla_host_t *, EXT_IOCTL *, int);
++extern int qla2x00_update_nvram(scsi_qla_host_t *, EXT_IOCTL *, int);
++extern int qla2x00_write_nvram_word(scsi_qla_host_t *, uint8_t, uint16_t);
++extern int qla2x00_send_loopback(scsi_qla_host_t *, EXT_IOCTL *, int);
++extern int qla2x00_read_option_rom(scsi_qla_host_t *, EXT_IOCTL *, int);
++extern int qla2x00_update_option_rom(scsi_qla_host_t *, EXT_IOCTL *, int);
+ #endif
+@@ -58,11 +57,6 @@ STATIC void qla2x00_free_ioctl_mem(scsi_
+ STATIC int qla2x00_get_ioctl_scrap_mem(scsi_qla_host_t *, void **, uint32_t);
+ STATIC void qla2x00_free_ioctl_scrap_mem(scsi_qla_host_t *);
+-#if defined(ISP2300)
+-STATIC uint8_t qla2x00_get_next_free_pub_id(scsi_qla_host_t *, uint16_t *);
+-STATIC uint8_t qla2x00_host_relogin(scsi_qla_host_t *, fcdev_t *);
+-#endif
+-
+ STATIC int qla2x00_find_curr_ha(uint16_t, scsi_qla_host_t **);
+ STATIC int qla2x00_get_driver_specifics(EXT_IOCTL *);
+@@ -83,15 +77,17 @@ STATIC int qla2x00_get_statistics(scsi_q
+ STATIC int qla2x00_get_fc_statistics(scsi_qla_host_t *, EXT_IOCTL *, int);
+ STATIC int qla2x00_get_port_summary(scsi_qla_host_t *, EXT_IOCTL *, int);
+ STATIC int qla2x00_get_fcport_summary(scsi_qla_host_t *, EXT_DEVICEDATAENTRY *,
+-    void *, uint32_t, uint32_t *, uint32_t *);
++    void *, uint32_t, uint32_t, uint32_t *, uint32_t *);
++#if 0
+ STATIC int qla2x00_std_missing_port_summary(scsi_qla_host_t *,
+     EXT_DEVICEDATAENTRY *, void *, uint32_t, uint32_t *, uint32_t *);
++#endif
+ STATIC int qla2x00_query_driver(scsi_qla_host_t *, EXT_IOCTL *, int);
+ STATIC int qla2x00_query_fw(scsi_qla_host_t *, EXT_IOCTL *, int);
+ STATIC int qla2x00_msiocb_passthru(scsi_qla_host_t *, EXT_IOCTL *, int,
+     int);
+-#if defined(ISP2300)
++#if defined(ISP2300) 
+ STATIC int qla2x00_send_els_passthru(scsi_qla_host_t *, EXT_IOCTL *,
+     Scsi_Cmnd *, fc_port_t *, fc_lun_t *, int);
+ #endif
+@@ -208,6 +204,7 @@ qla2x00_scsi_pt_done(Scsi_Cmnd *pscsi_cm
+       /* save detail status for IOCTL reporting */
+       ha->ioctl->SCSIPT_InProgress = 0;
+       ha->ioctl->ioctl_tov = 0;
++      ha->ioctl_err_cmd = NULL;
+       up(&ha->ioctl->cmpl_sem);
+@@ -260,7 +257,7 @@ qla2x00_msiocb_done(Scsi_Cmnd *pscsi_cmd
+  *   ret != 0    Failed; detailed status copied to EXT_IOCTL structure
+  *               if possible
+  *************************************************************************/
+-STATIC int
++int
+ qla2x00_ioctl(Scsi_Device *dev, int cmd, void *arg)
+ {
+       int             mode = 0;
+@@ -285,13 +282,6 @@ qla2x00_ioctl(Scsi_Device *dev, int cmd,
+               return (ret);
+       }
+-      ret = verify_area(VERIFY_READ, (void *)arg, sizeof(EXT_IOCTL));
+-      if (ret) {
+-              DEBUG9_10(printk("%s: ERROR VERIFY_READ EXT_IOCTL "
+-                  "sturct. cmd=%x arg=%p.\n", __func__, cmd, arg);)
+-              return (ret);
+-      }
+-
+       /* Allocate ioctl structure buffer to support multiple concurrent
+        * entries.
+        */
+@@ -314,16 +304,6 @@ qla2x00_ioctl(Scsi_Device *dev, int cmd,
+               return (ret);
+       }
+-      /* Verify before update status fields in EXT_IOCTL struct. */
+-      ret = verify_area(VERIFY_WRITE, (void *)arg, sizeof(EXT_IOCTL));
+-      if (ret) {
+-              DEBUG9_10(printk("%s: ERROR VERIFY_WRITE EXT_IOCTL "
+-                  "sturct. cmd=%x arg=%p.\n", __func__, cmd, arg);)
+-
+-              KMEM_FREE(pext, sizeof(EXT_IOCTL));
+-              return (ret);
+-      }
+-
+       /* check signature of this ioctl */
+       temp = (uint8_t *) &pext->Signature;
+@@ -340,10 +320,10 @@ qla2x00_ioctl(Scsi_Device *dev, int cmd,
+               DEBUG9_10(printk("%s: signature did not match. "
+                   "cmd=%x arg=%p.\n", __func__, cmd, arg);)
+               pext->Status = EXT_STATUS_INVALID_PARAM;
+-              copy_to_user((void *)arg, (void *)pext, sizeof(EXT_IOCTL));
++              ret = copy_to_user(arg, pext, sizeof(EXT_IOCTL));
+               KMEM_FREE(pext, sizeof(EXT_IOCTL));
+-              return (-EINVAL);
++              return (ret);
+       }
+       /* check version of this ioctl */
+@@ -351,8 +331,6 @@ qla2x00_ioctl(Scsi_Device *dev, int cmd,
+               printk(KERN_WARNING
+                   "qla2x00: ioctl interface version not supported = %d.\n",
+                   pext->Version);
+-              pext->Status = EXT_STATUS_UNSUPPORTED_VERSION;
+-              copy_to_user((void *)arg, (void *)pext, sizeof(EXT_IOCTL));
+               KMEM_FREE(pext, sizeof(EXT_IOCTL));
+               return (-EINVAL);
+@@ -365,8 +343,7 @@ qla2x00_ioctl(Scsi_Device *dev, int cmd,
+               pext->Instance = num_hosts;
+               pext->Status = EXT_STATUS_OK;
+-              ret = copy_to_user((void *)arg, (void *)pext,
+-                  sizeof(EXT_IOCTL));
++              ret = copy_to_user(arg, pext, sizeof(EXT_IOCTL));
+               KMEM_FREE(pext, sizeof(EXT_IOCTL));
+               return (ret);
+@@ -393,7 +370,8 @@ qla2x00_ioctl(Scsi_Device *dev, int cmd,
+                        */
+                       if (qla2x00_find_curr_ha(pext->Instance, &ha) != 0) {
+                               pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+-                              ret = copy_to_user(arg, pext, sizeof(EXT_IOCTL));
++                              ret = copy_to_user(arg, pext,
++                                  sizeof(EXT_IOCTL));
+                               DEBUG9_10(printk("%s: SETINSTANCE invalid inst "
+                                   "%d. num_hosts=%d ha=%p ret=%d.\n",
+                                   __func__, pext->Instance, num_hosts, ha,
+@@ -425,7 +403,7 @@ qla2x00_ioctl(Scsi_Device *dev, int cmd,
+       case EXT_CC_DRIVER_SPECIFIC:
+               ret = qla2x00_get_driver_specifics(pext);
+-              tmp_rval = copy_to_user(arg, (void *)pext, sizeof(EXT_IOCTL));
++              tmp_rval = copy_to_user(arg, pext, sizeof(EXT_IOCTL));
+               if (ret == 0)
+                       ret = tmp_rval;
+@@ -454,10 +432,10 @@ qla2x00_ioctl(Scsi_Device *dev, int cmd,
+                           __func__, apiHBAInstance);)
+                       pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+-                      copy_to_user(arg, pext, sizeof(EXT_IOCTL));
++                      ret = copy_to_user(arg, pext, sizeof(EXT_IOCTL));
+                       KMEM_FREE(pext, sizeof(EXT_IOCTL));
+-                      return (-EINVAL);
++                      return (ret);
+               }
+               DEBUG9(printk("%s: active apiHBAInstance=%d host_no=%ld "
+@@ -475,10 +453,10 @@ qla2x00_ioctl(Scsi_Device *dev, int cmd,
+                           __func__, pext->HbaSelect);)
+                       pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+-                      copy_to_user(arg, pext, sizeof(EXT_IOCTL));
++                      ret = copy_to_user(arg, pext, sizeof(EXT_IOCTL));
+                       KMEM_FREE(pext, sizeof(EXT_IOCTL));
+-                      return (-EINVAL);
++                      return (ret);
+               }
+               DEBUG9(printk("%s: active host_inst=%ld CC=%x SC=%x.\n",
+@@ -495,15 +473,15 @@ qla2x00_ioctl(Scsi_Device *dev, int cmd,
+                   "access. host no=%d.\n", __func__, pext->HbaSelect);)
+               pext->Status = EXT_STATUS_BUSY;
+-              copy_to_user(arg, pext, sizeof(EXT_IOCTL));
++              ret = copy_to_user(arg, pext, sizeof(EXT_IOCTL));
+               KMEM_FREE(pext, sizeof(EXT_IOCTL));
+-              return (-EBUSY);
++              return (ret);
+       }
+       while (test_bit(CFG_ACTIVE, &ha->cfg_flags) || ha->dpc_active) {
+-              if( signal_pending(current) )
++              if (signal_pending(current))
+                       break;   /* get out */
+               set_current_state(TASK_INTERRUPTIBLE);
+@@ -598,7 +576,7 @@ qla2x00_ioctl(Scsi_Device *dev, int cmd,
+          case EXT_CC_PLATFORM_REG:
+          break;
+        */
+-
++#if !defined(ISP200)
+       /* Failover IOCTLs */
+       case FO_CC_GET_PARAMS:
+       case FO_CC_SET_PARAMS:
+@@ -615,6 +593,7 @@ qla2x00_ioctl(Scsi_Device *dev, int cmd,
+               qla2x00_fo_ioctl(ha, cmd, pext, mode);
+               break;
++#endif
+       default:
+               pext->Status = EXT_STATUS_INVALID_REQUEST;
+@@ -623,7 +602,7 @@ qla2x00_ioctl(Scsi_Device *dev, int cmd,
+       } /* end of CC decode switch */
+       /* Always try to copy values back regardless what happened before. */
+-      tmp_rval = copy_to_user(arg, (void *)pext, sizeof(EXT_IOCTL));
++      tmp_rval = copy_to_user(arg, pext, sizeof(EXT_IOCTL));
+       if (ret == 0)
+               ret = tmp_rval;
+@@ -712,18 +691,10 @@ qla2x00_alloc_ioctl_mem(scsi_qla_host_t 
+           __func__, ha->host_no, ha->ioctl->scrap_mem_size);)
+       ha->ioctl->ioctl_lq->q_state = LUN_STATE_READY;
+-#ifdef __VMWARE__
+-      spin_lock_init(&ha->ioctl->ioctl_lq->q_lock);
+-#else
+       ha->ioctl->ioctl_lq->q_lock = SPIN_LOCK_UNLOCKED;
+-#endif
+       /* Init wait_q fields */
+-#ifdef __VMWARE__
+-      spin_lock_init(&ha->ioctl->wait_q_lock);
+-#else
+       ha->ioctl->wait_q_lock = SPIN_LOCK_UNLOCKED;
+-#endif
+       DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+           __func__, ha->host_no, ha->instance);)
+@@ -812,10 +783,6 @@ qla2x00_free_ioctl_mem(scsi_qla_host_t *
+               }
+               if (ha->ioctl->ioctl_lq != NULL) {
+-#ifdef __VMWARE__
+-                      spin_lock_destroy(&ha->ioctl->ioctl_lq->q_lock);
+-                      spin_lock_destroy(&ha->ioctl->wait_q_lock);
+-#endif
+                       KMEM_FREE(ha->ioctl->ioctl_lq, sizeof(os_lun_t));
+                       ha->ioctl->ioctl_lq = NULL;
+               }
+@@ -908,193 +875,6 @@ qla2x00_free_ioctl_scrap_mem(scsi_qla_ho
+           __func__, ha->host_no);)
+ }
+-#if defined(ISP2300)
+-/*
+- * qla2x00_get_next_free_pub_id
+- *    Find the next free public loop ID to use, starting from the old
+- *    loop ID passed in.  If the old loop ID is invalid, this function
+- *    will start the search from beginning.
+- *
+- * Input:
+- *    ha              = adapter block pointer.
+- *    ploop_id        = pointer to a 16bit var containing the old loop
+- *                    ID which is also to be used to get the new loop ID.
+- *
+- * Returns:
+- *      QL_STATUS_SUCCESS - Found an usable loop ID
+- *      QL_STATUS_RESOURCE_ERROR - No more free loop ID
+- */
+-STATIC uint8_t
+-qla2x00_get_next_free_pub_id(scsi_qla_host_t *ha, uint16_t *ploop_id)
+-{
+-      uint8_t         retval = QL_STATUS_SUCCESS;
+-      uint16_t        index;
+-      uint16_t        old_id;
+-
+-      DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+-          __func__, ha->host_no, ha->instance);)
+-
+-      old_id = *ploop_id;
+-      if (old_id >= LAST_SNS_LOOP_ID) {
+-              /* set a starting point */
+-              old_id = ha->min_external_loopid;
+-      }
+-
+-      for (index = old_id; index < LAST_SNS_LOOP_ID; index++) {
+-              if (!ha->fabricid[index].in_use) {
+-                      ha->fabricid[index].in_use = TRUE;
+-                      *ploop_id = index;
+-                      DEBUG9(printk("%s(%ld): found Lid %02x.\n",
+-                          __func__, ha->host_no, index);)
+-                      break;
+-              }
+-      }
+-      if (index >= LAST_SNS_LOOP_ID) {
+-              /* no more free ID */
+-              DEBUG9_10(printk("%s(%ld): inst=%ld ERROR no more free LID "
+-                  "available.\n", __func__, ha->host_no, ha->instance);)
+-
+-              retval = QL_STATUS_RESOURCE_ERROR;
+-      }
+-
+-      DEBUG9(printk("%s(%ld): inst=%ld exiting. retval=%d.\n",
+-           __func__, ha->host_no, ha->instance, retval);)
+-
+-      return retval;
+-}
+-
+-/*
+- * qla2x00_host_relogin
+- *    Issue fabric login command to a host in the host_db which
+- *    had somehow been lost before. All updates are passed back
+- *    via pdevice. No update will be done to any of ha's database.
+- *
+- * Input:
+- *    ha = adapter block pointer.
+- *    pdevice = pointer to FC device type structure.
+- *
+- * Returns:
+- *      QL_STATUS_SUCCESS - Login successfully
+- *      QL_STATUS_ERROR - Login failed
+- *      QL_STATUS_FATAL_ERROR - Fatal error
+- */
+-STATIC uint8_t
+-qla2x00_host_relogin(scsi_qla_host_t *ha, fcdev_t *pdevice) 
+-{
+-      uint8_t         retval = QL_STATUS_SUCCESS;
+-      uint16_t        status[3];
+-      uint16_t        tmp_loop_id;
+-
+-      DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+-          __func__, ha->host_no, ha->instance);)
+-
+-      /* pdevice->loop_id is assumed to be straight from the current
+-       * database content.
+-       */
+-      tmp_loop_id = pdevice->loop_id & 0xff;
+-      if (tmp_loop_id >= LAST_SNS_LOOP_ID) {
+-              /* Invalid value.  We need to find a valid ID to use. */
+-              if (qla2x00_get_next_free_pub_id(ha, &tmp_loop_id) != 0) {
+-                      /* no more free IDs to use */
+-                      DEBUG9_10(printk("%s(%ld): inst=%ld no free loop_id "
+-                          " available for login.\n",
+-                          __func__, ha->host_no, ha->instance);)
+-
+-                      return QL_STATUS_ERROR;
+-              }
+-      }
+-
+-      for (;;) {
+-              DEBUG9(printk("%s(%ld): Login w/loop id 0x%02x for port %06x\n",
+-                  __func__, ha->host_no, pdevice->loop_id,
+-                  pdevice->d_id.b24);)
+-
+-              /* Login device on switch. */
+-              qla2x00_login_fabric(ha,
+-                  tmp_loop_id, pdevice->d_id.b.domain,
+-                  pdevice->d_id.b.area, pdevice->d_id.b.al_pa, 
+-                  &status[0], 0);
+-
+-              if (status[0] != MBS_CMD_CMP &&
+-                  status[0] != MBS_PORT_ID_IN_USE &&
+-                  status[0] != MBS_LOOP_ID_IN_USE) {
+-
+-                      DEBUG9_10(printk("%s(%ld): inst=%ld "
+-                          "ERROR login status[0]=%x status[1]=%x.\n",
+-                          __func__, ha->host_no, ha->instance, status[0],
+-                          status[1]);)
+-
+-                      retval = QL_STATUS_FATAL_ERROR;
+-                      break;
+-              }
+-
+-              if (status[0] == MBS_CMD_CMP) {
+-                      DEBUG9(printk("%s(%ld): inst=%ld "
+-                          " host login success; loop_id=%x.\n",
+-                          __func__, ha->host_no, ha->instance, tmp_loop_id);)
+-
+-                      pdevice->loop_id = tmp_loop_id;
+-                      retval = QL_STATUS_SUCCESS;
+-                      break;
+-
+-              } else if (status[0] == MBS_PORT_ID_IN_USE) {
+-                      ha->fabricid[tmp_loop_id].in_use = FALSE;
+-                      tmp_loop_id = status[1];
+-
+-                      DEBUG9(printk("%s(%ld): inst=%ld "
+-                          "port %06x already using loop id=0x%02x in "
+-                          "f/w database. Retrying.\n",
+-                          __func__, ha->host_no, ha->instance,
+-                          pdevice->d_id.b24, tmp_loop_id);)
+-
+-                      if (tmp_loop_id <= LAST_SNS_LOOP_ID) {
+-                              ha->fabricid[tmp_loop_id].in_use = TRUE;
+-                      } else {
+-                              /* Error */
+-                              DEBUG9_10(printk("%s(%ld): inst=%ld "
+-                                  "PORT_ID_IN_USE - invalid loop id %02x "
+-                                  "returned.\n",
+-                                  __func__, ha->host_no, ha->instance,
+-                                  pdevice->loop_id);)
+-                              retval = QL_STATUS_ERROR;
+-                              break;
+-                      }
+-
+-              } else if (status[0] == MBS_LOOP_ID_IN_USE) {
+-                      /* loop id already used by others; try another one */
+-                      DEBUG9_10(printk("%s(%ld): inst=%ld "
+-                          "loop id %02x already used.\n",
+-                          __func__, ha->host_no, ha->instance,
+-                          pdevice->loop_id);)
+-
+-                      /* Search for another usable loop_id */
+-                      if (qla2x00_get_next_free_pub_id(ha,
+-                          &tmp_loop_id) == 0) {
+-
+-                              DEBUG9(printk("%s(%ld): previous loop "
+-                                  "id in use. Retry with 0x%02x.\n",
+-                                  __func__, ha->host_no, tmp_loop_id);)
+-
+-                              ha->fabricid[tmp_loop_id].in_use = TRUE;
+-                      } else {
+-                              /* Error */
+-                              DEBUG9_10(printk("%s(%ld): inst=%ld loop id "
+-                                  "in use; no more free loop id.\n",
+-                                  __func__, ha->host_no, ha->instance);)
+-
+-                              retval = QL_STATUS_ERROR;
+-                              break;
+-                      }
+-              }
+-      }
+-
+-      DEBUG9(printk("%s(%ld): inst=%ld exiting. retval=%d.\n",
+-           __func__, ha->host_no, ha->instance, retval);)
+-
+-      return (retval);
+-}
+-#endif
+-
+ /*
+  * qla2x00_find_curr_ha
+  *    Searches and returns the pointer to the adapter host_no specified.
+@@ -1172,21 +952,11 @@ qla2x00_get_driver_specifics(EXT_IOCTL *
+       data.DrvVer.Patch = QLA_DRIVER_PATCH_VER;
+       data.DrvVer.Beta = QLA_DRIVER_BETA_VER;
+-      ret = verify_area(VERIFY_WRITE, (void *)pext->ResponseAdr,
++      ret = copy_to_user(pext->ResponseAdr, &data,
+           sizeof(EXT_LN_DRIVER_DATA));
+       if (ret) {
+               pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("%s: ERROR verify write resp buf\n",
+-                  __func__);)
+-
+-              return (ret);
+-      }
+-
+-      ret = copy_to_user(pext->ResponseAdr, &data, sizeof(EXT_LN_DRIVER_DATA));
+-      if (ret) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("%s: ERROR copy resp buf\n",
+-                  __func__);)
++              DEBUG9_10(printk("%s: ERROR copy resp buf\n", __func__);)
+       }
+       DEBUG9(printk("%s: exiting. ret=%d.\n",
+@@ -1220,17 +990,8 @@ qla2x00_aen_reg(scsi_qla_host_t *ha, EXT
+       DEBUG9(printk("%s(%ld): inst %ld entered.\n",
+           __func__, ha->host_no, ha->instance);)
+-      rval = verify_area(VERIFY_READ, (void *)cmd->RequestAdr,
++      rval = copy_from_user(&reg_struct, cmd->RequestAdr,
+           sizeof(EXT_REG_AEN));
+-      if (rval) {
+-              cmd->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("%s(%ld): inst %ld ERROR verify read req buf\n",
+-                  __func__, ha->host_no, ha->instance);)
+-
+-              return (rval);
+-      }
+-
+-      rval = copy_from_user(&reg_struct, cmd->RequestAdr, sizeof(EXT_REG_AEN));
+       if (rval == 0) {
+               cmd->Status = EXT_STATUS_OK;
+               if (reg_struct.Enable) {
+@@ -1294,9 +1055,10 @@ qla2x00_aen_get(scsi_qla_host_t *ha, EXT
+       if (request_cnt < EXT_DEF_MAX_AEN_QUEUE) {
+               /* We require caller to alloc for the maximum request count */
+               cmd->Status       = EXT_STATUS_BUFFER_TOO_SMALL;
+-              DEBUG9_10(printk("%s(%ld): inst=%ld Buffer too small. "
++              DEBUG9_10(printk("%s(%ld): inst=%ld Buffer size %ld too small. "
+                   "Exiting normally.",
+-                  __func__, ha->host_no, ha->instance);)
++                  __func__, ha->host_no, ha->instance,
++                  (ulong)cmd->ResponseLen);)
+               return (rval);
+       }
+@@ -1349,18 +1111,6 @@ qla2x00_aen_get(scsi_qla_host_t *ha, EXT
+       /* Copy the entire queue to user's buffer. */
+       ret_len = (uint32_t)(queue_cnt * sizeof(EXT_ASYNC_EVENT));
+       if (queue_cnt != 0) {
+-              rval = verify_area(VERIFY_WRITE, (void *)cmd->ResponseAdr,
+-                  ret_len);
+-              if (rval != 0) {
+-                      cmd->Status = EXT_STATUS_COPY_ERR;
+-                      DEBUG9_10(printk(
+-                          "%s(%ld): inst=%ld ERROR verify write resp buf.\n",
+-                          __func__, ha->host_no, ha->instance);)
+-
+-                      qla2x00_free_ioctl_scrap_mem(ha);
+-                      return (rval);
+-              }
+-
+               rval = copy_to_user(cmd->ResponseAdr, paen, ret_len);
+       }
+       cmd->ResponseLen = ret_len;
+@@ -1560,6 +1310,7 @@ qla2x00_query_hba_node(scsi_qla_host_t *
+       uint32_t        i, transfer_size;
+       EXT_HBA_NODE    *ptmp_hba_node;
+       qla_boards_t    *bdp;
++      uint8_t         *next_str;
+       DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+@@ -1581,7 +1332,7 @@ qla2x00_query_hba_node(scsi_qla_host_t *
+       for (i = 0; i < 8 ; i++)
+               ptmp_hba_node->WWNN[i] = ha->node_name[i];
+-      sprintf((char *)(ptmp_hba_node->Manufacturer),"Qlogic Corp.");
++      sprintf((char *)(ptmp_hba_node->Manufacturer), QLOGIC_COMPANY_NAME);
+       sprintf((char *)(ptmp_hba_node->Model),ha->model_number);
+       ptmp_hba_node->SerialNum[0] = ha->serial0;
+@@ -1591,25 +1342,47 @@ qla2x00_query_hba_node(scsi_qla_host_t *
+       sprintf((char *)(ptmp_hba_node->FWVersion),"%2d.%02d.%02d",
+           bdp->fwver[0], bdp->fwver[1], bdp->fwver[2]);
+-      sprintf((char *)(ptmp_hba_node->OptRomVersion),"%d.%d",
+-          ha->optrom_major, ha->optrom_minor);
++#ifdef MAKEUP_YOUR_MIND
++      /*
++       * Prep OptionROM string:
++       *
++       *      <BIOS VERSION>\0<FCODE VERSION>\0<EFI_VERSION>\0
++       */
++      memset(ptmp_hba_node->OptRomVersion, 0,
++          sizeof(ptmp_hba_node->OptRomVersion));
++      next_str = ptmp_hba_node->OptRomVersion;
++      if (test_bit(ROM_CODE_TYPE_BIOS, &ha->code_types)) {
++              sprintf(next_str, "%d.%02d", ha->bios_revision[1],
++                  ha->bios_revision[0]);
++      }
++      next_str += strlen(next_str) + 1;
++      if (test_bit(ROM_CODE_TYPE_FCODE, &ha->code_types)) {
++              strcpy(next_str, ha->fcode_revision);
++      }
++      next_str += strlen(next_str) + 1;
++      if (test_bit(ROM_CODE_TYPE_EFI, &ha->code_types)) {
++              sprintf(next_str, "%d.%02d", ha->efi_revision[1],
++                  ha->efi_revision[0]);
++      }
++#else
++      memset(ptmp_hba_node->OptRomVersion, 0,
++          sizeof(ptmp_hba_node->OptRomVersion));
++      next_str = ptmp_hba_node->OptRomVersion;
++      sprintf(next_str, "0.00");
++      if (test_bit(ROM_CODE_TYPE_BIOS, &ha->code_types)) {
++              sprintf(next_str, "%d.%02d", ha->bios_revision[1],
++                  ha->bios_revision[0]);
++      }
++#endif
+       ptmp_hba_node->InterfaceType = EXT_DEF_FC_INTF_TYPE;
+       ptmp_hba_node->PortCount = 1;
+-
+-      ptmp_hba_node->DriverAttr = (ha->flags.failover_enabled) ?
+-          DRVR_FO_ENABLED : 0;
+-
+-      ret = verify_area(VERIFY_WRITE, (void  *)pext->ResponseAdr,
+-          sizeof(EXT_HBA_NODE));
+-      if (ret) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("%s(%ld): inst=%ld ERROR verify wrt rsp buf\n",
+-                  __func__, ha->host_no, ha->instance);)
+-              qla2x00_free_ioctl_scrap_mem(ha);
+-              return (ret);
+-      }
++      ptmp_hba_node->DriverAttr = 0;
++#if !defined(ISP200)
++      if (ha->flags.failover_enabled)
++              ptmp_hba_node->DriverAttr = DRVR_FO_ENABLED;
++#endif
+       /* now copy up the HBA_NODE to user */
+       if (pext->ResponseLen < sizeof(EXT_HBA_NODE))
+@@ -1617,8 +1390,7 @@ qla2x00_query_hba_node(scsi_qla_host_t *
+       else
+               transfer_size = sizeof(EXT_HBA_NODE);
+-      ret = copy_to_user((uint8_t *)pext->ResponseAdr,
+-          (uint8_t *)ptmp_hba_node, transfer_size);
++      ret = copy_to_user(pext->ResponseAdr, ptmp_hba_node, transfer_size);
+       if (ret) {
+               pext->Status = EXT_STATUS_COPY_ERR;
+               DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buffer.\n",
+@@ -1708,7 +1480,7 @@ qla2x00_query_hba_port(scsi_qla_host_t *
+       }
+       port_cnt = 0;
+-      for (fcport = ha->fcport; (fcport); fcport = fcport->next) {
++      list_for_each_entry(fcport, &ha->fcports, list) {
+               /* if removed or missing */
+               if (atomic_read(&fcport->state) != FC_ONLINE) {
+                       DEBUG9_10(printk(
+@@ -1748,11 +1520,10 @@ qla2x00_query_hba_port(scsi_qla_host_t *
+       ptmp_hba_port->DiscPortCount   = port_cnt;
+       ptmp_hba_port->DiscTargetCount = tgt_cnt;
+-      if (ha->loop_state == LOOP_DOWN) {
+-
++      if (atomic_read(&ha->loop_state) == LOOP_DOWN ||
++          atomic_read(&ha->loop_state) == LOOP_DEAD) {
+               ptmp_hba_port->State = EXT_DEF_HBA_LOOP_DOWN;
+-
+-      } else if (ha->loop_state != LOOP_READY ||
++      } else if (atomic_read(&ha->loop_state) != LOOP_READY ||
+           test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags) ||
+           test_bit(CFG_ACTIVE, &ha->cfg_flags) || ABORTS_ACTIVE) {
+@@ -1796,24 +1567,13 @@ qla2x00_query_hba_port(scsi_qla_host_t *
+       ptmp_hba_port->PortSpeed = ha->current_speed;
+-      ret = verify_area(VERIFY_WRITE, (void *)pext->ResponseAdr ,
+-          sizeof(EXT_HBA_PORT));
+-      if (ret) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("%s(%ld): inst=%ld ERROR verify wrt rsp buf\n",
+-                  __func__, ha->host_no, ha->instance);)
+-              qla2x00_free_ioctl_scrap_mem(ha);
+-              return (ret);
+-      }
+-
+       /* now copy up the HBA_PORT to user */
+       if (pext->ResponseLen < sizeof(EXT_HBA_PORT))
+               transfer_size = pext->ResponseLen;
+       else
+               transfer_size = sizeof(EXT_HBA_PORT);
+-      ret = copy_to_user((uint8_t *)pext->ResponseAdr,
+-          (uint8_t *)ptmp_hba_port, transfer_size);
++      ret = copy_to_user(pext->ResponseAdr, ptmp_hba_port, transfer_size);
+       if (ret) {
+               pext->Status = EXT_STATUS_COPY_ERR;
+               DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buffer.\n",
+@@ -1856,12 +1616,17 @@ qla2x00_query_disc_port(scsi_qla_host_t 
+       fc_port_t       *fcport;
+       os_tgt_t        *tq;
+       EXT_DISC_PORT   *ptmp_disc_port;
++      int found;
+       DEBUG9(printk("%s(%ld): inst=%ld entered. Port inst=%02d.\n",
+           __func__, ha->host_no, ha->instance, pext->Instance);)
+       inst = 0;
+-      for (fcport = ha->fcport; fcport != NULL; fcport = fcport->next) {
++      found = 0;
++      list_for_each_entry(fcport, &ha->fcports, list) {
++              if(fcport->port_type != FCT_TARGET)
++                      continue;
++
+               if (atomic_read(&fcport->state) != FC_ONLINE) {
+                       /* port does not exist anymore */
+                       DEBUG9_10(printk("%s(%ld): fcport marked lost. "
+@@ -1896,10 +1661,11 @@ qla2x00_query_disc_port(scsi_qla_host_t 
+                   fcport->loop_id);)
+               /* Found the matching port still connected. */
++              found++;
+               break;
+       }
+-      if (fcport == NULL) {
++      if (!found) {
+               DEBUG9_10(printk("%s(%ld): inst=%ld dev not found.\n",
+                   __func__, ha->host_no, ha->instance);)
+@@ -1961,24 +1727,13 @@ qla2x00_query_disc_port(scsi_qla_host_t 
+               }
+       }
+-      ret = verify_area(VERIFY_WRITE, (void *)pext->ResponseAdr ,
+-          sizeof(EXT_DISC_PORT));
+-      if (ret) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("%s(%ld): inst=%ld ERROR verify wrt rsp buf\n",
+-                  __func__, ha->host_no, ha->instance);)
+-              qla2x00_free_ioctl_scrap_mem(ha);
+-              return (ret);
+-      }
+-
+       /* now copy up the DISC_PORT to user */
+       if (pext->ResponseLen < sizeof(EXT_DISC_PORT))
+               transfer_size = pext->ResponseLen;
+       else
+               transfer_size = sizeof(EXT_DISC_PORT);
+-      ret = copy_to_user((uint8_t *)pext->ResponseAdr,
+-          (uint8_t *)ptmp_disc_port, transfer_size);
++      ret = copy_to_user(pext->ResponseAdr, ptmp_disc_port, transfer_size);
+       if (ret) {
+               pext->Status = EXT_STATUS_COPY_ERR;
+               DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buffer.\n",
+@@ -1997,6 +1752,26 @@ qla2x00_query_disc_port(scsi_qla_host_t 
+       return (ret);
+ }
++UINT8
++qla2x00_is_fcport_in_config(scsi_qla_host_t *ha, fc_port_t *fcport)
++{
++#if !defined(ISP200)
++      if (ha->flags.failover_enabled) {
++              return (qla2x00_is_fcport_in_foconfig(ha, fcport));
++      } else
++#endif
++      {
++              fc_port_t *fciter;
++
++              list_for_each_entry(fciter, &ha->fcports, list) {
++                      if (memcmp(fcport->port_name, fciter->port_name,
++                          EXT_DEF_WWN_NAME_SIZE) == 0)
++                              return(TRUE);
++              }
++      }
++      return (FALSE);
++}
++
+ /*
+  * qla2x00_query_disc_tgt
+  *    Handles EXT_SC_QUERY_DISC_TGT subcommand.
+@@ -2068,7 +1843,17 @@ qla2x00_query_disc_tgt(scsi_qla_host_t *
+       }
+       tgt_fcport = tq->vis_port;
+-      memcpy(ptmp_disc_target->WWNN, tgt_fcport->node_name, WWN_SIZE);
++
++      if (tgt_fcport->flags & FC_XP_DEVICE) {
++              memcpy(ptmp_disc_target->WWNN, tq->node_name, WWN_SIZE);
++      DEBUG9(printk("%s(%ld): inst=%ld using 1 target node name.\n",
++          __func__, ha->host_no, ha->instance);)
++      } else {
++              memcpy(ptmp_disc_target->WWNN, tgt_fcport->node_name, WWN_SIZE);
++      DEBUG9(printk("%s(%ld): inst=%ld using 1 fcport node name.\n",
++          __func__, ha->host_no, ha->instance);)
++      }
++
+       memcpy(ptmp_disc_target->WWPN, tgt_fcport->port_name, WWN_SIZE);
+       ptmp_disc_target->Id[0] = 0;
+@@ -2128,24 +1913,13 @@ qla2x00_query_disc_tgt(scsi_qla_host_t *
+           tgt_fcport->port_name[7],
+           cnt);)
+-      ret = verify_area(VERIFY_WRITE, (void *)pext->ResponseAdr,
+-          sizeof(EXT_DISC_TARGET));
+-      if (ret) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("%s(%ld): inst=%ld ERROR verify wrt rsp buf\n",
+-                  __func__, ha->host_no, ha->instance);)
+-              qla2x00_free_ioctl_scrap_mem(ha);
+-              return (ret);
+-      }
+-
+       /* now copy up the DISC_PORT to user */
+       if (pext->ResponseLen < sizeof(EXT_DISC_PORT))
+               transfer_size = pext->ResponseLen;
+       else
+               transfer_size = sizeof(EXT_DISC_TARGET);
+-      ret = copy_to_user((uint8_t *)pext->ResponseAdr,
+-          (uint8_t *)ptmp_disc_target, transfer_size);
++      ret = copy_to_user(pext->ResponseAdr, ptmp_disc_target, transfer_size);
+       if (ret) {
+               pext->Status = EXT_STATUS_COPY_ERR;
+               DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buffer.\n",
+@@ -2220,24 +1994,13 @@ qla2x00_query_chip(scsi_qla_host_t *ha, 
+       for (i = 0; i < 8; i++)
+               ptmp_isp->OutMbx[i] = 0;
+-      ret = verify_area(VERIFY_WRITE, (void *)pext->ResponseAdr,
+-          sizeof(EXT_CHIP));
+-      if (ret) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("%s(%ld): inst=%ld ERROR verify wrt rsp buf\n",
+-                  __func__, ha->host_no, ha->instance);)
+-              qla2x00_free_ioctl_scrap_mem(ha);
+-              return (ret);
+-      }
+-
+       /* now copy up the ISP to user */
+       if (pext->ResponseLen < sizeof(EXT_CHIP))
+               transfer_size = pext->ResponseLen;
+       else
+               transfer_size = sizeof(EXT_CHIP);
+-      ret = copy_to_user((uint8_t *)pext->ResponseAdr, (uint8_t *)ptmp_isp,
+-          transfer_size);
++      ret = copy_to_user(pext->ResponseAdr, ptmp_isp, transfer_size);
+       if (ret) {
+               pext->Status = EXT_STATUS_COPY_ERR;
+               DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buffer.\n",
+@@ -2349,18 +2112,8 @@ qla2x00_get_statistics(scsi_qla_host_t *
+       DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+           __func__, ha->host_no, ha->instance);)
+-      ret = verify_area(VERIFY_WRITE, (void *)pext->ResponseAdr,
+-          sizeof(EXT_HBA_PORT_STAT));
+-      if (ret) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("%s(%ld): inst=%ld ERROR VERIFY_WRITE "
+-                  "EXT_HBA_PORT_STAT.\n",
+-                  __func__, ha->host_no, ha->instance);)
+-              return (ret);
+-      }
+-
+       /* check on loop down */
+-      if (ha->loop_state != LOOP_READY || 
++      if (atomic_read(&ha->loop_state) != LOOP_READY || 
+           test_bit(CFG_ACTIVE, &ha->cfg_flags) ||
+           (test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags)) ||
+           ABORTS_ACTIVE || ha->dpc_active) {
+@@ -2415,6 +2168,13 @@ qla2x00_get_statistics(scsi_qla_host_t *
+          ptmp_stat->TotalInterrupts        =  ha->total_isr_cnt;
+        */
++      ptmp_stat->InputRequestCount = ha->total_input_cnt;
++      ptmp_stat->OutputRequestCount = ha->total_output_cnt;
++      ptmp_stat->ControlRequestCount = ha->total_ctrl_cnt;
++      /* convert to MB */
++      ptmp_stat->InputMBytes = ha->total_input_bytes >> 20;
++      ptmp_stat->OutputMBytes = ha->total_output_bytes >> 20;
++
+       ptmp_stat->TotalLinkFailures               = stat_buf.link_fail_cnt;
+       ptmp_stat->TotalLossOfSync                 = stat_buf.loss_sync_cnt;
+       ptmp_stat->TotalLossOfSignals              = stat_buf.loss_sig_cnt;
+@@ -2422,6 +2182,25 @@ qla2x00_get_statistics(scsi_qla_host_t *
+       ptmp_stat->InvalidTransmissionWordCount    = stat_buf.inval_xmit_word_cnt;
+       ptmp_stat->InvalidCRCCount                 = stat_buf.inval_crc_cnt;
++      DEBUG9(printk("%s(%ld): inst=%ld Got following HBA statistics:\n"
++          "isp_aborts=%d device_err=%d total_io=%d total MB=%d LIP "
++          "resets=%d\n"
++          "input cnt=%lld MB=%lld output cnt=%lld MB=%lld ctrl cnt=%lld\n"
++          "link failure=%d loss sync=%d loss signal=%d prim seq err=%d "
++          "invalid word %d invalid CRC=%d.\n",
++          __func__, ha->host_no, ha->instance,
++          ptmp_stat->ControllerErrorCount, ptmp_stat->DeviceErrorCount,
++          ptmp_stat->TotalIoCount, ptmp_stat->TotalMBytes,
++          ptmp_stat->TotalLipResets,
++          ptmp_stat->InputRequestCount, ptmp_stat->InputMBytes,
++          ptmp_stat->OutputRequestCount, ptmp_stat->OutputMBytes,
++          ptmp_stat->ControlRequestCount,
++          ptmp_stat->TotalLinkFailures, ptmp_stat->TotalLossOfSync,
++          ptmp_stat->TotalLossOfSignals,
++          ptmp_stat->PrimitiveSeqProtocolErrorCount,
++          ptmp_stat->InvalidTransmissionWordCount,
++          ptmp_stat->InvalidCRCCount);)
++
+       /* now copy up the STATISTICS to user */
+       if (pext->ResponseLen < sizeof(EXT_HBA_PORT_STAT))
+               transfer_size = pext->ResponseLen;
+@@ -2480,20 +2259,12 @@ qla2x00_get_fc_statistics(scsi_qla_host_
+       uint8_t         *req_name;
+       uint16_t        mb_stat[1];
+       uint32_t        transfer_size;
++      int     found;
+       DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+           __func__, ha->host_no, ha->instance);)
+-      ret = verify_area(VERIFY_WRITE, (void *)pext->ResponseAdr,
+-          sizeof(EXT_HBA_PORT_STAT));
+-      if (ret) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("%s(%ld): inst=%ld ERROR VERIFY_WRITE.\n",
+-                  __func__, ha->host_no, ha->instance);)
+-              return (ret);
+-      }
+-
+       ret = copy_from_user(&addr_struct, pext->RequestAdr, pext->RequestLen);
+       if (ret) {
+               pext->Status = EXT_STATUS_COPY_ERR;
+@@ -2503,12 +2274,14 @@ qla2x00_get_fc_statistics(scsi_qla_host_
+       }
+       /* find the device's loop_id */
++      found = 0;
+       switch (addr_struct.DestType) {
+       case EXT_DEF_DESTTYPE_WWPN:
+               req_name = addr_struct.DestAddr.WWPN;
+-              for (fcport = ha->fcport; fcport; fcport = fcport->next) {
++              list_for_each_entry(fcport, &ha->fcports, list) {
+                       if (memcmp(fcport->port_name, req_name,
+                           EXT_DEF_WWN_NAME_SIZE) == 0) {
++                              found++;
+                               break;
+                       }
+               }
+@@ -2528,7 +2301,7 @@ qla2x00_get_fc_statistics(scsi_qla_host_
+               break;
+       }
+-      if (fcport == NULL) {
++      if (!found) {
+               /* not found */
+               DEBUG9_10(printk("%s(%ld): inst=%ld ERROR device port %02x%02x"
+                   "%02x%02x%02x%02x%02x%02x not found.\n",
+@@ -2568,7 +2341,7 @@ qla2x00_get_fc_statistics(scsi_qla_host_
+        */
+       /* check on loop down */
+-      if (ha->loop_state != LOOP_READY ||
++      if (atomic_read(&ha->loop_state) != LOOP_READY ||
+           test_bit(CFG_ACTIVE, &ha->cfg_flags) ||
+           (test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags)) ||
+           ABORTS_ACTIVE || ha->dpc_active) {
+@@ -2677,6 +2450,7 @@ qla2x00_get_port_summary(scsi_qla_host_t
+       uint32_t        port_cnt = 0;
+       uint32_t        top_xfr_size;
+       uint32_t        usr_no_of_entries = 0;
++      uint32_t        device_types;
+       void            *start_of_entry_list;
+       fc_port_t       *fcport;
+@@ -2691,9 +2465,9 @@ qla2x00_get_port_summary(scsi_qla_host_t
+               /* not enough memory */
+               pext->Status = EXT_STATUS_NO_MEMORY;
+               DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+-                  "pdevicedata requested=%d.\n",
++                  "pdevicedata requested=%ld.\n",
+                   __func__, ha->host_no, ha->instance,
+-                  sizeof(EXT_DEVICEDATA));)
++                  (ulong)sizeof(EXT_DEVICEDATA));)
+               return (ret);
+       }
+@@ -2702,9 +2476,22 @@ qla2x00_get_port_summary(scsi_qla_host_t
+               /* not enough memory */
+               pext->Status = EXT_STATUS_NO_MEMORY;
+               DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+-                  "pdd_entry requested=%d.\n",
++                  "pdd_entry requested=%ld.\n",
+                   __func__, ha->host_no, ha->instance,
+-                  sizeof(EXT_DEVICEDATAENTRY));)
++                  (ulong)sizeof(EXT_DEVICEDATAENTRY));)
++              qla2x00_free_ioctl_scrap_mem(ha);
++              return (ret);
++      }
++
++      /* Get device types to query. */
++      device_types = 0;
++      ret = copy_from_user(&device_types, pext->RequestAdr,
++          sizeof(device_types));
++      if (ret) {
++              pext->Status = EXT_STATUS_COPY_ERR;
++              DEBUG9_10(printk("%s(%ld): inst=%ld ERROR"
++                  "copy_from_user() of struct failed (%d).\n",
++                  __func__, ha->host_no, ha->instance, ret);)
+               qla2x00_free_ioctl_scrap_mem(ha);
+               return (ret);
+       }
+@@ -2719,9 +2506,8 @@ qla2x00_get_port_summary(scsi_qla_host_t
+       start_of_entry_list = (void *)(pext->ResponseAdr) + top_xfr_size;
+       /* Start copying from devices that exist. */
+-      ret = qla2x00_get_fcport_summary(ha, pdd_entry,
+-          start_of_entry_list, usr_no_of_entries,
+-          &entry_cnt, &pext->Status);
++      ret = qla2x00_get_fcport_summary(ha, pdd_entry, start_of_entry_list,
++          device_types, usr_no_of_entries, &entry_cnt, &pext->Status);
+       DEBUG9(printk("%s(%ld): after get_fcport_summary, entry_cnt=%d.\n",
+           __func__, ha->host_no, entry_cnt);)
+@@ -2731,15 +2517,20 @@ qla2x00_get_port_summary(scsi_qla_host_t
+        */
+       if (ret == 0) {
+               if (!ha->flags.failover_enabled) {
++#if 0
+                       ret = qla2x00_std_missing_port_summary(ha, pdd_entry,
+                           start_of_entry_list, usr_no_of_entries,
+                           &entry_cnt, &pext->Status);
+-              } else {
++#endif
++              }
++#if !defined(ISP200)
++              else {
+                       ret = qla2x00_fo_missing_port_summary(ha, pdd_entry,
+                           start_of_entry_list, usr_no_of_entries,
+                           &entry_cnt, &pext->Status);
+               }
++#endif
+       }
+       DEBUG9(printk(
+@@ -2754,8 +2545,11 @@ qla2x00_get_port_summary(scsi_qla_host_t
+       }
+       pdevicedata->ReturnListEntryCount = entry_cnt;
+-      for (fcport = ha->fcport; fcport != NULL; fcport = fcport->next) {
++      list_for_each_entry(fcport, &ha->fcports, list) {
+               /* count all ports that exist */
++              if (fcport->port_type != FCT_TARGET)
++                      continue;
++      
+               port_cnt++;
+       }
+       if (port_cnt > entry_cnt)
+@@ -2771,16 +2565,6 @@ qla2x00_get_port_summary(scsi_qla_host_t
+       /* copy top of devicedata, which is everything other than the
+        * actual entry list data.
+        */
+-      ret = verify_area(VERIFY_WRITE, (void *)(pext->ResponseAdr),
+-          top_xfr_size);
+-      if (ret) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("%s(%ld): inst=%ld ERROR verify wrt rsp buf\n",
+-                  __func__, ha->host_no, ha->instance);)
+-              qla2x00_free_ioctl_scrap_mem(ha);
+-              return (ret);
+-      }
+-
+       usr_temp   = (uint8_t *)pext->ResponseAdr;
+       kernel_tmp = (uint8_t *)pdevicedata;
+       ret = copy_to_user(usr_temp, kernel_tmp, top_xfr_size);
+@@ -2825,8 +2609,8 @@ qla2x00_get_port_summary(scsi_qla_host_t
+  */
+ STATIC int
+ qla2x00_get_fcport_summary(scsi_qla_host_t *ha, EXT_DEVICEDATAENTRY *pdd_entry,
+-    void *pstart_of_entry_list, uint32_t max_entries, uint32_t *pentry_cnt,
+-    uint32_t *ret_status)
++    void *pstart_of_entry_list, uint32_t device_types, uint32_t max_entries,
++    uint32_t *pentry_cnt, uint32_t *ret_status)
+ {
+       int             ret = QL_STATUS_SUCCESS;
+       uint8_t         *usr_temp, *kernel_tmp;
+@@ -2836,12 +2620,31 @@ qla2x00_get_fcport_summary(scsi_qla_host
+       uint32_t        transfer_size;
+       fc_port_t       *fcport;
+       os_tgt_t        *tq;
++#if !defined(ISP200)
++      mp_host_t       *host = NULL;
++      uint16_t        idx;
++      mp_device_t     *tmp_dp = NULL;
++#endif
+       DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+           __func__, ha->host_no, ha->instance);)
+-      for (fcport = ha->fcport; fcport && *pentry_cnt < max_entries;
+-          fcport = fcport->next) {
++      list_for_each_entry(fcport, &ha->fcports, list) {
++              if (*pentry_cnt >= max_entries)
++                      break;
++
++              if (fcport->port_type != FCT_TARGET) {
++                      /* Don't report initiators or broadcast devices. */
++                      DEBUG2_9_10(printk("%s(%ld): not reporting non-target "
++                          "fcport %02x%02x%02x%02x%02x%02x%02x%02x. "
++                          "port_type=%x.\n",
++                          __func__, ha->host_no, fcport->port_name[0],
++                          fcport->port_name[1], fcport->port_name[2],
++                          fcport->port_name[3], fcport->port_name[4],
++                          fcport->port_name[5], fcport->port_name[6],
++                          fcport->port_name[7], fcport->port_type));
++                      continue;
++              }
+               if ((atomic_read(&fcport->state) != FC_ONLINE) &&
+                   !qla2x00_is_fcport_in_config(ha, fcport)) {
+@@ -2861,9 +2664,6 @@ qla2x00_get_fcport_summary(scsi_qla_host
+               /* copy from fcport to dd_entry */
+-              memcpy(pdd_entry->NodeWWN, fcport->node_name, WWN_SIZE);
+-              memcpy(pdd_entry->PortWWN, fcport->port_name, WWN_SIZE);
+-
+               for (b = 0; b < 3 ; b++)
+                       pdd_entry->PortID[b] = fcport->d_id.r.d_id[2-b];
+@@ -2885,10 +2685,56 @@ qla2x00_get_fcport_summary(scsi_qla_host
+                       if (memcmp(fcport->port_name, tq->vis_port->port_name,
+                           EXT_DEF_WWN_NAME_SIZE) == 0) {
++
+                               pdd_entry->TargetAddress.Target = tgt;
++
++                              if ((fcport->flags & FC_XP_DEVICE) &&
++                                  !(device_types &
++                                      EXT_DEF_GET_TRUE_NN_DEVICE)) {
++                                      memcpy(pdd_entry->NodeWWN,
++                                          tq->node_name, WWN_SIZE);
++                              } else {
++                                      memcpy(pdd_entry->NodeWWN,
++                                          fcport->node_name, WWN_SIZE);
++                              }
++
+                               break;
+                       }
+               }
++
++              if (tgt == MAX_TARGETS) {
++                      /* did not bind to a target */
++/*
++                              memcpy(pdd_entry->NodeWWN,
++                                  tq->node_name, WWN_SIZE);
++*/
++#if !defined(ISP200)
++                      if (ha->flags.failover_enabled) {
++                              if (((host = qla2x00_cfg_find_host(ha)) != NULL)
++                                      && (fcport->flags & FC_XP_DEVICE) &&
++                                      !(device_types &
++                                          EXT_DEF_GET_TRUE_NN_DEVICE)) {
++                                      if((tmp_dp = 
++                                          qla2x00_find_mp_dev_by_portname(
++                                              host, fcport->port_name, &idx))
++                                                      != NULL)
++                                      memcpy(pdd_entry->NodeWWN,
++                                              tmp_dp->nodename, WWN_SIZE);
++                              }
++/* XXX */
++                              else
++                                      memcpy(pdd_entry->NodeWWN,
++                                          fcport->node_name, WWN_SIZE);
++                      } else 
++#endif
++                      {
++                              memcpy(pdd_entry->NodeWWN,
++                                  fcport->node_name, WWN_SIZE);
++                      }
++              }
++
++              memcpy(pdd_entry->PortWWN, fcport->port_name, WWN_SIZE);
++
+               pdd_entry->TargetAddress.Lun    = 0;
+               pdd_entry->DeviceFlags          = 0;
+               pdd_entry->LoopID               = fcport->loop_id;
+@@ -2905,18 +2751,6 @@ qla2x00_get_fcport_summary(scsi_qla_host
+               current_offset = *pentry_cnt * sizeof(EXT_DEVICEDATAENTRY);
+               transfer_size = sizeof(EXT_DEVICEDATAENTRY);
+-              ret = verify_area(VERIFY_WRITE,
+-                  (uint8_t *)pstart_of_entry_list + current_offset,
+-                  transfer_size);
+-
+-              if (ret) {
+-                      *ret_status = EXT_STATUS_COPY_ERR;
+-                      DEBUG9_10(printk("%s(%ld): inst=%ld ERROR verify WRITE "
+-                          "rsp bufaddr=%p\n",
+-                          __func__, ha->host_no, ha->instance,
+-                          (uint8_t *)pstart_of_entry_list + current_offset);)
+-                      return (ret);
+-              }
+               /* now copy up this dd_entry to user */
+               usr_temp = (uint8_t *)pstart_of_entry_list + current_offset;
+@@ -2944,6 +2778,9 @@ qla2x00_get_fcport_summary(scsi_qla_host
+  * qla2x00_fo_missing_port_summary is in qla_fo.c
+  */
++//RUBY: Do we need this with the new consolidated fcports list?  This will
++//    be handled transparently in qla2x00_get_fcport_summary().
++#if 0
+ /*
+  * qla2x00_std_missing_port_summary
+  *    Returns values of devices not connected but found in configuration
+@@ -3027,36 +2864,22 @@ qla2x00_std_missing_port_summary(scsi_ql
+                           sizeof(EXT_DEVICEDATAENTRY);
+                       transfer_size = sizeof(EXT_DEVICEDATAENTRY);
+-                      ret = verify_area(VERIFY_WRITE,
+-                          (uint8_t *)pstart_of_entry_list + current_offset,
+-                          transfer_size);
+-                      if (ret == 0) {
+-
+-                              /* now copy up this dd_entry to user */
+-                              usr_temp = (uint8_t *)pstart_of_entry_list +
+-                                  current_offset;
+-                              kernel_tmp = (uint8_t *)pdd_entry;
+-                              ret = copy_to_user(usr_temp, kernel_tmp,
+-                                  transfer_size);
+-                              if (ret) {
+-                                      *ret_status = EXT_STATUS_COPY_ERR;
+-                                      DEBUG9_10(printk("%s(%ld): inst=%ld "
+-                                          "ERROR copy rsp list buffer.\n",
+-                                          __func__, ha->host_no,
+-                                          ha->instance);)
+-                                      break;
+-                              } else {
+-                                      *pentry_cnt+=1;
+-                              }
+-                      } else {
++                      /* now copy up this dd_entry to user */
++                      usr_temp = (uint8_t *)pstart_of_entry_list +
++                          current_offset;
++                      kernel_tmp = (uint8_t *)pdd_entry;
++                      ret = copy_to_user(usr_temp, kernel_tmp,
++                          transfer_size);
++                      if (ret) {
+                               *ret_status = EXT_STATUS_COPY_ERR;
+                               DEBUG9_10(printk("%s(%ld): inst=%ld "
+-                                  "ERROR verify wrt rsp bufaddr=%p\n",
+-                                  __func__, ha->host_no, ha->instance,
+-                                  (uint8_t *)pstart_of_entry_list +
+-                                  current_offset);)
++                                  "ERROR copy rsp list buffer.\n",
++                                  __func__, ha->host_no,
++                                  ha->instance);)
+                               break;
++                      } else {
++                              *pentry_cnt+=1;
+                       }
+               }
+@@ -3070,7 +2893,7 @@ qla2x00_std_missing_port_summary(scsi_ql
+       return (ret);
+ }
+-
++#endif
+ /*
+  * qla2x00_query_driver
+@@ -3127,16 +2950,6 @@ qla2x00_query_driver(scsi_qla_host_t *ha
+       else
+               transfer_size = sizeof(EXT_DRIVER);
+-      ret = verify_area(VERIFY_WRITE, (void *)pext->ResponseAdr ,
+-          transfer_size);
+-      if (ret) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG10(printk("%s(%ld): inst=%ld ERROR verify wrt rsp buf.\n",
+-                  __func__, ha->host_no, ha->instance);)
+-              qla2x00_free_ioctl_scrap_mem(ha);
+-              return (ret);
+-      }
+-
+       /* now copy up the ISP to user */
+       usr_temp   = (uint8_t *)pext->ResponseAdr;
+       kernel_tmp = (uint8_t *)pdriver_prop;
+@@ -3206,16 +3019,6 @@ qla2x00_query_fw(scsi_qla_host_t *ha, EX
+       transfer_size = sizeof(EXT_FW);
+-      ret = verify_area(VERIFY_WRITE, (void *)pext->ResponseAdr ,
+-          transfer_size);
+-      if (ret) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG10(printk("%s(%ld): inst=%ld ERROR verify wrt rsp buf.\n",
+-                  __func__, ha->host_no, ha->instance);)
+-              qla2x00_free_ioctl_scrap_mem(ha);
+-              return (ret);
+-      }
+-
+       usr_temp   = (uint8_t *)pext->ResponseAdr;
+       kernel_tmp = (uint8_t *)pfw_prop;
+       ret = copy_to_user(usr_temp, kernel_tmp, transfer_size);
+@@ -3288,17 +3091,6 @@ qla2x00_msiocb_passthru(scsi_qla_host_t 
+                   __func__, ha->host_no, ha->instance);)
+       }
+-      ret = verify_area(VERIFY_READ, (void *)pext->RequestAdr,
+-          pext->RequestLen);
+-      if (ret) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk(
+-                  "%s(%ld): inst=%ld ERROR verify read req buf\n",
+-                  __func__, ha->host_no, ha->instance);)
+-
+-              return (ret);
+-      }
+-
+       DEBUG9(printk("%s(%ld): inst=%ld req buf verified.\n",
+           __func__, ha->host_no, ha->instance);)
+@@ -3390,24 +3182,19 @@ qla2x00_send_els_passthru(scsi_qla_host_
+ {
+       int             ret = 0;
+-      uint8_t         index;
+       uint8_t         invalid_wwn = FALSE;
+-      uint8_t         port_found;
+       uint8_t         *ptmp_stat;
+       uint8_t         *pusr_req_buf;
+       uint8_t         *presp_payload;
+       uint32_t        payload_len;
+       uint32_t        usr_req_len;
+-      fcdev_t         tmpdev;
+-
+-      fc_port_t       *pfcport;
++      int             found;
++      uint16_t        next_loop_id;
++      fc_port_t       *fcport;
+       EXT_ELS_PT_REQ  *pels_pt_req;
+-      struct list_head *fcil;
+-      fc_initiator_t  *fcinitiator;
+-
+       DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+           __func__, ha->host_no, ha->instance);)
+@@ -3464,7 +3251,7 @@ qla2x00_send_els_passthru(scsi_qla_host_
+           __func__, ha->host_no, ha->instance);)
+       
+       /* check on loop down (1) */
+-      if (ha->loop_state != LOOP_READY || 
++      if (atomic_read(&ha->loop_state) != LOOP_READY || 
+           test_bit(CFG_ACTIVE, &ha->cfg_flags) ||
+           (test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags)) || ABORTS_ACTIVE) {
+@@ -3528,147 +3315,62 @@ qla2x00_send_els_passthru(scsi_qla_host_
+       /* Now find the loop ID */
+       /************************/
+-      /* 1st: scan thru our HBA database */
+-      index = 0;
+-      port_found = FALSE;
+-      fcinitiator = NULL;
+-      if (!invalid_wwn) {
+-              /* search with WWPN */
+-              list_for_each(fcil, &ha->fcinitiators) {
+-                      fcinitiator = list_entry(fcil, fc_initiator_t, list);
+-
+-                      if (memcmp(pels_pt_req->WWPN, fcinitiator->port_name,
+-                               EXT_DEF_WWN_NAME_SIZE) == 0) {
+-
+-                              port_found = TRUE;
+-                              pels_pt_req->Lid = fcinitiator->loop_id;
+-
+-                              DEBUG9(printk("%s(%ld): inst=%ld found host "
+-                                  "w/ WWN. loop_id = %02x.\n",
+-                                  __func__, ha->host_no, ha->instance,
+-                                  pels_pt_req->Lid);)
++      found = 0;
++      fcport = NULL;
++      list_for_each_entry(fcport, &ha->fcports, list) {
++              if (fcport->port_type != FCT_INITIATOR ||
++                  fcport->port_type != FCT_TARGET)
++                      continue;
+-                              break;
+-                      }
++              if (!invalid_wwn) {
++                      /* search with WWPN */
++                      if (memcmp(pels_pt_req->WWPN, fcport->port_name,
++                          EXT_DEF_WWN_NAME_SIZE))
++                              continue;
++              } else {
++                      /* search with PID */
++                      if (pels_pt_req->Id[1] != fcport->d_id.r.d_id[2]
++                          || pels_pt_req->Id[2] != fcport->d_id.r.d_id[1]
++                          || pels_pt_req->Id[3] != fcport->d_id.r.d_id[0])
++                              continue;
+               }
+-      } else {
+-              /* search with PID */
+-              list_for_each(fcil, &ha->fcinitiators) {
+-                      fcinitiator = list_entry(fcil, fc_initiator_t, list);
+-
+-                      if (pels_pt_req->Id[1] == fcinitiator->d_id.r.d_id[2]
+-                          && pels_pt_req->Id[2] == fcinitiator->d_id.r.d_id[1]
+-                          && pels_pt_req->Id[3] ==
+-                                  fcinitiator->d_id.r.d_id[0]) {
+-
+-                              port_found = TRUE;
+-                              pels_pt_req->Lid = fcinitiator->loop_id;
+-
+-                              DEBUG9(printk("%s(%ld): inst=%ld found host "
+-                                  "w/ WWN. loop_id = %02x.\n",
+-                                  __func__, ha->host_no, ha->instance,
+-                                  pels_pt_req->Lid);)
+-                              break;
+-                      }
+-              }
++              found++;
+       }
+-      /* If this is for a host device, check if we need to perform login */
+-      if (port_found && (fcinitiator->loop_id >= LAST_SNS_LOOP_ID)) {
+-
+-              DEBUG9_10(printk("%s(%ld): inst=%ld need to relogin to "
+-                  "dest host.\n",
++      if (!found) {
++              /* invalid WWN or PID specified */
++              pext->Status = EXT_STATUS_INVALID_PARAM;
++              DEBUG9_10(printk("%s(%ld): inst=%ld ERROR WWPN/PID invalid.\n",
+                   __func__, ha->host_no, ha->instance);)
+-              if (fcinitiator->d_id.b24 == 0) {
+-                      /* Either RSCN hasn't been processed yet or
+-                       * this host is no longer connected to us.
+-                       */
+-                      pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+-                      DEBUG9_10(printk("%s(%ld): inst=%ld ERROR dest host "
+-                          "port lost.\n",
+-                          __func__, ha->host_no, ha->instance);)
+-
+-                      return (ret);
+-              }
++              return (ret);
++      }
+-              /* login and update database */
+-              tmpdev.d_id.b24 = fcinitiator->d_id.b24;
+-              tmpdev.loop_id = fcinitiator->loop_id;
++      /* If this is for a host device, check if we need to perform login */
++      if (fcport->port_type == FCT_INITIATOR &&
++          fcport->loop_id >= SNS_LAST_LOOP_ID) {
+-              if (qla2x00_host_relogin(ha, &tmpdev) != 0) {
++              next_loop_id = 0;
++              ret = qla2x00_fabric_login(ha, fcport, &next_loop_id);
++              if (ret != QL_STATUS_SUCCESS) {
+                       /* login failed. */
+                       pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+                       DEBUG9_10(printk("%s(%ld): inst=%ld ERROR login to "
+-                          "host port failed. loop_id=%02x pid=%06x ret=%d.\n",
+-                          __func__, ha->host_no, ha->instance, tmpdev.loop_id,
+-                          tmpdev.d_id.b24, ret);)
+-
+-                      return (ret);
+-              } else {
+-                      fcinitiator->loop_id = tmpdev.loop_id;
+-                      pels_pt_req->Lid = tmpdev.loop_id;
+-
+-                      DEBUG9(printk("%s(%ld): inst=%ld success login to "
+-                          "remote host; Lid=%02x.\n",
++                          "host port failed. loop_id=%02x pid=%02x%02x%02x "
++                          "ret=%d.\n",
+                           __func__, ha->host_no, ha->instance,
+-                          fcinitiator->loop_id);)
+-              }
+-      }
+-      
+-      /* 2nd: scan thru our fcport database */
+-      if (!invalid_wwn) {
+-              /* search with WWPN */
+-              for (pfcport = ha->fcport;
+-                  (!port_found) && pfcport != NULL; pfcport = pfcport->next) {
++                          fcport->loop_id, fcport->d_id.b.domain,
++                          fcport->d_id.b.area, fcport->d_id.b.al_pa, ret);)
+-                      if (memcmp(pfcport->port_name, pels_pt_req->WWPN,
+-                          EXT_DEF_WWN_NAME_SIZE) == 0) {
+-
+-                              port_found = TRUE;
+-                              pels_pt_req->Lid = pfcport->loop_id;
+-
+-                              DEBUG9(printk("%s(%ld): inst=%ld found fcport "
+-                                  "w/ WWN. loop_id = %02x.\n",
+-                                  __func__, ha->host_no, ha->instance,
+-                                  pels_pt_req->Lid);)
+-                              break;
+-                      }
+-              }
+-      } else {
+-              /* search with PID */
+-              for (pfcport = ha->fcport;
+-                  (!port_found) && pfcport != NULL; pfcport = pfcport->next) {
+-
+-                      if (pels_pt_req->Id[1] == pfcport->d_id.r.d_id[2]
+-                          && pels_pt_req->Id[2] == pfcport->d_id.r.d_id[1]
+-                          && pels_pt_req->Id[3] == pfcport->d_id.r.d_id[0]) {
+-
+-                              port_found = TRUE;
+-                              pels_pt_req->Lid = pfcport->loop_id;
+-
+-                              DEBUG9(printk("%s(%ld): inst=%ld found fcport "
+-                                  "w/ PID. loop_id = %02x.\n",
+-                                  __func__, ha->host_no, ha->instance,
+-                                  pels_pt_req->Lid);)
+-
+-                              break;
+-                      }
++                      return (ret);
+               }
+       }
+-      
+-      if (!port_found) {
+-              /* invalid WWN or PID specified */
+-              pext->Status = EXT_STATUS_INVALID_PARAM;
+-              DEBUG9_10(printk("%s(%ld): inst=%ld ERROR WWPN/PID invalid.\n",
+-                  __func__, ha->host_no, ha->instance);)
+-
+-              return (ret);
+-      }
+       /* queue command */
++      pels_pt_req->Lid = fcport->loop_id;
++
+       if ((ret = qla2x00_ioctl_ms_queuecommand(ha, pext, pscsi_cmd,
+           ptmp_fcport, ptmp_fclun, pels_pt_req))) {
+               return (ret);
+@@ -3701,20 +3403,8 @@ qla2x00_send_els_passthru(scsi_qla_host_
+       /* The data returned include FC frame header */
+       presp_payload = (uint8_t *)pext->ResponseAdr + sizeof(EXT_ELS_PT_REQ);
+-      ret = verify_area(VERIFY_WRITE, (void *)presp_payload, payload_len);
+-      if (ret) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-
+-              DEBUG9_10(printk("%s(%ld): inst=%ld ERROR verify wrt rsp "
+-                  "buffer. ha=%p.\n",
+-                  __func__, ha->host_no, ha->instance, ha);)
+-
+-              return (ret);
+-      }
+-
+       /* copy back data returned to response buffer */
+-      ret = copy_to_user(presp_payload, (uint8_t *)ha->ioctl_mem,
+-          payload_len);
++      ret = copy_to_user(presp_payload, ha->ioctl_mem, payload_len);
+       if (ret) {
+               pext->Status = EXT_STATUS_COPY_ERR;
+               DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buffer.\n",
+@@ -3729,6 +3419,57 @@ qla2x00_send_els_passthru(scsi_qla_host_
+ }
+ #endif
++#if defined(ISP200) 
++/*
++ * qla2x00_mgmt_svr_login
++ *    Login management server.
++ *
++ * Input:
++ *    ha:     adapter state pointer.
++ *
++ * Returns:
++ *    qla2x00 local function return status code.
++ *
++ * Context:
++ *    Kernel context.
++ */
++int
++qla2x00_mgmt_svr_login(scsi_qla_host_t *ha)
++{
++      int             tmp_rval = 0;
++      uint16_t        mb[MAILBOX_REGISTER_COUNT];
++
++      DEBUG13(printk("%s(%ld): entered\n",
++          __func__, ha->host_no);)
++
++      /* check on management server login status */
++      if (ha->flags.management_server_logged_in == 0) {
++              /* login to management server device */
++
++              tmp_rval = qla2x00_login_fabric(ha, MANAGEMENT_SERVER,
++                  0xff, 0xff, 0xfa, &mb[0], BIT_1);
++
++              if (tmp_rval != 0 || mb[0] != 0x4000) {
++
++                      DEBUG2_13(printk(
++                          "%s(%ld): inst=%ld ERROR login to MS.\n",
++                          __func__, ha->host_no, ha->instance);)
++
++                      return (QL_STATUS_ERROR);
++              }
++
++              ha->flags.management_server_logged_in = 1;
++              DEBUG13(printk("%s(%ld): success login to MS.\n",
++                  __func__, ha->host_no);)
++      }
++
++      DEBUG13(printk("%s(%ld): exiting.\n",
++          __func__, ha->host_no);)
++
++      return (QL_STATUS_SUCCESS);
++}
++#endif
++
+ /*
+  * qla2x00_send_fcct
+  *    Passes the FC CT command down to firmware as MSIOCB and
+@@ -3752,8 +3493,6 @@ qla2x00_send_fcct(scsi_qla_host_t *ha, E
+     int mode)
+ {
+       int             ret = 0;
+-      int             tmp_rval = 0;
+-      uint16_t        mb[MAILBOX_REGISTER_COUNT];
+       DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+@@ -3782,24 +3521,15 @@ qla2x00_send_fcct(scsi_qla_host_t *ha, E
+       DEBUG9(printk("%s(%ld): inst=%ld after copy request.\n",
+           __func__, ha->host_no, ha->instance);)
+-      /* check on management server login status */
+-      if (ha->flags.management_server_logged_in == 0) {
+-              /* login to management server device */
+-
+-              tmp_rval = qla2x00_login_fabric(ha, MANAGEMENT_SERVER,
+-                  0xff, 0xff, 0xfa, &mb[0], BIT_1);
+-
+-              if (tmp_rval != 0 || mb[0] != 0x4000) {
+-                      pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+-
+-                      DEBUG9_10(printk(
+-                          "%s(%ld): inst=%ld ERROR login to MS.\n",
+-                          __func__, ha->host_no, ha->instance);)
++      /* login to management server device */
++      if (qla2x00_mgmt_svr_login(ha) != QL_STATUS_SUCCESS) {
++              pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+-                      return (ret);
+-              }
++              DEBUG9_10(printk(
++                  "%s(%ld): inst=%ld mgmt_svr_login failed.\n",
++                  __func__, ha->host_no, ha->instance);)
+-              ha->flags.management_server_logged_in = 1;
++              return (ret);
+       }
+       DEBUG9(printk("%s(%ld): success login to MS.\n",
+@@ -3820,20 +3550,8 @@ qla2x00_send_fcct(scsi_qla_host_t *ha, E
+               return (ret);
+       }
+-      /* getting device data and putting in pext->ResponseAdr */
+-      ret = verify_area(VERIFY_WRITE, (void *)pext->ResponseAdr ,
+-          pext->ResponseLen);
+-      if (ret) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("%s(%ld): inst=%ld ERROR verify wrt rsp "
+-                  "buffer. ha=%p.\n",
+-                  __func__, ha->host_no, ha->instance, ha);)
+-              return (ret);
+-      }
+-
+       /* sending back data returned from Management Server */
+-      ret = copy_to_user((uint8_t *)pext->ResponseAdr,
+-          (uint8_t *)ha->ioctl_mem, pext->ResponseLen);
++      ret = copy_to_user(pext->ResponseAdr, ha->ioctl_mem, pext->ResponseLen);
+       if (ret) {
+               pext->Status = EXT_STATUS_COPY_ERR;
+               DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buffer.\n",
+@@ -3882,7 +3600,6 @@ qla2x00_ioctl_ms_queuecommand(scsi_qla_h
+       pfclun->fcport = pfcport;
+       pfclun->lun = 0;
+       pfclun->flags = 0;
+-      pfclun->next = NULL;
+       plq->fclun = pfclun;
+       plq->fclun->fcport->ha = ha;
+@@ -3891,7 +3608,7 @@ qla2x00_ioctl_ms_queuecommand(scsi_qla_h
+       pscsi_cmd->scsi_done = qla2x00_msiocb_done;
+       /* check on loop down (2)- check again just before sending cmd out. */
+-      if (ha->loop_state != LOOP_READY || 
++      if (atomic_read(&ha->loop_state) != LOOP_READY || 
+           test_bit(CFG_ACTIVE, &ha->cfg_flags) ||
+           (test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags)) ||
+           ABORTS_ACTIVE) {
+@@ -3982,8 +3699,12 @@ qla2x00_start_ms_cmd(scsi_qla_host_t *ha
+               usr_req_len = pext->RequestLen - sizeof(EXT_ELS_PT_REQ);
+               usr_resp_len = pext->ResponseLen - sizeof(EXT_ELS_PT_REQ);
+       
+-              pkt->control_flags = BIT_15; /* ELS passthru enabled */
++              pkt->control_flags = __constant_cpu_to_le16(CF_ELS_PASSTHRU);
++#if defined(EXTENDED_IDS)
++              pkt->loop_id = cpu_to_le16(pels_pt_req->Lid);
++#else
+               pkt->loop_id = pels_pt_req->Lid;
++#endif
+               pkt->type    = 1; /* ELS frame */
+               
+               if (pext->ResponseLen != 0) {
+@@ -3996,7 +3717,11 @@ qla2x00_start_ms_cmd(scsi_qla_host_t *ha
+       } else {
+               usr_req_len = pext->RequestLen;
+               usr_resp_len = pext->ResponseLen;
+-              pkt->loop_id     = MANAGEMENT_SERVER;
++#if defined(EXTENDED_IDS)
++              pkt->loop_id = __constant_cpu_to_le16(MANAGEMENT_SERVER);
++#else
++              pkt->loop_id = MANAGEMENT_SERVER;
++#endif
+       }
+       DEBUG9_10(printk("%s(%ld): inst=%ld using loop_id=%02x req_len=%d, "
+@@ -4004,22 +3729,22 @@ qla2x00_start_ms_cmd(scsi_qla_host_t *ha
+           __func__, ha->host_no, ha->instance,
+           pkt->loop_id, usr_req_len, usr_resp_len);)
+-      pkt->timeout = QLA_PT_CMD_TOV;
+-      pkt->cmd_dsd_count = 1;
+-      pkt->total_dsd_count = 2; /* no continuation */
+-      pkt->rsp_bytecount = usr_resp_len;
+-      pkt->req_bytecount = usr_req_len;
++      pkt->timeout = cpu_to_le16(ql2xioctltimeout);
++      pkt->cmd_dsd_count = __constant_cpu_to_le16(1);
++      pkt->total_dsd_count = __constant_cpu_to_le16(2); /* no continuation */
++      pkt->rsp_bytecount = cpu_to_le32(usr_resp_len);
++      pkt->req_bytecount = cpu_to_le32(usr_req_len);
+       /* loading command payload address. user request is assumed
+        * to have been copied to ioctl_mem.
+        */
+-      pkt->dseg_req_address[0] = LS_64BITS(ha->ioctl_mem_phys);
+-      pkt->dseg_req_address[1] = MS_64BITS(ha->ioctl_mem_phys);
++      pkt->dseg_req_address[0] = cpu_to_le32(LSD(ha->ioctl_mem_phys));
++      pkt->dseg_req_address[1] = cpu_to_le32(MSD(ha->ioctl_mem_phys));
+       pkt->dseg_req_length = usr_req_len;
+       /* loading response payload address */
+-      pkt->dseg_rsp_address[0] = LS_64BITS(ha->ioctl_mem_phys);
+-      pkt->dseg_rsp_address[1] = MS_64BITS(ha->ioctl_mem_phys);
++      pkt->dseg_rsp_address[0] = cpu_to_le32(LSD(ha->ioctl_mem_phys));
++      pkt->dseg_rsp_address[1] = cpu_to_le32(MSD(ha->ioctl_mem_phys));
+       pkt->dseg_rsp_length = usr_resp_len;
+       /* set flag to indicate IOCTL MSIOCB cmd in progress */
+@@ -4099,16 +3824,6 @@ qla2x00_wwpn_to_scsiaddr(scsi_qla_host_t
+               return (ret);
+       }
+-      ret = verify_area(VERIFY_READ, (void *)pext->RequestAdr,
+-          pext->RequestLen);
+-      if (ret) {
+-              DEBUG9_10(printk(
+-                  "%s(%ld): inst=%ld ERROR VERIFY_READ req buf\n",
+-                  __func__, ha->host_no, ha->instance);)
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              return (ret);
+-      }
+-
+       ret = copy_from_user(tmp_wwpn, pext->RequestAdr, pext->RequestLen);
+       if (ret) {
+               DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy_from_user "
+@@ -4166,17 +3881,7 @@ qla2x00_wwpn_to_scsiaddr(scsi_qla_host_t
+       if (pext->ResponseLen > sizeof(EXT_SCSI_ADDR))
+               pext->ResponseLen = sizeof(EXT_SCSI_ADDR);
+-      ret = verify_area(VERIFY_WRITE, (void *)pext->ResponseAdr,
+-          pext->ResponseLen);
+-      if (ret) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("%s(%ld): inst=%ld ERROR VERIFY wrt rsp buf\n",
+-                  __func__, ha->host_no, ha->instance);)
+-              return (ret);
+-      }
+-
+-      ret = copy_to_user((uint8_t *)pext->ResponseAdr, &tmp_addr,
+-          pext->ResponseLen);
++      ret = copy_to_user(pext->ResponseAdr, &tmp_addr, pext->ResponseLen);
+       if (ret) {
+               pext->Status = EXT_STATUS_COPY_ERR;
+               DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buffer.\n",
+@@ -4284,8 +3989,8 @@ qla2x00_ioctl_scsi_queuecommand(scsi_qla
+     Scsi_Cmnd *pscsi_cmd, Scsi_Device *pscsi_dev, fc_port_t *pfcport,
+     fc_lun_t *pfclun, uint8_t *pmore_cdb)
+ {
+-      int             ret = 0;
+-      int             ret2 = 0;
++      int             ret = QL_STATUS_SUCCESS;
++      int             ret2 = QL_STATUS_SUCCESS;
+       uint8_t         *usr_temp, *kernel_tmp;
+       uint32_t        lun = 0, tgt = 0;
+ #if defined(QL_DEBUG_LEVEL_9)
+@@ -4305,7 +4010,7 @@ qla2x00_ioctl_scsi_queuecommand(scsi_qla
+                   __func__, ha->host_no, ha->instance);)
+               pext->Status = EXT_STATUS_NO_MEMORY;
+-              return (ret);
++              return (QL_STATUS_ERROR);
+       }
+       switch(pext->SubCode) {
+@@ -4326,7 +4031,7 @@ qla2x00_ioctl_scsi_queuecommand(scsi_qla
+                           __func__, ha->host_no, ha->instance, pfcport, pfclun);)
+                       atomic_set(&sp->ref_count, 0);
+                       add_to_free_queue (ha, sp);
+-                      return (ret);
++                      return (QL_STATUS_ERROR);
+               }
+               if (pscsi_cmd->cmd_len == 6 || pscsi_cmd->cmd_len == 0x0A ||
+@@ -4341,7 +4046,7 @@ qla2x00_ioctl_scsi_queuecommand(scsi_qla
+                       pext->Status = EXT_STATUS_INVALID_PARAM;
+                       atomic_set(&sp->ref_count, 0);
+                       add_to_free_queue (ha, sp);
+-                      return (ret);
++                      return (QL_STATUS_ERROR);
+               }
+               tq = ha->ioctl->ioctl_tq;
+               lq = ha->ioctl->ioctl_lq;
+@@ -4355,7 +4060,7 @@ qla2x00_ioctl_scsi_queuecommand(scsi_qla
+                           __func__, ha->host_no, ha->instance, pfcport, pfclun);)
+                       atomic_set(&sp->ref_count, 0);
+                       add_to_free_queue (ha, sp);
+-                      return (ret);
++                      return (QL_STATUS_ERROR);
+               }
+               sp->cmd_length = pscsi_cmd->cmd_len;
+@@ -4386,19 +4091,6 @@ qla2x00_ioctl_scsi_queuecommand(scsi_qla
+       if (pscsi_cmd->sc_data_direction == SCSI_DATA_WRITE) {
+               /* sending user data from pext->ResponseAdr to device */
+-              ret = verify_area(VERIFY_READ, (void *)pext->ResponseAdr,
+-                  pext->ResponseLen);
+-              if (ret) {
+-                      pext->Status = EXT_STATUS_COPY_ERR;
+-                      DEBUG9_10(printk("%s(%ld): inst=%ld ERROR verify read "
+-                          "ResponseAdr.\n",
+-                          __func__, ha->host_no, ha->instance);)
+-                      atomic_set(&sp->ref_count, 0);
+-                      add_to_free_queue (ha, sp);
+-
+-                      return (ret);
+-              }
+-
+               usr_temp   = (uint8_t *)pext->ResponseAdr;
+               kernel_tmp = (uint8_t *)ha->ioctl_mem;
+               ret = copy_from_user(kernel_tmp, usr_temp, pext->ResponseLen);
+@@ -4425,7 +4117,8 @@ qla2x00_ioctl_scsi_queuecommand(scsi_qla
+       pscsi_cmd->use_sg               = 0; /* no ScatterGather */
+       pscsi_cmd->request_bufflen      = pext->ResponseLen;
+       pscsi_cmd->request_buffer       = ha->ioctl_mem;
+-      pscsi_cmd->timeout_per_command  = QLA_PT_CMD_TOV * HZ;
++      if (pscsi_cmd->timeout_per_command == 0)
++              pscsi_cmd->timeout_per_command = ql2xioctltimeout * HZ;
+       if (tq && lq) {
+               if (pext->SubCode == EXT_SC_SEND_SCSI_PASSTHRU) {
+@@ -4440,7 +4133,7 @@ qla2x00_ioctl_scsi_queuecommand(scsi_qla
+                                   pfcport, pfclun);)
+                               atomic_set(&sp->ref_count, 0);
+                               add_to_free_queue (ha, sp);
+-                              return (ret);
++                              return (QL_STATUS_ERROR);
+                       }
+               } else {
+@@ -4488,7 +4181,7 @@ qla2x00_ioctl_scsi_queuecommand(scsi_qla
+                       pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+                       atomic_set(&sp->ref_count, 0);
+                       add_to_free_queue (ha, sp);
+-                      return (ret);
++                      return (QL_STATUS_ERROR);
+               }
+       } else {
+               ret2 = qla2x00_check_port_status(ha, pfcport);
+@@ -4503,7 +4196,7 @@ qla2x00_ioctl_scsi_queuecommand(scsi_qla
+                       atomic_set(&sp->ref_count, 0);
+                       add_to_free_queue (ha, sp);
+-                      return (ret);
++                      return (QL_STATUS_ERROR);
+               }
+       }
+@@ -4519,6 +4212,13 @@ qla2x00_ioctl_scsi_queuecommand(scsi_qla
+       DEBUG9(printk("%s(%ld): inst=%ld sending command.\n",
+           __func__, ha->host_no, ha->instance);)
++      /* Time the command via our standard driver-timer */
++      if ((CMD_TIMEOUT(pscsi_cmd)/HZ) > QLA_CMD_TIMER_DELTA)
++              qla2x00_add_timer_to_cmd(sp,
++                      (CMD_TIMEOUT(pscsi_cmd)/HZ) - QLA_CMD_TIMER_DELTA);
++      else
++              qla2x00_add_timer_to_cmd(sp, (CMD_TIMEOUT(pscsi_cmd)/HZ));
++
+       add_to_pending_queue(ha, sp);
+       qla2x00_next(ha);
+@@ -4560,13 +4260,14 @@ qla2x00_sc_scsi_passthru(scsi_qla_host_t
+       DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+           __func__, ha->host_no, ha->instance);)
+-      ret = verify_area(VERIFY_READ, (void *)pext->RequestAdr,
+-          sizeof(EXT_SCSI_PASSTHRU));
+-      if (ret) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("%s(%ld): inst=%ld ERROR verify READ "
+-                  "req buf.\n",
++      if (test_bit(FAILOVER_EVENT_NEEDED, &ha->dpc_flags) ||
++          test_bit(FAILOVER_EVENT, &ha->dpc_flags) ||
++          test_bit(FAILOVER_NEEDED, &ha->dpc_flags)) {
++              /* Stall intrusive passthru commands until failover complete */
++              DEBUG9_10(printk("%s(%ld): inst=%ld failover in progress -- "
++                  "returning busy.\n",
+                   __func__, ha->host_no, ha->instance);)
++              pext->Status = EXT_STATUS_BUSY;
+               return (ret);
+       }
+@@ -4658,21 +4359,17 @@ qla2x00_sc_scsi_passthru(scsi_qla_host_t
+       DEBUG9(printk("%s(%ld): inst=%ld sending command.\n",
+           __func__, ha->host_no, ha->instance);)
+-      if ((ret = qla2x00_ioctl_scsi_queuecommand(ha, pext, pscsi_cmd,
+-          pscsi_device, NULL, NULL, NULL))) {
++      if (qla2x00_ioctl_scsi_queuecommand(ha, pext, pscsi_cmd,
++          pscsi_device, NULL, NULL, NULL)) {
+               return (ret);
+       }
+-      ha->ioctl->cmpl_timer.expires = jiffies + ha->ioctl->ioctl_tov * HZ;
+-      add_timer(&ha->ioctl->cmpl_timer);
+-
+       DEBUG9(printk("%s(%ld): inst=%ld waiting for completion.\n",
+           __func__, ha->host_no, ha->instance);)
++      /* Wait for completion */
+       down(&ha->ioctl->cmpl_sem);
+-      del_timer(&ha->ioctl->cmpl_timer);
+-
+       DEBUG9(printk("%s(%ld): inst=%ld completed.\n",
+           __func__, ha->host_no, ha->instance);)
+@@ -4763,15 +4460,6 @@ qla2x00_sc_scsi_passthru(scsi_qla_host_t
+                   (uint8_t *)&pscsi_pass->SenseData[0],
+                   CMD_ACTUAL_SNSLEN(pscsi_cmd));)
+-              ret = verify_area(VERIFY_WRITE, (void *)pext->RequestAdr,
+-                  sizeof(EXT_SCSI_PASSTHRU));
+-              if (ret) {
+-                      pext->Status = EXT_STATUS_COPY_ERR;
+-                      DEBUG9_10(printk("%s(%ld): inst=%ld ERROR verify WRITE "
+-                          "req buf.\n", __func__, ha->host_no, ha->instance);)
+-                      return (ret);
+-              }
+-
+               usr_temp   = (uint8_t *)pext->RequestAdr;
+               kernel_tmp = (uint8_t *)pscsi_pass;
+               ret = copy_to_user(usr_temp, kernel_tmp,
+@@ -4789,17 +4477,6 @@ qla2x00_sc_scsi_passthru(scsi_qla_host_t
+               DEBUG9(printk("%s(%ld): inst=%ld copying data.\n",
+                   __func__, ha->host_no, ha->instance);)
+-              /* getting device data and putting in pext->ResponseAdr */
+-              ret = verify_area(VERIFY_WRITE, (void *)pext->ResponseAdr ,
+-                  pext->ResponseLen);
+-              if (ret) {
+-                      pext->Status = EXT_STATUS_COPY_ERR;
+-                      DEBUG9_10(printk("%s(%ld): inst=%ld ERROR verify write "
+-                          "ResponseAdr.\n",
+-                          __func__, ha->host_no, ha->instance);)
+-                      return (ret);
+-              }
+-
+               /* now copy up the READ data to user */
+               if ((CMD_COMPL_STATUS(pscsi_cmd) == CS_DATA_UNDERRUN) &&
+                   (CMD_RESID_LEN(pscsi_cmd))) {
+@@ -4864,6 +4541,7 @@ qla2x00_sc_fc_scsi_passthru(scsi_qla_hos
+       uint32_t                i;
+       uint32_t                transfer_len;
++      int found_fcp, found_fcl;
+       EXT_FC_SCSI_PASSTHRU    *pfc_scsi_pass;
+@@ -4879,6 +4557,17 @@ qla2x00_sc_fc_scsi_passthru(scsi_qla_hos
+               }
+       )
++      if (test_bit(FAILOVER_EVENT_NEEDED, &ha->dpc_flags) ||
++          test_bit(FAILOVER_EVENT, &ha->dpc_flags) ||
++          test_bit(FAILOVER_NEEDED, &ha->dpc_flags)) {
++              /* Stall intrusive passthru commands until failover complete */
++              DEBUG9_10(printk("%s(%ld): inst=%ld failover in progress -- "
++                  "returning busy.\n",
++                  __func__, ha->host_no, ha->instance);)
++              pext->Status = EXT_STATUS_BUSY;
++              return (ret);
++      }
++
+       if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&pfc_scsi_pass,
+           sizeof(EXT_FC_SCSI_PASSTHRU))) {
+               /* not enough memory */
+@@ -4893,17 +4582,6 @@ qla2x00_sc_fc_scsi_passthru(scsi_qla_hos
+       /* clear ioctl_mem to be used */
+       memset(ha->ioctl_mem, 0, ha->ioctl_mem_size);
+-      ret = verify_area(VERIFY_READ, (void *)pext->RequestAdr,
+-          sizeof(EXT_FC_SCSI_PASSTHRU));
+-      if (ret) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk(
+-                  "%s(%ld): inst=%ld ERROR verify READ req buf.\n",
+-                  __func__, ha->host_no, ha->instance);)
+-
+-              return (ret);
+-      }
+-
+       if (pext->ResponseLen > ha->ioctl_mem_size) {
+               if (qla2x00_get_new_ioctl_dma_mem(ha, pext->ResponseLen) !=
+                   QL_STATUS_SUCCESS) {
+@@ -4940,23 +4618,27 @@ qla2x00_sc_fc_scsi_passthru(scsi_qla_hos
+       }
+       fclun = NULL;
+-      for (fcport = ha->fcport; (fcport); fcport = fcport->next) {
++      found_fcp = 0;
++      found_fcl = 0;
++      list_for_each_entry(fcport, &ha->fcports, list) {
+               if (memcmp(fcport->port_name,
+                   pfc_scsi_pass->FCScsiAddr.DestAddr.WWPN, 8) != 0) {
+                       continue;
+               }
+-              for (fclun = fcport->fclun; fclun; fclun = fclun->next) {
++              found_fcp++;
++              list_for_each_entry(fclun, &fcport->fcluns, list) {
+                       if (fclun->lun == pfc_scsi_pass->FCScsiAddr.Lun) {
+                               /* Found the right LUN */
++                              found_fcl++;
+                               break;
+                       }
+               }
+               break;
+       }
+-      if (fcport == NULL) {
++      if (!found_fcp) {
+               pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+               DEBUG9_10(printk("%s(%ld): inst=%ld FC AddrFormat - DID NOT "
+                   "FIND Port matching WWPN.\n",
+@@ -4964,13 +4646,12 @@ qla2x00_sc_fc_scsi_passthru(scsi_qla_hos
+               return (ret);
+       }
+-      if (fclun == NULL) {
++      if (!found_fcl) {
+               /* Use a temporary fclun to send out the command. */
+               fclun = &temp_fclun;
+               fclun->fcport = fcport;
+               fclun->lun = pfc_scsi_pass->FCScsiAddr.Lun;
+               fclun->flags = 0;
+-              fclun->next = NULL;
+       }
+       /* set target coordinates */
+@@ -5038,19 +4719,17 @@ qla2x00_sc_fc_scsi_passthru(scsi_qla_hos
+       DEBUG9(printk("%s(%ld): inst=%ld queuing command.\n",
+           __func__, ha->host_no, ha->instance);)
+-      if ((ret = qla2x00_ioctl_scsi_queuecommand(ha, pext, pfc_scsi_cmd,
+-          pfc_scsi_device, fcport, fclun, pmore_cdb))) {
++      if (qla2x00_ioctl_scsi_queuecommand(ha, pext, pfc_scsi_cmd,
++          pfc_scsi_device, fcport, fclun, pmore_cdb)) {
+               return (ret);
+       }
+-      /* Wait for comletion */
+-      ha->ioctl->cmpl_timer.expires = jiffies + ha->ioctl->ioctl_tov * HZ;
+-      add_timer(&ha->ioctl->cmpl_timer);
++      DEBUG9(printk("%s(%ld): inst=%ld waiting for completion.\n",
++          __func__, ha->host_no, ha->instance);)
++      /* Wait for completion */
+       down(&ha->ioctl->cmpl_sem);
+-      del_timer(&ha->ioctl->cmpl_timer);
+-
+       if (ha->ioctl->SCSIPT_InProgress == 1) {
+               printk(KERN_WARNING
+@@ -5127,16 +4806,6 @@ qla2x00_sc_fc_scsi_passthru(scsi_qla_hos
+                       pfc_scsi_cmd->sense_buffer[i];
+               }
+-              ret = verify_area(VERIFY_WRITE, (void *)pext->RequestAdr,
+-                  sizeof(EXT_FC_SCSI_PASSTHRU));
+-              if (ret) {
+-                      pext->Status = EXT_STATUS_COPY_ERR;
+-                      DEBUG9_10(printk("%s(%ld): inst=%ld ERROR verify WRITE "
+-                          "RequestAdr.\n",
+-                          __func__, ha->host_no, ha->instance);)
+-                      return (ret);
+-              }
+-
+               usr_temp = (uint8_t *)pext->RequestAdr;
+               kernel_tmp = (uint8_t *)pfc_scsi_pass;
+               ret = copy_to_user(usr_temp, kernel_tmp,
+@@ -5155,19 +4824,6 @@ qla2x00_sc_fc_scsi_passthru(scsi_qla_hos
+               DEBUG9(printk("%s(%ld): inst=%ld copying data.\n",
+                   __func__, ha->host_no, ha->instance);)
+-              /* getting device data and putting in pext->ResponseAdr */
+-              ret = verify_area(VERIFY_WRITE, (void *)pext->ResponseAdr,
+-                  pext->ResponseLen);
+-              if (ret) {
+-                      pext->Status = EXT_STATUS_COPY_ERR;
+-
+-                      DEBUG9_10(printk("%s(%ld): inst=%ld ERROR verify write "
+-                          "ResponseAdr.\n",
+-                          __func__, ha->host_no, ha->instance);)
+-
+-                      return (ret);
+-              }
+-
+               /* now copy up the READ data to user */
+               if ((CMD_COMPL_STATUS(pfc_scsi_cmd) == CS_DATA_UNDERRUN) &&
+                   (CMD_RESID_LEN(pfc_scsi_cmd))) {
+@@ -5229,6 +4885,7 @@ qla2x00_sc_scsi3_passthru(scsi_qla_host_
+       uint8_t                 *pmore_cdb = NULL;
+       uint32_t                transfer_len;
+       uint32_t                i;
++      int found;
+       EXT_FC_SCSI_PASSTHRU    *pscsi3_pass;
+@@ -5245,6 +4902,17 @@ qla2x00_sc_scsi3_passthru(scsi_qla_host_
+               }
+       )
++      if (test_bit(FAILOVER_EVENT_NEEDED, &ha->dpc_flags) ||
++          test_bit(FAILOVER_EVENT, &ha->dpc_flags) ||
++          test_bit(FAILOVER_NEEDED, &ha->dpc_flags)) {
++              /* Stall intrusive passthru commands until failover complete */
++              DEBUG9_10(printk("%s(%ld): inst=%ld failover in progress -- "
++                  "returning busy.\n",
++                  __func__, ha->host_no, ha->instance);)
++              pext->Status = EXT_STATUS_BUSY;
++              return (ret);
++      }
++
+       if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&pscsi3_pass,
+           sizeof(EXT_FC_SCSI_PASSTHRU))) {
+               /* not enough memory */
+@@ -5260,15 +4928,6 @@ qla2x00_sc_scsi3_passthru(scsi_qla_host_
+       /* clear ioctl_mem to be used */
+       memset(ha->ioctl_mem, 0, ha->ioctl_mem_size);
+-      ret = verify_area(VERIFY_READ, (void *)pext->RequestAdr,
+-          sizeof(EXT_FC_SCSI_PASSTHRU));
+-      if (ret) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("%s(%ld): inst=%ld ERROR verify READ "
+-                  "req buf.\n", __func__, ha->host_no, ha->instance);)
+-              return (ret);
+-      }
+-
+       if (pext->ResponseLen > ha->ioctl_mem_size) {
+               if (qla2x00_get_new_ioctl_dma_mem(ha, pext->ResponseLen) !=
+                   QL_STATUS_SUCCESS) {
+@@ -5317,13 +4976,15 @@ qla2x00_sc_scsi3_passthru(scsi_qla_host_
+               return (ret);
+       }
+-      for (fcport = ha->fcport; (fcport); fcport = fcport->next) {
++      found = 0;
++      list_for_each_entry(fcport, &ha->fcports, list) {
+               if (memcmp(fcport->port_name,
+                   pscsi3_pass->FCScsiAddr.DestAddr.WWPN, 8) == 0) {
++                      found++;
+                       break;
+               }
+       }
+-      if (fcport == NULL) {
++      if (!found) {
+               pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+               DEBUG9_10(printk("%s(%ld): inst=%ld DID NOT FIND Port for WWPN "
+@@ -5346,7 +5007,6 @@ qla2x00_sc_scsi3_passthru(scsi_qla_host_
+       fclun->fcport = fcport;
+       fclun->lun = pscsi3_pass->FCScsiAddr.Lun;
+       fclun->flags = 0;
+-      fclun->next = NULL;
+       /* set target coordinates */
+       pscsi3_cmd->target = 0xff;  /* not used. just put something there. */
+@@ -5390,24 +5050,21 @@ qla2x00_sc_scsi3_passthru(scsi_qla_host_
+       } else {
+               pscsi3_cmd->sc_data_direction = SCSI_DATA_READ;
+       }
++      if (pscsi3_pass->Timeout)
++              pscsi3_cmd->timeout_per_command = pscsi3_pass->Timeout * HZ;
+       /* send command to adapter */
+       DEBUG9(printk("%s(%ld): inst=%ld queuing command.\n",
+           __func__, ha->host_no, ha->instance);)
+-      if ((ret = qla2x00_ioctl_scsi_queuecommand(ha, pext, pscsi3_cmd,
+-          pscsi3_device, fcport, fclun, pmore_cdb))) {
++      if (qla2x00_ioctl_scsi_queuecommand(ha, pext, pscsi3_cmd,
++          pscsi3_device, fcport, fclun, pmore_cdb)) {
+               return (ret);
+       }
+-      /* Wait for comletion */
+-      ha->ioctl->cmpl_timer.expires = jiffies + ha->ioctl->ioctl_tov * HZ;
+-      add_timer(&ha->ioctl->cmpl_timer);
+-
++      /* Wait for completion */
+       down(&ha->ioctl->cmpl_sem);
+-      del_timer(&ha->ioctl->cmpl_timer);
+-
+       if (ha->ioctl->SCSIPT_InProgress == 1) {
+               printk(KERN_WARNING
+@@ -5488,16 +5145,6 @@ qla2x00_sc_scsi3_passthru(scsi_qla_host_
+                           pscsi3_cmd->sense_buffer[i];
+               }
+-              ret = verify_area(VERIFY_WRITE, (void *)pext->RequestAdr,
+-                  sizeof(EXT_FC_SCSI_PASSTHRU));
+-              if (ret) {
+-                      pext->Status = EXT_STATUS_COPY_ERR;
+-                      DEBUG9_10(printk("%s(%ld): inst=%ld ERROR verify WRITE "
+-                          "RequestAdr.\n",
+-                          __func__, ha->host_no, ha->instance);)
+-                      return (ret);
+-              }
+-
+               usr_temp = (uint8_t *)pext->RequestAdr;
+               kernel_tmp = (uint8_t *)pscsi3_pass;
+               ret = copy_to_user(usr_temp, kernel_tmp,
+@@ -5516,19 +5163,6 @@ qla2x00_sc_scsi3_passthru(scsi_qla_host_
+               DEBUG9(printk("%s(%ld): inst=%ld copying data.\n",
+                   __func__, ha->host_no, ha->instance);)
+-              /* getting device data and putting in pext->ResponseAdr */
+-              ret = verify_area(VERIFY_WRITE, (void *)pext->ResponseAdr,
+-                  pext->ResponseLen);
+-              if (ret) {
+-                      pext->Status = EXT_STATUS_COPY_ERR;
+-
+-                      DEBUG9_10(printk("%s(%ld): inst=%ld ERROR verify write "
+-                          "ResponseAdr.\n",
+-                          __func__, ha->host_no, ha->instance);)
+-
+-                      return (ret);
+-              }
+-
+               /* now copy up the READ data to user */
+               if ((CMD_COMPL_STATUS(pscsi3_cmd) == CS_DATA_UNDERRUN) &&
+                   (CMD_RESID_LEN(pscsi3_cmd))) {
+@@ -5587,14 +5221,11 @@ qla2x00_send_els_rnid(scsi_qla_host_t *h
+       EXT_RNID_REQ    *tmp_rnid;
+       int             ret = 0;
+-      uint8_t         dev_found = 0;
+-      uint16_t        dev_loop_id = 0;
+       uint16_t        mb[MAILBOX_REGISTER_COUNT];
+       uint32_t        copy_len;
+-      fc_port_t       *fcport;
+       int             found;
+-      struct list_head *fcil;
+-      fc_initiator_t  *fcinitiator;
++      uint16_t        next_loop_id;
++      fc_port_t       *fcport;
+       DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+           __func__, ha->host_no, ha->instance);)
+@@ -5621,17 +5252,6 @@ qla2x00_send_els_rnid(scsi_qla_host_t *h
+               return (ret);
+       }
+-      ret = verify_area(VERIFY_READ, (void *)pext->RequestAdr,
+-          pext->RequestLen);
+-
+-      if (ret != 0) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk(
+-                  "%s(%ld): inst=%ld req buf verify READ FAILED\n",
+-                  __func__, ha->host_no, ha->instance);)
+-              return (ret);
+-      }
+-
+       DEBUG9(printk("%s(%ld): inst=%ld req buf verified. Copying req data.\n",
+           __func__, ha->host_no, ha->instance);)
+@@ -5657,159 +5277,80 @@ qla2x00_send_els_rnid(scsi_qla_host_t *h
+       }
+       /* Find loop ID of the device */
+-      fcinitiator = NULL;
++      found = 0;
++      fcport = NULL;
+       switch (tmp_rnid->Addr.Type) {
+       case EXT_DEF_TYPE_WWNN:
+               DEBUG9(printk("%s(%ld): inst=%ld got node name.\n",
+                   __func__, ha->host_no, ha->instance);)
+-              for (fcport = ha->fcport; (fcport); fcport = fcport->next) {
+-                      /* if removed or missing */
+-                      if (atomic_read(&fcport->state) == FC_ONLINE &&
+-                          memcmp((void *)tmp_rnid->Addr.FcAddr.WWNN,
+-                          (void *)fcport->node_name,
+-                          EXT_DEF_WWN_NAME_SIZE) == 0) {
+-                              break;
+-                      }
+-              }
+-              if (fcport != NULL) {
+-                      DEBUG9(printk("%s(%ld): inst=%ld found tgt dev; "
+-                          "loop_id=%x.\n",
+-                          __func__, ha->host_no, ha->instance,
+-                          fcport->loop_id);)
+-
+-                      dev_found = TGT_DEV;
+-                      dev_loop_id = fcport->loop_id;
+-                      break;
+-              }
+-
+-              found = 0;
+-              fcinitiator = NULL;
+-              list_for_each(fcil, &ha->fcinitiators) {
+-                      fcinitiator = list_entry(fcil, fc_initiator_t, list);
++              list_for_each_entry(fcport, &ha->fcports, list) {
++                      if (fcport->port_type != FCT_INITIATOR ||
++                          fcport->port_type != FCT_TARGET)
++                              continue;
+                       if (memcmp(tmp_rnid->Addr.FcAddr.WWNN,
+-                               fcinitiator->node_name,
+-                               EXT_DEF_WWN_NAME_SIZE) == 0 &&
+-                              fcinitiator->d_id.b24 != 0) {
++                          fcport->node_name, EXT_DEF_WWN_NAME_SIZE))
++                              continue;
+-                              found++;
+-                              break;
++                      if (fcport->port_type == FCT_TARGET) {
++                              if (atomic_read(&fcport->state) != FC_ONLINE)
++                                      continue;
++                      } else { /* FCT_INITIATOR */
++                              if (!fcport->d_id.b24)
++                                      continue;
+                       }
+-              }
+-              if (found) {
+-                      DEBUG9(printk("%s(%ld): inst=%ld found host device; "
+-                          "loop_id=%x.\n",
+-                          __func__, ha->host_no, ha->instance,
+-                          fcinitiator->loop_id);)
+-                      dev_found = HOST_DEV;
+-                      dev_loop_id = fcinitiator->loop_id;
+-                      break;
++                      found++;
+               }
+-
+               break;
+-
+       case EXT_DEF_TYPE_WWPN:
+               DEBUG9(printk("%s(%ld): inst=%ld got port name.\n",
+                   __func__, ha->host_no, ha->instance);)
+-              for (fcport = ha->fcport; (fcport); fcport = fcport->next) {
+-                      /* if removed or missing */
+-                      if (atomic_read(&fcport->state) == FC_ONLINE &&
+-                          memcmp((void *)tmp_rnid->Addr.FcAddr.WWPN,
+-                          (void *)fcport->port_name,
+-                          EXT_DEF_WWN_NAME_SIZE) == 0) {
+-                              break;
+-                      }
+-              }
+-              if (fcport != NULL) {
+-                      DEBUG9(printk("%s(%ld): inst=%ld found tgt dev; "
+-                          "loop_id=%x.\n",
+-                          __func__, ha->host_no, ha->instance,
+-                          fcport->loop_id);)
+-
+-                      dev_found = TGT_DEV; /* target device */
+-                      dev_loop_id = fcport->loop_id;
+-                      break;
+-              }
+-
+-              found = 0;
+-              fcinitiator = NULL;
+-              list_for_each(fcil, &ha->fcinitiators) {
+-                      fcinitiator = list_entry(fcil, fc_initiator_t, list);
++              list_for_each_entry(fcport, &ha->fcports, list) {
++                      if (fcport->port_type != FCT_INITIATOR ||
++                          fcport->port_type != FCT_TARGET)
++                              continue;
+                       if (memcmp(tmp_rnid->Addr.FcAddr.WWPN,
+-                               fcinitiator->port_name,
+-                               EXT_DEF_WWN_NAME_SIZE) == 0 &&
+-                              fcinitiator->d_id.b24 != 0) {
++                          fcport->port_name, EXT_DEF_WWN_NAME_SIZE))
++                              continue;
+-                              found++;
+-                              break;
++                      if (fcport->port_type == FCT_TARGET) {
++                              if (atomic_read(&fcport->state) != FC_ONLINE)
++                                      continue;
++                      } else { /* FCT_INITIATOR */
++                              if (!fcport->d_id.b24)
++                                      continue;
+                       }
+-              }
+-              if (found) {
+-                      DEBUG9(printk("%s(%ld): inst=%ld found host device; "
+-                          "loop_id=%x.\n",
+-                          __func__, ha->host_no, ha->instance,
+-                          fcinitiator->loop_id);)
+-                      dev_found = HOST_DEV;
+-                      dev_loop_id = fcinitiator->loop_id;
+-                      break;
++                      found++;
+               }
+-
+               break;
+       case EXT_DEF_TYPE_PORTID:
+               DEBUG9(printk("%s(%ld): inst=%ld got port ID.\n",
+                   __func__, ha->host_no, ha->instance);)
+-              /* PORTID bytes entered must already be big endian */
+-              for (fcport = ha->fcport; (fcport); fcport = fcport->next) {
+-                      /* if removed or missing */
+-                      if (atomic_read(&fcport->state) == FC_ONLINE &&
+-                          memcmp((void *)&tmp_rnid->Addr.FcAddr.Id[1],
+-                          (void *)(fcport->d_id.r.d_id),
+-                          EXT_DEF_PORTID_SIZE_ACTUAL) == 0) {
+-                              break;
+-                      }
+-              }
+-              if (fcport != NULL) {
+-                      DEBUG9(printk("%s(%ld): inst=%ld found tgt dev; "
+-                          "loop_id=%x.\n",
+-                          __func__, ha->host_no, ha->instance,
+-                          fcport->loop_id);)
+-
+-                      dev_found = TGT_DEV; /* target device */
+-                      dev_loop_id = fcport->loop_id;
+-                      break;
+-              }
+-
+-              found = 0;
+-              fcinitiator = NULL;
+-              list_for_each(fcil, &ha->fcinitiators) {
+-                      fcinitiator = list_entry(fcil, fc_initiator_t, list);
++              list_for_each_entry(fcport, &ha->fcports, list) {
++                      if (fcport->port_type != FCT_INITIATOR ||
++                          fcport->port_type != FCT_TARGET)
++                              continue;
++                      /* PORTID bytes entered must already be big endian */
+                       if (memcmp(&tmp_rnid->Addr.FcAddr.Id[1],
+-                              &fcinitiator->d_id,
+-                              EXT_DEF_PORTID_SIZE_ACTUAL) == 0) {
++                          &fcport->d_id, EXT_DEF_PORTID_SIZE_ACTUAL))
++                              continue;
+-                              found++;
+-                              break;
++                      if (fcport->port_type == FCT_TARGET) {
++                              if (atomic_read(&fcport->state) != FC_ONLINE)
++                                      continue;
+                       }
+-              }
+-              if (found) {
+-                      DEBUG9(printk("%s(%ld): inst=%ld found host device; "
+-                          "loop_id=%x.\n",
+-                          __func__, ha->host_no, ha->instance,
+-                          fcinitiator->loop_id);)
+-                      dev_found = HOST_DEV;
+-                      dev_loop_id = fcinitiator->loop_id;
+-                      break;
++                      found++;
+               }
+               break;
+@@ -5822,23 +5363,18 @@ qla2x00_send_els_rnid(scsi_qla_host_t *h
+               return (ret);
+       }
+-      if (!dev_found ||
+-          (dev_found == TGT_DEV && dev_loop_id > LAST_SNS_LOOP_ID)) {
++      if (!found || (fcport->port_type == FCT_TARGET &&
++          fcport->loop_id > SNS_LAST_LOOP_ID)) {
+               /* No matching device or the target device is not
+                * configured; just return error.
+                */
+               pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+-              DEBUG9_10(printk(
+-                  "%s(%ld): inst=%ld device not found. dev_found=%d "
+-                  "dev_loop_id=%x.\n",
+-                  __func__, ha->host_no, ha->instance, dev_found,
+-                  dev_loop_id);)
+               qla2x00_free_ioctl_scrap_mem(ha);
+               return (ret);
+       }
+       /* check on loop down */
+-      if (ha->loop_state != LOOP_READY || 
++      if (atomic_read(&ha->loop_state) != LOOP_READY || 
+           test_bit(CFG_ACTIVE, &ha->cfg_flags) ||
+           (test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags)) ||
+           ABORTS_ACTIVE || ha->dpc_active) {
+@@ -5851,109 +5387,21 @@ qla2x00_send_els_rnid(scsi_qla_host_t *h
+               return (ret);
+       }
+-      /* Check whether we need to login first. */
+-      if (dev_found == HOST_DEV && dev_loop_id > LAST_SNS_LOOP_ID) {
+-              /*
+-               * Search for a usable loop ID before try to login to it.
+-               */
+-              if ((dev_loop_id &= ~PORT_LOST_ID) > LAST_SNS_LOOP_ID) {
+-                      /* Just start searching from first possible ID. */
+-                      dev_loop_id = ha->min_external_loopid;
+-              }
+-              for (;;) {
+-                      if (ha->fabricid[dev_loop_id].in_use == TRUE) {
+-                              dev_loop_id++;
+-                      } else {
+-                              ha->fabricid[dev_loop_id].in_use = TRUE;
+-                              break;
+-                      }
+-              }
+-
+-              DEBUG9(printk("%s(%ld): inst=%ld try relogin to host dev; "
+-                  "dev_loop_id=%x.\n",
+-                  __func__, ha->host_no, ha->instance, dev_loop_id);)
+-
+-              for (;;) {
+-                      if (dev_loop_id > LAST_SNS_LOOP_ID) {
+-                              /* error */
+-                              DEBUG10(printk("%s(%ld): inst=%ld "
+-                                  "no valid loop_id for login.\n",
+-                                  __func__, ha->host_no, ha->instance);)
+-
+-                              break;
+-                      }
+-
+-                      qla2x00_login_fabric(ha, 
+-                          dev_loop_id,
+-                          fcinitiator->d_id.b.domain,
+-                          fcinitiator->d_id.b.area,
+-                          fcinitiator->d_id.b.al_pa,
+-                          &mb[0], 0);
+-
+-                      if (mb[0] != MBS_CMD_CMP &&
+-                          mb[0] != MBS_PORT_ID_IN_USE &&
+-                          mb[0] != MBS_LOOP_ID_IN_USE) {
+-
+-                              DEBUG10(printk("%s(%ld): inst=%ld "
+-                                  "ERROR login mb[0]=%x mb[1]=%x.\n",
+-                                  __func__, ha->host_no, ha->instance,
+-                                  mb[0], mb[1]);)
+-                              break;
+-                      }
+-
+-                      if (mb[0] == MBS_CMD_CMP) {
+-                              DEBUG9(printk("%s(%ld): inst=%ld host login "
+-                                  "success; loop_id=%x.\n",
+-                                  __func__, ha->host_no, ha->instance,
+-                                  dev_loop_id);)
+-
+-                              fcinitiator->loop_id = dev_loop_id;
+-                              break;
+-                      } else if (mb[0] == MBS_PORT_ID_IN_USE) {
+-                              ha->fabricid[dev_loop_id].in_use = FALSE;
+-                              dev_loop_id = mb[1];
+-
+-                              DEBUG9(printk("%s(%ld): inst=%ld port %06x "
+-                                  "using loop id=0x%04x.\n",
+-                                  __func__, ha->host_no, ha->instance,
+-                                  fcinitiator->d_id.b24,
+-                                  dev_loop_id);)
+-
+-                              if (dev_loop_id <= LAST_SNS_LOOP_ID)
+-                                      ha->fabricid[dev_loop_id].in_use = TRUE;
+-                              else
+-                                      /* Error */
+-                                      break;
+-
+-                      } else if (mb[0] == MBS_LOOP_ID_IN_USE) {
+-                              /* Search for another usable loop_id */
+-                              dev_loop_id++;
+-                              while (ha->fabricid[dev_loop_id].in_use) {
+-                                      if (dev_loop_id++ > LAST_SNS_LOOP_ID) {
+-                                              /* Error */
+-                                              break;
+-                                      }
+-                              }
+-
+-                              if (dev_loop_id <= LAST_SNS_LOOP_ID) {
+-                                      DEBUG9(printk(
+-                                          "%s(%ld): inst=%ld previous loop "
+-                                          "id in use. Retry with 0x%04x.\n",
+-                                          __func__, ha->host_no, ha->instance,
+-                                          dev_loop_id);)
+-
+-                                      ha->fabricid[dev_loop_id].in_use = TRUE;
+-                              } else {
+-                                      /* Error */
+-                                      break;
+-                              }
+-                      }
+-              }
++      /* If this is for a host device, check if we need to perform login */
++      if (fcport->port_type == FCT_INITIATOR &&
++          fcport->loop_id >= SNS_LAST_LOOP_ID) {
++              next_loop_id = 0;
++              ret = qla2x00_fabric_login(ha, fcport, &next_loop_id);
++              if (ret != QL_STATUS_SUCCESS) {
++                      /* login failed. */
++                      pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+-              if (mb[0] != MBS_CMD_CMP) {
+-                      pext->Status = EXT_STATUS_ERR;
+-                      DEBUG9_10(printk( "%s(%ld): inst=%ld login failed.\n",
+-                          __func__, ha->host_no, ha->instance);)
++                      DEBUG9_10(printk("%s(%ld): inst=%ld ERROR login to "
++                          "host port failed. loop_id=%02x pid=%02x%02x%02x "
++                          "ret=%d.\n",
++                          __func__, ha->host_no, ha->instance,
++                          fcport->loop_id, fcport->d_id.b.domain,
++                          fcport->d_id.b.area, fcport->d_id.b.al_pa, ret);)
+                       qla2x00_free_ioctl_scrap_mem(ha);
+                       return (ret);
+@@ -5964,7 +5412,7 @@ qla2x00_send_els_rnid(scsi_qla_host_t *h
+       DEBUG9(printk("%s(%ld): inst=%ld sending rnid cmd.\n",
+           __func__, ha->host_no, ha->instance);)
+-      ret = qla2x00_send_rnid_mbx(ha, dev_loop_id,
++      ret = qla2x00_send_rnid_mbx(ha, fcport->loop_id,
+           (uint8_t)tmp_rnid->DataFormat, ha->ioctl_mem_phys,
+           SEND_RNID_RSP_SIZE, &mb[0]);
+@@ -5985,38 +5433,27 @@ qla2x00_send_els_rnid(scsi_qla_host_t *h
+       copy_len = (pext->ResponseLen > SEND_RNID_RSP_SIZE) ?
+           SEND_RNID_RSP_SIZE : pext->ResponseLen;
+-      ret = verify_area(VERIFY_WRITE, (void  *)pext->ResponseAdr,
+-          copy_len);
+-
+-      if (ret != 0) {
++      ret = copy_to_user(pext->ResponseAdr, ha->ioctl_mem, copy_len);
++      if (ret) {
+               pext->Status = EXT_STATUS_COPY_ERR;
+               DEBUG9_10(printk(
+-                  "%s(%ld): inst=%ld rsp buf verify WRITE error\n",
++                  "%s(%ld): inst=%ld ERROR copy rsp buf\n",
+                   __func__, ha->host_no, ha->instance);)
+-      } else {
+-              ret = copy_to_user((uint8_t *)pext->ResponseAdr,
+-                  (uint8_t *)ha->ioctl_mem, copy_len);
+-              if (ret) {
+-                      pext->Status = EXT_STATUS_COPY_ERR;
+-                      DEBUG9_10(printk(
+-                          "%s(%ld): inst=%ld ERROR copy rsp buf\n",
+-                          __func__, ha->host_no, ha->instance);)
+-                      qla2x00_free_ioctl_scrap_mem(ha);
+-                      return (ret);
+-              }
++              qla2x00_free_ioctl_scrap_mem(ha);
++              return (ret);
++      }
+-              if (SEND_RNID_RSP_SIZE > pext->ResponseLen) {
+-                      pext->Status = EXT_STATUS_DATA_OVERRUN;
+-                      DEBUG9(printk("%s(%ld): inst=%ld data overrun. "
+-                          "exiting normally.\n",
+-                          __func__, ha->host_no, ha->instance);)
+-              } else {
+-                      pext->Status = EXT_STATUS_OK;
+-                      DEBUG9(printk("%s(%ld): inst=%ld exiting normally.\n",
+-                          __func__, ha->host_no, ha->instance);)
+-              }
+-              pext->ResponseLen = copy_len;
++      if (SEND_RNID_RSP_SIZE > pext->ResponseLen) {
++              pext->Status = EXT_STATUS_DATA_OVERRUN;
++              DEBUG9(printk("%s(%ld): inst=%ld data overrun. exiting "
++                  "normally.\n",
++                  __func__, ha->host_no, ha->instance);)
++      } else {
++              pext->Status = EXT_STATUS_OK;
++              DEBUG9(printk("%s(%ld): inst=%ld exiting normally.\n",
++                  __func__, ha->host_no, ha->instance);)
+       }
++      pext->ResponseLen = copy_len;
+       qla2x00_free_ioctl_scrap_mem(ha);
+       return (ret);
+@@ -6050,7 +5487,7 @@ qla2x00_get_rnid_params(scsi_qla_host_t 
+           __func__, ha->host_no, ha->instance);)
+       /* check on loop down */
+-      if (ha->loop_state != LOOP_READY || 
++      if (atomic_read(&ha->loop_state) != LOOP_READY || 
+           test_bit(CFG_ACTIVE, &ha->cfg_flags) ||
+           (test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags)) ||
+           ABORTS_ACTIVE || ha->dpc_active) {
+@@ -6078,39 +5515,30 @@ qla2x00_get_rnid_params(scsi_qla_host_t 
+       /* Copy the response */
+       copy_len = (pext->ResponseLen > sizeof(EXT_RNID_DATA)) ?
+           (uint32_t)sizeof(EXT_RNID_DATA) : pext->ResponseLen;
+-      ret = verify_area(VERIFY_WRITE, (void  *)pext->ResponseAdr,
+-          copy_len);
+-      if (ret != 0) {
++      ret = copy_to_user(pext->ResponseAdr, ha->ioctl_mem, copy_len);
++      if (ret) {
+               pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("%s(%ld): inst=%ld verify WRITE rsp buf error\n",
++              DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buf\n",
+                   __func__, ha->host_no, ha->instance);)
+-      } else {
+-              ret = copy_to_user((void *)pext->ResponseAdr,
+-                  (void *)ha->ioctl_mem, copy_len);
+-              if (ret) {
+-                      pext->Status = EXT_STATUS_COPY_ERR;
+-                      DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buf\n",
+-                          __func__, ha->host_no, ha->instance);)
+-                      return (ret);
+-              }
++              return (ret);
++      }
+-              pext->ResponseLen = copy_len;
+-              if (copy_len < sizeof(EXT_RNID_DATA)) {
+-                      pext->Status = EXT_STATUS_DATA_OVERRUN;
+-                      DEBUG9_10(printk("%s(%ld): inst=%ld data overrun. "
+-                          "exiting normally.\n",
+-                          __func__, ha->host_no, ha->instance);)
+-              } else if (pext->ResponseLen > sizeof(EXT_RNID_DATA)) {
+-                      pext->Status = EXT_STATUS_DATA_UNDERRUN;
+-                      DEBUG9_10(printk("%s(%ld): inst=%ld data underrun. "
+-                          "exiting normally.\n",
+-                          __func__, ha->host_no, ha->instance);)
+-              } else {
+-                      pext->Status = EXT_STATUS_OK;
+-                      DEBUG9(printk("%s(%ld): inst=%ld exiting normally.\n",
+-                          __func__, ha->host_no, ha->instance);)
+-              }
++      pext->ResponseLen = copy_len;
++      if (copy_len < sizeof(EXT_RNID_DATA)) {
++              pext->Status = EXT_STATUS_DATA_OVERRUN;
++              DEBUG9_10(printk("%s(%ld): inst=%ld data overrun. "
++                  "exiting normally.\n",
++                  __func__, ha->host_no, ha->instance);)
++      } else if (pext->ResponseLen > sizeof(EXT_RNID_DATA)) {
++              pext->Status = EXT_STATUS_DATA_UNDERRUN;
++              DEBUG9_10(printk("%s(%ld): inst=%ld data underrun. "
++                  "exiting normally.\n",
++                  __func__, ha->host_no, ha->instance);)
++      } else {
++              pext->Status = EXT_STATUS_OK;
++              DEBUG9(printk("%s(%ld): inst=%ld exiting normally.\n",
++                  __func__, ha->host_no, ha->instance);)
+       }
+       return (ret);
+@@ -6142,17 +5570,6 @@ qla2x00_get_led_state(scsi_qla_host_t *h
+       DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+           __func__, ha->host_no, ha->instance);)
+-      ret = verify_area(VERIFY_WRITE, (void *)pext->ResponseAdr,
+-          sizeof(EXT_BEACON_CONTROL));
+-
+-      if (ret) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("%s(%ld): inst=%ld ERROR VERIFY_WRITE "
+-                  "EXT_HBA_PORT_STAT.\n",
+-                  __func__, ha->host_no, ha->instance);)
+-              return (ret);
+-      }
+-
+       if (test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags)) {
+                pext->Status = EXT_STATUS_BUSY;
+                DEBUG9_10(printk("%s(%ld): inst=%ld loop not ready.\n",
+@@ -6262,7 +5679,7 @@ qla2x00_set_rnid_params(scsi_qla_host_t 
+           __func__, ha->host_no, ha->instance);)
+       /* check on loop down */
+-      if (ha->loop_state != LOOP_READY || 
++      if (atomic_read(&ha->loop_state) != LOOP_READY || 
+           test_bit(CFG_ACTIVE, &ha->cfg_flags) ||
+           (test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags)) ||
+           ABORTS_ACTIVE || ha->dpc_active) {
+@@ -6283,16 +5700,6 @@ qla2x00_set_rnid_params(scsi_qla_host_t 
+               return(ret);
+       }
+-      ret = verify_area(VERIFY_READ, (void *)pext->RequestAdr,
+-          pext->RequestLen);
+-
+-      if (ret != 0) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("%s(%ld): inst=%ld verify READ request buf.\n",
+-                  __func__, ha->host_no, ha->instance);)
+-              return(ret);
+-      }
+-
+       if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&tmp_set,
+           sizeof(EXT_SET_RNID_REQ))) {
+               /* not enough memory */
+@@ -6379,17 +5786,6 @@ qla2x00_set_led_state(scsi_qla_host_t *h
+       DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+           __func__, ha->host_no, ha->instance);)
+-      ret = verify_area(VERIFY_READ, (void *)pext->RequestAdr,
+-          sizeof(EXT_BEACON_CONTROL));
+-
+-      if (ret) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("%s(%ld): inst=%ld ERROR VERIFY_WRITE "
+-                  "EXT_HBA_PORT_STAT.\n",
+-                  __func__, ha->host_no, ha->instance);)
+-              return (ret);
+-      }
+-
+       if (test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags)) {
+               pext->Status = EXT_STATUS_BUSY;
+               DEBUG9_10(printk("%s(%ld): inst=%ld abort isp active.\n",
+@@ -6397,8 +5793,8 @@ qla2x00_set_led_state(scsi_qla_host_t *h
+               return (ret);
+       }
+-      ret = copy_from_user(&ptmp_led_state, 
+-          pext->RequestAdr, pext->RequestLen);
++      ret = copy_from_user(&ptmp_led_state, pext->RequestAdr,
++          pext->RequestLen);
+       if (ret) {
+               pext->Status = EXT_STATUS_COPY_ERR;
+               DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy req buf.\n",
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_cfg.c linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_cfg.c
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_cfg.c    2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_cfg.c 2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+@@ -21,7 +21,6 @@
+  * QLogic ISP2x00 Multi-path LUN Support Driver
+  *
+  */
+-
+ #include "qlfo.h"
+ #include "qla_cfg.h"
+ #include "qla_gbl.h"
+@@ -32,12 +31,12 @@
+ #include "qla_cfgln.c"
+ #endif
+-
++extern int qla2x00_lun_reset(scsi_qla_host_t *ha, uint16_t loop_id, uint16_t lun);
+ /*
+  *  Local Function Prototypes.
+  */
+-static uint32_t qla2x00_add_portname_to_mp_dev(mp_device_t *, uint8_t *);
++static uint32_t qla2x00_add_portname_to_mp_dev(mp_device_t *, uint8_t *, uint8_t *);
+ static mp_device_t * qla2x00_allocate_mp_dev(uint8_t *, uint8_t *);
+ static mp_path_t * qla2x00_allocate_path(mp_host_t *, uint16_t, fc_port_t *,
+@@ -57,16 +56,16 @@ static uint32_t qla2x00_cfg_register_fai
+ static uint32_t qla2x00_send_failover_notify(mp_device_t *, uint8_t,
+     mp_path_t *, mp_path_t *);
+ static mp_path_t * qla2x00_select_next_path(mp_host_t *, mp_device_t *,
+-    uint8_t);
++    uint8_t, srb_t *);
+ static BOOL qla2x00_update_mp_host(mp_host_t  *);
+ static uint32_t qla2x00_update_mp_tree (void);
+-static fc_lun_t *qla2x00_find_matching_lun(uint8_t , mp_path_t *);
++static fc_lun_t *qla2x00_find_matching_lun(uint8_t , mp_device_t *, mp_path_t *);
+ static mp_path_t *qla2x00_find_path_by_id(mp_device_t *, uint8_t);
+ static mp_device_t *qla2x00_find_mp_dev_by_id(mp_host_t *, uint8_t);
+ static mp_device_t *qla2x00_find_mp_dev_by_nodename(mp_host_t *, uint8_t *);
+-static mp_device_t *qla2x00_find_mp_dev_by_portname(mp_host_t *, uint8_t *,
++mp_device_t *qla2x00_find_mp_dev_by_portname(mp_host_t *, uint8_t *,
+     uint16_t *);
+ static mp_device_t *qla2x00_find_dp_by_pn_from_all_hosts(uint8_t *, uint16_t *);
+@@ -80,7 +79,36 @@ static void qla2x00_add_path(mp_path_lis
+ static BOOL qla2x00_is_portname_in_device(mp_device_t *, uint8_t *);
+ static void qla2x00_failback_single_lun(mp_device_t *, uint8_t, uint8_t);
+ static void qla2x00_failback_luns(mp_host_t *);
+-static void qla2x00_setup_new_path(mp_device_t *, mp_path_t *);
++static void qla2x00_setup_new_path(mp_device_t *, mp_path_t *, fc_port_t *);
++static int  qla2x00_get_wwuln_from_device(mp_host_t *, fc_lun_t *, char       *, int);
++#if 0
++static mp_device_t  * qla2x00_is_nn_and_pn_in_device(mp_device_t *, 
++      uint8_t *, uint8_t *);
++static mp_device_t  * qla2x00_find_mp_dev_by_nn_and_pn(mp_host_t *, uint8_t *, uint8_t *);
++#endif
++static mp_lun_t  * qla2x00_find_matching_lunid(char   *);
++static fc_lun_t  * qla2x00_find_matching_lun_by_num(uint16_t , mp_device_t *,
++      mp_path_t *);
++static int qla2x00_configure_cfg_device(fc_port_t     *);
++static mp_lun_t *
++qla2x00_find_or_allocate_lun(mp_host_t *, uint16_t ,
++    fc_port_t *, fc_lun_t *);
++static void qla2x00_add_lun( mp_device_t *, mp_lun_t *);
++#if 0
++static BOOL qla2x00_is_nodename_in_device(mp_device_t *, uint8_t *);
++#endif
++static mp_port_t      *
++qla2x00_find_or_allocate_port(mp_host_t *, mp_lun_t *, 
++      mp_path_t *);
++static mp_port_t      *
++qla2x00_find_port_by_name(mp_lun_t *, mp_path_t *);
++static struct _mp_path *
++qla2x00_find_first_active_path(mp_device_t *, mp_lun_t *);
++#if 0
++static BOOL
++qla2x00_is_pathid_in_port(mp_port_t *, uint8_t );
++#endif
++int qla2x00_export_target( void *, uint16_t , fc_port_t *, uint16_t ); 
+ /*
+  * Global data items
+@@ -90,11 +118,66 @@ BOOL   mp_config_required = FALSE;
+ static int    mp_num_hosts = 0;
+ static BOOL   mp_initialized = FALSE;
+-
+ /*
+  * ENTRY ROUTINES
+  */
++ /*
++ *  Borrowed from scsi_scan.c 
++ */
++int16_t qla2x00_cfg_lookup_device(unsigned char *response_data)
++{
++      int i = 0;
++      unsigned char *pnt;
++      DEBUG3(printk(KERN_INFO "Entering %s\n", __func__);)
++      for (i = 0; 1; i++) {
++              if (cfg_device_list[i].vendor == NULL)
++                      return -1;
++              pnt = &response_data[8];
++              while (*pnt && *pnt == ' ')
++                      pnt++;
++              if (memcmp(cfg_device_list[i].vendor, pnt,
++                         strlen(cfg_device_list[i].vendor)))
++                      continue;
++              pnt = &response_data[16];
++              while (*pnt && *pnt == ' ')
++                      pnt++;
++              if (memcmp(cfg_device_list[i].model, pnt,
++                         strlen(cfg_device_list[i].model)))
++                      continue;
++              return i;
++      }
++      return -1;
++}
++
++
++static int qla2x00_configure_cfg_device(fc_port_t     *fcport)
++{
++      int             id = fcport->cfg_id;
++
++      DEBUG3(printk("Entering %s - id= %d\n", __func__, fcport->cfg_id);)
++
++      if( fcport->cfg_id == (int16_t) -1 )
++              return 0;
++
++      /* Set any notify options */
++      if( cfg_device_list[id].notify_type != FO_NOTIFY_TYPE_NONE ){
++              fcport->notify_type = cfg_device_list[id].notify_type;
++      }   
++
++      DEBUG3(printk("%s - Configuring device \n", __func__);) 
++      /* Disable failover capability if needed  and return */
++              
++      fcport->fo_combine = cfg_device_list[id].fo_combine;
++#if 0
++      fcport->fo_detect = cfg_device_list[id].fo_detect;
++      fcport->fo_notify = cfg_device_list[id].fo_notify;
++      fcport->fo_select = cfg_device_list[id].fo_select;
++#endif
++      DEBUG3(printk("Exiting %s - id= %d\n", __func__, fcport->cfg_id); )
++              return 1;
++}
++
+ /*
+  * qla2x00_cfg_init
+  *      Initialize configuration structures to handle an instance of
+@@ -116,17 +199,16 @@ qla2x00_cfg_init(scsi_qla_host_t *ha)
+       ENTER("qla2x00_cfg_init");
+       set_bit(CFG_ACTIVE, &ha->cfg_flags);
+-      if (!mp_initialized) {
+-              /* First HBA, initialize the failover global properties */
+-              qla2x00_fo_init_params(ha);
+-
+-              /* If the user specified a device configuration then
+-               * it is use as the configuration. Otherwise, we wait
+-               * for path discovery.
+-               */
+-              if ( mp_config_required )
+-                      qla2x00_cfg_build_path_tree(ha);
+-      }
++      mp_initialized = TRUE; 
++      /* First HBA, initialize the failover global properties */
++      qla2x00_fo_init_params(ha);
++
++      /* If the user specified a device configuration then
++       * it is use as the configuration. Otherwise, we wait
++       * for path discovery.
++       */
++      if (mp_config_required)
++              qla2x00_cfg_build_path_tree(ha);
+       rval = qla2x00_cfg_path_discovery(ha);
+       clear_bit(CFG_ACTIVE, &ha->cfg_flags);
+       LEAVE("qla2x00_cfg_init");
+@@ -191,10 +273,10 @@ qla2x00_cfg_path_discovery(scsi_qla_host
+       }
+       /* Fill in information about host */
+-      if (host != NULL ) {
++      if (host != NULL) {
+               host->flags |= MP_HOST_FLAG_NEEDS_UPDATE;
+               host->flags |= MP_HOST_FLAG_LUN_FO_ENABLED;
+-              host->fcport = ha->fcport;
++              host->fcports = &ha->fcports;
+               /* Check if multipath is enabled */
+               DEBUG3(printk("%s: updating mp host for ha inst %ld.\n",
+@@ -261,8 +343,10 @@ qla2x00_cfg_event_notify(scsi_qla_host_t
+                       /* Adapter is back up with new configuration */
+                       if ((host = qla2x00_cfg_find_host(ha)) != NULL) {
+                               host->flags |= MP_HOST_FLAG_NEEDS_UPDATE;
+-                              host->fcport = ha->fcport;
++                              host->fcports = &ha->fcports;
++                              set_bit(CFG_FAILOVER, &ha->cfg_flags);
+                               qla2x00_update_mp_tree();
++                              clear_bit(CFG_FAILOVER, &ha->cfg_flags);
+                       }
+                       break;
+               case MP_NOTIFY_LOOP_DOWN:
+@@ -282,6 +366,248 @@ qla2x00_cfg_event_notify(scsi_qla_host_t
+       return QLA2X00_SUCCESS;
+ }
++int qla2x00_cfg_remap(scsi_qla_host_t *halist)
++{
++      scsi_qla_host_t *ha;
++
++      DEBUG2(printk("Entering %s ...\n",__func__);)
++      /* Find the host that was specified */
++      mp_initialized = TRUE; 
++      for (ha=halist; (ha != NULL); ha=ha->next) {
++              set_bit(CFG_FAILOVER, &ha->cfg_flags);
++              qla2x00_cfg_path_discovery(ha);
++              clear_bit(CFG_FAILOVER, &ha->cfg_flags);
++      }
++      mp_initialized = FALSE; 
++      DEBUG2(printk("Exiting %s ...\n",__func__);)
++
++      return QLA2X00_SUCCESS;
++}
++
++/*
++ *  qla2x00_allocate_mp_port
++ *      Allocate an fc_mp_port, clear the memory, and log a system
++ *      error if the allocation fails. After fc_mp_port is allocated
++ *
++ */
++static mp_port_t *
++qla2x00_allocate_mp_port(uint8_t *portname)
++{
++      mp_port_t   *port;
++      int     i;
++
++      DEBUG3(printk("%s: entered.\n", __func__);)
++
++      port = (mp_port_t *)KMEM_ZALLOC(sizeof(mp_port_t), 3);
++
++      if (port != NULL) {
++              DEBUG(printk("%s: mp_port_t allocated at %p\n",
++                  __func__, port);)
++
++              /*
++               * Since this is the first port, it goes at
++               * index zero.
++               */
++              if (portname)
++              {
++                      DEBUG3(printk("%s: copying port name %02x%02x%02x"
++                          "%02x%02x%02x%02x%02x.\n",
++                          __func__, portname[0], portname[1],
++                          portname[2], portname[3], portname[4],
++                          portname[5], portname[6], portname[7]);)
++                      memcpy(&port->portname[0], portname, PORT_NAME_SIZE);
++              }
++              for ( i = 0 ;i <  MAX_HOSTS; i++ ) {
++                      port->path_list[i] = PATH_INDEX_INVALID;
++              }
++              port->fo_cnt = 0;
++              
++      }
++
++      DEBUG3(printk("%s: exiting.\n", __func__);)
++
++      return port;
++}
++
++static mp_port_t      *
++qla2x00_find_port_by_name(mp_lun_t *mplun, 
++      mp_path_t *path)
++{
++      mp_port_t       *port = NULL;
++      mp_port_t       *temp_port;
++      struct list_head *list, *temp;
++
++      list_for_each_safe(list, temp, &mplun->ports_list) {
++              temp_port = list_entry(list, mp_port_t, list);
++              if ( memcmp(temp_port->portname, path->portname, WWN_SIZE) == 0 ) {
++                      port = temp_port;
++                      break;
++              }
++      }
++      return port;
++}
++
++
++static mp_port_t      *
++qla2x00_find_or_allocate_port(mp_host_t *host, mp_lun_t *mplun, 
++      mp_path_t *path)
++{
++      mp_port_t       *port = NULL;
++      struct list_head *list, *temp;
++      unsigned long   instance = host->instance;
++
++      if( instance == MAX_HOSTS - 1) {
++              printk(KERN_INFO "%s: Fail no room\n", __func__);
++              return NULL;
++      }
++
++      if ( mplun == NULL ) {
++              return NULL;
++      }
++
++      list_for_each_safe(list, temp, &mplun->ports_list) {
++              port = list_entry(list, mp_port_t, list);
++              if ( memcmp(port->portname, path->portname, WWN_SIZE) == 0 ) {
++                      if ( port->path_list[instance] == PATH_INDEX_INVALID ) {
++                         DEBUG(printk("scsi%ld %s: Found matching mp port %02x%02x%02x"
++                          "%02x%02x%02x%02x%02x.\n",
++                          instance, __func__, port->portname[0], port->portname[1],
++                          port->portname[2], port->portname[3], 
++                          port->portname[4], port->portname[5], 
++                          port->portname[6], port->portname[7]);)
++                              port->path_list[instance] = path->id;
++                              port->hba_list[instance] = host->ha;
++                              port->cnt++;
++                              DEBUG(printk("%s: adding portname - port[%d] = "
++                          "%p at index = %d with path id %d\n",
++                          __func__, (int)instance ,port, 
++                              (int)instance, path->id);)
++                      }
++                      return port;
++              }
++      }
++      port = qla2x00_allocate_mp_port(path->portname);
++      if( port ) {
++              port->cnt++;
++              DEBUG(printk("%s: allocate and adding portname - port[%d] = "
++                          "%p at index = %d with path id %d\n",
++                          __func__, (int)instance, port, 
++                              (int)instance, path->id);)
++              port->path_list[instance] = path->id;
++              port->hba_list[instance] = host->ha;
++              /* add port to list */
++              list_add_tail(&port->list,&mplun->ports_list );
++      }
++      return port;
++}
++
++
++/*
++ * qla2x00_cfg_failover_port
++ *      Failover all the luns on the specified target to 
++ *            the new path.
++ *
++ * Inputs:
++ *      ha = pointer to host adapter
++ *      fp - pointer to new fc_lun (failover lun)
++ *      tgt - pointer to target
++ *
++ * Returns:
++ *      
++ */
++static fc_lun_t *
++qla2x00_cfg_failover_port( mp_host_t *host, mp_device_t *dp,
++      mp_path_t *new_path, fc_port_t *old_fcport, srb_t *sp)
++{
++      uint8_t         l;
++      fc_port_t       *fcport;
++      fc_lun_t        *fclun;
++      fc_lun_t        *new_fclun = NULL;
++      os_lun_t         *up;
++      mp_path_t       *vis_path;
++      mp_host_t       *vis_host;
++
++      fcport = new_path->port;
++      if( !qla2x00_test_active_port(fcport) )  {
++              DEBUG2(printk("%s(%ld): %s - port not ACTIVE "
++              "to failover: port = %p, loop id= 0x%x\n",
++              __func__,
++              host->ha->host_no, __func__, fcport, fcport->loop_id);)
++              return new_fclun;
++      }
++
++      /* Log the failover to console */
++      printk(KERN_INFO
++              "qla2x00%d: FAILOVER all LUNS on device %d to WWPN "
++              "%02x%02x%02x%02x%02x%02x%02x%02x -> "
++              "%02x%02x%02x%02x%02x%02x%02x%02x, reason=0x%x\n",
++              (int) host->instance,
++              (int) dp->dev_id,
++              old_fcport->port_name[0], old_fcport->port_name[1],
++              old_fcport->port_name[2], old_fcport->port_name[3],
++              old_fcport->port_name[4], old_fcport->port_name[5],
++              old_fcport->port_name[6], old_fcport->port_name[7],
++              fcport->port_name[0], fcport->port_name[1],
++              fcport->port_name[2], fcport->port_name[3],
++              fcport->port_name[4], fcport->port_name[5],
++              fcport->port_name[6], fcport->port_name[7], sp->err_id );
++               printk(KERN_INFO
++              "qla2x00: FROM HBA %d to HBA %d\n",
++              (int)old_fcport->ha->instance,
++              (int)fcport->ha->instance);
++
++      /* we failover all the luns on this port */
++      list_for_each_entry(fclun, &fcport->fcluns, list) {
++              l = fclun->lun;
++              if( (fclun->flags & FC_VISIBLE_LUN) ) {  
++                      continue;
++              }
++              dp->path_list->current_path[l] = new_path->id;
++              if ((vis_path =
++                  qla2x00_get_visible_path(dp)) == NULL ) {
++                      printk(KERN_INFO
++                  "qla2x00(%d): No visible "
++                          "path for target %d, "
++                          "dp = %p\n",
++                          (int)host->instance,
++                  dp->dev_id, dp);
++                  continue;
++              }
++
++              vis_host = vis_path->host;
++              up = (os_lun_t *) GET_LU_Q(vis_host->ha, 
++                  dp->dev_id, l);
++              if (up == NULL ) {
++              DEBUG2(printk("%s: instance %d: No lun queue"
++                  "for target %d, lun %d.. \n",
++                      __func__,(int)vis_host->instance,dp->dev_id,l);)
++                      continue;
++              }
++
++              up->fclun = fclun;
++              fclun->fcport->cur_path = new_path->id;
++
++              DEBUG2(printk("%s: instance %d: Mapping target %d:0x%x,"
++                  "lun %d to path id %d\n",
++                      __func__,(int)vis_host->instance,dp->dev_id,
++                      fclun->fcport->loop_id, l,
++                  fclun->fcport->cur_path);)
++
++                      /* issue reset to data luns only */
++                      if( fclun->inq0 == 0 ) {
++                              new_fclun = fclun;
++                              /* send a reset lun command as well */
++                      printk(KERN_INFO 
++                          "scsi(%ld:0x%x:%d) sending reset lun \n",
++                                      fcport->ha->host_no,
++                                      fcport->loop_id, l);
++                              qla2x00_lun_reset(fcport->ha,
++                                      fcport->loop_id, l);
++                      }
++              }
++      return new_fclun;
++}
++
+ /*
+  * qla2x00_cfg_failover
+  *      A problem has been detected with the current path for this
+@@ -304,8 +630,11 @@ qla2x00_cfg_failover(scsi_qla_host_t *ha
+       mp_device_t     *dp;                    /* virtual device pointer */
+       mp_path_t       *new_path;              /* new path pointer */
+       fc_lun_t        *new_fp = NULL;
++      fc_port_t       *fcport, *new_fcport;
+       ENTER("qla2x00_cfg_failover");
++      DEBUG2(printk("%s entered\n",__func__);)
++
+       set_bit(CFG_ACTIVE, &ha->cfg_flags);
+       if ((host = qla2x00_cfg_find_host(ha)) != NULL) {
+               if ((dp = qla2x00_find_mp_dev_by_nodename(
+@@ -318,21 +647,71 @@ qla2x00_cfg_failover(scsi_qla_host_t *ha
+                        * another I/O. If there is only one path continuer
+                        * to point at it.
+                        */
+-                      new_path = qla2x00_select_next_path(host, dp, fp->lun);
+-                      DEBUG3(printk("cfg_failover: new path @ %p\n",
+-                                              new_path);)
+-                      new_fp = qla2x00_find_matching_lun(fp->lun, new_path);
+-                      DEBUG3(printk("cfg_failover: new fp lun @ %p\n",
+-                                              new_fp);)
++                      new_path = qla2x00_select_next_path(host, dp, 
++                              fp->lun, sp);
++                      if( new_path == NULL )
++                              goto cfg_failover_done;
++                      new_fp = qla2x00_find_matching_lun(fp->lun, 
++                                      dp, new_path);
++                      if( new_fp == NULL )
++                              goto cfg_failover_done;
++                      DEBUG2(printk("cfg_failover: new path=%p, new pathid=%d"
++                                      " new fp lun= %p\n",
++                              new_path, new_path->id, new_fp);)
++
++                      fcport = fp->fcport;
++                      if( (fcport->flags & FC_MSA_DEVICE) ) {
++                              /* 
++                               * "select next path" has already 
++                               * send out the switch path notify 
++                               * command, so inactive old path 
++                               */
++                                      fcport->flags &= ~(FC_MSA_PORT_ACTIVE);
++                              if( qla2x00_cfg_failover_port( host, dp, 
++                                              new_path, fcport, sp) == NULL ) {
++                                      printk(KERN_INFO
++                                              "scsi(%ld): Fail to failover device "
++                                              " - fcport = %p\n",
++                                              host->ha->host_no, fcport);
++                                      goto cfg_failover_done;
++                              }
++                      } else if( (fcport->flags & FC_EVA_DEVICE) ) { 
++                              new_fcport = new_path->port;
++                              if ( qla2x00_test_active_lun( 
++                                      new_fcport, new_fp ) ) {
++                                      qla2x00_cfg_register_failover_lun(dp, 
++                                              sp, new_fp);
++                                       /* send a reset lun command as well */
++                                       printk(KERN_INFO 
++                                       "scsi(%ld:0x%x:%d) sending"
++                                       " reset lun \n",
++                                       new_fcport->ha->host_no,
++                                       new_fcport->loop_id, new_fp->lun);
++                                       qla2x00_lun_reset(new_fcport->ha,
++                                       new_fcport->loop_id, new_fp->lun);
++                              } else {
++                                      DEBUG2(printk(
++                                              "scsi(%ld): %s Fail to failover lun "
++                                              "old fclun= %p, new fclun= %p\n",
++                                              host->ha->host_no,
++                                               __func__,fp, new_fp);)
++                                      goto cfg_failover_done;
++                              }
++                      } else { /*default */
++                              new_fp = qla2x00_find_matching_lun(fp->lun, 
++                                      dp, new_path);
++                              qla2x00_cfg_register_failover_lun(dp, sp, new_fp);
++                      }
+-                      qla2x00_cfg_register_failover_lun(dp, sp, new_fp);
+               } else {
+                       printk(KERN_INFO
+                               "qla2x00(%d): Couldn't find device "
+-                              "to failover\n",
+-                              host->instance);
++                              "to failover: dp = %p\n",
++                              host->instance, dp);
+               }
+       }
++
++cfg_failover_done:
+       clear_bit(CFG_ACTIVE, &ha->cfg_flags);
+       LEAVE("qla2x00_cfg_failover");
+@@ -426,7 +805,8 @@ qla2x00_cfg_get_paths(EXT_IOCTL *cmd, FO
+               mp_path_list_t  *ptmp_plist;
+ #define STD_MAX_PATH_CNT      1
+ #define STD_VISIBLE_INDEX     0
+-              fc_port_t               *pfcport = NULL;
++              int found;
++              fc_port_t               *fcport = NULL;
+               DEBUG9(printk("%s: non-fo case.\n", __func__);)
+@@ -443,16 +823,16 @@ qla2x00_cfg_get_paths(EXT_IOCTL *cmd, FO
+                       return -ENOMEM;
+               }
+-              for (pfcport = ha->fcport; pfcport != NULL;
+-                  pfcport = pfcport->next) {
+-
+-                      if (memcmp(pfcport->node_name, sap->DestAddr.WWNN,
++              found = 0;
++              list_for_each_entry(fcport, &ha->fcports, list) {
++                      if (memcmp(fcport->node_name, sap->DestAddr.WWNN,
+                           EXT_DEF_WWN_NAME_SIZE) == 0) {
++                              found++;
+                               break;
+                       }
+               }
+-              if (pfcport) {
++              if (found) {
+                       DEBUG9(printk("%s: found fcport:"
+                           "(%02x-%02x-%02x-%02x-%02x-%02x-%02x-%02x)\n.",
+                           __func__,
+@@ -475,18 +855,9 @@ qla2x00_cfg_get_paths(EXT_IOCTL *cmd, FO
+                       entry->Visible     = TRUE;
+                       entry->HbaInstance = bp->HbaInstance;
+-                      memcpy(entry->PortName, pfcport->port_name,
++                      memcpy(entry->PortName, fcport->port_name,
+                           EXT_DEF_WWP_NAME_SIZE);
+-                      rval = verify_area(VERIFY_WRITE, (void *)u_paths,
+-                          cmd->ResponseLen);
+-                      if (rval) {
+-                              /* error */
+-                              DEBUG9_10(printk("%s: u_paths %p verify write"
+-                                  " error. paths->PathCount=%d.\n",
+-                                  __func__, u_paths, paths->PathCount);)
+-                      }
+-
+                       /* Copy data to user */
+                       if (rval == 0)
+                               rval = copy_to_user(&u_paths->PathCount,
+@@ -605,14 +976,6 @@ qla2x00_cfg_get_paths(EXT_IOCTL *cmd, FO
+               DEBUG9(printk("%s: path cnt=%d, visible path=%d.\n",
+                   __func__, path_list->path_cnt, path_list->visible);)
+-              rval = verify_area(VERIFY_WRITE, (void *)u_paths,
+-                  cmd->ResponseLen);
+-              if (rval) {
+-                      /* error */
+-                      DEBUG9_10(printk("%s: u_paths %p verify write"
+-                          " error. paths->PathCount=%d.\n",
+-                          __func__, u_paths, paths->PathCount);)
+-              }
+               DEBUG9(printk("%s: path cnt=%d, visible path=%d.\n",
+                   __func__, path_list->path_cnt, path_list->visible);)
+@@ -956,6 +1319,7 @@ qla2x00_alloc_host(scsi_qla_host_t *ha)
+  * Input:
+  *      dp = pointer ti virtual device
+  *      portname = Port name to add to device
++ *      nodename = Node name to add to device
+  *
+  * Returns:
+  *      qla2x00 local function return status code.
+@@ -964,7 +1328,7 @@ qla2x00_alloc_host(scsi_qla_host_t *ha)
+  *      Kernel context.
+  */
+ static uint32_t
+-qla2x00_add_portname_to_mp_dev(mp_device_t *dp, uint8_t *portname)
++qla2x00_add_portname_to_mp_dev(mp_device_t *dp, uint8_t *portname, uint8_t *nodename)
+ {
+       uint8_t         index;
+       uint32_t        rval = QLA2X00_SUCCESS;
+@@ -1029,7 +1393,7 @@ qla2x00_allocate_mp_dev(uint8_t  *nodena
+                */
+               if (nodename)
+               {
+-                      DEBUG3(printk("%s: copying node name %02x%02x%02x"
++                      DEBUG(printk("%s: copying node name %02x%02x%02x"
+                           "%02x%02x%02x%02x%02x.\n",
+                           __func__, nodename[0], nodename[1],
+                           nodename[2], nodename[3], nodename[4],
+@@ -1305,137 +1669,1135 @@ qla2x00_found_hidden_path(mp_device_t *d
+ }
+ /*
+- * qla2x00_default_bind_mpdev
++ * qla2x00_get_wwuln_from_device
++ *    Issue SCSI inquiry page code 0x83 command for LUN WWLUN_NAME.
+  *
+  * Input:
+- *    host = mp_host of current adapter
+- *    port = fc_port of current port
++ *    ha = adapter block pointer.
++ *    fcport = FC port structure pointer.
+  *
+- * Returns:
+- *    mp_device pointer 
+- *    NULL - not found.
++ * Return:
++ *    0  - Failed to get the lun_wwlun_name
++ *      Otherwise : wwlun_size
+  *
+  * Context:
+  *    Kernel context.
+  */
+-static inline mp_device_t *
+-qla2x00_default_bind_mpdev(mp_host_t *host, fc_port_t *port)
++
++static int
++qla2x00_get_wwuln_from_device(mp_host_t *host, fc_lun_t *fclun, 
++      char    *evpd_buf, int wwlun_size)
+ {
+-      /* Default search case */
+-      int             devid = 0;
+-      mp_device_t     *temp_dp = NULL;  /* temporary pointer */
+-      mp_host_t       *temp_host;  /* temporary pointer */
+-      DEBUG3(printk("%s: entered.\n", __func__);)
++      evpd_inq_cmd_rsp_t      *pkt;
++      int             rval = 0 ; 
++      dma_addr_t      phys_address = 0;
++      int             retry;
++      uint16_t        comp_status;
++      uint16_t        scsi_status;
++      scsi_qla_host_t *ha;
++      uint16_t        next_loopid;
+-      for (temp_host = mp_hosts_base; (temp_host);
+-          temp_host = temp_host->next) {
+-              for (devid = 0; devid < MAX_MP_DEVICES; devid++) {
+-                      temp_dp = temp_host->mp_devs[devid];
++      ENTER(__func__);
++      //printk("%s entered\n",__func__);
+-                      if (temp_dp == NULL)
+-                              continue;
+-                      if (qla2x00_is_nodename_equal(temp_dp->nodename,
+-                          port->node_name)) {
+-                              DEBUG3(printk(
+-                                  "%s: Found matching dp @ host %p id %d:\n",
+-                                  __func__, temp_host, devid);)
++      if (atomic_read(&fclun->fcport->state) == FC_DEVICE_DEAD){
++              DEBUG(printk("%s leaving: Port is marked DEAD\n",__func__);)
++              return rval;
++      }
++
++      memset(evpd_buf, 0 ,wwlun_size);
++      ha = host->ha;
++      pkt = pci_alloc_consistent(ha->pdev,
++          sizeof(evpd_inq_cmd_rsp_t), &phys_address);
++
++      if (pkt == NULL) {
++              printk(KERN_WARNING
++                  "scsi(%ld): Memory Allocation failed - INQ\n",
++                  ha->host_no);
++              ha->mem_err++;
++              return rval;
++      }
++
++      retry = 2;
++      do {
++              memset(pkt, 0, sizeof(evpd_inq_cmd_rsp_t));
++              pkt->p.cmd.entry_type = COMMAND_A64_TYPE;
++              pkt->p.cmd.entry_count = 1;
++              pkt->p.cmd.lun = cpu_to_le16(fclun->lun);
++#if defined(EXTENDED_IDS)
++              pkt->p.cmd.target = cpu_to_le16(fclun->fcport->loop_id);
++#else
++              pkt->p.cmd.target = (uint8_t)fclun->fcport->loop_id;
++#endif
++              pkt->p.cmd.control_flags =
++                  __constant_cpu_to_le16(CF_READ | CF_SIMPLE_TAG);
++              pkt->p.cmd.scsi_cdb[0] = INQ_SCSI_OPCODE;
++              pkt->p.cmd.scsi_cdb[1] = INQ_EVPD_SET;
++              pkt->p.cmd.scsi_cdb[2] = INQ_DEV_IDEN_PAGE; 
++              pkt->p.cmd.scsi_cdb[4] = VITAL_PRODUCT_DATA_SIZE;
++              pkt->p.cmd.dseg_count = __constant_cpu_to_le16(1);
++              pkt->p.cmd.timeout = __constant_cpu_to_le16(10);
++              pkt->p.cmd.byte_count =
++                  __constant_cpu_to_le32(VITAL_PRODUCT_DATA_SIZE);
++              pkt->p.cmd.dseg_0_address[0] = cpu_to_le32(
++                  LSD(phys_address + sizeof(sts_entry_t)));
++              pkt->p.cmd.dseg_0_address[1] = cpu_to_le32(
++                  MSD(phys_address + sizeof(sts_entry_t)));
++              pkt->p.cmd.dseg_0_length =
++                  __constant_cpu_to_le32(VITAL_PRODUCT_DATA_SIZE);
++
++
++              rval = qla2x00_issue_iocb(ha, pkt,
++                          phys_address, sizeof(evpd_inq_cmd_rsp_t));
++
++              comp_status = le16_to_cpu(pkt->p.rsp.comp_status);
++              scsi_status = le16_to_cpu(pkt->p.rsp.scsi_status);
++
++              DEBUG5(printk("%s: lun (%d) inquiry page 0x83- "
++                  " comp status 0x%x, "
++                  "scsi status 0x%x, rval=%d\n",__func__,
++                  fclun->lun, comp_status, scsi_status, rval);)
++
++              /* if port not logged in then try and login */
++              if (fclun->lun == 0 && comp_status == CS_PORT_LOGGED_OUT &&
++                  atomic_read(&fclun->fcport->state) != FC_DEVICE_DEAD) {
++                      if (fclun->fcport->flags & FC_FABRIC_DEVICE) {
++                              /* login and update database */
++                              next_loopid = 0;
++                              qla2x00_fabric_login(ha, fclun->fcport,
++                                  &next_loopid);
++                      } else {
++                              /* Loop device gone but no LIP... */
++                              rval = QL_STATUS_ERROR;
+                               break;
+                       }
+               }
+-              if (temp_dp != NULL) {
+-                      /* found a match. */
+-                      break;
++      } while ((rval != QLA2X00_SUCCESS ||
++          comp_status != CS_COMPLETE) && 
++              retry--);
++
++      if (rval == QLA2X00_SUCCESS &&
++          pkt->inq[1] == INQ_DEV_IDEN_PAGE ) {
++
++              if( pkt->inq[7] <= WWLUN_SIZE ){
++                      memcpy(evpd_buf,&pkt->inq[8], pkt->inq[7]);
++                      DEBUG(printk("%s : Lun(%d)  WWLUN size %d\n",__func__,
++                          fclun->lun,pkt->inq[7]);)
++              } else {
++                      memcpy(evpd_buf,&pkt->inq[8], WWLUN_SIZE);
++                      printk(KERN_INFO "%s : Lun(%d)  WWLUN may "
++                          "not be complete, Buffer too small" 
++                          " need: %d provided: %d\n",__func__,
++                          fclun->lun,pkt->inq[7],WWLUN_SIZE);
+               }
+-      }
++              rval = pkt->inq[7] ; /* lun wwlun_size */
++              DEBUG3(qla2x00_dump_buffer(evpd_buf, rval);)
+-      if (temp_dp) {
+-              DEBUG3(printk("%s(%ld): update mpdev "
+-                  "on Matching node at dp %p. "
+-                  "dev_id %d adding new port %p-%02x"
+-                  "%02x%02x%02x%02x%02x%02x%02x\n",
+-                  __func__, host->ha->host_no,
+-                  temp_dp, devid, port,
+-                  port->port_name[0], port->port_name[1],
+-                  port->port_name[2], port->port_name[3],
+-                  port->port_name[4], port->port_name[5],
+-                  port->port_name[6], port->port_name[7]);)
++      } else {
++              if (scsi_status & SS_CHECK_CONDITION) {
++                      /*
++                       * ILLEGAL REQUEST - 0x05
++                       * INVALID FIELD IN CDB - 24 : 00
++                       */
++                      if(pkt->p.rsp.req_sense_data[2] == 0x05 && 
++                          pkt->p.rsp.req_sense_data[12] == 0x24 &&
++                          pkt->p.rsp.req_sense_data[13] == 0x00 ) {
++
++                              DEBUG(printk(KERN_INFO "%s Lun(%d) does not"
++                                  " support Inquiry Page Code-0x83\n",                                        
++                                  __func__,fclun->lun);)
++                      } else {
++                              DEBUG(printk(KERN_INFO "%s Lun(%d) does not"
++                                  " support Inquiry Page Code-0x83\n",        
++                                  __func__,fclun->lun);)
++                              DEBUG(printk( KERN_INFO "Unhandled check " 
++                                  "condition sense_data[2]=0x%x"              
++                                  " sense_data[12]=0x%x "
++                                  "sense_data[13]=0x%x\n",
++                                  pkt->p.rsp.req_sense_data[2],
++                                  pkt->p.rsp.req_sense_data[12],
++                                  pkt->p.rsp.req_sense_data[13]);)
++                      }
+-              qla2x00_add_portname_to_mp_dev(temp_dp,
+-                  port->port_name);
++              } else {
++                      /* Unable to issue Inquiry Page 0x83 */
++                      DEBUG2(printk(KERN_INFO
++                          "%s Failed to issue Inquiry Page 0x83 -- lun (%d) "
++                          "cs=0x%x ss=0x%x, rval=%d\n",
++                          __func__, fclun->lun, comp_status, scsi_status,
++                          rval);)
++              }
++              rval = 0 ;
++      }
+-              /*
+-               * Set the flag that we have
+-               * found the device.
+-               */
+-              host->mp_devs[devid] = temp_dp;
+-              temp_dp->use_cnt++;
++      pci_free_consistent(ha->pdev, sizeof(evpd_inq_cmd_rsp_t), 
++                              pkt, phys_address);
+-              /* Fixme(dg)
+-               * Copy the LUN info into
+-               * the mp_device_t
+-               */
+-      }
++      //printk("%s exit\n",__func__);
++      LEAVE(__func__);
+-      return (temp_dp);
++      return rval;
+ }
+ /*
+- *  qla2x00_find_or_allocate_mp_dev
+- *      Look through the existing multipath control tree, and find
+- *      an mp_device_t with the supplied world-wide node name.  If
+- *      one cannot be found, allocate one.
+- *
+- *  Input:
+- *      host      Adapter to add device to.
+- *      dev_id    Index of device on adapter.
+- *      port      port database information.
++ * qla2x00_find_matching_lunid
++ *      Find the lun in the lun list that matches the
++ *  specified wwu lun number.
+  *
+- *  Returns:
+- *      Pointer to new mp_device_t, or NULL if the allocation fails.
++ * Input:
++ *      buf  = buffer that contains the wwuln
++ *      host = host to search for lun
+  *
+- *  Side Effects:
+- *      If the MP HOST does not already point to the mp_device_t,
+- *      a pointer is added at the proper port offset.
++ * Returns:
++ *      NULL or pointer to lun
+  *
+  * Context:
+  *      Kernel context.
++ * (dg)
+  */
+-static mp_device_t *
+-qla2x00_find_or_allocate_mp_dev(mp_host_t *host, uint16_t dev_id,
+-    fc_port_t *port)
++static mp_lun_t  *
++qla2x00_find_matching_lunid(char      *buf)
+ {
+-      mp_device_t     *dp = NULL;  /* pointer to multi-path device   */
+-      BOOL            node_found;  /* Found matching node name. */
+-      BOOL            port_found;  /* Found matching port name. */
+-      BOOL            names_valid; /* Node name and port name are not zero */ 
+-      mp_host_t       *temp_host;  /* pointer to temporary host */
++      int             devid = 0;
++      mp_host_t       *temp_host;  /* temporary pointer */
++      mp_device_t     *temp_dp;  /* temporary pointer */
++      mp_lun_t *lun;
+-      uint16_t        j;
+-      mp_device_t     *temp_dp;
++      //printk("%s: entered.\n", __func__);
+-      ENTER("qla2x00_find_or_allocate_mp_dev");
++      for (temp_host = mp_hosts_base; (temp_host);
++          temp_host = temp_host->next) {
++              for (devid = 0; devid < MAX_MP_DEVICES; devid++) {
++                      temp_dp = temp_host->mp_devs[devid];
+-      DEBUG3(printk("%s(%ld): entered. host=%p, port =%p, dev_id = %d\n",
+-          __func__, host->ha->host_no, host, port, dev_id);)
++                      if (temp_dp == NULL)
++                              continue;
+-      temp_dp = qla2x00_find_mp_dev_by_id(host,dev_id);
++                      for( lun = temp_dp->luns; lun != NULL ; 
++                                      lun = lun->next ) {
+-      DEBUG3(printk("%s: temp dp =%p\n", __func__, temp_dp);)
+-      /* if Device already known at this port. */
+-      if (temp_dp != NULL) {
+-              node_found = qla2x00_is_nodename_equal(temp_dp->nodename,
+-                  port->node_name);
+-              port_found = qla2x00_is_portname_in_device(temp_dp,
+-                  port->port_name);
++                              if (lun->siz > WWULN_SIZE )
++                                      lun->siz = WWULN_SIZE;
+-              if (node_found && port_found) {
+-                      DEBUG3(printk("%s: mp dev %02x%02x%02x%02x%02x%02x"
+-                          "%02x%02x exists on %p. dev id %d. path cnt=%d.\n",
+-                          __func__,
+-                          port->port_name[0], port->port_name[1],
+-                          port->port_name[2], port->port_name[3],
++                              if (memcmp(lun->wwuln, buf, lun->siz) == 0)
++                                      return lun;
++                      }
++              }
++      }
++      return NULL;
++
++}
++
++#if 0
++/*
++ * qla2x00_find_mp_dev_by_nn_and_pn
++ *      Find the mp_dev for the specified target name.
++ *
++ * Input:
++ *      host = host adapter pointer.
++ *      name  = Target name
++ *
++ * Returns:
++ *
++ * Context:
++ *      Kernel context.
++ */
++static mp_device_t  *
++qla2x00_find_mp_dev_by_nn_and_pn(mp_host_t *host, 
++      uint8_t *portname, uint8_t *nodename)
++{
++      int id;
++      int idx;
++      mp_device_t *dp;
++
++      for (id= 0; id < MAX_MP_DEVICES; id++) {
++              if ((dp = host->mp_devs[id] ) == NULL)
++                      continue;
++
++              for (idx = 0; idx < MAX_PATHS_PER_DEVICE; idx++) {
++                      if (memcmp(&dp->nodenames[idx][0], nodename, WWN_SIZE) == 0 && 
++                              memcmp(&dp->portnames[idx][0], portname, WWN_SIZE) == 0 ) {
++                                      DEBUG3(printk("%s: Found matching device @ index %d:\n",
++                                      __func__, id);)
++                                      return dp;
++                      }
++              }
++      }
++
++      return NULL;
++}
++
++/*
++ * qla2x00_is_nn_and_pn_in_device
++ *      Find the mp_dev for the specified target name.
++ *
++ * Input:
++ *      host = host adapter pointer.
++ *      name  = Target name
++ *
++ * Returns:
++ *
++ * Context:
++ *      Kernel context.
++ */
++static mp_device_t  *
++qla2x00_is_nn_and_pn_in_device(mp_device_t *dp, 
++      uint8_t *portname, uint8_t *nodename)
++{
++      int idx;
++
++      for (idx = 0; idx < MAX_PATHS_PER_DEVICE; idx++) {
++              if (memcmp(&dp->nodenames[idx][0], nodename, WWN_SIZE) == 0 && 
++                      memcmp(&dp->portnames[idx][0], portname, WWN_SIZE) == 0 ) {
++                              DEBUG3(printk("%s: Found matching device @ index %d:\n",
++                          __func__, id);)
++                              return dp;
++              }
++      }
++
++      return NULL;
++}
++#endif
++
++/*
++ *  qla2x00_export_target
++ *      Look through the existing multipath control tree, and find
++ *      an mp_lun_t with the supplied world-wide lun number.  If
++ *      one cannot be found, allocate one.
++ *
++ *  Input:
++ *      host      Adapter to add device to.
++ *      dev_id    Index of device on adapter.
++ *      port      port database information.
++ *
++ *  Returns:
++ *      Pointer to new mp_device_t, or NULL if the allocation fails.
++ *
++ *  Side Effects:
++ *      If the MP HOST does not already point to the mp_device_t,
++ *      a pointer is added at the proper port offset.
++ *
++ * Context:
++ *      Kernel context.
++ */
++int
++qla2x00_export_target( void *vhost, uint16_t dev_id, 
++      fc_port_t *fcport, uint16_t pathid) 
++{
++      mp_host_t       *host = (mp_host_t *) vhost; 
++      mp_path_t       *path;
++      mp_device_t *dp = NULL;
++      BOOL            names_valid; /* Node name and port name are not zero */ 
++      BOOL            node_found;  /* Found matching node name. */
++      BOOL            port_found;  /* Found matching port name. */
++      mp_device_t     *temp_dp;
++      int             i;
++      uint16_t        new_id = dev_id;
++      uint16_t        idx;
++
++      DEBUG3(printk("%s(%ld): Entered. host=%p, fcport =%p, dev_id = %d\n",
++          __func__, host->ha->host_no, host, fcport, dev_id));
++
++      temp_dp = qla2x00_find_mp_dev_by_id(host,dev_id);
++
++      /* if Device already known at this port. */
++      if (temp_dp != NULL) {
++              node_found = qla2x00_is_nodename_equal(temp_dp->nodename,
++                  fcport->node_name);
++              port_found = qla2x00_is_portname_in_device(temp_dp,
++                  fcport->port_name);
++              /* found */
++              if (node_found && port_found) 
++                      dp = temp_dp;
++
++      }
++
++
++      /* Sanity check the port information  */
++      names_valid = (!qla2x00_is_ww_name_zero(fcport->node_name) &&
++          !qla2x00_is_ww_name_zero(fcport->port_name));
++
++      /*
++       * If the optimized check failed, loop through each known
++       * device on this known adapter looking for the node name.
++       */
++      if (dp == NULL && names_valid) {
++              if( (temp_dp = qla2x00_find_mp_dev_by_portname(host,
++                      fcport->port_name, &idx)) == NULL ) {
++                      /* find a good index */
++                      for( i = dev_id; i < MAX_MP_DEVICES; i++ )
++                              if(host->mp_devs[i] == NULL ) {
++                                      new_id = i;
++                                      break;
++                              }
++              } else if( temp_dp !=  NULL ) { /* found dp */
++                      if( qla2x00_is_nodename_equal(temp_dp->nodename,
++                          fcport->node_name) ) {
++                              new_id = temp_dp->dev_id;
++                              dp = temp_dp;
++                      }
++              }
++      }
++      
++      /* If we couldn't find one, allocate one. */
++      if (dp == NULL &&
++          ((fcport->flags & FC_CONFIG) || !mp_config_required)) {
++
++              DEBUG2(printk("%s(%d): No match for WWPN. Creating new mpdev \n"
++              "node %02x%02x%02x%02x%02x%02x%02x%02x "
++              "port %02x%02x%02x%02x%02x%02x%02x%02x\n",
++               __func__, host->instance,
++              fcport->node_name[0], fcport->node_name[1],
++              fcport->node_name[2], fcport->node_name[3],
++              fcport->node_name[4], fcport->node_name[5],
++              fcport->node_name[6], fcport->node_name[7],
++              fcport->port_name[0], fcport->port_name[1],
++              fcport->port_name[2], fcport->port_name[3],
++              fcport->port_name[4], fcport->port_name[5],
++              fcport->port_name[6], fcport->port_name[7]);) 
++              dp = qla2x00_allocate_mp_dev(fcport->node_name, 
++                      fcport->port_name);
++
++              DEBUG2(printk("%s(%ld): (2) mp_dev[%d] update"
++              " with dp %p\n ",
++              __func__, host->ha->host_no, new_id, dp);)
++              host->mp_devs[new_id] = dp;
++              dp->dev_id = new_id;
++              dp->use_cnt++;
++      }
++      
++      /*
++      * We either have found or created a path list. Find this
++      * host's path in the path list or allocate a new one
++      * and add it to the list.
++      */
++      if (dp == NULL) {
++              /* We did not create a mp_dev for this port. */
++              fcport->mp_byte |= MP_MASK_UNCONFIGURED;
++              DEBUG2(printk("%s: Device NOT found or created at "
++              " dev_id=%d.\n",
++              __func__, dev_id);)
++              return FALSE;
++      }
++
++      path = qla2x00_find_or_allocate_path(host, dp, dev_id,
++              pathid, fcport);
++      if (path == NULL) {
++              DEBUG2(printk("%s:Path NOT found or created.\n",
++              __func__);)
++              return FALSE;
++      }
++
++      return TRUE;
++}
++
++
++/*
++ *  qla2x00_combine_by_lunid
++ *      Look through the existing multipath control tree, and find
++ *      an mp_lun_t with the supplied world-wide lun number.  If
++ *      one cannot be found, allocate one.
++ *
++ *  Input:
++ *      host      Adapter to add device to.
++ *      dev_id    Index of device on adapter.
++ *      port      port database information.
++ *
++ *  Returns:
++ *      Pointer to new mp_device_t, or NULL if the allocation fails.
++ *
++ *  Side Effects:
++ *      If the MP HOST does not already point to the mp_device_t,
++ *      a pointer is added at the proper port offset.
++ *
++ * Context:
++ *      Kernel context.
++ */
++int
++qla2x00_combine_by_lunid( void *vhost, uint16_t dev_id, 
++      fc_port_t *fcport, uint16_t pathid) 
++{
++      mp_host_t       *host = (mp_host_t *) vhost; 
++      int fail = 0;
++      mp_path_t       *path;
++      mp_device_t *dp = NULL;
++      fc_lun_t        *fclun;
++      mp_lun_t  *lun;
++      BOOL            names_valid; /* Node name and port name are not zero */ 
++      mp_host_t       *temp_host;  /* pointer to temporary host */
++      mp_device_t     *temp_dp;
++      mp_port_t       *port;
++      int             l;
++
++      ENTER("qla2x00_combine_by_lunid");
++      //printk("Entering %s\n", __func__); 
++
++      /* 
++       * Currently, not use because we create common nodename for
++       * the gui, so we can use the normal common namename processing.
++       */
++      if (fcport->flags & FC_CONFIG) {
++              /* Search for device if not found create one */
++
++              temp_dp = qla2x00_find_mp_dev_by_id(host,dev_id);
++
++              /* if Device already known at this port. */
++              if (temp_dp != NULL) {
++                      DEBUG(printk("%s: Found an existing "
++                      "dp %p-  host %p inst=%d, fcport =%p, path id = %d\n",
++                      __func__, temp_dp, host, host->instance, fcport,
++                      pathid);)
++                      if( qla2x00_is_portname_in_device(temp_dp,
++                               fcport->port_name) ) {
++
++                              DEBUG2(printk("%s: mp dev %02x%02x%02x%02x%02x%02x"
++                          "%02x%02x exists on %p. dev id %d. path cnt=%d.\n",
++                          __func__,
++                          fcport->port_name[0], fcport->port_name[1],
++                          fcport->port_name[2], fcport->port_name[3],
++                          fcport->port_name[4], fcport->port_name[5],
++                          fcport->port_name[6], fcport->port_name[7],
++                          temp_dp, dev_id, temp_dp->path_list->path_cnt);)
++                              dp = temp_dp;
++                      } 
++
++              }
++
++              /*
++              * If the optimized check failed, loop through each known
++              * device on each known adapter looking for the node name
++              * and port name.
++              */
++              if (dp == NULL) {
++                      /* 
++                       * Loop through each potential adapter for the
++                       * specified target (dev_id). If a device is 
++                       * found then add this port or use it.
++                       */
++                      for (temp_host = mp_hosts_base; (temp_host);
++                              temp_host = temp_host->next) {
++                              /* user specifies the target via dev_id */
++                              temp_dp = temp_host->mp_devs[dev_id];
++                              if (temp_dp == NULL) {
++                                      continue;
++                              }
++                              if( qla2x00_is_portname_in_device(temp_dp,
++                                      fcport->port_name) ) {
++                                      dp = temp_dp;
++                              } else {
++                                      qla2x00_add_portname_to_mp_dev(
++                                      temp_dp, fcport->port_name, 
++                                      fcport->node_name);
++                                      dp = temp_dp;
++                                      host->mp_devs[dev_id] = dp;
++                                      dp->use_cnt++;
++                              }
++                              break;
++                      }
++              }
++
++              /* Sanity check the port information  */
++              names_valid = (!qla2x00_is_ww_name_zero(fcport->node_name) &&
++              !qla2x00_is_ww_name_zero(fcport->port_name));
++
++              if (dp == NULL && names_valid &&
++              ((fcport->flags & FC_CONFIG) || !mp_config_required) ) {
++
++                      DEBUG2(printk("%s(%ld): No match. adding new mpdev on "
++                      "dev_id %d. node %02x%02x%02x%02x%02x%02x%02x%02x "
++                      "port %02x%02x%02x%02x%02x%02x%02x%02x\n",
++                      __func__, host->ha->host_no, dev_id,
++                      fcport->node_name[0], fcport->node_name[1],
++                      fcport->node_name[2], fcport->node_name[3],
++                      fcport->node_name[4], fcport->node_name[5],
++                      fcport->node_name[6], fcport->node_name[7],
++                      fcport->port_name[0], fcport->port_name[1],
++                      fcport->port_name[2], fcport->port_name[3],
++                      fcport->port_name[4], fcport->port_name[5],
++                      fcport->port_name[6], fcport->port_name[7]);)
++                      dp = qla2x00_allocate_mp_dev(fcport->node_name, 
++                                      fcport->port_name);
++
++                      host->mp_devs[dev_id] = dp;
++                      dp->dev_id = dev_id;
++                      dp->use_cnt++;
++              }
++
++              /*
++              * We either have found or created a path list. Find this
++              * host's path in the path list or allocate a new one
++              * and add it to the list.
++              */
++              if (dp == NULL) {
++                      /* We did not create a mp_dev for this port. */
++                      fcport->mp_byte |= MP_MASK_UNCONFIGURED;
++                      DEBUG2(printk("%s: Device NOT found or created at "
++                      " dev_id=%d.\n",
++                      __func__, dev_id);)
++                      return FALSE;
++              }
++
++              /*
++              * Find the path in the current path list, or allocate
++              * a new one and put it in the list if it doesn't exist.
++              * Note that we do NOT set bSuccess to FALSE in the case
++              * of failure here.  We must tolerate the situation where
++              * the customer has more paths to a device than he can
++              * get into a PATH_LIST.
++              */
++              path = qla2x00_find_or_allocate_path(host, dp, dev_id,
++              pathid, fcport);
++              if (path == NULL) {
++                      DEBUG2(printk("%s:Path NOT found or created.\n",
++                      __func__);)
++                      return FALSE;
++              }
++
++
++              /* Set the PATH flag to match the device flag
++              * of whether this device needs a relogin.  If any
++              * device needs relogin, set the relogin countdown.
++              */
++              path->config = TRUE;
++
++
++      } else {
++              if (mp_initialized &&
++                  (fcport->flags & FC_MSA_DEVICE)  ){
++                       qla2x00_test_active_port(fcport); 
++              }
++              list_for_each_entry(fclun, &fcport->fcluns, list) {
++                      lun = qla2x00_find_or_allocate_lun(host, dev_id, 
++                                      fcport, fclun);
++                      if( lun == NULL ) {
++                              fail++;
++                              continue;
++                      }
++                      /*
++                      * Find the path in the current path list, or allocate
++                      * a new one and put it in the list if it doesn't exist.
++                      */
++                      dp = lun->dp;
++                      if( fclun->mplun == NULL )
++                              fclun->mplun = lun; 
++                      path = qla2x00_find_or_allocate_path(host, dp,
++                                      dp->dev_id, pathid, fcport);
++                      if (path == NULL || dp == NULL) {
++                              fail++;
++                              continue;
++                      }
++
++                      /* set the lun active flag */
++                      if (mp_initialized &&
++                       (fcport->flags & FC_EVA_DEVICE) ) { 
++                           qla2x00_test_active_lun( 
++                              path->port, fclun );
++                      }
++
++                      /* Add fclun to path list */
++                      if (lun->paths[path->id] == NULL) {
++                              lun->paths[path->id] = fclun;
++                              DEBUG2(printk("Updated path[%d]= %p for lun %p\n",
++                                      path->id, fclun, lun);)
++                              lun->path_cnt++;
++                      }
++                      
++                      /* 
++                       * if we have a visible lun then make
++                       * the target visible as well 
++                       */
++                      l = lun->number;
++                      if( (fclun->flags & FC_VISIBLE_LUN)  ) {  
++                              if (dp->path_list->visible ==
++                                  PATH_INDEX_INVALID) {
++                                      dp->path_list->visible = path->id;
++                                      DEBUG2(printk("%s: dp %p setting "
++                                          "visible id to %d\n",
++                                          __func__,dp,path->id );)
++                              }  
++                              dp->path_list->current_path[l] = path->id;
++                              path->lun_data.data[l] |=  LUN_DATA_PREFERRED_PATH;
++                              DEBUG2(printk("%s: Found a controller path 0x%x "
++                                  "- lun %d\n", __func__, path->id,l);)
++                      } else if (mp_initialized) {
++                              /*
++                              * Whenever a port or lun is "active" 
++                              * then force it to be a preferred path.
++                              */
++                              if (qla2x00_find_first_active_path(dp, lun) 
++                                      == path ){
++                                      dp->path_list->current_path[l] =
++                                          path->id;
++                                      path->lun_data.data[l] |=
++                                          LUN_DATA_PREFERRED_PATH;
++                                      DEBUG2(printk(
++                                      "%s: Found preferred lun at loopid=0x%02x, lun=%d, pathid=%d\n",
++                              __func__, fcport->loop_id, l, path->id);)
++                              }
++              }
++
++                      /* if (port->flags & FC_CONFIG)
++                              path->config = TRUE;  */
++
++                      port = qla2x00_find_or_allocate_port(host, lun, path);
++                      if (port == NULL) {
++                              fail++;
++                              continue;
++                      }
++              }
++      }
++
++      if (fail)
++              return FALSE;           
++      return TRUE;            
++}
++      
++#if 0
++/*
++ *  qla2x00_find_or_allocate_mp_dev
++ *      Look through the existing multipath control tree, and find
++ *      an mp_device_t with the supplied world-wide node name.  If
++ *      one cannot be found, allocate one.
++ *
++ *  Input:
++ *      host      Adapter to add device to.
++ *      dev_id    Index of device on adapter.
++ *      port      port database information.
++ *
++ *  Returns:
++ *      Pointer to new mp_device_t, or NULL if the allocation fails.
++ *
++ *  Side Effects:
++ *      If the MP HOST does not already point to the mp_device_t,
++ *      a pointer is added at the proper port offset.
++ *
++ * Context:
++ *      Kernel context.
++ */
++static mp_device_t *
++qla2x00_find_or_allocate_mp_dev(mp_host_t *host, uint16_t dev_id,
++    fc_port_t *port)
++{
++      mp_device_t     *dp = NULL;  /* pointer to multi-path device   */
++      BOOL            node_found;  /* Found matching node name. */
++      BOOL            port_found;  /* Found matching port name. */
++      BOOL            names_valid; /* Node name and port name are not zero */ 
++      mp_host_t       *temp_host;  /* pointer to temporary host */
++
++      uint16_t        j;
++      mp_device_t     *temp_dp;
++
++      ENTER("qla2x00_find_or_allocate_mp_dev");
++
++      DEBUG3(printk("%s(%ld): entered. host=%p, port =%p, dev_id = %d\n",
++          __func__, host->ha->host_no, host, port, dev_id);)
++
++      temp_dp = qla2x00_find_mp_dev_by_id(host,dev_id);
++
++      DEBUG3(printk("%s: temp dp =%p\n", __func__, temp_dp);)
++      /* if Device already known at this port. */
++      if (temp_dp != NULL) {
++              node_found = qla2x00_is_nodename_equal(temp_dp->nodename,
++                  port->node_name);
++              port_found = qla2x00_is_portname_in_device(temp_dp,
++                  port->port_name);
++
++              if (node_found && port_found) {
++                      DEBUG3(printk("%s: mp dev %02x%02x%02x%02x%02x%02x"
++                          "%02x%02x exists on %p. dev id %d. path cnt=%d.\n",
++                          __func__,
++                          port->port_name[0], port->port_name[1],
++                          port->port_name[2], port->port_name[3],
++                          port->port_name[4], port->port_name[5],
++                          port->port_name[6], port->port_name[7],
++                          temp_dp, dev_id, temp_dp->path_list->path_cnt);)
++                      dp = temp_dp;
++
++                      /*
++                       * Copy the LUN configuration data
++                       * into the mp_device_t.
++                       */
++              }
++      }
++
++
++      /* Sanity check the port information  */
++      names_valid = (!qla2x00_is_ww_name_zero(port->node_name) &&
++          !qla2x00_is_ww_name_zero(port->port_name));
++
++      /*
++       * If the optimized check failed, loop through each known
++       * device on each known adapter looking for the node name.
++       */
++      if (dp == NULL && names_valid) {
++              DEBUG3(printk("%s: Searching each adapter for the device...\n",
++                  __func__);)
++
++              /* Check for special cases. */
++              if (port->flags & FC_CONFIG) {
++                      /* Here the search is done only for ports that
++                       * are found in config file, so we can count on
++                       * mp_byte value when binding the paths.
++                       */
++                      DEBUG3(printk("%s(%ld): mpbyte=%02x process configured "
++                          "portname=%02x%02x%02x%02x%02x%02x%02x%02x.\n",
++                          __func__, host->ha->host_no, port->mp_byte,
++                          port->port_name[0], port->port_name[1],
++                          port->port_name[2], port->port_name[3],
++                          port->port_name[4], port->port_name[5],
++                          port->port_name[6], port->port_name[7]);)
++                      DEBUG3(printk("%s(%ld): nodename %02x%02x%02x%02x%02x"
++                          "%02x%02x%02x.\n",
++                          __func__, host->ha->host_no,
++                          port->node_name[0], port->node_name[1],
++                          port->node_name[2], port->node_name[3],
++                          port->node_name[4], port->node_name[5],
++                          port->node_name[6], port->node_name[7]);)
++
++                      if (port->mp_byte == 0) {
++                              DEBUG3(printk("%s(%ld): port visible.\n",
++                                  __func__, host->ha->host_no);)
++
++                              /* This device in conf file is set to visible */
++                              for (temp_host = mp_hosts_base; (temp_host);
++                                  temp_host = temp_host->next) {
++                                      /* Search all hosts with given tgt id
++                                       * for any previously created dp with
++                                       * matching node name.
++                                       */
++                                      temp_dp = temp_host->mp_devs[dev_id];
++                                      if (temp_dp == NULL) {
++                                              continue;
++                                      }
++
++                                      node_found =
++                                          qla2x00_is_nodename_equal(
++                                          temp_dp->nodename, port->node_name);
++
++                                      if (node_found &&
++                                          qla2x00_found_hidden_path(
++                                          temp_dp)) {
++                                              DEBUG3(printk(
++                                                  "%s(%ld): found "
++                                                  "mpdev of matching "
++                                                  "node %02x%02x%02x"
++                                                  "%02x%02x%02x%02x"
++                                                  "%02x w/ hidden "
++                                                  "paths. dp=%p "
++                                                  "dev_id=%d.\n",
++                                                  __func__,
++                                                  host->ha->host_no,
++                                                  port->port_name[0],
++                                                  port->port_name[1],
++                                                  port->port_name[2],
++                                                  port->port_name[3],
++                                                  port->port_name[4],
++                                                  port->port_name[5],
++                                                  port->port_name[6],
++                                                  port->port_name[7],
++                                                  temp_dp, dev_id);)
++                                              /*
++                                               * Found the mpdev.
++                                               * Treat this same as default
++                                               * case by adding this port
++                                               * to this mpdev which has same
++                                               * nodename.
++                                               */
++                                              qla2x00_add_portname_to_mp_dev(
++                                                  temp_dp, port->port_name, port->node_name);
++                                              dp = temp_dp;
++                                              host->mp_devs[dev_id] = dp;
++                                              dp->use_cnt++;
++
++                                              break;
++                                      }
++                              }
++
++                      } else if (port->mp_byte & MP_MASK_OVERRIDE) {
++                              /* Bind on port name */
++                              DEBUG3(printk(
++                                  "%s(%ld): port has override bit.\n",
++                                  __func__, host->ha->host_no);)
++
++                              temp_dp = qla2x00_find_dp_by_pn_from_all_hosts(
++                                  port->port_name, &j);
++
++                              if (temp_dp) {
++                                      /* Found match */
++                                      DEBUG3(printk("%s(%ld): update mpdev "
++                                          "on Matching port %02x%02x%02x"
++                                          "%02x%02x%02x%02x%02x "
++                                          "dp %p dev_id %d\n",
++                                          __func__, host->ha->host_no,
++                                          port->port_name[0],
++                                          port->port_name[1],
++                                          port->port_name[2],
++                                          port->port_name[3],
++                                          port->port_name[4],
++                                          port->port_name[5],
++                                          port->port_name[6],
++                                          port->port_name[7],
++                                          temp_dp, j);)
++                                      /*
++                                       * Bind this port to this mpdev of the
++                                       * matching port name.
++                                       */
++                                      dp = temp_dp;
++                                      host->mp_devs[j] = dp;
++                                      dp->use_cnt++;
++                              }
++                      } else {
++                              DEBUG3(printk("%s(%ld): default case.\n",
++                                  __func__, host->ha->host_no);)
++                              /* Default case. Search and bind/add this
++                               * port to the mp_dev with matching node name
++                               * if it is found.
++                               */
++                              dp = qla2x00_default_bind_mpdev(host, port);
++                      }
++
++              } else {
++                      DEBUG3(printk("%s(%ld): process discovered port "
++                          "%02x%02x%02x%02x%02x%02x%02x%02x.\n",
++                          __func__, host->ha->host_no,
++                          port->port_name[0], port->port_name[1],
++                          port->port_name[2], port->port_name[3],
++                          port->port_name[4], port->port_name[5],
++                          port->port_name[6], port->port_name[7]);)
++                      DEBUG3(printk("%s(%ld): nodename %02x%02x%02x%02x%02x"
++                          "%02x%02x%02x.\n",
++                          __func__, host->ha->host_no,
++                          port->node_name[0], port->node_name[1],
++                          port->node_name[2], port->node_name[3],
++                          port->node_name[4], port->node_name[5],
++                          port->node_name[6], port->node_name[7]);)
++
++                      /* Here we try to find the mp_dev pointer for the
++                       * current port in the current host, which would
++                       * have been created if the port was specified in
++                       * the config file.  To be sure the mp_dev we found
++                       * really is for the current port, we check the
++                       * node name to make sure it matches also.
++                       * When we find a previously created mp_dev pointer
++                       * for the current port, just return the pointer.
++                       * We proceed to add this port to an mp_dev of
++                       * the matching node name only if it is not found in
++                       * the mp_dev list already created and ConfigRequired
++                       * is not set.
++                       */
++                      temp_dp = qla2x00_find_mp_dev_by_portname(host,
++                          port->port_name, &j);
++
++                      if (temp_dp && qla2x00_is_nodename_equal(
++                          temp_dp->nodename, port->node_name)) {
++                              /* Found match. This mpdev port was created
++                               * from config file entry.
++                               */
++                              DEBUG3(printk("%s(%ld): update mpdev "
++                                  "on Matching port %02x%02x%02x"
++                                  "%02x%02x%02x%02x%02x "
++                                  "dp %p dev_id %d\n",
++                                  __func__, host->ha->host_no,
++                                  port->port_name[0],
++                                  port->port_name[1],
++                                  port->port_name[2],
++                                  port->port_name[3],
++                                  port->port_name[4],
++                                  port->port_name[5],
++                                  port->port_name[6],
++                                  port->port_name[7],
++                                  temp_dp, j);)
++
++                              dp = temp_dp;
++                      } else if (!mp_config_required) {
++
++                              DEBUG3(printk("%s(%ld): default case.\n",
++                                  __func__, host->ha->host_no);)
++                              /* Default case. Search and bind/add this
++                               * port to the mp_dev with matching node name
++                               * if it is found.
++                               */
++                              dp = qla2x00_default_bind_mpdev(host, port);
++                      }
++              }
++      }
++
++      /* If we couldn't find one, allocate one. */
++      if (dp == NULL &&
++          ((port->flags & FC_CONFIG) || !mp_config_required)) {
++
++              DEBUG3(printk("%s(%ld): No match. adding new mpdev on "
++                  "dev_id %d. node %02x%02x%02x%02x%02x%02x%02x%02x "
++                  "port %02x%02x%02x%02x%02x%02x%02x%02x\n",
++                  __func__, host->ha->host_no, dev_id,
++                  port->node_name[0], port->node_name[1],
++                  port->node_name[2], port->node_name[3],
++                  port->node_name[4], port->node_name[5],
++                  port->node_name[6], port->node_name[7],
++                  port->port_name[0], port->port_name[1],
++                  port->port_name[2], port->port_name[3],
++                  port->port_name[4], port->port_name[5],
++                  port->port_name[6], port->port_name[7]);)
++              dp = qla2x00_allocate_mp_dev(port->node_name, port->port_name);
++
++#ifdef QL_DEBUG_LEVEL_2
++              if (host->mp_devs[dev_id] != NULL) {
++                      printk(KERN_WARNING
++                          "qla2x00: invalid/unsupported configuration found. "
++                          "overwriting target id %d.\n",
++                          dev_id);
++              }
++#endif
++              host->mp_devs[dev_id] = dp;
++              dp->dev_id = dev_id;
++              dp->use_cnt++;
++      }
++
++      DEBUG3(printk("%s(%ld): exiting. return dp=%p.\n",
++          __func__, host->ha->host_no, dp);)
++      LEAVE("qla2x00_find_or_allocate_mp_dev");
++
++      return dp;
++}
++#endif
++
++/*
++ * qla2x00_default_bind_mpdev
++ *
++ * Input:
++ *    host = mp_host of current adapter
++ *    port = fc_port of current port
++ *
++ * Returns:
++ *    mp_device pointer 
++ *    NULL - not found.
++ *
++ * Context:
++ *    Kernel context.
++ */
++static inline mp_device_t *
++qla2x00_default_bind_mpdev(mp_host_t *host, fc_port_t *port)
++{
++      /* Default search case */
++      int             devid = 0;
++      mp_device_t     *temp_dp = NULL;  /* temporary pointer */
++      mp_host_t       *temp_host;  /* temporary pointer */
++
++      DEBUG3(printk("%s: entered.\n", __func__);)
++
++      for (temp_host = mp_hosts_base; (temp_host);
++          temp_host = temp_host->next) {
++              for (devid = 0; devid < MAX_MP_DEVICES; devid++) {
++                      temp_dp = temp_host->mp_devs[devid];
++
++                      if (temp_dp == NULL)
++                              continue;
++
++                      if (qla2x00_is_nodename_equal(temp_dp->nodename,
++                          port->node_name)) {
++                              DEBUG3(printk(
++                                  "%s: Found matching dp @ host %p id %d:\n",
++                                  __func__, temp_host, devid);)
++                              break;
++                      }
++              }
++              if (temp_dp != NULL) {
++                      /* found a match. */
++                      break;
++              }
++      }
++
++      if (temp_dp) {
++              DEBUG3(printk("%s(%ld): update mpdev "
++                  "on Matching node at dp %p. "
++                  "dev_id %d adding new port %p-%02x"
++                  "%02x%02x%02x%02x%02x%02x%02x\n",
++                  __func__, host->ha->host_no,
++                  temp_dp, devid, port,
++                  port->port_name[0], port->port_name[1],
++                  port->port_name[2], port->port_name[3],
++                  port->port_name[4], port->port_name[5],
++                  port->port_name[6], port->port_name[7]);)
++
++              if (!qla2x00_is_portname_in_device(temp_dp,
++                  port->port_name)) {
++                      qla2x00_add_portname_to_mp_dev(temp_dp,
++                          port->port_name, port->node_name);
++              }
++
++              /*
++               * Set the flag that we have
++               * found the device.
++               */
++              host->mp_devs[devid] = temp_dp;
++              temp_dp->use_cnt++;
++
++              /* Fixme(dg)
++               * Copy the LUN info into
++               * the mp_device_t
++               */
++      }
++
++      return (temp_dp);
++}
++
++/*
++ *  qla2x00_find_or_allocate_mp_dev
++ *      Look through the existing multipath control tree, and find
++ *      an mp_device_t with the supplied world-wide node name.  If
++ *      one cannot be found, allocate one.
++ *
++ *  Input:
++ *      host      Adapter to add device to.
++ *      dev_id    Index of device on adapter.
++ *      port      port database information.
++ *
++ *  Returns:
++ *      Pointer to new mp_device_t, or NULL if the allocation fails.
++ *
++ *  Side Effects:
++ *      If the MP HOST does not already point to the mp_device_t,
++ *      a pointer is added at the proper port offset.
++ *
++ * Context:
++ *      Kernel context.
++ */
++static mp_device_t *
++qla2x00_find_or_allocate_mp_dev(mp_host_t *host, uint16_t dev_id,
++    fc_port_t *port)
++{
++      mp_device_t     *dp = NULL;  /* pointer to multi-path device   */
++      BOOL            node_found;  /* Found matching node name. */
++      BOOL            port_found;  /* Found matching port name. */
++      BOOL            names_valid; /* Node name and port name are not zero */ 
++      mp_host_t       *temp_host;  /* pointer to temporary host */
++
++      uint16_t        j;
++      mp_device_t     *temp_dp;
++
++      ENTER("qla2x00_find_or_allocate_mp_dev");
++
++      DEBUG3(printk("%s(%ld): entered. host=%p, port =%p, dev_id = %d\n",
++          __func__, host->ha->host_no, host, port, dev_id);)
++
++      temp_dp = qla2x00_find_mp_dev_by_id(host,dev_id);
++
++      DEBUG3(printk("%s: temp dp =%p\n", __func__, temp_dp);)
++      /* if Device already known at this port. */
++      if (temp_dp != NULL) {
++              node_found = qla2x00_is_nodename_equal(temp_dp->nodename,
++                  port->node_name);
++              port_found = qla2x00_is_portname_in_device(temp_dp,
++                  port->port_name);
++
++              if (node_found && port_found) {
++                      DEBUG3(printk("%s: mp dev %02x%02x%02x%02x%02x%02x"
++                          "%02x%02x exists on %p. dev id %d. path cnt=%d.\n",
++                          __func__,
++                          port->port_name[0], port->port_name[1],
++                          port->port_name[2], port->port_name[3],
+                           port->port_name[4], port->port_name[5],
+                           port->port_name[6], port->port_name[7],
+                           temp_dp, dev_id, temp_dp->path_list->path_cnt);)
+@@ -1448,7 +2810,6 @@ qla2x00_find_or_allocate_mp_dev(mp_host_
+               }
+       }
+-
+       /* Sanity check the port information  */
+       names_valid = (!qla2x00_is_ww_name_zero(port->node_name) &&
+           !qla2x00_is_ww_name_zero(port->port_name));
+@@ -1526,11 +2887,17 @@ qla2x00_find_or_allocate_mp_dev(mp_host_
+                                                   temp_dp, dev_id);)
+                                               /*
+                                                * Found the mpdev.
+-                                               * Treat this same as
+-                                               * default case.
++                                               * Treat this same as default
++                                               * case by adding this port
++                                               * to this mpdev which has same
++                                               * nodename.
+                                                */
++                                      if (!qla2x00_is_portname_in_device(
++                                          temp_dp, port->port_name)) {
+                                               qla2x00_add_portname_to_mp_dev(
+-                                                  temp_dp, port->port_name);
++                                                  temp_dp, port->port_name, port->node_name);
++                                      }
++
+                                               dp = temp_dp;
+                                               host->mp_devs[dev_id] = dp;
+                                               dp->use_cnt++;
+@@ -1565,8 +2932,8 @@ qla2x00_find_or_allocate_mp_dev(mp_host_
+                                           port->port_name[7],
+                                           temp_dp, j);)
+                                       /*
+-                                       * Set the flag that we have
+-                                       * found the device.
++                                       * Bind this port to this mpdev of the
++                                       * matching port name.
+                                        */
+                                       dp = temp_dp;
+                                       host->mp_devs[j] = dp;
+@@ -1575,8 +2942,9 @@ qla2x00_find_or_allocate_mp_dev(mp_host_
+                       } else {
+                               DEBUG3(printk("%s(%ld): default case.\n",
+                                   __func__, host->ha->host_no);)
+-                              /* Default case. Search and bind mp_dev with
+-                               * matching node name.
++                              /* Default case. Search and bind/add this
++                               * port to the mp_dev with matching node name
++                               * if it is found.
+                                */
+                               dp = qla2x00_default_bind_mpdev(host, port);
+                       }
+@@ -1597,22 +2965,29 @@ qla2x00_find_or_allocate_mp_dev(mp_host_
+                           port->node_name[4], port->node_name[5],
+                           port->node_name[6], port->node_name[7]);)
+-                      /* Here we try to match ports found to any previously
+-                       * built mp_dev list. mp_byte value is not valid yet.
+-                       * First search for matching port name in current
+-                       * host. This is necessary in case the port name was
+-                       * specified in the config file with the override
+-                       * bit and saved in our mpdev tree already.
++                      /* Here we try to find the mp_dev pointer for the
++                       * current port in the current host, which would
++                       * have been created if the port was specified in
++                       * the config file.  To be sure the mp_dev we found
++                       * really is for the current port, we check the
++                       * node name to make sure it matches also.
++                       * When we find a previously created mp_dev pointer
++                       * for the current port, just return the pointer.
++                       * We proceed to add this port to an mp_dev of
++                       * the matching node name only if it is not found in
++                       * the mp_dev list already created and ConfigRequired
++                       * is not set.
+                        */
+                       temp_dp = qla2x00_find_mp_dev_by_portname(host,
+                           port->port_name, &j);
+-                      if (temp_dp) {
++                      if (temp_dp && qla2x00_is_nodename_equal(
++                          temp_dp->nodename, port->node_name)) {
+                               /* Found match. This mpdev port was created
+-                               * from config file.
++                               * from config file entry.
+                                */
+-                              DEBUG3(printk("%s(%ld): update mpdev "
+-                                  "on Matching port %02x%02x%02x"
++                              DEBUG3(printk("%s(%ld): found mpdev "
++                                  "created for current port %02x%02x%02x"
+                                   "%02x%02x%02x%02x%02x "
+                                   "dp %p dev_id %d\n",
+                                   __func__, host->ha->host_no,
+@@ -1631,8 +3006,9 @@ qla2x00_find_or_allocate_mp_dev(mp_host_
+                               DEBUG3(printk("%s(%ld): default case.\n",
+                                   __func__, host->ha->host_no);)
+-                              /* Default case. Search and bind mp_dev with
+-                               * matching node name.
++                              /* Default case. Search and bind/add this
++                               * port to the mp_dev with matching node name
++                               * if it is found.
+                                */
+                               dp = qla2x00_default_bind_mpdev(host, port);
+                       }
+@@ -1678,6 +3054,7 @@ qla2x00_find_or_allocate_mp_dev(mp_host_
+ }
++
+ /*
+  *  qla2x00_find_or_allocate_path
+  *      Look through the path list for the supplied device, and either
+@@ -1796,21 +3173,32 @@ qla2x00_find_or_allocate_path(mp_host_t 
+                       /* Update port with bitmask info */
+                       path = qla2x00_allocate_path(host, id, port, dev_id);
+-                      DEBUG3(printk("%s: allocated new path %p, adding "
+-                          "path id %d, mp_byte=0x%x "
+-                          "port=%p-%02x%02x%02x%02x%02x%02x%02x%02x\n",
+-                          __func__, path, id,
+-                          path->mp_byte,
+-                          path->port,
+-                          path->port->port_name[0], path->port->port_name[1],
+-                          path->port->port_name[2], path->port->port_name[3],
+-                          path->port->port_name[4], path->port->port_name[5],
+-                          path->port->port_name[6], path->port->port_name[7]
+-                          );)
+-                      qla2x00_add_path(path_list, path);
++                      if (path) {
++#if defined(QL_DEBUG_LEVEL_3)
++                              printk("%s: allocated new path %p, adding path "
++                                  "id %d, mp_byte=0x%x\n", __func__, path, id,
++                                  path->mp_byte);
++                              if (path->port)
++                                      printk( "port=%p-"
++                                          "%02x%02x%02x%02x%02x%02x%02x%02x\n"
++                                          , path->port,
++                                          path->port->port_name[0],
++                                          path->port->port_name[1],
++                                          path->port->port_name[2],
++                                          path->port->port_name[3],
++                                          path->port->port_name[4],
++                                          path->port->port_name[5],
++                                          path->port->port_name[6],
++                                          path->port->port_name[7]);
++#endif
++                              qla2x00_add_path(path_list, path);
+-                      /* Reconcile the new path against the existing ones. */
+-                      qla2x00_setup_new_path(dp, path);
++                              /*
++                               * Reconcile the new path against the
++                               * existing ones.
++                               */
++                              qla2x00_setup_new_path(dp, path, port);
++                      }
+               } else {
+                       /* EMPTY */
+                       DEBUG4(printk("%s: Err exit, no space to add path.\n",
+@@ -1824,6 +3212,264 @@ qla2x00_find_or_allocate_path(mp_host_t 
+       return path;
+ }
++/*
++ *  qla2x00_find_or_allocate_lun
++ *      Look through the existing multipath control tree, and find
++ *      an mp_lun_t with the supplied world-wide lun number.  If
++ *      one cannot be found, allocate one.
++ *
++ *  Input:
++ *      host      Adapter (lun) for the device.
++ *      fclun     Lun data from port database.
++ *
++ *  Returns:
++ *      Pointer to new LUN, or NULL if the allocation fails.
++ *
++ *  Side Effects:
++ *      1. If the LUN_LIST does not already point to the LUN,
++ *         a new LUN is added to the LUN_LIST.
++ *      2. If the DEVICE_LIST does not already point to the DEVICE,
++ *         a new DEVICE is added to the DEVICE_LIST.
++ *
++ * Context:
++ *      Kernel context.
++ */
++/* ARGSUSED */
++static mp_lun_t *
++qla2x00_find_or_allocate_lun(mp_host_t *host, uint16_t dev_id,
++    fc_port_t *port, fc_lun_t *fclun)
++{
++      mp_lun_t                *lun = NULL;
++      mp_device_t             *dp = NULL;
++#if 0
++      mp_device_t             *temp_dp = NULL;
++#endif
++      uint16_t                len;
++      uint16_t                idx;
++      uint16_t                new_id = dev_id;
++      char                    wwulnbuf[WWULN_SIZE];
++      int                     new_dev = 0;
++      int                     i;
++
++
++      ENTER("qla2x00_find_or_allocate_lun");
++      DEBUG(printk("Entering %s\n", __func__);)
++
++      if( fclun == NULL )
++              return NULL;
++
++      DEBUG2(printk("%s: "
++                  " lun num=%d fclun %p mplun %p hba inst=%d, port =%p, dev id = %d\n",
++                  __func__, fclun->lun, fclun, fclun->mplun, host->instance, port,
++                  dev_id);)
++      /* 
++       * Perform inquiry page 83 to get the wwuln or 
++       * use what was specified by the user.
++       */
++      if ( (port->flags & FC_CONFIG) ) {
++                      if( (len = fclun->mplen) != 0 ) 
++                              memcpy(wwulnbuf, fclun->mpbuf, len); 
++      } else {
++              len = qla2x00_get_wwuln_from_device(host, fclun, 
++                      &wwulnbuf[0], WWULN_SIZE); 
++              /* if fail to do the inq then exit */
++              if( len == 0 ) {
++                      return lun;
++              }
++      }
++
++      if( len != 0 )
++              lun = qla2x00_find_matching_lunid(wwulnbuf);
++
++      /* 
++       * If this is a visible "controller" lun and
++       * it is already exists on somewhere world wide
++       * then allocate a new device, so it can be 
++       * exported it to the OS.
++       */
++      if( (fclun->flags & FC_VISIBLE_LUN) &&
++              lun != NULL ) {
++              if( fclun->mplun ==  NULL ) {
++                      lun = NULL;
++                      new_dev++;
++              DEBUG2(printk("%s: Creating visible lun "
++                  "lun %p num %d fclun %p mplun %p inst=%d, port =%p, dev id = %d\n",
++                  __func__, lun, fclun->lun, fclun, fclun->mplun, host->instance, port,
++                  dev_id);)
++              } else {
++                      lun = fclun->mplun;
++                      return lun;
++              }
++      } 
++
++      if (lun != NULL ) {
++              DEBUG(printk("%s: Found an existing "
++                  "lun %p num %d fclun %p host %p inst=%d, port =%p, dev id = %d\n",
++                  __func__, lun, fclun->lun, fclun, host, host->instance, port,
++                  dev_id);)
++              if( (dp = lun->dp ) == NULL ) {
++                      printk("NO dp pointer in alloacted lun\n");
++                      return NULL;
++              }
++              DEBUG(printk("%s(%ld): lookup portname for lun->dp = "
++                      "dev_id %d. dp=%p node %02x%02x%02x%02x%02x%02x%02x%02x "
++                      "port %02x%02x%02x%02x%02x%02x%02x%02x\n",
++                      __func__, host->ha->host_no, dp->dev_id, dp,
++                      port->node_name[0], port->node_name[1],
++                      port->node_name[2], port->node_name[3],
++                      port->node_name[4], port->node_name[5],
++                      port->node_name[6], port->node_name[7],
++                      port->port_name[0], port->port_name[1],
++                      port->port_name[2], port->port_name[3],
++                      port->port_name[4], port->port_name[5],
++                      port->port_name[6], port->port_name[7]);)
++
++#if 1
++              if( qla2x00_is_portname_in_device(dp,
++                               port->port_name) ) {
++
++                              DEBUG(printk("%s: Found portname %02x%02x%02x%02x%02x%02x"
++                          "%02x%02x match in mp_dev[%d] = %p\n",
++                          __func__,
++                          port->port_name[0], port->port_name[1],
++                          port->port_name[2], port->port_name[3],
++                          port->port_name[4], port->port_name[5],
++                          port->port_name[6], port->port_name[7],
++                          dp->dev_id, dp);)
++                      if(host->mp_devs[dp->dev_id] == NULL ) {
++                              host->mp_devs[dp->dev_id] = dp;
++                              dp->use_cnt++;
++                      }       
++              } else {
++                      DEBUG(printk("%s(%ld): MP_DEV no-match on portname. adding new port - "
++                      "dev_id %d. node %02x%02x%02x%02x%02x%02x%02x%02x "
++                      "port %02x%02x%02x%02x%02x%02x%02x%02x\n",
++                      __func__, host->ha->host_no, dev_id,
++                      port->node_name[0], port->node_name[1],
++                      port->node_name[2], port->node_name[3],
++                      port->node_name[4], port->node_name[5],
++                      port->node_name[6], port->node_name[7],
++                      port->port_name[0], port->port_name[1],
++                      port->port_name[2], port->port_name[3],
++                      port->port_name[4], port->port_name[5],
++                      port->port_name[6], port->port_name[7]);)
++
++                      qla2x00_add_portname_to_mp_dev(dp,
++                      port->port_name, port->node_name);
++
++                      DEBUG2(printk("%s(%ld): (1) Added portname and mp_dev[%d] update"
++                      " with dp %p\n ",
++                      __func__, host->ha->host_no, dp->dev_id, dp);)
++                      if(host->mp_devs[dp->dev_id] == NULL ) {
++                              host->mp_devs[dp->dev_id] = dp;
++                              dp->use_cnt++; 
++                      }       
++              } 
++#else
++              if( (temp_dp = qla2x00_find_mp_dev_by_portname(host,
++                              port->port_name, &idx)) == NULL ) {
++                      DEBUG(printk("%s(%ld): MP_DEV no-match on portname. adding new port on "
++                      "dev_id %d. node %02x%02x%02x%02x%02x%02x%02x%02x "
++                      "port %02x%02x%02x%02x%02x%02x%02x%02x\n",
++                      __func__, host->ha->host_no, dev_id,
++                      port->node_name[0], port->node_name[1],
++                      port->node_name[2], port->node_name[3],
++                      port->node_name[4], port->node_name[5],
++                      port->node_name[6], port->node_name[7],
++                      port->port_name[0], port->port_name[1],
++                      port->port_name[2], port->port_name[3],
++                      port->port_name[4], port->port_name[5],
++                      port->port_name[6], port->port_name[7]);)
++
++                      qla2x00_add_portname_to_mp_dev(dp,
++                      port->port_name, port->node_name);
++
++                      DEBUG(printk("%s(%ld): (1) Added portname and mp_dev[%d] update"
++                      " with dp %p\n ",
++                      __func__, host->ha->host_no, dp->dev_id, dp);)
++                      if(host->mp_devs[dp->dev_id] == NULL ) {
++                              host->mp_devs[dp->dev_id] = dp;
++                              dp->use_cnt++; 
++                      }       
++              } else if( dp == temp_dp ){
++                      DEBUG3(printk("%s(%ld): MP_DEV %p match with portname @ "
++                      " mp_dev[%d]. "
++                      "port %02x%02x%02x%02x%02x%02x%02x%02x\n",
++                      __func__, host->ha->host_no, temp_dp, idx,
++                      port->port_name[0], port->port_name[1],
++                      port->port_name[2], port->port_name[3],
++                      port->port_name[4], port->port_name[5],
++                      port->port_name[6], port->port_name[7]);)
++
++                      host->mp_devs[idx] = temp_dp;
++                      dp->use_cnt++;
++              } 
++#endif
++      } else {
++              DEBUG(printk("%s: MP_lun %d not found "
++                  "for fclun %p inst=%d, port =%p, dev id = %d\n",
++                  __func__, fclun->lun, fclun, host->instance, port,
++                  dev_id);)
++                              
++                      if( (dp = qla2x00_find_mp_dev_by_portname(host,
++                              port->port_name, &idx)) == NULL || new_dev ) {
++                              DEBUG2(printk("%s(%ld): No match for WWPN. Creating new mpdev \n"
++                      "node %02x%02x%02x%02x%02x%02x%02x%02x "
++                      "port %02x%02x%02x%02x%02x%02x%02x%02x\n",
++                      __func__, host->ha->host_no, 
++                      port->node_name[0], port->node_name[1],
++                      port->node_name[2], port->node_name[3],
++                      port->node_name[4], port->node_name[5],
++                      port->node_name[6], port->node_name[7],
++                      port->port_name[0], port->port_name[1],
++                      port->port_name[2], port->port_name[3],
++                      port->port_name[4], port->port_name[5],
++                      port->port_name[6], port->port_name[7]);)
++                      dp = qla2x00_allocate_mp_dev(port->node_name, 
++                                              port->port_name);
++                      /* find a good index */
++                      for( i = dev_id; i < MAX_MP_DEVICES; i++ )
++                              if(host->mp_devs[i] == NULL ) {
++                                      new_id = i;
++                                      break;
++                              }
++                      } else if( dp !=  NULL ) { /* found dp */
++                              new_id = dp->dev_id;
++                      }
++                      
++                      if( dp !=  NULL ) {
++                      DEBUG2(printk("%s(%ld): (2) mp_dev[%d] update"
++                      " with dp %p\n ",
++                      __func__, host->ha->host_no, new_id, dp);)
++                              host->mp_devs[new_id] = dp;
++                              dp->dev_id = new_id;
++                              dp->use_cnt++;
++
++                              lun = (mp_lun_t *) KMEM_ZALLOC(sizeof(mp_lun_t), 24);
++                              if (lun != NULL) {
++                              DEBUG(printk("Added lun %p to dp %p lun number %d\n",
++                                      lun, dp, fclun->lun);)
++                              DEBUG(qla2x00_dump_buffer(wwulnbuf, len);)
++                                      memcpy(lun->wwuln, wwulnbuf, len);
++                                      lun->siz = len;
++                                      lun->number = fclun->lun;
++                                      lun->dp = dp;
++                                      qla2x00_add_lun(dp, lun);
++                                      INIT_LIST_HEAD(&lun->ports_list);
++                              }
++                      }
++                      else
++                              printk(KERN_WARNING
++                              "qla2x00: Couldn't get memory for dp. \n");
++      }
++
++      DEBUG(printk("Exiting %s\n", __func__);)
++      LEAVE("qla2x00_find_or_allocate_lun");
++
++      return lun;
++}
++
++
+ static uint32_t
+ qla2x00_cfg_register_failover_lun(mp_device_t *dp, srb_t *sp, fc_lun_t *new_lp)
+ {
+@@ -1832,7 +3478,7 @@ qla2x00_cfg_register_failover_lun(mp_dev
+       os_lun_t        *lq;
+       fc_lun_t        *old_lp;
+-      DEBUG2(printk(KERN_INFO "%s: NEW fclun = %p, sp = %p\n",
++      DEBUG(printk(KERN_INFO "%s: NEW fclun = %p, sp = %p\n",
+           __func__, new_lp, sp);)
+       /*
+@@ -1919,8 +3565,16 @@ qla2x00_send_failover_notify(mp_device_t
+       ENTER("qla2x00_send_failover_notify");
+-      old_lp = qla2x00_find_matching_lun(lun, oldpath);
+-      new_lp = qla2x00_find_matching_lun(lun, newpath);
++      if( (old_lp = qla2x00_find_matching_lun(lun, dp, oldpath)) == NULL ) {
++              DEBUG2(printk(KERN_INFO "%s: Failed to get old lun %p, %d\n",
++                  __func__, old_lp,lun);)
++              return QLA2X00_FUNCTION_FAILED;
++      }
++      if( (new_lp = qla2x00_find_matching_lun(lun, dp, newpath)) == NULL ) {
++              DEBUG2(printk(KERN_INFO "%s: Failed to get new lun %p,%d\n",
++                  __func__, new_lp,lun);)
++              return QLA2X00_FUNCTION_FAILED;
++      }
+       /*
+        * If the target is the same target, but a new HBA has been selected,
+@@ -1981,27 +3635,240 @@ qla2x00_send_failover_notify(mp_device_t
+                                   "lun=(%d).\n", __func__, lun);)
+                       }
+               }
+-      } else if (qla_fo_params.FailoverNotifyType == FO_NOTIFY_TYPE_SPINUP ){
++      } else if (qla_fo_params.FailoverNotifyType == FO_NOTIFY_TYPE_SPINUP ||
++                      old_lp->fcport->notify_type == FO_NOTIFY_TYPE_SPINUP ){
++
++                      status = qla2x00_send_fo_notification(old_lp, new_lp);
++                      if (status == QLA2X00_SUCCESS) {
++                              /* EMPTY */
++                              DEBUG(printk("%s: Send CDB succeeded.\n",
++                                  __func__);)
++                      } else {
++                              /* EMPTY */
++                              DEBUG(printk("%s: Send CDB Error "
++                                  "lun=(%d).\n", __func__, lun);)
++                      }
++      } else {
++              /* EMPTY */
++              DEBUG4(printk("%s: failover disabled or no notify routine "
++                  "defined.\n", __func__);)
++      }
++
++      return status;
++}
++
++static mp_path_t *
++qla2x00_find_host_from_port(mp_device_t *dp, 
++              mp_host_t *host,
++              mp_port_t *port )
++{
++      unsigned long   instance;
++      uint8_t         id;
++      int             i;
++      mp_path_t       *path = NULL;
++
++      /* get next host instance */
++      instance = host->instance;
++      for(i = 0 ; i < port->cnt ; i++ ) {
++              instance = instance + 1;
++              DEBUG3(printk("%s: Finding new instance %d, max %d, cnt %d\n",
++                      __func__, (int)instance, port->cnt, i);)
++              /* Handle wrap-around */
++              if( instance == port->cnt )
++                      instance = 0;
++              if( port->hba_list[instance] == NULL )
++                      continue;
++              if( port->hba_list[instance] != host->ha )
++                      break;
++      }
++      /* Found a different hba then return the path to it */
++      if ( i != port->cnt ) {
++              id = port->path_list[instance];
++              DEBUG2(printk("%s: Changing to new host - pathid=%d\n",
++                      __func__, id);)
++              path = qla2x00_find_path_by_id(dp, id);
++      }
++      return( path );
++}
++
++/*
++ * Find_best_port
++ * This routine tries to locate the best port to the target that 
++ * doesn't require issuing a target notify command. 
++ */
++/* ARGSUSED */
++static mp_path_t *
++qla2x00_find_best_port(mp_device_t *dp, 
++              mp_path_t *orig_path,
++              mp_port_t *port,
++              fc_lun_t *fclun )
++{
++      mp_path_t       *path = NULL;
++      mp_path_t       *new_path;
++      mp_port_t       *temp_port;
++      int             i, found;
++      fc_lun_t        *new_fp;
++      struct list_head *list, *temp;
++      mp_lun_t *mplun = (mp_lun_t *)fclun->mplun; 
++      unsigned long   instance;
++      uint16_t        id;
++
++      found = 0;
++      list_for_each_safe(list, temp, &mplun->ports_list) {
++              temp_port = list_entry(list, mp_port_t, list);
++              if ( port == temp_port ) {
++                      continue;
++              }
++              /* Search for an active matching lun on any HBA,
++                 but starting with the orig HBA */
++              instance = orig_path->host->instance;
++              for(i = 0 ; i < temp_port->cnt ; instance++) {
++                      if( instance == MAX_HOSTS )
++                              instance = 0;
++                      id = temp_port->path_list[instance];
++                      DEBUG(printk(
++                      "qla%d %s: i=%d, Checking temp port=%p, pathid=%d\n",
++                              (int)instance,__func__, i, temp_port, id);)
++                      if (id == PATH_INDEX_INVALID)
++                              continue;
++                      i++; /* found a valid hba entry */
++                      new_fp = mplun->paths[id];
++                      DEBUG(printk(
++                      "qla%d %s: Checking fclun %p, for pathid=%d\n",
++                              (int)instance,__func__, new_fp, id);)
++                      if( new_fp == NULL ) 
++                              continue;
++                      new_path = qla2x00_find_path_by_id(dp, id);
++                      if( new_path != NULL ) {
++                      DEBUG(printk(
++                      "qla%d %s: Found new path new_fp=%p, "
++                      "path=%p, flags=0x%x\n",
++                              (int)new_path->host->instance,__func__, new_fp, 
++                              new_path, new_path->port->flags);)
++
++
++                      if (atomic_read(&new_path->port->state) 
++                              == FC_DEVICE_DEAD){
++                       DEBUG2(printk("qla(%d) %s - Port (0x%04x) DEAD.\n",
++                      (int)new_path->host->instance, __func__,
++                      new_path->port->loop_id);)
++                              continue;
++                      }
++
++                      /* Is this path on an active controller? */
++                      if( (new_path->port->flags & FC_EVA_DEVICE)  &&
++                              !(new_fp->flags & FC_ACTIVE_LUN) ){
++                       DEBUG2(printk("qla(%d) %s - EVA Port (0x%04x) INACTIVE.\n",
++                      (int)new_path->host->instance, __func__,
++                      new_path->port->loop_id);)
++                              continue;
++                      }
++
++                      if( (new_path->port->flags & FC_MSA_DEVICE)  &&
++                                 !(new_path->port->flags & FC_MSA_PORT_ACTIVE) ) {
++                       DEBUG2(printk("qla(%d) %s - MSA Port (0x%04x) INACTIVE.\n",
++                      (int)new_path->host->instance, __func__,
++                      new_path->port->loop_id);)
++                              continue;
++                      }
++
++                      /* found a good path */
++                      DEBUG2(printk(
++                      "qla%d %s: *** Changing from port %p to new port %p - pathid=%d\n",
++                              (int)instance,__func__, port, temp_port, new_path->id); )
++                       return( new_path );
++                      }
++              }
++      }
++
++      return( path );
++}
++
++/*
++ * qla2x00_smart_failover
++ *      This routine tries to be smart about how it selects the 
++ *    next path. It selects the next path base on whether the
++ *    loop went down or the port went down. If the loop went
++ *    down it will select the next HBA. Otherwise, it will select
++ *    the next port. 
++ *
++ * Inputs:
++ *      device           Device being failed over.
++ *      sp               Request that initiated failover.
++ *      orig_path           path that was failed over from.
++ *
++ * Return:
++ *      next path     next path to use. 
++ *    flag            1 - Don't send notify command 
++ *                    0 - Send notify command 
++ *
++ * Context:
++ *      Kernel context.
++ */
++/* ARGSUSED */
++static mp_path_t *
++qla2x00_smart_path(mp_device_t *dp, 
++      mp_path_t *orig_path, srb_t *sp, int *flag )
++{
++      mp_path_t       *path = NULL;
++      fc_lun_t *fclun;
++      mp_port_t *port;
++      mp_host_t *host= orig_path->host;
++              
++      DEBUG2(printk("Entering %s - sp err = %d, instance =%d\n", 
++              __func__, sp->err_id, (int)host->instance);)
+-              if (newpath->lun_data.data[lun] & LUN_DATA_ENABLED) {
+-                      status = qla2x00_send_fo_notification(old_lp, new_lp);
+-                      if (status == QLA2X00_SUCCESS) {
+-                              /* EMPTY */
+-                              DEBUG(printk("%s: Send CDB succeeded.\n",
+-                                  __func__);)
+-                      } else {
+-                              /* EMPTY */
+-                              DEBUG(printk("%s: Send CDB Error "
+-                                  "lun=(%d).\n", __func__, lun);)
++ 
++      qla2x00_find_all_active_ports(sp);
++      if( sp != NULL ) {
++              fclun = sp->lun_queue->fclun;
++              if( fclun == NULL ) {
++                      printk( KERN_INFO
++                      "scsi%d %s: couldn't find fclun %p pathid=%d\n",
++                              (int)host->instance,__func__, fclun, orig_path->id);
++                      return( orig_path->next );
++              }
++              port = qla2x00_find_port_by_name( 
++                      (mp_lun_t *)fclun->mplun, orig_path);
++              if( port == NULL ) {
++                      printk( KERN_INFO
++                      "scsi%d %s: couldn't find MP port %p pathid=%d\n",
++                              (int)host->instance,__func__, port, orig_path->id);
++                      return( orig_path->next );
++              } 
++
++              /* Change to next HOST if loop went down */
++              if( sp->err_id == SRB_ERR_LOOP )  {
++                      path = qla2x00_find_host_from_port(dp, 
++                                      host, port );
++                      if( path != NULL ) {
++                              port->fo_cnt++;
++                              *flag = 1;
++                              /* if we used all the hbas then 
++                              try and get another port */ 
++                              if( port->fo_cnt > port->cnt ) {
++                                      port->fo_cnt = 0;
++                                      *flag = 0;
++                                      path = 
++                                        qla2x00_find_best_port(dp, 
++                                              orig_path, port, fclun );
++                                      if( path )
++                                              *flag = 1;
++                              }
+                       }
++              } else {
++                      path = qla2x00_find_best_port(dp, 
++                              orig_path, port, fclun );
++                      if( path )
++                              *flag = 1;
+               }
+-      } else {
+-              /* EMPTY */
+-              DEBUG4(printk("%s: failover disabled or no notify routine "
+-                  "defined.\n", __func__);)
+       }
++      /* Default path is next path*/
++      if (path == NULL) 
++              path = orig_path->next;
+-      return status;
++      DEBUG3(printk("Exiting %s\n", __func__);)
++      return path;
+ }
+ /*
+@@ -2022,7 +3889,8 @@ qla2x00_send_failover_notify(mp_device_t
+  *      Kernel context.
+  */
+ static mp_path_t *
+-qla2x00_select_next_path(mp_host_t *host, mp_device_t *dp, uint8_t lun)
++qla2x00_select_next_path(mp_host_t *host, mp_device_t *dp, uint8_t lun,
++      srb_t *sp)
+ {
+       mp_path_t       *path = NULL;
+       mp_path_list_t  *path_list;
+@@ -2030,6 +3898,11 @@ qla2x00_select_next_path(mp_host_t *host
+       int             id;
+       uint32_t        status;
+       mp_host_t *new_host;
++      int     skip_notify= 0;
++#if 0
++      fc_lun_t        *new_fp = NULL;
++#endif
++      
+       ENTER("qla2x00_select_next_path:");
+@@ -2044,20 +3917,25 @@ qla2x00_select_next_path(mp_host_t *host
+       if ((orig_path = qla2x00_find_path_by_id(dp, id)) != NULL) {
+               /* select next path */
+-              path = orig_path->next;
++                      if ( orig_path->port &&
++                 (orig_path->port->flags & (FC_MSA_DEVICE|FC_EVA_DEVICE)) ) {
++                      path = qla2x00_smart_path( dp, orig_path, 
++                              sp, &skip_notify ); 
++              } else
++                      path = orig_path->next;
+               new_host = path->host;
+               /* FIXME may need to check for HBA being reset */
+-              DEBUG3(printk("%s: orig path = %p new path = %p " 
++              DEBUG2(printk("%s: orig path = %p new path = %p " 
+                   "curr idx = %d, new idx = %d\n",
+                   __func__, orig_path, path, orig_path->id, path->id);)
+-              DEBUG3(printk("  FAILOVER: device nodename: "
++              DEBUG(printk("  FAILOVER: device nodename: "
+                   "%02x%02x%02x%02x%02x%02x%02x%02x\n",
+                   dp->nodename[0], dp->nodename[1],
+                   dp->nodename[2], dp->nodename[3],
+                   dp->nodename[4], dp->nodename[5],
+                   dp->nodename[6], dp->nodename[7]);)
+-              DEBUG3(printk(" Original  - host nodename: "
++              DEBUG(printk(" Original  - host nodename: "
+                   "%02x%02x%02x%02x%02x%02x%02x%02x\n",
+                   orig_path->host->nodename[0],
+                   orig_path->host->nodename[1],
+@@ -2067,7 +3945,7 @@ qla2x00_select_next_path(mp_host_t *host
+                   orig_path->host->nodename[5],
+                   orig_path->host->nodename[6],
+                   orig_path->host->nodename[7]);)
+-              DEBUG3(printk("   portname: "
++              DEBUG(printk("   portname: "
+                   "%02x%02x%02x%02x%02x%02x%02x%02x\n",
+                   orig_path->port->port_name[0],
+                   orig_path->port->port_name[1],
+@@ -2077,13 +3955,13 @@ qla2x00_select_next_path(mp_host_t *host
+                   orig_path->port->port_name[5],
+                   orig_path->port->port_name[6],
+                   orig_path->port->port_name[7]);)
+-              DEBUG3(printk(" New  - host nodename: "
++              DEBUG(printk(" New  - host nodename: "
+                   "%02x%02x%02x%02x%02x%02x%02x%02x\n",
+                   new_host->nodename[0], new_host->nodename[1],
+                   new_host->nodename[2], new_host->nodename[3],
+                   new_host->nodename[4], new_host->nodename[5],
+                   new_host->nodename[6], new_host->nodename[7]);)
+-              DEBUG3(printk("   portname: "
++              DEBUG(printk("   portname: "
+                   "%02x%02x%02x%02x%02x%02x%02x%02x\n",
+                   path->port->port_name[0],
+                   path->port->port_name[1],
+@@ -2095,9 +3973,8 @@ qla2x00_select_next_path(mp_host_t *host
+                   path->port->port_name[7]);)
+               path_list->current_path[lun] = path->id;
+-
+               /* If we selected a new path, do failover notification. */
+-              if (path != orig_path) {
++              if ( (path != orig_path) && !skip_notify ) {
+                       status = qla2x00_send_failover_notify(
+                                       dp, lun, path, orig_path);
+@@ -2133,7 +4010,7 @@ qla2x00_update_mp_host(mp_host_t  *host)
+ {
+       BOOL            success = TRUE;
+       uint16_t        dev_id;
+-      fc_port_t       *port;
++      fc_port_t       *fcport;
+       scsi_qla_host_t *ha = host->ha;
+       ENTER("qla2x00_update_mp_host");
+@@ -2142,20 +4019,26 @@ qla2x00_update_mp_host(mp_host_t  *host)
+       /*
+        * We make sure each port is attached to some virtual device.
+        */
+-      for (dev_id = 0, port = ha->fcport; (port);
+-          port = port->next, dev_id++) {
++      dev_id = 0;
++      fcport = NULL;
++      list_for_each_entry(fcport, &ha->fcports, list) {
++              if(fcport->port_type != FCT_TARGET)
++                      continue;
+               DEBUG3(printk("%s(%ld): checking fcport list. update port "
+                   "%p-%02x%02x%02x%02x%02x%02x%02x%02x dev_id %d "
+                   "to ha inst %ld.\n",
+                   __func__, ha->host_no,
+-                  port,
+-                  port->port_name[0], port->port_name[1],
+-                  port->port_name[2], port->port_name[3],
+-                  port->port_name[4], port->port_name[5],
+-                  port->port_name[6], port->port_name[7],
++                  fcport,
++                  fcport->port_name[0], fcport->port_name[1],
++                  fcport->port_name[2], fcport->port_name[3],
++                  fcport->port_name[4], fcport->port_name[5],
++                  fcport->port_name[6], fcport->port_name[7],
+                   dev_id, ha->instance);)
+-              success |= qla2x00_update_mp_device(host, port, dev_id, 0);
++
++              qla2x00_configure_cfg_device(fcport);
++              success |= qla2x00_update_mp_device(host, fcport, dev_id, 0);
++              dev_id++;
+       }
+       if (success) {
+               DEBUG2(printk(KERN_INFO "%s: Exit OK\n", __func__);)
+@@ -2165,7 +4048,7 @@ qla2x00_update_mp_host(mp_host_t  *host)
+               DEBUG2(printk(KERN_INFO "%s: Exit FAILED\n", __func__);)
+       }
+-      DEBUG3(printk("%s: inst %ld exiting.\n", __func__, ha->instance);)
++      DEBUG2(printk("%s: inst %ld exiting.\n", __func__, ha->instance);)
+       LEAVE("qla2x00_update_mp_host");
+       return success;
+@@ -2209,48 +4092,51 @@ qla2x00_update_mp_device(mp_host_t *host
+           dev_id);)
+       if (!qla2x00_is_ww_name_zero(port->port_name)) {
+-
++              if( port->fo_combine ) {
++                      return( port->fo_combine(host, dev_id, port, pathid) );
++              }
+               /*
+-               * Search for a device with a matching node name,
+-               * or create one.
+-               */
++              * Search for a device with a matching node name,
++              * portname or create one.
++              */
+               dp = qla2x00_find_or_allocate_mp_dev(host, dev_id, port);
+               /*
+-               * We either have found or created a path list. Find this
+-               * host's path in the path list or allocate a new one
+-               * and add it to the list.
+-               */
++              * We either have found or created a path list. Find this
++              * host's path in the path list or allocate a new one
++              * and add it to the list.
++              */
+               if (dp == NULL) {
+                       /* We did not create a mp_dev for this port. */
+                       port->mp_byte |= MP_MASK_UNCONFIGURED;
+                       DEBUG4(printk("%s: Device NOT found or created at "
+-                          " dev_id=%d.\n",
+-                          __func__, dev_id);)
++                      " dev_id=%d.\n",
++                      __func__, dev_id);)
+                       return FALSE;
+               }
+               /*
+-               * Find the path in the current path list, or allocate
+-               * a new one and put it in the list if it doesn't exist.
+-               * Note that we do NOT set bSuccess to FALSE in the case
+-               * of failure here.  We must tolerate the situation where
+-               * the customer has more paths to a device than he can
+-               * get into a PATH_LIST.
+-               */
+-
++              * Find the path in the current path list, or allocate
++              * a new one and put it in the list if it doesn't exist.
++              * Note that we do NOT set bSuccess to FALSE in the case
++              * of failure here.  We must tolerate the situation where
++              * the customer has more paths to a device than he can
++              * get into a PATH_LIST.
++              */
++      
+               path = qla2x00_find_or_allocate_path(host, dp, dev_id,
+                   pathid, port);
+               if (path == NULL) {
+                       DEBUG4(printk("%s:Path NOT found or created.\n",
+-                          __func__);)
++                      __func__);)
+                       return FALSE;
+               }
++
+               /* Set the PATH flag to match the device flag
+-               * of whether this device needs a relogin.  If any
+-               * device needs relogin, set the relogin countdown.
+-               */
++              * of whether this device needs a relogin.  If any
++              * device needs relogin, set the relogin countdown.
++              */
+               if (port->flags & FC_CONFIG)
+                       path->config = TRUE;
+@@ -2261,7 +4147,6 @@ qla2x00_update_mp_device(mp_host_t *host
+               } else {
+                       path->relogin = FALSE;
+               }
+-
+       } else {
+               /* EMPTY */
+               DEBUG4(printk("%s: Failed portname empty.\n",
+@@ -2306,7 +4191,7 @@ qla2x00_update_mp_tree(void)
+               /* Override the NEEDS_UPDATE flag if disabled. */
+               if (host->flags & MP_HOST_FLAG_DISABLE ||
+-                  host->fcport == NULL)
++                  list_empty(host->fcports))
+                       host->flags &= ~MP_HOST_FLAG_NEEDS_UPDATE;
+               if (host->flags & MP_HOST_FLAG_NEEDS_UPDATE) {
+@@ -2344,7 +4229,7 @@ qla2x00_update_mp_tree(void)
+ /*
+- * qla2x00_find_matching_lun
++ * qla2x00_find_matching_lun_by_num
+  *      Find the lun in the path that matches the
+  *  specified lun number.
+  *
+@@ -2360,23 +4245,49 @@ qla2x00_update_mp_tree(void)
+  * (dg)
+  */
+ static fc_lun_t  *
+-qla2x00_find_matching_lun(uint8_t lun, mp_path_t *newpath)
++qla2x00_find_matching_lun_by_num(uint16_t lun_no, mp_device_t *dp,
++      mp_path_t *newpath)
+ {
+-      fc_lun_t *lp = NULL;    /* lun ptr */
+-      fc_lun_t *nlp;                  /* Next lun ptr */
+-      fc_port_t *port;                /* port ptr */
+-
+-      if ((port = newpath->port) != NULL) {
+-              for (nlp = port->fclun; (nlp); nlp = nlp->next) {
+-                      if (lun == nlp->lun) {
+-                              lp = nlp;
++      int found;
++      fc_lun_t  *lp = NULL;   /* lun ptr */
++      fc_port_t *fcport;              /* port ptr */
++      mp_lun_t  *lun;
++
++      /* Use the lun list if we have one */   
++      if( dp->luns ) {
++              for (lun = dp->luns; lun != NULL ; lun = lun->next) {
++                      if( lun_no == lun->number ) {
++                              lp = lun->paths[newpath->id];
+                               break;
+                       }
+               }
++      } else {
++              if ((fcport = newpath->port) != NULL) {
++                      found = 0;
++                      list_for_each_entry(lp, &fcport->fcluns, list) {
++                              if (lun_no == lp->lun) {
++                                      found++;
++                                      break;
++                              }
++                      }
++                      if (!found)
++                              lp = NULL;
++              }
+       }
+       return lp;
+ }
++static fc_lun_t  *
++qla2x00_find_matching_lun(uint8_t lun, mp_device_t *dp, 
++      mp_path_t *newpath)
++{
++      fc_lun_t *lp;
++
++      lp = qla2x00_find_matching_lun_by_num(lun, dp, newpath);
++
++      return lp;
++}
++
+ /*
+  * qla2x00_find_path_by_name
+  *      Find the path specified portname from the pathlist
+@@ -2401,7 +4312,7 @@ qla2x00_find_path_by_name(mp_host_t *hos
+       int cnt;
+       if ((tmp_path = plp->last) != NULL) {
+-              for (cnt = 0; cnt < plp->path_cnt; cnt++) {
++              for (cnt = 0; (tmp_path) && cnt < plp->path_cnt; cnt++) {
+                       if (tmp_path->host == host &&
+                               qla2x00_is_portname_equal(
+                                       tmp_path->portname, portname)) {
+@@ -2496,12 +4407,22 @@ qla2x00_find_mp_dev_by_nodename(mp_host_
+               if ((dp = host->mp_devs[id] ) == NULL)
+                       continue;
++#if 0
++              if (qla2x00_is_nodename_in_device(dp, name)) {
++                      DEBUG(printk("%s: Found matching device @ index %d:\n",
++                          __func__, id);)
++                      return dp;
++              }
++#else
++DEBUG(printk("%s mpdev_nodename=%0x nodename_from_gui=%0x",__func__,dp->nodename[7],name[7]);)
+               if (qla2x00_is_nodename_equal(dp->nodename, name)) {
+                       DEBUG3(printk("%s: Found matching device @ index %d:\n",
+                           __func__, id);)
+                       return dp;
+               }
++#endif
+       }
++printk("%s could not find the node name\n",__func__);
+       LEAVE("qla2x00_find_mp_dev_by_name");
+@@ -2521,11 +4442,11 @@ qla2x00_find_mp_dev_by_nodename(mp_host_
+  * Context:
+  *      Kernel context.
+  */
+-static mp_device_t  *
++mp_device_t  *
+ qla2x00_find_mp_dev_by_portname(mp_host_t *host, uint8_t *name, uint16_t *pidx)
+ {
+       int             id;
+-      mp_device_t     *dp;
++      mp_device_t     *dp = NULL;
+       DEBUG3(printk("%s: entered.\n", __func__);)
+@@ -2661,10 +4582,10 @@ qla2x00_map_os_targets(mp_host_t *host)
+                           __func__, t, dp, host,ha);)
+                       if ((path = qla2x00_get_visible_path(dp)) == NULL) {
+-                              printk(KERN_INFO
++                              DEBUG( printk(KERN_INFO
+                                   "qla_cfg(%d): No visible path "
+                                   "for target %d, dp = %p\n",
+-                                  host->instance, t, dp);
++                                  host->instance, t, dp); )
+                               continue;
+                       }
+@@ -2677,19 +4598,20 @@ qla2x00_map_os_targets(mp_host_t *host)
+                                                       WWN_SIZE);
+                                       tgt->vis_port = path->port;
+                               }
+-                              DEBUG3(printk("%s(%ld): host=%d, "
+-                                  "device= %p has VISIBLE "
+-                                  "path=%p, path id=%d\n",
++                              DEBUG3(printk("%s(%ld): host instance =%d, "
++                                  "device= %p, tgt=%d has VISIBLE path,"
++                                  "path id=%d\n",
+                                   __func__, ha->host_no,
+                                   host->instance,
+-                                  dp, path, path->id);)
++                                  dp, t, path->id);)
+                       } else {
+-                      /* EMPTY */
+-                              DEBUG3(printk("%s(%ld): host=%d, "
+-                                  "device= %p has HIDDEN "
+-                                  "path=%p, path id=%d\n",
++                              DEBUG3(printk("%s(%ld): host instance =%d, "
++                                  "device= %p, tgt=%d has HIDDEN "
++                                  "path, path id=%d\n",
+                                   __func__, ha->host_no,
+-                                  host->instance, dp, path,path->id);)
++                                  host->instance, dp, t, 
++                                      path->id); )
++                              continue;
+                       }
+                       qla2x00_map_os_luns(host, dp, t);
+               } else {
+@@ -2702,6 +4624,28 @@ qla2x00_map_os_targets(mp_host_t *host)
+       LEAVE("qla2x00_map_os_targets ");
+ }
++static void
++qla2x00_map_or_failover_oslun(mp_host_t *host, mp_device_t *dp, 
++      uint16_t t, uint16_t lun_no)
++{
++      int     i;
++
++      /* 
++       * if this is initization time and we couldn't map the
++       * lun then try and find a usable path.
++       */
++      if ( qla2x00_map_a_oslun(host, dp, t, lun_no) &&
++              (host->flags & MP_HOST_FLAG_LUN_FO_ENABLED) ){
++              /* find a path for us to use */
++              for ( i = 0; i < dp->path_list->path_cnt; i++ ){
++                      qla2x00_select_next_path(host, dp, lun_no, NULL);
++                      if( !qla2x00_map_a_oslun(host, dp, t, lun_no))
++                              break;
++              }
++      }
++}
++
++
+ /*
+  * qla2x00_map_os_luns
+  *      Allocate the luns for the OS target.
+@@ -2719,20 +4663,37 @@ qla2x00_map_os_targets(mp_host_t *host)
+ static void
+ qla2x00_map_os_luns(mp_host_t *host, mp_device_t *dp, uint16_t t)
+ {
+-      uint16_t lun;
+-      int     i;
+-
+-      for (lun = 0; lun < MAX_LUNS; lun++ ) {
+-              if ( qla2x00_map_a_oslun(host, dp, t, lun) &&
+-                      (host->flags & MP_HOST_FLAG_LUN_FO_ENABLED) ){
+-                      /* find a path for us to use */
+-                      for ( i = 0; i < dp->path_list->path_cnt; i++ ){
+-                              qla2x00_select_next_path(host, dp, lun);
+-                              if( !qla2x00_map_a_oslun(host, dp, t, lun))
+-                                      break;
++      uint16_t lun_no;
++      mp_lun_t        *lun;
++      os_lun_t *up;
++
++      DEBUG3(printk("Entering %s..\n",__func__);)
++
++      /* if we are using lun binding then scan for the discovered luns */
++      if( dp->luns ) {
++              for (lun = dp->luns; lun != NULL ; lun = lun->next) {
++                      lun_no = lun->number;
++                      DEBUG2(printk("%s: instance %d: Mapping target %d, lun %d..\n",
++                              __func__,host->instance,t,lun->number);)
++                      qla2x00_map_or_failover_oslun(host, dp, 
++                              t, lun_no);
++                      up = (os_lun_t *) GET_LU_Q(host->ha, t, lun_no);
++                      if (up == NULL || up->fclun == NULL) {
++                      DEBUG2(printk("%s: instance %d: No FCLUN for target %d, lun %d.. \n",
++                              __func__,host->instance,t,lun->number);)
++                              continue;
+                       }
++                      DEBUG2(printk("%s: instance %d: Mapping target %d, lun %d.. to path id %d\n",
++                              __func__,host->instance,t,lun->number,
++                          up->fclun->fcport->cur_path);)
++              }
++      } else {
++              for (lun_no = 0; lun_no < MAX_LUNS; lun_no++ ) {
++                      qla2x00_map_or_failover_oslun(host, dp, 
++                              t, lun_no);
+               }
+       }
++      DEBUG3(printk("Exiting %s..\n",__func__);)
+ }
+ /*
+@@ -2763,18 +4724,23 @@ qla2x00_map_a_oslun(mp_host_t *host, mp_
+       BOOL            status = FALSE;
+       if ((id = dp->path_list->current_path[lun]) != PATH_INDEX_INVALID) {
++              DEBUG(printk( "qla2x00(%d): Current path for lun %d is path id %d\n",
++                  host->instance,
++                  lun, id);)
+               path = qla2x00_find_path_by_id(dp,id);
+               if (path) {
+                       fcport = path->port;
+                       if (fcport) {
+-                              /* dg 04/26/02 */
++
+                               fcport->cur_path = id;
+-                              fclun = qla2x00_find_matching_lun(lun,path);
++                              fclun = qla2x00_find_matching_lun(lun,dp,path);
++              DEBUG2(printk( "qla2x00(%d): found fclun %p, path id = %d\n", host->instance,fclun,id);)
+                               /* Always map all luns if they are enabled */
+                               if (fclun &&
+                                       (path->lun_data.data[lun] &
+                                        LUN_DATA_ENABLED) ) {
++              DEBUG(printk( "qla2x00(%d): Lun is enable \n", host->instance);)
+                                       /*
+                                        * Mapped lun on the visible path
+@@ -2791,10 +4757,10 @@ qla2x00_map_a_oslun(mp_host_t *host, mp_
+                                                   t, dp);
+                                               return FALSE;
+-                                      }
+-
++                                      } 
+                                       vis_host = vis_path->host;
++
+                                       /* ra 11/30/01 */
+                                       /*
+                                        * Always alloc LUN 0 so kernel
+@@ -2814,6 +4780,8 @@ qla2x00_map_a_oslun(mp_host_t *host, mp_
+                                               lq->fclun = fclun;
+                                       }
++              DEBUG(printk( "qla2x00(%d): lun allocated %p for lun %d\n",
++                       host->instance,lq,lun);)
+                               }
+                       }
+                       else
+@@ -2892,6 +4860,28 @@ qla2x00_add_path( mp_path_list_t *pathli
+       LEAVE("qla2x00_add_path");
+ }
++static void
++qla2x00_add_lun( mp_device_t *dp, mp_lun_t *lun)
++{
++      mp_lun_t        *cur_lun;
++
++      ENTER("qla2x00_add_lun");
++
++      /* Insert new entry into the list of luns */
++      lun->next = NULL;
++
++      cur_lun = dp->luns;
++      if( cur_lun == NULL ) {
++              dp->luns = lun;
++      } else {
++              /* add to tail of list */
++              while( cur_lun->next != NULL )
++                      cur_lun = cur_lun->next;
++
++              cur_lun->next = lun;
++      }
++      LEAVE("qla2x00_add_lun");
++}
+ /*
+  * qla2x00_is_portname_in_device
+@@ -2919,6 +4909,49 @@ qla2x00_is_portname_in_device(mp_device_
+       return FALSE;
+ }
++#if 0
++static BOOL
++qla2x00_is_pathid_in_port(mp_port_t *port, uint8_t pathid)
++{
++      int i;
++      uint8_t id;
++
++      for(i = 0 ; i < port->cnt ; i++ ) {
++              id = port->path_list[i];
++              if( id == pathid )
++                      return TRUE;
++      }
++      return FALSE;
++}
++#endif
++
++#if 0
++/*
++ * qla2x00_is_nodename_in_device
++ *    Search for the specified "nodename" in the device list.
++ *
++ * Input:
++ *    dp = device pointer
++ *    nodename = nodename to searched for in device
++ *
++ * Returns:
++ *      qla2x00 local function return status code.
++ *
++ * Context:
++ *      Kernel context.
++ */
++static BOOL
++qla2x00_is_nodename_in_device(mp_device_t *dp, uint8_t *nodename)
++{
++      int idx;
++
++      for (idx = 0; idx < MAX_PATHS_PER_DEVICE; idx++) {
++              if (memcmp(&dp->nodenames[idx][0], nodename, WWN_SIZE) == 0)
++                      return TRUE;
++      }
++      return FALSE;
++}
++#endif
+ /*
+  *  qla2x00_set_lun_data_from_bitmask
+@@ -2979,9 +5012,9 @@ qla2x00_failback_single_lun(mp_device_t 
+               return;
+       /* An fclun should exist for the failbacked lun */
+-      if (qla2x00_find_matching_lun(lun, new_path) == NULL)
++      if (qla2x00_find_matching_lun(lun, dp, new_path) == NULL)
+               return;
+-      if (qla2x00_find_matching_lun(lun, old_path) == NULL)
++      if (qla2x00_find_matching_lun(lun, dp, old_path) == NULL)
+               return;
+       /* Log to console and to event log. */
+@@ -3029,6 +5062,91 @@ qla2x00_failback_single_lun(mp_device_t 
+       }
+ }
++#if 0
++static void
++qla2x00_failback_single_lun(mp_device_t *dp, uint8_t lun, uint8_t new)
++{
++      mp_path_list_t   *pathlist;
++      mp_path_t        *new_path, *old_path;
++      uint8_t         old;
++      mp_host_t  *new_host;
++      os_lun_t *lq;
++      mp_path_t       *vis_path;
++      mp_host_t       *vis_host;
++      int             status;
++
++      /* Failback and update statistics. */
++      if ((pathlist = dp->path_list) == NULL)
++              return;
++
++      old = pathlist->current_path[lun];
++      /* pathlist->current_path[lun] = new; */
++
++      if ((new_path = qla2x00_find_path_by_id(dp, new)) == NULL)
++              return;
++      if ((old_path = qla2x00_find_path_by_id(dp, old)) == NULL)
++              return;
++
++      /* An fclun should exist for the failbacked lun */
++      if (qla2x00_find_matching_lun(lun, dp, new_path) == NULL)
++              return;
++      if (qla2x00_find_matching_lun(lun, dp, old_path) == NULL)
++              return;
++
++      if ((vis_path = qla2x00_get_visible_path(dp)) == NULL) {
++              printk(KERN_INFO
++                      "No visible path for "
++                      "target %d, dp = %p\n",
++                      dp->dev_id, dp);
++              return;
++      }
++      vis_host = vis_path->host;
++      /* Schedule the recovery before we move the luns */
++      if( (lq = (os_lun_t *) 
++              LUN_Q(vis_host->ha, dp->dev_id, lun)) == NULL ) {
++              printk(KERN_INFO
++                      "qla2x00(%d): No visible lun for "
++                      "target %d, dp = %p, lun=%d\n",
++                      vis_host->instance,
++                      dp->dev_id, dp, lun);
++              return;
++      }
++
++      qla2x00_delay_lun(vis_host->ha, lq, recoveryTime);
++
++      /* Log to console and to event log. */
++      printk(KERN_INFO
++              "qla2x00: FAILBACK device %d -> "
++              "%02x%02x%02x%02x%02x%02x%02x%02x LUN %02x\n",
++              dp->dev_id,
++              dp->nodename[0], dp->nodename[1],
++              dp->nodename[2], dp->nodename[3],
++              dp->nodename[4], dp->nodename[5],
++              dp->nodename[6], dp->nodename[7],
++              lun);
++
++      printk(KERN_INFO
++              "qla2x00: FROM HBA %d to HBA %d \n",
++              old_path->host->instance,
++              new_path->host->instance);
++
++
++      /* Send a failover notification. */
++      status = qla2x00_send_failover_notify(dp, lun, 
++                      new_path, old_path);
++
++      new_host =      new_path->host;
++
++      /* remap the lun */
++      if (status == QLA2X00_SUCCESS ) {
++              pathlist->current_path[lun] = new;
++              qla2x00_map_a_oslun(new_host, dp, dp->dev_id, lun);
++              qla2x00_flush_failover_q(vis_host->ha, lq);
++              qla2x00_reset_lun_fo_counts(vis_host->ha, lq);
++      }
++}
++#endif
++
+ /*
+ *  qla2x00_failback_luns
+ *      This routine looks through the devices on an adapter, and
+@@ -3077,6 +5195,9 @@ qla2x00_failback_luns( mp_host_t  *host)
+                       if (atomic_read(&path->port->state) == FC_DEVICE_DEAD)
+                               continue;
++                      if ( (path->port->flags & FC_FAILBACK_DISABLE) )
++                              continue;
++
+                       /* 
+                        * Failback all the paths for this host,
+                        * the luns could be preferred across all paths 
+@@ -3112,7 +5233,7 @@ qla2x00_failback_luns( mp_host_t  *host)
+                                       /* No point in failing back a
+                                          disconnected lun */
+                                       new_fp = qla2x00_find_matching_lun(
+-                                                      l, path);
++                                                      l, dp, path);
+                                       if (new_fp == NULL)
+                                               continue;
+@@ -3132,6 +5253,41 @@ qla2x00_failback_luns( mp_host_t  *host)
+       return;
+ }
++static struct _mp_path *
++qla2x00_find_first_active_path( mp_device_t *dp, mp_lun_t *lun)
++{
++      mp_path_t *path= NULL;
++      mp_path_list_t  *plp = dp->path_list;
++      mp_path_t  *tmp_path;
++      fc_port_t       *fcport;
++      fc_lun_t        *fclun;
++      int cnt;
++
++      if ((tmp_path = plp->last) != NULL) {
++              tmp_path = tmp_path->next;
++              for (cnt = 0; (tmp_path) && cnt < plp->path_cnt;
++                      tmp_path = tmp_path->next, cnt++) {
++                      fcport = tmp_path->port;
++                      if ( fcport != NULL  ) {
++                           if( (fcport->flags & FC_EVA_DEVICE) ) { 
++                                fclun = lun->paths[tmp_path->id];
++                                if ( fclun == NULL )
++                                      continue;
++                                if (fclun->flags & FC_ACTIVE_LUN ){
++                                      path = tmp_path;
++                                      break;
++                                }
++                           } else 
++                              if ( (fcport->flags & FC_MSA_PORT_ACTIVE)  ){
++                              path = tmp_path;
++                              break;
++                           }
++                      }
++              }
++      }
++      return path;
++}
++
+ /*
+  *  qla2x00_setup_new_path
+  *      Checks the path against the existing paths to see if there
+@@ -3146,7 +5302,7 @@ qla2x00_failback_luns( mp_host_t  *host)
+  *      None
+  */
+ static void
+-qla2x00_setup_new_path( mp_device_t *dp, mp_path_t *path)
++qla2x00_setup_new_path( mp_device_t *dp, mp_path_t *path, fc_port_t *fcport)
+ {
+       mp_path_list_t  *path_list = dp->path_list;
+       mp_path_t       *tmp_path, *first_path;
+@@ -3158,6 +5314,12 @@ qla2x00_setup_new_path( mp_device_t *dp,
+       int             i;
+       ENTER("qla2x00_setup_new_path");
++      DEBUG(printk("qla2x00_setup_new_path: path %p path id %d\n", 
++              path, path->id);)
++      if( path->port ){
++              DEBUG(printk("qla2x00_setup_new_path: port %p loop id 0x%x\n", 
++              path->port, path->port->loop_id);)
++      }
+       /* If this is a visible path, and there is not already a
+        * visible path, save it as the visible path.  If there
+@@ -3215,30 +5377,35 @@ qla2x00_setup_new_path( mp_device_t *dp,
+               }
+       }
+-      /*
+-       * For each LUN, evaluate whether the new path that is added
+-       * is better than the existing path.  If it is, make it the
+-       * current path for the LUN.
+-       */
+-      for (lun = 0; lun < MAX_LUNS_PER_DEVICE; lun++) {
+-              l = (uint8_t)(lun & 0xFF);
+-
+-              /* If this is the first path added, it is the only
+-               * available path, so make it the current path.
++      if( !(fcport->flags & (FC_MSA_DEVICE|FC_EVA_DEVICE)) ) { 
++              /*
++               * For each LUN, evaluate whether the new path that is added is
++               * better than the existing path.  If it is, make it the
++               * current path for the LUN.
+                */
++              for (lun = 0; lun < MAX_LUNS_PER_DEVICE; lun++) {
++                      l = (uint8_t)(lun & 0xFF);
+-              DEBUG4(printk("%s: lun_data 0x%x, LUN %d\n",
+-                  __func__, path->lun_data.data[l], lun);)
+-
+-              if (first_path == path) {
+-                      path_list->current_path[l] = 0;
+-                      path->lun_data.data[l] |=  LUN_DATA_PREFERRED_PATH;
+-              } else if (path->lun_data.data[l] & LUN_DATA_PREFERRED_PATH) {
+                       /*
+-                       * If this is not the first path added, if this is
+-                       * the preferred path, make it the current path.
++                       * If this is the first path added, it is the only
++                       * available path, so make it the current path.
+                        */
+-                      path_list->current_path[l] = path->id;
++                      DEBUG4(printk("%s: lun_data 0x%x, LUN %d\n",
++                          __func__, path->lun_data.data[l], lun);)
++
++                      if (first_path == path) {
++                              path_list->current_path[l] = 0;
++                              path->lun_data.data[l] |=
++                                  LUN_DATA_PREFERRED_PATH;
++                      } else if (path->lun_data.data[l] &
++                          LUN_DATA_PREFERRED_PATH) {
++                              /*
++                               * If this is not the first path added, if this
++                               * is the preferred path, so make it the
++                               * current path.
++                               */
++                              path_list->current_path[l] = path->id;
++                      }
+               }
+       }
+@@ -3260,10 +5427,14 @@ qla2x00_setup_new_path( mp_device_t *dp,
+ void
+ qla2x00_cfg_mem_free(scsi_qla_host_t *ha)
+ {
++      mp_lun_t        *cur_lun;
++      mp_lun_t        *tmp_lun; 
+       mp_device_t *dp;
+       mp_path_list_t  *path_list;
+       mp_path_t       *tmp_path, *path;
+       mp_host_t       *host, *temp;
++      mp_port_t       *temp_port;
++      struct list_head *list, *temp_list;
+       int     id, cnt;
+       if ((host = qla2x00_cfg_find_host(ha)) != NULL) {
+@@ -3300,6 +5471,31 @@ qla2x00_cfg_mem_free(scsi_qla_host_t *ha
+                                       temp->mp_devs[id] = NULL;
+                               }
+                       }
++                      /* Free all the lun struc's attached 
++                       * to this mp_device */
++                      for ( cur_lun = dp->luns; (cur_lun); 
++                                      cur_lun = cur_lun->next) {
++                              DEBUG(printk(KERN_INFO
++                                              "host%d - Removing lun:%p "
++                                              "attached to device:%p\n",
++                                              host->instance,
++                                              cur_lun,dp);)
++                              list_for_each_safe(list, temp_list, 
++                                      &cur_lun->ports_list) {
++              
++                                      temp_port = list_entry(list, mp_port_t, list);
++                                      list_del_init(&temp_port->list);
++                              
++                                      DEBUG(printk(KERN_INFO
++                                              "host%d - Removing port:%p "
++                                              "attached to lun:%p\n",
++                                              host->instance, temp_port,
++                                              cur_lun);)
++      
++                              }
++                              tmp_lun = cur_lun;
++                              KMEM_FREE(tmp_lun,sizeof(mp_lun_t));
++                      }
+                       KMEM_FREE(dp, sizeof(mp_device_t));
+               }
+@@ -3331,68 +5527,43 @@ qla2x00_cfg_mem_free(scsi_qla_host_t *ha
+ }
+ UINT8
+-qla2x00_is_fcport_in_config(scsi_qla_host_t *ha, fc_port_t *fcport)
++qla2x00_is_fcport_in_foconfig(scsi_qla_host_t *ha, fc_port_t *fcport)
+ {
+-      if (ha->flags.failover_enabled) {
+-
+-              mp_device_t     *dp;
+-              mp_host_t       *host;
+-              mp_path_t       *path;
+-              mp_path_list_t  *pathlist;
+-              uint16_t        dev_no;
+-
+-              if ((host = qla2x00_cfg_find_host(ha)) == NULL) {
+-                      /* no configured devices */
+-                      return (FALSE);
+-              }
+-
+-              for (dev_no = 0; dev_no < MAX_MP_DEVICES; dev_no++) {
+-                      dp = host->mp_devs[dev_no];
+-
+-                      if (dp == NULL)
+-                              continue;
+-
+-                      /* Sanity check */
+-                      if (qla2x00_is_wwn_zero(dp->nodename))
+-                              continue;
++      mp_device_t     *dp;
++      mp_host_t       *host;
++      mp_path_t       *path;
++      mp_path_list_t  *pathlist;
++      uint16_t        dev_no;
+-                      if ((pathlist = dp->path_list) == NULL)
+-                              continue;
++      if ((host = qla2x00_cfg_find_host(ha)) == NULL) {
++              /* no configured devices */
++              return (FALSE);
++      }
+-                      path = qla2x00_find_path_by_name(host, dp->path_list,
+-                          fcport->port_name);
+-                      if (path != NULL) {
+-                              /* found path for port */
+-                              if (path->config == TRUE) {
+-                                      return (TRUE);
+-                              } else {
+-                                      break;
+-                              }
+-                      }
+-              }
++      for (dev_no = 0; dev_no < MAX_MP_DEVICES; dev_no++) {
++              dp = host->mp_devs[dev_no];
+-      } else {
+-              uint16_t        idx;
+-              fcdev_t         *pdev;
++              if (dp == NULL)
++                      continue;
+-              for (idx = 0; idx < MAX_FIBRE_DEVICES; idx++) {
+-                      pdev = &ha->fc_db[idx];
++              /* Sanity check */
++              if (qla2x00_is_wwn_zero(dp->nodename))
++                      continue;
+-                      if (pdev->loop_id == PORT_UNUSED)
+-                              continue;
++              if ((pathlist = dp->path_list) == NULL)
++                      continue;
+-                      if (memcmp(fcport->port_name, pdev->wwn,
+-                          EXT_DEF_WWN_NAME_SIZE) == 0) {
+-                              if (pdev->flag & DEV_CONFIGURED) {
+-                                      /* found port in user config */
+-                                      return(TRUE);
+-                              } else {
+-                                      break;
+-                              }
++              path = qla2x00_find_path_by_name(host, dp->path_list,
++                  fcport->port_name);
++              if (path != NULL) {
++                      /* found path for port */
++                      if (path->config == TRUE) {
++                              return (TRUE);
++                      } else {
++                              break;
+                       }
+               }
+       }
+       return (FALSE);
+ }
+-
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_cfg.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_cfg.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_cfg.h    2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_cfg.h 2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+@@ -78,7 +78,7 @@ extern "C"
+  */
+ typedef struct _mp_lun_data {
+       uint8_t         data[MAX_LUNS];
+-#define LUN_DATA_ENABLED              BIT_7
++#define LUN_DATA_ENABLED              BIT_7 /* Lun Masking */
+ #define LUN_DATA_PREFERRED_PATH               BIT_6
+ }
+ mp_lun_data_t;
+@@ -112,14 +112,42 @@ typedef struct _failover_notify_srb {
+ }
+ failover_notify_srb_t;
++#define       WWULN_SIZE              32
++typedef struct _mp_lun {
++      struct _mp_lun          *next;
++      struct _mp_device       *dp;                    /* Multipath device */
++      int                     number;                 /* actual lun number */
++      fc_lun_t        *paths[MAX_PATHS_PER_DEVICE];   /* list of fcluns */
++      struct list_head        ports_list;
++      int                     path_cnt;               /* Must be > 1 for fo device  */
++      int                     siz;                    /* Size of wwuln  */
++      uint8_t         wwuln[WWULN_SIZE];/* lun id from inquiry page 83. */
++}
++mp_lun_t;
++
++typedef struct _mp_port {
++      struct list_head   list;
++      uint8_t         portname[WWN_SIZE];
++      uint8_t         path_list[ MAX_HOSTS ]; /* path index for a given HBA */
++      scsi_qla_host_t *hba_list[ MAX_HOSTS ];
++      int             cnt;
++      int             fo_cnt;
++      ulong   total_blks;     /* blocks transferred on this port */
++}
++mp_port_t;
++
+ /*
+  * Per-device multipath control data.
+  */
+ typedef struct _mp_device {
+       mp_path_list_t  *path_list;             /* Path list for device.  */
+-      int                             dev_id;
+-      int                     use_cnt;        /* number of users */
+-      uint8_t         nodename[WWN_SIZE];     /* World-wide node name. */
++      int             dev_id;
++      int             use_cnt;        /* number of users */
++      struct _mp_lun   *luns;                 /* list of luns */
++      uint8_t         nodename[WWN_SIZE];     /* World-wide node name for device. */
++
++      /* World-wide node names. */
++      uint8_t         nodenames[MAX_PATHS_PER_DEVICE][WWN_SIZE];
+       /* World-wide port names. */
+       uint8_t         portnames[MAX_PATHS_PER_DEVICE][WWN_SIZE];
+ }
+@@ -132,7 +160,7 @@ typedef struct _mp_host {
+       struct _mp_host *next;  /* ptr to next host adapter in list */
+       scsi_qla_host_t *ha;    /* ptr to lower-level driver adapter struct */
+       int             instance;       /* OS instance number */
+-      fc_port_t       *fcport;        /* Port chain for this adapter */
++      struct list_head *fcports;      /* Port chain for this adapter */
+       mp_device_t     *mp_devs[MAX_MP_DEVICES]; /* Multipath devices */
+       uint32_t        flags;
+@@ -157,6 +185,7 @@ typedef struct _mp_path {
+       struct _mp_host *host;                  /* Pointer to adapter */
+       fc_port_t       *port;                  /* FC port info  */
+       uint16_t        id;                     /* Path id (index) */
++      uint16_t        flags;
+       uint8_t         mp_byte;                /* Multipath control byte */
+ #define MP_MASK_HIDDEN                0x80
+ #define MP_MASK_UNCONFIGURED  0x40
+@@ -179,4 +208,7 @@ typedef struct failover_notify_entry {
+ }
+ failover_notify_t;
++extern mp_device_t *qla2x00_find_mp_dev_by_portname(mp_host_t *, uint8_t *,
++    uint16_t *);
++extern mp_host_t * qla2x00_cfg_find_host(scsi_qla_host_t *);
+ #endif /* _QLA_CFG_H */
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_cfgln.c linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_cfgln.c
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_cfgln.c  2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_cfgln.c       2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+@@ -19,7 +19,7 @@
+ /*
+  * QLogic ISP2x00 Multi-path LUN Support Driver 
+- * Solaris specific functions
++ * Linux specific functions
+  *
+  */
+@@ -333,7 +333,6 @@ qla2x00_cfg_build_path_tree(scsi_qla_hos
+                                * number
+                                */
+                               PERSIST_STRING("scsi-qla%ld-tgt-%d-di-%d-node", "%ld-%d-%d-n");
+-                              DEBUG(printk("build_tree: %s\n",propbuf);)
+                               rval = qla2x00_get_prop_xstr(ha, propbuf,
+                                   node_name, WWN_SIZE);
+@@ -343,6 +342,7 @@ qla2x00_cfg_build_path_tree(scsi_qla_hos
+                                        */
+                                       continue;
++                              DEBUG(printk("build_tree: %s\n",propbuf);)
+                               memcpy(port->node_name, node_name, WWN_SIZE);
+                               /*
+@@ -350,13 +350,13 @@ qla2x00_cfg_build_path_tree(scsi_qla_hos
+                                * number
+                                */
+                               PERSIST_STRING("scsi-qla%ld-tgt-%d-di-%d-port", "%ld-%d-%d-p");
+-                              DEBUG(printk("build_tree: %s\n",propbuf);)
+                               rval = qla2x00_get_prop_xstr(ha, propbuf,
+                                   port_name, WWN_SIZE);
+                               if (rval != WWN_SIZE)
+                                       continue;
++                              DEBUG(printk("build_tree: %s\n",propbuf);)
+                               memcpy(port->node_name, node_name, WWN_SIZE);
+                               memcpy(port->port_name, port_name, WWN_SIZE);
+                               port->flags |= FC_CONFIG;
+@@ -366,8 +366,6 @@ qla2x00_cfg_build_path_tree(scsi_qla_hos
+                                * is present then all luns are visible.
+                                */
+                               PERSIST_STRING("scsi-qla%ld-tgt-%d-di-%d-control", "%ld-%d-%d-c");
+-                              DEBUG3(printk("build_tree: %s\n",propbuf);)
+-
+                               rval = qla2x00_get_prop_xstr(ha, propbuf,
+                                   (uint8_t *)(&control_byte),
+                                   sizeof(control_byte));
+@@ -379,6 +377,8 @@ qla2x00_cfg_build_path_tree(scsi_qla_hos
+                                       continue;
+                               }
++                              DEBUG3(printk("build_tree: %s\n",propbuf);)
++
+                               DEBUG(printk("build_tree: control byte 0x%x\n",
+                                   control_byte);)
+@@ -392,9 +392,36 @@ qla2x00_cfg_build_path_tree(scsi_qla_hos
+                                   port->port_name[4], port->port_name[5],
+                                   port->port_name[6], port->port_name[7],
+                                   tgt, port->mp_byte);)
++#if  0        /* not supported */
++                              /* To do the lun binding: Create a fclun for each
++                               * lun the user has specified, so a mp_lun can be
++                               * created for each.
++                               */
++                              for (lun = 0; lun < MAX_LUNS_PER_DEVICE && ; lun++) {
++                                      if( !ql2xdevflag ) 
++                                              sprintf(propbuf, "scsi-qla%ld-tgt-%d-lun-%d-lunid", 
++                                                      ha->instance, tgt, lun); 
++                                      else 
++                                              sprintf(propbuf, "%ld-%d-%d-l", ha->instance, 
++                                                      tgt, lun);
++
++                                      DEBUG(printk("build_tree: %s\n",propbuf);)
++
++                                      /* allocate space for mp_lun and fclun */
++
++                                      rval = qla2x00_get_prop_xstr(ha, propbuf,
++                                      mplun->wwuln, 32);
++                                      if (rval != 32)
++                                              continue;
++
++                              }
++#endif
+                               qla2x00_update_mp_device(host, port, tgt,
+                                   dev_no);
++
++                              /* free any mplun info */
++
+                               qla2x00_set_lun_data_from_config(host,
+                                   port, tgt, dev_no);
+                       }
+@@ -418,7 +445,7 @@ qla2x00_cfg_build_path_tree(scsi_qla_hos
+  * Returns:
+  *      None.
+  */
+-void qla2x00_cfg_display_devices(void)
++void qla2x00_cfg_display_devices( int flag )
+ {
+       mp_host_t     *host;
+       int     id;
+@@ -430,8 +457,9 @@ void qla2x00_cfg_display_devices(void)
+       lun_bit_mask_t  lun_mask;
+       int     mask_set;
+       uint8_t l;
++      mp_lun_t        *lun;
++      unsigned char   tmp_buf[32];
+-      printk("qla2x00_cfg_display_devices\n");
+       for (host = mp_hosts_base; (host); host = host->next) {
+               instance = (int) host->instance;
+@@ -552,6 +580,21 @@ void qla2x00_cfg_display_devices(void)
+                                                       *((uint32_t *) &lun_mask.mask[4]),
+                                                       *((uint32_t *) &lun_mask.mask[0]) );
+                                       }
++                                      /* display lun wwuln */
++                                      if( flag )
++                                      for (lun = dp->luns; lun != NULL ; lun = lun->next) {
++                                              printk(KERN_INFO
++                                                      "scsi-qla%d-tgt-%d-di-%d-lun-%d-lunid=",
++                                                      instance,  id, path->id, lun->number);
++                                              for (i = 0 ; i < lun->siz ;
++                                                              i++) {
++                                                      sprintf(tmp_buf+i,
++                                                              "%02x", 
++                                                        lun->wwuln[i]);
++                                              }
++                                              printk(KERN_INFO "%s:%02d;\n",
++                                                      tmp_buf,lun->siz); 
++                                      }
+                                       dev_no++;
+                               }
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_debug.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_debug.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_debug.h  2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_debug.h       2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+@@ -57,11 +57,13 @@
+ #define DEBUG2_3_11(x)  if (extended_error_logging != 0) { do {x;} while (0); }
+ #define DEBUG2_9_10(x)  if (extended_error_logging != 0) { do {x;} while (0); }
+ #define DEBUG2_11(x)    if (extended_error_logging != 0) { do {x;} while (0); }
++#define DEBUG2_13(x)    if (extended_error_logging != 0) { do {x;} while (0); }
+ #else
+ #define DEBUG2(x)     do {} while (0);
+ #define DEBUG2_3(x)     do {} while (0); 
+ #define DEBUG2_3_11(x)  do {} while (0); 
+ #define DEBUG2_9_10(x)  do {} while (0); 
++#define DEBUG2_13(x)  do {} while (0); 
+ #endif
+ #if defined(QL_DEBUG_LEVEL_3)
+@@ -123,3 +125,16 @@
+ #else
+ #define DEBUG12(x)    do {} while (0);
+ #endif
++
++#if defined(QL_DEBUG_LEVEL_13)
++#define DEBUG13(x)      do {x;} while (0);
++  #if !defined(DEBUG2_13)
++  #define DEBUG2_13(x)      do {x;} while (0);
++  #endif
++#else
++#define DEBUG13(x)    do {} while (0);
++  #if !defined(DEBUG2_13)
++  #define DEBUG2_13(x)      do {} while (0);
++  #endif
++#endif
++
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_devtbl.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_devtbl.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_devtbl.h 2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_devtbl.h      2004-04-22 19:42:21.000000000 -0700
+@@ -1,4 +1,4 @@
+-#define QLA_MODEL_NAMES         0x19
++#define QLA_MODEL_NAMES         0x1B
+ /*
+  * Adapter model names.
+@@ -7,9 +7,9 @@ char   *qla2x00_model_name[QLA_MODEL_NAMES
+       "QLA2340",      /* 0x100 */
+       "QLA2342",      /* 0x101 */
+       "QLA2344",      /* 0x102 */
+-      "QLA2342",      /* 0x103 */
+-      "QLA2340",      /* 0x104 */
+-      "QLA2342",      /* 0x105 */
++      "QCP2342",      /* 0x103 */
++      "QSB2340",      /* 0x104 */
++      "QSB2342",      /* 0x105 */
+       "QLA2310",      /* 0x106 */
+       "QLA2332",      /* 0x107 */
+       "QCP2332",      /* 0x108 */
+@@ -23,11 +23,294 @@ char      *qla2x00_model_name[QLA_MODEL_NAMES
+       "HPQSVS ",      /* 0x110 */
+       "QLA4010",      /* 0x111 */
+       "QLA4010",      /* 0x112 */
+-      "QLA4010",      /* 0x113 */
+-      "QLA4010",      /* 0x114 */
++      "QLA4010C",     /* 0x113 */
++      "QLA4010C",     /* 0x114 */
+       "QLA2360",      /* 0x115 */
+       "QLA2362",      /* 0x116 */
+-      "QLA2350",      /* 0x117 */
+-      "QLA2352"       /* 0x118 */
++      " ",            /* 0x117 */
++      " ",            /* 0x118 */
++      "QLA200",       /* 0x119 */
++      "QLA200C"       /* 0x11A */
+ };
++char  *qla2x00_model_desc[QLA_MODEL_NAMES] = {
++      "133MHz PCI-X to 2Gb FC, Single Channel",       /* 0x100 */
++      "133MHz PCI-X to 2Gb FC, Dual Channel",         /* 0x101 */
++      "133MHz PCI-X to 2Gb FC, Quad Channel",         /* 0x102 */
++      " ",                                            /* 0x103 */
++      " ",                                            /* 0x104 */
++      " ",                                            /* 0x105 */
++      " ",                                            /* 0x106 */
++      " ",                                            /* 0x107 */
++      " ",                                            /* 0x108 */
++      " ",                                            /* 0x109 */
++      " ",                                            /* 0x10a */
++      " ",                                            /* 0x10b */
++      "133MHz PCI-X to 2Gb FC, Single Channel",       /* 0x10c */
++      "133MHz PCI-X to 2Gb FC, Dual Channel",         /* 0x10d */
++      " ",                                            /* 0x10e */
++      "HPQ SVS HBA- Initiator device",                /* 0x10f */
++      "HPQ SVS HBA- Target device",                   /* 0x110 */
++      "Optical- 133MHz to 1Gb iSCSI- networking",     /* 0x111 */
++      "Optical- 133MHz to 1Gb iSCSI- storage",        /* 0x112 */
++      "Copper- 133MHz to 1Gb iSCSI- networking",      /* 0x113 */
++      "Copper- 133MHz to 1Gb iSCSI- storage",         /* 0x114 */
++      "133MHz PCI-X to 2Gb FC Single Channel",        /* 0x115 */
++      "133MHz PCI-X to 2Gb FC Dual Channel",          /* 0x116 */
++      " ",                                            /* 0x117 */
++      " ",                                            /* 0x118 */
++      "133MHz PCI-X to 2Gb FC Optical",               /* 0x119 */
++      "133MHz PCI-X to 2Gb FC Copper"                 /* 0x11A */
++};
++
++
++struct cfg_device_info {
++      const char *vendor;
++      const char *model;
++      const int  flags;       /* bit 0 (0x1) -- This bit will translate the real 
++                                 WWNN to the common WWNN for the target AND
++                                 XP_DEVICE */
++                              /* bit 1 (0x2) -- MSA 1000  */
++                              /* bit 2 (0x4) -- EVA  */
++                              /* bit 3 (0x8) -- DISABLE FAILOVER  */
++      const int  notify_type; /* support the different types: 1 - 4 */
++      int     ( *fo_combine)(void *,
++               uint16_t, fc_port_t *, uint16_t );
++      int     ( *fo_detect)(void);
++      int     ( *fo_notify)(void);
++      int     ( *fo_select)(void);
++};
++
++
++static struct cfg_device_info cfg_device_list[] = {
++
++      {"COMPAQ", "MSA1000", 2, FO_NOTIFY_TYPE_SPINUP, 
++              qla2x00_combine_by_lunid, NULL, NULL, NULL },
++
++/* For testing only
++      {"SEAGATE", "ST318453FC", 0, FO_NOTIFY_TYPE_NONE,   
++              qla2x00_combine_by_lunid, NULL, NULL, NULL },
++*/
++
++      {"HITACHI", "OPEN-", 1, FO_NOTIFY_TYPE_NONE,   
++              qla2x00_combine_by_lunid, NULL, NULL, NULL },
++      {"HP", "OPEN-", 1, FO_NOTIFY_TYPE_NONE,   
++              qla2x00_combine_by_lunid, NULL, NULL, NULL },
++      {"COMPAQ", "HSV110 (C)COMPAQ", 4, FO_NOTIFY_TYPE_SPINUP,   
++              qla2x00_combine_by_lunid, NULL, NULL, NULL },
++      {"HP", "HSV100", 4, FO_NOTIFY_TYPE_SPINUP,   
++              qla2x00_combine_by_lunid, NULL, NULL, NULL },
++      {"DEC", "HSG80", 8, FO_NOTIFY_TYPE_NONE,   
++              qla2x00_export_target, NULL, NULL, NULL },
++
++      /*
++       * Must be at end of list...
++       */
++      {NULL, NULL }
++};
++
++/*****************************************/
++/*   ISP Boards supported by this driver */
++/*****************************************/
++#define QLA2X00_VENDOR_ID   0x1077
++#define QLA2100_DEVICE_ID   0x2100
++#define QLA2200_DEVICE_ID   0x2200
++#define QLA2200A_DEVICE_ID  0x2200A
++#define QLA2300_DEVICE_ID   0x2300
++#define QLA2312_DEVICE_ID   0x2312
++#define QLA2322_DEVICE_ID   0x2322
++#define QLA6312_DEVICE_ID   0x6312
++#define QLA6322_DEVICE_ID   0x6322
++//#define QLAFBLITE_DEVICE_ID            /* Not Known yet */  
++#define QLA2200A_RISC_ROM_VER  4
++#define FPM_2300            6
++#define FPM_2310            7
++
++#if defined(ISP2100)
++#define NUM_OF_ISP_DEVICES  2
++static struct pci_device_id qla2100_pci_tbl[] =
++{
++      {QLA2X00_VENDOR_ID, QLA2100_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID,},
++      {0,}
++};
++MODULE_DEVICE_TABLE(pci, qla2100_pci_tbl);
++#endif
++#if defined(ISP2200)
++#define NUM_OF_ISP_DEVICES  2
++static struct pci_device_id qla2200_pci_tbl[] =
++{
++      {QLA2X00_VENDOR_ID, QLA2200_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID,},
++      {0,}
++};
++MODULE_DEVICE_TABLE(pci, qla2200_pci_tbl);
++#endif
++
++#if defined(ISP2300)
++#define NUM_OF_ISP_DEVICES  6
++static struct pci_device_id qla2300_pci_tbl[] =
++{
++      {QLA2X00_VENDOR_ID, QLA2300_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID,},
++      {QLA2X00_VENDOR_ID, QLA2312_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID,},
++      {QLA2X00_VENDOR_ID, QLA2322_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID,},
++      {QLA2X00_VENDOR_ID, QLA6312_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID,},
++      {QLA2X00_VENDOR_ID, QLA6322_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID,},
++      {0,}
++};
++MODULE_DEVICE_TABLE(pci, qla2300_pci_tbl);
++#endif
++
++struct qla_fw_info {
++      unsigned short addressing;      /* addressing method used to load fw */
++#define FW_INFO_ADDR_NORMAL     0
++#define FW_INFO_ADDR_EXTENDED   1
++#define FW_INFO_ADDR_NOMORE     0xffff
++      unsigned short *fwcode;         /* pointer to FW array */
++      unsigned short *fwlen;          /* number of words in array */
++      unsigned short *fwstart;        /* start address for F/W */
++      unsigned long *lfwstart;        /* start address (long) for 
++                                       * extended F/W Load */
++};
++
++/*
++ * PCI driver interface definitions
++ */
++#define ISP21XX_FW_INDEX      0
++#define ISP22XX_FW_INDEX      0
++#define ISP23XX_FW_INDEX      0
++#define ISP232X_FW_INDEX      2
++#define ISP63XX_FW_INDEX      6
++#define ISP632X_FW_INDEX      8
++
++typedef struct _qlaboards
++{
++        unsigned char   bdName[9];       /* Board ID String             */
++        unsigned long   device_id;       /* Device ID                   */
++        int   numPorts;                  /* number of loops on adapter  */
++        unsigned char   *fwver;          /* Ptr to F/W version array    */
++      struct qla_fw_info *fwinfo;
++}  qla_boards_t;
++
++
++static struct qla_fw_info qla_fw_tbl[] = {
++#if defined(ISP2100)
++      /* Start of 21xx firmware list */
++      {
++       FW_INFO_ADDR_NORMAL, &fw2100tp_code01[0],
++       &fw2100tp_length01, &fw2100tp_addr01,
++      },
++      { FW_INFO_ADDR_NOMORE, },
++#endif
++
++#if defined(ISP2200)
++      /* Start of 22xx firmware list */
++#if defined(FC_IP_SUPPORT)
++      {
++         FW_INFO_ADDR_NORMAL, &fw2200ip_code01[0],
++         &fw2200ip_length01, &fw2200ip_addr01,
++      },
++#else
++      {
++         FW_INFO_ADDR_NORMAL, &fw2200tp_code01[0],
++         &fw2200tp_length01, &fw2200tp_addr01,
++      },
++#endif
++      { FW_INFO_ADDR_NOMORE, },
++#endif
++
++#if defined(ISP2300)
++      /* 0 - Start of 23xx firmware list */
++      {
++              FW_INFO_ADDR_NORMAL, &fw2300ipx_code01[0],
++              &fw2300ipx_length01, &fw2300ipx_addr01, 
++      },
++
++      /* End of 23xx firmware list */
++      { FW_INFO_ADDR_NOMORE, },
++
++      /* 2 - Start of 232x firmware list */
++      {
++              FW_INFO_ADDR_NORMAL, &fw2322ipx_code01[0],
++              &fw2322ipx_length01, &fw2322ipx_addr01,
++      },
++      {
++              FW_INFO_ADDR_EXTENDED, &rseqipx_code01[0],
++              &rseqipx_code_length01, 0, &rseqipx_code_addr01,
++      },
++      {
++              FW_INFO_ADDR_EXTENDED, &xseqipx_code01[0],
++              &xseqipx_code_length01, 0, &xseqipx_code_addr01,
++      },
++      { FW_INFO_ADDR_NOMORE, },
++      /* 6 - Start of 63xx firmware list */
++      {
++              FW_INFO_ADDR_NORMAL, &fw2300flx_code01[0],
++              &fw2300flx_length01, &fw2300flx_addr01, 
++      },
++      { FW_INFO_ADDR_NOMORE, },
++      /* End of 63xx firmware list */
++
++      /* 8 - Start of 632x firmware list */
++      {
++              FW_INFO_ADDR_NORMAL, &fw2322flx_code01[0],
++              &fw2322flx_length01, &fw2322flx_addr01, 
++      },
++      {
++              FW_INFO_ADDR_EXTENDED, &rseqflx_code01[0],
++              &rseqflx_code_length01, 0, &rseqflx_code_addr01,
++      },
++      {
++              FW_INFO_ADDR_EXTENDED, &xseqflx_code01[0],
++              &xseqflx_code_length01, 0, &xseqflx_code_addr01,
++      },
++      { FW_INFO_ADDR_NOMORE, },
++      /* End of firmware list */
++#endif
++};
++
++static struct _qlaboards   QLBoardTbl_fc[NUM_OF_ISP_DEVICES] =
++{
++      /* Name ,  Board PCI Device ID,         Number of ports */
++#if defined(ISP2300)
++      {"QLA2322 ", QLA2322_DEVICE_ID,           MAX_BUSES,
++              &fw2322ipx_version_str[0] , &qla_fw_tbl[ISP232X_FW_INDEX]
++      },
++
++      {"QLA2312 ", QLA2312_DEVICE_ID,           MAX_BUSES,
++              &fw2300ipx_version_str[0] , &qla_fw_tbl[ISP23XX_FW_INDEX]
++      },
++
++      {"QLA2300 ", QLA2300_DEVICE_ID,           MAX_BUSES,
++              &fw2300ipx_version_str[0] , &qla_fw_tbl[ISP23XX_FW_INDEX]
++      },
++
++      {"QLA6312 ", QLA6312_DEVICE_ID,           MAX_BUSES,
++              &fw2300flx_version_str[0] , &qla_fw_tbl[ISP63XX_FW_INDEX]
++      },
++
++      {"QLA6322 ", QLA6322_DEVICE_ID,           MAX_BUSES,
++              &fw2322flx_version_str[0] , &qla_fw_tbl[ISP632X_FW_INDEX]
++      },
++#endif
++
++#if defined(ISP2200)
++      {"QLA2200 ", QLA2200_DEVICE_ID,           MAX_BUSES,
++#if defined(FC_IP_SUPPORT)
++              &fw2200ip_version_str[0] ,
++      },
++#else
++              &fw2200tp_version_str[0] , &qla_fw_tbl[ISP22XX_FW_INDEX]
++      },
++#endif
++#endif
++
++#if defined(ISP2100)
++      {"QLA2100 ", QLA2100_DEVICE_ID,           MAX_BUSES,
++              &fw2100tp_version_str[0] , &qla_fw_tbl[ISP21XX_FW_INDEX]
++      },
++#endif
++
++      {"        ",                 0,           0}
++};
++
++
++
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_fo.c linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_fo.c
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_fo.c     2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_fo.c  2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.4.x
+-* Copyright (C) 2003 Qlogic Corporation
++* Copyright (C) 2003 QLogic Corporation
+ * (www.qlogic.com)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+@@ -186,6 +186,7 @@ static int
+ qla2x00_fo_get_lun_data(EXT_IOCTL *pext, FO_LUN_DATA_INPUT *bp, int mode)
+ {
+       scsi_qla_host_t  *ha;
++      struct list_head        *fcports;
+       fc_port_t        *fcport;
+       int              ret = 0;
+       mp_host_t        *host = NULL;
+@@ -220,9 +221,9 @@ qla2x00_fo_get_lun_data(EXT_IOCTL *pext,
+       if (ha->flags.failover_enabled) {
+               if ((host = qla2x00_cfg_find_host(ha)) == NULL) {
+-                      if (ha->fcport) {
+-
+-                              /* Since all ports are unconfigured, return
++                      if (!list_empty(&ha->fcports)) {
++                              /*
++                               * Since all ports are unconfigured, return
+                                * a dummy entry for each of them.
+                                */
+                               if ((list = (FO_LUN_DATA_LIST *)kmem_zalloc(
+@@ -241,9 +242,11 @@ qla2x00_fo_get_lun_data(EXT_IOCTL *pext,
+                               u_list = (FO_LUN_DATA_LIST *)pext->ResponseAdr;
+                               u_entry = &u_list->DataEntry[0];
+-                              for (fcport = ha->fcport; (fcport);
+-                                  fcport = fcport->next) {
+-
++                              list_for_each_entry(fcport, &ha->fcports,
++                                  list) {
++                                      if (fcport->port_type != FCT_TARGET)
++                                              continue;
++      
+                                       memcpy(entry->NodeName,
+                                           fcport->node_name,
+                                           EXT_DEF_WWN_NAME_SIZE);
+@@ -275,21 +278,6 @@ qla2x00_fo_get_lun_data(EXT_IOCTL *pext,
+                                       list->EntryCount++;
+-                                      ret = verify_area(VERIFY_WRITE,
+-                                          (void *)u_entry,
+-                                          sizeof(FO_EXTERNAL_LUN_DATA_ENTRY));
+-                                      if (ret) {
+-                                              /* error */
+-                                              DEBUG2_9_10(printk(
+-                                                  "%s: u_entry %p verify "
+-                                                  "wrt err. EntryCount=%d.\n",
+-                                                  __func__, u_entry,
+-                                                  list->EntryCount);)
+-                                              pext->Status =
+-                                                  EXT_STATUS_COPY_ERR;
+-                                              break;
+-                                      }
+-
+                                       ret = copy_to_user(u_entry, entry,
+                                           sizeof(FO_EXTERNAL_LUN_DATA_ENTRY));
+                                       if (ret) {
+@@ -335,12 +323,15 @@ qla2x00_fo_get_lun_data(EXT_IOCTL *pext,
+       /* find the correct fcport list */
+       if (!ha->flags.failover_enabled)
+-              fcport = ha->fcport;
++              fcports = &ha->fcports;
+       else
+-              fcport = host->fcport;
++              fcports = host->fcports;
+       /* Check thru this adapter's fcport list */
+-      for ( ; (fcport); fcport = fcport->next) {
++      fcport = NULL;
++      list_for_each_entry(fcport, fcports, list) {
++              if (fcport->port_type != FCT_TARGET)
++                      continue;
+               if ((atomic_read(&fcport->state) != FC_ONLINE) &&
+                   !qla2x00_is_fcport_in_config(ha, fcport)) {
+@@ -357,8 +348,6 @@ qla2x00_fo_get_lun_data(EXT_IOCTL *pext,
+                       continue;
+               }
+-              memcpy(entry->NodeName,
+-                  fcport->node_name, EXT_DEF_WWN_NAME_SIZE);
+               memcpy(entry->PortName,
+                   fcport->port_name, EXT_DEF_WWN_NAME_SIZE);
+@@ -383,17 +372,6 @@ qla2x00_fo_get_lun_data(EXT_IOCTL *pext,
+                       list->EntryCount++;
+-                      ret = verify_area(VERIFY_WRITE, (void *)u_entry,
+-                          sizeof(FO_EXTERNAL_LUN_DATA_ENTRY));
+-                      if (ret) {
+-                              /* error */
+-                              DEBUG2_9_10(printk("%s: u_entry %p "
+-                                  "verify wrt err. EntryCount=%d.\n",
+-                                  __func__, u_entry, list->EntryCount);)
+-                              pext->Status = EXT_STATUS_COPY_ERR;
+-                              break;
+-                      }
+-
+                       ret = copy_to_user(u_entry, entry,
+                           sizeof(FO_EXTERNAL_LUN_DATA_ENTRY));
+                       if (ret) {
+@@ -415,7 +393,10 @@ qla2x00_fo_get_lun_data(EXT_IOCTL *pext,
+                        * Failover disabled. Just return LUN mask info
+                        * in lun data entry of this port.
+                        */
++                      memcpy(entry->NodeName,
++                          fcport->node_name, EXT_DEF_WWN_NAME_SIZE);
+                       entry->TargetId = 0;
++
+                       for (cnt = 0; cnt < MAX_FIBRE_DEVICES; cnt++) {
+                               if (!(ostgt = ha->otgt[cnt])) {
+                                       continue;
+@@ -465,17 +446,6 @@ qla2x00_fo_get_lun_data(EXT_IOCTL *pext,
+                       DEBUG9(qla2x00_dump_buffer((char *)&(fcport->lun_mask),
+                           sizeof(lun_bit_mask_t));)
+-                      ret = verify_area(VERIFY_WRITE, (void *)u_entry,
+-                          sizeof(FO_EXTERNAL_LUN_DATA_ENTRY));
+-                      if (ret) {
+-                              /* error */
+-                              DEBUG9_10(printk("%s: u_entry %p verify write"
+-                                  " error. list->EntryCount=%d.\n",
+-                                  __func__, u_entry, list->EntryCount);)
+-                              pext->Status = EXT_STATUS_COPY_ERR;
+-                              break;
+-                      }
+-
+                       ret = copy_to_user(u_entry, entry,
+                           sizeof(FO_EXTERNAL_LUN_DATA_ENTRY));
+@@ -522,6 +492,16 @@ qla2x00_fo_get_lun_data(EXT_IOCTL *pext,
+                                       continue;
+                               /* Got an entry */
++                              if (fcport->flags & FC_XP_DEVICE) {
++                                      memcpy(entry->NodeName,
++                                          dp->nodename,
++                                          EXT_DEF_WWN_NAME_SIZE);
++                              } else {
++                                      memcpy(entry->NodeName,
++                                          fcport->node_name,
++                                          EXT_DEF_WWN_NAME_SIZE);
++                              }
++
+                               entry->TargetId = dp->dev_id;
+                               entry->Dev_No = path->id;
+                               list->EntryCount++;
+@@ -538,24 +518,14 @@ qla2x00_fo_get_lun_data(EXT_IOCTL *pext,
+                                           path->lun_data.data[lun];
+                               }
+-                              ret = verify_area(VERIFY_WRITE, (void *)u_entry,
+-                                  sizeof(FO_EXTERNAL_LUN_DATA_ENTRY));
+-                              if (ret) {
+-                                      /* error */
+-                                      DEBUG2_9_10(printk("%s: u_entry %p "
+-                                          "verify wrt err. EntryCount=%d.\n",
+-                                          __func__, u_entry, list->EntryCount);)
+-                                      pext->Status = EXT_STATUS_COPY_ERR;
+-                                      break;
+-                              }
+-
+                               ret = copy_to_user(u_entry, entry,
+                                   sizeof(FO_EXTERNAL_LUN_DATA_ENTRY));
+                               if (ret) {
+                                       /* error */
+                                       DEBUG2_9_10(printk("%s: u_entry %p "
+                                           "copy out err. EntryCount=%d.\n",
+-                                          __func__, u_entry, list->EntryCount);)
++                                          __func__, u_entry,
++                                          list->EntryCount);)
+                                       pext->Status = EXT_STATUS_COPY_ERR;
+                                       break;
+                               }
+@@ -587,20 +557,10 @@ qla2x00_fo_get_lun_data(EXT_IOCTL *pext,
+           __func__, list->EntryCount);)
+       if (ret == 0) {
+-              ret = verify_area(VERIFY_WRITE, (void *)&u_list->EntryCount,
++              /* copy number of entries */
++              ret = copy_to_user(&u_list->EntryCount, &list->EntryCount,
+                   sizeof(list->EntryCount));
+-              if (ret) {
+-                      /* error */
+-                      DEBUG2_9_10(printk("%s: u_list->EntryCount %p verify "
+-                          " write error. list->EntryCount=%d.\n",
+-                          __func__, u_entry, list->EntryCount);)
+-                      pext->Status = EXT_STATUS_COPY_ERR;
+-              } else {
+-                      /* copy number of entries */
+-                      ret = copy_to_user(&u_list->EntryCount, &list->EntryCount,
+-                          sizeof(list->EntryCount));
+-                      pext->ResponseLen = FO_LUN_DATA_LIST_MAX_SIZE;
+-              }
++              pext->ResponseLen = FO_LUN_DATA_LIST_MAX_SIZE;
+       }
+       KMEM_FREE(list, sizeof(FO_LUN_DATA_LIST));
+@@ -690,17 +650,6 @@ qla2x00_fo_set_lun_data(EXT_IOCTL *pext,
+       u_list = &(com_iter->foLunDataList);
+       u_entry = &u_list->DataEntry[0];
+-      ret = verify_area(VERIFY_READ, (void *)u_list,
+-          sizeof(FO_LUN_DATA_LIST));
+-      if (ret) {
+-              /* error */
+-              DEBUG2_9_10(printk("%s: u_list %p verify read error.\n",
+-                  __func__, u_list);)
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              KMEM_FREE(list, FO_LUN_DATA_LIST);
+-              return (ret);
+-      }
+-
+       ret = copy_from_user(list, u_list, sizeof(FO_LUN_DATA_LIST));
+       if (ret) {
+               /* error */
+@@ -719,16 +668,6 @@ qla2x00_fo_set_lun_data(EXT_IOCTL *pext,
+       for (i = 0; i < list->EntryCount; i++, u_entry++) {
+-              ret = verify_area(VERIFY_READ, (void *)u_entry,
+-                  sizeof(FO_EXTERNAL_LUN_DATA_ENTRY));
+-              if (ret) {
+-                      /* error */
+-                      DEBUG2_9_10(printk("%s: u_entry %p verify "
+-                          " read error.\n",
+-                          __func__, u_entry);)
+-                      pext->Status = EXT_STATUS_COPY_ERR;
+-                      break;
+-              }
+               ret = copy_from_user(entry, u_entry,
+                   sizeof(FO_EXTERNAL_LUN_DATA_ENTRY));
+               if (ret) {
+@@ -860,7 +799,7 @@ qla2x00_fo_get_target_data(EXT_IOCTL *pe
+       if (ha->flags.failover_enabled)
+               if ((host = qla2x00_cfg_find_host(ha)) == NULL &&
+-                  ha->fcport == NULL) {
++                  list_empty(&ha->fcports)) {
+                       DEBUG2_9_10(printk("%s: no HOST for ha inst %ld.\n",
+                           __func__, ha->instance);)
+                       pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+@@ -900,7 +839,6 @@ qla2x00_std_get_tgt(scsi_qla_host_t *ha,
+       uint16_t        i, cnt;
+       uint32_t        b;
+-      fcdev_t         *pdev;
+       fc_port_t       *fcport;
+       os_tgt_t        *ostgt;
+@@ -909,8 +847,6 @@ qla2x00_std_get_tgt(scsi_qla_host_t *ha,
+       DEBUG9(printk("%s(%ld): entered.\n", __func__, ha->host_no);)
+       u_entry = (FO_DEVICE_DATA *) pext->ResponseAdr;
+-      /* Failover disabled. Check thru this adapter's fcport list */
+-      fcport = ha->fcport;
+       if (pext->ResponseLen < sizeof(FO_DEVICE_DATA)) {
+               pext->Status = EXT_STATUS_BUFFER_TOO_SMALL;
+@@ -924,7 +860,15 @@ qla2x00_std_get_tgt(scsi_qla_host_t *ha,
+           __func__, ha->host_no, pext->ResponseLen);)
+       /* Loop through and return ports found. */
+-      for (i = 0; fcport && i < MAX_TARGETS; i++, fcport = fcport->next) {
++      /* Check thru this adapter's fcport list */
++      i = 0;
++      fcport = NULL;
++      list_for_each_entry(fcport, &ha->fcports, list) {
++              if (fcport->port_type != FCT_TARGET)
++                      continue;
++      
++              if (i >= MAX_TARGETS)
++                      break;
+               /* clear for a new entry */
+               memset(entry, 0, sizeof(FO_DEVICE_DATA));
+@@ -992,19 +936,7 @@ qla2x00_std_get_tgt(scsi_qla_host_t *ha,
+                       entry->MultipathControl = 0; /* always configured */
+               }
+-              ret = verify_area(VERIFY_WRITE, (void *)u_entry,
+-                  sizeof(FO_DEVICE_DATA));
+-              if (ret) {
+-                      /* error */
+-                      DEBUG2_9_10(printk("%s(%ld): u_entry %p verify "
+-                          " wrt err. tgt id=%d.\n",
+-                          __func__, ha->host_no, u_entry, cnt);)
+-                      pext->Status = EXT_STATUS_COPY_ERR;
+-                      break;
+-              }
+-
+-              ret = copy_to_user(u_entry, entry,
+-                  sizeof(FO_DEVICE_DATA));
++              ret = copy_to_user(u_entry, entry, sizeof(FO_DEVICE_DATA));
+               if (ret) {
+                       /* error */
+                       DEBUG2_9_10(printk("%s(%ld): u_entry %p copy "
+@@ -1015,75 +947,11 @@ qla2x00_std_get_tgt(scsi_qla_host_t *ha,
+               }
+               u_entry++;
+-
+-              continue;
+       }
+       DEBUG9(printk("%s(%ld): done copying fcport list entries.\n",
+           __func__, ha->host_no);)
+-      /* For ports not found but were in config file, return unconfigured
+-       * status so agent will try to issue commands to it and GUI will display
+-       * them as missing.
+-       */
+-      for (cnt = 0; cnt < MAX_FIBRE_DEVICES; cnt++) {
+-              pdev = &ha->fc_db[cnt];
+-
+-              if (pdev->loop_id == PORT_UNUSED)
+-                      continue;
+-
+-              DEBUG9(printk("%s(%ld): found valid loop id %d for tgt %d.\n",
+-                  __func__, ha->host_no, pdev->loop_id, cnt);)
+-
+-              if (pdev->loop_id == PORT_AVAILABLE) {
+-                      DEBUG9(printk(
+-                          "%s(%ld): returning tgt %d as unconfigured.\n",
+-                          __func__, ha->host_no, cnt);)
+-
+-                      /* clear for a new entry */
+-                      memset(entry, 0, sizeof(FO_DEVICE_DATA));
+-
+-                      /* Return unconfigured */
+-                      memcpy(entry->WorldWideName,
+-                          pdev->name, EXT_DEF_WWN_NAME_SIZE);
+-                      memcpy(entry->PortName,
+-                          pdev->wwn, EXT_DEF_WWN_NAME_SIZE);
+-
+-                      for (b = 0; b < 3 ; b++)
+-                              entry->PortId[b] = pdev->d_id.r.d_id[2-b];
+-
+-                      entry->TargetId = cnt;
+-                      entry->MultipathControl = MP_MASK_UNCONFIGURED;
+-
+-                      ret = verify_area(VERIFY_WRITE, (void *)u_entry,
+-                          sizeof(FO_DEVICE_DATA));
+-                      if (ret) {
+-                              /* error */
+-                              DEBUG2_9_10(printk("%s(%ld): u_entry %p verify "
+-                                  " wrt err. tgt id=%d.\n",
+-                                  __func__, ha->host_no, u_entry, cnt);)
+-                              pext->Status = EXT_STATUS_COPY_ERR;
+-                              break;
+-                      }
+-
+-                      ret = copy_to_user(u_entry, entry,
+-                          sizeof(FO_DEVICE_DATA));
+-                      if (ret) {
+-                              /* error */
+-                              DEBUG2_9_10(printk("%s(%ld): u_entry %p copy "
+-                                  "out err. tgt id=%d.\n",
+-                                  __func__, ha->host_no, u_entry, cnt);)
+-                              pext->Status = EXT_STATUS_COPY_ERR;
+-                              break;
+-                      }
+-
+-                      u_entry++;
+-              }
+-      }
+-
+-      DEBUG9(printk("%s(%ld): done copying unconfigured dev entries.\n",
+-          __func__, ha->host_no);)
+-
+       DEBUG9(printk("%s(%ld): exiting. ret = %d.\n",
+           __func__, ha->host_no, ret);)
+@@ -1095,7 +963,6 @@ qla2x00_fo_get_tgt(mp_host_t *host, scsi
+     EXT_IOCTL *pext, FO_DEVICE_DATA *entry)
+ {
+       int             ret = 0;
+-      uint8_t         i;
+       uint8_t         path_id;
+       uint16_t        dev_no;
+       uint32_t        b;
+@@ -1116,14 +983,14 @@ qla2x00_fo_get_tgt(mp_host_t *host, scsi
+        * ha as unconfigured devices.  ha should never be NULL.
+        */
+       if (host == NULL) {
+-              fcport = ha->fcport;
+-
+-              /* Check thru fcport list and return Unconfigured on all
+-               * ports found.
+-               */
+-              for (i = 0; fcport && i < MAX_TARGETS;
+-                  i++, fcport = fcport->next, cnt++) {
+-
++              /* Loop through and return ports found. */
++              /* Check thru this adapter's fcport list */
++              cnt = 0;
++              fcport = NULL;
++              list_for_each_entry(fcport, &ha->fcports, list) {
++                      if (fcport->port_type != FCT_TARGET)
++                              continue;
++      
+                       if (atomic_read(&fcport->state) != FC_ONLINE) {
+                               /* no need to report */
+                               DEBUG2_9_10(printk("%s(%ld): not reporting "
+@@ -1139,6 +1006,10 @@ qla2x00_fo_get_tgt(mp_host_t *host, scsi
+                               continue;
+                       }
++                      cnt++;
++                      if (cnt >= MAX_TARGETS)
++                              break;
++
+                       /* clear for a new entry */
+                       memset(entry, 0, sizeof(FO_DEVICE_DATA));
+@@ -1175,17 +1046,6 @@ qla2x00_fo_get_tgt(mp_host_t *host, scsi
+                           entry->TargetId, entry->Dev_No,
+                           entry->MultipathControl);)
+-                      ret = verify_area(VERIFY_WRITE, (void *)u_entry,
+-                          sizeof(FO_DEVICE_DATA));
+-                      if (ret) {
+-                              /* error */
+-                              DEBUG2_9_10(printk("%s(%ld): u_entry %p "
+-                                  "verify wrt err. no tgt id.\n",
+-                                  __func__, host->ha->host_no, u_entry);)
+-                              pext->Status = EXT_STATUS_COPY_ERR;
+-                              break;
+-                      }
+-
+                       ret = copy_to_user(u_entry, entry,
+                           sizeof(FO_DEVICE_DATA));
+                       if (ret) {
+@@ -1208,12 +1068,14 @@ qla2x00_fo_get_tgt(mp_host_t *host, scsi
+       }
+       /* Check thru fcport list on host */
+-      fcport = host->fcport;
+-
+-      /* Check thru fcport list and return data on online ports found. */
+-      for (i = 0; fcport && i < MAX_TARGETS; i++, fcport = fcport->next,
+-          cnt++) {
+-
++      /* Loop through and return online ports found. */
++      /* Check thru this adapter's fcport list */
++      cnt = 0;
++      fcport = NULL;
++      list_for_each_entry(fcport, host->fcports, list) {
++              if (fcport->port_type != FCT_TARGET)
++                      continue;
++      
+               if ((atomic_read(&fcport->state) != FC_ONLINE) &&
+                   !qla2x00_is_fcport_in_config(ha, fcport)) {
+                       /* no need to report */
+@@ -1230,11 +1092,13 @@ qla2x00_fo_get_tgt(mp_host_t *host, scsi
+                       continue;
+               }
++              cnt++;
++              if (cnt >= MAX_TARGETS)
++                      break;
++
+               /* clear for a new entry */
+               memset(entry, 0, sizeof(FO_DEVICE_DATA));
+-              memcpy(entry->WorldWideName,
+-                  fcport->node_name, EXT_DEF_WWN_NAME_SIZE);
+               memcpy(entry->PortName,
+                   fcport->port_name, EXT_DEF_WWN_NAME_SIZE);
+@@ -1258,6 +1122,12 @@ qla2x00_fo_get_tgt(mp_host_t *host, scsi
+                       DEBUG9_10(printk("%s(%ld): fcport mpbyte=%02x. "
+                           "return unconfigured. ",
+                           __func__, host->ha->host_no, fcport->mp_byte);)
++                      printk(KERN_INFO "%s(%ld): fcport mpbyte=%02x. "
++                          "return unconfigured. ",
++                          __func__, host->ha->host_no, fcport->mp_byte);
++
++                      memcpy(entry->WorldWideName,
++                          fcport->node_name, EXT_DEF_WWN_NAME_SIZE);
+                       entry->TargetId = fcport->dev_id;
+                       entry->Dev_No = 0;
+@@ -1267,18 +1137,6 @@ qla2x00_fo_get_tgt(mp_host_t *host, scsi
+                           entry->TargetId, entry->Dev_No,
+                           entry->MultipathControl);)
+-                      ret = verify_area(VERIFY_WRITE, (void *)u_entry,
+-                          sizeof(FO_DEVICE_DATA));
+-                      if (ret) {
+-                              /* error */
+-                              DEBUG2_9_10(printk("%s(%ld): u_entry %p "
+-                                  "verify wrt err. tgt id=%d.\n",
+-                                  __func__, host->ha->host_no, u_entry,
+-                                  fcport->dev_id);)
+-                              pext->Status = EXT_STATUS_COPY_ERR;
+-                              break;
+-                      }
+-
+                       ret = copy_to_user(u_entry, entry,
+                           sizeof(FO_DEVICE_DATA));
+                       if (ret) {
+@@ -1323,6 +1181,18 @@ qla2x00_fo_get_tgt(mp_host_t *host, scsi
+                                   entry->PortName))
+                                       continue;
++                              if (fcport->flags & FC_XP_DEVICE) {
++                                      memcpy(entry->WorldWideName,
++                                          dp->nodename,
++                                          EXT_DEF_WWN_NAME_SIZE);
++DEBUG4(printk(KERN_INFO "%s XP device:copy the node name from mp_dev:%0x\n",__func__,dp->nodename[7]);)
++                              } else {
++                                      memcpy(entry->WorldWideName,
++                                          fcport->node_name,
++                                          EXT_DEF_WWN_NAME_SIZE);
++DEBUG4(printk(KERN_INFO "%s :copy the node name from fcport:%0x\n",__func__,dp->nodename[7]);)
++                              }
++
+                               entry->TargetId = dp->dev_id;
+                               entry->Dev_No = path->id;
+@@ -1339,18 +1209,6 @@ qla2x00_fo_get_tgt(mp_host_t *host, scsi
+                                   __func__, host->ha->host_no,
+                                   path->id, entry->MultipathControl);)
+-                              ret = verify_area(VERIFY_WRITE, (void *)u_entry,
+-                                  sizeof(FO_DEVICE_DATA));
+-                              if (ret) {
+-                                      /* error */
+-                                      DEBUG2_9_10(printk("%s(%ld): u_entry %p"
+-                                          " verify wrt err. tgt id=%d.\n",
+-                                          __func__, host->ha->host_no,
+-                                          u_entry, dp->dev_id);)
+-                                      pext->Status = EXT_STATUS_COPY_ERR;
+-                                      break;
+-                              }
+-
+                               ret = copy_to_user(u_entry, entry,
+                                   sizeof(FO_DEVICE_DATA));
+                               if (ret) {
+@@ -1441,17 +1299,6 @@ qla2x00_fo_get_tgt(mp_host_t *host, scsi
+                                   path->portname[4], path->portname[5],
+                                   path->portname[6], path->portname[7]);)
+-                              ret = verify_area(VERIFY_WRITE, (void *)u_entry,
+-                                  sizeof(FO_DEVICE_DATA));
+-                              if (ret) {
+-                                      /* error */
+-                                      DEBUG2_9_10(printk("%s: u_entry %p "
+-                                          "verify wrt err. tgt id=%d.\n",
+-                                          __func__, u_entry, dp->dev_id);)
+-                                      pext->Status = EXT_STATUS_COPY_ERR;
+-                                      break;
+-                              }
+-
+                               ret = copy_to_user(u_entry, entry,
+                                   sizeof(FO_DEVICE_DATA));
+                               if (ret) {
+@@ -1544,18 +1391,7 @@ qla2x00_fo_set_target_data(EXT_IOCTL *pe
+           sizeof(FO_TARGET_DATA_INPUT));
+       for (i = 0; i < MAX_TARGETS; i++, u_entry++) {
+-              ret = verify_area(VERIFY_READ, (void *)u_entry,
+-                  sizeof(FO_DEVICE_DATA));
+-              if (ret) {
+-                      /* error */
+-                      DEBUG2_9_10(printk("%s: u_entry %p verify read err.\n",
+-                          __func__, u_entry);)
+-                      pext->Status = EXT_STATUS_COPY_ERR;
+-                      break;
+-              }
+-
+               ret = copy_from_user(entry, u_entry, sizeof(FO_DEVICE_DATA));
+-
+               if (ret) {
+                       /* error */
+                       DEBUG2_9_10(printk("%s: u_entry %p copy error.\n",
+@@ -1699,19 +1535,7 @@ qla2x00_fo_ioctl(scsi_qla_host_t *ha, in
+                           __func__, pext->RequestLen);)
+               } else {
+-
+-                      rval = verify_area(VERIFY_READ,
+-                          (void *)pext->RequestAdr, in_size);
+-                      if (rval) {
+-                              /* error */
+-                              DEBUG2_9_10(printk("%s: req buf verify read "
+-                                  "error. size=%ld.\n",
+-                                  __func__, (ulong)in_size);)
+-                              pext->Status = EXT_STATUS_COPY_ERR;
+-                      }
+-                      rval = copy_from_user(&buff,
+-                          (void *)pext->RequestAdr, in_size);
+-
++                      rval = copy_from_user(&buff, pext->RequestAdr, in_size);
+                       if (rval) {
+                               DEBUG2_9_10(printk("%s: req buf copy error. "
+                                   "size=%ld.\n",
+@@ -1738,25 +1562,31 @@ qla2x00_fo_ioctl(scsi_qla_host_t *ha, in
+       switch (ioctl_code) {
+               case FO_CC_GET_PARAMS:
++                      DEBUG4(printk(KERN_INFO "calling qla2x00_fo_get_param\n");)
+                       rval = qla2x00_fo_get_params(&buff.params);
+                       break;
+               case FO_CC_SET_PARAMS:
++                      DEBUG4(printk(KERN_INFO "calling qla2x00_fo_set_param\n");)
+                       rval = qla2x00_fo_set_params(&buff.params);
+                       break;
+               case FO_CC_GET_PATHS:
++                      DEBUG4(printk(KERN_INFO "calling qla2x00_fo_get_paths\n");)
+                       rval = qla2x00_cfg_get_paths(pext,
+                           &buff.path,mode);
+                       if (rval != 0)
+                               out_size = 0;
+                       break;
+               case FO_CC_SET_CURRENT_PATH:
++                      DEBUG4(printk(KERN_INFO "calling qla2x00_fo_set_paths\n");)
+                       rval = qla2x00_cfg_set_current_path(pext,
+                           &buff.set_path,mode);
+                       break;
+               case FO_CC_RESET_HBA_STAT:
++                      DEBUG4(printk(KERN_INFO "calling qla2x00_fo_reset_hba_stat\n");)
+                       rval = qla2x00_fo_stats(&buff.stat, TRUE);
+                       break;
+               case FO_CC_GET_HBA_STAT:
++                      DEBUG4(printk(KERN_INFO "calling qla2x00_fo_get_hba_stat\n");)
+                       rval = qla2x00_fo_stats(&buff.stat, FALSE);
+                       break;
+               case FO_CC_GET_LUN_DATA:
+@@ -1802,21 +1632,9 @@ qla2x00_fo_ioctl(scsi_qla_host_t *ha, in
+       }
+-      if (rval == 0 && (pext->ResponseLen = out_size) != 0) {
+-              rval = verify_area(VERIFY_WRITE, (void *)pext->ResponseAdr,
+-                  out_size);
+-              if (rval != 0) {
+-                      DEBUG10(printk("%s: resp buf very write error.\n",
+-                          __func__);)
+-                      pext->Status = EXT_STATUS_COPY_ERR;
+-              }
+-      }
+-
+       if (rval == 0) {
+-              rval = copy_to_user((void *)pext->ResponseAdr,
+-                  &buff, out_size);
+-
+-              if (rval != 0) {
++              rval = copy_to_user(pext->ResponseAdr, &buff, out_size);
++              if (rval) {
+                       DEBUG10(printk("%s: resp buf copy error. size=%ld.\n",
+                           __func__, (ulong)out_size);)
+                       pext->Status = EXT_STATUS_COPY_ERR;
+@@ -1858,6 +1676,7 @@ qla2x00_fo_count_retries(scsi_qla_host_t
+       BOOL            retry = TRUE;
+       os_lun_t        *lq;
+       os_tgt_t        *tq;
++      scsi_qla_host_t *vis_ha;
+       DEBUG9(printk("%s: entered.\n", __func__);)
+@@ -1897,7 +1716,9 @@ qla2x00_fo_count_retries(scsi_qla_host_t
+                       sp->f_start=jiffies;/*ra 10/29/01*/
+                       /* Now queue it on to be failover */
+                       sp->ha = ha;
+-                      add_to_failover_queue(ha,sp);
++                      /* we can only failover using the visible HA */
++                      vis_ha = (scsi_qla_host_t *) sp->cmd->host->hostdata;
++                      add_to_failover_queue(vis_ha,sp);
+               }
+       }
+@@ -1906,6 +1727,53 @@ qla2x00_fo_count_retries(scsi_qla_host_t
+       return retry ;
+ }
++BOOL
++qla2x00_fo_check_device(scsi_qla_host_t *ha, srb_t *sp)
++{
++      
++      BOOL            retry = FALSE;
++      os_lun_t        *lq;
++      Scsi_Cmnd        *cp;
++      fc_port_t        *fcport;
++      
++      if ( !(sp->flags & SRB_GOT_SENSE) )
++              return retry;
++
++      cp = sp->cmd;
++      lq = sp->lun_queue;
++      fcport = lq->fclun->fcport;
++      switch (cp->sense_buffer[2] & 0xf) {
++
++              case NOT_READY:
++                      if ( (fcport->flags & (FC_MSA_DEVICE|FC_EVA_DEVICE)) ) {
++                              /*
++                               * if we can't access port 
++                               */
++                              if ((cp->sense_buffer[12] == 0x4 &&
++                                      cp->sense_buffer[13] == 0x0)) {
++                                      sp->err_id = SRB_ERR_DEVICE;
++                                      return (TRUE);
++                              }
++                      } 
++                      break;
++
++              case UNIT_ATTENTION:
++                      if ( (fcport->flags & FC_EVA_DEVICE) ) {
++                              if ((cp->sense_buffer[12] == 0xa &&
++                                      cp->sense_buffer[13] == 0x8)) {
++                                      sp->err_id = SRB_ERR_DEVICE;
++                                      return (TRUE);
++                              }
++                              if ((cp->sense_buffer[12] == 0xa &&
++                                      cp->sense_buffer[13] == 0x9)) {
++                                      /* failback lun */
++                              }
++                      } 
++                      break;
++
++      } /* end of switch */
++      return (retry);
++}
+ /*
+  * qla2x00_fo_check
+@@ -1953,7 +1821,9 @@ qla2x00_fo_check(scsi_qla_host_t *ha, sr
+       /* we failover on selction timeouts only */
+       host_status = CMD_RESULT(sp->cmd) >>16;
+-      if( host_status == DID_NO_CONNECT) {
++      if( host_status == DID_NO_CONNECT ||
++              qla2x00_fo_check_device(ha, sp) ) {
++                      
+               if( qla2x00_fo_count_retries(ha,sp) ) {
+                       /* Force a retry  on this request, it will
+                        * cause the LINUX timer to get reset, while we
+@@ -1968,6 +1838,12 @@ qla2x00_fo_check(scsi_qla_host_t *ha, sr
+                               sp->cmd->serial_number,
+                               sp, sp->fo_retry_cnt,
+                               retry, reason[host_status]);)
++              DEBUG(printk("qla2x00_fo_check: pid= %ld sp %p "
++                              "retry count=%d, retry flag = %d, "
++                              "host status=%d\n\r",
++                              sp->cmd->serial_number,
++                              sp, sp->fo_retry_cnt,
++                              retry, host_status);)
+       }
+       DEBUG9(printk("%s: exiting. retry = %d.\n", __func__, retry);)
+@@ -2135,10 +2011,11 @@ static int
+ qla2x00_spinup(scsi_qla_host_t *ha, fc_port_t *fcport, uint16_t lun) 
+ {
+       inq_cmd_rsp_t   *pkt;
+-      int             rval, count, retry;
++      int             rval = QLA2X00_SUCCESS;
++      int             count, retry;
+       dma_addr_t      phys_address = 0;
+-      uint16_t        comp_status;
+-      uint16_t        scsi_status;
++      uint16_t        comp_status = CS_COMPLETE;
++      uint16_t        scsi_status = 0;
+       ENTER(__func__);
+@@ -2149,24 +2026,34 @@ qla2x00_spinup(scsi_qla_host_t *ha, fc_p
+               printk(KERN_WARNING
+                       "scsi(%ld): Memory Allocation failed - INQ\n",
+                       ha->host_no);
++              return( QLA2X00_FAILED);
+       }
+-      count = 100; 
+-      retry = 10;
+-      do {
++      count = 5; 
++      retry = 5;
++      if (atomic_read(&fcport->state) != FC_ONLINE){
++              DEBUG2(printk("scsi(%ld) %s leaving: Port 0x%02x is not ONLINE\n",
++                      ha->host_no,__func__,fcport->loop_id);)
++              rval =  QLA2X00_FAILED;
++      }
++      else do {
+               /* issue spinup */
+               memset(pkt, 0, sizeof(inq_cmd_rsp_t));
+               pkt->p.cmd.entry_type = COMMAND_A64_TYPE;
+               pkt->p.cmd.entry_count = 1;
+               pkt->p.cmd.lun = cpu_to_le16(lun);
++#if defined(EXTENDED_IDS)
++              pkt->p.cmd.target = cpu_to_le16(fcport->loop_id);
++#else
+               pkt->p.cmd.target = (uint8_t)fcport->loop_id;
++#endif
+               /* no direction for this command */
+               pkt->p.cmd.control_flags =
+                       __constant_cpu_to_le16(CF_SIMPLE_TAG);
+               pkt->p.cmd.scsi_cdb[0] = START_STOP;
+               pkt->p.cmd.scsi_cdb[4] = 1;     /* start spin cycle */
+               pkt->p.cmd.dseg_count = __constant_cpu_to_le16(0);
+-              pkt->p.cmd.timeout = __constant_cpu_to_le16(10);
++              pkt->p.cmd.timeout = __constant_cpu_to_le16(20);
+               pkt->p.cmd.byte_count = __constant_cpu_to_le32(0);
+               rval = qla2x00_issue_iocb(ha, pkt,
+@@ -2175,6 +2062,15 @@ qla2x00_spinup(scsi_qla_host_t *ha, fc_p
+               comp_status = le16_to_cpu(pkt->p.rsp.comp_status);
+               scsi_status = le16_to_cpu(pkt->p.rsp.scsi_status);
++              /* Port Logged Out, so don't retry */
++              if(     comp_status == CS_PORT_LOGGED_OUT  ||
++                      comp_status == CS_PORT_CONFIG_CHG ||
++                      comp_status == CS_PORT_BUSY ||
++                      comp_status == CS_INCOMPLETE ||
++                      comp_status == CS_PORT_UNAVAILABLE ) {
++                      break;
++              }
++
+               if ( (scsi_status & SS_CHECK_CONDITION) ) {
+                               DEBUG2(printk("%s(%ld): SS_CHECK_CONDITION "
+                                               "Sense Data "
+@@ -2203,9 +2099,11 @@ qla2x00_spinup(scsi_qla_host_t *ha, fc_p
+                                       retry--;
+               }
+-              printk("qla_fo: Sending Start - count %d, retry=%d"
+-                              "comp status 0x%x, "
++              printk(KERN_INFO 
++                      "qla_fo(%ld): Sending Start - count %d, retry=%d"
++                              " comp status 0x%x, "
+                               "scsi status 0x%x, rval=%d\n",
++                              ha->host_no,
+                               count,
+                               retry,
+                               comp_status,
+@@ -2226,15 +2124,17 @@ qla2x00_spinup(scsi_qla_host_t *ha, fc_p
+               comp_status != CS_COMPLETE ||
+               (scsi_status & SS_CHECK_CONDITION)) {
+-              DEBUG(printk("qla_fo: Failed spinup - "
++              DEBUG(printk("qla_fo(%ld): Failed spinup - "
+                               "comp status 0x%x, "
+                               "scsi status 0x%x. loop_id=%d\n",
++                              ha->host_no,
+                               comp_status,
+                               scsi_status, 
+                               fcport->loop_id);)
++                              rval =  QLA2X00_FAILED;
+       }
+-      pci_free_consistent(ha->pdev, sizeof(rpt_lun_cmd_rsp_t),
++      pci_free_consistent(ha->pdev, sizeof(inq_cmd_rsp_t),
+                       pkt, phys_address);
+@@ -2272,6 +2172,11 @@ qla2x00_send_fo_notification(fc_lun_t *o
+       ENTER("qla2x00_send_fo_notification");
+       DEBUG3(printk("%s: entered.\n", __func__);)
++      if( new_lp->fcport == NULL ){
++              DEBUG2(printk("qla2x00_send_fo_notification: No "
++                          "new fcport for lun pointer\n");)
++              return QLA2X00_FAILED;
++      }
+       loop_id = new_lp->fcport->loop_id;
+       lun = new_lp->lun;
+@@ -2302,8 +2207,10 @@ qla2x00_send_fo_notification(fc_lun_t *o
+       }
+-      if (qla_fo_params.FailoverNotifyType == FO_NOTIFY_TYPE_SPINUP) {
+-              qla2x00_spinup(new_lp->fcport->ha, new_lp->fcport, new_lp->lun); 
++      if (qla_fo_params.FailoverNotifyType == FO_NOTIFY_TYPE_SPINUP ||
++              new_lp->fcport->notify_type == FO_NOTIFY_TYPE_SPINUP ) {
++              rval = qla2x00_spinup(new_lp->fcport->ha, new_lp->fcport, 
++                      new_lp->lun); 
+       }
+       if (qla_fo_params.FailoverNotifyType == FO_NOTIFY_TYPE_CDB) {
+@@ -2320,7 +2227,11 @@ qla2x00_send_fo_notification(fc_lun_t *o
+               pkt->p.cmd.entry_type = COMMAND_A64_TYPE;
+               pkt->p.cmd.entry_count = 1;
+               pkt->p.cmd.lun = cpu_to_le16(lun);
++#if defined(EXTENDED_IDS)
++              pkt->p.cmd.target = cpu_to_le16(loop_id);
++#else
+               pkt->p.cmd.target = (uint8_t)loop_id;
++#endif
+               /* FIXME: How do you know the direction ???? */
+               /* This has same issues as passthur commands - you 
+                * need more than just the CDB.
+@@ -2332,9 +2243,9 @@ qla2x00_send_fo_notification(fc_lun_t *o
+               pkt->p.cmd.dseg_count = __constant_cpu_to_le16(1);
+               pkt->p.cmd.byte_count = __constant_cpu_to_le32(0);
+               pkt->p.cmd.dseg_0_address[0] = cpu_to_le32(
+-                    pci_dma_lo32(phys_address + sizeof(sts_entry_t)));
++                    LSD(phys_address + sizeof(sts_entry_t)));
+               pkt->p.cmd.dseg_0_address[1] = cpu_to_le32(
+-                    pci_dma_hi32(phys_address + sizeof(sts_entry_t)));
++                    MSD(phys_address + sizeof(sts_entry_t)));
+               pkt->p.cmd.dseg_0_length = __constant_cpu_to_le32(0);
+               rval = qla2x00_issue_iocb(old_ha, pkt, phys_address,
+@@ -2536,19 +2447,6 @@ qla2x00_fo_missing_port_summary(scsi_qla
+                                   sizeof(EXT_DEVICEDATAENTRY);
+                               transfer_size = sizeof(EXT_DEVICEDATAENTRY);
+-                              ret = verify_area(VERIFY_WRITE,
+-                                  (void *)(pstart_of_entry_list +
+-                                  current_offset), transfer_size);
+-
+-                              if (ret) {
+-                                      *ret_status = EXT_STATUS_COPY_ERR;
+-                                      DEBUG10(printk("%s(%ld): inst=%ld "
+-                                          "ERROR verify wrt rsp bufaddr=%p\n",
+-                                          __func__, ha->host_no, ha->instance,
+-                                          (void *)(pstart_of_entry_list +
+-                                          current_offset));)
+-                                      break;
+-                              }
+                               /* now copy up this dd_entry to user */
+                               usr_temp = (uint8_t *)pstart_of_entry_list +
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_fo.cfg linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_fo.cfg
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_fo.cfg   2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_fo.cfg        2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+@@ -20,10 +20,10 @@
+ /*
+  * QLogic ISP2x00 Multi-path LUN Support Driver
+  */
+-static int    MaxPathsPerDevice = 0;
+-static int    MaxRetriesPerPath = 0;
+-static int    MaxRetriesPerIo = 0;
+-static int    qlFailoverNotifyType = 0;
++int   MaxPathsPerDevice = 0;
++int   MaxRetriesPerPath = 0;
++int   MaxRetriesPerIo = 0;
++int   qlFailoverNotifyType = 0;
+ #if defined(MODULE)
+ /* insmod qla2100 <options> ql2xopts=<string> */
+ MODULE_PARM(MaxPathsPerDevice, "i");
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_fo.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_fo.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_fo.h     2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_fo.h  2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_gbl.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_gbl.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_gbl.h    2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_gbl.h 2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.4.x
+-* Copyright (C) 2003 Qlogic Corporation
++* Copyright (C) 2003 QLogic Corporation
+ * (www.qlogic.com)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+@@ -29,20 +29,26 @@ extern "C"
+ #endif
+ #include "exioct.h"
++
++#if !defined(ISP200)
++
+ #include "qla_fo.h"
+ /*
+  * Global Data in qla_fo.c source file.
+  */
+ extern SysFoParams_t qla_fo_params;
++#endif
+ /*
+  * Global Function Prototypes in qla2x00.c source file.
+  */
+-static int qla2x00_get_prop_xstr(scsi_qla_host_t *, char *, uint8_t *, int);
++extern int qla2x00_get_prop_xstr(scsi_qla_host_t *, char *, uint8_t *, int);
+ extern void qla2x00_formatted_print(char *, uint64_t , uint8_t, uint8_t);
+ extern void qla2x00_formatted_dump_buffer(char *, uint8_t *, uint8_t ,
+                       uint32_t );
++extern inline void *kmem_zalloc( int siz, int code, int id);
++#if !defined(ISP200)
+ extern uint32_t qla2x00_fo_path_change(uint32_t ,
+                                              fc_lun_t *, fc_lun_t *);
+ extern scsi_qla_host_t *qla2x00_get_hba(int);
+@@ -65,6 +71,7 @@ extern BOOL   mp_config_required;
+ extern int qla2x00_cfg_init (scsi_qla_host_t *ha);
+ extern int qla2x00_cfg_path_discovery(scsi_qla_host_t *ha);
+ extern int qla2x00_cfg_event_notify(scsi_qla_host_t *ha, uint32_t i_type);
++extern int qla2x00_cfg_remap(scsi_qla_host_t *);
+ extern fc_lun_t *qla2x00_cfg_failover(scsi_qla_host_t *ha, fc_lun_t *fp,
+                                             os_tgt_t *tgt, srb_t *sp);
+ extern int qla2x00_cfg_get_paths( EXT_IOCTL *, FO_GET_PATHS *, int);
+@@ -77,15 +84,19 @@ extern mp_host_t * qla2x00_alloc_host(sc
+ extern BOOL qla2x00_fo_check(scsi_qla_host_t *ha, srb_t *sp);
+ extern mp_path_t *qla2x00_find_path_by_name(mp_host_t *, mp_path_list_t *,
+                       uint8_t *name);
++extern int16_t qla2x00_cfg_lookup_device(unsigned char *response_data);
++extern int qla2x00_combine_by_lunid( void *host, uint16_t dev_id, 
++      fc_port_t *port, uint16_t pathid); 
++extern int qla2x00_export_target( void *host, uint16_t dev_id, 
++      fc_port_t *port, uint16_t pathid); 
+ /*
+  * Global Function Prototypes in qla_cfgln.c source file.
+  */
+-extern inline void *kmem_zalloc( int siz, int code, int id);
+ extern void qla2x00_cfg_build_path_tree( scsi_qla_host_t *ha);
+ extern BOOL qla2x00_update_mp_device(mp_host_t *, fc_port_t  *, uint16_t,
+     uint16_t);
+-extern void qla2x00_cfg_display_devices(void);
++extern void qla2x00_cfg_display_devices( int flag );
+ /*
+  * Global Function Prototypes in qla_ioctl.c source file.
+@@ -95,6 +106,26 @@ extern int qla2x00_fo_missing_port_summa
+     EXT_DEVICEDATAENTRY *, void *, uint32_t, uint32_t *, uint32_t *);
+ extern UINT8
+ qla2x00_is_fcport_in_config(scsi_qla_host_t *ha, fc_port_t *fcport);
++extern UINT8
++qla2x00_is_fcport_in_foconfig(scsi_qla_host_t *ha, fc_port_t *fcport);
++#endif
++
++/*
++ * Global Function Prototypes for qla_gs.c functions
++ */
++extern int
++qla2x00_mgmt_svr_login(scsi_qla_host_t *);
++extern void
++qla2x00_fdmi_srb_tmpmem_free(srb_t *);
++extern void
++qla2x00_fdmi_register(scsi_qla_host_t *);
++extern void
++qla2x00_fdmi_register_intr(scsi_qla_host_t *);
++
++#if defined(QLA_CONFIG_COMPAT)
++extern int qla2x00_ioctl32(unsigned int, unsigned int, unsigned long,
++    struct file *);
++#endif
+ #if defined(__cplusplus)
+ }
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_gs.c linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_gs.c
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_gs.c     1969-12-31 16:00:00.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_gs.c  2004-04-22 19:42:21.000000000 -0700
+@@ -0,0 +1,1647 @@
++/******************************************************************************
++ *                  QLOGIC LINUX SOFTWARE
++ *
++ * QLogic ISP2x00 device driver for Linux 2.4.x
++ * Copyright (C) 2003 Qlogic Corporation
++ * (www.qlogic.com)
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2, or (at your option) any
++ * later version.
++ *
++ * This program is distributed in the hope that it will be useful, but
++ * WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * General Public License for more details.
++ *
++ ******************************************************************************/
++
++#define QLA_INIT_FDMI_CTIU_HDR(ha, ct_hdr)            \
++    ct_hdr.revision = GS4_REVISION;                   \
++    ct_hdr.gs_type = GS_TYPE_MGMT_SERVER;             \
++    ct_hdr.gs_subtype = GS_SUBTYPE_FDMI_HBA;
++
++struct ct_info {
++      uint16_t        ct_cmd;
++      void            *pct_buf;
++      dma_addr_t      ct_buf_dma_addr;
++};
++
++
++/* Local functions */
++static __inline__ void
++qla2x00_init_ms_mbx_iocb(scsi_qla_host_t *, uint32_t, uint32_t, uint16_t,
++    uint16_t, uint16_t);
++
++static __inline__ ms_iocb_entry_t *
++qla2x00_alloc_ms_mbx_iocb(scsi_qla_host_t *);
++
++static __inline__ void
++qla2x00_free_ms_mbx_iocb(scsi_qla_host_t *);
++
++static __inline__ int
++qla2x00_fdmi_ctiu_mem_alloc(scsi_qla_host_t *, size_t);
++
++static __inline__ void
++qla2x00_fdmi_ctiu_mem_free(scsi_qla_host_t *, size_t);
++
++static __inline__ void
++qla2x00_fdmi_setup_hbaattr(scsi_qla_host_t *, hba_attr_t *);
++
++static __inline__ void
++qla2x00_fdmi_setup_rhbainfo(scsi_qla_host_t *, ct_iu_rhba_t *);
++
++static __inline__ void
++qla2x00_fdmi_setup_rhatinfo(scsi_qla_host_t *, ct_iu_rhat_t *);
++
++static __inline__ void
++qla2x00_fdmi_setup_rpainfo(scsi_qla_host_t *, ct_iu_rpa_t *);
++
++static __inline__ void
++qla2x00_fdmi_srb_init(scsi_qla_host_t *, srb_t *, uint16_t, uint16_t);
++
++static __inline__ void
++qla2x00_init_req_q_ms_iocb(scsi_qla_host_t *, ms_iocb_entry_t *,
++    dma_addr_t, size_t, size_t, uint8_t, uint16_t, uint16_t);
++
++static __inline__ int
++qla2x00_fdmi_srb_tmpmem_alloc(scsi_qla_host_t *ha, srb_t *sp);
++
++static __inline__ int
++qla2x00_fdmi_sc_request_dev_bufs_alloc(scsi_qla_host_t *, Scsi_Cmnd *);
++
++static __inline__ void
++qla2x00_fdmi_sc_request_dev_bufs_free(Scsi_Cmnd *);
++
++STATIC int
++qla2x00_fdmi_cmnd_srb_alloc(scsi_qla_host_t *, srb_t **);
++
++STATIC void
++qla2x00_fdmi_cmnd_srb_free(scsi_qla_host_t *, srb_t *);
++
++STATIC int
++qla2x00_fdmi_rhba(scsi_qla_host_t *, uint8_t *);
++
++STATIC int
++qla2x00_fdmi_ghat(scsi_qla_host_t *, ct_iu_ghat_rsp_t *, uint8_t *);
++
++STATIC int
++qla2x00_fdmi_rpa(scsi_qla_host_t *, uint8_t *);
++
++STATIC int
++qla2x00_fdmi_dhba(scsi_qla_host_t *, uint8_t *);
++
++STATIC int
++qla2x00_fdmi_rhba_intr(scsi_qla_host_t *);
++
++STATIC int
++qla2x00_fdmi_rhat_intr(scsi_qla_host_t *, Scsi_Cmnd *, void *, dma_addr_t);
++
++STATIC int
++qla2x00_fdmi_rpa_intr(scsi_qla_host_t *, Scsi_Cmnd *, void *, dma_addr_t);
++
++STATIC void
++qla2x00_fdmi_done(Scsi_Cmnd *);
++
++/* functions to export */
++int
++qla2x00_mgmt_svr_login(scsi_qla_host_t *ha);
++
++void
++qla2x00_fdmi_srb_tmpmem_free(srb_t *sp);
++
++void
++qla2x00_fdmi_register(scsi_qla_host_t *);
++
++void
++qla2x00_fdmi_register_intr(scsi_qla_host_t *);
++
++
++/*
++ * qla2x00_mgmt_svr_login
++ *    Login management server.
++ *
++ * Input:
++ *    ha:     adapter state pointer.
++ *
++ * Returns:
++ *    qla2x00 local function return status code.
++ *
++ * Context:
++ *    Kernel context.
++ */
++int
++qla2x00_mgmt_svr_login(scsi_qla_host_t *ha)
++{
++      int             tmp_rval = 0;
++      uint16_t        mb[MAILBOX_REGISTER_COUNT];
++
++      DEBUG13(printk("%s(%ld): entered\n",
++          __func__, ha->host_no);)
++
++      /* check on management server login status */
++      if (ha->flags.management_server_logged_in == 0) {
++              /* login to management server device */
++
++              tmp_rval = qla2x00_login_fabric(ha, MANAGEMENT_SERVER,
++                  0xff, 0xff, 0xfa, &mb[0], BIT_1);
++
++              if (tmp_rval != 0 || mb[0] != 0x4000) {
++
++                      DEBUG2_13(printk(
++                          "%s(%ld): inst=%ld ERROR login to MS.\n",
++                          __func__, ha->host_no, ha->instance);)
++
++                      return (QL_STATUS_ERROR);
++              }
++
++              ha->flags.management_server_logged_in = 1;
++              DEBUG13(printk("%s(%ld): success login to MS.\n",
++                  __func__, ha->host_no);)
++      }
++
++      DEBUG13(printk("%s(%ld): exiting.\n",
++          __func__, ha->host_no);)
++
++      return (QL_STATUS_SUCCESS);
++}
++
++/*
++ * qla2x00_fdmi_register
++ *    Uses execute iocb mbx command to perform fdmi registration
++ *    functions.  If functions cannot be performed or returned
++ *    error, just return without error, since this is not a critical
++ *    function that must succeed.
++ *    It is assumed the driver has already login to management svr.
++ *
++ * Input:
++ *    ha:     adapter state pointer.
++ *
++ * Returns:
++ *    void
++ *
++ * Context:
++ *    Kernel context.
++ */
++void
++qla2x00_fdmi_register(scsi_qla_host_t *ha)
++{
++      int             rval;
++      uint8_t         fdmi_stat = FDMI_STAT_OK;
++      ms_iocb_entry_t *ms_pkt;
++      ct_iu_ghat_rsp_t tmp_hat_buf;
++      ct_iu_rhba_t    hba_buf;
++
++      DEBUG13(printk("%s(%ld): entered.\n", __func__, ha->host_no);)
++
++      /* allocate MSIOCB */
++      ms_pkt = qla2x00_alloc_ms_mbx_iocb(ha);
++
++      if (ms_pkt == NULL) {
++              /* error cannot perform register functions */
++              DEBUG2_13(printk("%s(%ld): MSIOCB alloc failed.\n",
++                  __func__, ha->host_no);)
++              return;
++      }
++
++      /* register HBA */
++      rval = qla2x00_fdmi_rhba(ha, &fdmi_stat);
++
++      /* if already registered, get and compare HBA attributes */
++      if (rval != QL_STATUS_SUCCESS) {
++              if (fdmi_stat == FDMI_STAT_ALREADY_REGISTERED) {
++                      DEBUG2_13(printk("%s(%ld): HBA already registered. "
++                          "Get/compare attributes.\n",
++                          __func__, ha->host_no);)
++
++                      if (qla2x00_fdmi_ghat(ha, &tmp_hat_buf, &fdmi_stat)) {
++                              /* error */
++                              DEBUG2_13(printk("%s(%ld): GHAT failed. "
++                                  "De-registering.\n",
++                                  __func__, ha->host_no);)
++                              /* deregister and return */
++                              qla2x00_fdmi_dhba(ha, &fdmi_stat);
++                              return;
++                      }
++              } else {
++                      /* error */
++                      DEBUG2_13(printk("%s(%ld): RHBA failed. exiting.\n",
++                          __func__, ha->host_no);)
++                      return;
++              }
++
++              DEBUG13(printk("%s(%ld): ghat rsp buf dump:\n",
++                  __func__, ha->host_no);)
++              DEBUG13(qla2x00_dump_buffer((uint8_t*)&tmp_hat_buf.plist,
++                  sizeof(reg_port_list_t) + sizeof(hba_attr_t));)
++
++              /* rebuild hba values locally and compare; if different
++               * attribute values, de-register and register the hba.
++               */
++              memset(&hba_buf, 0, sizeof(ct_iu_rhba_t));
++              qla2x00_fdmi_setup_rhbainfo(ha, &hba_buf);
++
++              DEBUG13(printk("%s(%ld): compare hba buf dump:\n",
++                  __func__, ha->host_no);)
++              DEBUG13(qla2x00_dump_buffer((uint8_t*)&hba_buf.plist,
++                  sizeof(reg_port_list_t) + sizeof(hba_attr_t));)
++
++              if (memcmp(&hba_buf.plist, &tmp_hat_buf.plist,
++                  sizeof(reg_port_list_t) + sizeof(hba_attr_t)) != 0) {
++                      /* deregister and re-register */
++                      DEBUG13(printk("%s(%ld): different attributes already "
++                          "registered. deregistering...\n",
++                          __func__, ha->host_no);)
++
++                      rval = qla2x00_fdmi_dhba(ha, &fdmi_stat);
++                      if (rval != QL_STATUS_SUCCESS) {
++                              /* error */
++                              DEBUG2_13(printk("%s(%ld): DHBA failed.\n",
++                                  __func__, ha->host_no);)
++                              return;
++                      }
++
++                      DEBUG13(printk("%s(%ld): deregister HBA success. "
++                          "re-registering...\n",
++                          __func__, ha->host_no);)
++
++                      /* try again */
++                      rval = qla2x00_fdmi_rhba(ha, &fdmi_stat);
++                      if (rval != QL_STATUS_SUCCESS ||
++                          fdmi_stat != FDMI_STAT_OK) {
++                              /* error */
++                              DEBUG2_13(printk(
++                                  "%s(%ld): RHBA failed again-exiting.\n",
++                                  __func__, ha->host_no);)
++                              return;
++                      }
++              }
++      }
++
++      /* register port attributes.  This call should always succeed
++       * if the command is supported.
++       */
++      qla2x00_fdmi_rpa(ha, &fdmi_stat);
++
++      /* free MSIOCB */
++      qla2x00_free_ms_mbx_iocb(ha);
++
++      DEBUG13(printk("%s(%ld): exiting\n", __func__, ha->host_no);)
++}
++
++static __inline__ int
++qla2x00_fdmi_srb_tmpmem_alloc(scsi_qla_host_t *ha, srb_t *sp)
++{
++      if (sp == NULL) {
++              return (QL_STATUS_ERROR);
++      }
++
++      /* initialize for proper handling of error case */
++      sp->tgt_queue = NULL;
++      sp->lun_queue = NULL;
++      sp->fclun = NULL;
++
++      sp->tgt_queue = KMEM_ZALLOC(sizeof(os_tgt_t), 60);
++      if (sp->tgt_queue == NULL) {
++              DEBUG2_13(printk(KERN_WARNING
++                  "%s(%ld): ERROR in tmp tgt queue allocation.\n",
++                  __func__, ha->host_no);)
++              qla2x00_fdmi_srb_tmpmem_free(sp);
++              return (QL_STATUS_RESOURCE_ERROR);
++      }
++
++      sp->lun_queue = KMEM_ZALLOC(sizeof(os_lun_t), 61);
++      if (sp->lun_queue == NULL) {
++              DEBUG2_13(printk(KERN_WARNING
++                  "%s(%ld): ERROR in tmp lun queue allocation.\n",
++                  __func__, ha->host_no);)
++              qla2x00_fdmi_srb_tmpmem_free(sp);
++              return (QL_STATUS_RESOURCE_ERROR);
++      }
++
++      sp->fclun = KMEM_ZALLOC(sizeof(fc_lun_t), 62);
++      if (sp->fclun == NULL) {
++              DEBUG2_13(printk(KERN_WARNING
++                  "%s(%ld): ERROR in tmp fclun queue allocation.\n",
++                  __func__, ha->host_no);)
++              qla2x00_fdmi_srb_tmpmem_free(sp);
++              return (QL_STATUS_RESOURCE_ERROR);
++      }
++
++      sp->fclun->fcport = KMEM_ZALLOC(sizeof(fc_port_t), 63);
++      if (sp->fclun->fcport == NULL) {
++              DEBUG2_13(printk(KERN_WARNING
++                  "%s(%ld): ERROR in tmp fcport queue allocation.\n",
++                  __func__, ha->host_no);)
++              qla2x00_fdmi_srb_tmpmem_free(sp);
++              return (QL_STATUS_RESOURCE_ERROR);
++      }
++
++      return (QL_STATUS_SUCCESS);
++}
++
++void
++qla2x00_fdmi_srb_tmpmem_free(srb_t *sp)
++{
++      if (sp->fclun != NULL) {
++              if (sp->fclun->fcport != NULL) {
++                      KMEM_FREE(sp->fclun->fcport, sizeof(fc_port_t));
++              }
++
++              KMEM_FREE(sp->fclun, sizeof(fc_lun_t));
++      }
++
++      if (sp->lun_queue != NULL) {
++              KMEM_FREE(sp->lun_queue, sizeof(os_lun_t));
++      }
++
++      if (sp->tgt_queue != NULL) {
++              KMEM_FREE(sp->tgt_queue, sizeof(os_tgt_t));
++      }
++
++}
++
++static __inline__ int
++qla2x00_fdmi_sc_request_dev_bufs_alloc(scsi_qla_host_t *ha, Scsi_Cmnd *pcmd)
++{
++
++      pcmd->device = KMEM_ZALLOC(sizeof(Scsi_Device), 66);
++      if (pcmd->device == NULL) {
++              /* error */
++              return (QL_STATUS_RESOURCE_ERROR);
++      }
++
++      pcmd->sc_request = KMEM_ZALLOC(sizeof(Scsi_Request), 67);
++      if (pcmd->sc_request == NULL) {
++              /* error */
++              qla2x00_fdmi_sc_request_dev_bufs_free(pcmd);
++              return (QL_STATUS_RESOURCE_ERROR);
++      }
++
++      pcmd->sc_request->sr_buffer = KMEM_ZALLOC(sizeof(struct ct_info), 68);
++      if (pcmd->sc_request->sr_buffer == NULL) {
++              /* error */
++              qla2x00_fdmi_sc_request_dev_bufs_free(pcmd);
++              return (QL_STATUS_RESOURCE_ERROR);
++      }
++
++      return (QL_STATUS_SUCCESS);
++}
++
++static __inline__ void
++qla2x00_fdmi_sc_request_dev_bufs_free(Scsi_Cmnd *pcmd)
++{
++      if (pcmd->sc_request != NULL) {
++              if (pcmd->sc_request->sr_buffer != NULL) {
++                      KMEM_FREE(pcmd->sc_request->sr_buffer,
++                          sizeof(struct ct_info));
++                      pcmd->sc_request->sr_buffer = NULL;
++              }
++
++              KMEM_FREE(pcmd->sc_request, sizeof(Scsi_Request));
++              pcmd->sc_request = NULL;
++      }
++
++      if (pcmd->device != NULL) {
++              KMEM_FREE(pcmd->device, sizeof(Scsi_Device));
++              pcmd->device = NULL;
++      }
++}
++
++STATIC int
++qla2x00_fdmi_cmnd_srb_alloc(scsi_qla_host_t *ha, srb_t **sp)
++{
++      struct ct_info  *pdata;
++      void            *pctbuf;
++      dma_addr_t      ctbuf_dma_addr;
++
++      /* Allocate SRB block. */
++      if ((*sp = qla2x00_get_new_sp(ha)) == NULL) {
++
++              DEBUG2_13(printk("%s(%ld): ERROR cannot alloc sp.\n",
++                  __func__, ha->host_no);)
++
++              return (QL_STATUS_RESOURCE_ERROR);
++      }
++
++      if (qla2x00_fdmi_srb_tmpmem_alloc(ha, *sp)) {
++              /* error */
++              atomic_set(&(*sp)->ref_count, 0);
++              add_to_free_queue(ha, *sp);
++              *sp = NULL;
++
++              return (QL_STATUS_RESOURCE_ERROR);
++      }
++
++      (*sp)->cmd = KMEM_ZALLOC(sizeof(Scsi_Cmnd), 64);
++      if ((*sp)->cmd == NULL) {
++              DEBUG2_13(printk(KERN_WARNING
++                  "%s(%ld): ERROR in scsi_cmnd mem allocation.\n",
++                  __func__, ha->host_no);)
++              qla2x00_fdmi_srb_tmpmem_free(*sp);
++              return (QL_STATUS_RESOURCE_ERROR);
++      }
++
++      /* These buffers are used and freed during callback time */
++      if (qla2x00_fdmi_sc_request_dev_bufs_alloc(ha, (*sp)->cmd)) {
++              /* error */
++
++              qla2x00_fdmi_srb_tmpmem_free(*sp);
++              KMEM_FREE((*sp)->cmd, sizeof(Scsi_Cmnd));
++              (*sp)->cmd = NULL;
++              atomic_set(&(*sp)->ref_count, 0);
++              add_to_free_queue(ha, *sp);
++              *sp = NULL;
++
++              return (QL_STATUS_RESOURCE_ERROR);
++      }
++
++      pctbuf = pci_alloc_consistent(ha->pdev, sizeof(ct_fdmi_pkt_t),
++          &ctbuf_dma_addr);
++      if (pctbuf == NULL) {
++              /* error */
++              DEBUG2_13(printk(KERN_WARNING
++                  "%s(%ld): ERROR in ctiu mem allocation.\n",
++                  __func__, ha->host_no);)
++
++              qla2x00_fdmi_sc_request_dev_bufs_free((*sp)->cmd);
++              qla2x00_fdmi_srb_tmpmem_free(*sp);
++              KMEM_FREE((*sp)->cmd, sizeof(Scsi_Cmnd));
++              (*sp)->cmd = NULL;
++              atomic_set(&(*sp)->ref_count, 0);
++              add_to_free_queue(ha, *sp);
++              *sp = NULL;
++
++              return (QL_STATUS_RESOURCE_ERROR);
++      }
++      /* sr_buffer is used to save some data for callback time */
++      pdata = (*sp)->cmd->sc_request->sr_buffer;
++      pdata->pct_buf = pctbuf;
++      pdata->ct_buf_dma_addr = ctbuf_dma_addr;
++
++      return (QL_STATUS_SUCCESS);
++}
++
++STATIC void
++qla2x00_fdmi_cmnd_srb_free(scsi_qla_host_t *ha, srb_t *sp)
++{
++      struct ct_info  *pdata;
++
++      if (sp == NULL) 
++              return;
++
++      if (sp->cmd->sc_request != NULL &&
++          (pdata = sp->cmd->sc_request->sr_buffer) != NULL) {
++              if (pdata->pct_buf != NULL) {
++                      pci_free_consistent(ha->pdev, sizeof(ct_fdmi_pkt_t),
++                          pdata->pct_buf, pdata->ct_buf_dma_addr);
++              }
++      }
++
++      qla2x00_fdmi_sc_request_dev_bufs_free(sp->cmd);
++
++      if (sp->cmd != NULL) {
++              KMEM_FREE(sp->cmd, sizeof(Scsi_Cmnd));
++              sp->cmd = NULL;
++      }
++
++      qla2x00_fdmi_srb_tmpmem_free(sp);
++
++      atomic_set(&sp->ref_count, 0);
++      add_to_free_queue(ha, sp);
++}
++
++STATIC void
++qla2x00_fdmi_done(Scsi_Cmnd *pscsi_cmd)
++{
++      uint8_t                 free_mem = TRUE;
++      uint16_t                cmd_code;
++      struct Scsi_Host        *host;
++      scsi_qla_host_t         *ha;
++      struct ct_info          *pdata;
++      ct_iu_preamble_t        *pct;
++
++      host = pscsi_cmd->host;
++      if (host == NULL) {
++              /* error */
++              DEBUG2_13(printk("%s: entered. no host found.\n", __func__);)
++              return;
++      }
++
++      ha = (scsi_qla_host_t *) host->hostdata;
++
++      DEBUG13(printk("%s(%ld): entered.\n", __func__ ,ha->host_no);)
++
++      /* read data and free memory */
++      if (pscsi_cmd->sc_request == NULL) {
++              /* error */
++              return;
++      }
++      if ((pdata = (struct ct_info *)pscsi_cmd->sc_request->sr_buffer) ==
++          NULL) {
++              /* error */
++              return;
++      }
++
++      pct = pdata->pct_buf;
++
++      cmd_code = be16_to_cpu(pdata->ct_cmd);
++      DEBUG13(printk("%s(%ld): got cmd %x, result=%x. rsp dump:\n",
++          __func__ ,ha->host_no, cmd_code, CMD_RESULT(pscsi_cmd));)
++      DEBUG13(qla2x00_dump_buffer((uint8_t *)pct, sizeof(ct_iu_preamble_t));)
++
++      switch (cmd_code) {
++      case RHBA:
++              if (pct->cmd_rsp_code !=
++                  __constant_cpu_to_be16(CT_ACCEPT_RESPONSE)) {
++                      DEBUG2_13(printk("%s(%ld): RHBA failed, rejected "
++                          "request, rhba_rsp:\n", __func__, ha->host_no);)
++                      DEBUG2_13(qla2x00_dump_buffer((uint8_t *)pct,
++                          sizeof(ct_iu_preamble_t));)
++
++                      if ((pct->reason == FDMI_REASON_CANNOT_PERFORM) &&
++                          (pct->explanation ==
++                          FDMI_EXPL_HBA_ALREADY_REGISTERED)) {
++
++                              DEBUG13(printk(
++                                  "%s(%ld): RHBA already registered. "
++                                  "calling RHAT.\n",
++                                  __func__, ha->host_no);)
++
++                              qla2x00_fdmi_rhat_intr(ha, pscsi_cmd,
++                                  pdata->pct_buf, pdata->ct_buf_dma_addr);
++                              free_mem = FALSE;
++                      } else {
++                              /* error. just free mem and exit */
++                              DEBUG2_13(printk("%s(%ld): RHBA failed. "
++                                  "going to free memory.\n",
++                                  __func__, ha->host_no);)
++                      }
++              } else {
++                      /* command completed. */
++                      DEBUG13(printk(
++                          "%s(%ld): RHBA finished ok. going to call RPA.\n",
++                          __func__, ha->host_no);)
++                      qla2x00_fdmi_rpa_intr(ha, pscsi_cmd, pdata->pct_buf,
++                          pdata->ct_buf_dma_addr);
++                      free_mem = FALSE;
++              }
++
++              break;
++
++      case RHAT:
++              /* Just go ahead and issue next command */
++              DEBUG13(printk("%s(%ld): RHAT rspcode=%x. going to call RPA.\n",
++                  __func__, ha->host_no, be16_to_cpu(pct->cmd_rsp_code));)
++              qla2x00_fdmi_rpa_intr(ha, pscsi_cmd, pdata->pct_buf,
++                  pdata->ct_buf_dma_addr);
++              free_mem = FALSE;
++              break;
++
++      case RPA:
++              DEBUG13(printk("%s(%ld): got RPA rspcode=%x.\n",
++                  __func__ ,ha->host_no, be16_to_cpu(pct->cmd_rsp_code));)
++
++              /* This is assumed to be last command issued in this
++               * chain. Proceed to free memory.
++               */
++              break;
++
++      default:
++              DEBUG13(printk("%s(%ld): cmd_code=%x not processed.\n",
++                  __func__ ,ha->host_no, cmd_code);)
++              break;
++      }
++
++      if (free_mem) {
++              DEBUG13(printk("%s(%ld): going to free mem.\n",
++                  __func__ ,ha->host_no);)
++              if (pdata->pct_buf != NULL) {
++                      pci_free_consistent(ha->pdev, sizeof(ct_fdmi_pkt_t),
++                          pdata->pct_buf, pdata->ct_buf_dma_addr);
++              }
++              qla2x00_fdmi_sc_request_dev_bufs_free(pscsi_cmd);
++              KMEM_FREE(pscsi_cmd, sizeof(Scsi_Cmnd));
++      }
++
++      DEBUG13(printk("%s(%ld): exiting.\n", __func__ ,ha->host_no);)
++}
++
++static __inline__ void
++qla2x00_fdmi_srb_init(scsi_qla_host_t *ha, srb_t *sp, uint16_t tov,
++    uint16_t ct_cmd_code)
++{
++      struct ct_info  *pdata;
++
++      /* setup sp for this command */
++      sp->ha = ha;
++      sp->flags = SRB_FDMI_CMD;
++      sp->fclun->lun = 0;
++      sp->fclun->flags = 0;
++      sp->lun_queue->fclun = sp->fclun;
++      sp->lun_queue->fclun->fcport->ha = ha;
++      sp->lun_queue->q_state = LUN_STATE_READY;
++      sp->lun_queue->q_lock = SPIN_LOCK_UNLOCKED;
++      sp->tgt_queue->ha = ha;
++      sp->tgt_queue->vis_port = sp->fclun->fcport;
++
++      /* init scsi_cmd */
++      CMD_SP(sp->cmd) = (void *)sp;
++      sp->cmd->host = ha->host;
++      sp->cmd->scsi_done = qla2x00_fdmi_done;
++      CMD_TIMEOUT(sp->cmd) = tov;
++      /* sr_buffer is used to save some data for callback time */
++      pdata = (struct ct_info *)sp->cmd->sc_request->sr_buffer;
++      pdata->ct_cmd = ct_cmd_code;
++}
++
++static __inline__ void
++qla2x00_init_req_q_ms_iocb(scsi_qla_host_t *ha, ms_iocb_entry_t *ms_pkt,
++    dma_addr_t ct_buf_dma, size_t req_buf_size, size_t rsp_buf_size,
++    uint8_t loop_id, uint16_t ctrl_flags, uint16_t tov)
++{
++      ms_pkt->entry_type = MS_IOCB_TYPE;
++      ms_pkt->entry_count = 1;
++
++      ms_pkt->dseg_req_address[0] = cpu_to_le32(LSD(ct_buf_dma));
++      ms_pkt->dseg_req_address[1] = cpu_to_le32(MSD(ct_buf_dma));
++
++      ms_pkt->dseg_rsp_address[0] = cpu_to_le32(LSD(ct_buf_dma));
++      ms_pkt->dseg_rsp_address[1] = cpu_to_le32(MSD(ct_buf_dma));
++
++#if defined(EXTENDED_IDS)
++      ms_pkt->loop_id = __constant_cpu_to_le16(loop_id);
++#else
++      ms_pkt->loop_id = loop_id;
++#endif
++      ms_pkt->control_flags = __constant_cpu_to_le16(ctrl_flags);
++      ms_pkt->timeout = __constant_cpu_to_le16(tov);
++      ms_pkt->cmd_dsd_count = __constant_cpu_to_le16(1);
++      ms_pkt->total_dsd_count = __constant_cpu_to_le16(2);
++      ms_pkt->rsp_bytecount = cpu_to_le32(rsp_buf_size);
++      ms_pkt->req_bytecount = cpu_to_le32(req_buf_size);
++      ms_pkt->dseg_req_length = ms_pkt->req_bytecount;
++      ms_pkt->dseg_rsp_length = ms_pkt->rsp_bytecount;
++}
++
++/*
++ * qla2x00_fdmi_register_intr
++ *    Uses request queue iocb to perform fdmi registration
++ *    functions.  If functions cannot be performed or returned
++ *    error, just return without error, since this is not a critical
++ *    function that must succeed.
++ *    It is assumed the driver has already login to management svr.
++ *
++ * Input:
++ *    ha:     adapter state pointer.
++ *
++ * Returns:
++ *    void
++ *
++ * Context:
++ *    Kernel context.
++ */
++void
++qla2x00_fdmi_register_intr(scsi_qla_host_t *ha)
++{
++      DEBUG13(printk("%s(%ld): entered.\n", __func__, ha->host_no);)
++
++      /* start the chain of fdmi calls with RHBA */
++      qla2x00_fdmi_rhba_intr(ha);
++
++      DEBUG13(printk("%s(%ld): exiting\n", __func__, ha->host_no);)
++}
++
++static __inline__ int
++qla2x00_fdmi_ctiu_mem_alloc(scsi_qla_host_t *ha, size_t buf_size)
++{
++      int     rval = QL_STATUS_SUCCESS;
++
++      /* Get consistent memory allocated for CT commands */
++      if (ha->ct_iu == NULL) {
++              ha->ct_iu = pci_alloc_consistent(ha->pdev,
++                  buf_size, &ha->ct_iu_dma);
++      }
++
++      if (ha->ct_iu == NULL) {
++               /* error */
++              DEBUG2_13(printk(KERN_WARNING
++                  "%s(%ld): ct_iu Memory Allocation failed.\n",
++                  __func__, ha->host_no);)
++              return (QL_STATUS_ERROR);
++      }
++
++      memset(ha->ct_iu, 0, buf_size);
++
++      return (rval);
++}
++
++static __inline__ void
++qla2x00_fdmi_ctiu_mem_free(scsi_qla_host_t *ha, size_t buf_size)
++{
++      if (ha->ct_iu != NULL) {
++              pci_free_consistent(ha->pdev,
++                  buf_size, ha->ct_iu, ha->ct_iu_dma);
++              ha->ct_iu = NULL;
++      }
++}
++
++static __inline__ ms_iocb_entry_t *
++qla2x00_alloc_ms_mbx_iocb(scsi_qla_host_t *ha)
++{
++      ms_iocb_entry_t *ms_pkt;
++
++      if (ha->ms_iocb == NULL){
++              ha->ms_iocb = pci_alloc_consistent(ha->pdev,
++                  sizeof(ms_iocb_entry_t), &ha->ms_iocb_dma);
++      }
++
++      if (ha->ms_iocb == NULL){
++               /* error */
++              printk(KERN_WARNING
++                  "%s(%ld): msiocb Memory Allocation failed.\n",
++                  __func__, ha->host_no);
++              return (NULL);
++      }
++      memset(ha->ms_iocb, 0, sizeof(ms_iocb_entry_t));
++ 
++      /* Get consistent memory allocated for CT commands */
++      if (qla2x00_fdmi_ctiu_mem_alloc(ha, sizeof(ct_fdmi_pkt_t)) !=
++          QL_STATUS_SUCCESS) {
++              printk(KERN_WARNING
++                  "%s(%ld): ct_iu Memory Allocation failed.\n",
++                  __func__, ha->host_no);
++              qla2x00_free_ms_mbx_iocb(ha);
++              return (NULL);
++      }
++
++      /* Initialize some common fields */
++      ms_pkt = ha->ms_iocb;
++
++      ms_pkt->entry_type = MS_IOCB_TYPE;
++      ms_pkt->entry_count = 1;
++
++      ms_pkt->dseg_req_address[0] = cpu_to_le32(LSD(ha->ct_iu_dma));
++      ms_pkt->dseg_req_address[1] = cpu_to_le32(MSD(ha->ct_iu_dma));
++
++      ms_pkt->dseg_rsp_address[0] = cpu_to_le32(LSD(ha->ct_iu_dma));
++      ms_pkt->dseg_rsp_address[1] = cpu_to_le32(MSD(ha->ct_iu_dma));
++
++      return (ms_pkt);
++}
++
++static __inline__ void
++qla2x00_free_ms_mbx_iocb(scsi_qla_host_t *ha)
++{
++      if (ha->ms_iocb != NULL){
++              pci_free_consistent(ha->pdev,
++                  sizeof(ms_iocb_entry_t), ha->ms_iocb, ha->ms_iocb_dma);
++              ha->ms_iocb = NULL;
++      }
++
++      qla2x00_fdmi_ctiu_mem_free(ha, sizeof(ct_fdmi_pkt_t));
++
++}
++
++static __inline__ void
++qla2x00_init_ms_mbx_iocb(scsi_qla_host_t *ha, uint32_t req_size,
++    uint32_t rsp_size, uint16_t loop_id, uint16_t ctrl_flags, uint16_t tov)
++{
++      ms_iocb_entry_t *ms_pkt;
++
++      ms_pkt = ha->ms_iocb;
++
++#if defined(EXTENDED_IDS)
++      ms_pkt->loop_id = __constant_cpu_to_le16(loop_id);
++#else
++      ms_pkt->loop_id = loop_id;
++#endif
++      ms_pkt->control_flags = __constant_cpu_to_le16(ctrl_flags);
++      ms_pkt->timeout = __constant_cpu_to_le16(tov);
++      ms_pkt->cmd_dsd_count = __constant_cpu_to_le16(1);
++      ms_pkt->total_dsd_count = __constant_cpu_to_le16(2);
++      ms_pkt->rsp_bytecount = cpu_to_le32(rsp_size);
++      ms_pkt->req_bytecount = cpu_to_le32(req_size);
++      ms_pkt->dseg_req_length = ms_pkt->req_bytecount;
++      ms_pkt->dseg_rsp_length = ms_pkt->rsp_bytecount;
++
++}
++
++static __inline__ void
++qla2x00_fdmi_setup_hbaattr(scsi_qla_host_t *ha, hba_attr_t *attr)
++{
++      char            tmp_str[80];
++      uint32_t        tmp_sn;
++      qla_boards_t    *bdp;
++
++      attr->count = __constant_cpu_to_be32(HBA_ATTR_COUNT);
++
++      /* node name */
++      attr->nn.type = __constant_cpu_to_be16(T_NODE_NAME);
++      attr->nn.len = cpu_to_be16(sizeof(hba_nn_attr_t));
++      memcpy(attr->nn.value, ha->init_cb->node_name, WWN_SIZE);
++
++      DEBUG13(printk("%s(%ld): NODENAME=%02x%02x%02x%02x%02x"
++          "%02x%02x%02x.\n",
++          __func__, ha->host_no, attr->nn.value[0],
++          attr->nn.value[1], attr->nn.value[2], attr->nn.value[3],
++          attr->nn.value[4], attr->nn.value[5], attr->nn.value[6],
++          attr->nn.value[7]);)
++
++      /* company name */
++      attr->man.type = __constant_cpu_to_be16(T_MANUFACTURER);
++      attr->man.len = cpu_to_be16(sizeof(hba_man_attr_t));
++      sprintf((char *)attr->man.value, QLOGIC_COMPANY_NAME);
++
++      DEBUG13(printk("%s(%ld): MANUFACTURER=%s.\n",
++          __func__, ha->host_no, attr->man.value);)
++
++      /* serial number */
++      attr->sn.type = __constant_cpu_to_be16(T_SERIAL_NUMBER);
++      attr->sn.len = cpu_to_be16(sizeof(hba_sn_attr_t));
++      tmp_sn = ((ha->serial0 & 0x1f) << 16) | (ha->serial2 << 8) | 
++          ha->serial1;
++      sprintf((char *)attr->sn.value, "%c%05d",
++          ('A' + tmp_sn/100000), (tmp_sn%100000));
++
++      DEBUG13(printk("%s(%ld): SERIALNO=%s.\n",
++          __func__, ha->host_no, attr->sn.value);)
++
++      /* model name */
++      attr->mod.type = __constant_cpu_to_be16(T_MODEL);
++      attr->mod.len = cpu_to_be16(sizeof(hba_mod_attr_t));
++      strncpy((char *)attr->mod.value, ha->model_number, NVRAM_MODEL_SIZE);
++
++      DEBUG13(printk("%s(%ld): MODEL_NAME=%s.\n",
++          __func__, ha->host_no, attr->mod.value);)
++
++      /* model description */
++      attr->mod_desc.type = __constant_cpu_to_be16(T_MODEL_DESCRIPTION);
++      attr->mod_desc.len = cpu_to_be16(sizeof(hba_mod_desc_attr_t));
++      strncpy((char *)attr->mod_desc.value, ha->model_desc, 80);
++
++      DEBUG13(printk("%s(%ld): MODEL_DESC=%s.\n",
++          __func__, ha->host_no, attr->mod_desc.value);)
++
++      /* hardware version */
++      attr->hv.type = __constant_cpu_to_be16(T_HARDWARE_VERSION);
++      attr->hv.len = cpu_to_be16(sizeof(hba_hv_attr_t));
++      /* hw_id_version contains either valid hw_id for 2312 and later NVRAM
++       * or NULLs.
++       */
++      strncpy((char *)attr->hv.value, ha->hw_id_version, NVRAM_HW_ID_SIZE);
++
++      DEBUG13(printk("%s(%ld): HARDWAREVER=%s.\n",
++          __func__, ha->host_no, attr->hv.value);)
++
++      /* driver version */
++      attr->dv.type = __constant_cpu_to_be16(T_DRIVER_VERSION);
++      attr->dv.len = cpu_to_be16(sizeof(hba_dv_attr_t));
++      strncpy((char *)attr->dv.value, qla2x00_version_str,
++          QLA_DRVR_VERSION_LEN);
++
++      DEBUG13(printk("%s(%ld): DRIVERVER=%s.\n",
++          __func__, ha->host_no, qla2x00_version_str);)
++
++      /* opt rom version */
++      attr->or.type = __constant_cpu_to_be16(T_OPTION_ROM_VERSION);
++      attr->or.len = cpu_to_be16(sizeof(hba_or_attr_t));
++      sprintf((char *)attr->or.value, "%d.%d", ha->bios_revision[1],
++          ha->bios_revision[0]);
++
++      DEBUG13(printk("%s(%ld): OPTROMVER=%s.\n",
++          __func__, ha->host_no, attr->or.value);)
++
++      /* firmware version */
++      attr->fw.type = __constant_cpu_to_be16(T_FIRMWARE_VERSION);
++      attr->fw.len = cpu_to_be16(sizeof(hba_fw_attr_t));
++      bdp = &QLBoardTbl_fc[ha->devnum];
++      sprintf((char *)attr->fw.value, "%2d.%02d.%02d", bdp->fwver[0],
++          bdp->fwver[1], bdp->fwver[2]);
++
++      DEBUG13(printk("%s(%ld): FIRMWAREVER=%s.\n",
++          __func__, ha->host_no, attr->fw.value);)
++
++      /* OS name/version */
++      attr->os.type = __constant_cpu_to_be16(T_OS_NAME_AND_VERSION);
++      attr->os.len = cpu_to_be16(sizeof(hba_os_attr_t));
++      sprintf(tmp_str, "%s %s", system_utsname.sysname,
++          system_utsname.release);
++      strncpy((char *)attr->os.value, tmp_str, 16);
++
++      DEBUG13(printk("%s(%ld): OSNAME=%s.\n",
++          __func__, ha->host_no, tmp_str);)
++}
++
++static __inline__ void
++qla2x00_fdmi_setup_rhbainfo(scsi_qla_host_t *ha, ct_iu_rhba_t *ct)
++{
++      memcpy(ct->hba_identifier, ha->init_cb->port_name, WWN_SIZE);
++      ct->plist.num_ports = __constant_cpu_to_be32(1);
++      memcpy(ct->plist.port_entry, ha->init_cb->port_name, WWN_SIZE);
++
++      DEBUG13(printk("%s(%ld): RHBA identifier=%02x%02x%02x%02x%02x"
++          "%02x%02x%02x.\n",
++          __func__, ha->host_no, ct->hba_identifier[0],
++          ct->hba_identifier[1], ct->hba_identifier[2], ct->hba_identifier[3],
++          ct->hba_identifier[4], ct->hba_identifier[5], ct->hba_identifier[6],
++          ct->hba_identifier[7]);)
++
++      qla2x00_fdmi_setup_hbaattr(ha, &ct->attr);
++}
++
++static __inline__ void
++qla2x00_fdmi_setup_rhatinfo(scsi_qla_host_t *ha, ct_iu_rhat_t *ct)
++{
++      memcpy(ct->hba_identifier, ha->init_cb->port_name, WWN_SIZE);
++
++      DEBUG13(printk("%s(%ld): RHAT identifier=%02x%02x%02x%02x%02x"
++          "%02x%02x%02x.\n",
++          __func__, ha->host_no, ct->hba_identifier[0],
++          ct->hba_identifier[1], ct->hba_identifier[2], ct->hba_identifier[3],
++          ct->hba_identifier[4], ct->hba_identifier[5], ct->hba_identifier[6],
++          ct->hba_identifier[7]);)
++
++      qla2x00_fdmi_setup_hbaattr(ha, &ct->attr);
++}
++
++/*
++ * qla2x00_fdmi_rhba
++ *    FDMI register HBA via execute IOCB mbx cmd.
++ *
++ * Input:
++ *    ha:             adapter state pointer.
++ *    pret_stat:      local fdmi return status pointer.
++ *
++ * Returns:
++ *    qla2x00 local function return status code.
++ *
++ * Context:
++ *    Kernel context.
++ */
++STATIC int
++qla2x00_fdmi_rhba(scsi_qla_host_t *ha, uint8_t *pret_stat)
++{
++      int             rval;
++      ct_iu_rhba_t    *ct;
++
++
++      DEBUG13(printk("%s(%ld): entered\n", __func__, ha->host_no);)
++
++      /* init */
++      *pret_stat = FDMI_STAT_OK;
++
++      /* Prepare common MS IOCB- Request/Response size adjusted. tov same
++       * as mailbox tov.
++       */
++      qla2x00_init_ms_mbx_iocb(ha, sizeof(ct_iu_rhba_t),
++          sizeof(ct_iu_preamble_t), MANAGEMENT_SERVER,
++          (CF_READ | CF_HEAD_TAG), 60 - 1);
++
++      DEBUG13(printk("%s(%ld): done msiocb init.\n", __func__, ha->host_no);)
++
++      /* Prepare CT request */
++      memset(ha->ct_iu, 0, sizeof(ct_fdmi_pkt_t));
++      ct = (ct_iu_rhba_t *)ha->ct_iu;
++
++      /* Setup CT-IU Basic preamble. */
++      QLA_INIT_FDMI_CTIU_HDR(ha, ct->hdr);
++      ct->hdr.cmd_rsp_code = __constant_cpu_to_be16(RHBA);
++
++      /* Setup register hba payload. */
++      qla2x00_fdmi_setup_rhbainfo(ha, ct);
++
++      DEBUG13(printk("%s(%ld): done ct init. ct buf dump:\n",
++          __func__, ha->host_no);)
++      DEBUG13(qla2x00_dump_buffer((uint8_t *)ct,
++          sizeof(ct_iu_rhba_t));)
++      DEBUG13(printk("msiocb buf dump:.\n");)
++      DEBUG13(qla2x00_dump_buffer((uint8_t *)ha->ms_iocb,
++          sizeof(ms_iocb_entry_t));)
++
++      /* Go issue command and wait for completion. */
++      /* Execute MS IOCB */
++      rval = qla2x00_issue_iocb(ha, ha->ms_iocb, ha->ms_iocb_dma,
++          sizeof(ms_iocb_entry_t));
++      if (rval != QL_STATUS_SUCCESS) {
++              /*EMPTY*/
++              DEBUG2_13(printk("%s(%ld): RHBA issue IOCB failed (%d).\n",
++                  __func__, ha->host_no, rval);)
++              *pret_stat = FDMI_STAT_ERR;
++              rval = QL_STATUS_ERROR;
++      } else if (ct->hdr.cmd_rsp_code !=
++          __constant_cpu_to_be16(CT_ACCEPT_RESPONSE)) {
++              DEBUG2_13(printk("%s(%ld): RHBA failed, rejected "
++                  "request, rhba_rsp:\n", __func__, ha->host_no);)
++              DEBUG2_13(qla2x00_dump_buffer((uint8_t *)&ct->hdr,
++                  sizeof(ct_iu_preamble_t));)
++
++              if ((ct->hdr.reason == FDMI_REASON_CANNOT_PERFORM) &&
++                  (ct->hdr.explanation == FDMI_EXPL_HBA_ALREADY_REGISTERED)) {
++                      *pret_stat = FDMI_STAT_ALREADY_REGISTERED;
++                      DEBUG2_13(printk("%s(%ld): HBA already registered.\n",
++                          __func__, ha->host_no);)
++              }
++
++              rval = QL_STATUS_ERROR;
++      }
++
++      DEBUG13(printk("%s(%ld): exiting.\n", __func__ ,ha->host_no);)
++
++      return (rval);
++}
++
++/*
++ * qla2x00_fdmi_ghat
++ *    FDMI get HBA attributes via execute IOCB mbx cmd.
++ *
++ * Input:
++ *    ha:             adapter state pointer.
++ *    prsp_buf:       local ghat response buffer pointer.
++ *    pret_stat:      local fdmi return status pointer.
++ *
++ * Returns:
++ *    qla2x00 local function return status code.
++ *
++ * Context:
++ *    Kernel context.
++ */
++STATIC int
++qla2x00_fdmi_ghat(scsi_qla_host_t *ha, ct_iu_ghat_rsp_t *prsp_buf,
++    uint8_t *pret_stat)
++{
++      int                     rval;
++      ct_iu_ghat_req_t        *ct_req;
++      ct_iu_ghat_rsp_t        *ct_rsp;
++      ct_fdmi_pkt_t           *ctbuf;
++
++      DEBUG13(printk("%s(%ld): entered\n", __func__, ha->host_no);)
++
++      /* init */
++      *pret_stat = FDMI_STAT_OK;
++
++      /* Prepare common MS IOCB- Request/Response size adjusted. tov
++       * same as mailbox tov.
++       */
++      qla2x00_init_ms_mbx_iocb(ha, sizeof(ct_iu_ghat_req_t),
++          sizeof(ct_iu_ghat_rsp_t), MANAGEMENT_SERVER,
++          (CF_READ | CF_HEAD_TAG), 60 - 1);
++
++      DEBUG13(printk("%s(%ld): done msiocb init.\n", __func__, ha->host_no);)
++
++      /* Prepare CT request */
++      memset(ha->ct_iu, 0, sizeof(ct_fdmi_pkt_t));
++      ctbuf = (ct_fdmi_pkt_t *)ha->ct_iu;
++      ct_req = (ct_iu_ghat_req_t *)ha->ct_iu;
++      ct_rsp = (ct_iu_ghat_rsp_t *)ha->ct_iu;
++
++      /* Setup CT-IU Basic preamble. */
++      QLA_INIT_FDMI_CTIU_HDR(ha, ct_req->hdr);
++      ct_req->hdr.cmd_rsp_code = __constant_cpu_to_be16(GHAT);
++
++      /* Setup get hba attrib payload. */
++      memcpy(ct_req->hba_identifier, ha->init_cb->port_name, WWN_SIZE);
++
++      DEBUG13(printk("%s(%ld): done ct init. ct buf dump:\n",
++          __func__, ha->host_no);)
++      DEBUG13(qla2x00_dump_buffer((uint8_t *)ct_req,
++          sizeof(ct_fdmi_pkt_t));)
++      DEBUG13(printk("msiocb buf dump:.\n");)
++      DEBUG13(qla2x00_dump_buffer((uint8_t *)ha->ms_iocb,
++          sizeof(ms_iocb_entry_t));)
++
++      /* Go issue command and wait for completion. */
++      /* Execute MS IOCB */
++      rval = qla2x00_issue_iocb(ha, ha->ms_iocb, ha->ms_iocb_dma,
++          sizeof(ms_iocb_entry_t));
++      if (rval != QL_STATUS_SUCCESS || ct_rsp->hdr.cmd_rsp_code !=
++          __constant_cpu_to_be16(CT_ACCEPT_RESPONSE)) {
++              DEBUG2_13(printk("%s(%ld): GHAT IOCB failed=%d. rspcode=%x, "
++                  "ct rspbuf:\n",
++                  __func__, ha->host_no, rval,
++                  be16_to_cpu(ct_rsp->hdr.cmd_rsp_code));)
++              DEBUG2_13(qla2x00_dump_buffer((uint8_t *)ct_rsp,
++                  sizeof(ct_iu_ghat_rsp_t));)
++
++              *pret_stat = FDMI_STAT_ERR;
++              rval = QL_STATUS_ERROR;
++      } else {
++              /* copy response */
++              memcpy(prsp_buf, ct_rsp, sizeof(ct_iu_ghat_rsp_t));
++      }
++
++      DEBUG13(printk("%s(%ld): exiting.\n", __func__ ,ha->host_no);)
++
++      return (rval);
++}
++
++static __inline__ void
++qla2x00_fdmi_setup_rpainfo(scsi_qla_host_t *ha, ct_iu_rpa_t *ct)
++{
++      /* Setup register port payload. */
++      memcpy(ct->portname, ha->init_cb->port_name, WWN_SIZE);
++
++      ct->attr.count = __constant_cpu_to_be32(PORT_ATTR_COUNT);
++
++      /* FC4 types */
++      ct->attr.fc4_types.type = __constant_cpu_to_be16(T_FC4_TYPES);
++      ct->attr.fc4_types.len = cpu_to_be16(sizeof(port_fc4_attr_t));
++#if defined(FC_IP_SUPPORT)
++      if (ha->flags.enable_ip)
++              ct->attr.fc4_types.value[3] = 0x20; /* type 5 for IP */
++#endif
++      ct->attr.fc4_types.value[2] = 0x01;     /* SCSI - FCP */
++
++      DEBUG13(printk("%s(%ld): register fc4types=%02x %02x.\n",
++          __func__, ha->host_no, ct->attr.fc4_types.value[3],
++          ct->attr.fc4_types.value[2]);)
++
++      /* Supported speed */
++      ct->attr.sup_speed.type = __constant_cpu_to_be16(T_SUPPORT_SPEED);
++      ct->attr.sup_speed.len = cpu_to_be16(sizeof(port_speed_attr_t));
++#if defined(ISP2100) || defined (ISP2200)
++      ct->attr.sup_speed.value = __constant_cpu_to_be32(1);   /* 1 Gig */
++#elif defined(ISP2300)
++      ct->attr.sup_speed.value = __constant_cpu_to_be32(2);   /* 2 Gig */
++#endif
++
++      DEBUG13(printk("%s(%ld): register SUPPSPEED=%x.\n",
++          __func__, ha->host_no, ct->attr.sup_speed.value);)
++
++      /* Current speed */
++      ct->attr.cur_speed.type = __constant_cpu_to_be16(T_CURRENT_SPEED);
++      ct->attr.cur_speed.len = cpu_to_be16(sizeof(port_speed_attr_t));
++      switch (ha->current_speed) {
++      case EXT_DEF_PORTSPEED_1GBIT:
++              ct->attr.cur_speed.value = __constant_cpu_to_be32(1);
++              break;
++      case EXT_DEF_PORTSPEED_2GBIT:
++              ct->attr.cur_speed.value = __constant_cpu_to_be32(2);
++              break;
++      }
++
++      DEBUG13(printk("%s(%ld): register CURRSPEED=%x.\n",
++          __func__, ha->host_no, ct->attr.cur_speed.value);)
++
++      /* Max frame size */
++      ct->attr.max_fsize.type = __constant_cpu_to_be16(T_MAX_FRAME_SIZE);
++      ct->attr.max_fsize.len = cpu_to_be16(sizeof(port_frame_attr_t));
++      ct->attr.max_fsize.value =
++          cpu_to_be32((uint32_t)ha->init_cb->frame_length);
++
++      DEBUG13(printk("%s(%ld): register MAXFSIZE=%d.\n",
++          __func__, ha->host_no, ct->attr.max_fsize.value);)
++
++      /* OS device name */
++      ct->attr.os_dev_name.type = __constant_cpu_to_be16(T_OS_DEVICE_NAME);
++      ct->attr.os_dev_name.len = cpu_to_be16(sizeof(port_os_attr_t));
++      /* register same string used/returned by SNIA HBA API */
++#if defined(ISP2100)
++      sprintf((char *)ct->attr.os_dev_name.value, "/proc/scsi/qla2100/%ld",
++          ha->host_no);
++#elif defined(ISP2200)
++      sprintf((char *)ct->attr.os_dev_name.value, "/proc/scsi/qla2200/%ld",
++          ha->host_no);
++#elif defined(ISP2300)
++      sprintf((char *)ct->attr.os_dev_name.value, "/proc/scsi/qla2300/%ld",
++          ha->host_no);
++#endif
++      DEBUG13(printk("%s(%ld): register OSDEVNAME=%s.\n",
++          __func__, ha->host_no, ct->attr.os_dev_name.value);)
++
++      /* Host name */
++      ct->attr.host_name.type = __constant_cpu_to_be16(T_HOST_NAME);
++      ct->attr.host_name.len = cpu_to_be16(sizeof(port_host_name_attr_t));
++      strcpy((char *)ct->attr.host_name.value, system_utsname.nodename);
++
++      DEBUG13(printk("%s(%ld): register HOSTNAME=%s.\n",
++          __func__, ha->host_no, ct->attr.host_name.value);)
++}
++
++/*
++ * qla2x00_fdmi_rpa
++ *    FDMI register port attributes via execute IOCB mbx cmd.
++ *
++ * Input:
++ *    ha:             adapter state pointer.
++ *    pret_stat:      local fdmi return status pointer.
++ *
++ * Returns:
++ *    qla2x00 local function return status code.
++ *
++ * Context:
++ *    Kernel context.
++ */
++STATIC int
++qla2x00_fdmi_rpa(scsi_qla_host_t *ha, uint8_t *pret_stat)
++{
++      int             rval;
++      ct_iu_rpa_t     *ct;
++
++      DEBUG13(printk("%s(%ld): entered\n", __func__, ha->host_no);)
++
++      /* init */
++      *pret_stat = FDMI_STAT_OK;
++
++      /* Prepare common MS IOCB- Request/Response size adjusted */
++      /* tov same as mbx tov */
++      qla2x00_init_ms_mbx_iocb(ha, sizeof(ct_iu_rpa_t),
++          sizeof(ct_iu_preamble_t), MANAGEMENT_SERVER,
++          (CF_READ | CF_HEAD_TAG), 60 - 1);
++
++      DEBUG13(printk("%s(%ld): done msiocb init.\n", __func__, ha->host_no);)
++
++      /* Prepare CT request */
++      memset(ha->ct_iu, 0, sizeof(ct_fdmi_pkt_t));
++      ct = (ct_iu_rpa_t *)ha->ct_iu;
++
++      /* Setup CT-IU Basic preamble. */
++      QLA_INIT_FDMI_CTIU_HDR(ha, ct->hdr);
++      ct->hdr.cmd_rsp_code = __constant_cpu_to_be16(RPA);
++
++      /* Setup register port attribute payload. */
++      qla2x00_fdmi_setup_rpainfo(ha, ct);
++
++      DEBUG13(printk("%s(%ld): done ct init. ct buf dump:\n",
++          __func__, ha->host_no);)
++      DEBUG13(qla2x00_dump_buffer((uint8_t *)ct,
++          sizeof(ct_iu_rpa_t));)
++      DEBUG13(printk("msiocb buf dump:.\n");)
++      DEBUG13(qla2x00_dump_buffer((uint8_t *)ha->ms_iocb,
++          sizeof(ms_iocb_entry_t));)
++
++      /* Go issue command and wait for completion. */
++      /* Execute MS IOCB */
++      rval = qla2x00_issue_iocb(ha, ha->ms_iocb, ha->ms_iocb_dma,
++          sizeof(ms_iocb_entry_t));
++      if (rval != QL_STATUS_SUCCESS) {
++              DEBUG2_13(printk("%s(%ld): RPA issue IOCB failed (%d).\n",
++                  __func__, ha->host_no, rval);)
++              *pret_stat = FDMI_STAT_ERR;
++              rval = QL_STATUS_ERROR;
++      } else if (ct->hdr.cmd_rsp_code !=
++          __constant_cpu_to_be16(CT_ACCEPT_RESPONSE)) {
++
++              DEBUG2_13(printk("%s(%ld): RPA failed, rejected "
++                  "request, rhba_rsp:\n", __func__, ha->host_no);)
++              DEBUG2_13(qla2x00_dump_buffer((uint8_t *)&ct->hdr,
++                  sizeof(ct_iu_preamble_t));)
++              *pret_stat = FDMI_STAT_ERR;
++              rval = QL_STATUS_ERROR;
++      }
++
++      DEBUG13(printk("%s(%ld): exiting.\n", __func__ ,ha->host_no);)
++
++      return (rval);
++}
++
++/*
++ * qla2x00_fdmi_dhba
++ *    FDMI de-register HBA.
++ *
++ * Input:
++ *    ha:             adapter state pointer.
++ *
++ * Returns:
++ *    qla2x00 local function return status code.
++ *
++ * Context:
++ *    Kernel context.
++ */
++STATIC int
++qla2x00_fdmi_dhba(scsi_qla_host_t *ha, uint8_t *pret_stat)
++{
++      int             rval;
++      ct_iu_dhba_t    *ct;
++
++
++      DEBUG13(printk("%s(%ld): entered\n", __func__, ha->host_no);)
++
++      /* init */
++      *pret_stat = FDMI_STAT_OK;
++
++      /* Prepare common MS IOCB- Request/Response size adjusted. tov
++       * same as mbx tov.
++       */
++      qla2x00_init_ms_mbx_iocb(ha, sizeof(ct_iu_dhba_t),
++          sizeof(ct_iu_preamble_t), MANAGEMENT_SERVER,
++          (CF_HEAD_TAG), 60 - 1);
++
++      DEBUG13(printk("%s(%ld): done msiocb init.\n", __func__, ha->host_no);)
++
++      /* Prepare CT request */
++      memset(ha->ct_iu, 0, sizeof(ct_fdmi_pkt_t));
++      ct = (ct_iu_dhba_t *)ha->ct_iu;
++
++      /* Setup CT-IU Basic preamble. */
++      QLA_INIT_FDMI_CTIU_HDR(ha, ct->hdr);
++      ct->hdr.cmd_rsp_code = __constant_cpu_to_be16(DHBA);
++
++      /* Setup deregister hba payload. */
++      memcpy(ct->hba_portname, ha->init_cb->port_name, WWN_SIZE);
++
++      DEBUG13(printk("%s(%ld): done ct init.\n", __func__, ha->host_no);)
++
++      /* Go issue command and wait for completion. */
++      /* Execute MS IOCB */
++      rval = qla2x00_issue_iocb(ha, ha->ms_iocb, ha->ms_iocb_dma,
++          sizeof(ms_iocb_entry_t));
++      if (rval != QL_STATUS_SUCCESS) {
++              DEBUG2_13(printk("%s(%ld): DHBA issue IOCB failed (%d).\n",
++                  __func__, ha->host_no, rval);)
++              *pret_stat = FDMI_STAT_ERR;
++              rval = QL_STATUS_ERROR;
++      } else if (ct->hdr.cmd_rsp_code !=
++          __constant_cpu_to_be16(CT_ACCEPT_RESPONSE)) {
++
++              DEBUG2_13(printk("%s(%ld): DHBA failed, rejected "
++                  "request, dhba_rsp:\n", __func__, ha->host_no);)
++              DEBUG2_13(qla2x00_dump_buffer((uint8_t *)&ct->hdr,
++                  sizeof(ct_iu_preamble_t));)
++              *pret_stat = FDMI_STAT_ERR;
++              rval = QL_STATUS_ERROR;
++      }
++
++      DEBUG13(printk("%s(%ld): exiting.\n", __func__ ,ha->host_no);)
++
++      return (rval);
++}
++
++/*
++ * qla2x00_fdmi_rhba_intr
++ *    FDMI register HBA sent via regular request queue.
++ *
++ * Input:
++ *    ha:             adapter state pointer.
++ *    fcport:         device context pointer.
++ *
++ * Returns:
++ *    qla2x00 local function return status code.
++ *
++ * Context:
++ *    Kernel context.
++ */
++STATIC int
++qla2x00_fdmi_rhba_intr(scsi_qla_host_t *ha)
++{
++      int                     rval = QL_STATUS_SUCCESS;
++      uint16_t                tov;
++      unsigned long           cpu_flags = 0;
++      struct ct_info          *pdata;
++      ct_iu_rhba_t            *ct;
++      ms_iocb_entry_t         *pkt;
++      srb_t                   *sp;
++
++      DEBUG13(printk("%s(%ld): entered\n", __func__, ha->host_no);)
++
++      if ((rval = qla2x00_fdmi_cmnd_srb_alloc(ha, &sp))){
++              DEBUG2_13(printk("%s(%ld): cmd_srb_alloc failed.\n",
++                  __func__, ha->host_no);)
++              return (rval);
++      }
++
++      tov = ha->login_timeout*2;
++
++      DEBUG13(printk("%s(%ld): going to srb_init\n", __func__, ha->host_no);)
++
++      qla2x00_fdmi_srb_init(ha, sp, tov, __constant_cpu_to_be16(RHBA));
++
++      DEBUG13(printk("%s(%ld): done srb_init\n", __func__, ha->host_no);)
++
++      pdata = (struct ct_info *)sp->cmd->sc_request->sr_buffer;
++      ct = (ct_iu_rhba_t *)pdata->pct_buf;
++
++      /* Setup CT-IU Basic preamble. */
++      QLA_INIT_FDMI_CTIU_HDR(ha, ct->hdr);
++      ct->hdr.cmd_rsp_code = pdata->ct_cmd;
++
++      /* Setup register hba payload. */
++      qla2x00_fdmi_setup_rhbainfo(ha, ct);
++
++      DEBUG13(printk("%s(%ld): done setup_rhbainfo\n", __func__, ha->host_no);)
++
++      /* get spin lock for this operation */
++      spin_lock_irqsave(&ha->hardware_lock, cpu_flags);
++
++      /* Get MS request IOCB from request queue. */
++      pkt = (ms_iocb_entry_t *)qla2x00_ms_req_pkt(ha, sp);
++      if (pkt == NULL) {
++              /* release spin lock and return error. */
++              DEBUG2_13(printk("%s(%ld): no pkt. going to unlock "
++                  "and free mem.\n", __func__, ha->host_no);)
++
++              spin_unlock_irqrestore(&ha->hardware_lock, cpu_flags);
++
++              qla2x00_fdmi_cmnd_srb_free(ha, sp);
++
++              DEBUG2_13(printk("%s(%ld): MSIOCB - could not get "
++                  "Request Packet.\n", __func__, ha->host_no);)
++
++              return (QL_STATUS_RESOURCE_ERROR);
++      }
++
++      DEBUG13(printk(KERN_INFO "%s(%ld): going to init_req_q_msiocb\n",
++          __func__, ha->host_no);)
++      qla2x00_init_req_q_ms_iocb(ha, pkt, pdata->ct_buf_dma_addr,
++          sizeof(ct_iu_rhba_t), sizeof(ct_iu_preamble_t), MANAGEMENT_SERVER,
++          0, tov);
++
++      /* Issue command to ISP */
++      DEBUG13(printk("%s(%ld): going to call isp_cmd.\n",
++          __func__, ha->host_no);)
++
++      qla2x00_isp_cmd(ha);
++
++      DEBUG13(printk("%s(%ld): going to add timer.\n",
++          __func__, ha->host_no);)
++
++      qla2x00_add_timer_to_cmd(sp, tov + 2);
++
++      spin_unlock_irqrestore(&ha->hardware_lock, cpu_flags);
++
++      DEBUG13(printk("%s(%ld): exiting\n", __func__, ha->host_no);)
++
++      return (rval);
++}
++
++STATIC int
++qla2x00_fdmi_rhat_intr(scsi_qla_host_t *ha, Scsi_Cmnd *pscsi_cmd, void *pct_buf,
++    dma_addr_t ct_buf_dma_addr)
++{
++      int                     rval = QL_STATUS_SUCCESS;
++      uint16_t                tov;
++      unsigned long           cpu_flags = 0;
++      struct ct_info          *pdata;
++      ct_iu_rhat_t            *cth;
++      ms_iocb_entry_t         *pkt;
++      srb_t                   *sp;
++
++      DEBUG13(printk("%s(%ld): entered\n", __func__, ha->host_no);)
++
++      /* Allocate SRB block. */
++      if ((sp = qla2x00_get_new_sp(ha)) == NULL) {
++
++              DEBUG2_13(printk("%s(%ld): ERROR cannot alloc sp.\n",
++                  __func__, ha->host_no);)
++
++              return (QL_STATUS_RESOURCE_ERROR);
++      }
++
++      DEBUG13(printk("%s(%ld): got sp\n", __func__, ha->host_no);)
++
++      if (qla2x00_fdmi_srb_tmpmem_alloc(ha, sp)) {
++              /* error */
++              atomic_set(&(sp)->ref_count, 0);
++              add_to_free_queue(ha, sp);
++              sp = NULL;
++
++              return (QL_STATUS_RESOURCE_ERROR);
++      }
++
++      sp->cmd = pscsi_cmd;
++
++      tov = ha->login_timeout*2;
++      qla2x00_fdmi_srb_init(ha, sp, tov, __constant_cpu_to_be16(RHAT));
++
++      DEBUG13(printk("%s(%ld): done srb_init\n", __func__, ha->host_no);)
++
++      pdata = (struct ct_info *)sp->cmd->sc_request->sr_buffer;
++      cth = (ct_iu_rhat_t *)pdata->pct_buf;
++
++      /* Setup CT-IU Basic preamble. */
++      QLA_INIT_FDMI_CTIU_HDR(ha, cth->hdr);
++      cth->hdr.cmd_rsp_code = pdata->ct_cmd;
++
++      /* Setup register hba payload. */
++      qla2x00_fdmi_setup_rhatinfo(ha, cth);
++
++      DEBUG13(printk("%s(%ld): done setup_rhatinfo\n", __func__, ha->host_no);)
++
++      /* get spin lock for this operation */
++      spin_lock_irqsave(&ha->hardware_lock, cpu_flags);
++
++      /* Get MS request IOCB from request queue. */
++      pkt = (ms_iocb_entry_t *)qla2x00_ms_req_pkt(ha, sp);
++      if (pkt == NULL) {
++              /* release spin lock and return error. */
++              spin_unlock_irqrestore(&ha->hardware_lock, cpu_flags);
++
++              qla2x00_fdmi_cmnd_srb_free(ha, sp);
++
++              DEBUG2_13(printk("%s(%ld): inst=%ld MSIOCB - could not get "
++                  "Request Packet.\n", __func__, ha->host_no, ha->instance);)
++              return (QL_STATUS_RESOURCE_ERROR);
++      }
++
++      qla2x00_init_req_q_ms_iocb(ha, pkt, pdata->ct_buf_dma_addr,
++          sizeof(ct_iu_rhat_t), sizeof(ct_iu_preamble_t), MANAGEMENT_SERVER,
++          0, tov);
++
++      DEBUG13(printk("%s(%ld): call isp_cmd.\n",
++          __func__, ha->host_no);)
++
++      qla2x00_isp_cmd(ha);
++
++      DEBUG13(printk("%s(%ld): going to add timer.\n",
++          __func__, ha->host_no);)
++
++      qla2x00_add_timer_to_cmd(sp, tov + 2);
++
++      spin_unlock_irqrestore(&ha->hardware_lock, cpu_flags);
++
++      DEBUG13(printk("%s(%ld): exiting\n", __func__, ha->host_no);)
++
++      return (rval);
++}
++
++STATIC int
++qla2x00_fdmi_rpa_intr(scsi_qla_host_t *ha, Scsi_Cmnd *pscsi_cmd, void *pct_buf,
++    dma_addr_t ct_buf_dma_addr)
++{
++      int                     rval = QL_STATUS_SUCCESS;
++      uint16_t                tov;
++      unsigned long           cpu_flags = 0;
++      struct ct_info          *pdata;
++      ct_iu_rpa_t             *ctp;
++      ms_iocb_entry_t         *pkt;
++      srb_t                   *sp;
++
++      DEBUG13(printk("%s(%ld): entered\n", __func__, ha->host_no);)
++
++      /* Allocate SRB block. */
++      if ((sp = qla2x00_get_new_sp(ha)) == NULL) {
++
++              DEBUG2_13(printk("%s(%ld): ERROR cannot alloc sp.\n",
++                  __func__, ha->host_no);)
++
++              return (QL_STATUS_RESOURCE_ERROR);
++      }
++
++      DEBUG13(printk("%s(%ld): got sp\n", __func__, ha->host_no);)
++
++      if (qla2x00_fdmi_srb_tmpmem_alloc(ha, sp)) {
++              /* error */
++              atomic_set(&(sp)->ref_count, 0);
++              add_to_free_queue(ha, sp);
++              sp = NULL;
++
++              return (QL_STATUS_RESOURCE_ERROR);
++      }
++
++      sp->cmd = pscsi_cmd;
++
++      tov = ha->login_timeout*2;
++      qla2x00_fdmi_srb_init(ha, sp, tov, __constant_cpu_to_be16(RPA));
++
++      DEBUG13(printk("%s(%ld): done srb_init\n", __func__, ha->host_no);)
++
++      pdata = (struct ct_info *)sp->cmd->sc_request->sr_buffer;
++      ctp = (ct_iu_rpa_t *)pdata->pct_buf;
++
++      /* Setup CT-IU Basic preamble. */
++      QLA_INIT_FDMI_CTIU_HDR(ha, ctp->hdr);
++      ctp->hdr.cmd_rsp_code = pdata->ct_cmd;
++
++      /* Setup register port attribute payload. */
++      qla2x00_fdmi_setup_rpainfo(ha, ctp);
++
++      DEBUG13(printk("%s(%ld): done setup_rpainfo\n", __func__, ha->host_no);)
++
++      /* get spin lock for this operation */
++      spin_lock_irqsave(&ha->hardware_lock, cpu_flags);
++
++      /* Get MS request IOCB from request queue. */
++      pkt = (ms_iocb_entry_t *)qla2x00_ms_req_pkt(ha, sp);
++      if (pkt == NULL) {
++              /* release spin lock and return error. */
++              spin_unlock_irqrestore(&ha->hardware_lock, cpu_flags);
++
++              qla2x00_fdmi_cmnd_srb_free(ha, sp);
++
++              DEBUG2_13(printk("%s(%ld): inst=%ld MSIOCB - could not get "
++                  "Request Packet.\n", __func__, ha->host_no, ha->instance);)
++              return (QL_STATUS_RESOURCE_ERROR);
++      }
++
++      qla2x00_init_req_q_ms_iocb(ha, pkt, pdata->ct_buf_dma_addr,
++          sizeof(ct_iu_rpa_t), sizeof(ct_iu_preamble_t), MANAGEMENT_SERVER,
++          0, tov);
++      DEBUG13(printk("%s(%ld): calling isp_cmd.\n",
++          __func__, ha->host_no);)
++
++      qla2x00_isp_cmd(ha);
++
++      DEBUG13(printk("%s(%ld): going to add timer.\n",
++          __func__, ha->host_no);)
++
++      qla2x00_add_timer_to_cmd(sp, tov + 2);
++
++      spin_unlock_irqrestore(&ha->hardware_lock, cpu_flags);
++
++      DEBUG13(printk("%s(%ld): exiting\n", __func__, ha->host_no);)
++
++      return (rval);
++}
++
++
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_gs.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_gs.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_gs.h     1969-12-31 16:00:00.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_gs.h  2004-04-22 19:42:21.000000000 -0700
+@@ -0,0 +1,369 @@
++/******************************************************************************
++ *                  QLOGIC LINUX SOFTWARE
++ *
++ * QLogic ISP2x00 device driver for Linux 2.4.x
++ * Copyright (C) 2003 QLogic Corporation
++ * (www.qlogic.com)
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2, or (at your option) any
++ * later version.
++ *
++ * This program is distributed in the hope that it will be useful, but
++ * WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * General Public License for more details.
++ *
++ ******************************************************************************/
++
++#ifndef _QLA_GS_H
++#define       _QLA_GS_H
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++
++/*
++ * FC-GS-4 definitions.
++ */
++#define       GS4_REVISION            0x01
++#define       GS_TYPE_MGMT_SERVER     0xFA
++#define       GS_TYPE_DIR_SERVER      0xFC
++#define GS_SUBTYPE_FDMI_HBA   0x10
++
++/* FDMI Command Codes. */
++#define       GRHL    0x100
++#define       GHAT    0x101
++#define       GRPL    0x102
++#define       GPAT    0x110
++#define       RHBA    0x200
++#define       RHAT    0x201
++#define       RPRT    0x210
++#define       RPA     0x211
++#define       DHBA    0x300
++#define       DHAT    0x301
++#define       DPRT    0x310
++#define       DPA     0x311
++
++/*
++ * CT information unit basic preamble.
++ */
++typedef struct {
++      uint8_t         revision;
++      uint8_t         in_id[3];
++      uint8_t         gs_type;
++      uint8_t         gs_subtype;
++      uint8_t         options;
++      uint8_t         reserved;
++      uint16_t        cmd_rsp_code;
++      uint16_t        max_resid_size;
++      uint8_t         fragment_id;
++      uint8_t         reason;
++      uint8_t         explanation;
++      uint8_t         vendor_unique;
++} ct_iu_preamble_t;
++
++#define FDMI_STAT_OK                  0
++#define FDMI_STAT_ERR                 1
++#define FDMI_STAT_ALREADY_REGISTERED  2
++
++#define FDMI_REASON_INVALID_CMD               0x01
++#define FDMI_REASON_INVALID_VERSION   0x02
++#define FDMI_REASON_LOGICAL_ERR               0x03
++#define FDMI_REASON_INVALID_CTIU_SIZE 0x04
++#define FDMI_REASON_LOGICAL_BUSY      0x05
++#define FDMI_REASON_PROTOCOL_ERR      0x07
++#define FDMI_REASON_CANNOT_PERFORM    0x09
++#define FDMI_REASON_NOT_SUPPORTED     0x0B
++#define FDMI_REASON_HARD_ENF_FAILED   0x0C
++
++#define FDMI_EXPL_NO_ADDITIONAL_EXPLANATION   0x00
++#define FDMI_EXPL_HBA_ALREADY_REGISTERED      0x10
++#define FDMI_EXPL_HBA_ATTR_NOT_REGISTERED     0x11
++#define FDMI_EXPL_HBA_ATTR_MULTI_SAME_TYPE    0x12
++#define FDMI_EXPL_INVALID_HBA_ATTR_LEN                0x13
++#define FDMI_EXPL_HBA_ATTR_NOT_PRESENT                0x14
++#define FDMI_EXPL_PORT_NOT_IN_PORT_LIST               0x15
++#define FDMI_EXPL_HBA_ID_NOT_IN_PORT_LIST     0x16
++#define FDMI_EXPL_PORT_ATTR_NOT_REGISTERED    0x20
++#define FDMI_EXPL_PORT_NOT_REGISTERED         0x21
++#define FDMI_EXPL_PORT_ATTR_MULTI_SAME_TYPE   0x22
++#define FDMI_EXPL_INVALID_PORT_ATTR_LEN               0x23
++
++/*
++ * HBA attribute types.
++ */
++#define       T_NODE_NAME                     1
++#define       T_MANUFACTURER                  2
++#define       T_SERIAL_NUMBER                 3
++#define       T_MODEL                         4
++#define       T_MODEL_DESCRIPTION             5
++#define       T_HARDWARE_VERSION              6
++#define       T_DRIVER_VERSION                7
++#define       T_OPTION_ROM_VERSION            8
++#define       T_FIRMWARE_VERSION              9
++#define       T_OS_NAME_AND_VERSION           0xa
++#define       T_MAXIMUM_CT_PAYLOAD_LENGTH     0xb
++
++typedef struct {
++      uint16_t                type;
++      uint16_t                len;
++      uint8_t                 value[WWN_SIZE];
++} hba_nn_attr_t;
++
++typedef struct {
++      uint16_t                type;
++      uint16_t                len;
++      uint8_t                 value[20];
++} hba_man_attr_t;
++
++typedef struct {
++      uint16_t                type;
++      uint16_t                len;
++      uint8_t                 value[8];
++} hba_sn_attr_t;
++
++typedef struct {
++      uint16_t                type;
++      uint16_t                len;
++      uint8_t                 value[16];
++} hba_mod_attr_t;
++
++typedef struct {
++      uint16_t                type;
++      uint16_t                len;
++      uint8_t                 value[80];
++} hba_mod_desc_attr_t;
++
++typedef struct {
++      uint16_t                type;
++      uint16_t                len;
++      uint8_t                 value[16];
++} hba_hv_attr_t;
++
++typedef struct {
++      uint16_t                type;
++      uint16_t                len;
++      uint8_t                 value[28];
++} hba_dv_attr_t;
++
++typedef struct {
++      uint16_t                type;
++      uint16_t                len;
++      uint8_t                 value[16];
++} hba_or_attr_t;
++
++typedef struct {
++      uint16_t                type;
++      uint16_t                len;
++      uint8_t                 value[16];
++} hba_fw_attr_t;
++
++typedef struct {
++      uint16_t                type;
++      uint16_t                len;
++      uint8_t                 value[16];
++} hba_os_attr_t;
++
++typedef struct {
++      uint16_t                type;
++      uint16_t                len;
++      uint8_t                 value[4];
++} hba_maxctlen_attr_t;
++
++/*
++ * HBA Attribute Block.
++ */
++#define       HBA_ATTR_COUNT          10
++typedef struct {
++      uint32_t                count;
++      hba_nn_attr_t           nn;
++      hba_man_attr_t          man;
++      hba_sn_attr_t           sn;
++      hba_mod_attr_t          mod;
++      hba_mod_desc_attr_t     mod_desc;
++      hba_hv_attr_t           hv;
++      hba_dv_attr_t           dv;
++      hba_or_attr_t           or;
++      hba_fw_attr_t           fw;
++      hba_os_attr_t           os;
++#if 0
++      hba_maxctlen_attr_t     max_ctlen;
++#endif
++} hba_attr_t;
++
++/*
++ * Port attribute types.
++ */
++#define       T_FC4_TYPES                     1
++#define       T_SUPPORT_SPEED                 2
++#define       T_CURRENT_SPEED                 3
++#define       T_MAX_FRAME_SIZE                4
++#define       T_OS_DEVICE_NAME                5
++#define       T_HOST_NAME                     6
++
++typedef struct {
++      uint16_t                type;
++      uint16_t                len;
++      uint8_t                 value[32];
++} port_fc4_attr_t;
++
++typedef struct {
++      uint16_t                type;
++      uint16_t                len;
++      uint32_t                value;
++} port_speed_attr_t;
++
++typedef struct {
++      uint16_t                type;
++      uint16_t                len;
++      uint32_t                value;
++} port_frame_attr_t;
++
++typedef struct {
++      uint16_t                type;
++      uint16_t                len;
++      uint8_t                 value[24];
++} port_os_attr_t;
++
++typedef struct {
++      uint16_t                type;
++      uint16_t                len;
++      uint8_t                 value[80];
++} port_host_name_attr_t;
++
++/*
++ * Port Attribute Block.
++ */
++#define       PORT_ATTR_COUNT         6
++typedef struct {
++      uint32_t                count;
++      port_fc4_attr_t         fc4_types;
++      port_speed_attr_t       sup_speed;
++      port_speed_attr_t       cur_speed;
++      port_frame_attr_t       max_fsize;
++      port_os_attr_t          os_dev_name;
++      port_host_name_attr_t   host_name;
++} port_attr_t;
++
++/*
++ * Registered Port List
++ */
++typedef struct {
++      uint32_t                num_ports;
++      uint8_t                 port_entry[WWN_SIZE];
++} reg_port_list_t;
++
++/*
++ * Get HBA Attributes.
++ */
++typedef struct {
++      ct_iu_preamble_t        hdr;
++      uint8_t                 hba_identifier[WWN_SIZE];
++} ct_iu_ghat_req_t;
++
++typedef struct {
++      ct_iu_preamble_t        hdr;
++      reg_port_list_t         plist;
++      hba_attr_t              attr;
++} ct_iu_ghat_rsp_t;
++
++/*
++ * Register HBA.
++ */
++typedef struct {
++      ct_iu_preamble_t        hdr;
++      uint8_t                 hba_identifier[WWN_SIZE];
++      reg_port_list_t         plist;
++      hba_attr_t              attr;
++} ct_iu_rhba_t;
++
++/*
++ * Register HBA Attributes.
++ */
++typedef struct {
++      ct_iu_preamble_t        hdr;
++      uint8_t                 hba_identifier[WWN_SIZE];
++      hba_attr_t              attr;
++} ct_iu_rhat_t;
++
++/*
++ * Register Port.
++ */
++typedef struct {
++      ct_iu_preamble_t        hdr;
++      uint8_t                 hba_portname[WWN_SIZE];
++      uint8_t                 portname[WWN_SIZE];
++      port_attr_t             attr;
++} ct_iu_rprt_t;
++
++/*
++ * Register Port Attributes.
++ */
++typedef struct {
++      ct_iu_preamble_t        hdr;
++      uint8_t                 portname[WWN_SIZE];
++      port_attr_t             attr;
++} ct_iu_rpa_t;
++
++/*
++ * Deregister HBA.
++ */
++typedef struct {
++      ct_iu_preamble_t        hdr;
++      uint8_t                 hba_portname[WWN_SIZE];
++} ct_iu_dhba_t;
++
++/*
++ * Deregister HBA Attributes.
++ */
++typedef struct {
++      ct_iu_preamble_t        hdr;
++      uint8_t                 hba_portname[WWN_SIZE];
++} ct_iu_dhat_t;
++
++/*
++ * Deregister Port.
++ */
++typedef struct {
++      ct_iu_preamble_t        hdr;
++      uint8_t                 portname[WWN_SIZE];
++} ct_iu_dprt_t;
++
++/*
++ * Deregister Port Attributes.
++ */
++typedef struct {
++      ct_iu_preamble_t        hdr;
++      uint8_t                 portname[WWN_SIZE];
++} ct_iu_dpa_t;
++
++typedef struct {
++      uint16_t                loop_id;
++      uint32_t                response_byte_count;
++      uint32_t                command_byte_count;
++} ct_iocb_t;
++
++
++typedef struct ct_fdmi_pkt {
++      union {
++              ct_iu_ghat_req_t        ghat_req;
++              ct_iu_ghat_rsp_t        ghat_rsp;
++              ct_iu_rhba_t            rhba;
++              ct_iu_rhat_t            rhat;
++              ct_iu_rprt_t            rprt;
++              ct_iu_rpa_t             rpa;
++              ct_iu_dhba_t            dhba;
++              ct_iu_dhat_t            dhat;
++              ct_iu_dprt_t            dprt;
++              ct_iu_dpa_t             dpa;
++      } t;
++} ct_fdmi_pkt_t;
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* _QLA_GS_H */
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_inioct.c linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_inioct.c
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_inioct.c 2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_inioct.c      2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+@@ -19,17 +19,17 @@
+ #include "inioct.h"
+-static int qla2x00_loopback_test(scsi_qla_host_t *ha, INT_LOOPBACK_REQ *req,
++extern int qla2x00_loopback_test(scsi_qla_host_t *ha, INT_LOOPBACK_REQ *req,
+     uint16_t *ret_mb);
+-static int qla2x00_read_nvram(scsi_qla_host_t *, EXT_IOCTL *, int);
+-static int qla2x00_update_nvram(scsi_qla_host_t *, EXT_IOCTL *, int);
+-static int qla2x00_write_nvram_word(scsi_qla_host_t *, uint8_t, uint16_t);
+-static int qla2x00_send_loopback(scsi_qla_host_t *, EXT_IOCTL *, int);
+-static int qla2x00_read_option_rom(scsi_qla_host_t *, EXT_IOCTL *, int);
+-static int qla2x00_update_option_rom(scsi_qla_host_t *, EXT_IOCTL *, int);
++int qla2x00_read_nvram(scsi_qla_host_t *, EXT_IOCTL *, int);
++int qla2x00_update_nvram(scsi_qla_host_t *, EXT_IOCTL *, int);
++int qla2x00_write_nvram_word(scsi_qla_host_t *, uint8_t, uint16_t);
++int qla2x00_send_loopback(scsi_qla_host_t *, EXT_IOCTL *, int);
++int qla2x00_read_option_rom(scsi_qla_host_t *, EXT_IOCTL *, int);
++int qla2x00_update_option_rom(scsi_qla_host_t *, EXT_IOCTL *, int);
+-static int
++int
+ qla2x00_read_nvram(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+ {
+       char            *ptmp_buf;
+@@ -68,7 +68,15 @@ qla2x00_read_nvram(scsi_qla_host_t *ha, 
+       /* Dump NVRAM. */
+ #if defined(ISP2300)
+-      if (ha->device_id == QLA2312_DEVICE_ID) {
++      if (
++          #if defined(ISP200)
++          (ha->device_id == QLA6312_DEVICE_ID ||
++           ha->device_id == QLA6322_DEVICE_ID)  
++          #else       
++          (ha->device_id == QLA2312_DEVICE_ID ||
++           ha->device_id == QLA2322_DEVICE_ID)
++          #endif          
++         ) {      
+               data = RD_REG_WORD(&reg->ctrl_status);
+               if ((data >> 14) == 1)
+                       base = 0x80;
+@@ -106,15 +114,22 @@ qla2x00_read_nvram(scsi_qla_host_t *ha, 
+               wptr++;
+       }
+-#if defined(ISP2300)
+-      if (ha->device_id == QLA2312_DEVICE_ID) {
++#if defined(ISP2300) 
++      if (
++          #if defined(ISP200)
++          (ha->device_id == QLA6312_DEVICE_ID ||
++           ha->device_id == QLA6322_DEVICE_ID)  
++          #else       
++          (ha->device_id == QLA2312_DEVICE_ID ||
++           ha->device_id == QLA2322_DEVICE_ID)
++          #endif          
++         ) {      
+               /* Unlock resource */
+               WRT_REG_WORD(&reg->host_semaphore, 0);
+       }
+ #endif
+-      ret = copy_to_user((uint8_t *)pext->ResponseAdr, ptmp_buf,
+-          transfer_size * 2);
++      ret = copy_to_user(pext->ResponseAdr, ptmp_buf, transfer_size * 2);
+       if (ret) {
+               pext->Status = EXT_STATUS_COPY_ERR;
+               DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buffer.\n",
+@@ -146,10 +161,10 @@ qla2x00_read_nvram(scsi_qla_host_t *ha, 
+  * Context:
+  *    Kernel context.
+  */
+-static int
++int
+ qla2x00_update_nvram(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+ {
+-#if defined(ISP2300)
++#if defined(ISP2300) 
+       device_reg_t    *reg = ha->iobase;
+ #endif
+ #if defined(ISP2100)
+@@ -190,17 +205,15 @@ qla2x00_update_nvram(scsi_qla_host_t *ha
+       kernel_tmp = (uint8_t *)pnew_nv;
+       usr_tmp = (uint8_t *)pext->RequestAdr;
+-      ret = verify_area(VERIFY_READ, (void *)usr_tmp, transfer_size);
++      ret = copy_from_user(kernel_tmp, usr_tmp, transfer_size);
+       if (ret) {
+               DEBUG9_10(printk(
+-                  "qla2x00_update_nvram: ERROR in buffer verify READ. "
++                  "qla2x00_update_nvram: ERROR in buffer copy READ. "
+                   "RequestAdr=%p\n", pext->RequestAdr);)
+               qla2x00_free_ioctl_scrap_mem(ha);
+               return ret;
+       }
+-      copy_from_user(kernel_tmp, usr_tmp, transfer_size);
+-
+       kernel_tmp = (uint8_t *)pnew_nv;
+       /* we need to checksum the nvram */
+@@ -215,7 +228,15 @@ qla2x00_update_nvram(scsi_qla_host_t *ha
+       /* Write to NVRAM */
+ #if defined(ISP2300)
+-      if (ha->device_id == QLA2312_DEVICE_ID) {
++      if (
++          #if defined(ISP200)
++          (ha->device_id == QLA6312_DEVICE_ID ||
++           ha->device_id == QLA6322_DEVICE_ID)  
++          #else       
++          (ha->device_id == QLA2312_DEVICE_ID ||
++           ha->device_id == QLA2322_DEVICE_ID)
++          #endif          
++         ) {      
+               data = RD_REG_WORD(&reg->ctrl_status);
+               if ((data >> 14) == 1)
+                       base = 0x80;
+@@ -254,7 +275,15 @@ qla2x00_update_nvram(scsi_qla_host_t *ha
+       }
+ #if defined(ISP2300)
+-      if (ha->device_id == QLA2312_DEVICE_ID) {
++      if (
++          #if defined(ISP200)
++          (ha->device_id == QLA6312_DEVICE_ID ||
++           ha->device_id == QLA6322_DEVICE_ID)  
++          #else       
++          (ha->device_id == QLA2312_DEVICE_ID ||
++           ha->device_id == QLA2322_DEVICE_ID)
++          #endif          
++         ) {      
+               /* Unlock resource */
+               WRT_REG_WORD(&reg->host_semaphore, 0);
+       }
+@@ -270,7 +299,7 @@ qla2x00_update_nvram(scsi_qla_host_t *ha
+       return 0;
+ }
+-static int
++int
+ qla2x00_write_nvram_word(scsi_qla_host_t *ha, uint8_t addr, uint16_t data)
+ {
+       int count;
+@@ -346,7 +375,7 @@ qla2x00_write_nvram_word(scsi_qla_host_t
+       return 0;
+ }
+-static int
++int
+ qla2x00_send_loopback(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+ {
+       int             status;
+@@ -373,20 +402,15 @@ qla2x00_send_loopback(scsi_qla_host_t *h
+               return pext->Status;
+       }
+-      status = verify_area(VERIFY_READ, (void *)pext->RequestAdr,
+-          pext->RequestLen);
++      status = copy_from_user(&req, pext->RequestAdr, pext->RequestLen);
+       if (status) {
+               pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("qla2x00_send_loopback: ERROR verify read of "
++              DEBUG9_10(printk("qla2x00_send_loopback: ERROR copy read of "
+                   "request buffer.\n");)
+               return pext->Status;
+       }
+-      copy_from_user((uint8_t *)&req, (uint8_t *)pext->RequestAdr,
+-          pext->RequestLen);
+-
+-      status = verify_area(VERIFY_READ, (void *)pext->ResponseAdr,
+-          pext->ResponseLen);
++      status = copy_from_user(&rsp, pext->ResponseAdr, pext->ResponseLen);
+       if (status) {
+               pext->Status = EXT_STATUS_COPY_ERR;
+               DEBUG9_10(printk("qla2x00_send_loopback: ERROR verify read of "
+@@ -394,9 +418,6 @@ qla2x00_send_loopback(scsi_qla_host_t *h
+               return pext->Status;
+       }
+-      copy_from_user((uint8_t *)&rsp, (uint8_t *)pext->ResponseAdr,
+-          pext->ResponseLen);
+-
+       if (req.TransferCount > req.BufferLength ||
+           req.TransferCount > rsp.BufferLength) {
+@@ -411,18 +432,15 @@ qla2x00_send_loopback(scsi_qla_host_t *h
+               return pext->Status;
+       }
+-      status = verify_area(VERIFY_READ, (void *)req.BufferAddress,
++      status = copy_from_user(ha->ioctl_mem, req.BufferAddress,
+           req.TransferCount);
+       if (status) {
+               pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("qla2x00_send_loopback: ERROR verify read of "
++              DEBUG9_10(printk("qla2x00_send_loopback: ERROR copy read of "
+                   "user loopback data buffer.\n");)
+               return pext->Status;
+       }
+-      copy_from_user((uint8_t *)ha->ioctl_mem, (uint8_t *)req.BufferAddress,
+-          req.TransferCount);
+-
+       DEBUG9(printk("qla2x00_send_loopback: req -- bufadr=%p, buflen=%x, "
+           "xfrcnt=%x, rsp -- bufadr=%p, buflen=%x.\n",
+           req.BufferAddress, req.BufferLength, req.TransferCount,
+@@ -473,22 +491,19 @@ qla2x00_send_loopback(scsi_qla_host_t *h
+               }
+       }
+-      status = verify_area(VERIFY_WRITE, (void *)rsp.BufferAddress,
++      DEBUG9(printk("qla2x00_send_loopback: loopback mbx cmd ok. "
++          "copying data.\n");)
++
++      /* put loopback return data in user buffer */
++      status = copy_to_user(rsp.BufferAddress, ha->ioctl_mem,
+           req.TransferCount);
+       if (status) {
+               pext->Status = EXT_STATUS_COPY_ERR;
+               DEBUG9_10(printk("qla2x00_send_loopback: ERROR verify "
+                   "write of return data buffer.\n");)
+-              return status ;
++              return (status);
+       }
+-      DEBUG9(printk("qla2x00_send_loopback: loopback mbx cmd ok. "
+-          "copying data.\n");)
+-
+-      /* put loopback return data in user buffer */
+-      copy_to_user((uint8_t *)rsp.BufferAddress,
+-          (uint8_t *)ha->ioctl_mem, req.TransferCount);
+-
+       rsp.CompletionStatus = ret_mb[0];
+       if (ha->current_topology == ISP_CFG_F) {
+@@ -504,18 +519,14 @@ qla2x00_send_loopback(scsi_qla_host_t *h
+               }
+       }
+-      status = verify_area(VERIFY_WRITE, (void *)pext->ResponseAdr,
+-          pext->ResponseLen);
++      status = copy_to_user(pext->ResponseAdr, &rsp, pext->ResponseLen);
+       if (status) {
+               pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("qla2x00_send_loopback: ERROR verify "
++              DEBUG9_10(printk("qla2x00_send_loopback: ERROR copy "
+                   "write of response buffer.\n");)
+               return pext->Status;
+       }
+-      copy_to_user((uint8_t *)pext->ResponseAdr, (uint8_t *)&rsp,
+-          pext->ResponseLen);
+-
+       pext->Status       = EXT_STATUS_OK;
+       pext->DetailStatus = EXT_STATUS_OK;
+@@ -590,14 +601,6 @@ int qla2x00_update_option_rom(scsi_qla_h
+       /* Read from user buffer */
+       usr_tmp = (uint8_t *)pext->RequestAdr;
+-      ret = verify_area(VERIFY_READ, (void *)usr_tmp, FLASH_IMAGE_SIZE);
+-      if (ret) {
+-              pext->Status = EXT_STATUS_COPY_ERR;
+-              DEBUG9_10(printk("%s: ERROR in buffer verify READ. "
+-                              "RequestAdr=%p\n",
+-                              __func__, pext->RequestAdr);)
+-              return (ret);
+-      }
+       kern_tmp = (uint8_t *)KMEM_ZALLOC(FLASH_IMAGE_SIZE, 30);
+       if (kern_tmp == NULL) {
+@@ -606,7 +609,15 @@ int qla2x00_update_option_rom(scsi_qla_h
+                       "%s: ERROR in flash allocation.\n", __func__);
+               return (1);
+       }
+-      copy_from_user(kern_tmp, usr_tmp, FLASH_IMAGE_SIZE);
++      ret = copy_from_user(kern_tmp, usr_tmp, FLASH_IMAGE_SIZE);
++      if (ret) {
++              KMEM_FREE(kern_tmp, FLASH_IMAGE_SIZE);
++              pext->Status = EXT_STATUS_COPY_ERR;
++              DEBUG9_10(printk("%s: ERROR in buffer copy READ. "
++                              "RequestAdr=%p\n",
++                              __func__, pext->RequestAdr);)
++              return (ret);
++      }
+       /* Go with update */
+       spin_lock_irqsave(&ha->hardware_lock, cpu_flags);
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_inline.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_inline.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_inline.h 1969-12-31 16:00:00.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_inline.h      2004-04-22 19:42:21.000000000 -0700
+@@ -0,0 +1,49 @@
++/******************************************************************************
++ *                  QLOGIC LINUX SOFTWARE
++ *
++ * QLogic ISPFBLITE device driver for Linux 2.4.x
++ * Copyright (C) 2003 QLogic Corporation
++ * (www.qlogic.com)
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2, or (at your option) any
++ * later version.
++ *
++ * This program is distributed in the hope that it will be useful, but
++ * WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * General Public License for more details.
++ *
++ ******************************************************************************/
++
++/*
++ * This file includes a set of defines that are required to compile the 
++ * source code for qla2xxx module
++ */
++
++static inline int 
++check_device_id(scsi_qla_host_t *ha)
++{
++      return (ha->device_id == QLA6322_DEVICE_ID ||
++          ha->device_id == QLA2322_DEVICE_ID); 
++}
++
++static inline int 
++check_all_device_ids(scsi_qla_host_t *ha)
++{
++      return (ha->device_id == QLA6312_DEVICE_ID ||
++          ha->device_id == QLA6322_DEVICE_ID ||
++          ha->device_id == QLA2312_DEVICE_ID ||
++          ha->device_id == QLA2322_DEVICE_ID);
++}
++
++static inline void 
++set_model_number(scsi_qla_host_t *ha)
++{
++      if (ha->device_id == QLA6312_DEVICE_ID ||
++          ha->device_id == QLA6322_DEVICE_ID)
++              sprintf(ha->model_number, "QLA63xx");
++      else
++              sprintf(ha->model_number, "QLA23xx");
++}
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_ip.c linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_ip.c
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_ip.c     2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_ip.c  2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_ip.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_ip.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_ip.h     2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_ip.h  2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 IP network driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_mbx.c linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_mbx.c
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_mbx.c    2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_mbx.c 2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+@@ -54,14 +54,6 @@ qla2x00_load_ram(scsi_qla_host_t *, dma_
+ STATIC int
+ qla2x00_execute_fw(scsi_qla_host_t *);
+-#if defined(WORD_FW_LOAD)
+-STATIC int
+-qla2x00_write_ram_word(scsi_qla_host_t *, uint16_t, uint16_t);
+-
+-STATIC int
+-qla2x00_read_ram_word(scsi_qla_host_t *, uint16_t, uint16_t *);
+-#endif
+-
+ STATIC int
+ qla2x00_mbx_reg_test(scsi_qla_host_t *);
+@@ -93,7 +85,7 @@ STATIC int
+ qla2x00_get_retry_cnt(scsi_qla_host_t *, uint8_t *, uint8_t *);
+ #if defined(INTAPI)
+-static int
++int
+ qla2x00_loopback_test(scsi_qla_host_t *, INT_LOOPBACK_REQ *, uint16_t *);
+ int
+ qla2x00_echo_test(scsi_qla_host_t *, INT_LOOPBACK_REQ *, uint16_t *);
+@@ -103,7 +95,7 @@ STATIC int
+ qla2x00_init_firmware(scsi_qla_host_t *, uint16_t);
+ STATIC int
+-qla2x00_get_port_database(scsi_qla_host_t *, fcdev_t *, uint8_t);
++qla2x00_get_port_database(scsi_qla_host_t *, fc_port_t *, uint8_t);
+ STATIC int
+ qla2x00_get_firmware_state(scsi_qla_host_t *, uint16_t *);
+@@ -121,7 +113,7 @@ STATIC int
+ qla2x00_get_port_name(scsi_qla_host_t *, uint16_t, uint8_t *, uint8_t);
+ STATIC uint8_t
+-qla2x00_get_link_status(scsi_qla_host_t *, uint8_t, void *, uint16_t *);
++qla2x00_get_link_status(scsi_qla_host_t *, uint16_t, link_stat_t *, uint16_t *);
+ STATIC int
+ qla2x00_lip_reset(scsi_qla_host_t *);
+@@ -143,15 +135,14 @@ STATIC int
+ qla2x00_full_login_lip(scsi_qla_host_t *ha);
+ STATIC int
+-qla2x00_get_port_list(scsi_qla_host_t *, port_list_entry_t *, dma_addr_t,
+-    uint16_t, uint16_t *);
++qla2x00_get_id_list(scsi_qla_host_t *, void *, dma_addr_t, uint16_t *);
+ #if 0 /* not yet needed */
+ STATIC int
+ qla2x00_dump_ram(scsi_qla_host_t *, uint32_t, dma_addr_t, uint32_t);
+ #endif
+-STATIC int
++int
+ qla2x00_lun_reset(scsi_qla_host_t *, uint16_t, uint16_t);
+ STATIC int
+@@ -650,14 +641,22 @@ qla2x00_mailbox_command(scsi_qla_host_t 
+                       spin_lock_irqsave(&ha->hardware_lock, flags);
+                       /* Check for pending interrupts. */
+-#if defined(ISP2300)
+-
+-                      if (ha->device_id == QLA2312_DEVICE_ID) {
+-
++#if defined(ISP2300) 
++                      if (
++                          #if defined(ISP200)
++                          (ha->device_id == QLA6312_DEVICE_ID ||
++                           ha->device_id == QLA6322_DEVICE_ID)  
++                          #else       
++                          (ha->device_id == QLA2312_DEVICE_ID ||
++                           ha->device_id == QLA2322_DEVICE_ID)
++                          #endif          
++                         ) {      
+                               while ((data =RD_REG_WORD(
+                                   &reg->istatus)) & RISC_INT) {
+                                       data =RD_REG_WORD(&reg->host_status_lo);
++                                      if((data & HOST_STATUS_INT ) == 0)
++                                              break;
+                                       qla2x00_isr(ha, data, &discard);
+                               }
+@@ -684,6 +683,33 @@ qla2x00_mailbox_command(scsi_qla_host_t 
+       if (!abort_active)
+               QLA_MBX_REG_LOCK(ha);
++      if (!abort_active) {
++              DEBUG11(printk("qla2x00_mailbox_cmd: checking for additional "
++                  "resp interrupt.\n");)
++
++              /* polling mode for non isp_abort commands. */
++              /* Go check for any more response interrupts pending. */
++              spin_lock_irqsave(&ha->hardware_lock, flags);
++#if defined(ISP2300)
++
++              while (!(ha->flags.in_isr) &&
++                  ((data = qla2x00_debounce_register(&reg->host_status_lo)) &
++                  HOST_STATUS_INT))
++                      qla2x00_isr(ha, data, &discard);
++#else
++
++              while (!(ha->flags.in_isr) &&
++                  ((data = qla2x00_debounce_register(&reg->istatus)) &
++                  RISC_INT))
++                      qla2x00_isr(ha, data,&discard);
++#endif
++
++              spin_unlock_irqrestore(&ha->hardware_lock, flags);
++      }
++      /* Clean up */
++      ha->mcp = NULL;
++
++
+       /* Check whether we timed out */
+       if (ha->flags.mbox_int) {
+@@ -715,7 +741,13 @@ qla2x00_mailbox_command(scsi_qla_host_t 
+       } else {
+ #if defined(QL_DEBUG_LEVEL_2) || defined(QL_DEBUG_LEVEL_3) || \
+-              defined(QL_DEBUG_LEVEL_11)
++              defined(QL_DEBUG_LEVEL_11)      
++              printk(KERN_INFO "qla2x00_mailbox_command(%ld): **** MB"
++                  " Command Timeout for cmd %x ****\n", ha->host_no, command);
++              printk(KERN_INFO "qla2x00_mailbox_command: icontrol=%x "
++                  "jiffies=%lx\n", RD_REG_WORD(&reg->ictrl), jiffies);
++              printk(KERN_INFO "qla2x00_mailbox_command: *** mailbox[0] " 
++                  "= 0x%x ***\n", RD_REG_WORD(optr));
+               printk("qla2x00_mailbox_command(%ld): **** MB Command Timeout "
+                   "for cmd %x ****\n", ha->host_no, command);
+               printk("qla2x00_mailbox_command: icontrol=%x jiffies=%lx\n",
+@@ -735,32 +767,6 @@ qla2x00_mailbox_command(scsi_qla_host_t 
+       ha->flags.mbox_busy = FALSE;
+-      /* Clean up */
+-      ha->mcp = NULL;
+-
+-      if (!abort_active) {
+-              DEBUG11(printk("qla2x00_mailbox_cmd: checking for additional "
+-                  "resp interrupt.\n");)
+-
+-              /* polling mode for non isp_abort commands. */
+-              /* Go check for any more response interrupts pending. */
+-              spin_lock_irqsave(&ha->hardware_lock, flags);
+-#if defined(ISP2300)
+-
+-              while (!(ha->flags.in_isr) &&
+-                  ((data = qla2x00_debounce_register(&reg->host_status_lo)) &
+-                  HOST_STATUS_INT))
+-                      qla2x00_isr(ha, data, &discard);
+-#else
+-
+-              while (!(ha->flags.in_isr) &&
+-                  ((data = qla2x00_debounce_register(&reg->istatus)) &
+-                  RISC_INT))
+-                      qla2x00_isr(ha, data,&discard);
+-#endif
+-
+-              spin_unlock_irqrestore(&ha->hardware_lock, flags);
+-      }
+       if (status == QL_STATUS_TIMEOUT ) {
+               if (!io_lock_on || (mcp->flags & IOCTL_CMD)) {
+@@ -865,12 +871,12 @@ qla2x00_load_ram(scsi_qla_host_t *ha, dm
+       mcp->mb[2] = MSW(req_dma);
+       mcp->mb[3] = LSW(req_dma);
+       mcp->mb[4] = (uint16_t)req_len;
+-      mcp->mb[6] = QL21_64BITS_4THWD(req_dma);
+-      mcp->mb[7] = QL21_64BITS_3RDWD(req_dma);
++      mcp->mb[6] = MSW(MSD(req_dma));
++      mcp->mb[7] = LSW(MSD(req_dma));
+       mcp->out_mb = MBX_7|MBX_6|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0;
+       mcp->in_mb = MBX_0;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       mcp->flags = 0;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+@@ -881,12 +887,12 @@ qla2x00_load_ram(scsi_qla_host_t *ha, dm
+               mcp->mb[2] = MSW(nml_dma);
+               mcp->mb[3] = LSW(nml_dma);
+               mcp->mb[4] = (uint16_t)nml_len;
+-              mcp->mb[6] = QL21_64BITS_4THWD(nml_dma);
+-              mcp->mb[7] = QL21_64BITS_3RDWD(nml_dma);
++              mcp->mb[6] = MSW(MSD(nml_dma));
++              mcp->mb[7] = LSW(MSD(nml_dma));
+               mcp->out_mb = MBX_7|MBX_6|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0;
+               mcp->in_mb = MBX_0;
+-              mcp->tov = 30;
++              mcp->tov = 60;
+               mcp->flags = 0;
+               rval = (int)qla2x00_mailbox_command(ha, mcp);
+       }
+@@ -905,13 +911,11 @@ qla2x00_load_ram(scsi_qla_host_t *ha, dm
+ }
+ /*
+- * qla2x00_execute_fw
+- *    Start adapter firmware.
++ * qla2x00_load_ram_ext
++ *    Load adapter extended RAM using DMA.
+  *
+  * Input:
+  *    ha = adapter block pointer.
+- *    TARGET_QUEUE_LOCK must be released.
+- *    ADAPTER_STATE_LOCK must be released.
+  *
+  * Returns:
+  *    qla2x00 local function return status code.
+@@ -919,82 +923,81 @@ qla2x00_load_ram(scsi_qla_host_t *ha, dm
+  * Context:
+  *    Kernel context.
+  */
+-STATIC int
+-qla2x00_execute_fw(scsi_qla_host_t *ha)
++int
++qla2x00_load_ram_ext(scsi_qla_host_t *ha, dma_addr_t req_dma,
++    uint32_t risc_addr, uint16_t risc_code_size)
+ {
+       int rval;
+       mbx_cmd_t mc;
+       mbx_cmd_t *mcp = &mc;
++      uint32_t        req_len;
++      dma_addr_t      nml_dma;
++      uint32_t        nml_len;
++      uint32_t        normalized;
+-      DEBUG11(printk("qla2x00_execute_fw(%ld): entered.\n",
+-          ha->host_no);)
+-
+-      mcp->mb[0] = MBC_EXECUTE_FIRMWARE;
+-      mcp->mb[1] = *QLBoardTbl_fc[ha->devnum].fwstart;
+-      mcp->out_mb = MBX_1|MBX_0;
+-      mcp->in_mb = MBX_0;
+-      mcp->tov = 30;
+-      mcp->flags = 0;
+-      rval = qla2x00_mailbox_command(ha, mcp);
+-
+-      DEBUG11(printk("qla2x00_execute_fw(%ld): done.\n",
+-          ha->host_no);)
+-
+-      return rval;
+-}
+-
++      DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no));
+-#if defined(WORD_FW_LOAD)
+-/*
+- * qla2x00_write_ram_word
+- *
+- * Input:
+- *    ha = adapter block pointer.
+- *
+- * Returns:
+- *    qla2x00 local function return status code.
+- *
+- * Context:
+- *    Kernel context.
+- */
+-STATIC int
+-qla2x00_write_ram_word(scsi_qla_host_t *ha, uint16_t addr, uint16_t data)
+-{
+-      int rval;
+-      mbx_cmd_t mc;
+-      mbx_cmd_t *mcp = &mc;
++      req_len = risc_code_size;
++      nml_dma = 0;
++      nml_len = 0;
+-      DEBUG11(printk("qla2x00_write_ram_word(%ld): entered.\n",
+-          ha->host_no);)
++      normalized = qla2x00_normalize_dma_addr(&req_dma, &req_len, &nml_dma,
++          &nml_len);
+-      mcp->mb[0] = MBC_WRITE_RAM_WORD;
+-      mcp->mb[1] = addr;
+-      mcp->mb[2] = data;
+-      mcp->out_mb = MBX_2|MBX_1|MBX_0;
++      /* Load first segment */
++      mcp->mb[0] = MBC_LOAD_RAM_EXTENDED;
++      mcp->mb[1] = LSW(risc_addr);
++      mcp->mb[2] = MSW(req_dma);
++      mcp->mb[3] = LSW(req_dma);
++      mcp->mb[4] = (uint16_t)req_len;
++      mcp->mb[6] = MSW(MSD(req_dma));
++      mcp->mb[7] = LSW(MSD(req_dma));
++      mcp->mb[8] = MSW(risc_addr);
++      mcp->out_mb = MBX_8|MBX_7|MBX_6|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0;
+       mcp->in_mb = MBX_0;
+       mcp->tov = 30;
+       mcp->flags = 0;
++      rval = qla2x00_mailbox_command(ha, mcp);
+-      rval = (int)qla2x00_mailbox_command(ha, mcp);
++      /* Load second segment - if necessary */
++      if (normalized && (rval == QL_STATUS_SUCCESS)) {
++              risc_addr += req_len;
++              mcp->mb[0] = MBC_LOAD_RAM_EXTENDED;
++              mcp->mb[1] = LSW(risc_addr);
++              mcp->mb[2] = MSW(nml_dma);
++              mcp->mb[3] = LSW(nml_dma);
++              mcp->mb[4] = (uint16_t)nml_len;
++              mcp->mb[6] = MSW(MSD(nml_dma));
++              mcp->mb[7] = LSW(MSD(nml_dma));
++              mcp->mb[8] = MSW(risc_addr);
++              mcp->out_mb = MBX_8|MBX_7|MBX_6|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0;
++              mcp->in_mb = MBX_0;
++              mcp->tov = 30;
++              mcp->flags = 0;
++              rval = qla2x00_mailbox_command(ha, mcp);
++      }
+       if (rval != QL_STATUS_SUCCESS) {
+               /*EMPTY*/
+-              DEBUG2_3_11(printk("qla2x00_write_ram_word(%ld): failed=%x.\n",
+-                  ha->host_no, rval);)
++              DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x.\n",
++                  __func__, ha->host_no, rval, mcp->mb[0]));
+       } else {
+               /*EMPTY*/
+-              DEBUG11(printk("qla2x00_write_ram_word(%ld): done.\n",
+-                  ha->host_no);)
++              DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no));
+       }
+       return rval;
+ }
++
+ /*
+- * qla2x00_read_ram_word
++ * qla2x00_execute_fw
++ *    Start adapter firmware.
+  *
+  * Input:
+  *    ha = adapter block pointer.
++ *    TARGET_QUEUE_LOCK must be released.
++ *    ADAPTER_STATE_LOCK must be released.
+  *
+  * Returns:
+  *    qla2x00 local function return status code.
+@@ -1003,38 +1006,42 @@ qla2x00_write_ram_word(scsi_qla_host_t *
+  *    Kernel context.
+  */
+ STATIC int
+-qla2x00_read_ram_word(scsi_qla_host_t *ha, uint16_t addr, uint16_t *data)
++qla2x00_execute_fw(scsi_qla_host_t *ha)
+ {
+       int rval;
+       mbx_cmd_t mc;
+       mbx_cmd_t *mcp = &mc;
+-      DEBUG11(printk("qla2x00_read_ram_word(%ld): entered.\n",
++      DEBUG11(printk("qla2x00_execute_fw(%ld): entered.\n",
+           ha->host_no);)
+-      mcp->mb[0] = MBC_READ_RAM_WORD;
+-      mcp->mb[1] = addr;
+-
++      mcp->mb[0] = MBC_EXECUTE_FIRMWARE;
++      mcp->mb[1] = *QLBoardTbl_fc[ha->devnum].fwinfo->fwstart;
+       mcp->out_mb = MBX_1|MBX_0;
+-      mcp->in_mb = MBX_0|MBX_2;
+-      mcp->tov = 30;
+-      mcp->flags = 0;
++#if defined(ISP2300) 
++      if (
++          #if defined(ISP200)
++           ha->pdev->device == QLA6322_DEVICE_ID 
++          #else
++           ha->pdev->device == QLA2322_DEVICE_ID
++          #endif
++         ) {
++              mcp->mb[2] = 0; /* FW image has been loaded into memory */
++              mcp->out_mb |= MBX_2;
++              DEBUG11(printk("%s fwstart=%x \n",__func__,mcp->mb[1]);)
++      }
++#endif
+-      rval = (int)qla2x00_mailbox_command(ha, mcp);
++      mcp->in_mb = MBX_0;
++      mcp->tov = 60;
++      mcp->flags = 0;
++      rval = qla2x00_mailbox_command(ha, mcp);
+-      if (rval != QL_STATUS_SUCCESS) {
+-              /*EMPTY*/
+-              DEBUG2_3_11(printk("qla2x00_read_ram_word(%ld): failed=%x.\n",
+-                  ha->host_no, rval);)
+-      } else {
+-              *data = mcp->mb[2];
+-              DEBUG11(printk("qla2x00_read_ram_word(%ld): done.\n",
+-                  ha->host_no);)
+-      }
++      DEBUG11(printk("qla2x00_execute_fw(%ld): done.\n",
++          ha->host_no);)
+       return rval;
+ }
+-#endif
+ /*
+  * qla2x00_mbx_reg_test
+@@ -1071,7 +1078,7 @@ qla2x00_mbx_reg_test(scsi_qla_host_t *ha
+       mcp->mb[7] = 0x2525;
+       mcp->out_mb = MBX_7|MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0;
+       mcp->in_mb = MBX_7|MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       mcp->flags = 0;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+@@ -1123,10 +1130,10 @@ qla2x00_verify_checksum(scsi_qla_host_t 
+           ha->host_no);)
+       mcp->mb[0] = MBC_VERIFY_CHECKSUM;
+-      mcp->mb[1] = *QLBoardTbl_fc[ha->devnum].fwstart;
++      mcp->mb[1] = *QLBoardTbl_fc[ha->devnum].fwinfo->fwstart;
+       mcp->out_mb = MBX_1|MBX_0;
+       mcp->in_mb = MBX_2|MBX_0;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       mcp->flags = 0;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+@@ -1175,11 +1182,11 @@ qla2x00_issue_iocb(scsi_qla_host_t *ha, 
+       mcp->mb[1] = 0;
+       mcp->mb[2] = MSW(phys_addr);
+       mcp->mb[3] = LSW(phys_addr);
+-      mcp->mb[6] = QL21_64BITS_4THWD(phys_addr);
+-      mcp->mb[7] = QL21_64BITS_3RDWD(phys_addr);
++      mcp->mb[6] = MSW(MSD(phys_addr));
++      mcp->mb[7] = LSW(MSD(phys_addr));
+       mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
+       mcp->in_mb = MBX_2|MBX_0;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       mcp->flags = 0;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+@@ -1228,12 +1235,12 @@ qla2x00_abort_command(scsi_qla_host_t *h
+       fcport = sp->fclun->fcport;
+       t = SCSI_TCN_32(sp->cmd);
+-      if (ha->loop_state == LOOP_DOWN ||
++
++      if (atomic_read(&ha->loop_state) == LOOP_DOWN ||
+           atomic_read(&fcport->state) == FC_DEVICE_LOST) {
+               /* v2.19.8 Ignore abort request if port is down */
+               return 1;
+       }
+-
+       spin_lock_irqsave(&ha->hardware_lock, flags);
+       for (handle = 1; handle < MAX_OUTSTANDING_COMMANDS; handle++) {
+               if (ha->outstanding_cmds[handle] == sp)
+@@ -1247,13 +1254,17 @@ qla2x00_abort_command(scsi_qla_host_t *h
+       }
+       mcp->mb[0] = MBC_ABORT_COMMAND;
++#if defined(EXTENDED_IDS)
++        mcp->mb[1] = fcport->loop_id;
++#else
+       mcp->mb[1] = fcport->loop_id << 8;
++#endif
+       mcp->mb[2] = (uint16_t)handle;
+       mcp->mb[3] = (uint16_t)(handle >> 16);
+       mcp->mb[6] = (uint16_t)sp->fclun->lun;
+       mcp->out_mb = MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
+       mcp->in_mb = MBX_0;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       mcp->flags = 0;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+@@ -1295,11 +1306,15 @@ qla2x00_abort_device(scsi_qla_host_t *ha
+                       ha->host_no);)
+       mcp->mb[0] = MBC_ABORT_DEVICE;
++#if defined(EXTENDED_IDS)
++        mcp->mb[1] = loop_id;
++#else
+       mcp->mb[1] = loop_id << 8;
++#endif
+       mcp->mb[2] = lun;
+       mcp->out_mb = MBX_2|MBX_1|MBX_0;
+       mcp->in_mb = MBX_0;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       mcp->flags = 0;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+@@ -1358,11 +1373,19 @@ qla2x00_abort_target(fc_port_t *fcport)
+       loop_id = fcport->loop_id;
+       mcp->mb[0] = MBC_ABORT_TARGET;
++#if defined(EXTENDED_IDS)
++        mcp->mb[1] = fcport->loop_id;
++#else
+       mcp->mb[1] = loop_id << 8;
++#endif
+       mcp->mb[2] = fcport->ha->loop_reset_delay;
+       mcp->out_mb = MBX_2|MBX_1|MBX_0;
++#if defined(EXTENDED_IDS)
++        mcp->mb[10] = 0;
++        mcp->out_mb |= MBX_10;
++#endif
+       mcp->in_mb = MBX_0;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       mcp->flags = 0;
+       rval = (int)qla2x00_mailbox_command(fcport->ha, mcp);
+@@ -1425,11 +1448,15 @@ qla2x00_target_reset(scsi_qla_host_t *ha
+           ha->host_no, tgt->vis_port->loop_id);)
+       mcp->mb[0] = MBC_TARGET_RESET;
++#if defined(EXTENDED_IDS)
++        mcp->mb[1] = tgt->vis_port->loop_id;
++#else
+       mcp->mb[1] = tgt->vis_port->loop_id << 8;
++#endif
+       mcp->mb[2] = ha->loop_reset_delay;
+       mcp->out_mb = MBX_2|MBX_1|MBX_0;
+       mcp->in_mb = MBX_0;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       mcp->flags = 0;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+@@ -1480,7 +1507,7 @@ qla2x00_get_adapter_id(scsi_qla_host_t *
+       mcp->mb[0] = MBC_GET_ADAPTER_LOOP_ID;
+       mcp->out_mb = MBX_0;
+       mcp->in_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       mcp->flags = 0;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+@@ -1533,7 +1560,7 @@ qla2x00_get_retry_cnt(scsi_qla_host_t *h
+       mcp->mb[0] = MBC_GET_RETRY_COUNT;
+       mcp->out_mb = MBX_0;
+       mcp->in_mb = MBX_3|MBX_2|MBX_1|MBX_0;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       mcp->flags = 0;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+@@ -1592,13 +1619,13 @@ qla2x00_loopback_test(scsi_qla_host_t *h
+       mcp->mb[14] = LSW(ha->ioctl_mem_phys); /* send data address */
+       mcp->mb[15] = MSW(ha->ioctl_mem_phys);
+-      mcp->mb[20] = QL21_64BITS_3RDWD(ha->ioctl_mem_phys);
+-      mcp->mb[21] = QL21_64BITS_4THWD(ha->ioctl_mem_phys);
++      mcp->mb[20] = LSW(MSD(ha->ioctl_mem_phys));
++      mcp->mb[21] = MSW(MSD(ha->ioctl_mem_phys));
+       mcp->mb[16] = LSW(ha->ioctl_mem_phys); /* rcv data address */
+       mcp->mb[17] = MSW(ha->ioctl_mem_phys);
+-      mcp->mb[6]  = QL21_64BITS_3RDWD(ha->ioctl_mem_phys);
+-      mcp->mb[7]  = QL21_64BITS_4THWD(ha->ioctl_mem_phys);
++      mcp->mb[6]  = LSW(MSD(ha->ioctl_mem_phys));
++      mcp->mb[7]  = MSW(MSD(ha->ioctl_mem_phys));
+       mcp->mb[18] = LSW(req->IterationCount); /* iteration count lsb */
+       mcp->mb[19] = MSW(req->IterationCount); /* iteration count msb */
+@@ -1608,7 +1635,7 @@ qla2x00_loopback_test(scsi_qla_host_t *h
+       mcp->in_mb = MBX_19|MBX_18|MBX_3|MBX_2|MBX_1|MBX_0;
+       mcp->buf_size = req->TransferCount;
+       mcp->flags = MBX_DMA_OUT|MBX_DMA_IN|IOCTL_CMD;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       DEBUG11(printk("qla2x00_send_loopback: req.Options=%x iterations=%x "
+           "MAILBOX_CNT=%d.\n", req->Options, req->IterationCount,
+@@ -1668,20 +1695,20 @@ qla2x00_echo_test(scsi_qla_host_t *ha, I
+       mcp->mb[14] = LSW(ha->ioctl_mem_phys); /* send data address */
+       mcp->mb[15] = MSW(ha->ioctl_mem_phys);
+-      mcp->mb[20] = QL21_64BITS_3RDWD(ha->ioctl_mem_phys);
+-      mcp->mb[21] = QL21_64BITS_4THWD(ha->ioctl_mem_phys);
++      mcp->mb[20] = LSW(MSD(ha->ioctl_mem_phys));
++      mcp->mb[21] = MSW(MSD(ha->ioctl_mem_phys));
+       mcp->mb[16] = LSW(ha->ioctl_mem_phys); /* rcv data address */
+       mcp->mb[17] = MSW(ha->ioctl_mem_phys);
+-      mcp->mb[6]  = QL21_64BITS_3RDWD(ha->ioctl_mem_phys);
+-      mcp->mb[7]  = QL21_64BITS_4THWD(ha->ioctl_mem_phys);
++      mcp->mb[6]  = LSW(MSD(ha->ioctl_mem_phys));
++      mcp->mb[7]  = MSW(MSD(ha->ioctl_mem_phys));
+       mcp->out_mb = MBX_21|MBX_20|MBX_17|MBX_16|MBX_15|
+               MBX_14|MBX_10|MBX_7|MBX_6|MBX_1|MBX_0;
+       mcp->in_mb = MBX_0;
+       mcp->buf_size = tran_cnt;
+       mcp->flags = MBX_DMA_OUT|MBX_DMA_IN|IOCTL_CMD;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       rval = qla2x00_mailbox_command(ha, mcp);
+@@ -1735,13 +1762,13 @@ qla2x00_init_firmware(scsi_qla_host_t *h
+       mcp->mb[3] = LSW(ha->init_cb_dma);
+       mcp->mb[4] = 0;
+       mcp->mb[5] = 0;
+-      mcp->mb[6] = QL21_64BITS_4THWD(ha->init_cb_dma);
+-      mcp->mb[7] = QL21_64BITS_3RDWD(ha->init_cb_dma);
++      mcp->mb[6] = MSW(MSD(ha->init_cb_dma));
++      mcp->mb[7] = LSW(MSD(ha->init_cb_dma));
+       mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_0;
+       mcp->in_mb = MBX_5|MBX_4|MBX_0;
+       mcp->buf_size = size;
+       mcp->flags = MBX_DMA_OUT;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+       if (rval != QL_STATUS_SUCCESS) {
+@@ -1775,7 +1802,7 @@ qla2x00_init_firmware(scsi_qla_host_t *h
+  *    Kernel context.
+  */
+ STATIC int
+-qla2x00_get_port_database(scsi_qla_host_t *ha, fcdev_t *dev, uint8_t opt)
++qla2x00_get_port_database(scsi_qla_host_t *ha, fc_port_t *fcport, uint8_t opt)
+ {
+       int rval;
+       mbx_cmd_t mc;
+@@ -1800,43 +1827,50 @@ qla2x00_get_port_database(scsi_qla_host_
+               mcp->mb[0] = MBC_ENHANCED_GET_PORT_DATABASE;
+       else
+               mcp->mb[0] = MBC_GET_PORT_DATABASE;
+-
+-      mcp->mb[1] = dev->loop_id << 8 | opt;
++#if defined(EXTENDED_IDS)
++        mcp->mb[1] = fcport->loop_id;
++#else
++        mcp->mb[1] = fcport->loop_id << 8 | opt;
++#endif
+       mcp->mb[2] = MSW(phys_address);
+       mcp->mb[3] = LSW(phys_address);
+-      mcp->mb[6] = QL21_64BITS_4THWD(phys_address);
+-      mcp->mb[7] = QL21_64BITS_3RDWD(phys_address);
++      mcp->mb[6] = MSW(MSD(phys_address));
++      mcp->mb[7] = LSW(MSD(phys_address));
+       mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
++#if defined(EXTENDED_IDS)
++        mcp->mb[10] = opt;
++        mcp->out_mb |= MBX_10;
++#endif
+       mcp->in_mb = MBX_0;
+       mcp->buf_size = PORT_DATABASE_SIZE;
+       mcp->flags = MBX_DMA_IN;
+       /*mcp->tov = ha->retry_count * ha->login_timeout * 2;*/
+-      mcp->tov =  ha->login_timeout * 2;
++      /* mcp->tov =  ha->login_timeout * 2; */
++      mcp->tov =  (ha->login_timeout * 2) + (ha->login_timeout/2);
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+       if (rval == QL_STATUS_SUCCESS) {
+               /* Save some data */
+               /* Names are big endian. */
+-              memcpy((void *)&dev->name[0],(void *)&pd->node_name[0], 8);
+-              memcpy((void *)&dev->wwn[0], (void *)&pd->port_name[0], 8);
++              memcpy(fcport->node_name, pd->node_name, WWN_SIZE);
++              memcpy(fcport->port_name, pd->port_name, WWN_SIZE);
+               /* Get port_id of device. */
+-              dev->d_id.b.al_pa = pd->port_id[2];
+-              dev->d_id.b.area = pd->port_id[3];
+-              dev->d_id.b.domain = pd->port_id[0];
+-              dev->d_id.b.rsvd_1 = 0;
+-
+-              /* Get initiator status of device. */
+-              pd->prli_svc_param_word_3[0] & BIT_5 ?
+-                  (dev->flag = dev->flag | DEV_INITIATOR) :
+-                  (dev->flag = dev->flag & ~DEV_INITIATOR);
+-
+-              /* Check for logged in and whether target device. */
+-              if (pd->master_state != PD_STATE_PORT_LOGGED_IN &&
+-                  pd->slave_state != PD_STATE_PORT_LOGGED_IN) {
+-                      rval = QL_STATUS_ERROR;
+-              } else if (pd->master_state == PD_STATE_PORT_UNAVAILABLE) {
+-                      rval = QL_STATUS_ERROR;
++              fcport->d_id.b.al_pa = pd->port_id[2];
++              fcport->d_id.b.area = pd->port_id[3];
++              fcport->d_id.b.domain = pd->port_id[0];
++              fcport->d_id.b.rsvd_1 = 0;
++
++              /* If not target must be initiator or unknown type. */
++              if ((pd->prli_svc_param_word_3[0] & BIT_4) == 0) {
++                      fcport->port_type = FCT_INITIATOR;
++              } else {
++                      fcport->port_type = FCT_TARGET;
++
++                      /* Check for logged in. */
++                      if (pd->master_state != PD_STATE_PORT_LOGGED_IN &&
++                          pd->slave_state != PD_STATE_PORT_LOGGED_IN)
++                              rval = QL_STATUS_ERROR;
+               }
+       }
+@@ -1883,7 +1917,7 @@ qla2x00_get_firmware_state(scsi_qla_host
+       mcp->mb[0] = MBC_GET_FIRMWARE_STATE;
+       mcp->out_mb = MBX_0;
+       mcp->in_mb = MBX_3|MBX_2|MBX_1|MBX_0;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       mcp->flags = 0;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+@@ -1930,7 +1964,7 @@ qla2x00_get_firmware_options(scsi_qla_ho
+       mcp->mb[0] = MBC_GET_FIRMWARE_OPTIONS;
+       mcp->out_mb = MBX_0;
+       mcp->in_mb = MBX_3|MBX_2|MBX_1|MBX_0;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       mcp->flags = 0;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+@@ -1984,7 +2018,7 @@ qla2x00_set_firmware_options(scsi_qla_ho
+       mcp->mb[12] = 0;        /* Undocumented, but used */
+       mcp->out_mb = MBX_12|MBX_11|MBX_10|MBX_3|MBX_2|MBX_1|MBX_0;
+       mcp->in_mb = MBX_0;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       mcp->flags = 0;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+@@ -2031,10 +2065,18 @@ qla2x00_get_port_name(scsi_qla_host_t *h
+           ha->host_no);)
+       mcp->mb[0] = MBC_GET_PORT_NAME;
+-      mcp->mb[1] = loop_id << 8 | opt;
++#if defined(EXTENDED_IDS)
++        mcp->mb[1] = loop_id;
++#else
++        mcp->mb[1] = loop_id << 8 | opt;
++#endif
+       mcp->out_mb = MBX_1|MBX_0;
++#if defined(EXTENDED_IDS)
++        mcp->mb[10] = opt;
++        mcp->out_mb |= MBX_10;
++#endif
+       mcp->in_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       mcp->flags = 0;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+@@ -2076,8 +2118,8 @@ qla2x00_get_port_name(scsi_qla_host_t *h
+  *    BIT_1 = mailbox error.
+  */
+ STATIC uint8_t
+-qla2x00_get_link_status(scsi_qla_host_t *ha, uint8_t loop_id, void *ret_buf,
+-    uint16_t *status)
++qla2x00_get_link_status(scsi_qla_host_t *ha, uint16_t loop_id,
++    link_stat_t *ret_buf, uint16_t *status)
+ {
+       int rval;
+       mbx_cmd_t mc;
+@@ -2100,14 +2142,22 @@ qla2x00_get_link_status(scsi_qla_host_t 
+       memset(stat_buf, 0, sizeof(link_stat_t));
+       mcp->mb[0] = MBC_GET_LINK_STATUS;
+-      mcp->mb[1] = loop_id << 8;
++#if defined(EXTENDED_IDS)
++        mcp->mb[1] = loop_id;
++#else
++        mcp->mb[1] = loop_id << 8;
++#endif
+       mcp->mb[2] = MSW(phys_address);
+       mcp->mb[3] = LSW(phys_address);
+-      mcp->mb[6] = QL21_64BITS_4THWD(phys_address);
+-      mcp->mb[7] = QL21_64BITS_3RDWD(phys_address);
++      mcp->mb[6] = MSW(MSD(phys_address));
++      mcp->mb[7] = LSW(MSD(phys_address));
+       mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
++#if defined(EXTENDED_IDS)
++        mcp->mb[10] = 0;
++        mcp->out_mb |= MBX_10;
++#endif
+       mcp->in_mb = MBX_0;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       mcp->flags = IOCTL_CMD;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+@@ -2119,24 +2169,36 @@ qla2x00_get_link_status(scsi_qla_host_t 
+                       status[0] = mcp->mb[0];
+                       rval = BIT_1;
+               } else {
+-                      /* copy over data */
+-                      memcpy(ret_buf, stat_buf,sizeof(link_stat_t));
++                      /* copy over data -- firmware data is LE. */
++                      ret_buf->link_fail_cnt =
++                          le32_to_cpu(stat_buf->link_fail_cnt);
++                      ret_buf->loss_sync_cnt =
++                          le32_to_cpu(stat_buf->loss_sync_cnt);
++                      ret_buf->loss_sig_cnt =
++                          le32_to_cpu(stat_buf->loss_sig_cnt);
++                      ret_buf->prim_seq_err_cnt =
++                          le32_to_cpu(stat_buf->prim_seq_err_cnt);
++                      ret_buf->inval_xmit_word_cnt =
++                          le32_to_cpu(stat_buf->inval_xmit_word_cnt);
++                      ret_buf->inval_crc_cnt =
++                          le32_to_cpu(stat_buf->inval_crc_cnt);
++
+                       DEBUG(printk("qla2x00_get_link_status(%ld): stat dump: "
+                           "fail_cnt=%d loss_sync=%d loss_sig=%d seq_err=%d "
+                           "inval_xmt_word=%d inval_crc=%d.\n",
+-                          ha->host_no,
+-                          stat_buf->link_fail_cnt, stat_buf->loss_sync_cnt,
+-                          stat_buf->loss_sig_cnt, stat_buf->prim_seq_err_cnt,
+-                          stat_buf->inval_xmit_word_cnt,
+-                          stat_buf->inval_crc_cnt);)
++                          ha->host_no, ret_buf->link_fail_cnt,
++                          ret_buf->loss_sync_cnt, ret_buf->loss_sig_cnt,
++                          ret_buf->prim_seq_err_cnt,
++                          ret_buf->inval_xmit_word_cnt,
++                          ret_buf->inval_crc_cnt);)
+                       DEBUG11(printk("qla2x00_get_link_status(%ld): stat "
+                           "dump: fail_cnt=%d loss_sync=%d loss_sig=%d "
+                           "seq_err=%d inval_xmt_word=%d inval_crc=%d.\n",
+-                          ha->host_no,
+-                          stat_buf->link_fail_cnt, stat_buf->loss_sync_cnt,
+-                          stat_buf->loss_sig_cnt, stat_buf->prim_seq_err_cnt,
+-                          stat_buf->inval_xmit_word_cnt,
+-                          stat_buf->inval_crc_cnt);)
++                          ha->host_no, ret_buf->link_fail_cnt,
++                          ret_buf->loss_sync_cnt, ret_buf->loss_sig_cnt,
++                          ret_buf->prim_seq_err_cnt,
++                          ret_buf->inval_xmit_word_cnt,
++                          ret_buf->inval_crc_cnt);)
+               }
+       } else {
+               /* Failed. */
+@@ -2145,8 +2207,8 @@ qla2x00_get_link_status(scsi_qla_host_t 
+               rval = BIT_1;
+       }
+-      pci_free_consistent(ha->pdev, sizeof(link_stat_t),
+-          stat_buf, phys_address);
++      pci_free_consistent(ha->pdev, sizeof(link_stat_t), stat_buf,
++          phys_address);
+       return rval;
+ }
+@@ -2177,12 +2239,21 @@ qla2x00_lip_reset(scsi_qla_host_t *ha)
+           ha->host_no);)
+       mcp->mb[0] = MBC_LIP_RESET;
+-      mcp->mb[1] = 0xff00;
++#if defined(EXTENDED_IDS)
++        mcp->mb[1] = 0x00ff;
++#else
++        mcp->mb[1] = 0xff00;
++#endif
+       mcp->mb[2] = ha->loop_reset_delay;
+       mcp->mb[3] = 0;
+       mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0;
++#if defined(EXTENDED_IDS)
++        mcp->mb[10] = 0;
++        mcp->out_mb |= MBX_10;
++#endif
++      mcp->mb[1] = 0xff00;
+       mcp->in_mb = MBX_0;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       mcp->flags = 0;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+@@ -2230,14 +2301,15 @@ qla2x00_send_sns(scsi_qla_host_t *ha, dm
+       mcp->mb[1] = cmd_size;
+       mcp->mb[2] = MSW(sns_phys_address);
+       mcp->mb[3] = LSW(sns_phys_address);
+-      mcp->mb[6] = QL21_64BITS_4THWD(sns_phys_address);
+-      mcp->mb[7] = QL21_64BITS_3RDWD(sns_phys_address);
++      mcp->mb[6] = MSW(MSD(sns_phys_address));
++      mcp->mb[7] = LSW(MSD(sns_phys_address));
+       mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
+       mcp->in_mb = MBX_0|MBX_1;
+       mcp->buf_size = buf_size;
+       mcp->flags = MBX_DMA_OUT|MBX_DMA_IN;
+       /*mcp->tov = ha->retry_count * ha->login_timeout * 2;*/
+-      mcp->tov =  ha->login_timeout * 2;
++      /* mcp->tov =  ha->login_timeout * 2; */
++      mcp->tov =  (ha->login_timeout * 2) + (ha->login_timeout/2);
+       DEBUG11(printk("qla2x00_send_sns: retry cnt=%d ratov=%d total "
+           "tov=%d.\n", ha->retry_count, ha->login_timeout, mcp->tov);)
+@@ -2294,13 +2366,22 @@ qla2x00_login_fabric(scsi_qla_host_t *ha
+           ha->host_no);)
+       mcp->mb[0] = MBC_LOGIN_FABRIC_PORT;
+-      mcp->mb[1] = (loop_id << 8) | opt;
++#if defined(EXTENDED_IDS)
++        mcp->mb[1] = loop_id;
++#else
++        mcp->mb[1] = (loop_id << 8) | opt;
++#endif
+       mcp->mb[2] = domain;
+       mcp->mb[3] = area << 8 | al_pa;
+       mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0;
++#if defined(EXTENDED_IDS)
++        mcp->mb[10] = opt;
++        mcp->out_mb |= MBX_10;
++#endif
+       mcp->in_mb = MBX_2|MBX_1|MBX_0;
+       /*mcp->tov = ha->retry_count * ha->login_timeout * 2;*/
+-      mcp->tov =  ha->login_timeout * 2;
++      /* mcp->tov =  ha->login_timeout * 2; */
++      mcp->tov =  (ha->login_timeout * 2) + (ha->login_timeout/2);
+       mcp->flags = 0;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+@@ -2363,11 +2444,16 @@ qla2x00_login_local_device(scsi_qla_host
+       DEBUG3(printk("%s(%ld): entered.\n", __func__, ha->host_no);)
+       mcp->mb[0] = MBC_LOGIN_LOOP_PORT;
+-      mcp->mb[1] = (loop_id << 8) ;
++#if defined(EXTENDED_IDS)
++        mcp->mb[1] = loop_id;
++#else
++        mcp->mb[1] = (loop_id << 8);
++#endif
+       mcp->mb[2] = opt;
+       mcp->out_mb = MBX_2|MBX_1|MBX_0;
+       mcp->in_mb = MBX_7|MBX_6|MBX_1|MBX_0;
+-      mcp->tov =  ha->login_timeout * 2;
++      /* mcp->tov =  ha->login_timeout * 2; */
++      mcp->tov =  (ha->login_timeout * 2) + (ha->login_timeout/2);
+       mcp->flags = 0;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+@@ -2432,10 +2518,19 @@ qla2x00_fabric_logout(scsi_qla_host_t *h
+           ha->host_no);)
+       mcp->mb[0] = MBC_LOGOUT_FABRIC_PORT;
+-      mcp->mb[1] = loop_id << 8;
++#if defined(EXTENDED_IDS)
++        mcp->mb[1] = loop_id;
++#else
++        mcp->mb[1] = loop_id << 8;
++#endif
+       mcp->out_mb = MBX_1|MBX_0;
++#if defined(EXTENDED_IDS)
++        mcp->mb[10] = 0;
++        mcp->out_mb |= MBX_10;
++#endif
++
+       mcp->in_mb = MBX_1|MBX_0;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       mcp->flags = 0;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+@@ -2484,7 +2579,7 @@ qla2x00_full_login_lip(scsi_qla_host_t *
+       mcp->mb[3] = 0;
+       mcp->out_mb = MBX_3|MBX_2|MBX_1|MBX_0;
+       mcp->in_mb = MBX_0;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       mcp->flags = 0;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+@@ -2502,12 +2597,10 @@ qla2x00_full_login_lip(scsi_qla_host_t *
+ }
+ /*
+- * qla2x00_get_port_list
++ * qla2x00_get_id_list
+  *
+  * Input:
+  *    ha = adapter block pointer.
+- *    TARGET_QUEUE_LOCK must be released.
+- *    ADAPTER_STATE_LOCK must be released.
+  *
+  * Returns:
+  *    qla2x00 local function return status code.
+@@ -2516,40 +2609,37 @@ qla2x00_full_login_lip(scsi_qla_host_t *
+  *    Kernel context.
+  */
+ STATIC int
+-qla2x00_get_port_list(scsi_qla_host_t *ha, port_list_entry_t *gp_list,
+-    dma_addr_t gpl_phys_address, uint16_t opt, uint16_t *size)
++qla2x00_get_id_list(scsi_qla_host_t *ha, void *id_list, dma_addr_t id_list_dma,
++    uint16_t *entries)
+ {
+       int rval;
+       mbx_cmd_t mc;
+       mbx_cmd_t *mcp = &mc;
+-      DEBUG11(printk("qla2x00_get_port_list(%ld): entered.\n",
++      DEBUG11(printk("qla2x00_get_id_list(%ld): entered.\n",
+           ha->host_no);)
+-      if( gp_list == NULL ) {
++      if (id_list == NULL)
+               return QL_STATUS_ERROR;
+-      }
+-      mcp->mb[0] = MBC_GET_PORT_LIST;
+-      mcp->mb[1] = opt;
+-      mcp->mb[2] = MSW(gpl_phys_address);
+-      mcp->mb[3] = LSW(gpl_phys_address);
+-      mcp->mb[6] = QL21_64BITS_4THWD(gpl_phys_address);
+-      mcp->mb[7] = QL21_64BITS_3RDWD(gpl_phys_address);
+-
+-      mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
++      mcp->mb[0] = MBC_GET_ID_LIST;
++      mcp->mb[1] = MSW(id_list_dma);
++      mcp->mb[2] = LSW(id_list_dma);
++      mcp->mb[3] = MSW(MSD(id_list_dma));
++      mcp->mb[6] = LSW(MSD(id_list_dma));
++      mcp->out_mb = MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
+       mcp->in_mb = MBX_1|MBX_0;
+       mcp->tov = 30;
+       mcp->flags = 0;
+-      rval = (int)qla2x00_mailbox_command(ha, mcp);
++      rval = qla2x00_mailbox_command(ha, mcp);
+       if (rval != QL_STATUS_SUCCESS) {
+               /*EMPTY*/
+-              DEBUG2_3_11(printk("qla2x00_get_port_list(%ld): failed=%x.\n",
++              DEBUG2_3_11(printk("qla2x00_get_id_list(%ld): failed=%x.\n",
+                   ha->host_no, rval);)
+       } else {
+-              *size = mcp->mb[1];
+-              DEBUG11(printk("qla2x00_get_port_list(%ld): done.\n",
++              *entries = mcp->mb[1];
++              DEBUG11(printk("qla2x00_get_id_list(%ld): done.\n",
+                   ha->host_no);)
+       }
+@@ -2569,12 +2659,12 @@ qla2x00_dump_ram(scsi_qla_host_t *ha, ui
+       mcp->mb[1] = risc_address & 0xffff;
+       mcp->mb[3] = LSW(ispdump_dma);
+       mcp->mb[2] = MSW(ispdump_dma);
+-      mcp->mb[4] = QL21_64BITS_4THWD(ispdump_dma);
+-      mcp->mb[6] = QL21_64BITS_3RDWD(ispdump_dma);
++      mcp->mb[4] = MSW(MSD(ispdump_dma));
++      mcp->mb[6] = LSW(MSD(ispdump_dma));
+       mcp->mb[7] = 0;
+       mcp->out_mb = MBX_7|MBX_6|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0;
+       mcp->in_mb = MBX_0;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       mcp->flags = 0;
+       rval = qla2x00_mailbox_command(ha, mcp);
+@@ -2599,7 +2689,7 @@ qla2x00_dump_ram(scsi_qla_host_t *ha, ui
+  * Context:
+  *    Kernel context.
+  */
+-static int
++int
+ qla2x00_lun_reset(scsi_qla_host_t *ha, uint16_t loop_id, uint16_t lun)
+ {
+       int             rval;
+@@ -2609,11 +2699,15 @@ qla2x00_lun_reset(scsi_qla_host_t *ha, u
+       ENTER("qla2x00_lun_reset");
+       mcp->mb[0] = MBC_LUN_RESET;
+-      mcp->mb[1] = loop_id << 8;
++#if defined(EXTENDED_IDS)
++        mcp->mb[1] = loop_id;
++#else
++        mcp->mb[1] = loop_id << 8;
++#endif
+       mcp->mb[2] = lun;
+       mcp->out_mb = MBX_2|MBX_1|MBX_0;
+       mcp->in_mb = MBX_0;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       mcp->flags = 0;
+       rval = qla2x00_mailbox_command(ha, mcp);
+@@ -2659,16 +2753,24 @@ qla2x00_send_rnid_mbx(scsi_qla_host_t *h
+           ha->host_no);)
+       mcp->mb[0] = MBC_SEND_RNID_ELS;
+-      mcp->mb[1] = (loop_id << 8 ) | data_fmt;
++#if defined(EXTENDED_IDS)
++        mcp->mb[1] = loop_id;
++#else
++        mcp->mb[1] = (loop_id << 8) | data_fmt;
++#endif
+       mcp->mb[2] = MSW(buf_phys_addr);
+       mcp->mb[3] = LSW(buf_phys_addr);
+-      mcp->mb[6] = QL21_64BITS_4THWD(buf_phys_addr);
+-      mcp->mb[7] = QL21_64BITS_3RDWD(buf_phys_addr);
++      mcp->mb[6] = MSW(MSD(buf_phys_addr));
++      mcp->mb[7] = LSW(MSD(buf_phys_addr));
+       mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
++#if defined(EXTENDED_IDS)
++        mcp->mb[10] = data_fmt;
++        mcp->out_mb |= MBX_10;
++#endif
+       mcp->in_mb = MBX_1|MBX_0;
+       mcp->buf_size = buf_size;
+       mcp->flags = MBX_DMA_IN;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+       if (rval != QL_STATUS_SUCCESS) {
+@@ -2717,13 +2819,13 @@ qla2x00_set_rnid_params_mbx(scsi_qla_hos
+       mcp->mb[1] = 0;
+       mcp->mb[2] = MSW(buf_phys_addr);
+       mcp->mb[3] = LSW(buf_phys_addr);
+-      mcp->mb[6] = QL21_64BITS_4THWD(buf_phys_addr);
+-      mcp->mb[7] = QL21_64BITS_3RDWD(buf_phys_addr);
++      mcp->mb[6] = MSW(MSD(buf_phys_addr));
++      mcp->mb[7] = LSW(MSD(buf_phys_addr));
+       mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
+       mcp->in_mb = MBX_1|MBX_0;
+       mcp->buf_size = buf_size;
+       mcp->flags = MBX_DMA_OUT;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+       if (rval != QLA2X00_SUCCESS) {
+@@ -2772,13 +2874,13 @@ qla2x00_get_rnid_params_mbx(scsi_qla_hos
+       mcp->mb[1] = 0;
+       mcp->mb[2] = MSW(buf_phys_addr);
+       mcp->mb[3] = LSW(buf_phys_addr);
+-      mcp->mb[6] = QL21_64BITS_4THWD(buf_phys_addr);
+-      mcp->mb[7] = QL21_64BITS_3RDWD(buf_phys_addr);
++      mcp->mb[6] = MSW(MSD(buf_phys_addr));
++      mcp->mb[7] = LSW(MSD(buf_phys_addr));
+       mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
+       mcp->in_mb = MBX_1|MBX_0;
+       mcp->buf_size = buf_size;
+       mcp->flags = MBX_DMA_IN;
+-      mcp->tov = 30;
++      mcp->tov = 60;
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+       if (rval != QLA2X00_SUCCESS) {
+@@ -2832,13 +2934,14 @@ qla2x00_get_fcal_position_map(scsi_qla_h
+       mcp->mb[0] = MBC_GET_FCAL_MAP;
+       mcp->mb[2] = MSW(pmap_dma);
+       mcp->mb[3] = LSW(pmap_dma);
+-      mcp->mb[6] = QL21_64BITS_4THWD(pmap_dma);
+-      mcp->mb[7] = QL21_64BITS_3RDWD(pmap_dma);
++      mcp->mb[6] = MSW(MSD(pmap_dma));
++      mcp->mb[7] = LSW(MSD(pmap_dma));
+       mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_0;
+       mcp->in_mb = MBX_1|MBX_0;
+       mcp->buf_size = FCAL_MAP_SIZE;
+       mcp->flags = MBX_DMA_IN;
+-      mcp->tov =  ha->login_timeout * 2;
++      /* mcp->tov =  ha->login_timeout * 2; */
++      mcp->tov =  (ha->login_timeout * 2) + (ha->login_timeout/2);
+       rval = (int)qla2x00_mailbox_command(ha, mcp);
+       if (rval == QL_STATUS_SUCCESS) {
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_mbx.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_mbx.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_mbx.h    2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_mbx.h 2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_opts.c linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_opts.c
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_opts.c   2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_opts.c        2004-04-22 19:42:21.000000000 -0700
+@@ -146,7 +146,8 @@ static     const char *    usageText[] =
+       "  -w, --write",
+       "        write option data to a module",
+       "",
+-      "  MODULE must be 'qla2100_conf', 'qla2200_conf', or 'qla2300_conf'.",
++      "  MODULE must be 'qla2100_conf', 'qla2200_conf', 'qla2300_conf'.",
++      "   or 'qla200_conf'.",
+       "",
+       "Option Data:",
+       "  Option data is read from one of the following files depending on the",
+@@ -157,6 +158,7 @@ static     const char *    usageText[] =
+       "        /etc/qla2100.conf  qla2100_conf",
+       "        /etc/qla2200.conf  qla2200_conf",
+       "        /etc/qla2300.conf  qla2300_conf",
++      "        /etc/qla200.conf   qla20_conf",
+       "",
+       "  By default, the following directory is used to specify the location of",
+       "  the modules to update:", 
+@@ -193,6 +195,7 @@ static     const char *    usageText[] =
+ #define MODULE_QLA2100        1
+ #define MODULE_QLA2200_CONF   2
+ #define MODULE_QLA2300_CONF   3
++#define MODULE_QLA200_CONF    4
+ struct module_info {
+       char    *name;
+@@ -205,6 +208,7 @@ static struct module_info modules[] = {
+       /* qla2100 not supported */
+       { "qla2200_conf", MODULE_QLA2200_CONF, "/etc/qla2200.conf" },
+       { "qla2300_conf", MODULE_QLA2300_CONF, "/etc/qla2300.conf" },
++      { "qla200_conf",  MODULE_QLA200_CONF, "/etc/qla200.conf" },
+       { NULL, 0, NULL }
+ };
+ struct        module_info *module = NULL;
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_ppc64.c linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_ppc64.c
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_ppc64.c  1969-12-31 16:00:00.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_ppc64.c       2004-04-22 19:42:21.000000000 -0700
+@@ -0,0 +1,475 @@
++/******************************************************************************
++ *                  QLOGIC LINUX SOFTWARE
++ *
++ * QLogic ISP2x00 device driver for Linux 2.4.x
++ * Copyright (C) 2003 QLogic Corporation
++ * (www.qlogic.com)
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2, or (at your option) any
++ * later version.
++ *
++ * This program is distributed in the hope that it will be useful, but
++ * WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * General Public License for more details.
++ *
++ ******************************************************************************/
++/* fs/ioctl.c */
++extern asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd, void *);
++
++extern int register_ioctl32_conversion(unsigned int cmd,
++    int (*handler)(unsigned int, unsigned int, unsigned long, struct file *));
++extern int unregister_ioctl32_conversion(unsigned int cmd);
++
++#if 0
++static char qla2200_drvr_loaded_str[] = "qla2200_driver_loaded";
++static char qla2300_drvr_loaded_str[] = "qla2300_driver_loaded";
++#if defined(ISP2200)
++static uint8_t qla2200_driver_loaded = 1;
++#elif defined(ISP2300)
++static uint8_t qla2300_driver_loaded = 1;
++#endif
++#endif
++
++typedef struct _INT_LOOPBACK_REQ_32
++{
++      UINT16  Options;                        /* 2   */
++      UINT32  TransferCount;                  /* 4   */
++      UINT32  IterationCount;                 /* 4   */
++      u32     BufferAddress;                  /* 4  */
++      UINT32  BufferLength;                   /* 4  */
++      UINT16  Reserved[9];                    /* 18  */
++} INT_LOOPBACK_REQ_32, *PINT_LOOPBACK_REQ_32; /* 36 */
++
++typedef struct _INT_LOOPBACK_RSP_32
++{
++      u32     BufferAddress;                  /* 4  */
++      UINT32  BufferLength;                   /* 4  */
++      UINT16  CompletionStatus;               /* 2  */
++      UINT16  CrcErrorCount;                  /* 2  */
++      UINT16  DisparityErrorCount;            /* 2  */
++      UINT16  FrameLengthErrorCount;          /* 2  */
++      UINT32  IterationCountLastError;        /* 4  */
++      UINT8   CommandSent;                    /* 1  */
++      UINT8   Reserved1;                      /* 1  */
++      UINT16  Reserved2[7];                   /* 14 */
++} INT_LOOPBACK_RSP_32, *PINT_LOOPBACK_RSP_32; /* 36 */
++
++typedef struct {
++      u32     Signature;                      /* 4 chars string */
++      UINT16  AddrMode;                       /* 2 */
++      UINT16  Version;                        /* 2 */
++      UINT16  SubCode;                        /* 2 */
++      UINT16  Instance;                       /* 2 */
++      UINT32  Status;                         /* 4 */
++      UINT32  DetailStatus;                   /* 4 */
++      UINT32  Reserved1;                      /* 4 */
++      UINT32  RequestLen;                     /* 4 */
++      UINT32  ResponseLen;                    /* 4 */
++      u32     RequestAdr;                     /* 4 */
++      u32     ResponseAdr;                    /* 4 */
++      UINT16  HbaSelect;                      /* 2 */
++      UINT16  VendorSpecificStatus[11];       /* 22 */
++      u32     VendorSpecificData;             /* 4 */
++} EXT_IOCTL_32, *PEXT_IOCTL_32;                       /* 68 / 0x44 */
++
++int
++qla2x00_xfr_to_64loopback(EXT_IOCTL *pext, void **preq_32, void **prsp_32);
++int
++qla2x00_xfr_from_64loopback(EXT_IOCTL *pext, void **preq_32, void **prsp_32);
++
++
++/************************************/
++/* Start of function implementation */
++/************************************/
++int
++qla2x00_ioctl32(unsigned int fd, unsigned int cmd, unsigned long arg,
++    struct file *pfile)
++{
++      EXT_IOCTL_32    ext32;
++      EXT_IOCTL_32    *pext32 = &ext32;
++      EXT_IOCTL       ext;
++      EXT_IOCTL       *pext = &ext;
++      void            *preq_32 = NULL; /* request pointer */
++      void            *prsp_32 = NULL; /* response pointer */
++
++      mm_segment_t    old_fs;
++      int             ret;
++      int             tmp_rval;
++
++      /* Catch any non-exioct ioctls */
++      if (_IOC_TYPE(cmd) != QLMULTIPATH_MAGIC) {
++              return (-EINVAL);
++      }
++
++      if (copy_from_user(pext32, (char *)arg, sizeof(EXT_IOCTL_32))) {
++              KMEM_FREE(pext32, sizeof(EXT_IOCTL_32));
++              return (-EFAULT);
++      }
++
++      DEBUG9(printk("%s: got hba instance %d.\n",
++          __func__, pext32->HbaSelect);)
++
++      /* transfer values to EXT_IOCTL */
++      memcpy(&pext->Signature, &pext32->Signature, sizeof(pext32->Signature));
++      pext->AddrMode = pext32->AddrMode;
++      pext->Version = pext32->Version;
++      pext->SubCode = pext32->SubCode;
++      pext->Instance = pext32->Instance;
++      pext->Status = pext32->Status;
++      pext->DetailStatus = pext32->DetailStatus;
++      pext->Reserved1 = pext32->Reserved1;
++      pext->RequestLen = pext32->RequestLen;
++      pext->ResponseLen = pext32->ResponseLen;
++      pext->RequestAdr = (UINT64)(u64)pext32->RequestAdr;
++      pext->ResponseAdr = (UINT64)(u64)pext32->ResponseAdr;
++      pext->HbaSelect = pext32->HbaSelect;
++      memcpy(pext->VendorSpecificStatus, pext32->VendorSpecificStatus,
++          sizeof(pext32->VendorSpecificStatus));
++      pext->VendorSpecificData = (UINT64)(u64)pext32->VendorSpecificData;
++
++      /* transfer values for each individual command as necessary */
++      switch (cmd) { /* switch on EXT IOCTL COMMAND CODE */
++      case INT_CC_LOOPBACK:
++              qla2x00_xfr_to_64loopback(pext, &preq_32, &prsp_32);
++              break;
++      }
++
++      old_fs = get_fs();
++      set_fs(KERNEL_DS); /* tell kernel to accept arg in kernel space */
++
++      ret = sys_ioctl(fd, cmd, pext);
++
++      set_fs(old_fs);
++
++      /* transfer values back for each individual command as necessary */
++      switch (cmd) { /* switch on EXT IOCTL COMMAND CODE */
++      case INT_CC_LOOPBACK:
++              qla2x00_xfr_from_64loopback(pext, &preq_32, &prsp_32);
++              break;
++      }
++
++      /* transfer values back to EXT_IOCTL_32 */
++      pext32->Instance = pext->Instance;
++      pext32->Status = pext->Status;
++      pext32->DetailStatus = pext->DetailStatus;
++      pext32->Reserved1 = pext->Reserved1;
++      pext32->RequestLen = pext->RequestLen;
++      pext32->ResponseLen = pext->ResponseLen;
++      pext32->HbaSelect = pext->HbaSelect;
++      memcpy(pext32->VendorSpecificStatus, pext->VendorSpecificStatus,
++          sizeof(pext32->VendorSpecificStatus));
++      pext32->VendorSpecificData = (u32)(u64)pext->VendorSpecificData;
++
++      /* Always try to copy values back regardless what happened before. */
++      tmp_rval = copy_to_user((char *)arg, pext32, sizeof(EXT_IOCTL_32));
++      if (ret == 0)
++              ret = tmp_rval;
++
++      return (ret);
++}
++
++static inline int
++apidev_reg_increasing_idx(uint16_t low_idx, uint16_t high_idx)
++{
++      int     err = 0;
++      int     i;
++      unsigned int cmd;
++
++      for (i = low_idx; i <= high_idx; i++) {
++              cmd = (unsigned int)QL_IOCTL_CMD(i);
++              err = register_ioctl32_conversion(cmd, qla2x00_ioctl32);
++              if (err) {
++                      DEBUG9(printk(
++                          "%s: error registering cmd %x. err=%d.\n",
++                          __func__, cmd, err);)
++                      break;
++              }
++              DEBUG9(printk("%s: registered cmd %x.\n", __func__, cmd);)
++      }
++
++      return (err);
++}
++
++static inline int
++apidev_unreg_increasing_idx(uint16_t low_idx, uint16_t high_idx)
++{
++      int     err = 0;
++      int     i;
++      unsigned int cmd;
++
++      for (i = low_idx; i <= high_idx; i++) {
++              cmd = (unsigned int)QL_IOCTL_CMD(i);
++              err = unregister_ioctl32_conversion(cmd);
++              if (err) {
++                      DEBUG9(printk(
++                          "%s: error unregistering cmd %x. err=%d.\n",
++                          __func__, cmd, err);)
++                      break;
++              }
++              DEBUG9(printk("%s: unregistered cmd %x.\n", __func__, cmd);)
++      }
++
++      return (err);
++}
++
++#if 0
++static inline int
++apidev_other_qla_drvr_loaded(void)
++{
++#if defined(ISP2200)
++      if (inter_module_get(qla2300_drvr_loaded_str)) {
++              /* 2300 is already loaded */
++              /* decrement usage count */
++              inter_module_put(qla2300_drvr_loaded_str);
++              DEBUG9(printk("%s: found 2300 already loaded.\n", __func__);)
++              return TRUE;
++      }
++#elif defined(ISP2300)
++      if (inter_module_get(qla2200_drvr_loaded_str)) {
++              /* 2200 is already loaded */
++              /* decrement usage count */
++              inter_module_put(qla2200_drvr_loaded_str);
++              DEBUG9(printk("%s: found 2200 already loaded.\n", __func__);)
++              return TRUE;
++      }
++#endif
++      return FALSE;
++}
++#endif
++
++static inline void
++apidev_init_ppc64(void)
++{
++      int     err;
++
++#if 0
++#if defined(ISP2200)
++      inter_module_register(qla2200_drvr_loaded_str, THIS_MODULE,
++          &qla2200_driver_loaded);
++#elif defined(ISP2300)
++      inter_module_register(qla2300_drvr_loaded_str, THIS_MODULE,
++          &qla2300_driver_loaded);
++#endif
++
++      if (apidev_other_qla_drvr_loaded()) {
++              /* ioctl registered before */
++              return;
++      }
++#endif
++
++      DEBUG9(printk("qla2x00: going to register ioctl32 cmds.\n");)
++      err = apidev_reg_increasing_idx(EXT_DEF_LN_REG_CC_START_IDX,
++          EXT_DEF_LN_REG_CC_END_IDX);
++      if (!err) {
++              err = apidev_reg_increasing_idx(EXT_DEF_LN_INT_CC_START_IDX,
++                  EXT_DEF_LN_INT_CC_END_IDX);
++      }
++      if (!err) {
++              err = apidev_reg_increasing_idx(EXT_DEF_LN_ADD_CC_START_IDX,
++                  EXT_DEF_LN_ADD_CC_END_IDX);
++      }
++      if (!err) {
++              err = apidev_reg_increasing_idx(FO_CC_START_IDX, FO_CC_END_IDX);
++      }
++      if (!err) {
++              /* Linux specific cmd codes are defined in decreasing order. */
++              err = apidev_reg_increasing_idx(EXT_DEF_LN_SPC_CC_END_IDX,
++                  EXT_DEF_LN_SPC_CC_START_IDX);
++      }
++}
++
++static inline void
++apidev_cleanup_ppc64(void)
++{
++      int     err;
++
++#if 0
++#if defined(ISP2200)
++      inter_module_unregister(qla2200_drvr_loaded_str);
++#elif defined(ISP2300)
++      inter_module_unregister(qla2300_drvr_loaded_str);
++#endif
++
++      if (apidev_other_qla_drvr_loaded()) {
++              /* don't unregister yet */
++              return;
++      }
++#endif
++
++      DEBUG9(printk("qla2x00: going to unregister ioctl32 cmds.\n");)
++      err = apidev_unreg_increasing_idx(EXT_DEF_LN_REG_CC_START_IDX,
++          EXT_DEF_LN_REG_CC_END_IDX);
++      if (!err) {
++              err = apidev_unreg_increasing_idx(EXT_DEF_LN_INT_CC_START_IDX,
++                  EXT_DEF_LN_INT_CC_END_IDX);
++      }
++      if (!err) {
++              err = apidev_unreg_increasing_idx(EXT_DEF_LN_ADD_CC_START_IDX,
++                  EXT_DEF_LN_ADD_CC_END_IDX);
++      }
++      if (!err) {
++              err = apidev_unreg_increasing_idx(FO_CC_START_IDX,
++                  FO_CC_END_IDX);
++      }
++      if (!err) {
++              /* Linux specific cmd codes are defined in decreasing order. */
++              err = apidev_unreg_increasing_idx(EXT_DEF_LN_SPC_CC_END_IDX,
++                  EXT_DEF_LN_SPC_CC_START_IDX);
++      }
++}
++
++int
++qla2x00_xfr_to_64loopback(EXT_IOCTL *pext, void **preq_32, void **prsp_32)
++{
++      int status;
++
++      INT_LOOPBACK_REQ_32 lb_req_32;
++      INT_LOOPBACK_REQ_32 *plb_req_32 = &lb_req_32;
++      INT_LOOPBACK_REQ    *plb_req;
++      INT_LOOPBACK_RSP_32 lb_rsp_32;
++      INT_LOOPBACK_RSP_32 *plb_rsp_32 = &lb_rsp_32;
++      INT_LOOPBACK_RSP    *plb_rsp;
++
++      plb_req = (UINT64)KMEM_ZALLOC(sizeof(INT_LOOPBACK_REQ), 50);
++      if (plb_req == NULL) {
++              /* error */
++              pext->Status = EXT_STATUS_NO_MEMORY;
++              printk(KERN_WARNING
++                  "qla2x00: ERROR in ioctl loopback request conversion "
++                  "allocation.\n");
++              return QL_STATUS_ERROR;
++      }
++      plb_rsp = (UINT64)KMEM_ZALLOC(sizeof(INT_LOOPBACK_RSP), 51);
++      if (plb_rsp == NULL) {
++              /* error */
++              pext->Status = EXT_STATUS_NO_MEMORY;
++              printk(KERN_WARNING
++                  "qla2x00: ERROR in ioctl loopback response conversion "
++                  "allocation.\n");
++              return QL_STATUS_ERROR;
++      }
++
++      if (pext->RequestLen != sizeof(INT_LOOPBACK_REQ_32)) {
++              pext->Status = EXT_STATUS_INVALID_PARAM;
++              DEBUG9_10(printk(
++                  "%s: invalid RequestLen =%d.\n",
++                  __func__, pext->RequestLen);)
++              return QL_STATUS_ERROR;
++      }
++
++      if (pext->ResponseLen != sizeof(INT_LOOPBACK_RSP_32)) {
++              pext->Status = EXT_STATUS_INVALID_PARAM;
++              DEBUG9_10(printk(
++                  "%s: invalid ResponseLen =%d.\n",
++                  __func__, pext->ResponseLen);)
++              return QL_STATUS_ERROR;
++      }
++
++      status = copy_from_user(plb_req_32, pext->RequestAdr,
++          pext->RequestLen);
++      if (status) {
++              pext->Status = EXT_STATUS_COPY_ERR;
++              DEBUG9_10(printk("%s: ERROR copy "
++                  "request buffer.\n", __func__);)
++              return QL_STATUS_ERROR;
++      }
++
++      status = copy_from_user(plb_rsp_32, pext->ResponseAdr,
++          pext->ResponseLen);
++      if (status) {
++              pext->Status = EXT_STATUS_COPY_ERR;
++              DEBUG9_10(printk("%s: ERROR copy "
++                  "response buffer.\n", __func__);)
++              return QL_STATUS_ERROR;
++      }
++
++      /* Save for later */
++      *preq_32 = pext->RequestAdr;
++      *prsp_32 = pext->ResponseAdr;
++
++      /* Transfer over values */
++      plb_req->Options = plb_req_32->Options;
++      plb_req->TransferCount = plb_req_32->TransferCount;
++      plb_req->IterationCount = plb_req_32->IterationCount;
++      plb_req->BufferAddress = (UINT64)(u64)plb_req_32->BufferAddress;
++      plb_req->BufferLength = plb_req_32->BufferLength;
++
++      plb_rsp->BufferAddress = (UINT64)(u64)plb_rsp_32->BufferAddress;
++      plb_rsp->BufferLength = plb_rsp_32->BufferLength;
++      plb_rsp->CompletionStatus = plb_rsp_32->CompletionStatus;
++      plb_rsp->CrcErrorCount = plb_rsp_32->CrcErrorCount;
++      plb_rsp->DisparityErrorCount = plb_rsp_32->DisparityErrorCount;
++      plb_rsp->FrameLengthErrorCount = plb_rsp_32->FrameLengthErrorCount;
++      plb_rsp->IterationCountLastError = plb_rsp_32->IterationCountLastError;
++      plb_rsp->CommandSent = plb_rsp_32->CommandSent;
++
++      /* Assign new values */
++      pext->RequestAdr = plb_req;
++      pext->ResponseAdr = plb_rsp;
++      pext->RequestLen = sizeof(INT_LOOPBACK_REQ);
++      pext->ResponseLen = sizeof(INT_LOOPBACK_RSP);
++
++      return 0;
++}
++
++int
++qla2x00_xfr_from_64loopback(EXT_IOCTL *pext, void **preq_32, void **prsp_32)
++{
++      int status;
++
++      INT_LOOPBACK_REQ_32 lb_req_32;
++      INT_LOOPBACK_REQ_32 *plb_req_32 = &lb_req_32;
++      INT_LOOPBACK_REQ    *plb_req;
++      INT_LOOPBACK_RSP_32 lb_rsp_32;
++      INT_LOOPBACK_RSP_32 *plb_rsp_32 = &lb_rsp_32;
++      INT_LOOPBACK_RSP    *plb_rsp;
++
++      plb_req = (INT_LOOPBACK_REQ *)pext->RequestAdr;
++      plb_rsp = (INT_LOOPBACK_RSP *)pext->ResponseAdr;
++
++      plb_req_32->Options = plb_req->Options;
++      plb_req_32->TransferCount = plb_req->TransferCount;
++      plb_req_32->IterationCount = plb_req->IterationCount;
++      plb_req_32->BufferAddress = (u32)(u64)plb_req->BufferAddress;
++      plb_req_32->BufferLength = plb_req->BufferLength;
++
++      plb_rsp_32->BufferAddress = (u32)(u64)plb_rsp->BufferAddress;
++      plb_rsp_32->BufferLength = plb_rsp->BufferLength;
++      plb_rsp_32->CompletionStatus = plb_rsp->CompletionStatus;
++      plb_rsp_32->CrcErrorCount = plb_rsp->CrcErrorCount;
++      plb_rsp_32->DisparityErrorCount = plb_rsp->DisparityErrorCount;
++      plb_rsp_32->FrameLengthErrorCount = plb_rsp->FrameLengthErrorCount;
++      plb_rsp_32->IterationCountLastError = plb_rsp->IterationCountLastError;
++      plb_rsp_32->CommandSent = plb_rsp->CommandSent;
++
++      KMEM_FREE(plb_req, sizeof(INT_LOOPBACK_REQ));
++      KMEM_FREE(plb_rsp, sizeof(INT_LOOPBACK_RSP));
++
++      pext->RequestAdr = *preq_32;
++      pext->ResponseAdr = *prsp_32;
++      pext->RequestLen = sizeof(INT_LOOPBACK_REQ_32);
++      pext->ResponseLen = sizeof(INT_LOOPBACK_RSP_32);
++
++      status = copy_to_user(pext->RequestAdr, plb_rsp_32, pext->RequestLen);
++      if (status) {
++              pext->Status = EXT_STATUS_COPY_ERR;
++              DEBUG9_10(printk("%s: ERROR "
++                  "write of request data buffer.\n", __func__);)
++              return QL_STATUS_ERROR;
++      }
++
++      /* put loopback return data in user buffer */
++      status = copy_to_user(pext->ResponseAdr, plb_rsp_32, pext->ResponseLen);
++      if (status) {
++              pext->Status = EXT_STATUS_COPY_ERR;
++              DEBUG9_10(printk("%s: ERROR "
++                  "write of response data buffer.\n", __func__);)
++              return QL_STATUS_ERROR;
++      }
++
++      return 0;
++}
++
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_settings.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_settings.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_settings.h       2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_settings.h    2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+@@ -21,7 +21,7 @@
+  *     0 - Disable and 1 - Enable
+  */
+ #define  LOOP_ID_FROM_ONE              0   /* loop ID start from 1 when P2P */
+-#define  MEMORY_MAPPED_IO              0
++#define  MEMORY_MAPPED_IO              1
+ #define  DEBUG_QLA2100_INTR            0
+ #define  USE_NVRAM_DEFAULTS          0
+ #define  DEBUG_PRINT_NVRAM             0
+@@ -35,16 +35,17 @@
+ #define  WATCH_THREADS_SIZ             0    /* watch size of pending queue */
+ #define  USE_PORTNAME                  1    /* option to use port names for targets */
+ #define  LUN_MASKING                   0
+-#define  USE_FLASH_DATABASE            0 /* Save persistent data to flash */
+ #define  QLA_SCSI_VENDOR_DIR           0 /* Decode vendor specific opcodes for direction */
+ #define QLA2100_LIPTEST              0
+ #define REQ_TRACE                    1
+ #define USE_ABORT_TGT                  1 /* Use Abort Target mbx cmd */
+-#if defined(FC_IP_SUPPORT)
+ #define REG_FC4_ENABLED                1 /* Enable register_fc4 call */
++
++#if defined(ISP200)
++#define REG_FDMI_ENABLED              0 /* Support FDMI registration */
+ #else
+-#define REG_FC4_ENABLED                0 /* Enable register_fc4 call */
++#define REG_FDMI_ENABLED              1 /* Support FDMI registration */
+ #endif
+ #undef   TRACECODE                       /* include tracing code in watchdog routines */
+@@ -57,23 +58,11 @@
+ #define  NO_LONG_DELAYS                       0
+ #define  QL_TRACE_MEMORY              0
+-/*
+- * This enables some performance code which is not enabled
+- * normally:
+- *
+- * - a tasklet to process the done queue and send requests back to 
+- *  the OS.
+- */
+-#define       QLA2X_PERFORMANCE               1 
+-
+-/* The following WORD_FW_LOAD is defined in Makefile for ia-64 builds
+-   and can also be decommented here for Word by Word confirmation of
+-   RISC code download operation */
+-/* #define  WORD_FW_LOAD               0  */
+-
+ #define MPIO_SUPPORT                  0
+ #define VSA                           0  /* Volume Set Addressing */
++#define QLA2XXX_LOOP_RETRY_COUNT      10
++
+ #define PERF_CODE                     0  /* enable performance code */
+ #define EH_DEBUG                        0  /* enable new error handling debug */
+ /* 
+@@ -133,6 +122,10 @@
+ /* Max time to wait for the loop to be in LOOP_READY state */
+ #define MAX_LOOP_TIMEOUT       ( 60 * 5)
++
++/* Default: IOCTL pass-thru command timeout in seconds.   */
++#define       QLA_PT_CMD_TOV                  (66)
++
+ #define EH_ACTIVE              1    /* Error handler active */
+ #include "qla_version.h"
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_vendor.c linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_vendor.c
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_vendor.c 2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_vendor.c      2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_version.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_version.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qla_version.h        2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qla_version.h     2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+@@ -19,9 +19,9 @@
+ /*
+  * Driver version 
+  */
+-#define QLA2100_VERSION      "6.06.00"
++#define QLA2100_VERSION      "7.00.00b22"
+-#define QLA_DRIVER_MAJOR_VER  6
+-#define QLA_DRIVER_MINOR_VER  6
++#define QLA_DRIVER_MAJOR_VER  7
++#define QLA_DRIVER_MINOR_VER  0
+ #define QLA_DRIVER_PATCH_VER  0
+-#define QLA_DRIVER_BETA_VER   0
++#define QLA_DRIVER_BETA_VER   22
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qlfo.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qlfo.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qlfo.h       2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qlfo.h    2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qlfolimits.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qlfolimits.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qlfolimits.h 2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qlfolimits.h      2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qlfoln.h linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qlfoln.h
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/qlfoln.h     2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/qlfoln.h  2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+  *                  QLOGIC LINUX SOFTWARE
+  *
+  * QLogic ISP2x00 device driver for Linux 2.4.x
+- * Copyright (C) 2003 Qlogic Corporation
++ * Copyright (C) 2003 QLogic Corporation
+  * (www.qlogic.com)
+  *
+  * This program is free software; you can redistribute it and/or modify it
+@@ -19,33 +19,46 @@
+ #define QLMULTIPATH_MAGIC 'y'
+-/********************************************************/
+-/* Failover ioctl command codes range from 0xc0 to 0xdf */
+-/********************************************************/
++#define       QL_IOCTL_BASE(idx)      \
++    _IOWR(QLMULTIPATH_MAGIC, idx, sizeof(EXT_IOCTL))
++#if defined(QLA_CONFIG_COMPAT)
++#define       QL_IOCTL_CMD(idx)       (QL_IOCTL_BASE(idx) - 0x40000)
++#else
++#define       QL_IOCTL_CMD(idx)       QL_IOCTL_BASE(idx)
++#endif
++
++/*************************************************************
++ * Failover ioctl command codes range from 0xc0 to 0xdf.
++ * The foioctl command code end index must be updated whenever
++ * adding new commands. 
++ *************************************************************/
++#define FO_CC_START_IDX       0xc8    /* foioctl cmd start index */
+ #define FO_CC_GET_PARAMS_OS             \
+-    _IOWR(QLMULTIPATH_MAGIC, 200, sizeof(EXT_IOCTL))  /* 0xc8 */
++    QL_IOCTL_CMD(0xc8)
+ #define FO_CC_SET_PARAMS_OS             \
+-    _IOWR(QLMULTIPATH_MAGIC, 201, sizeof(EXT_IOCTL))  /* 0xc9 */
++    QL_IOCTL_CMD(0xc9)
+ #define FO_CC_GET_PATHS_OS              \
+-    _IOWR(QLMULTIPATH_MAGIC, 202, sizeof(EXT_IOCTL))  /* 0xca */
++    QL_IOCTL_CMD(0xca)
+ #define FO_CC_SET_CURRENT_PATH_OS       \
+-    _IOWR(QLMULTIPATH_MAGIC, 203, sizeof(EXT_IOCTL))  /* 0xcb */
++    QL_IOCTL_CMD(0xcb)
+ #define FO_CC_GET_HBA_STAT_OS           \
+-    _IOWR(QLMULTIPATH_MAGIC, 204, sizeof(EXT_IOCTL))  /* 0xcc */
++    QL_IOCTL_CMD(0xcc)
+ #define FO_CC_RESET_HBA_STAT_OS         \
+-    _IOWR(QLMULTIPATH_MAGIC, 205, sizeof(EXT_IOCTL))  /* 0xcd */
++    QL_IOCTL_CMD(0xcd)
+ #define FO_CC_GET_LUN_DATA_OS           \
+-    _IOWR(QLMULTIPATH_MAGIC, 206, sizeof(EXT_IOCTL))  /* 0xce */
++    QL_IOCTL_CMD(0xce)
+ #define FO_CC_SET_LUN_DATA_OS           \
+-    _IOWR(QLMULTIPATH_MAGIC, 207, sizeof(EXT_IOCTL))  /* 0xcf */
++    QL_IOCTL_CMD(0xcf)
+ #define FO_CC_GET_TARGET_DATA_OS        \
+-    _IOWR(QLMULTIPATH_MAGIC, 208, sizeof(EXT_IOCTL))  /* 0xd0 */
++    QL_IOCTL_CMD(0xd0)
+ #define FO_CC_SET_TARGET_DATA_OS        \
+-    _IOWR(QLMULTIPATH_MAGIC, 209, sizeof(EXT_IOCTL))  /* 0xd1 */
++    QL_IOCTL_CMD(0xd1)
+ #define FO_CC_GET_FO_DRIVER_VERSION_OS  \
+-    _IOWR(QLMULTIPATH_MAGIC, 210, sizeof(EXT_IOCTL))  /* 0xd2 */
++    QL_IOCTL_CMD(0xd2)
++
++#define FO_CC_END_IDX         0xd2    /* foioctl cmd end index */
+ #define BOOLEAN uint8_t
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/README.qla2x00 linux-2.4.21-x86_64/drivers/scsi/qla2xxx/README.qla2x00
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/README.qla2x00       2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/README.qla2x00    2004-04-22 19:42:21.000000000 -0700
+@@ -2,7 +2,7 @@
+ Products supported: QLA22XX, QLA23XX
+-08/07/2003
++03/23/2004
+ Contents
+ --------
+@@ -16,12 +16,14 @@ Contents
+ 4. Saving the Driver Source to Diskette
+ 5. Installing the Driver
+-
+-   5.1  Building the driver from the Source
+-   5.1.1. Building a Uni-Processor (UP) version of the driver
+-   5.1.2. Building a Symmetric Multi-Processor(SMP) version of the
++   5.1  Building the driver using the Source RPM package
++   5.1.1 Installing the QLogic Driver Source RPM 
++   5.1.2 Uinstalling the QLogic Driver Source RPM 
++   5.2  Building the driver from the Source
++   5.2.1. Building a Uni-Processor (UP) version of the driver
++   5.2.2. Building a Symmetric Multi-Processor(SMP) version of the
+           Driver
+-   5.2  Load the Driver Manually using INSMOD or MODPROBE
++   5.3  Load the Driver Manually using INSMOD or MODPROBE
+    5.3  Making a RAMDISK Image to Load the Driver
+ 6. Driver Parameters
+@@ -99,7 +101,7 @@ Please refer to Release Notes (release.t
+ 4. Saving the Driver Distribution / Source file to Diskette
+ -----------------------------------------------------------
+-1. Download the failover or non-failover distribution file
++1. Download the driver distribution file
+    - qla2x00-vx.yy.zz-dist.tgz or the driver source file
+    - qla2x00-vx.yy.zz.tgz from QLogic's website.
+@@ -118,7 +120,39 @@ Please refer to Release Notes (release.t
+ 5. Installing the Driver 
+ ------------------------
+-5.1  Building a Driver from the Source Code 
++5.1  Building the Driver using the source RPM package 
++------------------------------------------------------
++The easiliest way to install and build the QLogic Linux driver is to
++use the source RPM package.  The only requirement for the rpm is the
++kernel-sources which is normally installed when the kernel is installed
++on the system. The following distributions are supported:
++
++1.    Red Hat Advanced Server 2.1 
++2.    Red Hat Enterprise Linux 3.0
++3.    SUSE Linux Enterprise Server 8 (SLES 8)
++
++5.1.1 Installng the QLogic Driver Source RPM 
++
++      Install the Source RPM by executing the following command :
++      
++      # rpm -i  qla2x00-vX.XX.XXbXX-Y.ZZZZ.rpm
++      
++5.1.2 Uinstalling the QLogic Driver Source RPM 
++
++      Uninstall the Source RPM by executing the following command :
++      
++      # rpm -e  qla2x00-vX.XX.XXbXX-Y
++
++5.1.3 Installing only the Driver Source from Source RPM 
++
++      Install only the Driver Source from Source RPM by executing the following       command :
++      
++      # rpm -i --noscripts qla2x00-vX.XX.XXbXX-Y.ZZZZ.rpm
++
++
++Note  :  Driver source is installed in - /usr/src/qla2x00  path upon installation of the Source RPM.
++
++5.2  Building a Driver from the Source Code 
+ -------------------------------------------
+ From the source code, you can build a qla2200.o or qla2300.o for
+@@ -126,7 +160,7 @@ your UP or SMP system, and load the driv
+ using a RAMDISK image during system boot time.
+-5.1.1 Building a Uni-Processor (UP) Version of the Driver
++5.2.1 Building a Uni-Processor (UP) Version of the Driver
+ ---------------------------------------------------------
+ For RedHat Distribution:
+@@ -166,8 +200,8 @@ For SuSE Distribution:
+       1. Install the kernel-source from the SuSE distribution CD-ROM 
+          by typing:   
+-             # yast  or
+-             # yast2 
++             # yast  -i kernel-source  or
++             # yast2 -i kernel-source
+       2. Create a soft link ( /usr/src/linux) to the kernel source 
+          (/usr/src/<linux-version>) by typing:
+@@ -177,7 +211,7 @@ For SuSE Distribution:
+       3. To ensure kernel version synchronization between the driver and
+          running kernel, type the following:
+-              # cd /usr/src/linux
++              # cd /usr/src/linux
+               # make mrproper (completely clean the kernel tree) 
+               # cp /boot/vmlinuz.config .config (copy the new config) 
+               # make oldconfig (update configuration using .config) 
+@@ -208,11 +242,11 @@ For SuSE Distribution:
+              # make all OSVER=linux
+-NOTE: To load the driver manually, see section 5.2. To make a RAMDISK
+-      image to load the driver during system boot time, see section 5.3.
++NOTE: To load the driver manually, see section 5.3. To make a RAMDISK
++      image to load the driver during system boot time, see section 5.4.
+-5.1.2. Building a Symmetric Multi-Processor (SMP) Version of the Driver
++5.2.2. Building a Symmetric Multi-Processor (SMP) Version of the Driver
+ -----------------------------------------------------------------------
+ For RedHat Distribution:
+@@ -252,8 +286,8 @@ For SuSE Distribution:
+       1. Install the kernel-source from the SuSE distribution CD-ROM
+          by typing:   
+-             # yast  or
+-             # yast2 
++             # yast -i kernel-source or
++             # yast2  -i kernel-source
+       2. Create a soft link ( /usr/src/linux) to the kernel source 
+          (/usr/src/<linux-version>) by typing:
+@@ -294,16 +328,16 @@ For SuSE Distribution:
+              # make all SMP=1 OSVER=linux
+-NOTE: To load the driver manually, see section 5.2. To make a RAMDISK
+-      image to load the driver during system boot time, see section 5.3.
++NOTE: To load the driver manually, see section 5.3. To make a RAMDISK
++      image to load the driver during system boot time, see section 5.4.
+-5.2  Load the Driver Manually using INSMOD or MODPROBE
++5.3  Load the Driver Manually using INSMOD or MODPROBE
+ ------------------------------------------------------
+-Before loading the driver manually, first build the driver binary from
+-the driver source files as described in sections 5.1.1 and 5.1.2.
++Before loading the driver manually, build the driver binary by installing  Source RPM as described 
++in sections 5.1.1 or from the driver source files as described in sections 5.2.1 and 5.2.2. 
+ - To load the driver directly from the local build directory, type
+   the following:
+@@ -321,7 +355,7 @@ the driver source files as described in 
+         For SuSE Distribution:
+       
+-          # make all OSVER=linux install (build the driver and copy to the right location)
++# make all OSVER=linux install (build the driver and copy to the right location)
+        2. Type the following to load the Driver:
+@@ -330,22 +364,20 @@ the driver source files as described in 
+           # modprobe qla2300
+-5.3  Making a RAMDISK Image to Load the Driver
++5.4  Making a RAMDISK Image to Load the Driver
+ ----------------------------------------------
+-1. Build the Driver binary files (see 5.1.1 and 5.1.2).
++1. Build the Driver binary files (see 5.2.1 and 5.2.2).
+-2. Copy the files to:
++2. Install the driver : 
+-     /lib/modules/<kernel version>/kernel/drivers/scsi/
++   For RedHat Distribuion:
+-   NOTE: To ensure that the older Driver binary included in the original
+-       distribution does not interfere with the updated version, 
+-       please rename the old Driver binary as follows:
+-
+-       # cd /lib/modules/<kernel_version>/kernel/drivers/addon/qla2200
+-       # mv qla2200.o qla2200_rh.o
+-       # mv qla2300.o qla2300_rh.o
++   # make all install
++  
++   For SuSE Distribution:
++      
++   # make all OSVER=linux install 
+ 3. Add the following line to /etc/modules.conf.
+@@ -366,7 +398,7 @@ the driver source files as described in 
+    For SuSE Distribution:
+       You will need to modify the /etc/sysconfig/kernel file to specify
+-      while modules will be added during initrd creation.
++      which modules will be added during ram disk creation.
+       NOTE: Please ensure the conf module is listed before the actual
+             driver module.  For example:
+@@ -471,10 +503,6 @@ the driver source files as described in 
+ 6. Driver Parameters
+ --------------------
+-The Driver parameters are divided into System Parameters and NVRAM 
+-Parameters sections.
+-
+-
+ 6.1  System Parameters
+ ----------------------
+@@ -571,29 +599,100 @@ None.
+ 6.3  Driver Command Line Parameters
+ -----------------------------------
++The driver gets its parameters from the command line itself or from  
++modprobe 'option' directive found in the modules.conf file or qla2[2,3]00_conf
++module.  The parameters are in simple keyword=value format, i.e. ql2xfailover=1. 
++Where keyword is one of the following option parameters:
+-The available command line options can be viewed using one 
+-or all of the three Linux commands depending on board type:
++      Usage: insmod qla2300 <keyword>=<value>
++      
++*     ql2xfailover - Enables/Disables Driver failover support.
++      0 to disable; 1 to enable. 
++      
++      Default behaviour based on compile-time option MPIO_SUPPORT 
++      in qla_settings.h.
+-      # modinfo -p qla2300
+-      # modinfo -p qla2200
+-      # modinfo -p qla2100
++*     ql2xmaxqdepth - Maximum queue depth reported to scsi mid-level for 
++      each OS device. This specifies the number of outstanding requests
++      per lun.
+-The option "ql2xopts=" has additional sub-options as follows:
++*     ql2xlogintimeout - Defines the Login timeout value in seconds 
++      once initial login. 
+- verbose - Verbose detail debug information - on by default
++*     qlport_down_retry - Defines the command retries to a port that returns"
++              "a PORT-DOWN status.");           
+- quiet   - Driver does not display normal messages to console:
+-              Waiting for LIP to complete....
+-              scsi%d: Topology - %s, Host Loop address 0x%x
+-              scsi(%d): LIP occurred
+-              scsi(%d): LIP reset occurred
++*     ql2xretrycount,
++              "Maximum number of mid-layer retries allowed for a command.  "
++              "Default value in non-failover mode is 20, "
++              "in failover mode, 30.");
++
++*     max_srbs - This parameter specifies the Maximum number of simultaneous
++      commands that can be accepted from the mid-level per HBA. Default: 4096.
++
++*     displayConfig - this parameter will display the current configuration.
++      1 - display the configuration; 0 - don't display the configuration.
++      Default - 1 
++
++*     ConfigRequired - "If 1, then only configured devices passed in through the"
++              "ql2xopts parameter will be presented to the OS");
++
++*     recoveryTime - "Recovery time in seconds before a target device is sent I/O "
++              "after a failback is performed.");
++
++*     failbackTime - Defines the delay in seconds before a failback is performed.
++      Default - 3 
++
++*     Binding method  - Defines what target persistent binding method to use: 
++      0 - bind by Portname and 1 - bind by PortID. 
++      Default - 0  (portname binding)
++      
++*     extended_error_logging - Defines whether to enable (1) or Disable (0) writing 
++      the debug information to /var/log/messages.
++      Default - 0  (disable)
++      
++*     MaxPathsPerDevice - maximum number of paths to a device
++      Default - 8 (compile time only) 
++      
++*     MaxRetriesPerPath - Defines how many retries to perform on the current 
++      path before failing over to the next path in the path list.
++      Default - 3 
++      
++*     MaxRetriesPerIo - Defines total retries to do before failing the command 
++      and returning to the OS with selection timeout (DID_NO_CONNECT).
++      Default - (MaxRetriesPerPath * MaxPathsPerDevice ) + 1
++
++*     QlFailoverNotifyType - Defines type of failover notification mechanism 
++      to use when a failover or failback occurs. Certain storage systems require
++      special CDB's to be issued to do failover or failback.
++      Default - 0 (none)
++      
++*     ConfigRequired - Defines how to bind the devices.
++      0 - Present all the devices discovered to the OS. 
++      1 - Present only the configured devices (i.e. the device defined in 
++      /etc/qla2300_conf ) to the OS. 
++      Default - 0 
++      
++*     FailbackTime - Defines the delay in seconds before a failback is performed
++      to ensure all paths are available.
++      Default - 5 seconds
++      
++*     RecoveryTime - Defines the recovery time in seconds required before commands 
++      can be sent down the restored path.
++      Default - 10 seconds
++
++      
++      All the available parameters can be viewed using one 
++      of the following commands:
++
++      # modinfo -p qla2300
++      # modinfo -p qla2200
++      # modinfo -p qla2100
+  Usage examples:
+-           # insmod qla2200.o ql2xfailover=1
+-           # insmod qla2200.o qlport_down_retry=60
+-           # insmod qla2300.o ql2xopts="quiet"
++    # insmod qla2300.o ql2xfailover=1
++    # insmod qla2300.o qlport_down_retry=60
+ **********************************************************************
+@@ -790,14 +889,14 @@ a string overflow error from modprobe.
+ 8.4 Persistent Binding
+ ----------------------
+-The Persistent Binding information consists of some adapter parameter
+-entries along with some target entries. However, the Linux entries 
+-have been shorten to save space on the command line. Currently, there
+-is no limit on the size of the command line when using modprobe. But,
+-if you embedded the driver in the kernel you are using lilo that has 
+-a string size limitation.
++The Persistent Binding information consists of some adapter configuration
++entries along with some target entries. The entries are specified in
++two formats: verbose and shorten.  The shorten format allows a bigger
++configuration to fix in the limited space on the command line. An 
++alternate to command line is the configuration file. See section 
++8.5.
+-Persistent Binding  can be specified in two ways. Manually or using
++Persistent Binding  can be specified in two ways. Manually or via
+ SANsurfer. We recommend using SANsurfer for ease of use. Reference 
+ section 8.3.3 for additonal information about SANsurfer. The 
+ following is the procedure to manually add persistent binding 
+@@ -811,7 +910,7 @@ The best way to extract configuration me
+ direct the output to a file. You need to remove the Linux timestamp at
+ the beginning of each message and combine them together on single line.
+ For example
+-        #insmod qla2200 displayConfig=1
++        #insmod qla2300 displayConfig=1
+         #grep "scsi-qla" /var/log/messages > /tmp/info.cfg
+ The format of the persistent binding commands is as follows: 
+@@ -885,79 +984,33 @@ This mask specification is heavily type 
+ 8.5 Configuration Data
+ ----------------------
+-To pass the configuration data to the driver, load it using "modprobe" 
+-instead of "insmod".
+-
+-8.5.1 Limitations With /etc/modules.conf
+-----------------------------------------
+-
+-Due to size constraints inherent in the user-space applications which load
+-kernel modules, the total amount of configuration data that could be passed via
+-modules.conf by the modprobe application was around 4096 bytes of information
+-(with minor tuning of the modutil package).  Of course, as densities of SANs
+-increase, larger configuration spaces are needed to accommodate the
+-information.
+-
+-In general, the following formula can be used to compute an approximate size in
+-bytes of the configuration data needed to store information pertaining to 'M'
+-HBAs and 'N' targets/device paths:
+-
+-      75 + 42*M + 381*N
+-
+-Plugging in values for common configurations returns some sample results:
+-
+-      2 same type HBAs - (75 + 2*42 == 159)
+-      ----------------
+-      1 target        - 75+2*42+381*1 = 540 bytes
+-      2 targets       - 75+2*42+381*2 = 921 bytes
+-      3 targets       - 75+2*42+381*3 = 1302 bytes
+-      4 targets       - 75+2*42+381*4 = 1683 bytes
+-      5 targets       - 75+2*42+381*5 = 2064 bytes
+-      ...
+-
+-      3 same type HBAs        (75 + 3*42 == 201)
+-      ----------------
+-      1 target        - 75+3*42+381*1 = 582 bytes
+-      2 targets       - 75+3*42+381*2 = 963 bytes
+-      3 targets       - 75+3*42+381*3 = 1344 bytes
+-      4 targets       - 75+3*42+381*4 = 1725 bytes
+-      5 targets       - 75+3*42+381*5 = 2086 bytes
+-      ...
+-              
+-Please note, a target in this case does not always indicate a distinct piece of
+-storage -- it could represent 'n' paths to the same storage, as is the case
+-with failover in a true-cloud configuration.  As an example, the configuration
+-data size needed for two storage devices with four paths (via two HBAs) to each
+-storage (4*2 paths) would need approximately 3200 bytes (75 + 42*2 + 381*8) of
+-configuration space.
+-
+-8.5.2 QLA_OPTS As An Alternative
+---------------------------------
+-
+-Modutil (namely modprobe) loads 'option' data present in the modules.conf file
+-by first loading the module, parsing the 'options' directive of the newly
+-loaded module for parameters (parameters are simple key=value directives, i.e.
+-ql2xfailover=1), for each key, scan the memory area where the module was loaded
+-for the location of the 'key' parameter, and finally, writing the key's 'value'
+-directly into the pre-defined memory space.  This basic mechanism is similar in
+-nature to the mechanism employed by the QLA_OPTS application, but does not
+-suffer from the relatively small size constraints within the modutil package.
+-
+-There are two important differences between the modutil and QLA_OPTS mechanism:
+-
+-      1) Configuration data is read from a configuration file in /etc/ with a
+-         name based on the ISP type:
++Configuration data and persistent data is loaded in the driver when the
++"modprobe" is use. It is normally passed to the driver via the commandline, 
++but due to the constraints inherent in using the commandline we have
++provide an alternate method to loading configuration data. The configuration
++data is passed to the driver from another module /etc/qla2300_conf. The utility
++qla_opts builds this module from the configuration data. Whenever the 
++configuration changes, a new module should be built.
++
++
++8.5.1 QLA_OPTS 
++---------------
++QLA_OPTS reads the configuration from /etc/qla2[2,3]00.conf and creates the
++module qla2[2,3]00_conf. The driver automatically tries to load the conf
++module at init time and once it is loaded then it is passes the information 
++directly into the pre-defined memory space commuicated to each module by the 
++kernel. Configuration data is read from a configuration file in /etc/ with a
++name based on the ISP type:
+               Configuration File  Module name
+               ------------------  -----------
+               /etc/qla2200.conf   qla2200_conf
+               /etc/qla2300.conf   qla2300_conf
+-      2) Option values are written directly (branded) to the corresponding
+-         configuration module file.
+-Approximately 300K of configuration space has been pre-allocated within the
+-qla2200_conf/qla2300_conf module.
++Note: Approximately 300K of configuration space has been pre-allocated within the
++qla2200_conf/qla2300_conf module for configuration/persistent data.
++
+ 8.5.3 Compatibility With SMS (SANsufer Management Suite)
+ --------------------------------------------------------
+@@ -967,7 +1020,8 @@ an SMS application would save a configur
+ written to the 'options' section of the modules.conf file in a form similar to
+ the following:
+-      ql2xopts=scsi-qla0-adapter-port=210000e08b000000\;scsi-qla0-tgt-1-di-0-node=20000020371682e7\;scsi-qla0-tgt-1-di-0-port=21000020371682e7\;scsi-qla0-tgt-1-di-0-pid=0000e2\;scsi-qla0-tgt-1-di-0-control=00\;
++      ql2xopts=scsi-qla0-adapter-port=210000e08b000000\;scsi-qla0-tgt-1-di-0-node=20000020371682e7\;
++      scsi-qla0-tgt-1-di-0-port=21000020371682e7\;scsi-qla0-tgt-1-di-0-pid=0000e2\;scsi-qla0-tgt-1-di-0-control=00\;
+ Now, the information is written to the appropriate qla2[2|3]00.conf file in
+ /etc and then branded to the binary file of the corresponding configuration
+@@ -1166,6 +1220,7 @@ distribution package can be extracted in
+        qla_fo.c
+        qla_fo.cfg 
+        qla_inioct.c
++       qla_inline.h
+        qla_ip.c
+        qla_mbx.c
+        qla_mbx.h
+@@ -1205,3 +1260,4 @@ assistance if needed.
+     Copyright (c) 2003 QLogic Corporation. All rights reserved 
+     worldwide. 
++
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/release.txt linux-2.4.21-x86_64/drivers/scsi/qla2xxx/release.txt
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/release.txt  2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/release.txt       2004-04-22 19:42:21.000000000 -0700
+@@ -1,36 +1,50 @@
++                              Release Notes
+-                 QLogic QLA2200 and QLA2300 Linux Driver 
++Driver Name  : QLogic QLA22xx/QLA23xx PCI Fibre Channel Linux Driver
++Version      : 7.00.00b22
++OS platform  : Red Hat AS2.1 (IA32 & IA64), SuSE SLES8 (IA32 & IA64)
++HBA Support  : QLA22xx, QLA23xx
++FW version   : QLA22xx : 2.02.06(tp/ip),  QLA23xx: 3.02.28(ipx/flx)
+-                           Release Notes
+-                         =============
++ 
++Table of Contents
++I.    Overview
++II.   Enhancements
++III.  Bug Fixes
++IV.   Known Issues
++V.      Additional Information
+-Version  6.06.00      August 08, 2003
+-+**********************************************+
+-* Features supported by this version of driver *
+-+**********************************************+
+-o FCAL - direct attach
+-o Point-to-point 
+-o Fabric support 
+-o Initiator mode only
+-o Fault recovery on down loops
+-o Persistent binding - HBA node name valid
+-o Linux 2.4.x Kernel Support
+-o IPFC support
+-o Firmware versions:
+-  ql2100 - 1.19.24
+-  ql2200 - 2.02.04
+-  ql2300 - 3.02.13 (tp)
+-           3.01.18 (ip)
+-
+-+********************************+
+-* Changes From Previous Releases *
+-+********************************+
+-o Please view revision.notes file
+- 
+-+**************+
+-* Known Issues *
+-+**************+
+-o This driver must be used with API library v2.00Beta4 + in order
+-  to handle re-entrant API/ioctl commands correctly.
++I.    Overview
++
++This document describes the changes between versions 6.06.10 and 7.00.00b15
++of the QLogic Fibre Channel driver for Linux.
++
++
++II.   Enhancements
++
++ - Eliminate checking initiators while processing fcport list. 
++ - Added logic to honor "ConfigRequired=1" in mon-failover mode. 
++ - Added support for ISP2322 chips.
++ - Added EVA support
++ - Added support for enhance
++
++III.  Bug Fixes
++
++ - PortID binding was broken.
++ - 2100/2200 panic during firmware load
++ - Fixed handling of tape commands during LIPs
++ - Fixed flushing logic for START_STOP commands
++ - Back-out PLUG-TIMER and scsi-affine 'performace patches'
++ - Fixed DMA double allocation bug on retries.
++
++IV.   Known Issues
++
++There are no known issues at this time.
++
++
++V.    Additional Information
++
++- This driver must be used with API library v2.00Beta4 + 
++  to handle re-entrant API/ioctl commands correctly.
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/revision.notes linux-2.4.21-x86_64/drivers/scsi/qla2xxx/revision.notes
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/revision.notes       2003-10-28 10:33:55.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/revision.notes    2004-04-22 19:42:21.000000000 -0700
+@@ -5,1136 +5,154 @@
+  *
+  * Revision History
+  *
+- *   Rev  6.06.00     August 08, 2003  RA
+- *    - Formal release.
+- *
+- *   Rev  6.06.00b15  August 07, 2003  AV/RA
+- *    - Backs-out some changes made in 6.06.00b12 with respect
+- *      to the operating semantics of qla2x00_eh_device_reset().
+- *      The code fails to operate when the backdoor 'device
+- *      reset' occurs.
+- *    - Updated Readme.qla2x00 and SUPPORTED_KERNEL_VERSION.txt.
+- *
+- *   Rev  6.06.00b14  August 01, 2003  RL
+- *    - Added return of dummy lun data entries for unconfigured
+- *      devices, so the number and order of entries returned would
+- *      match that are returned from port summary list and target
+- *      data list.
+- *    - Added checking of target online state and whether it is
+- *      specified in persistent binding before deciding whether
+- *      to return a target/lun data entry for it.
+- *    - Added return of target online and persistent binding
+- *      state in the Status field of the query_disc_tgt ioctl.
+- *    - Updated README file.
+- *
+- *   Rev  6.06.00b13  July 18, 2003  RA/AV/RL
+- *    - Added support for new qla2xxx addon directory in RedHat AS.
+- *    - Added pause between successive flash reads.
+- *    - Don't modify a command's 'allowed' count (in queuecommand)
+- *      if the device is found to be a tape device.
+- *    - Fixed a compile problem when DEBUG option is enabled.
+- *      Also fixed a compile problem for 2100.
+- *    - Updated README file.
+- *
+- *   Rev  6.06.00b12  July 11, 2003  RA/AV/DG
+- *    - Return a more correct status while determining a port's
+- *      state (qla2x00_check_port_status()).
+- *    - Ensure a completed command is returned to the mid-layer
+- *      before returning from qla2x00_eh_wait_on_command().
+- *    - Use proper fcport during SRB referencing:
+- *      - Fix qla2x00_abort_command().
+- *      - Fix qla2x00_eh_device_reset().
+- *      - Modify qla2x00_device_reset() to take an explicit
+- *        fcport rather than indirect determination via a 
+- *        possibly incorrect Target/Lun key.
+- *    - Properly schedule DPC routine if a port relogin is
+- *      required (qla2x00_timer()).
+- *    - Process the response queue regardless of state of mailbox
+- *      command execution (qla2x00_isr()).
+- *    - Process a response entry before declaring it processed.
+- *    - Return a proper BUSY status during an FC IOCTL passthru.
+- *      - Fixed direction in spinup CDB and uncomment target notify call
+- *        in FAILBACK.
+- *      - Added option to send a spinup to port as a notify type.
+- *    - Added the cmdline parameter- qlFailoverNotifyType.
+- *    - Added the check for PORT_SCAN_NEEDED in timer-To wakeup the dpc 
+- *      thread to do probing for luns added after the OS scan.
+- *    - Added the code to issue big hammer after the flash memory is updated.
+- *
+- *   Rev  6.06.00b11  June 24, 2003  RL/AV
+- *    - Removed chip version check for recognition of any
+- *      version of 2312 chip.
+- *    - Updated 2300 firmware to 3.02.13.
+- *
+- *   Rev  6.06.00b10  June 17, 2003  RL/RA/DG/AV
+- *    - Fixed endian issue with update_nvram function.
+- *    - Fixed problem of not adding target ports when using
+- *      gnn_ft to scan due to incorrect reporting of new device
+- *      list count.
+- *    - Fixed panic in qla2x00_mem_free when kernel is unable
+- *      to allocate ioctl memory. The code tried to deallocate
+- *      memory from sp pool, but the list was never initialized
+- *      until later.
+- *    - Fixed scsi_lock deadlock when unable to allocate
+- *      ioctl memory
+- *    - Modified read_nvram code to always return buffer in
+- *      little endian format.
+- *    - Modified scsi passthru code to return data underrun
+- *      status only if the target device indicated it. Error
+- *      is returned if only the firmware sees the condition.
+- *
+- *   Rev  6.06.00b9   June 12, 2003  RL/RA
+- *    - Added non-fo device support on fo driver (selective
+- *      failover configuration).
+- *    - Added code to return zero lun_data entry when mp_host
+- *      was not created for the specified HA.
+- *    - Modified persistent binding table structure definitions
+- *      and other related changes to work on ppc-64 bit platforms.
+- *    - Fixed problem of not getting out of loop when LIP happened
+- *      while we were discovering devices.
+- *
+- *   Rev  6.06.00b8   June 05, 2003  RL/AV/RA
+- *      - Setup the flash before reading the option_rom in internal ioct.
+- *      - Dont turnoff the Config required flag if no configuration
+- *        is found.
+- *    - Fixed the path mp_byte getting over-written when no config 
+- *      data specified.
+- *    - Initliaize all the list heads before calling mem_alloc during init.
+- *    - Append "post-remove" stuff during install in modules.conf for
+- *      automatic removal of conf modules whenever driver is loaded.
+- *
+- *  Rev  6.06.00b7    June 04, 2003  DG
+- *    - Fixed panic in qla2x00_mem_free if unable to allocate
+- *    ioctl memory. ha->fcinitiators was not initialized.
+- *
+- *  Rev  6.06.00b6    June 02, 2003  RL/AV/RA
+- *    - Modified configure_fabric code so after the GNN_FT call 
+- *      the non-target devices are ignored.
+- *    - Added code to return all fcports of an ha as Unconfigured
+- *      if there is no mp_host struct associated with it.
+- *
+- *  Rev  6.06.00b5    May 30, 2003  DG/RL/AV/RA
+- *    - Added the support for link_down_timeout NVRAM parameter.
+- *    - Added the support in the driver to allow the user to 
+- *      enable a rescan of the luns attached to ports already configured.
+- *      The Command "scsi-qla-scan" issue to /proc/scsi/qla2300/x invokes
+- *      this function.
+- *    - Fixed a typo for Model Name in the driver
+- *    - Added the support to enable extended error logging for DEBUG_QLA2100
+- *      if enabled .
+- *    - Added issuing of diag "ECHO" command only for QLA23xx.
+- *    - Return the Model Name for ioctl calls old way as of now.
+- *    - Fixed the panic in qla2x00_mem_alloc() caused as a result of fcport
+- *      memory pointer in "ha" being freed twice.
+- *
+- *  Rev  6.06.00b4    May 29, 2003  DG/RL/AV/RA
+- *    - Update qla2300 firmware to v3.02.12.
+- *    - properly configures PCI I/O space (PIO and/or MMIO) on
+- *      both 32 and 64bit platforms.
+- *    - Fixed a problem where scsi_unregister() would not get
+- *      called if qla2x00_mem_alloc() failed.
+- *    - Added handling for QUEUE FULL from the target. We will
+- *      suspend I/O traffic for qfull_retry_delay (2 secs) up
+- *      to qfull_retry_count times (16);
+- *    - Added extended_error_logging.
+- *    - Fixed request reordering in qla2x00_retry_command().
+- *    - Fixed incorrect conversion of endianess used in
+- *      IOCB command type 2/3 patch.
+- *    - Added issuing of diag. Echo command for F port topology.
+- *    - Added support for reporting Unconfigured Devices
+- *      in get_port_summary and get_target_data ioctl commands.
+- *    - Fixed NVRAM ioctl problem on 2312 chips.
+- *    - Added logic to get the model number of the HBA.
+- *    - Created "qla_devtbl.h" file which contains the Model
+- *      Number of 2312 devices and forthcoming one's.
+- *
+- *  Rev  6.06.00b3    May 19, 2003  DG/RL/RA
+- *    - Added support for abbreviated persistent binding
+- *      configuration statements.
+- *    - Replaced use of IOCB command type 2 with type 3 to enable
+- *      handling for possible 64bit DMA addresses.
+- *    - Cast all size_t to ulong in print arguments to eliminate
+- *      compile warnings on PPC64 platform.
+- *    - Consolidated ioctl passthru commands to use a separate
+- *      queue_command function so it won't be confused with
+- *      normal IOs.
+- *    - Removed the static EXT_IOCTL struct used in qla2x00_fo_ioctl.
+- *    - Corrected request buffer address used in start_ms_cmd.
+- *    - Updated searching of device ports for all applicable
+- *      ioctl commands.
+- *    - Added support for MP_MASK_OVERRIDE bit in mp_byte of
+- *      target ports. This includes new case for get/set path
+- *      function to handle.
+- *    - Fixed problem with alloc_path saving temporary port ptr
+- *      to the path.
+- *    - More consolidation of driver version string define.
+- *    - Update qla2200 firmware to v2.02.04.
+- *
+- *  Rev  6.06.00b2    May 16, 2003  DG
+- *    - Fixed the issue that cause the error message "Failed to
+- *      initialize adapter" which can occur in a Loop environment
+- *      when multiple nodes start powering up in 30 secs increments.
+- *      This issue was cause by Lip resets occurring in the middle
+- *      of port discovery.
+- *
+- *  Rev  6.06.00b1    May 12, 2003  DG/RL/RA
+- *    - Update qla2300 firmware to v3.02.10.
+- *      - Updated README.qla2x00.
+- *      - Added MODULE_DESCRIPTION.
+- *      - Register with Linux for 16 byte CDBs.
+- *      - Wait for MAX_LOOP_TIMEOUT for loop to be ready before
+- *      issuing device/bus reset in the respective driver error handler 
+- *      routines.
+- *      - Added logic to handle concurrent processing of big hammer
+- *      and scsi mid layer error recovery or resets issued through backdoor.
+- *      - Check for loop_state etc for individual qla2x00_set_host_data() 
+- *      operation in ioctl path.
+- *      - Sync up the exioct.h file with the one checked in VSS for the led 
+- *      change.
+- *      - Added the ZIO support       
+- *      - Added the beacon change(blink green LED on/off every sec apart)
+- *      - Added the GNNFT and GPN_ID change and incorporated the retry logic.
+- *      - Fixed the potential problem of new_dev_list getting corrupted
+- *        for different HBA in qla2x00_configure_fabric() by allocating 
+- *      the new_dev_list dynamically (instead of static).
+- *      - Wait for the max_time for firmware to be ready if the firm_state is
+- *        < FW_STATE_READY ie trying to login,waiting for al_pa etc
+- *    - Clear the device flag -DFLG_NO_CABLE during fw_ready if firm_state
+- *      is < FSTATE_LOSS_OF_SYNC indicating cable is there.
+- *      
+- *
+- *  Rev  6.05.00      April 30, 2003  DG
+- *      - Fixed issue ER25748 with SG_ALL in sg_tablesize. We
+- *        now calculated sg_tablesize based on the number of
+- *        request queues.
+- *      - Fixed qla2x00_get_retry_cnt() logic to get the ELS
+- *        timeout value from mbox3 - qla_mbx.c.
+- *      - Change min time we wait for F/W to become ready
+- *        before declaring the Cable unplug from 20secs to
+- *        60 secs.
+- *
+- *  Rev  6.05.00b10   April 25, 2003  AV/RL
+- *    - Added support of new persistent binding configuration
+- *      mechanism for large configurations which would exceed
+- *      the max string limit of modutil. This includes the
+- *      qla_opts utility.
+- *
+- *  Rev  6.05.00b9    March 31, 2003  RA/AV/DG/RL
+- *    - Process the port database update (async event-0x8014)
+- *      for login and logout only if its "Global"-any async
+- *      prevent recieved prior to 8014 indicating loop is down
+- *      like LIP_RESET,LIP_OCCURED etc.
+- *    - Honor previous firmware option settings before updating
+- *      swing and emphasis.
+- *    - Display *all* scanned luns via the /proc interface.
+- *    - If the device does not support the SCSI Report Luns
+- *      command, the driver will now only scan from 0 to the
+- *      max#-luns as defined in the NVRAM (BIOS), rather than
+- *      blindly scanning from 0 to 255 -- which could result in
+- *      an increase in initialization time when running against slow
+- *      (JBOD) devices.
+- *    - Fixed the  FC-4 feature registration code.
+- *    - Fixed the driver version string by building a static string 
+- *      during driver load, then change all references of driver version
+- *      to use that static string.
+- *    - Wait for half a second instead of a tick before trying again 
+- *      to get fw_state.
+- *
+- *  Rev  6.05.00b8    March 20, 2003  AV/DG
+- *    - Corrected issuing FC4 feature for hba.
+- *    - Added support for serial link controls: swing and emphasis.
+- *
+- *  Rev  6.05.00b7    March 13, 2003  RA/DG/AV
+- *    - Corrected compile problem of can_do_varyio and can_dma_32
+- *      on different kernel versions.
+- *    - Reduced ioctl context structure size.
+- *
+- *  Rev  6.05.00b6    March 6, 2003   DG/AV
+- *    - Added support for can_do_varyio.
+- *    - Change sg_talesize to SG_ALL
+- *    - Fixed logic to properly set highmem_io or can_dma_32.
+- *    - increase queue_depth to 32.
+- *    - Increase max_sectors to 8192.
+- *    - Add module parameter ql2xsuspendcount.
+- *            - Always enable fc4 regsiter device and features.
+- *
+- *  Rev  6.05.00b5    February 28, 2003       RL/AV
+- *    - Added check for a paused RISC in ISR -- dump HCCR for reason
+- *    - Fix improper nodename/portname construction in 
+- *      qla2x00_nvram_config() by honoring the node_name_option
+- *      bit in NVRAM.
+- *    - Correct parity check enables for 23xx ISPs.
+- *    - Add helper function qla2x00_local_device_login() to mimic
+- *      fabric login logic.
+- *    - Reschedule a local-loop update if a loop-resync needed
+- *      in qla2x00_local_loop_update() -- this will fix a small
+- *      windows where a target-device state would become out-of-
+- *      sync.
+- *    - Add debug function qla2x00_get_fcal_position_map() to
+- *      return from the firmware the current negotiated LILP map.
+- *    - Fix endianess issues in direct connect environment
+- *      (Mark Bellon mbellon@mvista.com):
+- *    - Add endian-safe bitmap structures for nvram
+- *      and init_cb_t usage.
+- *    - Fix endianess problem in qla2x00_configure_local_loop().
+- *    - Add special_options structure for data rate and 
+- *      termination settings.
+- *    - Fixed data corruption problem when issuing ioctl commands
+- *      concurrently to multiple HBAs by using a per ha scrap buf.
+- *    - Added new ioctl command for returning driver specific data.
+- *      This is used to allow API implementation to be backward
+- *      compatible with driver.
+- *    - Reset adapter current_speed when loop is down.
+- *
+- *  Rev  6.05.00b4    February 06, 2003       RL/AV
+- *    - Fixed the checking of DEV_PUBLIC flag before setting
+- *      the FC_FABRIC_DEVICE flag. The flag is now checked
+- *      using bitwise AND everywhere.  This fixes problem
+- *      with devices that are both initiator and target.
+- *    - Added checking of tape device so we don't logout from
+- *      tape devices.
+- *    - Fixed the driver hang in get_target_data of non-fo driver
+- *      by correctly store fcport value to target queue in
+- *      fcport_bind.
+- *    - Fixed invalid configuration problem when displaying
+- *      target LUNs via non-fo driver by correctly assign
+- *      the only path as preferred path.
+- *    - Added ioctl support for non-fo driver to return path and
+- *      system parameters information.
+- *    - Corrected the return values of fo ioctl functions
+- *      and added checking of return value of copy_to/from_user
+- *      calls.
+- *    - Fixed debug prints, some of which access invalid pointer.
+- *
+- *  Rev  6.05.00b3    January 27, 2003        RA/DG
+- *    - Added support for can_dma_32 and highmem_io.
+- *
+- *  Rev  6.05.00b2    January 24, 2003        RL/RA/AV/DG
+- *    - Added the use of HbaSelect to determine the ha context
+- *      of each ioctl command.
+- *    - Corrected ioctl wait_q handling when timeout happened.
+- *    - Dynamically allocate EXT_IOCTL structure in order to
+- *      make the main ioctl function reentrant.
+- *    - Corrected the return values of all non-fo ioctl functions
+- *      and added checking of return value of copy_to/from_user
+- *      calls in places that matter.
+- *    - Made proc_info reentrant by directly writing to the
+- *      buffer supplied by the caller.
+- *
+- *  Rev  6.05.00b1    December 20, 2002       RL
+- *    - Added send_els_passthru function and modified start_ms_cmd
+- *      to be used by both send_fcct and send_els_passthru.
+- *    - Modified ms_iocb definition to comply with latest 2300 spec. 
+- *
+- *  Rev  6.04.00b8    January 16, 2003        RA/DG/AV
+- *    - Use proper compiler flags when built with later GCC
+- *      versions (3.x).
+- *    - Rewrite initiator handling code:
+- *      - Use linked lists rather than a fixed-size array.
+- *      - Properly logout of intiator devices if found to be lost.
+- *      - Changes in qla2x00.c and qla2x00_ioctl.c.
+- *    - Fix lun suspension logic:
+- *      - Remove code in qla2x00_lun_alloc() which incorrectly
+- *        trashes a lun queue's q_count and q_max members.
+- *      - Properly move from a lun_queue NOT-ready state to a 
+- *        ready state when a command successfully completes in
+- *        qla2x00_callback().
+- *      - Add 'delay' logic to handle throttling scenario required
+- *        during a failback operation.
+- *    - Return a byte statistical quantity not mega-bytes in
+- *      qla2x00_get_(fc_)statistics() -- this change did not go
+- *      into 6.03.00b6 as indicated by the release notes. 
+- *    - Handle a SCSI_DATA_NONE data direction for a SCSI command.
+- *
+- *  Rev  6.04.00b7    Jan. 10 2003    DG/RA
+- *    - Added VMWARE support.
+- *    - fixed the bus reset and host reset when issued through
+- *      the backdoor by not waiting for commands which we dont own.
+- *
+- *  Rev  6.04.00b6    Jan. 8 2003     DG/RA
+- *    - Fixed hardware_lock hierarchy in qla2x00_cmd_timeout
+- *      routine to fix deadlock with interrupt handler. 
+- *
+- *  Rev  6.04.00b5    Jan. 8 2003     DG/AV
+- *    - Fix incorrect sizing of mbx_cmd_flags in structure
+- *      scsi_qla_host since bit-operators function on unsigned
+- *      long variables - in qla2x00.c.
+- *
+- *  Rev  6.04.00b4    December 19, 2002       RL/RA/DG/AV
+- *    - Increase IOCTL-passthru command timeout value (30->60).
+- *    - Update local definition of pci_set_dma_mask() to take an
+- *      u64 type rather than an dma_addr_t.
+- *    - Fix qla2100_nvram_config() to set the high-water IOCB limit
+- *      while configuring an QLA2100 HBA.
+- *    - Fixed potential panic in qla2x00_failback_luns() routine -
+- *      dereference a NULL fclun.
+- *
+- *  Rev  6.04.00b3    December 06, 2002       AV
+- *    - Fix binding algorithm in qla2x00_cfg_build_path_tree() to
+- *      support sparse targetIDs.
+- *    - Extend maximum number of failover paths to eight.
+- *
+- *  Rev  6.04.00b2    November 27, 2002       DG/RA/AV
+- *    - Pass portID information up to FO_CC_GET_TARGET_DATA ioctl
+- *      callers.
+- *    - Add support for PortID persistent binding:
+- *      - Module parameter name: Bind
+- *            o 0 by Portname (default)
+- *            o 1 by PortID
+- *            o 2 by Nodename
+- *      - Default behaviour is to bind by Portname.
+- *      - Update qla2x00_display_fc_names() to support new binding
+- *        methods -- varies by Bind type.
+- *      - Large #defing usage cleanup to more flexible module
+- *        parameter.
+- *    - Use various PCI/SCSI/endianess macros defined by the kernel
+- *      to reduce duplication.
+- *    - Streamline qla2x00_response_packet():
+- *      - Reduce multiple Register I/O writes to just one after
+- *        ring processing.
+- *    - Cleanup qla2x00_status_entry():
+- *      - Move common cases to the top of the switch statement
+- *        (CS_COMPLETE and CS_DATA_UNDERRUN).
+- *      - Refine data underrun handling, since it appears the
+- *        mid-layer underflow structure member for SCSI commands is
+- *        not consistently populated by the various upper-layers.
+- *    - Cleanup qla2x00_error_entry() to use pre-defined
+- *      descriptive values while interrogating a packet's
+- *      entry_status rather than raw BIT_* defines.
+- *    - Maintain 'RLC supported' state for an fcport, to limit
+- *      extraneous RLC commands.
+- *    - Initial qla2x00_isr() sanitization -- formating and
+- *      readability.
+- *    - In qla2x00_queuecommand(), return a command immediately, if
+- *      the port is found to be DEAD.
+- *    - Fix a dead-lock (logic) problem in
+- *      qla2x00_mailbox_command() where the code would attempt to
+- *      acquire a lock which had never been released.
+- *    - Add support for status continuation IOCB entries (extended
+- *      sense data).
+- *    - During loop transition, report back successfully completed
+- *      commands rather than blindly retry --
+- *      qla2x00_status_entry().
+- *    - Export ql2xretrycount as a module parameter.  Default value
+- *      in non-failover mode is 20, in failover mode, 30.
+- *    - Update Makefile to use 'install' rather than 'cp' as to
+- *      preserve uid/gid (Austin Gonyou).
+- *    - Consolidate duplicate code to set DMA mask --
+- *      qla2x00_config_dma_mask().
+- *    - Fix copy-error in qla2x00_send_fo_notification() where the
+- *      SCSI CDB would not be populated with the proper
+- *      notification CDB.
+- *    - In qla2x00_proc_info(), do not clear our buffer in case
+- *      another application is using it.
+- *    - Export a MODULE parameter, ql2xfailover, to allow failover
+- *      to be configured in at load time.
+- *
+- *        NOTE: Default behaviour is still based on the
+- *              compile-time option MPIO_SUPPORT.
+- *
+- *    - Add additional checks to ensure that the DPC routine has
+- *      already been created before trying to 'wake' it up.
+- *    - Add new 2300 IP/TP firmware (3.01.18).
+- *
+- *  Rev  6.04.00b1    November 4, 2002        DG
+- *    - Fixed ISP abort retry logic to retry the abort_ISP().
+- *    - Fixed port login logic to retry the login on ports that are
+- *      marked DEAD.
+- *    - Fixed issue of not loging in after loop is down for more than
+- *      4 mins.
+- *
+- *  Rev  6.03.00b10   October 31, 2002        DG
+- *    - Fixed the logic in qla2x00_mark_device_lost to not change the
+- *      state of the port if it is mark DEAD, but still schedule port
+- *      login retries.
+- *
+- *  Rev  6.03.00b9    October 30, 2002        DG
+- *    - Change LOOP DOWN timer to 4 mins and do a ISP abort if the f/w
+- *      never indicated that the cable is unplug and the timer expire. 
+- *
+- *  Rev  6.03.00      November 1, 2002        RA
+- *    - Changed the  message for SYS_ERR(0x8002) to log to message file
+- *      instead on the console.
+- *    - Formal release.  
+- *
+- *  Rev  6.03.00b8    October 28, 2002        RA/DG/AV
+- *    - Correct qla2x00_loopback_test() to return the proper mailbox
+- *      register values, additionally, the statistical values returned
+- *      are only valid upon a good loopback execution.
+- *    - Perform the INT_CC_READ_OPTION_ROM ioctl, only if the response
+- *      length is specified correctly -- as to limit reading partial
+- *      data.
+- *    - Move backdoor RESET handling to qla2x00_done() for proper 
+- *      processing.
+- *    - Given the two variants pci_set_dma_mask(), allow the
+- *      compiler to assist in setting the proper dma mask.
+- *    - Complete re-write of qla2x00_32bit_start_scsi():
+- *      - Provide similiar benefits as in 6.03.00b3-pre3.
+- *    - Add additional kernel 2.5 support (resync with 2.5.44):
+- *      - Header file cleanup.
+- *      - SCSI host template updates.
+- *      - Queue depth interface updates.
+- *    - Fix computation of normalized segment length in
+- *      qla2x00_normalize_dma_addr().
+- *    - Fix incorrect usage of head tag queueing while issuing an
+- *      RLC command during driver scan.
+- *    - Fix incorrect assignment of an fcport as LOST when it is
+- *      already in a DEAD state.
+- *    - Revert to OLD command data-direction determination (large,
+- *      and ineffiecient switch statement of recognized commands,
+- *      else check data-direction specified by command), since it
+- *      appears that a lldd cannot depend on the upper-layers to set
+- *      it correctly.
+- *
+- *      NOTE: This will *NOT* be the default behavior in the formal
+- *            release of the 6.03.00 driver.  From then on, the lldd
+- *            *will* depend on the upper-layers to specify the proper
+- *            data-direction in the SCSI command.
+- *
+- *  Rev  6.03.00b7    October 14, 2002        AV
+- *    - Enable flash operations before attempting read flash memory.
+- *    - Correct qla2x00_update_option_rom() to properly verify flash
+- *      buffer length.
+- *    - Correct additional little-endian assumptions in FC/IP driver
+- *      paths.
+- *
+- *  Rev  6.03.60      November 08, 2002       AV
+- *    - Special OEM release based on 6.03.00b6.
+- *
+- *  Rev  6.03.00b6    October 11, 2002        AV/DG
+- *    - Fix incorrect sizing of mbx_cmd_flags in structure
+- *      scsi_qla_host since bit-operators function on unsigned
+- *      long variables.
+- *    - Correct little-endian assumptions (across the board):
+- *      - ISP detection and intialization.
+- *      - SCSI I/O posting, receiving, and processing.
+- *      - IP command processing.
+- *    - Add support for PowerPC64 platform.
+- *    - Add flash image retrieval support:
+- *      - Flash manipulation code.
+- *      - Internal IOCTL support routine for application callers.
+- *    - Return a byte statistical quantity not mega-bytes in
+- *      qla2x00_get_(fc_)statistics(). 
+- *    - Fix failover during initialization limitation.  In
+- *      qla2x00_map_os_luns(), try any alternate paths if the 
+- *      preferred path is unavailable. 
+- *    - Remove extraneous logic that attempted to failback luns that
+- *      were found to be disconnected.
+- *
+- *  Rev  6.03.00b6-pre1       October 05, 2002        AV
+- *    - Fix qla2xxx_eh_device_reset() misuse of cmd->sp, since
+- *      there is no guarantee the command followed our standard
+- *      queuing path.
+- *    - Add flash update support:
+- *      - Retool flash read/write routines to work with
+- *        different flash manufacturers.
+- *    - Add additional kernel 2.5 support:
+- *      - no reparent_to_init() (Mike Anderson).
+- *    - Fix assignment bug in qla2x00_mbx_q_add() (Rick Cooper).
+- *      (ER20982)
+- *
+- *  Rev  6.03.00b5    October 02 2002         RA
+- *    - Added the logic to try to login in non fabric enviornment
+- *        (Direct Connect) by issuing login loop port mbx cmd. For
+- *        targets which silently go away and firmware has no way to
+- *        log back.
+- *
+- *  Rev  6.03.00b4    October 02 2002         AV
+- *    - Fix qla2x00_abort_command() to not issue an ISP abort if
+- *      the command abort fails.
+- *
+- *  Rev  6.03.00b3    October 02 2002         AV
+- *    - Formal beta release.
+- *    - Remove debug codes from EH and callback routines.
+- *    - The LOGOUT_AFTER_DEVICE_RESET function is still a work
+- *      in progress.
+- *
+- *  Rev  6.03.00b3-pre3       September 29 2002       AV
+- *    - Correct endian-ness issues while preparing an IOCB in
+- *      qla2x00_send_packet() -- should now work on
+- *      non little-endian machines.
+- *    - Cleanup definitions for ??_64BITS() macros.
+- *    - Complete re-write of qla2x00_64bit_start_scsi():
+- *      - Correct endian-ness issues while preparing IOCBs.
+- *      - Add fix to correct data segment 32bit page boundary
+- *        (hardware) limitations.
+- *      - Correct inefficiencies in IOCB preparation.
+- *      - Update firmware command timeout calculation.
+- *    - Makefile update -- during an install, the makefile will
+- *      now rename any qla2200 'addon' binaries to "*_rh.o"
+- *    - Update qla2x00_load_ram() to always use MBC_LOAD_RAM_A64
+- *      since previous code was needlessly ISP specific and
+- *      could potentially truncate a valid highmem address.
+- *    - Add additional kernel 2.5 support:
+- *      - MKDEV() -> mk_kdev() (Mike Anderson).
+- *      - MAJOR/MINOR() -> major/minor() (Mike Anderson).
+- *      - Remove emulated member from host template (Lincoln Dale).
+- *    - Fix qla2x00_status_entry() to not retry IOCTL generated 
+- *      commands.
+- *    - Update qla2x00_issue_iocb() to use MBC_IOCB_EXECUTE_A64
+- *      as to not truncate a valid highmem address.
+- *    - Fix pci_set_dma_mask() invocations as to not downcast
+- *      64-bit literals to a potential 32-bit type (dma_addr_t).
+- *    - In qla2x00_rpt_lun_discovery() do not retry the command if
+- *      the target does not support the REPORT LUNS cdb.
+- *    - In qla2x00_lun_discovery() clear fc_lun_t structure upon
+- *      allocation (incorrect stale data in fields).
+- *    - Update display of luns in /proc to not show 'disconnected'
+- *      (non-existent) luns.
+- *    - The check for 'ready' state in
+- *      qla2x00_check_for_devices_online() is too strict.  Loosen
+- *      restriction to allow a failback on all ONLINE ports.
+- *    - In qla2x00_failback_luns() do not try to failback to a DEAD
+- *      port.
+- *    - Add option (LOGOUT_AFTER_DEVICE_RESET) to explicitly logout
+- *      of a device after a device reset has been successfully 
+- *      issued -- a login will occur shortly after.  This is need
+- *      for some storage subsystems.
+- *
+- *  Rev  6.03b2               Sept 24, 2002       RA
+- *    - Fixed the compilation warnings on RedHat Dist.
+- *    - Added check not to wait for the commands to be returned by
+- *      the firmware if device_reset etc is issued through the backdoor.
+- *    - Do relogin for non-public devices also when firmware reports
+- *      command timeout along with logo(compl status=0x6 and logout(0x2000))
+- *
+- *  Rev  6.01/6.02b2/6.03b1   Sept 16, 2002       AV
+- *    - Corrected wrong setting in qla_setting.h file to
+- *      fix compile error with RH-AV. 
+- *
+- *  Rev  6.01/6.02b1  Sept 11, 2002       AV
+- *    - Fixed issue 225984 - Fixed reset logic to flush done queue
+- *      before returning to OS and retry an ABORT ISP call if it fails. 
+- *      Serialized the done processing when not using a tasklet. 
+- *    - Fixed 2200 performance issue using fastposting.
+- *    - Fix target reset logic to use the correct mailbox command. 
+- *
+- *  Rev  6.01         August 29, 2002       AV
+- *    - Formal release.
+- *    - Update README to reflect support of later Redhat releases.
+- *
+- *  Rev  6.1b5                August 20, 2002       AV/DG
+- *    - Fix mis-use of stale SP after re-addition to the free
+- *      queue -- qla2x00_callback().
+- *    - Fix mis-use of invalid loop id during a LIP caused by
+- *      an initiator device -- qla2x00_device_resync().
+- *    - Update IOCTL passthru code to fully support CBD lengths
+- *      of 16 bytes with later kernels.  Earlier kernels supported
+- *      CDB sizes of 12 bytes only -- thus the workaround.
+- *    - Add initial kernel 2.5 support:
+- *      - Removal of io_request_lock in favor of host->host_lock
+- *        (Mike Anderson).
+- *    - Return -EINVAL for all non-EXIOCT ioctls (Mike Anderson).
+- *    - Remove extra 'continue' statement in qla2x00_proc_info()
+- *      which effectively disabled the display of luns.
+- *    - Remove dead-code from qla_ip.c.
+- *
+- *  Rev  6.1b4                August 09, 2002       AV/DG
+- *    - Remove qla_dbg.h and qla_def.h files from driver
+- *      distribution.
+- *    - Remove all virt_to_* calls in both SCSI/IP driver sources.
+- *      - 64bit DMA addressing through dma_addr_t.
+- *    - Cleanup structure names/member variables from IP sources.
+- *    - Add QL_DEBUG_LEVEL_12 for IP debugging.
+- *    - Add transmission timeout callback for IP driver.
+- *    - Enable SRAM, Instruction RAM and GP RAM parity checks on
+- *      ISP2300s.
+- *    - Display all luns recognized by driver in /proc, not just
+- *      SCSI mid-layer scanned luns.  Luns not scanned by the mid-
+- *      layer are marked with an asterisk (*).
+- *      - Add FC_SUPPORT_RPT_LUNS flag to the struct fc_port.flags.
+- *        Set, if the device supported the report luns command.
+- *    - Increase Inquiry request buffer to 36 rather than 4.  Some
+- *      target devices have problems with the small transfer.
+- *    - Fix assignment of current_speed during an asyncronous event
+- *      MBA_LOOP_UP.  Improper connection speed was being reported
+- *      to EXIOCTs and IP driver.
+- *    - Add ISP2100 support:
+- *      - QLogic provides no support for the ISP2100.
+- *      - compiled binary name qla2100.o.
+- *      - Forward-port chip support from 5.[2|3]x series driver.
+- *      - Update Makefile.kernel and Config.in.
+- *      - add new 2100 TP firmware (1.19.24).
+- *    - Fix copy-error in qla2x00_fo_get_params() where the
+- *      qla_fo_params notification CDB would be zero'd-out.
+- *    - Fix kernel-oops when DEBUG level 5 is enabled and a command
+- *      is sent to a non-existent lun.
+- *    - Fix in-kernel compilation problem (Veritas).
+- *    - Remove superfluous KMALLOC*/KMFREE/BZERO/BCOPY/
+- *      BCMP/qla_bcopy defines and functions.
+- *    - Remove unused ql_list_link structures and functions.
+- *    - Consistent use of copy_to/from_user() functions (RH).
+- *    - Consistent use of struct scsi_qla_host instead of
+- *      several aliases (RH).
+- *    - Remove illegal usage of caddr_t (RH).
+- *    - Remove Target-Mode support from driver.
+- *    - Cleanup qla_fo.c file:
+- *      - Remove old debugging code.
+- *      - General sanitizing.
+- *    - Modify SCSI template name (QLogic)
+- *    - Cleanup compiler warnings during debug builds.
+- *    - Add new 2300 IP/TP firmware (3.01.13).
+- *
+- *  Rev  6.1b3                June 12, 2002       RA
+- *    - Non-released driver - version number skipped due to Combo
+- *      package release to OEM.
+- *
+- *  Rev  6.1b2                June 08, 2002       AV/DG
+- *    - Fix issue where the report-luns logic would interpret
+- *      data on an incorrect status from the device.
+- *    - Fix issue where a loopback request was not being issued
+- *      if the HBA loop status was not ready -- Callers of the 
+- *      IOCTL expect the FW to handle this condition and return 
+- *      the proper status.
+- *    - Clean-up IP support callback mechanism -- explicit
+- *      export of a single *_ip_inquiry() call that returns
+- *      specific interface function pointers. Each ISP driver
+- *      now has its own *_ip_inquiry() function
+- *      (qla2200_ip_inquiry() and qla2300_ip_inquiry()).
+- *    - Remove inter-dependencies between 2200/2300 compiled
+- *      drivers.
+- *    - Fix issue where del_timer()/add_timer() combination in 
+- *      RESTART_TIMER macro would cause a race condition during
+- *      module unloading -- use mod_timer().
+- *    - Cleanup spinlock initialisation -- spin_lock_init()
+- *      macro (FalconStor).
+- *    - Add CONFIG_MD_MULTIHOST support (FalconStor).
+- *    - Add SCSI add-single-device support (FalconStor).
+- *    - Added new 2300 IP/TP firmware (3.01.11).
+- *    - Added new 2200 IP/TP firmware (2.02.03).
+- *
+- *  Rev  6.1b1                June 14, 2002       AV/DG
+- *    - Integrate IP backdoor updates.
+- *    - Add CACHE_LINE flush before updating request-ring
+- *      indexes to address spurious hardware hangs.
+- *    - Add hardware_lock'ed qla2x00_marker() function for
+- *      IP integration layer.
+- *    - Remove busy-wait during qla2x00_fw_ready().
+- *    - Remove extraneous display of adapter node/port
+- *      information.
+- *    - Fix issue with the register_fc4 function not sending
+- *      the appropriate amount of data to the firmware.
+- *    - Ip_inquiry should query off the ha's instance number,
+- *      not host_no during IP capable scan of HBAs.
+- *    - Add 'hardware locked' logic to IP integration functions:
+- *      qla2x00_add_buffers(), qla2x00_ip_send_login_port_iocb(),
+- *      and qla2x00_ip_send_logout_port_iocb() functions.
+- *    - Add IP /proc file information text.
+- *    - Indentation and debug-level cleanup.
++ *  Rev  7.00.00b22           Apr 2, 2004     RA,DG,AV
++ *    - Remove TASK_INTERRUPTIBLE to TASK_UNINTERRUPTIBLE
++ *    - Remove incorrect assignment of ha->retry_count to 
++ *      login retry count;
++ *    - RHEL/SLES8 differences when compiling the driver
++ *      on x86_64 and PPC64
++ *    - Fixed boundary check for queuedepth value.
++ *    - ER36592:Fixed the query_hba_port() ioctl call to check
++ *      for LOOP_DEAD state to report correct hba port state
++ *      when link down timeout is non zero.
++ *
++ *  Rev  7.00.00b21           Mar 30, 2004    RA
++ *    - Updated the QLA23XX Firmware to v3.02.27
++ *
++ *  Rev  7.00.00b21test               Mar 17, 2004    DG,RA,AV
++ *    - Add feature to initiate a LIP via /proc interface.
++ *      Similiar to rescan.
++ *    - DEBUG3 fixes when qla2x00_allocate_path() fails.  I
++ *      hope RA is ok with this version :)
++ *    - Revert to old method of returning BIOS version until
++ *        some concensus has been formed on where the driver
++ *      should return the information.
++ *    - Fixed target information in proc info rouitne, so it displays
++ *      the correct target.
++ *
++ *  Rev  7.00.00b20           Mar 9, 2004     DG
++ *    - PortID binding
++ *    - 2100/2200 panic during firmware load
++ *    - qla2x00_get_link_status() loop_id fix
++ *    - INQ fix to not assume a fabric device when fw
++ *    - returns CS_PORT_LOGGED_OUT
++ *    - Return true nodename for XP device during
++ *     get_port_summary.
++ *    - Tape command handling forward-ported from 6.06.64
++ *    - Dereference a NULL pointer after allocate_path().
++ *    - Perform proper check of START_STOP command in 
++ *    - qla2x00_queuecommand(), dereference a command's cmnd[]
++ *     array, not its sc_data_direction.
++ *    - Response ring check refinement in qla2x00_queuecommand().
++ *    - As per RH comments, back-out PLUG-TIMER and scsi-affine
++ *     'performace patches'
++ *
++ *  Rev  7.00.00b19           Mar 9, 2004     DG
++ *  Rev  7.00.00b19-test1     Mar 9, 2004     DG
++ *    - Added logic to detect "NOT READY" when a different host failover a 
++ *      shared port on the EVA.
++ *     
++ *  Rev  7.00.00b18   Mar 4, 2004     DG
++ *    - Skip trying to failover a controller lun this causes the no matching
++ *     lun error.
++ *    - Eliminate the temporary failover queue. 
++ *    - Enhance the logic for finding active paths to speed up failover. 
++ *
++ *  Rev  7.00.00b17   Feb 24, 2004    RA
++ *    - Fixed Oops with multiple FO targets when we can't find
++ *    a matching lun.
++ *    - Fixed issue cause by LOOP going DEAD before port.
+  * 
+- *  Rev        6.0            June 13, 2002           DG
+- *    - Released
++ *  Rev  7.00.00b16   Feb 20, 2004    RA
++ *    - Updated the QLA23XX FW to v3.02.24
++ *
++ *  Rev  7.00.00b15   Feb 11, 2004    DG/RA/AV
++ *    - Fix endianess issues while preparing command IOCBs.
++ *    - Only perform lun discovery on target-type fcports.
++ *    - Build qla_opts with proper host CC.
++ *
++ *  Rev  7.00.00b14   Feb 10, 2004    DG
++ *    - Added logic to detect and failover the port when a shared 
++ *      port on the MSA1000 is switched to the standby port by a 
++ *      different host. 
++ *    - Always export HSG80 ports in failover mode.
++ *    - Added support to reset luns on EVA after failover.
++ *    - qla2x00_configure_loop() fix when an RSCN occurs 
++ *      during the configure_loop routine.
++ *    - FCP protocol error check during qla2x00_status_entry() 
++ *    - Added code review changes (RH) 
++ *
++ *  Rev  7.00.00b13   Feb 4, 2004     DG
++ *    - RIO fix for big endian platforms.
++ *    - Eliminate checking initiators while processing fcport list. 
++ *    - New 23xx ip/flx firmware version  3.02.22
++ *    - Increase driver timeout value to (2.5 * RATOV) for RATOV events.
++ *    - Honoring "ConfigRequired=1" in mon-failover mode. 
++ *    - Added logic to block i/o during failoer mapping.
++ *
++ *  Rev  7.00.00b12   January 30, 2004        DG
++ *    Fixed issue in port scan logic with adding luns dynamically.
++ *
++ *  Rev  7.00.00b11   January 26, 2004        DG
++ *    Updated to Firmware Version 3.21.04 (16:56 Jan 23, 2004) (flx)
++ *
++ *  Rev  7.00.00b10   January 20, 2004        DG
++ *    - Updated f/w to v3.02.21
++ *
++ *  Rev  7.00.00b9    January 13, 2004        DG
++ *    - Fixed panic in select_next_path() 
++ *
++ *  Rev  7.00.00b7,b8 January 5, 2004         DG
++ *    - Added EVA support to failover code.
++ *    - Improve smart failover to know when port
++ *      has run-out-of HBAs paths.
++ *
++ *  Rev  7.00.00b6    January 5, 2004         AV
++ *    - Add backed-out changes from beta 3 to 5.
++ *    - Remove unused 63xx functions (check_topology()).
++ *
++ *  Rev  7.00.00b5    December 22, 2003       DG
++ *    - merge 63xx 
++ *
++ *  Rev  7.00.00b3    December 10, 2003       DG/AG
++ *    - Resync with 6.07.00b14.
++ *    - PCI Posting fixes.
++ *    - Configure DMA addressing before issuing any allocations.
++ *    - Add support for RHEL3 specific Scsi_Host members.
++ *    - Remove unused HOTSWAP/GAMAP/FLASH_DATABASE functions.
++ *    - Fix for infinite loop in qla2x00_wait_for _hba_online()
++ *    - Fix to purge all requests for a given target from retry_q
++ *      on eh_resets.
++ *    - Changes for common qla2x00.c for qla200
++ *    - Merge several patches from Mark Bellon
++ *      [mbellon@mvista.com]:
++ *      - Interrupt latency rework.
++ *      - Add extended information to /proc (Ohm Terminations and
++ *        Data Rate).
++ *      - Convert little-endian firmware data from Get Link
++ *        Statistics mailbox call to appropriate host endianess.
++ *    - Add support for FDMI 'Host Name' port attribute.
++ *
++ *  Rev  7.00.00b2    Nov14, 2003 RA
++ *    - Fixed the issue where port id was overwritten when
++ *      switched to gan
++ *    - Zero out the swl buffer when doing fabric discovery
++ *    - Removed the leftover fabricid array causing buffer
++ *      overflow
++ *    - Consolidated the code to compile acroos v7.x and v1.x
++ *      driver.
++ *    - Added the support for qla200 in qla_opts.
++ *    - Wait for 60 sec during F/W ready during init time only.
++ *    - Added the support for ISP200.
++ *
++ *  Rev  7.00.00b1    Oct 28, 2003 AV/RA
++ *    - Consolidated the fabric device list 
++ *    - Added the 16 bit loop id support
++ *    - Added the support for 2300/2322 Extended F/w interface.
++ *    - Added the support to compile without failover module as 
++ *      source pkg.   
++ *    - Fixed bug in configure_loop where it will loop forever.
++ *    - Separated the Port state used for routing of I/O's from
++ *    - port mgmt-login retry etc.
++ *    - Based on 6.07.00b9plus
+  *
+- *  Rev  6.0b26-PLUS/b27   May   23, 2002       ??/??/??
+- *    - Correct IOCTL return code when an invalid signature is
+- *      passed in the EXT_IOCTL request.
+- *    - Remove unused defines KERNEL_SEM_BUG and NEW_EH_CODE.
+- *    - Added new 2300 IP/TP firmware (3.01.09).
+- *
+- *  Rev  6.0b26        May   23, 2002       RA/DG/AV
+- *    - Fixed issue with device_reset so it uses the
+- *      correct adapter in failover mode. 
+- *    - Add logic to track usage of the iocb and prevent
+- *      the firmware from running short.
+- *    - Increase suspend time for LUN "Not Ready" conditions
+- *      from 18 secs to a max of 30 secs.
+- *    - Added option to display the configuraation info in
+- *      failover mode.
+- *    - Fix FC passthru IOCTL interface to only return the
+- *      low-order byte of the scsi status.
+- *
+- *  Rev  6.0b25        May   20, 2002       RA/DG/AV/RL
+- *    - Issue RLC command immediately to determine lun list.
+- *    - Remove extraneous logic that removes commands from the
+- *      pending queue when the loop is down or a destination device
+- *        is found to be off-line.
+- *    - In failover mode, add an extra second to the command timeout
+- *      for additional internal processing.
+- *    - Add descriptions for module options. 
+- *    - Simplify locking in qla2x00_cmd_timeout().
+- *    - Fix memory-mapped I/O usage. 
+- *    - Fix the potential panic during error recovery when a command
+- *      is not returned during an abort resulting in dual instances
+- *      of a command's SRB.
+- *    - Clean-up processing of interrupts during error-recovery
+- *      mode.
+- *    - Changed back get_disc_port IOCTL behaviour so now it returns
+- *      next available device instance info when a port/target
+- *      device is disconnected.  The change was added and now
+- *      removed by customer request.  This is now pre-b13 behaviour.
+- *    - Added new 2300 IP/TP firmware (3.01.08).
+- *
+- *  Rev  6.0b24-test1  May   07, 2002       TWT
+- *    - Added IPFC support.
+- *
+- *  Rev  6.0b24              May   06, 2002       DG
+- *    - Fix potential panic when configuration data exists for a device
+- *      that is off-line.
+- *
+- *  Rev  6.0b23              May   06, 2002       RA/RL
+- *    - Added the new setup() routine for lk>=2.4 and above to handle the 
+- *      kernel command line parameter.
+- *    - Set BIT_1 when issuing login_fabric() from the ioctl to take
+- *      care of McData issue.         
+- *
+- *  Rev  6.0b22-test2  April 30, 2002       DG
+- *    - Made tasklet a compile time option.
+- *    - Fixed mailbox timeouts on first mailbox command after polling.
+- *    - Fixed MPIO issue of requests setting in pending queue after 
+- *      resync of second adapter.
+- *
+- *  Rev  6.0b22-test1  April 29, 2002       RA/AV
+- *    - Updated makefile to add the support for all the arch-i386/i486/i586
+- *      /i686 -especially to address the skipjack issue.
+- *    - Set the right host status when device returns queue full.
+- *
+- *  Rev  6.0b22        April 26, 2002       RL/AV
+- *    - Corrected usage of pci info by directly getting it from ha->pdev.
+- *      This fixes problem with referencing the now uninitialized
+- *      fields of ha->pci_bus and ha->pci_device_fn from various
+- *      places including ioctl calls.
+- *    - Corrected HBA port state value returned in ioctl call.
+- *    - Corrected saving of failover path ID.
+- *    - Added passing of SRB_IOCTL flag via the CMD_RESID_LEN(cmd) field
+- *      from scsi passthru ioctl so the passthru IO won't get retried.
+- *    - Added checking of SRB_IOCTL in regular IO path so we do not
+- *      retry these IOs.
+- *    - Enabled ABORT_TARGET mailbox command to clear reservation.
+- *    - Replaced set_cache_line function with RedHat implementation.
+- *    - Cleaned up variable names in cmd_timeout.
+- *
+- *  Rev  6.0b21-test2  April 24, 2002       DG
+- *    - Fixed Oops in qla2x00_next() when starting new command 
+- *      after a resync. 
+- *    - Fixed issues in failover code.
+- *    - Added back suspend lun support.
+- *
+- *  Rev  6.0b21-test1  April 18, 2002       AV
+- *    - Remove per-lun pending queues in favor of a simplified
+- *      single adapter pending queue for all queued commands
+- *      issued to the adapter.
+- *    - Cleanup global detect semaphore name usage.
+- *    - Simplify the queue command process by postponing expensive
+- *      backend checks to the qla2x00_next() function. 
+- *    - Remove all NOP *_LOCK/UNLOCK macros.  These macros are no
+- *      longer needed with the 6.x series drivers. 
+- *    - Removed all OLD error-handling code. 
+- *    - Simplify the SCSI host template -- remove references to
+- *      OLD error-handling routines.
+- *
+- *  Rev  6.0b21        April 17, 2002       RL
+- *    - Added more error handling code for send_fcct ioctl command,
+- *      and fixed a panic problem by using dummy tgt/lun q structures.
+- *    - Added get/set RNID related mailbox commands and ioctl support.
+- *    - Fixed compile warning by defining pci_set_dma_mask function
+- *      for kernel version < 2.4.3.
+- *    - Moved sp_get and sp_put back to qla2x00.c.
+- *    - Some indentation clean up and ioctl debug level clean up.
+- *
+- *  Rev  6.0b20        April 15, 2002       RA
+- *    - Added HSG80 flag in makefile to define COMPAQ(-DCOMPAQ) compilation
+- *      flag.
+- *    - Added HSG80_PORT_RETRY_COUNT macro for COMPAQ-HSG80.
+- *
+- *  Rev  6.0b19        April 10, 2002       RA
+- *      - Use pci_set_dma_mask() to set up 64bit/32bit instead of
+- *      CONFIG_HIGHMEM.
+- *      - Renamed RETRY_FOR_NOT_READY back to COMPAQ-By default disabled.
+- *
+- *  Rev  6.0b18        April 10, 2002       AV/RA
+- *    - With Indent-8 tabs formatted all of the driver files.
+- *    - Removed the left over serial console support.
+- *    - Changed the debug routines to  linux style.     
+- *    - Change places where we use SYS_DELAY to udelay/barrier()
+- *    - Fix bugs wwrt to >> 32 of 32 bit variables.
+- *    - Cleaned up the support for lk < 2.4  kernel. 
+- *    - Fixed missing wakeups of the  dpc thread  
+- *    - Added barrier() between subsequent reads in
+- *       qla2x00_debounce_register();  
+- *      
+- *  Rev  6.0b17        April 09, 2002       AV/RL/RA
+- *    - Deleted all direct references to qla2x00_callback outside
+- *      of sp_put and __sp_put functions, so the sp->ref_count
+- *      is decremented correctly before going back to free pool.
+- *      This fixed IO timeout/hang after some direct qla2x00_callback
+- *      calls are invoked.
+- *    - Fixed panic from ioctl passthru command which makes separate call
+- *      to allocate new sp by deleting the zeroing out of sp content after
+- *      calling get_new_sp.  We should not overwrite sp content
+- *      because get_new_sp initializes some fields to non-zero. 
+- *    - Moved the call to rpt_lun_discovery to later so that LUN 0 will
+- *      always be allocated regardless of the actual LUN list
+- *      returned. This allows kernel to continue scanning past
+- *      a non-existent LUN 0.
+- *    - Added output of the following to proc_info per customer
+- *      request:
+- *      'Number of reqs in scsi_retry_q', 'Number of reqs in failover_q',
+- *      'Device queue depth'.
+- *    - Added qlport_down_retry as a new driver parameter per customer
+- *      request.
+- *    - Changed ioctl busy polling interval to 1 second instead of
+- *      1 tick.  1 tick is unrealistic.
+- *    - Added more ioctl function description headers.
+- *
+- *  Rev  6.0b16        April 08, 2002       RA/AV/RL
+- *     - Added the support to recognise medium changer type
+- *       as Tape devive(inq[0] == 8).
+- *     - For Not Ready case suspend the lun only for Hard Disk Device 
+- *       type.                
+- *     - Nuked the support for FC_VI.
+- *     - Before examining the scsi status Mask of the reserved bits 12-15.
+- *     - Added the CONFIG_HIGHMEM support for 64bit dma addresing on 32bit
+- *         platform.
+- *     - Renamed file- settings.h as qla_settings.h
+- *     - Debug macros moved from qla2x00.c to qla_debug.h and made
+- *       statement like.
+- *     - Removed serial console code.        
+- *     - Added the missing hardware lock in eh_abort when searching the "sp"
+- *       in the active array. 
+- *     - Added  loop state and number of free srb's in the /proc
+- *     - Changed to use kernel interface or routines(ex-readb())
+- *       for Memory Mapped I/O.
+- *     - Cleaned up qla2x00_pci_config() routine.
+- *     - Renamed COMPAQ flag to G80. 
+- *     - Set the port_down_retry_count to 30 if in the nvram its  configured
+- *       less than 30.Need enough time to try and get the port back    
+- *     - Get  rid of the lun_list field in the inq_cmd_rsp structure.
+- *     - Check for abort_active/reconfiguration/recovery active state
+- *       before issuing get_link_status mbx cmd.
+- *     - Renamed qla2200_nvram_config() to qla2x00_nvram_config()
+- *     - Need to get rid of caddr_t as its illegal in the kernel-????
+- *     - Add ref_count to the "sp" structure, needed to keep locking sane
+- *       over functions that sleep.Added sp_get() and sp_put() .       
+- *     - Use Report Luns (RLC) for lun discovery process.
+- *     - Use a consistent set of command structures during SNS queries --
+- *       add sns_cmd_rsp_t structure.
+- *     - Fix issue where SNS query would return too much data for
+- *       the firmware to handle -- explicitely define the maximum amount
+- *       of double-words in the SNS request.
+- *     - Changed VIRT_TO_BUS/KMALLOC to pci_alloc_consistent() in qla_fo.c
+- *     - Updated README.qla2x00
+- * 
+- *  Rev  6.0b15        April 05, 2002       DG/RA/RL
+- *     - Corrected more local dpc flag checking in configure_loop.
+- *       This fixed problem not calling correct functions based
+- *       on correct flags.
+- *     - Deleted hardcoded port_down_retry_count.
+- *     - Corrected macros used to split up dma physical address
+- *       for use by registers. Now the macros work on both 32bit
+- *       and 64 bit platforms.
+- *     - More dma_addr_t function parameter type correction.
+- *     - Added update of port_id in build_fcport_list function
+- *       when updating a pre-existed port. This fixed problem
+- *       of not able to login after the port location has been
+- *       changed.
+- *     - Return a different status for 4006 error from login fabric
+- *       mbx cmd so we don't retry anymore.
+- *
+- *  Rev  6.0b14        April 04, 2002       DG/RA/RL/AV
+- *     - Fixed query_disc_port ioctl not returning correct port
+- *       state.
+- *     - Changed port_down_retry_count to 32.
+- *     - Corrected local dpc flag variable checking in configure_loop
+- *       to use bit manipulation functions instead of C style bit
+- *       checking.  This results in correctly log out lost 
+- *       fabric ports.
+- *     - Corrected qla2x00_send_sns function parameter type for
+- *       physical address to use dma_addr_t.
+- *     - Added PCI module device table.
+- *     - Updated README file with Suse ramdisk info.
+- *
+- *  Rev  6.0b13        April 03, 2002       DG/RA/RL/AV
+- *    - Fixed the makefile issue: corrected documentation,
+- *      and makefile syntax problem (making both drivers when
+- *      only one is asked for).
+- *    - Reduced stack size in functions using over 0x200 bytes
+- *      stack space: qla2x00_set_lun_data_from_config,
+- *      qla2x00_cfg_build_path_tree, qla2x00_aen_get,
+- *      qla2x00_query_hba_node, qla2x00_get_port_summary,
+- *      qla2x00_send_fcct.
+- *    - Changed get_disc_port ioctl behavior which returns next
+- *      available device instance info when a port/target is
+- *      disconnected. Now return error when query for lost port.
+- *    - Moved the allocation of host database to outside of the adapter
+- *      structure allocation to avoid the allocation size limitation in
+- *      the scsi_register function.
+- *    - Changed qla2100_ function names to qla2x00_ prefix.
+- *    - Changed previous qla2100_print calls to use printk.
+- *    - Cleaned up compile warnings.
+- *    - Added the support in README.qla2x00 to build the driver as part of the
+- *      kernel.
+- 
+- *         
+- *  Rev  6.0b12        April 01, 2002       DG/RA QLogic
+- *       - Fixed the port login stuff-not trying to login even the port was
+- *         marked as lost unless RSCN happens and we do a loop resync.
+- *       - Copy the done queue into local queue in qla2x00_done() such that we
+- *         do not wind up calling done queue takslet for the same IOs from DPC
+- *       or any other place.
+- * 
+- *  Rev  6.0b11        April 01, 2002       RL/RA QLogic
+- *    - Added initialization of the new lun q lock for ioctl_lq.
+- *      This fixes passthru ioctl hanging problem.
+- *      - Added the missing hardware lock in qla2x00_process_risc_intrs()
+- *        when we call qla2100_isr().
+- *
+- *  Rev  6.0b10        March 29, 2002       DG QLogic
+- *    - Added new support for suspending the lun on "not ready"
+- *      conditions.
+- *    - Deleted extra usage of io_request lock in fc_scsi and
+- *      scsi3 passthru ioctl functions.
+- *    - Updated README file.
+- *
+- *  Rev  6.0b9         March 28, 2002       RA/DG/RL/JJ QLogic
+- *    - Added use of additional fields in Scsi_Cmnd to save IO
+- *      status related values for ioctl SCSI/FCCT passthru cmd
+- *      processing.
+- *    - Added scsi3_passthru function to process 16 byte CDBs
+- *      whose fclun value can be in either VSA or PDA format.
+- *    - Added device and bus reset new error handling functions.
+- *    - Added option and code to handle register_fc4.
+- *
+- *  Rev  6.0b8         March 27,2002        RA/DG/RL QLogic
+- *      - Set the host_byte status correctly in process_completed_request().
+- *    - Fixed the stack overflow in configure_fabric() qla2x00_ioctl()
+- *      and qla2x00_fo_ioctl() routine.
+- *      - Cover the case in eh_host_reset() where abort_isp is already active.
+- *    - Release the hardware lock before we return in reset_chip() routine.
+- *      - Added the support to grab the io_request_lock back in the queuecommand
+- *      after adding the request to scsi_retry_queue.
+- *      - Fixed the issue in the detect routine where we dont hang around for 
+- *      the  devices to come online. 
+- *      -Implemented scsi_retry_queue stuff.
+- *    -Added the function headers for qla2x00_process_risc_intrs
+- *       and qla2x00_process_completed_requests
+- *    -Got rid of abort_q_put() ,abort_q_get() cmd_wait(),
+- *     qla2100_return_status()  routines and ABORT lock.
+- *      -Added the support for  2.5.7>lk>=2.4.8 in Scsi Host TEMPLATE.
+-
+- *  Rev  6.0b7          March 20, 2002       JJ QLogic
+- *    - Change not to use the first slot (0) of the outstanding_cmd
+- *      array, since we will put NULL handle for a completed cmd.
+- *    - Implement new hardware lock in place of io_request_lock
+- *      in order to improve performance.
+- *    - Save ha in srb_t when being inserted into the failover
+- *      queue so we know which ha to look for when that cmd is
+- *      timed out.
+- *    - Add aborting isp if abort command failed.
+- *    - Fix cmd_timeout routine to get the valid ha for the
+- *      fail-over driver.
+- *
+- * Rev  6.0b6           March 20, 2002                RL QLogic
+- *    - New PCI device registration and API support for 2.4.0 and
+- *      above only.
+- *    - Template change (previously done).
+- *    - Remove explicit virt_to_* calls in foavor of
+- *      *_alloc_consistent.
+- *    - Only allow compilation on 2.4.0 machines and above.
+- *    - Corrected ioctl hang due to SETINSTANCE command.
+- *    - Added io_request lock in FCCT passthru function when issuing
+- *      login_fabric mbx cmd.
+- *    - Corrected issue_iocb parameter as referenced in qla_fo.c.
+- *
+- * Rev  6.0b5           March 14, 2002                RL QLogic
+- *    - Added qla2200.c and qla2300.c files to enable separate
+- *      driver make in RedHat kernel source directory.
+- *    - Added/enabled two new error handling functions: eh_abort and
+- *      eh_host_reset.
+- *    - Changed issue_iocb prototype to pass in the buffer physical address
+- *      value.
+- *    - Changed request_region function (in register_with_Linux) to use
+- *      correct driver name string.
+- *    - Added release_region if request_irq function failed (in
+- *      register_with_Linux).
+- *    - Moved the enabling of host interrupt (in mbx cmd issuing) to just
+- *      before going to sleep waiting for completion.
+- *
+- * Rev  6.0b4           March 11, 2002                RA QLogic
+- *       - Fixed the panic in the loop reset routine where we trying to
+- *         derefernce tgt queue even if its NULL. 
+- *       - Changed the MAX_SRBS count to 4096.
+- *       - Changed to dma_addr_t instead of depending on BITS_PER_LONG
+- *       macro in get_port_database.
+- *       - Changed README.qla2x00-Support for 2.4.x only.
+- *
+- * Rev  6.0b3           March    08,2002       RA QLogic
+- *       - Fixed the panic in abort routine- where we try to dereference  
+- *         "sp" even its NULL causing to panic.
+- *       - Partially cleaned up compiler warning.
+- *         
+- * Rev  6.0b2           March    07,2002       RA QLogic
+- *       - Update 2200(v2.02.01) and 2300(v3.1.02) firmware. 
+- *       - Instead of depending on BITS_PER_LONG macro to 
+- *       figure out whether address will be 64 bit or 32 bit
+- *       ,changed it to dma_addr_t data type .Even on 32bit system
+- *       if there is high memory support it will be 64bit instead of 32bit.
+- *       - Earlier we used to call qla2100_callback directly in qla2x00_ms_entry
+- *       routine.But now its dangerous to do so.As we zero out the
+- *         sp pointer in the cmd just before calling scsi_done().So we just
+- *         the "sp" in done_queue  and let the tasklet process it later.
+- * Rev  6.0b1           March    06,2002       RA,DG QLogic
+- *       - Started with Driver Version-5.38b16 as the base.
+- *       - Initial release of the 6 series driver, with all the
+- *       changes ported from the  4.x series driver(mentioned below). 
+- *       - Now we keep track of the loop_id, so that we can log
+- *       into that port successfully when it comes back.
+- *       - All the options setting has been moved from qla2x00.c to settings.h
+- *         file.
+- *     -Added the support from NEW Error Handling Code perspective.
+- *        Right now the  macro(NEW_EH_CODE) is turned off till we 
+- *        completely fix all the issue related to  NEW_EH_CODE in the driver.
+-
+-/****************************************************************************
+- *    Changes Ported from 4.x Driver:
+-
+-        -Changed malloc.h to use slab.h to get rid of the compiler warning 
+-         message.
+-      -Use del_timer_sync to delete qla2100_timer for lk > 2.4.0
+-      -Send marker only at one place ie when we are about to send out
+-       the commands to  the ISP except during initialize_adapter().
+-      -Added the marker support for 64bit_start_scsi.
+-      -Initialized the different queues.
+-                PENDING QUEUE:-Initialized in lun_alloc()
+-                RETRY   QUEUE:- ""         in detect()
+-                DONE    QUEUE :- ""        in detect()
+-                ACTIVE    QUEUE :
+-                FAILOVER QUEUE  : ""       in detect()
+-                FREE     QUEUE:- Initialised in allocate_sp_pool()
+-      -Got rid of udelay in mem_alloc() routine.
+-      -Got rid of support for lk<2.4 in mem_alloc() and mem_free() routines.
+-      -Allocating sp during initialisation instead of on the fly.
+-      -Added the timer for each command.
+-
+-        -Modified the different queues to use kernel list macro for
+-         queue management.Using one lock ie "list_lock" to protect 
+-         different queues.
+-        -Added qla2x00_free_sp_pool() routine to release the sp_pool memory
+-         when we unload the driver. 
+-        - Modified the qla2x00_next() prototype to pass vis_ha except in done.
+-      -Introduced Port state:DEAD,LOST and ONLINE .
+-      -Fixed the QLA2X00_FAILURE macro.
+-      -Fixed the abort routine-retry queue or failoever queue will be on the 
+-         real HBA.
+-      -Added the ql2xlogintimeout stuff-Instead of 4sec,firmware will be using
+-         20 secs initially(2*ratov value) to login into the switch for ED1032.
+-      -Added the retry logic to login into the switch.
+-      -Added the code to kick off port_down_retry timer when we get 28-29 
+-       compl status but the firmware is not quick enough to report
+-         that the device is missing.
+-      -Now using macros to fix the wraparound situation for jiffies.
+-      -Fixed the qla2x00_abort_queue().Instead of calling callback directly,
+-         all the requests after being deleted from the lun_queue will be put 
+-       in the done_queue().
+-      -Fixed port logic in dpc to restore loop id in the fcport structure.
+-      -Changed fcport->state to atomic.
+-      -Changed the status_entry rotuine to check for completion first and then
+-         scsi status.
+-      - Change state of "sp" to ACTIVE STATE when we issue it to RISC.
+-
+-******************************************************************************/
+-
+-
+-
+-
+-
+-
+diff -uprN linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/SUPPORTED_KERNEL_VERSION.txt linux-2.4.21-x86_64/drivers/scsi/qla2xxx/SUPPORTED_KERNEL_VERSION.txt
+--- linux-2.4.21-x86_64.orig/drivers/scsi/qla2xxx/SUPPORTED_KERNEL_VERSION.txt 1969-12-31 16:00:00.000000000 -0800
++++ linux-2.4.21-x86_64/drivers/scsi/qla2xxx/SUPPORTED_KERNEL_VERSION.txt      2004-04-22 19:42:21.000000000 -0700
+@@ -0,0 +1,23 @@
++                        QLogic Fibre Channel Driver
++        for Red Hat Linux 8.0, 9.0, Advanced Server 2.1, and RHEL 3
++                             and SLES 8
++
++
++The following distributions and versions of Linux kernels have been tested 
++with this release driver:
++
++IA-32:
++------
++      - Red Hat Linux 8.0 (kernel 2.4.20-18.8)
++      - Red Hat Linux 9.0 (kernel 2.4.20-18.9)
++      - Red Hat Linux Advanced Server 2.1 (kernel 2.4.9.e-8)
++      - Red Hat Enterprise Linux 3
++      - SuSE Linux Enterprise Server 8 (kernel 2.4.19-64GB)
++      
++IA-64 (For Itanium 2 processor)
++-----
++      - Red Hat Linux Advanced Server 2.1 (kernel 2.4.9.e-8)
++      - SuSE Linux Enterprise Server 8 (kernel 2.4.19-64GB)
++      
++
++Earlier or later versions of Linux kernels may be supported.
diff --git a/lustre/kernel_patches/patches/removepage-2.6-suse.patch b/lustre/kernel_patches/patches/removepage-2.6-suse.patch
deleted file mode 100644 (file)
index 147816f..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
- include/linux/fs.h |    1 +
- mm/filemap.c       |    3 +++
- 2 files changed, 4 insertions(+)
-
-Index: linux-2.6.4-30.1/include/linux/fs.h
-===================================================================
---- linux-2.6.4-30.1.orig/include/linux/fs.h   2004-04-02 03:20:19.000000000 -0500
-+++ linux-2.6.4-30.1/include/linux/fs.h        2004-04-02 03:20:19.000000000 -0500
-@@ -320,6 +320,7 @@
-       int (*releasepage) (struct page *, int);
-       int (*direct_IO)(int, struct kiocb *, const struct iovec *iov,
-                       loff_t offset, unsigned long nr_segs);
-+      void (*removepage)(struct page *); /* called when page gets removed from the inode */
- };
- struct backing_dev_info;
-Index: linux-2.6.4-30.1/mm/filemap.c
-===================================================================
---- linux-2.6.4-30.1.orig/mm/filemap.c 2004-04-02 03:19:42.000000000 -0500
-+++ linux-2.6.4-30.1/mm/filemap.c      2004-04-02 03:23:10.000000000 -0500
-@@ -102,6 +102,9 @@
- {
-       struct address_space *mapping = page_mapping(page);
-+      if (mapping->a_ops->removepage)
-+              mapping->a_ops->removepage(page);
-+
-       if (likely(!PageSwapCache(page))) {
-               BUG_ON(PageAnon(page));
-               radix_tree_delete(&mapping->page_tree, page->index);
diff --git a/lustre/kernel_patches/patches/removepage-2.6-vanilla.patch b/lustre/kernel_patches/patches/removepage-2.6-vanilla.patch
deleted file mode 100644 (file)
index 0c7b035..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
- include/linux/fs.h |    1 +
- mm/filemap.c       |    3 +++
- 2 files changed, 4 insertions(+)
-
-Index: linux-2.6.6/include/linux/fs.h
-===================================================================
---- linux-2.6.6.orig/include/linux/fs.h        2004-06-22 20:21:38.000000000 -0400
-+++ linux-2.6.6/include/linux/fs.h     2004-06-22 20:22:35.000000000 -0400
-@@ -321,6 +321,7 @@
-       int (*releasepage) (struct page *, int);
-       ssize_t (*direct_IO)(int, struct kiocb *, const struct iovec *iov,
-                       loff_t offset, unsigned long nr_segs);
-+      void (*removepage)(struct page *); /* called when page gets removed from the inode */
- };
- struct backing_dev_info;
-Index: linux-2.6.6/mm/filemap.c
-===================================================================
---- linux-2.6.6.orig/mm/filemap.c      2004-05-09 22:32:27.000000000 -0400
-+++ linux-2.6.6/mm/filemap.c   2004-06-22 20:23:54.000000000 -0400
-@@ -112,6 +112,9 @@
-       if (unlikely(!PageLocked(page)))
-               PAGE_BUG(page);
-+      if (mapping->a_ops->removepage)
-+              mapping->a_ops->removepage(page);
-+
-       spin_lock_irq(&mapping->tree_lock);
-       __remove_from_page_cache(page);
-       spin_unlock_irq(&mapping->tree_lock);
-diff -Naur a/arch/um/config.release b/arch/um/config.release
---- a/arch/um/config.release   2004-03-10 08:23:12.000000000 -0500
-+++ b/arch/um/config.release   2004-03-10 08:44:32.000000000 -0500
-@@ -228,7 +228,6 @@
- CONFIG_EXT2_FS=y
- CONFIG_SYSV_FS=m
- CONFIG_UDF_FS=m
--# CONFIG_UDF_RW is not set
- CONFIG_UFS_FS=m
- # CONFIG_UFS_FS_WRITE is not set
+Index: uml-2.6.7/arch/um/kernel/skas/trap_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/skas/trap_user.c     2004-07-16 19:36:33.534048512 +0300
++++ uml-2.6.7/arch/um/kernel/skas/trap_user.c  2004-07-16 19:47:23.734203064 +0300
+@@ -1,5 +1,5 @@
+ /* 
+- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
++ * Copyright (C) 2002 - 2003 Jeff Dike (jdike@addtoit.com)
+  * Licensed under the GPL
+  */
  
-diff -Naur a/arch/um/defconfig b/arch/um/defconfig
---- a/arch/um/defconfig        2004-03-10 08:21:56.000000000 -0500
-+++ b/arch/um/defconfig        2004-03-10 08:41:02.000000000 -0500
-@@ -3,29 +3,19 @@
- #
- CONFIG_USERMODE=y
- CONFIG_MMU=y
--CONFIG_SWAP=y
- CONFIG_UID16=y
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
--CONFIG_CONFIG_LOG_BUF_SHIFT=14
+@@ -35,14 +35,10 @@
+       errno = save_errno;
+ }
  
- #
--# Code maturity level options
--#
--CONFIG_EXPERIMENTAL=y
+-extern int missed_ticks[];
 -
--#
--# General Setup
-+# UML-specific options
- #
- CONFIG_MODE_TT=y
- CONFIG_MODE_SKAS=y
- CONFIG_NET=y
--CONFIG_SYSVIPC=y
--CONFIG_BSD_PROCESS_ACCT=y
--CONFIG_SYSCTL=y
--CONFIG_BINFMT_AOUT=y
- CONFIG_BINFMT_ELF=y
- CONFIG_BINFMT_MISC=y
- CONFIG_HOSTFS=y
-+CONFIG_HPPFS=y
- CONFIG_MCONSOLE=y
- CONFIG_MAGIC_SYSRQ=y
- # CONFIG_HOST_2G_2G is not set
-@@ -36,12 +26,43 @@
- # CONFIG_HIGHMEM is not set
- CONFIG_PROC_MM=y
- CONFIG_KERNEL_STACK_ORDER=2
-+CONFIG_UML_REAL_TIME_CLOCK=y
-+
-+#
-+# Code maturity level options
-+#
-+CONFIG_EXPERIMENTAL=y
-+CONFIG_CLEAN_COMPILE=y
-+CONFIG_STANDALONE=y
-+CONFIG_BROKEN_ON_SMP=y
-+
-+#
-+# General setup
-+#
-+CONFIG_SWAP=y
-+CONFIG_SYSVIPC=y
-+CONFIG_BSD_PROCESS_ACCT=y
-+CONFIG_SYSCTL=y
-+CONFIG_LOG_BUF_SHIFT=14
-+# CONFIG_HOTPLUG is not set
-+# CONFIG_IKCONFIG is not set
-+# CONFIG_EMBEDDED is not set
-+CONFIG_KALLSYMS=y
-+CONFIG_FUTEX=y
-+CONFIG_EPOLL=y
-+CONFIG_IOSCHED_NOOP=y
-+CONFIG_IOSCHED_AS=y
-+CONFIG_IOSCHED_DEADLINE=y
-+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
- #
- # Loadable module support
- #
--CONFIG_MODULES=y
--# CONFIG_KMOD is not set
-+# CONFIG_MODULES is not set
-+
-+#
-+# Generic Driver Options
-+#
- #
- # Character Devices
-@@ -69,6 +90,7 @@
- #
- CONFIG_BLK_DEV_UBD=y
- # CONFIG_BLK_DEV_UBD_SYNC is not set
-+CONFIG_BLK_DEV_COW_COMMON=y
- CONFIG_BLK_DEV_LOOP=y
- CONFIG_BLK_DEV_NBD=y
- CONFIG_BLK_DEV_RAM=y
-@@ -78,7 +100,7 @@
- CONFIG_NETDEVICES=y
- #
--# Network Devices
-+# UML Network Devices
- #
- CONFIG_UML_NET=y
- CONFIG_UML_NET_ETHERTAP=y
-@@ -88,22 +110,6 @@
- CONFIG_UML_NET_MCAST=y
- # CONFIG_UML_NET_PCAP is not set
- CONFIG_UML_NET_SLIRP=y
--CONFIG_DUMMY=y
--# CONFIG_BONDING is not set
--# CONFIG_EQUALIZER is not set
--CONFIG_TUN=y
--# CONFIG_ETHERTAP is not set
--CONFIG_PPP=y
--# CONFIG_PPP_MULTILINK is not set
--# CONFIG_PPP_ASYNC is not set
--# CONFIG_PPP_SYNC_TTY is not set
--# CONFIG_PPP_DEFLATE is not set
--# CONFIG_PPP_BSDCOMP is not set
--# CONFIG_PPPOE is not set
--CONFIG_SLIP=y
--# CONFIG_SLIP_COMPRESSED is not set
--# CONFIG_SLIP_SMART is not set
--# CONFIG_SLIP_MODE_SLIP6 is not set
+ void user_signal(int sig, union uml_pt_regs *regs)
+ {
+       struct signal_info *info;
  
- #
- # Networking support
-@@ -115,8 +121,6 @@
- CONFIG_PACKET=y
- CONFIG_PACKET_MMAP=y
- # CONFIG_NETLINK_DEV is not set
--# CONFIG_NETFILTER is not set
--# CONFIG_FILTER is not set
- CONFIG_UNIX=y
- # CONFIG_NET_KEY is not set
- CONFIG_INET=y
-@@ -130,8 +134,11 @@
- # CONFIG_SYN_COOKIES is not set
- # CONFIG_INET_AH is not set
- # CONFIG_INET_ESP is not set
--# CONFIG_XFRM_USER is not set
-+# CONFIG_INET_IPCOMP is not set
- # CONFIG_IPV6 is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_NETFILTER is not set
+-      if(sig == SIGVTALRM)
+-              missed_ticks[cpu()]++;
+       regs->skas.is_user = 1;
+       regs->skas.fault_addr = 0;
+       regs->skas.fault_type = 0;
+Index: uml-2.6.7/arch/um/kernel/irq.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/irq.c        2004-07-16 19:37:20.013982488 +0300
++++ uml-2.6.7/arch/um/kernel/irq.c     2004-07-16 19:47:23.717205648 +0300
+@@ -29,6 +29,7 @@
+ #include "user_util.h"
+ #include "kern_util.h"
+ #include "irq_user.h"
++#include "irq_kern.h"
  
- #
- # SCTP Configuration (EXPERIMENTAL)
-@@ -140,9 +147,9 @@
- # CONFIG_IP_SCTP is not set
- # CONFIG_ATM is not set
- # CONFIG_VLAN_8021Q is not set
--# CONFIG_LLC is not set
--# CONFIG_DECNET is not set
--# CONFIG_BRIDGE is not set
-+# CONFIG_LLC2 is not set
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
- # CONFIG_X25 is not set
- # CONFIG_LAPB is not set
- # CONFIG_NET_DIVERT is not set
-@@ -160,6 +167,10 @@
- # Network testing
- #
- # CONFIG_NET_PKTGEN is not set
-+CONFIG_DUMMY=y
-+# CONFIG_BONDING is not set
-+# CONFIG_EQUALIZER is not set
-+CONFIG_TUN=y
+ static void register_irq_proc (unsigned int irq);
  
- #
- # Ethernet (10 or 100Mbit)
-@@ -171,12 +182,28 @@
- #
+@@ -83,65 +84,55 @@
+       end_none
+ };
  
- #
-+# Ethernet (10000 Mbit)
-+#
-+CONFIG_PPP=y
-+# CONFIG_PPP_MULTILINK is not set
-+# CONFIG_PPP_FILTER is not set
-+# CONFIG_PPP_ASYNC is not set
-+# CONFIG_PPP_SYNC_TTY is not set
-+# CONFIG_PPP_DEFLATE is not set
-+# CONFIG_PPP_BSDCOMP is not set
-+# CONFIG_PPPOE is not set
-+CONFIG_SLIP=y
-+# CONFIG_SLIP_COMPRESSED is not set
-+# CONFIG_SLIP_SMART is not set
-+# CONFIG_SLIP_MODE_SLIP6 is not set
-+
-+#
- # Wireless LAN (non-hamradio)
- #
- # CONFIG_NET_RADIO is not set
+-/* Not changed */
+-volatile unsigned long irq_err_count;
+-
+ /*
+  * Generic, controller-independent functions:
+  */
  
- #
--# Token Ring devices (depends on LLC=y)
-+# Token Ring devices
- #
- # CONFIG_SHAPER is not set
+-int get_irq_list(char *buf)
++int show_interrupts(struct seq_file *p, void *v)
+ {
+-      int i, j;
+-      unsigned long flags;
++      int i = *(loff_t *) v, j;
+       struct irqaction * action;
+-      char *p = buf;
++      unsigned long flags;
  
-@@ -186,68 +213,100 @@
- # CONFIG_WAN is not set
+-      p += sprintf(p, "           ");
+-      for (j=0; j<num_online_cpus(); j++)
+-              p += sprintf(p, "CPU%d       ",j);
+-      *p++ = '\n';
++      if (i == 0) {
++              seq_printf(p, "           ");
++              for (j=0; j<NR_CPUS; j++)
++                      if (cpu_online(j))
++                              seq_printf(p, "CPU%d       ",j);
++              seq_putc(p, '\n');
++      }
  
- #
-+# Amateur Radio support
-+#
-+# CONFIG_HAMRADIO is not set
-+
-+#
-+# IrDA (infrared) support
-+#
-+# CONFIG_IRDA is not set
-+
-+#
-+# Bluetooth support
-+#
-+# CONFIG_BT is not set
-+
-+#
- # File systems
- #
-+CONFIG_EXT2_FS=y
-+# CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT3_FS is not set
-+# CONFIG_JBD is not set
-+CONFIG_REISERFS_FS=y
-+# CONFIG_REISERFS_CHECK is not set
-+# CONFIG_REISERFS_PROC_INFO is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_XFS_FS is not set
-+CONFIG_MINIX_FS=y
-+# CONFIG_ROMFS_FS is not set
- CONFIG_QUOTA=y
- # CONFIG_QFMT_V1 is not set
- # CONFIG_QFMT_V2 is not set
- CONFIG_QUOTACTL=y
--CONFIG_AUTOFS_FS=m
--CONFIG_AUTOFS4_FS=m
--CONFIG_REISERFS_FS=m
--# CONFIG_REISERFS_CHECK is not set
--# CONFIG_REISERFS_PROC_INFO is not set
-+CONFIG_AUTOFS_FS=y
-+CONFIG_AUTOFS4_FS=y
-+
-+#
-+# CD-ROM/DVD Filesystems
-+#
-+CONFIG_ISO9660_FS=y
-+# CONFIG_JOLIET is not set
-+# CONFIG_ZISOFS is not set
-+# CONFIG_UDF_FS is not set
-+
-+#
-+# DOS/FAT/NT Filesystems
-+#
-+CONFIG_FAT_FS=y
-+CONFIG_MSDOS_FS=y
-+CONFIG_VFAT_FS=y
-+# CONFIG_NTFS_FS is not set
-+
-+#
-+# Pseudo filesystems
-+#
-+CONFIG_PROC_FS=y
-+CONFIG_PROC_KCORE=y
-+CONFIG_DEVFS_FS=y
-+CONFIG_DEVFS_MOUNT=y
-+# CONFIG_DEVFS_DEBUG is not set
-+# CONFIG_DEVPTS_FS_XATTR is not set
-+CONFIG_TMPFS=y
-+# CONFIG_HUGETLB_PAGE is not set
-+CONFIG_RAMFS=y
-+
-+#
-+# Miscellaneous filesystems
-+#
- # CONFIG_ADFS_FS is not set
- # CONFIG_AFFS_FS is not set
- # CONFIG_HFS_FS is not set
-+# CONFIG_HFSPLUS_FS is not set
- # CONFIG_BEFS_FS is not set
- # CONFIG_BFS_FS is not set
--# CONFIG_EXT3_FS is not set
--# CONFIG_JBD is not set
--CONFIG_FAT_FS=m
--CONFIG_MSDOS_FS=m
--CONFIG_VFAT_FS=m
- # CONFIG_EFS_FS is not set
- CONFIG_JFFS_FS=y
- CONFIG_JFFS_FS_VERBOSE=0
--CONFIG_JFFS_PROC_FS=y
- # CONFIG_JFFS2_FS is not set
- # CONFIG_CRAMFS is not set
--# CONFIG_TMPFS is not set
--CONFIG_RAMFS=y
--CONFIG_ISO9660_FS=m
--# CONFIG_JOLIET is not set
--# CONFIG_ZISOFS is not set
--# CONFIG_JFS_FS is not set
--CONFIG_MINIX_FS=m
- # CONFIG_VXFS_FS is not set
--# CONFIG_NTFS_FS is not set
- # CONFIG_HPFS_FS is not set
--CONFIG_PROC_FS=y
--CONFIG_DEVFS_FS=y
--CONFIG_DEVFS_MOUNT=y
--# CONFIG_DEVFS_DEBUG is not set
--CONFIG_DEVPTS_FS=y
- # CONFIG_QNX4FS_FS is not set
--# CONFIG_ROMFS_FS is not set
--CONFIG_EXT2_FS=y
--# CONFIG_EXT2_FS_XATTR is not set
- # CONFIG_SYSV_FS is not set
--# CONFIG_UDF_FS is not set
- # CONFIG_UFS_FS is not set
--# CONFIG_XFS_FS is not set
- #
- # Network File Systems
- #
--# CONFIG_CODA_FS is not set
--# CONFIG_INTERMEZZO_FS is not set
- # CONFIG_NFS_FS is not set
- # CONFIG_NFSD is not set
- # CONFIG_EXPORTFS is not set
--# CONFIG_CIFS is not set
- # CONFIG_SMB_FS is not set
-+# CONFIG_CIFS is not set
- # CONFIG_NCP_FS is not set
-+# CONFIG_CODA_FS is not set
- # CONFIG_AFS_FS is not set
- #
-@@ -255,11 +314,11 @@
- #
- # CONFIG_PARTITION_ADVANCED is not set
- CONFIG_MSDOS_PARTITION=y
--CONFIG_NLS=y
+-      for (i = 0 ; i < NR_IRQS ; i++) {
++      if (i < NR_IRQS) {
+               spin_lock_irqsave(&irq_desc[i].lock, flags);
+               action = irq_desc[i].action;
+               if (!action) 
+-                      goto end;
+-              p += sprintf(p, "%3d: ",i);
++                      goto skip;
++              seq_printf(p, "%3d: ",i);
+ #ifndef CONFIG_SMP
+-              p += sprintf(p, "%10u ", kstat_irqs(i));
++              seq_printf(p, "%10u ", kstat_irqs(i));
+ #else
+-              for (j = 0; j < num_online_cpus(); j++)
+-                      p += sprintf(p, "%10u ",
+-                              kstat_cpu(cpu_logical_map(j)).irqs[i]);
++              for (j = 0; j < NR_CPUS; j++)
++                      if (cpu_online(j))
++                              seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]);
+ #endif
+-              p += sprintf(p, " %14s", irq_desc[i].handler->typename);
+-              p += sprintf(p, "  %s", action->name);
++              seq_printf(p, " %14s", irq_desc[i].handler->typename);
++              seq_printf(p, "  %s", action->name);
  
- #
- # Native Language Support
- #
-+CONFIG_NLS=y
- CONFIG_NLS_DEFAULT="iso8859-1"
- # CONFIG_NLS_CODEPAGE_437 is not set
- # CONFIG_NLS_CODEPAGE_737 is not set
-@@ -317,28 +376,7 @@
- #
- # SCSI support
- #
--CONFIG_SCSI=y
--CONFIG_GENERIC_ISA_DMA=y
--
--#
--# SCSI support type (disk, tape, CD-ROM)
--#
--CONFIG_BLK_DEV_SD=y
--CONFIG_SD_EXTRA_DEVS=40
--CONFIG_CHR_DEV_ST=y
--CONFIG_BLK_DEV_SR=y
--CONFIG_BLK_DEV_SR_VENDOR=y
--CONFIG_SR_EXTRA_DEVS=2
--CONFIG_CHR_DEV_SG=y
+               for (action=action->next; action; action = action->next)
+-                      p += sprintf(p, ", %s", action->name);
+-              *p++ = '\n';
+-      end:
++                      seq_printf(p, ", %s", action->name);
++
++              seq_putc(p, '\n');
++skip:
+               spin_unlock_irqrestore(&irq_desc[i].lock, flags);
++      } else if (i == NR_IRQS) {
++              seq_printf(p, "NMI: ");
++              for (j = 0; j < NR_CPUS; j++)
++                      if (cpu_online(j))
++                              seq_printf(p, "%10u ", nmi_count(j));
++              seq_putc(p, '\n');
+       }
+-      p += sprintf(p, "\n");
+-#ifdef notdef
+-#ifdef CONFIG_SMP
+-      p += sprintf(p, "LOC: ");
+-      for (j = 0; j < num_online_cpus(); j++)
+-              p += sprintf(p, "%10u ",
+-                      apic_timer_irqs[cpu_logical_map(j)]);
+-      p += sprintf(p, "\n");
+-#endif
+-#endif
+-      p += sprintf(p, "ERR: %10lu\n", irq_err_count);
+-      return p - buf;
+-}
 -
--#
--# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
--#
--CONFIG_SCSI_DEBUG_QUEUES=y
--CONFIG_SCSI_MULTI_LUN=y
--CONFIG_SCSI_CONSTANTS=y
--CONFIG_SCSI_LOGGING=y
--CONFIG_SCSI_DEBUG=y
-+# CONFIG_SCSI is not set
- #
- # Multi-device support (RAID and LVM)
-@@ -360,6 +398,7 @@
- CONFIG_MTD_BLOCK=y
- # CONFIG_FTL is not set
- # CONFIG_NFTL is not set
-+# CONFIG_INFTL is not set
  
- #
- # RAM/ROM/Flash chip drivers
-@@ -374,20 +413,21 @@
- #
- # Mapping drivers for chip access
- #
-+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+-int show_interrupts(struct seq_file *p, void *v)
+-{
+-      return(0);
++      return 0;
+ }
  
- #
- # Self-contained MTD device drivers
- #
- # CONFIG_MTD_SLRAM is not set
- # CONFIG_MTD_MTDRAM is not set
--CONFIG_MTD_BLKMTD=m
-+CONFIG_MTD_BLKMTD=y
+ /*
+@@ -282,13 +273,12 @@
+        * 0 return value means that this irq is already being
+        * handled by some other CPU. (or is disabled)
+        */
+-      int cpu = smp_processor_id();
+       irq_desc_t *desc = irq_desc + irq;
+       struct irqaction * action;
+       unsigned int status;
  
- #
- # Disk-On-Chip Device Drivers
- #
--# CONFIG_MTD_DOC1000 is not set
- # CONFIG_MTD_DOC2000 is not set
- # CONFIG_MTD_DOC2001 is not set
-+# CONFIG_MTD_DOC2001PLUS is not set
+       irq_enter();
+-      kstat_cpu(cpu).irqs[irq]++;
++      kstat_this_cpu.irqs[irq]++;
+       spin_lock(&desc->lock);
+       desc->handler->ack(irq);
+       /*
+@@ -385,7 +375,7 @@
+  */
+  
+ int request_irq(unsigned int irq,
+-              void (*handler)(int, void *, struct pt_regs *),
++              irqreturn_t (*handler)(int, void *, struct pt_regs *),
+               unsigned long irqflags, 
+               const char * devname,
+               void *dev_id)
+@@ -433,15 +423,19 @@
+ EXPORT_SYMBOL(request_irq);
  
- #
- # NAND Flash Device Drivers
-diff -Naur a/arch/um/drivers/chan_kern.c b/arch/um/drivers/chan_kern.c
---- a/arch/um/drivers/chan_kern.c      2004-03-10 08:23:15.000000000 -0500
-+++ b/arch/um/drivers/chan_kern.c      2004-03-10 08:44:41.000000000 -0500
-@@ -8,6 +8,7 @@
- #include <linux/list.h>
- #include <linux/slab.h>
- #include <linux/tty.h>
-+#include <linux/string.h>
- #include <linux/tty_flip.h>
- #include <asm/irq.h>
- #include "chan_kern.h"
-@@ -265,6 +266,11 @@
+ int um_request_irq(unsigned int irq, int fd, int type,
+-                 void (*handler)(int, void *, struct pt_regs *),
++                 irqreturn_t (*handler)(int, void *, struct pt_regs *),
+                  unsigned long irqflags, const char * devname,
+                  void *dev_id)
  {
-       int n = 0;
+-      int retval;
++      int err;
  
-+      if(chan == NULL){
-+              CONFIG_CHUNK(str, size, n, "none", 1);
-+              return(n);
-+      }
+-      retval = request_irq(irq, handler, irqflags, devname, dev_id);
+-      if(retval) return(retval);
+-      return(activate_fd(irq, fd, type, dev_id));
++      err = request_irq(irq, handler, irqflags, devname, dev_id);
++      if(err) 
++              return(err);
 +
-       CONFIG_CHUNK(str, size, n, chan->ops->type, 0);
++      if(fd != -1)
++              err = activate_fd(irq, fd, type, dev_id);
++      return(err);
+ }
  
-       if(chan->dev == NULL){
-@@ -420,7 +426,8 @@
-               INIT_LIST_HEAD(chans);
-       }
+ /* this was setup_x86_irq but it seems pretty generic */
+@@ -474,7 +468,8 @@
+        */
+       spin_lock_irqsave(&desc->lock,flags);
+       p = &desc->action;
+-      if ((old = *p) != NULL) {
++      old = *p;
++      if (old != NULL) {
+               /* Can't share interrupts unless both agree to */
+               if (!(old->flags & new->flags & SA_SHIRQ)) {
+                       spin_unlock_irqrestore(&desc->lock,flags);
+@@ -586,12 +581,14 @@
+                                       unsigned long count, void *data)
+ {
+       int irq = (long) data, full_count = count, err;
+-      cpumask_t new_value, tmp;
++      cpumask_t new_value;
  
--      if((out = strchr(str, ',')) != NULL){
-+      out = strchr(str, ',');
-+      if(out != NULL){
-               in = str;
-               *out = '\0';
-               out++;
-@@ -475,12 +482,15 @@
-                               goto out;
-                       }
-                       err = chan->ops->read(chan->fd, &c, chan->data);
--                      if(err > 0) tty_receive_char(tty, c);
-+                      if(err > 0) 
-+                              tty_receive_char(tty, c);
-               } while(err > 0);
-+
-               if(err == 0) reactivate_fd(chan->fd, irq);
-               if(err == -EIO){
-                       if(chan->primary){
--                              if(tty != NULL) tty_hangup(tty);
-+                              if(tty != NULL) 
-+                                      tty_hangup(tty);
-                               line_disable(dev, irq);
-                               close_chan(chans);
-                               free_chan(chans);
-diff -Naur a/arch/um/drivers/chan_user.c b/arch/um/drivers/chan_user.c
---- a/arch/um/drivers/chan_user.c      2004-03-10 08:20:14.000000000 -0500
-+++ b/arch/um/drivers/chan_user.c      2004-03-10 08:33:55.000000000 -0500
+       if (!irq_desc[irq].handler->set_affinity)
+               return -EIO;
+       err = cpumask_parse(buffer, count, new_value);
++      if(err)
++              return(err);
+ #ifdef CONFIG_SMP
+       /*
+@@ -599,9 +596,11 @@
+        * way to make the system unusable accidentally :-) At least
+        * one online CPU still has to be targeted.
+        */
+-      cpus_and(tmp, new_value, cpu_online_map);
+-      if (cpus_empty(tmp))
+-              return -EINVAL;
++      { cpumask_t tmp;
++        cpus_and(tmp, new_value, cpu_online_map);
++        if (cpus_empty(tmp))
++                return -EINVAL;
++      }
+ #endif
+       irq_affinity[irq] = new_value;
+Index: uml-2.6.7/arch/um/drivers/chan_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/chan_user.c 2004-07-16 19:35:52.587273368 +0300
++++ uml-2.6.7/arch/um/drivers/chan_user.c      2004-07-16 19:47:24.392103048 +0300
 @@ -1,5 +1,5 @@
  /* 
 - * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
@@ -483,18 +241,19 @@ diff -Naur a/arch/um/drivers/chan_user.c b/arch/um/drivers/chan_user.c
  #include <string.h>
  #include <signal.h>
  #include <sys/stat.h>
-@@ -24,29 +23,27 @@
+@@ -22,33 +21,6 @@
+ #include "choose-mode.h"
+ #include "mode.h"
  
- void generic_close(int fd, void *unused)
- {
+-void generic_close(int fd, void *unused)
+-{
 -      close(fd);
-+      os_close_file(fd);
- }
- int generic_read(int fd, char *c_out, void *unused)
- {
-       int n;
+-}
+-
+-int generic_read(int fd, char *c_out, void *unused)
+-{
+-      int n;
+-
 -      n = read(fd, c_out, sizeof(*c_out));
 -      if(n < 0){
 -              if(errno == EAGAIN) return(0);
@@ -502,56 +261,48 @@ diff -Naur a/arch/um/drivers/chan_user.c b/arch/um/drivers/chan_user.c
 -      }
 -      else if(n == 0) return(-EIO);
 -      return(1);
-+      n = os_read_file(fd, c_out, sizeof(*c_out));
-+
-+      if(n == -EAGAIN) 
-+              return(0);
-+      else if(n == 0) 
-+              return(-EIO);
-+      return(n);
- }
-+/* XXX Trivial wrapper around os_write_file */
-+
- int generic_write(int fd, const char *buf, int n, void *unused)
- {
+-}
+-
+-int generic_write(int fd, const char *buf, int n, void *unused)
+-{
 -      int count;
 -
 -      count = write(fd, buf, n);
 -      if(count < 0) return(-errno);
 -      return(count);
-+      return(os_write_file(fd, buf, n));
- }
+-}
+-
  int generic_console_write(int fd, const char *buf, int n, void *unused)
-@@ -68,15 +65,18 @@
- int generic_window_size(int fd, void *unused, unsigned short *rows_out,
-                       unsigned short *cols_out)
  {
+       struct termios save, new;
+@@ -65,26 +37,6 @@
+       return(err);
+ }
+-int generic_window_size(int fd, void *unused, unsigned short *rows_out,
+-                      unsigned short *cols_out)
+-{
 -      struct winsize size;
 -      int ret = 0;
-+      int rows, cols;
-+      int ret;
-+
-+      ret = os_window_size(fd, &rows, &cols);
-+      if(ret < 0)
-+              return(ret);
-+
-+      ret = ((*rows_out != rows) || (*cols_out != cols));
-+
-+      *rows_out = rows;
-+      *cols_out = cols;
+-
 -      if(ioctl(fd, TIOCGWINSZ, &size) == 0){
 -              ret = ((*rows_out != size.ws_row) || 
 -                     (*cols_out != size.ws_col));
 -              *rows_out = size.ws_row;
 -              *cols_out = size.ws_col;
 -      }
-       return(ret);
+-      return(ret);
+-}
+-
+-void generic_free(void *data)
+-{
+-      kfree(data);
+-}
+-
+ static void winch_handler(int sig)
+ {
  }
-@@ -100,14 +100,16 @@
+@@ -100,14 +52,16 @@
        struct winch_data *data = arg;
        sigset_t sigs;
        int pty_fd, pipe_fd;
@@ -571,7 +322,7 @@ diff -Naur a/arch/um/drivers/chan_user.c b/arch/um/drivers/chan_user.c
  
        signal(SIGWINCH, winch_handler);
        sigfillset(&sigs);
-@@ -123,26 +125,24 @@
+@@ -123,26 +77,24 @@
                exit(1);
        }
  
@@ -608,7 +359,7 @@ diff -Naur a/arch/um/drivers/chan_user.c b/arch/um/drivers/chan_user.c
        }
  }
  
-@@ -154,8 +154,8 @@
+@@ -154,8 +106,8 @@
        char c;
  
        err = os_pipe(fds, 1, 1);
@@ -619,7 +370,7 @@ diff -Naur a/arch/um/drivers/chan_user.c b/arch/um/drivers/chan_user.c
                return(err);
        }
  
-@@ -168,12 +168,12 @@
+@@ -168,12 +120,12 @@
                return(pid);
        }
  
@@ -635,7 +386,7 @@ diff -Naur a/arch/um/drivers/chan_user.c b/arch/um/drivers/chan_user.c
                printk("fd %d will not support SIGWINCH\n", fd);
                *fd_out = -1;
        }
-@@ -183,20 +183,24 @@
+@@ -183,20 +135,24 @@
  void register_winch(int fd, void *device_data)
  {
        int pid, thread, thread_fd;
@@ -665,1725 +416,1529 @@ diff -Naur a/arch/um/drivers/chan_user.c b/arch/um/drivers/chan_user.c
                }
        }
  }
-diff -Naur a/arch/um/drivers/cow.h b/arch/um/drivers/cow.h
---- a/arch/um/drivers/cow.h    1969-12-31 19:00:00.000000000 -0500
-+++ b/arch/um/drivers/cow.h    2004-03-10 08:35:19.000000000 -0500
-@@ -0,0 +1,41 @@
-+#ifndef __COW_H__
-+#define __COW_H__
-+
-+#include <asm/types.h>
+Index: uml-2.6.7/arch/um/drivers/cow_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/cow_user.c  2004-07-16 19:47:23.608222216 +0300
++++ uml-2.6.7/arch/um/drivers/cow_user.c       2004-07-16 19:47:23.680211272 +0300
+@@ -0,0 +1,375 @@
++#include <stddef.h>
++#include <string.h>
++#include <errno.h>
++#include <unistd.h>
++#include <byteswap.h>
++#include <sys/time.h>
++#include <sys/param.h>
++#include <sys/user.h>
++#include <netinet/in.h>
 +
-+#if __BYTE_ORDER == __BIG_ENDIAN
-+# define ntohll(x) (x)
-+# define htonll(x) (x)
-+#elif __BYTE_ORDER == __LITTLE_ENDIAN
-+# define ntohll(x)  bswap_64(x)
-+# define htonll(x)  bswap_64(x)
-+#else
-+#error "__BYTE_ORDER not defined"
-+#endif
++#include "os.h"
 +
-+extern int init_cow_file(int fd, char *cow_file, char *backing_file, 
-+                       int sectorsize, int alignment, int *bitmap_offset_out, 
-+                       unsigned long *bitmap_len_out, int *data_offset_out);
++#include "cow.h"
++#include "cow_sys.h"
 +
-+extern int file_reader(__u64 offset, char *buf, int len, void *arg);
-+extern int read_cow_header(int (*reader)(__u64, char *, int, void *), 
-+                         void *arg, __u32 *version_out, 
-+                         char **backing_file_out, time_t *mtime_out, 
-+                         __u64 *size_out, int *sectorsize_out, 
-+                         __u32 *align_out, int *bitmap_offset_out);
++#define PATH_LEN_V1 256
 +
-+extern int write_cow_header(char *cow_file, int fd, char *backing_file, 
-+                          int sectorsize, int alignment, long long *size);
++struct cow_header_v1 {
++      int magic;
++      int version;
++      char backing_file[PATH_LEN_V1];
++      time_t mtime;
++      __u64 size;
++      int sectorsize;
++};
 +
-+extern void cow_sizes(int version, __u64 size, int sectorsize, int align,
-+                    int bitmap_offset, unsigned long *bitmap_len_out, 
-+                    int *data_offset_out);
++#define PATH_LEN_V2 MAXPATHLEN
 +
-+#endif
++struct cow_header_v2 {
++      unsigned long magic;
++      unsigned long version;
++      char backing_file[PATH_LEN_V2];
++      time_t mtime;
++      __u64 size;
++      int sectorsize;
++};
 +
-+/*
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
++/* Define PATH_LEN_V3 as the usual value of MAXPATHLEN, just hard-code it in 
++ * case other systems have different values for MAXPATHLEN
 + */
-diff -Naur a/arch/um/drivers/cow_kern.c b/arch/um/drivers/cow_kern.c
---- a/arch/um/drivers/cow_kern.c       1969-12-31 19:00:00.000000000 -0500
-+++ b/arch/um/drivers/cow_kern.c       2004-03-10 08:44:41.000000000 -0500
-@@ -0,0 +1,630 @@
-+#define COW_MAJOR 60
-+#define MAJOR_NR COW_MAJOR
++#define PATH_LEN_V3 4096
 +
-+#include <linux/stddef.h>
-+#include <linux/kernel.h>
-+#include <linux/ctype.h>
-+#include <linux/stat.h>
-+#include <linux/vmalloc.h>
-+#include <linux/blkdev.h>
-+#include <linux/blk.h>
-+#include <linux/fs.h>
-+#include <linux/genhd.h>
-+#include <linux/devfs_fs.h>
-+#include <asm/uaccess.h>
-+#include "2_5compat.h"
-+#include "cow.h"
-+#include "ubd_user.h"
-+
-+#define COW_SHIFT 4
++/* Changes from V2 - 
++ *    PATH_LEN_V3 as described above
++ *    Explicitly specify field bit lengths for systems with different
++ *            lengths for the usual C types.  Not sure whether char or
++ *            time_t should be changed, this can be changed later without
++ *            breaking compatibility
++ *    Add alignment field so that different alignments can be used for the
++ *            bitmap and data
++ *    Add cow_format field to allow for the possibility of different ways
++ *            of specifying the COW blocks.  For now, the only value is 0,
++ *            for the traditional COW bitmap.
++ *    Move the backing_file field to the end of the header.  This allows
++ *            for the possibility of expanding it into the padding required
++ *            by the bitmap alignment.
++ *    The bitmap and data portions of the file will be aligned as specified
++ *            by the alignment field.  This is to allow COW files to be
++ *            put on devices with restrictions on access alignments, such as
++ *            /dev/raw, with a 512 byte alignment restriction.  This also
++ *            allows the data to be more aligned more strictly than on
++ *            sector boundaries.  This is needed for ubd-mmap, which needs
++ *            the data to be page aligned.
++ *    Fixed (finally!) the rounding bug
++ */
 +
-+struct cow {
-+      int count;
-+      char *cow_path;
-+      dev_t cow_dev;
-+      struct block_device *cow_bdev;
-+      char *backing_path;
-+      dev_t backing_dev;
-+      struct block_device *backing_bdev;
-+      int sectorsize;
-+      unsigned long *bitmap;
-+      unsigned long bitmap_len;
-+      int bitmap_offset;
-+      int data_offset;
-+      devfs_handle_t devfs;
-+      struct semaphore sem;
-+      struct semaphore io_sem;
-+      atomic_t working;
-+      spinlock_t io_lock;
-+      struct buffer_head *bh;
-+      struct buffer_head *bhtail;
-+      void *end_io;
++struct cow_header_v3 {
++      __u32 magic;
++      __u32 version;
++      time_t mtime;
++      __u64 size;
++      __u32 sectorsize;
++      __u32 alignment;
++      __u32 cow_format;
++      char backing_file[PATH_LEN_V3];
 +};
 +
-+#define DEFAULT_COW { \
-+      .count                  = 0, \
-+      .cow_path               = NULL, \
-+      .cow_dev                = 0, \
-+      .backing_path           = NULL, \
-+      .backing_dev            = 0, \
-+        .bitmap                       = NULL, \
-+      .bitmap_len             = 0, \
-+      .bitmap_offset          = 0, \
-+        .data_offset          = 0, \
-+      .devfs                  = NULL, \
-+      .working                = ATOMIC_INIT(0), \
-+      .io_lock                = SPIN_LOCK_UNLOCKED, \
-+}
-+
-+#define MAX_DEV (8)
-+#define MAX_MINOR (MAX_DEV << COW_SHIFT)
-+
-+struct cow cow_dev[MAX_DEV] = { [ 0 ... MAX_DEV - 1 ] = DEFAULT_COW };
-+
-+/* Not modified by this driver */
-+static int blk_sizes[MAX_MINOR] = { [ 0 ... MAX_MINOR - 1 ] = BLOCK_SIZE };
-+static int hardsect_sizes[MAX_MINOR] = { [ 0 ... MAX_MINOR - 1 ] = 512 };
-+
-+/* Protected by cow_lock */
-+static int sizes[MAX_MINOR] = { [ 0 ... MAX_MINOR - 1 ] = 0 };
-+
-+static struct hd_struct       cow_part[MAX_MINOR] =
-+      { [ 0 ... MAX_MINOR - 1 ] = { 0, 0, 0 } };
-+
-+/* Protected by io_request_lock */
-+static request_queue_t *cow_queue;
-+
-+static int cow_open(struct inode *inode, struct file *filp);
-+static int cow_release(struct inode * inode, struct file * file);
-+static int cow_ioctl(struct inode * inode, struct file * file,
-+                   unsigned int cmd, unsigned long arg);
-+static int cow_revalidate(kdev_t rdev);
++/* COW format definitions - for now, we have only the usual COW bitmap */
++#define COW_BITMAP 0
 +
-+static struct block_device_operations cow_blops = {
-+      .open           = cow_open,
-+      .release        = cow_release,
-+      .ioctl          = cow_ioctl,
-+      .revalidate     = cow_revalidate,
++union cow_header {
++      struct cow_header_v1 v1;
++      struct cow_header_v2 v2;
++      struct cow_header_v3 v3;
 +};
 +
-+/* Initialized in an initcall, and unchanged thereafter */
-+devfs_handle_t cow_dir_handle;
-+
-+#define INIT_GENDISK(maj, name, parts, shift, bsizes, max, blops) \
-+{ \
-+      .major          = maj, \
-+      .major_name     = name, \
-+      .minor_shift    = shift, \
-+      .max_p          = 1 << shift, \
-+      .part           = parts, \
-+      .sizes          = bsizes, \
-+      .nr_real        = max, \
-+      .real_devices   = NULL, \
-+      .next           = NULL, \
-+      .fops           = blops, \
-+      .de_arr         = NULL, \
-+      .flags          = 0 \
-+}
-+
-+static spinlock_t cow_lock = SPIN_LOCK_UNLOCKED;
++#define COW_MAGIC 0x4f4f4f4d  /* MOOO */
++#define COW_VERSION 3
 +
-+static struct gendisk cow_gendisk = INIT_GENDISK(MAJOR_NR, "cow", cow_part,
-+                                               COW_SHIFT, sizes, MAX_DEV, 
-+                                               &cow_blops);
++#define DIV_ROUND(x, len) (((x) + (len) - 1) / (len))
++#define ROUND_UP(x, align) DIV_ROUND(x, align) * (align)
 +
-+static int cow_add(int n)
++void cow_sizes(int version, __u64 size, int sectorsize, int align, 
++             int bitmap_offset, unsigned long *bitmap_len_out, 
++             int *data_offset_out)
 +{
-+      struct cow *dev = &cow_dev[n];
-+      char name[sizeof("nnnnnn\0")];
-+      int err = -ENODEV;
-+
-+      if(dev->cow_path == NULL)
-+              goto out;
-+
-+      sprintf(name, "%d", n);
-+      dev->devfs = devfs_register(cow_dir_handle, name, DEVFS_FL_REMOVABLE,
-+                                  MAJOR_NR, n << COW_SHIFT, S_IFBLK | 
-+                                  S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP,
-+                                  &cow_blops, NULL);
-+
-+      init_MUTEX_LOCKED(&dev->sem);
-+      init_MUTEX(&dev->io_sem);
++      if(version < 3){
++              *bitmap_len_out = (size + sectorsize - 1) / (8 * sectorsize);
 +
-+      return(0);
++              *data_offset_out = bitmap_offset + *bitmap_len_out;
++              *data_offset_out = (*data_offset_out + sectorsize - 1) / 
++                      sectorsize;
++              *data_offset_out *= sectorsize;
++      }
++      else {
++              *bitmap_len_out = DIV_ROUND(size, sectorsize);
++              *bitmap_len_out = DIV_ROUND(*bitmap_len_out, 8);
 +
-+ out:
-+      return(err);
++              *data_offset_out = bitmap_offset + *bitmap_len_out;
++              *data_offset_out = ROUND_UP(*data_offset_out, align);
++      }
 +}
 +
-+/*
-+ * Add buffer_head to back of pending list
-+ */
-+static void cow_add_bh(struct cow *cow, struct buffer_head *bh)
++static int absolutize(char *to, int size, char *from)
 +{
-+      unsigned long flags;
++      char save_cwd[256], *slash;
++      int remaining;
 +
-+      spin_lock_irqsave(&cow->io_lock, flags);
-+      if(cow->bhtail != NULL){
-+              cow->bhtail->b_reqnext = bh;
-+              cow->bhtail = bh;
++      if(getcwd(save_cwd, sizeof(save_cwd)) == NULL) {
++              cow_printf("absolutize : unable to get cwd - errno = %d\n", 
++                         errno);
++              return(-1);
++      }
++      slash = strrchr(from, '/');
++      if(slash != NULL){
++              *slash = '\0';
++              if(chdir(from)){
++                      *slash = '/';
++                      cow_printf("absolutize : Can't cd to '%s' - " 
++                                 "errno = %d\n", from, errno);
++                      return(-1);
++              }
++              *slash = '/';
++              if(getcwd(to, size) == NULL){
++                      cow_printf("absolutize : unable to get cwd of '%s' - "
++                             "errno = %d\n", from, errno);
++                      return(-1);
++              }
++              remaining = size - strlen(to);
++              if(strlen(slash) + 1 > remaining){
++                      cow_printf("absolutize : unable to fit '%s' into %d "
++                             "chars\n", from, size);
++                      return(-1);
++              }
++              strcat(to, slash);
 +      }
 +      else {
-+              cow->bh = bh;
-+              cow->bhtail = bh;
++              if(strlen(save_cwd) + 1 + strlen(from) + 1 > size){
++                      cow_printf("absolutize : unable to fit '%s' into %d "
++                             "chars\n", from, size);
++                      return(-1);
++              }
++              strcpy(to, save_cwd);
++              strcat(to, "/");
++              strcat(to, from);
 +      }
-+      spin_unlock_irqrestore(&cow->io_lock, flags);
++      chdir(save_cwd);
++      return(0);
 +}
 +
-+/*
-+* Grab first pending buffer
-+*/
-+static struct buffer_head *cow_get_bh(struct cow *cow)
++int write_cow_header(char *cow_file, int fd, char *backing_file, 
++                   int sectorsize, int alignment, long long *size)
 +{
-+      struct buffer_head *bh;
++      struct cow_header_v3 *header;
++      unsigned long modtime;
++      int err;
 +
-+      spin_lock_irq(&cow->io_lock);
-+      bh = cow->bh;
-+      if(bh != NULL){
-+              if(bh == cow->bhtail)
-+                      cow->bhtail = NULL;
-+              cow->bh = bh->b_reqnext;
-+              bh->b_reqnext = NULL;
++      err = cow_seek_file(fd, 0);
++      if(err < 0){
++              cow_printf("write_cow_header - lseek failed, err = %d\n", -err);
++              goto out;
 +      }
-+      spin_unlock_irq(&cow->io_lock);
 +
-+      return(bh);
-+}
++      err = -ENOMEM;
++      header = cow_malloc(sizeof(*header));
++      if(header == NULL){
++              cow_printf("Failed to allocate COW V3 header\n");
++              goto out;
++      }
++      header->magic = htonl(COW_MAGIC);
++      header->version = htonl(COW_VERSION);
 +
-+static void cow_handle_bh(struct cow *cow, struct buffer_head *bh, 
-+                        struct buffer_head **cow_bh, int ncow_bh)
-+{
-+      int i;
++      err = -EINVAL;
++      if(strlen(backing_file) > sizeof(header->backing_file) - 1){
++              cow_printf("Backing file name \"%s\" is too long - names are "
++                         "limited to %d characters\n", backing_file, 
++                         sizeof(header->backing_file) - 1);
++              goto out_free;
++      }
 +
-+      if(ncow_bh > 0)
-+              ll_rw_block(WRITE, ncow_bh, cow_bh);
++      if(absolutize(header->backing_file, sizeof(header->backing_file), 
++                    backing_file))
++              goto out_free;
 +
-+      for(i = 0; i < ncow_bh ; i++){
-+              wait_on_buffer(cow_bh[i]);
-+              brelse(cow_bh[i]);
++      err = os_file_modtime(header->backing_file, &modtime);
++      if(err < 0){
++              cow_printf("Backing file '%s' mtime request failed, "
++                         "err = %d\n", header->backing_file, -err);
++              goto out_free;
 +      }
 +
-+      ll_rw_block(WRITE, 1, &bh);
-+      brelse(bh);
-+}
++      err = cow_file_size(header->backing_file, size);
++      if(err < 0){
++              cow_printf("Couldn't get size of backing file '%s', "
++                         "err = %d\n", header->backing_file, -err);
++              goto out_free;
++      }
 +
-+static struct buffer_head *cow_new_bh(struct cow *dev, int sector)
-+{
-+      struct buffer_head *bh;
++      header->mtime = htonl(modtime);
++      header->size = htonll(*size);
++      header->sectorsize = htonl(sectorsize);
++      header->alignment = htonl(alignment);
++      header->cow_format = COW_BITMAP;
 +
-+      sector = (dev->bitmap_offset + sector / 8) / dev->sectorsize;
-+      bh = getblk(dev->cow_dev, sector, dev->sectorsize);
-+      memcpy(bh->b_data, dev->bitmap + sector / (8 * sizeof(dev->bitmap[0])),
-+             dev->sectorsize);
-+      return(bh);
++      err = os_write_file(fd, header, sizeof(*header));
++      if(err != sizeof(*header)){
++              cow_printf("Write of header to new COW file '%s' failed, "
++                         "err = %d\n", cow_file, -err);
++              goto out_free;
++      }
++      err = 0;
++ out_free:
++      cow_free(header);
++ out:
++      return(err);
 +}
 +
-+/* Copied from loop.c, needed to avoid deadlocking in make_request. */
-+
-+static int cow_thread(void *data)
++int file_reader(__u64 offset, char *buf, int len, void *arg)
 +{
-+      struct cow *dev = data;
-+      struct buffer_head *bh;
-+
-+      daemonize();
-+      exit_files(current);
-+
-+      sprintf(current->comm, "cow%d", dev - cow_dev);
-+
-+      spin_lock_irq(&current->sigmask_lock);
-+      sigfillset(&current->blocked);
-+      flush_signals(current);
-+      spin_unlock_irq(&current->sigmask_lock);
++      int fd = *((int *) arg);
 +
-+      atomic_inc(&dev->working);
++      return(pread(fd, buf, len, offset));
++}
 +
-+      current->policy = SCHED_OTHER;
-+      current->nice = -20;
++/* XXX Need to sanity-check the values read from the header */
 +
-+      current->flags |= PF_NOIO;
++int read_cow_header(int (*reader)(__u64, char *, int, void *), void *arg, 
++                  __u32 *version_out, char **backing_file_out, 
++                  time_t *mtime_out, __u64 *size_out, 
++                  int *sectorsize_out, __u32 *align_out, 
++                  int *bitmap_offset_out)
++{
++      union cow_header *header;
++      char *file;
++      int err, n;
++      unsigned long version, magic;
 +
-+      /*
-+       * up sem, we are running
-+       */
-+      up(&dev->sem);
++      header = cow_malloc(sizeof(*header));
++      if(header == NULL){
++              cow_printf("read_cow_header - Failed to allocate header\n");
++              return(-ENOMEM);
++      }
++      err = -EINVAL;
++      n = (*reader)(0, (char *) header, sizeof(*header), arg);
++      if(n < offsetof(typeof(header->v1), backing_file)){
++              cow_printf("read_cow_header - short header\n");
++              goto out;
++      }
 +
-+      for(;;){
-+              int start, len, nbh, i, update_bitmap = 0;
-+              struct buffer_head *cow_bh[2];
++      magic = header->v1.magic;
++      if(magic == COW_MAGIC) {
++              version = header->v1.version;
++      }
++      else if(magic == ntohl(COW_MAGIC)){
++              version = ntohl(header->v1.version);
++      }
++      /* No error printed because the non-COW case comes through here */
++      else goto out;
 +
-+              down_interruptible(&dev->io_sem);
-+              /*
-+               * could be upped because of tear-down, not because of
-+               * pending work
-+               */
-+              if(!atomic_read(&dev->working))
-+                      break;
++      *version_out = version;
 +
-+              bh = cow_get_bh(dev);
-+              if(bh == NULL){
-+                      printk(KERN_ERR "cow: missing bh\n");
-+                      continue;
++      if(version == 1){
++              if(n < sizeof(header->v1)){
++                      cow_printf("read_cow_header - failed to read V1 "
++                                 "header\n");
++                      goto out;
 +              }
-+
-+              start = bh->b_blocknr * bh->b_size / dev->sectorsize;
-+              len = bh->b_size / dev->sectorsize;
-+              for(i = 0; i < len ; i++){
-+                      if(ubd_test_bit(start + i, 
-+                                      (unsigned char *) dev->bitmap))
-+                              continue;
-+
-+                      update_bitmap = 1;
-+                      ubd_set_bit(start + i, (unsigned char *) dev->bitmap);
++              *mtime_out = header->v1.mtime;
++              *size_out = header->v1.size;
++              *sectorsize_out = header->v1.sectorsize;
++              *bitmap_offset_out = sizeof(header->v1);
++              *align_out = *sectorsize_out;
++              file = header->v1.backing_file;
++      }
++      else if(version == 2){
++              if(n < sizeof(header->v2)){
++                      cow_printf("read_cow_header - failed to read V2 "
++                                 "header\n");
++                      goto out;
 +              }
-+
-+              cow_bh[0] = NULL;
-+              cow_bh[1] = NULL;
-+              nbh = 0;
-+              if(update_bitmap){
-+                      cow_bh[0] = cow_new_bh(dev, start);
-+                      nbh++;
-+                      if(start / dev->sectorsize != 
-+                         (start + len) / dev->sectorsize){
-+                              cow_bh[1] = cow_new_bh(dev, start + len);
-+                              nbh++;
-+                      }
++              *mtime_out = ntohl(header->v2.mtime);
++              *size_out = ntohll(header->v2.size);
++              *sectorsize_out = ntohl(header->v2.sectorsize);
++              *bitmap_offset_out = sizeof(header->v2);
++              *align_out = *sectorsize_out;
++              file = header->v2.backing_file;
++      }
++      else if(version == 3){
++              if(n < sizeof(header->v3)){
++                      cow_printf("read_cow_header - failed to read V2 "
++                                 "header\n");
++                      goto out;
 +              }
-+              
-+              bh->b_dev = dev->cow_dev;
-+              bh->b_blocknr += dev->data_offset / dev->sectorsize;
-+
-+              cow_handle_bh(dev, bh, cow_bh, nbh);
-+
-+              /*
-+               * upped both for pending work and tear-down, lo_pending
-+               * will hit zero then
-+               */
-+              if(atomic_dec_and_test(&dev->working))
-+                      break;
++              *mtime_out = ntohl(header->v3.mtime);
++              *size_out = ntohll(header->v3.size);
++              *sectorsize_out = ntohl(header->v3.sectorsize);
++              *align_out = ntohl(header->v3.alignment);
++              *bitmap_offset_out = ROUND_UP(sizeof(header->v3), *align_out);
++              file = header->v3.backing_file;
 +      }
-+
-+      up(&dev->sem);
-+      return(0);
++      else {
++              cow_printf("read_cow_header - invalid COW version\n");
++              goto out;               
++      }
++      err = -ENOMEM;
++      *backing_file_out = cow_strdup(file);
++      if(*backing_file_out == NULL){
++              cow_printf("read_cow_header - failed to allocate backing "
++                         "file\n");
++              goto out;
++      }
++      err = 0;
++ out:
++      cow_free(header);
++      return(err);
 +}
 +
-+static int cow_make_request(request_queue_t *q, int rw, struct buffer_head *bh)
++int init_cow_file(int fd, char *cow_file, char *backing_file, int sectorsize,
++                int alignment, int *bitmap_offset_out, 
++                unsigned long *bitmap_len_out, int *data_offset_out)
 +{
-+      struct cow *dev;
-+      int n, minor;
++      __u64 size, offset;
++      char zero = 0;
++      int err;
 +
-+      minor = MINOR(bh->b_rdev);
-+      n = minor >> COW_SHIFT;
-+      dev = &cow_dev[n];
++      err = write_cow_header(cow_file, fd, backing_file, sectorsize, 
++                             alignment, &size);
++      if(err) 
++              goto out;
++      
++      *bitmap_offset_out = ROUND_UP(sizeof(struct cow_header_v3), alignment);
++      cow_sizes(COW_VERSION, size, sectorsize, alignment, *bitmap_offset_out,
++                bitmap_len_out, data_offset_out);
 +
-+      dev->end_io = NULL;
-+      if(ubd_test_bit(bh->b_rsector, (unsigned char *) dev->bitmap)){
-+              bh->b_rdev = dev->cow_dev;
-+              bh->b_rsector += dev->data_offset / dev->sectorsize;
++      offset = *data_offset_out + size - sizeof(zero);
++      err = cow_seek_file(fd, offset);
++      if(err < 0){
++              cow_printf("cow bitmap lseek failed : err = %d\n", -err);
++              goto out;
 +      }
-+      else if(rw == WRITE){
-+              bh->b_dev = dev->cow_dev;
-+              bh->b_blocknr += dev->data_offset / dev->sectorsize;
 +
-+              cow_add_bh(dev, bh);
-+              up(&dev->io_sem);
-+              return(0);
-+      }
-+      else {
-+              bh->b_rdev = dev->backing_dev;
-+      }
++      /* does not really matter how much we write it is just to set EOF 
++       * this also sets the entire COW bitmap
++       * to zero without having to allocate it 
++       */
++      err = cow_write_file(fd, &zero, sizeof(zero));
++      if(err != sizeof(zero)){
++              cow_printf("Write of bitmap to new COW file '%s' failed, "
++                         "err = %d\n", cow_file, -err);
++              err = -EINVAL;
++              goto out;
++      }
 +
-+      return(1);
++      return(0);
++
++ out:
++      return(err);
 +}
 +
-+int cow_init(void)
++/*
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
+Index: uml-2.6.7/arch/um/drivers/chan_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/chan_kern.c 2004-07-16 19:37:43.028483752 +0300
++++ uml-2.6.7/arch/um/drivers/chan_kern.c      2004-07-16 19:47:24.392103048 +0300
+@@ -8,6 +8,7 @@
+ #include <linux/list.h>
+ #include <linux/slab.h>
+ #include <linux/tty.h>
++#include <linux/string.h>
+ #include <linux/tty_flip.h>
+ #include <asm/irq.h>
+ #include "chan_kern.h"
+@@ -16,6 +17,7 @@
+ #include "irq_user.h"
+ #include "sigio.h"
+ #include "line.h"
++#include "os.h"
+ static void *not_configged_init(char *str, int device, struct chan_opts *opts)
+ {
+@@ -86,6 +88,52 @@
+       .winch          = 0,
+ };
++void generic_close(int fd, void *unused)
 +{
-+      int i;
-+
-+      cow_dir_handle = devfs_mk_dir (NULL, "cow", NULL);
-+      if (devfs_register_blkdev(MAJOR_NR, "cow", &cow_blops)) {
-+              printk(KERN_ERR "cow: unable to get major %d\n", MAJOR_NR);
-+              return -1;
-+      }
-+      read_ahead[MAJOR_NR] = 8;               /* 8 sector (4kB) read-ahead */
-+      blksize_size[MAJOR_NR] = blk_sizes;
-+      blk_size[MAJOR_NR] = sizes;
-+      INIT_HARDSECT(hardsect_size, MAJOR_NR, hardsect_sizes);
-+
-+      cow_queue = BLK_DEFAULT_QUEUE(MAJOR_NR);
-+      blk_init_queue(cow_queue, NULL);
-+      INIT_ELV(cow_queue, &cow_queue->elevator);
-+      blk_queue_make_request(cow_queue, cow_make_request);
++      os_close_file(fd);
++}
 +
-+      add_gendisk(&cow_gendisk);
++int generic_read(int fd, char *c_out, void *unused)
++{
++      int n;
 +
-+      for(i=0;i<MAX_DEV;i++) 
-+              cow_add(i);
++      n = os_read_file(fd, c_out, sizeof(*c_out));
 +
-+      return(0);
++      if(n == -EAGAIN)
++              return(0);
++      else if(n == 0)
++              return(-EIO);
++      return(n);
 +}
 +
-+__initcall(cow_init);
-+
-+static int reader(__u64 start, char *buf, int count, void *arg)
++int generic_write(int fd, const char *buf, int n, void *unused)
 +{
-+      dev_t dev = *((dev_t *) arg);
-+      struct buffer_head *bh;
-+      __u64 block;
-+      int cur, offset, left, n, blocksize = get_hardsect_size(dev);
++      return(os_write_file(fd, buf, n));
++}
 +
-+      if(blocksize == 0)
-+              panic("Zero blocksize");
++int generic_window_size(int fd, void *unused, unsigned short *rows_out,
++                      unsigned short *cols_out)
++{
++      int rows, cols;
++      int ret;
 +
-+      block = start / blocksize;
-+      offset = start % blocksize;
-+      left = count;
-+      cur = 0;
-+      while(left > 0){
-+              n = (left > blocksize) ? blocksize : left;
++      ret = os_window_size(fd, &rows, &cols);
++      if(ret < 0)
++              return(ret);
 +
-+              bh = bread(dev, block, (n < 512) ? 512 : n);
-+              if(bh == NULL)
-+                      return(-EIO);
++      ret = ((*rows_out != rows) || (*cols_out != cols));
 +
-+              n -= offset;
-+              memcpy(&buf[cur], bh->b_data + offset, n);
-+              block++;
-+              left -= n;
-+              cur += n;
-+              offset = 0;
-+              brelse(bh);
-+      }
++      *rows_out = rows;
++      *cols_out = cols;
 +
-+      return(count);
++      return(ret);
 +}
 +
-+static int cow_open(struct inode *inode, struct file *filp)
++void generic_free(void *data)
 +{
-+      int (*dev_ioctl)(struct inode *, struct file *, unsigned int, 
-+                       unsigned long);
-+      mm_segment_t fs;
-+      struct cow *dev;
-+      __u64 size;
-+      __u32 version, align;
-+      time_t mtime;
-+      char *backing_file;
-+      int n, offset, err = 0;
++      kfree(data);
++}
 +
-+      n = DEVICE_NR(inode->i_rdev);
-+      if(n >= MAX_DEV)
-+              return(-ENODEV);
-+      dev = &cow_dev[n];
-+      offset = n << COW_SHIFT;
+ static void tty_receive_char(struct tty_struct *tty, char ch)
+ {
+       if(tty == NULL) return;
+@@ -265,6 +313,11 @@
+ {
+       int n = 0;
++      if(chan == NULL){
++              CONFIG_CHUNK(str, size, n, "none", 1);
++              return(n);
++      }
 +
-+      spin_lock(&cow_lock);
+       CONFIG_CHUNK(str, size, n, chan->ops->type, 0);
+       if(chan->dev == NULL){
+@@ -420,7 +473,8 @@
+               INIT_LIST_HEAD(chans);
+       }
+-      if((out = strchr(str, ',')) != NULL){
++      out = strchr(str, ',');
++      if(out != NULL){
+               in = str;
+               *out = '\0';
+               out++;
+@@ -475,12 +529,15 @@
+                               goto out;
+                       }
+                       err = chan->ops->read(chan->fd, &c, chan->data);
+-                      if(err > 0) tty_receive_char(tty, c);
++                      if(err > 0) 
++                              tty_receive_char(tty, c);
+               } while(err > 0);
 +
-+      if(dev->count == 0){
-+              dev->cow_dev = name_to_kdev_t(dev->cow_path);
-+              if(dev->cow_dev == 0){
-+                      printk(KERN_ERR "cow_open - name_to_kdev_t(\"%s\") "
-+                             "failed\n", dev->cow_path);
-+                      err = -ENODEV;
-+              }
+               if(err == 0) reactivate_fd(chan->fd, irq);
+               if(err == -EIO){
+                       if(chan->primary){
+-                              if(tty != NULL) tty_hangup(tty);
++                              if(tty != NULL) 
++                                      tty_hangup(tty);
+                               line_disable(dev, irq);
+                               close_chan(chans);
+                               free_chan(chans);
+Index: uml-2.6.7/arch/um/drivers/cow_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/cow_kern.c  2004-07-16 19:47:23.608222216 +0300
++++ uml-2.6.7/arch/um/drivers/cow_kern.c       2004-07-16 19:47:23.679211424 +0300
+@@ -0,0 +1,630 @@
++#define COW_MAJOR 60
++#define MAJOR_NR COW_MAJOR
 +
-+              dev->backing_dev = name_to_kdev_t(dev->backing_path);
-+              if(dev->backing_dev == 0){
-+                      printk(KERN_ERR "cow_open - name_to_kdev_t(\"%s\") "
-+                             "failed\n", dev->backing_path);
-+                      err = -ENODEV;
-+              }
++#include <linux/stddef.h>
++#include <linux/kernel.h>
++#include <linux/ctype.h>
++#include <linux/stat.h>
++#include <linux/vmalloc.h>
++#include <linux/blkdev.h>
++#include <linux/blk.h>
++#include <linux/fs.h>
++#include <linux/genhd.h>
++#include <linux/devfs_fs.h>
++#include <asm/uaccess.h>
++#include "2_5compat.h"
++#include "cow.h"
++#include "ubd_user.h"
 +
-+              if(err) 
-+                      goto out;
++#define COW_SHIFT 4
 +
-+              dev->cow_bdev = bdget(dev->cow_dev);
-+              if(dev->cow_bdev == NULL){
-+                      printk(KERN_ERR "cow_open - bdget(\"%s\") failed\n", 
-+                             dev->cow_path);
-+                      err = -ENOMEM;
-+              }
-+              dev->backing_bdev = bdget(dev->backing_dev);
-+              if(dev->backing_bdev == NULL){
-+                      printk(KERN_ERR "cow_open - bdget(\"%s\") failed\n", 
-+                             dev->backing_path);
-+                      err = -ENOMEM;
-+              }
++struct cow {
++      int count;
++      char *cow_path;
++      dev_t cow_dev;
++      struct block_device *cow_bdev;
++      char *backing_path;
++      dev_t backing_dev;
++      struct block_device *backing_bdev;
++      int sectorsize;
++      unsigned long *bitmap;
++      unsigned long bitmap_len;
++      int bitmap_offset;
++      int data_offset;
++      devfs_handle_t devfs;
++      struct semaphore sem;
++      struct semaphore io_sem;
++      atomic_t working;
++      spinlock_t io_lock;
++      struct buffer_head *bh;
++      struct buffer_head *bhtail;
++      void *end_io;
++};
 +
-+              if(err) 
-+                      goto out;
++#define DEFAULT_COW { \
++      .count                  = 0, \
++      .cow_path               = NULL, \
++      .cow_dev                = 0, \
++      .backing_path           = NULL, \
++      .backing_dev            = 0, \
++        .bitmap                       = NULL, \
++      .bitmap_len             = 0, \
++      .bitmap_offset          = 0, \
++        .data_offset          = 0, \
++      .devfs                  = NULL, \
++      .working                = ATOMIC_INIT(0), \
++      .io_lock                = SPIN_LOCK_UNLOCKED, \
++}
 +
-+              err = blkdev_get(dev->cow_bdev, FMODE_READ|FMODE_WRITE, 0, 
-+                               BDEV_RAW);
-+              if(err){
-+                      printk("cow_open - blkdev_get of COW device failed, "
-+                             "error = %d\n", err);
-+                      goto out;
-+              }
-+              
-+              err = blkdev_get(dev->backing_bdev, FMODE_READ, 0, BDEV_RAW);
-+              if(err){
-+                      printk("cow_open - blkdev_get of backing device "
-+                             "failed, error = %d\n", err);
-+                      goto out;
-+              }
-+              
-+              err = read_cow_header(reader, &dev->cow_dev, &version, 
-+                                    &backing_file, &mtime, &size,
-+                                    &dev->sectorsize, &align, 
-+                                    &dev->bitmap_offset);
-+              if(err){
-+                      printk(KERN_ERR "cow_open - read_cow_header failed, "
-+                             "err = %d\n", err);
-+                      goto out;
-+              }
-+
-+              cow_sizes(version, size, dev->sectorsize, align, 
-+                        dev->bitmap_offset, &dev->bitmap_len, 
-+                        &dev->data_offset);
-+              dev->bitmap = (void *) vmalloc(dev->bitmap_len);
-+              if(dev->bitmap == NULL){
-+                      err = -ENOMEM;
-+                      printk(KERN_ERR "Failed to vmalloc COW bitmap\n");
-+                      goto out;
-+              }
-+              flush_tlb_kernel_vm();
-+              
-+              err = reader(dev->bitmap_offset, (char *) dev->bitmap, 
-+                           dev->bitmap_len, &dev->cow_dev);
-+              if(err < 0){
-+                      printk(KERN_ERR "Failed to read COW bitmap\n");
-+                      vfree(dev->bitmap);
-+                      goto out;
-+              }
++#define MAX_DEV (8)
++#define MAX_MINOR (MAX_DEV << COW_SHIFT)
 +
-+              dev_ioctl = dev->backing_bdev->bd_op->ioctl;
-+              fs = get_fs();
-+              set_fs(KERNEL_DS);
-+              err = (*dev_ioctl)(inode, filp, BLKGETSIZE, 
-+                                 (unsigned long) &sizes[offset]);
-+              set_fs(fs);
-+              if(err){
-+                      printk(KERN_ERR "cow_open - BLKGETSIZE failed, "
-+                             "error = %d\n", err);
-+                      goto out;
-+              }
++struct cow cow_dev[MAX_DEV] = { [ 0 ... MAX_DEV - 1 ] = DEFAULT_COW };
 +
-+              kernel_thread(cow_thread, dev, 
-+                            CLONE_FS | CLONE_FILES | CLONE_SIGHAND);
-+              down(&dev->sem);
-+      }
-+      dev->count++;
-+ out:
-+      spin_unlock(&cow_lock);
-+      return(err);
-+}
++/* Not modified by this driver */
++static int blk_sizes[MAX_MINOR] = { [ 0 ... MAX_MINOR - 1 ] = BLOCK_SIZE };
++static int hardsect_sizes[MAX_MINOR] = { [ 0 ... MAX_MINOR - 1 ] = 512 };
 +
-+static int cow_release(struct inode * inode, struct file * file)
-+{
-+      struct cow *dev;
-+      int n, err;
++/* Protected by cow_lock */
++static int sizes[MAX_MINOR] = { [ 0 ... MAX_MINOR - 1 ] = 0 };
 +
-+      n = DEVICE_NR(inode->i_rdev);
-+      if(n >= MAX_DEV)
-+              return(-ENODEV);
-+      dev = &cow_dev[n];
++static struct hd_struct       cow_part[MAX_MINOR] =
++      { [ 0 ... MAX_MINOR - 1 ] = { 0, 0, 0 } };
 +
-+      spin_lock(&cow_lock);
++/* Protected by io_request_lock */
++static request_queue_t *cow_queue;
 +
-+      if(--dev->count > 0)
-+              goto out;
++static int cow_open(struct inode *inode, struct file *filp);
++static int cow_release(struct inode * inode, struct file * file);
++static int cow_ioctl(struct inode * inode, struct file * file,
++                   unsigned int cmd, unsigned long arg);
++static int cow_revalidate(kdev_t rdev);
 +
-+      err = blkdev_put(dev->cow_bdev, BDEV_RAW);
-+      if(err)
-+              printk("cow_release - blkdev_put of cow device failed, "
-+                     "error = %d\n", err);
-+      bdput(dev->cow_bdev);
-+      dev->cow_bdev = 0;
++static struct block_device_operations cow_blops = {
++      .open           = cow_open,
++      .release        = cow_release,
++      .ioctl          = cow_ioctl,
++      .revalidate     = cow_revalidate,
++};
 +
-+      err = blkdev_put(dev->backing_bdev, BDEV_RAW);
-+      if(err)
-+              printk("cow_release - blkdev_put of backing device failed, "
-+                     "error = %d\n", err);
-+      bdput(dev->backing_bdev);
-+      dev->backing_bdev = 0;
++/* Initialized in an initcall, and unchanged thereafter */
++devfs_handle_t cow_dir_handle;
 +
-+ out:
-+      spin_unlock(&cow_lock);
-+      return(0);
++#define INIT_GENDISK(maj, name, parts, shift, bsizes, max, blops) \
++{ \
++      .major          = maj, \
++      .major_name     = name, \
++      .minor_shift    = shift, \
++      .max_p          = 1 << shift, \
++      .part           = parts, \
++      .sizes          = bsizes, \
++      .nr_real        = max, \
++      .real_devices   = NULL, \
++      .next           = NULL, \
++      .fops           = blops, \
++      .de_arr         = NULL, \
++      .flags          = 0 \
 +}
 +
-+static int cow_ioctl(struct inode * inode, struct file * file,
-+                   unsigned int cmd, unsigned long arg)
++static spinlock_t cow_lock = SPIN_LOCK_UNLOCKED;
++
++static struct gendisk cow_gendisk = INIT_GENDISK(MAJOR_NR, "cow", cow_part,
++                                               COW_SHIFT, sizes, MAX_DEV, 
++                                               &cow_blops);
++
++static int cow_add(int n)
 +{
-+      struct cow *dev;
-+      int (*dev_ioctl)(struct inode *, struct file *, unsigned int, 
-+                       unsigned long);
-+      int n;
++      struct cow *dev = &cow_dev[n];
++      char name[sizeof("nnnnnn\0")];
++      int err = -ENODEV;
 +
-+      n = DEVICE_NR(inode->i_rdev);
-+      if(n >= MAX_DEV)
-+              return(-ENODEV);
-+      dev = &cow_dev[n];
++      if(dev->cow_path == NULL)
++              goto out;
 +
-+      dev_ioctl = dev->backing_bdev->bd_op->ioctl;
-+      return((*dev_ioctl)(inode, file, cmd, arg));
-+}
++      sprintf(name, "%d", n);
++      dev->devfs = devfs_register(cow_dir_handle, name, DEVFS_FL_REMOVABLE,
++                                  MAJOR_NR, n << COW_SHIFT, S_IFBLK | 
++                                  S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP,
++                                  &cow_blops, NULL);
++
++      init_MUTEX_LOCKED(&dev->sem);
++      init_MUTEX(&dev->io_sem);
 +
-+static int cow_revalidate(kdev_t rdev)
-+{
-+      printk(KERN_ERR "Need to implement cow_revalidate\n");
 +      return(0);
++
++ out:
++      return(err);
 +}
 +
-+static int parse_unit(char **ptr)
++/*
++ * Add buffer_head to back of pending list
++ */
++static void cow_add_bh(struct cow *cow, struct buffer_head *bh)
 +{
-+      char *str = *ptr, *end;
-+      int n = -1;
++      unsigned long flags;
 +
-+      if(isdigit(*str)) {
-+              n = simple_strtoul(str, &end, 0);
-+              if(end == str)
-+                      return(-1);
-+              *ptr = end;
++      spin_lock_irqsave(&cow->io_lock, flags);
++      if(cow->bhtail != NULL){
++              cow->bhtail->b_reqnext = bh;
++              cow->bhtail = bh;
 +      }
-+      else if (('a' <= *str) && (*str <= 'h')) {
-+              n = *str - 'a';
-+              str++;
-+              *ptr = str;
++      else {
++              cow->bh = bh;
++              cow->bhtail = bh;
 +      }
-+      return(n);
++      spin_unlock_irqrestore(&cow->io_lock, flags);
 +}
 +
-+static int cow_setup(char *str)
++/*
++* Grab first pending buffer
++*/
++static struct buffer_head *cow_get_bh(struct cow *cow)
 +{
-+      struct cow *dev;
-+      char *cow_name, *backing_name;
-+      int unit;
++      struct buffer_head *bh;
 +
-+      unit = parse_unit(&str);
-+      if(unit < 0){
-+              printk(KERN_ERR "cow_setup - Couldn't parse unit number\n");
-+              return(1);
++      spin_lock_irq(&cow->io_lock);
++      bh = cow->bh;
++      if(bh != NULL){
++              if(bh == cow->bhtail)
++                      cow->bhtail = NULL;
++              cow->bh = bh->b_reqnext;
++              bh->b_reqnext = NULL;
 +      }
++      spin_unlock_irq(&cow->io_lock);
 +
-+      if(*str != '='){
-+              printk(KERN_ERR "cow_setup - Missing '=' after unit "
-+                     "number\n");
-+              return(1);
-+      }
-+      str++;
++      return(bh);
++}
 +
-+      cow_name = str;
-+      backing_name = strchr(str, ',');
-+      if(backing_name == NULL){
-+              printk(KERN_ERR "cow_setup - missing backing device name\n");
-+              return(0);
++static void cow_handle_bh(struct cow *cow, struct buffer_head *bh, 
++                        struct buffer_head **cow_bh, int ncow_bh)
++{
++      int i;
++
++      if(ncow_bh > 0)
++              ll_rw_block(WRITE, ncow_bh, cow_bh);
++
++      for(i = 0; i < ncow_bh ; i++){
++              wait_on_buffer(cow_bh[i]);
++              brelse(cow_bh[i]);
 +      }
-+      *backing_name = '\0';
-+      backing_name++;
 +
-+      spin_lock(&cow_lock);
++      ll_rw_block(WRITE, 1, &bh);
++      brelse(bh);
++}
 +
-+      dev = &cow_dev[unit];
-+      dev->cow_path = cow_name;
-+      dev->backing_path = backing_name;
-+      
-+      spin_unlock(&cow_lock);
-+      return(0);
++static struct buffer_head *cow_new_bh(struct cow *dev, int sector)
++{
++      struct buffer_head *bh;
++
++      sector = (dev->bitmap_offset + sector / 8) / dev->sectorsize;
++      bh = getblk(dev->cow_dev, sector, dev->sectorsize);
++      memcpy(bh->b_data, dev->bitmap + sector / (8 * sizeof(dev->bitmap[0])),
++             dev->sectorsize);
++      return(bh);
 +}
 +
-+__setup("cow", cow_setup);
++/* Copied from loop.c, needed to avoid deadlocking in make_request. */
 +
-+/*
-+ * Overrides for Emacs so that we follow Linus's tabbing style.
-+ * Emacs will notice this stuff at the end of the file and automatically
-+ * adjust the settings for this buffer only.  This must remain at the end
-+ * of the file.
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
-diff -Naur a/arch/um/drivers/cow_sys.h b/arch/um/drivers/cow_sys.h
---- a/arch/um/drivers/cow_sys.h        1969-12-31 19:00:00.000000000 -0500
-+++ b/arch/um/drivers/cow_sys.h        2004-03-10 08:39:54.000000000 -0500
-@@ -0,0 +1,48 @@
-+#ifndef __COW_SYS_H__
-+#define __COW_SYS_H__
-+
-+#include "kern_util.h"
-+#include "user_util.h"
-+#include "os.h"
-+#include "user.h"
-+
-+static inline void *cow_malloc(int size)
++static int cow_thread(void *data)
 +{
-+      return(um_kmalloc(size));
-+}
++      struct cow *dev = data;
++      struct buffer_head *bh;
 +
-+static inline void cow_free(void *ptr)
-+{
-+      kfree(ptr);
-+}
++      daemonize();
++      exit_files(current);
 +
-+#define cow_printf printk
++      sprintf(current->comm, "cow%d", dev - cow_dev);
 +
-+static inline char *cow_strdup(char *str)
-+{
-+      return(uml_strdup(str));
-+}
++      spin_lock_irq(&current->sigmask_lock);
++      sigfillset(&current->blocked);
++      flush_signals(current);
++      spin_unlock_irq(&current->sigmask_lock);
 +
-+static inline int cow_seek_file(int fd, __u64 offset)
-+{
-+      return(os_seek_file(fd, offset));
-+}
++      atomic_inc(&dev->working);
 +
-+static inline int cow_file_size(char *file, __u64 *size_out)
-+{
-+      return(os_file_size(file, size_out));
-+}
++      current->policy = SCHED_OTHER;
++      current->nice = -20;
 +
-+static inline int cow_write_file(int fd, char *buf, int size)
-+{
-+      return(os_write_file(fd, buf, size));
-+}
++      current->flags |= PF_NOIO;
 +
-+#endif
++      /*
++       * up sem, we are running
++       */
++      up(&dev->sem);
 +
-+/*
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
-diff -Naur a/arch/um/drivers/cow_user.c b/arch/um/drivers/cow_user.c
---- a/arch/um/drivers/cow_user.c       1969-12-31 19:00:00.000000000 -0500
-+++ b/arch/um/drivers/cow_user.c       2004-03-10 08:39:35.000000000 -0500
-@@ -0,0 +1,375 @@
-+#include <stddef.h>
-+#include <string.h>
-+#include <errno.h>
-+#include <unistd.h>
-+#include <byteswap.h>
-+#include <sys/time.h>
-+#include <sys/param.h>
-+#include <sys/user.h>
-+#include <netinet/in.h>
++      for(;;){
++              int start, len, nbh, i, update_bitmap = 0;
++              struct buffer_head *cow_bh[2];
 +
-+#include "os.h"
++              down_interruptible(&dev->io_sem);
++              /*
++               * could be upped because of tear-down, not because of
++               * pending work
++               */
++              if(!atomic_read(&dev->working))
++                      break;
 +
-+#include "cow.h"
-+#include "cow_sys.h"
++              bh = cow_get_bh(dev);
++              if(bh == NULL){
++                      printk(KERN_ERR "cow: missing bh\n");
++                      continue;
++              }
 +
-+#define PATH_LEN_V1 256
++              start = bh->b_blocknr * bh->b_size / dev->sectorsize;
++              len = bh->b_size / dev->sectorsize;
++              for(i = 0; i < len ; i++){
++                      if(ubd_test_bit(start + i, 
++                                      (unsigned char *) dev->bitmap))
++                              continue;
 +
-+struct cow_header_v1 {
-+      int magic;
-+      int version;
-+      char backing_file[PATH_LEN_V1];
-+      time_t mtime;
-+      __u64 size;
-+      int sectorsize;
-+};
++                      update_bitmap = 1;
++                      ubd_set_bit(start + i, (unsigned char *) dev->bitmap);
++              }
 +
-+#define PATH_LEN_V2 MAXPATHLEN
++              cow_bh[0] = NULL;
++              cow_bh[1] = NULL;
++              nbh = 0;
++              if(update_bitmap){
++                      cow_bh[0] = cow_new_bh(dev, start);
++                      nbh++;
++                      if(start / dev->sectorsize != 
++                         (start + len) / dev->sectorsize){
++                              cow_bh[1] = cow_new_bh(dev, start + len);
++                              nbh++;
++                      }
++              }
++              
++              bh->b_dev = dev->cow_dev;
++              bh->b_blocknr += dev->data_offset / dev->sectorsize;
 +
-+struct cow_header_v2 {
-+      unsigned long magic;
-+      unsigned long version;
-+      char backing_file[PATH_LEN_V2];
-+      time_t mtime;
-+      __u64 size;
-+      int sectorsize;
-+};
++              cow_handle_bh(dev, bh, cow_bh, nbh);
 +
-+/* Define PATH_LEN_V3 as the usual value of MAXPATHLEN, just hard-code it in 
-+ * case other systems have different values for MAXPATHLEN
-+ */
-+#define PATH_LEN_V3 4096
++              /*
++               * upped both for pending work and tear-down, lo_pending
++               * will hit zero then
++               */
++              if(atomic_dec_and_test(&dev->working))
++                      break;
++      }
 +
-+/* Changes from V2 - 
-+ *    PATH_LEN_V3 as described above
-+ *    Explicitly specify field bit lengths for systems with different
-+ *            lengths for the usual C types.  Not sure whether char or
-+ *            time_t should be changed, this can be changed later without
-+ *            breaking compatibility
-+ *    Add alignment field so that different alignments can be used for the
-+ *            bitmap and data
-+ *    Add cow_format field to allow for the possibility of different ways
-+ *            of specifying the COW blocks.  For now, the only value is 0,
-+ *            for the traditional COW bitmap.
-+ *    Move the backing_file field to the end of the header.  This allows
-+ *            for the possibility of expanding it into the padding required
-+ *            by the bitmap alignment.
-+ *    The bitmap and data portions of the file will be aligned as specified
-+ *            by the alignment field.  This is to allow COW files to be
-+ *            put on devices with restrictions on access alignments, such as
-+ *            /dev/raw, with a 512 byte alignment restriction.  This also
-+ *            allows the data to be more aligned more strictly than on
-+ *            sector boundaries.  This is needed for ubd-mmap, which needs
-+ *            the data to be page aligned.
-+ *    Fixed (finally!) the rounding bug
-+ */
++      up(&dev->sem);
++      return(0);
++}
 +
-+struct cow_header_v3 {
-+      __u32 magic;
-+      __u32 version;
-+      time_t mtime;
-+      __u64 size;
-+      __u32 sectorsize;
-+      __u32 alignment;
-+      __u32 cow_format;
-+      char backing_file[PATH_LEN_V3];
-+};
++static int cow_make_request(request_queue_t *q, int rw, struct buffer_head *bh)
++{
++      struct cow *dev;
++      int n, minor;
 +
-+/* COW format definitions - for now, we have only the usual COW bitmap */
-+#define COW_BITMAP 0
++      minor = MINOR(bh->b_rdev);
++      n = minor >> COW_SHIFT;
++      dev = &cow_dev[n];
 +
-+union cow_header {
-+      struct cow_header_v1 v1;
-+      struct cow_header_v2 v2;
-+      struct cow_header_v3 v3;
-+};
++      dev->end_io = NULL;
++      if(ubd_test_bit(bh->b_rsector, (unsigned char *) dev->bitmap)){
++              bh->b_rdev = dev->cow_dev;
++              bh->b_rsector += dev->data_offset / dev->sectorsize;
++      }
++      else if(rw == WRITE){
++              bh->b_dev = dev->cow_dev;
++              bh->b_blocknr += dev->data_offset / dev->sectorsize;
 +
-+#define COW_MAGIC 0x4f4f4f4d  /* MOOO */
-+#define COW_VERSION 3
++              cow_add_bh(dev, bh);
++              up(&dev->io_sem);
++              return(0);
++      }
++      else {
++              bh->b_rdev = dev->backing_dev;
++      }
 +
-+#define DIV_ROUND(x, len) (((x) + (len) - 1) / (len))
-+#define ROUND_UP(x, align) DIV_ROUND(x, align) * (align)
++      return(1);
++}
 +
-+void cow_sizes(int version, __u64 size, int sectorsize, int align, 
-+             int bitmap_offset, unsigned long *bitmap_len_out, 
-+             int *data_offset_out)
++int cow_init(void)
 +{
-+      if(version < 3){
-+              *bitmap_len_out = (size + sectorsize - 1) / (8 * sectorsize);
++      int i;
 +
-+              *data_offset_out = bitmap_offset + *bitmap_len_out;
-+              *data_offset_out = (*data_offset_out + sectorsize - 1) / 
-+                      sectorsize;
-+              *data_offset_out *= sectorsize;
++      cow_dir_handle = devfs_mk_dir (NULL, "cow", NULL);
++      if (devfs_register_blkdev(MAJOR_NR, "cow", &cow_blops)) {
++              printk(KERN_ERR "cow: unable to get major %d\n", MAJOR_NR);
++              return -1;
 +      }
-+      else {
-+              *bitmap_len_out = DIV_ROUND(size, sectorsize);
-+              *bitmap_len_out = DIV_ROUND(*bitmap_len_out, 8);
++      read_ahead[MAJOR_NR] = 8;               /* 8 sector (4kB) read-ahead */
++      blksize_size[MAJOR_NR] = blk_sizes;
++      blk_size[MAJOR_NR] = sizes;
++      INIT_HARDSECT(hardsect_size, MAJOR_NR, hardsect_sizes);
 +
-+              *data_offset_out = bitmap_offset + *bitmap_len_out;
-+              *data_offset_out = ROUND_UP(*data_offset_out, align);
-+      }
++      cow_queue = BLK_DEFAULT_QUEUE(MAJOR_NR);
++      blk_init_queue(cow_queue, NULL);
++      INIT_ELV(cow_queue, &cow_queue->elevator);
++      blk_queue_make_request(cow_queue, cow_make_request);
++
++      add_gendisk(&cow_gendisk);
++
++      for(i=0;i<MAX_DEV;i++) 
++              cow_add(i);
++
++      return(0);
 +}
 +
-+static int absolutize(char *to, int size, char *from)
-+{
-+      char save_cwd[256], *slash;
-+      int remaining;
++__initcall(cow_init);
 +
-+      if(getcwd(save_cwd, sizeof(save_cwd)) == NULL) {
-+              cow_printf("absolutize : unable to get cwd - errno = %d\n", 
-+                         errno);
-+              return(-1);
-+      }
-+      slash = strrchr(from, '/');
-+      if(slash != NULL){
-+              *slash = '\0';
-+              if(chdir(from)){
-+                      *slash = '/';
-+                      cow_printf("absolutize : Can't cd to '%s' - " 
-+                                 "errno = %d\n", from, errno);
-+                      return(-1);
-+              }
-+              *slash = '/';
-+              if(getcwd(to, size) == NULL){
-+                      cow_printf("absolutize : unable to get cwd of '%s' - "
-+                             "errno = %d\n", from, errno);
-+                      return(-1);
-+              }
-+              remaining = size - strlen(to);
-+              if(strlen(slash) + 1 > remaining){
-+                      cow_printf("absolutize : unable to fit '%s' into %d "
-+                             "chars\n", from, size);
-+                      return(-1);
-+              }
-+              strcat(to, slash);
-+      }
-+      else {
-+              if(strlen(save_cwd) + 1 + strlen(from) + 1 > size){
-+                      cow_printf("absolutize : unable to fit '%s' into %d "
-+                             "chars\n", from, size);
-+                      return(-1);
-+              }
-+              strcpy(to, save_cwd);
-+              strcat(to, "/");
-+              strcat(to, from);
-+      }
-+      chdir(save_cwd);
-+      return(0);
-+}
-+
-+int write_cow_header(char *cow_file, int fd, char *backing_file, 
-+                   int sectorsize, int alignment, long long *size)
++static int reader(__u64 start, char *buf, int count, void *arg)
 +{
-+      struct cow_header_v3 *header;
-+      unsigned long modtime;
-+      int err;
-+
-+      err = cow_seek_file(fd, 0);
-+      if(err < 0){
-+              cow_printf("write_cow_header - lseek failed, err = %d\n", -err);
-+              goto out;
-+      }
-+
-+      err = -ENOMEM;
-+      header = cow_malloc(sizeof(*header));
-+      if(header == NULL){
-+              cow_printf("Failed to allocate COW V3 header\n");
-+              goto out;
-+      }
-+      header->magic = htonl(COW_MAGIC);
-+      header->version = htonl(COW_VERSION);
++      dev_t dev = *((dev_t *) arg);
++      struct buffer_head *bh;
++      __u64 block;
++      int cur, offset, left, n, blocksize = get_hardsect_size(dev);
 +
-+      err = -EINVAL;
-+      if(strlen(backing_file) > sizeof(header->backing_file) - 1){
-+              cow_printf("Backing file name \"%s\" is too long - names are "
-+                         "limited to %d characters\n", backing_file, 
-+                         sizeof(header->backing_file) - 1);
-+              goto out_free;
-+      }
++      if(blocksize == 0)
++              panic("Zero blocksize");
 +
-+      if(absolutize(header->backing_file, sizeof(header->backing_file), 
-+                    backing_file))
-+              goto out_free;
++      block = start / blocksize;
++      offset = start % blocksize;
++      left = count;
++      cur = 0;
++      while(left > 0){
++              n = (left > blocksize) ? blocksize : left;
 +
-+      err = os_file_modtime(header->backing_file, &modtime);
-+      if(err < 0){
-+              cow_printf("Backing file '%s' mtime request failed, "
-+                         "err = %d\n", header->backing_file, -err);
-+              goto out_free;
-+      }
++              bh = bread(dev, block, (n < 512) ? 512 : n);
++              if(bh == NULL)
++                      return(-EIO);
 +
-+      err = cow_file_size(header->backing_file, size);
-+      if(err < 0){
-+              cow_printf("Couldn't get size of backing file '%s', "
-+                         "err = %d\n", header->backing_file, -err);
-+              goto out_free;
++              n -= offset;
++              memcpy(&buf[cur], bh->b_data + offset, n);
++              block++;
++              left -= n;
++              cur += n;
++              offset = 0;
++              brelse(bh);
 +      }
 +
-+      header->mtime = htonl(modtime);
-+      header->size = htonll(*size);
-+      header->sectorsize = htonl(sectorsize);
-+      header->alignment = htonl(alignment);
-+      header->cow_format = COW_BITMAP;
-+
-+      err = os_write_file(fd, header, sizeof(*header));
-+      if(err != sizeof(*header)){
-+              cow_printf("Write of header to new COW file '%s' failed, "
-+                         "err = %d\n", cow_file, -err);
-+              goto out_free;
-+      }
-+      err = 0;
-+ out_free:
-+      cow_free(header);
-+ out:
-+      return(err);
++      return(count);
 +}
 +
-+int file_reader(__u64 offset, char *buf, int len, void *arg)
++static int cow_open(struct inode *inode, struct file *filp)
 +{
-+      int fd = *((int *) arg);
++      int (*dev_ioctl)(struct inode *, struct file *, unsigned int, 
++                       unsigned long);
++      mm_segment_t fs;
++      struct cow *dev;
++      __u64 size;
++      __u32 version, align;
++      time_t mtime;
++      char *backing_file;
++      int n, offset, err = 0;
 +
-+      return(pread(fd, buf, len, offset));
-+}
++      n = DEVICE_NR(inode->i_rdev);
++      if(n >= MAX_DEV)
++              return(-ENODEV);
++      dev = &cow_dev[n];
++      offset = n << COW_SHIFT;
 +
-+/* XXX Need to sanity-check the values read from the header */
++      spin_lock(&cow_lock);
 +
-+int read_cow_header(int (*reader)(__u64, char *, int, void *), void *arg, 
-+                  __u32 *version_out, char **backing_file_out, 
-+                  time_t *mtime_out, __u64 *size_out, 
-+                  int *sectorsize_out, __u32 *align_out, 
-+                  int *bitmap_offset_out)
-+{
-+      union cow_header *header;
-+      char *file;
-+      int err, n;
-+      unsigned long version, magic;
++      if(dev->count == 0){
++              dev->cow_dev = name_to_kdev_t(dev->cow_path);
++              if(dev->cow_dev == 0){
++                      printk(KERN_ERR "cow_open - name_to_kdev_t(\"%s\") "
++                             "failed\n", dev->cow_path);
++                      err = -ENODEV;
++              }
 +
-+      header = cow_malloc(sizeof(*header));
-+      if(header == NULL){
-+              cow_printf("read_cow_header - Failed to allocate header\n");
-+              return(-ENOMEM);
-+      }
-+      err = -EINVAL;
-+      n = (*reader)(0, (char *) header, sizeof(*header), arg);
-+      if(n < offsetof(typeof(header->v1), backing_file)){
-+              cow_printf("read_cow_header - short header\n");
-+              goto out;
-+      }
++              dev->backing_dev = name_to_kdev_t(dev->backing_path);
++              if(dev->backing_dev == 0){
++                      printk(KERN_ERR "cow_open - name_to_kdev_t(\"%s\") "
++                             "failed\n", dev->backing_path);
++                      err = -ENODEV;
++              }
 +
-+      magic = header->v1.magic;
-+      if(magic == COW_MAGIC) {
-+              version = header->v1.version;
-+      }
-+      else if(magic == ntohl(COW_MAGIC)){
-+              version = ntohl(header->v1.version);
-+      }
-+      /* No error printed because the non-COW case comes through here */
-+      else goto out;
++              if(err) 
++                      goto out;
 +
-+      *version_out = version;
++              dev->cow_bdev = bdget(dev->cow_dev);
++              if(dev->cow_bdev == NULL){
++                      printk(KERN_ERR "cow_open - bdget(\"%s\") failed\n", 
++                             dev->cow_path);
++                      err = -ENOMEM;
++              }
++              dev->backing_bdev = bdget(dev->backing_dev);
++              if(dev->backing_bdev == NULL){
++                      printk(KERN_ERR "cow_open - bdget(\"%s\") failed\n", 
++                             dev->backing_path);
++                      err = -ENOMEM;
++              }
 +
-+      if(version == 1){
-+              if(n < sizeof(header->v1)){
-+                      cow_printf("read_cow_header - failed to read V1 "
-+                                 "header\n");
++              if(err) 
++                      goto out;
++
++              err = blkdev_get(dev->cow_bdev, FMODE_READ|FMODE_WRITE, 0, 
++                               BDEV_RAW);
++              if(err){
++                      printk("cow_open - blkdev_get of COW device failed, "
++                             "error = %d\n", err);
 +                      goto out;
 +              }
-+              *mtime_out = header->v1.mtime;
-+              *size_out = header->v1.size;
-+              *sectorsize_out = header->v1.sectorsize;
-+              *bitmap_offset_out = sizeof(header->v1);
-+              *align_out = *sectorsize_out;
-+              file = header->v1.backing_file;
-+      }
-+      else if(version == 2){
-+              if(n < sizeof(header->v2)){
-+                      cow_printf("read_cow_header - failed to read V2 "
-+                                 "header\n");
++              
++              err = blkdev_get(dev->backing_bdev, FMODE_READ, 0, BDEV_RAW);
++              if(err){
++                      printk("cow_open - blkdev_get of backing device "
++                             "failed, error = %d\n", err);
 +                      goto out;
 +              }
-+              *mtime_out = ntohl(header->v2.mtime);
-+              *size_out = ntohll(header->v2.size);
-+              *sectorsize_out = ntohl(header->v2.sectorsize);
-+              *bitmap_offset_out = sizeof(header->v2);
-+              *align_out = *sectorsize_out;
-+              file = header->v2.backing_file;
-+      }
-+      else if(version == 3){
-+              if(n < sizeof(header->v3)){
-+                      cow_printf("read_cow_header - failed to read V2 "
-+                                 "header\n");
++              
++              err = read_cow_header(reader, &dev->cow_dev, &version, 
++                                    &backing_file, &mtime, &size,
++                                    &dev->sectorsize, &align, 
++                                    &dev->bitmap_offset);
++              if(err){
++                      printk(KERN_ERR "cow_open - read_cow_header failed, "
++                             "err = %d\n", err);
 +                      goto out;
 +              }
-+              *mtime_out = ntohl(header->v3.mtime);
-+              *size_out = ntohll(header->v3.size);
-+              *sectorsize_out = ntohl(header->v3.sectorsize);
-+              *align_out = ntohl(header->v3.alignment);
-+              *bitmap_offset_out = ROUND_UP(sizeof(header->v3), *align_out);
-+              file = header->v3.backing_file;
-+      }
-+      else {
-+              cow_printf("read_cow_header - invalid COW version\n");
-+              goto out;               
-+      }
-+      err = -ENOMEM;
-+      *backing_file_out = cow_strdup(file);
-+      if(*backing_file_out == NULL){
-+              cow_printf("read_cow_header - failed to allocate backing "
-+                         "file\n");
-+              goto out;
++
++              cow_sizes(version, size, dev->sectorsize, align, 
++                        dev->bitmap_offset, &dev->bitmap_len, 
++                        &dev->data_offset);
++              dev->bitmap = (void *) vmalloc(dev->bitmap_len);
++              if(dev->bitmap == NULL){
++                      err = -ENOMEM;
++                      printk(KERN_ERR "Failed to vmalloc COW bitmap\n");
++                      goto out;
++              }
++              flush_tlb_kernel_vm();
++              
++              err = reader(dev->bitmap_offset, (char *) dev->bitmap, 
++                           dev->bitmap_len, &dev->cow_dev);
++              if(err < 0){
++                      printk(KERN_ERR "Failed to read COW bitmap\n");
++                      vfree(dev->bitmap);
++                      goto out;
++              }
++
++              dev_ioctl = dev->backing_bdev->bd_op->ioctl;
++              fs = get_fs();
++              set_fs(KERNEL_DS);
++              err = (*dev_ioctl)(inode, filp, BLKGETSIZE, 
++                                 (unsigned long) &sizes[offset]);
++              set_fs(fs);
++              if(err){
++                      printk(KERN_ERR "cow_open - BLKGETSIZE failed, "
++                             "error = %d\n", err);
++                      goto out;
++              }
++
++              kernel_thread(cow_thread, dev, 
++                            CLONE_FS | CLONE_FILES | CLONE_SIGHAND);
++              down(&dev->sem);
 +      }
-+      err = 0;
++      dev->count++;
 + out:
-+      cow_free(header);
++      spin_unlock(&cow_lock);
 +      return(err);
 +}
 +
-+int init_cow_file(int fd, char *cow_file, char *backing_file, int sectorsize,
-+                int alignment, int *bitmap_offset_out, 
-+                unsigned long *bitmap_len_out, int *data_offset_out)
++static int cow_release(struct inode * inode, struct file * file)
 +{
-+      __u64 size, offset;
-+      char zero = 0;
-+      int err;
++      struct cow *dev;
++      int n, err;
 +
-+      err = write_cow_header(cow_file, fd, backing_file, sectorsize, 
-+                             alignment, &size);
-+      if(err) 
-+              goto out;
-+      
-+      *bitmap_offset_out = ROUND_UP(sizeof(struct cow_header_v3), alignment);
-+      cow_sizes(COW_VERSION, size, sectorsize, alignment, *bitmap_offset_out,
-+                bitmap_len_out, data_offset_out);
++      n = DEVICE_NR(inode->i_rdev);
++      if(n >= MAX_DEV)
++              return(-ENODEV);
++      dev = &cow_dev[n];
 +
-+      offset = *data_offset_out + size - sizeof(zero);
-+      err = cow_seek_file(fd, offset);
-+      if(err < 0){
-+              cow_printf("cow bitmap lseek failed : err = %d\n", -err);
++      spin_lock(&cow_lock);
++
++      if(--dev->count > 0)
 +              goto out;
++
++      err = blkdev_put(dev->cow_bdev, BDEV_RAW);
++      if(err)
++              printk("cow_release - blkdev_put of cow device failed, "
++                     "error = %d\n", err);
++      bdput(dev->cow_bdev);
++      dev->cow_bdev = 0;
++
++      err = blkdev_put(dev->backing_bdev, BDEV_RAW);
++      if(err)
++              printk("cow_release - blkdev_put of backing device failed, "
++                     "error = %d\n", err);
++      bdput(dev->backing_bdev);
++      dev->backing_bdev = 0;
++
++ out:
++      spin_unlock(&cow_lock);
++      return(0);
++}
++
++static int cow_ioctl(struct inode * inode, struct file * file,
++                   unsigned int cmd, unsigned long arg)
++{
++      struct cow *dev;
++      int (*dev_ioctl)(struct inode *, struct file *, unsigned int, 
++                       unsigned long);
++      int n;
++
++      n = DEVICE_NR(inode->i_rdev);
++      if(n >= MAX_DEV)
++              return(-ENODEV);
++      dev = &cow_dev[n];
++
++      dev_ioctl = dev->backing_bdev->bd_op->ioctl;
++      return((*dev_ioctl)(inode, file, cmd, arg));
++}
++
++static int cow_revalidate(kdev_t rdev)
++{
++      printk(KERN_ERR "Need to implement cow_revalidate\n");
++      return(0);
++}
++
++static int parse_unit(char **ptr)
++{
++      char *str = *ptr, *end;
++      int n = -1;
++
++      if(isdigit(*str)) {
++              n = simple_strtoul(str, &end, 0);
++              if(end == str)
++                      return(-1);
++              *ptr = end;
++      }
++      else if (('a' <= *str) && (*str <= 'h')) {
++              n = *str - 'a';
++              str++;
++              *ptr = str;
 +      }
++      return(n);
++}
 +
-+      /* does not really matter how much we write it is just to set EOF 
-+       * this also sets the entire COW bitmap
-+       * to zero without having to allocate it 
-+       */
-+      err = cow_write_file(fd, &zero, sizeof(zero));
-+      if(err != sizeof(zero)){
-+              cow_printf("Write of bitmap to new COW file '%s' failed, "
-+                         "err = %d\n", cow_file, -err);
-+              err = -EINVAL;
-+              goto out;
++static int cow_setup(char *str)
++{
++      struct cow *dev;
++      char *cow_name, *backing_name;
++      int unit;
++
++      unit = parse_unit(&str);
++      if(unit < 0){
++              printk(KERN_ERR "cow_setup - Couldn't parse unit number\n");
++              return(1);
 +      }
 +
-+      return(0);
++      if(*str != '='){
++              printk(KERN_ERR "cow_setup - Missing '=' after unit "
++                     "number\n");
++              return(1);
++      }
++      str++;
 +
-+ out:
-+      return(err);
++      cow_name = str;
++      backing_name = strchr(str, ',');
++      if(backing_name == NULL){
++              printk(KERN_ERR "cow_setup - missing backing device name\n");
++              return(0);
++      }
++      *backing_name = '\0';
++      backing_name++;
++
++      spin_lock(&cow_lock);
++
++      dev = &cow_dev[unit];
++      dev->cow_path = cow_name;
++      dev->backing_path = backing_name;
++      
++      spin_unlock(&cow_lock);
++      return(0);
 +}
 +
++__setup("cow", cow_setup);
++
 +/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
 + * ---------------------------------------------------------------------------
 + * Local variables:
 + * c-file-style: "linux"
 + * End:
 + */
-diff -Naur a/arch/um/drivers/daemon_user.c b/arch/um/drivers/daemon_user.c
---- a/arch/um/drivers/daemon_user.c    2004-03-10 08:21:01.000000000 -0500
-+++ b/arch/um/drivers/daemon_user.c    2004-03-10 08:37:44.000000000 -0500
-@@ -53,7 +53,8 @@
-       struct request_v3 req;
-       int fd, n, err;
+Index: uml-2.6.7/arch/um/main.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/main.c      2004-07-16 19:37:17.425376016 +0300
++++ uml-2.6.7/arch/um/main.c   2004-07-16 19:47:23.762198808 +0300
+@@ -8,6 +8,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <signal.h>
++#include <errno.h>
+ #include <sys/resource.h>
+ #include <sys/mman.h>
+ #include <sys/user.h>
+@@ -123,12 +124,14 @@
  
--      if((pri->control = socket(AF_UNIX, SOCK_STREAM, 0)) < 0){
-+      pri->control = socket(AF_UNIX, SOCK_STREAM, 0);
-+      if(pri->control < 0){
-               printk("daemon_open : control socket failed, errno = %d\n", 
-                      errno);          
-               return(-errno);
-@@ -67,7 +68,8 @@
-               goto out;
-       }
+       set_stklim();
  
--      if((fd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0){
-+      fd = socket(AF_UNIX, SOCK_DGRAM, 0);
-+      if(fd < 0){
-               printk("daemon_open : data socket failed, errno = %d\n", 
-                      errno);
-               err = -errno;
-@@ -91,18 +93,18 @@
-       req.version = SWITCH_VERSION;
-       req.type = REQ_NEW_CONTROL;
-       req.sock = *local_addr;
--      n = write(pri->control, &req, sizeof(req));
-+      n = os_write_file(pri->control, &req, sizeof(req));
-       if(n != sizeof(req)){
--              printk("daemon_open : control setup request returned %d, "
--                     "errno = %d\n", n, errno);
-+              printk("daemon_open : control setup request failed, err = %d\n",
-+                     -n);
-               err = -ENOTCONN;
-               goto out;               
+-      if((new_argv = malloc((argc + 1) * sizeof(char *))) == NULL){
++      new_argv = malloc((argc + 1) * sizeof(char *));
++      if(new_argv == NULL){
+               perror("Mallocing argv");
+               exit(1);
        }
+       for(i=0;i<argc;i++){
+-              if((new_argv[i] = strdup(argv[i])) == NULL){
++              new_argv[i] = strdup(argv[i]);
++              if(new_argv[i] == NULL){
+                       perror("Mallocing an arg");
+                       exit(1);
+               }
+Index: uml-2.6.7/arch/um/kernel/tt/uaccess_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/tt/uaccess_user.c    2004-07-16 19:36:22.358747416 +0300
++++ uml-2.6.7/arch/um/kernel/tt/uaccess_user.c 2004-07-16 19:47:23.752200328 +0300
+@@ -8,15 +8,20 @@
+ #include <string.h>
+ #include "user_util.h"
+ #include "uml_uaccess.h"
++#include "task.h"
++#include "kern_util.h"
  
--      n = read(pri->control, sun, sizeof(*sun));
-+      n = os_read_file(pri->control, sun, sizeof(*sun));
-       if(n != sizeof(*sun)){
--              printk("daemon_open : read of data socket returned %d, "
--                     "errno = %d\n", n, errno);
-+              printk("daemon_open : read of data socket failed, err = %d\n", 
-+                     -n);
-               err = -ENOTCONN;
-               goto out_close;         
-       }
-@@ -111,9 +113,9 @@
-       return(fd);
+ int __do_copy_from_user(void *to, const void *from, int n,
+                       void **fault_addr, void **fault_catcher)
+ {
++      struct tt_regs save = TASK_REGS(get_current())->tt;
+       unsigned long fault;
+       int faulted;
  
-  out_close:
--      close(fd);
-+      os_close_file(fd);
-  out:
--      close(pri->control);
-+      os_close_file(pri->control);
-       return(err);
+       fault = __do_user_copy(to, from, n, fault_addr, fault_catcher,
+                              __do_copy, &faulted);
++      TASK_REGS(get_current())->tt = save;
++
+       if(!faulted) return(0);
+       else return(n - (fault - (unsigned long) from));
  }
-@@ -153,8 +155,8 @@
+@@ -29,11 +34,14 @@
+ int __do_strncpy_from_user(char *dst, const char *src, unsigned long count,
+                          void **fault_addr, void **fault_catcher)
  {
-       struct daemon_data *pri = data;
++      struct tt_regs save = TASK_REGS(get_current())->tt;
+       unsigned long fault;
+       int faulted;
  
--      close(pri->fd);
--      close(pri->control);
-+      os_close_file(pri->fd);
-+      os_close_file(pri->control);
-       if(pri->data_addr != NULL) kfree(pri->data_addr);
-       if(pri->ctl_addr != NULL) kfree(pri->ctl_addr);
-       if(pri->local_addr != NULL) kfree(pri->local_addr);
-diff -Naur a/arch/um/drivers/fd.c b/arch/um/drivers/fd.c
---- a/arch/um/drivers/fd.c     2004-03-10 08:23:10.000000000 -0500
-+++ b/arch/um/drivers/fd.c     2004-03-10 08:44:21.000000000 -0500
-@@ -35,7 +35,8 @@
-               printk("fd_init : couldn't parse file descriptor '%s'\n", str);
-               return(NULL);
-       }
--      if((data = um_kmalloc(sizeof(*data))) == NULL) return(NULL);
-+      data = um_kmalloc(sizeof(*data));
-+      if(data == NULL) return(NULL);
-       *data = ((struct fd_chan) { .fd         = n,
-                                   .raw        = opts->raw });
-       return(data);
-diff -Naur a/arch/um/drivers/harddog_user.c b/arch/um/drivers/harddog_user.c
---- a/arch/um/drivers/harddog_user.c   2004-03-10 08:20:54.000000000 -0500
-+++ b/arch/um/drivers/harddog_user.c   2004-03-10 08:36:46.000000000 -0500
-@@ -27,10 +27,10 @@
-       dup2(data->stdin, 0);
-       dup2(data->stdout, 1);
-       dup2(data->stdout, 2);
--      close(data->stdin);
--      close(data->stdout);
--      close(data->close_me[0]);
--      close(data->close_me[1]);
-+      os_close_file(data->stdin);
-+      os_close_file(data->stdout);
-+      os_close_file(data->close_me[0]);
-+      os_close_file(data->close_me[1]);
+       fault = __do_user_copy(dst, src, count, fault_addr, fault_catcher,
+                              __do_strncpy, &faulted);
++      TASK_REGS(get_current())->tt = save;
++
+       if(!faulted) return(strlen(dst));
+       else return(-1);
  }
+@@ -46,11 +54,14 @@
+ int __do_clear_user(void *mem, unsigned long len,
+                   void **fault_addr, void **fault_catcher)
+ {
++      struct tt_regs save = TASK_REGS(get_current())->tt;
+       unsigned long fault;
+       int faulted;
  
- int start_watchdog(int *in_fd_ret, int *out_fd_ret, char *sock)
-@@ -44,15 +44,15 @@
-       char **args = NULL;
+       fault = __do_user_copy(mem, NULL, len, fault_addr, fault_catcher,
+                              __do_clear, &faulted);
++      TASK_REGS(get_current())->tt = save;
++
+       if(!faulted) return(0);
+       else return(len - (fault - (unsigned long) mem));
+ }
+@@ -58,19 +69,20 @@
+ int __do_strnlen_user(const char *str, unsigned long n,
+                     void **fault_addr, void **fault_catcher)
+ {
++      struct tt_regs save = TASK_REGS(get_current())->tt;
+       int ret;
+       unsigned long *faddrp = (unsigned long *)fault_addr;
+       jmp_buf jbuf;
  
-       err = os_pipe(in_fds, 1, 0);
--      if(err){
--              printk("harddog_open - os_pipe failed, errno = %d\n", -err);
--              return(err);
-+      if(err < 0){
-+              printk("harddog_open - os_pipe failed, err = %d\n", -err);
-+              goto out;
-       }
+       *fault_catcher = &jbuf;
+-      if(setjmp(jbuf) == 0){
++      if(sigsetjmp(jbuf, 1) == 0)
+               ret = strlen(str) + 1;
+-      } 
+-      else {
+-              ret = *faddrp - (unsigned long) str;
+-      }
++      else ret = *faddrp - (unsigned long) str;
++
+       *fault_addr = NULL;
+       *fault_catcher = NULL;
++
++      TASK_REGS(get_current())->tt = save;
+       return ret;
+ }
  
-       err = os_pipe(out_fds, 1, 0);
--      if(err){
--              printk("harddog_open - os_pipe failed, errno = %d\n", -err);
--              return(err);
-+      if(err < 0){
-+              printk("harddog_open - os_pipe failed, err = %d\n", -err);
-+              goto out_close_in;
-       }
+Index: uml-2.6.7/arch/um/kernel/syscall_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/syscall_kern.c       2004-07-16 19:37:08.748695072 +0300
++++ uml-2.6.7/arch/um/kernel/syscall_kern.c    2004-07-16 19:47:23.737202608 +0300
+@@ -1,5 +1,5 @@
+ /* 
+- * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
++ * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
+  * Licensed under the GPL
+  */
  
-       data.stdin = out_fds[0];
-@@ -72,42 +72,47 @@
+@@ -36,32 +36,34 @@
  
-       pid = run_helper(pre_exec, &data, args, NULL);
+ long sys_fork(void)
+ {
+-      struct task_struct *p;
++      long ret;
  
--      close(out_fds[0]);
--      close(in_fds[1]);
-+      os_close_file(out_fds[0]);
-+      os_close_file(in_fds[1]);
+       current->thread.forking = 1;
+-        p = do_fork(SIGCHLD, 0, NULL, 0, NULL, NULL);
++        ret = do_fork(SIGCHLD, 0, NULL, 0, NULL, NULL);
+       current->thread.forking = 0;
+-      return(IS_ERR(p) ? PTR_ERR(p) : p->pid);
++      return(ret);
+ }
  
-       if(pid < 0){
-               err = -pid;
--              printk("harddog_open - run_helper failed, errno = %d\n", err);
--              goto out;
-+              printk("harddog_open - run_helper failed, errno = %d\n", -err);
-+              goto out_close_out;
-       }
+-long sys_clone(unsigned long clone_flags, unsigned long newsp)
++long sys_clone(unsigned long clone_flags, unsigned long newsp, 
++             int *parent_tid, int *child_tid)
+ {
+-      struct task_struct *p;
++      long ret;
  
--      n = read(in_fds[0], &c, sizeof(c));
-+      n = os_read_file(in_fds[0], &c, sizeof(c));
-       if(n == 0){
-               printk("harddog_open - EOF on watchdog pipe\n");
-               helper_wait(pid);
-               err = -EIO;
--              goto out;
-+              goto out_close_out;
-       }
-       else if(n < 0){
-               printk("harddog_open - read of watchdog pipe failed, "
--                     "errno = %d\n", errno);
-+                     "err = %d\n", -n);
-               helper_wait(pid);
--              err = -errno;
--              goto out;
-+              err = n;
-+              goto out_close_out;
-       }
-       *in_fd_ret = in_fds[0];
-       *out_fd_ret = out_fds[1];
-       return(0);
-+
-+ out_close_in:
-+      os_close_file(in_fds[0]);
-+      os_close_file(in_fds[1]);
-+ out_close_out:
-+      os_close_file(out_fds[0]);
-+      os_close_file(out_fds[1]);
-  out:
--      close(out_fds[1]);
--      close(in_fds[0]);
-       return(err);
+       current->thread.forking = 1;
+-      p = do_fork(clone_flags, newsp, NULL, 0, NULL, NULL);
++      ret = do_fork(clone_flags, newsp, NULL, 0, parent_tid, child_tid);
+       current->thread.forking = 0;
+-      return(IS_ERR(p) ? PTR_ERR(p) : p->pid);
++      return(ret);
  }
  
void stop_watchdog(int in_fd, int out_fd)
long sys_vfork(void)
  {
--      close(in_fd);
--      close(out_fd);
-+      os_close_file(in_fd);
-+      os_close_file(out_fd);
- }
+-      struct task_struct *p;
++      long ret;
  
- int ping_watchdog(int fd)
-@@ -115,11 +120,12 @@
-       int n;
-       char c = '\n';
+       current->thread.forking = 1;
+-      p = do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, 0, NULL, 0, NULL, NULL);
++      ret = do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, 0, NULL, 0, NULL, 
++                    NULL);
+       current->thread.forking = 0;
+-      return(IS_ERR(p) ? PTR_ERR(p) : p->pid);
++      return(ret);
+ }
  
--      n = write(fd, &c, sizeof(c));
--      if(n < sizeof(c)){
--              printk("ping_watchdog - write failed, errno = %d\n",
--                     errno);
--              return(-errno);
-+      n = os_write_file(fd, &c, sizeof(c));
-+      if(n != sizeof(c)){
-+              printk("ping_watchdog - write failed, err = %d\n", -n);
-+              if(n < 0) 
-+                      return(n);
-+              return(-EIO);
-       }
-       return 1;
+ /* common code for old and new mmaps */
+@@ -136,43 +138,12 @@
  
-diff -Naur a/arch/um/drivers/hostaudio_kern.c b/arch/um/drivers/hostaudio_kern.c
---- a/arch/um/drivers/hostaudio_kern.c 2004-03-10 08:23:12.000000000 -0500
-+++ b/arch/um/drivers/hostaudio_kern.c 2004-03-10 08:44:32.000000000 -0500
-@@ -5,12 +5,12 @@
+         error = do_pipe(fd);
+         if (!error) {
+-                if (copy_to_user(fildes, fd, 2*sizeof(int)))
++              if (copy_to_user(fildes, fd, sizeof(fd)))
+                         error = -EFAULT;
+         }
+         return error;
+ }
  
- #include "linux/config.h"
- #include "linux/module.h"
--#include "linux/version.h"
- #include "linux/init.h"
- #include "linux/slab.h"
- #include "linux/fs.h"
- #include "linux/sound.h"
- #include "linux/soundcard.h"
-+#include "asm/uaccess.h"
- #include "kern_util.h"
- #include "init.h"
- #include "hostaudio.h"
-@@ -19,30 +19,39 @@
- char *dsp = HOSTAUDIO_DEV_DSP;
- char *mixer = HOSTAUDIO_DEV_MIXER;
-+#define DSP_HELP \
-+"    This is used to specify the host dsp device to the hostaudio driver.\n" \
-+"    The default is \"" HOSTAUDIO_DEV_DSP "\".\n\n"
-+
-+#define MIXER_HELP \
-+"    This is used to specify the host mixer device to the hostaudio driver.\n" \
-+"    The default is \"" HOSTAUDIO_DEV_MIXER "\".\n\n"
-+
- #ifndef MODULE
- static int set_dsp(char *name, int *add)
- {
--      dsp = uml_strdup(name);
-+      dsp = name;
-       return(0);
+-int sys_sigaction(int sig, const struct old_sigaction *act,
+-                       struct old_sigaction *oact)
+-{
+-      struct k_sigaction new_ka, old_ka;
+-      int ret;
+-
+-      if (act) {
+-              old_sigset_t mask;
+-              if (verify_area(VERIFY_READ, act, sizeof(*act)) ||
+-                  __get_user(new_ka.sa.sa_handler, &act->sa_handler) ||
+-                  __get_user(new_ka.sa.sa_restorer, &act->sa_restorer))
+-                      return -EFAULT;
+-              __get_user(new_ka.sa.sa_flags, &act->sa_flags);
+-              __get_user(mask, &act->sa_mask);
+-              siginitset(&new_ka.sa.sa_mask, mask);
+-      }
+-
+-      ret = do_sigaction(sig, act ? &new_ka : NULL, oact ? &old_ka : NULL);
+-
+-      if (!ret && oact) {
+-              if (verify_area(VERIFY_WRITE, oact, sizeof(*oact)) ||
+-                  __put_user(old_ka.sa.sa_handler, &oact->sa_handler) ||
+-                  __put_user(old_ka.sa.sa_restorer, &oact->sa_restorer))
+-                      return -EFAULT;
+-              __put_user(old_ka.sa.sa_flags, &oact->sa_flags);
+-              __put_user(old_ka.sa.sa_mask.sig[0], &oact->sa_mask);
+-      }
+-
+-      return ret;
+-}
+-
+ /*
+  * sys_ipc() is the de-multiplexer for the SysV IPC calls..
+  *
+@@ -254,7 +225,7 @@
+               return sys_shmctl (first, second,
+                                  (struct shmid_ds *) ptr);
+       default:
+-              return -EINVAL;
++              return -ENOSYS;
+       }
  }
  
--__uml_setup("dsp=", set_dsp,
--"dsp=<dsp device>\n"
--"    This is used to specify the host dsp device to the hostaudio driver.\n"
--"    The default is \"" HOSTAUDIO_DEV_DSP "\".\n\n"
--);
-+__uml_setup("dsp=", set_dsp, "dsp=<dsp device>\n" DSP_HELP);
+@@ -303,11 +274,6 @@
+       return error;
+ }
  
- static int set_mixer(char *name, int *add)
+-int sys_sigaltstack(const stack_t *uss, stack_t *uoss)
+-{
+-      return(do_sigaltstack(uss, uoss, PT_REGS_SP(&current->thread.regs)));
+-}
+-
+ long execute_syscall(void *r)
  {
--      mixer = uml_strdup(name);
-+      mixer = name;
-       return(0);
- }
+       return(CHOOSE_MODE_PROC(execute_syscall_tt, execute_syscall_skas, r));
+Index: uml-2.6.7/arch/um/kernel/skas/util/mk_ptregs.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/skas/util/mk_ptregs.c        2004-07-16 19:36:30.635489160 +0300
++++ uml-2.6.7/arch/um/kernel/skas/util/mk_ptregs.c     2004-07-16 19:47:23.736202760 +0300
+@@ -1,3 +1,4 @@
++#include <stdio.h>
+ #include <asm/ptrace.h>
+ #include <asm/user.h>
  
--__uml_setup("mixer=", set_mixer,
--"mixer=<mixer device>\n"
--"    This is used to specify the host mixer device to the hostaudio driver.\n"
--"    The default is \"" HOSTAUDIO_DEV_MIXER "\".\n\n"
--);
-+__uml_setup("mixer=", set_mixer, "mixer=<mixer device>\n" MIXER_HELP);
-+
-+#else /*MODULE*/
-+
-+MODULE_PARM(dsp, "s");
-+MODULE_PARM_DESC(dsp, DSP_HELP);
-+
-+MODULE_PARM(mixer, "s");
-+MODULE_PARM_DESC(mixer, MIXER_HELP);
+Index: uml-2.6.7/arch/um/kernel/skas/Makefile
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/skas/Makefile        2004-07-16 19:36:22.285758512 +0300
++++ uml-2.6.7/arch/um/kernel/skas/Makefile     2004-07-16 19:47:23.729203824 +0300
+@@ -5,20 +5,24 @@
+ obj-y = exec_kern.o exec_user.o mem.o mem_user.o mmu.o process.o \
+       process_kern.o syscall_kern.o syscall_user.o time.o tlb.o trap_user.o \
+-      sys-$(SUBARCH)/
++      uaccess.o sys-$(SUBARCH)/
 +
- #endif
++host-progs    := util/mk_ptregs
++clean-files   := include/skas_ptregs.h
  
- /* /dev/dsp file operations */
-@@ -51,23 +60,55 @@
-                             loff_t *ppos)
- {
-         struct hostaudio_state *state = file->private_data;
-+      void *kbuf;
-+      int err;
+ USER_OBJS = $(filter %_user.o,$(obj-y)) process.o time.o
+ USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
  
- #ifdef DEBUG
-         printk("hostaudio: read called, count = %d\n", count);
+-include/skas_ptregs.h : util/mk_ptregs
+-      util/mk_ptregs > $@
+-
+-util/mk_ptregs :
+-      $(MAKE) -C util
++$(TOPDIR)/arch/um/include/skas_ptregs.h : $(src)/util/mk_ptregs
++      @echo -n '  Generating $@'
++      @$< > $@.tmp
++      @if [ -r $@ ] && cmp -s $@ $@.tmp; then \
++              echo ' (unchanged)'; \
++              rm -f $@.tmp; \
++      else \
++              echo ' (updated)'; \
++              mv -f $@.tmp $@; \
++      fi
+ $(USER_OBJS) : %.o: %.c
+       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
+-
+-clean :
+-      $(MAKE) -C util clean
+-      $(RM) -f include/skas_ptregs.h
+Index: uml-2.6.7/include/asm-um/irq.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/irq.h        2004-07-16 19:37:43.396427816 +0300
++++ uml-2.6.7/include/asm-um/irq.h     2004-07-16 19:47:23.790194552 +0300
+@@ -1,15 +1,6 @@
+ #ifndef __UM_IRQ_H
+ #define __UM_IRQ_H
+-/* The i386 irq.h has a struct task_struct in a prototype without including
+- * sched.h.  This forward declaration kills the resulting warning.
+- */
+-struct task_struct;
+-
+-#include "asm/ptrace.h"
+-
+-#undef NR_IRQS
+-
+ #define TIMER_IRQ             0
+ #define UMN_IRQ                       1
+ #define CONSOLE_IRQ           2
+@@ -28,13 +19,4 @@
+ #define LAST_IRQ XTERM_IRQ
+ #define NR_IRQS (LAST_IRQ + 1)
+-extern int um_request_irq(unsigned int irq, int fd, int type,
+-                        void (*handler)(int, void *, struct pt_regs *),
+-                        unsigned long irqflags,  const char * devname,
+-                        void *dev_id);
+-
+-struct irqaction;
+-struct pt_regs;
+-int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *);
+-
  #endif
+Index: uml-2.6.7/arch/um/drivers/line.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/line.c      2004-07-16 19:37:26.186044192 +0300
++++ uml-2.6.7/arch/um/drivers/line.c   2004-07-16 19:47:23.685210512 +0300
+@@ -6,8 +6,8 @@
+ #include "linux/sched.h"
+ #include "linux/slab.h"
+ #include "linux/list.h"
++#include "linux/interrupt.h"
+ #include "linux/devfs_fs_kernel.h"
+-#include "asm/irq.h"
+ #include "asm/uaccess.h"
+ #include "chan_kern.h"
+ #include "irq_user.h"
+@@ -16,38 +16,55 @@
+ #include "user_util.h"
+ #include "kern_util.h"
+ #include "os.h"
++#include "irq_kern.h"
  
--        return(hostaudio_read_user(state, buffer, count, ppos));
-+      kbuf = kmalloc(count, GFP_KERNEL);
-+      if(kbuf == NULL)
-+              return(-ENOMEM);
-+
-+        err = hostaudio_read_user(state, kbuf, count, ppos);
-+      if(err < 0)
-+              goto out;
-+
-+      if(copy_to_user(buffer, kbuf, err))
-+              err = -EFAULT;
-+
-+ out:
-+      kfree(kbuf);
-+      return(err);
+ #define LINE_BUFSIZE 4096
+-void line_interrupt(int irq, void *data, struct pt_regs *unused)
++static irqreturn_t line_interrupt(int irq, void *data, struct pt_regs *unused)
+ {
+       struct line *dev = data;
+       if(dev->count > 0) 
+               chan_interrupt(&dev->chan_list, &dev->task, dev->tty, irq, 
+                              dev);
++      return IRQ_HANDLED;
  }
  
- static ssize_t hostaudio_write(struct file *file, const char *buffer, 
-                              size_t count, loff_t *ppos)
+-void line_timer_cb(void *arg)
++static void line_timer_cb(void *arg)
  {
-         struct hostaudio_state *state = file->private_data;
-+      void *kbuf;
-+      int err;
+       struct line *dev = arg;
  
- #ifdef DEBUG
-         printk("hostaudio: write called, count = %d\n", count);
- #endif
--        return(hostaudio_write_user(state, buffer, count, ppos));
+       line_interrupt(dev->driver->read_irq, dev, NULL);
+ }
+-static void buffer_data(struct line *line, const char *buf, int len)
++static int write_room(struct line *dev)
+ {
+-      int end;
++      int n;
 +
-+      kbuf = kmalloc(count, GFP_KERNEL);
-+      if(kbuf == NULL)
-+              return(-ENOMEM);
++      if(dev->buffer == NULL) return(LINE_BUFSIZE - 1);
 +
-+      err = -EFAULT;
-+      if(copy_from_user(kbuf, buffer, count))
-+              goto out;
++      n = dev->head - dev->tail;
++      if(n <= 0) n = LINE_BUFSIZE + n;
++      return(n - 1);
++}
 +
-+        err = hostaudio_write_user(state, kbuf, count, ppos);
-+      if(err < 0)
-+              goto out;
++static int buffer_data(struct line *line, const char *buf, int len)
++{
++      int end, room;
+       if(line->buffer == NULL){
+               line->buffer = kmalloc(LINE_BUFSIZE, GFP_ATOMIC);
+               if(line->buffer == NULL){
+                       printk("buffer_data - atomic allocation failed\n");
+-                      return;
++                      return(0);
+               }
+               line->head = line->buffer;
+               line->tail = line->buffer;
+       }
 +
-+ out:
-+      kfree(kbuf);
-+      return(err);
- }
- static unsigned int hostaudio_poll(struct file *file, 
-@@ -86,12 +127,43 @@
-                          unsigned int cmd, unsigned long arg)
- {
-         struct hostaudio_state *state = file->private_data;
-+      unsigned long data = 0;
-+      int err;
- #ifdef DEBUG
-         printk("hostaudio: ioctl called, cmd = %u\n", cmd);
- #endif
-+      switch(cmd){
-+      case SNDCTL_DSP_SPEED:
-+      case SNDCTL_DSP_STEREO:
-+      case SNDCTL_DSP_GETBLKSIZE:
-+      case SNDCTL_DSP_CHANNELS:
-+      case SNDCTL_DSP_SUBDIVIDE:
-+      case SNDCTL_DSP_SETFRAGMENT:
-+              if(get_user(data, (int *) arg))
-+                      return(-EFAULT);
-+              break;
-+      default:
-+              break;
-+      }
-+
-+        err = hostaudio_ioctl_user(state, cmd, (unsigned long) &data);
-+
-+      switch(cmd){
-+      case SNDCTL_DSP_SPEED:
-+      case SNDCTL_DSP_STEREO:
-+      case SNDCTL_DSP_GETBLKSIZE:
-+      case SNDCTL_DSP_CHANNELS:
-+      case SNDCTL_DSP_SUBDIVIDE:
-+      case SNDCTL_DSP_SETFRAGMENT:
-+              if(put_user(data, (int *) arg))
-+                      return(-EFAULT);
-+              break;
-+      default:
-+              break;
-+      }
--        return(hostaudio_ioctl_user(state, cmd, arg));
-+      return(err);
- }
- static int hostaudio_open(struct inode *inode, struct file *file)
-@@ -225,7 +297,8 @@
- static int __init hostaudio_init_module(void)
- {
--        printk(KERN_INFO "UML Audio Relay\n");
-+        printk(KERN_INFO "UML Audio Relay (host dsp = %s, host mixer = %s)\n",
-+             dsp, mixer);
-       module_data.dev_audio = register_sound_dsp(&hostaudio_fops, -1);
-         if(module_data.dev_audio < 0){
-diff -Naur a/arch/um/drivers/hostaudio_user.c b/arch/um/drivers/hostaudio_user.c
---- a/arch/um/drivers/hostaudio_user.c 2004-03-10 08:22:23.000000000 -0500
-+++ b/arch/um/drivers/hostaudio_user.c 2004-03-10 08:41:30.000000000 -0500
-@@ -4,9 +4,6 @@
-  */
- #include <sys/types.h>
--#include <sys/stat.h>
--#include <sys/ioctl.h>
--#include <fcntl.h>
- #include <unistd.h>
- #include <errno.h>
- #include "hostaudio.h"
-@@ -20,45 +17,31 @@
- ssize_t hostaudio_read_user(struct hostaudio_state *state, char *buffer, 
-                           size_t count, loff_t *ppos)
- {
--      ssize_t ret;
--
- #ifdef DEBUG
-         printk("hostaudio: read_user called, count = %d\n", count);
- #endif
--        ret = read(state->fd, buffer, count);
--
--        if(ret < 0) return(-errno);
--        return(ret);
-+      return(os_read_file(state->fd, buffer, count));
- }
- ssize_t hostaudio_write_user(struct hostaudio_state *state, const char *buffer,
-                            size_t count, loff_t *ppos)
- {
--      ssize_t ret;
--
- #ifdef DEBUG
-         printk("hostaudio: write_user called, count = %d\n", count);
- #endif
--        ret = write(state->fd, buffer, count);
--
--        if(ret < 0) return(-errno);
--        return(ret);
-+      return(os_write_file(state->fd, buffer, count));
- }
- int hostaudio_ioctl_user(struct hostaudio_state *state, unsigned int cmd, 
-                        unsigned long arg)
- {
--      int ret;
- #ifdef DEBUG
-         printk("hostaudio: ioctl_user called, cmd = %u\n", cmd);
- #endif
--        ret = ioctl(state->fd, cmd, arg);
--      
--        if(ret < 0) return(-errno);
--        return(ret);
-+      return(os_ioctl_generic(state->fd, cmd, arg));
- }
- int hostaudio_open_user(struct hostaudio_state *state, int r, int w, char *dsp)
-@@ -67,14 +50,15 @@
-         printk("hostaudio: open_user called\n");
- #endif
--        state->fd = os_open_file(dsp, of_set_rw(OPENFLAGS(), r, w), 0);
--
--        if(state->fd >= 0) return(0);
-+      state->fd = os_open_file(dsp, of_set_rw(OPENFLAGS(), r, w), 0);
--        printk("hostaudio_open_user failed to open '%s', errno = %d\n",
--             dsp, errno);
-+      if(state->fd < 0) {
-+              printk("hostaudio_open_user failed to open '%s', err = %d\n",
-+                     dsp, -state->fd);
-+              return(state->fd); 
-+      }
-         
--        return(-errno); 
-+      return(0);
- }
- int hostaudio_release_user(struct hostaudio_state *state)
-@@ -82,10 +66,10 @@
- #ifdef DEBUG
-         printk("hostaudio: release called\n");
- #endif
--        if(state->fd >= 0){
--              close(state->fd);
--              state->fd=-1;
--        }
-+      if(state->fd >= 0){
-+              os_close_file(state->fd);
-+              state->fd = -1;
-+      }
-         return(0);
- }
-@@ -95,15 +79,11 @@
- int hostmixer_ioctl_mixdev_user(struct hostmixer_state *state, 
-                               unsigned int cmd, unsigned long arg)
- {
--      int ret;
- #ifdef DEBUG
-         printk("hostmixer: ioctl_user called cmd = %u\n",cmd);
- #endif
--        ret = ioctl(state->fd, cmd, arg);
--      if(ret < 0) 
--              return(-errno);
--      return(ret);
-+      return(os_ioctl_generic(state->fd, cmd, arg));
- }
- int hostmixer_open_mixdev_user(struct hostmixer_state *state, int r, int w,
-@@ -115,12 +95,13 @@
-         state->fd = os_open_file(mixer, of_set_rw(OPENFLAGS(), r, w), 0);
--        if(state->fd >= 0) return(0);
--
--        printk("hostaudio_open_mixdev_user failed to open '%s', errno = %d\n",
--             mixer, errno);
-+      if(state->fd < 0) {
-+              printk("hostaudio_open_mixdev_user failed to open '%s', "
-+                     "err = %d\n", mixer, state->fd);
-+              return(state->fd); 
-+      }
-         
--        return(-errno); 
-+      return(0);
- }
- int hostmixer_release_mixdev_user(struct hostmixer_state *state)
-@@ -130,7 +111,7 @@
- #endif
-         if(state->fd >= 0){
--              close(state->fd);
-+              os_close_file(state->fd);
-               state->fd = -1;
-         }
-diff -Naur a/arch/um/drivers/line.c b/arch/um/drivers/line.c
---- a/arch/um/drivers/line.c   2004-03-10 08:22:46.000000000 -0500
-+++ b/arch/um/drivers/line.c   2004-03-10 08:43:26.000000000 -0500
-@@ -6,8 +6,8 @@
- #include "linux/sched.h"
- #include "linux/slab.h"
- #include "linux/list.h"
-+#include "linux/interrupt.h"
- #include "linux/devfs_fs_kernel.h"
--#include "asm/irq.h"
- #include "asm/uaccess.h"
- #include "chan_kern.h"
- #include "irq_user.h"
-@@ -16,38 +16,55 @@
- #include "user_util.h"
- #include "kern_util.h"
- #include "os.h"
-+#include "irq_kern.h"
- #define LINE_BUFSIZE 4096
--void line_interrupt(int irq, void *data, struct pt_regs *unused)
-+static irqreturn_t line_interrupt(int irq, void *data, struct pt_regs *unused)
- {
-       struct line *dev = data;
-       if(dev->count > 0) 
-               chan_interrupt(&dev->chan_list, &dev->task, dev->tty, irq, 
-                              dev);
-+      return IRQ_HANDLED;
- }
--void line_timer_cb(void *arg)
-+static void line_timer_cb(void *arg)
- {
-       struct line *dev = arg;
-       line_interrupt(dev->driver->read_irq, dev, NULL);
- }
--static void buffer_data(struct line *line, const char *buf, int len)
-+static int write_room(struct line *dev)
- {
--      int end;
-+      int n;
-+
-+      if(dev->buffer == NULL) return(LINE_BUFSIZE - 1);
-+
-+      n = dev->head - dev->tail;
-+      if(n <= 0) n = LINE_BUFSIZE + n;
-+      return(n - 1);
-+}
-+
-+static int buffer_data(struct line *line, const char *buf, int len)
-+{
-+      int end, room;
-       if(line->buffer == NULL){
-               line->buffer = kmalloc(LINE_BUFSIZE, GFP_ATOMIC);
-               if(line->buffer == NULL){
-                       printk("buffer_data - atomic allocation failed\n");
--                      return;
-+                      return(0);
-               }
-               line->head = line->buffer;
-               line->tail = line->buffer;
-       }
-+
-+      room = write_room(line);
-+      len = (len > room) ? room : len;
-+
-       end = line->buffer + LINE_BUFSIZE - line->tail;
-       if(len < end){
-               memcpy(line->tail, buf, len);
-@@ -60,6 +77,8 @@
-               memcpy(line->buffer, buf, len);
-               line->tail = line->buffer + len;
-       }
-+
-+      return(len);
++      room = write_room(line);
++      len = (len > room) ? room : len;
++
+       end = line->buffer + LINE_BUFSIZE - line->tail;
+       if(len < end){
+               memcpy(line->tail, buf, len);
+@@ -60,6 +77,8 @@
+               memcpy(line->buffer, buf, len);
+               line->tail = line->buffer + len;
+       }
++
++      return(len);
  }
  
  static int flush_buffer(struct line *line)
@@ -2671,1237 +2226,1527 @@ diff -Naur a/arch/um/drivers/line.c b/arch/um/drivers/line.c
                if(winch->pid != -1) 
                        os_kill_process(winch->pid, 1);
        }
-diff -Naur a/arch/um/drivers/Makefile b/arch/um/drivers/Makefile
---- a/arch/um/drivers/Makefile 2004-03-10 08:21:31.000000000 -0500
-+++ b/arch/um/drivers/Makefile 2004-03-10 08:40:04.000000000 -0500
-@@ -1,5 +1,5 @@
- # 
--# Copyright (C) 2000, 2002 Jeff Dike (jdike@karaya.com)
-+# Copyright (C) 2000, 2002, 2003 Jeff Dike (jdike@karaya.com)
- # Licensed under the GPL
- #
-@@ -39,6 +39,8 @@
- obj-$(CONFIG_TTY_CHAN) += tty.o 
- obj-$(CONFIG_XTERM_CHAN) += xterm.o xterm_kern.o
- obj-$(CONFIG_UML_WATCHDOG) += harddog.o
-+obj-$(CONFIG_BLK_DEV_COW) += cow_kern.o
-+obj-$(CONFIG_BLK_DEV_COW_COMMON) += cow_user.o
+Index: uml-2.6.7/arch/um/kernel/tt/process_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/tt/process_kern.c    2004-07-16 19:37:20.233949048 +0300
++++ uml-2.6.7/arch/um/kernel/tt/process_kern.c 2004-07-16 19:47:23.746201240 +0300
+@@ -62,7 +62,7 @@
+       reading = 0;
+       err = os_write_file(to->thread.mode.tt.switch_pipe[1], &c, sizeof(c));
+       if(err != sizeof(c))
+-              panic("write of switch_pipe failed, errno = %d", -err);
++              panic("write of switch_pipe failed, err = %d", -err);
  
- obj-y += stdio_console.o $(CHAN_OBJS)
+       reading = 1;
+       if((from->state == TASK_ZOMBIE) || (from->state == TASK_DEAD))
+@@ -104,48 +104,72 @@
  
-@@ -46,18 +48,7 @@
- USER_OBJS := $(filter %_user.o,$(obj-y) $(obj-m) $(USER_SINGLE_OBJS)) fd.o \
-       null.o pty.o tty.o xterm.o
--USER_OBJS := $(foreach file,$(USER_OBJS),arch/um/drivers/$(file))
-+USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
+ void release_thread_tt(struct task_struct *task)
+ {
+-      os_kill_process(task->thread.mode.tt.extern_pid, 0);
++      int pid = task->thread.mode.tt.extern_pid;
++
++      if(os_getpid() != pid)
++              os_kill_process(pid, 0);
+ }
  
- $(USER_OBJS) : %.o: %.c
-       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
--
--clean:
--
--modules:
--
--fastdep:
--
--dep:
--
--archmrproper: clean
--
-diff -Naur a/arch/um/drivers/mcast_user.c b/arch/um/drivers/mcast_user.c
---- a/arch/um/drivers/mcast_user.c     2004-03-10 08:21:29.000000000 -0500
-+++ b/arch/um/drivers/mcast_user.c     2004-03-10 08:39:39.000000000 -0500
-@@ -23,6 +23,7 @@
- #include "kern_util.h"
- #include "user_util.h"
- #include "user.h"
-+#include "os.h"
+ void exit_thread_tt(void)
+ {
+-      close(current->thread.mode.tt.switch_pipe[0]);
+-      close(current->thread.mode.tt.switch_pipe[1]);
++      os_close_file(current->thread.mode.tt.switch_pipe[0]);
++      os_close_file(current->thread.mode.tt.switch_pipe[1]);
+ }
  
- #define MAX_PACKET (ETH_MAX_PACKET + ETH_HEADER_OTHER)
+ void schedule_tail(task_t *prev);
  
-@@ -62,7 +63,8 @@
-               goto out;
-       }
+ static void new_thread_handler(int sig)
+ {
++      unsigned long disable;
+       int (*fn)(void *);
+       void *arg;
  
--      if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0){
-+      fd = socket(AF_INET, SOCK_DGRAM, 0);
-+      if (fd < 0){
-               printk("mcast_open : data socket failed, errno = %d\n", 
-                      errno);
-               fd = -ENOMEM;
-@@ -72,7 +74,7 @@
-       if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)) < 0) {
-               printk("mcast_open: SO_REUSEADDR failed, errno = %d\n",
-                       errno);
--              close(fd);
-+              os_close_file(fd);
-               fd = -EINVAL;
-               goto out;
-       }
-@@ -82,7 +84,7 @@
-                      sizeof(pri->ttl)) < 0) {
-               printk("mcast_open: IP_MULTICAST_TTL failed, error = %d\n",
-                       errno);
--              close(fd);
-+              os_close_file(fd);
-               fd = -EINVAL;
-               goto out;
-       }
-@@ -91,7 +93,7 @@
-       if (setsockopt(fd, SOL_IP, IP_MULTICAST_LOOP, &yes, sizeof(yes)) < 0) {
-               printk("mcast_open: IP_MULTICAST_LOOP failed, error = %d\n",
-                       errno);
--              close(fd);
-+              os_close_file(fd);
-               fd = -EINVAL;
-               goto out;
-       }
-@@ -99,7 +101,7 @@
-       /* bind socket to mcast address */
-       if (bind(fd, (struct sockaddr *) sin, sizeof(*sin)) < 0) {
-               printk("mcast_open : data bind failed, errno = %d\n", errno);
--              close(fd);
-+              os_close_file(fd);
-               fd = -EINVAL;
-               goto out;
-       }               
-@@ -115,7 +117,7 @@
-                      "interface on the host.\n");
-               printk("eth0 should be configured in order to use the "
-                      "multicast transport.\n");
--              close(fd);
-+              os_close_file(fd);
-               fd = -EINVAL;
-       }
+       fn = current->thread.request.u.thread.proc;
+       arg = current->thread.request.u.thread.arg;
++
+       UPT_SC(&current->thread.regs.regs) = (void *) (&sig + 1);
++      disable = (1 << (SIGVTALRM - 1)) | (1 << (SIGALRM - 1)) |
++              (1 << (SIGIO - 1)) | (1 << (SIGPROF - 1));
++      SC_SIGMASK(UPT_SC(&current->thread.regs.regs)) &= ~disable;
++
+       suspend_new_thread(current->thread.mode.tt.switch_pipe[0]);
  
-@@ -137,7 +139,7 @@
-                       errno);
-       }
+-      block_signals();
++      force_flush_all();
++      if(current->thread.prev_sched != NULL)
++              schedule_tail(current->thread.prev_sched);
++      current->thread.prev_sched = NULL;
++
+       init_new_thread_signals(1);
+-#ifdef CONFIG_SMP
+-      schedule_tail(current->thread.prev_sched);
+-#endif
+       enable_timer();
+       free_page(current->thread.temp_stack);
+       set_cmdline("(kernel thread)");
+-      force_flush_all();
  
--      close(fd);
-+      os_close_file(fd);
+-      current->thread.prev_sched = NULL;
+       change_sig(SIGUSR1, 1);
+       change_sig(SIGVTALRM, 1);
+       change_sig(SIGPROF, 1);
+-      unblock_signals();
++      local_irq_enable();
+       if(!run_kernel_thread(fn, arg, &current->thread.exec_buf))
+               do_exit(0);
  }
  
- int mcast_user_write(int fd, void *buf, int len, struct mcast_data *pri)
-diff -Naur a/arch/um/drivers/mconsole_kern.c b/arch/um/drivers/mconsole_kern.c
---- a/arch/um/drivers/mconsole_kern.c  2004-03-10 08:20:15.000000000 -0500
-+++ b/arch/um/drivers/mconsole_kern.c  2004-03-10 08:33:56.000000000 -0500
-@@ -1,6 +1,6 @@
- /*
-  * Copyright (C) 2001 Lennert Buytenhek (buytenh@gnu.org)
-- * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
-+ * Copyright (C) 2001 - 2003 Jeff Dike (jdike@addtoit.com)
-  * Licensed under the GPL
+ static int new_thread_proc(void *stack)
+ {
++      /* local_irq_disable is needed to block out signals until this thread is
++       * properly scheduled.  Otherwise, the tracing thread will get mighty 
++       * upset about any signals that arrive before that.  
++       * This has the complication that it sets the saved signal mask in
++       * the sigcontext to block signals.  This gets restored when this
++       * thread (or a descendant, since they get a copy of this sigcontext)
++       * returns to userspace.
++       * So, this is compensated for elsewhere.
++       * XXX There is still a small window until local_irq_disable() actually 
++       * finishes where signals are possible - shouldn't be a problem in 
++       * practice since SIGIO hasn't been forwarded here yet, and the 
++       * local_irq_disable should finish before a SIGVTALRM has time to be 
++       * delivered.
++       */
++
++      local_irq_disable();
+       init_new_thread_stack(stack, new_thread_handler);
+       os_usr1_process(os_getpid());
+       return(0);
+@@ -156,7 +180,7 @@
+  * itself with a SIGUSR1.  set_user_mode has to be run with SIGUSR1 off,
+  * so it is blocked before it's called.  They are re-enabled on sigreturn
+  * despite the fact that they were blocked when the SIGUSR1 was issued because
+- * copy_thread copies the parent's signcontext, including the signal mask
++ * copy_thread copies the parent's sigcontext, including the signal mask
+  * onto the signal frame.
   */
  
-@@ -15,6 +15,9 @@
- #include "linux/sysrq.h"
- #include "linux/workqueue.h"
- #include "linux/module.h"
-+#include "linux/file.h"
-+#include "linux/fs.h"
-+#include "linux/namei.h"
- #include "linux/proc_fs.h"
- #include "asm/irq.h"
- #include "asm/uaccess.h"
-@@ -27,6 +30,7 @@
- #include "init.h"
- #include "os.h"
- #include "umid.h"
-+#include "irq_kern.h"
+@@ -165,35 +189,32 @@
+       UPT_SC(&current->thread.regs.regs) = (void *) (&sig + 1);
+       suspend_new_thread(current->thread.mode.tt.switch_pipe[0]);
  
- static int do_unlink_socket(struct notifier_block *notifier, 
-                           unsigned long what, void *data)
-@@ -67,7 +71,7 @@
+-#ifdef CONFIG_SMP     
+-      schedule_tail(NULL);
+-#endif
++      force_flush_all();
++      if(current->thread.prev_sched != NULL)
++              schedule_tail(current->thread.prev_sched);
++      current->thread.prev_sched = NULL;
++
+       enable_timer();
+       change_sig(SIGVTALRM, 1);
+       local_irq_enable();
+-      force_flush_all();
+       if(current->mm != current->parent->mm)
+               protect_memory(uml_reserved, high_physmem - uml_reserved, 1, 
+                              1, 0, 1);
+-      task_protections((unsigned long) current->thread_info);
+-
+-      current->thread.prev_sched = NULL;
++      task_protections((unsigned long) current_thread);
  
- DECLARE_WORK(mconsole_work, mc_work_proc, NULL);
+       free_page(current->thread.temp_stack);
++      local_irq_disable();
+       change_sig(SIGUSR1, 0);
+       set_user_mode(current);
+ }
  
--void mconsole_interrupt(int irq, void *dev_id, struct pt_regs *regs)
-+irqreturn_t mconsole_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+-static int sigusr1 = SIGUSR1;
+-
+ int fork_tramp(void *stack)
  {
-       int fd;
-       struct mconsole_entry *new;
-@@ -75,9 +79,10 @@
+-      int sig = sigusr1;
+-
+       local_irq_disable();
++      arch_init_thread();
+       init_new_thread_stack(stack, finish_fork_handler);
  
-       fd = (int) dev_id;
-       while (mconsole_get_request(fd, &req)){
--              if(req.cmd->as_interrupt) (*req.cmd->handler)(&req);
-+              if(req.cmd->context == MCONSOLE_INTR) 
-+                      (*req.cmd->handler)(&req);
-               else {
--                      new = kmalloc(sizeof(req), GFP_ATOMIC);
-+                      new = kmalloc(sizeof(*new), GFP_ATOMIC);
-                       if(new == NULL)
-                               mconsole_reply(&req, "Out of memory", 1, 0);
-                       else {
-@@ -88,6 +93,7 @@
-       }
-       if(!list_empty(&mc_requests)) schedule_work(&mconsole_work);
-       reactivate_fd(fd, MCONSOLE_IRQ);
-+      return(IRQ_HANDLED);
+-      kill(os_getpid(), sig);
++      os_usr1_process(os_getpid());
+       return(0);
  }
  
- void mconsole_version(struct mc_request *req)
-@@ -100,20 +106,109 @@
-       mconsole_reply(req, version, 0, 0);
- }
+@@ -213,8 +234,8 @@
+       }
  
-+void mconsole_log(struct mc_request *req)
-+{
-+      int len;
-+      char *ptr = req->request.data;
-+      
-+      ptr += strlen("log ");
-+
-+      len = req->len - (ptr - req->request.data);
-+      printk("%.*s", len, ptr);
-+      mconsole_reply(req, "", 0, 0);
-+}
-+
-+void mconsole_proc(struct mc_request *req)
-+{
-+      struct nameidata nd;
-+      struct file_system_type *proc;
-+      struct super_block *super;
-+      struct file *file;
-+      int n, err;
-+      char *ptr = req->request.data, *buf;
-+      
-+      ptr += strlen("proc");
-+      while(isspace(*ptr)) ptr++;
-+
-+      proc = get_fs_type("proc");
-+      if(proc == NULL){
-+              mconsole_reply(req, "procfs not registered", 1, 0);
-+              goto out;
-+      }
+       err = os_pipe(p->thread.mode.tt.switch_pipe, 1, 1);
+-      if(err){
+-              printk("copy_thread : pipe failed, errno = %d\n", -err);
++      if(err < 0){
++              printk("copy_thread : pipe failed, err = %d\n", -err);
+               return(err);
+       }
+@@ -377,8 +398,8 @@
+       pages = (1 << CONFIG_KERNEL_STACK_ORDER);
+-      start = (unsigned long) current->thread_info + PAGE_SIZE;
+-      end = (unsigned long) current + PAGE_SIZE * pages;
++      start = (unsigned long) current_thread + PAGE_SIZE;
++      end = (unsigned long) current_thread + PAGE_SIZE * pages;
+       protect_memory(uml_reserved, start - uml_reserved, 1, w, 1, 1);
+       protect_memory(end, high_physmem - end, 1, w, 1, 1);
+@@ -454,8 +475,9 @@
+       init_task.thread.mode.tt.extern_pid = pid;
+       err = os_pipe(init_task.thread.mode.tt.switch_pipe, 1, 1);
+-      if(err) panic("Can't create switch pipe for init_task, errno = %d", 
+-                    err);
++      if(err) 
++              panic("Can't create switch pipe for init_task, errno = %d", 
++                    -err);
+ }
+ int singlestepping_tt(void *t)
+Index: uml-2.6.7/arch/um/include/2_5compat.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/include/2_5compat.h 2004-07-16 19:36:37.163496752 +0300
++++ uml-2.6.7/arch/um/include/2_5compat.h      2004-07-16 19:47:23.700208232 +0300
+@@ -6,20 +6,6 @@
+ #ifndef __2_5_COMPAT_H__
+ #define __2_5_COMPAT_H__
+-#include "linux/version.h"
+-
+-#define INIT_CONSOLE(dev_name, write_proc, device_proc, setup_proc, f) { \
+-      name :          dev_name, \
+-      write :         write_proc, \
+-      read :          NULL, \
+-      device :        device_proc, \
+-      setup :         setup_proc, \
+-      flags :         f, \
+-      index :         -1, \
+-      cflag :         0, \
+-      next :          NULL \
+-}
+-
+ #define INIT_HARDSECT(arr, maj, sizes)
+ #define SET_PRI(task) do ; while(0)
+Index: uml-2.6.7/fs/hostfs/Makefile
+===================================================================
+--- uml-2.6.7.orig/fs/hostfs/Makefile  2004-07-16 19:47:23.631218720 +0300
++++ uml-2.6.7/fs/hostfs/Makefile       2004-07-16 19:47:23.784195464 +0300
+@@ -0,0 +1,26 @@
++# 
++# Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
++# Licensed under the GPL
++#
 +
-+      super = (*proc->get_sb)(proc, 0, NULL, NULL);
-+      put_filesystem(proc);
-+      if(super == NULL){
-+              mconsole_reply(req, "Failed to get procfs superblock", 1, 0);
-+              goto out;
-+      }
-+      up_write(&super->s_umount);
++# struct stat64 changed the inode field name between 2.2 and 2.4 from st_ino
++# to __st_ino.  It stayed in the same place, so as long as the correct name
++# is used, hostfs compiled on 2.2 should work on 2.4 and vice versa.
 +
-+      nd.dentry = super->s_root;
-+      nd.mnt = NULL;
-+      nd.flags = O_RDONLY + 1;
-+      nd.last_type = LAST_ROOT;
++STAT64_INO_FIELD := $(shell grep -q __st_ino /usr/include/bits/stat.h && \
++                              echo __)st_ino
 +
-+      err = link_path_walk(ptr, &nd);
-+      if(err){
-+              mconsole_reply(req, "Failed to look up file", 1, 0);
-+              goto out_kill;
-+      }
++hostfs-objs := hostfs_kern.o hostfs_user.o
 +
-+      file = dentry_open(nd.dentry, nd.mnt, O_RDONLY);
-+      if(IS_ERR(file)){
-+              mconsole_reply(req, "Failed to open file", 1, 0);
-+              goto out_kill;
-+      }
++obj-y = 
++obj-$(CONFIG_HOSTFS) += hostfs.o
 +
-+      buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
-+      if(buf == NULL){
-+              mconsole_reply(req, "Failed to allocate buffer", 1, 0);
-+              goto out_fput;
-+      }
++SINGLE_OBJS = $(foreach f,$(patsubst %.o,%,$(obj-y) $(obj-m)),$($(f)-objs))
 +
-+      if((file->f_op != NULL) && (file->f_op->read != NULL)){
-+              do {
-+                      n = (*file->f_op->read)(file, buf, PAGE_SIZE - 1, 
-+                                              &file->f_pos);
-+                      if(n >= 0){
-+                              buf[n] = '\0';
-+                              mconsole_reply(req, buf, 0, (n > 0));
-+                      }
-+                      else {
-+                              mconsole_reply(req, "Read of file failed", 
-+                                             1, 0);
-+                              goto out_free;
-+                      }
-+              } while(n > 0);
-+      }
-+      else mconsole_reply(req, "", 0, 0);
++USER_OBJS := $(filter %_user.o,$(obj-y) $(obj-m) $(SINGLE_OBJS))
++USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
 +
-+ out_free:
-+      kfree(buf);
-+ out_fput:
-+      fput(file);
-+ out_kill:
-+      deactivate_super(super);
-+ out: ;
-+}
++USER_CFLAGS += -DSTAT64_INO_FIELD=$(STAT64_INO_FIELD)
 +
- #define UML_MCONSOLE_HELPTEXT \
--"Commands:
--    version - Get kernel version
--    help - Print this message
--    halt - Halt UML
--    reboot - Reboot UML
--    config <dev>=<config> - Add a new device to UML; 
--      same syntax as command line
--    config <dev> - Query the configuration of a device
--    remove <dev> - Remove a device from UML
--    sysrq <letter> - Performs the SysRq action controlled by the letter
--    cad - invoke the Ctl-Alt-Del handler
--    stop - pause the UML; it will do nothing until it receives a 'go'
--    go - continue the UML after a 'stop'
-+"Commands: \n\
-+    version - Get kernel version \n\
-+    help - Print this message \n\
-+    halt - Halt UML \n\
-+    reboot - Reboot UML \n\
-+    config <dev>=<config> - Add a new device to UML;  \n\
-+      same syntax as command line \n\
-+    config <dev> - Query the configuration of a device \n\
-+    remove <dev> - Remove a device from UML \n\
-+    sysrq <letter> - Performs the SysRq action controlled by the letter \n\
-+    cad - invoke the Ctl-Alt-Del handler \n\
-+    stop - pause the UML; it will do nothing until it receives a 'go' \n\
-+    go - continue the UML after a 'stop' \n\
-+    log <string> - make UML enter <string> into the kernel log\n\
-+    proc <file> - returns the contents of the UML's /proc/<file>\n\
- "
- void mconsole_help(struct mc_request *req)
-@@ -302,7 +397,7 @@
-       if(umid_file_name("mconsole", file, sizeof(file))) return(-1);
-       snprintf(mconsole_socket_name, sizeof(file), "%s", file);
--      sock = create_unix_socket(file, sizeof(file));
-+      sock = os_create_unix_socket(file, sizeof(file), 1);
-       if (sock < 0){
-               printk("Failed to initialize management console\n");
-               return(1);
-@@ -344,11 +439,16 @@
-       if(buf == NULL) 
-               return(-ENOMEM);
++$(USER_OBJS) : %.o: %.c
++      $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
+Index: uml-2.6.7/arch/um/kernel/skas/mmu.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/skas/mmu.c   2004-07-16 19:37:51.994120768 +0300
++++ uml-2.6.7/arch/um/kernel/skas/mmu.c        2004-07-16 19:47:23.730203672 +0300
+@@ -22,9 +22,11 @@
+       else from = -1;
  
--      if(copy_from_user(buf, buffer, count))
--              return(-EFAULT);
-+      if(copy_from_user(buf, buffer, count)){
-+              count = -EFAULT;
-+              goto out;
+       mm->context.skas.mm_fd = new_mm(from);
+-      if(mm->context.skas.mm_fd < 0)
+-              panic("init_new_context_skas - new_mm failed, errno = %d\n",
+-                    mm->context.skas.mm_fd);
++      if(mm->context.skas.mm_fd < 0){
++              printk("init_new_context_skas - new_mm failed, errno = %d\n",
++                     mm->context.skas.mm_fd);
++              return(mm->context.skas.mm_fd);
 +      }
-+
-       buf[count] = '\0';
  
-       mconsole_notify(notify_socket, MCONSOLE_USER_NOTIFY, buf, count);
-+ out:
-+      kfree(buf);
-       return(count);
+       return(0);
  }
+Index: uml-2.6.7/arch/um/kernel/skas/sys-i386/sigcontext.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/skas/sys-i386/sigcontext.c   2004-07-16 19:35:56.079742432 +0300
++++ uml-2.6.7/arch/um/kernel/skas/sys-i386/sigcontext.c        2004-07-16 19:47:23.733203216 +0300
+@@ -12,10 +12,9 @@
+ #include "kern_util.h"
+ #include "user.h"
+ #include "sigcontext.h"
++#include "mode.h"
  
-diff -Naur a/arch/um/drivers/mconsole_user.c b/arch/um/drivers/mconsole_user.c
---- a/arch/um/drivers/mconsole_user.c  2004-03-10 08:20:26.000000000 -0500
-+++ b/arch/um/drivers/mconsole_user.c  2004-03-10 08:35:23.000000000 -0500
-@@ -1,6 +1,6 @@
- /*
-  * Copyright (C) 2001 Lennert Buytenhek (buytenh@gnu.org)
-- * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
-+ * Copyright (C) 2001 - 2003 Jeff Dike (jdike@addtoit.com)
-  * Licensed under the GPL
-  */
+-extern int userspace_pid;
+-
+-int copy_sc_from_user_skas(union uml_pt_regs *regs, void *from_ptr)
++int copy_sc_from_user_skas(int pid, union uml_pt_regs *regs, void *from_ptr)
+ {
+       struct sigcontext sc, *from = from_ptr;
+       unsigned long fpregs[FP_FRAME_SIZE];
+@@ -41,13 +40,12 @@
+       regs->skas.regs[EIP] = sc.eip;
+       regs->skas.regs[CS] = sc.cs;
+       regs->skas.regs[EFL] = sc.eflags;
+-      regs->skas.regs[UESP] = sc.esp_at_signal;
+       regs->skas.regs[SS] = sc.ss;
+       regs->skas.fault_addr = sc.cr2;
+       regs->skas.fault_type = FAULT_WRITE(sc.err);
+       regs->skas.trap_type = sc.trapno;
  
-@@ -18,16 +18,18 @@
- #include "umid.h"
+-      err = ptrace(PTRACE_SETFPREGS, userspace_pid, 0, fpregs);
++      err = ptrace(PTRACE_SETFPREGS, pid, 0, fpregs);
+       if(err < 0){
+               printk("copy_sc_to_user - PTRACE_SETFPREGS failed, "
+                      "errno = %d\n", errno);
+@@ -57,8 +55,9 @@
+       return(0);
+ }
  
- static struct mconsole_command commands[] = {
--      { "version", mconsole_version, 1 },
--      { "halt", mconsole_halt, 0 },
--      { "reboot", mconsole_reboot, 0 },
--      { "config", mconsole_config, 0 },
--      { "remove", mconsole_remove, 0 },
--      { "sysrq", mconsole_sysrq, 1 },
--      { "help", mconsole_help, 1 },
--      { "cad", mconsole_cad, 1 },
--      { "stop", mconsole_stop, 0 },
--      { "go", mconsole_go, 1 },
-+      { "version", mconsole_version, MCONSOLE_INTR },
-+      { "halt", mconsole_halt, MCONSOLE_PROC },
-+      { "reboot", mconsole_reboot, MCONSOLE_PROC },
-+      { "config", mconsole_config, MCONSOLE_PROC },
-+      { "remove", mconsole_remove, MCONSOLE_PROC },
-+      { "sysrq", mconsole_sysrq, MCONSOLE_INTR },
-+      { "help", mconsole_help, MCONSOLE_INTR },
-+      { "cad", mconsole_cad, MCONSOLE_INTR },
-+      { "stop", mconsole_stop, MCONSOLE_PROC },
-+      { "go", mconsole_go, MCONSOLE_INTR },
-+      { "log", mconsole_log, MCONSOLE_INTR },
-+      { "proc", mconsole_proc, MCONSOLE_PROC },
- };
- /* Initialized in mconsole_init, which is an initcall */
-@@ -139,6 +141,7 @@
-               memcpy(reply.data, str, len);
-               reply.data[len] = '\0';
-               total -= len;
-+              str += len;
-               reply.len = len + 1;
+-int copy_sc_to_user_skas(void *to_ptr, void *fp, union uml_pt_regs *regs, 
+-                       unsigned long fault_addr, int fault_type)
++int copy_sc_to_user_skas(int pid, void *to_ptr, void *fp, 
++                       union uml_pt_regs *regs, unsigned long fault_addr, 
++                       int fault_type)
+ {
+       struct sigcontext sc, *to = to_ptr;
+       struct _fpstate *to_fp;
+@@ -86,7 +85,7 @@
+       sc.err = TO_SC_ERR(fault_type);
+       sc.trapno = regs->skas.trap_type;
  
-               len = sizeof(reply) + reply.len - sizeof(reply.data);
-diff -Naur a/arch/um/drivers/mmapper_kern.c b/arch/um/drivers/mmapper_kern.c
---- a/arch/um/drivers/mmapper_kern.c   2004-03-10 08:20:25.000000000 -0500
-+++ b/arch/um/drivers/mmapper_kern.c   2004-03-10 08:35:08.000000000 -0500
-@@ -120,7 +120,10 @@
-       printk(KERN_INFO "Mapper v0.1\n");
+-      err = ptrace(PTRACE_GETFPREGS, userspace_pid, 0, fpregs);
++      err = ptrace(PTRACE_GETFPREGS, pid, 0, fpregs);
+       if(err < 0){
+               printk("copy_sc_to_user - PTRACE_GETFPREGS failed, "
+                      "errno = %d\n", errno);
+Index: uml-2.6.7/arch/um/kernel/skas/process.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/skas/process.c       2004-07-16 19:37:38.120229920 +0300
++++ uml-2.6.7/arch/um/kernel/skas/process.c    2004-07-16 19:47:24.793042096 +0300
+@@ -4,6 +4,7 @@
+  */
  
-       v_buf = (char *) find_iomem("mmapper", &mmapper_size);
--      if(mmapper_size == 0) return(0);
-+      if(mmapper_size == 0){
-+              printk(KERN_ERR "mmapper_init - find_iomem failed\n");
+ #include <stdlib.h>
++#include <unistd.h>
+ #include <errno.h>
+ #include <signal.h>
+ #include <setjmp.h>
+@@ -24,6 +25,19 @@
+ #include "os.h"
+ #include "proc_mm.h"
+ #include "skas_ptrace.h"
++#include "chan_user.h"
++#include "signal_user.h"
++
++int is_skas_winch(int pid, int fd, void *data)
++{
++      if(pid != getpid())
 +              return(0);
-+      }
-       p_buf = __pa(v_buf);
++
++      register_winch_irq(-1, fd, -1, data);
++      return(1);
++}
++
++/* These are set once at boot time and not changed thereafter */
  
-diff -Naur a/arch/um/drivers/net_kern.c b/arch/um/drivers/net_kern.c
---- a/arch/um/drivers/net_kern.c       2004-03-10 08:21:07.000000000 -0500
-+++ b/arch/um/drivers/net_kern.c       2004-03-10 08:38:42.000000000 -0500
-@@ -26,6 +26,7 @@
- #include "mconsole_kern.h"
- #include "init.h"
- #include "irq_user.h"
-+#include "irq_kern.h"
+ unsigned long exec_regs[FRAME_SIZE];
+ unsigned long exec_fp_regs[HOST_FP_SIZE];
+@@ -43,37 +57,39 @@
+       segv(fault.addr, 0, FAULT_WRITE(fault.is_write), 1, NULL);
+ }
  
- static spinlock_t opened_lock = SPIN_LOCK_UNLOCKED;
- LIST_HEAD(opened);
-@@ -37,7 +38,8 @@
-       struct sk_buff *skb;
+-static void handle_trap(int pid, union uml_pt_regs *regs)
++/*To use the same value of using_sysemu as the caller, ask it that value (in local_using_sysemu)*/
++static void handle_trap(int pid, union uml_pt_regs *regs, int local_using_sysemu)
+ {
+       int err, syscall_nr, status;
  
-       /* If we can't allocate memory, try again next round. */
--      if ((skb = dev_alloc_skb(dev->mtu)) == NULL) {
-+      skb = dev_alloc_skb(dev->mtu);
-+      if (skb == NULL) {
-               lp->stats.rx_dropped++;
-               return 0;
+       syscall_nr = PT_SYSCALL_NR(regs->skas.regs);
++      UPT_SYSCALL_NR(regs) = syscall_nr;
+       if(syscall_nr < 1){
+               relay_signal(SIGTRAP, regs);
+               return;
        }
-@@ -61,14 +63,14 @@
-       return pkt_len;
- }
+-      UPT_SYSCALL_NR(regs) = syscall_nr;
  
--void uml_net_interrupt(int irq, void *dev_id, struct pt_regs *regs)
-+irqreturn_t uml_net_interrupt(int irq, void *dev_id, struct pt_regs *regs)
- {
-       struct net_device *dev = dev_id;
-       struct uml_net_private *lp = dev->priv;
-       int err;
+-      err = ptrace(PTRACE_POKEUSER, pid, PT_SYSCALL_NR_OFFSET, __NR_getpid);
+-      if(err < 0)
+-              panic("handle_trap - nullifying syscall failed errno = %d\n", 
+-                    errno);
++      if (!local_using_sysemu)
++      {
++              err = ptrace(PTRACE_POKEUSER, pid, PT_SYSCALL_NR_OFFSET, __NR_getpid);
++              if(err < 0)
++                      panic("handle_trap - nullifying syscall failed errno = %d\n",
++                            errno);
  
-       if(!netif_running(dev))
--              return;
-+              return(IRQ_NONE);
+-      err = ptrace(PTRACE_SYSCALL, pid, 0, 0);
+-      if(err < 0)
+-              panic("handle_trap - continuing to end of syscall failed, "
+-                    "errno = %d\n", errno);
+-
+-      err = waitpid(pid, &status, WUNTRACED);
+-      if((err < 0) || !WIFSTOPPED(status) || (WSTOPSIG(status) != SIGTRAP))
+-              panic("handle_trap - failed to wait at end of syscall, "
+-                    "errno = %d, status = %d\n", errno, status);
++              err = ptrace(PTRACE_SYSCALL, pid, 0, 0);
++              if(err < 0)
++                      panic("handle_trap - continuing to end of syscall failed, "
++                            "errno = %d\n", errno);
++
++              CATCH_EINTR(err = waitpid(pid, &status, WUNTRACED));
++              if((err < 0) || !WIFSTOPPED(status) || (WSTOPSIG(status) != SIGTRAP))
++                      panic("handle_trap - failed to wait at end of syscall, "
++                            "errno = %d, status = %d\n", errno, status);
++      }
  
-       spin_lock(&lp->lock);
-       while((err = uml_net_rx(dev)) > 0) ;
-@@ -83,6 +85,7 @@
+       handle_syscall(regs);
+ }
  
-  out:
-       spin_unlock(&lp->lock);
-+      return(IRQ_HANDLED);
+-int userspace_pid;
+-
+ static int userspace_tramp(void *arg)
+ {
+       init_new_thread_signals(0);
+@@ -83,7 +99,11 @@
+       return(0);
  }
  
- static int uml_net_open(struct net_device *dev)
-@@ -252,37 +255,6 @@
- #endif
+-void start_userspace(void)
++/* Each element set once, and only accessed by a single processor anyway */
++#define NR_CPUS 1
++int userspace_pid[NR_CPUS];
++
++void start_userspace(int cpu)
+ {
+       void *stack;
+       unsigned long sp;
+@@ -101,7 +121,7 @@
+               panic("start_userspace : clone failed, errno = %d", errno);
+       do {
+-              n = waitpid(pid, &status, WUNTRACED);
++              CATCH_EINTR(n = waitpid(pid, &status, WUNTRACED));
+               if(n < 0)
+                       panic("start_userspace : wait failed, errno = %d", 
+                             errno);
+@@ -114,21 +134,27 @@
+       if(munmap(stack, PAGE_SIZE) < 0)
+               panic("start_userspace : munmap failed, errno = %d\n", errno);
+-      userspace_pid = pid;
++      userspace_pid[cpu] = pid;
  }
  
--/*
-- * default do nothing hard header packet routines for struct net_device init.
-- * real ethernet transports will overwrite with real routines.
-- */
--static int uml_net_hard_header(struct sk_buff *skb, struct net_device *dev,
--                 unsigned short type, void *daddr, void *saddr, unsigned len)
--{
--      return(0); /* no change */
--}
--
--static int uml_net_rebuild_header(struct sk_buff *skb)
--{
--      return(0); /* ignore */ 
--}
--
--static int uml_net_header_cache(struct neighbour *neigh, struct hh_cache *hh)
--{
--      return(-1); /* fail */
--}
--
--static void uml_net_header_cache_update(struct hh_cache *hh,
--                 struct net_device *dev, unsigned char * haddr)
--{
--      /* ignore */
--}
--
--static int uml_net_header_parse(struct sk_buff *skb, unsigned char *haddr)
--{
--      return(0); /* nothing */
--}
--
- static spinlock_t devices_lock = SPIN_LOCK_UNLOCKED;
- static struct list_head devices = LIST_HEAD_INIT(devices);
+ void userspace(union uml_pt_regs *regs)
+ {
+-      int err, status, op;
++      int err, status, op, pid = userspace_pid[0];
++      int local_using_sysemu; /*To prevent races if using_sysemu changes under us.*/
  
-@@ -292,7 +264,7 @@
-       struct uml_net *device;
-       struct net_device *dev;
-       struct uml_net_private *lp;
--      int err, size;
-+      int save, err, size;
+       restore_registers(regs);
+               
+-      err = ptrace(PTRACE_SYSCALL, userspace_pid, 0, 0);
++      local_using_sysemu = get_using_sysemu();
++
++      if (local_using_sysemu)
++              err = ptrace(PTRACE_SYSEMU, pid, 0, 0);
++      else
++              err = ptrace(PTRACE_SYSCALL, pid, 0, 0);
+       if(err)
+               panic("userspace - PTRACE_SYSCALL failed, errno = %d\n", 
+                      errno);
+       while(1){
+-              err = waitpid(userspace_pid, &status, WUNTRACED);
++              CATCH_EINTR(err = waitpid(pid, &status, WUNTRACED));
+               if(err < 0)
+                       panic("userspace - waitpid failed, errno = %d\n", 
+                             errno);
+@@ -139,16 +165,17 @@
+               if(WIFSTOPPED(status)){
+                       switch(WSTOPSIG(status)){
+                       case SIGSEGV:
+-                              handle_segv(userspace_pid);
++                              handle_segv(pid);
+                               break;
+                       case SIGTRAP:
+-                              handle_trap(userspace_pid, regs);
++                              handle_trap(pid, regs, local_using_sysemu);
+                               break;
+                       case SIGIO:
+                       case SIGVTALRM:
+                       case SIGILL:
+                       case SIGBUS:
+                       case SIGFPE:
++                      case SIGWINCH:
+                               user_signal(WSTOPSIG(status), regs);
+                               break;
+                       default:
+@@ -160,9 +187,17 @@
  
-       size = transport->private_size + sizeof(struct uml_net_private) + 
-               sizeof(((struct uml_net_private *) 0)->user);
-@@ -334,12 +306,6 @@
-       snprintf(dev->name, sizeof(dev->name), "eth%d", n);
-       device->dev = dev;
+               restore_registers(regs);
  
--        dev->hard_header = uml_net_hard_header;
--        dev->rebuild_header = uml_net_rebuild_header;
--        dev->hard_header_cache = uml_net_header_cache;
--        dev->header_cache_update= uml_net_header_cache_update;
--        dev->hard_header_parse = uml_net_header_parse;
--
-       (*transport->kern->init)(dev, init);
+-              op = singlestepping_skas() ? PTRACE_SINGLESTEP : 
+-                      PTRACE_SYSCALL;
+-              err = ptrace(op, userspace_pid, 0, 0);
++              /*Now we ended the syscall, so re-read local_using_sysemu.*/
++              local_using_sysemu = get_using_sysemu();
++
++              if (local_using_sysemu)
++                      op = singlestepping_skas() ? PTRACE_SINGLESTEP :
++                              PTRACE_SYSEMU;
++              else
++                      op = singlestepping_skas() ? PTRACE_SINGLESTEP :
++                              PTRACE_SYSCALL;
++
++              err = ptrace(op, pid, 0, 0);
+               if(err)
+                       panic("userspace - PTRACE_SYSCALL failed, "
+                             "errno = %d\n", errno);
+@@ -172,13 +207,25 @@
+ void new_thread(void *stack, void **switch_buf_ptr, void **fork_buf_ptr,
+               void (*handler)(int))
+ {
++      unsigned long flags;
+       jmp_buf switch_buf, fork_buf;
  
-       dev->mtu = transport->user->max_packet;
-@@ -366,21 +332,29 @@
-       }
-       lp = dev->priv;
+       *switch_buf_ptr = &switch_buf;
+       *fork_buf_ptr = &fork_buf;
  
--      INIT_LIST_HEAD(&lp->list);
--      spin_lock_init(&lp->lock);
--      lp->dev = dev;
--      lp->fd = -1;
--      lp->mac = { 0xfe, 0xfd, 0x0, 0x0, 0x0, 0x0 };
--      lp->have_mac = device->have_mac;
--      lp->protocol = transport->kern->protocol;
--      lp->open = transport->user->open;
--      lp->close = transport->user->close;
--      lp->remove = transport->user->remove;
--      lp->read = transport->kern->read;
--      lp->write = transport->kern->write;
--      lp->add_address = transport->user->add_address;
--      lp->delete_address = transport->user->delete_address;
--      lp->set_mtu = transport->user->set_mtu;
-+      /* lp.user is the first four bytes of the transport data, which
-+       * has already been initialized.  This structure assignment will
-+       * overwrite that, so we make sure that .user gets overwritten with
-+       * what it already has.
+-      if(setjmp(fork_buf) == 0)
++      /* Somewhat subtle - siglongjmp restores the signal mask before doing
++       * the longjmp.  This means that when jumping from one stack to another
++       * when the target stack has interrupts enabled, an interrupt may occur
++       * on the source stack.  This is bad when starting up a process because
++       * it's not supposed to get timer ticks until it has been scheduled.
++       * So, we disable interrupts around the sigsetjmp to ensure that 
++       * they can't happen until we get back here where they are safe.
 +       */
-+      save = lp->user[0];
-+      *lp = ((struct uml_net_private) 
-+              { .list                 = LIST_HEAD_INIT(lp->list),
-+                .lock                 = SPIN_LOCK_UNLOCKED,
-+                .dev                  = dev,
-+                .fd                   = -1,
-+                .mac                  = { 0xfe, 0xfd, 0x0, 0x0, 0x0, 0x0},
-+                .have_mac             = device->have_mac,
-+                .protocol             = transport->kern->protocol,
-+                .open                 = transport->user->open,
-+                .close                = transport->user->close,
-+                .remove               = transport->user->remove,
-+                .read                 = transport->kern->read,
-+                .write                = transport->kern->write,
-+                .add_address          = transport->user->add_address,
-+                .delete_address       = transport->user->delete_address,
-+                .set_mtu              = transport->user->set_mtu,
-+                .user                 = { save } });
++      flags = get_signals();
++      block_signals();
++      if(sigsetjmp(fork_buf, 1) == 0)
+               new_thread_proc(stack, handler);
++      set_signals(flags);
  
-       init_timer(&lp->tl);
-       lp->tl.function = uml_net_user_timer_expire;
-@@ -613,7 +587,8 @@
-       unregister_netdev(dev);
+       remove_sigstack();
+ }
+@@ -189,16 +236,16 @@
  
-       list_del(&device->list);
--      free_netdev(device);
-+      kfree(device);
-+      free_netdev(dev);
-       return(0);
+       *switch_buf = &buf;
+       fork_buf = fb;
+-      if(setjmp(buf) == 0)
+-              longjmp(*fork_buf, 1);
++      if(sigsetjmp(buf, 1) == 0)
++              siglongjmp(*fork_buf, 1);
  }
  
-diff -Naur a/arch/um/drivers/net_user.c b/arch/um/drivers/net_user.c
---- a/arch/um/drivers/net_user.c       2004-03-10 08:20:29.000000000 -0500
-+++ b/arch/um/drivers/net_user.c       2004-03-10 08:35:36.000000000 -0500
-@@ -26,8 +26,7 @@
-       if(gate_addr == NULL) return(0);
-       if(sscanf(gate_addr, "%d.%d.%d.%d", &tap_addr[0], 
-                 &tap_addr[1], &tap_addr[2], &tap_addr[3]) != 4){
--              printk("Invalid tap IP address - '%s'\n", 
--                     gate_addr);
-+              printk("Invalid tap IP address - '%s'\n", gate_addr);
-               return(-EINVAL);
-       }
+-static int move_registers(int int_op, int fp_op, union uml_pt_regs *regs,
+-                        unsigned long *fp_regs)
++static int move_registers(int pid, int int_op, int fp_op, 
++                        union uml_pt_regs *regs, unsigned long *fp_regs)
+ {
+-      if(ptrace(int_op, userspace_pid, 0, regs->skas.regs) < 0)
++      if(ptrace(int_op, pid, 0, regs->skas.regs) < 0)
+               return(-errno);
+-      if(ptrace(fp_op, userspace_pid, 0, fp_regs) < 0)
++      if(ptrace(fp_op, pid, 0, fp_regs) < 0)
+               return(-errno);
        return(0);
-@@ -60,18 +59,18 @@
+ }
+@@ -217,10 +264,11 @@
+               fp_regs = regs->skas.fp;
        }
-               
-       *output = '\0';
--      if(read(fd, &remain, sizeof(remain)) != sizeof(remain)){
--              printk("read_output - read of length failed, errno = %d\n",
--                     errno);
-+      n = os_read_file(fd, &remain, sizeof(remain));
-+      if(n != sizeof(remain)){
-+              printk("read_output - read of length failed, err = %d\n", -n);
-               return;
+-      err = move_registers(PTRACE_GETREGS, fp_op, regs, fp_regs);
++      err = move_registers(userspace_pid[0], PTRACE_GETREGS, fp_op, regs, 
++                           fp_regs);
+       if(err)
+               panic("save_registers - saving registers failed, errno = %d\n",
+-                    err);
++                    -err);
+ }
+ void restore_registers(union uml_pt_regs *regs)
+@@ -237,10 +285,11 @@
+               fp_regs = regs->skas.fp;
        }
  
-       while(remain != 0){
-               n = (remain < len) ? remain : len;
--              actual = read(fd, output, n);
-+              actual = os_read_file(fd, output, n);
-               if(actual != n){
-                       printk("read_output - read of data failed, "
--                             "errno = %d\n", errno);
-+                             "err = %d\n", -actual);
-                       return;
-               }
-               remain -= actual;
-@@ -83,13 +82,12 @@
- {
+-      err = move_registers(PTRACE_SETREGS, fp_op, regs, fp_regs);
++      err = move_registers(userspace_pid[0], PTRACE_SETREGS, fp_op, regs, 
++                           fp_regs);
+       if(err)
+               panic("restore_registers - saving registers failed, "
+-                    "errno = %d\n", err);
++                    "errno = %d\n", -err);
+ }
+ void switch_threads(void *me, void *next)
+@@ -248,8 +297,8 @@
+       jmp_buf my_buf, **me_ptr = me, *next_buf = next;
+       
+       *me_ptr = &my_buf;
+-      if(setjmp(my_buf) == 0)
+-              longjmp(*next_buf, 1);
++      if(sigsetjmp(my_buf, 1) == 0)
++              siglongjmp(*next_buf, 1);
+ }
+ static jmp_buf initial_jmpbuf;
+@@ -265,14 +314,14 @@
        int n;
  
--      while(((n = read(fd,  buf,  len)) < 0) && (errno == EINTR)) ;
-+      n = os_read_file(fd,  buf,  len);
+       *fork_buf_ptr = &initial_jmpbuf;
+-      n = setjmp(initial_jmpbuf);
++      n = sigsetjmp(initial_jmpbuf, 1);
+       if(n == 0)
+               new_thread_proc((void *) stack, new_thread_handler);
+       else if(n == 1)
+               remove_sigstack();
+       else if(n == 2){
+               (*cb_proc)(cb_arg);
+-              longjmp(*cb_back, 1);
++              siglongjmp(*cb_back, 1);
+       }
+       else if(n == 3){
+               kmalloc_ok = 0;
+@@ -282,7 +331,7 @@
+               kmalloc_ok = 0;
+               return(1);
+       }
+-      longjmp(**switch_buf, 1);
++      siglongjmp(**switch_buf, 1);
+ }
  
--      if(n < 0){
--              if(errno == EAGAIN) return(0);
--              return(-errno);
--      }
--      else if(n == 0) return(-ENOTCONN);
-+      if(n == -EAGAIN) 
-+              return(0);
-+      else if(n == 0) 
-+              return(-ENOTCONN);
-       return(n);
+ void remove_sigstack(void)
+@@ -304,8 +353,8 @@
+       cb_back = &here;
+       block_signals();
+-      if(setjmp(here) == 0)
+-              longjmp(initial_jmpbuf, 2);
++      if(sigsetjmp(here, 1) == 0)
++              siglongjmp(initial_jmpbuf, 2);
+       unblock_signals();
+       cb_proc = NULL;
+@@ -316,22 +365,23 @@
+ void halt_skas(void)
+ {
+       block_signals();
+-      longjmp(initial_jmpbuf, 3);
++      siglongjmp(initial_jmpbuf, 3);
  }
  
-@@ -112,13 +110,13 @@
+ void reboot_skas(void)
  {
-       int n;
+       block_signals();
+-      longjmp(initial_jmpbuf, 4);
++      siglongjmp(initial_jmpbuf, 4);
+ }
  
--      while(((n = write(fd, buf, len)) < 0) && (errno == EINTR)) ;
--      if(n < 0){
--              if(errno == EAGAIN) return(0);
+ int new_mm(int from)
+ {
+       struct proc_mm_op copy;
+-      int n, fd = os_open_file("/proc/mm", of_write(OPENFLAGS()), 0);
++      int n, fd = os_open_file("/proc/mm", 
++                               of_cloexec(of_write(OPENFLAGS())), 0);
+       if(fd < 0)
 -              return(-errno);
--      }
--      else if(n == 0) return(-ENOTCONN);
--      return(n);      
-+      n = os_write_file(fd, buf, len);
++              return(fd);
+       if(from != -1){
+               copy = ((struct proc_mm_op) { .op       = MM_COPY_SEGMENTS,
+@@ -340,8 +390,9 @@
+               n = os_write_file(fd, &copy, sizeof(copy));
+               if(n != sizeof(copy)) 
+                       printk("new_mm : /proc/mm copy_segments failed, "
+-                             "errno = %d\n", errno);
++                             "err = %d\n", -n);
+       }
 +
-+      if(n == -EAGAIN) 
-+              return(0);
-+      else if(n == 0) 
-+              return(-ENOTCONN);
-+      return(n);
+       return(fd);
  }
  
- int net_send(int fd, void *buf, int len)
-@@ -157,7 +155,7 @@
+@@ -349,7 +400,8 @@
  {
-       struct change_pre_exec_data *data = arg;
+       int err;
  
--      close(data->close_me);
-+      os_close_file(data->close_me);
-       dup2(data->stdout, 1);
+-      err = ptrace(PTRACE_SWITCH_MM, userspace_pid, 0, mm_fd);
++#warning need cpu pid in switch_mm_skas
++      err = ptrace(PTRACE_SWITCH_MM, userspace_pid[0], 0, mm_fd);
+       if(err)
+               panic("switch_mm_skas - PTRACE_SWITCH_MM failed, errno = %d\n",
+                     errno);
+@@ -357,7 +409,8 @@
+ void kill_off_processes_skas(void)
+ {
+-      os_kill_process(userspace_pid, 1);
++#warning need to loop over userspace_pids in kill_off_processes_skas
++      os_kill_process(userspace_pid[0], 1);
  }
  
-@@ -167,15 +165,15 @@
-       struct change_pre_exec_data pe_data;
+ void init_registers(int pid)
+Index: uml-2.6.7/arch/um/os-Linux/tty.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/os-Linux/tty.c      2004-07-16 19:36:54.138916096 +0300
++++ uml-2.6.7/arch/um/os-Linux/tty.c   2004-07-16 19:47:23.769197744 +0300
+@@ -28,10 +28,10 @@
+       struct grantpt_info info;
+       int fd;
  
-       err = os_pipe(fds, 1, 0);
--      if(err){
--              printk("change_tramp - pipe failed, errno = %d\n", -err);
-+      if(err < 0){
-+              printk("change_tramp - pipe failed, err = %d\n", -err);
-               return(err);
+-      if((fd = os_open_file("/dev/ptmx", of_rdwr(OPENFLAGS()), 0)) < 0){
+-              printk("get_pty : Couldn't open /dev/ptmx - errno = %d\n",
+-                     errno);
+-              return(-1);
++      fd = os_open_file("/dev/ptmx", of_rdwr(OPENFLAGS()), 0);
++      if(fd < 0){
++              printk("get_pty : Couldn't open /dev/ptmx - err = %d\n", -fd);
++              return(fd);
        }
-       pe_data.close_me = fds[0];
-       pe_data.stdout = fds[1];
-       pid = run_helper(change_pre_exec, &pe_data, argv, NULL);
  
--      close(fds[1]);
-+      os_close_file(fds[1]);
-       read_output(fds[0], output, output_len);
-       waitpid(pid, NULL, 0);  
-       return(pid);
-diff -Naur a/arch/um/drivers/null.c b/arch/um/drivers/null.c
---- a/arch/um/drivers/null.c   2004-03-10 08:20:23.000000000 -0500
-+++ b/arch/um/drivers/null.c   2004-03-10 08:34:50.000000000 -0500
-@@ -5,7 +5,6 @@
+       info.fd = fd;
+@@ -39,7 +39,7 @@
  
- #include <stdlib.h>
- #include <errno.h>
--#include <fcntl.h>
- #include "chan_user.h"
- #include "os.h"
+       if(info.res < 0){
+               printk("get_pty : Couldn't grant pty - errno = %d\n", 
+-                     info.err);
++                     -info.err);
+               return(-1);
+       }
+       if(unlockpt(fd) < 0){
+Index: uml-2.6.7/arch/um/sys-ia64/Makefile
+===================================================================
+--- uml-2.6.7.orig/arch/um/sys-ia64/Makefile   2004-07-16 19:35:55.505829680 +0300
++++ uml-2.6.7/arch/um/sys-ia64/Makefile        2004-07-16 19:47:23.778196376 +0300
+@@ -7,18 +7,5 @@
+ $(OBJ): $(OBJS)
+       rm -f $@
+       $(LD) $(LINKFLAGS) --start-group $^ --end-group -o $@
+-clean:
+-      rm -f $(OBJS)
  
-diff -Naur a/arch/um/drivers/port_kern.c b/arch/um/drivers/port_kern.c
---- a/arch/um/drivers/port_kern.c      2004-03-10 08:20:18.000000000 -0500
-+++ b/arch/um/drivers/port_kern.c      2004-03-10 08:34:16.000000000 -0500
-@@ -6,6 +6,7 @@
- #include "linux/list.h"
- #include "linux/sched.h"
- #include "linux/slab.h"
-+#include "linux/interrupt.h"
- #include "linux/irq.h"
- #include "linux/spinlock.h"
- #include "linux/errno.h"
-@@ -14,6 +15,7 @@
- #include "kern_util.h"
- #include "kern.h"
- #include "irq_user.h"
-+#include "irq_kern.h"
- #include "port.h"
- #include "init.h"
- #include "os.h"
-@@ -38,21 +40,21 @@
- struct connection {
-       struct list_head list;
-       int fd;
--      int helper_pid;
-+      int helper_pid;
-       int socket[2];
-       int telnetd_pid;
-       struct port_list *port;
- };
+-fastdep:
+-
+-archmrproper:
+-
+-archclean:
+-      rm -f link.ld
+-      @$(MAKEBOOT) clean
+-
+-archdep:
+-      @$(MAKEBOOT) dep
+-
+-modules:
++clean-files := $(OBJS) link.ld
+Index: uml-2.6.7/arch/um/sys-i386/util/mk_sc.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/sys-i386/util/mk_sc.c       2004-07-16 19:37:26.086059392 +0300
++++ uml-2.6.7/arch/um/sys-i386/util/mk_sc.c    2004-07-16 19:47:23.778196376 +0300
+@@ -38,6 +38,7 @@
+   SC_OFFSET("SC_ERR", err);
+   SC_OFFSET("SC_CR2", cr2);
+   SC_OFFSET("SC_FPSTATE", fpstate);
++  SC_OFFSET("SC_SIGMASK", oldmask);
+   SC_FP_OFFSET("SC_FP_CW", cw);
+   SC_FP_OFFSET("SC_FP_SW", sw);
+   SC_FP_OFFSET("SC_FP_TAG", tag);
+Index: uml-2.6.7/arch/um/sys-i386/Makefile
+===================================================================
+--- uml-2.6.7.orig/arch/um/sys-i386/Makefile   2004-07-16 19:36:05.106370176 +0300
++++ uml-2.6.7/arch/um/sys-i386/Makefile        2004-07-16 19:47:23.772197288 +0300
+@@ -1,7 +1,8 @@
+-obj-y = bugs.o checksum.o extable.o fault.o ksyms.o ldt.o module.o \
+-      ptrace.o ptrace_user.o semaphore.o sigcontext.o syscalls.o sysrq.o
++obj-y = bugs.o checksum.o fault.o ksyms.o ldt.o ptrace.o ptrace_user.o \
++      semaphore.o sigcontext.o syscalls.o sysrq.o time.o
  
--static void pipe_interrupt(int irq, void *data, struct pt_regs *regs)
-+static irqreturn_t pipe_interrupt(int irq, void *data, struct pt_regs *regs)
- {
-       struct connection *conn = data;
-       int fd;
+ obj-$(CONFIG_HIGHMEM) += highmem.o
++obj-$(CONFIG_MODULES) += module.o
  
--      fd = os_rcv_fd(conn->socket[0], &conn->helper_pid);
-+      fd = os_rcv_fd(conn->socket[0], &conn->helper_pid);
-       if(fd < 0){
-               if(fd == -EAGAIN)
--                      return;
-+                      return(IRQ_NONE);
+ USER_OBJS := bugs.o ptrace_user.o sigcontext.o fault.o
+ USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
+@@ -9,6 +10,8 @@
+ SYMLINKS = semaphore.c highmem.c module.c
+ SYMLINKS := $(foreach f,$(SYMLINKS),$(src)/$f)
  
-               printk(KERN_ERR "pipe_interrupt : os_rcv_fd returned %d\n", 
-                      -fd);
-@@ -65,6 +67,7 @@
-       list_add(&conn->list, &conn->port->connections);
++clean-files := $(SYMLINKS)
++
+ semaphore.c-dir = kernel
+ highmem.c-dir = mm
+ module.c-dir = kernel
+@@ -24,19 +27,4 @@
+ $(SYMLINKS): 
+       $(call make_link,$@)
  
-       up(&conn->port->sem);
-+      return(IRQ_HANDLED);
- }
+-clean:
+-      $(MAKE) -C util clean
+-
+-fastdep:
+-
+-dep:
+-
+-archmrproper:
+-      rm -f $(SYMLINKS)
+-
+-archclean:
+-
+-archdep:
+-
+-modules:
+-
++subdir- := util
+Index: uml-2.6.7/arch/um/kernel/signal_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/signal_kern.c        2004-07-16 19:36:51.321344432 +0300
++++ uml-2.6.7/arch/um/kernel/signal_kern.c     2004-07-16 19:47:23.726204280 +0300
+@@ -36,7 +36,7 @@
+       if(sig == SIGSEGV){
+               struct k_sigaction *ka;
  
- static int port_accept(struct port_list *port)
-@@ -102,8 +105,7 @@
+-              ka = &current->sig->action[SIGSEGV - 1];
++              ka = &current->sighand->action[SIGSEGV - 1];
+               ka->sa.sa_handler = SIG_DFL;
        }
+       force_sig(SIGSEGV, current);
+@@ -60,10 +60,10 @@
+       int err, ret;
  
-       list_add(&conn->list, &port->pending);
--      ret = 1;
--      goto out;
-+      return(1);
+       ret = 0;
++      /* Always make any pending restarted system calls return -EINTR */
++      current_thread_info()->restart_block.fn = do_no_restart_syscall;
+       switch(error){
+       case -ERESTART_RESTARTBLOCK:
+-              current_thread_info()->restart_block.fn = 
+-                      do_no_restart_syscall;
+       case -ERESTARTNOHAND:
+               ret = -EINTR;
+               break;
+@@ -142,7 +142,7 @@
+               return(0);
  
-  out_free:
-       kfree(conn);
-@@ -138,12 +140,13 @@
+       /* Whee!  Actually deliver the signal.  */
+-      ka = &current->sig->action[sig -1 ];
++      ka = &current->sighand->action[sig -1 ];
+       err = handle_signal(regs, sig, ka, &info, oldset, error);
+       if(!err) return(1);
  
- DECLARE_WORK(port_work, port_work_proc, NULL);
+@@ -201,7 +201,7 @@
+       }
+ }
  
--static void port_interrupt(int irq, void *data, struct pt_regs *regs)
-+static irqreturn_t port_interrupt(int irq, void *data, struct pt_regs *regs)
+-int sys_rt_sigsuspend(sigset_t *unewset, size_t sigsetsize)
++int sys_rt_sigsuspend(sigset_t __user *unewset, size_t sigsetsize)
  {
-       struct port_list *port = data;
-       port->has_connection = 1;
-       schedule_work(&port_work);
-+      return(IRQ_HANDLED);
- } 
+       sigset_t saveset, newset;
  
- void *port_data(int port_num)
-diff -Naur a/arch/um/drivers/port_user.c b/arch/um/drivers/port_user.c
---- a/arch/um/drivers/port_user.c      2004-03-10 08:21:50.000000000 -0500
-+++ b/arch/um/drivers/port_user.c      2004-03-10 08:40:48.000000000 -0500
-@@ -47,10 +47,12 @@
-               return(NULL);
+@@ -227,20 +227,59 @@
        }
--      if((kern_data = port_data(port)) == NULL) 
-+      kern_data = port_data(port);
-+      if(kern_data == NULL) 
-               return(NULL);
--      if((data = um_kmalloc(sizeof(*data))) == NULL) 
-+      data = um_kmalloc(sizeof(*data));
-+      if(data == NULL) 
-               goto err;
-       *data = ((struct port_chan) { .raw              = opts->raw,
-@@ -90,7 +92,7 @@
-       struct port_chan *data = d;
-       port_remove_dev(data->kernel_data);
--      close(fd);
-+      os_close_file(fd);
  }
  
- int port_console_write(int fd, const char *buf, int n, void *d)
-@@ -130,11 +132,15 @@
-               goto out;
-       }
-   
--      if((listen(fd, 1) < 0) || (os_set_fd_block(fd, 0))){
-+      if(listen(fd, 1) < 0){
-               err = -errno;
-               goto out;
-       }
-+      err = os_set_fd_block(fd, 0);
-+      if(err < 0)
-+              goto out;
++int sys_sigaction(int sig, const struct old_sigaction __user *act,
++                       struct old_sigaction __user *oact)
++{
++      struct k_sigaction new_ka, old_ka;
++      int ret;
 +
-       return(fd);
-  out:
-       os_close_file(fd);
-@@ -153,10 +159,10 @@
-       dup2(data->sock_fd, 0);
-       dup2(data->sock_fd, 1);
-       dup2(data->sock_fd, 2);
--      close(data->sock_fd);
-+      os_close_file(data->sock_fd);
-       dup2(data->pipe_fd, 3);
-       os_shutdown_socket(3, 1, 0);
--      close(data->pipe_fd);
-+      os_close_file(data->pipe_fd);
- }
- int port_connection(int fd, int *socket, int *pid_out)
-@@ -166,11 +172,12 @@
-                        "/usr/lib/uml/port-helper", NULL };
-       struct port_pre_exec_data data;
--      if((new = os_accept_connection(fd)) < 0)
--              return(-errno);
-+      new = os_accept_connection(fd);
-+      if(new < 0)
-+              return(new);
-       err = os_pipe(socket, 0, 0);
--      if(err) 
-+      if(err < 0) 
-               goto out_close;
-       data = ((struct port_pre_exec_data)
-@@ -186,11 +193,11 @@
-  out_shutdown:
-       os_shutdown_socket(socket[0], 1, 1);
--      close(socket[0]);
-+      os_close_file(socket[0]);
-       os_shutdown_socket(socket[1], 1, 1);    
--      close(socket[1]);
-+      os_close_file(socket[1]);
-  out_close:
--      close(new);
-+      os_close_file(new);
-       return(err);
- }
-diff -Naur a/arch/um/drivers/pty.c b/arch/um/drivers/pty.c
---- a/arch/um/drivers/pty.c    2004-03-10 08:22:45.000000000 -0500
-+++ b/arch/um/drivers/pty.c    2004-03-10 08:43:23.000000000 -0500
-@@ -7,12 +7,12 @@
- #include <unistd.h>
- #include <string.h>
- #include <errno.h>
--#include <fcntl.h>
- #include <termios.h>
- #include "chan_user.h"
- #include "user.h"
- #include "user_util.h"
- #include "kern_util.h"
-+#include "os.h"
- struct pty_chan {
-       void (*announce)(char *dev_name, int dev);
-@@ -26,7 +26,8 @@
++      if (act) {
++              old_sigset_t mask;
++              if (verify_area(VERIFY_READ, act, sizeof(*act)) ||
++                  __get_user(new_ka.sa.sa_handler, &act->sa_handler) ||
++                  __get_user(new_ka.sa.sa_restorer, &act->sa_restorer))
++                      return -EFAULT;
++              __get_user(new_ka.sa.sa_flags, &act->sa_flags);
++              __get_user(mask, &act->sa_mask);
++              siginitset(&new_ka.sa.sa_mask, mask);
++      }
++
++      ret = do_sigaction(sig, act ? &new_ka : NULL, oact ? &old_ka : NULL);
++
++      if (!ret && oact) {
++              if (verify_area(VERIFY_WRITE, oact, sizeof(*oact)) ||
++                  __put_user(old_ka.sa.sa_handler, &oact->sa_handler) ||
++                  __put_user(old_ka.sa.sa_restorer, &oact->sa_restorer))
++                      return -EFAULT;
++              __put_user(old_ka.sa.sa_flags, &oact->sa_flags);
++              __put_user(old_ka.sa.sa_mask.sig[0], &oact->sa_mask);
++      }
++
++      return ret;
++}
++
++int sys_sigaltstack(const stack_t *uss, stack_t *uoss)
++{
++      return(do_sigaltstack(uss, uoss, PT_REGS_SP(&current->thread.regs)));
++}
++
++extern int userspace_pid[];
++
+ static int copy_sc_from_user(struct pt_regs *to, void *from, 
+                            struct arch_frame_data *arch)
  {
-       struct pty_chan *data;
--      if((data = um_kmalloc(sizeof(*data))) == NULL) return(NULL);
-+      data = um_kmalloc(sizeof(*data));
-+      if(data == NULL) return(NULL);
-       *data = ((struct pty_chan) { .announce          = opts->announce, 
-                                    .dev               = device,
-                                    .raw               = opts->raw });
-@@ -39,7 +40,8 @@
-       char *dev;
-       int fd;
+       int ret;
  
--      if((fd = get_pty()) < 0){
-+      fd = get_pty();
-+      if(fd < 0){
-               printk("open_pts : Failed to open pts\n");
-               return(-errno);
-       }
-@@ -57,29 +59,27 @@
+       ret = CHOOSE_MODE(copy_sc_from_user_tt(UPT_SC(&to->regs), from, arch),
+-                        copy_sc_from_user_skas(&to->regs, from));
++                        copy_sc_from_user_skas(userspace_pid[0], 
++                                               &to->regs, from));
+       return(ret);
+ }
  
- int getmaster(char *line)
+ int sys_sigreturn(struct pt_regs regs)
  {
--      struct stat stb;
-       char *pty, *bank, *cp;
--      int master;
-+      int master, err;
+-      void *sc = sp_to_sc(PT_REGS_SP(&current->thread.regs));
+-      void *mask = sp_to_mask(PT_REGS_SP(&current->thread.regs));
++      void __user *sc = sp_to_sc(PT_REGS_SP(&current->thread.regs));
++      void __user *mask = sp_to_mask(PT_REGS_SP(&current->thread.regs));
+       int sig_size = (_NSIG_WORDS - 1) * sizeof(unsigned long);
  
-       pty = &line[strlen("/dev/ptyp")];
-       for (bank = "pqrs"; *bank; bank++) {
-               line[strlen("/dev/pty")] = *bank;
-               *pty = '0';
--              if (stat(line, &stb) < 0)
-+              if (os_stat_file(line, NULL) < 0)
-                       break;
-               for (cp = "0123456789abcdef"; *cp; cp++) {
-                       *pty = *cp;
--                      master = open(line, O_RDWR);
-+                      master = os_open_file(line, of_rdwr(OPENFLAGS()), 0);
-                       if (master >= 0) {
-                               char *tp = &line[strlen("/dev/")];
--                              int ok;
+       spin_lock_irq(&current->sighand->siglock);
+@@ -257,8 +296,8 @@
  
-                               /* verify slave side is usable */
-                               *tp = 't';
--                              ok = access(line, R_OK|W_OK) == 0;
-+                              err = os_access(line, OS_ACC_RW_OK);
-                               *tp = 'p';
--                              if (ok) return(master);
--                              (void) close(master);
-+                              if(err == 0) return(master);
-+                              (void) os_close_file(master);
-                       }
-               }
-       }
-diff -Naur a/arch/um/drivers/slip_user.c b/arch/um/drivers/slip_user.c
---- a/arch/um/drivers/slip_user.c      2004-03-10 08:22:45.000000000 -0500
-+++ b/arch/um/drivers/slip_user.c      2004-03-10 08:43:23.000000000 -0500
-@@ -4,11 +4,9 @@
- #include <stddef.h>
- #include <sched.h>
- #include <string.h>
--#include <sys/fcntl.h>
- #include <sys/errno.h>
- #include <sys/termios.h>
- #include <sys/wait.h>
--#include <sys/ioctl.h>
- #include <sys/signal.h>
- #include "user_util.h"
- #include "kern_util.h"
-@@ -65,9 +63,9 @@
+ int sys_rt_sigreturn(struct pt_regs regs)
  {
-       struct slip_pre_exec_data *data = arg;
+-      struct ucontext *uc = sp_to_uc(PT_REGS_SP(&current->thread.regs));
+-      void *fp;
++      unsigned long sp = PT_REGS_SP(&current->thread.regs);
++      struct ucontext __user *uc = sp_to_uc(sp);
+       int sig_size = _NSIG_WORDS * sizeof(unsigned long);
  
--      if(data->stdin != -1) dup2(data->stdin, 0);
-+      if(data->stdin >= 0) dup2(data->stdin, 0);
-       dup2(data->stdout, 1);
--      if(data->close_me != -1) close(data->close_me);
-+      if(data->close_me >= 0) os_close_file(data->close_me);
+       spin_lock_irq(&current->sighand->siglock);
+@@ -266,7 +305,6 @@
+       sigdelsetmask(&current->blocked, ~_BLOCKABLE);
+       recalc_sigpending();
+       spin_unlock_irq(&current->sighand->siglock);
+-      fp = (void *) (((unsigned long) uc) + sizeof(struct ucontext));
+       copy_sc_from_user(&current->thread.regs, &uc->uc_mcontext,
+                         &signal_frame_si.common.arch);
+       return(PT_REGS_SYSCALL_RET(&current->thread.regs));
+Index: uml-2.6.7/arch/um/kernel/sysrq.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/sysrq.c      2004-07-16 19:36:24.697391888 +0300
++++ uml-2.6.7/arch/um/kernel/sysrq.c   2004-07-16 19:47:23.739202304 +0300
+@@ -44,6 +44,11 @@
  }
+ EXPORT_SYMBOL(dump_stack);
  
- static int slip_tramp(char **argv, int fd)
-@@ -77,8 +75,8 @@
-       int status, pid, fds[2], err, output_len;
-       err = os_pipe(fds, 1, 0);
--      if(err){
--              printk("slip_tramp : pipe failed, errno = %d\n", -err);
-+      if(err < 0){
-+              printk("slip_tramp : pipe failed, err = %d\n", -err);
-               return(err);
-       }
++void show_stack(struct task_struct *task, unsigned long *sp)
++{
++      show_trace(sp);
++}
++
+ /*
+  * Overrides for Emacs so that we follow Linus's tabbing style.
+  * Emacs will notice this stuff at the end of the file and automatically
+Index: uml-2.6.7/arch/um/include/sysdep-i386/syscalls.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/include/sysdep-i386/syscalls.h      2004-07-16 19:36:04.873405592 +0300
++++ uml-2.6.7/arch/um/include/sysdep-i386/syscalls.h   2004-07-16 19:47:23.708207016 +0300
+@@ -11,39 +11,34 @@
+ #define EXECUTE_SYSCALL(syscall, regs) \
+       ((long (*)(struct syscall_args)) (*sys_call_table[syscall]))(SYSCALL_ARGS(&regs->regs))
  
-@@ -96,7 +94,7 @@
-                       printk("slip_tramp : failed to allocate output "
-                              "buffer\n");
+-extern syscall_handler_t sys_modify_ldt;
+-extern syscall_handler_t old_mmap_i386;
+-extern syscall_handler_t old_select;
+-extern syscall_handler_t sys_ni_syscall;
+-
+ #define ARCH_SYSCALLS \
+-      [ __NR_mmap ] = old_mmap_i386, \
+-      [ __NR_select ] = old_select, \
+-      [ __NR_vm86old ] = sys_ni_syscall, \
+-        [ __NR_modify_ldt ] = sys_modify_ldt, \
+-      [ __NR_lchown32 ] = sys_lchown, \
+-      [ __NR_getuid32 ] = sys_getuid, \
+-      [ __NR_getgid32 ] = sys_getgid, \
+-      [ __NR_geteuid32 ] = sys_geteuid, \
+-      [ __NR_getegid32 ] = sys_getegid, \
+-      [ __NR_setreuid32 ] = sys_setreuid, \
+-      [ __NR_setregid32 ] = sys_setregid, \
+-      [ __NR_getgroups32 ] = sys_getgroups, \
+-      [ __NR_setgroups32 ] = sys_setgroups, \
+-      [ __NR_fchown32 ] = sys_fchown, \
+-      [ __NR_setresuid32 ] = sys_setresuid, \
+-      [ __NR_getresuid32 ] = sys_getresuid, \
+-      [ __NR_setresgid32 ] = sys_setresgid, \
+-      [ __NR_getresgid32 ] = sys_getresgid, \
+-      [ __NR_chown32 ] = sys_chown, \
+-      [ __NR_setuid32 ] = sys_setuid, \
+-      [ __NR_setgid32 ] = sys_setgid, \
+-      [ __NR_setfsuid32 ] = sys_setfsuid, \
+-      [ __NR_setfsgid32 ] = sys_setfsgid, \
+-      [ __NR_pivot_root ] = sys_pivot_root, \
+-      [ __NR_mincore ] = sys_mincore, \
+-      [ __NR_madvise ] = sys_madvise, \
+-        [ 222 ] = sys_ni_syscall, 
++      [ __NR_mmap ] = (syscall_handler_t *) old_mmap_i386, \
++      [ __NR_select ] = (syscall_handler_t *) old_select, \
++      [ __NR_vm86old ] = (syscall_handler_t *) sys_ni_syscall, \
++        [ __NR_modify_ldt ] = (syscall_handler_t *) sys_modify_ldt, \
++      [ __NR_lchown32 ] = (syscall_handler_t *) sys_lchown, \
++      [ __NR_getuid32 ] = (syscall_handler_t *) sys_getuid, \
++      [ __NR_getgid32 ] = (syscall_handler_t *) sys_getgid, \
++      [ __NR_geteuid32 ] = (syscall_handler_t *) sys_geteuid, \
++      [ __NR_getegid32 ] = (syscall_handler_t *) sys_getegid, \
++      [ __NR_setreuid32 ] = (syscall_handler_t *) sys_setreuid, \
++      [ __NR_setregid32 ] = (syscall_handler_t *) sys_setregid, \
++      [ __NR_getgroups32 ] = (syscall_handler_t *) sys_getgroups, \
++      [ __NR_setgroups32 ] = (syscall_handler_t *) sys_setgroups, \
++      [ __NR_fchown32 ] = (syscall_handler_t *) sys_fchown, \
++      [ __NR_setresuid32 ] = (syscall_handler_t *) sys_setresuid, \
++      [ __NR_getresuid32 ] = (syscall_handler_t *) sys_getresuid, \
++      [ __NR_setresgid32 ] = (syscall_handler_t *) sys_setresgid, \
++      [ __NR_getresgid32 ] = (syscall_handler_t *) sys_getresgid, \
++      [ __NR_chown32 ] = (syscall_handler_t *) sys_chown, \
++      [ __NR_setuid32 ] = (syscall_handler_t *) sys_setuid, \
++      [ __NR_setgid32 ] = (syscall_handler_t *) sys_setgid, \
++      [ __NR_setfsuid32 ] = (syscall_handler_t *) sys_setfsuid, \
++      [ __NR_setfsgid32 ] = (syscall_handler_t *) sys_setfsgid, \
++      [ __NR_pivot_root ] = (syscall_handler_t *) sys_pivot_root, \
++      [ __NR_mincore ] = (syscall_handler_t *) sys_mincore, \
++      [ __NR_madvise ] = (syscall_handler_t *) sys_madvise, \
++        [ 222 ] = (syscall_handler_t *) sys_ni_syscall, 
+         
+ /* 222 doesn't yet have a name in include/asm-i386/unistd.h */
  
--              close(fds[1]);
-+              os_close_file(fds[1]);
-               read_output(fds[0], output, output_len);
-               if(output != NULL){
-                       printk("%s", output);
-@@ -105,7 +103,7 @@
-               if(waitpid(pid, &status, 0) < 0) err = errno;
-               else if(!WIFEXITED(status) || (WEXITSTATUS(status) != 0)){
-                       printk("'%s' didn't exit with status 0\n", argv[0]);
--                      err = EINVAL;
-+                      err = -EINVAL;
-               }
-       }
-       return(err);
-@@ -118,15 +116,17 @@
-       char gate_buf[sizeof("nnn.nnn.nnn.nnn\0")];
-       char *argv[] = { "uml_net", version_buf, "slip", "up", gate_buf, 
-                        NULL };
--      int sfd, mfd, disc, sencap, err;
-+      int sfd, mfd, err;
+Index: uml-2.6.7/include/linux/time.h
+===================================================================
+--- uml-2.6.7.orig/include/linux/time.h        2004-07-16 19:36:57.136460400 +0300
++++ uml-2.6.7/include/linux/time.h     2004-07-16 19:47:23.805192272 +0300
+@@ -41,7 +41,7 @@
+  * Have the 32 bit jiffies value wrap 5 minutes after boot
+  * so jiffies wrap bugs show up earlier.
+  */
+-#define INITIAL_JIFFIES ((unsigned long)(unsigned int) (-300*HZ))
++#define INITIAL_JIFFIES ((unsigned long)(0))
  
--      if((mfd = get_pty()) < 0){
--              printk("umn : Failed to open pty\n");
--              return(-1);
-+      mfd = get_pty();
-+      if(mfd < 0){
-+              printk("umn : Failed to open pty, err = %d\n", -mfd);
-+              return(mfd);
-       }
--      if((sfd = os_open_file(ptsname(mfd), of_rdwr(OPENFLAGS()), 0)) < 0){
--              printk("Couldn't open tty for slip line\n");
--              return(-1);
-+      sfd = os_open_file(ptsname(mfd), of_rdwr(OPENFLAGS()), 0);
-+      if(sfd < 0){
-+              printk("Couldn't open tty for slip line, err = %d\n", -sfd);
-+              return(sfd);
-       }
-       if(set_up_tty(sfd)) return(-1);
-       pri->slave = sfd;
-@@ -138,28 +138,23 @@
+ /*
+  * Change timeval to jiffies, trying to avoid the
+Index: uml-2.6.7/include/asm-um/page.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/page.h       2004-07-16 19:36:51.390333944 +0300
++++ uml-2.6.7/include/asm-um/page.h    2004-07-16 19:47:23.792194248 +0300
+@@ -1,10 +1,14 @@
++/* 
++ *  Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
++ * Licensed under the GPL
++ */
++
+ #ifndef __UM_PAGE_H
+ #define __UM_PAGE_H
  
              err = slip_tramp(argv, sfd);
struct page;
  
--              if(err != 0){
--                      printk("slip_tramp failed - errno = %d\n", err);
--                      return(-err);
-+              if(err < 0){
-+                      printk("slip_tramp failed - err = %d\n", -err);
-+                      return(err);
-               }
--              if(ioctl(pri->slave, SIOCGIFNAME, pri->name) < 0){
--                      printk("SIOCGIFNAME failed, errno = %d\n", errno);
--                      return(-errno);
-+              err = os_get_ifname(pri->slave, pri->name);
-+              if(err < 0){
-+                      printk("get_ifname failed, err = %d\n", -err);
-+                      return(err);
-               }
-               iter_addresses(pri->dev, open_addr, pri->name);
-       }
-       else {
--              disc = N_SLIP;
--              if(ioctl(sfd, TIOCSETD, &disc) < 0){
--                      printk("Failed to set slip line discipline - "
--                             "errno = %d\n", errno);
--                      return(-errno);
--              }
--              sencap = 0;
--              if(ioctl(sfd, SIOCSIFENCAP, &sencap) < 0){
--                      printk("Failed to set slip encapsulation - "
--                             "errno = %d\n", errno);
--                      return(-errno);
-+              err = os_set_slip(sfd);
-+              if(err < 0){
-+                      printk("Failed to set slip discipline encapsulation - "
-+                             "err = %d\n", -err);
-+                      return(err);
-               }
-       }
-       return(mfd);
-@@ -181,9 +176,9 @@
-       err = slip_tramp(argv, -1);
+ #include "asm/arch/page.h"
+-#include "asm/bug.h"
  
-       if(err != 0)
--              printk("slip_tramp failed - errno = %d\n", err);
--      close(fd);
--      close(pri->slave);
-+              printk("slip_tramp failed - errno = %d\n", -err);
-+      os_close_file(fd);
-+      os_close_file(pri->slave);
-       pri->slave = -1;
- }
+ #undef __pa
+ #undef __va
+@@ -24,25 +28,36 @@
  
-@@ -243,7 +238,7 @@
- {
-       struct slip_data *pri = data;
+ #define __va_space (8*1024*1024)
  
--      if(pri->slave == -1) return;
-+      if(pri->slave < 0) return;
-       open_addr(addr, netmask, pri->name);
- }
+-extern unsigned long region_pa(void *virt);
+-extern void *region_va(unsigned long phys);
+-
+-#define __pa(virt) region_pa((void *) (virt))
+-#define __va(phys) region_va((unsigned long) (phys))
+-
+-extern unsigned long page_to_pfn(struct page *page);
+-extern struct page *pfn_to_page(unsigned long pfn);
++extern unsigned long to_phys(void *virt);
++extern void *to_virt(unsigned long phys);
  
-@@ -252,7 +247,7 @@
- {
-       struct slip_data *pri = data;
+-extern struct page *phys_to_page(unsigned long phys);
++#define __pa(virt) to_phys((void *) virt)
++#define __va(phys) to_virt((unsigned long) phys)
  
--      if(pri->slave == -1) return;
-+      if(pri->slave < 0) return;
-       close_addr(addr, netmask, pri->name);
- }
+-#define virt_to_page(v) (phys_to_page(__pa(v)))
++#define page_to_pfn(page) ((page) - mem_map)
++#define pfn_to_page(pfn) (mem_map + (pfn))
  
-diff -Naur a/arch/um/drivers/slirp_user.c b/arch/um/drivers/slirp_user.c
---- a/arch/um/drivers/slirp_user.c     2004-03-10 08:21:59.000000000 -0500
-+++ b/arch/um/drivers/slirp_user.c     2004-03-10 08:41:08.000000000 -0500
-@@ -4,7 +4,6 @@
- #include <stddef.h>
- #include <sched.h>
- #include <string.h>
--#include <sys/fcntl.h>
- #include <sys/errno.h>
- #include <sys/wait.h>
- #include <sys/signal.h>
-@@ -48,15 +47,15 @@
+-extern struct page *page_mem_map(struct page *page);
++#define phys_to_pfn(p) ((p) >> PAGE_SHIFT)
++#define pfn_to_phys(pfn) ((pfn) << PAGE_SHIFT)
  
-       return(pid);
- }
-- 
+-#define pfn_valid(pfn) (page_mem_map(pfn_to_page(pfn)) != NULL)
+-#define virt_addr_valid(v) pfn_valid(__pa(v) >> PAGE_SHIFT)
++#define pfn_valid(pfn) ((pfn) < max_mapnr)
++#define virt_addr_valid(v) pfn_valid(phys_to_pfn(__pa(v)))
+ extern struct page *arch_validate(struct page *page, int mask, int order);
+ #define HAVE_ARCH_VALIDATE
++extern void arch_free_page(struct page *page, int order);
++#define HAVE_ARCH_FREE_PAGE
 +
-+/* XXX This is just a trivial wrapper around os_pipe */ 
- static int slirp_datachan(int *mfd, int *sfd)
- {
-       int fds[2], err;
+ #endif
++
++/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
+Index: uml-2.6.7/arch/um/include/signal_user.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/include/signal_user.h       2004-07-16 19:35:55.511828768 +0300
++++ uml-2.6.7/arch/um/include/signal_user.h    2004-07-16 19:47:23.705207472 +0300
+@@ -11,6 +11,8 @@
+ extern int change_sig(int signal, int on);
+ extern void set_sigstack(void *stack, int size);
+ extern void set_handler(int sig, void (*handler)(int), int flags, ...);
++extern int set_signals(int enable);
++extern int get_signals(void);
  
-       err = os_pipe(fds, 1, 1);
--      if(err){
--              printk("slirp_datachan: Failed to open pipe, errno = %d\n",
--                     -err);
-+      if(err < 0){
-+              printk("slirp_datachan: Failed to open pipe, err = %d\n", -err);
-               return(err);
-       }
+ #endif
  
-@@ -77,7 +76,7 @@
-       pid = slirp_tramp(pri->argw.argv, sfd);
+Index: uml-2.6.7/include/asm-um/local.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/local.h      2004-07-16 19:47:23.633218416 +0300
++++ uml-2.6.7/include/asm-um/local.h   2004-07-16 19:47:23.791194400 +0300
+@@ -0,0 +1,6 @@
++#ifndef __UM_LOCAL_H
++#define __UM_LOCAL_H
++
++#include "asm/arch/local.h"
++
++#endif
+Index: uml-2.6.7/include/asm-um/thread_info.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/thread_info.h        2004-07-16 19:36:22.451733280 +0300
++++ uml-2.6.7/include/asm-um/thread_info.h     2004-07-16 19:47:23.803192576 +0300
+@@ -9,6 +9,7 @@
+ #ifndef __ASSEMBLY__
  
-       if(pid < 0){
--              printk("slirp_tramp failed - errno = %d\n", pid);
-+              printk("slirp_tramp failed - errno = %d\n", -pid);
-               os_close_file(sfd);     
-               os_close_file(mfd);     
-               return(pid);
-@@ -97,8 +96,8 @@
-       struct slirp_data *pri = data;
-       int status,err;
+ #include <asm/processor.h>
++#include <asm/types.h>
  
--      close(fd);
--      close(pri->slave);
-+      os_close_file(fd);
-+      os_close_file(pri->slave);
+ struct thread_info {
+       struct task_struct      *task;          /* main task structure */
+@@ -43,15 +44,18 @@
+ static inline struct thread_info *current_thread_info(void)
+ {
+       struct thread_info *ti;
+-      __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~16383UL));
++      unsigned long mask = PAGE_SIZE * 
++              (1 << CONFIG_KERNEL_STACK_ORDER) - 1;
++      __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~mask));
+       return ti;
+ }
  
-       pri->slave = -1;
+ /* thread information allocation */
+-#define THREAD_SIZE (4*PAGE_SIZE)
+-#define alloc_thread_info(tsk) ((struct thread_info *) \
+-      __get_free_pages(GFP_KERNEL,2))
+-#define free_thread_info(ti) free_pages((unsigned long) (ti), 2)
++#define THREAD_SIZE ((1 << CONFIG_KERNEL_STACK_ORDER) * PAGE_SIZE)
++#define alloc_thread_info(tsk) \
++      ((struct thread_info *) kmalloc(THREAD_SIZE, GFP_KERNEL))
++#define free_thread_info(ti) kfree(ti)
++      
+ #define get_thread_info(ti) get_task_struct((ti)->task)
+ #define put_thread_info(ti) put_task_struct((ti)->task)
  
-diff -Naur a/arch/um/drivers/ssl.c b/arch/um/drivers/ssl.c
---- a/arch/um/drivers/ssl.c    2004-03-10 08:21:27.000000000 -0500
-+++ b/arch/um/drivers/ssl.c    2004-03-10 08:39:05.000000000 -0500
-@@ -10,6 +10,7 @@
- #include "linux/major.h"
- #include "linux/mm.h"
- #include "linux/init.h"
-+#include "linux/console.h"
- #include "asm/termbits.h"
- #include "asm/irq.h"
- #include "line.h"
-@@ -53,8 +54,9 @@
+@@ -65,11 +69,13 @@
+ #define TIF_POLLING_NRFLAG      3       /* true if poll_idle() is polling 
+                                        * TIF_NEED_RESCHED 
+                                        */
++#define TIF_RESTART_BLOCK     4
  
- static struct line_driver driver = {
-       .name                   = "UML serial line",
--      .devfs_name             = "tts/%d",
--      .major                  = TTYAUX_MAJOR,
-+      .device_name            = "ttS",
-+      .devfs_name             = "tts/",
-+      .major                  = TTY_MAJOR,
-       .minor_start            = 64,
-       .type                   = TTY_DRIVER_TYPE_SERIAL,
-       .subtype                = 0,
-@@ -149,6 +151,9 @@
-       case TCSETSW:
-       case TCGETA:
-       case TIOCMGET:
-+      case TCSBRK:
-+      case TCSBRKP:
-+      case TIOCMSET:
-               ret = -ENOIOCTLCMD;
-               break;
-       default:
-@@ -212,6 +217,37 @@
-  */
- static int ssl_init_done = 0;
+ #define _TIF_SYSCALL_TRACE    (1 << TIF_SYSCALL_TRACE)
+ #define _TIF_SIGPENDING               (1 << TIF_SIGPENDING)
+ #define _TIF_NEED_RESCHED     (1 << TIF_NEED_RESCHED)
+ #define _TIF_POLLING_NRFLAG     (1 << TIF_POLLING_NRFLAG)
++#define _TIF_RESTART_BLOCK    (1 << TIF_RESTART_BLOCK)
  
-+static void ssl_console_write(struct console *c, const char *string, 
-+                            unsigned len)
+ #endif
+Index: uml-2.6.7/include/asm-um/dma-mapping.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/dma-mapping.h        2004-07-16 19:36:02.148819792 +0300
++++ uml-2.6.7/include/asm-um/dma-mapping.h     2004-07-16 19:47:23.789194704 +0300
+@@ -1 +1,119 @@
+-#include <asm-generic/dma-mapping.h>
++#ifndef _ASM_DMA_MAPPING_H
++#define _ASM_DMA_MAPPING_H
++
++static inline int
++dma_supported(struct device *dev, u64 mask)
 +{
-+      struct line *line = &serial_lines[c->index];
-+      if(ssl_init_done)
-+              down(&line->sem);
-+      console_write_chan(&line->chan_list, string, len);
-+      if(ssl_init_done)
-+              up(&line->sem);
++      BUG();
++      return(0);
 +}
 +
-+static struct tty_driver *ssl_console_device(struct console *c, int *index)
++static inline int
++dma_set_mask(struct device *dev, u64 dma_mask)
 +{
-+      *index = c->index;
-+      return ssl_driver;
++      BUG();
++      return(0);
 +}
 +
-+static int ssl_console_setup(struct console *co, char *options)
++static inline void *
++dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
++                 int flag)
++{
++      BUG();
++      return((void *) 0);
++}
++
++static inline void
++dma_free_coherent(struct device *dev, size_t size, void *cpu_addr,
++                dma_addr_t dma_handle)
++{
++      BUG();
++}
++
++static inline dma_addr_t
++dma_map_single(struct device *dev, void *cpu_addr, size_t size,
++             enum dma_data_direction direction)
 +{
++      BUG();
 +      return(0);
 +}
 +
-+static struct console ssl_cons = {
-+      name:           "ttyS",
-+      write:          ssl_console_write,
-+      device:         ssl_console_device,
-+      setup:          ssl_console_setup,
-+      flags:          CON_PRINTBUFFER,
-+      index:          -1,
-+};
++static inline void
++dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
++               enum dma_data_direction direction)
++{
++      BUG();
++}
 +
- int ssl_init(void)
++static inline dma_addr_t
++dma_map_page(struct device *dev, struct page *page,
++           unsigned long offset, size_t size,
++           enum dma_data_direction direction)
++{
++      BUG();
++      return(0);
++}
++
++static inline void
++dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size,
++             enum dma_data_direction direction)
++{
++      BUG();
++}
++
++static inline int
++dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
++         enum dma_data_direction direction)
++{
++      BUG();
++      return(0);
++}
++
++static inline void
++dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries,
++           enum dma_data_direction direction)
++{
++      BUG();
++}
++
++static inline void
++dma_sync_single(struct device *dev, dma_addr_t dma_handle, size_t size,
++              enum dma_data_direction direction)
++{
++      BUG();
++}
++
++static inline void
++dma_sync_sg(struct device *dev, struct scatterlist *sg, int nelems,
++          enum dma_data_direction direction)
++{
++      BUG();
++}
++
++#define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f)
++#define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h)
++#define dma_is_consistent(d) (1)
++
++static inline int
++dma_get_cache_alignment(void)
++{
++      BUG();
++      return(0);
++}
++
++static inline void
++dma_sync_single_range(struct device *dev, dma_addr_t dma_handle,
++                    unsigned long offset, size_t size,
++                    enum dma_data_direction direction)
++{
++      BUG();
++}
++
++static inline void
++dma_cache_sync(void *vaddr, size_t size,
++             enum dma_data_direction direction)
++{
++      BUG();
++}
++
++#endif
+Index: uml-2.6.7/arch/um/kernel/skas/syscall_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/skas/syscall_user.c  2004-07-16 19:37:35.225669960 +0300
++++ uml-2.6.7/arch/um/kernel/skas/syscall_user.c       2004-07-16 19:47:23.732203368 +0300
+@@ -22,7 +22,7 @@
+       index = record_syscall_start(UPT_SYSCALL_NR(regs));
+-      syscall_trace();
++      syscall_trace(regs, 1);
+       result = execute_syscall(regs);
+       REGS_SET_SYSCALL_RETURN(regs->skas.regs, result);
+@@ -30,7 +30,7 @@
+          (result == -ERESTARTNOINTR))
+               do_signal(result);
+-      syscall_trace();
++      syscall_trace(regs, 0);
+       record_syscall_end(index, result);
+ }
+Index: uml-2.6.7/arch/um/kernel/process.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/process.c    2004-07-16 19:37:22.968533328 +0300
++++ uml-2.6.7/arch/um/kernel/process.c 2004-07-16 19:47:24.795041792 +0300
+@@ -9,18 +9,17 @@
+ #include <sched.h>
+ #include <errno.h>
+ #include <stdarg.h>
+-#include <fcntl.h>
+ #include <stdlib.h>
+ #include <setjmp.h>
+ #include <sys/time.h>
+ #include <sys/ptrace.h>
+-#include <sys/ioctl.h>
+ #include <sys/wait.h>
+ #include <sys/mman.h>
+ #include <asm/ptrace.h>
+ #include <asm/sigcontext.h>
+ #include <asm/unistd.h>
+ #include <asm/page.h>
++#include <asm/user.h>
+ #include "user_util.h"
+ #include "kern_util.h"
+ #include "user.h"
+@@ -58,7 +57,11 @@
  {
-       char *new_title;
-@@ -227,17 +263,18 @@
-       new_title = add_xterm_umid(opts.xterm_title);
-       if(new_title != NULL) opts.xterm_title = new_title;
+       int flags = altstack ? SA_ONSTACK : 0;
  
-+      register_console(&ssl_cons);
-       ssl_init_done = 1;
-       return(0);
- }
+-      set_handler(SIGSEGV, (__sighandler_t) sig_handler, flags,
++      /* NODEFER is set here because SEGV isn't turned back on when the 
++       * handler is ready to receive signals.  This causes any segfault
++       * during a copy_user to kill the process because the fault is blocked.
++       */
++      set_handler(SIGSEGV, (__sighandler_t) sig_handler, flags | SA_NODEFER,
+                   SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, -1);
+       set_handler(SIGTRAP, (__sighandler_t) sig_handler, flags, 
+                   SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, -1);
+@@ -72,7 +75,6 @@
+                   SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, -1);
+       set_handler(SIGUSR2, (__sighandler_t) sig_handler, 
+                   SA_NOMASK | flags, -1);
+-      (void) CHOOSE_MODE(signal(SIGCHLD, SIG_IGN), (void *) 0);
+       signal(SIGHUP, SIG_IGN);
  
--__initcall(ssl_init);
-+late_initcall(ssl_init);
+       init_irq_signals(altstack);
+@@ -123,11 +125,12 @@
+       /* Start the process and wait for it to kill itself */
+       new_pid = clone(outer_tramp, (void *) sp, clone_flags, &arg);
+       if(new_pid < 0) return(-errno);
+-      while((err = waitpid(new_pid, &status, 0) < 0) && (errno == EINTR)) ;
++      CATCH_EINTR(err = waitpid(new_pid, &status, 0));
+       if(err < 0) panic("Waiting for outer trampoline failed - errno = %d", 
+                         errno);
+       if(!WIFSIGNALED(status) || (WTERMSIG(status) != SIGKILL))
+-              panic("outer trampoline didn't exit with SIGKILL");
++              panic("outer trampoline didn't exit with SIGKILL, "
++                    "status = %d", status);
  
- static int ssl_chan_setup(char *str)
- {
--      line_setup(serial_lines, sizeof(serial_lines)/sizeof(serial_lines[0]),
--                 str, 1);
--      return(1);
-+      return(line_setup(serial_lines, 
-+                        sizeof(serial_lines)/sizeof(serial_lines[0]), 
-+                        str, 1));
+       return(arg.pid);
  }
+@@ -138,7 +141,7 @@
  
- __setup("ssl", ssl_chan_setup);
-diff -Naur a/arch/um/drivers/stdio_console.c b/arch/um/drivers/stdio_console.c
---- a/arch/um/drivers/stdio_console.c  2004-03-10 08:20:33.000000000 -0500
-+++ b/arch/um/drivers/stdio_console.c  2004-03-10 08:36:14.000000000 -0500
-@@ -83,7 +83,8 @@
+       os_stop_process(os_getpid());
  
- static struct line_driver driver = {
-       .name                   = "UML console",
--      .devfs_name             = "vc/%d",
-+      .device_name            = "tty",
-+      .devfs_name             = "vc/",
-       .major                  = TTY_MAJOR,
-       .minor_start            = 0,
-       .type                   = TTY_DRIVER_TYPE_CONSOLE,
-@@ -159,6 +160,15 @@
+-      if(read(fd, &c, sizeof(c)) != sizeof(c))
++      if(os_read_file(fd, &c, sizeof(c)) != sizeof(c))
+               panic("read failed in suspend_new_thread");
+ }
  
- static int con_init_done = 0;
+@@ -168,7 +171,7 @@
+       pid = clone(ptrace_child, (void *) sp, SIGCHLD, NULL);
+       if(pid < 0)
+               panic("check_ptrace : clone failed, errno = %d", errno);
+-      n = waitpid(pid, &status, WUNTRACED);
++      CATCH_EINTR(n = waitpid(pid, &status, WUNTRACED));
+       if(n < 0)
+               panic("check_ptrace : wait failed, errno = %d", errno);
+       if(!WIFSTOPPED(status) || (WSTOPSIG(status) != SIGSTOP))
+@@ -185,7 +188,7 @@
+       if(ptrace(PTRACE_CONT, pid, 0, 0) < 0)
+               panic("check_ptrace : ptrace failed, errno = %d", errno);
+-      n = waitpid(pid, &status, 0);
++      CATCH_EINTR(n = waitpid(pid, &status, 0));
+       if(!WIFEXITED(status) || (WEXITSTATUS(status) != exitcode))
+               panic("check_ptrace : child exited with status 0x%x", status);
+@@ -193,6 +196,22 @@
+               panic("check_ptrace : munmap failed, errno = %d", errno);
+ }
  
-+static struct tty_operations console_ops = {
-+      .open                   = con_open,
-+      .close                  = con_close,
-+      .write                  = con_write,
-+      .chars_in_buffer        = chars_in_buffer,
-+      .set_termios            = set_termios,
-+      .write_room             = line_write_room,
-+};
++static int force_sysemu_disabled = 0;
 +
- int stdio_init(void)
++static int __init nosysemu_cmd_param(char *str, int* add)
++{
++      force_sysemu_disabled = 1;
++      return 0;
++}
++
++__uml_setup("nosysemu", nosysemu_cmd_param,
++              "nosysemu\n"
++              "    Turns off syscall emulation patch for ptrace (SYSEMU) on.\n"
++              "    SYSEMU is a performance-patch introduced by Laurent Vivier. It changes\n"
++              "    behaviour of ptrace() and helps reducing host context switch rate.\n"
++              "    To make it working, you need a kernel patch for your host, too.\n"
++              "    See http://perso.wanadoo.fr/laurent.vivier/UML/ for further information.\n");
++
+ void __init check_ptrace(void)
  {
-       char *new_title;
-@@ -166,7 +176,8 @@
+       void *stack;
+@@ -205,7 +224,7 @@
+               if(ptrace(PTRACE_SYSCALL, pid, 0, 0) < 0)
+                       panic("check_ptrace : ptrace failed, errno = %d", 
+                             errno);
+-              n = waitpid(pid, &status, WUNTRACED);
++              CATCH_EINTR(n = waitpid(pid, &status, WUNTRACED));
+               if(n < 0)
+                       panic("check_ptrace : wait failed, errno = %d", errno);
+               if(!WIFSTOPPED(status) || (WSTOPSIG(status) != SIGTRAP))
+@@ -225,6 +244,45 @@
+       }
+       stop_ptraced_child(pid, stack, 0);
+       printk("OK\n");
++
++#ifdef UML_CONFIG_MODE_SKAS
++      printk("Checking syscall emulation patch for ptrace...");
++      set_using_sysemu(0);
++      pid = start_ptraced_child(&stack);
++      if(ptrace(PTRACE_SYSEMU, pid, 0, 0) >= 0) {
++              struct user_regs_struct regs;
++
++              CATCH_EINTR(n = waitpid(pid, &status, WUNTRACED));
++              if (n < 0)
++                      panic("check_ptrace : wait failed, errno = %d", errno);
++              if(!WIFSTOPPED(status) || (WSTOPSIG(status) != SIGTRAP))
++                      panic("check_ptrace : expected SIGTRAP, "
++                            "got status = %d", status);
++
++              if (ptrace(PTRACE_GETREGS, pid, 0, &regs) < 0)
++                      panic("check_ptrace : failed to read child "
++                            "registers, errno = %d", errno);
++              regs.orig_eax = pid;
++              if (ptrace(PTRACE_SETREGS, pid, 0, &regs) < 0)
++                      panic("check_ptrace : failed to modify child "
++                            "registers, errno = %d", errno);
++
++              stop_ptraced_child(pid, stack, 0);
++
++              if (!force_sysemu_disabled) {
++                      printk("found\n");
++                      set_using_sysemu(1);
++              } else {
++                      printk("found but disabled\n");
++              }
++      }
++      else
++      {
++              printk("missing\n");
++              stop_ptraced_child(pid, stack, 1);
++      }
++#endif
++
+ }
+ int run_kernel_thread(int (*fn)(void *), void *arg, void **jmp_ptr)
+@@ -233,7 +289,7 @@
+       int n;
+       *jmp_ptr = &buf;
+-      n = setjmp(buf);
++      n = sigsetjmp(buf, 1);
+       if(n != 0)
+               return(n);
+       (*fn)(arg);
+@@ -273,7 +329,7 @@
+       stop_ptraced_child(pid, stack, 1);
+       printf("Checking for /proc/mm...");
+-      if(access("/proc/mm", W_OK)){
++      if(os_access("/proc/mm", OS_ACC_W_OK) < 0){
+               printf("not found\n");
+               ret = 0;
+       }
+Index: uml-2.6.7/arch/um/drivers/stdio_console.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/stdio_console.c     2004-07-16 19:36:13.845041696 +0300
++++ uml-2.6.7/arch/um/drivers/stdio_console.c  2004-07-16 19:47:23.694209144 +0300
+@@ -83,7 +83,8 @@
+ static struct line_driver driver = {
+       .name                   = "UML console",
+-      .devfs_name             = "vc/%d",
++      .device_name            = "tty",
++      .devfs_name             = "vc/",
+       .major                  = TTY_MAJOR,
+       .minor_start            = 0,
+       .type                   = TTY_DRIVER_TYPE_CONSOLE,
+@@ -159,6 +160,15 @@
+ static int con_init_done = 0;
++static struct tty_operations console_ops = {
++      .open                   = con_open,
++      .close                  = con_close,
++      .write                  = con_write,
++      .chars_in_buffer        = chars_in_buffer,
++      .set_termios            = set_termios,
++      .write_room             = line_write_room,
++};
++
+ int stdio_init(void)
+ {
+       char *new_title;
+@@ -166,7 +176,8 @@
        printk(KERN_INFO "Initializing stdio console driver\n");
  
        console_driver = line_register_devfs(&console_lines, &driver,
@@ -3979,2993 +3824,2209 @@ diff -Naur a/arch/um/drivers/stdio_console.c b/arch/um/drivers/stdio_console.c
  }
  
  __setup("con", console_chan_setup);
-diff -Naur a/arch/um/drivers/tty.c b/arch/um/drivers/tty.c
---- a/arch/um/drivers/tty.c    2004-03-10 08:20:58.000000000 -0500
-+++ b/arch/um/drivers/tty.c    2004-03-10 08:37:26.000000000 -0500
-@@ -5,7 +5,6 @@
+Index: uml-2.6.7/arch/um/os-Linux/Makefile
+===================================================================
+--- uml-2.6.7.orig/arch/um/os-Linux/Makefile   2004-07-16 19:36:54.369880984 +0300
++++ uml-2.6.7/arch/um/os-Linux/Makefile        2004-07-16 19:47:23.768197896 +0300
+@@ -3,13 +3,9 @@
+ # Licensed under the GPL
+ #
  
- #include <stdio.h>
- #include <termios.h>
--#include <fcntl.h>
- #include <errno.h>
+-obj-y = file.o process.o tty.o drivers/
++obj-y = file.o process.o tty.o user_syms.o drivers/
+ USER_OBJS := $(foreach file,file.o process.o tty.o,$(obj)/$(file))
+ $(USER_OBJS) : %.o: %.c
+       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
+-
+-clean :
+-
+-archmrproper:
+Index: uml-2.6.7/arch/um/kernel/skas/syscall_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/skas/syscall_kern.c  2004-07-16 19:36:57.006480160 +0300
++++ uml-2.6.7/arch/um/kernel/skas/syscall_kern.c       2004-07-16 19:47:23.732203368 +0300
+@@ -1,5 +1,5 @@
+ /* 
+- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
++ * Copyright (C) 2002 - 2003 Jeff Dike (jdike@addtoit.com)
+  * Licensed under the GPL
+  */
+Index: uml-2.6.7/arch/um/drivers/pty.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/pty.c       2004-07-16 19:37:26.082060000 +0300
++++ uml-2.6.7/arch/um/drivers/pty.c    2004-07-16 19:47:23.692209448 +0300
+@@ -7,12 +7,12 @@
  #include <unistd.h>
+ #include <string.h>
+ #include <errno.h>
+-#include <fcntl.h>
+ #include <termios.h>
  #include "chan_user.h"
-@@ -30,7 +29,8 @@
-       }
-       str++;
+ #include "user.h"
+ #include "user_util.h"
+ #include "kern_util.h"
++#include "os.h"
  
--      if((data = um_kmalloc(sizeof(*data))) == NULL) 
-+      data = um_kmalloc(sizeof(*data)); 
-+      if(data == NULL) 
-               return(NULL);
-       *data = ((struct tty_chan) { .dev       = str,
-                                    .raw       = opts->raw });
-diff -Naur a/arch/um/drivers/ubd_kern.c b/arch/um/drivers/ubd_kern.c
---- a/arch/um/drivers/ubd_kern.c       2004-03-10 08:21:25.000000000 -0500
-+++ b/arch/um/drivers/ubd_kern.c       2004-03-10 08:38:51.000000000 -0500
-@@ -8,6 +8,13 @@
-  * old style ubd by setting UBD_SHIFT to 0
-  * 2002-09-27...2002-10-18 massive tinkering for 2.5
-  * partitions have changed in 2.5
-+ * 2003-01-29 more tinkering for 2.5.59-1
-+ * This should now address the sysfs problems and has
-+ * the symlink for devfs to allow for booting with
-+ * the common /dev/ubd/discX/... names rather than
-+ * only /dev/ubdN/discN this version also has lots of
-+ * clean ups preparing for ubd-many.
-+ * James McMechan
-  */
+ struct pty_chan {
+       void (*announce)(char *dev_name, int dev);
+@@ -26,7 +26,8 @@
+ {
+       struct pty_chan *data;
  
- #define MAJOR_NR UBD_MAJOR
-@@ -40,9 +47,12 @@
- #include "mconsole_kern.h"
- #include "init.h"
- #include "irq_user.h"
-+#include "irq_kern.h"
- #include "ubd_user.h"
- #include "2_5compat.h"
- #include "os.h"
-+#include "mem.h"
-+#include "mem_kern.h"
+-      if((data = um_kmalloc(sizeof(*data))) == NULL) return(NULL);
++      data = um_kmalloc(sizeof(*data));
++      if(data == NULL) return(NULL);
+       *data = ((struct pty_chan) { .announce          = opts->announce, 
+                                    .dev               = device,
+                                    .raw               = opts->raw });
+@@ -39,7 +40,8 @@
+       char *dev;
+       int fd;
  
- static spinlock_t ubd_io_lock = SPIN_LOCK_UNLOCKED;
- static spinlock_t ubd_lock = SPIN_LOCK_UNLOCKED;
-@@ -56,6 +66,10 @@
+-      if((fd = get_pty()) < 0){
++      fd = get_pty();
++      if(fd < 0){
+               printk("open_pts : Failed to open pts\n");
+               return(-errno);
+       }
+@@ -57,29 +59,27 @@
  
- #define MAX_DEV (8)
+ int getmaster(char *line)
+ {
+-      struct stat stb;
+       char *pty, *bank, *cp;
+-      int master;
++      int master, err;
  
-+/* Changed in early boot */
-+static int ubd_do_mmap = 0;
-+#define UBD_MMAP_BLOCK_SIZE PAGE_SIZE
+       pty = &line[strlen("/dev/ptyp")];
+       for (bank = "pqrs"; *bank; bank++) {
+               line[strlen("/dev/pty")] = *bank;
+               *pty = '0';
+-              if (stat(line, &stb) < 0)
++              if (os_stat_file(line, NULL) < 0)
+                       break;
+               for (cp = "0123456789abcdef"; *cp; cp++) {
+                       *pty = *cp;
+-                      master = open(line, O_RDWR);
++                      master = os_open_file(line, of_rdwr(OPENFLAGS()), 0);
+                       if (master >= 0) {
+                               char *tp = &line[strlen("/dev/")];
+-                              int ok;
+                               /* verify slave side is usable */
+                               *tp = 't';
+-                              ok = access(line, R_OK|W_OK) == 0;
++                              err = os_access(line, OS_ACC_RW_OK);
+                               *tp = 'p';
+-                              if (ok) return(master);
+-                              (void) close(master);
++                              if(err == 0) return(master);
++                              (void) os_close_file(master);
+                       }
+               }
+       }
+Index: uml-2.6.7/arch/um/util/mk_constants_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/util/mk_constants_kern.c    2004-07-16 19:35:59.020295400 +0300
++++ uml-2.6.7/arch/um/util/mk_constants_kern.c 2004-07-16 19:47:23.781195920 +0300
+@@ -1,5 +1,6 @@
+ #include "linux/kernel.h"
+ #include "linux/stringify.h"
++#include "linux/time.h"
+ #include "asm/page.h"
+ extern void print_head(void);
+@@ -11,6 +12,7 @@
+ {
+   print_head();
+   print_constant_int("UM_KERN_PAGE_SIZE", PAGE_SIZE);
 +
- static struct block_device_operations ubd_blops = {
-         .owner                = THIS_MODULE,
-         .open         = ubd_open,
-@@ -67,7 +81,7 @@
- static request_queue_t *ubd_queue;
+   print_constant_str("UM_KERN_EMERG", KERN_EMERG);
+   print_constant_str("UM_KERN_ALERT", KERN_ALERT);
+   print_constant_str("UM_KERN_CRIT", KERN_CRIT);
+@@ -19,6 +21,8 @@
+   print_constant_str("UM_KERN_NOTICE", KERN_NOTICE);
+   print_constant_str("UM_KERN_INFO", KERN_INFO);
+   print_constant_str("UM_KERN_DEBUG", KERN_DEBUG);
++
++  print_constant_int("UM_NSEC_PER_SEC", NSEC_PER_SEC);
+   print_tail();
+   return(0);
+ }
+Index: uml-2.6.7/arch/um/drivers/port_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/port_user.c 2004-07-16 19:36:57.124462224 +0300
++++ uml-2.6.7/arch/um/drivers/port_user.c      2004-07-16 19:47:23.691209600 +0300
+@@ -47,10 +47,12 @@
+               return(NULL);
+       }
  
- /* Protected by ubd_lock */
--static int fake_major = 0;
-+static int fake_major = MAJOR_NR;
+-      if((kern_data = port_data(port)) == NULL) 
++      kern_data = port_data(port);
++      if(kern_data == NULL) 
+               return(NULL);
  
- static struct gendisk *ubd_gendisk[MAX_DEV];
- static struct gendisk *fake_gendisk[MAX_DEV];
-@@ -96,13 +110,19 @@
+-      if((data = um_kmalloc(sizeof(*data))) == NULL) 
++      data = um_kmalloc(sizeof(*data));
++      if(data == NULL) 
+               goto err;
  
- struct ubd {
-       char *file;
--      int is_dir;
-       int count;
-       int fd;
-       __u64 size;
-       struct openflags boot_openflags;
-       struct openflags openflags;
-+      int no_cow;
-       struct cow cow;
-+
-+      int map_writes;
-+      int map_reads;
-+      int nomap_writes;
-+      int nomap_reads;
-+      int write_maps;
- };
+       *data = ((struct port_chan) { .raw              = opts->raw,
+@@ -90,7 +92,7 @@
+       struct port_chan *data = d;
  
- #define DEFAULT_COW { \
-@@ -115,21 +135,28 @@
+       port_remove_dev(data->kernel_data);
+-      close(fd);
++      os_close_file(fd);
+ }
  
- #define DEFAULT_UBD { \
-       .file =                 NULL, \
--      .is_dir =               0, \
-       .count =                0, \
-       .fd =                   -1, \
-       .size =                 -1, \
-       .boot_openflags =       OPEN_FLAGS, \
-       .openflags =            OPEN_FLAGS, \
-+        .no_cow =               0, \
-         .cow =                        DEFAULT_COW, \
-+      .map_writes             = 0, \
-+      .map_reads              = 0, \
-+      .nomap_writes           = 0, \
-+      .nomap_reads            = 0, \
-+      .write_maps             = 0, \
+ int port_console_write(int fd, const char *buf, int n, void *d)
+@@ -130,11 +132,15 @@
+               goto out;
+       }
+   
+-      if((listen(fd, 1) < 0) || (os_set_fd_block(fd, 0))){
++      if(listen(fd, 1) < 0){
+               err = -errno;
+               goto out;
+       }
++      err = os_set_fd_block(fd, 0);
++      if(err < 0)
++              goto out;
++
+       return(fd);
+  out:
+       os_close_file(fd);
+@@ -153,10 +159,10 @@
+       dup2(data->sock_fd, 0);
+       dup2(data->sock_fd, 1);
+       dup2(data->sock_fd, 2);
+-      close(data->sock_fd);
++      os_close_file(data->sock_fd);
+       dup2(data->pipe_fd, 3);
+       os_shutdown_socket(3, 1, 0);
+-      close(data->pipe_fd);
++      os_close_file(data->pipe_fd);
  }
  
- struct ubd ubd_dev[MAX_DEV] = { [ 0 ... MAX_DEV - 1 ] = DEFAULT_UBD };
+ int port_connection(int fd, int *socket, int *pid_out)
+@@ -166,11 +172,12 @@
+                        "/usr/lib/uml/port-helper", NULL };
+       struct port_pre_exec_data data;
  
- static int ubd0_init(void)
- {
--      if(ubd_dev[0].file == NULL)
--              ubd_dev[0].file = "root_fs";
-+      struct ubd *dev = &ubd_dev[0];
-+
-+      if(dev->file == NULL)
-+              dev->file = "root_fs";
-       return(0);
+-      if((new = os_accept_connection(fd)) < 0)
+-              return(-errno);
++      new = os_accept_connection(fd);
++      if(new < 0)
++              return(new);
+       err = os_pipe(socket, 0, 0);
+-      if(err) 
++      if(err < 0) 
+               goto out_close;
+       data = ((struct port_pre_exec_data)
+@@ -186,11 +193,11 @@
+  out_shutdown:
+       os_shutdown_socket(socket[0], 1, 1);
+-      close(socket[0]);
++      os_close_file(socket[0]);
+       os_shutdown_socket(socket[1], 1, 1);    
+-      close(socket[1]);
++      os_close_file(socket[1]);
+  out_close:
+-      close(new);
++      os_close_file(new);
+       return(err);
  }
  
-@@ -196,19 +223,46 @@
- "    Create ide0 entries that map onto ubd devices.\n\n"
- );
+Index: uml-2.6.7/arch/um/drivers/port_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/port_kern.c 2004-07-16 19:35:56.025750640 +0300
++++ uml-2.6.7/arch/um/drivers/port_kern.c      2004-07-16 19:47:23.690209752 +0300
+@@ -6,6 +6,7 @@
+ #include "linux/list.h"
+ #include "linux/sched.h"
+ #include "linux/slab.h"
++#include "linux/interrupt.h"
+ #include "linux/irq.h"
+ #include "linux/spinlock.h"
+ #include "linux/errno.h"
+@@ -14,6 +15,7 @@
+ #include "kern_util.h"
+ #include "kern.h"
+ #include "irq_user.h"
++#include "irq_kern.h"
+ #include "port.h"
+ #include "init.h"
+ #include "os.h"
+@@ -38,21 +40,21 @@
+ struct connection {
+       struct list_head list;
+       int fd;
+-      int helper_pid;
++      int helper_pid;
+       int socket[2];
+       int telnetd_pid;
+       struct port_list *port;
+ };
  
-+static int parse_unit(char **ptr)
-+{
-+      char *str = *ptr, *end;
-+      int n = -1;
-+
-+      if(isdigit(*str)) {
-+              n = simple_strtoul(str, &end, 0);
-+              if(end == str)
-+                      return(-1);
-+              *ptr = end;
-+      }
-+      else if (('a' <= *str) && (*str <= 'h')) {
-+              n = *str - 'a';
-+              str++;
-+              *ptr = str;
-+      }
-+      return(n);
-+}
-+
- static int ubd_setup_common(char *str, int *index_out)
+-static void pipe_interrupt(int irq, void *data, struct pt_regs *regs)
++static irqreturn_t pipe_interrupt(int irq, void *data, struct pt_regs *regs)
  {
-+      struct ubd *dev;
-       struct openflags flags = global_openflags;
-       char *backing_file;
-       int n, err;
+       struct connection *conn = data;
+       int fd;
  
-       if(index_out) *index_out = -1;
--      n = *str++;
-+      n = *str;
-       if(n == '='){
--              static int fake_major_allowed = 1;
-               char *end;
-               int major;
+-      fd = os_rcv_fd(conn->socket[0], &conn->helper_pid);
++      fd = os_rcv_fd(conn->socket[0], &conn->helper_pid);
+       if(fd < 0){
+               if(fd == -EAGAIN)
+-                      return;
++                      return(IRQ_NONE);
  
-+              str++;
-+              if(!strcmp(str, "mmap")){
-+                      CHOOSE_MODE(printk("mmap not supported by the ubd "
-+                                         "driver in tt mode\n"),
-+                                  ubd_do_mmap = 1);
-+                      return(0);
-+              }
-+
-               if(!strcmp(str, "sync")){
-                       global_openflags.s = 1;
-                       return(0);
-@@ -220,20 +274,14 @@
-                       return(1);
-               }
+               printk(KERN_ERR "pipe_interrupt : os_rcv_fd returned %d\n", 
+                      -fd);
+@@ -65,6 +67,7 @@
+       list_add(&conn->list, &conn->port->connections);
  
--              if(!fake_major_allowed){
--                      printk(KERN_ERR "Can't assign a fake major twice\n");
--                      return(1);
--              }
--
-               err = 1;
-               spin_lock(&ubd_lock);
--              if(!fake_major_allowed){
-+              if(fake_major != MAJOR_NR){
-                       printk(KERN_ERR "Can't assign a fake major twice\n");
-                       goto out1;
-               }
-  
-               fake_major = major;
--              fake_major_allowed = 0;
+       up(&conn->port->sem);
++      return(IRQ_HANDLED);
+ }
  
-               printk(KERN_INFO "Setting extra ubd major number to %d\n",
-                      major);
-@@ -243,25 +291,23 @@
-               return(err);
+ static int port_accept(struct port_list *port)
+@@ -102,8 +105,7 @@
        }
  
--      if(n < '0'){
--              printk(KERN_ERR "ubd_setup : index out of range\n"); }
--
--      if((n >= '0') && (n <= '9')) n -= '0';
--      else if((n >= 'a') && (n <= 'z')) n -= 'a';
--      else {
--              printk(KERN_ERR "ubd_setup : device syntax invalid\n");
-+      n = parse_unit(&str);
-+      if(n < 0){
-+              printk(KERN_ERR "ubd_setup : couldn't parse unit number "
-+                     "'%s'\n", str);
-               return(1);
-       }
-       if(n >= MAX_DEV){
--              printk(KERN_ERR "ubd_setup : index out of range "
--                     "(%d devices)\n", MAX_DEV);      
-+              printk(KERN_ERR "ubd_setup : index %d out of range "
-+                     "(%d devices)\n", n, MAX_DEV);
-               return(1);
-       }
+       list_add(&conn->list, &port->pending);
+-      ret = 1;
+-      goto out;
++      return(1);
  
-       err = 1;
-       spin_lock(&ubd_lock);
+  out_free:
+       kfree(conn);
+@@ -138,12 +140,13 @@
  
--      if(ubd_dev[n].file != NULL){
-+      dev = &ubd_dev[n];
-+      if(dev->file != NULL){
-               printk(KERN_ERR "ubd_setup : device already configured\n");
-               goto out2;
-       }
-@@ -276,6 +322,11 @@
-               flags.s = 1;
-               str++;
+ DECLARE_WORK(port_work, port_work_proc, NULL);
+-static void port_interrupt(int irq, void *data, struct pt_regs *regs)
++static irqreturn_t port_interrupt(int irq, void *data, struct pt_regs *regs)
+ {
+       struct port_list *port = data;
+       port->has_connection = 1;
+       schedule_work(&port_work);
++      return(IRQ_HANDLED);
+ } 
+ void *port_data(int port_num)
+Index: uml-2.6.7/arch/um/sys-i386/ptrace_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/sys-i386/ptrace_user.c      2004-07-16 19:37:52.078108000 +0300
++++ uml-2.6.7/arch/um/sys-i386/ptrace_user.c   2004-07-16 19:47:23.772197288 +0300
+@@ -39,10 +39,10 @@
+       nregs = sizeof(dummy->u_debugreg)/sizeof(dummy->u_debugreg[0]);
+       for(i = 0; i < nregs; i++){
+               if((i == 4) || (i == 5)) continue;
+-              if(ptrace(PTRACE_POKEUSR, pid, &dummy->u_debugreg[i],
++              if(ptrace(PTRACE_POKEUSER, pid, &dummy->u_debugreg[i],
+                         regs[i]) < 0)
+-                      printk("write_debugregs - ptrace failed, "
+-                             "errno = %d\n", errno);
++                      printk("write_debugregs - ptrace failed on "
++                             "register %d, errno = %d\n", errno);
        }
-+      if (*str == 'd'){
-+              dev->no_cow = 1;
-+              str++;
-+      }
-+
-       if(*str++ != '='){
-               printk(KERN_ERR "ubd_setup : Expected '='\n");
-               goto out2;
-@@ -284,14 +335,17 @@
-       err = 0;
-       backing_file = strchr(str, ',');
-       if(backing_file){
--              *backing_file = '\0';
--              backing_file++;
-+              if(dev->no_cow)
-+                      printk(KERN_ERR "Can't specify both 'd' and a "
-+                             "cow file\n");
-+              else {
-+                      *backing_file = '\0';
-+                      backing_file++;
-+              }
-       }
--      ubd_dev[n].file = str;
--      if(ubd_is_dir(ubd_dev[n].file))
--              ubd_dev[n].is_dir = 1;
--      ubd_dev[n].cow.file = backing_file;
--      ubd_dev[n].boot_openflags = flags;
-+      dev->file = str;
-+      dev->cow.file = backing_file;
-+      dev->boot_openflags = flags;
-  out2:
-       spin_unlock(&ubd_lock);
-       return(err);
-@@ -321,8 +375,7 @@
- static int fakehd_set = 0;
- static int fakehd(char *str)
- {
--      printk(KERN_INFO 
--             "fakehd : Changing ubd name to \"hd\".\n");
-+      printk(KERN_INFO "fakehd : Changing ubd name to \"hd\".\n");
-       fakehd_set = 1;
-       return 1;
  }
-@@ -368,32 +421,42 @@
- {
-       struct io_thread_req req;
-       struct request *rq = elv_next_request(ubd_queue);
--      int n;
-+      int n, err;
  
-       do_ubd = NULL;
-       intr_count++;
-       n = read_ubd_fs(thread_fd, &req, sizeof(req));
-       if(n != sizeof(req)){
-               printk(KERN_ERR "Pid %d - spurious interrupt in ubd_handler, "
--                     "errno = %d\n", os_getpid(), -n);
-+                     "err = %d\n", os_getpid(), -n);
-               spin_lock(&ubd_io_lock);
-               end_request(rq, 0);
-               spin_unlock(&ubd_io_lock);
-               return;
+@@ -54,7 +54,7 @@
+       dummy = NULL;
+       nregs = sizeof(dummy->u_debugreg)/sizeof(dummy->u_debugreg[0]);
+       for(i = 0; i < nregs; i++){
+-              regs[i] = ptrace(PTRACE_PEEKUSR, pid, 
++              regs[i] = ptrace(PTRACE_PEEKUSER, pid, 
+                                &dummy->u_debugreg[i], 0);
        }
-         
--        if((req.offset != ((__u64) (rq->sector)) << 9) ||
--         (req.length != (rq->current_nr_sectors) << 9))
-+      if((req.op != UBD_MMAP) && 
-+         ((req.offset != ((__u64) (rq->sector)) << 9) ||
-+          (req.length != (rq->current_nr_sectors) << 9)))
-               panic("I/O op mismatch");
-       
-+      if(req.map_fd != -1){
-+              err = physmem_subst_mapping(req.buffer, req.map_fd, 
-+                                          req.map_offset, 1);
-+              if(err)
-+                      printk("ubd_handler - physmem_subst_mapping failed, "
-+                             "err = %d\n", -err);
-+      }
-+
-       ubd_finish(rq, req.error);
-       reactivate_fd(thread_fd, UBD_IRQ);      
-       do_ubd_request(ubd_queue);
  }
--static void ubd_intr(int irq, void *dev, struct pt_regs *unused)
-+static irqreturn_t ubd_intr(int irq, void *dev, struct pt_regs *unused)
- {
-       ubd_handler();
-+      return(IRQ_HANDLED);
+Index: uml-2.6.7/arch/um/os-Linux/drivers/tuntap_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/os-Linux/drivers/tuntap_user.c      2004-07-16 19:37:46.493956920 +0300
++++ uml-2.6.7/arch/um/os-Linux/drivers/tuntap_user.c   2004-07-16 19:47:24.802040728 +0300
+@@ -8,7 +8,6 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <errno.h>
+-#include <fcntl.h>
+ #include <sys/wait.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
+@@ -19,6 +18,7 @@
+ #include "net_user.h"
+ #include "tuntap.h"
+ #include "kern_util.h"
++#include "user_util.h"
+ #include "user.h"
+ #include "helper.h"
+ #include "os.h"
+@@ -61,7 +61,7 @@
+       struct tuntap_pre_exec_data *data = arg;
+       
+       dup2(data->stdout, 1);
+-      close(data->close_me);
++      os_close_file(data->close_me);
  }
  
- /* Only changed by ubd_init, which is an initcall. */
-@@ -417,10 +480,14 @@
- static void ubd_close(struct ubd *dev)
- {
-+      if(ubd_do_mmap)
-+              physmem_forget_descriptor(dev->fd);
-       os_close_file(dev->fd);
-       if(dev->cow.file == NULL)
-               return;
+ static int tuntap_open_tramp(char *gate, int *fd_out, int me, int remote,
+@@ -86,7 +86,7 @@
  
-+      if(ubd_do_mmap)
-+              physmem_forget_descriptor(dev->cow.fd);
-       os_close_file(dev->cow.fd);
-       vfree(dev->cow.bitmap);
-       dev->cow.bitmap = NULL;
-@@ -429,18 +496,20 @@
- static int ubd_open_dev(struct ubd *dev)
- {
-       struct openflags flags;
--      int err, n, create_cow, *create_ptr;
-+      char **back_ptr;
-+      int err, create_cow, *create_ptr;
+       if(pid < 0) return(-pid);
  
-+      dev->openflags = dev->boot_openflags;
-       create_cow = 0;
-       create_ptr = (dev->cow.file != NULL) ? &create_cow : NULL;
--      dev->fd = open_ubd_file(dev->file, &dev->openflags, &dev->cow.file,
-+      back_ptr = dev->no_cow ? NULL : &dev->cow.file;
-+      dev->fd = open_ubd_file(dev->file, &dev->openflags, back_ptr,
-                               &dev->cow.bitmap_offset, &dev->cow.bitmap_len, 
-                               &dev->cow.data_offset, create_ptr);
+-      close(remote);
++      os_close_file(remote);
  
-       if((dev->fd == -ENOENT) && create_cow){
--              n = dev - ubd_dev;
-               dev->fd = create_cow_file(dev->file, dev->cow.file, 
--                                        dev->openflags, 1 << 9,
-+                                        dev->openflags, 1 << 9, PAGE_SIZE,
-                                         &dev->cow.bitmap_offset, 
-                                         &dev->cow.bitmap_len,
-                                         &dev->cow.data_offset);
-@@ -455,13 +524,17 @@
-       if(dev->cow.file != NULL){
-               err = -ENOMEM;
-               dev->cow.bitmap = (void *) vmalloc(dev->cow.bitmap_len);
--              if(dev->cow.bitmap == NULL) goto error;
-+              if(dev->cow.bitmap == NULL){
-+                      printk(KERN_ERR "Failed to vmalloc COW bitmap\n");
-+                      goto error;
-+              }
-               flush_tlb_kernel_vm();
+       msg.msg_name = NULL;
+       msg.msg_namelen = 0;
+@@ -107,19 +107,19 @@
+       if(n < 0){
+               printk("tuntap_open_tramp : recvmsg failed - errno = %d\n", 
+                      errno);
+-              return(errno);
++              return(-errno);
+       }
+-      waitpid(pid, NULL, 0);
++      CATCH_EINTR(waitpid(pid, NULL, 0));
  
-               err = read_cow_bitmap(dev->fd, dev->cow.bitmap, 
-                                     dev->cow.bitmap_offset, 
-                                     dev->cow.bitmap_len);
--              if(err) goto error;
-+              if(err < 0)
-+                      goto error;
+       cmsg = CMSG_FIRSTHDR(&msg);
+       if(cmsg == NULL){
+               printk("tuntap_open_tramp : didn't receive a message\n");
+-              return(EINVAL);
++              return(-EINVAL);
+       }
+       if((cmsg->cmsg_level != SOL_SOCKET) || 
+          (cmsg->cmsg_type != SCM_RIGHTS)){
+               printk("tuntap_open_tramp : didn't receive a descriptor\n");
+-              return(EINVAL);
++              return(-EINVAL);
+       }
+       *fd_out = ((int *) CMSG_DATA(cmsg))[0];
+       return(0);
+@@ -133,27 +133,29 @@
+       int err, fds[2], len, used;
  
-               flags = dev->openflags;
-               flags.w = 0;
-@@ -481,17 +554,31 @@
-                       
- {
-       struct gendisk *disk;
-+      char from[sizeof("ubd/nnnnn\0")], to[sizeof("discnnnnn/disc\0")];
-+      int err;
+       err = tap_open_common(pri->dev, pri->gate_addr);
+-      if(err) return(err);
++      if(err < 0) 
++              return(err);
  
-       disk = alloc_disk(1 << UBD_SHIFT);
--      if (!disk)
--              return -ENOMEM;
-+      if(disk == NULL)
-+              return(-ENOMEM);
+       if(pri->fixed_config){
+-              if((pri->fd = open("/dev/net/tun", O_RDWR)) < 0){
+-                      printk("Failed to open /dev/net/tun, errno = %d\n",
+-                             errno);
+-                      return(-errno);
++              pri->fd = os_open_file("/dev/net/tun", of_rdwr(OPENFLAGS()), 0);
++              if(pri->fd < 0){
++                      printk("Failed to open /dev/net/tun, err = %d\n",
++                             -pri->fd);
++                      return(pri->fd);
+               }
+               memset(&ifr, 0, sizeof(ifr));
+-              ifr.ifr_flags = IFF_TAP;
++              ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
+               strlcpy(ifr.ifr_name, pri->dev_name, sizeof(ifr.ifr_name));
+               if(ioctl(pri->fd, TUNSETIFF, (void *) &ifr) < 0){
+-                      printk("TUNSETIFF failed, errno = %d", errno);
+-                      close(pri->fd);
++                      printk("TUNSETIFF failed, errno = %d\n", errno);
++                      os_close_file(pri->fd);
+                       return(-errno);
+               }
+       }
+       else {
+               err = os_pipe(fds, 0, 0);
+-              if(err){
+-                      printk("tuntap_open : os_pipe failed - errno = %d\n",
++              if(err < 0){
++                      printk("tuntap_open : os_pipe failed - err = %d\n",
+                              -err);
+                       return(err);
+               }
+@@ -166,19 +168,19 @@
+                                       fds[1], buffer, len, &used);
  
-       disk->major = major;
-       disk->first_minor = unit << UBD_SHIFT;
-       disk->fops = &ubd_blops;
-       set_capacity(disk, size / 512);
--      sprintf(disk->disk_name, "ubd");
--      sprintf(disk->devfs_name, "ubd/disc%d", unit);
-+      if(major == MAJOR_NR){
-+              sprintf(disk->disk_name, "ubd%c", 'a' + unit);
-+              sprintf(disk->devfs_name, "ubd/disc%d", unit);
-+              sprintf(from, "ubd/%d", unit);
-+              sprintf(to, "disc%d/disc", unit);
-+              err = devfs_mk_symlink(from, to);
-+              if(err)
-+                      printk("ubd_new_disk failed to make link from %s to "
-+                             "%s, error = %d\n", from, to, err);
-+      }
-+      else {
-+              sprintf(disk->disk_name, "ubd_fake%d", unit);
-+              sprintf(disk->devfs_name, "ubd_fake/disc%d", unit);
-+      }
-       disk->private_data = &ubd_dev[unit];
-       disk->queue = ubd_queue;
-@@ -506,24 +593,21 @@
-       struct ubd *dev = &ubd_dev[n];
-       int err;
+               output = buffer;
+-              if(err == 0){
+-                      pri->dev_name = uml_strdup(buffer);
+-                      output += IFNAMSIZ;
+-                      printk(output);
+-                      free_output_buffer(buffer);
+-              }
+-              else {
+-                      printk(output);
++              if(err < 0) {
++                      printk("%s", output);
+                       free_output_buffer(buffer);
+-                      printk("tuntap_open_tramp failed - errno = %d\n", err);
+-                      return(-err);
++                      printk("tuntap_open_tramp failed - err = %d\n", -err);
++                      return(err);
+               }
+-              close(fds[0]);
++
++              pri->dev_name = uml_strdup(buffer);
++              output += IFNAMSIZ;
++              printk("%s", output);
++              free_output_buffer(buffer);
++
++              os_close_file(fds[0]);
+               iter_addresses(pri->dev, open_addr, pri->dev_name);
+       }
  
--      if(dev->is_dir)
--              return(-EISDIR);
--
--      if (!dev->file)
-+      if(dev->file == NULL)
-               return(-ENODEV);
+@@ -191,7 +193,7 @@
  
-       if (ubd_open_dev(dev))
-               return(-ENODEV);
+       if(!pri->fixed_config) 
+               iter_addresses(pri->dev, close_addr, pri->dev_name);
+-      close(fd);
++      os_close_file(fd);
+       pri->fd = -1;
+ }
  
-       err = ubd_file_size(dev, &dev->size);
--      if(err)
-+      if(err < 0)
-               return(err);
+Index: uml-2.6.7/arch/um/kernel/um_arch.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/um_arch.c    2004-07-16 19:37:17.463370240 +0300
++++ uml-2.6.7/arch/um/kernel/um_arch.c 2004-07-16 19:47:23.755199872 +0300
+@@ -38,13 +38,18 @@
+ #include "mode_kern.h"
+ #include "mode.h"
  
-       err = ubd_new_disk(MAJOR_NR, dev->size, n, &ubd_gendisk[n]);
-       if(err) 
-               return(err);
-  
--      if(fake_major)
-+      if(fake_major != MAJOR_NR)
-               ubd_new_disk(fake_major, dev->size, n, 
-                            &fake_gendisk[n]);
+-#define DEFAULT_COMMAND_LINE "root=6200"
++#define DEFAULT_COMMAND_LINE "root=98:0"
  
-@@ -561,42 +645,42 @@
-       return(err);
- }
+ struct cpuinfo_um boot_cpu_data = { 
+       .loops_per_jiffy        = 0,
+       .ipi_pipe               = { -1, -1 }
+ };
  
--static int ubd_get_config(char *dev, char *str, int size, char **error_out)
-+static int ubd_get_config(char *name, char *str, int size, char **error_out)
++/* Placeholder to make UML link until the vsyscall stuff is actually 
++ * implemented
++ */
++void *__kernel_vsyscall;
++
+ unsigned long thread_saved_pc(struct task_struct *task)
  {
--      struct ubd *ubd;
-+      struct ubd *dev;
-       char *end;
--      int major, n = 0;
-+      int n, len = 0;
+       return(os_process_pc(CHOOSE_MODE_PROC(thread_pid_tt, thread_pid_skas,
+@@ -53,18 +58,22 @@
  
--      major = simple_strtoul(dev, &end, 0);
--      if((*end != '\0') || (end == dev)){
--              *error_out = "ubd_get_config : didn't parse major number";
-+      n = simple_strtoul(name, &end, 0);
-+      if((*end != '\0') || (end == name)){
-+              *error_out = "ubd_get_config : didn't parse device number";
-               return(-1);
-       }
+ static int show_cpuinfo(struct seq_file *m, void *v)
+ {
+-      int index;
++      int index = 0;
  
--      if((major >= MAX_DEV) || (major < 0)){
--              *error_out = "ubd_get_config : major number out of range";
-+      if((n >= MAX_DEV) || (n < 0)){
-+              *error_out = "ubd_get_config : device number out of range";
-               return(-1);
-       }
+-      index = (struct cpuinfo_um *)v - cpu_data;
+ #ifdef CONFIG_SMP
++      index = (struct cpuinfo_um *) v - cpu_data;
+       if (!cpu_online(index))
+               return 0;
+ #endif
  
--      ubd = &ubd_dev[major];
-+      dev = &ubd_dev[n];
-       spin_lock(&ubd_lock);
+-      seq_printf(m, "bogomips\t: %lu.%02lu\n",
++      seq_printf(m, "processor\t: %d\n", index);
++      seq_printf(m, "vendor_id\t: User Mode Linux\n");
++      seq_printf(m, "model name\t: UML\n");
++      seq_printf(m, "mode\t\t: %s\n", CHOOSE_MODE("tt", "skas"));
++      seq_printf(m, "host\t\t: %s\n", host_info);
++      seq_printf(m, "bogomips\t: %lu.%02lu\n\n",
+                  loops_per_jiffy/(500000/HZ),
+                  (loops_per_jiffy/(5000/HZ)) % 100);
+-      seq_printf(m, "host\t\t: %s\n", host_info);
  
--      if(ubd->file == NULL){
--              CONFIG_CHUNK(str, size, n, "", 1);
-+      if(dev->file == NULL){
-+              CONFIG_CHUNK(str, size, len, "", 1);
-               goto out;
+       return(0);
+ }
+@@ -134,12 +143,12 @@
+       if(umid != NULL){
+               snprintf(argv1_begin, 
+                        (argv1_end - argv1_begin) * sizeof(*ptr), 
+-                       "(%s)", umid);
++                       "(%s) ", umid);
+               ptr = &argv1_begin[strlen(argv1_begin)];
        }
+       else ptr = argv1_begin;
  
--      CONFIG_CHUNK(str, size, n, ubd->file, 0);
-+      CONFIG_CHUNK(str, size, len, dev->file, 0);
+-      snprintf(ptr, (argv1_end - ptr) * sizeof(*ptr), " [%s]", cmd);
++      snprintf(ptr, (argv1_end - ptr) * sizeof(*ptr), "[%s]", cmd);
+       memset(argv1_begin + strlen(argv1_begin), '\0', 
+              argv1_end - argv1_begin - strlen(argv1_begin));
+ #endif
+@@ -179,7 +188,7 @@
+ static int __init uml_ncpus_setup(char *line, int *add)
+ {
+        if (!sscanf(line, "%d", &ncpus)) {
+-               printk("Couldn't parse [%s]\n", line);
++               printf("Couldn't parse [%s]\n", line);
+                return -1;
+        }
  
--      if(ubd->cow.file != NULL){
--              CONFIG_CHUNK(str, size, n, ",", 0);
--              CONFIG_CHUNK(str, size, n, ubd->cow.file, 1);
-+      if(dev->cow.file != NULL){
-+              CONFIG_CHUNK(str, size, len, ",", 0);
-+              CONFIG_CHUNK(str, size, len, dev->cow.file, 1);
-       }
--      else CONFIG_CHUNK(str, size, n, "", 1);
-+      else CONFIG_CHUNK(str, size, len, "", 1);
+@@ -210,7 +219,7 @@
  
-  out:
-       spin_unlock(&ubd_lock);
--      return(n);
-+      return(len);
+ static int __init mode_tt_setup(char *line, int *add)
+ {
+-      printk("CONFIG_MODE_TT disabled - 'mode=tt' ignored\n");
++      printf("CONFIG_MODE_TT disabled - 'mode=tt' ignored\n");
+       return(0);
  }
  
- static int ubd_remove(char *str)
-@@ -604,11 +688,9 @@
-       struct ubd *dev;
-       int n, err = -ENODEV;
--      if(!isdigit(*str))
--              return(err);    /* it should be a number 0-7/a-h */
-+      n = parse_unit(&str);
+@@ -221,7 +230,7 @@
  
--      n = *str - '0';
--      if(n >= MAX_DEV) 
-+      if((n < 0) || (n >= MAX_DEV))
-               return(err);
+ static int __init mode_tt_setup(char *line, int *add)
+ {
+-      printk("CONFIG_MODE_SKAS disabled - 'mode=tt' redundant\n");
++      printf("CONFIG_MODE_SKAS disabled - 'mode=tt' redundant\n");
+       return(0);
+ }
  
-       dev = &ubd_dev[n];
-@@ -669,7 +751,7 @@
-               
-       elevator_init(ubd_queue, &elevator_noop);
+@@ -291,7 +300,7 @@
  
--      if (fake_major != 0) {
-+      if (fake_major != MAJOR_NR) {
-               char name[sizeof("ubd_nnn\0")];
+ /* Set during early boot */
+ unsigned long brk_start;
+-static struct vm_reserved kernel_vm_reserved;
++unsigned long end_iomem;
  
-               snprintf(name, sizeof(name), "ubd_%d", fake_major);
-@@ -696,6 +778,7 @@
-       io_pid = start_io_thread(stack + PAGE_SIZE - sizeof(void *), 
-                                &thread_fd);
-       if(io_pid < 0){
-+              io_pid = -1;
-               printk(KERN_ERR 
-                      "ubd : Failed to start I/O thread (errno = %d) - "
-                      "falling back to synchronous I/O\n", -io_pid);
-@@ -703,8 +786,8 @@
-       }
-       err = um_request_irq(UBD_IRQ, thread_fd, IRQ_READ, ubd_intr, 
-                            SA_INTERRUPT, "ubd", ubd_dev);
--      if(err != 0) printk(KERN_ERR 
--                          "um_request_irq failed - errno = %d\n", -err);
-+      if(err != 0) 
-+              printk(KERN_ERR "um_request_irq failed - errno = %d\n", -err);
-       return(err);
- }
+ #define MIN_VMALLOC (32 * 1024 * 1024)
  
-@@ -714,15 +797,9 @@
+@@ -299,7 +308,7 @@
  {
-       struct gendisk *disk = inode->i_bdev->bd_disk;
-       struct ubd *dev = disk->private_data;
--      int err = -EISDIR;
--
--      if(dev->is_dir == 1)
--              goto out;
-+      int err = 0;
+       unsigned long avail;
+       unsigned long virtmem_size, max_physmem;
+-      unsigned int i, add, err;
++      unsigned int i, add;
  
--      err = 0;
-       if(dev->count == 0){
--              dev->openflags = dev->boot_openflags;
+       for (i = 1; i < argc; i++){
+               if((i == 1) && (argv[i][0] == ' ')) continue;
+@@ -328,12 +337,16 @@
+       argv1_end = &argv[1][strlen(argv[1])];
+ #endif
+   
+-      set_usable_vm(uml_physmem, get_kmem_end());
 -
-               err = ubd_open_dev(dev);
-               if(err){
-                       printk(KERN_ERR "%s: Can't open \"%s\": errno = %d\n",
-@@ -749,62 +826,156 @@
-       return(0);
- }
--void cowify_req(struct io_thread_req *req, struct ubd *dev)
-+static void cowify_bitmap(__u64 io_offset, int length, unsigned long *cow_mask, 
-+                        __u64 *cow_offset, unsigned long *bitmap, 
-+                        __u64 bitmap_offset, unsigned long *bitmap_words,
-+                        __u64 bitmap_len)
-+{
-+      __u64 sector = io_offset >> 9;
-+      int i, update_bitmap = 0;
-+
-+      for(i = 0; i < length >> 9; i++){
-+              if(cow_mask != NULL)
-+                      ubd_set_bit(i, (unsigned char *) cow_mask);
-+              if(ubd_test_bit(sector + i, (unsigned char *) bitmap))
-+                      continue;
+       highmem = 0;
+-      max_physmem = get_kmem_end() - uml_physmem - MIN_VMALLOC;
+-      if(physmem_size > max_physmem){
+-              highmem = physmem_size - max_physmem;
++      iomem_size = (iomem_size + PAGE_SIZE - 1) & PAGE_MASK;
++      max_physmem = get_kmem_end() - uml_physmem - iomem_size - MIN_VMALLOC;
 +
-+              update_bitmap = 1;
-+              ubd_set_bit(sector + i, (unsigned char *) bitmap);
++      /* Zones have to begin on a 1 << MAX_ORDER page boundary,
++       * so this makes sure that's true for highmem
++       */
++      max_physmem &= ~((1 << (PAGE_SHIFT + MAX_ORDER)) - 1);
++      if(physmem_size + iomem_size > max_physmem){
++              highmem = physmem_size + iomem_size - max_physmem;
+               physmem_size -= highmem;
+ #ifndef CONFIG_HIGHMEM
+               highmem = 0;
+@@ -343,11 +356,19 @@
+       }
+       high_physmem = uml_physmem + physmem_size;
+-      high_memory = (void *) high_physmem;
++      end_iomem = high_physmem + iomem_size;
++      high_memory = (void *) end_iomem;
+       start_vm = VMALLOC_START;
+-      setup_physmem(uml_physmem, uml_reserved, physmem_size);
++      setup_physmem(uml_physmem, uml_reserved, physmem_size, highmem);
++      if(init_maps(physmem_size, iomem_size, highmem)){
++              printf("Failed to allocate mem_map for %ld bytes of physical "
++                     "memory and %ld bytes of highmem\n", physmem_size,
++                     highmem);
++              exit(1);
 +      }
 +
-+      if(!update_bitmap)
-+              return;
-+
-+      *cow_offset = sector / (sizeof(unsigned long) * 8);
+       virtmem_size = physmem_size;
+       avail = get_kmem_end() - start_vm;
+       if(physmem_size > avail) virtmem_size = avail;
+@@ -357,28 +378,26 @@
+               printf("Kernel virtual memory size shrunk to %ld bytes\n",
+                      virtmem_size);
+-      err = reserve_vm(high_physmem, end_vm, &kernel_vm_reserved);
+-      if(err){
+-              printf("Failed to reserve VM area for kernel VM\n");
+-              exit(1);
+-      }
+-
+       uml_postsetup();
+       init_task.thread.kernel_stack = (unsigned long) &init_thread_info + 
+               2 * PAGE_SIZE;
+       task_protections((unsigned long) &init_thread_info);
++      os_flush_stdout();
+       return(CHOOSE_MODE(start_uml_tt(), start_uml_skas()));
+ }
++extern int uml_exitcode;
 +
-+      /* This takes care of the case where we're exactly at the end of the
-+       * device, and *cow_offset + 1 is off the end.  So, just back it up
-+       * by one word.  Thanks to Lynn Kerby for the fix and James McMechan
-+       * for the original diagnosis.
-+       */
-+      if(*cow_offset == ((bitmap_len + sizeof(unsigned long) - 1) / 
-+                         sizeof(unsigned long) - 1))
-+              (*cow_offset)--;
+ static int panic_exit(struct notifier_block *self, unsigned long unused1,
+                     void *unused2)
+ {
+ #ifdef CONFIG_MAGIC_SYSRQ
+-      handle_sysrq('p', &current->thread.regs, NULL, NULL);
++      handle_sysrq('p', &current->thread.regs, NULL);
+ #endif
++      uml_exitcode = 1;
+       machine_halt();
+       return(0);
+ }
+@@ -403,6 +422,11 @@
+       arch_check_bugs();
+       check_ptrace();
+       check_sigio();
++      check_devanon();
++}
 +
-+      bitmap_words[0] = bitmap[*cow_offset];
-+      bitmap_words[1] = bitmap[*cow_offset + 1];
++void apply_alternatives(void *start, void *end)
++{
+ }
+ /*
+Index: uml-2.6.7/arch/um/kernel/mem.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/mem.c        2004-07-16 19:36:30.355531720 +0300
++++ uml-2.6.7/arch/um/kernel/mem.c     2004-07-16 19:47:23.720205192 +0300
+@@ -1,74 +1,66 @@
+ /* 
+- * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
++ * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
+  * Licensed under the GPL
+  */
+-#include "linux/config.h"
+-#include "linux/module.h"
+-#include "linux/types.h"
++#include "linux/stddef.h"
++#include "linux/kernel.h"
+ #include "linux/mm.h"
+-#include "linux/fs.h"
+-#include "linux/init.h"
+ #include "linux/bootmem.h"
+ #include "linux/swap.h"
+-#include "linux/slab.h"
+-#include "linux/vmalloc.h"
+ #include "linux/highmem.h"
++#include "linux/gfp.h"
+ #include "asm/page.h"
+-#include "asm/pgtable.h"
++#include "asm/fixmap.h"
+ #include "asm/pgalloc.h"
+-#include "asm/bitops.h"
+-#include "asm/uaccess.h"
+-#include "asm/tlb.h"
+ #include "user_util.h"
+ #include "kern_util.h"
+-#include "mem_user.h"
+-#include "mem.h"
+ #include "kern.h"
+-#include "init.h"
+-#include "os.h"
+-#include "mode_kern.h"
++#include "mem_user.h"
+ #include "uml_uaccess.h"
++#include "os.h"
 +
-+      *cow_offset *= sizeof(unsigned long);
-+      *cow_offset += bitmap_offset;
++extern char __binary_start;
+ /* Changed during early boot */
+-pgd_t swapper_pg_dir[1024];
+-unsigned long high_physmem;
+-unsigned long vm_start;
+-unsigned long vm_end;
+-unsigned long highmem;
+ unsigned long *empty_zero_page = NULL;
+ unsigned long *empty_bad_page = NULL;
+-
+-/* Not modified */
+-const char bad_pmd_string[] = "Bad pmd in pte_alloc: %08lx\n";
+-
+-extern char __init_begin, __init_end;
+-extern long physmem_size;
+-
+-/* Not changed by UML */
+-DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
+-
+-/* Changed during early boot */
++pgd_t swapper_pg_dir[1024];
++unsigned long highmem;
+ int kmalloc_ok = 0;
+-#define NREGIONS (phys_region_index(0xffffffff) - phys_region_index(0x0) + 1)
+-struct mem_region *regions[NREGIONS] = { [ 0 ... NREGIONS - 1 ] = NULL };
+-#define REGION_SIZE ((0xffffffff & ~REGION_MASK) + 1)
+-
+-/* Changed during early boot */
+ static unsigned long brk_end;
++void unmap_physmem(void)
++{
++      os_unmap_memory((void *) brk_end, uml_reserved - brk_end);
 +}
 +
-+static void cowify_req(struct io_thread_req *req, unsigned long *bitmap, 
-+                     __u64 bitmap_offset, __u64 bitmap_len)
+ static void map_cb(void *unused)
  {
--        int i, update_bitmap, sector = req->offset >> 9;
-+      __u64 sector = req->offset >> 9;
+       map_memory(brk_end, __pa(brk_end), uml_reserved - brk_end, 1, 1, 0);
+ }
+-void unmap_physmem(void)
++#ifdef CONFIG_HIGHMEM
++static void setup_highmem(unsigned long highmem_start, 
++                        unsigned long highmem_len)
+ {
+-      os_unmap_memory((void *) brk_end, uml_reserved - brk_end);
+-}
++      struct page *page;
++      unsigned long highmem_pfn;
 +      int i;
  
-       if(req->length > (sizeof(req->sector_mask) * 8) << 9)
-               panic("Operation too long");
+-extern char __binary_start;
++      highmem_start_page = virt_to_page(highmem_start);
 +
-       if(req->op == UBD_READ) {
-               for(i = 0; i < req->length >> 9; i++){
--                      if(ubd_test_bit(sector + i, (unsigned char *) 
--                                      dev->cow.bitmap)){
-+                      if(ubd_test_bit(sector + i, (unsigned char *) bitmap))
-                               ubd_set_bit(i, (unsigned char *) 
-                                           &req->sector_mask);
--                      }
-                 }
--        } 
--        else {
--              update_bitmap = 0;
--              for(i = 0; i < req->length >> 9; i++){
--                      ubd_set_bit(i, (unsigned char *) 
--                                  &req->sector_mask);
--                      if(!ubd_test_bit(sector + i, (unsigned char *) 
--                                       dev->cow.bitmap))
--                              update_bitmap = 1;
--                      ubd_set_bit(sector + i, (unsigned char *) 
--                                  dev->cow.bitmap);
--              }
--              if(update_bitmap){
--                      req->cow_offset = sector / (sizeof(unsigned long) * 8);
--                      req->bitmap_words[0] = 
--                              dev->cow.bitmap[req->cow_offset];
--                      req->bitmap_words[1] = 
--                              dev->cow.bitmap[req->cow_offset + 1];
--                      req->cow_offset *= sizeof(unsigned long);
--                      req->cow_offset += dev->cow.bitmap_offset;
++      highmem_pfn = __pa(highmem_start) >> PAGE_SHIFT;
++      for(i = 0; i < highmem_len >> PAGE_SHIFT; i++){
++              page = &mem_map[highmem_pfn + i];
++              ClearPageReserved(page);
++              set_bit(PG_highmem, &page->flags);
++              set_page_count(page, 1);
++              __free_page(page);
 +      }
-+      else cowify_bitmap(req->offset, req->length, &req->sector_mask,
-+                         &req->cow_offset, bitmap, bitmap_offset, 
-+                         req->bitmap_words, bitmap_len);
 +}
-+
-+static int mmap_fd(struct request *req, struct ubd *dev, __u64 offset)
-+{
-+      __u64 sector;
-+      unsigned char *bitmap;
-+      int bit, i;
-+
-+      /* mmap must have been requested on the command line */
-+      if(!ubd_do_mmap)
-+              return(-1);
-+
-+      /* The buffer must be page aligned */
-+      if(((unsigned long) req->buffer % UBD_MMAP_BLOCK_SIZE) != 0)
-+              return(-1);
-+
-+      /* The request must be a page long */
-+      if((req->current_nr_sectors << 9) != PAGE_SIZE)
-+              return(-1);
-+
-+      if(dev->cow.file == NULL)
-+              return(dev->fd);
-+
-+      sector = offset >> 9;
-+      bitmap = (unsigned char *) dev->cow.bitmap;
-+      bit = ubd_test_bit(sector, bitmap);
-+
-+      for(i = 1; i < req->current_nr_sectors; i++){
-+              if(ubd_test_bit(sector + i, bitmap) != bit)
-+                      return(-1);
-+      }
-+
-+      if(bit || (rq_data_dir(req) == WRITE))
-+              offset += dev->cow.data_offset;
-+
-+      /* The data on disk must be page aligned */
-+      if((offset % UBD_MMAP_BLOCK_SIZE) != 0)
-+              return(-1);
-+
-+      return(bit ? dev->fd : dev->cow.fd);
-+}
-+
-+static int prepare_mmap_request(struct ubd *dev, int fd, __u64 offset, 
-+                              struct request *req, 
-+                              struct io_thread_req *io_req)
-+{
-+      int err;
-+
-+      if(rq_data_dir(req) == WRITE){
-+              /* Writes are almost no-ops since the new data is already in the
-+               * host page cache
-+               */
-+              dev->map_writes++;
-+              if(dev->cow.file != NULL)
-+                      cowify_bitmap(io_req->offset, io_req->length, 
-+                                    &io_req->sector_mask, &io_req->cow_offset,
-+                                    dev->cow.bitmap, dev->cow.bitmap_offset,
-+                                    io_req->bitmap_words, 
-+                                    dev->cow.bitmap_len);
-+      }
-+      else {
-+              int w;
-+
-+              if((dev->cow.file != NULL) && (fd == dev->cow.fd))
-+                      w = 0;
-+              else w = dev->openflags.w;
-+
-+              if((dev->cow.file != NULL) && (fd == dev->fd))
-+                      offset += dev->cow.data_offset;
-+
-+              err = physmem_subst_mapping(req->buffer, fd, offset, w);
-+              if(err){
-+                      printk("physmem_subst_mapping failed, err = %d\n", 
-+                             -err);
-+                      return(1);
-               }
-+              dev->map_reads++;
-       }
-+      io_req->op = UBD_MMAP;
-+      io_req->buffer = req->buffer;
-+      return(0);
- }
++#endif
  
static int prepare_request(struct request *req, struct io_thread_req *io_req)
void mem_init(void)
  {
-       struct gendisk *disk = req->rq_disk;
-       struct ubd *dev = disk->private_data;
--      __u64 block;
--      int nsect;
-+      __u64 offset;
-+      int len, fd;
+@@ -103,50 +95,15 @@
+       totalhigh_pages = highmem >> PAGE_SHIFT;
+       totalram_pages += totalhigh_pages;
+       num_physpages = totalram_pages;
+-      max_mapnr = totalram_pages;
+       max_pfn = totalram_pages;
+       printk(KERN_INFO "Memory: %luk available\n", 
+              (unsigned long) nr_free_pages() << (PAGE_SHIFT-10));
+       kmalloc_ok = 1;
+-}
+-
+-/* Changed during early boot */
+-static unsigned long kmem_top = 0;
+-
+-unsigned long get_kmem_end(void)
+-{
+-      if(kmem_top == 0)
+-              kmem_top = CHOOSE_MODE(kmem_end_tt, kmem_end_skas);
+-      return(kmem_top);
+-}
+-
+-void set_kmem_end(unsigned long new)
+-{
+-      kmem_top = new;
+-}
  
-       if(req->rq_status == RQ_INACTIVE) return(1);
+ #ifdef CONFIG_HIGHMEM
+-/* Changed during early boot */
+-pte_t *kmap_pte;
+-pgprot_t kmap_prot;
+-
+-EXPORT_SYMBOL(kmap_prot);
+-EXPORT_SYMBOL(kmap_pte);
+-
+-#define kmap_get_fixmap_pte(vaddr)                                    \
+-      pte_offset_kernel(pmd_offset(pgd_offset_k(vaddr), (vaddr)), (vaddr))
+-
+-void __init kmap_init(void)
+-{
+-      unsigned long kmap_vstart;
+-
+-      /* cache the first kmap pte */
+-      kmap_vstart = __fix_to_virt(FIX_KMAP_BEGIN);
+-      kmap_pte = kmap_get_fixmap_pte(kmap_vstart);
+-
+-      kmap_prot = PAGE_KERNEL;
++      setup_highmem(end_iomem, highmem);
++#endif
+ }
+-#endif /* CONFIG_HIGHMEM */
  
--      if(dev->is_dir){
--              strcpy(req->buffer, "HOSTFS:");
--              strcat(req->buffer, dev->file);
--              spin_lock(&ubd_io_lock);
--              end_request(req, 1);
--              spin_unlock(&ubd_io_lock);
--              return(1);
+ static void __init fixrange_init(unsigned long start, unsigned long end, 
+                                pgd_t *pgd_base)
+@@ -178,76 +135,24 @@
+       }
+ }
+-int init_maps(struct mem_region *region)
+-{
+-      struct page *p, *map;
+-      int i, n, len;
+-
+-      if(region == &physmem_region){
+-              region->mem_map = mem_map;
+-              return(0);
 -      }
+-      else if(region->mem_map != NULL) return(0);
 -
-       if((rq_data_dir(req) == WRITE) && !dev->openflags.w){
-               printk("Write attempted on readonly ubd device %s\n", 
-                      disk->disk_name);
-@@ -814,23 +985,49 @@
-               return(1);
-       }
+-      n = region->len >> PAGE_SHIFT;
+-      len = n * sizeof(struct page);
+-      if(kmalloc_ok){
+-              map = kmalloc(len, GFP_KERNEL);
+-              if(map == NULL) map = vmalloc(len);
+-      }
+-      else map = alloc_bootmem_low_pages(len);
+-
+-      if(map == NULL)
+-              return(-ENOMEM);
+-      for(i = 0; i < n; i++){
+-              p = &map[i];
+-              set_page_count(p, 0);
+-              SetPageReserved(p);
+-              INIT_LIST_HEAD(&p->list);
+-      }
+-      region->mem_map = map;
+-      return(0);
+-}
++#if CONFIG_HIGHMEM
++pte_t *kmap_pte;
++pgprot_t kmap_prot;
  
--        block = req->sector;
--        nsect = req->current_nr_sectors;
-+      offset = ((__u64) req->sector) << 9;
-+      len = req->current_nr_sectors << 9;
+-DECLARE_MUTEX(regions_sem);
++#define kmap_get_fixmap_pte(vaddr)                                    \
++      pte_offset(pmd_offset(pgd_offset_k(vaddr), (vaddr)), (vaddr))
  
--      io_req->op = rq_data_dir(req) == READ ? UBD_READ : UBD_WRITE;
-       io_req->fds[0] = (dev->cow.file != NULL) ? dev->cow.fd : dev->fd;
-       io_req->fds[1] = dev->fd;
-+      io_req->map_fd = -1;
-+      io_req->cow_offset = -1;
-+      io_req->offset = offset;
-+      io_req->length = len;
-+      io_req->error = 0;
-+      io_req->sector_mask = 0;
-+
-+      fd = mmap_fd(req, dev, io_req->offset);
-+      if(fd > 0){
-+              /* If mmapping is otherwise OK, but the first access to the 
-+               * page is a write, then it's not mapped in yet.  So we have 
-+               * to write the data to disk first, then we can map the disk
-+               * page in and continue normally from there.
-+               */
-+              if((rq_data_dir(req) == WRITE) && !is_remapped(req->buffer)){
-+                      io_req->map_fd = dev->fd;
-+                      io_req->map_offset = io_req->offset + 
-+                              dev->cow.data_offset;
-+                      dev->write_maps++;
-+              }
-+              else return(prepare_mmap_request(dev, fd, io_req->offset, req, 
-+                                               io_req));
-+      }
-+
-+      if(rq_data_dir(req) == READ)
-+              dev->nomap_reads++;
-+      else dev->nomap_writes++;
-+
-+      io_req->op = (rq_data_dir(req) == READ) ? UBD_READ : UBD_WRITE;
-       io_req->offsets[0] = 0;
-       io_req->offsets[1] = dev->cow.data_offset;
--      io_req->offset = ((__u64) block) << 9;
--      io_req->length = nsect << 9;
-       io_req->buffer = req->buffer;
-       io_req->sectorsize = 1 << 9;
--      io_req->sector_mask = 0;
--      io_req->cow_offset = -1;
--      io_req->error = 0;
+-static int setup_one_range(int fd, char *driver, unsigned long start, 
+-                         unsigned long pfn, int len, 
+-                         struct mem_region *region)
++void __init kmap_init(void)
+ {
+-      int i;
+-
+-      down(&regions_sem);
+-      for(i = 0; i < NREGIONS; i++){
+-              if(regions[i] == NULL) break;           
+-      }
+-      if(i == NREGIONS){
+-              printk("setup_range : no free regions\n");
+-              i = -1;
+-              goto out;
+-      }
+-
+-      if(fd == -1)
+-              fd = create_mem_file(len);
++      unsigned long kmap_vstart;
  
--        if(dev->cow.file != NULL) cowify_req(io_req, dev);
-+      if(dev->cow.file != NULL) 
-+              cowify_req(io_req, dev->cow.bitmap, dev->cow.bitmap_offset,
-+                         dev->cow.bitmap_len);
-+
-       return(0);
- }
+-      if(region == NULL){
+-              region = alloc_bootmem_low_pages(sizeof(*region));
+-              if(region == NULL)
+-                      panic("Failed to allocating mem_region");
+-      }
++      /* cache the first kmap pte */
++      kmap_vstart = __fix_to_virt(FIX_KMAP_BEGIN);
++      kmap_pte = kmap_get_fixmap_pte(kmap_vstart);
  
-@@ -841,7 +1038,7 @@
-       int err, n;
+-      *region = ((struct mem_region) { .driver        = driver,
+-                                       .start_pfn     = pfn,
+-                                       .start         = start, 
+-                                       .len           = len, 
+-                                       .fd            = fd } );
+-      regions[i] = region;
+- out:
+-      up(&regions_sem);
+-      return(i);
++      kmap_prot = PAGE_KERNEL;
+ }
  
-       if(thread_fd == -1){
--              while(!list_empty(&q->queue_head)){
-+              while(!elv_queue_empty(q)){
-                       req = elv_next_request(q);
-                       err = prepare_request(req, &io_req);
-                       if(!err){
-@@ -851,7 +1048,8 @@
-               }
-       }
-       else {
--              if(do_ubd || list_empty(&q->queue_head)) return;
-+              if(do_ubd || elv_queue_empty(q))
-+                      return;
-               req = elv_next_request(q);
-               err = prepare_request(req, &io_req);
-               if(!err){
-@@ -885,7 +1083,7 @@
-               g.heads = 128;
-               g.sectors = 32;
-               g.cylinders = dev->size / (128 * 32 * 512);
--              g.start = 2;
-+              g.start = get_start_sect(inode->i_bdev);
-               return(copy_to_user(loc, &g, sizeof(g)) ? -EFAULT : 0);
+-#ifdef CONFIG_HIGHMEM
+ static void init_highmem(void)
+ {
+       pgd_t *pgd;
+@@ -268,63 +173,20 @@
  
-       case HDIO_SET_UNMASKINTR:
-@@ -935,6 +1133,142 @@
-       return(-EINVAL);
+       kmap_init();
  }
+-
+-void setup_highmem(unsigned long len)
+-{
+-      struct mem_region *region;
+-      struct page *page, *map;
+-      unsigned long phys;
+-      int i, cur, index;
+-
+-      phys = physmem_size;
+-      do {
+-              cur = min(len, (unsigned long) REGION_SIZE);
+-              i = setup_one_range(-1, NULL, -1, phys >> PAGE_SHIFT, cur, 
+-                                  NULL);
+-              if(i == -1){
+-                      printk("setup_highmem - setup_one_range failed\n");
+-                      return;
+-              }
+-              region = regions[i];
+-              index = phys / PAGE_SIZE;
+-              region->mem_map = &mem_map[index];
+-
+-              map = region->mem_map;
+-              for(i = 0; i < (cur >> PAGE_SHIFT); i++){
+-                      page = &map[i];
+-                      ClearPageReserved(page);
+-                      set_bit(PG_highmem, &page->flags);
+-                      set_page_count(page, 1);
+-                      __free_page(page);
+-              }
+-              phys += cur;
+-              len -= cur;
+-      } while(len > 0);
+-}
+-#endif
++#endif /* CONFIG_HIGHMEM */
  
-+static int ubd_check_remapped(int fd, unsigned long address, int is_write,
-+                            __u64 offset)
-+{
-+      __u64 bitmap_offset;
-+      unsigned long new_bitmap[2];
-+      int i, err, n;
-+
-+      /* If it's not a write access, we can't do anything about it */
-+      if(!is_write)
-+              return(0);
-+
-+      /* We have a write */
-+      for(i = 0; i < sizeof(ubd_dev) / sizeof(ubd_dev[0]); i++){
-+              struct ubd *dev = &ubd_dev[i];
-+
-+              if((dev->fd != fd) && (dev->cow.fd != fd))
-+                      continue;
-+
-+              /* It's a write to a ubd device */
-+
-+              if(!dev->openflags.w){
-+                      /* It's a write access on a read-only device - probably
-+                       * shouldn't happen.  If the kernel is trying to change
-+                       * something with no intention of writing it back out,
-+                       * then this message will clue us in that this needs
-+                       * fixing
-+                       */
-+                      printk("Write access to mapped page from readonly ubd "
-+                             "device %d\n", i);
-+                      return(0);
-+              }
-+
-+              /* It's a write to a writeable ubd device - it must be COWed
-+               * because, otherwise, the page would have been mapped in 
-+               * writeable
-+               */
-+
-+              if(!dev->cow.file)
-+                      panic("Write fault on writeable non-COW ubd device %d",
-+                            i);
-+
-+              /* It should also be an access to the backing file since the 
-+               * COW pages should be mapped in read-write
-+               */
-+
-+              if(fd == dev->fd)
-+                      panic("Write fault on a backing page of ubd "
-+                            "device %d\n", i);
-+
-+              /* So, we do the write, copying the backing data to the COW 
-+               * file... 
-+               */
-+
-+              err = os_seek_file(dev->fd, offset + dev->cow.data_offset);
-+              if(err < 0)
-+                      panic("Couldn't seek to %lld in COW file of ubd "
-+                            "device %d, err = %d", 
-+                            offset + dev->cow.data_offset, i, -err);
-+
-+              n = os_write_file(dev->fd, (void *) address, PAGE_SIZE);
-+              if(n != PAGE_SIZE)
-+                      panic("Couldn't copy data to COW file of ubd "
-+                            "device %d, err = %d", i, -n);
-+
-+              /* ... updating the COW bitmap... */
-+
-+              cowify_bitmap(offset, PAGE_SIZE, NULL, &bitmap_offset, 
-+                            dev->cow.bitmap, dev->cow.bitmap_offset, 
-+                            new_bitmap, dev->cow.bitmap_len);
-+
-+              err = os_seek_file(dev->fd, bitmap_offset);
-+              if(err < 0)
-+                      panic("Couldn't seek to %lld in COW file of ubd "
-+                            "device %d, err = %d", bitmap_offset, i, -err);
-+
-+              n = os_write_file(dev->fd, new_bitmap, sizeof(new_bitmap));
-+              if(n != sizeof(new_bitmap))
-+                      panic("Couldn't update bitmap  of ubd device %d, "
-+                            "err = %d", i, -n);
-+              
-+              /* Maybe we can map the COW page in, and maybe we can't.  If
-+               * it is a pre-V3 COW file, we can't, since the alignment will 
-+               * be wrong.  If it is a V3 or later COW file which has been 
-+               * moved to a system with a larger page size, then maybe we 
-+               * can't, depending on the exact location of the page.
-+               */
-+
-+              offset += dev->cow.data_offset;
-+
-+              /* Remove the remapping, putting the original anonymous page
-+               * back.  If the COW file can be mapped in, that is done.
-+               * Otherwise, the COW page is read in.
-+               */
+ void paging_init(void)
+ {
+-      struct mem_region *region;
+-      unsigned long zones_size[MAX_NR_ZONES], start, end, vaddr;
+-      int i, index;
++      unsigned long zones_size[MAX_NR_ZONES], vaddr;
++      int i;
+       empty_zero_page = (unsigned long *) alloc_bootmem_low_pages(PAGE_SIZE);
+       empty_bad_page = (unsigned long *) alloc_bootmem_low_pages(PAGE_SIZE);
+       for(i=0;i<sizeof(zones_size)/sizeof(zones_size[0]);i++) 
+               zones_size[i] = 0;
+-      zones_size[0] = (high_physmem >> PAGE_SHIFT) - 
+-              (uml_physmem >> PAGE_SHIFT);
++      zones_size[0] = (end_iomem >> PAGE_SHIFT) - (uml_physmem >> PAGE_SHIFT);
+       zones_size[2] = highmem >> PAGE_SHIFT;
+       free_area_init(zones_size);
+-      start = phys_region_index(__pa(uml_physmem));
+-      end = phys_region_index(__pa(high_physmem - 1));
+-      for(i = start; i <= end; i++){
+-              region = regions[i];
+-              index = (region->start - uml_physmem) / PAGE_SIZE;
+-              region->mem_map = &mem_map[index];
+-              if(i > start) free_bootmem(__pa(region->start), region->len);
+-      }
+       /*
+        * Fixed mappings, only the page table structure has to be
+@@ -335,15 +197,33 @@
+ #ifdef CONFIG_HIGHMEM
+       init_highmem();
+-      setup_highmem(highmem);
+ #endif
+ }
+-pte_t __bad_page(void)
++struct page *arch_validate(struct page *page, int mask, int order)
+ {
+-      clear_page(empty_bad_page);
+-        return pte_mkdirty(mk_pte((struct page *) empty_bad_page, 
+-                                PAGE_SHARED));
++      unsigned long addr, zero = 0;
++      int i;
 +
-+              if(!physmem_remove_mapping((void *) address))
-+                      panic("Address 0x%lx not remapped by ubd device %d", 
-+                            address, i);
-+              if((offset % UBD_MMAP_BLOCK_SIZE) == 0)
-+                      physmem_subst_mapping((void *) address, dev->fd, 
-+                                            offset, 1);
-+              else {
-+                      err = os_seek_file(dev->fd, offset);
-+                      if(err < 0)
-+                              panic("Couldn't seek to %lld in COW file of "
-+                                    "ubd device %d, err = %d", offset, i, 
-+                                    -err);
++ again:
++      if(page == NULL) return(page);
++      if(PageHighMem(page)) return(page);
 +
-+                      n = os_read_file(dev->fd, (void *) address, PAGE_SIZE);
-+                      if(n != PAGE_SIZE)
-+                              panic("Failed to read page from offset %llx of "
-+                                    "COW file of ubd device %d, err = %d",
-+                                    offset, i, -n);
++      addr = (unsigned long) page_address(page);
++      for(i = 0; i < (1 << order); i++){
++              current->thread.fault_addr = (void *) addr;
++              if(__do_copy_to_user((void *) addr, &zero, 
++                                   sizeof(zero),
++                                   &current->thread.fault_addr,
++                                   &current->thread.fault_catcher)){
++                      if(!(mask & __GFP_WAIT)) return(NULL);
++                      else break;
 +              }
-+
-+              return(1);
++              addr += PAGE_SIZE;
 +      }
-+
-+      /* It's not a write on a ubd device */
-+      return(0);
-+}
-+
-+static struct remapper ubd_remapper = {
-+      .list   = LIST_HEAD_INIT(ubd_remapper.list),
-+      .proc   = ubd_check_remapped,
-+};
-+
-+static int ubd_remapper_setup(void)
-+{
-+      if(ubd_do_mmap)
-+              register_remapper(&ubd_remapper);
-+
-+      return(0);
-+}
-+
-+__initcall(ubd_remapper_setup);
-+
- /*
-  * Overrides for Emacs so that we follow Linus's tabbing style.
-  * Emacs will notice this stuff at the end of the file and automatically
-diff -Naur a/arch/um/drivers/ubd_user.c b/arch/um/drivers/ubd_user.c
---- a/arch/um/drivers/ubd_user.c       2004-03-10 08:20:33.000000000 -0500
-+++ b/arch/um/drivers/ubd_user.c       2004-03-10 08:36:14.000000000 -0500
-@@ -11,11 +11,8 @@
- #include <signal.h>
- #include <string.h>
- #include <netinet/in.h>
--#include <sys/stat.h>
- #include <sys/time.h>
--#include <sys/fcntl.h>
- #include <sys/socket.h>
--#include <string.h>
- #include <sys/mman.h>
- #include <sys/param.h>
- #include "asm/types.h"
-@@ -24,146 +21,30 @@
- #include "user.h"
- #include "ubd_user.h"
- #include "os.h"
-+#include "cow.h"
++      if(i == (1 << order)) return(page);
++      page = alloc_pages(mask, order);
++      goto again;
+ }
  
- #include <endian.h>
- #include <byteswap.h>
--#if __BYTE_ORDER == __BIG_ENDIAN
--# define ntohll(x) (x)
--# define htonll(x) (x)
--#elif __BYTE_ORDER == __LITTLE_ENDIAN
--# define ntohll(x)  bswap_64(x)
--# define htonll(x)  bswap_64(x)
--#else
--#error "__BYTE_ORDER not defined"
--#endif
+ /* This can't do anything because nothing in the kernel image can be freed
+@@ -401,395 +281,6 @@
+         printk("%d pages swap cached\n", cached);
+ }
+-static int __init uml_mem_setup(char *line, int *add)
+-{
+-      char *retptr;
+-      physmem_size = memparse(line,&retptr);
+-      return 0;
+-}
+-__uml_setup("mem=", uml_mem_setup,
+-"mem=<Amount of desired ram>\n"
+-"    This controls how much \"physical\" memory the kernel allocates\n"
+-"    for the system. The size is specified as a number followed by\n"
+-"    one of 'k', 'K', 'm', 'M', which have the obvious meanings.\n"
+-"    This is not related to the amount of memory in the physical\n"
+-"    machine. It can be more, and the excess, if it's ever used, will\n"
+-"    just be swapped out.\n        Example: mem=64M\n\n"
+-);
 -
--#define PATH_LEN_V1 256
+-struct page *arch_validate(struct page *page, int mask, int order)
+-{
+-      unsigned long addr, zero = 0;
+-      int i;
 -
--struct cow_header_v1 {
--      int magic;
--      int version;
--      char backing_file[PATH_LEN_V1];
--      time_t mtime;
--      __u64 size;
--      int sectorsize;
--};
+- again:
+-      if(page == NULL) return(page);
+-      if(PageHighMem(page)) return(page);
 -
--#define PATH_LEN_V2 MAXPATHLEN
+-      addr = (unsigned long) page_address(page);
+-      for(i = 0; i < (1 << order); i++){
+-              current->thread.fault_addr = (void *) addr;
+-              if(__do_copy_to_user((void *) addr, &zero, 
+-                                   sizeof(zero),
+-                                   &current->thread.fault_addr,
+-                                   &current->thread.fault_catcher)){
+-                      if(!(mask & __GFP_WAIT)) return(NULL);
+-                      else break;
+-              }
+-              addr += PAGE_SIZE;
+-      }
+-      if(i == (1 << order)) return(page);
+-      page = alloc_pages(mask, order);
+-      goto again;
+-}
 -
--struct cow_header_v2 {
--      unsigned long magic;
--      unsigned long version;
--      char backing_file[PATH_LEN_V2];
--      time_t mtime;
--      __u64 size;
--      int sectorsize;
--};
+-DECLARE_MUTEX(vm_reserved_sem);
+-static struct list_head vm_reserved = LIST_HEAD_INIT(vm_reserved);
 -
--union cow_header {
--      struct cow_header_v1 v1;
--      struct cow_header_v2 v2;
+-/* Static structures, linked in to the list in early boot */
+-static struct vm_reserved head = {
+-      .list           = LIST_HEAD_INIT(head.list),
+-      .start          = 0,
+-      .end            = 0xffffffff
 -};
 -
--#define COW_MAGIC 0x4f4f4f4d  /* MOOO */
--#define COW_VERSION 2
+-static struct vm_reserved tail = {
+-      .list           = LIST_HEAD_INIT(tail.list),
+-      .start          = 0,
+-      .end            = 0xffffffff
+-};
 -
--static void sizes(__u64 size, int sectorsize, int bitmap_offset, 
--                unsigned long *bitmap_len_out, int *data_offset_out)
+-void set_usable_vm(unsigned long start, unsigned long end)
 -{
--      *bitmap_len_out = (size + sectorsize - 1) / (8 * sectorsize);
--
--      *data_offset_out = bitmap_offset + *bitmap_len_out;
--      *data_offset_out = (*data_offset_out + sectorsize - 1) / sectorsize;
--      *data_offset_out *= sectorsize;
+-      list_add(&head.list, &vm_reserved);
+-      list_add(&tail.list, &head.list);
+-      head.end = start;
+-      tail.start = end;
 -}
 -
--static int read_cow_header(int fd, int *magic_out, char **backing_file_out, 
--                         time_t *mtime_out, __u64 *size_out, 
--                         int *sectorsize_out, int *bitmap_offset_out)
+-int reserve_vm(unsigned long start, unsigned long end, void *e)
+-             
 -{
--      union cow_header *header;
--      char *file;
--      int err, n;
--      unsigned long version, magic;
+-      struct vm_reserved *entry = e, *reserved, *prev;
+-      struct list_head *ele;
+-      int err;
 -
--      header = um_kmalloc(sizeof(*header));
--      if(header == NULL){
--              printk("read_cow_header - Failed to allocate header\n");
--              return(-ENOMEM);
+-      down(&vm_reserved_sem);
+-      list_for_each(ele, &vm_reserved){
+-              reserved = list_entry(ele, struct vm_reserved, list);
+-              if(reserved->start >= end) goto found;
 -      }
--      err = -EINVAL;
--      n = read(fd, header, sizeof(*header));
--      if(n < offsetof(typeof(header->v1), backing_file)){
--              printk("read_cow_header - short header\n");
+-      panic("Reserved vm out of range");
+- found:
+-      prev = list_entry(ele->prev, struct vm_reserved, list);
+-      if(prev->end > start)
+-              panic("Can't reserve vm");
+-      if(entry == NULL)
+-              entry = kmalloc(sizeof(*entry), GFP_KERNEL);
+-      if(entry == NULL){
+-              printk("reserve_vm : Failed to allocate entry\n");
+-              err = -ENOMEM;
 -              goto out;
 -      }
+-      *entry = ((struct vm_reserved) 
+-              { .list         = LIST_HEAD_INIT(entry->list),
+-                .start        = start,
+-                .end          = end });
+-      list_add(&entry->list, &prev->list);
+-      err = 0;
+- out:
+-      up(&vm_reserved_sem);
+-      return(0);
+-}
 -
--      magic = header->v1.magic;
--      if(magic == COW_MAGIC) {
--              version = header->v1.version;
--      }
--      else if(magic == ntohl(COW_MAGIC)){
--              version = ntohl(header->v1.version);
+-unsigned long get_vm(unsigned long len)
+-{
+-      struct vm_reserved *this, *next;
+-      struct list_head *ele;
+-      unsigned long start;
+-      int err;
+-      
+-      down(&vm_reserved_sem);
+-      list_for_each(ele, &vm_reserved){
+-              this = list_entry(ele, struct vm_reserved, list);
+-              next = list_entry(ele->next, struct vm_reserved, list);
+-              if((this->start < next->start) && 
+-                 (this->end + len + PAGE_SIZE <= next->start))
+-                      goto found;
 -      }
--      else goto out;
+-      up(&vm_reserved_sem);
+-      return(0);
+- found:
+-      up(&vm_reserved_sem);
+-      start = (unsigned long) UML_ROUND_UP(this->end) + PAGE_SIZE;
+-      err = reserve_vm(start, start + len, NULL);
+-      if(err) return(0);
+-      return(start);
+-}
 -
--      *magic_out = COW_MAGIC;
+-int nregions(void)
+-{
+-      return(NREGIONS);
+-}
 -
--      if(version == 1){
--              if(n < sizeof(header->v1)){
--                      printk("read_cow_header - failed to read V1 header\n");
--                      goto out;
--              }
--              *mtime_out = header->v1.mtime;
--              *size_out = header->v1.size;
--              *sectorsize_out = header->v1.sectorsize;
--              *bitmap_offset_out = sizeof(header->v1);
--              file = header->v1.backing_file;
--      }
--      else if(version == 2){
--              if(n < sizeof(header->v2)){
--                      printk("read_cow_header - failed to read V2 header\n");
--                      goto out;
+-void setup_range(int fd, char *driver, unsigned long start, unsigned long pfn,
+-               unsigned long len, int need_vm, struct mem_region *region, 
+-               void *reserved)
+-{
+-      int i, cur;
+-
+-      do {
+-              cur = min(len, (unsigned long) REGION_SIZE);
+-              i = setup_one_range(fd, driver, start, pfn, cur, region);
+-              region = regions[i];
+-              if(need_vm && setup_region(region, reserved)){
+-                      kfree(region);
+-                      regions[i] = NULL;
+-                      return;
 -              }
--              *mtime_out = ntohl(header->v2.mtime);
--              *size_out = ntohll(header->v2.size);
--              *sectorsize_out = ntohl(header->v2.sectorsize);
--              *bitmap_offset_out = sizeof(header->v2);
--              file = header->v2.backing_file;
--      }
--      else {
--              printk("read_cow_header - invalid COW version\n");
--              goto out;
--      }
--      err = -ENOMEM;
--      *backing_file_out = uml_strdup(file);
--      if(*backing_file_out == NULL){
--              printk("read_cow_header - failed to allocate backing file\n");
--              goto out;
--      }
--      err = 0;
-- out:
--      kfree(header);
--      return(err);
--}
- static int same_backing_files(char *from_cmdline, char *from_cow, char *cow)
- {
--      struct stat buf1, buf2;
-+      struct uml_stat buf1, buf2;
-+      int err;
-       if(from_cmdline == NULL) return(1);
-       if(!strcmp(from_cmdline, from_cow)) return(1);
--      if(stat(from_cmdline, &buf1) < 0){
--              printk("Couldn't stat '%s', errno = %d\n", from_cmdline, 
--                     errno);
-+      err = os_stat_file(from_cmdline, &buf1);
-+      if(err < 0){
-+              printk("Couldn't stat '%s', err = %d\n", from_cmdline, -err);
-               return(1);
-       }
--      if(stat(from_cow, &buf2) < 0){
--              printk("Couldn't stat '%s', errno = %d\n", from_cow, errno);
-+      err = os_stat_file(from_cow, &buf2);
-+      if(err < 0){
-+              printk("Couldn't stat '%s', err = %d\n", from_cow, -err);
-               return(1);
-       }
--      if((buf1.st_dev == buf2.st_dev) && (buf1.st_ino == buf2.st_ino))
-+      if((buf1.ust_dev == buf2.ust_dev) && (buf1.ust_ino == buf2.ust_ino))
-               return(1);
-       printk("Backing file mismatch - \"%s\" requested,\n"
-@@ -174,20 +55,21 @@
- static int backing_file_mismatch(char *file, __u64 size, time_t mtime)
- {
--      struct stat64 buf;
-+      unsigned long modtime;
-       long long actual;
-       int err;
--      if(stat64(file, &buf) < 0){
--              printk("Failed to stat backing file \"%s\", errno = %d\n",
--                     file, errno);
--              return(-errno);
-+      err = os_file_modtime(file, &modtime);
-+      if(err < 0){
-+              printk("Failed to get modification time of backing file "
-+                     "\"%s\", err = %d\n", file, -err);
-+              return(err);
-       }
-       err = os_file_size(file, &actual);
--      if(err){
-+      if(err < 0){
-               printk("Failed to get size of backing file \"%s\", "
--                     "errno = %d\n", file, -err);
-+                     "err = %d\n", file, -err);
-               return(err);
-       }
-@@ -196,9 +78,9 @@
-                      "file\n", size, actual);
-               return(-EINVAL);
-       }
--      if(buf.st_mtime != mtime){
-+      if(modtime != mtime){
-               printk("mtime mismatch (%ld vs %ld) of COW header vs backing "
--                     "file\n", mtime, buf.st_mtime);
-+                     "file\n", mtime, modtime);
-               return(-EINVAL);
-       }
-       return(0);
-@@ -209,124 +91,16 @@
-       int err;
-       err = os_seek_file(fd, offset);
--      if(err != 0) return(-errno);
--      err = read(fd, buf, len);
--      if(err < 0) return(-errno);
--      return(0);
+-              start += cur;
+-              if(pfn != -1) pfn += cur;
+-              len -= cur;
+-      } while(len > 0);
 -}
-+      if(err < 0) 
-+              return(err);
--static int absolutize(char *to, int size, char *from)
+-
+-struct iomem {
+-      char *name;
+-      int fd;
+-      unsigned long size;
+-};
+-
+-/* iomem regions can only be added on the command line at the moment.  
+- * Locking will be needed when they can be added via mconsole.
+- */
+-
+-struct iomem iomem_regions[NREGIONS] = { [ 0 ... NREGIONS - 1 ] =
+-                                       { .name        = NULL,
+-                                         .fd          = -1,
+-                                         .size        = 0 } };
+-
+-int num_iomem_regions = 0;
+-
+-void add_iomem(char *name, int fd, unsigned long size)
 -{
--      char save_cwd[256], *slash;
--      int remaining;
-+      err = os_read_file(fd, buf, len);
-+      if(err < 0) 
-+              return(err);
--      if(getcwd(save_cwd, sizeof(save_cwd)) == NULL) {
--              printk("absolutize : unable to get cwd - errno = %d\n", errno);
--              return(-1);
--      }
--      slash = strrchr(from, '/');
--      if(slash != NULL){
--              *slash = '\0';
--              if(chdir(from)){
--                      *slash = '/';
--                      printk("absolutize : Can't cd to '%s' - errno = %d\n",
--                             from, errno);
--                      return(-1);
--              }
--              *slash = '/';
--              if(getcwd(to, size) == NULL){
--                      printk("absolutize : unable to get cwd of '%s' - "
--                             "errno = %d\n", from, errno);
--                      return(-1);
--              }
--              remaining = size - strlen(to);
--              if(strlen(slash) + 1 > remaining){
--                      printk("absolutize : unable to fit '%s' into %d "
--                             "chars\n", from, size);
--                      return(-1);
--              }
--              strcat(to, slash);
--      }
--      else {
--              if(strlen(save_cwd) + 1 + strlen(from) + 1 > size){
--                      printk("absolutize : unable to fit '%s' into %d "
--                             "chars\n", from, size);
--                      return(-1);
--              }
--              strcpy(to, save_cwd);
--              strcat(to, "/");
--              strcat(to, from);
--      }
--      chdir(save_cwd);
-       return(0);
- }
--static int write_cow_header(char *cow_file, int fd, char *backing_file, 
--                          int sectorsize, long long *size)
+-      if(num_iomem_regions == sizeof(iomem_regions)/sizeof(iomem_regions[0]))
+-              return;
+-      size = (size + PAGE_SIZE - 1) & PAGE_MASK;
+-      iomem_regions[num_iomem_regions++] = 
+-              ((struct iomem) { .name         = name,
+-                                .fd           = fd,
+-                                .size         = size } );
+-}
+-
+-int setup_iomem(void)
 -{
--        struct cow_header_v2 *header;
--      struct stat64 buf;
--      int err;
+-      struct iomem *iomem;
+-      int i;
 -
--      err = os_seek_file(fd, 0);
--      if(err != 0){
--              printk("write_cow_header - lseek failed, errno = %d\n", errno);
--              return(-errno);
+-      for(i = 0; i < num_iomem_regions; i++){
+-              iomem = &iomem_regions[i];
+-              setup_range(iomem->fd, iomem->name, -1, -1, iomem->size, 1, 
+-                          NULL, NULL);
 -      }
+-      return(0);
+-}
 -
--      err = -ENOMEM;
--      header = um_kmalloc(sizeof(*header));
--      if(header == NULL){
--              printk("Failed to allocate COW V2 header\n");
--              goto out;
--      }
--      header->magic = htonl(COW_MAGIC);
--      header->version = htonl(COW_VERSION);
+-__initcall(setup_iomem);
 -
--      err = -EINVAL;
--      if(strlen(backing_file) > sizeof(header->backing_file) - 1){
--              printk("Backing file name \"%s\" is too long - names are "
--                     "limited to %d characters\n", backing_file, 
--                     sizeof(header->backing_file) - 1);
--              goto out_free;
--      }
+-#define PFN_UP(x)     (((x) + PAGE_SIZE-1) >> PAGE_SHIFT)
+-#define PFN_DOWN(x)   ((x) >> PAGE_SHIFT)
 -
--      if(absolutize(header->backing_file, sizeof(header->backing_file), 
--                    backing_file))
--              goto out_free;
+-/* Changed during early boot */
+-static struct mem_region physmem_region;
+-static struct vm_reserved physmem_reserved;
 -
--      err = stat64(header->backing_file, &buf);
--      if(err < 0){
--              printk("Stat of backing file '%s' failed, errno = %d\n",
--                     header->backing_file, errno);
--              err = -errno;
--              goto out_free;
--      }
+-void setup_physmem(unsigned long start, unsigned long reserve_end,
+-                 unsigned long len)
+-{
+-      struct mem_region *region = &physmem_region;
+-      struct vm_reserved *reserved = &physmem_reserved;
+-      unsigned long cur, pfn = 0;
+-      int do_free = 1, bootmap_size;
 -
--      err = os_file_size(header->backing_file, size);
--      if(err){
--              printk("Couldn't get size of backing file '%s', errno = %d\n",
--                     header->backing_file, -*size);
--              goto out_free;
--      }
+-      do {
+-              cur = min(len, (unsigned long) REGION_SIZE);
+-              if(region == NULL) 
+-                      region = alloc_bootmem_low_pages(sizeof(*region));
+-              if(reserved == NULL) 
+-                      reserved = alloc_bootmem_low_pages(sizeof(*reserved));
+-              if((region == NULL) || (reserved == NULL))
+-                      panic("Couldn't allocate physmem region or vm "
+-                            "reservation\n");
+-              setup_range(-1, NULL, start, pfn, cur, 1, region, reserved);
 -
--      header->mtime = htonl(buf.st_mtime);
--      header->size = htonll(*size);
--      header->sectorsize = htonl(sectorsize);
+-              if(do_free){
+-                      unsigned long reserve = reserve_end - start;
+-                      int pfn = PFN_UP(__pa(reserve_end));
+-                      int delta = (len - reserve) >> PAGE_SHIFT;
 -
--      err = write(fd, header, sizeof(*header));
--      if(err != sizeof(*header)){
--              printk("Write of header to new COW file '%s' failed, "
--                     "errno = %d\n", cow_file, errno);
--              goto out_free;
+-                      bootmap_size = init_bootmem(pfn, pfn + delta);
+-                      free_bootmem(__pa(reserve_end) + bootmap_size,
+-                                   cur - bootmap_size - reserve);
+-                      do_free = 0;
+-              }
+-              start += cur;
+-              pfn += cur >> PAGE_SHIFT;
+-              len -= cur;
+-              region = NULL;
+-              reserved = NULL;
+-      } while(len > 0);
+-}
+-
+-struct mem_region *phys_region(unsigned long phys)
+-{
+-      unsigned int n = phys_region_index(phys);
+-
+-      if(regions[n] == NULL) 
+-              panic("Physical address in uninitialized region");
+-      return(regions[n]);
+-}
+-
+-unsigned long phys_offset(unsigned long phys)
+-{
+-      return(phys_addr(phys));
+-}
+-
+-struct page *phys_mem_map(unsigned long phys)
+-{
+-      return((struct page *) phys_region(phys)->mem_map);
+-}
+-
+-struct page *pte_mem_map(pte_t pte)
+-{
+-      return(phys_mem_map(pte_val(pte)));
+-}
+-
+-struct mem_region *page_region(struct page *page, int *index_out)
+-{
+-      int i;
+-      struct mem_region *region;
+-      struct page *map;
+-
+-      for(i = 0; i < NREGIONS; i++){
+-              region = regions[i];
+-              if(region == NULL) continue;
+-              map = region->mem_map;
+-              if((page >= map) && (page < &map[region->len >> PAGE_SHIFT])){
+-                      if(index_out != NULL) *index_out = i;
+-                      return(region);
+-              }
 -      }
--      err = 0;
-- out_free:
--      kfree(header);
-- out:
--      return(err);
+-      panic("No region found for page");
+-      return(NULL);
 -}
 -
- int open_ubd_file(char *file, struct openflags *openflags, 
-                 char **backing_file_out, int *bitmap_offset_out, 
-                 unsigned long *bitmap_len_out, int *data_offset_out, 
-@@ -334,26 +108,36 @@
- {
-       time_t mtime;
-       __u64 size;
-+      __u32 version, align;
-       char *backing_file;
--        int fd, err, sectorsize, magic, same, mode = 0644;
-+      int fd, err, sectorsize, same, mode = 0644;
--        if((fd = os_open_file(file, *openflags, mode)) < 0){
-+      fd = os_open_file(file, *openflags, mode);
-+      if(fd < 0){
-               if((fd == -ENOENT) && (create_cow_out != NULL))
-                       *create_cow_out = 1;
-                 if(!openflags->w ||
-                    ((errno != EROFS) && (errno != EACCES))) return(-errno);
-               openflags->w = 0;
--                if((fd = os_open_file(file, *openflags, mode)) < 0) 
-+              fd = os_open_file(file, *openflags, mode); 
-+              if(fd < 0) 
-                       return(fd);
-         }
-+
-+      err = os_lock_file(fd, openflags->w);
-+      if(err < 0){
-+              printk("Failed to lock '%s', err = %d\n", file, -err);
-+              goto out_close;
-+      }
-+      
-       if(backing_file_out == NULL) return(fd);
--      err = read_cow_header(fd, &magic, &backing_file, &mtime, &size, 
--                            &sectorsize, bitmap_offset_out);
-+      err = read_cow_header(file_reader, &fd, &version, &backing_file, &mtime,
-+                            &size, &sectorsize, &align, bitmap_offset_out);
-       if(err && (*backing_file_out != NULL)){
-               printk("Failed to read COW header from COW file \"%s\", "
--                     "errno = %d\n", file, err);
--              goto error;
-+                     "errno = %d\n", file, -err);
-+              goto out_close;
-       }
-       if(err) return(fd);
-@@ -363,36 +147,33 @@
-       if(!same && !backing_file_mismatch(*backing_file_out, size, mtime)){
-               printk("Switching backing file to '%s'\n", *backing_file_out);
--              err = write_cow_header(file, fd, *backing_file_out, 
--                                     sectorsize, &size);
-+              err = write_cow_header(file, fd, *backing_file_out,
-+                                     sectorsize, align, &size);
-               if(err){
--                      printk("Switch failed, errno = %d\n", err);
-+                      printk("Switch failed, errno = %d\n", -err);
-                       return(err);
-               }
-       }
-       else {
-               *backing_file_out = backing_file;
-               err = backing_file_mismatch(*backing_file_out, size, mtime);
--              if(err) goto error;
-+              if(err) goto out_close;
-       }
--      sizes(size, sectorsize, *bitmap_offset_out, bitmap_len_out, 
--            data_offset_out);
-+      cow_sizes(version, size, sectorsize, align, *bitmap_offset_out, 
-+                bitmap_len_out, data_offset_out);
-         return(fd);
-- error:
--      close(fd);
-+ out_close:
-+      os_close_file(fd);
-       return(err);
- }
- int create_cow_file(char *cow_file, char *backing_file, struct openflags flags,
--                  int sectorsize, int *bitmap_offset_out, 
-+                  int sectorsize, int alignment, int *bitmap_offset_out, 
-                   unsigned long *bitmap_len_out, int *data_offset_out)
- {
--      __u64 blocks;
--      long zero;
--      int err, fd, i;
--      long long size;
-+      int err, fd;
-       flags.c = 1;
-       fd = open_ubd_file(cow_file, &flags, NULL, NULL, NULL, NULL, NULL);
-@@ -403,57 +184,49 @@
-               goto out;
-       }
--      err = write_cow_header(cow_file, fd, backing_file, sectorsize, &size);
--      if(err) goto out_close;
+-unsigned long page_to_pfn(struct page *page)
+-{
+-      struct mem_region *region = page_region(page, NULL);
 -
--      blocks = (size + sectorsize - 1) / sectorsize;
--      blocks = (blocks + sizeof(long) * 8 - 1) / (sizeof(long) * 8);
--      zero = 0;
--      for(i = 0; i < blocks; i++){
--              err = write(fd, &zero, sizeof(zero));
--              if(err != sizeof(zero)){
--                      printk("Write of bitmap to new COW file '%s' failed, "
--                             "errno = %d\n", cow_file, errno);
--                      goto out_close;
+-      return(region->start_pfn + (page - (struct page *) region->mem_map));
+-}
+-
+-struct mem_region *pfn_to_region(unsigned long pfn, int *index_out)
+-{
+-      struct mem_region *region;
+-      int i;
+-
+-      for(i = 0; i < NREGIONS; i++){
+-              region = regions[i];
+-              if(region == NULL)
+-                      continue;
+-
+-              if((region->start_pfn <= pfn) &&
+-                 (region->start_pfn + (region->len >> PAGE_SHIFT) > pfn)){
+-                      if(index_out != NULL) 
+-                              *index_out = i;
+-                      return(region);
 -              }
 -      }
+-      return(NULL);
+-}
 -
--      sizes(size, sectorsize, sizeof(struct cow_header_v2), 
--            bitmap_len_out, data_offset_out);
--      *bitmap_offset_out = sizeof(struct cow_header_v2);
+-struct page *pfn_to_page(unsigned long pfn)
+-{
+-      struct mem_region *region = pfn_to_region(pfn, NULL);
+-      struct page *mem_map = (struct page *) region->mem_map;
 -
--      return(fd);
+-      return(&mem_map[pfn - region->start_pfn]);
+-}
 -
-- out_close:
--      close(fd);
-+      err = init_cow_file(fd, cow_file, backing_file, sectorsize, alignment,
-+                          bitmap_offset_out, bitmap_len_out, 
-+                          data_offset_out);
-+      if(!err)
-+              return(fd);
-+      os_close_file(fd);
-  out:
-       return(err);
- }
-+/* XXX Just trivial wrappers around os_read_file and os_write_file */
- int read_ubd_fs(int fd, void *buffer, int len)
- {
--      int n;
+-unsigned long phys_to_pfn(unsigned long p)
+-{
+-      struct mem_region *region = regions[phys_region_index(p)];
 -
--      n = read(fd, buffer, len);
--      if(n < 0) return(-errno);
--      else return(n);
-+      return(os_read_file(fd, buffer, len));
- }
- int write_ubd_fs(int fd, char *buffer, int len)
- {
+-      return(region->start_pfn + (phys_addr(p) >> PAGE_SHIFT));
+-}
+-
+-unsigned long pfn_to_phys(unsigned long pfn)
+-{
 -      int n;
+-      struct mem_region *region = pfn_to_region(pfn, &n);
 -
--      n = write(fd, buffer, len);
--      if(n < 0) return(-errno);
--      else return(n);
-+      return(os_write_file(fd, buffer, len));
- }
--int ubd_is_dir(char *file)
-+static int update_bitmap(struct io_thread_req *req)
- {
--      struct stat64 buf;
-+      int n;
-+
-+      if(req->cow_offset == -1)
-+              return(0);
-+
-+      n = os_seek_file(req->fds[1], req->cow_offset);
-+      if(n < 0){
-+              printk("do_io - bitmap lseek failed : err = %d\n", -n);
-+              return(1);
-+      }
-+
-+      n = os_write_file(req->fds[1], &req->bitmap_words,
-+                        sizeof(req->bitmap_words));
-+      if(n != sizeof(req->bitmap_words)){
-+              printk("do_io - bitmap update failed, err = %d fd = %d\n", -n,
-+                     req->fds[1]);
-+              return(1);
-+      }
--      if(stat64(file, &buf) < 0) return(0);
--      return(S_ISDIR(buf.st_mode));
-+      return(0);
- }
- void do_io(struct io_thread_req *req)
-@@ -461,8 +234,18 @@
-       char *buf;
-       unsigned long len;
-       int n, nsectors, start, end, bit;
-+      int err;
-       __u64 off;
-+      if(req->op == UBD_MMAP){
-+              /* Touch the page to force the host to do any necessary IO to 
-+               * get it into memory 
-+               */
-+              n = *((volatile int *) req->buffer);
-+              req->error = update_bitmap(req);
-+              return;
-+      }
-+
-       nsectors = req->length / req->sectorsize;
-       start = 0;
-       do {
-@@ -473,15 +256,14 @@
-                                   &req->sector_mask) == bit))
-                       end++;
--              if(end != nsectors)
--                      printk("end != nsectors\n");
-               off = req->offset + req->offsets[bit] + 
-                       start * req->sectorsize;
-               len = (end - start) * req->sectorsize;
-               buf = &req->buffer[start * req->sectorsize];
--              if(os_seek_file(req->fds[bit], off) != 0){
--                      printk("do_io - lseek failed : errno = %d\n", errno);
-+              err = os_seek_file(req->fds[bit], off);
-+              if(err < 0){
-+                      printk("do_io - lseek failed : err = %d\n", -err);
-                       req->error = 1;
-                       return;
-               }
-@@ -490,11 +272,10 @@
-                       do {
-                               buf = &buf[n];
-                               len -= n;
--                              n = read(req->fds[bit], buf, len);
-+                              n = os_read_file(req->fds[bit], buf, len);
-                               if (n < 0) {
--                                      printk("do_io - read returned %d : "
--                                             "errno = %d fd = %d\n", n,
--                                             errno, req->fds[bit]);
-+                                      printk("do_io - read failed, err = %d "
-+                                             "fd = %d\n", -n, req->fds[bit]);
-                                       req->error = 1;
-                                       return;
-                               }
-@@ -502,11 +283,10 @@
-                       if (n < len) memset(&buf[n], 0, len - n);
-               }
-               else {
--                      n = write(req->fds[bit], buf, len);
-+                      n = os_write_file(req->fds[bit], buf, len);
-                       if(n != len){
--                              printk("do_io - write returned %d : "
--                                     "errno = %d fd = %d\n", n, 
--                                     errno, req->fds[bit]);
-+                              printk("do_io - write failed err = %d "
-+                                     "fd = %d\n", -n, req->fds[bit]);
-                               req->error = 1;
-                               return;
-                       }
-@@ -515,24 +295,7 @@
-               start = end;
-       } while(start < nsectors);
--      if(req->cow_offset != -1){
--              if(os_seek_file(req->fds[1], req->cow_offset) != 0){
--                      printk("do_io - bitmap lseek failed : errno = %d\n",
--                             errno);
--                      req->error = 1;
--                      return;
--              }
--              n = write(req->fds[1], &req->bitmap_words, 
--                        sizeof(req->bitmap_words));
--              if(n != sizeof(req->bitmap_words)){
--                      printk("do_io - bitmap update returned %d : "
--                             "errno = %d fd = %d\n", n, errno, req->fds[1]);
--                      req->error = 1;
--                      return;
--              }
--      }
--      req->error = 0;
--      return;
-+      req->error = update_bitmap(req);
- }
- /* Changed in start_io_thread, which is serialized by being called only
-@@ -550,19 +313,23 @@
-       signal(SIGWINCH, SIG_IGN);
-       while(1){
--              n = read(kernel_fd, &req, sizeof(req));
--              if(n < 0) printk("io_thread - read returned %d, errno = %d\n",
--                               n, errno);
--              else if(n < sizeof(req)){
--                      printk("io_thread - short read : length = %d\n", n);
-+              n = os_read_file(kernel_fd, &req, sizeof(req));
-+              if(n != sizeof(req)){
-+                      if(n < 0)
-+                              printk("io_thread - read failed, fd = %d, "
-+                                     "err = %d\n", kernel_fd, -n);
-+                      else {
-+                              printk("io_thread - short read, fd = %d, "
-+                                     "length = %d\n", kernel_fd, n);
-+                      }
-                       continue;
-               }
-               io_count++;
-               do_io(&req);
--              n = write(kernel_fd, &req, sizeof(req));
-+              n = os_write_file(kernel_fd, &req, sizeof(req));
-               if(n != sizeof(req))
--                      printk("io_thread - write failed, errno = %d\n",
--                             errno);
-+                      printk("io_thread - write failed, fd = %d, err = %d\n",
-+                             kernel_fd, -n);
-       }
- }
-@@ -571,10 +338,11 @@
-       int pid, fds[2], err;
-       err = os_pipe(fds, 1, 1);
--      if(err){
--              printk("start_io_thread - os_pipe failed, errno = %d\n", -err);
--              return(-1);
-+      if(err < 0){
-+              printk("start_io_thread - os_pipe failed, err = %d\n", -err);
-+              goto out;
-       }
-+
-       kernel_fd = fds[0];
-       *fd_out = fds[1];
-@@ -582,32 +350,19 @@
-                   NULL);
-       if(pid < 0){
-               printk("start_io_thread - clone failed : errno = %d\n", errno);
--              return(-errno);
-+              goto out_close;
-       }
--      return(pid);
+-      return(mk_phys((pfn - region->start_pfn) << PAGE_SHIFT, n));
 -}
 -
--#ifdef notdef
--int start_io_thread(unsigned long sp, int *fd_out)
+-struct page *page_mem_map(struct page *page)
 -{
--      int pid;
--      if((kernel_fd = get_pty()) < 0) return(-1);
--      raw(kernel_fd, 0);
--      if((*fd_out = open(ptsname(kernel_fd), O_RDWR)) < 0){
--              printk("Couldn't open tty for IO\n");
--              return(-1);
+-      return((struct page *) page_region(page, NULL)->mem_map);
+-}
+-
+-extern unsigned long region_pa(void *virt)
+-{
+-      struct mem_region *region;
+-      unsigned long addr = (unsigned long) virt;
+-      int i;
+-
+-      for(i = 0; i < NREGIONS; i++){
+-              region = regions[i];
+-              if(region == NULL) continue;
+-              if((region->start <= addr) && 
+-                 (addr <= region->start + region->len))
+-                      return(mk_phys(addr - region->start, i));
 -      }
+-      panic("region_pa : no region for virtual address");
+-      return(0);
+-}
 -
--      pid = clone(io_thread, (void *) sp, CLONE_FILES | CLONE_VM | SIGCHLD,
--                  NULL);
--      if(pid < 0){
--              printk("start_io_thread - clone failed : errno = %d\n", errno);
--              return(-errno);
+-extern void *region_va(unsigned long phys)
+-{
+-      return((void *) (phys_region(phys)->start + phys_addr(phys)));
+-}
+-
+-unsigned long page_to_phys(struct page *page)
+-{
+-      int n;
+-      struct mem_region *region = page_region(page, &n);
+-      struct page *map = region->mem_map;
+-      return(mk_phys((page - map) << PAGE_SHIFT, n));
+-}
+-
+-struct page *phys_to_page(unsigned long phys)
+-{
+-      struct page *mem_map;
+-
+-      mem_map = phys_mem_map(phys);
+-      return(mem_map + (phys_offset(phys) >> PAGE_SHIFT));
+-}
+-
+-static int setup_mem_maps(void)
+-{
+-      struct mem_region *region;
+-      int i;
+-
+-      for(i = 0; i < NREGIONS; i++){
+-              region = regions[i];
+-              if((region != NULL) && (region->fd > 0)) init_maps(region);
 -      }
-       return(pid);
+-      return(0);
+-}
+-
+-__initcall(setup_mem_maps);
+-
+ /*
+  * Allocate and free page tables.
+  */
+Index: uml-2.6.7/mm/page_alloc.c
+===================================================================
+--- uml-2.6.7.orig/mm/page_alloc.c     2004-07-16 19:35:58.508373224 +0300
++++ uml-2.6.7/mm/page_alloc.c  2004-07-16 19:47:23.806192120 +0300
+@@ -279,6 +279,8 @@
+       LIST_HEAD(list);
+       int i;
++      arch_free_page(page, order);
 +
-+ out_close:
-+      os_close_file(fds[0]);
-+      os_close_file(fds[1]);
-+      kernel_fd = -1;
-+      *fd_out = -1;
-+ out:
-+      return(err);
- }
--#endif
+       mod_page_state(pgfree, 1 << order);
+       for (i = 0 ; i < (1 << order) ; ++i)
+               free_pages_check(__FUNCTION__, page + i);
+@@ -497,6 +499,8 @@
+       struct per_cpu_pages *pcp;
+       unsigned long flags;
  
- /*
-  * Overrides for Emacs so that we follow Linus's tabbing style.
-diff -Naur a/arch/um/drivers/xterm.c b/arch/um/drivers/xterm.c
---- a/arch/um/drivers/xterm.c  2004-03-10 08:20:17.000000000 -0500
-+++ b/arch/um/drivers/xterm.c  2004-03-10 08:34:14.000000000 -0500
-@@ -8,7 +8,6 @@
- #include <unistd.h>
- #include <string.h>
- #include <errno.h>
--#include <fcntl.h>
- #include <termios.h>
- #include <signal.h>
- #include <sched.h>
-@@ -36,7 +35,8 @@
- {
-       struct xterm_chan *data;
--      if((data = malloc(sizeof(*data))) == NULL) return(NULL);
-+      data = malloc(sizeof(*data));
-+      if(data == NULL) return(NULL);
-       *data = ((struct xterm_chan) { .pid             = -1, 
-                                      .helper_pid      = -1,
-                                      .device          = device, 
-@@ -93,7 +93,7 @@
-                        "/usr/lib/uml/port-helper", "-uml-socket",
-                        file, NULL };
--      if(access(argv[4], X_OK))
-+      if(os_access(argv[4], OS_ACC_X_OK) < 0)
-               argv[4] = "port-helper";
-       fd = mkstemp(file);
-@@ -106,13 +106,13 @@
-               printk("xterm_open : unlink failed, errno = %d\n", errno);
-               return(-errno);
-       }
--      close(fd);
-+      os_close_file(fd);
--      fd = create_unix_socket(file, sizeof(file));
-+      fd = os_create_unix_socket(file, sizeof(file), 1);
-       if(fd < 0){
-               printk("xterm_open : create_unix_socket failed, errno = %d\n", 
-                      -fd);
--              return(-fd);
-+              return(fd);
-       }
-       sprintf(title, data->title, data->device);
-@@ -128,15 +128,16 @@
-       if(data->direct_rcv)
-               new = os_rcv_fd(fd, &data->helper_pid);
-       else {
--              if((err = os_set_fd_block(fd, 0)) != 0){
-+              err = os_set_fd_block(fd, 0);
-+              if(err < 0){
-                       printk("xterm_open : failed to set descriptor "
--                             "non-blocking, errno = %d\n", err);
-+                             "non-blocking, err = %d\n", -err);
-                       return(err);
-               }
-               new = xterm_fd(fd, &data->helper_pid);
-       }
-       if(new < 0){
--              printk("xterm_open : os_rcv_fd failed, errno = %d\n", -new);
-+              printk("xterm_open : os_rcv_fd failed, err = %d\n", -new);
-               goto out;
-       }
-@@ -160,7 +161,7 @@
-       if(data->helper_pid != -1) 
-               os_kill_process(data->helper_pid, 0);
-       data->helper_pid = -1;
--      close(fd);
-+      os_close_file(fd);
- }
- void xterm_free(void *d)
-diff -Naur a/arch/um/drivers/xterm_kern.c b/arch/um/drivers/xterm_kern.c
---- a/arch/um/drivers/xterm_kern.c     2004-03-10 08:22:24.000000000 -0500
-+++ b/arch/um/drivers/xterm_kern.c     2004-03-10 08:41:35.000000000 -0500
-@@ -5,9 +5,12 @@
- #include "linux/errno.h"
- #include "linux/slab.h"
-+#include "linux/signal.h"
-+#include "linux/interrupt.h"
- #include "asm/semaphore.h"
- #include "asm/irq.h"
- #include "irq_user.h"
-+#include "irq_kern.h"
- #include "kern_util.h"
- #include "os.h"
- #include "xterm.h"
-@@ -19,17 +22,18 @@
-       int new_fd;
- };
--static void xterm_interrupt(int irq, void *data, struct pt_regs *regs)
-+static irqreturn_t xterm_interrupt(int irq, void *data, struct pt_regs *regs)
- {
-       struct xterm_wait *xterm = data;
-       int fd;
-       fd = os_rcv_fd(xterm->fd, &xterm->pid);
-       if(fd == -EAGAIN)
--              return;
-+              return(IRQ_NONE);
-       xterm->new_fd = fd;
-       up(&xterm->sem);
-+      return(IRQ_HANDLED);
- }
- int xterm_fd(int socket, int *pid_out)
-@@ -54,7 +58,8 @@
-       if(err){
-               printk(KERN_ERR "xterm_fd : failed to get IRQ for xterm, "
-                      "err = %d\n",  err);
--              return(err);
-+              ret = err;
-+              goto out;
-       }
-       down(&data->sem);
-@@ -62,6 +67,7 @@
-       ret = data->new_fd;
-       *pid_out = data->pid;
-+ out:
-       kfree(data);
-       return(ret);
-diff -Naur a/arch/um/dyn.lds.S b/arch/um/dyn.lds.S
---- a/arch/um/dyn.lds.S        2004-03-10 08:21:28.000000000 -0500
-+++ b/arch/um/dyn.lds.S        2004-03-10 08:39:12.000000000 -0500
-@@ -10,12 +10,15 @@
- {
-   . = START + SIZEOF_HEADERS;
-   .interp         : { *(.interp) }
--  . = ALIGN(4096);
-   __binary_start = .;
-   . = ALIGN(4096);            /* Init code and data */
-   _stext = .;
-   __init_begin = .;
--  .text.init : { *(.text.init) }
-+  .init.text : { 
-+      _sinittext = .;
-+      *(.init.text)
-+      _einittext = .;
-+  }
-   . = ALIGN(4096);
-@@ -67,7 +70,7 @@
-   #include "asm/common.lds.S"
--  .data.init : { *(.data.init) }
-+  init.data : { *(.init.data) }
-   /* Ensure the __preinit_array_start label is properly aligned.  We
-      could instead move the label definition inside the section, but
-diff -Naur a/arch/um/include/2_5compat.h b/arch/um/include/2_5compat.h
---- a/arch/um/include/2_5compat.h      2004-03-10 08:21:06.000000000 -0500
-+++ b/arch/um/include/2_5compat.h      2004-03-10 08:38:40.000000000 -0500
-@@ -6,20 +6,6 @@
- #ifndef __2_5_COMPAT_H__
- #define __2_5_COMPAT_H__
--#include "linux/version.h"
--
--#define INIT_CONSOLE(dev_name, write_proc, device_proc, setup_proc, f) { \
--      name :          dev_name, \
--      write :         write_proc, \
--      read :          NULL, \
--      device :        device_proc, \
--      setup :         setup_proc, \
--      flags :         f, \
--      index :         -1, \
--      cflag :         0, \
--      next :          NULL \
--}
--
- #define INIT_HARDSECT(arr, maj, sizes)
- #define SET_PRI(task) do ; while(0)
-diff -Naur a/arch/um/include/irq_kern.h b/arch/um/include/irq_kern.h
---- a/arch/um/include/irq_kern.h       1969-12-31 19:00:00.000000000 -0500
-+++ b/arch/um/include/irq_kern.h       2004-03-10 08:38:55.000000000 -0500
-@@ -0,0 +1,28 @@
++      arch_free_page(page, 0);
++
+       kernel_map_pages(page, 1, 0);
+       inc_page_state(pgfree);
+       free_pages_check(__FUNCTION__, page);
+Index: uml-2.6.7/arch/um/kernel/skas/uaccess.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/skas/uaccess.c       2004-07-16 19:47:23.621220240 +0300
++++ uml-2.6.7/arch/um/kernel/skas/uaccess.c    2004-07-16 19:47:23.735202912 +0300
+@@ -0,0 +1,219 @@
 +/* 
-+ * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
++ * Copyright (C) 2002 - 2003 Jeff Dike (jdike@addtoit.com)
 + * Licensed under the GPL
 + */
 +
-+#ifndef __IRQ_KERN_H__
-+#define __IRQ_KERN_H__
++#include "linux/stddef.h"
++#include "linux/kernel.h"
++#include "linux/string.h"
++#include "linux/fs.h"
++#include "linux/highmem.h"
++#include "asm/page.h"
++#include "asm/pgtable.h"
++#include "asm/uaccess.h"
++#include "kern_util.h"
 +
-+#include "linux/interrupt.h"
++extern void *um_virt_to_phys(struct task_struct *task, unsigned long addr, 
++                           pte_t *pte_out);
 +
-+extern int um_request_irq(unsigned int irq, int fd, int type,
-+                        irqreturn_t (*handler)(int, void *, 
-+                                               struct pt_regs *),
-+                        unsigned long irqflags,  const char * devname,
-+                        void *dev_id);
++static unsigned long maybe_map(unsigned long virt, int is_write)
++{
++      pte_t pte;
++      int err;
 +
-+#endif
++      void *phys = um_virt_to_phys(current, virt, &pte);
++      int dummy_code;
 +
-+/*
-+ * Overrides for Emacs so that we follow Linus's tabbing style.
-+ * Emacs will notice this stuff at the end of the file and automatically
-+ * adjust the settings for this buffer only.  This must remain at the end
-+ * of the file.
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
-diff -Naur a/arch/um/include/kern_util.h b/arch/um/include/kern_util.h
---- a/arch/um/include/kern_util.h      2004-03-10 08:20:57.000000000 -0500
-+++ b/arch/um/include/kern_util.h      2004-03-10 08:37:24.000000000 -0500
-@@ -62,10 +62,9 @@
- extern void *syscall_sp(void *t);
- extern void syscall_trace(void);
- extern int hz(void);
--extern void idle_timer(void);
-+extern void uml_idle_timer(void);
- extern unsigned int do_IRQ(int irq, union uml_pt_regs *regs);
- extern int external_pid(void *t);
--extern int pid_to_processor_id(int pid);
- extern void boot_timer_handler(int sig);
- extern void interrupt_end(void);
- extern void initial_thread_cb(void (*proc)(void *), void *arg);
-@@ -89,9 +88,7 @@
- extern char *uml_strdup(char *string);
- extern void unprotect_kernel_mem(void);
- extern void protect_kernel_mem(void);
--extern void set_kmem_end(unsigned long);
- extern void uml_cleanup(void);
--extern int pid_to_processor_id(int pid);
- extern void set_current(void *t);
- extern void lock_signalled_task(void *t);
- extern void IPI_handler(int cpu);
-@@ -100,7 +97,9 @@
- extern int clear_user_proc(void *buf, int size);
- extern int copy_to_user_proc(void *to, void *from, int size);
- extern int copy_from_user_proc(void *to, void *from, int size);
-+extern int strlen_user_proc(char *str);
- extern void bus_handler(int sig, union uml_pt_regs *regs);
-+extern void winch(int sig, union uml_pt_regs *regs);
- extern long execute_syscall(void *r);
- extern int smp_sigio_handler(void);
- extern void *get_current(void);
-@@ -111,6 +110,8 @@
- extern void free_irq(unsigned int, void *);
- extern int um_in_interrupt(void);
- extern int cpu(void);
-+extern unsigned long long time_stamp(void);
++      if(IS_ERR(phys) || (is_write && !pte_write(pte))){
++              err = handle_page_fault(virt, 0, is_write, 0, &dummy_code);
++              if(err)
++                      return(0);
++              phys = um_virt_to_phys(current, virt, NULL);
++      }
++      return((unsigned long) phys);
++}
 +
- #endif
- /*
-diff -Naur a/arch/um/include/line.h b/arch/um/include/line.h
---- a/arch/um/include/line.h   2004-03-10 08:22:30.000000000 -0500
-+++ b/arch/um/include/line.h   2004-03-10 08:42:11.000000000 -0500
-@@ -9,12 +9,14 @@
- #include "linux/list.h"
- #include "linux/workqueue.h"
- #include "linux/tty.h"
-+#include "linux/interrupt.h"
- #include "asm/semaphore.h"
- #include "chan_user.h"
- #include "mconsole_kern.h"
- struct line_driver {
-       char *name;
-+      char *device_name;
-       char *devfs_name;
-       short major;
-       short minor_start;
-@@ -67,8 +69,6 @@
- #define LINES_INIT(n) {  num :                n }
--extern void line_interrupt(int irq, void *data, struct pt_regs *unused);
--extern void line_write_interrupt(int irq, void *data, struct pt_regs *unused);
- extern void line_close(struct line *lines, struct tty_struct *tty);
- extern int line_open(struct line *lines, struct tty_struct *tty, 
-                    struct chan_opts *opts);
-diff -Naur a/arch/um/include/mconsole.h b/arch/um/include/mconsole.h
---- a/arch/um/include/mconsole.h       2004-03-10 08:21:04.000000000 -0500
-+++ b/arch/um/include/mconsole.h       2004-03-10 08:37:55.000000000 -0500
-@@ -41,11 +41,13 @@
- struct mc_request;
-+enum mc_context { MCONSOLE_INTR, MCONSOLE_PROC };
++static int do_op(unsigned long addr, int len, int is_write, 
++               int (*op)(unsigned long addr, int len, void *arg), void *arg)
++{
++      struct page *page;
++      int n;
 +
- struct mconsole_command
- {
-       char *command;
-       void (*handler)(struct mc_request *req);
--      int as_interrupt;
-+      enum mc_context context;
- };
- struct mc_request
-@@ -77,6 +79,8 @@
- extern void mconsole_cad(struct mc_request *req);
- extern void mconsole_stop(struct mc_request *req);
- extern void mconsole_go(struct mc_request *req);
-+extern void mconsole_log(struct mc_request *req);
-+extern void mconsole_proc(struct mc_request *req);
- extern int mconsole_get_request(int fd, struct mc_request *req);
- extern int mconsole_notify(char *sock_name, int type, const void *data, 
-diff -Naur a/arch/um/include/mem.h b/arch/um/include/mem.h
---- a/arch/um/include/mem.h    2004-03-10 08:23:25.000000000 -0500
-+++ b/arch/um/include/mem.h    2004-03-10 08:44:55.000000000 -0500
-@@ -1,19 +1,18 @@
- /* 
-- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+ * Copyright (C) 2002, 2003 Jeff Dike (jdike@addtoit.com)
-  * Licensed under the GPL
-  */
- #ifndef __MEM_H__
- #define __MEM_H__
--struct vm_reserved {
--      struct list_head list;
--      unsigned long start;
--      unsigned long end;
--};
-+#include "linux/types.h"
--extern void set_usable_vm(unsigned long start, unsigned long end);
--extern void set_kmem_end(unsigned long new);
-+extern int phys_mapping(unsigned long phys, __u64 *offset_out);
-+extern int physmem_subst_mapping(void *virt, int fd, __u64 offset, int w);
-+extern int is_remapped(void *virt);
-+extern int physmem_remove_mapping(void *virt);
-+extern void physmem_forget_descriptor(int fd);
- #endif
-diff -Naur a/arch/um/include/mem_kern.h b/arch/um/include/mem_kern.h
---- a/arch/um/include/mem_kern.h       1969-12-31 19:00:00.000000000 -0500
-+++ b/arch/um/include/mem_kern.h       2004-03-10 08:39:48.000000000 -0500
-@@ -0,0 +1,30 @@
-+/* 
-+ * Copyright (C) 2003 Jeff Dike (jdike@addtoit.com)
-+ * Licensed under the GPL
-+ */
++      addr = maybe_map(addr, is_write);
++      if(addr == -1)
++              return(-1);
 +
-+#ifndef __MEM_KERN_H__
-+#define __MEM_KERN_H__
++      page = phys_to_page(addr);
++      addr = (unsigned long) kmap(page) + (addr & ~PAGE_MASK);
++      n = (*op)(addr, len, arg);
++      kunmap(page);
 +
-+#include "linux/list.h"
-+#include "linux/types.h"
++      return(n);
++}
 +
-+struct remapper {
-+      struct list_head list;
-+      int (*proc)(int, unsigned long, int, __u64);
-+};
++static int buffer_op(unsigned long addr, int len, int is_write,
++                   int (*op)(unsigned long addr, int len, void *arg),
++                   void *arg)
++{
++      int size = min(PAGE_ALIGN(addr) - addr, (unsigned long) len);
++      int remain = len, n;
 +
-+extern void register_remapper(struct remapper *info);
++      n = do_op(addr, size, is_write, op, arg);
++      if(n != 0)
++              return(n < 0 ? remain : 0);
 +
-+#endif
++      addr += size;
++      remain -= size;
++      if(remain == 0) 
++              return(0);
 +
-+/*
-+ * Overrides for Emacs so that we follow Linus's tabbing style.
-+ * Emacs will notice this stuff at the end of the file and automatically
-+ * adjust the settings for this buffer only.  This must remain at the end
-+ * of the file.
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
-diff -Naur a/arch/um/include/mem_user.h b/arch/um/include/mem_user.h
---- a/arch/um/include/mem_user.h       2004-03-10 08:21:58.000000000 -0500
-+++ b/arch/um/include/mem_user.h       2004-03-10 08:41:05.000000000 -0500
-@@ -32,43 +32,38 @@
- #ifndef _MEM_USER_H
- #define _MEM_USER_H
--struct mem_region {
-+struct iomem_region {
-+      struct iomem_region *next;
-       char *driver;
--      unsigned long start_pfn;
--      unsigned long start;
--      unsigned long len;
--      void *mem_map;
-       int fd;
-+      int size;
-+      unsigned long phys;
-+      unsigned long virt;
- };
--extern struct mem_region *regions[];
--extern struct mem_region physmem_region;
-+extern struct iomem_region *iomem_regions;
-+extern int iomem_size;
- #define ROUND_4M(n) ((((unsigned long) (n)) + (1 << 22)) & ~((1 << 22) - 1))
- extern unsigned long host_task_size;
- extern unsigned long task_size;
-+extern void check_devanon(void);
- extern int init_mem_user(void);
- extern int create_mem_file(unsigned long len);
--extern void setup_range(int fd, char *driver, unsigned long start,
--                      unsigned long pfn, unsigned long total, int need_vm, 
--                      struct mem_region *region, void *reserved);
- extern void setup_memory(void *entry);
- extern unsigned long find_iomem(char *driver, unsigned long *len_out);
--extern int init_maps(struct mem_region *region);
--extern int nregions(void);
--extern int reserve_vm(unsigned long start, unsigned long end, void *e);
-+extern int init_maps(unsigned long physmem, unsigned long iomem, 
-+                   unsigned long highmem);
- extern unsigned long get_vm(unsigned long len);
- extern void setup_physmem(unsigned long start, unsigned long usable,
--                        unsigned long len);
--extern int setup_region(struct mem_region *region, void *entry);
-+                        unsigned long len, unsigned long highmem);
- extern void add_iomem(char *name, int fd, unsigned long size);
--extern struct mem_region *phys_region(unsigned long phys);
- extern unsigned long phys_offset(unsigned long phys);
- extern void unmap_physmem(void);
--extern int map_memory(unsigned long virt, unsigned long phys, 
--                    unsigned long len, int r, int w, int x);
-+extern void map_memory(unsigned long virt, unsigned long phys, 
-+                     unsigned long len, int r, int w, int x);
- extern int protect_memory(unsigned long addr, unsigned long len, 
-                         int r, int w, int x, int must_succeed);
- extern unsigned long get_kmem_end(void);
-diff -Naur a/arch/um/include/os.h b/arch/um/include/os.h
---- a/arch/um/include/os.h     2004-03-10 08:20:31.000000000 -0500
-+++ b/arch/um/include/os.h     2004-03-10 08:36:02.000000000 -0500
-@@ -17,6 +17,32 @@
- #define OS_TYPE_FIFO 6
- #define OS_TYPE_SOCK 7
-+/* os_access() flags */
-+#define OS_ACC_F_OK    0       /* Test for existence.  */
-+#define OS_ACC_X_OK    1       /* Test for execute permission.  */
-+#define OS_ACC_W_OK    2       /* Test for write permission.  */
-+#define OS_ACC_R_OK    4       /* Test for read permission.  */
-+#define OS_ACC_RW_OK   (OS_ACC_W_OK | OS_ACC_R_OK) /* Test for RW permission */
++      while(addr < ((addr + remain) & PAGE_MASK)){
++              n = do_op(addr, PAGE_SIZE, is_write, op, arg);
++              if(n != 0)
++                      return(n < 0 ? remain : 0);
 +
-+/*
-+ * types taken from stat_file() in hostfs_user.c
-+ * (if they are wrong here, they are wrong there...).
-+ */
-+struct uml_stat {
-+      int                ust_dev;        /* device */
-+      unsigned long long ust_ino;        /* inode */
-+      int                ust_mode;       /* protection */
-+      int                ust_nlink;      /* number of hard links */
-+      int                ust_uid;        /* user ID of owner */
-+      int                ust_gid;        /* group ID of owner */
-+      unsigned long long ust_size;       /* total size, in bytes */
-+      int                ust_blksize;    /* blocksize for filesystem I/O */
-+      unsigned long long ust_blocks;     /* number of blocks allocated */
-+      unsigned long      ust_atime;      /* time of last access */
-+      unsigned long      ust_mtime;      /* time of last modification */
-+      unsigned long      ust_ctime;      /* time of last change */
-+};
++              addr += PAGE_SIZE;
++              remain -= PAGE_SIZE;
++      }
++      if(remain == 0)
++              return(0);
 +
- struct openflags {
-       unsigned int r : 1;
-       unsigned int w : 1;
-@@ -84,29 +110,47 @@
-       flags.e = 1; 
-       return(flags); 
- }
-- 
++      n = do_op(addr, remain, is_write, op, arg);
++      if(n != 0)
++              return(n < 0 ? remain : 0);
++      return(0);
++}
 +
- static inline struct openflags of_cloexec(struct openflags flags)
- { 
-       flags.cl = 1; 
-       return(flags); 
- }
-   
-+extern int os_stat_file(const char *file_name, struct uml_stat *buf);
-+extern int os_stat_fd(const int fd, struct uml_stat *buf);
-+extern int os_access(const char *file, int mode);
-+extern void os_print_error(int error, const char* str);
-+extern int os_get_exec_close(int fd, int *close_on_exec);
-+extern int os_set_exec_close(int fd, int close_on_exec);
-+extern int os_ioctl_generic(int fd, unsigned int cmd, unsigned long arg);
-+extern int os_window_size(int fd, int *rows, int *cols);
-+extern int os_new_tty_pgrp(int fd, int pid);
-+extern int os_get_ifname(int fd, char *namebuf);
-+extern int os_set_slip(int fd);
-+extern int os_set_owner(int fd, int pid);
-+extern int os_sigio_async(int master, int slave);
-+extern int os_mode_fd(int fd, int mode);
++static int copy_chunk_from_user(unsigned long from, int len, void *arg)
++{
++      unsigned long *to_ptr = arg, to = *to_ptr;
 +
- extern int os_seek_file(int fd, __u64 offset);
- extern int os_open_file(char *file, struct openflags flags, int mode);
- extern int os_read_file(int fd, void *buf, int len);
--extern int os_write_file(int fd, void *buf, int count);
-+extern int os_write_file(int fd, const void *buf, int count);
- extern int os_file_size(char *file, long long *size_out);
-+extern int os_file_modtime(char *file, unsigned long *modtime);
- extern int os_pipe(int *fd, int stream, int close_on_exec);
- extern int os_set_fd_async(int fd, int owner);
- extern int os_set_fd_block(int fd, int blocking);
- extern int os_accept_connection(int fd);
-+extern int os_create_unix_socket(char *file, int len, int close_on_exec);
- extern int os_shutdown_socket(int fd, int r, int w);
- extern void os_close_file(int fd);
- extern int os_rcv_fd(int fd, int *helper_pid_out);
--extern int create_unix_socket(char *file, int len);
-+extern int create_unix_socket(char *file, int len, int close_on_exec);
- extern int os_connect_socket(char *name);
- extern int os_file_type(char *file);
- extern int os_file_mode(char *file, struct openflags *mode_out);
-+extern int os_lock_file(int fd, int excl);
- extern unsigned long os_process_pc(int pid);
- extern int os_process_parent(int pid);
-@@ -115,11 +159,12 @@
- extern void os_usr1_process(int pid);
- extern int os_getpid(void);
--extern int os_map_memory(void *virt, int fd, unsigned long off, 
-+extern int os_map_memory(void *virt, int fd, unsigned long long off, 
-                        unsigned long len, int r, int w, int x);
- extern int os_protect_memory(void *addr, unsigned long len, 
-                            int r, int w, int x);
- extern int os_unmap_memory(void *addr, int len);
-+extern void os_flush_stdout(void);
++      memcpy((void *) to, (void *) from, len);
++      *to_ptr += len;
++      return(0);
++}
++
++int copy_from_user_skas(void *to, const void *from, int n)
++{
++      if(segment_eq(get_fs(), KERNEL_DS)){
++              memcpy(to, from, n);
++              return(0);
++      }
++
++      return(access_ok_skas(VERIFY_READ, from, n) ?
++             buffer_op((unsigned long) from, n, 0, copy_chunk_from_user, &to):
++             n);
++}
++
++static int copy_chunk_to_user(unsigned long to, int len, void *arg)
++{
++      unsigned long *from_ptr = arg, from = *from_ptr;
++
++      memcpy((void *) to, (void *) from, len);
++      *from_ptr += len;
++      return(0);
++}
++
++int copy_to_user_skas(void *to, const void *from, int n)
++{
++      if(segment_eq(get_fs(), KERNEL_DS)){
++              memcpy(to, from, n);
++              return(0);
++      }
++
++      return(access_ok_skas(VERIFY_WRITE, to, n) ?
++             buffer_op((unsigned long) to, n, 1, copy_chunk_to_user, &from) :
++             n);
++}
++
++static int strncpy_chunk_from_user(unsigned long from, int len, void *arg)
++{
++      char **to_ptr = arg, *to = *to_ptr;
++      int n;
++
++      strncpy(to, (void *) from, len);
++      n = strnlen(to, len);
++      *to_ptr += n;
++
++      if(n < len) 
++              return(1);
++      return(0);
++}
++
++int strncpy_from_user_skas(char *dst, const char *src, int count)
++{
++      int n;
++      char *ptr = dst;
++
++      if(segment_eq(get_fs(), KERNEL_DS)){
++              strncpy(dst, src, count);
++              return(strnlen(dst, count));
++      }
++
++      if(!access_ok_skas(VERIFY_READ, src, 1))
++              return(-EFAULT);
++
++      n = buffer_op((unsigned long) src, count, 0, strncpy_chunk_from_user, 
++                    &ptr);
++      if(n != 0)
++              return(-EFAULT);
++      return(strnlen(dst, count));
++}
++
++static int clear_chunk(unsigned long addr, int len, void *unused)
++{
++      memset((void *) addr, 0, len);
++      return(0);
++}
++
++int __clear_user_skas(void *mem, int len)
++{
++      return(buffer_op((unsigned long) mem, len, 1, clear_chunk, NULL));
++}
++
++int clear_user_skas(void *mem, int len)
++{
++      if(segment_eq(get_fs(), KERNEL_DS)){
++              memset(mem, 0, len);
++              return(0);
++      }
++
++      return(access_ok_skas(VERIFY_WRITE, mem, len) ? 
++             buffer_op((unsigned long) mem, len, 1, clear_chunk, NULL) : len);
++}
++
++static int strnlen_chunk(unsigned long str, int len, void *arg)
++{
++      int *len_ptr = arg, n;
++
++      n = strnlen((void *) str, len);
++      *len_ptr += n;
++
++      if(n < len)
++              return(1);
++      return(0);
++}
++
++int strnlen_user_skas(const void *str, int len)
++{
++      int count = 0, n;
++
++      if(segment_eq(get_fs(), KERNEL_DS))
++              return(strnlen(str, len) + 1);
++
++      n = buffer_op((unsigned long) str, len, 0, strnlen_chunk, &count);
++      if(n == 0)
++              return(count + 1);
++      return(-EFAULT);
++}
++
++/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
+Index: uml-2.6.7/arch/um/Makefile
+===================================================================
+--- uml-2.6.7.orig/arch/um/Makefile    2004-07-16 19:36:57.056472560 +0300
++++ uml-2.6.7/arch/um/Makefile 2004-07-16 19:47:24.132142568 +0300
+@@ -22,17 +22,21 @@
+                          $(ARCH_DIR)/sys-$(SUBARCH)/
  
- #endif
+ # Have to precede the include because the included Makefiles reference them.
+-SYMLINK_HEADERS = include/asm-um/archparam.h include/asm-um/system.h \
+-      include/asm-um/sigcontext.h include/asm-um/processor.h \
+-      include/asm-um/ptrace.h include/asm-um/arch-signal.h
++SYMLINK_HEADERS = archparam.h system.h sigcontext.h processor.h ptrace.h \
++      arch-signal.h module.h
++SYMLINK_HEADERS := $(foreach header,$(SYMLINK_HEADERS),include/asm-um/$(header))
  
-diff -Naur a/arch/um/include/signal_user.h b/arch/um/include/signal_user.h
---- a/arch/um/include/signal_user.h    2004-03-10 08:20:15.000000000 -0500
-+++ b/arch/um/include/signal_user.h    2004-03-10 08:34:01.000000000 -0500
-@@ -11,6 +11,8 @@
- extern int change_sig(int signal, int on);
- extern void set_sigstack(void *stack, int size);
- extern void set_handler(int sig, void (*handler)(int), int flags, ...);
-+extern int set_signals(int enable);
-+extern int get_signals(void);
+ ARCH_SYMLINKS = include/asm-um/arch $(ARCH_DIR)/include/sysdep $(ARCH_DIR)/os \
+       $(SYMLINK_HEADERS) $(ARCH_DIR)/include/uml-config.h
  
- #endif
+ GEN_HEADERS += $(ARCH_DIR)/include/task.h $(ARCH_DIR)/include/kern_constants.h
  
-diff -Naur a/arch/um/include/skas_ptrace.h b/arch/um/include/skas_ptrace.h
---- a/arch/um/include/skas_ptrace.h    2004-03-10 08:22:45.000000000 -0500
-+++ b/arch/um/include/skas_ptrace.h    2004-03-10 08:43:23.000000000 -0500
-@@ -1,5 +1,5 @@
- /* 
-- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+ * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
-  * Licensed under the GPL
-  */
+-include $(ARCH_DIR)/Makefile-$(SUBARCH)
+-include $(ARCH_DIR)/Makefile-os-$(OS)
++# This target adds dependencies to "prepare". They are defined in the included
++# Makefiles (see Makefile-i386).
++
++.PHONY: sys_prepare
++sys_prepare:
++      @:
  
-diff -Naur a/arch/um/include/sysdep-i386/frame_user.h b/arch/um/include/sysdep-i386/frame_user.h
---- a/arch/um/include/sysdep-i386/frame_user.h 2004-03-10 08:23:09.000000000 -0500
-+++ b/arch/um/include/sysdep-i386/frame_user.h 2004-03-10 08:43:56.000000000 -0500
-@@ -56,26 +56,26 @@
-  * it would have to be __builtin_frame_address(1).
-  */
+ MAKEFILE-$(CONFIG_MODE_TT) += Makefile-tt
+ MAKEFILE-$(CONFIG_MODE_SKAS) += Makefile-skas
+@@ -41,6 +45,9 @@
+   include $(addprefix $(ARCH_DIR)/,$(MAKEFILE-y))
+ endif
  
--static inline unsigned long frame_restorer(void)
--{
--      unsigned long *fp;
--
--      fp = __builtin_frame_address(0);
--      return((unsigned long) (fp + 1));
--}
-+#define frame_restorer() \
-+({ \
-+      unsigned long *fp; \
-+\
-+      fp = __builtin_frame_address(0); \
-+      ((unsigned long) (fp + 1)); \
-+})
++include $(ARCH_DIR)/Makefile-$(SUBARCH)
++include $(ARCH_DIR)/Makefile-os-$(OS)
++
+ EXTRAVERSION := $(EXTRAVERSION)-1um
  
- /* Similarly, this returns the value of sp when the handler was first
-  * entered.  This is used to calculate the proper sp when delivering
-  * signals.
-  */
+ ARCH_INCLUDE = -I$(ARCH_DIR)/include
+@@ -52,14 +59,22 @@
  
--static inline unsigned long frame_sp(void)
--{
--      unsigned long *fp;
--
--      fp = __builtin_frame_address(0);
--      return((unsigned long) (fp + 1));
--}
-+#define frame_sp() \
-+({ \
-+      unsigned long *fp; \
-+\
-+      fp = __builtin_frame_address(0); \
-+      ((unsigned long) (fp + 1)); \
-+})
+ CFLAGS += $(CFLAGS-y) -D__arch_um__ -DSUBARCH=\"$(SUBARCH)\" \
+       -D_LARGEFILE64_SOURCE $(ARCH_INCLUDE) -Derrno=kernel_errno \
+-      $(MODE_INCLUDE)
++      -Dsigprocmask=kernel_sigprocmask $(MODE_INCLUDE)
++
++CFLAGS += $(call check_gcc,-fno-unit-at-a-time,)
  
- #endif
+ LINK_WRAPS = -Wl,--wrap,malloc -Wl,--wrap,free -Wl,--wrap,calloc
  
-diff -Naur a/arch/um/include/sysdep-i386/sigcontext.h b/arch/um/include/sysdep-i386/sigcontext.h
---- a/arch/um/include/sysdep-i386/sigcontext.h 2004-03-10 08:22:23.000000000 -0500
-+++ b/arch/um/include/sysdep-i386/sigcontext.h 2004-03-10 08:41:30.000000000 -0500
-@@ -28,8 +28,8 @@
-  */
- #define SC_START_SYSCALL(sc) do SC_EAX(sc) = -ENOSYS; while(0)
--/* These are General Protection and Page Fault */
--#define SEGV_IS_FIXABLE(trap) ((trap == 13) || (trap == 14))
-+/* This is Page Fault */
-+#define SEGV_IS_FIXABLE(trap) (trap == 14)
++# These are needed for clean and mrproper, since in that case .config is not
++# included; the values here are meaningless
++
++CONFIG_NEST_LEVEL ?= 0
++CONFIG_KERNEL_HALF_GIGS ?=  0
++
+ SIZE = (($(CONFIG_NEST_LEVEL) + $(CONFIG_KERNEL_HALF_GIGS)) * 0x20000000)
  
- #define SC_SEGV_IS_FIXABLE(sc) (SEGV_IS_FIXABLE(SC_TRAPNO(sc)))
+ ifeq ($(CONFIG_MODE_SKAS), y)
+-$(SYS_HEADERS) : $(ARCH_DIR)/kernel/skas/include/skas_ptregs.h
++$(SYS_HEADERS) : $(TOPDIR)/$(ARCH_DIR)/include/skas_ptregs.h
+ endif
  
-diff -Naur a/arch/um/include/sysdep-i386/syscalls.h b/arch/um/include/sysdep-i386/syscalls.h
---- a/arch/um/include/sysdep-i386/syscalls.h   2004-03-10 08:20:25.000000000 -0500
-+++ b/arch/um/include/sysdep-i386/syscalls.h   2004-03-10 08:35:11.000000000 -0500
-@@ -11,39 +11,34 @@
- #define EXECUTE_SYSCALL(syscall, regs) \
-       ((long (*)(struct syscall_args)) (*sys_call_table[syscall]))(SYSCALL_ARGS(&regs->regs))
+ include/linux/version.h: arch/$(ARCH)/Makefile
+@@ -98,17 +113,17 @@
+ CONFIG_KERNEL_STACK_ORDER ?= 2
+ STACK_SIZE := $(shell echo $$[ 4096 * (1 << $(CONFIG_KERNEL_STACK_ORDER)) ] )
  
--extern syscall_handler_t sys_modify_ldt;
--extern syscall_handler_t old_mmap_i386;
--extern syscall_handler_t old_select;
--extern syscall_handler_t sys_ni_syscall;
--
- #define ARCH_SYSCALLS \
--      [ __NR_mmap ] = old_mmap_i386, \
--      [ __NR_select ] = old_select, \
--      [ __NR_vm86old ] = sys_ni_syscall, \
--        [ __NR_modify_ldt ] = sys_modify_ldt, \
--      [ __NR_lchown32 ] = sys_lchown, \
--      [ __NR_getuid32 ] = sys_getuid, \
--      [ __NR_getgid32 ] = sys_getgid, \
--      [ __NR_geteuid32 ] = sys_geteuid, \
--      [ __NR_getegid32 ] = sys_getegid, \
--      [ __NR_setreuid32 ] = sys_setreuid, \
--      [ __NR_setregid32 ] = sys_setregid, \
--      [ __NR_getgroups32 ] = sys_getgroups, \
--      [ __NR_setgroups32 ] = sys_setgroups, \
--      [ __NR_fchown32 ] = sys_fchown, \
--      [ __NR_setresuid32 ] = sys_setresuid, \
--      [ __NR_getresuid32 ] = sys_getresuid, \
--      [ __NR_setresgid32 ] = sys_setresgid, \
--      [ __NR_getresgid32 ] = sys_getresgid, \
--      [ __NR_chown32 ] = sys_chown, \
--      [ __NR_setuid32 ] = sys_setuid, \
--      [ __NR_setgid32 ] = sys_setgid, \
--      [ __NR_setfsuid32 ] = sys_setfsuid, \
--      [ __NR_setfsgid32 ] = sys_setfsgid, \
--      [ __NR_pivot_root ] = sys_pivot_root, \
--      [ __NR_mincore ] = sys_mincore, \
--      [ __NR_madvise ] = sys_madvise, \
--        [ 222 ] = sys_ni_syscall, 
-+      [ __NR_mmap ] = (syscall_handler_t *) old_mmap_i386, \
-+      [ __NR_select ] = (syscall_handler_t *) old_select, \
-+      [ __NR_vm86old ] = (syscall_handler_t *) sys_ni_syscall, \
-+        [ __NR_modify_ldt ] = (syscall_handler_t *) sys_modify_ldt, \
-+      [ __NR_lchown32 ] = (syscall_handler_t *) sys_lchown, \
-+      [ __NR_getuid32 ] = (syscall_handler_t *) sys_getuid, \
-+      [ __NR_getgid32 ] = (syscall_handler_t *) sys_getgid, \
-+      [ __NR_geteuid32 ] = (syscall_handler_t *) sys_geteuid, \
-+      [ __NR_getegid32 ] = (syscall_handler_t *) sys_getegid, \
-+      [ __NR_setreuid32 ] = (syscall_handler_t *) sys_setreuid, \
-+      [ __NR_setregid32 ] = (syscall_handler_t *) sys_setregid, \
-+      [ __NR_getgroups32 ] = (syscall_handler_t *) sys_getgroups, \
-+      [ __NR_setgroups32 ] = (syscall_handler_t *) sys_setgroups, \
-+      [ __NR_fchown32 ] = (syscall_handler_t *) sys_fchown, \
-+      [ __NR_setresuid32 ] = (syscall_handler_t *) sys_setresuid, \
-+      [ __NR_getresuid32 ] = (syscall_handler_t *) sys_getresuid, \
-+      [ __NR_setresgid32 ] = (syscall_handler_t *) sys_setresgid, \
-+      [ __NR_getresgid32 ] = (syscall_handler_t *) sys_getresgid, \
-+      [ __NR_chown32 ] = (syscall_handler_t *) sys_chown, \
-+      [ __NR_setuid32 ] = (syscall_handler_t *) sys_setuid, \
-+      [ __NR_setgid32 ] = (syscall_handler_t *) sys_setgid, \
-+      [ __NR_setfsuid32 ] = (syscall_handler_t *) sys_setfsuid, \
-+      [ __NR_setfsgid32 ] = (syscall_handler_t *) sys_setfsgid, \
-+      [ __NR_pivot_root ] = (syscall_handler_t *) sys_pivot_root, \
-+      [ __NR_mincore ] = (syscall_handler_t *) sys_mincore, \
-+      [ __NR_madvise ] = (syscall_handler_t *) sys_madvise, \
-+        [ 222 ] = (syscall_handler_t *) sys_ni_syscall, 
-         
- /* 222 doesn't yet have a name in include/asm-i386/unistd.h */
+-AFLAGS_vmlinux.lds.o = -U$(SUBARCH) \
++AFLAGS_vmlinux.lds.o = $(shell echo -U$(SUBARCH) \
+       -DSTART=$$(($(TOP_ADDR) - $(SIZE))) -DELF_ARCH=$(ELF_ARCH) \
+       -DELF_FORMAT=\"$(ELF_FORMAT)\" $(CPP_MODE_TT) \
+-      -DKERNEL_STACK_SIZE=$(STACK_SIZE)
++      -DKERNEL_STACK_SIZE=$(STACK_SIZE))
  
-diff -Naur a/arch/um/include/ubd_user.h b/arch/um/include/ubd_user.h
---- a/arch/um/include/ubd_user.h       2004-03-10 08:21:30.000000000 -0500
-+++ b/arch/um/include/ubd_user.h       2004-03-10 08:39:50.000000000 -0500
-@@ -9,7 +9,7 @@
+-AFLAGS_$(LD_SCRIPT-y:.s=).o = $(AFLAGS_vmlinux.lds.o) -P -C -Uum
++export AFLAGS_$(LD_SCRIPT-y:.s=).o = $(AFLAGS_vmlinux.lds.o) -P -C -Uum
  
- #include "os.h"
+ LD_SCRIPT-y := $(ARCH_DIR)/$(LD_SCRIPT-y)
  
--enum ubd_req { UBD_READ, UBD_WRITE };
-+enum ubd_req { UBD_READ, UBD_WRITE, UBD_MMAP };
+-$(LD_SCRIPT-y) : $(LD_SCRIPT-y:.s=.S) scripts FORCE
+-      $(call if_changed_dep,as_s_S)
++#$(LD_SCRIPT-y) : $(LD_SCRIPT-y:.s=.S) scripts FORCE
++#     $(call if_changed_dep,as_s_S)
  
- struct io_thread_req {
-       enum ubd_req op;
-@@ -20,8 +20,10 @@
-       char *buffer;
-       int sectorsize;
-       unsigned long sector_mask;
--      unsigned long cow_offset;
-+      unsigned long long cow_offset;
-       unsigned long bitmap_words[2];
-+      int map_fd;
-+      unsigned long long map_offset;
-       int error;
- };
+ linux: vmlinux $(LD_SCRIPT-y)
+       $(CC) -Wl,-T,$(LD_SCRIPT-y) $(LINK-y) $(LINK_WRAPS) \
+@@ -116,37 +131,47 @@
  
-@@ -31,7 +33,7 @@
-                        int *create_cow_out);
- extern int create_cow_file(char *cow_file, char *backing_file, 
-                          struct openflags flags, int sectorsize, 
--                         int *bitmap_offset_out, 
-+                         int alignment, int *bitmap_offset_out, 
-                          unsigned long *bitmap_len_out,
-                          int *data_offset_out);
- extern int read_cow_bitmap(int fd, void *buf, int offset, int len);
-@@ -39,7 +41,6 @@
- extern int write_ubd_fs(int fd, char *buffer, int len);
- extern int start_io_thread(unsigned long sp, int *fds_out);
- extern void do_io(struct io_thread_req *req);
--extern int ubd_is_dir(char *file);
+ USER_CFLAGS := $(patsubst -I%,,$(CFLAGS))
+ USER_CFLAGS := $(patsubst -Derrno=kernel_errno,,$(USER_CFLAGS))
++USER_CFLAGS := $(patsubst -Dsigprocmask=kernel_sigprocmask,,$(USER_CFLAGS))
+ USER_CFLAGS := $(patsubst -D__KERNEL__,,$(USER_CFLAGS)) $(ARCH_INCLUDE) \
+       $(MODE_INCLUDE)
  
- static inline int ubd_test_bit(__u64 bit, unsigned char *data)
- {
-diff -Naur a/arch/um/include/um_uaccess.h b/arch/um/include/um_uaccess.h
---- a/arch/um/include/um_uaccess.h     2004-03-10 08:22:20.000000000 -0500
-+++ b/arch/um/include/um_uaccess.h     2004-03-10 08:41:25.000000000 -0500
-@@ -38,22 +38,73 @@
-                               from, n));
- }
+ # To get a definition of F_SETSIG
+ USER_CFLAGS += -D_GNU_SOURCE
  
-+/*
-+ * strncpy_from_user: - Copy a NUL terminated string from userspace.
-+ * @dst:   Destination address, in kernel space.  This buffer must be at
-+ *         least @count bytes long.
-+ * @src:   Source address, in user space.
-+ * @count: Maximum number of bytes to copy, including the trailing NUL.
-+ * 
-+ * Copies a NUL-terminated string from userspace to kernel space.
-+ *
-+ * On success, returns the length of the string (not including the trailing
-+ * NUL).
-+ *
-+ * If access to userspace fails, returns -EFAULT (some data may have been
-+ * copied).
-+ *
-+ * If @count is smaller than the length of the string, copies @count bytes
-+ * and returns @count.
-+ */
++# From main Makefile, these options are set after including the ARCH makefile.
++# So copy them here.
 +
- static inline int strncpy_from_user(char *dst, const char *src, int count)
- {
-       return(CHOOSE_MODE_PROC(strncpy_from_user_tt, strncpy_from_user_skas,
-                               dst, src, count));
- }
++ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
++USER_CFLAGS           += -Os
++else
++USER_CFLAGS           += -O2
++endif
++
++ifndef CONFIG_FRAME_POINTER
++USER_CFLAGS           += -fomit-frame-pointer
++endif
++
++ifdef CONFIG_DEBUG_INFO
++USER_CFLAGS           += -g
++endif
++
+ CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/uml.lds.s \
+-      $(ARCH_DIR)/dyn_link.ld.s $(GEN_HEADERS)
++      $(ARCH_DIR)/dyn_link.ld.s $(ARCH_DIR)/include/uml-config.h \
++      $(GEN_HEADERS)
++
++MRPROPER_FILES += $(SYMLINK_HEADERS) $(ARCH_SYMLINKS) \
++      $(addprefix $(ARCH_DIR)/kernel/,$(KERN_SYMLINKS))
  
-+/*
-+ * __clear_user: - Zero a block of memory in user space, with less checking.
-+ * @to:   Destination address, in user space.
-+ * @n:    Number of bytes to zero.
-+ *
-+ * Zero a block of memory in user space.  Caller must check
-+ * the specified block with access_ok() before calling this function.
-+ *
-+ * Returns number of bytes that could not be cleared.
-+ * On success, this will be zero.
-+ */
- static inline int __clear_user(void *mem, int len)
- {
-       return(CHOOSE_MODE_PROC(__clear_user_tt, __clear_user_skas, mem, len));
- }
+-$(ARCH_DIR)/main.o: $(ARCH_DIR)/main.c
+-      $(CC) $(USER_CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
++$(ARCH_DIR)/main.o: $(ARCH_DIR)/main.c sys_prepare
++      @ echo '  MAIN    $@'
++      @ $(CC) $(USER_CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
  
-+/*
-+ * clear_user: - Zero a block of memory in user space.
-+ * @to:   Destination address, in user space.
-+ * @n:    Number of bytes to zero.
-+ *
-+ * Zero a block of memory in user space.
-+ *
-+ * Returns number of bytes that could not be cleared.
-+ * On success, this will be zero.
-+ */
- static inline int clear_user(void *mem, int len)
- {
-       return(CHOOSE_MODE_PROC(clear_user_tt, clear_user_skas, mem, len));
- }
+ archmrproper:
+-      for d in $(ARCH_SUBDIRS) $(ARCH_DIR)/util; \
+-      do \
+-              $(MAKE) -C $$d archmrproper; \
+-      done
+-      rm -f $(CLEAN_FILES) $(SYMLINK_HEADERS) $(ARCH_SYMLINKS) include/asm \
+-              $(addprefix $(ARCH_DIR)/kernel/,$(KERN_SYMLINKS))
+-
+-archclean: sysclean
+-      for d in $(ARCH_SUBDIRS) $(ARCH_DIR)/util; \
+-      do \
+-              $(MAKE) -C $$d clean; \
+-      done
+-      find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \
+-              -o -name '*.gcov' \) -type f -print | xargs rm -f
+-      rm -f linux x.i gmon.out $(ARCH_DIR)/link.ld $(GEN_HEADERS)
++      @:
  
-+/*
-+ * strlen_user: - Get the size of a string in user space.
-+ * @str: The string to measure.
-+ * @n:   The maximum valid length
-+ *
-+ * Get the size of a NUL-terminated string in user space.
-+ *
-+ * Returns the size of the string INCLUDING the terminating NUL.
-+ * On exception, returns 0.
-+ * If the string is too long, returns a value greater than @n.
-+ */
- static inline int strnlen_user(const void *str, int len)
- {
-       return(CHOOSE_MODE_PROC(strnlen_user_tt, strnlen_user_skas, str, len));
-diff -Naur a/arch/um/include/user.h b/arch/um/include/user.h
---- a/arch/um/include/user.h   2004-03-10 08:20:16.000000000 -0500
-+++ b/arch/um/include/user.h   2004-03-10 08:34:09.000000000 -0500
-@@ -14,6 +14,7 @@
- extern void kfree(void *ptr);
- extern int in_aton(char *str);
- extern int open_gdb_chan(void);
-+extern int strlcpy(char *, const char *, int);
- #endif
-diff -Naur a/arch/um/include/user_util.h b/arch/um/include/user_util.h
---- a/arch/um/include/user_util.h      2004-03-10 08:20:24.000000000 -0500
-+++ b/arch/um/include/user_util.h      2004-03-10 08:35:05.000000000 -0500
-@@ -14,8 +14,6 @@
- extern int unlockpt(int __fd);
- extern char *ptsname(int __fd);
--enum { OP_NONE, OP_EXEC, OP_FORK, OP_TRACE_ON, OP_REBOOT, OP_HALT, OP_CB };
--
- struct cpu_task {
-       int pid;
-       void *task;
-@@ -59,7 +57,6 @@
- extern void *add_signal_handler(int sig, void (*handler)(int));
- extern int start_fork_tramp(void *arg, unsigned long temp_stack, 
-                           int clone_flags, int (*tramp)(void *));
--extern int clone_and_wait(int (*fn)(void *), void *arg, void *sp, int flags);
- extern int linux_main(int argc, char **argv);
- extern void set_cmdline(char *cmd);
- extern void input_cb(void (*proc)(void *), void *arg, int arg_len);
-@@ -86,11 +83,13 @@
- extern int run_kernel_thread(int (*fn)(void *), void *arg, void **jmp_ptr);
- extern void write_sigio_workaround(void);
- extern void arch_check_bugs(void);
-+extern int cpu_feature(char *what, char *buf, int len);
- extern int arch_handle_signal(int sig, union uml_pt_regs *regs);
- extern int arch_fixup(unsigned long address, void *sc_ptr);
- extern void forward_pending_sigio(int target);
- extern int can_do_skas(void);
-- 
-+extern void arch_init_thread(void);
-+
- #endif
+-archdep: 
+-      for d in $(ARCH_SUBDIRS); do $(MAKE) -C $$d fastdep; done
++archclean:
++      @find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \
++              -o -name '*.gcov' \) -type f -print | xargs rm -f
  
- /*
-diff -Naur a/arch/um/Kconfig b/arch/um/Kconfig
---- a/arch/um/Kconfig  2004-03-10 08:21:26.000000000 -0500
-+++ b/arch/um/Kconfig  2004-03-10 08:38:54.000000000 -0500
-@@ -61,6 +61,20 @@
+ $(SYMLINK_HEADERS):
+       cd $(TOPDIR)/$(dir $@) ; \
+@@ -161,19 +186,32 @@
+ $(ARCH_DIR)/os:
+       cd $(ARCH_DIR) && ln -sf os-$(OS) os
  
- config NET
-       bool "Networking support"
-+      help
-+      Unless you really know what you are doing, you should say Y here.
-+      The reason is that some programs need kernel networking support even
-+      when running on a stand-alone machine that isn't connected to any
-+      other computer. If you are upgrading from an older kernel, you
-+      should consider updating your networking tools too because changes
-+      in the kernel and the tools often go hand in hand. The tools are
-+      contained in the package net-tools, the location and version number
-+      of which are given in Documentation/Changes.
+-$(ARCH_DIR)/include/uml-config.h :
+-      sed 's/ CONFIG/ UML_CONFIG/' $(TOPDIR)/include/linux/autoconf.h > $@
++# Generated files
++define filechk_umlconfig
++      sed 's/ CONFIG/ UML_CONFIG/'
++endef
 +
-+      For a general introduction to Linux networking, it is highly
-+      recommended to read the NET-HOWTO, available from
-+      <http://www.tldp.org/docs.html#howto>.
++$(ARCH_DIR)/include/uml-config.h : $(TOPDIR)/include/linux/autoconf.h
++      $(call filechk,umlconfig)
 +
++filechk_gen_header = $<
  
- source "fs/Kconfig.binfmt"
+ $(ARCH_DIR)/include/task.h : $(ARCH_DIR)/util/mk_task
+-      $< > $@
++      $(call filechk,gen_header)
  
-@@ -85,6 +99,19 @@
-         If you'd like to be able to work with files stored on the host, 
-         say Y or M here; otherwise say N.
+ $(ARCH_DIR)/include/kern_constants.h : $(ARCH_DIR)/util/mk_constants
+-      $< > $@
++      $(call filechk,gen_header)
  
-+config HPPFS
-+      tristate "HoneyPot ProcFS"
-+      help
-+      hppfs (HoneyPot ProcFS) is a filesystem which allows UML /proc 
-+      entries to be overridden, removed, or fabricated from the host.
-+      Its purpose is to allow a UML to appear to be a physical machine
-+      by removing or changing anything in /proc which gives away the
-+      identity of a UML.
+-$(ARCH_DIR)/util/mk_task : $(ARCH_DIR)/kernel/skas/include/skas_ptregs.h \
+-      $(ARCH_DIR)/util FORCE ;
++$(ARCH_DIR)/util/mk_task $(ARCH_DIR)/util/mk_constants : $(ARCH_DIR)/util \
++      sys_prepare FORCE ;
+ $(ARCH_DIR)/util: FORCE
+-      @$(call descend,$@,)
++      $(Q)$(MAKE) $(build)=$@
 +
-+      See http://user-mode-linux.sf.net/hppfs.html for more information.
++export SUBARCH USER_CFLAGS OS 
 +
-+      You only need this if you are setting up a UML honeypot.  Otherwise,
-+      it is safe to say 'N' here.
++all: linux
  
- config MCONSOLE
-       bool "Management console"
-@@ -105,6 +132,16 @@
- config MAGIC_SYSRQ
-       bool "Magic SysRq key"
-       depends on MCONSOLE
-+      help
-+      If you say Y here, you will have some control over the system even
-+      if the system crashes for example during kernel debugging (e.g., you
-+      will be able to flush the buffer cache to disk, reboot the system
-+      immediately or dump some status information). This is accomplished
-+      by pressing various keys while holding SysRq (Alt+PrintScreen). It
-+      also works on a serial console (on PC hardware at least), if you
-+      send a BREAK and then within 5 seconds a command keypress. The
-+      keys are documented in Documentation/sysrq.txt. Don't say Y
-+      unless you really know what this hack does.
+-export SUBARCH USER_CFLAGS OS
++define archhelp
++  echo  '* linux      - Binary kernel image (./linux)'
++endef
+Index: uml-2.6.7/arch/um/kernel/tt/unmap.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/tt/unmap.c   2004-07-16 19:37:13.584959848 +0300
++++ uml-2.6.7/arch/um/kernel/tt/unmap.c        2004-07-16 19:47:23.753200176 +0300
+@@ -3,10 +3,7 @@
+  * Licensed under the GPL
+  */
  
- config HOST_2G_2G
-       bool "2G/2G host address space split"
-@@ -160,6 +197,9 @@
- config HIGHMEM
-       bool "Highmem support"
+-#include <stdio.h>
+-#include <errno.h>
+ #include <sys/mman.h>
+-#include "user.h"
  
-+config PROC_MM
-+      bool "/proc/mm support"
-+
- config KERNEL_STACK_ORDER
-       int "Kernel stack size order"
-       default 2
-@@ -168,6 +208,17 @@
-       be 1 << order pages.  The default is OK unless you're running Valgrind
-       on UML, in which case, set this to 3.
+ int switcheroo(int fd, int prot, void *from, void *to, int size)
+ {
+Index: uml-2.6.7/arch/um/kernel/tt/ptproxy/Makefile
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/tt/ptproxy/Makefile  2004-07-16 19:36:30.113568504 +0300
++++ uml-2.6.7/arch/um/kernel/tt/ptproxy/Makefile       2004-07-16 19:47:23.746201240 +0300
+@@ -9,5 +9,3 @@
  
-+config UML_REAL_TIME_CLOCK
-+      bool "Real-time Clock"
-+      default y
-+      help
-+      This option makes UML time deltas match wall clock deltas.  This should
-+      normally be enabled.  The exception would be if you are debugging with
-+      UML and spend long times with UML stopped at a breakpoint.  In this
-+      case, when UML is restarted, it will call the timer enough times to make
-+      up for the time spent at the breakpoint.  This could result in a 
-+      noticable lag.  If this is a problem, then disable this option.
-+
- endmenu
+ $(USER_OBJS) : %.o: %.c
+       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
+-
+-clean:
+Index: uml-2.6.7/arch/um/kernel/mem_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/mem_user.c   2004-07-16 19:36:47.959855456 +0300
++++ uml-2.6.7/arch/um/kernel/mem_user.c        2004-07-16 19:47:23.721205040 +0300
+@@ -34,10 +34,9 @@
+ #include <stddef.h>
+ #include <stdarg.h>
+ #include <unistd.h>
+-#include <fcntl.h>
+ #include <errno.h>
+ #include <string.h>
+-#include <sys/stat.h>
++#include <fcntl.h>
+ #include <sys/types.h>
+ #include <sys/mman.h>
+ #include "kern_util.h"
+@@ -47,105 +46,145 @@
+ #include "init.h"
+ #include "os.h"
+ #include "tempfile.h"
++#include "kern_constants.h"
  
- source "init/Kconfig"
-@@ -240,6 +291,10 @@
- config PT_PROXY
-       bool "Enable ptrace proxy"
-       depends on XTERM_CHAN && DEBUG_INFO
-+      help
-+      This option enables a debugging interface which allows gdb to debug
-+      the kernel without needing to actually attach to kernel threads.
-+      If you want to do kernel debugging, say Y here; otherwise say N.
+ extern struct mem_region physmem_region;
  
- config GPROF
-       bool "Enable gprof support"
-diff -Naur a/arch/um/Kconfig_block b/arch/um/Kconfig_block
---- a/arch/um/Kconfig_block    2004-03-10 08:22:00.000000000 -0500
-+++ b/arch/um/Kconfig_block    2004-03-10 08:41:14.000000000 -0500
-@@ -29,6 +29,20 @@
-         wise choice too.  In all other cases (for example, if you're just
-         playing around with User-Mode Linux) you can choose N.
+ #define TEMPNAME_TEMPLATE "vm_file-XXXXXX"
  
-+# Turn this back on when the driver actually works
-+#
-+#config BLK_DEV_COW
-+#     tristate "COW block device"
-+#     help
-+#     This is a layered driver which sits above two other block devices.
-+#     One is read-only, and the other is a read-write layer which stores
-+#     all changes.  This provides the illusion that the read-only layer
-+#     can be mounted read-write and changed.
+-int create_mem_file(unsigned long len)
++static int create_tmp_file(unsigned long len)
+ {
+-      int fd;
++      int fd, err;
+       char zero;
+       fd = make_tempfile(TEMPNAME_TEMPLATE, NULL, 1);
+-      if (fchmod(fd, 0777) < 0){
+-              perror("fchmod");
++      if(fd < 0) {
++              os_print_error(fd, "make_tempfile");
++              exit(1);
++      }
 +
-+config BLK_DEV_COW_COMMON
-+      bool
-+      default BLK_DEV_COW || BLK_DEV_UBD
++      err = os_mode_fd(fd, 0777);
++      if(err < 0){
++              os_print_error(err, "os_mode_fd");
+               exit(1);
+       }
+-      if(os_seek_file(fd, len) < 0){
+-              perror("lseek");
++      err = os_seek_file(fd, len);
++      if(err < 0){
++              os_print_error(err, "os_seek_file");
+               exit(1);
+       }
+       zero = 0;
+-      if(write(fd, &zero, 1) != 1){
+-              perror("write");
++      err = os_write_file(fd, &zero, 1);
++      if(err != 1){
++              os_print_error(err, "os_write_file");
+               exit(1);
+       }
+-      if(fcntl(fd, F_SETFD, 1) != 0)
+-              perror("Setting FD_CLOEXEC failed");
 +
- config BLK_DEV_LOOP
-       tristate "Loopback device support"
-diff -Naur a/arch/um/Kconfig_net b/arch/um/Kconfig_net
---- a/arch/um/Kconfig_net      2004-03-10 08:21:40.000000000 -0500
-+++ b/arch/um/Kconfig_net      2004-03-10 08:40:15.000000000 -0500
-@@ -1,5 +1,5 @@
--menu "Network Devices"
-+menu "UML Network Devices"
-       depends on NET
- # UML virtual driver
-@@ -176,73 +176,5 @@
-       
-         Startup example: "eth0=slirp,FE:FD:01:02:03:04,/usr/local/bin/slirp"
+       return(fd);
+ }
  
+-int setup_region(struct mem_region *region, void *entry)
++static int have_devanon = 0;
++
++void check_devanon(void)
++{
++      int fd;
++
++      printk("Checking for /dev/anon on the host...");
++      fd = open("/dev/anon", O_RDWR);
++      if(fd < 0){
++              printk("Not available (open failed with errno %d)\n", errno);
++              return;
++      }
++
++      printk("OK\n");
++      have_devanon = 1;
++}
++
++static int create_anon_file(unsigned long len)
+ {
+-      void *loc, *start;
+-      char *driver;
+-      int err, offset;
 -
--# Below are hardware-independent drivers mirrored from
--# drivers/net/Config.in. It would be nice if Linux
--# had HW independent drivers separated from the other
--# but it does not. Until then each non-ISA/PCI arch
--# needs to provide it's own menu of network drivers
--config DUMMY
--      tristate "Dummy net driver support"
--
--config BONDING
--      tristate "Bonding driver support"
--
--config EQUALIZER
--      tristate "EQL (serial line load balancing) support"
--
--config TUN
--      tristate "Universal TUN/TAP device driver support"
--
--config ETHERTAP
--      tristate "Ethertap network tap (OBSOLETE)"
--      depends on EXPERIMENTAL && NETLINK
--
--config PPP
--      tristate "PPP (point-to-point protocol) support"
--
--config PPP_MULTILINK
--      bool "PPP multilink support (EXPERIMENTAL)"
--      depends on PPP && EXPERIMENTAL
--
--config PPP_FILTER
--      bool "PPP filtering"
--      depends on PPP && FILTER
--
--config PPP_ASYNC
--      tristate "PPP support for async serial ports"
--      depends on PPP
--
--config PPP_SYNC_TTY
--      tristate "PPP support for sync tty ports"
--      depends on PPP
--
--config PPP_DEFLATE
--      tristate "PPP Deflate compression"
--      depends on PPP
--
--config PPP_BSDCOMP
--      tristate "PPP BSD-Compress compression"
--      depends on PPP
--
--config PPPOE
--      tristate "PPP over Ethernet (EXPERIMENTAL)"
--      depends on PPP && EXPERIMENTAL
--
--config SLIP
--      tristate "SLIP (serial line) support"
--
--config SLIP_COMPRESSED
--      bool "CSLIP compressed headers"
--      depends on SLIP=y
--
--config SLIP_SMART
--      bool "Keepalive and linefill"
--      depends on SLIP=y
--
--config SLIP_MODE_SLIP6
--      bool "Six bit SLIP encapsulation"
--      depends on SLIP=y
+-      if(region->start != -1){
+-              err = reserve_vm(region->start, 
+-                               region->start + region->len, entry);
+-              if(err){
+-                      printk("setup_region : failed to reserve "
+-                             "0x%x - 0x%x for driver '%s'\n",
+-                             region->start, 
+-                             region->start + region->len,
+-                             region->driver);
+-                      return(-1);
+-              }
+-      }
+-      else region->start = get_vm(region->len);
+-      if(region->start == 0){
+-              if(region->driver == NULL) driver = "physmem";
+-              else driver = region->driver;
+-              printk("setup_region : failed to find vm for "
+-                     "driver '%s' (length %d)\n", driver, region->len);
+-              return(-1);
+-      }
+-      if(region->start == uml_physmem){
+-              start = (void *) uml_reserved;
+-              offset = uml_reserved - uml_physmem;
+-      }
+-      else {
+-              start = (void *) region->start;
+-              offset = 0;
+-      }
 -
- endmenu
-diff -Naur a/arch/um/kernel/config.c.in b/arch/um/kernel/config.c.in
---- a/arch/um/kernel/config.c.in       2004-03-10 08:22:24.000000000 -0500
-+++ b/arch/um/kernel/config.c.in       2004-03-10 08:41:35.000000000 -0500
-@@ -7,9 +7,7 @@
- #include <stdlib.h>
- #include "init.h"
--static __initdata char *config = "
--CONFIG
--";
-+static __initdata char *config = "CONFIG";
- static int __init print_config(char *line, int *add)
- {
-diff -Naur a/arch/um/kernel/exec_kern.c b/arch/um/kernel/exec_kern.c
---- a/arch/um/kernel/exec_kern.c       2004-03-10 08:20:50.000000000 -0500
-+++ b/arch/um/kernel/exec_kern.c       2004-03-10 08:36:27.000000000 -0500
-@@ -32,10 +32,15 @@
-       CHOOSE_MODE_PROC(start_thread_tt, start_thread_skas, regs, eip, esp);
- }
-+extern void log_exec(char **argv, void *tty);
+-      loc = mmap(start, region->len - offset, PROT_READ | PROT_WRITE, 
+-                 MAP_SHARED | MAP_FIXED, region->fd, offset);
+-      if(loc != start){
+-              perror("Mapping memory");
++      void *addr;
++      int fd;
 +
- static int execve1(char *file, char **argv, char **env)
- {
-         int error;
-+#ifdef CONFIG_TTY_LOG
-+      log_exec(argv, current->tty);
-+#endif
-         error = do_execve(file, argv, env, &current->thread.regs);
-         if (error == 0){
-                 current->ptrace &= ~PT_DTRACE;
-diff -Naur a/arch/um/kernel/frame.c b/arch/um/kernel/frame.c
---- a/arch/um/kernel/frame.c   2004-03-10 08:20:56.000000000 -0500
-+++ b/arch/um/kernel/frame.c   2004-03-10 08:37:19.000000000 -0500
-@@ -279,7 +279,7 @@
-       struct sc_frame_raw raw_sc;
-       struct si_frame_raw raw_si;
-       void *stack, *sigstack;
--      unsigned long top, sig_top, base;
-+      unsigned long top, base;
-       stack = mmap(NULL, PAGE_SIZE, PROT_READ | PROT_WRITE | PROT_EXEC,
-                    MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
-@@ -292,7 +292,6 @@
++      fd = open("/dev/anon", O_RDWR);
++      if(fd < 0) {
++              os_print_error(fd, "opening /dev/anon");
+               exit(1);
        }
-       top = (unsigned long) stack + PAGE_SIZE - sizeof(void *);
--      sig_top = (unsigned long) sigstack + PAGE_SIZE;
-       /* Get the sigcontext, no sigrestorer layout */
-       raw_sc.restorer = 0;
-diff -Naur a/arch/um/kernel/frame_kern.c b/arch/um/kernel/frame_kern.c
---- a/arch/um/kernel/frame_kern.c      2004-03-10 08:23:29.000000000 -0500
-+++ b/arch/um/kernel/frame_kern.c      2004-03-10 08:45:36.000000000 -0500
-@@ -6,7 +6,6 @@
- #include "asm/ptrace.h"
- #include "asm/uaccess.h"
- #include "asm/signal.h"
--#include "asm/uaccess.h"
- #include "asm/ucontext.h"
- #include "frame_kern.h"
- #include "sigcontext.h"
-@@ -29,12 +28,15 @@
-                           sizeof(restorer)));
+-      return(0);
++
++      addr = mmap(NULL, len, PROT_READ | PROT_WRITE , MAP_PRIVATE, fd, 0);
++      if(addr == MAP_FAILED){
++              os_print_error((int) addr, "mapping physmem file");
++              exit(1);
++      }
++      munmap(addr, len);
++
++      return(fd);
++}
++
++int create_mem_file(unsigned long len)
++{
++      int err, fd;
++
++      if(have_devanon)
++              fd = create_anon_file(len);
++      else fd = create_tmp_file(len);
++
++      err = os_set_exec_close(fd, 1);
++      if(err < 0)
++              os_print_error(err, "exec_close");
++      return(fd);
  }
  
-+extern int userspace_pid[];
++struct iomem_region *iomem_regions = NULL;
++int iomem_size = 0;
 +
- static int copy_sc_to_user(void *to, void *fp, struct pt_regs *from, 
-                          struct arch_frame_data *arch)
- {
-       return(CHOOSE_MODE(copy_sc_to_user_tt(to, fp, UPT_SC(&from->regs), 
-                                             arch),
--                         copy_sc_to_user_skas(to, fp, &from->regs,
-+                         copy_sc_to_user_skas(userspace_pid[0], to, fp, 
-+                                              &from->regs,
-                                               current->thread.cr2,
-                                               current->thread.err)));
- }
-diff -Naur a/arch/um/kernel/helper.c b/arch/um/kernel/helper.c
---- a/arch/um/kernel/helper.c  2004-03-10 08:21:25.000000000 -0500
-+++ b/arch/um/kernel/helper.c  2004-03-10 08:38:51.000000000 -0500
-@@ -7,7 +7,6 @@
- #include <stdlib.h>
- #include <unistd.h>
- #include <errno.h>
--#include <fcntl.h>
- #include <sched.h>
- #include <sys/signal.h>
- #include <sys/wait.h>
-@@ -33,6 +32,7 @@
+ static int __init parse_iomem(char *str, int *add)
  {
-       struct helper_data *data = arg;
-       char **argv = data->argv;
-+      int errval;
-       if(helper_pause){
-               signal(SIGHUP, helper_hup);
-@@ -41,8 +41,9 @@
-       if(data->pre_exec != NULL)
-               (*data->pre_exec)(data->pre_data);
-       execvp(argv[0], argv);
-+      errval = errno;
-       printk("execvp of '%s' failed - errno = %d\n", argv[0], errno);
--      write(data->fd, &errno, sizeof(errno));
-+      os_write_file(data->fd, &errval, sizeof(errval));
-       os_kill_process(os_getpid(), 0);
-       return(0);
- }
-@@ -59,17 +60,20 @@
-       if((stack_out != NULL) && (*stack_out != 0))
-               stack = *stack_out;
-       else stack = alloc_stack(0, um_in_interrupt());
--      if(stack == 0) return(-ENOMEM);
-+      if(stack == 0) 
-+              return(-ENOMEM);
+-      struct stat buf;
++      struct iomem_region *new;
++      struct uml_stat buf;
+       char *file, *driver;
+-      int fd;
++      int fd, err;
  
-       err = os_pipe(fds, 1, 0);
--      if(err){
--              printk("run_helper : pipe failed, errno = %d\n", -err);
--              return(err);
-+      if(err < 0){
-+              printk("run_helper : pipe failed, err = %d\n", -err);
-+              goto out_free;
+       driver = str;
+       file = strchr(str,',');
+       if(file == NULL){
+-              printk("parse_iomem : failed to parse iomem\n");
+-              return(1);
++              printf("parse_iomem : failed to parse iomem\n");
++              goto out;
        }
--      if(fcntl(fds[1], F_SETFD, 1) != 0){
--              printk("run_helper : setting FD_CLOEXEC failed, errno = %d\n",
+       *file = '\0';
+       file++;
+       fd = os_open_file(file, of_rdwr(OPENFLAGS()), 0);
+       if(fd < 0){
+-              printk("parse_iomem - Couldn't open io file, errno = %d\n", 
 -                     errno);
--              return(-errno);
+-              return(1);
+-      }
+-      if(fstat(fd, &buf) < 0) {
+-              printk("parse_iomem - cannot fstat file, errno = %d\n", errno);
+-              return(1);
++              os_print_error(fd, "parse_iomem - Couldn't open io file");
++              goto out;
+       }
+-      add_iomem(driver, fd, buf.st_size);
 +
-+      err = os_set_exec_close(fds[1], 1);
++      err = os_stat_fd(fd, &buf);
 +      if(err < 0){
-+              printk("run_helper : setting FD_CLOEXEC failed, err = %d\n",
-+                     -err);
++              os_print_error(err, "parse_iomem - cannot stat_fd file");
 +              goto out_close;
-       }
-       sp = stack + page_size() - sizeof(void *);
-@@ -80,23 +84,34 @@
-       pid = clone(helper_child, (void *) sp, CLONE_VM | SIGCHLD, &data);
-       if(pid < 0){
-               printk("run_helper : clone failed, errno = %d\n", errno);
--              return(-errno);
-+              err = -errno;
++      }
++
++      new = malloc(sizeof(*new));
++      if(new == NULL){
++              perror("Couldn't allocate iomem_region struct");
 +              goto out_close;
-       }
--      close(fds[1]);
--      n = read(fds[0], &err, sizeof(err));
++      }
 +
-+      os_close_file(fds[1]);
-+      n = os_read_file(fds[0], &err, sizeof(err));
-       if(n < 0){
--              printk("run_helper : read on pipe failed, errno = %d\n", 
--                     errno);
--              return(-errno);
-+              printk("run_helper : read on pipe failed, err = %d\n", -n);
-+              err = n;
-+              goto out_kill;
-       }
-       else if(n != 0){
-               waitpid(pid, NULL, 0);
--              pid = -err;
-+              pid = -errno;
-       }
-       if(stack_out == NULL) free_stack(stack, 0);
-         else *stack_out = stack;
-       return(pid);
++      *new = ((struct iomem_region) { .next           = iomem_regions,
++                                      .driver         = driver,
++                                      .fd             = fd,
++                                      .size           = buf.ust_size,
++                                      .phys           = 0,
++                                      .virt           = 0 });
++      iomem_regions = new;
++      iomem_size += new->size + UM_KERN_PAGE_SIZE;
 +
-+ out_kill:
-+      os_kill_process(pid, 1);
+       return(0);
 + out_close:
-+      os_close_file(fds[0]);
-+      os_close_file(fds[1]);
-+ out_free:
-+      free_stack(stack, 0);
-+      return(err);
++      os_close_file(fd);
++ out:
++      return(1);
  }
  
- int run_helper_thread(int (*proc)(void *), void *arg, unsigned int flags, 
-@@ -117,9 +132,11 @@
-       }
-       if(stack_out == NULL){
-               pid = waitpid(pid, &status, 0);
--              if(pid < 0)
-+              if(pid < 0){
-                       printk("run_helper_thread - wait failed, errno = %d\n",
--                             pid);
-+                             errno);
-+                      pid = -errno;
-+              }
-               if(!WIFEXITED(status) || (WEXITSTATUS(status) != 0))
-                       printk("run_helper_thread - thread returned status "
-                              "0x%x\n", status);
-diff -Naur a/arch/um/kernel/initrd_user.c b/arch/um/kernel/initrd_user.c
---- a/arch/um/kernel/initrd_user.c     2004-03-10 08:20:28.000000000 -0500
-+++ b/arch/um/kernel/initrd_user.c     2004-03-10 08:35:31.000000000 -0500
-@@ -6,7 +6,6 @@
- #include <unistd.h>
- #include <sys/types.h>
- #include <sys/stat.h>
--#include <fcntl.h>
- #include <errno.h>
+ __uml_setup("iomem=", parse_iomem,
+@@ -153,73 +192,20 @@
+ "    Configure <file> as an IO memory region named <name>.\n\n"
+ );
  
- #include "user_util.h"
-@@ -19,13 +18,15 @@
+-#ifdef notdef
+-int logging = 0;
+-int logging_fd = -1;
+-
+-int logging_line = 0;
+-char logging_buf[256];
+-
+-void log(char *fmt, ...)
+-{
+-      va_list ap;
+-      struct timeval tv;
+-      struct openflags flags;
+-
+-      if(logging == 0) return;
+-      if(logging_fd < 0){
+-              flags = of_create(of_trunc(of_rdrw(OPENFLAGS())));
+-              logging_fd = os_open_file("log", flags, 0644);
+-      }
+-      gettimeofday(&tv, NULL);
+-      sprintf(logging_buf, "%d\t %u.%u  ", logging_line++, tv.tv_sec, 
+-              tv.tv_usec);
+-      va_start(ap, fmt);
+-      vsprintf(&logging_buf[strlen(logging_buf)], fmt, ap);
+-      va_end(ap);
+-      write(logging_fd, logging_buf, strlen(logging_buf));
+-}
+-#endif
+-
+-int map_memory(unsigned long virt, unsigned long phys, unsigned long len, 
+-             int r, int w, int x)
+-{
+-      struct mem_region *region = phys_region(phys);
+-
+-      return(os_map_memory((void *) virt, region->fd, phys_offset(phys), len,
+-                           r, w, x));
+-}
+-
+ int protect_memory(unsigned long addr, unsigned long len, int r, int w, int x,
+                  int must_succeed)
  {
-       int fd, n;
--      if((fd = os_open_file(filename, of_read(OPENFLAGS()), 0)) < 0){
--              printk("Opening '%s' failed - errno = %d\n", filename, errno);
-+      fd = os_open_file(filename, of_read(OPENFLAGS()), 0);
-+      if(fd < 0){
-+              printk("Opening '%s' failed - err = %d\n", filename, -fd);
-               return(-1);
-       }
--      if((n = read(fd, buf, size)) != size){
--              printk("Read of %d bytes from '%s' returned %d, errno = %d\n",
--                     size, filename, n, errno);
-+      n = os_read_file(fd, buf, size);
-+      if(n != size){
-+              printk("Read of %d bytes from '%s' failed, err = %d\n", size, 
-+                     filename, -n);
-               return(-1);
+-      if(os_protect_memory((void *) addr, len, r, w, x) < 0){
++      int err;
++
++      err = os_protect_memory((void *) addr, len, r, w, x);
++      if(err < 0){
+                 if(must_succeed)
+-                        panic("protect failed, errno = %d", errno);
+-                else return(-errno);
++                      panic("protect failed, err = %d", -err);
++              else return(err);
        }
        return(0);
-diff -Naur a/arch/um/kernel/init_task.c b/arch/um/kernel/init_task.c
---- a/arch/um/kernel/init_task.c       2004-03-10 08:23:28.000000000 -0500
-+++ b/arch/um/kernel/init_task.c       2004-03-10 08:45:26.000000000 -0500
+ }
+-unsigned long find_iomem(char *driver, unsigned long *len_out)
+-{
+-      struct mem_region *region;
+-      int i, n;
+-
+-      n = nregions();
+-      for(i = 0; i < n; i++){
+-              region = regions[i];
+-              if(region == NULL) continue;
+-              if((region->driver != NULL) &&
+-                 !strcmp(region->driver, driver)){
+-                      *len_out = region->len;
+-                      return(region->start);
+-              }
+-      }
+-      *len_out = 0;
+-      return 0;
+-}
+-
+ /*
+  * Overrides for Emacs so that we follow Linus's tabbing style.
+  * Emacs will notice this stuff at the end of the file and automatically
+Index: uml-2.6.7/arch/um/kernel/init_task.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/init_task.c  2004-07-16 19:37:49.384517488 +0300
++++ uml-2.6.7/arch/um/kernel/init_task.c       2004-07-16 19:47:23.716205800 +0300
 @@ -8,7 +8,6 @@
  #include "linux/module.h"
  #include "linux/sched.h"
@@ -7010,8269 +6071,6472 @@ diff -Naur a/arch/um/kernel/init_task.c b/arch/um/kernel/init_task.c
  /*
   * Overrides for Emacs so that we follow Linus's tabbing style.
   * Emacs will notice this stuff at the end of the file and automatically
-diff -Naur a/arch/um/kernel/irq.c b/arch/um/kernel/irq.c
---- a/arch/um/kernel/irq.c     2004-03-10 08:22:36.000000000 -0500
-+++ b/arch/um/kernel/irq.c     2004-03-10 08:42:39.000000000 -0500
-@@ -29,6 +29,7 @@
- #include "user_util.h"
- #include "kern_util.h"
- #include "irq_user.h"
-+#include "irq_kern.h"
+Index: uml-2.6.7/arch/um/kernel/tty_log.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/tty_log.c    2004-07-16 19:36:56.920493232 +0300
++++ uml-2.6.7/arch/um/kernel/tty_log.c 2004-07-16 19:47:23.753200176 +0300
+@@ -9,10 +9,10 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+-#include <fcntl.h>
+ #include <sys/time.h>
+ #include "init.h"
+ #include "user.h"
++#include "kern_util.h"
+ #include "os.h"
  
- static void register_irq_proc (unsigned int irq);
+ #define TTY_LOG_DIR "./"
+@@ -24,29 +24,40 @@
+ #define TTY_LOG_OPEN 1
+ #define TTY_LOG_CLOSE 2
+ #define TTY_LOG_WRITE 3
++#define TTY_LOG_EXEC 4
++
++#define TTY_READ 1
++#define TTY_WRITE 2
  
-@@ -83,65 +84,55 @@
-       end_none
+ struct tty_log_buf {
+       int what;
+       unsigned long tty;
+       int len;
++      int direction;
++      unsigned long sec;
++      unsigned long usec;
  };
  
--/* Not changed */
--volatile unsigned long irq_err_count;
--
- /*
-  * Generic, controller-independent functions:
-  */
--int get_irq_list(char *buf)
-+int show_interrupts(struct seq_file *p, void *v)
+-int open_tty_log(void *tty)
++int open_tty_log(void *tty, void *current_tty)
  {
--      int i, j;
--      unsigned long flags;
-+      int i = *(loff_t *) v, j;
-       struct irqaction * action;
--      char *p = buf;
-+      unsigned long flags;
+       struct timeval tv;
+       struct tty_log_buf data;
+       char buf[strlen(tty_log_dir) + sizeof("01234567890-01234567\0")];
+       int fd;
  
--      p += sprintf(p, "           ");
--      for (j=0; j<num_online_cpus(); j++)
--              p += sprintf(p, "CPU%d       ",j);
--      *p++ = '\n';
-+      if (i == 0) {
-+              seq_printf(p, "           ");
-+              for (j=0; j<NR_CPUS; j++)
-+                      if (cpu_online(j))
-+                              seq_printf(p, "CPU%d       ",j);
-+              seq_putc(p, '\n');
-+      }
--      for (i = 0 ; i < NR_IRQS ; i++) {
-+      if (i < NR_IRQS) {
-               spin_lock_irqsave(&irq_desc[i].lock, flags);
-               action = irq_desc[i].action;
-               if (!action) 
--                      goto end;
--              p += sprintf(p, "%3d: ",i);
-+                      goto skip;
-+              seq_printf(p, "%3d: ",i);
- #ifndef CONFIG_SMP
--              p += sprintf(p, "%10u ", kstat_irqs(i));
-+              seq_printf(p, "%10u ", kstat_irqs(i));
- #else
--              for (j = 0; j < num_online_cpus(); j++)
--                      p += sprintf(p, "%10u ",
--                              kstat_cpu(cpu_logical_map(j)).irqs[i]);
-+              for (j = 0; j < NR_CPUS; j++)
-+                      if (cpu_online(j))
-+                              seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]);
- #endif
--              p += sprintf(p, " %14s", irq_desc[i].handler->typename);
--              p += sprintf(p, "  %s", action->name);
-+              seq_printf(p, " %14s", irq_desc[i].handler->typename);
-+              seq_printf(p, "  %s", action->name);
-               for (action=action->next; action; action = action->next)
--                      p += sprintf(p, ", %s", action->name);
--              *p++ = '\n';
--      end:
-+                      seq_printf(p, ", %s", action->name);
-+
-+              seq_putc(p, '\n');
-+skip:
-               spin_unlock_irqrestore(&irq_desc[i].lock, flags);
-+      } else if (i == NR_IRQS) {
-+              seq_printf(p, "NMI: ");
-+              for (j = 0; j < NR_CPUS; j++)
-+                      if (cpu_online(j))
-+                              seq_printf(p, "%10u ", nmi_count(j));
-+              seq_putc(p, '\n');
++      gettimeofday(&tv, NULL);
+       if(tty_log_fd != -1){
+-              data = ((struct tty_log_buf) { what :   TTY_LOG_OPEN,
+-                                             tty : (unsigned long) tty,
+-                                             len : 0 });
+-              write(tty_log_fd, &data, sizeof(data));
++              data = ((struct tty_log_buf) { .what    = TTY_LOG_OPEN,
++                                             .tty  = (unsigned long) tty,
++                                             .len  = sizeof(current_tty),
++                                             .direction = 0,
++                                             .sec = tv.tv_sec,
++                                             .usec = tv.tv_usec } );
++              os_write_file(tty_log_fd, &data, sizeof(data));
++              os_write_file(tty_log_fd, &current_tty, data.len);
+               return(tty_log_fd);
        }
--      p += sprintf(p, "\n");
--#ifdef notdef
--#ifdef CONFIG_SMP
--      p += sprintf(p, "LOC: ");
--      for (j = 0; j < num_online_cpus(); j++)
--              p += sprintf(p, "%10u ",
--                      apic_timer_irqs[cpu_logical_map(j)]);
--      p += sprintf(p, "\n");
--#endif
--#endif
--      p += sprintf(p, "ERR: %10lu\n", irq_err_count);
--      return p - buf;
--}
--
--int show_interrupts(struct seq_file *p, void *v)
--{
--      return(0);
-+      return 0;
- }
- /*
-@@ -282,13 +273,12 @@
-        * 0 return value means that this irq is already being
-        * handled by some other CPU. (or is disabled)
-        */
--      int cpu = smp_processor_id();
-       irq_desc_t *desc = irq_desc + irq;
-       struct irqaction * action;
-       unsigned int status;
  
-       irq_enter();
--      kstat_cpu(cpu).irqs[irq]++;
-+      kstat_this_cpu.irqs[irq]++;
-       spin_lock(&desc->lock);
-       desc->handler->ack(irq);
-       /*
-@@ -385,7 +375,7 @@
-  */
-  
- int request_irq(unsigned int irq,
--              void (*handler)(int, void *, struct pt_regs *),
-+              irqreturn_t (*handler)(int, void *, struct pt_regs *),
-               unsigned long irqflags, 
-               const char * devname,
-               void *dev_id)
-@@ -433,15 +423,19 @@
- EXPORT_SYMBOL(request_irq);
+-      gettimeofday(&tv, NULL);
+       sprintf(buf, "%s/%0u-%0u", tty_log_dir, (unsigned int) tv.tv_sec, 
+               (unsigned int) tv.tv_usec);
  
- int um_request_irq(unsigned int irq, int fd, int type,
--                 void (*handler)(int, void *, struct pt_regs *),
-+                 irqreturn_t (*handler)(int, void *, struct pt_regs *),
-                  unsigned long irqflags, const char * devname,
-                  void *dev_id)
+@@ -62,30 +73,117 @@
+ void close_tty_log(int fd, void *tty)
  {
--      int retval;
-+      int err;
+       struct tty_log_buf data;
++      struct timeval tv;
  
--      retval = request_irq(irq, handler, irqflags, devname, dev_id);
--      if(retval) return(retval);
--      return(activate_fd(irq, fd, type, dev_id));
-+      err = request_irq(irq, handler, irqflags, devname, dev_id);
-+      if(err) 
-+              return(err);
-+
-+      if(fd != -1)
-+              err = activate_fd(irq, fd, type, dev_id);
-+      return(err);
+       if(tty_log_fd != -1){
+-              data = ((struct tty_log_buf) { what :   TTY_LOG_CLOSE,
+-                                             tty : (unsigned long) tty,
+-                                             len : 0 });
+-              write(tty_log_fd, &data, sizeof(data));
++              gettimeofday(&tv, NULL);
++              data = ((struct tty_log_buf) { .what    = TTY_LOG_CLOSE,
++                                             .tty  = (unsigned long) tty,
++                                             .len  = 0,
++                                             .direction = 0,
++                                             .sec = tv.tv_sec,
++                                             .usec = tv.tv_usec } );
++              os_write_file(tty_log_fd, &data, sizeof(data));
+               return;
+       }
+-      close(fd);
++      os_close_file(fd);
  }
  
- /* this was setup_x86_irq but it seems pretty generic */
-@@ -474,7 +468,8 @@
-        */
-       spin_lock_irqsave(&desc->lock,flags);
-       p = &desc->action;
--      if ((old = *p) != NULL) {
-+      old = *p;
-+      if (old != NULL) {
-               /* Can't share interrupts unless both agree to */
-               if (!(old->flags & new->flags & SA_SHIRQ)) {
-                       spin_unlock_irqrestore(&desc->lock,flags);
-@@ -586,12 +581,14 @@
-                                       unsigned long count, void *data)
+-int write_tty_log(int fd, char *buf, int len, void *tty)
++static int log_chunk(int fd, const char *buf, int len)
  {
-       int irq = (long) data, full_count = count, err;
--      cpumask_t new_value, tmp;
-+      cpumask_t new_value;
-       if (!irq_desc[irq].handler->set_affinity)
-               return -EIO;
-       err = cpumask_parse(buffer, count, new_value);
-+      if(err)
-+              return(err);
- #ifdef CONFIG_SMP
-       /*
-@@ -599,9 +596,11 @@
-        * way to make the system unusable accidentally :-) At least
-        * one online CPU still has to be targeted.
-        */
--      cpus_and(tmp, new_value, cpu_online_map);
--      if (cpus_empty(tmp))
--              return -EINVAL;
-+      { cpumask_t tmp;
-+        cpus_and(tmp, new_value, cpu_online_map);
-+        if (cpus_empty(tmp))
-+                return -EINVAL;
++      int total = 0, try, missed, n;
++      char chunk[64];
++
++      while(len > 0){
++              try = (len > sizeof(chunk)) ? sizeof(chunk) : len;
++              missed = copy_from_user_proc(chunk, (char *) buf, try);
++              try -= missed;
++              n = os_write_file(fd, chunk, try);
++              if(n != try) {
++                      if(n < 0) 
++                              return(n);
++                      return(-EIO);
++              }
++              if(missed != 0)
++                      return(-EFAULT);
++
++              len -= try;
++              total += try;
++              buf += try;
 +      }
- #endif
-       irq_affinity[irq] = new_value;
-diff -Naur a/arch/um/kernel/irq_user.c b/arch/um/kernel/irq_user.c
---- a/arch/um/kernel/irq_user.c        2004-03-10 08:21:04.000000000 -0500
-+++ b/arch/um/kernel/irq_user.c        2004-03-10 08:38:21.000000000 -0500
-@@ -6,7 +6,6 @@
- #include <stdlib.h>
- #include <unistd.h>
- #include <errno.h>
--#include <fcntl.h>
- #include <signal.h>
- #include <string.h>
- #include <sys/poll.h>
-@@ -49,7 +48,8 @@
-       if(smp_sigio_handler()) return;
-       while(1){
--              if((n = poll(pollfds, pollfds_num, 0)) < 0){
-+              n = poll(pollfds, pollfds_num, 0);
-+              if(n < 0){
-                       if(errno == EINTR) continue;
-                       printk("sigio_handler : poll returned %d, "
-                              "errno = %d\n", n, errno);
-@@ -366,34 +366,31 @@
- void forward_ipi(int fd, int pid)
- {
--      if(fcntl(fd, F_SETOWN, pid) < 0){
--              int save_errno = errno;
--              if(fcntl(fd, F_GETOWN, 0) != pid){
--                      printk("forward_ipi: F_SETOWN failed, fd = %d, "
--                             "me = %d, target = %d, errno = %d\n", fd, 
--                             os_getpid(), pid, save_errno);
--              }
--      }
-+      int err;
 +
-+      err = os_set_owner(fd, pid);
-+      if(err < 0)
-+              printk("forward_ipi: set_owner failed, fd = %d, me = %d, "
-+                     "target = %d, err = %d\n", fd, os_getpid(), pid, -err);
- }
- void forward_interrupts(int pid)
- {
-       struct irq_fd *irq;
-       unsigned long flags;
-+      int err;
++      return(total);
++}
++
++int write_tty_log(int fd, const char *buf, int len, void *tty, int is_read)
++{
++      struct timeval tv;
+       struct tty_log_buf data;
++      int direction;
  
-       flags = irq_lock();
-       for(irq=active_fds;irq != NULL;irq = irq->next){
--              if(fcntl(irq->fd, F_SETOWN, pid) < 0){
--                      int save_errno = errno;
--                      if(fcntl(irq->fd, F_GETOWN, 0) != pid){
--                              /* XXX Just remove the irq rather than
--                               * print out an infinite stream of these
--                               */
--                              printk("Failed to forward %d to pid %d, "
--                                     "errno = %d\n", irq->fd, pid, 
--                                     save_errno);
--                      }
-+              err = os_set_owner(irq->fd, pid);
-+              if(err < 0){
-+                      /* XXX Just remove the irq rather than
-+                       * print out an infinite stream of these
-+                       */
-+                      printk("Failed to forward %d to pid %d, err = %d\n",
-+                             irq->fd, pid, -err);
-               }
-+
-               irq->pid = pid;
+       if(fd == tty_log_fd){
+-              data = ((struct tty_log_buf) { what :   TTY_LOG_WRITE,
+-                                             tty : (unsigned long) tty,
+-                                             len : len });
+-              write(tty_log_fd, &data, sizeof(data));
++              gettimeofday(&tv, NULL);
++              direction = is_read ? TTY_READ : TTY_WRITE;
++              data = ((struct tty_log_buf) { .what    = TTY_LOG_WRITE,
++                                             .tty  = (unsigned long) tty,
++                                             .len  = len,
++                                             .direction = direction,
++                                             .sec = tv.tv_sec,
++                                             .usec = tv.tv_usec } );
++              os_write_file(tty_log_fd, &data, sizeof(data));
        }
-       irq_unlock(flags);
-diff -Naur a/arch/um/kernel/ksyms.c b/arch/um/kernel/ksyms.c
---- a/arch/um/kernel/ksyms.c   2004-03-10 08:20:16.000000000 -0500
-+++ b/arch/um/kernel/ksyms.c   2004-03-10 08:34:10.000000000 -0500
-@@ -1,5 +1,5 @@
- /* 
-- * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
-+ * Copyright (C) 2001 - 2004 Jeff Dike (jdike@addtoit.com)
-  * Licensed under the GPL
-  */
+-      return(write(fd, buf, len));
++
++      return(log_chunk(fd, buf, len));
+ }
  
-@@ -8,7 +8,7 @@
- #include "linux/string.h"
- #include "linux/smp_lock.h"
- #include "linux/spinlock.h"
--#include <linux/highmem.h>
-+#include "linux/highmem.h"
- #include "asm/current.h"
- #include "asm/delay.h"
++void log_exec(char **argv, void *tty)
++{
++      struct timeval tv;
++      struct tty_log_buf data;
++      char **ptr,*arg;
++      int len;
++      
++      if(tty_log_fd == -1) return;
++
++      gettimeofday(&tv, NULL);
++
++      len = 0;
++      for(ptr = argv; ; ptr++){
++              if(copy_from_user_proc(&arg, ptr, sizeof(arg)))
++                      return;
++              if(arg == NULL) break;
++              len += strlen_user_proc(arg);
++      }
++
++      data = ((struct tty_log_buf) { .what    = TTY_LOG_EXEC,
++                                     .tty  = (unsigned long) tty,
++                                     .len  = len,
++                                     .direction = 0,
++                                     .sec = tv.tv_sec,
++                                     .usec = tv.tv_usec } );
++      os_write_file(tty_log_fd, &data, sizeof(data));
++
++      for(ptr = argv; ; ptr++){
++              if(copy_from_user_proc(&arg, ptr, sizeof(arg)))
++                      return;
++              if(arg == NULL) break;
++              log_chunk(tty_log_fd, arg, strlen_user_proc(arg));
++      }
++}
++
++extern void register_tty_logger(int (*opener)(void *, void *),
++                              int (*writer)(int, const char *, int, 
++                                            void *, int),
++                              void (*closer)(int, void *));
++
++static int register_logger(void)
++{
++      register_tty_logger(open_tty_log, write_tty_log, close_tty_log);
++      return(0);
++}
++
++__uml_initcall(register_logger);
++
+ static int __init set_tty_log_dir(char *name, int *add)
+ {
+       tty_log_dir = name;
+@@ -104,7 +202,7 @@
+       tty_log_fd = strtoul(name, &end, 0);
+       if((*end != '\0') || (end == name)){
+-              printk("set_tty_log_fd - strtoul failed on '%s'\n", name);
++              printf("set_tty_log_fd - strtoul failed on '%s'\n", name);
+               tty_log_fd = -1;
+       }
+       return 0;
+Index: uml-2.6.7/arch/um/kernel/process_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/process_kern.c       2004-07-16 19:36:45.946161584 +0300
++++ uml-2.6.7/arch/um/kernel/process_kern.c    2004-07-16 19:47:23.723204736 +0300
+@@ -16,6 +16,7 @@
+ #include "linux/module.h"
+ #include "linux/init.h"
+ #include "linux/capability.h"
++#include "linux/spinlock.h"
+ #include "asm/unistd.h"
+ #include "asm/mman.h"
+ #include "asm/segment.h"
+@@ -23,7 +24,6 @@
+ #include "asm/pgtable.h"
  #include "asm/processor.h"
-@@ -19,6 +19,7 @@
  #include "asm/tlbflush.h"
- #include "kern_util.h"
+-#include "asm/spinlock.h"
+ #include "asm/uaccess.h"
+ #include "asm/user.h"
  #include "user_util.h"
-+#include "mem_user.h"
- #include "os.h"
- #include "helper.h"
-@@ -34,34 +35,64 @@
- EXPORT_SYMBOL(flush_tlb_range);
- EXPORT_SYMBOL(host_task_size);
- EXPORT_SYMBOL(arch_validate);
-+EXPORT_SYMBOL(get_kmem_end);
--EXPORT_SYMBOL(region_pa);
--EXPORT_SYMBOL(region_va);
--EXPORT_SYMBOL(phys_mem_map);
--EXPORT_SYMBOL(page_mem_map);
- EXPORT_SYMBOL(page_to_phys);
- EXPORT_SYMBOL(phys_to_page);
- EXPORT_SYMBOL(high_physmem);
- EXPORT_SYMBOL(empty_zero_page);
- EXPORT_SYMBOL(um_virt_to_phys);
-+EXPORT_SYMBOL(__virt_to_page);
-+EXPORT_SYMBOL(to_phys);
-+EXPORT_SYMBOL(to_virt);
- EXPORT_SYMBOL(mode_tt);
- EXPORT_SYMBOL(handle_page_fault);
-+EXPORT_SYMBOL(find_iomem);
+@@ -52,17 +52,12 @@
  
-+#ifdef CONFIG_MODE_TT
-+EXPORT_SYMBOL(copy_from_user_tt);
-+EXPORT_SYMBOL(copy_to_user_tt);
-+#endif
-+
-+#ifdef CONFIG_MODE_SKAS
-+EXPORT_SYMBOL(copy_to_user_skas);
-+EXPORT_SYMBOL(copy_from_user_skas);
-+#endif
-+
-+EXPORT_SYMBOL(os_stat_fd);
-+EXPORT_SYMBOL(os_stat_file);
-+EXPORT_SYMBOL(os_access);
-+EXPORT_SYMBOL(os_print_error);
-+EXPORT_SYMBOL(os_get_exec_close);
-+EXPORT_SYMBOL(os_set_exec_close);
- EXPORT_SYMBOL(os_getpid);
- EXPORT_SYMBOL(os_open_file);
- EXPORT_SYMBOL(os_read_file);
- EXPORT_SYMBOL(os_write_file);
- EXPORT_SYMBOL(os_seek_file);
-+EXPORT_SYMBOL(os_lock_file);
-+EXPORT_SYMBOL(os_ioctl_generic);
- EXPORT_SYMBOL(os_pipe);
- EXPORT_SYMBOL(os_file_type);
-+EXPORT_SYMBOL(os_file_mode);
-+EXPORT_SYMBOL(os_file_size);
-+EXPORT_SYMBOL(os_flush_stdout);
- EXPORT_SYMBOL(os_close_file);
-+EXPORT_SYMBOL(os_set_fd_async);
-+EXPORT_SYMBOL(os_set_fd_block);
- EXPORT_SYMBOL(helper_wait);
- EXPORT_SYMBOL(os_shutdown_socket);
-+EXPORT_SYMBOL(os_create_unix_socket);
- EXPORT_SYMBOL(os_connect_socket);
-+EXPORT_SYMBOL(os_accept_connection);
-+EXPORT_SYMBOL(os_rcv_fd);
- EXPORT_SYMBOL(run_helper);
- EXPORT_SYMBOL(start_thread);
- EXPORT_SYMBOL(dump_thread);
+ struct task_struct *get_task(int pid, int require)
+ {
+-        struct task_struct *task, *ret;
++        struct task_struct *ret;
  
-+EXPORT_SYMBOL(do_gettimeofday);
-+EXPORT_SYMBOL(do_settimeofday);
+-        ret = NULL;
+         read_lock(&tasklist_lock);
+-        for_each_process(task){
+-                if(task->pid == pid){
+-                        ret = task;
+-                        break;
+-                }
+-        }
++      ret = find_task_by_pid(pid);
+         read_unlock(&tasklist_lock);
 +
- /* This is here because UML expands open to sys_open, not to a system
-  * call instruction.
-  */
-@@ -90,3 +121,13 @@
- EXPORT_SYMBOL(kmap_atomic_to_page);
- #endif
+         if(require && (ret == NULL)) panic("get_task couldn't find a task\n");
+         return(ret);
+ }
+@@ -95,7 +90,8 @@
+       int flags = GFP_KERNEL;
  
-+/*
-+ * Overrides for Emacs so that we follow Linus's tabbing style.
-+ * Emacs will notice this stuff at the end of the file and automatically
-+ * adjust the settings for this buffer only.  This must remain at the end
-+ * of the file.
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
-diff -Naur a/arch/um/kernel/Makefile b/arch/um/kernel/Makefile
---- a/arch/um/kernel/Makefile  2004-03-10 08:22:00.000000000 -0500
-+++ b/arch/um/kernel/Makefile  2004-03-10 08:41:13.000000000 -0500
-@@ -7,11 +7,11 @@
+       if(atomic) flags |= GFP_ATOMIC;
+-      if((page = __get_free_pages(flags, order)) == 0)
++      page = __get_free_pages(flags, order);
++      if(page == 0)
+               return(0);
+       stack_protections(page);
+       return(page);
+@@ -103,13 +99,15 @@
  
- obj-y = checksum.o config.o exec_kern.o exitcode.o frame_kern.o frame.o \
-       helper.o init_task.o irq.o irq_user.o ksyms.o mem.o mem_user.o \
--      process.o process_kern.o ptrace.o reboot.o resource.o sigio_user.o \
--      sigio_kern.o signal_kern.o signal_user.o smp.o syscall_kern.o \
--      syscall_user.o sysrq.o sys_call_table.o tempfile.o time.o \
--      time_kern.o tlb.o trap_kern.o trap_user.o uaccess_user.o um_arch.o \
--      umid.o user_syms.o user_util.o
-+      physmem.o process.o process_kern.o ptrace.o reboot.o resource.o \
-+      sigio_user.o sigio_kern.o signal_kern.o signal_user.o smp.o \
-+      syscall_kern.o syscall_user.o sysrq.o sys_call_table.o tempfile.o \
-+      time.o time_kern.o tlb.o trap_kern.o trap_user.o uaccess_user.o \
-+      um_arch.o umid.o user_util.o
+ int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
+ {
+-      struct task_struct *p;
++      int pid;
  
- obj-$(CONFIG_BLK_DEV_INITRD) += initrd_kern.o initrd_user.o
- obj-$(CONFIG_GPROF)   += gprof_syms.o
-@@ -24,43 +24,27 @@
- user-objs-$(CONFIG_TTY_LOG) += tty_log.o
- USER_OBJS := $(filter %_user.o,$(obj-y))  $(user-objs-y) config.o helper.o \
--      process.o tempfile.o time.o tty_log.o umid.o user_util.o user_syms.o
-+      process.o tempfile.o time.o tty_log.o umid.o user_util.o
- USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
--DMODULES-$(CONFIG_MODULES) = -D__CONFIG_MODULES__
--DMODVERSIONS-$(CONFIG_MODVERSIONS) = -D__CONFIG_MODVERSIONS__
--
--
--CFLAGS_user_syms.o = -D__AUTOCONF_INCLUDED__ $(DMODULES-y) $(DMODVERSIONS-y) \
--      -I/usr/include -I../include
--
- CFLAGS_frame.o := $(patsubst -fomit-frame-pointer,,$(USER_CFLAGS))
--$(USER_OBJS) : %.o: %.c
--      $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
--
- # This has to be separate because it needs be compiled with frame pointers
- # regardless of how the rest of the kernel is built.
- $(obj)/frame.o: $(src)/frame.c
-       $(CC) $(CFLAGS_$(notdir $@)) -c -o $@ $<
--QUOTE = 'my $$config=`cat $(TOPDIR)/.config`; $$config =~ s/"/\\"/g ; while(<STDIN>) { $$_ =~ s/CONFIG/$$config/; print $$_ }'
-+$(USER_OBJS) : %.o: %.c
-+      $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
--$(obj)/config.c : $(src)/config.c.in $(TOPDIR)/.config
--      $(PERL) -e $(QUOTE) < $(src)/config.c.in > $@
-+QUOTE = 'my $$config=`cat $(TOPDIR)/.config`; $$config =~ s/"/\\"/g ; $$config =~ s/\n/\\n"\n"/g ; while(<STDIN>) { $$_ =~ s/CONFIG/$$config/; print $$_ }'
- $(obj)/config.o : $(obj)/config.c
+       current->thread.request.u.thread.proc = fn;
+       current->thread.request.u.thread.arg = arg;
+-      p = do_fork(CLONE_VM | flags, 0, NULL, 0, NULL, NULL);
+-      if(IS_ERR(p)) panic("do_fork failed in kernel_thread");
+-      return(p->pid);
++      pid = do_fork(CLONE_VM | CLONE_UNTRACED | flags, 0, NULL, 0, NULL, 
++                    NULL);
++      if(pid < 0)
++              panic("do_fork failed in kernel_thread, errno = %d", pid);
++      return(pid);
+ }
  
--clean:
--      rm -f config.c
--      for dir in $(subdir-y) ; do $(MAKE) -C $$dir clean; done
--
--modules:
--
--fastdep:
--
--dep:
--
--archmrproper: clean
-+quiet_cmd_quote = QUOTE $@
-+cmd_quote = $(PERL) -e $(QUOTE) < $< > $@
+ void switch_mm(struct mm_struct *prev, struct mm_struct *next, 
+@@ -129,7 +127,7 @@
+               { external_pid(task), task });
+ }
  
-+targets += config.c
-+$(obj)/config.c : $(src)/config.c.in $(TOPDIR)/.config FORCE
-+      $(call if_changed,quote)
-diff -Naur a/arch/um/kernel/mem.c b/arch/um/kernel/mem.c
---- a/arch/um/kernel/mem.c     2004-03-10 08:21:01.000000000 -0500
-+++ b/arch/um/kernel/mem.c     2004-03-10 08:37:45.000000000 -0500
-@@ -1,74 +1,66 @@
- /* 
-- * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
-+ * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
-  * Licensed under the GPL
-  */
+-void *switch_to(void *prev, void *next, void *last)
++void *_switch_to(void *prev, void *next, void *last)
+ {
+       return(CHOOSE_MODE(switch_to_tt(prev, next), 
+                          switch_to_skas(prev, next)));
+@@ -149,7 +147,7 @@
+ void exit_thread(void)
+ {
+       CHOOSE_MODE(exit_thread_tt(), exit_thread_skas());
+-      unprotect_stack((unsigned long) current->thread_info);
++      unprotect_stack((unsigned long) current_thread);
+ }
+  
+ void *get_current(void)
+@@ -157,6 +155,10 @@
+       return(current);
+ }
  
--#include "linux/config.h"
--#include "linux/module.h"
--#include "linux/types.h"
-+#include "linux/stddef.h"
-+#include "linux/kernel.h"
- #include "linux/mm.h"
--#include "linux/fs.h"
--#include "linux/init.h"
- #include "linux/bootmem.h"
- #include "linux/swap.h"
--#include "linux/slab.h"
--#include "linux/vmalloc.h"
- #include "linux/highmem.h"
-+#include "linux/gfp.h"
- #include "asm/page.h"
--#include "asm/pgtable.h"
-+#include "asm/fixmap.h"
- #include "asm/pgalloc.h"
--#include "asm/bitops.h"
--#include "asm/uaccess.h"
--#include "asm/tlb.h"
- #include "user_util.h"
- #include "kern_util.h"
--#include "mem_user.h"
--#include "mem.h"
- #include "kern.h"
--#include "init.h"
--#include "os.h"
--#include "mode_kern.h"
-+#include "mem_user.h"
- #include "uml_uaccess.h"
-+#include "os.h"
++void prepare_to_copy(struct task_struct *tsk)
++{
++}
 +
-+extern char __binary_start;
+ int copy_thread(int nr, unsigned long clone_flags, unsigned long sp,
+               unsigned long stack_top, struct task_struct * p, 
+               struct pt_regs *regs)
+@@ -190,7 +192,7 @@
  
- /* Changed during early boot */
--pgd_t swapper_pg_dir[1024];
--unsigned long high_physmem;
--unsigned long vm_start;
--unsigned long vm_end;
--unsigned long highmem;
- unsigned long *empty_zero_page = NULL;
- unsigned long *empty_bad_page = NULL;
--
--/* Not modified */
--const char bad_pmd_string[] = "Bad pmd in pte_alloc: %08lx\n";
--
--extern char __init_begin, __init_end;
--extern long physmem_size;
--
--/* Not changed by UML */
--DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
--
--/* Changed during early boot */
-+pgd_t swapper_pg_dir[1024];
-+unsigned long highmem;
- int kmalloc_ok = 0;
+ void default_idle(void)
+ {
+-      idle_timer();
++      uml_idle_timer();
  
--#define NREGIONS (phys_region_index(0xffffffff) - phys_region_index(0x0) + 1)
--struct mem_region *regions[NREGIONS] = { [ 0 ... NREGIONS - 1 ] = NULL };
--#define REGION_SIZE ((0xffffffff & ~REGION_MASK) + 1)
--
--/* Changed during early boot */
- static unsigned long brk_end;
+       atomic_inc(&init_mm.mm_count);
+       current->mm = &init_mm;
+@@ -367,10 +369,15 @@
+       return(clear_user(buf, size));
+ }
  
-+void unmap_physmem(void)
++int strlen_user_proc(char *str)
 +{
-+      os_unmap_memory((void *) brk_end, uml_reserved - brk_end);
++      return(strlen_user(str));
 +}
 +
static void map_cb(void *unused)
int smp_sigio_handler(void)
  {
-       map_memory(brk_end, __pa(brk_end), uml_reserved - brk_end, 1, 1, 0);
- }
+ #ifdef CONFIG_SMP
+-      int cpu = current->thread_info->cpu;
++      int cpu = current_thread->cpu;
+       IPI_handler(cpu);
+       if(cpu != 0)
+               return(1);
+@@ -385,7 +392,7 @@
  
--void unmap_physmem(void)
-+#ifdef CONFIG_HIGHMEM
-+static void setup_highmem(unsigned long highmem_start, 
-+                        unsigned long highmem_len)
+ int cpu(void)
  {
--      os_unmap_memory((void *) brk_end, uml_reserved - brk_end);
--}
-+      struct page *page;
-+      unsigned long highmem_pfn;
-+      int i;
+-      return(current->thread_info->cpu);
++      return(current_thread->cpu);
+ }
  
--extern char __binary_start;
-+      highmem_start_page = virt_to_page(highmem_start);
+ /*
+Index: uml-2.6.7/arch/um/config.release
+===================================================================
+--- uml-2.6.7.orig/arch/um/config.release      2004-07-16 19:37:40.174917560 +0300
++++ uml-2.6.7/arch/um/config.release   2004-07-16 19:47:23.675212032 +0300
+@@ -228,7 +228,6 @@
+ CONFIG_EXT2_FS=y
+ CONFIG_SYSV_FS=m
+ CONFIG_UDF_FS=m
+-# CONFIG_UDF_RW is not set
+ CONFIG_UFS_FS=m
+ # CONFIG_UFS_FS_WRITE is not set
+Index: uml-2.6.7/fs/hostfs/hostfs_kern.c
+===================================================================
+--- uml-2.6.7.orig/fs/hostfs/hostfs_kern.c     2004-07-16 19:47:23.631218720 +0300
++++ uml-2.6.7/fs/hostfs/hostfs_kern.c  2004-07-16 19:47:24.263122656 +0300
+@@ -0,0 +1,1024 @@
++/* 
++ * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
++ * Licensed under the GPL
++ *
++ * Ported the filesystem routines to 2.5.
++ * 2003-02-10 Petr Baudis <pasky@ucw.cz>
++ */
 +
-+      highmem_pfn = __pa(highmem_start) >> PAGE_SHIFT;
-+      for(i = 0; i < highmem_len >> PAGE_SHIFT; i++){
-+              page = &mem_map[highmem_pfn + i];
-+              ClearPageReserved(page);
-+              set_bit(PG_highmem, &page->flags);
-+              atomic_set(&page->count, 1);
-+              __free_page(page);
-+      }
++#include <linux/stddef.h>
++#include <linux/fs.h>
++#include <linux/version.h>
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/slab.h>
++#include <linux/pagemap.h>
++#include <linux/blkdev.h>
++#include <linux/list.h>
++#include <linux/buffer_head.h>
++#include <linux/root_dev.h>
++#include <linux/statfs.h>
++#include <asm/uaccess.h>
++#include "hostfs.h"
++#include "kern_util.h"
++#include "kern.h"
++#include "user_util.h"
++#include "2_5compat.h"
++#include "init.h"
++
++struct hostfs_inode_info {
++      char *host_filename;
++      int fd;
++      int mode;
++      struct inode vfs_inode;
++};
++
++static inline struct hostfs_inode_info *HOSTFS_I(struct inode *inode)
++{
++      return(list_entry(inode, struct hostfs_inode_info, vfs_inode));
 +}
-+#endif
- void mem_init(void)
- {
-@@ -103,50 +95,15 @@
-       totalhigh_pages = highmem >> PAGE_SHIFT;
-       totalram_pages += totalhigh_pages;
-       num_physpages = totalram_pages;
--      max_mapnr = totalram_pages;
-       max_pfn = totalram_pages;
-       printk(KERN_INFO "Memory: %luk available\n", 
-              (unsigned long) nr_free_pages() << (PAGE_SHIFT-10));
-       kmalloc_ok = 1;
--}
--
--/* Changed during early boot */
--static unsigned long kmem_top = 0;
--
--unsigned long get_kmem_end(void)
--{
--      if(kmem_top == 0)
--              kmem_top = CHOOSE_MODE(kmem_end_tt, kmem_end_skas);
--      return(kmem_top);
--}
--
--void set_kmem_end(unsigned long new)
--{
--      kmem_top = new;
--}
- #ifdef CONFIG_HIGHMEM
--/* Changed during early boot */
--pte_t *kmap_pte;
--pgprot_t kmap_prot;
--
--EXPORT_SYMBOL(kmap_prot);
--EXPORT_SYMBOL(kmap_pte);
--
--#define kmap_get_fixmap_pte(vaddr)                                    \
--      pte_offset_kernel(pmd_offset(pgd_offset_k(vaddr), (vaddr)), (vaddr))
--
--void __init kmap_init(void)
--{
--      unsigned long kmap_vstart;
--
--      /* cache the first kmap pte */
--      kmap_vstart = __fix_to_virt(FIX_KMAP_BEGIN);
--      kmap_pte = kmap_get_fixmap_pte(kmap_vstart);
--
--      kmap_prot = PAGE_KERNEL;
-+      setup_highmem(end_iomem, highmem);
-+#endif
- }
--#endif /* CONFIG_HIGHMEM */
- static void __init fixrange_init(unsigned long start, unsigned long end, 
-                                pgd_t *pgd_base)
-@@ -178,76 +135,24 @@
-       }
- }
--int init_maps(struct mem_region *region)
--{
--      struct page *p, *map;
--      int i, n, len;
--
--      if(region == &physmem_region){
--              region->mem_map = mem_map;
--              return(0);
--      }
--      else if(region->mem_map != NULL) return(0);
--
--      n = region->len >> PAGE_SHIFT;
--      len = n * sizeof(struct page);
--      if(kmalloc_ok){
--              map = kmalloc(len, GFP_KERNEL);
--              if(map == NULL) map = vmalloc(len);
--      }
--      else map = alloc_bootmem_low_pages(len);
--
--      if(map == NULL)
--              return(-ENOMEM);
--      for(i = 0; i < n; i++){
--              p = &map[i];
--              set_page_count(p, 0);
--              SetPageReserved(p);
--              INIT_LIST_HEAD(&p->list);
--      }
--      region->mem_map = map;
--      return(0);
--}
-+#if CONFIG_HIGHMEM
-+pte_t *kmap_pte;
-+pgprot_t kmap_prot;
--DECLARE_MUTEX(regions_sem);
-+#define kmap_get_fixmap_pte(vaddr)                                    \
-+      pte_offset(pmd_offset(pgd_offset_k(vaddr), (vaddr)), (vaddr))
--static int setup_one_range(int fd, char *driver, unsigned long start, 
--                         unsigned long pfn, int len, 
--                         struct mem_region *region)
-+void __init kmap_init(void)
- {
--      int i;
--
--      down(&regions_sem);
--      for(i = 0; i < NREGIONS; i++){
--              if(regions[i] == NULL) break;           
--      }
--      if(i == NREGIONS){
--              printk("setup_range : no free regions\n");
--              i = -1;
--              goto out;
--      }
--
--      if(fd == -1)
--              fd = create_mem_file(len);
-+      unsigned long kmap_vstart;
--      if(region == NULL){
--              region = alloc_bootmem_low_pages(sizeof(*region));
--              if(region == NULL)
--                      panic("Failed to allocating mem_region");
--      }
-+      /* cache the first kmap pte */
-+      kmap_vstart = __fix_to_virt(FIX_KMAP_BEGIN);
-+      kmap_pte = kmap_get_fixmap_pte(kmap_vstart);
--      *region = ((struct mem_region) { .driver        = driver,
--                                       .start_pfn     = pfn,
--                                       .start         = start, 
--                                       .len           = len, 
--                                       .fd            = fd } );
--      regions[i] = region;
-- out:
--      up(&regions_sem);
--      return(i);
-+      kmap_prot = PAGE_KERNEL;
- }
--#ifdef CONFIG_HIGHMEM
- static void init_highmem(void)
- {
-       pgd_t *pgd;
-@@ -268,63 +173,20 @@
-       kmap_init();
- }
--
--void setup_highmem(unsigned long len)
--{
--      struct mem_region *region;
--      struct page *page, *map;
--      unsigned long phys;
--      int i, cur, index;
--
--      phys = physmem_size;
--      do {
--              cur = min(len, (unsigned long) REGION_SIZE);
--              i = setup_one_range(-1, NULL, -1, phys >> PAGE_SHIFT, cur, 
--                                  NULL);
--              if(i == -1){
--                      printk("setup_highmem - setup_one_range failed\n");
--                      return;
--              }
--              region = regions[i];
--              index = phys / PAGE_SIZE;
--              region->mem_map = &mem_map[index];
--
--              map = region->mem_map;
--              for(i = 0; i < (cur >> PAGE_SHIFT); i++){
--                      page = &map[i];
--                      ClearPageReserved(page);
--                      set_bit(PG_highmem, &page->flags);
--                      atomic_set(&page->count, 1);
--                      __free_page(page);
--              }
--              phys += cur;
--              len -= cur;
--      } while(len > 0);
--}
--#endif
-+#endif /* CONFIG_HIGHMEM */
- void paging_init(void)
- {
--      struct mem_region *region;
--      unsigned long zones_size[MAX_NR_ZONES], start, end, vaddr;
--      int i, index;
-+      unsigned long zones_size[MAX_NR_ZONES], vaddr;
-+      int i;
-       empty_zero_page = (unsigned long *) alloc_bootmem_low_pages(PAGE_SIZE);
-       empty_bad_page = (unsigned long *) alloc_bootmem_low_pages(PAGE_SIZE);
-       for(i=0;i<sizeof(zones_size)/sizeof(zones_size[0]);i++) 
-               zones_size[i] = 0;
--      zones_size[0] = (high_physmem >> PAGE_SHIFT) - 
--              (uml_physmem >> PAGE_SHIFT);
-+      zones_size[0] = (end_iomem >> PAGE_SHIFT) - (uml_physmem >> PAGE_SHIFT);
-       zones_size[2] = highmem >> PAGE_SHIFT;
-       free_area_init(zones_size);
--      start = phys_region_index(__pa(uml_physmem));
--      end = phys_region_index(__pa(high_physmem - 1));
--      for(i = start; i <= end; i++){
--              region = regions[i];
--              index = (region->start - uml_physmem) / PAGE_SIZE;
--              region->mem_map = &mem_map[index];
--              if(i > start) free_bootmem(__pa(region->start), region->len);
--      }
-       /*
-        * Fixed mappings, only the page table structure has to be
-@@ -335,15 +197,33 @@
- #ifdef CONFIG_HIGHMEM
-       init_highmem();
--      setup_highmem(highmem);
- #endif
- }
--pte_t __bad_page(void)
-+struct page *arch_validate(struct page *page, int mask, int order)
- {
--      clear_page(empty_bad_page);
--        return pte_mkdirty(mk_pte((struct page *) empty_bad_page, 
--                                PAGE_SHARED));
-+      unsigned long addr, zero = 0;
-+      int i;
 +
-+ again:
-+      if(page == NULL) return(page);
-+      if(PageHighMem(page)) return(page);
++#define FILE_HOSTFS_I(file) HOSTFS_I((file)->f_dentry->d_inode)
 +
-+      addr = (unsigned long) page_address(page);
-+      for(i = 0; i < (1 << order); i++){
-+              current->thread.fault_addr = (void *) addr;
-+              if(__do_copy_to_user((void *) addr, &zero, 
-+                                   sizeof(zero),
-+                                   &current->thread.fault_addr,
-+                                   &current->thread.fault_catcher)){
-+                      if(!(mask & __GFP_WAIT)) return(NULL);
-+                      else break;
-+              }
-+              addr += PAGE_SIZE;
-+      }
-+      if(i == (1 << order)) return(page);
-+      page = alloc_pages(mask, order);
-+      goto again;
- }
- /* This can't do anything because nothing in the kernel image can be freed
-@@ -401,395 +281,6 @@
-         printk("%d pages swap cached\n", cached);
- }
--static int __init uml_mem_setup(char *line, int *add)
--{
--      char *retptr;
--      physmem_size = memparse(line,&retptr);
--      return 0;
--}
--__uml_setup("mem=", uml_mem_setup,
--"mem=<Amount of desired ram>\n"
--"    This controls how much \"physical\" memory the kernel allocates\n"
--"    for the system. The size is specified as a number followed by\n"
--"    one of 'k', 'K', 'm', 'M', which have the obvious meanings.\n"
--"    This is not related to the amount of memory in the physical\n"
--"    machine. It can be more, and the excess, if it's ever used, will\n"
--"    just be swapped out.\n        Example: mem=64M\n\n"
--);
--
--struct page *arch_validate(struct page *page, int mask, int order)
--{
--      unsigned long addr, zero = 0;
--      int i;
--
-- again:
--      if(page == NULL) return(page);
--      if(PageHighMem(page)) return(page);
--
--      addr = (unsigned long) page_address(page);
--      for(i = 0; i < (1 << order); i++){
--              current->thread.fault_addr = (void *) addr;
--              if(__do_copy_to_user((void *) addr, &zero, 
--                                   sizeof(zero),
--                                   &current->thread.fault_addr,
--                                   &current->thread.fault_catcher)){
--                      if(!(mask & __GFP_WAIT)) return(NULL);
--                      else break;
--              }
--              addr += PAGE_SIZE;
--      }
--      if(i == (1 << order)) return(page);
--      page = alloc_pages(mask, order);
--      goto again;
--}
--
--DECLARE_MUTEX(vm_reserved_sem);
--static struct list_head vm_reserved = LIST_HEAD_INIT(vm_reserved);
--
--/* Static structures, linked in to the list in early boot */
--static struct vm_reserved head = {
--      .list           = LIST_HEAD_INIT(head.list),
--      .start          = 0,
--      .end            = 0xffffffff
--};
--
--static struct vm_reserved tail = {
--      .list           = LIST_HEAD_INIT(tail.list),
--      .start          = 0,
--      .end            = 0xffffffff
--};
--
--void set_usable_vm(unsigned long start, unsigned long end)
--{
--      list_add(&head.list, &vm_reserved);
--      list_add(&tail.list, &head.list);
--      head.end = start;
--      tail.start = end;
--}
--
--int reserve_vm(unsigned long start, unsigned long end, void *e)
--             
--{
--      struct vm_reserved *entry = e, *reserved, *prev;
--      struct list_head *ele;
--      int err;
--
--      down(&vm_reserved_sem);
--      list_for_each(ele, &vm_reserved){
--              reserved = list_entry(ele, struct vm_reserved, list);
--              if(reserved->start >= end) goto found;
--      }
--      panic("Reserved vm out of range");
-- found:
--      prev = list_entry(ele->prev, struct vm_reserved, list);
--      if(prev->end > start)
--              panic("Can't reserve vm");
--      if(entry == NULL)
--              entry = kmalloc(sizeof(*entry), GFP_KERNEL);
--      if(entry == NULL){
--              printk("reserve_vm : Failed to allocate entry\n");
--              err = -ENOMEM;
--              goto out;
--      }
--      *entry = ((struct vm_reserved) 
--              { .list         = LIST_HEAD_INIT(entry->list),
--                .start        = start,
--                .end          = end });
--      list_add(&entry->list, &prev->list);
--      err = 0;
-- out:
--      up(&vm_reserved_sem);
--      return(0);
--}
--
--unsigned long get_vm(unsigned long len)
--{
--      struct vm_reserved *this, *next;
--      struct list_head *ele;
--      unsigned long start;
--      int err;
--      
--      down(&vm_reserved_sem);
--      list_for_each(ele, &vm_reserved){
--              this = list_entry(ele, struct vm_reserved, list);
--              next = list_entry(ele->next, struct vm_reserved, list);
--              if((this->start < next->start) && 
--                 (this->end + len + PAGE_SIZE <= next->start))
--                      goto found;
--      }
--      up(&vm_reserved_sem);
--      return(0);
-- found:
--      up(&vm_reserved_sem);
--      start = (unsigned long) UML_ROUND_UP(this->end) + PAGE_SIZE;
--      err = reserve_vm(start, start + len, NULL);
--      if(err) return(0);
--      return(start);
--}
--
--int nregions(void)
--{
--      return(NREGIONS);
--}
--
--void setup_range(int fd, char *driver, unsigned long start, unsigned long pfn,
--               unsigned long len, int need_vm, struct mem_region *region, 
--               void *reserved)
--{
--      int i, cur;
--
--      do {
--              cur = min(len, (unsigned long) REGION_SIZE);
--              i = setup_one_range(fd, driver, start, pfn, cur, region);
--              region = regions[i];
--              if(need_vm && setup_region(region, reserved)){
--                      kfree(region);
--                      regions[i] = NULL;
--                      return;
--              }
--              start += cur;
--              if(pfn != -1) pfn += cur;
--              len -= cur;
--      } while(len > 0);
--}
--
--struct iomem {
--      char *name;
--      int fd;
--      unsigned long size;
--};
--
--/* iomem regions can only be added on the command line at the moment.  
-- * Locking will be needed when they can be added via mconsole.
-- */
--
--struct iomem iomem_regions[NREGIONS] = { [ 0 ... NREGIONS - 1 ] =
--                                       { .name        = NULL,
--                                         .fd          = -1,
--                                         .size        = 0 } };
--
--int num_iomem_regions = 0;
--
--void add_iomem(char *name, int fd, unsigned long size)
--{
--      if(num_iomem_regions == sizeof(iomem_regions)/sizeof(iomem_regions[0]))
--              return;
--      size = (size + PAGE_SIZE - 1) & PAGE_MASK;
--      iomem_regions[num_iomem_regions++] = 
--              ((struct iomem) { .name         = name,
--                                .fd           = fd,
--                                .size         = size } );
--}
--
--int setup_iomem(void)
--{
--      struct iomem *iomem;
--      int i;
--
--      for(i = 0; i < num_iomem_regions; i++){
--              iomem = &iomem_regions[i];
--              setup_range(iomem->fd, iomem->name, -1, -1, iomem->size, 1, 
--                          NULL, NULL);
--      }
--      return(0);
--}
--
--__initcall(setup_iomem);
--
--#define PFN_UP(x)     (((x) + PAGE_SIZE-1) >> PAGE_SHIFT)
--#define PFN_DOWN(x)   ((x) >> PAGE_SHIFT)
--
--/* Changed during early boot */
--static struct mem_region physmem_region;
--static struct vm_reserved physmem_reserved;
--
--void setup_physmem(unsigned long start, unsigned long reserve_end,
--                 unsigned long len)
--{
--      struct mem_region *region = &physmem_region;
--      struct vm_reserved *reserved = &physmem_reserved;
--      unsigned long cur, pfn = 0;
--      int do_free = 1, bootmap_size;
--
--      do {
--              cur = min(len, (unsigned long) REGION_SIZE);
--              if(region == NULL) 
--                      region = alloc_bootmem_low_pages(sizeof(*region));
--              if(reserved == NULL) 
--                      reserved = alloc_bootmem_low_pages(sizeof(*reserved));
--              if((region == NULL) || (reserved == NULL))
--                      panic("Couldn't allocate physmem region or vm "
--                            "reservation\n");
--              setup_range(-1, NULL, start, pfn, cur, 1, region, reserved);
--
--              if(do_free){
--                      unsigned long reserve = reserve_end - start;
--                      int pfn = PFN_UP(__pa(reserve_end));
--                      int delta = (len - reserve) >> PAGE_SHIFT;
--
--                      bootmap_size = init_bootmem(pfn, pfn + delta);
--                      free_bootmem(__pa(reserve_end) + bootmap_size,
--                                   cur - bootmap_size - reserve);
--                      do_free = 0;
--              }
--              start += cur;
--              pfn += cur >> PAGE_SHIFT;
--              len -= cur;
--              region = NULL;
--              reserved = NULL;
--      } while(len > 0);
--}
--
--struct mem_region *phys_region(unsigned long phys)
--{
--      unsigned int n = phys_region_index(phys);
--
--      if(regions[n] == NULL) 
--              panic("Physical address in uninitialized region");
--      return(regions[n]);
--}
--
--unsigned long phys_offset(unsigned long phys)
--{
--      return(phys_addr(phys));
--}
--
--struct page *phys_mem_map(unsigned long phys)
--{
--      return((struct page *) phys_region(phys)->mem_map);
--}
--
--struct page *pte_mem_map(pte_t pte)
--{
--      return(phys_mem_map(pte_val(pte)));
--}
--
--struct mem_region *page_region(struct page *page, int *index_out)
--{
--      int i;
--      struct mem_region *region;
--      struct page *map;
--
--      for(i = 0; i < NREGIONS; i++){
--              region = regions[i];
--              if(region == NULL) continue;
--              map = region->mem_map;
--              if((page >= map) && (page < &map[region->len >> PAGE_SHIFT])){
--                      if(index_out != NULL) *index_out = i;
--                      return(region);
--              }
--      }
--      panic("No region found for page");
--      return(NULL);
--}
--
--unsigned long page_to_pfn(struct page *page)
--{
--      struct mem_region *region = page_region(page, NULL);
--
--      return(region->start_pfn + (page - (struct page *) region->mem_map));
--}
--
--struct mem_region *pfn_to_region(unsigned long pfn, int *index_out)
--{
--      struct mem_region *region;
--      int i;
--
--      for(i = 0; i < NREGIONS; i++){
--              region = regions[i];
--              if(region == NULL)
--                      continue;
--
--              if((region->start_pfn <= pfn) &&
--                 (region->start_pfn + (region->len >> PAGE_SHIFT) > pfn)){
--                      if(index_out != NULL) 
--                              *index_out = i;
--                      return(region);
--              }
--      }
--      return(NULL);
--}
--
--struct page *pfn_to_page(unsigned long pfn)
--{
--      struct mem_region *region = pfn_to_region(pfn, NULL);
--      struct page *mem_map = (struct page *) region->mem_map;
--
--      return(&mem_map[pfn - region->start_pfn]);
--}
--
--unsigned long phys_to_pfn(unsigned long p)
--{
--      struct mem_region *region = regions[phys_region_index(p)];
--
--      return(region->start_pfn + (phys_addr(p) >> PAGE_SHIFT));
--}
--
--unsigned long pfn_to_phys(unsigned long pfn)
--{
--      int n;
--      struct mem_region *region = pfn_to_region(pfn, &n);
--
--      return(mk_phys((pfn - region->start_pfn) << PAGE_SHIFT, n));
--}
--
--struct page *page_mem_map(struct page *page)
--{
--      return((struct page *) page_region(page, NULL)->mem_map);
--}
--
--extern unsigned long region_pa(void *virt)
--{
--      struct mem_region *region;
--      unsigned long addr = (unsigned long) virt;
--      int i;
--
--      for(i = 0; i < NREGIONS; i++){
--              region = regions[i];
--              if(region == NULL) continue;
--              if((region->start <= addr) && 
--                 (addr <= region->start + region->len))
--                      return(mk_phys(addr - region->start, i));
--      }
--      panic("region_pa : no region for virtual address");
--      return(0);
--}
--
--extern void *region_va(unsigned long phys)
--{
--      return((void *) (phys_region(phys)->start + phys_addr(phys)));
--}
--
--unsigned long page_to_phys(struct page *page)
--{
--      int n;
--      struct mem_region *region = page_region(page, &n);
--      struct page *map = region->mem_map;
--      return(mk_phys((page - map) << PAGE_SHIFT, n));
--}
--
--struct page *phys_to_page(unsigned long phys)
--{
--      struct page *mem_map;
--
--      mem_map = phys_mem_map(phys);
--      return(mem_map + (phys_offset(phys) >> PAGE_SHIFT));
--}
--
--static int setup_mem_maps(void)
--{
--      struct mem_region *region;
--      int i;
--
--      for(i = 0; i < NREGIONS; i++){
--              region = regions[i];
--              if((region != NULL) && (region->fd > 0)) init_maps(region);
--      }
--      return(0);
--}
--
--__initcall(setup_mem_maps);
--
- /*
-  * Allocate and free page tables.
-  */
-diff -Naur a/arch/um/kernel/mem_user.c b/arch/um/kernel/mem_user.c
---- a/arch/um/kernel/mem_user.c        2004-03-10 08:21:29.000000000 -0500
-+++ b/arch/um/kernel/mem_user.c        2004-03-10 08:39:44.000000000 -0500
-@@ -34,10 +34,9 @@
- #include <stddef.h>
- #include <stdarg.h>
- #include <unistd.h>
--#include <fcntl.h>
- #include <errno.h>
- #include <string.h>
--#include <sys/stat.h>
-+#include <fcntl.h>
- #include <sys/types.h>
- #include <sys/mman.h>
- #include "kern_util.h"
-@@ -47,105 +46,145 @@
- #include "init.h"
- #include "os.h"
- #include "tempfile.h"
-+#include "kern_constants.h"
- extern struct mem_region physmem_region;
- #define TEMPNAME_TEMPLATE "vm_file-XXXXXX"
--int create_mem_file(unsigned long len)
-+static int create_tmp_file(unsigned long len)
- {
--      int fd;
-+      int fd, err;
-       char zero;
-       fd = make_tempfile(TEMPNAME_TEMPLATE, NULL, 1);
--      if (fchmod(fd, 0777) < 0){
--              perror("fchmod");
-+      if(fd < 0) {
-+              os_print_error(fd, "make_tempfile");
-+              exit(1);
-+      }
-+
-+      err = os_mode_fd(fd, 0777);
-+      if(err < 0){
-+              os_print_error(err, "os_mode_fd");
-               exit(1);
-       }
--      if(os_seek_file(fd, len) < 0){
--              perror("lseek");
-+      err = os_seek_file(fd, len);
-+      if(err < 0){
-+              os_print_error(err, "os_seek_file");
-               exit(1);
-       }
-       zero = 0;
--      if(write(fd, &zero, 1) != 1){
--              perror("write");
-+      err = os_write_file(fd, &zero, 1);
-+      if(err != 1){
-+              os_print_error(err, "os_write_file");
-               exit(1);
-       }
--      if(fcntl(fd, F_SETFD, 1) != 0)
--              perror("Setting FD_CLOEXEC failed");
-+
-       return(fd);
- }
--int setup_region(struct mem_region *region, void *entry)
-+static int have_devanon = 0;
-+
-+void check_devanon(void)
-+{
-+      int fd;
-+
-+      printk("Checking for /dev/anon on the host...");
-+      fd = open("/dev/anon", O_RDWR);
-+      if(fd < 0){
-+              printk("Not available (open failed with errno %d)\n", errno);
-+              return;
-+      }
-+
-+      printk("OK\n");
-+      have_devanon = 1;
-+}
-+
-+static int create_anon_file(unsigned long len)
- {
--      void *loc, *start;
--      char *driver;
--      int err, offset;
--
--      if(region->start != -1){
--              err = reserve_vm(region->start, 
--                               region->start + region->len, entry);
--              if(err){
--                      printk("setup_region : failed to reserve "
--                             "0x%x - 0x%x for driver '%s'\n",
--                             region->start, 
--                             region->start + region->len,
--                             region->driver);
--                      return(-1);
--              }
--      }
--      else region->start = get_vm(region->len);
--      if(region->start == 0){
--              if(region->driver == NULL) driver = "physmem";
--              else driver = region->driver;
--              printk("setup_region : failed to find vm for "
--                     "driver '%s' (length %d)\n", driver, region->len);
--              return(-1);
--      }
--      if(region->start == uml_physmem){
--              start = (void *) uml_reserved;
--              offset = uml_reserved - uml_physmem;
--      }
--      else {
--              start = (void *) region->start;
--              offset = 0;
--      }
--
--      loc = mmap(start, region->len - offset, PROT_READ | PROT_WRITE, 
--                 MAP_SHARED | MAP_FIXED, region->fd, offset);
--      if(loc != start){
--              perror("Mapping memory");
-+      void *addr;
-+      int fd;
-+
-+      fd = open("/dev/anon", O_RDWR);
-+      if(fd < 0) {
-+              os_print_error(fd, "opening /dev/anon");
-               exit(1);
-       }
--      return(0);
-+
-+      addr = mmap(NULL, len, PROT_READ | PROT_WRITE , MAP_PRIVATE, fd, 0);
-+      if(addr == MAP_FAILED){
-+              os_print_error((int) addr, "mapping physmem file");
-+              exit(1);
-+      }
-+      munmap(addr, len);
-+
-+      return(fd);
-+}
-+
-+int create_mem_file(unsigned long len)
-+{
-+      int err, fd;
-+
-+      if(have_devanon)
-+              fd = create_anon_file(len);
-+      else fd = create_tmp_file(len);
-+
-+      err = os_set_exec_close(fd, 1);
-+      if(err < 0)
-+              os_print_error(err, "exec_close");
-+      return(fd);
- }
-+struct iomem_region *iomem_regions = NULL;
-+int iomem_size = 0;
-+
- static int __init parse_iomem(char *str, int *add)
- {
--      struct stat buf;
-+      struct iomem_region *new;
-+      struct uml_stat buf;
-       char *file, *driver;
--      int fd;
-+      int fd, err;
-       driver = str;
-       file = strchr(str,',');
-       if(file == NULL){
--              printk("parse_iomem : failed to parse iomem\n");
--              return(1);
-+              printf("parse_iomem : failed to parse iomem\n");
-+              goto out;
-       }
-       *file = '\0';
-       file++;
-       fd = os_open_file(file, of_rdwr(OPENFLAGS()), 0);
-       if(fd < 0){
--              printk("parse_iomem - Couldn't open io file, errno = %d\n", 
--                     errno);
--              return(1);
--      }
--      if(fstat(fd, &buf) < 0) {
--              printk("parse_iomem - cannot fstat file, errno = %d\n", errno);
--              return(1);
-+              os_print_error(fd, "parse_iomem - Couldn't open io file");
-+              goto out;
-       }
--      add_iomem(driver, fd, buf.st_size);
-+
-+      err = os_stat_fd(fd, &buf);
-+      if(err < 0){
-+              os_print_error(err, "parse_iomem - cannot stat_fd file");
-+              goto out_close;
-+      }
-+
-+      new = malloc(sizeof(*new));
-+      if(new == NULL){
-+              perror("Couldn't allocate iomem_region struct");
-+              goto out_close;
-+      }
-+
-+      *new = ((struct iomem_region) { .next           = iomem_regions,
-+                                      .driver         = driver,
-+                                      .fd             = fd,
-+                                      .size           = buf.ust_size,
-+                                      .phys           = 0,
-+                                      .virt           = 0 });
-+      iomem_regions = new;
-+      iomem_size += new->size + UM_KERN_PAGE_SIZE;
-+
-       return(0);
-+ out_close:
-+      os_close_file(fd);
-+ out:
-+      return(1);
- }
- __uml_setup("iomem=", parse_iomem,
-@@ -153,73 +192,20 @@
- "    Configure <file> as an IO memory region named <name>.\n\n"
- );
--#ifdef notdef
--int logging = 0;
--int logging_fd = -1;
--
--int logging_line = 0;
--char logging_buf[256];
--
--void log(char *fmt, ...)
--{
--      va_list ap;
--      struct timeval tv;
--      struct openflags flags;
--
--      if(logging == 0) return;
--      if(logging_fd < 0){
--              flags = of_create(of_trunc(of_rdrw(OPENFLAGS())));
--              logging_fd = os_open_file("log", flags, 0644);
--      }
--      gettimeofday(&tv, NULL);
--      sprintf(logging_buf, "%d\t %u.%u  ", logging_line++, tv.tv_sec, 
--              tv.tv_usec);
--      va_start(ap, fmt);
--      vsprintf(&logging_buf[strlen(logging_buf)], fmt, ap);
--      va_end(ap);
--      write(logging_fd, logging_buf, strlen(logging_buf));
--}
--#endif
--
--int map_memory(unsigned long virt, unsigned long phys, unsigned long len, 
--             int r, int w, int x)
--{
--      struct mem_region *region = phys_region(phys);
--
--      return(os_map_memory((void *) virt, region->fd, phys_offset(phys), len,
--                           r, w, x));
--}
--
- int protect_memory(unsigned long addr, unsigned long len, int r, int w, int x,
-                  int must_succeed)
- {
--      if(os_protect_memory((void *) addr, len, r, w, x) < 0){
-+      int err;
-+
-+      err = os_protect_memory((void *) addr, len, r, w, x);
-+      if(err < 0){
-                 if(must_succeed)
--                        panic("protect failed, errno = %d", errno);
--                else return(-errno);
-+                      panic("protect failed, err = %d", -err);
-+              else return(err);
-       }
-       return(0);
- }
--unsigned long find_iomem(char *driver, unsigned long *len_out)
--{
--      struct mem_region *region;
--      int i, n;
--
--      n = nregions();
--      for(i = 0; i < n; i++){
--              region = regions[i];
--              if(region == NULL) continue;
--              if((region->driver != NULL) &&
--                 !strcmp(region->driver, driver)){
--                      *len_out = region->len;
--                      return(region->start);
--              }
--      }
--      *len_out = 0;
--      return 0;
--}
--
- /*
-  * Overrides for Emacs so that we follow Linus's tabbing style.
-  * Emacs will notice this stuff at the end of the file and automatically
-diff -Naur a/arch/um/kernel/physmem.c b/arch/um/kernel/physmem.c
---- a/arch/um/kernel/physmem.c 1969-12-31 19:00:00.000000000 -0500
-+++ b/arch/um/kernel/physmem.c 2004-03-10 08:35:16.000000000 -0500
-@@ -0,0 +1,468 @@
-+/* 
-+ * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
-+ * Licensed under the GPL
-+ */
-+
-+#include "linux/mm.h"
-+#include "linux/ghash.h"
-+#include "linux/slab.h"
-+#include "linux/vmalloc.h"
-+#include "linux/bootmem.h"
-+#include "asm/types.h"
-+#include "asm/pgtable.h"
-+#include "kern_util.h"
-+#include "user_util.h"
-+#include "mode_kern.h"
-+#include "mem.h"
-+#include "mem_user.h"
-+#include "os.h"
-+#include "kern.h"
-+#include "init.h"
-+
-+#if 0
-+static pgd_t physmem_pgd[PTRS_PER_PGD];
-+
-+static struct phys_desc *lookup_mapping(void *addr)
-+{
-+      pgd = &physmem_pgd[pgd_index(addr)];
-+      if(pgd_none(pgd))
-+              return(NULL);
-+
-+      pmd = pmd_offset(pgd, addr);
-+      if(pmd_none(pmd))
-+              return(NULL);
-+
-+      pte = pte_offset_kernel(pmd, addr);
-+      return((struct phys_desc *) pte_val(pte));
-+}
-+
-+static struct add_mapping(void *addr, struct phys_desc *new)
-+{
-+}
-+#endif
-+
-+#define PHYS_HASHSIZE (8192)
-+
-+struct phys_desc;
-+
-+DEF_HASH_STRUCTS(virtmem, PHYS_HASHSIZE, struct phys_desc);
-+
-+struct phys_desc {
-+      struct virtmem_ptrs virt_ptrs;
-+      int fd;
-+      __u64 offset;
-+      void *virt;
-+      unsigned long phys;
-+      struct list_head list;
-+};
-+
-+struct virtmem_table virtmem_hash;
-+
-+static int virt_cmp(void *virt1, void *virt2)
-+{
-+      return(virt1 != virt2);
-+}
-+
-+static int virt_hash(void *virt)
-+{
-+      unsigned long addr = ((unsigned long) virt) >> PAGE_SHIFT;
-+      return(addr % PHYS_HASHSIZE);
-+}
-+
-+DEF_HASH(static, virtmem, struct phys_desc, virt_ptrs, void *, virt, virt_cmp, 
-+       virt_hash);
-+
-+LIST_HEAD(descriptor_mappings);
-+
-+struct desc_mapping {
-+      int fd;
-+      struct list_head list;
-+      struct list_head pages;
-+};
-+
-+static struct desc_mapping *find_mapping(int fd)
-+{
-+      struct desc_mapping *desc;
-+      struct list_head *ele;
-+
-+      list_for_each(ele, &descriptor_mappings){
-+              desc = list_entry(ele, struct desc_mapping, list);
-+              if(desc->fd == fd)
-+                      return(desc);
-+      }
-+
-+      return(NULL);
-+}
-+
-+static struct desc_mapping *descriptor_mapping(int fd)
-+{
-+      struct desc_mapping *desc;
-+
-+      desc = find_mapping(fd);
-+      if(desc != NULL)
-+              return(desc);
-+
-+      desc = kmalloc(sizeof(*desc), GFP_ATOMIC);
-+      if(desc == NULL)
-+              return(NULL);
-+
-+      *desc = ((struct desc_mapping) 
-+              { .fd =         fd,
-+                .list =       LIST_HEAD_INIT(desc->list),
-+                .pages =      LIST_HEAD_INIT(desc->pages) });
-+      list_add(&desc->list, &descriptor_mappings);
-+
-+      return(desc);
-+}
-+
-+int physmem_subst_mapping(void *virt, int fd, __u64 offset, int w)
-+{
-+      struct desc_mapping *fd_maps;
-+      struct phys_desc *desc;
-+      unsigned long phys;
-+      int err;
-+
-+      fd_maps = descriptor_mapping(fd);
-+      if(fd_maps == NULL)
-+              return(-ENOMEM);
-+
-+      phys = __pa(virt);
-+      if(find_virtmem_hash(&virtmem_hash, virt) != NULL)
-+              panic("Address 0x%p is already substituted\n", virt);
-+
-+      err = -ENOMEM;
-+      desc = kmalloc(sizeof(*desc), GFP_ATOMIC);
-+      if(desc == NULL)
-+              goto out;
-+
-+      *desc = ((struct phys_desc) 
-+              { .virt_ptrs =  { NULL, NULL },
-+                .fd =         fd,
-+                .offset =             offset,
-+                .virt =               virt,
-+                .phys =               __pa(virt),
-+                .list =               LIST_HEAD_INIT(desc->list) });
-+      insert_virtmem_hash(&virtmem_hash, desc);
-+
-+      list_add(&desc->list, &fd_maps->pages);
-+
-+      virt = (void *) ((unsigned long) virt & PAGE_MASK);
-+      err = os_map_memory(virt, fd, offset, PAGE_SIZE, 1, w, 0);
-+      if(!err)
-+              goto out;
-+
-+      remove_virtmem_hash(&virtmem_hash, desc);
-+      kfree(desc);
-+ out:
-+      return(err);
-+}
-+
-+static int physmem_fd = -1;
-+
-+static void remove_mapping(struct phys_desc *desc)
-+{
-+      void *virt = desc->virt;
-+      int err;
-+
-+      remove_virtmem_hash(&virtmem_hash, desc);
-+      list_del(&desc->list);
-+      kfree(desc);
-+
-+      err = os_map_memory(virt, physmem_fd, __pa(virt), PAGE_SIZE, 1, 1, 0);
-+      if(err)
-+              panic("Failed to unmap block device page from physical memory, "
-+                    "errno = %d", -err);
-+}
-+
-+int physmem_remove_mapping(void *virt)
-+{
-+      struct phys_desc *desc;
-+
-+      virt = (void *) ((unsigned long) virt & PAGE_MASK);
-+      desc = find_virtmem_hash(&virtmem_hash, virt);
-+      if(desc == NULL)
-+              return(0);
-+
-+      remove_mapping(desc);
-+      return(1);
-+}
-+
-+void physmem_forget_descriptor(int fd)
-+{
-+      struct desc_mapping *desc;
-+      struct phys_desc *page;
-+      struct list_head *ele, *next;
-+      __u64 offset;
-+      void *addr;
-+      int err;
-+
-+      desc = find_mapping(fd);
-+      if(desc == NULL)
-+              return;
-+
-+      list_for_each_safe(ele, next, &desc->pages){
-+              page = list_entry(ele, struct phys_desc, list);
-+              offset = page->offset;
-+              addr = page->virt;
-+              remove_mapping(page);
-+              err = os_seek_file(fd, offset);
-+              if(err)
-+                      panic("physmem_forget_descriptor - failed to seek "
-+                            "to %lld in fd %d, error = %d\n",
-+                            offset, fd, -err);
-+              err = os_read_file(fd, addr, PAGE_SIZE);
-+              if(err < 0)
-+                      panic("physmem_forget_descriptor - failed to read "
-+                            "from fd %d to 0x%p, error = %d\n",
-+                            fd, addr, -err);
-+      }
-+
-+      list_del(&desc->list);
-+      kfree(desc);
-+}
-+
-+void arch_free_page(struct page *page, int order)
-+{
-+      void *virt;
-+      int i;
-+
-+      for(i = 0; i < (1 << order); i++){
-+              virt = __va(page_to_phys(page + i));
-+              physmem_remove_mapping(virt);
-+      }
-+}
-+
-+int is_remapped(void *virt)
-+{
-+      return(find_virtmem_hash(&virtmem_hash, virt) != NULL);
-+}
-+
-+/* Changed during early boot */
-+unsigned long high_physmem;
-+
-+extern unsigned long physmem_size;
-+
-+void *to_virt(unsigned long phys)
-+{
-+      return((void *) uml_physmem + phys);
-+}
-+
-+unsigned long to_phys(void *virt)
-+{
-+      return(((unsigned long) virt) - uml_physmem);
-+}
-+
-+int init_maps(unsigned long physmem, unsigned long iomem, unsigned long highmem)
-+{
-+      struct page *p, *map;
-+      unsigned long phys_len, phys_pages, highmem_len, highmem_pages;
-+      unsigned long iomem_len, iomem_pages, total_len, total_pages;
-+      int i;
-+
-+      phys_pages = physmem >> PAGE_SHIFT;
-+      phys_len = phys_pages * sizeof(struct page);
-+
-+      iomem_pages = iomem >> PAGE_SHIFT;
-+      iomem_len = iomem_pages * sizeof(struct page);
-+
-+      highmem_pages = highmem >> PAGE_SHIFT;
-+      highmem_len = highmem_pages * sizeof(struct page);
-+
-+      total_pages = phys_pages + iomem_pages + highmem_pages;
-+      total_len = phys_len + iomem_pages + highmem_len;
-+
-+      if(kmalloc_ok){
-+              map = kmalloc(total_len, GFP_KERNEL);
-+              if(map == NULL) 
-+                      map = vmalloc(total_len);
-+      }
-+      else map = alloc_bootmem_low_pages(total_len);
-+
-+      if(map == NULL)
-+              return(-ENOMEM);
-+
-+      for(i = 0; i < total_pages; i++){
-+              p = &map[i];
-+              set_page_count(p, 0);
-+              SetPageReserved(p);
-+              INIT_LIST_HEAD(&p->list);
-+      }
-+
-+      mem_map = map;
-+      max_mapnr = total_pages;
-+      return(0);
-+}
-+
-+struct page *phys_to_page(const unsigned long phys)
-+{
-+      return(&mem_map[phys >> PAGE_SHIFT]);
-+}
-+
-+struct page *__virt_to_page(const unsigned long virt)
-+{
-+      return(&mem_map[__pa(virt) >> PAGE_SHIFT]);
-+}
-+
-+unsigned long page_to_phys(struct page *page)
-+{
-+      return((page - mem_map) << PAGE_SHIFT);
-+}
-+
-+pte_t mk_pte(struct page *page, pgprot_t pgprot)
-+{
-+      pte_t pte;
-+
-+      pte_val(pte) = page_to_phys(page) + pgprot_val(pgprot);
-+      if(pte_present(pte)) pte_mknewprot(pte_mknewpage(pte));
-+      return(pte);
-+}
-+
-+/* Changed during early boot */
-+static unsigned long kmem_top = 0;
-+
-+unsigned long get_kmem_end(void)
-+{
-+      if(kmem_top == 0) 
-+              kmem_top = CHOOSE_MODE(kmem_end_tt, kmem_end_skas);
-+      return(kmem_top);
-+}
-+
-+void map_memory(unsigned long virt, unsigned long phys, unsigned long len, 
-+              int r, int w, int x)
-+{
-+      __u64 offset;
-+      int fd, err;
-+
-+      fd = phys_mapping(phys, &offset);
-+      err = os_map_memory((void *) virt, fd, offset, len, r, w, x);
-+      if(err)
-+              panic("map_memory(0x%lx, %d, 0x%llx, %ld, %d, %d, %d) failed, "
-+                    "err = %d\n", virt, fd, offset, len, r, w, x, err);
-+}
-+
-+#define PFN_UP(x) (((x) + PAGE_SIZE-1) >> PAGE_SHIFT)
-+
-+void setup_physmem(unsigned long start, unsigned long reserve_end,
-+                 unsigned long len, unsigned long highmem)
-+{
-+      unsigned long reserve = reserve_end - start;
-+      int pfn = PFN_UP(__pa(reserve_end));
-+      int delta = (len - reserve) >> PAGE_SHIFT;
-+      int err, offset, bootmap_size;
-+
-+      physmem_fd = create_mem_file(len + highmem);
-+
-+      offset = uml_reserved - uml_physmem;
-+      err = os_map_memory((void *) uml_reserved, physmem_fd, offset, 
-+                          len - offset, 1, 1, 0);
-+      if(err < 0){
-+              os_print_error(err, "Mapping memory");
-+              exit(1);
-+      }
-+
-+      bootmap_size = init_bootmem(pfn, pfn + delta);
-+      free_bootmem(__pa(reserve_end) + bootmap_size,
-+                   len - bootmap_size - reserve);
-+}
-+
-+int phys_mapping(unsigned long phys, __u64 *offset_out)
-+{
-+      struct phys_desc *desc = find_virtmem_hash(&virtmem_hash, 
-+                                                 __va(phys & PAGE_MASK));
-+      int fd = -1;
-+
-+      if(desc != NULL){
-+              fd = desc->fd;
-+              *offset_out = desc->offset;
-+      }
-+      else if(phys < physmem_size){
-+              fd = physmem_fd;
-+              *offset_out = phys;
-+      }
-+      else if(phys < __pa(end_iomem)){
-+              struct iomem_region *region = iomem_regions;
-+      
-+              while(region != NULL){
-+                      if((phys >= region->phys) && 
-+                         (phys < region->phys + region->size)){
-+                              fd = region->fd;
-+                              *offset_out = phys - region->phys;
-+                              break;
-+                      }
-+                      region = region->next;
-+              }
-+      }
-+      else if(phys < __pa(end_iomem) + highmem){
-+              fd = physmem_fd;
-+              *offset_out = phys - iomem_size;
-+      }
-+
-+      return(fd);
-+}
-+
-+static int __init uml_mem_setup(char *line, int *add)
-+{
-+      char *retptr;
-+      physmem_size = memparse(line,&retptr);
-+      return 0;
-+}
-+__uml_setup("mem=", uml_mem_setup,
-+"mem=<Amount of desired ram>\n"
-+"    This controls how much \"physical\" memory the kernel allocates\n"
-+"    for the system. The size is specified as a number followed by\n"
-+"    one of 'k', 'K', 'm', 'M', which have the obvious meanings.\n"
-+"    This is not related to the amount of memory in the host.  It can\n"
-+"    be more, and the excess, if it's ever used, will just be swapped out.\n"
-+"     Example: mem=64M\n\n"
-+);
-+
-+unsigned long find_iomem(char *driver, unsigned long *len_out)
-+{
-+      struct iomem_region *region = iomem_regions;
-+      
-+      while(region != NULL){
-+              if(!strcmp(region->driver, driver)){
-+                      *len_out = region->size;
-+                      return(region->virt);
-+              }
-+      }
-+
-+      return(0);
-+}
-+
-+int setup_iomem(void)
-+{
-+      struct iomem_region *region = iomem_regions;
-+      unsigned long iomem_start = high_physmem + PAGE_SIZE;
-+      int err;
-+
-+      while(region != NULL){
-+              err = os_map_memory((void *) iomem_start, region->fd, 0, 
-+                                  region->size, 1, 1, 0);
-+              if(err)
-+                      printk("Mapping iomem region for driver '%s' failed, "
-+                             "errno = %d\n", region->driver, -err);
-+              else {
-+                      region->virt = iomem_start;
-+                      region->phys = __pa(region->virt);
-+              }
-+
-+              iomem_start += region->size + PAGE_SIZE;
-+              region = region->next;
-+      }
-+
-+      return(0);
-+}
-+
-+__initcall(setup_iomem);
-+
-+/*
-+ * Overrides for Emacs so that we follow Linus's tabbing style.
-+ * Emacs will notice this stuff at the end of the file and automatically
-+ * adjust the settings for this buffer only.  This must remain at the end
-+ * of the file.
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
-diff -Naur a/arch/um/kernel/process.c b/arch/um/kernel/process.c
---- a/arch/um/kernel/process.c 2004-03-10 08:22:43.000000000 -0500
-+++ b/arch/um/kernel/process.c 2004-03-10 08:43:15.000000000 -0500
-@@ -9,12 +9,10 @@
- #include <sched.h>
- #include <errno.h>
- #include <stdarg.h>
--#include <fcntl.h>
- #include <stdlib.h>
- #include <setjmp.h>
- #include <sys/time.h>
- #include <sys/ptrace.h>
--#include <sys/ioctl.h>
- #include <sys/wait.h>
- #include <sys/mman.h>
- #include <asm/ptrace.h>
-@@ -58,7 +56,11 @@
- {
-       int flags = altstack ? SA_ONSTACK : 0;
--      set_handler(SIGSEGV, (__sighandler_t) sig_handler, flags,
-+      /* NODEFER is set here because SEGV isn't turned back on when the 
-+       * handler is ready to receive signals.  This causes any segfault
-+       * during a copy_user to kill the process because the fault is blocked.
-+       */
-+      set_handler(SIGSEGV, (__sighandler_t) sig_handler, flags | SA_NODEFER,
-                   SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, -1);
-       set_handler(SIGTRAP, (__sighandler_t) sig_handler, flags, 
-                   SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, -1);
-@@ -72,7 +74,6 @@
-                   SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, -1);
-       set_handler(SIGUSR2, (__sighandler_t) sig_handler, 
-                   SA_NOMASK | flags, -1);
--      (void) CHOOSE_MODE(signal(SIGCHLD, SIG_IGN), (void *) 0);
-       signal(SIGHUP, SIG_IGN);
-       init_irq_signals(altstack);
-@@ -123,11 +124,12 @@
-       /* Start the process and wait for it to kill itself */
-       new_pid = clone(outer_tramp, (void *) sp, clone_flags, &arg);
-       if(new_pid < 0) return(-errno);
--      while((err = waitpid(new_pid, &status, 0) < 0) && (errno == EINTR)) ;
-+      while(((err = waitpid(new_pid, &status, 0)) < 0) && (errno == EINTR)) ;
-       if(err < 0) panic("Waiting for outer trampoline failed - errno = %d", 
-                         errno);
-       if(!WIFSIGNALED(status) || (WTERMSIG(status) != SIGKILL))
--              panic("outer trampoline didn't exit with SIGKILL");
-+              panic("outer trampoline didn't exit with SIGKILL, "
-+                    "status = %d", status);
-       return(arg.pid);
- }
-@@ -138,7 +140,7 @@
-       os_stop_process(os_getpid());
--      if(read(fd, &c, sizeof(c)) != sizeof(c))
-+      if(os_read_file(fd, &c, sizeof(c)) != sizeof(c))
-               panic("read failed in suspend_new_thread");
- }
-@@ -233,7 +235,7 @@
-       int n;
-       *jmp_ptr = &buf;
--      n = setjmp(buf);
-+      n = sigsetjmp(buf, 1);
-       if(n != 0)
-               return(n);
-       (*fn)(arg);
-@@ -273,7 +275,7 @@
-       stop_ptraced_child(pid, stack, 1);
-       printf("Checking for /proc/mm...");
--      if(access("/proc/mm", W_OK)){
-+      if(os_access("/proc/mm", OS_ACC_W_OK) < 0){
-               printf("not found\n");
-               ret = 0;
-       }
-diff -Naur a/arch/um/kernel/process_kern.c b/arch/um/kernel/process_kern.c
---- a/arch/um/kernel/process_kern.c    2004-03-10 08:21:29.000000000 -0500
-+++ b/arch/um/kernel/process_kern.c    2004-03-10 08:39:39.000000000 -0500
-@@ -16,6 +16,7 @@
- #include "linux/module.h"
- #include "linux/init.h"
- #include "linux/capability.h"
-+#include "linux/spinlock.h"
- #include "asm/unistd.h"
- #include "asm/mman.h"
- #include "asm/segment.h"
-@@ -23,7 +24,6 @@
- #include "asm/pgtable.h"
- #include "asm/processor.h"
- #include "asm/tlbflush.h"
--#include "asm/spinlock.h"
- #include "asm/uaccess.h"
- #include "asm/user.h"
- #include "user_util.h"
-@@ -52,17 +52,12 @@
- struct task_struct *get_task(int pid, int require)
- {
--        struct task_struct *task, *ret;
-+        struct task_struct *ret;
--        ret = NULL;
-         read_lock(&tasklist_lock);
--        for_each_process(task){
--                if(task->pid == pid){
--                        ret = task;
--                        break;
--                }
--        }
-+      ret = find_task_by_pid(pid);
-         read_unlock(&tasklist_lock);
-+
-         if(require && (ret == NULL)) panic("get_task couldn't find a task\n");
-         return(ret);
- }
-@@ -95,7 +90,8 @@
-       int flags = GFP_KERNEL;
-       if(atomic) flags |= GFP_ATOMIC;
--      if((page = __get_free_pages(flags, order)) == 0)
-+      page = __get_free_pages(flags, order);
-+      if(page == 0)
-               return(0);
-       stack_protections(page);
-       return(page);
-@@ -103,13 +99,15 @@
- int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
- {
--      struct task_struct *p;
-+      int pid;
-       current->thread.request.u.thread.proc = fn;
-       current->thread.request.u.thread.arg = arg;
--      p = do_fork(CLONE_VM | flags, 0, NULL, 0, NULL, NULL);
--      if(IS_ERR(p)) panic("do_fork failed in kernel_thread");
--      return(p->pid);
-+      pid = do_fork(CLONE_VM | CLONE_UNTRACED | flags, 0, NULL, 0, NULL, 
-+                    NULL);
-+      if(pid < 0)
-+              panic("do_fork failed in kernel_thread, errno = %d", pid);
-+      return(pid);
- }
- void switch_mm(struct mm_struct *prev, struct mm_struct *next, 
-@@ -129,7 +127,7 @@
-               { external_pid(task), task });
- }
--void *switch_to(void *prev, void *next, void *last)
-+void *_switch_to(void *prev, void *next, void *last)
- {
-       return(CHOOSE_MODE(switch_to_tt(prev, next), 
-                          switch_to_skas(prev, next)));
-@@ -149,7 +147,7 @@
- void exit_thread(void)
- {
-       CHOOSE_MODE(exit_thread_tt(), exit_thread_skas());
--      unprotect_stack((unsigned long) current->thread_info);
-+      unprotect_stack((unsigned long) current_thread);
- }
-  
- void *get_current(void)
-@@ -157,6 +155,10 @@
-       return(current);
- }
-+void prepare_to_copy(struct task_struct *tsk)
-+{
-+}
-+
- int copy_thread(int nr, unsigned long clone_flags, unsigned long sp,
-               unsigned long stack_top, struct task_struct * p, 
-               struct pt_regs *regs)
-@@ -190,7 +192,7 @@
- void default_idle(void)
- {
--      idle_timer();
-+      uml_idle_timer();
-       atomic_inc(&init_mm.mm_count);
-       current->mm = &init_mm;
-@@ -367,10 +369,15 @@
-       return(clear_user(buf, size));
- }
-+int strlen_user_proc(char *str)
-+{
-+      return(strlen_user(str));
-+}
-+
- int smp_sigio_handler(void)
- {
- #ifdef CONFIG_SMP
--      int cpu = current->thread_info->cpu;
-+      int cpu = current_thread->cpu;
-       IPI_handler(cpu);
-       if(cpu != 0)
-               return(1);
-@@ -385,7 +392,7 @@
- int cpu(void)
- {
--      return(current->thread_info->cpu);
-+      return(current_thread->cpu);
- }
- /*
-diff -Naur a/arch/um/kernel/ptrace.c b/arch/um/kernel/ptrace.c
---- a/arch/um/kernel/ptrace.c  2004-03-10 08:20:25.000000000 -0500
-+++ b/arch/um/kernel/ptrace.c  2004-03-10 08:35:10.000000000 -0500
-@@ -311,11 +311,8 @@
-       /* the 0x80 provides a way for the tracing parent to distinguish
-          between a syscall stop and SIGTRAP delivery */
--      current->exit_code = SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD)
--                                      ? 0x80 : 0);
--      current->state = TASK_STOPPED;
--      notify_parent(current, SIGCHLD);
--      schedule();
-+      ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD)
-+                               ? 0x80 : 0));
-       /*
-        * this isn't the same as continuing with a signal, but it will do
-diff -Naur a/arch/um/kernel/reboot.c b/arch/um/kernel/reboot.c
---- a/arch/um/kernel/reboot.c  2004-03-10 08:21:28.000000000 -0500
-+++ b/arch/um/kernel/reboot.c  2004-03-10 08:39:16.000000000 -0500
-@@ -15,6 +15,7 @@
- #ifdef CONFIG_SMP
- static void kill_idlers(int me)
- {
-+#ifdef CONFIG_MODE_TT
-       struct task_struct *p;
-       int i;
-@@ -23,6 +24,7 @@
-               if((p != NULL) && (p->thread.mode.tt.extern_pid != me))
-                       os_kill_process(p->thread.mode.tt.extern_pid, 0);
-       }
-+#endif
- }
- #endif
-diff -Naur a/arch/um/kernel/sigio_kern.c b/arch/um/kernel/sigio_kern.c
---- a/arch/um/kernel/sigio_kern.c      2004-03-10 08:20:50.000000000 -0500
-+++ b/arch/um/kernel/sigio_kern.c      2004-03-10 08:36:21.000000000 -0500
-@@ -6,18 +6,21 @@
- #include "linux/kernel.h"
- #include "linux/list.h"
- #include "linux/slab.h"
--#include "asm/irq.h"
-+#include "linux/signal.h"
-+#include "linux/interrupt.h"
- #include "init.h"
- #include "sigio.h"
- #include "irq_user.h"
-+#include "irq_kern.h"
- /* Protected by sigio_lock() called from write_sigio_workaround */
- static int sigio_irq_fd = -1;
--void sigio_interrupt(int irq, void *data, struct pt_regs *unused)
-+irqreturn_t sigio_interrupt(int irq, void *data, struct pt_regs *unused)
- {
-       read_sigio_fd(sigio_irq_fd);
-       reactivate_fd(sigio_irq_fd, SIGIO_WRITE_IRQ);
-+      return(IRQ_HANDLED);
- }
- int write_sigio_irq(int fd)
-diff -Naur a/arch/um/kernel/sigio_user.c b/arch/um/kernel/sigio_user.c
---- a/arch/um/kernel/sigio_user.c      2004-03-10 08:23:11.000000000 -0500
-+++ b/arch/um/kernel/sigio_user.c      2004-03-10 08:44:30.000000000 -0500
-@@ -7,7 +7,6 @@
- #include <stdlib.h>
- #include <termios.h>
- #include <pty.h>
--#include <fcntl.h>
- #include <signal.h>
- #include <errno.h>
- #include <string.h>
-@@ -26,7 +25,7 @@
- int pty_close_sigio = 0;
- /* Used as a flag during SIGIO testing early in boot */
--static int got_sigio = 0;
-+static volatile int got_sigio = 0;
- void __init handler(int sig)
- {
-@@ -45,7 +44,7 @@
-       info->err = 0;
-       if(openpty(&info->master, &info->slave, NULL, NULL, NULL))
--              info->err = errno;
-+              info->err = -errno;
- }
- void __init check_one_sigio(void (*proc)(int, int))
-@@ -53,11 +52,11 @@
-       struct sigaction old, new;
-       struct termios tt;
-       struct openpty_arg pty = { .master = -1, .slave = -1 };
--      int master, slave, flags;
-+      int master, slave, err;
-       initial_thread_cb(openpty_cb, &pty);
-       if(pty.err){
--              printk("openpty failed, errno = %d\n", pty.err);
-+              printk("openpty failed, errno = %d\n", -pty.err);
-               return;
-       }
-@@ -69,23 +68,16 @@
-               return;
-       }
-+      /* XXX These can fail with EINTR */
-       if(tcgetattr(master, &tt) < 0)
-               panic("check_sigio : tcgetattr failed, errno = %d\n", errno);
-       cfmakeraw(&tt);
-       if(tcsetattr(master, TCSADRAIN, &tt) < 0)
-               panic("check_sigio : tcsetattr failed, errno = %d\n", errno);
--      if((flags = fcntl(master, F_GETFL)) < 0)
--              panic("tty_fds : fcntl F_GETFL failed, errno = %d\n", errno);
--
--      if((fcntl(master, F_SETFL, flags | O_NONBLOCK | O_ASYNC) < 0) ||
--         (fcntl(master, F_SETOWN, os_getpid()) < 0))
--              panic("check_sigio : fcntl F_SETFL or F_SETOWN failed, "
--                    "errno = %d\n", errno);
--
--      if((fcntl(slave, F_SETFL, flags | O_NONBLOCK) < 0))
--              panic("check_sigio : fcntl F_SETFL failed, errno = %d\n", 
--                    errno);
-+      err = os_sigio_async(master, slave);
-+      if(err < 0)
-+              panic("tty_fds : sigio_async failed, err = %d\n", -err);
-       if(sigaction(SIGIO, NULL, &old) < 0)
-               panic("check_sigio : sigaction 1 failed, errno = %d\n", errno);
-@@ -97,8 +89,8 @@
-       got_sigio = 0;
-       (*proc)(master, slave);
-               
--      close(master);
--      close(slave);
-+      os_close_file(master);
-+      os_close_file(slave);
-       if(sigaction(SIGIO, &old, NULL) < 0)
-               panic("check_sigio : sigaction 3 failed, errno = %d\n", errno);
-@@ -112,25 +104,25 @@
-       printk("Checking that host ptys support output SIGIO...");
-       memset(buf, 0, sizeof(buf));
--      while(write(master, buf, sizeof(buf)) > 0) ;
-+
-+      while(os_write_file(master, buf, sizeof(buf)) > 0) ;
-       if(errno != EAGAIN)
-               panic("check_sigio : write failed, errno = %d\n", errno);
--
--      while(((n = read(slave, buf, sizeof(buf))) > 0) && !got_sigio) ;
-+      while(((n = os_read_file(slave, buf, sizeof(buf))) > 0) && !got_sigio) ;
-       if(got_sigio){
-               printk("Yes\n");
-               pty_output_sigio = 1;
-       }
--      else if(errno == EAGAIN) printk("No, enabling workaround\n");
--      else panic("check_sigio : read failed, errno = %d\n", errno);
-+      else if(n == -EAGAIN) printk("No, enabling workaround\n");
-+      else panic("check_sigio : read failed, err = %d\n", n);
- }
- static void tty_close(int master, int slave)
- {
-       printk("Checking that host ptys support SIGIO on close...");
--      close(slave);
-+      os_close_file(slave);
-       if(got_sigio){
-               printk("Yes\n");
-               pty_close_sigio = 1;
-@@ -140,7 +132,8 @@
- void __init check_sigio(void)
- {
--      if(access("/dev/ptmx", R_OK) && access("/dev/ptyp0", R_OK)){
-+      if((os_access("/dev/ptmx", OS_ACC_R_OK) < 0) &&
-+         (os_access("/dev/ptyp0", OS_ACC_R_OK) < 0)){
-               printk("No pseudo-terminals available - skipping pty SIGIO "
-                      "check\n");
-               return;
-@@ -201,11 +194,10 @@
-                       p = &fds->poll[i];
-                       if(p->revents == 0) continue;
-                       if(p->fd == sigio_private[1]){
--                              n = read(sigio_private[1], &c, sizeof(c));
-+                              n = os_read_file(sigio_private[1], &c, sizeof(c));
-                               if(n != sizeof(c))
-                                       printk("write_sigio_thread : "
--                                             "read failed, errno = %d\n",
--                                             errno);
-+                                             "read failed, err = %d\n", -n);
-                               tmp = current_poll;
-                               current_poll = next_poll;
-                               next_poll = tmp;
-@@ -218,10 +210,10 @@
-                                       (fds->used - i) * sizeof(*fds->poll));
-                       }
--                      n = write(respond_fd, &c, sizeof(c));
-+                      n = os_write_file(respond_fd, &c, sizeof(c));
-                       if(n != sizeof(c))
-                               printk("write_sigio_thread : write failed, "
--                                     "errno = %d\n", errno);
-+                                     "err = %d\n", -n);
-               }
-       }
- }
-@@ -252,15 +244,15 @@
-       char c;
-       flags = set_signals(0);
--      n = write(sigio_private[0], &c, sizeof(c));
-+      n = os_write_file(sigio_private[0], &c, sizeof(c));
-       if(n != sizeof(c)){
--              printk("update_thread : write failed, errno = %d\n", errno);
-+              printk("update_thread : write failed, err = %d\n", -n);
-               goto fail;
-       }
--      n = read(sigio_private[0], &c, sizeof(c));
-+      n = os_read_file(sigio_private[0], &c, sizeof(c));
-       if(n != sizeof(c)){
--              printk("update_thread : read failed, errno = %d\n", errno);
-+              printk("update_thread : read failed, err = %d\n", -n);
-               goto fail;
-       }
-@@ -271,10 +263,10 @@
-       if(write_sigio_pid != -1) 
-               os_kill_process(write_sigio_pid, 1);
-       write_sigio_pid = -1;
--      close(sigio_private[0]);
--      close(sigio_private[1]);        
--      close(write_sigio_fds[0]);
--      close(write_sigio_fds[1]);
-+      os_close_file(sigio_private[0]);
-+      os_close_file(sigio_private[1]);        
-+      os_close_file(write_sigio_fds[0]);
-+      os_close_file(write_sigio_fds[1]);
-       sigio_unlock();
-       set_signals(flags);
- }
-@@ -369,15 +361,15 @@
-               goto out;
-       err = os_pipe(write_sigio_fds, 1, 1);
--      if(err){
-+      if(err < 0){
-               printk("write_sigio_workaround - os_pipe 1 failed, "
--                     "errno = %d\n", -err);
-+                     "err = %d\n", -err);
-               goto out;
-       }
-       err = os_pipe(sigio_private, 1, 1);
--      if(err){
-+      if(err < 0){
-               printk("write_sigio_workaround - os_pipe 2 failed, "
--                     "errno = %d\n", -err);
-+                     "err = %d\n", -err);
-               goto out_close1;
-       }
-       if(setup_initial_poll(sigio_private[1]))
-@@ -399,11 +391,11 @@
-       os_kill_process(write_sigio_pid, 1);
-       write_sigio_pid = -1;
-  out_close2:
--      close(sigio_private[0]);
--      close(sigio_private[1]);        
-+      os_close_file(sigio_private[0]);
-+      os_close_file(sigio_private[1]);        
-  out_close1:
--      close(write_sigio_fds[0]);
--      close(write_sigio_fds[1]);
-+      os_close_file(write_sigio_fds[0]);
-+      os_close_file(write_sigio_fds[1]);
-       sigio_unlock();
- }
-@@ -412,10 +404,16 @@
-       int n;
-       char c;
--      n = read(fd, &c, sizeof(c));
-+      n = os_read_file(fd, &c, sizeof(c));
-       if(n != sizeof(c)){
--              printk("read_sigio_fd - read failed, errno = %d\n", errno);
--              return(-errno);
-+              if(n < 0) {
-+                      printk("read_sigio_fd - read failed, err = %d\n", -n);
-+                      return(n);
-+              } 
-+              else { 
-+                      printk("read_sigio_fd - short read, bytes = %d\n", n);
-+                      return(-EIO);
-+              }
-       }
-       return(n);
- }
-diff -Naur a/arch/um/kernel/signal_kern.c b/arch/um/kernel/signal_kern.c
---- a/arch/um/kernel/signal_kern.c     2004-03-10 08:21:31.000000000 -0500
-+++ b/arch/um/kernel/signal_kern.c     2004-03-10 08:40:01.000000000 -0500
-@@ -36,7 +36,7 @@
-       if(sig == SIGSEGV){
-               struct k_sigaction *ka;
--              ka = &current->sig->action[SIGSEGV - 1];
-+              ka = &current->sighand->action[SIGSEGV - 1];
-               ka->sa.sa_handler = SIG_DFL;
-       }
-       force_sig(SIGSEGV, current);
-@@ -60,10 +60,10 @@
-       int err, ret;
-       ret = 0;
-+      /* Always make any pending restarted system calls return -EINTR */
-+      current_thread_info()->restart_block.fn = do_no_restart_syscall;
-       switch(error){
-       case -ERESTART_RESTARTBLOCK:
--              current_thread_info()->restart_block.fn = 
--                      do_no_restart_syscall;
-       case -ERESTARTNOHAND:
-               ret = -EINTR;
-               break;
-@@ -142,7 +142,7 @@
-               return(0);
-       /* Whee!  Actually deliver the signal.  */
--      ka = &current->sig->action[sig -1 ];
-+      ka = &current->sighand->action[sig -1 ];
-       err = handle_signal(regs, sig, ka, &info, oldset, error);
-       if(!err) return(1);
-@@ -201,7 +201,7 @@
-       }
- }
--int sys_rt_sigsuspend(sigset_t *unewset, size_t sigsetsize)
-+int sys_rt_sigsuspend(sigset_t __user *unewset, size_t sigsetsize)
- {
-       sigset_t saveset, newset;
-@@ -227,20 +227,59 @@
-       }
- }
-+int sys_sigaction(int sig, const struct old_sigaction __user *act,
-+                       struct old_sigaction __user *oact)
-+{
-+      struct k_sigaction new_ka, old_ka;
-+      int ret;
-+
-+      if (act) {
-+              old_sigset_t mask;
-+              if (verify_area(VERIFY_READ, act, sizeof(*act)) ||
-+                  __get_user(new_ka.sa.sa_handler, &act->sa_handler) ||
-+                  __get_user(new_ka.sa.sa_restorer, &act->sa_restorer))
-+                      return -EFAULT;
-+              __get_user(new_ka.sa.sa_flags, &act->sa_flags);
-+              __get_user(mask, &act->sa_mask);
-+              siginitset(&new_ka.sa.sa_mask, mask);
-+      }
-+
-+      ret = do_sigaction(sig, act ? &new_ka : NULL, oact ? &old_ka : NULL);
-+
-+      if (!ret && oact) {
-+              if (verify_area(VERIFY_WRITE, oact, sizeof(*oact)) ||
-+                  __put_user(old_ka.sa.sa_handler, &oact->sa_handler) ||
-+                  __put_user(old_ka.sa.sa_restorer, &oact->sa_restorer))
-+                      return -EFAULT;
-+              __put_user(old_ka.sa.sa_flags, &oact->sa_flags);
-+              __put_user(old_ka.sa.sa_mask.sig[0], &oact->sa_mask);
-+      }
-+
-+      return ret;
-+}
-+
-+int sys_sigaltstack(const stack_t *uss, stack_t *uoss)
-+{
-+      return(do_sigaltstack(uss, uoss, PT_REGS_SP(&current->thread.regs)));
-+}
-+
-+extern int userspace_pid[];
-+
- static int copy_sc_from_user(struct pt_regs *to, void *from, 
-                            struct arch_frame_data *arch)
- {
-       int ret;
-       ret = CHOOSE_MODE(copy_sc_from_user_tt(UPT_SC(&to->regs), from, arch),
--                        copy_sc_from_user_skas(&to->regs, from));
-+                        copy_sc_from_user_skas(userspace_pid[0], 
-+                                               &to->regs, from));
-       return(ret);
- }
- int sys_sigreturn(struct pt_regs regs)
- {
--      void *sc = sp_to_sc(PT_REGS_SP(&current->thread.regs));
--      void *mask = sp_to_mask(PT_REGS_SP(&current->thread.regs));
-+      void __user *sc = sp_to_sc(PT_REGS_SP(&current->thread.regs));
-+      void __user *mask = sp_to_mask(PT_REGS_SP(&current->thread.regs));
-       int sig_size = (_NSIG_WORDS - 1) * sizeof(unsigned long);
-       spin_lock_irq(&current->sighand->siglock);
-@@ -257,8 +296,8 @@
- int sys_rt_sigreturn(struct pt_regs regs)
- {
--      struct ucontext *uc = sp_to_uc(PT_REGS_SP(&current->thread.regs));
--      void *fp;
-+      unsigned long sp = PT_REGS_SP(&current->thread.regs);
-+      struct ucontext __user *uc = sp_to_uc(sp);
-       int sig_size = _NSIG_WORDS * sizeof(unsigned long);
-       spin_lock_irq(&current->sighand->siglock);
-@@ -266,7 +305,6 @@
-       sigdelsetmask(&current->blocked, ~_BLOCKABLE);
-       recalc_sigpending();
-       spin_unlock_irq(&current->sighand->siglock);
--      fp = (void *) (((unsigned long) uc) + sizeof(struct ucontext));
-       copy_sc_from_user(&current->thread.regs, &uc->uc_mcontext,
-                         &signal_frame_si.common.arch);
-       return(PT_REGS_SYSCALL_RET(&current->thread.regs));
-diff -Naur a/arch/um/kernel/skas/include/mode.h b/arch/um/kernel/skas/include/mode.h
---- a/arch/um/kernel/skas/include/mode.h       2004-03-10 08:21:30.000000000 -0500
-+++ b/arch/um/kernel/skas/include/mode.h       2004-03-10 08:39:50.000000000 -0500
-@@ -12,14 +12,16 @@
- extern int have_fpx_regs;
- extern void user_time_init_skas(void);
--extern int copy_sc_from_user_skas(union uml_pt_regs *regs, void *from_ptr);
--extern int copy_sc_to_user_skas(void *to_ptr, void *fp, 
-+extern int copy_sc_from_user_skas(int pid, union uml_pt_regs *regs, 
-+                                void *from_ptr);
-+extern int copy_sc_to_user_skas(int pid, void *to_ptr, void *fp, 
-                               union uml_pt_regs *regs, 
-                               unsigned long fault_addr, int fault_type);
- extern void sig_handler_common_skas(int sig, void *sc_ptr);
- extern void halt_skas(void);
- extern void reboot_skas(void);
- extern void kill_off_processes_skas(void);
-+extern int is_skas_winch(int pid, int fd, void *data);
- #endif
-diff -Naur a/arch/um/kernel/skas/include/skas.h b/arch/um/kernel/skas/include/skas.h
---- a/arch/um/kernel/skas/include/skas.h       2004-03-10 08:20:52.000000000 -0500
-+++ b/arch/um/kernel/skas/include/skas.h       2004-03-10 08:36:39.000000000 -0500
-@@ -8,7 +8,7 @@
- #include "sysdep/ptrace.h"
--extern int userspace_pid;
-+extern int userspace_pid[];
- extern void switch_threads(void *me, void *next);
- extern void thread_wait(void *sw, void *fb);
-@@ -32,7 +32,7 @@
- extern int new_mm(int from);
- extern void save_registers(union uml_pt_regs *regs);
- extern void restore_registers(union uml_pt_regs *regs);
--extern void start_userspace(void);
-+extern void start_userspace(int cpu);
- extern void init_registers(int pid);
- #endif
-diff -Naur a/arch/um/kernel/skas/include/uaccess.h b/arch/um/kernel/skas/include/uaccess.h
---- a/arch/um/kernel/skas/include/uaccess.h    2004-03-10 08:21:04.000000000 -0500
-+++ b/arch/um/kernel/skas/include/uaccess.h    2004-03-10 08:38:18.000000000 -0500
-@@ -6,20 +6,12 @@
- #ifndef __SKAS_UACCESS_H
- #define __SKAS_UACCESS_H
--#include "linux/string.h"
--#include "linux/sched.h"
--#include "linux/err.h"
--#include "asm/processor.h"
--#include "asm/pgtable.h"
- #include "asm/errno.h"
--#include "asm/current.h"
--#include "asm/a.out.h"
--#include "kern_util.h"
- #define access_ok_skas(type, addr, size) \
-       ((segment_eq(get_fs(), KERNEL_DS)) || \
-        (((unsigned long) (addr) < TASK_SIZE) && \
--        ((unsigned long) (addr) + (size) < TASK_SIZE)))
-+        ((unsigned long) (addr) + (size) <= TASK_SIZE)))
- static inline int verify_area_skas(int type, const void * addr, 
-                                  unsigned long size)
-@@ -27,197 +19,12 @@
-       return(access_ok_skas(type, addr, size) ? 0 : -EFAULT);
- }
--static inline unsigned long maybe_map(unsigned long virt, int is_write)
--{
--      pte_t pte;
--
--      void *phys = um_virt_to_phys(current, virt, &pte);
--      int dummy_code;
--
--      if(IS_ERR(phys) || (is_write && !pte_write(pte))){
--              if(handle_page_fault(virt, 0, is_write, 0, &dummy_code))
--                      return(0);
--              phys = um_virt_to_phys(current, virt, NULL);
--      }
--      return((unsigned long) __va((unsigned long) phys));
--}
--
--static inline int buffer_op(unsigned long addr, int len, 
--                          int (*op)(unsigned long addr, int len, void *arg),
--                          void *arg)
--{
--      int size = min(PAGE_ALIGN(addr) - addr, (unsigned long) len);
--      int remain = len, n;
--
--      n = (*op)(addr, size, arg);
--      if(n != 0)
--              return(n < 0 ? remain : 0);
--
--      addr += size;
--      remain -= size;
--      if(remain == 0) 
--              return(0);
--
--      while(addr < ((addr + remain) & PAGE_MASK)){
--              n = (*op)(addr, PAGE_SIZE, arg);
--              if(n != 0)
--                      return(n < 0 ? remain : 0);
--
--              addr += PAGE_SIZE;
--              remain -= PAGE_SIZE;
--      }
--      if(remain == 0)
--              return(0);
--
--      n = (*op)(addr, remain, arg);
--      if(n != 0)
--              return(n < 0 ? remain : 0);
--      return(0);
--}
--
--static inline int copy_chunk_from_user(unsigned long from, int len, void *arg)
--{
--      unsigned long *to_ptr = arg, to = *to_ptr;
--
--      from = maybe_map(from, 0);
--      if(from == 0)
--              return(-1);
--
--      memcpy((void *) to, (void *) from, len);
--      *to_ptr += len;
--      return(0);
--}
--
--static inline int copy_from_user_skas(void *to, const void *from, int n)
--{
--      if(segment_eq(get_fs(), KERNEL_DS)){
--              memcpy(to, from, n);
--              return(0);
--      }
--
--      return(access_ok_skas(VERIFY_READ, from, n) ?
--             buffer_op((unsigned long) from, n, copy_chunk_from_user, &to) :
--             n);
--}
--
--static inline int copy_chunk_to_user(unsigned long to, int len, void *arg)
--{
--      unsigned long *from_ptr = arg, from = *from_ptr;
--
--      to = maybe_map(to, 1);
--      if(to == 0)
--              return(-1);
--
--      memcpy((void *) to, (void *) from, len);
--      *from_ptr += len;
--      return(0);
--}
--
--static inline int copy_to_user_skas(void *to, const void *from, int n)
--{
--      if(segment_eq(get_fs(), KERNEL_DS)){
--              memcpy(to, from, n);
--              return(0);
--      }
--
--      return(access_ok_skas(VERIFY_WRITE, to, n) ?
--             buffer_op((unsigned long) to, n, copy_chunk_to_user, &from) :
--             n);
--}
--
--static inline int strncpy_chunk_from_user(unsigned long from, int len, 
--                                        void *arg)
--{
--        char **to_ptr = arg, *to = *to_ptr;
--      int n;
--
--      from = maybe_map(from, 0);
--      if(from == 0)
--              return(-1);
--
--      strncpy(to, (void *) from, len);
--      n = strnlen(to, len);
--      *to_ptr += n;
--
--      if(n < len) 
--              return(1);
--      return(0);
--}
--
--static inline int strncpy_from_user_skas(char *dst, const char *src, int count)
--{
--      int n;
--      char *ptr = dst;
--
--      if(segment_eq(get_fs(), KERNEL_DS)){
--              strncpy(dst, src, count);
--              return(strnlen(dst, count));
--      }
--
--      if(!access_ok_skas(VERIFY_READ, src, 1))
--              return(-EFAULT);
--
--      n = buffer_op((unsigned long) src, count, strncpy_chunk_from_user, 
--                    &ptr);
--      if(n != 0)
--              return(-EFAULT);
--      return(strnlen(dst, count));
--}
--
--static inline int clear_chunk(unsigned long addr, int len, void *unused)
--{
--      addr = maybe_map(addr, 1);
--      if(addr == 0) 
--              return(-1);
--
--      memset((void *) addr, 0, len);
--      return(0);
--}
--
--static inline int __clear_user_skas(void *mem, int len)
--{
--      return(buffer_op((unsigned long) mem, len, clear_chunk, NULL));
--}
--
--static inline int clear_user_skas(void *mem, int len)
--{
--      if(segment_eq(get_fs(), KERNEL_DS)){
--              memset(mem, 0, len);
--              return(0);
--      }
--
--      return(access_ok_skas(VERIFY_WRITE, mem, len) ? 
--             buffer_op((unsigned long) mem, len, clear_chunk, NULL) : len);
--}
--
--static inline int strnlen_chunk(unsigned long str, int len, void *arg)
--{
--      int *len_ptr = arg, n;
--
--      str = maybe_map(str, 0);
--      if(str == 0) 
--              return(-1);
--
--      n = strnlen((void *) str, len);
--      *len_ptr += n;
--
--      if(n < len)
--              return(1);
--      return(0);
--}
--
--static inline int strnlen_user_skas(const void *str, int len)
--{
--      int count = 0, n;
--
--      if(segment_eq(get_fs(), KERNEL_DS))
--              return(strnlen(str, len) + 1);
--
--      n = buffer_op((unsigned long) str, len, strnlen_chunk, &count);
--      if(n == 0)
--              return(count + 1);
--      return(-EFAULT);
--}
-+extern int copy_from_user_skas(void *to, const void *from, int n);
-+extern int copy_to_user_skas(void *to, const void *from, int n);
-+extern int strncpy_from_user_skas(char *dst, const char *src, int count);
-+extern int __clear_user_skas(void *mem, int len);
-+extern int clear_user_skas(void *mem, int len);
-+extern int strnlen_user_skas(const void *str, int len);
- #endif
-diff -Naur a/arch/um/kernel/skas/Makefile b/arch/um/kernel/skas/Makefile
---- a/arch/um/kernel/skas/Makefile     2004-03-10 08:20:54.000000000 -0500
-+++ b/arch/um/kernel/skas/Makefile     2004-03-10 08:36:46.000000000 -0500
-@@ -5,20 +5,24 @@
- obj-y = exec_kern.o exec_user.o mem.o mem_user.o mmu.o process.o \
-       process_kern.o syscall_kern.o syscall_user.o time.o tlb.o trap_user.o \
--      sys-$(SUBARCH)/
-+      uaccess.o sys-$(SUBARCH)/
-+
-+host-progs    := util/mk_ptregs
-+clean-files   := include/skas_ptregs.h
- USER_OBJS = $(filter %_user.o,$(obj-y)) process.o time.o
- USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
--include/skas_ptregs.h : util/mk_ptregs
--      util/mk_ptregs > $@
--
--util/mk_ptregs :
--      $(MAKE) -C util
-+$(TOPDIR)/arch/um/include/skas_ptregs.h : $(src)/util/mk_ptregs
-+      @echo -n '  Generating $@'
-+      @$< > $@.tmp
-+      @if [ -r $@ ] && cmp -s $@ $@.tmp; then \
-+              echo ' (unchanged)'; \
-+              rm -f $@.tmp; \
-+      else \
-+              echo ' (updated)'; \
-+              mv -f $@.tmp $@; \
-+      fi
- $(USER_OBJS) : %.o: %.c
-       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
--
--clean :
--      $(MAKE) -C util clean
--      $(RM) -f include/skas_ptregs.h
-diff -Naur a/arch/um/kernel/skas/mem_user.c b/arch/um/kernel/skas/mem_user.c
---- a/arch/um/kernel/skas/mem_user.c   2004-03-10 08:20:56.000000000 -0500
-+++ b/arch/um/kernel/skas/mem_user.c   2004-03-10 08:37:21.000000000 -0500
-@@ -7,6 +7,7 @@
- #include <sys/mman.h>
- #include <sys/ptrace.h>
- #include "mem_user.h"
-+#include "mem.h"
- #include "user.h"
- #include "os.h"
- #include "proc_mm.h"
-@@ -15,12 +16,12 @@
-        int r, int w, int x)
- {
-       struct proc_mm_op map;
--      struct mem_region *region;
--      int prot, n;
-+      __u64 offset;
-+      int prot, n, phys_fd;
-       prot = (r ? PROT_READ : 0) | (w ? PROT_WRITE : 0) | 
-               (x ? PROT_EXEC : 0);
--      region = phys_region(phys);
-+      phys_fd = phys_mapping(phys, &offset);
-       map = ((struct proc_mm_op) { .op        = MM_MMAP,
-                                    .u         = 
-@@ -30,12 +31,12 @@
-                                        .prot          = prot,
-                                        .flags         = MAP_SHARED | 
-                                                         MAP_FIXED,
--                                       .fd            = region->fd,
--                                       .offset        = phys_offset(phys)
-+                                       .fd            = phys_fd,
-+                                       .offset        = offset
-                                      } } } );
-       n = os_write_file(fd, &map, sizeof(map));
-       if(n != sizeof(map)) 
--              printk("map : /proc/mm map failed, errno = %d\n", errno);
-+              printk("map : /proc/mm map failed, err = %d\n", -n);
- }
- int unmap(int fd, void *addr, int len)
-@@ -49,8 +50,13 @@
-                                        { .addr        = (unsigned long) addr,
-                                          .len         = len } } } );
-       n = os_write_file(fd, &unmap, sizeof(unmap));
--      if((n != 0) && (n != sizeof(unmap)))
--              return(-errno);
-+      if(n != sizeof(unmap)) {
-+              if(n < 0) 
-+                      return(n);
-+              else if(n > 0) 
-+                      return(-EIO);
-+      }
-+
-       return(0);
- }
-@@ -71,11 +77,15 @@
-                                          .prot        = prot } } } );
-       n = os_write_file(fd, &protect, sizeof(protect));
--      if((n != 0) && (n != sizeof(protect))){
-+      if(n != sizeof(protect)) {
-+              if(n == 0) return(0);
-+
-               if(must_succeed)
--                      panic("protect failed, errno = %d", errno);
--              return(-errno);
-+                      panic("protect failed, err = %d", -n);
-+
-+              return(-EIO);
-       }
-+
-       return(0);
- }
-diff -Naur a/arch/um/kernel/skas/mmu.c b/arch/um/kernel/skas/mmu.c
---- a/arch/um/kernel/skas/mmu.c        2004-03-10 08:23:29.000000000 -0500
-+++ b/arch/um/kernel/skas/mmu.c        2004-03-10 08:45:36.000000000 -0500
-@@ -22,9 +22,11 @@
-       else from = -1;
-       mm->context.skas.mm_fd = new_mm(from);
--      if(mm->context.skas.mm_fd < 0)
--              panic("init_new_context_skas - new_mm failed, errno = %d\n",
--                    mm->context.skas.mm_fd);
-+      if(mm->context.skas.mm_fd < 0){
-+              printk("init_new_context_skas - new_mm failed, errno = %d\n",
-+                     mm->context.skas.mm_fd);
-+              return(mm->context.skas.mm_fd);
-+      }
-       return(0);
- }
-diff -Naur a/arch/um/kernel/skas/process.c b/arch/um/kernel/skas/process.c
---- a/arch/um/kernel/skas/process.c    2004-03-10 08:23:10.000000000 -0500
-+++ b/arch/um/kernel/skas/process.c    2004-03-10 08:44:23.000000000 -0500
-@@ -4,6 +4,7 @@
-  */
- #include <stdlib.h>
-+#include <unistd.h>
- #include <errno.h>
- #include <signal.h>
- #include <setjmp.h>
-@@ -24,6 +25,19 @@
- #include "os.h"
- #include "proc_mm.h"
- #include "skas_ptrace.h"
-+#include "chan_user.h"
-+#include "signal_user.h"
-+
-+int is_skas_winch(int pid, int fd, void *data)
-+{
-+      if(pid != getpid())
-+              return(0);
-+
-+      register_winch_irq(-1, fd, -1, data);
-+      return(1);
-+}
-+
-+/* These are set once at boot time and not changed thereafter */
- unsigned long exec_regs[FRAME_SIZE];
- unsigned long exec_fp_regs[HOST_FP_SIZE];
-@@ -48,11 +62,11 @@
-       int err, syscall_nr, status;
-       syscall_nr = PT_SYSCALL_NR(regs->skas.regs);
-+      UPT_SYSCALL_NR(regs) = syscall_nr;
-       if(syscall_nr < 1){
-               relay_signal(SIGTRAP, regs);
-               return;
-       }
--      UPT_SYSCALL_NR(regs) = syscall_nr;
-       err = ptrace(PTRACE_POKEUSER, pid, PT_SYSCALL_NR_OFFSET, __NR_getpid);
-       if(err < 0)
-@@ -72,8 +86,6 @@
-       handle_syscall(regs);
- }
--int userspace_pid;
--
- static int userspace_tramp(void *arg)
- {
-       init_new_thread_signals(0);
-@@ -83,7 +95,11 @@
-       return(0);
- }
--void start_userspace(void)
-+/* Each element set once, and only accessed by a single processor anyway */
-+#define NR_CPUS 1
-+int userspace_pid[NR_CPUS];
-+
-+void start_userspace(int cpu)
- {
-       void *stack;
-       unsigned long sp;
-@@ -114,21 +130,21 @@
-       if(munmap(stack, PAGE_SIZE) < 0)
-               panic("start_userspace : munmap failed, errno = %d\n", errno);
--      userspace_pid = pid;
-+      userspace_pid[cpu] = pid;
- }
- void userspace(union uml_pt_regs *regs)
- {
--      int err, status, op;
-+      int err, status, op, pid = userspace_pid[0];
-       restore_registers(regs);
-               
--      err = ptrace(PTRACE_SYSCALL, userspace_pid, 0, 0);
-+      err = ptrace(PTRACE_SYSCALL, pid, 0, 0);
-       if(err)
-               panic("userspace - PTRACE_SYSCALL failed, errno = %d\n", 
-                      errno);
-       while(1){
--              err = waitpid(userspace_pid, &status, WUNTRACED);
-+              err = waitpid(pid, &status, WUNTRACED);
-               if(err < 0)
-                       panic("userspace - waitpid failed, errno = %d\n", 
-                             errno);
-@@ -139,16 +155,17 @@
-               if(WIFSTOPPED(status)){
-                       switch(WSTOPSIG(status)){
-                       case SIGSEGV:
--                              handle_segv(userspace_pid);
-+                              handle_segv(pid);
-                               break;
-                       case SIGTRAP:
--                              handle_trap(userspace_pid, regs);
-+                              handle_trap(pid, regs);
-                               break;
-                       case SIGIO:
-                       case SIGVTALRM:
-                       case SIGILL:
-                       case SIGBUS:
-                       case SIGFPE:
-+                      case SIGWINCH:
-                               user_signal(WSTOPSIG(status), regs);
-                               break;
-                       default:
-@@ -162,7 +179,7 @@
-               op = singlestepping_skas() ? PTRACE_SINGLESTEP : 
-                       PTRACE_SYSCALL;
--              err = ptrace(op, userspace_pid, 0, 0);
-+              err = ptrace(op, pid, 0, 0);
-               if(err)
-                       panic("userspace - PTRACE_SYSCALL failed, "
-                             "errno = %d\n", errno);
-@@ -172,13 +189,25 @@
- void new_thread(void *stack, void **switch_buf_ptr, void **fork_buf_ptr,
-               void (*handler)(int))
- {
-+      unsigned long flags;
-       jmp_buf switch_buf, fork_buf;
-       *switch_buf_ptr = &switch_buf;
-       *fork_buf_ptr = &fork_buf;
--      if(setjmp(fork_buf) == 0)
-+      /* Somewhat subtle - siglongjmp restores the signal mask before doing
-+       * the longjmp.  This means that when jumping from one stack to another
-+       * when the target stack has interrupts enabled, an interrupt may occur
-+       * on the source stack.  This is bad when starting up a process because
-+       * it's not supposed to get timer ticks until it has been scheduled.
-+       * So, we disable interrupts around the sigsetjmp to ensure that 
-+       * they can't happen until we get back here where they are safe.
-+       */
-+      flags = get_signals();
-+      block_signals();
-+      if(sigsetjmp(fork_buf, 1) == 0)
-               new_thread_proc(stack, handler);
-+      set_signals(flags);
-       remove_sigstack();
- }
-@@ -189,16 +218,16 @@
-       *switch_buf = &buf;
-       fork_buf = fb;
--      if(setjmp(buf) == 0)
--              longjmp(*fork_buf, 1);
-+      if(sigsetjmp(buf, 1) == 0)
-+              siglongjmp(*fork_buf, 1);
- }
--static int move_registers(int int_op, int fp_op, union uml_pt_regs *regs,
--                        unsigned long *fp_regs)
-+static int move_registers(int pid, int int_op, int fp_op, 
-+                        union uml_pt_regs *regs, unsigned long *fp_regs)
- {
--      if(ptrace(int_op, userspace_pid, 0, regs->skas.regs) < 0)
-+      if(ptrace(int_op, pid, 0, regs->skas.regs) < 0)
-               return(-errno);
--      if(ptrace(fp_op, userspace_pid, 0, fp_regs) < 0)
-+      if(ptrace(fp_op, pid, 0, fp_regs) < 0)
-               return(-errno);
-       return(0);
- }
-@@ -217,10 +246,11 @@
-               fp_regs = regs->skas.fp;
-       }
--      err = move_registers(PTRACE_GETREGS, fp_op, regs, fp_regs);
-+      err = move_registers(userspace_pid[0], PTRACE_GETREGS, fp_op, regs, 
-+                           fp_regs);
-       if(err)
-               panic("save_registers - saving registers failed, errno = %d\n",
--                    err);
-+                    -err);
- }
- void restore_registers(union uml_pt_regs *regs)
-@@ -237,10 +267,11 @@
-               fp_regs = regs->skas.fp;
-       }
--      err = move_registers(PTRACE_SETREGS, fp_op, regs, fp_regs);
-+      err = move_registers(userspace_pid[0], PTRACE_SETREGS, fp_op, regs, 
-+                           fp_regs);
-       if(err)
-               panic("restore_registers - saving registers failed, "
--                    "errno = %d\n", err);
-+                    "errno = %d\n", -err);
- }
- void switch_threads(void *me, void *next)
-@@ -248,8 +279,8 @@
-       jmp_buf my_buf, **me_ptr = me, *next_buf = next;
-       
-       *me_ptr = &my_buf;
--      if(setjmp(my_buf) == 0)
--              longjmp(*next_buf, 1);
-+      if(sigsetjmp(my_buf, 1) == 0)
-+              siglongjmp(*next_buf, 1);
- }
- static jmp_buf initial_jmpbuf;
-@@ -265,14 +296,14 @@
-       int n;
-       *fork_buf_ptr = &initial_jmpbuf;
--      n = setjmp(initial_jmpbuf);
-+      n = sigsetjmp(initial_jmpbuf, 1);
-       if(n == 0)
-               new_thread_proc((void *) stack, new_thread_handler);
-       else if(n == 1)
-               remove_sigstack();
-       else if(n == 2){
-               (*cb_proc)(cb_arg);
--              longjmp(*cb_back, 1);
-+              siglongjmp(*cb_back, 1);
-       }
-       else if(n == 3){
-               kmalloc_ok = 0;
-@@ -282,7 +313,7 @@
-               kmalloc_ok = 0;
-               return(1);
-       }
--      longjmp(**switch_buf, 1);
-+      siglongjmp(**switch_buf, 1);
- }
- void remove_sigstack(void)
-@@ -304,8 +335,8 @@
-       cb_back = &here;
-       block_signals();
--      if(setjmp(here) == 0)
--              longjmp(initial_jmpbuf, 2);
-+      if(sigsetjmp(here, 1) == 0)
-+              siglongjmp(initial_jmpbuf, 2);
-       unblock_signals();
-       cb_proc = NULL;
-@@ -316,22 +347,23 @@
- void halt_skas(void)
- {
-       block_signals();
--      longjmp(initial_jmpbuf, 3);
-+      siglongjmp(initial_jmpbuf, 3);
- }
- void reboot_skas(void)
- {
-       block_signals();
--      longjmp(initial_jmpbuf, 4);
-+      siglongjmp(initial_jmpbuf, 4);
- }
- int new_mm(int from)
- {
-       struct proc_mm_op copy;
--      int n, fd = os_open_file("/proc/mm", of_write(OPENFLAGS()), 0);
-+      int n, fd = os_open_file("/proc/mm", 
-+                               of_cloexec(of_write(OPENFLAGS())), 0);
-       if(fd < 0)
--              return(-errno);
-+              return(fd);
-       if(from != -1){
-               copy = ((struct proc_mm_op) { .op       = MM_COPY_SEGMENTS,
-@@ -340,8 +372,9 @@
-               n = os_write_file(fd, &copy, sizeof(copy));
-               if(n != sizeof(copy)) 
-                       printk("new_mm : /proc/mm copy_segments failed, "
--                             "errno = %d\n", errno);
-+                             "err = %d\n", -n);
-       }
-+
-       return(fd);
- }
-@@ -349,7 +382,8 @@
- {
-       int err;
--      err = ptrace(PTRACE_SWITCH_MM, userspace_pid, 0, mm_fd);
-+#warning need cpu pid in switch_mm_skas
-+      err = ptrace(PTRACE_SWITCH_MM, userspace_pid[0], 0, mm_fd);
-       if(err)
-               panic("switch_mm_skas - PTRACE_SWITCH_MM failed, errno = %d\n",
-                     errno);
-@@ -357,7 +391,8 @@
- void kill_off_processes_skas(void)
- {
--      os_kill_process(userspace_pid, 1);
-+#warning need to loop over userspace_pids in kill_off_processes_skas
-+      os_kill_process(userspace_pid[0], 1);
- }
- void init_registers(int pid)
-diff -Naur a/arch/um/kernel/skas/process_kern.c b/arch/um/kernel/skas/process_kern.c
---- a/arch/um/kernel/skas/process_kern.c       2004-03-10 08:20:49.000000000 -0500
-+++ b/arch/um/kernel/skas/process_kern.c       2004-03-10 08:36:15.000000000 -0500
-@@ -61,11 +61,13 @@
-       thread_wait(&current->thread.mode.skas.switch_buf, 
-                   current->thread.mode.skas.fork_buf);
--#ifdef CONFIG_SMP
--      schedule_tail(NULL);
--#endif
-+      if(current->thread.prev_sched != NULL)
-+              schedule_tail(current->thread.prev_sched);
-       current->thread.prev_sched = NULL;
-+      /* The return value is 1 if the kernel thread execs a process,
-+       * 0 if it just exits
-+       */
-       n = run_kernel_thread(fn, arg, &current->thread.exec_buf);
-       if(n == 1)
-               userspace(&current->thread.regs.regs);
-@@ -93,11 +95,11 @@
-                   current->thread.mode.skas.fork_buf);
-       
-       force_flush_all();
--#ifdef CONFIG_SMP
-+      if(current->thread.prev_sched == NULL)
-+              panic("blech");
-+      
-       schedule_tail(current->thread.prev_sched);
--#endif
-       current->thread.prev_sched = NULL;
--      unblock_signals();
-       userspace(&current->thread.regs.regs);
- }
-@@ -136,7 +138,7 @@
- void init_idle_skas(void)
- {
--      cpu_tasks[current->thread_info->cpu].pid = os_getpid();
-+      cpu_tasks[current_thread->cpu].pid = os_getpid();
-       default_idle();
- }
-@@ -160,11 +162,11 @@
- int start_uml_skas(void)
- {
--      start_userspace();
-+      start_userspace(0);
-       capture_signal_stack();
-+      uml_idle_timer();
-       init_new_thread_signals(1);
--      idle_timer();
-       init_task.thread.request.u.thread.proc = start_kernel_proc;
-       init_task.thread.request.u.thread.arg = NULL;
-@@ -175,12 +177,14 @@
- int external_pid_skas(struct task_struct *task)
- {
--      return(userspace_pid);
-+#warning Need to look up userspace_pid by cpu 
-+      return(userspace_pid[0]);
- }
- int thread_pid_skas(struct task_struct *task)
- {
--      return(userspace_pid);
-+#warning Need to look up userspace_pid by cpu 
-+      return(userspace_pid[0]);
- }
- /*
-diff -Naur a/arch/um/kernel/skas/syscall_kern.c b/arch/um/kernel/skas/syscall_kern.c
---- a/arch/um/kernel/skas/syscall_kern.c       2004-03-10 08:21:49.000000000 -0500
-+++ b/arch/um/kernel/skas/syscall_kern.c       2004-03-10 08:40:26.000000000 -0500
-@@ -1,5 +1,5 @@
- /* 
-- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+ * Copyright (C) 2002 - 2003 Jeff Dike (jdike@addtoit.com)
-  * Licensed under the GPL
-  */
-diff -Naur a/arch/um/kernel/skas/sys-i386/Makefile b/arch/um/kernel/skas/sys-i386/Makefile
---- a/arch/um/kernel/skas/sys-i386/Makefile    2004-03-10 08:22:46.000000000 -0500
-+++ b/arch/um/kernel/skas/sys-i386/Makefile    2004-03-10 08:43:22.000000000 -0500
-@@ -10,5 +10,3 @@
- $(USER_OBJS) : %.o: %.c
-       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
--
--clean :
-diff -Naur a/arch/um/kernel/skas/sys-i386/sigcontext.c b/arch/um/kernel/skas/sys-i386/sigcontext.c
---- a/arch/um/kernel/skas/sys-i386/sigcontext.c        2004-03-10 08:20:19.000000000 -0500
-+++ b/arch/um/kernel/skas/sys-i386/sigcontext.c        2004-03-10 08:34:19.000000000 -0500
-@@ -12,10 +12,9 @@
- #include "kern_util.h"
- #include "user.h"
- #include "sigcontext.h"
-+#include "mode.h"
--extern int userspace_pid;
--
--int copy_sc_from_user_skas(union uml_pt_regs *regs, void *from_ptr)
-+int copy_sc_from_user_skas(int pid, union uml_pt_regs *regs, void *from_ptr)
- {
-       struct sigcontext sc, *from = from_ptr;
-       unsigned long fpregs[FP_FRAME_SIZE];
-@@ -41,13 +40,12 @@
-       regs->skas.regs[EIP] = sc.eip;
-       regs->skas.regs[CS] = sc.cs;
-       regs->skas.regs[EFL] = sc.eflags;
--      regs->skas.regs[UESP] = sc.esp_at_signal;
-       regs->skas.regs[SS] = sc.ss;
-       regs->skas.fault_addr = sc.cr2;
-       regs->skas.fault_type = FAULT_WRITE(sc.err);
-       regs->skas.trap_type = sc.trapno;
--      err = ptrace(PTRACE_SETFPREGS, userspace_pid, 0, fpregs);
-+      err = ptrace(PTRACE_SETFPREGS, pid, 0, fpregs);
-       if(err < 0){
-               printk("copy_sc_to_user - PTRACE_SETFPREGS failed, "
-                      "errno = %d\n", errno);
-@@ -57,8 +55,9 @@
-       return(0);
- }
--int copy_sc_to_user_skas(void *to_ptr, void *fp, union uml_pt_regs *regs, 
--                       unsigned long fault_addr, int fault_type)
-+int copy_sc_to_user_skas(int pid, void *to_ptr, void *fp, 
-+                       union uml_pt_regs *regs, unsigned long fault_addr, 
-+                       int fault_type)
- {
-       struct sigcontext sc, *to = to_ptr;
-       struct _fpstate *to_fp;
-@@ -86,7 +85,7 @@
-       sc.err = TO_SC_ERR(fault_type);
-       sc.trapno = regs->skas.trap_type;
--      err = ptrace(PTRACE_GETFPREGS, userspace_pid, 0, fpregs);
-+      err = ptrace(PTRACE_GETFPREGS, pid, 0, fpregs);
-       if(err < 0){
-               printk("copy_sc_to_user - PTRACE_GETFPREGS failed, "
-                      "errno = %d\n", errno);
-diff -Naur a/arch/um/kernel/skas/trap_user.c b/arch/um/kernel/skas/trap_user.c
---- a/arch/um/kernel/skas/trap_user.c  2004-03-10 08:21:04.000000000 -0500
-+++ b/arch/um/kernel/skas/trap_user.c  2004-03-10 08:38:20.000000000 -0500
-@@ -1,5 +1,5 @@
- /* 
-- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+ * Copyright (C) 2002 - 2003 Jeff Dike (jdike@addtoit.com)
-  * Licensed under the GPL
-  */
-@@ -35,14 +35,10 @@
-       errno = save_errno;
- }
--extern int missed_ticks[];
--
- void user_signal(int sig, union uml_pt_regs *regs)
- {
-       struct signal_info *info;
--      if(sig == SIGVTALRM)
--              missed_ticks[cpu()]++;
-       regs->skas.is_user = 1;
-       regs->skas.fault_addr = 0;
-       regs->skas.fault_type = 0;
-diff -Naur a/arch/um/kernel/skas/uaccess.c b/arch/um/kernel/skas/uaccess.c
---- a/arch/um/kernel/skas/uaccess.c    1969-12-31 19:00:00.000000000 -0500
-+++ b/arch/um/kernel/skas/uaccess.c    2004-03-10 08:41:35.000000000 -0500
-@@ -0,0 +1,219 @@
-+/* 
-+ * Copyright (C) 2002 - 2003 Jeff Dike (jdike@addtoit.com)
-+ * Licensed under the GPL
-+ */
-+
-+#include "linux/stddef.h"
-+#include "linux/kernel.h"
-+#include "linux/string.h"
-+#include "linux/fs.h"
-+#include "linux/highmem.h"
-+#include "asm/page.h"
-+#include "asm/pgtable.h"
-+#include "asm/uaccess.h"
-+#include "kern_util.h"
-+
-+extern void *um_virt_to_phys(struct task_struct *task, unsigned long addr, 
-+                           pte_t *pte_out);
-+
-+static unsigned long maybe_map(unsigned long virt, int is_write)
-+{
-+      pte_t pte;
-+      int err;
-+
-+      void *phys = um_virt_to_phys(current, virt, &pte);
-+      int dummy_code;
-+
-+      if(IS_ERR(phys) || (is_write && !pte_write(pte))){
-+              err = handle_page_fault(virt, 0, is_write, 0, &dummy_code);
-+              if(err)
-+                      return(0);
-+              phys = um_virt_to_phys(current, virt, NULL);
-+      }
-+      return((unsigned long) phys);
-+}
-+
-+static int do_op(unsigned long addr, int len, int is_write, 
-+               int (*op)(unsigned long addr, int len, void *arg), void *arg)
-+{
-+      struct page *page;
-+      int n;
-+
-+      addr = maybe_map(addr, is_write);
-+      if(addr == -1)
-+              return(-1);
-+
-+      page = phys_to_page(addr);
-+      addr = (unsigned long) kmap(page) + (addr & ~PAGE_MASK);
-+      n = (*op)(addr, len, arg);
-+      kunmap(page);
-+
-+      return(n);
-+}
-+
-+static int buffer_op(unsigned long addr, int len, int is_write,
-+                   int (*op)(unsigned long addr, int len, void *arg),
-+                   void *arg)
-+{
-+      int size = min(PAGE_ALIGN(addr) - addr, (unsigned long) len);
-+      int remain = len, n;
-+
-+      n = do_op(addr, size, is_write, op, arg);
-+      if(n != 0)
-+              return(n < 0 ? remain : 0);
-+
-+      addr += size;
-+      remain -= size;
-+      if(remain == 0) 
-+              return(0);
-+
-+      while(addr < ((addr + remain) & PAGE_MASK)){
-+              n = do_op(addr, PAGE_SIZE, is_write, op, arg);
-+              if(n != 0)
-+                      return(n < 0 ? remain : 0);
-+
-+              addr += PAGE_SIZE;
-+              remain -= PAGE_SIZE;
-+      }
-+      if(remain == 0)
-+              return(0);
-+
-+      n = do_op(addr, remain, is_write, op, arg);
-+      if(n != 0)
-+              return(n < 0 ? remain : 0);
-+      return(0);
-+}
-+
-+static int copy_chunk_from_user(unsigned long from, int len, void *arg)
-+{
-+      unsigned long *to_ptr = arg, to = *to_ptr;
-+
-+      memcpy((void *) to, (void *) from, len);
-+      *to_ptr += len;
-+      return(0);
-+}
-+
-+int copy_from_user_skas(void *to, const void *from, int n)
-+{
-+      if(segment_eq(get_fs(), KERNEL_DS)){
-+              memcpy(to, from, n);
-+              return(0);
-+      }
-+
-+      return(access_ok_skas(VERIFY_READ, from, n) ?
-+             buffer_op((unsigned long) from, n, 0, copy_chunk_from_user, &to):
-+             n);
-+}
-+
-+static int copy_chunk_to_user(unsigned long to, int len, void *arg)
-+{
-+      unsigned long *from_ptr = arg, from = *from_ptr;
-+
-+      memcpy((void *) to, (void *) from, len);
-+      *from_ptr += len;
-+      return(0);
-+}
-+
-+int copy_to_user_skas(void *to, const void *from, int n)
-+{
-+      if(segment_eq(get_fs(), KERNEL_DS)){
-+              memcpy(to, from, n);
-+              return(0);
-+      }
-+
-+      return(access_ok_skas(VERIFY_WRITE, to, n) ?
-+             buffer_op((unsigned long) to, n, 1, copy_chunk_to_user, &from) :
-+             n);
-+}
-+
-+static int strncpy_chunk_from_user(unsigned long from, int len, void *arg)
-+{
-+      char **to_ptr = arg, *to = *to_ptr;
-+      int n;
-+
-+      strncpy(to, (void *) from, len);
-+      n = strnlen(to, len);
-+      *to_ptr += n;
-+
-+      if(n < len) 
-+              return(1);
-+      return(0);
-+}
-+
-+int strncpy_from_user_skas(char *dst, const char *src, int count)
-+{
-+      int n;
-+      char *ptr = dst;
-+
-+      if(segment_eq(get_fs(), KERNEL_DS)){
-+              strncpy(dst, src, count);
-+              return(strnlen(dst, count));
-+      }
-+
-+      if(!access_ok_skas(VERIFY_READ, src, 1))
-+              return(-EFAULT);
-+
-+      n = buffer_op((unsigned long) src, count, 0, strncpy_chunk_from_user, 
-+                    &ptr);
-+      if(n != 0)
-+              return(-EFAULT);
-+      return(strnlen(dst, count));
-+}
-+
-+static int clear_chunk(unsigned long addr, int len, void *unused)
-+{
-+      memset((void *) addr, 0, len);
-+      return(0);
-+}
-+
-+int __clear_user_skas(void *mem, int len)
-+{
-+      return(buffer_op((unsigned long) mem, len, 1, clear_chunk, NULL));
-+}
-+
-+int clear_user_skas(void *mem, int len)
-+{
-+      if(segment_eq(get_fs(), KERNEL_DS)){
-+              memset(mem, 0, len);
-+              return(0);
-+      }
-+
-+      return(access_ok_skas(VERIFY_WRITE, mem, len) ? 
-+             buffer_op((unsigned long) mem, len, 1, clear_chunk, NULL) : len);
-+}
-+
-+static int strnlen_chunk(unsigned long str, int len, void *arg)
-+{
-+      int *len_ptr = arg, n;
-+
-+      n = strnlen((void *) str, len);
-+      *len_ptr += n;
-+
-+      if(n < len)
-+              return(1);
-+      return(0);
-+}
-+
-+int strnlen_user_skas(const void *str, int len)
-+{
-+      int count = 0, n;
-+
-+      if(segment_eq(get_fs(), KERNEL_DS))
-+              return(strnlen(str, len) + 1);
-+
-+      n = buffer_op((unsigned long) str, len, 0, strnlen_chunk, &count);
-+      if(n == 0)
-+              return(count + 1);
-+      return(-EFAULT);
-+}
-+
-+/*
-+ * Overrides for Emacs so that we follow Linus's tabbing style.
-+ * Emacs will notice this stuff at the end of the file and automatically
-+ * adjust the settings for this buffer only.  This must remain at the end
-+ * of the file.
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
-diff -Naur a/arch/um/kernel/skas/util/Makefile b/arch/um/kernel/skas/util/Makefile
---- a/arch/um/kernel/skas/util/Makefile        2004-03-10 08:22:40.000000000 -0500
-+++ b/arch/um/kernel/skas/util/Makefile        2004-03-10 08:43:06.000000000 -0500
-@@ -1,10 +1,9 @@
- all: mk_ptregs
- mk_ptregs : mk_ptregs.o
--      $(CC) -o mk_ptregs mk_ptregs.o
-+      $(HOSTCC) -o mk_ptregs mk_ptregs.o
- mk_ptregs.o : mk_ptregs.c
--      $(CC) -c $< 
-+      $(HOSTCC) -c $< 
--clean : 
--      $(RM) -f mk_ptregs *.o *~
-+clean-files := mk_ptregs *.o *~
-diff -Naur a/arch/um/kernel/skas/util/mk_ptregs.c b/arch/um/kernel/skas/util/mk_ptregs.c
---- a/arch/um/kernel/skas/util/mk_ptregs.c     2004-03-10 08:21:01.000000000 -0500
-+++ b/arch/um/kernel/skas/util/mk_ptregs.c     2004-03-10 08:37:48.000000000 -0500
-@@ -1,3 +1,4 @@
-+#include <stdio.h>
- #include <asm/ptrace.h>
- #include <asm/user.h>
-diff -Naur a/arch/um/kernel/smp.c b/arch/um/kernel/smp.c
---- a/arch/um/kernel/smp.c     2004-03-10 08:20:31.000000000 -0500
-+++ b/arch/um/kernel/smp.c     2004-03-10 08:36:06.000000000 -0500
-@@ -1,9 +1,15 @@
- /* 
-- * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
-+ * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
-  * Licensed under the GPL
-  */
- #include "linux/config.h"
-+#include "linux/percpu.h"
-+#include "asm/pgalloc.h"
-+#include "asm/tlb.h"
-+
-+/* For some reason, mmu_gathers are referenced when CONFIG_SMP is off. */
-+DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
- #ifdef CONFIG_SMP
-@@ -23,7 +29,7 @@
- #include "os.h"
- /* CPU online map, set by smp_boot_cpus */
--unsigned long cpu_online_map = cpumask_of_cpu(0);
-+unsigned long cpu_online_map = CPU_MASK_NONE;
- EXPORT_SYMBOL(cpu_online_map);
-@@ -55,7 +61,7 @@
- void smp_send_reschedule(int cpu)
- {
--      write(cpu_data[cpu].ipi_pipe[1], "R", 1);
-+      os_write_file(cpu_data[cpu].ipi_pipe[1], "R", 1);
-       num_reschedules_sent++;
- }
-@@ -100,35 +106,34 @@
-       printk(KERN_INFO "Stopping all CPUs...");
-       for(i = 0; i < num_online_cpus(); i++){
--              if(i == current->thread_info->cpu)
-+              if(i == current_thread->cpu)
-                       continue;
--              write(cpu_data[i].ipi_pipe[1], "S", 1);
-+              os_write_file(cpu_data[i].ipi_pipe[1], "S", 1);
-       }
-       printk("done\n");
- }
--static cpumask_t smp_commenced_mask;
--static cpumask_t smp_callin_map = CPU_MASK_NONE;
-+static cpumask_t smp_commenced_mask = CPU_MASK_NONE;
-+static cpumask_t cpu_callin_map = CPU_MASK_NONE;
- static int idle_proc(void *cpup)
- {
-       int cpu = (int) cpup, err;
-       err = os_pipe(cpu_data[cpu].ipi_pipe, 1, 1);
--      if(err)
--              panic("CPU#%d failed to create IPI pipe, errno = %d", cpu, 
--                    -err);
-+      if(err < 0)
-+              panic("CPU#%d failed to create IPI pipe, err = %d", cpu, -err);
-       activate_ipi(cpu_data[cpu].ipi_pipe[0], 
-                    current->thread.mode.tt.extern_pid);
-  
-       wmb();
--      if (cpu_test_and_set(cpu, &smp_callin_map)) {
-+      if (cpu_test_and_set(cpu, cpu_callin_map)) {
-               printk("huh, CPU#%d already present??\n", cpu);
-               BUG();
-       }
--      while (!cpu_isset(cpu, &smp_commenced_mask))
-+      while (!cpu_isset(cpu, smp_commenced_mask))
-               cpu_relax();
-       cpu_set(cpu, cpu_online_map);
-@@ -143,16 +148,20 @@
-         current->thread.request.u.thread.proc = idle_proc;
-         current->thread.request.u.thread.arg = (void *) cpu;
--      new_task = do_fork(CLONE_VM | CLONE_IDLETASK, 0, NULL, 0, NULL, NULL);
--      if(IS_ERR(new_task)) panic("do_fork failed in idle_thread");
-+      new_task = copy_process(CLONE_VM | CLONE_IDLETASK, 0, NULL, 0, NULL, 
-+                              NULL);
-+      if(IS_ERR(new_task)) 
-+              panic("copy_process failed in idle_thread, error = %ld",
-+                    PTR_ERR(new_task));
-       cpu_tasks[cpu] = ((struct cpu_task) 
-                         { .pid =      new_task->thread.mode.tt.extern_pid,
-                           .task =     new_task } );
-       idle_threads[cpu] = new_task;
--      CHOOSE_MODE(write(new_task->thread.mode.tt.switch_pipe[1], &c, 
-+      CHOOSE_MODE(os_write_file(new_task->thread.mode.tt.switch_pipe[1], &c, 
-                         sizeof(c)),
-                   ({ panic("skas mode doesn't support SMP"); }));
-+      wake_up_forked_process(new_task);
-       return(new_task);
- }
-@@ -160,15 +169,17 @@
- {
-       struct task_struct *idle;
-       unsigned long waittime;
--      int err, cpu;
-+      int err, cpu, me = smp_processor_id();
--      cpu_set(0, cpu_online_map);
--      cpu_set(0, smp_callin_map);
-+      cpu_clear(me, cpu_online_map);
-+      cpu_set(me, cpu_online_map);
-+      cpu_set(me, cpu_callin_map);
--      err = os_pipe(cpu_data[0].ipi_pipe, 1, 1);
--      if(err) panic("CPU#0 failed to create IPI pipe, errno = %d", -err);
-+      err = os_pipe(cpu_data[me].ipi_pipe, 1, 1);
-+      if(err < 0)
-+              panic("CPU#0 failed to create IPI pipe, errno = %d", -err);
--      activate_ipi(cpu_data[0].ipi_pipe[0], 
-+      activate_ipi(cpu_data[me].ipi_pipe[0], 
-                    current->thread.mode.tt.extern_pid);
-       for(cpu = 1; cpu < ncpus; cpu++){
-@@ -180,10 +191,10 @@
-               unhash_process(idle);
-               waittime = 200000000;
--              while (waittime-- && !cpu_isset(cpu, smp_callin_map))
-+              while (waittime-- && !cpu_isset(cpu, cpu_callin_map))
-                       cpu_relax();
--              if (cpu_isset(cpu, smp_callin_map))
-+              if (cpu_isset(cpu, cpu_callin_map))
-                       printk("done\n");
-               else printk("failed\n");
-       }
-@@ -216,7 +227,7 @@
-       int fd;
-       fd = cpu_data[cpu].ipi_pipe[0];
--      while (read(fd, &c, 1) == 1) {
-+      while (os_read_file(fd, &c, 1) == 1) {
-               switch (c) {
-               case 'C':
-                       smp_call_function_slave(cpu);
-@@ -273,9 +284,9 @@
-       info = _info;
-       for (i=0;i<NR_CPUS;i++)
--              if((i != current->thread_info->cpu) && 
-+              if((i != current_thread->cpu) && 
-                  cpu_isset(i, cpu_online_map))
--                      write(cpu_data[i].ipi_pipe[1], "C", 1);
-+                      os_write_file(cpu_data[i].ipi_pipe[1], "C", 1);
-       while (atomic_read(&scf_started) != cpus)
-               barrier();
-diff -Naur a/arch/um/kernel/syscall_kern.c b/arch/um/kernel/syscall_kern.c
---- a/arch/um/kernel/syscall_kern.c    2004-03-10 08:22:23.000000000 -0500
-+++ b/arch/um/kernel/syscall_kern.c    2004-03-10 08:41:29.000000000 -0500
-@@ -1,5 +1,5 @@
- /* 
-- * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
-+ * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
-  * Licensed under the GPL
-  */
-@@ -36,39 +36,40 @@
- long sys_fork(void)
- {
--      struct task_struct *p;
-+      long ret;
-       current->thread.forking = 1;
--        p = do_fork(SIGCHLD, 0, NULL, 0, NULL, NULL);
-+        ret = do_fork(SIGCHLD, 0, NULL, 0, NULL, NULL);
-       current->thread.forking = 0;
--      return(IS_ERR(p) ? PTR_ERR(p) : p->pid);
-+      return(ret);
- }
--long sys_clone(unsigned long clone_flags, unsigned long newsp)
-+long sys_clone(unsigned long clone_flags, unsigned long newsp, 
-+             int *parent_tid, int *child_tid)
- {
--      struct task_struct *p;
-+      long ret;
-       current->thread.forking = 1;
--      p = do_fork(clone_flags, newsp, NULL, 0, NULL, NULL);
-+      ret = do_fork(clone_flags, newsp, NULL, 0, parent_tid, child_tid);
-       current->thread.forking = 0;
--      return(IS_ERR(p) ? PTR_ERR(p) : p->pid);
-+      return(ret);
- }
- long sys_vfork(void)
- {
--      struct task_struct *p;
-+      long ret;
-       current->thread.forking = 1;
--      p = do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, 0, NULL, 0, NULL, NULL);
-+      ret = do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, 0, NULL, 0, NULL, 
-+                    NULL);
-       current->thread.forking = 0;
--      return(IS_ERR(p) ? PTR_ERR(p) : p->pid);
-+      return(ret);
- }
- /* common code for old and new mmaps */
--static inline long do_mmap2(
--      unsigned long addr, unsigned long len,
--      unsigned long prot, unsigned long flags,
--      unsigned long fd, unsigned long pgoff)
-+long do_mmap2(struct mm_struct *mm, unsigned long addr, unsigned long len,
-+            unsigned long prot, unsigned long flags, unsigned long fd,
-+            unsigned long pgoff)
- {
-       int error = -EBADF;
-       struct file * file = NULL;
-@@ -80,9 +81,9 @@
-                       goto out;
-       }
--      down_write(&current->mm->mmap_sem);
--      error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff);
--      up_write(&current->mm->mmap_sem);
-+      down_write(&mm->mmap_sem);
-+      error = do_mmap_pgoff(mm, file, addr, len, prot, flags, pgoff);
-+      up_write(&mm->mmap_sem);
-       if (file)
-               fput(file);
-@@ -94,7 +95,7 @@
-              unsigned long prot, unsigned long flags,
-              unsigned long fd, unsigned long pgoff)
- {
--      return do_mmap2(addr, len, prot, flags, fd, pgoff);
-+      return do_mmap2(current->mm, addr, len, prot, flags, fd, pgoff);
- }
- /*
-@@ -121,7 +122,8 @@
-       if (offset & ~PAGE_MASK)
-               goto out;
--      err = do_mmap2(addr, len, prot, flags, fd, offset >> PAGE_SHIFT);
-+      err = do_mmap2(current->mm, addr, len, prot, flags, fd, 
-+                     offset >> PAGE_SHIFT);
-  out:
-       return err;
- }
-@@ -136,43 +138,12 @@
-         error = do_pipe(fd);
-         if (!error) {
--                if (copy_to_user(fildes, fd, 2*sizeof(int)))
-+              if (copy_to_user(fildes, fd, sizeof(fd)))
-                         error = -EFAULT;
-         }
-         return error;
- }
--int sys_sigaction(int sig, const struct old_sigaction *act,
--                       struct old_sigaction *oact)
--{
--      struct k_sigaction new_ka, old_ka;
--      int ret;
--
--      if (act) {
--              old_sigset_t mask;
--              if (verify_area(VERIFY_READ, act, sizeof(*act)) ||
--                  __get_user(new_ka.sa.sa_handler, &act->sa_handler) ||
--                  __get_user(new_ka.sa.sa_restorer, &act->sa_restorer))
--                      return -EFAULT;
--              __get_user(new_ka.sa.sa_flags, &act->sa_flags);
--              __get_user(mask, &act->sa_mask);
--              siginitset(&new_ka.sa.sa_mask, mask);
--      }
--
--      ret = do_sigaction(sig, act ? &new_ka : NULL, oact ? &old_ka : NULL);
--
--      if (!ret && oact) {
--              if (verify_area(VERIFY_WRITE, oact, sizeof(*oact)) ||
--                  __put_user(old_ka.sa.sa_handler, &oact->sa_handler) ||
--                  __put_user(old_ka.sa.sa_restorer, &oact->sa_restorer))
--                      return -EFAULT;
--              __put_user(old_ka.sa.sa_flags, &oact->sa_flags);
--              __put_user(old_ka.sa.sa_mask.sig[0], &oact->sa_mask);
--      }
--
--      return ret;
--}
--
- /*
-  * sys_ipc() is the de-multiplexer for the SysV IPC calls..
-  *
-@@ -254,7 +225,7 @@
-               return sys_shmctl (first, second,
-                                  (struct shmid_ds *) ptr);
-       default:
--              return -EINVAL;
-+              return -ENOSYS;
-       }
- }
-@@ -303,11 +274,6 @@
-       return error;
- }
--int sys_sigaltstack(const stack_t *uss, stack_t *uoss)
--{
--      return(do_sigaltstack(uss, uoss, PT_REGS_SP(&current->thread.regs)));
--}
--
- long execute_syscall(void *r)
- {
-       return(CHOOSE_MODE_PROC(execute_syscall_tt, execute_syscall_skas, r));
-diff -Naur a/arch/um/kernel/sys_call_table.c b/arch/um/kernel/sys_call_table.c
---- a/arch/um/kernel/sys_call_table.c  2004-03-10 08:22:39.000000000 -0500
-+++ b/arch/um/kernel/sys_call_table.c  2004-03-10 08:43:05.000000000 -0500
-@@ -5,7 +5,6 @@
- #include "linux/config.h"
- #include "linux/unistd.h"
--#include "linux/version.h"
- #include "linux/sys.h"
- #include "linux/swap.h"
- #include "linux/syscalls.h"
-@@ -14,251 +13,50 @@
- #include "sysdep/syscalls.h"
- #include "kern_util.h"
--extern syscall_handler_t sys_restart_syscall;
--extern syscall_handler_t sys_ni_syscall;
--extern syscall_handler_t sys_exit;
-+#ifdef CONFIG_NFSD
-+#define NFSSERVCTL sys_nfsservctl
-+#else
-+#define NFSSERVCTL sys_ni_syscall
-+#endif
-+
-+#define LAST_GENERIC_SYSCALL __NR_vserver
-+
-+#if LAST_GENERIC_SYSCALL > LAST_ARCH_SYSCALL
-+#define LAST_SYSCALL LAST_GENERIC_SYSCALL
-+#else
-+#define LAST_SYSCALL LAST_ARCH_SYSCALL
-+#endif
-+
- extern syscall_handler_t sys_fork;
--extern syscall_handler_t sys_creat;
--extern syscall_handler_t sys_link;
--extern syscall_handler_t sys_unlink;
--extern syscall_handler_t sys_chdir;
--extern syscall_handler_t sys_mknod;
--extern syscall_handler_t sys_chmod;
--extern syscall_handler_t sys_lchown16;
--extern syscall_handler_t sys_ni_syscall;
--extern syscall_handler_t sys_stat;
--extern syscall_handler_t sys_getpid;
--extern syscall_handler_t sys_oldumount;
--extern syscall_handler_t sys_setuid16;
--extern syscall_handler_t sys_getuid16;
-+extern syscall_handler_t sys_execve;
-+extern syscall_handler_t um_time;
-+extern syscall_handler_t um_mount;
-+extern syscall_handler_t um_stime;
- extern syscall_handler_t sys_ptrace;
--extern syscall_handler_t sys_alarm;
--extern syscall_handler_t sys_fstat;
--extern syscall_handler_t sys_pause;
--extern syscall_handler_t sys_utime;
--extern syscall_handler_t sys_ni_syscall;
--extern syscall_handler_t sys_ni_syscall;
--extern syscall_handler_t sys_access;
--extern syscall_handler_t sys_nice;
--extern syscall_handler_t sys_ni_syscall;
--extern syscall_handler_t sys_sync;
--extern syscall_handler_t sys_kill;
--extern syscall_handler_t sys_rename;
--extern syscall_handler_t sys_mkdir;
--extern syscall_handler_t sys_rmdir;
- extern syscall_handler_t sys_pipe;
--extern syscall_handler_t sys_times;
--extern syscall_handler_t sys_ni_syscall;
--extern syscall_handler_t sys_brk;
--extern syscall_handler_t sys_setgid16;
--extern syscall_handler_t sys_getgid16;
--extern syscall_handler_t sys_signal;
--extern syscall_handler_t sys_geteuid16;
--extern syscall_handler_t sys_getegid16;
--extern syscall_handler_t sys_acct;
--extern syscall_handler_t sys_umount;
--extern syscall_handler_t sys_ni_syscall;
--extern syscall_handler_t sys_ioctl;
--extern syscall_handler_t sys_fcntl;
--extern syscall_handler_t sys_ni_syscall;
--extern syscall_handler_t sys_setpgid;
--extern syscall_handler_t sys_ni_syscall;
- extern syscall_handler_t sys_olduname;
--extern syscall_handler_t sys_umask;
--extern syscall_handler_t sys_chroot;
--extern syscall_handler_t sys_ustat;
--extern syscall_handler_t sys_dup2;
--extern syscall_handler_t sys_getppid;
--extern syscall_handler_t sys_getpgrp;
- extern syscall_handler_t sys_sigaction;
--extern syscall_handler_t sys_sgetmask;
--extern syscall_handler_t sys_ssetmask;
--extern syscall_handler_t sys_setreuid16;
--extern syscall_handler_t sys_setregid16;
- extern syscall_handler_t sys_sigsuspend;
--extern syscall_handler_t sys_sigpending;
--extern syscall_handler_t sys_sethostname;
--extern syscall_handler_t sys_setrlimit;
--extern syscall_handler_t sys_old_getrlimit;
--extern syscall_handler_t sys_getrusage;
--extern syscall_handler_t sys_gettimeofday;
--extern syscall_handler_t sys_settimeofday;
--extern syscall_handler_t sys_getgroups16;
--extern syscall_handler_t sys_setgroups16;
--extern syscall_handler_t sys_symlink;
--extern syscall_handler_t sys_lstat;
--extern syscall_handler_t sys_readlink;
--extern syscall_handler_t sys_swapon;
--extern syscall_handler_t sys_uselib;
--extern syscall_handler_t sys_reboot;
- extern syscall_handler_t old_readdir;
--extern syscall_handler_t sys_munmap;
--extern syscall_handler_t sys_truncate;
--extern syscall_handler_t sys_ftruncate;
--extern syscall_handler_t sys_fchmod;
--extern syscall_handler_t sys_fchown16;
--extern syscall_handler_t sys_getpriority;
--extern syscall_handler_t sys_setpriority;
--extern syscall_handler_t sys_ni_syscall;
--extern syscall_handler_t sys_statfs;
--extern syscall_handler_t sys_fstatfs;
--extern syscall_handler_t sys_ni_syscall;
--extern syscall_handler_t sys_socketcall;
--extern syscall_handler_t sys_syslog;
--extern syscall_handler_t sys_setitimer;
--extern syscall_handler_t sys_getitimer;
--extern syscall_handler_t sys_newstat;
--extern syscall_handler_t sys_newlstat;
--extern syscall_handler_t sys_newfstat;
- extern syscall_handler_t sys_uname;
--extern syscall_handler_t sys_ni_syscall;
--extern syscall_handler_t sys_vhangup;
--extern syscall_handler_t sys_ni_syscall;
--extern syscall_handler_t sys_ni_syscall;
--extern syscall_handler_t sys_swapoff;
--extern syscall_handler_t sys_sysinfo;
- extern syscall_handler_t sys_ipc;
--extern syscall_handler_t sys_fsync;
- extern syscall_handler_t sys_sigreturn;
--extern syscall_handler_t sys_rt_sigreturn;
- extern syscall_handler_t sys_clone;
--extern syscall_handler_t sys_setdomainname;
--extern syscall_handler_t sys_newuname;
--extern syscall_handler_t sys_ni_syscall;
--extern syscall_handler_t sys_adjtimex;
--extern syscall_handler_t sys_mprotect;
--extern syscall_handler_t sys_sigprocmask;
--extern syscall_handler_t sys_init_module;
--extern syscall_handler_t sys_delete_module;
--extern syscall_handler_t sys_quotactl;
--extern syscall_handler_t sys_getpgid;
--extern syscall_handler_t sys_fchdir;
--extern syscall_handler_t sys_bdflush;
--extern syscall_handler_t sys_sysfs;
--extern syscall_handler_t sys_personality;
--extern syscall_handler_t sys_ni_syscall;
--extern syscall_handler_t sys_setfsuid16;
--extern syscall_handler_t sys_setfsgid16;
--extern syscall_handler_t sys_llseek;
--extern syscall_handler_t sys_getdents;
--extern syscall_handler_t sys_flock;
--extern syscall_handler_t sys_msync;
--extern syscall_handler_t sys_readv;
--extern syscall_handler_t sys_writev;
--extern syscall_handler_t sys_getsid;
--extern syscall_handler_t sys_fdatasync;
--extern syscall_handler_t sys_mlock;
--extern syscall_handler_t sys_munlock;
--extern syscall_handler_t sys_mlockall;
--extern syscall_handler_t sys_munlockall;
--extern syscall_handler_t sys_sched_setparam;
--extern syscall_handler_t sys_sched_getparam;
--extern syscall_handler_t sys_sched_setscheduler;
--extern syscall_handler_t sys_sched_getscheduler;
--extern syscall_handler_t sys_sched_get_priority_max;
--extern syscall_handler_t sys_sched_get_priority_min;
--extern syscall_handler_t sys_sched_rr_get_interval;
--extern syscall_handler_t sys_nanosleep;
--extern syscall_handler_t sys_mremap;
--extern syscall_handler_t sys_setresuid16;
--extern syscall_handler_t sys_getresuid16;
--extern syscall_handler_t sys_ni_syscall;
--extern syscall_handler_t sys_poll;
--extern syscall_handler_t sys_nfsservctl;
--extern syscall_handler_t sys_setresgid16;
--extern syscall_handler_t sys_getresgid16;
--extern syscall_handler_t sys_prctl;
--extern syscall_handler_t sys_ni_syscall;
-+extern syscall_handler_t sys_rt_sigreturn;
- extern syscall_handler_t sys_rt_sigaction;
--extern syscall_handler_t sys_rt_sigprocmask;
--extern syscall_handler_t sys_rt_sigpending;
--extern syscall_handler_t sys_rt_sigtimedwait;
--extern syscall_handler_t sys_rt_sigqueueinfo;
--extern syscall_handler_t sys_rt_sigsuspend;
--extern syscall_handler_t sys_pread64;
--extern syscall_handler_t sys_pwrite64;
--extern syscall_handler_t sys_chown16;
--extern syscall_handler_t sys_getcwd;
--extern syscall_handler_t sys_capget;
--extern syscall_handler_t sys_capset;
- extern syscall_handler_t sys_sigaltstack;
--extern syscall_handler_t sys_sendfile;
--extern syscall_handler_t sys_ni_syscall;
--extern syscall_handler_t sys_ni_syscall;
- extern syscall_handler_t sys_vfork;
--extern syscall_handler_t sys_getrlimit;
- extern syscall_handler_t sys_mmap2;
--extern syscall_handler_t sys_truncate64;
--extern syscall_handler_t sys_ftruncate64;
--extern syscall_handler_t sys_stat64;
--extern syscall_handler_t sys_lstat64;
--extern syscall_handler_t sys_fstat64;
--extern syscall_handler_t sys_lchown;
--extern syscall_handler_t sys_getuid;
--extern syscall_handler_t sys_getgid;
--extern syscall_handler_t sys_geteuid;
--extern syscall_handler_t sys_getegid;
--extern syscall_handler_t sys_setreuid;
--extern syscall_handler_t sys_setregid;
--extern syscall_handler_t sys_getgroups;
--extern syscall_handler_t sys_setgroups;
--extern syscall_handler_t sys_fchown;
--extern syscall_handler_t sys_setresuid;
--extern syscall_handler_t sys_getresuid;
--extern syscall_handler_t sys_setresgid;
--extern syscall_handler_t sys_getresgid;
--extern syscall_handler_t sys_chown;
--extern syscall_handler_t sys_setuid;
--extern syscall_handler_t sys_setgid;
--extern syscall_handler_t sys_setfsuid;
--extern syscall_handler_t sys_setfsgid;
--extern syscall_handler_t sys_pivot_root;
--extern syscall_handler_t sys_mincore;
--extern syscall_handler_t sys_madvise;
--extern syscall_handler_t sys_fcntl64;
--extern syscall_handler_t sys_getdents64;
--extern syscall_handler_t sys_gettid;
--extern syscall_handler_t sys_readahead;
--extern syscall_handler_t sys_tkill;
--extern syscall_handler_t sys_sendfile64;
--extern syscall_handler_t sys_futex;
--extern syscall_handler_t sys_sched_setaffinity;
--extern syscall_handler_t sys_sched_getaffinity;
--extern syscall_handler_t sys_io_setup;
--extern syscall_handler_t sys_io_destroy;
--extern syscall_handler_t sys_io_getevents;
--extern syscall_handler_t sys_io_submit;
--extern syscall_handler_t sys_io_cancel;
--extern syscall_handler_t sys_exit_group;
--extern syscall_handler_t sys_lookup_dcookie;
--extern syscall_handler_t sys_epoll_create;
--extern syscall_handler_t sys_epoll_ctl;
--extern syscall_handler_t sys_epoll_wait;
--extern syscall_handler_t sys_remap_file_pages;
--extern syscall_handler_t sys_set_tid_address;
--
--#ifdef CONFIG_NFSD
--#define NFSSERVCTL sys_nfsservctl
--#else
--#define NFSSERVCTL sys_ni_syscall
--#endif
--
--extern syscall_handler_t um_mount;
--extern syscall_handler_t um_time;
--extern syscall_handler_t um_stime;
--
--#define LAST_GENERIC_SYSCALL __NR_set_tid_address
--
--#if LAST_GENERIC_SYSCALL > LAST_ARCH_SYSCALL
--#define LAST_SYSCALL LAST_GENERIC_SYSCALL
--#else
--#define LAST_SYSCALL LAST_ARCH_SYSCALL
--#endif
-+extern syscall_handler_t sys_timer_create;
-+extern syscall_handler_t old_mmap_i386;
-+extern syscall_handler_t old_select;
-+extern syscall_handler_t sys_modify_ldt;
-+extern syscall_handler_t sys_rt_sigsuspend;
- syscall_handler_t *sys_call_table[] = {
--      [ __NR_restart_syscall ] = sys_restart_syscall,
--      [ __NR_exit ] = sys_exit,
--      [ __NR_fork ] = sys_fork,
-+      [ __NR_restart_syscall ] = (syscall_handler_t *) sys_restart_syscall,
-+      [ __NR_exit ] (syscall_handler_t *) sys_exit,
-+      [ __NR_fork ] (syscall_handler_t *) sys_fork,
-       [ __NR_read ] = (syscall_handler_t *) sys_read,
-       [ __NR_write ] = (syscall_handler_t *) sys_write,
-@@ -266,229 +64,249 @@
-       [ __NR_open ] = (syscall_handler_t *) sys_open,
-       [ __NR_close ] = (syscall_handler_t *) sys_close,
-       [ __NR_waitpid ] = (syscall_handler_t *) sys_waitpid,
--      [ __NR_creat ] = sys_creat,
--      [ __NR_link ] = sys_link,
--      [ __NR_unlink ] = sys_unlink,
-+      [ __NR_creat ] (syscall_handler_t *) sys_creat,
-+      [ __NR_link ] (syscall_handler_t *) sys_link,
-+      [ __NR_unlink ] (syscall_handler_t *) sys_unlink,
-       [ __NR_execve ] = (syscall_handler_t *) sys_execve,
-       /* declared differently in kern_util.h */
--      [ __NR_chdir ] = sys_chdir,
-+      [ __NR_chdir ] (syscall_handler_t *) sys_chdir,
-       [ __NR_time ] = um_time,
--      [ __NR_mknod ] = sys_mknod,
--      [ __NR_chmod ] = sys_chmod,
--      [ __NR_lchown ] = sys_lchown16,
--      [ __NR_break ] = sys_ni_syscall,
--      [ __NR_oldstat ] = sys_stat,
-+      [ __NR_mknod ] (syscall_handler_t *) sys_mknod,
-+      [ __NR_chmod ] (syscall_handler_t *) sys_chmod,
-+      [ __NR_lchown ] (syscall_handler_t *) sys_lchown16,
-+      [ __NR_break ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_oldstat ] (syscall_handler_t *) sys_stat,
-       [ __NR_lseek ] = (syscall_handler_t *) sys_lseek,
--      [ __NR_getpid ] = sys_getpid,
-+      [ __NR_getpid ] (syscall_handler_t *) sys_getpid,
-       [ __NR_mount ] = um_mount,
--      [ __NR_umount ] = sys_oldumount,
--      [ __NR_setuid ] = sys_setuid16,
--      [ __NR_getuid ] = sys_getuid16,
-+      [ __NR_umount ] (syscall_handler_t *) sys_oldumount,
-+      [ __NR_setuid ] (syscall_handler_t *) sys_setuid16,
-+      [ __NR_getuid ] (syscall_handler_t *) sys_getuid16,
-       [ __NR_stime ] = um_stime,
--      [ __NR_ptrace ] = sys_ptrace,
--      [ __NR_alarm ] = sys_alarm,
--      [ __NR_oldfstat ] = sys_fstat,
--      [ __NR_pause ] = sys_pause,
--      [ __NR_utime ] = sys_utime,
--      [ __NR_stty ] = sys_ni_syscall,
--      [ __NR_gtty ] = sys_ni_syscall,
--      [ __NR_access ] = sys_access,
--      [ __NR_nice ] = sys_nice,
--      [ __NR_ftime ] = sys_ni_syscall,
--      [ __NR_sync ] = sys_sync,
--      [ __NR_kill ] = sys_kill,
--      [ __NR_rename ] = sys_rename,
--      [ __NR_mkdir ] = sys_mkdir,
--      [ __NR_rmdir ] = sys_rmdir,
-+      [ __NR_ptrace ] (syscall_handler_t *) sys_ptrace,
-+      [ __NR_alarm ] (syscall_handler_t *) sys_alarm,
-+      [ __NR_oldfstat ] (syscall_handler_t *) sys_fstat,
-+      [ __NR_pause ] (syscall_handler_t *) sys_pause,
-+      [ __NR_utime ] (syscall_handler_t *) sys_utime,
-+      [ __NR_stty ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_gtty ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_access ] (syscall_handler_t *) sys_access,
-+      [ __NR_nice ] (syscall_handler_t *) sys_nice,
-+      [ __NR_ftime ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_sync ] (syscall_handler_t *) sys_sync,
-+      [ __NR_kill ] (syscall_handler_t *) sys_kill,
-+      [ __NR_rename ] (syscall_handler_t *) sys_rename,
-+      [ __NR_mkdir ] (syscall_handler_t *) sys_mkdir,
-+      [ __NR_rmdir ] (syscall_handler_t *) sys_rmdir,
-       /* Declared differently in asm/unistd.h */
-       [ __NR_dup ] = (syscall_handler_t *) sys_dup,
--      [ __NR_pipe ] = sys_pipe,
--      [ __NR_times ] = sys_times,
--      [ __NR_prof ] = sys_ni_syscall,
--      [ __NR_brk ] = sys_brk,
--      [ __NR_setgid ] = sys_setgid16,
--      [ __NR_getgid ] = sys_getgid16,
--      [ __NR_signal ] = sys_signal,
--      [ __NR_geteuid ] = sys_geteuid16,
--      [ __NR_getegid ] = sys_getegid16,
--      [ __NR_acct ] = sys_acct,
--      [ __NR_umount2 ] = sys_umount,
--      [ __NR_lock ] = sys_ni_syscall,
--      [ __NR_ioctl ] = sys_ioctl,
--      [ __NR_fcntl ] = sys_fcntl,
--      [ __NR_mpx ] = sys_ni_syscall,
--      [ __NR_setpgid ] = sys_setpgid,
--      [ __NR_ulimit ] = sys_ni_syscall,
--      [ __NR_oldolduname ] = sys_olduname,
--      [ __NR_umask ] = sys_umask,
--      [ __NR_chroot ] = sys_chroot,
--      [ __NR_ustat ] = sys_ustat,
--      [ __NR_dup2 ] = sys_dup2,
--      [ __NR_getppid ] = sys_getppid,
--      [ __NR_getpgrp ] = sys_getpgrp,
-+      [ __NR_pipe ] (syscall_handler_t *) sys_pipe,
-+      [ __NR_times ] (syscall_handler_t *) sys_times,
-+      [ __NR_prof ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_brk ] (syscall_handler_t *) sys_brk,
-+      [ __NR_setgid ] (syscall_handler_t *) sys_setgid16,
-+      [ __NR_getgid ] (syscall_handler_t *) sys_getgid16,
-+      [ __NR_signal ] (syscall_handler_t *) sys_signal,
-+      [ __NR_geteuid ] (syscall_handler_t *) sys_geteuid16,
-+      [ __NR_getegid ] (syscall_handler_t *) sys_getegid16,
-+      [ __NR_acct ] (syscall_handler_t *) sys_acct,
-+      [ __NR_umount2 ] (syscall_handler_t *) sys_umount,
-+      [ __NR_lock ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_ioctl ] (syscall_handler_t *) sys_ioctl,
-+      [ __NR_fcntl ] (syscall_handler_t *) sys_fcntl,
-+      [ __NR_mpx ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_setpgid ] (syscall_handler_t *) sys_setpgid,
-+      [ __NR_ulimit ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_oldolduname ] (syscall_handler_t *) sys_olduname,
-+      [ __NR_umask ] (syscall_handler_t *) sys_umask,
-+      [ __NR_chroot ] (syscall_handler_t *) sys_chroot,
-+      [ __NR_ustat ] (syscall_handler_t *) sys_ustat,
-+      [ __NR_dup2 ] (syscall_handler_t *) sys_dup2,
-+      [ __NR_getppid ] (syscall_handler_t *) sys_getppid,
-+      [ __NR_getpgrp ] (syscall_handler_t *) sys_getpgrp,
-       [ __NR_setsid ] = (syscall_handler_t *) sys_setsid,
--      [ __NR_sigaction ] = sys_sigaction,
--      [ __NR_sgetmask ] = sys_sgetmask,
--      [ __NR_ssetmask ] = sys_ssetmask,
--      [ __NR_setreuid ] = sys_setreuid16,
--      [ __NR_setregid ] = sys_setregid16,
--      [ __NR_sigsuspend ] = sys_sigsuspend,
--      [ __NR_sigpending ] = sys_sigpending,
--      [ __NR_sethostname ] = sys_sethostname,
--      [ __NR_setrlimit ] = sys_setrlimit,
--      [ __NR_getrlimit ] = sys_old_getrlimit,
--      [ __NR_getrusage ] = sys_getrusage,
--      [ __NR_gettimeofday ] = sys_gettimeofday,
--      [ __NR_settimeofday ] = sys_settimeofday,
--      [ __NR_getgroups ] = sys_getgroups16,
--      [ __NR_setgroups ] = sys_setgroups16,
--      [ __NR_symlink ] = sys_symlink,
--      [ __NR_oldlstat ] = sys_lstat,
--      [ __NR_readlink ] = sys_readlink,
--      [ __NR_uselib ] = sys_uselib,
-+      [ __NR_sigaction ] (syscall_handler_t *) sys_sigaction,
-+      [ __NR_sgetmask ] (syscall_handler_t *) sys_sgetmask,
-+      [ __NR_ssetmask ] (syscall_handler_t *) sys_ssetmask,
-+      [ __NR_setreuid ] (syscall_handler_t *) sys_setreuid16,
-+      [ __NR_setregid ] (syscall_handler_t *) sys_setregid16,
-+      [ __NR_sigsuspend ] (syscall_handler_t *) sys_sigsuspend,
-+      [ __NR_sigpending ] (syscall_handler_t *) sys_sigpending,
-+      [ __NR_sethostname ] (syscall_handler_t *) sys_sethostname,
-+      [ __NR_setrlimit ] (syscall_handler_t *) sys_setrlimit,
-+      [ __NR_getrlimit ] (syscall_handler_t *) sys_old_getrlimit,
-+      [ __NR_getrusage ] (syscall_handler_t *) sys_getrusage,
-+      [ __NR_gettimeofday ] (syscall_handler_t *) sys_gettimeofday,
-+      [ __NR_settimeofday ] (syscall_handler_t *) sys_settimeofday,
-+      [ __NR_getgroups ] (syscall_handler_t *) sys_getgroups16,
-+      [ __NR_setgroups ] (syscall_handler_t *) sys_setgroups16,
-+      [ __NR_symlink ] (syscall_handler_t *) sys_symlink,
-+      [ __NR_oldlstat ] (syscall_handler_t *) sys_lstat,
-+      [ __NR_readlink ] (syscall_handler_t *) sys_readlink,
-+      [ __NR_uselib ] (syscall_handler_t *) sys_uselib,
-       [ __NR_swapon ] = (syscall_handler_t *) sys_swapon,
--      [ __NR_reboot ] = sys_reboot,
-+      [ __NR_reboot ] (syscall_handler_t *) sys_reboot,
-       [ __NR_readdir ] = old_readdir,
--      [ __NR_munmap ] = sys_munmap,
--      [ __NR_truncate ] = sys_truncate,
--      [ __NR_ftruncate ] = sys_ftruncate,
--      [ __NR_fchmod ] = sys_fchmod,
--      [ __NR_fchown ] = sys_fchown16,
--      [ __NR_getpriority ] = sys_getpriority,
--      [ __NR_setpriority ] = sys_setpriority,
--      [ __NR_profil ] = sys_ni_syscall,
--      [ __NR_statfs ] = sys_statfs,
--      [ __NR_fstatfs ] = sys_fstatfs,
--      [ __NR_ioperm ] = sys_ni_syscall,
--      [ __NR_socketcall ] = sys_socketcall,
--      [ __NR_syslog ] = sys_syslog,
--      [ __NR_setitimer ] = sys_setitimer,
--      [ __NR_getitimer ] = sys_getitimer,
--      [ __NR_stat ] = sys_newstat,
--      [ __NR_lstat ] = sys_newlstat,
--      [ __NR_fstat ] = sys_newfstat,
--      [ __NR_olduname ] = sys_uname,
--      [ __NR_iopl ] = sys_ni_syscall,
--      [ __NR_vhangup ] = sys_vhangup,
--      [ __NR_idle ] = sys_ni_syscall,
-+      [ __NR_munmap ] (syscall_handler_t *) sys_munmap,
-+      [ __NR_truncate ] (syscall_handler_t *) sys_truncate,
-+      [ __NR_ftruncate ] (syscall_handler_t *) sys_ftruncate,
-+      [ __NR_fchmod ] (syscall_handler_t *) sys_fchmod,
-+      [ __NR_fchown ] (syscall_handler_t *) sys_fchown16,
-+      [ __NR_getpriority ] (syscall_handler_t *) sys_getpriority,
-+      [ __NR_setpriority ] (syscall_handler_t *) sys_setpriority,
-+      [ __NR_profil ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_statfs ] (syscall_handler_t *) sys_statfs,
-+      [ __NR_fstatfs ] (syscall_handler_t *) sys_fstatfs,
-+      [ __NR_ioperm ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_socketcall ] (syscall_handler_t *) sys_socketcall,
-+      [ __NR_syslog ] (syscall_handler_t *) sys_syslog,
-+      [ __NR_setitimer ] (syscall_handler_t *) sys_setitimer,
-+      [ __NR_getitimer ] (syscall_handler_t *) sys_getitimer,
-+      [ __NR_stat ] (syscall_handler_t *) sys_newstat,
-+      [ __NR_lstat ] (syscall_handler_t *) sys_newlstat,
-+      [ __NR_fstat ] (syscall_handler_t *) sys_newfstat,
-+      [ __NR_olduname ] (syscall_handler_t *) sys_uname,
-+      [ __NR_iopl ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_vhangup ] (syscall_handler_t *) sys_vhangup,
-+      [ __NR_idle ] (syscall_handler_t *) sys_ni_syscall,
-       [ __NR_wait4 ] = (syscall_handler_t *) sys_wait4,
-       [ __NR_swapoff ] = (syscall_handler_t *) sys_swapoff,
--      [ __NR_sysinfo ] = sys_sysinfo,
--      [ __NR_ipc ] = sys_ipc,
--      [ __NR_fsync ] = sys_fsync,
--      [ __NR_sigreturn ] = sys_sigreturn,
--      [ __NR_clone ] = sys_clone,
--      [ __NR_setdomainname ] = sys_setdomainname,
--      [ __NR_uname ] = sys_newuname,
--      [ __NR_adjtimex ] = sys_adjtimex,
--      [ __NR_mprotect ] = sys_mprotect,
--      [ __NR_sigprocmask ] = sys_sigprocmask,
--      [ __NR_create_module ] = sys_ni_syscall,
--      [ __NR_init_module ] = sys_init_module,
--      [ __NR_delete_module ] = sys_delete_module,
--      [ __NR_get_kernel_syms ] = sys_ni_syscall,
--      [ __NR_quotactl ] = sys_quotactl,
--      [ __NR_getpgid ] = sys_getpgid,
--      [ __NR_fchdir ] = sys_fchdir,
--      [ __NR_bdflush ] = sys_bdflush,
--      [ __NR_sysfs ] = sys_sysfs,
--      [ __NR_personality ] = sys_personality,
--      [ __NR_afs_syscall ] = sys_ni_syscall,
--      [ __NR_setfsuid ] = sys_setfsuid16,
--      [ __NR_setfsgid ] = sys_setfsgid16,
--      [ __NR__llseek ] = sys_llseek,
--      [ __NR_getdents ] = sys_getdents,
-+      [ __NR_sysinfo ] (syscall_handler_t *) sys_sysinfo,
-+      [ __NR_ipc ] (syscall_handler_t *) sys_ipc,
-+      [ __NR_fsync ] (syscall_handler_t *) sys_fsync,
-+      [ __NR_sigreturn ] (syscall_handler_t *) sys_sigreturn,
-+      [ __NR_clone ] (syscall_handler_t *) sys_clone,
-+      [ __NR_setdomainname ] (syscall_handler_t *) sys_setdomainname,
-+      [ __NR_uname ] (syscall_handler_t *) sys_newuname,
-+      [ __NR_adjtimex ] (syscall_handler_t *) sys_adjtimex,
-+      [ __NR_mprotect ] (syscall_handler_t *) sys_mprotect,
-+      [ __NR_sigprocmask ] (syscall_handler_t *) sys_sigprocmask,
-+      [ __NR_create_module ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_init_module ] (syscall_handler_t *) sys_init_module,
-+      [ __NR_delete_module ] (syscall_handler_t *) sys_delete_module,
-+      [ __NR_get_kernel_syms ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_quotactl ] (syscall_handler_t *) sys_quotactl,
-+      [ __NR_getpgid ] (syscall_handler_t *) sys_getpgid,
-+      [ __NR_fchdir ] (syscall_handler_t *) sys_fchdir,
-+      [ __NR_bdflush ] (syscall_handler_t *) sys_bdflush,
-+      [ __NR_sysfs ] (syscall_handler_t *) sys_sysfs,
-+      [ __NR_personality ] (syscall_handler_t *) sys_personality,
-+      [ __NR_afs_syscall ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_setfsuid ] (syscall_handler_t *) sys_setfsuid16,
-+      [ __NR_setfsgid ] (syscall_handler_t *) sys_setfsgid16,
-+      [ __NR__llseek ] (syscall_handler_t *) sys_llseek,
-+      [ __NR_getdents ] (syscall_handler_t *) sys_getdents,
-       [ __NR__newselect ] = (syscall_handler_t *) sys_select,
--      [ __NR_flock ] = sys_flock,
--      [ __NR_msync ] = sys_msync,
--      [ __NR_readv ] = sys_readv,
--      [ __NR_writev ] = sys_writev,
--      [ __NR_getsid ] = sys_getsid,
--      [ __NR_fdatasync ] = sys_fdatasync,
-+      [ __NR_flock ] (syscall_handler_t *) sys_flock,
-+      [ __NR_msync ] (syscall_handler_t *) sys_msync,
-+      [ __NR_readv ] (syscall_handler_t *) sys_readv,
-+      [ __NR_writev ] (syscall_handler_t *) sys_writev,
-+      [ __NR_getsid ] (syscall_handler_t *) sys_getsid,
-+      [ __NR_fdatasync ] (syscall_handler_t *) sys_fdatasync,
-       [ __NR__sysctl ] = (syscall_handler_t *) sys_sysctl,
--      [ __NR_mlock ] = sys_mlock,
--      [ __NR_munlock ] = sys_munlock,
--      [ __NR_mlockall ] = sys_mlockall,
--      [ __NR_munlockall ] = sys_munlockall,
--      [ __NR_sched_setparam ] = sys_sched_setparam,
--      [ __NR_sched_getparam ] = sys_sched_getparam,
--      [ __NR_sched_setscheduler ] = sys_sched_setscheduler,
--      [ __NR_sched_getscheduler ] = sys_sched_getscheduler,
-+      [ __NR_mlock ] (syscall_handler_t *) sys_mlock,
-+      [ __NR_munlock ] (syscall_handler_t *) sys_munlock,
-+      [ __NR_mlockall ] (syscall_handler_t *) sys_mlockall,
-+      [ __NR_munlockall ] (syscall_handler_t *) sys_munlockall,
-+      [ __NR_sched_setparam ] (syscall_handler_t *) sys_sched_setparam,
-+      [ __NR_sched_getparam ] (syscall_handler_t *) sys_sched_getparam,
-+      [ __NR_sched_setscheduler ] (syscall_handler_t *) sys_sched_setscheduler,
-+      [ __NR_sched_getscheduler ] (syscall_handler_t *) sys_sched_getscheduler,
-       [ __NR_sched_yield ] = (syscall_handler_t *) yield,
--      [ __NR_sched_get_priority_max ] = sys_sched_get_priority_max,
--      [ __NR_sched_get_priority_min ] = sys_sched_get_priority_min,
--      [ __NR_sched_rr_get_interval ] = sys_sched_rr_get_interval,
--      [ __NR_nanosleep ] = sys_nanosleep,
--      [ __NR_mremap ] = sys_mremap,
--      [ __NR_setresuid ] = sys_setresuid16,
--      [ __NR_getresuid ] = sys_getresuid16,
--      [ __NR_vm86 ] = sys_ni_syscall,
--      [ __NR_query_module ] = sys_ni_syscall,
--      [ __NR_poll ] = sys_poll,
--      [ __NR_nfsservctl ] = NFSSERVCTL,
--      [ __NR_setresgid ] = sys_setresgid16,
--      [ __NR_getresgid ] = sys_getresgid16,
--      [ __NR_prctl ] = sys_prctl,
--      [ __NR_rt_sigreturn ] = sys_rt_sigreturn,
--      [ __NR_rt_sigaction ] = sys_rt_sigaction,
--      [ __NR_rt_sigprocmask ] = sys_rt_sigprocmask,
--      [ __NR_rt_sigpending ] = sys_rt_sigpending,
--      [ __NR_rt_sigtimedwait ] = sys_rt_sigtimedwait,
--      [ __NR_rt_sigqueueinfo ] = sys_rt_sigqueueinfo,
--      [ __NR_rt_sigsuspend ] = sys_rt_sigsuspend,
--      [ __NR_pread64 ] = sys_pread64,
--      [ __NR_pwrite64 ] = sys_pwrite64,
--      [ __NR_chown ] = sys_chown16,
--      [ __NR_getcwd ] = sys_getcwd,
--      [ __NR_capget ] = sys_capget,
--      [ __NR_capset ] = sys_capset,
--      [ __NR_sigaltstack ] = sys_sigaltstack,
--      [ __NR_sendfile ] = sys_sendfile,
--      [ __NR_getpmsg ] = sys_ni_syscall,
--      [ __NR_putpmsg ] = sys_ni_syscall,
--      [ __NR_vfork ] = sys_vfork,
--      [ __NR_ugetrlimit ] = sys_getrlimit,
--      [ __NR_mmap2 ] = sys_mmap2,
--      [ __NR_truncate64 ] = sys_truncate64,
--      [ __NR_ftruncate64 ] = sys_ftruncate64,
--      [ __NR_stat64 ] = sys_stat64,
--      [ __NR_lstat64 ] = sys_lstat64,
--      [ __NR_fstat64 ] = sys_fstat64,
--      [ __NR_fcntl64 ] = sys_fcntl64,
--      [ __NR_getdents64 ] = sys_getdents64,
--      [ __NR_gettid ] = sys_gettid,
--      [ __NR_readahead ] = sys_readahead,
--      [ __NR_setxattr ] = sys_ni_syscall,
--      [ __NR_lsetxattr ] = sys_ni_syscall,
--      [ __NR_fsetxattr ] = sys_ni_syscall,
--      [ __NR_getxattr ] = sys_ni_syscall,
--      [ __NR_lgetxattr ] = sys_ni_syscall,
--      [ __NR_fgetxattr ] = sys_ni_syscall,
--      [ __NR_listxattr ] = sys_ni_syscall,
--      [ __NR_llistxattr ] = sys_ni_syscall,
--      [ __NR_flistxattr ] = sys_ni_syscall,
--      [ __NR_removexattr ] = sys_ni_syscall,
--      [ __NR_lremovexattr ] = sys_ni_syscall,
--      [ __NR_fremovexattr ] = sys_ni_syscall,
--      [ __NR_tkill ] = sys_tkill,
--      [ __NR_sendfile64 ] = sys_sendfile64,
--      [ __NR_futex ] = sys_futex,
--      [ __NR_sched_setaffinity ] = sys_sched_setaffinity,
--      [ __NR_sched_getaffinity ] = sys_sched_getaffinity,
--      [ __NR_io_setup ] = sys_io_setup,
--      [ __NR_io_destroy ] = sys_io_destroy,
--      [ __NR_io_getevents ] = sys_io_getevents,
--      [ __NR_io_submit ] = sys_io_submit,
--      [ __NR_io_cancel ] = sys_io_cancel,
--      [ __NR_exit_group ] = sys_exit_group,
--      [ __NR_lookup_dcookie ] = sys_lookup_dcookie,
--      [ __NR_epoll_create ] = sys_epoll_create,
--      [ __NR_epoll_ctl ] = sys_epoll_ctl,
--      [ __NR_epoll_wait ] = sys_epoll_wait,
--        [ __NR_remap_file_pages ] = sys_remap_file_pages,
--        [ __NR_set_tid_address ] = sys_set_tid_address,
-+      [ __NR_sched_get_priority_max ] (syscall_handler_t *) sys_sched_get_priority_max,
-+      [ __NR_sched_get_priority_min ] (syscall_handler_t *) sys_sched_get_priority_min,
-+      [ __NR_sched_rr_get_interval ] (syscall_handler_t *) sys_sched_rr_get_interval,
-+      [ __NR_nanosleep ] (syscall_handler_t *) sys_nanosleep,
-+      [ __NR_mremap ] (syscall_handler_t *) sys_mremap,
-+      [ __NR_setresuid ] (syscall_handler_t *) sys_setresuid16,
-+      [ __NR_getresuid ] (syscall_handler_t *) sys_getresuid16,
-+      [ __NR_vm86 ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_query_module ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_poll ] (syscall_handler_t *) sys_poll,
-+      [ __NR_nfsservctl ] = (syscall_handler_t *) NFSSERVCTL,
-+      [ __NR_setresgid ] (syscall_handler_t *) sys_setresgid16,
-+      [ __NR_getresgid ] (syscall_handler_t *) sys_getresgid16,
-+      [ __NR_prctl ] (syscall_handler_t *) sys_prctl,
-+      [ __NR_rt_sigreturn ] (syscall_handler_t *) sys_rt_sigreturn,
-+      [ __NR_rt_sigaction ] (syscall_handler_t *) sys_rt_sigaction,
-+      [ __NR_rt_sigprocmask ] (syscall_handler_t *) sys_rt_sigprocmask,
-+      [ __NR_rt_sigpending ] (syscall_handler_t *) sys_rt_sigpending,
-+      [ __NR_rt_sigtimedwait ] (syscall_handler_t *) sys_rt_sigtimedwait,
-+      [ __NR_rt_sigqueueinfo ] (syscall_handler_t *) sys_rt_sigqueueinfo,
-+      [ __NR_rt_sigsuspend ] (syscall_handler_t *) sys_rt_sigsuspend,
-+      [ __NR_pread64 ] (syscall_handler_t *) sys_pread64,
-+      [ __NR_pwrite64 ] (syscall_handler_t *) sys_pwrite64,
-+      [ __NR_chown ] (syscall_handler_t *) sys_chown16,
-+      [ __NR_getcwd ] (syscall_handler_t *) sys_getcwd,
-+      [ __NR_capget ] (syscall_handler_t *) sys_capget,
-+      [ __NR_capset ] (syscall_handler_t *) sys_capset,
-+      [ __NR_sigaltstack ] (syscall_handler_t *) sys_sigaltstack,
-+      [ __NR_sendfile ] (syscall_handler_t *) sys_sendfile,
-+      [ __NR_getpmsg ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_putpmsg ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_vfork ] (syscall_handler_t *) sys_vfork,
-+      [ __NR_ugetrlimit ] (syscall_handler_t *) sys_getrlimit,
-+      [ __NR_mmap2 ] (syscall_handler_t *) sys_mmap2,
-+      [ __NR_truncate64 ] (syscall_handler_t *) sys_truncate64,
-+      [ __NR_ftruncate64 ] (syscall_handler_t *) sys_ftruncate64,
-+      [ __NR_stat64 ] (syscall_handler_t *) sys_stat64,
-+      [ __NR_lstat64 ] (syscall_handler_t *) sys_lstat64,
-+      [ __NR_fstat64 ] (syscall_handler_t *) sys_fstat64,
-+      [ __NR_getdents64 ] (syscall_handler_t *) sys_getdents64,
-+      [ __NR_fcntl64 ] (syscall_handler_t *) sys_fcntl64,
-+      [ 223 ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_gettid ] (syscall_handler_t *) sys_gettid,
-+      [ __NR_readahead ] (syscall_handler_t *) sys_readahead,
-+      [ __NR_setxattr ] (syscall_handler_t *) sys_setxattr,
-+      [ __NR_lsetxattr ] (syscall_handler_t *) sys_lsetxattr,
-+      [ __NR_fsetxattr ] (syscall_handler_t *) sys_fsetxattr,
-+      [ __NR_getxattr ] (syscall_handler_t *) sys_getxattr,
-+      [ __NR_lgetxattr ] (syscall_handler_t *) sys_lgetxattr,
-+      [ __NR_fgetxattr ] (syscall_handler_t *) sys_fgetxattr,
-+      [ __NR_listxattr ] (syscall_handler_t *) sys_listxattr,
-+      [ __NR_llistxattr ] (syscall_handler_t *) sys_llistxattr,
-+      [ __NR_flistxattr ] (syscall_handler_t *) sys_flistxattr,
-+      [ __NR_removexattr ] (syscall_handler_t *) sys_removexattr,
-+      [ __NR_lremovexattr ] (syscall_handler_t *) sys_lremovexattr,
-+      [ __NR_fremovexattr ] (syscall_handler_t *) sys_fremovexattr,
-+      [ __NR_tkill ] (syscall_handler_t *) sys_tkill,
-+      [ __NR_sendfile64 ] (syscall_handler_t *) sys_sendfile64,
-+      [ __NR_futex ] (syscall_handler_t *) sys_futex,
-+      [ __NR_sched_setaffinity ] (syscall_handler_t *) sys_sched_setaffinity,
-+      [ __NR_sched_getaffinity ] (syscall_handler_t *) sys_sched_getaffinity,
-+      [ __NR_set_thread_area ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_get_thread_area ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_io_setup ] (syscall_handler_t *) sys_io_setup,
-+      [ __NR_io_destroy ] (syscall_handler_t *) sys_io_destroy,
-+      [ __NR_io_getevents ] (syscall_handler_t *) sys_io_getevents,
-+      [ __NR_io_submit ] (syscall_handler_t *) sys_io_submit,
-+      [ __NR_io_cancel ] (syscall_handler_t *) sys_io_cancel,
-+      [ __NR_fadvise64 ] (syscall_handler_t *) sys_fadvise64,
-+      [ 251 ] (syscall_handler_t *) sys_ni_syscall,
-+      [ __NR_exit_group ] (syscall_handler_t *) sys_exit_group,
-+      [ __NR_lookup_dcookie ] (syscall_handler_t *) sys_lookup_dcookie,
-+      [ __NR_epoll_create ] (syscall_handler_t *) sys_epoll_create,
-+      [ __NR_epoll_ctl ] (syscall_handler_t *) sys_epoll_ctl,
-+      [ __NR_epoll_wait ] (syscall_handler_t *) sys_epoll_wait,
-+        [ __NR_remap_file_pages ] (syscall_handler_t *) sys_remap_file_pages,
-+        [ __NR_set_tid_address ] (syscall_handler_t *) sys_set_tid_address,
-+      [ __NR_timer_create ] (syscall_handler_t *) sys_timer_create,
-+      [ __NR_timer_settime ] (syscall_handler_t *) sys_timer_settime,
-+      [ __NR_timer_gettime ] (syscall_handler_t *) sys_timer_gettime,
-+      [ __NR_timer_getoverrun ] (syscall_handler_t *) sys_timer_getoverrun,
-+      [ __NR_timer_delete ] (syscall_handler_t *) sys_timer_delete,
-+      [ __NR_clock_settime ] (syscall_handler_t *) sys_clock_settime,
-+      [ __NR_clock_gettime ] (syscall_handler_t *) sys_clock_gettime,
-+      [ __NR_clock_getres ] (syscall_handler_t *) sys_clock_getres,
-+      [ __NR_clock_nanosleep ] (syscall_handler_t *) sys_clock_nanosleep,
-+      [ __NR_statfs64 ] (syscall_handler_t *) sys_statfs64,
-+      [ __NR_fstatfs64 ] (syscall_handler_t *) sys_fstatfs64,
-+      [ __NR_tgkill ] (syscall_handler_t *) sys_tgkill,
-+      [ __NR_utimes ] (syscall_handler_t *) sys_utimes,
-+      [ __NR_fadvise64_64 ] (syscall_handler_t *) sys_fadvise64_64,
-+      [ __NR_vserver ] (syscall_handler_t *) sys_ni_syscall,
++int hostfs_d_delete(struct dentry *dentry)
++{
++      return(1);
++}
++
++struct dentry_operations hostfs_dentry_ops = {
++      .d_delete               = hostfs_d_delete,
++};
++
++/* Changed in hostfs_args before the kernel starts running */
++static char *root_ino = "/";
++static int append = 0;
++
++#define HOSTFS_SUPER_MAGIC 0x00c0ffee
++
++static struct inode_operations hostfs_iops;
++static struct inode_operations hostfs_dir_iops;
++static struct address_space_operations hostfs_link_aops;
++
++#ifndef MODULE
++static int __init hostfs_args(char *options, int *add)
++{
++      char *ptr;
++
++      ptr = strchr(options, ',');
++      if(ptr != NULL)
++              *ptr++ = '\0';
++      if(*options != '\0')
++              root_ino = options;
++
++      options = ptr;
++      while(options){
++              ptr = strchr(options, ',');
++              if(ptr != NULL)
++                      *ptr++ = '\0';
++              if(*options != '\0'){
++                      if(!strcmp(options, "append"))
++                              append = 1;
++                      else printf("hostfs_args - unsupported option - %s\n",
++                                  options);
++              }
++              options = ptr;
++      }
++      return(0);
++}
++
++__uml_setup("hostfs=", hostfs_args,
++"hostfs=<root dir>,<flags>,...\n"
++"    This is used to set hostfs parameters.  The root directory argument\n"
++"    is used to confine all hostfs mounts to within the specified directory\n"
++"    tree on the host.  If this isn't specified, then a user inside UML can\n"
++"    mount anything on the host that's accessible to the user that's running\n"
++"    it.\n"
++"    The only flag currently supported is 'append', which specifies that all\n"
++"    files opened by hostfs will be opened in append mode.\n\n"
++);
++#endif
++
++static char *dentry_name(struct dentry *dentry, int extra)
++{
++      struct dentry *parent;
++      char *root, *name;
++      int len;
++
++      len = 0;
++      parent = dentry;
++      while(parent->d_parent != parent){
++              len += parent->d_name.len + 1;
++              parent = parent->d_parent;
++      }
++      
++      root = HOSTFS_I(parent->d_inode)->host_filename;
++      len += strlen(root);
++      name = kmalloc(len + extra + 1, GFP_KERNEL);
++      if(name == NULL) return(NULL);
++
++      name[len] = '\0';
++      parent = dentry;
++      while(parent->d_parent != parent){
++              len -= parent->d_name.len + 1;
++              name[len] = '/';
++              strncpy(&name[len + 1], parent->d_name.name, 
++                      parent->d_name.len);
++              parent = parent->d_parent;
++      }
++      strncpy(name, root, strlen(root));
++      return(name);
++}
++
++static char *inode_name(struct inode *ino, int extra)
++{
++      struct dentry *dentry;
++
++      dentry = list_entry(ino->i_dentry.next, struct dentry, d_alias);
++      return(dentry_name(dentry, extra));
++}
++
++static int read_name(struct inode *ino, char *name)
++{
++      /* The non-int inode fields are copied into ints by stat_file and
++       * then copied into the inode because passing the actual pointers
++       * in and having them treated as int * breaks on big-endian machines
++       */
++      int err;
++      int i_mode, i_nlink, i_blksize;
++      unsigned long long i_size;
++      unsigned long long i_ino;
++      unsigned long long i_blocks;
++
++      err = stat_file(name, &i_ino, &i_mode, &i_nlink, &ino->i_uid, 
++                      &ino->i_gid, &i_size, &ino->i_atime, &ino->i_mtime, 
++                      &ino->i_ctime, &i_blksize, &i_blocks);
++      if(err) 
++              return(err);
++
++      ino->i_ino = i_ino;
++      ino->i_mode = i_mode;
++      ino->i_nlink = i_nlink;
++      ino->i_size = i_size;
++      ino->i_blksize = i_blksize;
++      ino->i_blocks = i_blocks;
++      if((ino->i_sb->s_dev == ROOT_DEV) && (ino->i_uid == getuid()))
++              ino->i_uid = 0;
++      return(0);
++}
++
++static char *follow_link(char *link)
++{
++      int len, n;
++      char *name, *resolved, *end;
++
++      len = 64;
++      while(1){
++              n = -ENOMEM;
++              name = kmalloc(len, GFP_KERNEL);
++              if(name == NULL)
++                      goto out;
++
++              n = do_readlink(link, name, len);
++              if(n < len)
++                      break;
++              len *= 2;
++              kfree(name);
++      }
++      if(n < 0)
++              goto out_free;
++
++      if(*name == '/')
++              return(name);
++
++      end = strrchr(link, '/');
++      if(end == NULL)
++              return(name);
++
++      *(end + 1) = '\0';
++      len = strlen(link) + strlen(name) + 1;
++
++      resolved = kmalloc(len, GFP_KERNEL);
++      if(resolved == NULL){
++              n = -ENOMEM;
++              goto out_free;
++      }
++
++      sprintf(resolved, "%s%s", link, name);
++      kfree(name);
++      kfree(link);
++      return(resolved);
++
++ out_free:
++      kfree(name);
++ out:
++      return(ERR_PTR(n));
++}
++
++static int read_inode(struct inode *ino)
++{
++      char *name;
++      int err = 0;
++
++      /* Unfortunately, we are called from iget() when we don't have a dentry
++       * allocated yet.
++       */
++      if(list_empty(&ino->i_dentry))
++              goto out;
++ 
++      err = -ENOMEM;
++      name = inode_name(ino, 0);
++      if(name == NULL) 
++              goto out;
++
++      if(file_type(name, NULL) == OS_TYPE_SYMLINK){
++              name = follow_link(name);
++              if(IS_ERR(name)){
++                      err = PTR_ERR(name);
++                      goto out;
++              }
++      }
++      
++      err = read_name(ino, name);
++      kfree(name);
++ out:
++      return(err);
++}
++
++int hostfs_statfs(struct super_block *sb, struct kstatfs *sf)
++{
++      /* do_statfs uses struct statfs64 internally, but the linux kernel
++       * struct statfs still has 32-bit versions for most of these fields,
++       * so we convert them here
++       */
++      int err;
++      long long f_blocks;
++      long long f_bfree;
++      long long f_bavail;
++      long long f_files;
++      long long f_ffree;
++
++      err = do_statfs(HOSTFS_I(sb->s_root->d_inode)->host_filename,
++                      &sf->f_bsize, &f_blocks, &f_bfree, &f_bavail, &f_files,
++                      &f_ffree, &sf->f_fsid, sizeof(sf->f_fsid), 
++                      &sf->f_namelen, sf->f_spare);
++      if(err) return(err);
++      sf->f_blocks = f_blocks;
++      sf->f_bfree = f_bfree;
++      sf->f_bavail = f_bavail;
++      sf->f_files = f_files;
++      sf->f_ffree = f_ffree;
++      sf->f_type = HOSTFS_SUPER_MAGIC;
++      return(0);
++}
++
++static struct inode *hostfs_alloc_inode(struct super_block *sb)
++{
++      struct hostfs_inode_info *hi;
++
++      hi = kmalloc(sizeof(*hi), GFP_KERNEL);
++      if(hi == NULL) 
++              return(NULL);
++
++      *hi = ((struct hostfs_inode_info) { .host_filename      = NULL,
++                                          .fd                 = -1,
++                                          .mode               = 0 });
++      inode_init_once(&hi->vfs_inode);
++      return(&hi->vfs_inode);
++}
++
++static void hostfs_delete_inode(struct inode *inode)
++{
++      if(HOSTFS_I(inode)->fd != -1) {
++              close_file(&HOSTFS_I(inode)->fd);
++              printk("Closing host fd in .delete_inode\n");
++              HOSTFS_I(inode)->fd = -1;
++      }
++      clear_inode(inode);
++}
++
++static void hostfs_destroy_inode(struct inode *inode)
++{
++      if(HOSTFS_I(inode)->host_filename) 
++              kfree(HOSTFS_I(inode)->host_filename);
++
++      if(HOSTFS_I(inode)->fd != -1) {
++              close_file(&HOSTFS_I(inode)->fd);
++              printk("Closing host fd in .destroy_inode\n");
++      }
++
++      kfree(HOSTFS_I(inode));
++}
++
++static void hostfs_read_inode(struct inode *inode)
++{
++      read_inode(inode);
++}
++
++static struct super_operations hostfs_sbops = { 
++      .alloc_inode    = hostfs_alloc_inode,
++      .drop_inode     = generic_delete_inode,
++      .delete_inode   = hostfs_delete_inode,
++      .destroy_inode  = hostfs_destroy_inode,
++      .read_inode     = hostfs_read_inode,
++      .statfs         = hostfs_statfs,
++};
++
++int hostfs_readdir(struct file *file, void *ent, filldir_t filldir)
++{
++      void *dir;
++      char *name;
++      unsigned long long next, ino;
++      int error, len;
++
++      name = dentry_name(file->f_dentry, 0);
++      if(name == NULL) return(-ENOMEM);
++      dir = open_dir(name, &error);
++      kfree(name);
++      if(dir == NULL) return(-error);
++      next = file->f_pos;
++      while((name = read_dir(dir, &next, &ino, &len)) != NULL){
++              error = (*filldir)(ent, name, len, file->f_pos, 
++                                 ino, DT_UNKNOWN);
++              if(error) break;
++              file->f_pos = next;
++      }
++      close_dir(dir);
++      return(0);
++}
++
++int hostfs_file_open(struct inode *ino, struct file *file)
++{
++      char *name;
++      int mode = 0, r = 0, w = 0, fd;
++
++      mode = file->f_mode & (FMODE_READ | FMODE_WRITE);
++      if((mode & HOSTFS_I(ino)->mode) == mode)
++              return(0);
++
++      /* The file may already have been opened, but with the wrong access,
++       * so this resets things and reopens the file with the new access.
++       */
++      if(HOSTFS_I(ino)->fd != -1){
++              close_file(&HOSTFS_I(ino)->fd);
++              HOSTFS_I(ino)->fd = -1;
++      }
++
++      HOSTFS_I(ino)->mode |= mode;
++      if(HOSTFS_I(ino)->mode & FMODE_READ) 
++              r = 1;
++      if(HOSTFS_I(ino)->mode & FMODE_WRITE) 
++              w = 1;
++      if(w) 
++              r = 1;
++
++      name = dentry_name(file->f_dentry, 0);
++      if(name == NULL) 
++              return(-ENOMEM);
++
++      fd = open_file(name, r, w, append);
++      kfree(name);
++      if(fd < 0) return(fd);
++      FILE_HOSTFS_I(file)->fd = fd;
++
++      return(0);
++}
++
++int hostfs_fsync(struct file *file, struct dentry *dentry, int datasync)
++{
++      return(0);
++}
++
++static struct file_operations hostfs_file_fops = {
++      .llseek         = generic_file_llseek,
++      .read           = generic_file_read,
++      .write          = generic_file_write,
++      .mmap           = generic_file_mmap,
++      .open           = hostfs_file_open,
++      .release        = NULL,
++      .fsync          = hostfs_fsync,
++};
++
++static struct file_operations hostfs_dir_fops = {
++      .readdir        = hostfs_readdir,
++      .read           = generic_read_dir,
++};
++
++int hostfs_writepage(struct page *page, struct writeback_control *wbc)
++{
++      struct address_space *mapping = page->mapping;
++      struct inode *inode = mapping->host;
++      char *buffer;
++      unsigned long long base;
++      int count = PAGE_CACHE_SIZE;
++      int end_index = inode->i_size >> PAGE_CACHE_SHIFT;
++      int err;
++
++      if (page->index >= end_index)
++              count = inode->i_size & (PAGE_CACHE_SIZE-1);
++
++      buffer = kmap(page);
++      base = ((unsigned long long) page->index) << PAGE_CACHE_SHIFT;
++
++      err = write_file(HOSTFS_I(inode)->fd, &base, buffer, count);
++      if(err != count){
++              ClearPageUptodate(page);
++              goto out;
++      }
++
++      if (base > inode->i_size)
++              inode->i_size = base;
++
++      if (PageError(page))
++              ClearPageError(page);   
++      err = 0;
++
++ out: 
++      kunmap(page);
++
++      unlock_page(page);
++      return err; 
++}
++
++int hostfs_readpage(struct file *file, struct page *page)
++{
++      char *buffer;
++      long long start;
++      int err = 0;
++
++      start = (long long) page->index << PAGE_CACHE_SHIFT;
++      buffer = kmap(page);
++      err = read_file(FILE_HOSTFS_I(file)->fd, &start, buffer,
++                      PAGE_CACHE_SIZE);
++      if(err < 0) goto out;
++
++      memset(&buffer[err], 0, PAGE_CACHE_SIZE - err);
++
++      flush_dcache_page(page);
++      SetPageUptodate(page);
++      if (PageError(page)) ClearPageError(page);
++      err = 0;
++ out:
++      kunmap(page);
++      unlock_page(page);
++      return(err);
++}
++
++int hostfs_prepare_write(struct file *file, struct page *page, 
++                       unsigned int from, unsigned int to)
++{
++      char *buffer;
++      long long start, tmp;
++      int err;
++
++      start = (long long) page->index << PAGE_CACHE_SHIFT;
++      buffer = kmap(page);
++      if(from != 0){
++              tmp = start;
++              err = read_file(FILE_HOSTFS_I(file)->fd, &tmp, buffer,
++                              from);
++              if(err < 0) goto out;
++      }
++      if(to != PAGE_CACHE_SIZE){
++              start += to;
++              err = read_file(FILE_HOSTFS_I(file)->fd, &start, buffer + to,
++                              PAGE_CACHE_SIZE - to);
++              if(err < 0) goto out;           
++      }
++      err = 0;
++ out:
++      kunmap(page);
++      return(err);
++}
++
++int hostfs_commit_write(struct file *file, struct page *page, unsigned from,
++               unsigned to)
++{
++      struct address_space *mapping = page->mapping;
++      struct inode *inode = mapping->host;
++      char *buffer;
++      long long start;
++      int err = 0;
++
++      start = (long long) (page->index << PAGE_CACHE_SHIFT) + from;
++      buffer = kmap(page);
++      err = write_file(FILE_HOSTFS_I(file)->fd, &start, buffer + from, 
++                       to - from);
++      if(err > 0) err = 0;
++      if(!err && (start > inode->i_size))
++              inode->i_size = start;
++
++      kunmap(page);
++      return(err);
++}
++
++static struct address_space_operations hostfs_aops = {
++      .writepage      = hostfs_writepage,
++      .readpage       = hostfs_readpage,
++/*    .set_page_dirty = __set_page_dirty_nobuffers, */
++      .prepare_write  = hostfs_prepare_write,
++      .commit_write   = hostfs_commit_write
++};
++
++static int init_inode(struct inode *inode, struct dentry *dentry)
++{
++      char *name;
++      int type, err = -ENOMEM, rdev;
++
++      if(dentry){
++              name = dentry_name(dentry, 0);
++              if(name == NULL)
++                      goto out;
++              type = file_type(name, &rdev);
++              kfree(name);
++      }
++      else type = OS_TYPE_DIR;
++
++      err = 0;
++      if(type == OS_TYPE_SYMLINK)
++              inode->i_op = &page_symlink_inode_operations;
++      else if(type == OS_TYPE_DIR)
++              inode->i_op = &hostfs_dir_iops;
++      else inode->i_op = &hostfs_iops;
++
++      if(type == OS_TYPE_DIR) inode->i_fop = &hostfs_dir_fops;
++      else inode->i_fop = &hostfs_file_fops;
++
++      if(type == OS_TYPE_SYMLINK) 
++              inode->i_mapping->a_ops = &hostfs_link_aops;
++      else inode->i_mapping->a_ops = &hostfs_aops;
++
++      switch (type) {
++      case OS_TYPE_CHARDEV:
++              init_special_inode(inode, S_IFCHR, rdev);
++              break;
++      case OS_TYPE_BLOCKDEV:
++              init_special_inode(inode, S_IFBLK, rdev);
++              break;
++      case OS_TYPE_FIFO:
++              init_special_inode(inode, S_IFIFO, 0);
++              break;
++      case OS_TYPE_SOCK:
++              init_special_inode(inode, S_IFSOCK, 0);
++              break;
++      }
++ out:
++      return(err);
++}
++
++int hostfs_create(struct inode *dir, struct dentry *dentry, int mode, 
++                 struct nameidata *nd)
++{
++      struct inode *inode;
++      char *name;
++      int error, fd;
++
++      error = -ENOMEM;
++      inode = iget(dir->i_sb, 0);
++      if(inode == NULL) goto out;
++
++      error = init_inode(inode, dentry);
++      if(error) 
++              goto out_put;
++      
++      error = -ENOMEM;
++      name = dentry_name(dentry, 0);
++      if(name == NULL)
++              goto out_put;
++
++      fd = file_create(name, 
++                       mode & S_IRUSR, mode & S_IWUSR, mode & S_IXUSR, 
++                       mode & S_IRGRP, mode & S_IWGRP, mode & S_IXGRP, 
++                       mode & S_IROTH, mode & S_IWOTH, mode & S_IXOTH);
++      if(fd < 0) 
++              error = fd;
++      else error = read_name(inode, name);
++
++      kfree(name);
++      if(error)
++              goto out_put;
++
++      HOSTFS_I(inode)->fd = fd;
++      HOSTFS_I(inode)->mode = FMODE_READ | FMODE_WRITE;
++      d_instantiate(dentry, inode);
++      return(0);
++
++ out_put:
++      iput(inode);
++ out:
++      return(error);
++}
++
++struct dentry *hostfs_lookup(struct inode *ino, struct dentry *dentry, 
++                            struct nameidata *nd)
++{
++      struct inode *inode;
++      char *name;
++      int err;
++
++      err = -ENOMEM;
++      inode = iget(ino->i_sb, 0);
++      if(inode == NULL) 
++              goto out;
++ 
++      err = init_inode(inode, dentry);
++      if(err) 
++              goto out_put;
++
++      err = -ENOMEM;
++      name = dentry_name(dentry, 0);
++      if(name == NULL)
++              goto out_put;
++
++      err = read_name(inode, name);
++      kfree(name);
++      if(err == -ENOENT){
++              iput(inode);
++              inode = NULL;
++      }
++      else if(err)
++              goto out_put;
++
++      d_add(dentry, inode);
++      dentry->d_op = &hostfs_dentry_ops;
++      return(NULL);
++
++ out_put:
++      iput(inode);
++ out:
++      return(ERR_PTR(err));
++}
++
++static char *inode_dentry_name(struct inode *ino, struct dentry *dentry)
++{
++        char *file;
++      int len;
++
++      file = inode_name(ino, dentry->d_name.len + 1);
++      if(file == NULL) return(NULL);
++        strcat(file, "/");
++      len = strlen(file);
++        strncat(file, dentry->d_name.name, dentry->d_name.len);
++      file[len + dentry->d_name.len] = '\0';
++        return(file);
++}
++
++int hostfs_link(struct dentry *to, struct inode *ino, struct dentry *from)
++{
++        char *from_name, *to_name;
++        int err;
++
++        if((from_name = inode_dentry_name(ino, from)) == NULL) 
++                return(-ENOMEM);
++        to_name = dentry_name(to, 0);
++      if(to_name == NULL){
++              kfree(from_name);
++              return(-ENOMEM);
++      }
++        err = link_file(to_name, from_name);
++        kfree(from_name);
++        kfree(to_name);
++        return(err);
++}
++
++int hostfs_unlink(struct inode *ino, struct dentry *dentry)
++{
++      char *file;
++      int err;
++
++      if((file = inode_dentry_name(ino, dentry)) == NULL) return(-ENOMEM);
++      if(append)
++              return(-EPERM);
++
++      err = unlink_file(file);
++      kfree(file);
++      return(err);
++}
++
++int hostfs_symlink(struct inode *ino, struct dentry *dentry, const char *to)
++{
++      char *file;
++      int err;
++
++      if((file = inode_dentry_name(ino, dentry)) == NULL) return(-ENOMEM);
++      err = make_symlink(file, to);
++      kfree(file);
++      return(err);
++}
++
++int hostfs_mkdir(struct inode *ino, struct dentry *dentry, int mode)
++{
++      char *file;
++      int err;
++
++      if((file = inode_dentry_name(ino, dentry)) == NULL) return(-ENOMEM);
++      err = do_mkdir(file, mode);
++      kfree(file);
++      return(err);
++}
++
++int hostfs_rmdir(struct inode *ino, struct dentry *dentry)
++{
++      char *file;
++      int err;
++
++      if((file = inode_dentry_name(ino, dentry)) == NULL) return(-ENOMEM);
++      err = do_rmdir(file);
++      kfree(file);
++      return(err);
++}
++
++int hostfs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev)
++{
++      struct inode *inode;
++      char *name;
++      int err = -ENOMEM;
++ 
++      inode = iget(dir->i_sb, 0);
++      if(inode == NULL) 
++              goto out;
++
++      err = init_inode(inode, dentry);
++      if(err) 
++              goto out_put;
++
++      err = -ENOMEM;
++      name = dentry_name(dentry, 0);
++      if(name == NULL)
++              goto out_put;
++
++      init_special_inode(inode, mode, dev);
++      err = do_mknod(name, mode, dev);
++      if(err)
++              goto out_free;
++
++      err = read_name(inode, name);
++      kfree(name);
++      if(err)
++              goto out_put;
++
++      d_instantiate(dentry, inode);
++      return(0);
++
++ out_free:
++      kfree(name);
++ out_put:
++      iput(inode);
++ out:
++      return(err);
++}
++
++int hostfs_rename(struct inode *from_ino, struct dentry *from,
++                struct inode *to_ino, struct dentry *to)
++{
++      char *from_name, *to_name;
++      int err;
++
++      if((from_name = inode_dentry_name(from_ino, from)) == NULL)
++              return(-ENOMEM);
++      if((to_name = inode_dentry_name(to_ino, to)) == NULL){
++              kfree(from_name);
++              return(-ENOMEM);
++      }
++      err = rename_file(from_name, to_name);
++      kfree(from_name);
++      kfree(to_name);
++      return(err);
++}
++
++void hostfs_truncate(struct inode *ino)
++{
++      not_implemented();
++}
++
++int hostfs_permission(struct inode *ino, int desired, struct nameidata *nd)
++{
++      char *name;
++      int r = 0, w = 0, x = 0, err;
++
++      if(desired & MAY_READ) r = 1;
++      if(desired & MAY_WRITE) w = 1;
++      if(desired & MAY_EXEC) x = 1;
++      name = inode_name(ino, 0);
++      if(name == NULL) return(-ENOMEM);
++      err = access_file(name, r, w, x);
++      kfree(name);
++      if(!err) err = vfs_permission(ino, desired);
++      return(err);
++}
++
++int hostfs_setattr(struct dentry *dentry, struct iattr *attr)
++{
++      struct hostfs_iattr attrs;
++      char *name;
++      int err;
++      
++      if(append) 
++              attr->ia_valid &= ~ATTR_SIZE;
++
++      attrs.ia_valid = 0;
++      if(attr->ia_valid & ATTR_MODE){
++              attrs.ia_valid |= HOSTFS_ATTR_MODE;
++              attrs.ia_mode = attr->ia_mode;
++      }
++      if(attr->ia_valid & ATTR_UID){
++              if((dentry->d_inode->i_sb->s_dev == ROOT_DEV) && 
++                 (attr->ia_uid == 0))
++                      attr->ia_uid = getuid();
++              attrs.ia_valid |= HOSTFS_ATTR_UID;
++              attrs.ia_uid = attr->ia_uid;
++      }
++      if(attr->ia_valid & ATTR_GID){
++              if((dentry->d_inode->i_sb->s_dev == ROOT_DEV) && 
++                 (attr->ia_gid == 0))
++                      attr->ia_gid = getuid();
++              attrs.ia_valid |= HOSTFS_ATTR_GID;
++              attrs.ia_gid = attr->ia_gid;
++      }
++      if(attr->ia_valid & ATTR_SIZE){
++              attrs.ia_valid |= HOSTFS_ATTR_SIZE;
++              attrs.ia_size = attr->ia_size;
++      }
++      if(attr->ia_valid & ATTR_ATIME){
++              attrs.ia_valid |= HOSTFS_ATTR_ATIME;
++              attrs.ia_atime = attr->ia_atime;
++      }
++      if(attr->ia_valid & ATTR_MTIME){
++              attrs.ia_valid |= HOSTFS_ATTR_MTIME;
++              attrs.ia_mtime = attr->ia_mtime;
++      }
++      if(attr->ia_valid & ATTR_CTIME){
++              attrs.ia_valid |= HOSTFS_ATTR_CTIME;
++              attrs.ia_ctime = attr->ia_ctime;
++      }
++      if(attr->ia_valid & ATTR_ATIME_SET){
++              attrs.ia_valid |= HOSTFS_ATTR_ATIME_SET;
++      }
++      if(attr->ia_valid & ATTR_MTIME_SET){
++              attrs.ia_valid |= HOSTFS_ATTR_MTIME_SET;
++      }
++      name = dentry_name(dentry, 0);
++      if(name == NULL) return(-ENOMEM);
++      err = set_attr(name, &attrs);
++      kfree(name);
++      if(err)
++              return(err);
++
++      return(inode_setattr(dentry->d_inode, attr));
++}
++
++int hostfs_getattr(struct vfsmount *mnt, struct dentry *dentry, 
++         struct kstat *stat)
++{
++      generic_fillattr(dentry->d_inode, stat);
++      return(0);
++}
++
++static struct inode_operations hostfs_iops = {
++      .create         = hostfs_create,
++      .link           = hostfs_link,
++      .unlink         = hostfs_unlink,
++      .symlink        = hostfs_symlink,
++      .mkdir          = hostfs_mkdir,
++      .rmdir          = hostfs_rmdir,
++      .mknod          = hostfs_mknod,
++      .rename         = hostfs_rename,
++      .truncate       = hostfs_truncate,
++      .permission     = hostfs_permission,
++      .setattr        = hostfs_setattr,
++      .getattr        = hostfs_getattr,
++};
++
++static struct inode_operations hostfs_dir_iops = {
++      .create         = hostfs_create,
++      .lookup         = hostfs_lookup,
++      .link           = hostfs_link,
++      .unlink         = hostfs_unlink,
++      .symlink        = hostfs_symlink,
++      .mkdir          = hostfs_mkdir,
++      .rmdir          = hostfs_rmdir,
++      .mknod          = hostfs_mknod,
++      .rename         = hostfs_rename,
++      .truncate       = hostfs_truncate,
++      .permission     = hostfs_permission,
++      .setattr        = hostfs_setattr,
++      .getattr        = hostfs_getattr,
++};
++
++int hostfs_link_readpage(struct file *file, struct page *page)
++{
++      char *buffer, *name;
++      long long start;
++      int err;
++
++      start = page->index << PAGE_CACHE_SHIFT;
++      buffer = kmap(page);
++      name = inode_name(page->mapping->host, 0);
++      if(name == NULL) return(-ENOMEM);
++      err = do_readlink(name, buffer, PAGE_CACHE_SIZE);
++      kfree(name);
++      if(err == PAGE_CACHE_SIZE)
++              err = -E2BIG;
++      else if(err > 0){
++              flush_dcache_page(page);
++              SetPageUptodate(page);
++              if (PageError(page)) ClearPageError(page);
++              err = 0;
++      }
++      kunmap(page);
++      unlock_page(page);
++      return(err);
++}
++
++static struct address_space_operations hostfs_link_aops = {
++      .readpage       = hostfs_link_readpage,
++};
++
++static int hostfs_fill_sb_common(struct super_block *sb, void *d, int silent)
++{
++      struct inode *root_inode;
++      char *name, *data = d;
++      int err;
++
++      sb->s_blocksize = 1024;
++      sb->s_blocksize_bits = 10;
++      sb->s_magic = HOSTFS_SUPER_MAGIC;
++      sb->s_op = &hostfs_sbops;
++
++      if((data == NULL) || (*data == '\0')) 
++              data = root_ino;
++
++      err = -ENOMEM;
++      name = kmalloc(strlen(data) + 1, GFP_KERNEL);
++      if(name == NULL) 
++              goto out;
++
++      strcpy(name, data);
++
++      root_inode = iget(sb, 0);
++      if(root_inode == NULL)
++              goto out_free;
++
++      err = init_inode(root_inode, NULL);
++      if(err)
++              goto out_put;
++
++      HOSTFS_I(root_inode)->host_filename = name;
++
++      err = -ENOMEM;
++      sb->s_root = d_alloc_root(root_inode);
++      if(sb->s_root == NULL)
++              goto out_put;
++
++      err = read_inode(root_inode);
++      if(err)
++              goto out_put;
++
++      return(0);
++
++ out_put:
++      iput(root_inode);
++ out_free:
++      kfree(name);
++ out:
++      return(err);
++}
++
++static struct super_block *hostfs_read_sb(struct file_system_type *type,
++                                           int flags, const char *dev_name,
++                                           void *data)
++{
++      return(get_sb_nodev(type, flags, data, hostfs_fill_sb_common));
++}
++
++static struct file_system_type hostfs_type = {
++      .owner          = THIS_MODULE,
++      .name           = "hostfs",
++      .get_sb         = hostfs_read_sb,
++      .kill_sb        = kill_anon_super,
++      .fs_flags       = 0,
++};
++
++static int __init init_hostfs(void)
++{
++      return(register_filesystem(&hostfs_type));
++}
++
++static void __exit exit_hostfs(void)
++{
++      unregister_filesystem(&hostfs_type);
++}
++
++module_init(init_hostfs)
++module_exit(exit_hostfs)
++MODULE_LICENSE("GPL");
++
++/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
+Index: uml-2.6.7/include/asm-um/module-generic.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/module-generic.h     2004-07-16 19:47:23.634218264 +0300
++++ uml-2.6.7/include/asm-um/module-generic.h  2004-07-16 19:47:23.791194400 +0300
+@@ -0,0 +1,6 @@
++#ifndef __UM_MODULE_GENERIC_H
++#define __UM_MODULE_GENERIC_H
++
++#include "asm/arch/module.h"
++
++#endif
+Index: uml-2.6.7/arch/um/include/user_util.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/include/user_util.h 2004-07-16 19:36:02.218809152 +0300
++++ uml-2.6.7/arch/um/include/user_util.h      2004-07-16 19:47:24.794041944 +0300
+@@ -14,8 +14,6 @@
+ extern int unlockpt(int __fd);
+ extern char *ptsname(int __fd);
+-enum { OP_NONE, OP_EXEC, OP_FORK, OP_TRACE_ON, OP_REBOOT, OP_HALT, OP_CB };
+-
+ struct cpu_task {
+       int pid;
+       void *task;
+@@ -59,13 +57,11 @@
+ extern void *add_signal_handler(int sig, void (*handler)(int));
+ extern int start_fork_tramp(void *arg, unsigned long temp_stack, 
+                           int clone_flags, int (*tramp)(void *));
+-extern int clone_and_wait(int (*fn)(void *), void *arg, void *sp, int flags);
+ extern int linux_main(int argc, char **argv);
+ extern void set_cmdline(char *cmd);
+ extern void input_cb(void (*proc)(void *), void *arg, int arg_len);
+ extern int get_pty(void);
+ extern void *um_kmalloc(int size);
+-extern int raw(int fd, int complain);
+ extern int switcheroo(int fd, int prot, void *from, void *to, int size);
+ extern void setup_machinename(char *machine_out);
+ extern void setup_hostinfo(void);
+@@ -86,11 +82,17 @@
+ extern int run_kernel_thread(int (*fn)(void *), void *arg, void **jmp_ptr);
+ extern void write_sigio_workaround(void);
+ extern void arch_check_bugs(void);
++extern int cpu_feature(char *what, char *buf, int len);
+ extern int arch_handle_signal(int sig, union uml_pt_regs *regs);
+ extern int arch_fixup(unsigned long address, void *sc_ptr);
+ extern void forward_pending_sigio(int target);
+ extern int can_do_skas(void);
+- 
++extern void arch_init_thread(void);
++
++extern int __raw(int fd, int complain, int now);
++#define raw(fd, complain) __raw((fd), (complain), 1)
++
++#define CATCH_EINTR(expr) while ( ((expr) < 0) && errno == EINTR)
+ #endif
+ /*
+Index: uml-2.6.7/include/asm-um/cpufeature.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/cpufeature.h 2004-07-16 19:47:23.633218416 +0300
++++ uml-2.6.7/include/asm-um/cpufeature.h      2004-07-16 19:47:23.788194856 +0300
+@@ -0,0 +1,6 @@
++#ifndef __UM_CPUFEATURE_H
++#define __UM_CPUFEATURE_H
++
++#include "asm/arch/cpufeature.h"
++
++#endif
+Index: uml-2.6.7/arch/um/kernel/uaccess_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/uaccess_user.c       2004-07-16 19:37:08.883674552 +0300
++++ uml-2.6.7/arch/um/kernel/uaccess_user.c    2004-07-16 19:47:23.754200024 +0300
+@@ -20,7 +20,7 @@
+       jmp_buf jbuf;
+       *fault_catcher = &jbuf;
+-      if(setjmp(jbuf) == 0){
++      if(sigsetjmp(jbuf, 1) == 0){
+               (*op)(to, from, n);
+               ret = 0;
+               *faulted_out = 0;
+Index: uml-2.6.7/arch/um/kernel/tt/exec_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/tt/exec_kern.c       2004-07-16 19:36:10.502549832 +0300
++++ uml-2.6.7/arch/um/kernel/tt/exec_kern.c    2004-07-16 19:47:23.743201696 +0300
+@@ -17,6 +17,7 @@
+ #include "mem_user.h"
+ #include "os.h"
+ #include "tlb.h"
++#include "mode.h"
+ static int exec_tramp(void *sig_stack)
+ {
+@@ -47,17 +48,17 @@
+               do_exit(SIGKILL);
+       }
+-      if(current->thread_info->cpu == 0)
++      if(current_thread->cpu == 0)
+               forward_interrupts(new_pid);
+       current->thread.request.op = OP_EXEC;
+       current->thread.request.u.exec.pid = new_pid;
+-      unprotect_stack((unsigned long) current->thread_info);
++      unprotect_stack((unsigned long) current_thread);
+       os_usr1_process(os_getpid());
+       enable_timer();
+       free_page(stack);
+       protect_memory(uml_reserved, high_physmem - uml_reserved, 1, 1, 0, 1);
+-      task_protections((unsigned long) current->thread_info);
++      task_protections((unsigned long) current_thread);
+       force_flush_all();
+       unblock_signals();
+ }
+Index: uml-2.6.7/arch/um/kernel/frame.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/frame.c      2004-07-16 19:36:25.094331544 +0300
++++ uml-2.6.7/arch/um/kernel/frame.c   2004-07-16 19:47:24.796041640 +0300
+@@ -21,6 +21,7 @@
+ #include "sysdep/sigcontext.h"
+ #include "frame_user.h"
+ #include "kern_util.h"
++#include "user_util.h"
+ #include "ptrace_user.h"
+ #include "os.h"
+@@ -40,7 +41,7 @@
+       /* Wait for it to stop itself and continue it with a SIGUSR1 to force 
+        * it into the signal handler.
+        */
+-      n = waitpid(pid, &status, WUNTRACED);
++      CATCH_EINTR(n = waitpid(pid, &status, WUNTRACED));
+       if(n < 0){
+               printf("capture_stack : waitpid failed - errno = %d\n", errno);
+               exit(1);
+@@ -60,7 +61,7 @@
+        * At this point, the handler has stuffed the addresses of
+        * sig, sc, and SA_RESTORER in raw.
+        */
+-      n = waitpid(pid, &status, WUNTRACED);
++      CATCH_EINTR(n = waitpid(pid, &status, WUNTRACED));
+       if(n < 0){
+               printf("capture_stack : waitpid failed - errno = %d\n", errno);
+               exit(1);
+@@ -82,7 +83,8 @@
+                      errno);
+               exit(1);
+       }
+-      if(waitpid(pid, &status, 0) < 0){
++      CATCH_EINTR(n = waitpid(pid, &status, 0));
++      if(n < 0){
+               printf("capture_stack : waitpid failed - errno = %d\n", errno);
+               exit(1);
+       }
+@@ -279,7 +281,7 @@
+       struct sc_frame_raw raw_sc;
+       struct si_frame_raw raw_si;
+       void *stack, *sigstack;
+-      unsigned long top, sig_top, base;
++      unsigned long top, base;
+       stack = mmap(NULL, PAGE_SIZE, PROT_READ | PROT_WRITE | PROT_EXEC,
+                    MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+@@ -292,7 +294,6 @@
+       }
+       top = (unsigned long) stack + PAGE_SIZE - sizeof(void *);
+-      sig_top = (unsigned long) sigstack + PAGE_SIZE;
+       /* Get the sigcontext, no sigrestorer layout */
+       raw_sc.restorer = 0;
+Index: uml-2.6.7/include/asm-um/unistd.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/unistd.h     2004-07-16 19:37:20.150961664 +0300
++++ uml-2.6.7/include/asm-um/unistd.h  2004-07-16 19:47:23.804192424 +0300
+@@ -48,7 +48,10 @@
+       set_fs(KERNEL_DS);                      \
+       ret = sys(args);                        \
+       set_fs(fs);                             \
+-      return ret;
++      if (ret >= 0)                           \
++              return ret;                     \
++      errno = -(long)ret;                     \
++      return -1;
+ static inline long open(const char *pathname, int flags, int mode) 
+ {
+Index: uml-2.6.7/arch/um/include/mem_kern.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/include/mem_kern.h  2004-07-16 19:47:23.613221456 +0300
++++ uml-2.6.7/arch/um/include/mem_kern.h       2004-07-16 19:47:23.704207624 +0300
+@@ -0,0 +1,30 @@
++/* 
++ * Copyright (C) 2003 Jeff Dike (jdike@addtoit.com)
++ * Licensed under the GPL
++ */
++
++#ifndef __MEM_KERN_H__
++#define __MEM_KERN_H__
++
++#include "linux/list.h"
++#include "linux/types.h"
++
++struct remapper {
++      struct list_head list;
++      int (*proc)(int, unsigned long, int, __u64);
++};
++
++extern void register_remapper(struct remapper *info);
++
++#endif
++
++/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
+Index: uml-2.6.7/arch/um/dyn.lds.S
+===================================================================
+--- uml-2.6.7.orig/arch/um/dyn.lds.S   2004-07-16 19:36:43.059600408 +0300
++++ uml-2.6.7/arch/um/dyn.lds.S        2004-07-16 19:47:23.700208232 +0300
+@@ -1,3 +1,5 @@
++#include <asm-generic/vmlinux.lds.h>
++
+ OUTPUT_FORMAT(ELF_FORMAT)
+ OUTPUT_ARCH(ELF_ARCH)
+ ENTRY(_start)
+@@ -10,12 +12,15 @@
+ {
+   . = START + SIZEOF_HEADERS;
+   .interp         : { *(.interp) }
+-  . = ALIGN(4096);
+   __binary_start = .;
+   . = ALIGN(4096);            /* Init code and data */
+   _stext = .;
+   __init_begin = .;
+-  .text.init : { *(.text.init) }
++  .init.text : { 
++      _sinittext = .;
++      *(.init.text)
++      _einittext = .;
++  }
+   . = ALIGN(4096);
+@@ -55,7 +60,9 @@
+   } =0x90909090
+   .plt            : { *(.plt) }
+   .text           : {
+-    *(.text .stub .text.* .gnu.linkonce.t.*)
++    *(.text)
++    SCHED_TEXT
++    *(.stub .text.* .gnu.linkonce.t.*)
+     /* .gnu.warning sections are handled specially by elf32.em.  */
+     *(.gnu.warning)
+   } =0x90909090
+@@ -67,7 +74,7 @@
+   #include "asm/common.lds.S"
+-  .data.init : { *(.data.init) }
++  init.data : { *(.init.data) }
+   /* Ensure the __preinit_array_start label is properly aligned.  We
+      could instead move the label definition inside the section, but
+Index: uml-2.6.7/arch/um/kernel/trap_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/trap_user.c  2004-07-16 19:36:37.162496904 +0300
++++ uml-2.6.7/arch/um/kernel/trap_user.c       2004-07-16 19:47:24.799041184 +0300
+@@ -5,11 +5,9 @@
+ #include <stdlib.h>
+ #include <errno.h>
+-#include <fcntl.h>
+ #include <setjmp.h>
+ #include <signal.h>
+ #include <sys/time.h>
+-#include <sys/ioctl.h>
+ #include <sys/ptrace.h>
+ #include <sys/wait.h>
+ #include <asm/page.h>
+@@ -34,7 +32,14 @@
+ {
+       kill(pid, SIGKILL);
+       kill(pid, SIGCONT);
+-      while(waitpid(pid, NULL, 0) > 0) kill(pid, SIGCONT);
++      do {
++              int n;
++              CATCH_EINTR(n = waitpid(pid, NULL, 0));
++              if (n > 0)
++                      kill(pid, SIGCONT);
++              else
++                      break;
++      } while(1);
+ }
+ /* Unlocked - don't care if this is a bit off */
+@@ -82,6 +87,8 @@
+                    .is_irq            = 0 },
+       [ SIGILL ] { .handler           = relay_signal,
+                    .is_irq            = 0 },
++      [ SIGWINCH ] { .handler         = winch,
++                     .is_irq          = 1 },
+       [ SIGBUS ] { .handler           = bus_handler,
+                    .is_irq            = 0 },
+       [ SIGSEGV] { .handler           = segv_handler,
+@@ -102,12 +109,11 @@
+                        sig, &sc);
+ }
+-extern int timer_irq_inited, missed_ticks[];
++extern int timer_irq_inited;
+ void alarm_handler(int sig, struct sigcontext sc)
+ {
+       if(!timer_irq_inited) return;
+-      missed_ticks[cpu()]++;
+       if(sig == SIGALRM)
+               switch_timers(0);
+@@ -123,7 +129,7 @@
+ {
+       jmp_buf *buf = b;
+-      longjmp(*buf, val);
++      siglongjmp(*buf, val);
+ }
+ /*
+Index: uml-2.6.7/arch/um/Kconfig_net
+===================================================================
+--- uml-2.6.7.orig/arch/um/Kconfig_net 2004-07-16 19:36:54.256898160 +0300
++++ uml-2.6.7/arch/um/Kconfig_net      2004-07-16 19:47:23.712206408 +0300
+@@ -1,5 +1,5 @@
+-menu "Network Devices"
++menu "UML Network Devices"
+       depends on NET
+ # UML virtual driver
+@@ -176,73 +176,5 @@
+       
+         Startup example: "eth0=slirp,FE:FD:01:02:03:04,/usr/local/bin/slirp"
+-
+-# Below are hardware-independent drivers mirrored from
+-# drivers/net/Config.in. It would be nice if Linux
+-# had HW independent drivers separated from the other
+-# but it does not. Until then each non-ISA/PCI arch
+-# needs to provide it's own menu of network drivers
+-config DUMMY
+-      tristate "Dummy net driver support"
+-
+-config BONDING
+-      tristate "Bonding driver support"
+-
+-config EQUALIZER
+-      tristate "EQL (serial line load balancing) support"
+-
+-config TUN
+-      tristate "Universal TUN/TAP device driver support"
+-
+-config ETHERTAP
+-      tristate "Ethertap network tap (OBSOLETE)"
+-      depends on EXPERIMENTAL && NETLINK
+-
+-config PPP
+-      tristate "PPP (point-to-point protocol) support"
+-
+-config PPP_MULTILINK
+-      bool "PPP multilink support (EXPERIMENTAL)"
+-      depends on PPP && EXPERIMENTAL
+-
+-config PPP_FILTER
+-      bool "PPP filtering"
+-      depends on PPP && FILTER
+-
+-config PPP_ASYNC
+-      tristate "PPP support for async serial ports"
+-      depends on PPP
+-
+-config PPP_SYNC_TTY
+-      tristate "PPP support for sync tty ports"
+-      depends on PPP
+-
+-config PPP_DEFLATE
+-      tristate "PPP Deflate compression"
+-      depends on PPP
+-
+-config PPP_BSDCOMP
+-      tristate "PPP BSD-Compress compression"
+-      depends on PPP
+-
+-config PPPOE
+-      tristate "PPP over Ethernet (EXPERIMENTAL)"
+-      depends on PPP && EXPERIMENTAL
+-
+-config SLIP
+-      tristate "SLIP (serial line) support"
+-
+-config SLIP_COMPRESSED
+-      bool "CSLIP compressed headers"
+-      depends on SLIP=y
+-
+-config SLIP_SMART
+-      bool "Keepalive and linefill"
+-      depends on SLIP=y
+-
+-config SLIP_MODE_SLIP6
+-      bool "Six bit SLIP encapsulation"
+-      depends on SLIP=y
+-
+ endmenu
+Index: uml-2.6.7/fs/hppfs/Makefile
+===================================================================
+--- uml-2.6.7.orig/fs/hppfs/Makefile   2004-07-16 19:47:23.632218568 +0300
++++ uml-2.6.7/fs/hppfs/Makefile        2004-07-16 19:47:23.786195160 +0300
+@@ -0,0 +1,19 @@
++# 
++# Copyright (C) 2002, 2003 Jeff Dike (jdike@karaya.com)
++# Licensed under the GPL
++#
++
++hppfs-objs := hppfs_kern.o
++
++obj-y = 
++obj-$(CONFIG_HPPFS) += hppfs.o
++
++clean:
++
++modules:
++
++fastdep:
++
++dep:
++
++archmrproper: clean
+Index: uml-2.6.7/arch/um/kernel/trap_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/trap_kern.c  2004-07-16 19:35:56.026750488 +0300
++++ uml-2.6.7/arch/um/kernel/trap_kern.c       2004-07-16 19:47:23.742201848 +0300
+@@ -16,12 +16,15 @@
+ #include "asm/tlbflush.h"
+ #include "asm/a.out.h"
+ #include "asm/current.h"
++#include "asm/irq.h"
+ #include "user_util.h"
+ #include "kern_util.h"
+ #include "kern.h"
+ #include "chan_kern.h"
+ #include "mconsole_kern.h"
+ #include "2_5compat.h"
++#include "mem.h"
++#include "mem_kern.h"
+ int handle_page_fault(unsigned long address, unsigned long ip, 
+                     int is_write, int is_user, int *code_out)
+@@ -51,12 +54,12 @@
+       if(is_write && !(vma->vm_flags & VM_WRITE)) 
+               goto out;
+       page = address & PAGE_MASK;
+-      if(page == (unsigned long) current->thread_info + PAGE_SIZE)
++      if(page == (unsigned long) current_thread + PAGE_SIZE)
+               panic("Kernel stack overflow");
+       pgd = pgd_offset(mm, page);
+       pmd = pmd_offset(pgd, page);
+- survive:
+       do {
++ survive:
+               switch (handle_mm_fault(mm, vma, address, is_write)){
+               case VM_FAULT_MINOR:
+                       current->min_flt++;
+@@ -71,14 +74,20 @@
+                       err = -ENOMEM;
+                       goto out_of_memory;
+               default:
+-                      BUG();
++                      if (current->pid == 1) {
++                              up_read(&mm->mmap_sem);
++                              yield();
++                              down_read(&mm->mmap_sem);
++                              goto survive;
++                      }
++                      goto out;
+               }
+               pte = pte_offset_kernel(pmd, page);
+       } while(!pte_present(*pte));
++      err = 0;
+       *pte = pte_mkyoung(*pte);
+       if(pte_write(*pte)) *pte = pte_mkdirty(*pte);
+       flush_tlb_page(vma, page);
+-      err = 0;
+  out:
+       up_read(&mm->mmap_sem);
+       return(err);
+@@ -98,6 +107,33 @@
+       goto out;
+ }
++LIST_HEAD(physmem_remappers);
++
++void register_remapper(struct remapper *info)
++{
++      list_add(&info->list, &physmem_remappers);
++}
++
++static int check_remapped_addr(unsigned long address, int is_write)
++{
++      struct remapper *remapper;
++      struct list_head *ele;
++      __u64 offset;
++      int fd;
++
++      fd = phys_mapping(__pa(address), &offset);
++      if(fd == -1)
++              return(0);
++
++      list_for_each(ele, &physmem_remappers){
++              remapper = list_entry(ele, struct remapper, list);
++              if((*remapper->proc)(fd, address, is_write, offset))
++                      return(1);
++      }
++
++      return(0);
++}
++
+ unsigned long segv(unsigned long address, unsigned long ip, int is_write, 
+                  int is_user, void *sc)
+ {
+@@ -109,7 +145,9 @@
+                 flush_tlb_kernel_vm();
+                 return(0);
+         }
+-        if(current->mm == NULL)
++      else if(check_remapped_addr(address & PAGE_MASK, is_write))
++              return(0);
++      else if(current->mm == NULL)
+               panic("Segfault with no mm");
+       err = handle_page_fault(address, ip, is_write, is_user, &si.si_code);
+@@ -120,9 +158,8 @@
+               current->thread.fault_addr = (void *) address;
+               do_longjmp(catcher, 1);
+       } 
+-      else if(current->thread.fault_addr != NULL){
++      else if(current->thread.fault_addr != NULL)
+               panic("fault_addr set but no fault catcher");
+-      }
+       else if(arch_fixup(ip, sc))
+               return(0);
+@@ -155,8 +192,6 @@
+ {
+       struct siginfo si;
+-      printk(KERN_ERR "Unfixable SEGV in '%s' (pid %d) at 0x%lx "
+-             "(ip 0x%lx)\n", current->comm, current->pid, address, ip);
+       si.si_signo = SIGSEGV;
+       si.si_code = SEGV_ACCERR;
+       si.si_addr = (void *) address;
+@@ -180,6 +215,11 @@
+       else relay_signal(sig, regs);
+ }
++void winch(int sig, union uml_pt_regs *regs)
++{
++      do_IRQ(WINCH_IRQ, regs);
++}
++
+ void trap_init(void)
+ {
+ }
+Index: uml-2.6.7/arch/um/drivers/cow_sys.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/cow_sys.h   2004-07-16 19:47:23.608222216 +0300
++++ uml-2.6.7/arch/um/drivers/cow_sys.h        2004-07-16 19:47:23.679211424 +0300
+@@ -0,0 +1,48 @@
++#ifndef __COW_SYS_H__
++#define __COW_SYS_H__
++
++#include "kern_util.h"
++#include "user_util.h"
++#include "os.h"
++#include "user.h"
++
++static inline void *cow_malloc(int size)
++{
++      return(um_kmalloc(size));
++}
++
++static inline void cow_free(void *ptr)
++{
++      kfree(ptr);
++}
++
++#define cow_printf printk
++
++static inline char *cow_strdup(char *str)
++{
++      return(uml_strdup(str));
++}
++
++static inline int cow_seek_file(int fd, __u64 offset)
++{
++      return(os_seek_file(fd, offset));
++}
++
++static inline int cow_file_size(char *file, __u64 *size_out)
++{
++      return(os_file_size(file, size_out));
++}
++
++static inline int cow_write_file(int fd, char *buf, int size)
++{
++      return(os_write_file(fd, buf, size));
++}
++
++#endif
++
++/*
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
+Index: uml-2.6.7/arch/um/drivers/harddog_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/harddog_user.c      2004-07-16 19:36:22.284758664 +0300
++++ uml-2.6.7/arch/um/drivers/harddog_user.c   2004-07-16 19:47:23.682210968 +0300
+@@ -27,10 +27,10 @@
+       dup2(data->stdin, 0);
+       dup2(data->stdout, 1);
+       dup2(data->stdout, 2);
+-      close(data->stdin);
+-      close(data->stdout);
+-      close(data->close_me[0]);
+-      close(data->close_me[1]);
++      os_close_file(data->stdin);
++      os_close_file(data->stdout);
++      os_close_file(data->close_me[0]);
++      os_close_file(data->close_me[1]);
+ }
  
-       ARCH_SYSCALLS
-       [ LAST_SYSCALL + 1 ... NR_syscalls ] = 
-diff -Naur a/arch/um/kernel/sysrq.c b/arch/um/kernel/sysrq.c
---- a/arch/um/kernel/sysrq.c   2004-03-10 08:20:56.000000000 -0500
-+++ b/arch/um/kernel/sysrq.c   2004-03-10 08:37:16.000000000 -0500
-@@ -44,6 +44,14 @@
+ int start_watchdog(int *in_fd_ret, int *out_fd_ret, char *sock)
+@@ -44,15 +44,15 @@
+       char **args = NULL;
+       err = os_pipe(in_fds, 1, 0);
+-      if(err){
+-              printk("harddog_open - os_pipe failed, errno = %d\n", -err);
+-              return(err);
++      if(err < 0){
++              printk("harddog_open - os_pipe failed, err = %d\n", -err);
++              goto out;
+       }
+       err = os_pipe(out_fds, 1, 0);
+-      if(err){
+-              printk("harddog_open - os_pipe failed, errno = %d\n", -err);
+-              return(err);
++      if(err < 0){
++              printk("harddog_open - os_pipe failed, err = %d\n", -err);
++              goto out_close_in;
+       }
+       data.stdin = out_fds[0];
+@@ -72,42 +72,47 @@
+       pid = run_helper(pre_exec, &data, args, NULL);
+-      close(out_fds[0]);
+-      close(in_fds[1]);
++      os_close_file(out_fds[0]);
++      os_close_file(in_fds[1]);
+       if(pid < 0){
+               err = -pid;
+-              printk("harddog_open - run_helper failed, errno = %d\n", err);
+-              goto out;
++              printk("harddog_open - run_helper failed, errno = %d\n", -err);
++              goto out_close_out;
+       }
+-      n = read(in_fds[0], &c, sizeof(c));
++      n = os_read_file(in_fds[0], &c, sizeof(c));
+       if(n == 0){
+               printk("harddog_open - EOF on watchdog pipe\n");
+               helper_wait(pid);
+               err = -EIO;
+-              goto out;
++              goto out_close_out;
+       }
+       else if(n < 0){
+               printk("harddog_open - read of watchdog pipe failed, "
+-                     "errno = %d\n", errno);
++                     "err = %d\n", -n);
+               helper_wait(pid);
+-              err = -errno;
+-              goto out;
++              err = n;
++              goto out_close_out;
+       }
+       *in_fd_ret = in_fds[0];
+       *out_fd_ret = out_fds[1];
+       return(0);
++
++ out_close_in:
++      os_close_file(in_fds[0]);
++      os_close_file(in_fds[1]);
++ out_close_out:
++      os_close_file(out_fds[0]);
++      os_close_file(out_fds[1]);
+  out:
+-      close(out_fds[1]);
+-      close(in_fds[0]);
+       return(err);
  }
- EXPORT_SYMBOL(dump_stack);
  
-+void show_stack(struct task_struct *task, unsigned long *sp)
+ void stop_watchdog(int in_fd, int out_fd)
+ {
+-      close(in_fd);
+-      close(out_fd);
++      os_close_file(in_fd);
++      os_close_file(out_fd);
+ }
+ int ping_watchdog(int fd)
+@@ -115,11 +120,12 @@
+       int n;
+       char c = '\n';
+-      n = write(fd, &c, sizeof(c));
+-      if(n < sizeof(c)){
+-              printk("ping_watchdog - write failed, errno = %d\n",
+-                     errno);
+-              return(-errno);
++      n = os_write_file(fd, &c, sizeof(c));
++      if(n != sizeof(c)){
++              printk("ping_watchdog - write failed, err = %d\n", -n);
++              if(n < 0) 
++                      return(n);
++              return(-EIO);
+       }
+       return 1;
+Index: uml-2.6.7/fs/hostfs/hostfs_user.c
+===================================================================
+--- uml-2.6.7.orig/fs/hostfs/hostfs_user.c     2004-07-16 19:47:23.631218720 +0300
++++ uml-2.6.7/fs/hostfs/hostfs_user.c  2004-07-16 19:47:23.783195616 +0300
+@@ -0,0 +1,361 @@
++/* 
++ * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
++ * Licensed under the GPL
++ */
++
++#include <unistd.h>
++#include <stdio.h>
++#include <fcntl.h>
++#include <dirent.h>
++#include <errno.h>
++#include <utime.h>
++#include <string.h>
++#include <sys/stat.h>
++#include <sys/time.h>
++#include <sys/vfs.h>
++#include "hostfs.h"
++#include "kern_util.h"
++#include "user.h"
++
++int stat_file(const char *path, unsigned long long *inode_out, int *mode_out,
++            int *nlink_out, int *uid_out, int *gid_out, 
++            unsigned long long *size_out, struct timespec *atime_out,
++            struct timespec *mtime_out, struct timespec *ctime_out,
++            int *blksize_out, unsigned long long *blocks_out)
 +{
-+      if(task)
-+              show_trace_task(task);
-+      else
-+              show_trace(sp);
++      struct stat64 buf;
++
++      if(lstat64(path, &buf) < 0) 
++              return(-errno);
++
++      /* See the Makefile for why STAT64_INO_FIELD is passed in
++       * by the build
++       */
++      if(inode_out != NULL) *inode_out = buf.STAT64_INO_FIELD;
++      if(mode_out != NULL) *mode_out = buf.st_mode;
++      if(nlink_out != NULL) *nlink_out = buf.st_nlink;
++      if(uid_out != NULL) *uid_out = buf.st_uid;
++      if(gid_out != NULL) *gid_out = buf.st_gid;
++      if(size_out != NULL) *size_out = buf.st_size;
++      if(atime_out != NULL) {
++              atime_out->tv_sec = buf.st_atime;
++              atime_out->tv_nsec = 0;
++      }
++      if(mtime_out != NULL) {
++              mtime_out->tv_sec = buf.st_mtime;
++              mtime_out->tv_nsec = 0;
++      }
++      if(ctime_out != NULL) {
++              ctime_out->tv_sec = buf.st_ctime;
++              ctime_out->tv_nsec = 0;
++      }
++      if(blksize_out != NULL) *blksize_out = buf.st_blksize;
++      if(blocks_out != NULL) *blocks_out = buf.st_blocks;
++      return(0);
++}
++
++int file_type(const char *path, int *rdev)
++{
++      struct stat64 buf;
++
++      if(lstat64(path, &buf) < 0) 
++              return(-errno);
++      if(rdev != NULL) 
++              *rdev = buf.st_rdev;
++
++      if(S_ISDIR(buf.st_mode)) return(OS_TYPE_DIR);
++      else if(S_ISLNK(buf.st_mode)) return(OS_TYPE_SYMLINK);
++      else if(S_ISCHR(buf.st_mode)) return(OS_TYPE_CHARDEV);
++      else if(S_ISBLK(buf.st_mode)) return(OS_TYPE_BLOCKDEV);
++      else if(S_ISFIFO(buf.st_mode))return(OS_TYPE_FIFO);
++      else if(S_ISSOCK(buf.st_mode))return(OS_TYPE_SOCK);
++      else return(OS_TYPE_FILE);
++}
++
++int access_file(char *path, int r, int w, int x)
++{
++      int mode = 0;
++
++      if(r) mode = R_OK;
++      if(w) mode |= W_OK;
++      if(x) mode |= X_OK;
++      if(access(path, mode) != 0) return(-errno);
++      else return(0);
++}
++
++int open_file(char *path, int r, int w, int append)
++{
++      int mode = 0, fd;
++
++      if(r && !w) 
++              mode = O_RDONLY;
++      else if(!r && w) 
++              mode = O_WRONLY;
++      else if(r && w) 
++              mode = O_RDWR;
++      else panic("Impossible mode in open_file");
++
++      if(append)
++              mode |= O_APPEND;
++      fd = open64(path, mode);
++      if(fd < 0) return(-errno);
++      else return(fd);
++}
++
++void *open_dir(char *path, int *err_out)
++{
++      DIR *dir;
++
++      dir = opendir(path);
++      *err_out = errno;
++      if(dir == NULL) return(NULL);
++      return(dir);
 +}
 +
- /*
-  * Overrides for Emacs so that we follow Linus's tabbing style.
-  * Emacs will notice this stuff at the end of the file and automatically
-diff -Naur a/arch/um/kernel/tempfile.c b/arch/um/kernel/tempfile.c
---- a/arch/um/kernel/tempfile.c        2004-03-10 08:21:30.000000000 -0500
-+++ b/arch/um/kernel/tempfile.c        2004-03-10 08:39:50.000000000 -0500
-@@ -28,6 +28,7 @@
-       }
-       if((dir == NULL) || (*dir == '\0')) 
-               dir = "/tmp";
++char *read_dir(void *stream, unsigned long long *pos, 
++             unsigned long long *ino_out, int *len_out)
++{
++      DIR *dir = stream;
++      struct dirent *ent;
 +
-       tempdir = malloc(strlen(dir) + 2);
-       if(tempdir == NULL){
-               fprintf(stderr, "Failed to malloc tempdir, "
-@@ -49,7 +50,8 @@
-       else
-               *tempname = 0;
-       strcat(tempname, template);
--      if((fd = mkstemp(tempname)) < 0){
-+      fd = mkstemp(tempname);
-+      if(fd < 0){
-               fprintf(stderr, "open - cannot create %s: %s\n", tempname, 
-                       strerror(errno));
-               return -1;
-@@ -59,7 +61,8 @@
-               return -1;
-       }
-       if(out_tempname){
--              if((*out_tempname = strdup(tempname)) == NULL){
-+              *out_tempname = strdup(tempname);
-+              if(*out_tempname == NULL){
-                       perror("strdup");
-                       return -1;
-               }
-diff -Naur a/arch/um/kernel/time.c b/arch/um/kernel/time.c
---- a/arch/um/kernel/time.c    2004-03-10 08:20:29.000000000 -0500
-+++ b/arch/um/kernel/time.c    2004-03-10 08:35:55.000000000 -0500
-@@ -4,24 +4,33 @@
-  */
- #include <stdio.h>
-+#include <stdlib.h>
- #include <unistd.h>
- #include <time.h>
- #include <sys/time.h>
- #include <signal.h>
- #include <errno.h>
--#include "linux/module.h"
- #include "user_util.h"
- #include "kern_util.h"
- #include "user.h"
- #include "process.h"
- #include "signal_user.h"
- #include "time_user.h"
-+#include "kern_constants.h"
++      seekdir(dir, *pos);
++      ent = readdir(dir);
++      if(ent == NULL) return(NULL);
++      *len_out = strlen(ent->d_name);
++      *ino_out = ent->d_ino;
++      *pos = telldir(dir);
++      return(ent->d_name);
++}
 +
-+/* XXX This really needs to be declared and initialized in a kernel file since 
-+ * it's in <linux/time.h>
-+ */
-+extern struct timespec wall_to_monotonic;
- extern struct timeval xtime;
-+struct timeval local_offset = { 0, 0 };
++int read_file(int fd, unsigned long long *offset, char *buf, int len)
++{
++      int n;
 +
- void timer(void)
- {
-       gettimeofday(&xtime, NULL);
-+      timeradd(&xtime, &local_offset, &xtime);
- }
- void set_interval(int timer_type)
-@@ -66,7 +75,7 @@
-                      errno);
- }
--void idle_timer(void)
-+void uml_idle_timer(void)
- {
-       if(signal(SIGVTALRM, SIG_IGN) == SIG_ERR)
-               panic("Couldn't unset SIGVTALRM handler");
-@@ -76,14 +85,60 @@
-       set_interval(ITIMER_REAL);
- }
-+static unsigned long long get_host_hz(void)
++      n = pread64(fd, buf, len, *offset);
++      if(n < 0) return(-errno);
++      *offset += n;
++      return(n);
++}
++
++int write_file(int fd, unsigned long long *offset, const char *buf, int len)
 +{
-+      char mhzline[16], *end;
-+      unsigned long long mhz;
-+      int ret, mult, rest, len;
++      int n;
 +
-+      ret = cpu_feature("cpu MHz", mhzline, 
-+                        sizeof(mhzline) / sizeof(mhzline[0]));
-+      if(!ret)
-+              panic ("Could not get host MHZ");
++      n = pwrite64(fd, buf, len, *offset);
++      if(n < 0) return(-errno);
++      *offset += n;
++      return(n);
++}
 +
-+      mhz = strtoul(mhzline, &end, 10);
++int lseek_file(int fd, long long offset, int whence)
++{
++      int ret;
 +
-+      /* This business is to parse a floating point number without using
-+       * floating types.
-+       */
++      ret = lseek64(fd, offset, whence);
++      if(ret < 0) return(-errno);
++      return(0);
++}
 +
-+      rest = 0;
-+      mult = 0;
-+      if(*end == '.'){
-+              end++;
-+              len = strlen(end);
-+              if(len < 6)
-+                      mult = 6 - len;
-+              else if(len > 6)
-+                      end[6] = '\0';
-+              rest = strtoul(end, NULL, 10);
-+              while(mult-- > 0)
-+                      rest *= 10;
-+      }
++void close_file(void *stream)
++{
++      close(*((int *) stream));
++}
 +
-+      return(1000000 * mhz + rest);
++void close_dir(void *stream)
++{
++      closedir(stream);
 +}
 +
-+unsigned long long host_hz = 0;
++int file_create(char *name, int ur, int uw, int ux, int gr, 
++              int gw, int gx, int or, int ow, int ox)
++{
++      int mode, fd;
 +
-+extern int do_posix_clock_monotonic_gettime(struct timespec *tp);
++      mode = 0;
++      mode |= ur ? S_IRUSR : 0;
++      mode |= uw ? S_IWUSR : 0;
++      mode |= ux ? S_IXUSR : 0;
++      mode |= gr ? S_IRGRP : 0;
++      mode |= gw ? S_IWGRP : 0;
++      mode |= gx ? S_IXGRP : 0;
++      mode |= or ? S_IROTH : 0;
++      mode |= ow ? S_IWOTH : 0;
++      mode |= ox ? S_IXOTH : 0;
++      fd = open64(name, O_CREAT | O_RDWR, mode);
++      if(fd < 0) 
++              return(-errno);
++      return(fd);
++}
 +
- void time_init(void)
- {
-+      struct timespec now;
-+ 
-+      host_hz = get_host_hz();
-       if(signal(SIGVTALRM, boot_timer_handler) == SIG_ERR)
-               panic("Couldn't set SIGVTALRM handler");
-       set_interval(ITIMER_VIRTUAL);
++int set_attr(const char *file, struct hostfs_iattr *attrs)
++{
++      struct utimbuf buf;
++      int err, ma;
 +
-+      do_posix_clock_monotonic_gettime(&now);
-+      wall_to_monotonic.tv_sec = -now.tv_sec;
-+      wall_to_monotonic.tv_nsec = -now.tv_nsec;
- }
--struct timeval local_offset = { 0, 0 };
-+/* Declared in linux/time.h, which can't be included here */
-+extern void clock_was_set(void);
- void do_gettimeofday(struct timeval *tv)
- {
-@@ -96,15 +151,13 @@
-       clock_was_set();
- }
--EXPORT_SYMBOL(do_gettimeofday);
--
- int do_settimeofday(struct timespec *tv)
- {
-       struct timeval now;
-       unsigned long flags;
-       struct timeval tv_in;
--      if ((unsigned long)tv->tv_nsec >= NSEC_PER_SEC)
-+      if ((unsigned long) tv->tv_nsec >= UM_NSEC_PER_SEC)
-               return -EINVAL;
-       tv_in.tv_sec = tv->tv_sec;
-@@ -114,9 +167,9 @@
-       gettimeofday(&now, NULL);
-       timersub(&tv_in, &now, &local_offset);
-       time_unlock(flags);
--}
--EXPORT_SYMBOL(do_settimeofday);
++      if(attrs->ia_valid & HOSTFS_ATTR_MODE){
++              if(chmod(file, attrs->ia_mode) != 0) return(-errno);
++      }
++      if(attrs->ia_valid & HOSTFS_ATTR_UID){
++              if(chown(file, attrs->ia_uid, -1)) return(-errno);
++      }
++      if(attrs->ia_valid & HOSTFS_ATTR_GID){
++              if(chown(file, -1, attrs->ia_gid)) return(-errno);
++      }
++      if(attrs->ia_valid & HOSTFS_ATTR_SIZE){
++              if(truncate(file, attrs->ia_size)) return(-errno);
++      }
++      ma = HOSTFS_ATTR_ATIME_SET | HOSTFS_ATTR_MTIME_SET;
++      if((attrs->ia_valid & ma) == ma){
++              buf.actime = attrs->ia_atime.tv_sec;
++              buf.modtime = attrs->ia_mtime.tv_sec;
++              if(utime(file, &buf) != 0) return(-errno);
++      }
++      else {
++              struct timespec ts;
++
++              if(attrs->ia_valid & HOSTFS_ATTR_ATIME_SET){
++                      err = stat_file(file, NULL, NULL, NULL, NULL, NULL, 
++                                      NULL, NULL, &ts, NULL, NULL, NULL);
++                      if(err != 0) 
++                              return(err);
++                      buf.actime = attrs->ia_atime.tv_sec;
++                      buf.modtime = ts.tv_sec;
++                      if(utime(file, &buf) != 0) 
++                              return(-errno);
++              }
++              if(attrs->ia_valid & HOSTFS_ATTR_MTIME_SET){
++                      err = stat_file(file, NULL, NULL, NULL, NULL, NULL, 
++                                      NULL, &ts, NULL, NULL, NULL, NULL);
++                      if(err != 0) 
++                              return(err);
++                      buf.actime = ts.tv_sec;
++                      buf.modtime = attrs->ia_mtime.tv_sec;
++                      if(utime(file, &buf) != 0) 
++                              return(-errno);
++              }
++      }
++      if(attrs->ia_valid & HOSTFS_ATTR_CTIME) ;
++      if(attrs->ia_valid & (HOSTFS_ATTR_ATIME | HOSTFS_ATTR_MTIME)){
++              err = stat_file(file, NULL, NULL, NULL, NULL, NULL, NULL, 
++                              &attrs->ia_atime, &attrs->ia_mtime, NULL, 
++                              NULL, NULL);
++              if(err != 0) return(err);
++      }
 +      return(0);
 +}
- void idle_sleep(int secs)
- {
-diff -Naur a/arch/um/kernel/time_kern.c b/arch/um/kernel/time_kern.c
---- a/arch/um/kernel/time_kern.c       2004-03-10 08:21:50.000000000 -0500
-+++ b/arch/um/kernel/time_kern.c       2004-03-10 08:40:47.000000000 -0500
-@@ -30,22 +30,58 @@
-       return(HZ);
- }
-+/*
-+ * Scheduler clock - returns current time in nanosec units.
-+ */
-+unsigned long long sched_clock(void)
++
++int make_symlink(const char *from, const char *to)
 +{
-+      return (unsigned long long)jiffies_64 * (1000000000 / HZ);
++      int err;
++
++      err = symlink(to, from);
++      if(err) return(-errno);
++      return(0);
 +}
 +
- /* Changed at early boot */
- int timer_irq_inited = 0;
--/* missed_ticks will be modified after kernel memory has been 
-- * write-protected, so this puts it in a section which will be left 
-- * write-enabled.
-- */
--int __attribute__ ((__section__ (".unprotected"))) missed_ticks[NR_CPUS];
-+static int first_tick;
-+static unsigned long long prev_tsc;
-+static long long delta;               /* Deviation per interval */
++int unlink_file(const char *file)
++{
++      int err;
 +
-+extern unsigned long long host_hz;
- void timer_irq(union uml_pt_regs *regs)
- {
--      int cpu = current->thread_info->cpu, ticks = missed_ticks[cpu];
-+      unsigned long long ticks = 0;
++      err = unlink(file);
++      if(err) return(-errno);
++      return(0);
++}
 +
-+      if(!timer_irq_inited){
-+              /* This is to ensure that ticks don't pile up when
-+               * the timer handler is suspended */
-+              first_tick = 0;
-+              return;
-+      }
--        if(!timer_irq_inited) return;
--      missed_ticks[cpu] = 0;
--      while(ticks--) do_IRQ(TIMER_IRQ, regs);
-+      if(first_tick){
-+#if defined(CONFIG_UML_REAL_TIME_CLOCK)
-+              unsigned long long tsc;
-+              /* We've had 1 tick */
-+              tsc = time_stamp();
++int do_mkdir(const char *file, int mode)
++{
++      int err;
 +
-+              delta += tsc - prev_tsc;
-+              prev_tsc = tsc;
++      err = mkdir(file, mode);
++      if(err) return(-errno);
++      return(0);
++}
 +
-+              ticks += (delta * HZ) / host_hz;
-+              delta -= (ticks * host_hz) / HZ;
-+#else
-+              ticks = 1;
-+#endif
-+      }
-+      else {
-+              prev_tsc = time_stamp();
-+              first_tick = 1;
-+      }
++int do_rmdir(const char *file)
++{
++      int err;
 +
-+      while(ticks > 0){
-+              do_IRQ(TIMER_IRQ, regs);
-+              ticks--;
-+      }
- }
- void boot_timer_handler(int sig)
-@@ -58,12 +94,15 @@
-       do_timer(&regs);
- }
--void um_timer(int irq, void *dev, struct pt_regs *regs)
-+irqreturn_t um_timer(int irq, void *dev, struct pt_regs *regs)
- {
-+      unsigned long flags;
++      err = rmdir(file);
++      if(err) return(-errno);
++      return(0);
++}
 +
-       do_timer(regs);
--      write_seqlock(&xtime_lock);
-+      write_seqlock_irqsave(&xtime_lock, flags);
-       timer();
--      write_sequnlock(&xtime_lock);
-+      write_sequnlock_irqrestore(&xtime_lock, flags);
-+      return(IRQ_HANDLED);
- }
- long um_time(int * tloc)
-@@ -81,12 +120,12 @@
- long um_stime(int * tptr)
- {
-       int value;
--      struct timeval new;
-+      struct timespec new;
-       if (get_user(value, tptr))
-                 return -EFAULT;
-       new.tv_sec = value;
--      new.tv_usec = 0;
-+      new.tv_nsec = 0;
-       do_settimeofday(&new);
-       return 0;
- }
-@@ -125,9 +164,11 @@
- void timer_handler(int sig, union uml_pt_regs *regs)
- {
- #ifdef CONFIG_SMP
-+      local_irq_disable();
-       update_process_times(user_context(UPT_SP(regs)));
-+      local_irq_enable();
- #endif
--      if(current->thread_info->cpu == 0)
-+      if(current_thread->cpu == 0)
-               timer_irq(regs);
- }
-@@ -136,6 +177,7 @@
- unsigned long time_lock(void)
- {
-       unsigned long flags;
++int do_mknod(const char *file, int mode, int dev)
++{
++      int err;
 +
-       spin_lock_irqsave(&timer_spinlock, flags);
-       return(flags);
- }
-@@ -150,8 +192,8 @@
-       int err;
-       CHOOSE_MODE(user_time_init_tt(), user_time_init_skas());
--      if((err = request_irq(TIMER_IRQ, um_timer, SA_INTERRUPT, "timer", 
--                            NULL)) != 0)
-+      err = request_irq(TIMER_IRQ, um_timer, SA_INTERRUPT, "timer", NULL);
-+      if(err != 0)
-               printk(KERN_ERR "timer_init : request_irq failed - "
-                      "errno = %d\n", -err);
-       timer_irq_inited = 1;
-@@ -160,7 +202,6 @@
- __initcall(timer_init);
--
- /*
-  * Overrides for Emacs so that we follow Linus's tabbing style.
-  * Emacs will notice this stuff at the end of the file and automatically
-diff -Naur a/arch/um/kernel/trap_kern.c b/arch/um/kernel/trap_kern.c
---- a/arch/um/kernel/trap_kern.c       2004-03-10 08:20:18.000000000 -0500
-+++ b/arch/um/kernel/trap_kern.c       2004-03-10 08:34:16.000000000 -0500
-@@ -16,12 +16,15 @@
- #include "asm/tlbflush.h"
- #include "asm/a.out.h"
- #include "asm/current.h"
-+#include "asm/irq.h"
- #include "user_util.h"
- #include "kern_util.h"
- #include "kern.h"
- #include "chan_kern.h"
- #include "mconsole_kern.h"
- #include "2_5compat.h"
-+#include "mem.h"
-+#include "mem_kern.h"
- int handle_page_fault(unsigned long address, unsigned long ip, 
-                     int is_write, int is_user, int *code_out)
-@@ -51,12 +54,12 @@
-       if(is_write && !(vma->vm_flags & VM_WRITE)) 
-               goto out;
-       page = address & PAGE_MASK;
--      if(page == (unsigned long) current->thread_info + PAGE_SIZE)
-+      if(page == (unsigned long) current_thread + PAGE_SIZE)
-               panic("Kernel stack overflow");
-       pgd = pgd_offset(mm, page);
-       pmd = pmd_offset(pgd, page);
-- survive:
-       do {
-+ survive:
-               switch (handle_mm_fault(mm, vma, address, is_write)){
-               case VM_FAULT_MINOR:
-                       current->min_flt++;
-@@ -71,14 +74,20 @@
-                       err = -ENOMEM;
-                       goto out_of_memory;
-               default:
--                      BUG();
-+                      if (current->pid == 1) {
-+                              up_read(&mm->mmap_sem);
-+                              yield();
-+                              down_read(&mm->mmap_sem);
-+                              goto survive;
-+                      }
-+                      goto out;
-               }
-               pte = pte_offset_kernel(pmd, page);
-       } while(!pte_present(*pte));
-+      err = 0;
-       *pte = pte_mkyoung(*pte);
-       if(pte_write(*pte)) *pte = pte_mkdirty(*pte);
-       flush_tlb_page(vma, page);
--      err = 0;
-  out:
-       up_read(&mm->mmap_sem);
-       return(err);
-@@ -98,6 +107,33 @@
-       goto out;
- }
-+LIST_HEAD(physmem_remappers);
++      err = mknod(file, mode, dev);
++      if(err) return(-errno);
++      return(0);
++}
 +
-+void register_remapper(struct remapper *info)
++int link_file(const char *to, const char *from)
 +{
-+      list_add(&info->list, &physmem_remappers);
++      int err;
++
++      err = link(to, from);
++      if(err) return(-errno);
++      return(0);
 +}
 +
-+static int check_remapped_addr(unsigned long address, int is_write)
++int do_readlink(char *file, char *buf, int size)
 +{
-+      struct remapper *remapper;
-+      struct list_head *ele;
-+      __u64 offset;
-+      int fd;
-+
-+      fd = phys_mapping(__pa(address), &offset);
-+      if(fd == -1)
-+              return(0);
++      int n;
 +
-+      list_for_each(ele, &physmem_remappers){
-+              remapper = list_entry(ele, struct remapper, list);
-+              if((*remapper->proc)(fd, address, is_write, offset))
-+                      return(1);
-+      }
++      n = readlink(file, buf, size);
++      if(n < 0) 
++              return(-errno);
++      if(n < size) 
++              buf[n] = '\0';
++      return(n);
++}
 +
-+      return(0);
++int rename_file(char *from, char *to)
++{
++      int err;
++
++      err = rename(from, to);
++      if(err < 0) return(-errno);
++      return(0);      
 +}
 +
- unsigned long segv(unsigned long address, unsigned long ip, int is_write, 
-                  int is_user, void *sc)
- {
-@@ -109,7 +145,9 @@
-                 flush_tlb_kernel_vm();
-                 return(0);
-         }
--        if(current->mm == NULL)
-+      else if(check_remapped_addr(address & PAGE_MASK, is_write))
-+              return(0);
-+      else if(current->mm == NULL)
-               panic("Segfault with no mm");
-       err = handle_page_fault(address, ip, is_write, is_user, &si.si_code);
-@@ -120,9 +158,8 @@
-               current->thread.fault_addr = (void *) address;
-               do_longjmp(catcher, 1);
-       } 
--      else if(current->thread.fault_addr != NULL){
-+      else if(current->thread.fault_addr != NULL)
-               panic("fault_addr set but no fault catcher");
--      }
-       else if(arch_fixup(ip, sc))
-               return(0);
-@@ -155,8 +192,6 @@
- {
-       struct siginfo si;
--      printk(KERN_ERR "Unfixable SEGV in '%s' (pid %d) at 0x%lx "
--             "(ip 0x%lx)\n", current->comm, current->pid, address, ip);
-       si.si_signo = SIGSEGV;
-       si.si_code = SEGV_ACCERR;
-       si.si_addr = (void *) address;
-@@ -180,6 +215,11 @@
-       else relay_signal(sig, regs);
- }
-+void winch(int sig, union uml_pt_regs *regs)
++int do_statfs(char *root, long *bsize_out, long long *blocks_out, 
++            long long *bfree_out, long long *bavail_out, 
++            long long *files_out, long long *ffree_out,
++            void *fsid_out, int fsid_size, long *namelen_out, 
++            long *spare_out)
 +{
-+      do_IRQ(WINCH_IRQ, regs);
++      struct statfs64 buf;
++      int err;
++
++      err = statfs64(root, &buf);
++      if(err < 0) return(-errno);
++      *bsize_out = buf.f_bsize;
++      *blocks_out = buf.f_blocks;
++      *bfree_out = buf.f_bfree;
++      *bavail_out = buf.f_bavail;
++      *files_out = buf.f_files;
++      *ffree_out = buf.f_ffree;
++      memcpy(fsid_out, &buf.f_fsid, 
++             sizeof(buf.f_fsid) > fsid_size ? fsid_size : 
++             sizeof(buf.f_fsid));
++      *namelen_out = buf.f_namelen;
++      spare_out[0] = buf.f_spare[0];
++      spare_out[1] = buf.f_spare[1];
++      spare_out[2] = buf.f_spare[2];
++      spare_out[3] = buf.f_spare[3];
++      spare_out[4] = buf.f_spare[4];
++      spare_out[5] = buf.f_spare[5];
++      return(0);
 +}
 +
- void trap_init(void)
- {
- }
-diff -Naur a/arch/um/kernel/trap_user.c b/arch/um/kernel/trap_user.c
---- a/arch/um/kernel/trap_user.c       2004-03-10 08:21:06.000000000 -0500
-+++ b/arch/um/kernel/trap_user.c       2004-03-10 08:38:40.000000000 -0500
-@@ -5,11 +5,9 @@
- #include <stdlib.h>
- #include <errno.h>
--#include <fcntl.h>
- #include <setjmp.h>
- #include <signal.h>
- #include <sys/time.h>
--#include <sys/ioctl.h>
++/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
+Index: uml-2.6.7/arch/um/kernel/skas/mem_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/skas/mem_user.c      2004-07-16 19:36:25.158321816 +0300
++++ uml-2.6.7/arch/um/kernel/skas/mem_user.c   2004-07-16 19:47:23.729203824 +0300
+@@ -7,6 +7,7 @@
+ #include <sys/mman.h>
  #include <sys/ptrace.h>
- #include <sys/wait.h>
- #include <asm/page.h>
-@@ -82,6 +80,8 @@
-                    .is_irq            = 0 },
-       [ SIGILL ] { .handler           = relay_signal,
-                    .is_irq            = 0 },
-+      [ SIGWINCH ] { .handler         = winch,
-+                     .is_irq          = 1 },
-       [ SIGBUS ] { .handler           = bus_handler,
-                    .is_irq            = 0 },
-       [ SIGSEGV] { .handler           = segv_handler,
-@@ -102,12 +102,11 @@
-                        sig, &sc);
- }
--extern int timer_irq_inited, missed_ticks[];
-+extern int timer_irq_inited;
- void alarm_handler(int sig, struct sigcontext sc)
- {
-       if(!timer_irq_inited) return;
--      missed_ticks[cpu()]++;
-       if(sig == SIGALRM)
-               switch_timers(0);
-@@ -123,7 +122,7 @@
- {
-       jmp_buf *buf = b;
--      longjmp(*buf, val);
-+      siglongjmp(*buf, val);
- }
- /*
-diff -Naur a/arch/um/kernel/tt/exec_kern.c b/arch/um/kernel/tt/exec_kern.c
---- a/arch/um/kernel/tt/exec_kern.c    2004-03-10 08:20:29.000000000 -0500
-+++ b/arch/um/kernel/tt/exec_kern.c    2004-03-10 08:35:36.000000000 -0500
-@@ -17,6 +17,7 @@
  #include "mem_user.h"
++#include "mem.h"
+ #include "user.h"
  #include "os.h"
- #include "tlb.h"
-+#include "mode.h"
- static int exec_tramp(void *sig_stack)
+ #include "proc_mm.h"
+@@ -15,12 +16,12 @@
+        int r, int w, int x)
  {
-@@ -47,17 +48,17 @@
-               do_exit(SIGKILL);
-       }
--      if(current->thread_info->cpu == 0)
-+      if(current_thread->cpu == 0)
-               forward_interrupts(new_pid);
-       current->thread.request.op = OP_EXEC;
-       current->thread.request.u.exec.pid = new_pid;
--      unprotect_stack((unsigned long) current->thread_info);
-+      unprotect_stack((unsigned long) current_thread);
-       os_usr1_process(os_getpid());
-       enable_timer();
-       free_page(stack);
-       protect_memory(uml_reserved, high_physmem - uml_reserved, 1, 1, 0, 1);
--      task_protections((unsigned long) current->thread_info);
-+      task_protections((unsigned long) current_thread);
-       force_flush_all();
-       unblock_signals();
- }
-diff -Naur a/arch/um/kernel/tt/include/mode.h b/arch/um/kernel/tt/include/mode.h
---- a/arch/um/kernel/tt/include/mode.h 2004-03-10 08:21:54.000000000 -0500
-+++ b/arch/um/kernel/tt/include/mode.h 2004-03-10 08:40:56.000000000 -0500
-@@ -8,6 +8,8 @@
- #include "sysdep/ptrace.h"
-+enum { OP_NONE, OP_EXEC, OP_FORK, OP_TRACE_ON, OP_REBOOT, OP_HALT, OP_CB };
-+
- extern int tracing_pid;
- extern int tracer(int (*init_proc)(void *), void *sp);
-diff -Naur a/arch/um/kernel/tt/include/uaccess.h b/arch/um/kernel/tt/include/uaccess.h
---- a/arch/um/kernel/tt/include/uaccess.h      2004-03-10 08:21:55.000000000 -0500
-+++ b/arch/um/kernel/tt/include/uaccess.h      2004-03-10 08:40:59.000000000 -0500
-@@ -1,5 +1,5 @@
- /* 
-- * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
-+ * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
-  * Licensed under the GPL
-  */
+       struct proc_mm_op map;
+-      struct mem_region *region;
+-      int prot, n;
++      __u64 offset;
++      int prot, n, phys_fd;
  
-@@ -43,65 +43,19 @@
+       prot = (r ? PROT_READ : 0) | (w ? PROT_WRITE : 0) | 
+               (x ? PROT_EXEC : 0);
+-      region = phys_region(phys);
++      phys_fd = phys_mapping(phys, &offset);
  
- extern int __do_copy_from_user(void *to, const void *from, int n,
-                              void **fault_addr, void **fault_catcher);
--
--static inline int copy_from_user_tt(void *to, const void *from, int n)
--{
--      return(access_ok_tt(VERIFY_READ, from, n) ?
--             __do_copy_from_user(to, from, n, 
--                                 &current->thread.fault_addr,
--                                 &current->thread.fault_catcher) : n);
--}
--
--static inline int copy_to_user_tt(void *to, const void *from, int n)
--{
--      return(access_ok_tt(VERIFY_WRITE, to, n) ?
--             __do_copy_to_user(to, from, n, 
--                                 &current->thread.fault_addr,
--                                 &current->thread.fault_catcher) : n);
--}
--
- extern int __do_strncpy_from_user(char *dst, const char *src, size_t n,
-                                 void **fault_addr, void **fault_catcher);
--
--static inline int strncpy_from_user_tt(char *dst, const char *src, int count)
--{
--      int n;
--
--      if(!access_ok_tt(VERIFY_READ, src, 1)) return(-EFAULT);
--      n = __do_strncpy_from_user(dst, src, count, 
--                                 &current->thread.fault_addr,
--                                 &current->thread.fault_catcher);
--      if(n < 0) return(-EFAULT);
--      return(n);
--}
--
- extern int __do_clear_user(void *mem, size_t len, void **fault_addr,
-                          void **fault_catcher);
--
--static inline int __clear_user_tt(void *mem, int len)
--{
--      return(__do_clear_user(mem, len,
--                             &current->thread.fault_addr,
--                             &current->thread.fault_catcher));
--}
--
--static inline int clear_user_tt(void *mem, int len)
--{
--      return(access_ok_tt(VERIFY_WRITE, mem, len) ? 
--             __do_clear_user(mem, len, 
--                             &current->thread.fault_addr,
--                             &current->thread.fault_catcher) : len);
--}
--
- extern int __do_strnlen_user(const char *str, unsigned long n,
-                            void **fault_addr, void **fault_catcher);
+       map = ((struct proc_mm_op) { .op        = MM_MMAP,
+                                    .u         = 
+@@ -30,12 +31,12 @@
+                                        .prot          = prot,
+                                        .flags         = MAP_SHARED | 
+                                                         MAP_FIXED,
+-                                       .fd            = region->fd,
+-                                       .offset        = phys_offset(phys)
++                                       .fd            = phys_fd,
++                                       .offset        = offset
+                                      } } } );
+       n = os_write_file(fd, &map, sizeof(map));
+       if(n != sizeof(map)) 
+-              printk("map : /proc/mm map failed, errno = %d\n", errno);
++              printk("map : /proc/mm map failed, err = %d\n", -n);
+ }
  
--static inline int strnlen_user_tt(const void *str, int len)
--{
--      return(__do_strnlen_user(str, len,
--                               &current->thread.fault_addr,
--                               &current->thread.fault_catcher));
--}
-+extern int copy_from_user_tt(void *to, const void *from, int n);
-+extern int copy_to_user_tt(void *to, const void *from, int n);
-+extern int strncpy_from_user_tt(char *dst, const char *src, int count);
-+extern int __clear_user_tt(void *mem, int len);
-+extern int clear_user_tt(void *mem, int len);
-+extern int strnlen_user_tt(const void *str, int len);
+ int unmap(int fd, void *addr, int len)
+@@ -49,8 +50,13 @@
+                                        { .addr        = (unsigned long) addr,
+                                          .len         = len } } } );
+       n = os_write_file(fd, &unmap, sizeof(unmap));
+-      if((n != 0) && (n != sizeof(unmap)))
+-              return(-errno);
++      if(n != sizeof(unmap)) {
++              if(n < 0) 
++                      return(n);
++              else if(n > 0) 
++                      return(-EIO);
++      }
++
+       return(0);
+ }
  
- #endif
+@@ -71,11 +77,15 @@
+                                          .prot        = prot } } } );
  
-diff -Naur a/arch/um/kernel/tt/Makefile b/arch/um/kernel/tt/Makefile
---- a/arch/um/kernel/tt/Makefile       2004-03-10 08:21:28.000000000 -0500
-+++ b/arch/um/kernel/tt/Makefile       2004-03-10 08:39:16.000000000 -0500
+       n = os_write_file(fd, &protect, sizeof(protect));
+-      if((n != 0) && (n != sizeof(protect))){
++      if(n != sizeof(protect)) {
++              if(n == 0) return(0);
++
+               if(must_succeed)
+-                      panic("protect failed, errno = %d", errno);
+-              return(-errno);
++                      panic("protect failed, err = %d", -n);
++
++              return(-EIO);
+       }
++
+       return(0);
+ }
+Index: uml-2.6.7/arch/um/kernel/skas/include/ptrace-skas.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/skas/include/ptrace-skas.h   2004-07-16 19:36:04.873405592 +0300
++++ uml-2.6.7/arch/um/kernel/skas/include/ptrace-skas.h        2004-07-16 19:47:24.724052584 +0300
+@@ -10,6 +10,15 @@
+ #ifdef UML_CONFIG_MODE_SKAS
++/* syscall emulation path in ptrace */
++
++#ifndef PTRACE_SYSEMU
++#define PTRACE_SYSEMU 31
++#endif
++
++void set_using_sysemu(int value);
++int get_using_sysemu(void);
++
+ #include "skas_ptregs.h"
+ #define HOST_FRAME_SIZE 17
+Index: uml-2.6.7/include/asm-um/archparam-i386.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/archparam-i386.h     2004-07-16 19:37:19.977987960 +0300
++++ uml-2.6.7/include/asm-um/archparam-i386.h  2004-07-16 19:47:23.787195008 +0300
 @@ -1,5 +1,5 @@
- # 
--# Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+# Copyright (C) 2002 - 2003 Jeff Dike (jdike@addtoit.com)
# Licensed under the GPL
- #
+ /* 
+- * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
++ * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
 * Licensed under the GPL
+  */
  
-@@ -7,7 +7,7 @@
+@@ -56,6 +56,93 @@
+       pr_reg[16] = PT_REGS_SS(regs);          \
+ } while(0);
  
- obj-y = exec_kern.o exec_user.o gdb.o ksyms.o mem.o mem_user.o process_kern.o \
-       syscall_kern.o syscall_user.o time.o tlb.o tracer.o trap_user.o \
--      uaccess_user.o sys-$(SUBARCH)/
-+      uaccess.o uaccess_user.o sys-$(SUBARCH)/
++#if 0 /* Turn this back on when UML has VSYSCALL working */
++#define VSYSCALL_BASE (__fix_to_virt(FIX_VSYSCALL))
++#else
++#define VSYSCALL_BASE 0
++#endif
++
++#define VSYSCALL_EHDR ((const struct elfhdr *) VSYSCALL_BASE)
++#define VSYSCALL_ENTRY        ((unsigned long) &__kernel_vsyscall)
++extern void *__kernel_vsyscall;
++
++/*
++ * Architecture-neutral AT_ values in 0-17, leave some room
++ * for more of them, start the x86-specific ones at 32.
++ */
++#define AT_SYSINFO            32
++#define AT_SYSINFO_EHDR               33
++
++#define ARCH_DLINFO                                           \
++do {                                                          \
++              NEW_AUX_ENT(AT_SYSINFO, VSYSCALL_ENTRY);        \
++              NEW_AUX_ENT(AT_SYSINFO_EHDR, VSYSCALL_BASE);    \
++} while (0)
++
++/*
++ * These macros parameterize elf_core_dump in fs/binfmt_elf.c to write out
++ * extra segments containing the vsyscall DSO contents.  Dumping its
++ * contents makes post-mortem fully interpretable later without matching up
++ * the same kernel and hardware config to see what PC values meant.
++ * Dumping its extra ELF program headers includes all the other information
++ * a debugger needs to easily find how the vsyscall DSO was being used.
++ */
++#if 0
++#define ELF_CORE_EXTRA_PHDRS          (VSYSCALL_EHDR->e_phnum)
++#endif
++
++#undef ELF_CORE_EXTRA_PHDRS
++
++#if 0
++#define ELF_CORE_WRITE_EXTRA_PHDRS                                          \
++do {                                                                        \
++      const struct elf_phdr *const vsyscall_phdrs =                         \
++              (const struct elf_phdr *) (VSYSCALL_BASE                      \
++                                         + VSYSCALL_EHDR->e_phoff);         \
++      int i;                                                                \
++      Elf32_Off ofs = 0;                                                    \
++      for (i = 0; i < VSYSCALL_EHDR->e_phnum; ++i) {                        \
++              struct elf_phdr phdr = vsyscall_phdrs[i];                     \
++              if (phdr.p_type == PT_LOAD) {                                 \
++                      ofs = phdr.p_offset = offset;                         \
++                      offset += phdr.p_filesz;                              \
++              }                                                             \
++              else                                                          \
++                      phdr.p_offset += ofs;                                 \
++              phdr.p_paddr = 0; /* match other core phdrs */                \
++              DUMP_WRITE(&phdr, sizeof(phdr));                              \
++      }                                                                     \
++} while (0)
++#define ELF_CORE_WRITE_EXTRA_DATA                                           \
++do {                                                                        \
++      const struct elf_phdr *const vsyscall_phdrs =                         \
++              (const struct elf_phdr *) (VSYSCALL_BASE                      \
++                                         + VSYSCALL_EHDR->e_phoff);         \
++      int i;                                                                \
++      for (i = 0; i < VSYSCALL_EHDR->e_phnum; ++i) {                        \
++              if (vsyscall_phdrs[i].p_type == PT_LOAD)                      \
++                      DUMP_WRITE((void *) vsyscall_phdrs[i].p_vaddr,        \
++                                 vsyscall_phdrs[i].p_filesz);               \
++      }                                                                     \
++} while (0)
++#endif
++
++#undef ELF_CORE_WRITE_EXTRA_PHDRS
++#undef ELF_CORE_WRITE_EXTRA_DATA
++
++#define R_386_NONE    0
++#define R_386_32      1
++#define R_386_PC32    2
++#define R_386_GOT32   3
++#define R_386_PLT32   4
++#define R_386_COPY    5
++#define R_386_GLOB_DAT        6
++#define R_386_JMP_SLOT        7
++#define R_386_RELATIVE        8
++#define R_386_GOTOFF  9
++#define R_386_GOTPC   10
++#define R_386_NUM     11
++
+ /********* Bits for asm-um/delay.h **********/
  
- obj-$(CONFIG_PT_PROXY) += gdb_kern.o ptproxy/
+ typedef unsigned long um_udelay_t;
+Index: uml-2.6.7/arch/um/kernel/skas/process_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/skas/process_kern.c  2004-07-16 19:37:52.070109216 +0300
++++ uml-2.6.7/arch/um/kernel/skas/process_kern.c       2004-07-16 19:47:24.725052432 +0300
+@@ -6,6 +6,12 @@
+ #include "linux/sched.h"
+ #include "linux/slab.h"
+ #include "linux/ptrace.h"
++#include "linux/proc_fs.h"
++#include "linux/file.h"
++#include "linux/errno.h"
++#include "linux/init.h"
++#include "asm/uaccess.h"
++#include "asm/atomic.h"
+ #include "kern_util.h"
+ #include "time_user.h"
+ #include "signal_user.h"
+@@ -17,6 +23,59 @@
+ #include "kern.h"
+ #include "mode.h"
  
-@@ -27,5 +27,3 @@
++#ifdef PTRACE_SYSEMU
++static atomic_t using_sysemu;
++#endif
++
++void set_using_sysemu(int value)
++{
++      atomic_set(&using_sysemu, value);
++}
++
++int get_using_sysemu(void)
++{
++      return atomic_read(&using_sysemu);
++}
++
++int proc_read_sysemu(char *buf, char **start, off_t offset, int size,int *eof, void *data)
++{
++      if (snprintf(buf, size, "%d\n", get_using_sysemu()) < size) /*No overflow*/
++              *eof = 1;
++
++      return strlen(buf);
++}
++
++int proc_write_sysemu(struct file *file,const char *buf, unsigned long count,void *data)
++{
++      char tmp[2];
++
++      if (copy_from_user(tmp, buf, 1))
++              return -EFAULT;
++
++      if (tmp[0] == '0' || tmp[0] == '1')
++              set_using_sysemu(tmp[0] - '0');
++      return count; /*We use the first char, but pretend to write everything*/
++}
++
++int __init make_proc_sysemu(void)
++{
++      struct proc_dir_entry *ent;
++
++      ent = create_proc_entry("sysemu", 00600, &proc_root);
++      ent->read_proc  = proc_read_sysemu;
++      ent->write_proc = proc_write_sysemu;
++
++      if (ent == NULL)
++      {
++              printk("Failed to register /proc/sysemu\n");
++              return(0);
++      }
++
++      return 0;
++}
++
++late_initcall(make_proc_sysemu);
++
+ int singlestepping_skas(void)
+ {
+       int ret = current->ptrace & PT_DTRACE;
+@@ -61,11 +120,13 @@
+       thread_wait(&current->thread.mode.skas.switch_buf, 
+                   current->thread.mode.skas.fork_buf);
  
- $(obj)/unmap_fin.o : $(src)/unmap.o
-       ld -r -o $@ $< -lc -L/usr/lib
--
--clean :
-diff -Naur a/arch/um/kernel/tt/mem_user.c b/arch/um/kernel/tt/mem_user.c
---- a/arch/um/kernel/tt/mem_user.c     2004-03-10 08:20:50.000000000 -0500
-+++ b/arch/um/kernel/tt/mem_user.c     2004-03-10 08:36:30.000000000 -0500
-@@ -25,14 +25,13 @@
-       size = (unsigned long) segment_end - 
-               (unsigned long) segment_start;
-       data = create_mem_file(size);
--      if((addr = mmap(NULL, size, PROT_WRITE | PROT_READ, 
--                      MAP_SHARED, data, 0)) == MAP_FAILED){
-+      addr = mmap(NULL, size, PROT_WRITE | PROT_READ, MAP_SHARED, data, 0);
-+      if(addr == MAP_FAILED){
-               perror("mapping new data segment");
-               exit(1);
-       }
-       memcpy(addr, segment_start, size);
--      if(switcheroo(data, prot, addr, segment_start, 
--                    size) < 0){
-+      if(switcheroo(data, prot, addr, segment_start, size) < 0){
-               printf("switcheroo failed\n");
-               exit(1);
-       }
-diff -Naur a/arch/um/kernel/tt/process_kern.c b/arch/um/kernel/tt/process_kern.c
---- a/arch/um/kernel/tt/process_kern.c 2004-03-10 08:22:39.000000000 -0500
-+++ b/arch/um/kernel/tt/process_kern.c 2004-03-10 08:42:45.000000000 -0500
-@@ -62,7 +62,7 @@
-       reading = 0;
-       err = os_write_file(to->thread.mode.tt.switch_pipe[1], &c, sizeof(c));
-       if(err != sizeof(c))
--              panic("write of switch_pipe failed, errno = %d", -err);
-+              panic("write of switch_pipe failed, err = %d", -err);
+-#ifdef CONFIG_SMP
+-      schedule_tail(NULL);
+-#endif
++      if(current->thread.prev_sched != NULL)
++              schedule_tail(current->thread.prev_sched);
+       current->thread.prev_sched = NULL;
  
-       reading = 1;
-       if((from->state == TASK_ZOMBIE) || (from->state == TASK_DEAD))
-@@ -104,48 +104,72 @@
++      /* The return value is 1 if the kernel thread execs a process,
++       * 0 if it just exits
++       */
+       n = run_kernel_thread(fn, arg, &current->thread.exec_buf);
+       if(n == 1)
+               userspace(&current->thread.regs.regs);
+@@ -93,11 +154,11 @@
+                   current->thread.mode.skas.fork_buf);
+       
+       force_flush_all();
+-#ifdef CONFIG_SMP
++      if(current->thread.prev_sched == NULL)
++              panic("blech");
++      
+       schedule_tail(current->thread.prev_sched);
+-#endif
+       current->thread.prev_sched = NULL;
+-      unblock_signals();
  
- void release_thread_tt(struct task_struct *task)
- {
--      os_kill_process(task->thread.mode.tt.extern_pid, 0);
-+      int pid = task->thread.mode.tt.extern_pid;
-+
-+      if(os_getpid() != pid)
-+              os_kill_process(pid, 0);
+       userspace(&current->thread.regs.regs);
  }
+@@ -136,7 +197,7 @@
  
- void exit_thread_tt(void)
+ void init_idle_skas(void)
  {
--      close(current->thread.mode.tt.switch_pipe[0]);
--      close(current->thread.mode.tt.switch_pipe[1]);
-+      os_close_file(current->thread.mode.tt.switch_pipe[0]);
-+      os_close_file(current->thread.mode.tt.switch_pipe[1]);
+-      cpu_tasks[current->thread_info->cpu].pid = os_getpid();
++      cpu_tasks[current_thread->cpu].pid = os_getpid();
+       default_idle();
  }
  
- void schedule_tail(task_t *prev);
+@@ -160,11 +221,11 @@
  
static void new_thread_handler(int sig)
int start_uml_skas(void)
  {
-+      unsigned long disable;
-       int (*fn)(void *);
-       void *arg;
-       fn = current->thread.request.u.thread.proc;
-       arg = current->thread.request.u.thread.arg;
-+
-       UPT_SC(&current->thread.regs.regs) = (void *) (&sig + 1);
-+      disable = (1 << (SIGVTALRM - 1)) | (1 << (SIGALRM - 1)) |
-+              (1 << (SIGIO - 1)) | (1 << (SIGPROF - 1));
-+      SC_SIGMASK(UPT_SC(&current->thread.regs.regs)) &= ~disable;
-+
-       suspend_new_thread(current->thread.mode.tt.switch_pipe[0]);
+-      start_userspace();
++      start_userspace(0);
+       capture_signal_stack();
++      uml_idle_timer();
  
--      block_signals();
-+      force_flush_all();
-+      if(current->thread.prev_sched != NULL)
-+              schedule_tail(current->thread.prev_sched);
-+      current->thread.prev_sched = NULL;
-+
        init_new_thread_signals(1);
--#ifdef CONFIG_SMP
--      schedule_tail(current->thread.prev_sched);
--#endif
-       enable_timer();
-       free_page(current->thread.temp_stack);
-       set_cmdline("(kernel thread)");
--      force_flush_all();
+-      idle_timer();
  
--      current->thread.prev_sched = NULL;
-       change_sig(SIGUSR1, 1);
-       change_sig(SIGVTALRM, 1);
-       change_sig(SIGPROF, 1);
--      unblock_signals();
-+      local_irq_enable();
-       if(!run_kernel_thread(fn, arg, &current->thread.exec_buf))
-               do_exit(0);
+       init_task.thread.request.u.thread.proc = start_kernel_proc;
+       init_task.thread.request.u.thread.arg = NULL;
+@@ -175,12 +236,14 @@
+ int external_pid_skas(struct task_struct *task)
+ {
+-      return(userspace_pid);
++#warning Need to look up userspace_pid by cpu 
++      return(userspace_pid[0]);
  }
  
static int new_thread_proc(void *stack)
int thread_pid_skas(struct task_struct *task)
  {
-+      /* local_irq_disable is needed to block out signals until this thread is
-+       * properly scheduled.  Otherwise, the tracing thread will get mighty 
-+       * upset about any signals that arrive before that.  
-+       * This has the complication that it sets the saved signal mask in
-+       * the sigcontext to block signals.  This gets restored when this
-+       * thread (or a descendant, since they get a copy of this sigcontext)
-+       * returns to userspace.
-+       * So, this is compensated for elsewhere.
-+       * XXX There is still a small window until local_irq_disable() actually 
-+       * finishes where signals are possible - shouldn't be a problem in 
-+       * practice since SIGIO hasn't been forwarded here yet, and the 
-+       * local_irq_disable should finish before a SIGVTALRM has time to be 
-+       * delivered.
-+       */
-+
-+      local_irq_disable();
-       init_new_thread_stack(stack, new_thread_handler);
-       os_usr1_process(os_getpid());
+-      return(userspace_pid);
++#warning Need to look up userspace_pid by cpu 
++      return(userspace_pid[0]);
+ }
+ /*
+Index: uml-2.6.7/arch/um/kernel/helper.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/helper.c     2004-07-16 19:36:40.052057624 +0300
++++ uml-2.6.7/arch/um/kernel/helper.c  2004-07-16 19:47:24.798041336 +0300
+@@ -7,12 +7,12 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <errno.h>
+-#include <fcntl.h>
+ #include <sched.h>
+ #include <sys/signal.h>
+ #include <sys/wait.h>
+ #include "user.h"
+ #include "kern_util.h"
++#include "user_util.h"
+ #include "os.h"
+ struct helper_data {
+@@ -33,6 +33,7 @@
+ {
+       struct helper_data *data = arg;
+       char **argv = data->argv;
++      int errval;
+       if(helper_pause){
+               signal(SIGHUP, helper_hup);
+@@ -41,8 +42,9 @@
+       if(data->pre_exec != NULL)
+               (*data->pre_exec)(data->pre_data);
+       execvp(argv[0], argv);
++      errval = errno;
+       printk("execvp of '%s' failed - errno = %d\n", argv[0], errno);
+-      write(data->fd, &errno, sizeof(errno));
++      os_write_file(data->fd, &errval, sizeof(errval));
+       os_kill_process(os_getpid(), 0);
        return(0);
-@@ -156,7 +180,7 @@
-  * itself with a SIGUSR1.  set_user_mode has to be run with SIGUSR1 off,
-  * so it is blocked before it's called.  They are re-enabled on sigreturn
-  * despite the fact that they were blocked when the SIGUSR1 was issued because
-- * copy_thread copies the parent's signcontext, including the signal mask
-+ * copy_thread copies the parent's sigcontext, including the signal mask
-  * onto the signal frame.
-  */
+ }
+@@ -59,17 +61,20 @@
+       if((stack_out != NULL) && (*stack_out != 0))
+               stack = *stack_out;
+       else stack = alloc_stack(0, um_in_interrupt());
+-      if(stack == 0) return(-ENOMEM);
++      if(stack == 0) 
++              return(-ENOMEM);
  
-@@ -165,35 +189,32 @@
-       UPT_SC(&current->thread.regs.regs) = (void *) (&sig + 1);
-       suspend_new_thread(current->thread.mode.tt.switch_pipe[0]);
+       err = os_pipe(fds, 1, 0);
+-      if(err){
+-              printk("run_helper : pipe failed, errno = %d\n", -err);
+-              return(err);
++      if(err < 0){
++              printk("run_helper : pipe failed, err = %d\n", -err);
++              goto out_free;
+       }
+-      if(fcntl(fds[1], F_SETFD, 1) != 0){
+-              printk("run_helper : setting FD_CLOEXEC failed, errno = %d\n",
+-                     errno);
+-              return(-errno);
++
++      err = os_set_exec_close(fds[1], 1);
++      if(err < 0){
++              printk("run_helper : setting FD_CLOEXEC failed, err = %d\n",
++                     -err);
++              goto out_close;
+       }
  
--#ifdef CONFIG_SMP     
--      schedule_tail(NULL);
--#endif
-+      force_flush_all();
-+      if(current->thread.prev_sched != NULL)
-+              schedule_tail(current->thread.prev_sched);
-+      current->thread.prev_sched = NULL;
+       sp = stack + page_size() - sizeof(void *);
+@@ -80,23 +85,34 @@
+       pid = clone(helper_child, (void *) sp, CLONE_VM | SIGCHLD, &data);
+       if(pid < 0){
+               printk("run_helper : clone failed, errno = %d\n", errno);
+-              return(-errno);
++              err = -errno;
++              goto out_close;
+       }
+-      close(fds[1]);
+-      n = read(fds[0], &err, sizeof(err));
++
++      os_close_file(fds[1]);
++      n = os_read_file(fds[0], &err, sizeof(err));
+       if(n < 0){
+-              printk("run_helper : read on pipe failed, errno = %d\n", 
+-                     errno);
+-              return(-errno);
++              printk("run_helper : read on pipe failed, err = %d\n", -n);
++              err = n;
++              goto out_kill;
+       }
+       else if(n != 0){
+-              waitpid(pid, NULL, 0);
+-              pid = -err;
++              CATCH_EINTR(n = waitpid(pid, NULL, 0));
++              pid = -errno;
+       }
+       if(stack_out == NULL) free_stack(stack, 0);
+         else *stack_out = stack;
+       return(pid);
++
++ out_kill:
++      os_kill_process(pid, 1);
++ out_close:
++      os_close_file(fds[0]);
++      os_close_file(fds[1]);
++ out_free:
++      free_stack(stack, 0);
++      return(err);
+ }
+ int run_helper_thread(int (*proc)(void *), void *arg, unsigned int flags, 
+@@ -117,9 +133,11 @@
+       }
+       if(stack_out == NULL){
+               pid = waitpid(pid, &status, 0);
+-              if(pid < 0)
++              if(pid < 0){
+                       printk("run_helper_thread - wait failed, errno = %d\n",
+-                             pid);
++                             errno);
++                      pid = -errno;
++              }
+               if(!WIFEXITED(status) || (WEXITSTATUS(status) != 0))
+                       printk("run_helper_thread - thread returned status "
+                              "0x%x\n", status);
+Index: uml-2.6.7/arch/um/drivers/fd.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/fd.c        2004-07-16 19:37:38.077236456 +0300
++++ uml-2.6.7/arch/um/drivers/fd.c     2004-07-16 19:47:23.681211120 +0300
+@@ -35,7 +35,8 @@
+               printk("fd_init : couldn't parse file descriptor '%s'\n", str);
+               return(NULL);
+       }
+-      if((data = um_kmalloc(sizeof(*data))) == NULL) return(NULL);
++      data = um_kmalloc(sizeof(*data));
++      if(data == NULL) return(NULL);
+       *data = ((struct fd_chan) { .fd         = n,
+                                   .raw        = opts->raw });
+       return(data);
+Index: uml-2.6.7/arch/um/include/kern_util.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/include/kern_util.h 2004-07-16 19:36:25.260306312 +0300
++++ uml-2.6.7/arch/um/include/kern_util.h      2004-07-16 19:47:23.702207928 +0300
+@@ -60,12 +60,11 @@
+ extern void paging_init(void);
+ extern void init_flush_vm(void);
+ extern void *syscall_sp(void *t);
+-extern void syscall_trace(void);
++extern void syscall_trace(union uml_pt_regs *regs, int entryexit);
+ extern int hz(void);
+-extern void idle_timer(void);
++extern void uml_idle_timer(void);
+ extern unsigned int do_IRQ(int irq, union uml_pt_regs *regs);
+ extern int external_pid(void *t);
+-extern int pid_to_processor_id(int pid);
+ extern void boot_timer_handler(int sig);
+ extern void interrupt_end(void);
+ extern void initial_thread_cb(void (*proc)(void *), void *arg);
+@@ -89,9 +88,7 @@
+ extern char *uml_strdup(char *string);
+ extern void unprotect_kernel_mem(void);
+ extern void protect_kernel_mem(void);
+-extern void set_kmem_end(unsigned long);
+ extern void uml_cleanup(void);
+-extern int pid_to_processor_id(int pid);
+ extern void set_current(void *t);
+ extern void lock_signalled_task(void *t);
+ extern void IPI_handler(int cpu);
+@@ -100,7 +97,9 @@
+ extern int clear_user_proc(void *buf, int size);
+ extern int copy_to_user_proc(void *to, void *from, int size);
+ extern int copy_from_user_proc(void *to, void *from, int size);
++extern int strlen_user_proc(char *str);
+ extern void bus_handler(int sig, union uml_pt_regs *regs);
++extern void winch(int sig, union uml_pt_regs *regs);
+ extern long execute_syscall(void *r);
+ extern int smp_sigio_handler(void);
+ extern void *get_current(void);
+@@ -111,6 +110,8 @@
+ extern void free_irq(unsigned int, void *);
+ extern int um_in_interrupt(void);
+ extern int cpu(void);
++extern unsigned long long time_stamp(void);
 +
-       enable_timer();
-       change_sig(SIGVTALRM, 1);
-       local_irq_enable();
--      force_flush_all();
-       if(current->mm != current->parent->mm)
-               protect_memory(uml_reserved, high_physmem - uml_reserved, 1, 
-                              1, 0, 1);
--      task_protections((unsigned long) current->thread_info);
--
--      current->thread.prev_sched = NULL;
-+      task_protections((unsigned long) current_thread);
+ #endif
  
-       free_page(current->thread.temp_stack);
-+      local_irq_disable();
-       change_sig(SIGUSR1, 0);
-       set_user_mode(current);
- }
+ /*
+Index: uml-2.6.7/include/asm-um/sections.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/sections.h   2004-07-16 19:47:23.634218264 +0300
++++ uml-2.6.7/include/asm-um/sections.h        2004-07-16 19:47:23.795193792 +0300
+@@ -0,0 +1,7 @@
++#ifndef _UM_SECTIONS_H
++#define _UM_SECTIONS_H
++
++/* nothing to see, move along */
++#include <asm-generic/sections.h>
++
++#endif
+Index: uml-2.6.7/include/asm-um/pgtable.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/pgtable.h    2004-07-16 19:37:51.945128216 +0300
++++ uml-2.6.7/include/asm-um/pgtable.h 2004-07-16 19:47:23.793194096 +0300
+@@ -12,8 +12,6 @@
+ #include "asm/page.h"
+ #include "asm/fixmap.h"
  
--static int sigusr1 = SIGUSR1;
--
- int fork_tramp(void *stack)
- {
--      int sig = sigusr1;
+-extern pgd_t swapper_pg_dir[1024];
 -
-       local_irq_disable();
-+      arch_init_thread();
-       init_new_thread_stack(stack, finish_fork_handler);
--      kill(os_getpid(), sig);
-+      os_usr1_process(os_getpid());
-       return(0);
- }
-@@ -213,8 +234,8 @@
-       }
+ extern void *um_virt_to_phys(struct task_struct *task, unsigned long virt,
+                            pte_t *pte_out);
  
-       err = os_pipe(p->thread.mode.tt.switch_pipe, 1, 1);
--      if(err){
--              printk("copy_thread : pipe failed, errno = %d\n", -err);
-+      if(err < 0){
-+              printk("copy_thread : pipe failed, err = %d\n", -err);
-               return(err);
-       }
+@@ -49,6 +47,8 @@
+ #define pgd_ERROR(e) \
+         printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e))
  
-@@ -377,8 +398,8 @@
++extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
++
+ /*
+  * pgd entries used up by user/kernel:
+  */
+@@ -65,10 +65,10 @@
+  * area for the same reason. ;)
+  */
  
-       pages = (1 << CONFIG_KERNEL_STACK_ORDER);
+-extern unsigned long high_physmem;
++extern unsigned long end_iomem;
  
--      start = (unsigned long) current->thread_info + PAGE_SIZE;
--      end = (unsigned long) current + PAGE_SIZE * pages;
-+      start = (unsigned long) current_thread + PAGE_SIZE;
-+      end = (unsigned long) current_thread + PAGE_SIZE * pages;
-       protect_memory(uml_reserved, start - uml_reserved, 1, w, 1, 1);
-       protect_memory(end, high_physmem - end, 1, w, 1, 1);
+ #define VMALLOC_OFFSET        (__va_space)
+-#define VMALLOC_START (((unsigned long) high_physmem + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1))
++#define VMALLOC_START ((end_iomem + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1))
  
-@@ -454,8 +475,9 @@
+ #ifdef CONFIG_HIGHMEM
+ # define VMALLOC_END  (PKMAP_BASE-2*PAGE_SIZE)
+@@ -78,12 +78,13 @@
  
-       init_task.thread.mode.tt.extern_pid = pid;
-       err = os_pipe(init_task.thread.mode.tt.switch_pipe, 1, 1);
--      if(err) panic("Can't create switch pipe for init_task, errno = %d", 
--                    err);
-+      if(err) 
-+              panic("Can't create switch pipe for init_task, errno = %d", 
-+                    -err);
- }
+ #define _PAGE_PRESENT 0x001
+ #define _PAGE_NEWPAGE 0x002
+-#define _PAGE_PROTNONE        0x004   /* If not present */
+-#define _PAGE_RW      0x008
+-#define _PAGE_USER    0x010
+-#define _PAGE_ACCESSED        0x020
+-#define _PAGE_DIRTY   0x040
+-#define _PAGE_NEWPROT   0x080
++#define _PAGE_NEWPROT   0x004
++#define _PAGE_FILE    0x008   /* set:pagecache unset:swap */
++#define _PAGE_PROTNONE        0x010   /* If not present */
++#define _PAGE_RW      0x020
++#define _PAGE_USER    0x040
++#define _PAGE_ACCESSED        0x080
++#define _PAGE_DIRTY   0x100
  
- int singlestepping_tt(void *t)
-diff -Naur a/arch/um/kernel/tt/ptproxy/Makefile b/arch/um/kernel/tt/ptproxy/Makefile
---- a/arch/um/kernel/tt/ptproxy/Makefile       2004-03-10 08:21:01.000000000 -0500
-+++ b/arch/um/kernel/tt/ptproxy/Makefile       2004-03-10 08:37:43.000000000 -0500
-@@ -9,5 +9,3 @@
+ #define REGION_MASK   0xf0000000
+ #define REGION_SHIFT  28
+@@ -143,7 +144,8 @@
  
- $(USER_OBJS) : %.o: %.c
-       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
--
--clean:
-diff -Naur a/arch/um/kernel/tt/ptproxy/proxy.c b/arch/um/kernel/tt/ptproxy/proxy.c
---- a/arch/um/kernel/tt/ptproxy/proxy.c        2004-03-10 08:21:45.000000000 -0500
-+++ b/arch/um/kernel/tt/ptproxy/proxy.c        2004-03-10 08:40:20.000000000 -0500
-@@ -15,7 +15,6 @@
- #include <unistd.h>
- #include <signal.h>
- #include <string.h>
--#include <fcntl.h>
- #include <termios.h>
- #include <sys/wait.h>
- #include <sys/types.h>
-@@ -293,10 +292,10 @@
- }
+ #define BAD_PAGETABLE __bad_pagetable()
+ #define BAD_PAGE __bad_page()
+-#define ZERO_PAGE(vaddr) (virt_to_page(empty_zero_page))
++
++#define ZERO_PAGE(vaddr) virt_to_page(empty_zero_page)
  
- char gdb_init_string[] = 
--"att 1
--b panic
--b stop
--handle SIGWINCH nostop noprint pass
-+"att 1 \n\
-+b panic \n\
-+b stop \n\
-+handle SIGWINCH nostop noprint pass \n\
- ";
+ /* number of bits that fit into a memory pointer */
+ #define BITS_PER_PTR                  (8*sizeof(unsigned long))
+@@ -164,9 +166,6 @@
  
- int start_debugger(char *prog, int startup, int stop, int *fd_out)
-@@ -304,7 +303,8 @@
-       int slave, child;
+ #define pte_clear(xp) do { pte_val(*(xp)) = _PAGE_NEWPAGE; } while (0)
  
-       slave = open_gdb_chan();
--      if((child = fork()) == 0){
-+      child = fork();
-+      if(child == 0){
-               char *tempname = NULL;
-               int fd;
+-#define phys_region_index(x) (((x) & REGION_MASK) >> REGION_SHIFT)
+-#define pte_region_index(x) phys_region_index(pte_val(x))
+-
+ #define pmd_none(x)   (!(pmd_val(x) & ~_PAGE_NEWPAGE))
+ #define       pmd_bad(x)      ((pmd_val(x) & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE)
+ #define pmd_present(x)        (pmd_val(x) & _PAGE_PRESENT)
+@@ -188,19 +187,25 @@
  
-@@ -327,18 +327,19 @@
-                       exit(1);
- #endif
-               }
--              if((fd = make_tempfile("/tmp/gdb_init-XXXXXX", &tempname, 0)) < 0){
--                      printk("start_debugger : make_tempfile failed, errno = %d\n",
--                             errno);
-+              fd = make_tempfile("/tmp/gdb_init-XXXXXX", &tempname, 0);
-+              if(fd < 0){
-+                      printk("start_debugger : make_tempfile failed,"
-+                             "err = %d\n", -fd);
-                       exit(1);
-               }
--              write(fd, gdb_init_string, sizeof(gdb_init_string) - 1);
-+              os_write_file(fd, gdb_init_string, sizeof(gdb_init_string) - 1);
-               if(startup){
-                       if(stop){
--                              write(fd, "b start_kernel\n",
-+                              os_write_file(fd, "b start_kernel\n",
-                                     strlen("b start_kernel\n"));
-                       }
--                      write(fd, "c\n", strlen("c\n"));
-+                      os_write_file(fd, "c\n", strlen("c\n"));
-               }
-               if(ptrace(PTRACE_TRACEME, 0, 0, 0) < 0){
-                       printk("start_debugger :  PTRACE_TRACEME failed, "
-diff -Naur a/arch/um/kernel/tt/ptproxy/sysdep.c b/arch/um/kernel/tt/ptproxy/sysdep.c
---- a/arch/um/kernel/tt/ptproxy/sysdep.c       2004-03-10 08:22:30.000000000 -0500
-+++ b/arch/um/kernel/tt/ptproxy/sysdep.c       2004-03-10 08:42:11.000000000 -0500
-@@ -9,6 +9,7 @@
- #include <string.h>
- #include <stdlib.h>
- #include <signal.h>
-+#include <errno.h>
- #include <sys/types.h>
- #include <sys/ptrace.h>
- #include <asm/ptrace.h>
-diff -Naur a/arch/um/kernel/tt/ptproxy/wait.c b/arch/um/kernel/tt/ptproxy/wait.c
---- a/arch/um/kernel/tt/ptproxy/wait.c 2004-03-10 08:22:45.000000000 -0500
-+++ b/arch/um/kernel/tt/ptproxy/wait.c 2004-03-10 08:43:20.000000000 -0500
-@@ -56,21 +56,23 @@
- int real_wait_return(struct debugger *debugger)
- {
-       unsigned long ip;
--      int err, pid;
-+      int pid;
+ #define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT))
  
-       pid = debugger->pid;
+-extern struct page *pte_mem_map(pte_t pte);
+-extern struct page *phys_mem_map(unsigned long phys);
+-extern unsigned long phys_to_pfn(unsigned long p);
+-extern unsigned long pfn_to_phys(unsigned long pfn);
+-
+-#define pte_page(x) pfn_to_page(pte_pfn(x))
+-#define pte_address(x) (__va(pte_val(x) & PAGE_MASK))
+-#define mk_phys(a, r) ((a) + (r << REGION_SHIFT))
+-#define phys_addr(p) ((p) & ~REGION_MASK)
+-#define phys_page(p) (phys_mem_map(p) + ((phys_addr(p)) >> PAGE_SHIFT))
++#define pte_page(pte) phys_to_page(pte_val(pte))
++#define pmd_page(pmd) phys_to_page(pmd_val(pmd) & PAGE_MASK)
 +
-       ip = ptrace(PTRACE_PEEKUSER, pid, PT_IP_OFFSET, 0);
--      ip = IP_RESTART_SYSCALL(ip);
--      err = ptrace(PTRACE_POKEUSER, pid, PT_IP_OFFSET, ip);
-+      IP_RESTART_SYSCALL(ip);
+ #define pte_pfn(x) phys_to_pfn(pte_val(x))
+ #define pfn_pte(pfn, prot) __pte(pfn_to_phys(pfn) | pgprot_val(prot))
+-#define pfn_pmd(pfn, prot) __pmd(pfn_to_phys(pfn) | pgprot_val(prot))
 +
-       if(ptrace(PTRACE_POKEUSER, pid, PT_IP_OFFSET, ip) < 0)
-               tracer_panic("real_wait_return : Failed to restart system "
--                           "call, errno = %d\n");
-+                           "call, errno = %d\n", errno);
++extern struct page *phys_to_page(const unsigned long phys);
++extern struct page *__virt_to_page(const unsigned long virt);
++#define virt_to_page(addr) __virt_to_page((const unsigned long) addr)
++  
++/*
++ * Bits 0 through 3 are taken
++ */
++#define PTE_FILE_MAX_BITS     28
++
++#define pte_to_pgoff(pte) ((pte).pte_low >> 4)
++
++#define pgoff_to_pte(off) \
++      ((pte_t) { ((off) << 4) + _PAGE_FILE })
+ static inline pte_t pte_mknewprot(pte_t pte)
+ {
+@@ -235,6 +240,12 @@
+  * The following only work if pte_present() is true.
+  * Undefined behaviour if not..
+  */
++static inline int pte_user(pte_t pte)
++{ 
++      return((pte_val(pte) & _PAGE_USER) && 
++             !(pte_val(pte) & _PAGE_PROTNONE));
++}
 +
-       if((ptrace(PTRACE_SYSCALL, debugger->pid, 0, SIGCHLD) < 0) ||
-          (ptrace(PTRACE_SYSCALL, debugger->pid, 0, 0) < 0) ||
-          (ptrace(PTRACE_SYSCALL, debugger->pid, 0, 0) < 0) ||
-          debugger_normal_return(debugger, -1))
-               tracer_panic("real_wait_return : gdb failed to wait, "
--                           "errno = %d\n");
-+                           "errno = %d\n", errno);
-       return(0);
+ static inline int pte_read(pte_t pte)
+ { 
+       return((pte_val(pte) & _PAGE_USER) && 
+@@ -252,6 +263,14 @@
+              !(pte_val(pte) & _PAGE_PROTNONE));
  }
  
-diff -Naur a/arch/um/kernel/tt/syscall_kern.c b/arch/um/kernel/tt/syscall_kern.c
---- a/arch/um/kernel/tt/syscall_kern.c 2004-03-10 08:20:12.000000000 -0500
-+++ b/arch/um/kernel/tt/syscall_kern.c 2004-03-10 08:33:34.000000000 -0500
-@@ -1,5 +1,5 @@
- /* 
-- * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
-+ * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
-  * Licensed under the GPL
++/*
++ * The following only works if pte_present() is not true.
++ */
++static inline int pte_file(pte_t pte)
++{ 
++      return (pte).pte_low & _PAGE_FILE; 
++}
++
+ static inline int pte_dirty(pte_t pte)        { return pte_val(pte) & _PAGE_DIRTY; }
+ static inline int pte_young(pte_t pte)        { return pte_val(pte) & _PAGE_ACCESSED; }
+ static inline int pte_newpage(pte_t pte) { return pte_val(pte) & _PAGE_NEWPAGE; }
+@@ -334,14 +353,7 @@
+  * and a page entry and page directory to the page they refer to.
   */
  
-diff -Naur a/arch/um/kernel/tt/sys-i386/Makefile b/arch/um/kernel/tt/sys-i386/Makefile
---- a/arch/um/kernel/tt/sys-i386/Makefile      2004-03-10 08:21:04.000000000 -0500
-+++ b/arch/um/kernel/tt/sys-i386/Makefile      2004-03-10 08:38:18.000000000 -0500
-@@ -10,5 +10,3 @@
- $(USER_OBJS) : %.o: %.c
-       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
--
--clean :
-diff -Naur a/arch/um/kernel/tt/tlb.c b/arch/um/kernel/tt/tlb.c
---- a/arch/um/kernel/tt/tlb.c  2004-03-10 08:20:20.000000000 -0500
-+++ b/arch/um/kernel/tt/tlb.c  2004-03-10 08:34:20.000000000 -0500
-@@ -10,6 +10,7 @@
- #include "asm/page.h"
- #include "asm/pgtable.h"
- #include "asm/uaccess.h"
-+#include "asm/tlbflush.h"
- #include "user_util.h"
- #include "mem_user.h"
- #include "os.h"
-diff -Naur a/arch/um/kernel/tt/tracer.c b/arch/um/kernel/tt/tracer.c
---- a/arch/um/kernel/tt/tracer.c       2004-03-10 08:20:15.000000000 -0500
-+++ b/arch/um/kernel/tt/tracer.c       2004-03-10 08:34:04.000000000 -0500
-@@ -39,16 +39,17 @@
-               return(0);
+-#define mk_pte(page, pgprot) \
+-({                                    \
+-      pte_t __pte;                    \
+-                                        \
+-      pte_val(__pte) = page_to_phys(page) + pgprot_val(pgprot);\
+-      if(pte_present(__pte)) pte_mknewprot(pte_mknewpage(__pte)); \
+-      __pte;                          \
+-})
++extern pte_t mk_pte(struct page *page, pgprot_t pgprot);
  
-       register_winch_irq(tracer_winch[0], fd, -1, data);
--      return(0);
-+      return(1);
+ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
+ {
+@@ -351,17 +363,27 @@
  }
  
- static void tracer_winch_handler(int sig)
- {
-+      int n;
-       char c = 1;
+ #define pmd_page_kernel(pmd) ((unsigned long) __va(pmd_val(pmd) & PAGE_MASK))
+-#define pmd_page(pmd) (phys_mem_map(pmd_val(pmd) & PAGE_MASK) + \
+-                     ((phys_addr(pmd_val(pmd)) >> PAGE_SHIFT)))
  
--      if(write(tracer_winch[1], &c, sizeof(c)) != sizeof(c))
--              printk("tracer_winch_handler - write failed, errno = %d\n",
--                     errno);
-+      n = os_write_file(tracer_winch[1], &c, sizeof(c));
-+      if(n != sizeof(c))
-+              printk("tracer_winch_handler - write failed, err = %d\n", -n);
+-/* to find an entry in a page-table-directory. */
++/*
++ * the pgd page can be thought of an array like this: pgd_t[PTRS_PER_PGD]
++ *
++ * this macro returns the index of the entry in the pgd page which would
++ * control the given virtual address
++ */
+ #define pgd_index(address) ((address >> PGDIR_SHIFT) & (PTRS_PER_PGD-1))
+-/* to find an entry in a page-table-directory */
++/*
++ * pgd_offset() returns a (pgd_t *)
++ * pgd_index() is used get the offset into the pgd page's array of pgd_t's;
++ */
+ #define pgd_offset(mm, address) \
+ ((mm)->pgd + ((address) >> PGDIR_SHIFT))
+-/* to find an entry in a kernel page-table-directory */
++
++/*
++ * a shortcut which implies the use of the kernel's pgd, instead
++ * of a process's
++ */
+ #define pgd_offset_k(address) pgd_offset(&init_mm, address)
+ #define pmd_index(address) \
+@@ -373,7 +395,12 @@
+       return (pmd_t *) dir;
  }
  
- /* Called only by the tracing thread during initialization */
-@@ -58,9 +59,8 @@
-       int err;
+-/* Find an entry in the third-level page table.. */ 
++/*
++ * the pte page can be thought of an array like this: pte_t[PTRS_PER_PTE]
++ *
++ * this macro returns the index of the entry in the pte page which would
++ * control the given virtual address
++ */
+ #define pte_index(address) (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
+ #define pte_offset_kernel(dir, address) \
+       ((pte_t *) pmd_page_kernel(*(dir)) +  pte_index(address))
+@@ -387,11 +414,11 @@
+ #define update_mmu_cache(vma,address,pte) do ; while (0)
  
-       err = os_pipe(tracer_winch, 1, 1);
--      if(err){
--              printk("setup_tracer_winch : os_pipe failed, errno = %d\n", 
--                     -err);
-+      if(err < 0){
-+              printk("setup_tracer_winch : os_pipe failed, err = %d\n", -err);
-               return;
-       }
-       signal(SIGWINCH, tracer_winch_handler);
-@@ -130,8 +130,8 @@
-       case SIGTSTP:
-               if(ptrace(PTRACE_CONT, pid, 0, sig) < 0)
-                       tracer_panic("sleeping_process_signal : Failed to "
--                                   "continue pid %d, errno = %d\n", pid,
--                                   sig);
-+                                   "continue pid %d, signal = %d, "
-+                                   "errno = %d\n", pid, sig, errno);
-               break;
+ /* Encode and de-code a swap entry */
+-#define __swp_type(x)                 (((x).val >> 3) & 0x7f)
+-#define __swp_offset(x)                       ((x).val >> 10)
++#define __swp_type(x)                 (((x).val >> 4) & 0x3f)
++#define __swp_offset(x)                       ((x).val >> 11)
+ #define __swp_entry(type, offset) \
+-      ((swp_entry_t) { ((type) << 3) | ((offset) << 10) })
++      ((swp_entry_t) { ((type) << 4) | ((offset) << 11) })
+ #define __pte_to_swp_entry(pte) \
+       ((swp_entry_t) { pte_val(pte_mkuptodate(pte)) })
+ #define __swp_entry_to_pte(x)         ((pte_t) { (x).val })
+Index: uml-2.6.7/arch/um/Kconfig_char
+===================================================================
+--- uml-2.6.7.orig/arch/um/Kconfig_char        2004-07-16 19:36:33.679026472 +0300
++++ uml-2.6.7/arch/um/Kconfig_char     2004-07-16 19:47:24.069152144 +0300
+@@ -108,11 +108,60 @@
+ config UNIX98_PTYS
+       bool "Unix98 PTY support"
+-
+-config UNIX98_PTY_COUNT
+-      int "Maximum number of Unix98 PTYs in use (0-2048)"
+-      depends on UNIX98_PTYS
++      ---help---
++        A pseudo terminal (PTY) is a software device consisting of two
++        halves: a master and a slave. The slave device behaves identical to
++        a physical terminal; the master device is used by a process to
++        read data from and write data to the slave, thereby emulating a
++        terminal. Typical programs for the master side are telnet servers
++        and xterms.
++
++        Linux has traditionally used the BSD-like names /dev/ptyxx for
++        masters and /dev/ttyxx for slaves of pseudo terminals. This scheme
++        has a number of problems. The GNU C library glibc 2.1 and later,
++        however, supports the Unix98 naming standard: in order to acquire a
++        pseudo terminal, a process opens /dev/ptmx; the number of the pseudo
++        terminal is then made available to the process and the pseudo
++        terminal slave can be accessed as /dev/pts/<number>. What was
++        traditionally /dev/ttyp2 will then be /dev/pts/2, for example.
++
++        All modern Linux systems use the Unix98 ptys.  Say Y unless
++        you're on an embedded system and want to conserve memory.
++
++config LEGACY_PTYS
++      bool "Legacy (BSD) PTY support"
++      default y
++      ---help---
++        A pseudo terminal (PTY) is a software device consisting of two
++        halves: a master and a slave. The slave device behaves identical to
++        a physical terminal; the master device is used by a process to
++        read data from and write data to the slave, thereby emulating a
++        terminal. Typical programs for the master side are telnet servers
++        and xterms.
++
++        Linux has traditionally used the BSD-like names /dev/ptyxx
++        for masters and /dev/ttyxx for slaves of pseudo
++        terminals. This scheme has a number of problems, including
++        security.  This option enables these legacy devices; on most
++        systems, it is safe to say N.
++
++
++config LEGACY_PTY_COUNT
++      int "Maximum number of legacy PTY in use"
++      depends on LEGACY_PTYS
+       default "256"
++      ---help---
++        The maximum number of legacy PTYs that can be used at any one time.
++        The default is 256, and should be more than enough.  Embedded
++        systems may want to reduce this to save memory.
++
++        When not in use, each legacy PTY occupies 12 bytes on 32-bit
++        architectures and 24 bytes on 64-bit architectures.
++
++#config UNIX98_PTY_COUNT
++#     int "Maximum number of Unix98 PTYs in use (0-2048)"
++#     depends on UNIX98_PTYS
++#     default "256"
+ config WATCHDOG
+       bool "Watchdog Timer Support"
+Index: uml-2.6.7/arch/um/kernel/user_util.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/user_util.c  2004-07-16 19:36:07.233046872 +0300
++++ uml-2.6.7/arch/um/kernel/user_util.c       2004-07-16 19:47:24.794041944 +0300
+@@ -5,7 +5,6 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <fcntl.h>
+ #include <unistd.h>
+ #include <limits.h>
+ #include <sys/mman.h> 
+@@ -82,10 +81,10 @@
+       int status, ret;
  
-       /* This happens when the debugger (e.g. strace) is doing system call 
-@@ -145,7 +145,7 @@
-               if(ptrace(PTRACE_SYSCALL, pid, 0, 0) < 0)
-                       tracer_panic("sleeping_process_signal : Failed to "
-                                    "PTRACE_SYSCALL pid %d, errno = %d\n",
--                                   pid, sig);
-+                                   pid, errno);
-               break;
-       case SIGSTOP:
-               break;
-@@ -218,7 +218,7 @@
-                       err = attach(debugger_parent);
-                       if(err){
-                               printf("Failed to attach debugger parent %d, "
--                                     "errno = %d\n", debugger_parent, err);
-+                                     "errno = %d\n", debugger_parent, -err);
-                               debugger_parent = -1;
-                       }
-                       else {
-@@ -233,7 +233,8 @@
-       }
-       set_cmdline("(tracing thread)");
        while(1){
--              if((pid = waitpid(-1, &status, WUNTRACED)) <= 0){
-+              pid = waitpid(-1, &status, WUNTRACED);
-+              if(pid <= 0){
-                       if(errno != ECHILD){
-                               printf("wait failed - errno = %d\n", errno);
+-              if(((ret = waitpid(pid, &status, WUNTRACED)) < 0) ||
++              CATCH_EINTR(ret = waitpid(pid, &status, WUNTRACED));
++              if((ret < 0) ||
+                  !WIFSTOPPED(status) || (WSTOPSIG(status) != sig)){
+                       if(ret < 0){
+-                              if(errno == EINTR) continue;
+                               printk("wait failed, errno = %d\n",
+                                      errno);
                        }
-@@ -401,7 +402,7 @@
-               
-               if(!strcmp(line, "go")) debug_stop = 0;
-               else if(!strcmp(line, "parent")) debug_parent = 1;
--              else printk("Unknown debug option : '%s'\n", line);
-+              else printf("Unknown debug option : '%s'\n", line);
-               line = next;
+@@ -119,29 +118,36 @@
        }
-diff -Naur a/arch/um/kernel/tt/uaccess.c b/arch/um/kernel/tt/uaccess.c
---- a/arch/um/kernel/tt/uaccess.c      1969-12-31 19:00:00.000000000 -0500
-+++ b/arch/um/kernel/tt/uaccess.c      2004-03-10 08:34:01.000000000 -0500
-@@ -0,0 +1,73 @@
-+/* 
-+ * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
-+ * Licensed under the GPL
-+ */
-+
-+#include "linux/sched.h"
-+#include "asm/uaccess.h"
-+
-+int copy_from_user_tt(void *to, const void *from, int n)
-+{
-+      if(!access_ok_tt(VERIFY_READ, from, n)) 
-+              return(n);
-+
-+      return(__do_copy_from_user(to, from, n, &current->thread.fault_addr,
-+                                 &current->thread.fault_catcher));
-+}
-+
-+int copy_to_user_tt(void *to, const void *from, int n)
-+{
-+      if(!access_ok_tt(VERIFY_WRITE, to, n))
-+              return(n);
-+              
-+      return(__do_copy_to_user(to, from, n, &current->thread.fault_addr,
-+                               &current->thread.fault_catcher));
-+}
-+
-+int strncpy_from_user_tt(char *dst, const char *src, int count)
-+{
-+      int n;
-+
-+      if(!access_ok_tt(VERIFY_READ, src, 1)) 
-+              return(-EFAULT);
-+
-+      n = __do_strncpy_from_user(dst, src, count, 
-+                                 &current->thread.fault_addr,
-+                                 &current->thread.fault_catcher);
-+      if(n < 0) return(-EFAULT);
-+      return(n);
-+}
-+
-+int __clear_user_tt(void *mem, int len)
-+{
-+      return(__do_clear_user(mem, len,
-+                             &current->thread.fault_addr,
-+                             &current->thread.fault_catcher));
-+}
+ }
+-int clone_and_wait(int (*fn)(void *), void *arg, void *sp, int flags)
+-{
+-      int pid;
+-
+-      pid = clone(fn, sp, flags, arg);
+-      if(pid < 0) return(-1);
+-      wait_for_stop(pid, SIGSTOP, PTRACE_CONT, NULL);
+-      ptrace(PTRACE_CONT, pid, 0, 0);
+-      return(pid);
+-}
+-
+-int raw(int fd, int complain)
++int __raw(int fd, int complain, int now)
+ {
+       struct termios tt;
+       int err;
++      int when;
 +
-+int clear_user_tt(void *mem, int len)
-+{
-+      if(!access_ok_tt(VERIFY_WRITE, mem, len))
-+              return(len);
++      CATCH_EINTR(err = tcgetattr(fd, &tt));
 +
-+      return(__do_clear_user(mem, len, &current->thread.fault_addr,
-+                             &current->thread.fault_catcher));
-+}
++      if (err < 0) {
++              if (complain)
++                      printk("tcgetattr failed, errno = %d\n", errno);
++              return(-errno);
++      }
+-      tcgetattr(fd, &tt);
+       cfmakeraw(&tt);
+-      err = tcsetattr(fd, TCSANOW, &tt);
+-      if((err < 0) && complain){
+-              printk("tcsetattr failed, errno = %d\n", errno);
 +
-+int strnlen_user_tt(const void *str, int len)
-+{
-+      return(__do_strnlen_user(str, len,
-+                               &current->thread.fault_addr,
-+                               &current->thread.fault_catcher));
-+}
++      if (now)
++              when = TCSANOW;
++      else
++              when = TCSADRAIN;
 +
-+/*
-+ * Overrides for Emacs so that we follow Linus's tabbing style.
-+ * Emacs will notice this stuff at the end of the file and automatically
-+ * adjust the settings for this buffer only.  This must remain at the end
-+ * of the file.
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
-diff -Naur a/arch/um/kernel/tt/uaccess_user.c b/arch/um/kernel/tt/uaccess_user.c
---- a/arch/um/kernel/tt/uaccess_user.c 2004-03-10 08:20:54.000000000 -0500
-+++ b/arch/um/kernel/tt/uaccess_user.c 2004-03-10 08:37:06.000000000 -0500
-@@ -8,15 +8,20 @@
++      CATCH_EINTR(err = tcsetattr(fd, when, &tt));
++
++      if (err < 0) {
++              if (complain)
++                      printk("tcsetattr failed, errno = %d\n", errno);
+               return(-errno);
+       }
++      /*XXX: tcsetattr could have applied only some changes
++       * (and cfmakeraw() is a set of changes) */
+       return(0);
+ }
+Index: uml-2.6.7/arch/um/kernel/umid.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/umid.c       2004-07-16 19:37:31.857182048 +0300
++++ uml-2.6.7/arch/um/kernel/umid.c    2004-07-16 19:47:23.756199720 +0300
+@@ -5,7 +5,6 @@
+ #include <stdio.h>
+ #include <unistd.h>
+-#include <fcntl.h>
+ #include <errno.h>
  #include <string.h>
- #include "user_util.h"
- #include "uml_uaccess.h"
-+#include "task.h"
-+#include "kern_util.h"
+ #include <stdlib.h>
+@@ -33,18 +32,19 @@
+ static int umid_is_random = 1;
+ static int umid_inited = 0;
  
- int __do_copy_from_user(void *to, const void *from, int n,
-                       void **fault_addr, void **fault_catcher)
- {
-+      struct tt_regs save = TASK_REGS(get_current())->tt;
-       unsigned long fault;
-       int faulted;
+-static int make_umid(void);
++static int make_umid(int (*printer)(const char *fmt, ...));
  
-       fault = __do_user_copy(to, from, n, fault_addr, fault_catcher,
-                              __do_copy, &faulted);
-+      TASK_REGS(get_current())->tt = save;
-+
-       if(!faulted) return(0);
-       else return(n - (fault - (unsigned long) from));
- }
-@@ -29,11 +34,14 @@
- int __do_strncpy_from_user(char *dst, const char *src, unsigned long count,
-                          void **fault_addr, void **fault_catcher)
+-static int __init set_umid(char *name, int is_random)
++static int __init set_umid(char *name, int is_random, 
++                         int (*printer)(const char *fmt, ...))
  {
-+      struct tt_regs save = TASK_REGS(get_current())->tt;
-       unsigned long fault;
-       int faulted;
+       if(umid_inited){
+-              printk("Unique machine name can't be set twice\n");
++              (*printer)("Unique machine name can't be set twice\n");
+               return(-1);
+       }
  
-       fault = __do_user_copy(dst, src, count, fault_addr, fault_catcher,
-                              __do_strncpy, &faulted);
-+      TASK_REGS(get_current())->tt = save;
-+
-       if(!faulted) return(strlen(dst));
-       else return(-1);
+       if(strlen(name) > UMID_LEN - 1)
+-              printk("Unique machine name is being truncated to %s "
+-                     "characters\n", UMID_LEN);
++              (*printer)("Unique machine name is being truncated to %s "
++                         "characters\n", UMID_LEN);
+       strlcpy(umid, name, sizeof(umid));
+       umid_is_random = is_random;
+@@ -54,7 +54,7 @@
+ static int __init set_umid_arg(char *name, int *add)
+ {
+-      return(set_umid(name, 0));
++      return(set_umid(name, 0, printf));
  }
-@@ -46,11 +54,14 @@
int __do_clear_user(void *mem, unsigned long len,
-                   void **fault_addr, void **fault_catcher)
__uml_setup("umid=", set_umid_arg,
+@@ -67,7 +67,7 @@
  {
-+      struct tt_regs save = TASK_REGS(get_current())->tt;
-       unsigned long fault;
-       int faulted;
+       int n;
  
-       fault = __do_user_copy(mem, NULL, len, fault_addr, fault_catcher,
-                              __do_clear, &faulted);
-+      TASK_REGS(get_current())->tt = save;
-+
-       if(!faulted) return(0);
-       else return(len - (fault - (unsigned long) mem));
- }
-@@ -58,19 +69,20 @@
- int __do_strnlen_user(const char *str, unsigned long n,
-                     void **fault_addr, void **fault_catcher)
+-      if(!umid_inited && make_umid()) return(-1);
++      if(!umid_inited && make_umid(printk)) return(-1);
+       n = strlen(uml_dir) + strlen(umid) + strlen(name) + 1;
+       if(n > len){
+@@ -85,22 +85,23 @@
  {
-+      struct tt_regs save = TASK_REGS(get_current())->tt;
-       int ret;
-       unsigned long *faddrp = (unsigned long *)fault_addr;
-       jmp_buf jbuf;
+       char file[strlen(uml_dir) + UMID_LEN + sizeof("/pid\0")];
+       char pid[sizeof("nnnnn\0")];
+-      int fd;
++      int fd, n;
  
-       *fault_catcher = &jbuf;
--      if(setjmp(jbuf) == 0){
-+      if(sigsetjmp(jbuf, 1) == 0)
-               ret = strlen(str) + 1;
--      } 
--      else {
--              ret = *faddrp - (unsigned long) str;
--      }
-+      else ret = *faddrp - (unsigned long) str;
-+
-       *fault_addr = NULL;
-       *fault_catcher = NULL;
-+
-+      TASK_REGS(get_current())->tt = save;
-       return ret;
- }
+       if(umid_file_name("pid", file, sizeof(file))) return 0;
  
-diff -Naur a/arch/um/kernel/tt/unmap.c b/arch/um/kernel/tt/unmap.c
---- a/arch/um/kernel/tt/unmap.c        2004-03-10 08:22:29.000000000 -0500
-+++ b/arch/um/kernel/tt/unmap.c        2004-03-10 08:42:05.000000000 -0500
-@@ -3,10 +3,7 @@
-  * Licensed under the GPL
-  */
+       fd = os_open_file(file, of_create(of_excl(of_rdwr(OPENFLAGS()))), 
+                         0644);
+       if(fd < 0){
+-              printk("Open of machine pid file \"%s\" failed - "
+-                     "errno = %d\n", file, -fd);
++              printf("Open of machine pid file \"%s\" failed - "
++                     "err = %d\n", file, -fd);
+               return 0;
+       }
  
--#include <stdio.h>
--#include <errno.h>
- #include <sys/mman.h>
--#include "user.h"
+       sprintf(pid, "%d\n", os_getpid());
+-      if(write(fd, pid, strlen(pid)) != strlen(pid))
+-              printk("Write of pid file failed - errno = %d\n", errno);
+-      close(fd);
++      n = os_write_file(fd, pid, strlen(pid));
++      if(n != strlen(pid))
++              printf("Write of pid file failed - err = %d\n", -n);
++      os_close_file(fd);
+       return 0;
+ }
  
- int switcheroo(int fd, int prot, void *from, void *to, int size)
+@@ -111,7 +112,8 @@
+       int len;
+       char file[256];
+-      if((directory = opendir(dir)) == NULL){
++      directory = opendir(dir);
++      if(directory == NULL){
+               printk("actually_do_remove : couldn't open directory '%s', "
+                      "errno = %d\n", dir, errno);
+               return(1);
+@@ -160,22 +162,24 @@
  {
-diff -Naur a/arch/um/kernel/tty_log.c b/arch/um/kernel/tty_log.c
---- a/arch/um/kernel/tty_log.c 2004-03-10 08:21:48.000000000 -0500
-+++ b/arch/um/kernel/tty_log.c 2004-03-10 08:40:25.000000000 -0500
-@@ -9,10 +9,10 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
--#include <fcntl.h>
- #include <sys/time.h>
- #include "init.h"
- #include "user.h"
-+#include "kern_util.h"
- #include "os.h"
+       char file[strlen(uml_dir) + UMID_LEN + sizeof("/pid\0")];
+       char pid[sizeof("nnnnn\0")], *end;
+-      int dead, fd, p;
++      int dead, fd, p, n;
  
- #define TTY_LOG_DIR "./"
-@@ -24,29 +24,40 @@
- #define TTY_LOG_OPEN 1
- #define TTY_LOG_CLOSE 2
- #define TTY_LOG_WRITE 3
-+#define TTY_LOG_EXEC 4
-+
-+#define TTY_READ 1
-+#define TTY_WRITE 2
+       sprintf(file, "%s/pid", dir);
+       dead = 0;
+-      if((fd = os_open_file(file, of_read(OPENFLAGS()), 0)) < 0){
++      fd = os_open_file(file, of_read(OPENFLAGS()), 0);
++      if(fd < 0){
+               if(fd != -ENOENT){
+                       printk("not_dead_yet : couldn't open pid file '%s', "
+-                             "errno = %d\n", file, -fd);
++                             "err = %d\n", file, -fd);
+                       return(1);
+               }
+               dead = 1;
+       }
+       if(fd > 0){
+-              if(read(fd, pid, sizeof(pid)) < 0){
++              n = os_read_file(fd, pid, sizeof(pid));
++              if(n < 0){
+                       printk("not_dead_yet : couldn't read pid file '%s', "
+-                             "errno = %d\n", file, errno);
++                             "err = %d\n", file, -n);
+                       return(1);
+               }
+               p = strtoul(pid, &end, 0);
+@@ -197,7 +201,7 @@
+       if((strlen(name) > 0) && (name[strlen(name) - 1] != '/')){
+               uml_dir = malloc(strlen(name) + 1);
+               if(uml_dir == NULL){
+-                      printk("Failed to malloc uml_dir - error = %d\n",
++                      printf("Failed to malloc uml_dir - error = %d\n",
+                              errno);
+                       uml_dir = name;
+                       return(0);
+@@ -217,7 +221,7 @@
+               char *home = getenv("HOME");
+               if(home == NULL){
+-                      printk("make_uml_dir : no value in environment for "
++                      printf("make_uml_dir : no value in environment for "
+                              "$HOME\n");
+                       exit(1);
+               }
+@@ -232,57 +236,59 @@
+               dir[len + 1] = '\0';
+       }
  
- struct tty_log_buf {
-       int what;
-       unsigned long tty;
-       int len;
-+      int direction;
-+      unsigned long sec;
-+      unsigned long usec;
- };
+-      if((uml_dir = malloc(strlen(dir) + 1)) == NULL){
++      uml_dir = malloc(strlen(dir) + 1);
++      if(uml_dir == NULL){
+               printf("make_uml_dir : malloc failed, errno = %d\n", errno);
+               exit(1);
+       }
+       strcpy(uml_dir, dir);
+       
+       if((mkdir(uml_dir, 0777) < 0) && (errno != EEXIST)){
+-              printk("Failed to mkdir %s - errno = %i\n", uml_dir, errno);
++              printf("Failed to mkdir %s - errno = %i\n", uml_dir, errno);
+               return(-1);
+       }
+       return 0;
+ }
  
--int open_tty_log(void *tty)
-+int open_tty_log(void *tty, void *current_tty)
+-static int __init make_umid(void)
++static int __init make_umid(int (*printer)(const char *fmt, ...))
  {
-       struct timeval tv;
-       struct tty_log_buf data;
-       char buf[strlen(tty_log_dir) + sizeof("01234567890-01234567\0")];
-       int fd;
+       int fd, err;
+       char tmp[strlen(uml_dir) + UMID_LEN + 1];
  
-+      gettimeofday(&tv, NULL);
-       if(tty_log_fd != -1){
--              data = ((struct tty_log_buf) { what :   TTY_LOG_OPEN,
--                                             tty : (unsigned long) tty,
--                                             len : 0 });
--              write(tty_log_fd, &data, sizeof(data));
-+              data = ((struct tty_log_buf) { .what    = TTY_LOG_OPEN,
-+                                             .tty  = (unsigned long) tty,
-+                                             .len  = sizeof(current_tty),
-+                                             .direction = 0,
-+                                             .sec = tv.tv_sec,
-+                                             .usec = tv.tv_usec } );
-+              os_write_file(tty_log_fd, &data, sizeof(data));
-+              os_write_file(tty_log_fd, &current_tty, data.len);
-               return(tty_log_fd);
-       }
+       strlcpy(tmp, uml_dir, sizeof(tmp));
  
--      gettimeofday(&tv, NULL);
-       sprintf(buf, "%s/%0u-%0u", tty_log_dir, (unsigned int) tv.tv_sec, 
-               (unsigned int) tv.tv_usec);
+-      if(*umid == 0){
++      if(!umid_inited){
+               strcat(tmp, "XXXXXX");
+               fd = mkstemp(tmp);
+               if(fd < 0){
+-                      printk("make_umid - mkstemp failed, errno = %d\n",
+-                             errno);
++                      (*printer)("make_umid - mkstemp failed, errno = %d\n",
++                                 errno);
+                       return(1);
+               }
  
-@@ -62,30 +73,117 @@
- void close_tty_log(int fd, void *tty)
- {
-       struct tty_log_buf data;
-+      struct timeval tv;
+-              close(fd);
++              os_close_file(fd);
+               /* There's a nice tiny little race between this unlink and
+                * the mkdir below.  It'd be nice if there were a mkstemp
+                * for directories.
+                */
+               unlink(tmp);
+-              set_umid(&tmp[strlen(uml_dir)], 1);
++              set_umid(&tmp[strlen(uml_dir)], 1, printer);
+       }
+       
+       sprintf(tmp, "%s%s", uml_dir, umid);
  
-       if(tty_log_fd != -1){
--              data = ((struct tty_log_buf) { what :   TTY_LOG_CLOSE,
--                                             tty : (unsigned long) tty,
--                                             len : 0 });
--              write(tty_log_fd, &data, sizeof(data));
-+              gettimeofday(&tv, NULL);
-+              data = ((struct tty_log_buf) { .what    = TTY_LOG_CLOSE,
-+                                             .tty  = (unsigned long) tty,
-+                                             .len  = 0,
-+                                             .direction = 0,
-+                                             .sec = tv.tv_sec,
-+                                             .usec = tv.tv_usec } );
-+              os_write_file(tty_log_fd, &data, sizeof(data));
-               return;
+-      if((err = mkdir(tmp, 0777)) < 0){
++      err = mkdir(tmp, 0777);
++      if(err < 0){
+               if(errno == EEXIST){
+                       if(not_dead_yet(tmp)){
+-                              printk("umid '%s' is in use\n", umid);
++                              (*printer)("umid '%s' is in use\n", umid);
+                               return(-1);
+                       }
+                       err = mkdir(tmp, 0777);
+               }
+       }
+       if(err < 0){
+-              printk("Failed to create %s - errno = %d\n", umid, errno);
++              (*printer)("Failed to create %s - errno = %d\n", umid, errno);
+               return(-1);
        }
--      close(fd);
-+      os_close_file(fd);
- }
  
--int write_tty_log(int fd, char *buf, int len, void *tty)
-+static int log_chunk(int fd, const char *buf, int len)
- {
-+      int total = 0, try, missed, n;
-+      char chunk[64];
+@@ -295,7 +301,13 @@
+ );
+ __uml_postsetup(make_uml_dir);
+-__uml_postsetup(make_umid);
++
++static int __init make_umid_setup(void)
++{
++      return(make_umid(printf));
++}
++
++__uml_postsetup(make_umid_setup);
+ __uml_postsetup(create_pid_file);
+ /*
+Index: uml-2.6.7/include/linux/ghash.h
+===================================================================
+--- uml-2.6.7.orig/include/linux/ghash.h       2004-07-16 19:47:23.863183456 +0300
++++ uml-2.6.7/include/linux/ghash.h    2004-07-16 19:47:23.875181632 +0300
+@@ -0,0 +1,236 @@
++/*
++ * include/linux/ghash.h -- generic hashing with fuzzy retrieval
++ *
++ * (C) 1997 Thomas Schoebel-Theuer
++ *
++ * The algorithms implemented here seem to be a completely new invention,
++ * and I'll publish the fundamentals in a paper.
++ */
++
++#ifndef _GHASH_H
++#define _GHASH_H
++/* HASHSIZE _must_ be a power of two!!! */
++
++
++#define DEF_HASH_FUZZY_STRUCTS(NAME,HASHSIZE,TYPE) \
++\
++struct NAME##_table {\
++      TYPE * hashtable[HASHSIZE];\
++      TYPE * sorted_list;\
++      int nr_entries;\
++};\
++\
++struct NAME##_ptrs {\
++      TYPE * next_hash;\
++      TYPE * prev_hash;\
++      TYPE * next_sorted;\
++      TYPE * prev_sorted;\
++};
++
++#define DEF_HASH_FUZZY(LINKAGE,NAME,HASHSIZE,TYPE,PTRS,KEYTYPE,KEY,KEYCMP,KEYEQ,HASHFN)\
++\
++LINKAGE void insert_##NAME##_hash(struct NAME##_table * tbl, TYPE * elem)\
++{\
++      int ix = HASHFN(elem->KEY);\
++      TYPE ** base = &tbl->hashtable[ix];\
++      TYPE * ptr = *base;\
++      TYPE * prev = NULL;\
++\
++      tbl->nr_entries++;\
++      while(ptr && KEYCMP(ptr->KEY, elem->KEY)) {\
++              base = &ptr->PTRS.next_hash;\
++              prev = ptr;\
++              ptr = *base;\
++      }\
++      elem->PTRS.next_hash = ptr;\
++      elem->PTRS.prev_hash = prev;\
++      if(ptr) {\
++              ptr->PTRS.prev_hash = elem;\
++      }\
++      *base = elem;\
++\
++      ptr = prev;\
++      if(!ptr) {\
++              ptr = tbl->sorted_list;\
++              prev = NULL;\
++      } else {\
++              prev = ptr->PTRS.prev_sorted;\
++      }\
++      while(ptr) {\
++              TYPE * next = ptr->PTRS.next_hash;\
++              if(next && KEYCMP(next->KEY, elem->KEY)) {\
++                      prev = ptr;\
++                      ptr = next;\
++              } else if(KEYCMP(ptr->KEY, elem->KEY)) {\
++                      prev = ptr;\
++                      ptr = ptr->PTRS.next_sorted;\
++              } else\
++                      break;\
++      }\
++      elem->PTRS.next_sorted = ptr;\
++      elem->PTRS.prev_sorted = prev;\
++      if(ptr) {\
++              ptr->PTRS.prev_sorted = elem;\
++      }\
++      if(prev) {\
++              prev->PTRS.next_sorted = elem;\
++      } else {\
++              tbl->sorted_list = elem;\
++      }\
++}\
++\
++LINKAGE void remove_##NAME##_hash(struct NAME##_table * tbl, TYPE * elem)\
++{\
++      TYPE * next = elem->PTRS.next_hash;\
++      TYPE * prev = elem->PTRS.prev_hash;\
++\
++      tbl->nr_entries--;\
++      if(next)\
++              next->PTRS.prev_hash = prev;\
++      if(prev)\
++              prev->PTRS.next_hash = next;\
++      else {\
++              int ix = HASHFN(elem->KEY);\
++              tbl->hashtable[ix] = next;\
++      }\
++\
++      next = elem->PTRS.next_sorted;\
++      prev = elem->PTRS.prev_sorted;\
++      if(next)\
++              next->PTRS.prev_sorted = prev;\
++      if(prev)\
++              prev->PTRS.next_sorted = next;\
++      else\
++              tbl->sorted_list = next;\
++}\
++\
++LINKAGE TYPE * find_##NAME##_hash(struct NAME##_table * tbl, KEYTYPE pos)\
++{\
++      int ix = hashfn(pos);\
++      TYPE * ptr = tbl->hashtable[ix];\
++      while(ptr && KEYCMP(ptr->KEY, pos))\
++              ptr = ptr->PTRS.next_hash;\
++      if(ptr && !KEYEQ(ptr->KEY, pos))\
++              ptr = NULL;\
++      return ptr;\
++}\
++\
++LINKAGE TYPE * find_##NAME##_hash_fuzzy(struct NAME##_table * tbl, KEYTYPE pos)\
++{\
++      int ix;\
++      int offset;\
++      TYPE * ptr;\
++      TYPE * next;\
++\
++      ptr = tbl->sorted_list;\
++      if(!ptr || KEYCMP(pos, ptr->KEY))\
++              return NULL;\
++      ix = HASHFN(pos);\
++      offset = HASHSIZE;\
++      do {\
++              offset >>= 1;\
++              next = tbl->hashtable[(ix+offset) & ((HASHSIZE)-1)];\
++              if(next && (KEYCMP(next->KEY, pos) || KEYEQ(next->KEY, pos))\
++                 && KEYCMP(ptr->KEY, next->KEY))\
++                      ptr = next;\
++      } while(offset);\
++\
++      for(;;) {\
++              next = ptr->PTRS.next_hash;\
++              if(next) {\
++                      if(KEYCMP(next->KEY, pos)) {\
++                              ptr = next;\
++                              continue;\
++                      }\
++              }\
++              next = ptr->PTRS.next_sorted;\
++              if(next && KEYCMP(next->KEY, pos)) {\
++                      ptr = next;\
++                      continue;\
++              }\
++              return ptr;\
++      }\
++      return NULL;\
++}
 +
-+      while(len > 0){
-+              try = (len > sizeof(chunk)) ? sizeof(chunk) : len;
-+              missed = copy_from_user_proc(chunk, (char *) buf, try);
-+              try -= missed;
-+              n = os_write_file(fd, chunk, try);
-+              if(n != try) {
-+                      if(n < 0) 
-+                              return(n);
-+                      return(-EIO);
-+              }
-+              if(missed != 0)
-+                      return(-EFAULT);
++/* LINKAGE - empty or "static", depending on whether you want the definitions to
++ *    be public or not
++ * NAME - a string to stick in names to make this hash table type distinct from
++ *    any others
++ * HASHSIZE - number of buckets
++ * TYPE - type of data contained in the buckets - must be a structure, one 
++ *    field is of type NAME_ptrs, another is the hash key
++ * PTRS - TYPE must contain a field of type NAME_ptrs, PTRS is the name of that
++ *    field
++ * KEYTYPE - type of the key field within TYPE
++ * KEY - name of the key field within TYPE
++ * KEYCMP - pointer to function that compares KEYTYPEs to each other - the
++ *    prototype is int KEYCMP(KEYTYPE, KEYTYPE), it returns zero for equal, 
++ *    non-zero for not equal
++ * HASHFN - the hash function - the prototype is int HASHFN(KEYTYPE),
++ *    it returns a number in the range 0 ... HASHSIZE - 1
++ * Call DEF_HASH_STRUCTS, define your hash table as a NAME_table, then call
++ * DEF_HASH.
++ */
 +
-+              len -= try;
-+              total += try;
-+              buf += try;
-+      }
++#define DEF_HASH_STRUCTS(NAME,HASHSIZE,TYPE) \
++\
++struct NAME##_table {\
++      TYPE * hashtable[HASHSIZE];\
++      int nr_entries;\
++};\
++\
++struct NAME##_ptrs {\
++      TYPE * next_hash;\
++      TYPE * prev_hash;\
++};
 +
-+      return(total);
++#define DEF_HASH(LINKAGE,NAME,TYPE,PTRS,KEYTYPE,KEY,KEYCMP,HASHFN)\
++\
++LINKAGE void insert_##NAME##_hash(struct NAME##_table * tbl, TYPE * elem)\
++{\
++      int ix = HASHFN(elem->KEY);\
++      TYPE ** base = &tbl->hashtable[ix];\
++      TYPE * ptr = *base;\
++      TYPE * prev = NULL;\
++\
++      tbl->nr_entries++;\
++      while(ptr && KEYCMP(ptr->KEY, elem->KEY)) {\
++              base = &ptr->PTRS.next_hash;\
++              prev = ptr;\
++              ptr = *base;\
++      }\
++      elem->PTRS.next_hash = ptr;\
++      elem->PTRS.prev_hash = prev;\
++      if(ptr) {\
++              ptr->PTRS.prev_hash = elem;\
++      }\
++      *base = elem;\
++}\
++\
++LINKAGE void remove_##NAME##_hash(struct NAME##_table * tbl, TYPE * elem)\
++{\
++      TYPE * next = elem->PTRS.next_hash;\
++      TYPE * prev = elem->PTRS.prev_hash;\
++\
++      tbl->nr_entries--;\
++      if(next)\
++              next->PTRS.prev_hash = prev;\
++      if(prev)\
++              prev->PTRS.next_hash = next;\
++      else {\
++              int ix = HASHFN(elem->KEY);\
++              tbl->hashtable[ix] = next;\
++      }\
++}\
++\
++LINKAGE TYPE * find_##NAME##_hash(struct NAME##_table * tbl, KEYTYPE pos)\
++{\
++      int ix = HASHFN(pos);\
++      TYPE * ptr = tbl->hashtable[ix];\
++      while(ptr && KEYCMP(ptr->KEY, pos))\
++              ptr = ptr->PTRS.next_hash;\
++      return ptr;\
 +}
 +
-+int write_tty_log(int fd, const char *buf, int len, void *tty, int is_read)
-+{
-+      struct timeval tv;
-       struct tty_log_buf data;
-+      int direction;
++#endif
+Index: uml-2.6.7/arch/um/kernel/tt/include/mode.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/tt/include/mode.h    2004-07-16 19:36:59.998025376 +0300
++++ uml-2.6.7/arch/um/kernel/tt/include/mode.h 2004-07-16 19:47:23.743201696 +0300
+@@ -8,6 +8,8 @@
  
-       if(fd == tty_log_fd){
--              data = ((struct tty_log_buf) { what :   TTY_LOG_WRITE,
--                                             tty : (unsigned long) tty,
--                                             len : len });
--              write(tty_log_fd, &data, sizeof(data));
-+              gettimeofday(&tv, NULL);
-+              direction = is_read ? TTY_READ : TTY_WRITE;
-+              data = ((struct tty_log_buf) { .what    = TTY_LOG_WRITE,
-+                                             .tty  = (unsigned long) tty,
-+                                             .len  = len,
-+                                             .direction = direction,
-+                                             .sec = tv.tv_sec,
-+                                             .usec = tv.tv_usec } );
-+              os_write_file(tty_log_fd, &data, sizeof(data));
-       }
--      return(write(fd, buf, len));
-+
-+      return(log_chunk(fd, buf, len));
- }
+ #include "sysdep/ptrace.h"
  
-+void log_exec(char **argv, void *tty)
-+{
-+      struct timeval tv;
-+      struct tty_log_buf data;
-+      char **ptr,*arg;
-+      int len;
-+      
-+      if(tty_log_fd == -1) return;
-+
-+      gettimeofday(&tv, NULL);
-+
-+      len = 0;
-+      for(ptr = argv; ; ptr++){
-+              if(copy_from_user_proc(&arg, ptr, sizeof(arg)))
-+                      return;
-+              if(arg == NULL) break;
-+              len += strlen_user_proc(arg);
-+      }
-+
-+      data = ((struct tty_log_buf) { .what    = TTY_LOG_EXEC,
-+                                     .tty  = (unsigned long) tty,
-+                                     .len  = len,
-+                                     .direction = 0,
-+                                     .sec = tv.tv_sec,
-+                                     .usec = tv.tv_usec } );
-+      os_write_file(tty_log_fd, &data, sizeof(data));
++enum { OP_NONE, OP_EXEC, OP_FORK, OP_TRACE_ON, OP_REBOOT, OP_HALT, OP_CB };
 +
-+      for(ptr = argv; ; ptr++){
-+              if(copy_from_user_proc(&arg, ptr, sizeof(arg)))
-+                      return;
-+              if(arg == NULL) break;
-+              log_chunk(tty_log_fd, arg, strlen_user_proc(arg));
-+      }
-+}
+ extern int tracing_pid;
+ extern int tracer(int (*init_proc)(void *), void *sp);
+Index: uml-2.6.7/arch/um/include/os.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/include/os.h        2004-07-16 19:36:10.807503472 +0300
++++ uml-2.6.7/arch/um/include/os.h     2004-07-16 19:47:23.705207472 +0300
+@@ -17,6 +17,32 @@
+ #define OS_TYPE_FIFO 6
+ #define OS_TYPE_SOCK 7
++/* os_access() flags */
++#define OS_ACC_F_OK    0       /* Test for existence.  */
++#define OS_ACC_X_OK    1       /* Test for execute permission.  */
++#define OS_ACC_W_OK    2       /* Test for write permission.  */
++#define OS_ACC_R_OK    4       /* Test for read permission.  */
++#define OS_ACC_RW_OK   (OS_ACC_W_OK | OS_ACC_R_OK) /* Test for RW permission */
 +
-+extern void register_tty_logger(int (*opener)(void *, void *),
-+                              int (*writer)(int, const char *, int, 
-+                                            void *, int),
-+                              void (*closer)(int, void *));
++/*
++ * types taken from stat_file() in hostfs_user.c
++ * (if they are wrong here, they are wrong there...).
++ */
++struct uml_stat {
++      int                ust_dev;        /* device */
++      unsigned long long ust_ino;        /* inode */
++      int                ust_mode;       /* protection */
++      int                ust_nlink;      /* number of hard links */
++      int                ust_uid;        /* user ID of owner */
++      int                ust_gid;        /* group ID of owner */
++      unsigned long long ust_size;       /* total size, in bytes */
++      int                ust_blksize;    /* blocksize for filesystem I/O */
++      unsigned long long ust_blocks;     /* number of blocks allocated */
++      unsigned long      ust_atime;      /* time of last access */
++      unsigned long      ust_mtime;      /* time of last modification */
++      unsigned long      ust_ctime;      /* time of last change */
++};
 +
-+static int register_logger(void)
-+{
-+      register_tty_logger(open_tty_log, write_tty_log, close_tty_log);
-+      return(0);
-+}
+ struct openflags {
+       unsigned int r : 1;
+       unsigned int w : 1;
+@@ -84,29 +110,47 @@
+       flags.e = 1; 
+       return(flags); 
+ }
+- 
 +
-+__uml_initcall(register_logger);
+ static inline struct openflags of_cloexec(struct openflags flags)
+ { 
+       flags.cl = 1; 
+       return(flags); 
+ }
+   
++extern int os_stat_file(const char *file_name, struct uml_stat *buf);
++extern int os_stat_fd(const int fd, struct uml_stat *buf);
++extern int os_access(const char *file, int mode);
++extern void os_print_error(int error, const char* str);
++extern int os_get_exec_close(int fd, int *close_on_exec);
++extern int os_set_exec_close(int fd, int close_on_exec);
++extern int os_ioctl_generic(int fd, unsigned int cmd, unsigned long arg);
++extern int os_window_size(int fd, int *rows, int *cols);
++extern int os_new_tty_pgrp(int fd, int pid);
++extern int os_get_ifname(int fd, char *namebuf);
++extern int os_set_slip(int fd);
++extern int os_set_owner(int fd, int pid);
++extern int os_sigio_async(int master, int slave);
++extern int os_mode_fd(int fd, int mode);
 +
- static int __init set_tty_log_dir(char *name, int *add)
- {
-       tty_log_dir = name;
-@@ -104,7 +202,7 @@
-       tty_log_fd = strtoul(name, &end, 0);
-       if((*end != '\0') || (end == name)){
--              printk("set_tty_log_fd - strtoul failed on '%s'\n", name);
-+              printf("set_tty_log_fd - strtoul failed on '%s'\n", name);
-               tty_log_fd = -1;
-       }
-       return 0;
-diff -Naur a/arch/um/kernel/uaccess_user.c b/arch/um/kernel/uaccess_user.c
---- a/arch/um/kernel/uaccess_user.c    2004-03-10 08:22:24.000000000 -0500
-+++ b/arch/um/kernel/uaccess_user.c    2004-03-10 08:41:32.000000000 -0500
-@@ -20,7 +20,7 @@
-       jmp_buf jbuf;
-       *fault_catcher = &jbuf;
--      if(setjmp(jbuf) == 0){
-+      if(sigsetjmp(jbuf, 1) == 0){
-               (*op)(to, from, n);
-               ret = 0;
-               *faulted_out = 0;
-diff -Naur a/arch/um/kernel/um_arch.c b/arch/um/kernel/um_arch.c
---- a/arch/um/kernel/um_arch.c 2004-03-10 08:22:34.000000000 -0500
-+++ b/arch/um/kernel/um_arch.c 2004-03-10 08:42:28.000000000 -0500
-@@ -38,13 +38,18 @@
- #include "mode_kern.h"
- #include "mode.h"
+ extern int os_seek_file(int fd, __u64 offset);
+ extern int os_open_file(char *file, struct openflags flags, int mode);
+ extern int os_read_file(int fd, void *buf, int len);
+-extern int os_write_file(int fd, void *buf, int count);
++extern int os_write_file(int fd, const void *buf, int count);
+ extern int os_file_size(char *file, long long *size_out);
++extern int os_file_modtime(char *file, unsigned long *modtime);
+ extern int os_pipe(int *fd, int stream, int close_on_exec);
+ extern int os_set_fd_async(int fd, int owner);
+ extern int os_set_fd_block(int fd, int blocking);
+ extern int os_accept_connection(int fd);
++extern int os_create_unix_socket(char *file, int len, int close_on_exec);
+ extern int os_shutdown_socket(int fd, int r, int w);
+ extern void os_close_file(int fd);
+ extern int os_rcv_fd(int fd, int *helper_pid_out);
+-extern int create_unix_socket(char *file, int len);
++extern int create_unix_socket(char *file, int len, int close_on_exec);
+ extern int os_connect_socket(char *name);
+ extern int os_file_type(char *file);
+ extern int os_file_mode(char *file, struct openflags *mode_out);
++extern int os_lock_file(int fd, int excl);
  
--#define DEFAULT_COMMAND_LINE "root=6200"
-+#define DEFAULT_COMMAND_LINE "root=98:0"
+ extern unsigned long os_process_pc(int pid);
+ extern int os_process_parent(int pid);
+@@ -115,11 +159,12 @@
+ extern void os_usr1_process(int pid);
+ extern int os_getpid(void);
  
- struct cpuinfo_um boot_cpu_data = { 
-       .loops_per_jiffy        = 0,
-       .ipi_pipe               = { -1, -1 }
- };
+-extern int os_map_memory(void *virt, int fd, unsigned long off, 
++extern int os_map_memory(void *virt, int fd, unsigned long long off, 
+                        unsigned long len, int r, int w, int x);
+ extern int os_protect_memory(void *addr, unsigned long len, 
+                            int r, int w, int x);
+ extern int os_unmap_memory(void *addr, int len);
++extern void os_flush_stdout(void);
  
-+/* Placeholder to make UML link until the vsyscall stuff is actually 
-+ * implemented
-+ */
-+void *__kernel_vsyscall;
-+
- unsigned long thread_saved_pc(struct task_struct *task)
- {
-       return(os_process_pc(CHOOSE_MODE_PROC(thread_pid_tt, thread_pid_skas,
-@@ -53,18 +58,22 @@
+ #endif
  
- static int show_cpuinfo(struct seq_file *m, void *v)
+Index: uml-2.6.7/arch/um/kernel/tt/exec_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/tt/exec_user.c       2004-07-16 19:37:20.241947832 +0300
++++ uml-2.6.7/arch/um/kernel/tt/exec_user.c    2004-07-16 19:47:24.799041184 +0300
+@@ -19,13 +19,18 @@
+ void do_exec(int old_pid, int new_pid)
  {
--      int index;
-+      int index = 0;
+       unsigned long regs[FRAME_SIZE];
++      int err;
  
--      index = (struct cpuinfo_um *)v - cpu_data;
- #ifdef CONFIG_SMP
-+      index = (struct cpuinfo_um *) v - cpu_data;
-       if (!cpu_online(index))
-               return 0;
- #endif
+       if((ptrace(PTRACE_ATTACH, new_pid, 0, 0) < 0) ||
+-         (ptrace(PTRACE_CONT, new_pid, 0, 0) < 0) ||
+-         (waitpid(new_pid, 0, WUNTRACED) < 0))
++         (ptrace(PTRACE_CONT, new_pid, 0, 0) < 0))
+               tracer_panic("do_exec failed to attach proc - errno = %d",
+                            errno);
++      CATCH_EINTR(err = waitpid(new_pid, 0, WUNTRACED));
++      if (err < 0)
++              tracer_panic("do_exec failed to attach proc in waitpid - errno = %d",
++                           errno);
++
+       if(ptrace_getregs(old_pid, regs) < 0)
+               tracer_panic("do_exec failed to get registers - errno = %d",
+                            errno);
+Index: uml-2.6.7/include/asm-um/timex.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/timex.h      2004-07-16 19:36:59.398116576 +0300
++++ uml-2.6.7/include/asm-um/timex.h   2004-07-16 19:47:23.803192576 +0300
+@@ -1,8 +1,6 @@
+ #ifndef __UM_TIMEX_H
+ #define __UM_TIMEX_H
  
--      seq_printf(m, "bogomips\t: %lu.%02lu\n",
-+      seq_printf(m, "processor\t: %d\n", index);
-+      seq_printf(m, "vendor_id\t: User Mode Linux\n");
-+      seq_printf(m, "model name\t: UML\n");
-+      seq_printf(m, "mode\t\t: %s\n", CHOOSE_MODE("tt", "skas"));
-+      seq_printf(m, "host\t\t: %s\n", host_info);
-+      seq_printf(m, "bogomips\t: %lu.%02lu\n\n",
-                  loops_per_jiffy/(500000/HZ),
-                  (loops_per_jiffy/(5000/HZ)) % 100);
--      seq_printf(m, "host\t\t: %s\n", host_info);
+-#include "linux/time.h"
+-
+ typedef unsigned long cycles_t;
  
-       return(0);
- }
-@@ -134,12 +143,12 @@
-       if(umid != NULL){
-               snprintf(argv1_begin, 
-                        (argv1_end - argv1_begin) * sizeof(*ptr), 
--                       "(%s)", umid);
-+                       "(%s) ", umid);
-               ptr = &argv1_begin[strlen(argv1_begin)];
-       }
-       else ptr = argv1_begin;
+ #define cacheflush_time (0)
+Index: uml-2.6.7/arch/um/kernel/skas/include/skas.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/skas/include/skas.h  2004-07-16 19:36:19.759142616 +0300
++++ uml-2.6.7/arch/um/kernel/skas/include/skas.h       2004-07-16 19:47:23.727204128 +0300
+@@ -8,7 +8,7 @@
  
--      snprintf(ptr, (argv1_end - ptr) * sizeof(*ptr), " [%s]", cmd);
-+      snprintf(ptr, (argv1_end - ptr) * sizeof(*ptr), "[%s]", cmd);
-       memset(argv1_begin + strlen(argv1_begin), '\0', 
-              argv1_end - argv1_begin - strlen(argv1_begin));
- #endif
-@@ -179,7 +188,7 @@
- static int __init uml_ncpus_setup(char *line, int *add)
- {
-        if (!sscanf(line, "%d", &ncpus)) {
--               printk("Couldn't parse [%s]\n", line);
-+               printf("Couldn't parse [%s]\n", line);
-                return -1;
-        }
+ #include "sysdep/ptrace.h"
  
-@@ -210,7 +219,7 @@
+-extern int userspace_pid;
++extern int userspace_pid[];
  
- static int __init mode_tt_setup(char *line, int *add)
- {
--      printk("CONFIG_MODE_TT disabled - 'mode=tt' ignored\n");
-+      printf("CONFIG_MODE_TT disabled - 'mode=tt' ignored\n");
-       return(0);
- }
+ extern void switch_threads(void *me, void *next);
+ extern void thread_wait(void *sw, void *fb);
+@@ -32,7 +32,7 @@
+ extern int new_mm(int from);
+ extern void save_registers(union uml_pt_regs *regs);
+ extern void restore_registers(union uml_pt_regs *regs);
+-extern void start_userspace(void);
++extern void start_userspace(int cpu);
+ extern void init_registers(int pid);
  
-@@ -221,7 +230,7 @@
+ #endif
+Index: uml-2.6.7/arch/um/drivers/mmapper_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/mmapper_kern.c      2004-07-16 19:36:04.585449368 +0300
++++ uml-2.6.7/arch/um/drivers/mmapper_kern.c   2004-07-16 19:47:23.688210056 +0300
+@@ -120,7 +120,10 @@
+       printk(KERN_INFO "Mapper v0.1\n");
  
- static int __init mode_tt_setup(char *line, int *add)
- {
--      printk("CONFIG_MODE_SKAS disabled - 'mode=tt' redundant\n");
-+      printf("CONFIG_MODE_SKAS disabled - 'mode=tt' redundant\n");
-       return(0);
- }
+       v_buf = (char *) find_iomem("mmapper", &mmapper_size);
+-      if(mmapper_size == 0) return(0);
++      if(mmapper_size == 0){
++              printk(KERN_ERR "mmapper_init - find_iomem failed\n");
++              return(0);
++      }
  
-@@ -291,7 +300,7 @@
+       p_buf = __pa(v_buf);
  
- /* Set during early boot */
- unsigned long brk_start;
--static struct vm_reserved kernel_vm_reserved;
-+unsigned long end_iomem;
+Index: uml-2.6.7/arch/um/os-Linux/process.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/os-Linux/process.c  2004-07-16 19:36:02.092828304 +0300
++++ uml-2.6.7/arch/um/os-Linux/process.c       2004-07-16 19:47:24.802040728 +0300
+@@ -1,5 +1,5 @@
+ /* 
+- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
++ * Copyright (C) 2002 Jeff Dike (jdike@addtoit.com)
+  * Licensed under the GPL
+  */
  
- #define MIN_VMALLOC (32 * 1024 * 1024)
+@@ -7,32 +7,38 @@
+ #include <stdio.h>
+ #include <errno.h>
+ #include <signal.h>
++#include <linux/unistd.h>
+ #include <sys/mman.h>
+ #include <sys/wait.h>
+ #include "os.h"
+ #include "user.h"
++#include "user_util.h"
++
++#define ARBITRARY_ADDR -1
++#define FAILURE_PID    -1
  
-@@ -299,7 +308,7 @@
+ unsigned long os_process_pc(int pid)
  {
-       unsigned long avail;
-       unsigned long virtmem_size, max_physmem;
--      unsigned int i, add, err;
-+      unsigned int i, add;
+       char proc_stat[sizeof("/proc/#####/stat\0")], buf[256];
+       unsigned long pc;
+-      int fd;
++      int fd, err;
  
-       for (i = 1; i < argc; i++){
-               if((i == 1) && (argv[i][0] == ' ')) continue;
-@@ -328,12 +337,16 @@
-       argv1_end = &argv[1][strlen(argv[1])];
- #endif
-   
--      set_usable_vm(uml_physmem, get_kmem_end());
--
-       highmem = 0;
--      max_physmem = get_kmem_end() - uml_physmem - MIN_VMALLOC;
--      if(physmem_size > max_physmem){
--              highmem = physmem_size - max_physmem;
-+      iomem_size = (iomem_size + PAGE_SIZE - 1) & PAGE_MASK;
-+      max_physmem = get_kmem_end() - uml_physmem - iomem_size - MIN_VMALLOC;
-+
-+      /* Zones have to begin on a 1 << MAX_ORDER page boundary,
-+       * so this makes sure that's true for highmem
-+       */
-+      max_physmem &= ~((1 << (PAGE_SHIFT + MAX_ORDER)) - 1);
-+      if(physmem_size + iomem_size > max_physmem){
-+              highmem = physmem_size + iomem_size - max_physmem;
-               physmem_size -= highmem;
- #ifndef CONFIG_HIGHMEM
-               highmem = 0;
-@@ -343,11 +356,19 @@
+       sprintf(proc_stat, "/proc/%d/stat", pid);
+       fd = os_open_file(proc_stat, of_read(OPENFLAGS()), 0);
+       if(fd < 0){
+-              printk("os_process_pc - couldn't open '%s', errno = %d\n", 
+-                     proc_stat, errno);
+-              return(-1);
++              printk("os_process_pc - couldn't open '%s', err = %d\n", 
++                     proc_stat, -fd);
++              return(ARBITRARY_ADDR);
+       }
+-      if(read(fd, buf, sizeof(buf)) < 0){
+-              printk("os_process_pc - couldn't read '%s', errno = %d\n", 
+-                     proc_stat, errno);
+-              close(fd);
+-              return(-1);
++      err = os_read_file(fd, buf, sizeof(buf));
++      if(err < 0){
++              printk("os_process_pc - couldn't read '%s', err = %d\n", 
++                     proc_stat, -err);
++              os_close_file(fd);
++              return(ARBITRARY_ADDR);
+       }
+-      close(fd);
+-      pc = -1;
++      os_close_file(fd);
++      pc = ARBITRARY_ADDR;
+       if(sscanf(buf, "%*d %*s %*c %*d %*d %*d %*d %*d %*d %*d %*d "
+                 "%*d %*d %*d %*d %*d %*d %*d %*d %*d %*d %*d %*d %*d %*d "
+                 "%*d %*d %*d %*d %ld", &pc) != 1){
+@@ -52,22 +58,23 @@
+       snprintf(stat, sizeof(stat), "/proc/%d/stat", pid);
+       fd = os_open_file(stat, of_read(OPENFLAGS()), 0);
+       if(fd < 0){
+-              printk("Couldn't open '%s', errno = %d\n", stat, -fd);
+-              return(-1);
++              printk("Couldn't open '%s', err = %d\n", stat, -fd);
++              return(FAILURE_PID);
        }
  
-       high_physmem = uml_physmem + physmem_size;
--      high_memory = (void *) high_physmem;
-+      end_iomem = high_physmem + iomem_size;
-+      high_memory = (void *) end_iomem;
-       start_vm = VMALLOC_START;
+-      n = read(fd, data, sizeof(data));
+-      close(fd);
++      n = os_read_file(fd, data, sizeof(data));
++      os_close_file(fd);
  
--      setup_physmem(uml_physmem, uml_reserved, physmem_size);
-+      setup_physmem(uml_physmem, uml_reserved, physmem_size, highmem);
-+      if(init_maps(physmem_size, iomem_size, highmem)){
-+              printf("Failed to allocate mem_map for %ld bytes of physical "
-+                     "memory and %ld bytes of highmem\n", physmem_size,
-+                     highmem);
-+              exit(1);
-+      }
-+
-       virtmem_size = physmem_size;
-       avail = get_kmem_end() - start_vm;
-       if(physmem_size > avail) virtmem_size = avail;
-@@ -357,18 +378,13 @@
-               printf("Kernel virtual memory size shrunk to %ld bytes\n",
-                      virtmem_size);
+       if(n < 0){
+-              printk("Couldn't read '%s', errno = %d\n", stat);
+-              return(-1);
++              printk("Couldn't read '%s', err = %d\n", stat, -n);
++              return(FAILURE_PID);
+       }
  
--      err = reserve_vm(high_physmem, end_vm, &kernel_vm_reserved);
--      if(err){
--              printf("Failed to reserve VM area for kernel VM\n");
--              exit(1);
--      }
--
-       uml_postsetup();
+-      parent = -1;
++      parent = FAILURE_PID;
+       /* XXX This will break if there is a space in the command */
+       n = sscanf(data, "%*d %*s %*c %d", &parent);
+-      if(n != 1) printk("Failed to scan '%s'\n", data);
++      if(n != 1) 
++              printk("Failed to scan '%s'\n", data);
  
-       init_task.thread.kernel_stack = (unsigned long) &init_thread_info + 
-               2 * PAGE_SIZE;
+       return(parent);
+ }
+@@ -81,13 +88,17 @@
+ {
+       kill(pid, SIGKILL);
+       if(reap_child)
+-              waitpid(pid, NULL, 0);
++              CATCH_EINTR(waitpid(pid, NULL, 0));
+               
+ }
  
-       task_protections((unsigned long) &init_thread_info);
-+      os_flush_stdout();
+ void os_usr1_process(int pid)
+ {
++#ifdef __NR_tkill
++      syscall(__NR_tkill, pid, SIGUSR1); 
++#else
+       kill(pid, SIGUSR1);
++#endif
+ }
  
-       return(CHOOSE_MODE(start_uml_tt(), start_uml_skas()));
+ int os_getpid(void)
+@@ -95,7 +106,7 @@
+       return(getpid());
  }
-@@ -377,7 +393,7 @@
-                     void *unused2)
+-int os_map_memory(void *virt, int fd, unsigned long off, unsigned long len, 
++int os_map_memory(void *virt, int fd, unsigned long long off, unsigned long len,
+                 int r, int w, int x)
  {
- #ifdef CONFIG_MAGIC_SYSRQ
--      handle_sysrq('p', &current->thread.regs, NULL, NULL);
-+      handle_sysrq('p', &current->thread.regs, NULL);
- #endif
-       machine_halt();
+       void *loc;
+@@ -104,8 +115,8 @@
+       prot = (r ? PROT_READ : 0) | (w ? PROT_WRITE : 0) | 
+               (x ? PROT_EXEC : 0);
+-      loc = mmap((void *) virt, len, prot, MAP_SHARED | MAP_FIXED, 
+-                 fd, off);
++      loc = mmap64((void *) virt, len, prot, MAP_SHARED | MAP_FIXED, 
++                   fd, off);
+       if(loc == MAP_FAILED)
+               return(-errno);
        return(0);
-@@ -403,6 +419,11 @@
-       arch_check_bugs();
-       check_ptrace();
-       check_sigio();
-+      check_devanon();
-+}
-+
-+void apply_alternatives(void *start, void *end)
-+{
+@@ -126,7 +137,8 @@
+         int err;
+         err = munmap(addr, len);
+-        if(err < 0) return(-errno);
++      if(err < 0)
++              return(-errno);
+         return(0);
  }
  
- /*
-diff -Naur a/arch/um/kernel/umid.c b/arch/um/kernel/umid.c
---- a/arch/um/kernel/umid.c    2004-03-10 08:23:08.000000000 -0500
-+++ b/arch/um/kernel/umid.c    2004-03-10 08:43:47.000000000 -0500
-@@ -5,7 +5,6 @@
+Index: uml-2.6.7/arch/um/include/mem_user.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/include/mem_user.h  2004-07-16 19:37:02.661620448 +0300
++++ uml-2.6.7/arch/um/include/mem_user.h       2004-07-16 19:47:23.704207624 +0300
+@@ -32,43 +32,38 @@
+ #ifndef _MEM_USER_H
+ #define _MEM_USER_H
  
- #include <stdio.h>
- #include <unistd.h>
--#include <fcntl.h>
- #include <errno.h>
- #include <string.h>
- #include <stdlib.h>
-@@ -33,18 +32,19 @@
- static int umid_is_random = 1;
- static int umid_inited = 0;
+-struct mem_region {
++struct iomem_region {
++      struct iomem_region *next;
+       char *driver;
+-      unsigned long start_pfn;
+-      unsigned long start;
+-      unsigned long len;
+-      void *mem_map;
+       int fd;
++      int size;
++      unsigned long phys;
++      unsigned long virt;
+ };
  
--static int make_umid(void);
-+static int make_umid(int (*printer)(const char *fmt, ...));
+-extern struct mem_region *regions[];
+-extern struct mem_region physmem_region;
++extern struct iomem_region *iomem_regions;
++extern int iomem_size;
  
--static int __init set_umid(char *name, int is_random)
-+static int __init set_umid(char *name, int is_random, 
-+                         int (*printer)(const char *fmt, ...))
- {
-       if(umid_inited){
--              printk("Unique machine name can't be set twice\n");
-+              (*printer)("Unique machine name can't be set twice\n");
-               return(-1);
+ #define ROUND_4M(n) ((((unsigned long) (n)) + (1 << 22)) & ~((1 << 22) - 1))
+ extern unsigned long host_task_size;
+ extern unsigned long task_size;
++extern void check_devanon(void);
+ extern int init_mem_user(void);
+ extern int create_mem_file(unsigned long len);
+-extern void setup_range(int fd, char *driver, unsigned long start,
+-                      unsigned long pfn, unsigned long total, int need_vm, 
+-                      struct mem_region *region, void *reserved);
+ extern void setup_memory(void *entry);
+ extern unsigned long find_iomem(char *driver, unsigned long *len_out);
+-extern int init_maps(struct mem_region *region);
+-extern int nregions(void);
+-extern int reserve_vm(unsigned long start, unsigned long end, void *e);
++extern int init_maps(unsigned long physmem, unsigned long iomem, 
++                   unsigned long highmem);
+ extern unsigned long get_vm(unsigned long len);
+ extern void setup_physmem(unsigned long start, unsigned long usable,
+-                        unsigned long len);
+-extern int setup_region(struct mem_region *region, void *entry);
++                        unsigned long len, unsigned long highmem);
+ extern void add_iomem(char *name, int fd, unsigned long size);
+-extern struct mem_region *phys_region(unsigned long phys);
+ extern unsigned long phys_offset(unsigned long phys);
+ extern void unmap_physmem(void);
+-extern int map_memory(unsigned long virt, unsigned long phys, 
+-                    unsigned long len, int r, int w, int x);
++extern void map_memory(unsigned long virt, unsigned long phys, 
++                     unsigned long len, int r, int w, int x);
+ extern int protect_memory(unsigned long addr, unsigned long len, 
+                         int r, int w, int x, int must_succeed);
+ extern unsigned long get_kmem_end(void);
+Index: uml-2.6.7/arch/um/drivers/mcast_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/mcast_user.c        2004-07-16 19:36:45.956160064 +0300
++++ uml-2.6.7/arch/um/drivers/mcast_user.c     2004-07-16 19:47:23.686210360 +0300
+@@ -23,6 +23,7 @@
+ #include "kern_util.h"
+ #include "user_util.h"
+ #include "user.h"
++#include "os.h"
+ #define MAX_PACKET (ETH_MAX_PACKET + ETH_HEADER_OTHER)
+@@ -62,7 +63,8 @@
+               goto out;
        }
  
-       if(strlen(name) > UMID_LEN - 1)
--              printk("Unique machine name is being truncated to %s "
--                     "characters\n", UMID_LEN);
-+              (*printer)("Unique machine name is being truncated to %s "
-+                         "characters\n", UMID_LEN);
-       strlcpy(umid, name, sizeof(umid));
+-      if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0){
++      fd = socket(AF_INET, SOCK_DGRAM, 0);
++      if (fd < 0){
+               printk("mcast_open : data socket failed, errno = %d\n", 
+                      errno);
+               fd = -ENOMEM;
+@@ -72,7 +74,7 @@
+       if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)) < 0) {
+               printk("mcast_open: SO_REUSEADDR failed, errno = %d\n",
+                       errno);
+-              close(fd);
++              os_close_file(fd);
+               fd = -EINVAL;
+               goto out;
+       }
+@@ -82,7 +84,7 @@
+                      sizeof(pri->ttl)) < 0) {
+               printk("mcast_open: IP_MULTICAST_TTL failed, error = %d\n",
+                       errno);
+-              close(fd);
++              os_close_file(fd);
+               fd = -EINVAL;
+               goto out;
+       }
+@@ -91,7 +93,7 @@
+       if (setsockopt(fd, SOL_IP, IP_MULTICAST_LOOP, &yes, sizeof(yes)) < 0) {
+               printk("mcast_open: IP_MULTICAST_LOOP failed, error = %d\n",
+                       errno);
+-              close(fd);
++              os_close_file(fd);
+               fd = -EINVAL;
+               goto out;
+       }
+@@ -99,7 +101,7 @@
+       /* bind socket to mcast address */
+       if (bind(fd, (struct sockaddr *) sin, sizeof(*sin)) < 0) {
+               printk("mcast_open : data bind failed, errno = %d\n", errno);
+-              close(fd);
++              os_close_file(fd);
+               fd = -EINVAL;
+               goto out;
+       }               
+@@ -115,7 +117,7 @@
+                      "interface on the host.\n");
+               printk("eth0 should be configured in order to use the "
+                      "multicast transport.\n");
+-              close(fd);
++              os_close_file(fd);
+               fd = -EINVAL;
+       }
  
-       umid_is_random = is_random;
-@@ -54,7 +54,7 @@
+@@ -137,7 +139,7 @@
+                       errno);
+       }
+-      close(fd);
++      os_close_file(fd);
+ }
+ int mcast_user_write(int fd, void *buf, int len, struct mcast_data *pri)
+Index: uml-2.6.7/arch/um/drivers/slirp_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/slirp_user.c        2004-07-16 19:37:02.720611480 +0300
++++ uml-2.6.7/arch/um/drivers/slirp_user.c     2004-07-16 19:47:24.797041488 +0300
+@@ -4,8 +4,7 @@
+ #include <stddef.h>
+ #include <sched.h>
+ #include <string.h>
+-#include <sys/fcntl.h>
+-#include <sys/errno.h>
++#include <errno.h>
+ #include <sys/wait.h>
+ #include <sys/signal.h>
+ #include "user_util.h"
+@@ -48,15 +47,15 @@
  
- static int __init set_umid_arg(char *name, int *add)
- {
--      return(set_umid(name, 0));
-+      return(set_umid(name, 0, printf));
+       return(pid);
  }
- __uml_setup("umid=", set_umid_arg,
-@@ -67,7 +67,7 @@
+- 
++
++/* XXX This is just a trivial wrapper around os_pipe */ 
+ static int slirp_datachan(int *mfd, int *sfd)
  {
-       int n;
--      if(!umid_inited && make_umid()) return(-1);
-+      if(!umid_inited && make_umid(printk)) return(-1);
+       int fds[2], err;
  
-       n = strlen(uml_dir) + strlen(umid) + strlen(name) + 1;
-       if(n > len){
-@@ -85,22 +85,23 @@
- {
-       char file[strlen(uml_dir) + UMID_LEN + sizeof("/pid\0")];
-       char pid[sizeof("nnnnn\0")];
--      int fd;
-+      int fd, n;
+       err = os_pipe(fds, 1, 1);
+-      if(err){
+-              printk("slirp_datachan: Failed to open pipe, errno = %d\n",
+-                     -err);
++      if(err < 0){
++              printk("slirp_datachan: Failed to open pipe, err = %d\n", -err);
+               return(err);
+       }
  
-       if(umid_file_name("pid", file, sizeof(file))) return 0;
+@@ -77,7 +76,7 @@
+       pid = slirp_tramp(pri->argw.argv, sfd);
  
-       fd = os_open_file(file, of_create(of_excl(of_rdwr(OPENFLAGS()))), 
-                         0644);
-       if(fd < 0){
--              printk("Open of machine pid file \"%s\" failed - "
--                     "errno = %d\n", file, -fd);
-+              printf("Open of machine pid file \"%s\" failed - "
-+                     "err = %d\n", file, -fd);
-               return 0;
-       }
+       if(pid < 0){
+-              printk("slirp_tramp failed - errno = %d\n", pid);
++              printk("slirp_tramp failed - errno = %d\n", -pid);
+               os_close_file(sfd);     
+               os_close_file(mfd);     
+               return(pid);
+@@ -97,8 +96,8 @@
+       struct slirp_data *pri = data;
+       int status,err;
  
-       sprintf(pid, "%d\n", os_getpid());
--      if(write(fd, pid, strlen(pid)) != strlen(pid))
--              printk("Write of pid file failed - errno = %d\n", errno);
 -      close(fd);
-+      n = os_write_file(fd, pid, strlen(pid));
-+      if(n != strlen(pid))
-+              printf("Write of pid file failed - err = %d\n", -n);
+-      close(pri->slave);
 +      os_close_file(fd);
-       return 0;
- }
-@@ -111,7 +112,8 @@
-       int len;
-       char file[256];
++      os_close_file(pri->slave);
  
--      if((directory = opendir(dir)) == NULL){
-+      directory = opendir(dir);
-+      if(directory == NULL){
-               printk("actually_do_remove : couldn't open directory '%s', "
-                      "errno = %d\n", dir, errno);
-               return(1);
-@@ -160,22 +162,24 @@
- {
-       char file[strlen(uml_dir) + UMID_LEN + sizeof("/pid\0")];
-       char pid[sizeof("nnnnn\0")], *end;
--      int dead, fd, p;
-+      int dead, fd, p, n;
+       pri->slave = -1;
  
-       sprintf(file, "%s/pid", dir);
-       dead = 0;
--      if((fd = os_open_file(file, of_read(OPENFLAGS()), 0)) < 0){
-+      fd = os_open_file(file, of_read(OPENFLAGS()), 0);
-+      if(fd < 0){
-               if(fd != -ENOENT){
-                       printk("not_dead_yet : couldn't open pid file '%s', "
--                             "errno = %d\n", file, -fd);
-+                             "err = %d\n", file, -fd);
-                       return(1);
-               }
-               dead = 1;
+@@ -114,13 +113,13 @@
        }
-       if(fd > 0){
--              if(read(fd, pid, sizeof(pid)) < 0){
-+              n = os_read_file(fd, pid, sizeof(pid));
-+              if(n < 0){
-                       printk("not_dead_yet : couldn't read pid file '%s', "
--                             "errno = %d\n", file, errno);
-+                             "err = %d\n", file, -n);
-                       return(1);
-               }
-               p = strtoul(pid, &end, 0);
-@@ -197,7 +201,7 @@
-       if((strlen(name) > 0) && (name[strlen(name) - 1] != '/')){
-               uml_dir = malloc(strlen(name) + 1);
-               if(uml_dir == NULL){
--                      printk("Failed to malloc uml_dir - error = %d\n",
-+                      printf("Failed to malloc uml_dir - error = %d\n",
-                              errno);
-                       uml_dir = name;
-                       return(0);
-@@ -217,7 +221,7 @@
-               char *home = getenv("HOME");
+ #endif
  
-               if(home == NULL){
--                      printk("make_uml_dir : no value in environment for "
-+                      printf("make_uml_dir : no value in environment for "
-                              "$HOME\n");
-                       exit(1);
-               }
-@@ -232,57 +236,59 @@
-               dir[len + 1] = '\0';
+-      err = waitpid(pri->pid, &status, WNOHANG);
+-      if(err<0) {
++      CATCH_EINTR(err = waitpid(pri->pid, &status, WNOHANG));
++      if(err < 0) {
+               printk("slirp_close: waitpid returned %d\n", errno);
+               return;
        }
  
--      if((uml_dir = malloc(strlen(dir) + 1)) == NULL){
-+      uml_dir = malloc(strlen(dir) + 1);
-+      if(uml_dir == NULL){
-               printf("make_uml_dir : malloc failed, errno = %d\n", errno);
-               exit(1);
+-      if(err==0) {
++      if(err == 0) {
+               printk("slirp_close: process %d has not exited\n");
+               return;
        }
-       strcpy(uml_dir, dir);
-       
-       if((mkdir(uml_dir, 0777) < 0) && (errno != EEXIST)){
--              printk("Failed to mkdir %s - errno = %i\n", uml_dir, errno);
-+              printf("Failed to mkdir %s - errno = %i\n", uml_dir, errno);
-               return(-1);
+Index: uml-2.6.7/arch/um/kernel/tempfile.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/tempfile.c   2004-07-16 19:36:48.252810920 +0300
++++ uml-2.6.7/arch/um/kernel/tempfile.c        2004-07-16 19:47:23.740202152 +0300
+@@ -28,6 +28,7 @@
        }
-       return 0;
+       if((dir == NULL) || (*dir == '\0')) 
+               dir = "/tmp";
++
+       tempdir = malloc(strlen(dir) + 2);
+       if(tempdir == NULL){
+               fprintf(stderr, "Failed to malloc tempdir, "
+@@ -49,7 +50,8 @@
+       else
+               *tempname = 0;
+       strcat(tempname, template);
+-      if((fd = mkstemp(tempname)) < 0){
++      fd = mkstemp(tempname);
++      if(fd < 0){
+               fprintf(stderr, "open - cannot create %s: %s\n", tempname, 
+                       strerror(errno));
+               return -1;
+@@ -59,7 +61,8 @@
+               return -1;
+       }
+       if(out_tempname){
+-              if((*out_tempname = strdup(tempname)) == NULL){
++              *out_tempname = strdup(tempname);
++              if(*out_tempname == NULL){
+                       perror("strdup");
+                       return -1;
+               }
+Index: uml-2.6.7/arch/um/sys-i386/util/Makefile
+===================================================================
+--- uml-2.6.7.orig/arch/um/sys-i386/util/Makefile      2004-07-16 19:37:40.976795656 +0300
++++ uml-2.6.7/arch/um/sys-i386/util/Makefile   2004-07-16 19:47:23.773197136 +0300
+@@ -1,15 +1,10 @@
++host-progs    := mk_sc mk_thread
++always                := $(host-progs)
+-host-progs    := mk_sc
+-always                := $(host-progs) mk_thread
+-targets               := mk_thread_kern.o mk_thread_user.o
++mk_thread-objs        := mk_thread_kern.o mk_thread_user.o
+-mk_sc-objs    := mk_sc.o
+-
+-$(obj)/mk_thread : $(obj)/mk_thread_kern.o $(obj)/mk_thread_user.o
+-      $(CC) $(CFLAGS) -o $@ $^
+-
+-$(obj)/mk_thread_user.o : $(src)/mk_thread_user.c
+-      $(CC) $(USER_CFLAGS) -c -o $@ $<
++HOSTCFLAGS_mk_thread_kern.o   := $(CFLAGS) $(CPPFLAGS)
++HOSTCFLAGS_mk_thread_user.o   := $(USER_CFLAGS)
+ clean :
+       $(RM) -f $(build-targets)
+Index: uml-2.6.7/arch/um/kernel/tt/tracer.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/tt/tracer.c  2004-07-16 19:35:55.561821168 +0300
++++ uml-2.6.7/arch/um/kernel/tt/tracer.c       2004-07-16 19:47:24.801040880 +0300
+@@ -39,16 +39,17 @@
+               return(0);
+       register_winch_irq(tracer_winch[0], fd, -1, data);
+-      return(0);
++      return(1);
  }
  
--static int __init make_umid(void)
-+static int __init make_umid(int (*printer)(const char *fmt, ...))
+ static void tracer_winch_handler(int sig)
  {
-       int fd, err;
-       char tmp[strlen(uml_dir) + UMID_LEN + 1];
++      int n;
+       char c = 1;
  
-       strlcpy(tmp, uml_dir, sizeof(tmp));
+-      if(write(tracer_winch[1], &c, sizeof(c)) != sizeof(c))
+-              printk("tracer_winch_handler - write failed, errno = %d\n",
+-                     errno);
++      n = os_write_file(tracer_winch[1], &c, sizeof(c));
++      if(n != sizeof(c))
++              printk("tracer_winch_handler - write failed, err = %d\n", -n);
+ }
  
--      if(*umid == 0){
-+      if(!umid_inited){
-               strcat(tmp, "XXXXXX");
-               fd = mkstemp(tmp);
-               if(fd < 0){
--                      printk("make_umid - mkstemp failed, errno = %d\n",
--                             errno);
-+                      (*printer)("make_umid - mkstemp failed, errno = %d\n",
-+                                 errno);
-                       return(1);
-               }
+ /* Called only by the tracing thread during initialization */
+@@ -58,9 +59,8 @@
+       int err;
  
--              close(fd);
-+              os_close_file(fd);
-               /* There's a nice tiny little race between this unlink and
-                * the mkdir below.  It'd be nice if there were a mkstemp
-                * for directories.
-                */
-               unlink(tmp);
--              set_umid(&tmp[strlen(uml_dir)], 1);
-+              set_umid(&tmp[strlen(uml_dir)], 1, printer);
+       err = os_pipe(tracer_winch, 1, 1);
+-      if(err){
+-              printk("setup_tracer_winch : os_pipe failed, errno = %d\n", 
+-                     -err);
++      if(err < 0){
++              printk("setup_tracer_winch : os_pipe failed, err = %d\n", -err);
+               return;
        }
-       
-       sprintf(tmp, "%s%s", uml_dir, umid);
+       signal(SIGWINCH, tracer_winch_handler);
+@@ -130,8 +130,8 @@
+       case SIGTSTP:
+               if(ptrace(PTRACE_CONT, pid, 0, sig) < 0)
+                       tracer_panic("sleeping_process_signal : Failed to "
+-                                   "continue pid %d, errno = %d\n", pid,
+-                                   sig);
++                                   "continue pid %d, signal = %d, "
++                                   "errno = %d\n", pid, sig, errno);
+               break;
+       /* This happens when the debugger (e.g. strace) is doing system call 
+@@ -145,7 +145,7 @@
+               if(ptrace(PTRACE_SYSCALL, pid, 0, 0) < 0)
+                       tracer_panic("sleeping_process_signal : Failed to "
+                                    "PTRACE_SYSCALL pid %d, errno = %d\n",
+-                                   pid, sig);
++                                   pid, errno);
+               break;
+       case SIGSTOP:
+               break;
+@@ -192,7 +192,7 @@
+       printf("tracing thread pid = %d\n", tracing_pid);
  
--      if((err = mkdir(tmp, 0777)) < 0){
-+      err = mkdir(tmp, 0777);
-+      if(err < 0){
-               if(errno == EEXIST){
-                       if(not_dead_yet(tmp)){
--                              printk("umid '%s' is in use\n", umid);
-+                              (*printer)("umid '%s' is in use\n", umid);
-                               return(-1);
+       pid = clone(signal_tramp, sp, CLONE_FILES | SIGCHLD, init_proc);
+-      n = waitpid(pid, &status, WUNTRACED);
++      CATCH_EINTR(n = waitpid(pid, &status, WUNTRACED));
+       if(n < 0){
+               printf("waitpid on idle thread failed, errno = %d\n", errno);
+               exit(1);
+@@ -218,7 +218,7 @@
+                       err = attach(debugger_parent);
+                       if(err){
+                               printf("Failed to attach debugger parent %d, "
+-                                     "errno = %d\n", debugger_parent, err);
++                                     "errno = %d\n", debugger_parent, -err);
+                               debugger_parent = -1;
                        }
-                       err = mkdir(tmp, 0777);
-               }
+                       else {
+@@ -233,7 +233,8 @@
        }
-       if(err < 0){
--              printk("Failed to create %s - errno = %d\n", umid, errno);
-+              (*printer)("Failed to create %s - errno = %d\n", umid, errno);
-               return(-1);
+       set_cmdline("(tracing thread)");
+       while(1){
+-              if((pid = waitpid(-1, &status, WUNTRACED)) <= 0){
++              CATCH_EINTR(pid = waitpid(-1, &status, WUNTRACED));
++              if(pid <= 0){
+                       if(errno != ECHILD){
+                               printf("wait failed - errno = %d\n", errno);
+                       }
+@@ -401,7 +402,7 @@
+               
+               if(!strcmp(line, "go")) debug_stop = 0;
+               else if(!strcmp(line, "parent")) debug_parent = 1;
+-              else printk("Unknown debug option : '%s'\n", line);
++              else printf("Unknown debug option : '%s'\n", line);
+               line = next;
        }
+Index: uml-2.6.7/arch/um/drivers/Makefile
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/Makefile    2004-07-16 19:36:51.389334096 +0300
++++ uml-2.6.7/arch/um/drivers/Makefile 2004-07-16 19:47:24.526082680 +0300
+@@ -1,5 +1,5 @@
+ # 
+-# Copyright (C) 2000, 2002 Jeff Dike (jdike@karaya.com)
++# Copyright (C) 2000, 2002, 2003 Jeff Dike (jdike@karaya.com)
+ # Licensed under the GPL
+ #
  
-@@ -295,7 +301,13 @@
- );
+@@ -15,7 +15,7 @@
+ #pcap-objs := pcap_kern.o pcap_user.o $(PCAP)
+ net-objs := net_kern.o net_user.o
+ mconsole-objs := mconsole_kern.o mconsole_user.o
+-hostaudio-objs := hostaudio_kern.o hostaudio_user.o
++hostaudio-objs := hostaudio_kern.o
+ ubd-objs := ubd_kern.o ubd_user.o
+ port-objs := port_kern.o port_user.o
+ harddog-objs := harddog_kern.o harddog_user.o
+@@ -39,6 +39,8 @@
+ obj-$(CONFIG_TTY_CHAN) += tty.o 
+ obj-$(CONFIG_XTERM_CHAN) += xterm.o xterm_kern.o
+ obj-$(CONFIG_UML_WATCHDOG) += harddog.o
++obj-$(CONFIG_BLK_DEV_COW) += cow_kern.o
++obj-$(CONFIG_BLK_DEV_COW_COMMON) += cow_user.o
  
- __uml_postsetup(make_uml_dir);
--__uml_postsetup(make_umid);
-+
-+static int __init make_umid_setup(void)
-+{
-+      return(make_umid(printf));
-+}
-+
-+__uml_postsetup(make_umid_setup);
- __uml_postsetup(create_pid_file);
+ obj-y += stdio_console.o $(CHAN_OBJS)
  
- /*
-diff -Naur a/arch/um/kernel/user_syms.c b/arch/um/kernel/user_syms.c
---- a/arch/um/kernel/user_syms.c       2004-03-10 08:23:06.000000000 -0500
-+++ b/arch/um/kernel/user_syms.c       1969-12-31 19:00:00.000000000 -0500
-@@ -1,113 +0,0 @@
--#include <stdio.h>
--#include <unistd.h>
--#include <fcntl.h>
--#include <dirent.h>
--#include <errno.h>
--#include <utime.h>
--#include <string.h>
--#include <sys/stat.h>
--#include <sys/vfs.h>
--#include <sys/ioctl.h>
--#include "user_util.h"
--#include "mem_user.h"
--#include "uml-config.h"
--
--/* Had to steal this from linux/module.h because that file can't be included
-- * since this includes various user-level headers.
-- */
--
--struct module_symbol
--{
--      unsigned long value;
--      const char *name;
--};
--
--/* Indirect stringification.  */
--
--#define __MODULE_STRING_1(x)  #x
--#define __MODULE_STRING(x)    __MODULE_STRING_1(x)
--
--#if !defined(__AUTOCONF_INCLUDED__)
--
--#define __EXPORT_SYMBOL(sym,str)   error config_must_be_included_before_module
--#define EXPORT_SYMBOL(var)       error config_must_be_included_before_module
--#define EXPORT_SYMBOL_NOVERS(var)  error config_must_be_included_before_module
--
--#elif !defined(UML_CONFIG_MODULES)
--
--#define __EXPORT_SYMBOL(sym,str)
--#define EXPORT_SYMBOL(var)
--#define EXPORT_SYMBOL_NOVERS(var)
+@@ -46,18 +48,7 @@
+ USER_OBJS := $(filter %_user.o,$(obj-y) $(obj-m) $(USER_SINGLE_OBJS)) fd.o \
+       null.o pty.o tty.o xterm.o
+-USER_OBJS := $(foreach file,$(USER_OBJS),arch/um/drivers/$(file))
++USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
+ $(USER_OBJS) : %.o: %.c
+       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
 -
--#else
+-clean:
 -
--#define __EXPORT_SYMBOL(sym, str)                     \
--const char __kstrtab_##sym[]                          \
--__attribute__((section(".kstrtab"))) = str;           \
--const struct module_symbol __ksymtab_##sym            \
--__attribute__((section("__ksymtab"))) =                       \
--{ (unsigned long)&sym, __kstrtab_##sym }
+-modules:
 -
--#if defined(__MODVERSIONS__) || !defined(UML_CONFIG_MODVERSIONS)
--#define EXPORT_SYMBOL(var)  __EXPORT_SYMBOL(var, __MODULE_STRING(var))
--#else
--#define EXPORT_SYMBOL(var)  __EXPORT_SYMBOL(var, __MODULE_STRING(__VERSIONED_SYMBOL(var)))
--#endif
+-fastdep:
 -
--#define EXPORT_SYMBOL_NOVERS(var)  __EXPORT_SYMBOL(var, __MODULE_STRING(var))
+-dep:
 -
--#endif
+-archmrproper: clean
 -
--EXPORT_SYMBOL(__errno_location);
--
--EXPORT_SYMBOL(access);
--EXPORT_SYMBOL(open);
--EXPORT_SYMBOL(open64);
--EXPORT_SYMBOL(close);
--EXPORT_SYMBOL(read);
--EXPORT_SYMBOL(write);
--EXPORT_SYMBOL(dup2);
--EXPORT_SYMBOL(__xstat);
--EXPORT_SYMBOL(__lxstat);
--EXPORT_SYMBOL(__lxstat64);
--EXPORT_SYMBOL(lseek);
--EXPORT_SYMBOL(lseek64);
--EXPORT_SYMBOL(chown);
--EXPORT_SYMBOL(truncate);
--EXPORT_SYMBOL(utime);
--EXPORT_SYMBOL(chmod);
--EXPORT_SYMBOL(rename);
--EXPORT_SYMBOL(__xmknod);
--
--EXPORT_SYMBOL(symlink);
--EXPORT_SYMBOL(link);
--EXPORT_SYMBOL(unlink);
--EXPORT_SYMBOL(readlink);
--
--EXPORT_SYMBOL(mkdir);
--EXPORT_SYMBOL(rmdir);
--EXPORT_SYMBOL(opendir);
--EXPORT_SYMBOL(readdir);
--EXPORT_SYMBOL(closedir);
--EXPORT_SYMBOL(seekdir);
--EXPORT_SYMBOL(telldir);
--
--EXPORT_SYMBOL(ioctl);
--
--extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,
--                      __off64_t __offset);
--extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n,
--                       __off64_t __offset);
--EXPORT_SYMBOL(pread64);
--EXPORT_SYMBOL(pwrite64);
--
--EXPORT_SYMBOL(statfs);
--EXPORT_SYMBOL(statfs64);
--
--EXPORT_SYMBOL(memcpy);
--EXPORT_SYMBOL(getuid);
--
--EXPORT_SYMBOL(memset);
--EXPORT_SYMBOL(strstr);
--
--EXPORT_SYMBOL(find_iomem);
-diff -Naur a/arch/um/kernel/user_util.c b/arch/um/kernel/user_util.c
---- a/arch/um/kernel/user_util.c       2004-03-10 08:20:26.000000000 -0500
-+++ b/arch/um/kernel/user_util.c       2004-03-10 08:35:25.000000000 -0500
-@@ -5,7 +5,6 @@
+Index: uml-2.6.7/arch/um/kernel/tt/uaccess.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/tt/uaccess.c 2004-07-16 19:47:23.625219632 +0300
++++ uml-2.6.7/arch/um/kernel/tt/uaccess.c      2004-07-16 19:47:23.751200480 +0300
+@@ -0,0 +1,73 @@
++/* 
++ * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
++ * Licensed under the GPL
++ */
++
++#include "linux/sched.h"
++#include "asm/uaccess.h"
++
++int copy_from_user_tt(void *to, const void *from, int n)
++{
++      if(!access_ok_tt(VERIFY_READ, from, n)) 
++              return(n);
++
++      return(__do_copy_from_user(to, from, n, &current->thread.fault_addr,
++                                 &current->thread.fault_catcher));
++}
++
++int copy_to_user_tt(void *to, const void *from, int n)
++{
++      if(!access_ok_tt(VERIFY_WRITE, to, n))
++              return(n);
++              
++      return(__do_copy_to_user(to, from, n, &current->thread.fault_addr,
++                               &current->thread.fault_catcher));
++}
++
++int strncpy_from_user_tt(char *dst, const char *src, int count)
++{
++      int n;
++
++      if(!access_ok_tt(VERIFY_READ, src, 1)) 
++              return(-EFAULT);
++
++      n = __do_strncpy_from_user(dst, src, count, 
++                                 &current->thread.fault_addr,
++                                 &current->thread.fault_catcher);
++      if(n < 0) return(-EFAULT);
++      return(n);
++}
++
++int __clear_user_tt(void *mem, int len)
++{
++      return(__do_clear_user(mem, len,
++                             &current->thread.fault_addr,
++                             &current->thread.fault_catcher));
++}
++
++int clear_user_tt(void *mem, int len)
++{
++      if(!access_ok_tt(VERIFY_WRITE, mem, len))
++              return(len);
++
++      return(__do_clear_user(mem, len, &current->thread.fault_addr,
++                             &current->thread.fault_catcher));
++}
++
++int strnlen_user_tt(const void *str, int len)
++{
++      return(__do_strnlen_user(str, len,
++                               &current->thread.fault_addr,
++                               &current->thread.fault_catcher));
++}
++
++/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
+Index: uml-2.6.7/arch/um/kernel/skas/util/Makefile
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/skas/util/Makefile   2004-07-16 19:37:20.411921992 +0300
++++ uml-2.6.7/arch/um/kernel/skas/util/Makefile        2004-07-16 19:47:23.735202912 +0300
+@@ -1,10 +1,9 @@
+ all: mk_ptregs
  
- #include <stdio.h>
- #include <stdlib.h>
--#include <fcntl.h>
- #include <unistd.h>
- #include <limits.h>
- #include <sys/mman.h> 
-@@ -82,7 +81,8 @@
-       int status, ret;
+ mk_ptregs : mk_ptregs.o
+-      $(CC) -o mk_ptregs mk_ptregs.o
++      $(HOSTCC) -o mk_ptregs mk_ptregs.o
  
-       while(1){
--              if(((ret = waitpid(pid, &status, WUNTRACED)) < 0) ||
-+              ret = waitpid(pid, &status, WUNTRACED);
-+              if((ret < 0) ||
-                  !WIFSTOPPED(status) || (WSTOPSIG(status) != sig)){
-                       if(ret < 0){
-                               if(errno == EINTR) continue;
-@@ -119,17 +119,6 @@
-       }
- }
+ mk_ptregs.o : mk_ptregs.c
+-      $(CC) -c $< 
++      $(HOSTCC) -c $< 
  
--int clone_and_wait(int (*fn)(void *), void *arg, void *sp, int flags)
--{
--      int pid;
--
--      pid = clone(fn, sp, flags, arg);
--      if(pid < 0) return(-1);
--      wait_for_stop(pid, SIGSTOP, PTRACE_CONT, NULL);
--      ptrace(PTRACE_CONT, pid, 0, 0);
--      return(pid);
--}
+-clean : 
+-      $(RM) -f mk_ptregs *.o *~
++clean-files := mk_ptregs *.o *~
+Index: uml-2.6.7/arch/um/kernel/skas/sys-i386/Makefile
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/skas/sys-i386/Makefile       2004-07-16 19:37:26.083059848 +0300
++++ uml-2.6.7/arch/um/kernel/skas/sys-i386/Makefile    2004-07-16 19:47:23.733203216 +0300
+@@ -10,5 +10,3 @@
+ $(USER_OBJS) : %.o: %.c
+       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
 -
- int raw(int fd, int complain)
- {
-       struct termios tt;
-diff -Naur a/arch/um/main.c b/arch/um/main.c
---- a/arch/um/main.c   2004-03-10 08:22:34.000000000 -0500
-+++ b/arch/um/main.c   2004-03-10 08:42:26.000000000 -0500
-@@ -8,6 +8,7 @@
- #include <stdlib.h>
- #include <string.h>
- #include <signal.h>
-+#include <errno.h>
- #include <sys/resource.h>
- #include <sys/mman.h>
- #include <sys/user.h>
-@@ -123,12 +124,14 @@
+-clean :
+Index: uml-2.6.7/arch/um/kernel/sigio_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/sigio_kern.c 2004-07-16 19:36:16.630618224 +0300
++++ uml-2.6.7/arch/um/kernel/sigio_kern.c      2004-07-16 19:47:23.725204432 +0300
+@@ -6,18 +6,21 @@
+ #include "linux/kernel.h"
+ #include "linux/list.h"
+ #include "linux/slab.h"
+-#include "asm/irq.h"
++#include "linux/signal.h"
++#include "linux/interrupt.h"
+ #include "init.h"
+ #include "sigio.h"
+ #include "irq_user.h"
++#include "irq_kern.h"
  
-       set_stklim();
+ /* Protected by sigio_lock() called from write_sigio_workaround */
+ static int sigio_irq_fd = -1;
+-void sigio_interrupt(int irq, void *data, struct pt_regs *unused)
++irqreturn_t sigio_interrupt(int irq, void *data, struct pt_regs *unused)
+ {
+       read_sigio_fd(sigio_irq_fd);
+       reactivate_fd(sigio_irq_fd, SIGIO_WRITE_IRQ);
++      return(IRQ_HANDLED);
+ }
  
--      if((new_argv = malloc((argc + 1) * sizeof(char *))) == NULL){
-+      new_argv = malloc((argc + 1) * sizeof(char *));
-+      if(new_argv == NULL){
-               perror("Mallocing argv");
-               exit(1);
-       }
-       for(i=0;i<argc;i++){
--              if((new_argv[i] = strdup(argv[i])) == NULL){
-+              new_argv[i] = strdup(argv[i]);
-+              if(new_argv[i] == NULL){
-                       perror("Mallocing an arg");
-                       exit(1);
-               }
-diff -Naur a/arch/um/Makefile b/arch/um/Makefile
---- a/arch/um/Makefile 2004-03-10 08:21:50.000000000 -0500
-+++ b/arch/um/Makefile 2004-03-10 08:40:45.000000000 -0500
-@@ -22,17 +22,21 @@
-                          $(ARCH_DIR)/sys-$(SUBARCH)/
+ int write_sigio_irq(int fd)
+Index: uml-2.6.7/include/asm-um/system-generic.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/system-generic.h     2004-07-16 19:37:46.190003128 +0300
++++ uml-2.6.7/include/asm-um/system-generic.h  2004-07-16 19:47:23.802192728 +0300
+@@ -23,8 +23,10 @@
+ extern void block_signals(void);
+ extern void unblock_signals(void);
  
- # Have to precede the include because the included Makefiles reference them.
--SYMLINK_HEADERS = include/asm-um/archparam.h include/asm-um/system.h \
--      include/asm-um/sigcontext.h include/asm-um/processor.h \
--      include/asm-um/ptrace.h include/asm-um/arch-signal.h
-+SYMLINK_HEADERS = archparam.h system.h sigcontext.h processor.h ptrace.h \
-+      arch-signal.h module.h
-+SYMLINK_HEADERS := $(foreach header,$(SYMLINK_HEADERS),include/asm-um/$(header))
+-#define local_save_flags(flags) do { (flags) = get_signals(); } while(0)
+-#define local_irq_restore(flags) do { set_signals(flags); } while(0)
++#define local_save_flags(flags) do { typecheck(unsigned long, flags); \
++                                   (flags) = get_signals(); } while(0)
++#define local_irq_restore(flags) do { typecheck(unsigned long, flags); \
++                                    set_signals(flags); } while(0)
  
- ARCH_SYMLINKS = include/asm-um/arch $(ARCH_DIR)/include/sysdep $(ARCH_DIR)/os \
-       $(SYMLINK_HEADERS) $(ARCH_DIR)/include/uml-config.h
+ #define local_irq_save(flags) do { local_save_flags(flags); \
+                                    local_irq_disable(); } while(0)
+@@ -39,4 +41,7 @@
+         (flags == 0);                   \
+ })
  
- GEN_HEADERS += $(ARCH_DIR)/include/task.h $(ARCH_DIR)/include/kern_constants.h
++extern void *_switch_to(void *prev, void *next, void *last);
++#define switch_to(prev, next, last) prev = _switch_to(prev, next, last)
++
+ #endif
+Index: uml-2.6.7/include/asm-um/uaccess.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/uaccess.h    2004-07-16 19:37:05.104249112 +0300
++++ uml-2.6.7/include/asm-um/uaccess.h 2004-07-16 19:47:23.804192424 +0300
+@@ -6,6 +6,8 @@
+ #ifndef __UM_UACCESS_H
+ #define __UM_UACCESS_H
  
--include $(ARCH_DIR)/Makefile-$(SUBARCH)
--include $(ARCH_DIR)/Makefile-os-$(OS)
-+# This target adds dependencies to "prepare". They are defined in the included
-+# Makefiles (see Makefile-i386).
++#include "linux/sched.h"
 +
-+.PHONY: sys_prepare
-+sys_prepare:
-+      @:
+ #define VERIFY_READ 0
+ #define VERIFY_WRITE 1
  
- MAKEFILE-$(CONFIG_MODE_TT) += Makefile-tt
- MAKEFILE-$(CONFIG_MODE_SKAS) += Makefile-skas
-@@ -41,6 +45,9 @@
-   include $(addprefix $(ARCH_DIR)/,$(MAKEFILE-y))
- endif
+Index: uml-2.6.7/arch/um/util/Makefile
+===================================================================
+--- uml-2.6.7.orig/arch/um/util/Makefile       2004-07-16 19:37:43.611395136 +0300
++++ uml-2.6.7/arch/um/util/Makefile    2004-07-16 19:47:23.780196072 +0300
+@@ -1,23 +1,8 @@
+-always                := mk_task mk_constants
+-targets               := mk_task_user.o mk_task_kern.o \
+-                 mk_constants_user.o mk_constants_kern.o
++host-progs            := mk_task mk_constants
++always                        := $(host-progs)
  
-+include $(ARCH_DIR)/Makefile-$(SUBARCH)
-+include $(ARCH_DIR)/Makefile-os-$(OS)
+-$(obj)/mk_task: $(obj)/mk_task_user.o $(obj)/mk_task_kern.o
+-      $(CC) -o $@ $^
++mk_task-objs          := mk_task_user.o mk_task_kern.o
++mk_constants-objs     := mk_constants_user.o mk_constants_kern.o
+-$(obj)/mk_task_user.o: $(src)/mk_task_user.c
+-      $(CC) -o $@ -c $< 
+-
+-$(obj)/mk_constants : $(obj)/mk_constants_user.o $(obj)/mk_constants_kern.o
+-      $(CC) -o $@ $^
+-
+-$(obj)/mk_constants_user.o : $(src)/mk_constants_user.c
+-      $(CC) -c $< -o $@
+-
+-$(obj)/mk_constants_kern.o : $(src)/mk_constants_kern.c
+-      $(CC) $(CFLAGS) -c $< -o $@
+-
+-clean:
+-      $(RM) $(build-targets)
+-
+-archmrproper:
++HOSTCFLAGS_mk_task_kern.o     := $(CFLAGS) $(CPPFLAGS)
++HOSTCFLAGS_mk_constants_kern.o        := $(CFLAGS) $(CPPFLAGS)
+Index: uml-2.6.7/arch/um/os-Linux/file.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/os-Linux/file.c     2004-07-16 19:37:43.530407448 +0300
++++ uml-2.6.7/arch/um/os-Linux/file.c  2004-07-16 19:47:23.767198048 +0300
+@@ -8,6 +8,8 @@
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <signal.h>
++#include <sys/types.h>
++#include <sys/stat.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
+ #include <sys/ioctl.h>
+@@ -17,33 +19,235 @@
+ #include "user.h"
+ #include "kern_util.h"
+-int os_file_type(char *file)
++static void copy_stat(struct uml_stat *dst, struct stat64 *src)
++{
++      *dst = ((struct uml_stat) {
++              .ust_dev     = src->st_dev,     /* device */
++              .ust_ino     = src->st_ino,     /* inode */
++              .ust_mode    = src->st_mode,    /* protection */
++              .ust_nlink   = src->st_nlink,   /* number of hard links */
++              .ust_uid     = src->st_uid,     /* user ID of owner */
++              .ust_gid     = src->st_gid,     /* group ID of owner */
++              .ust_size    = src->st_size,    /* total size, in bytes */
++              .ust_blksize = src->st_blksize, /* blocksize for filesys I/O */
++              .ust_blocks  = src->st_blocks,  /* number of blocks allocated */
++              .ust_atime   = src->st_atime,   /* time of last access */
++              .ust_mtime   = src->st_mtime,   /* time of last modification */
++              .ust_ctime   = src->st_ctime,   /* time of last change */
++      });
++}
++
++int os_stat_fd(const int fd, struct uml_stat *ubuf)
++{
++      struct stat64 sbuf;
++      int err;
++
++      do {
++              err = fstat64(fd, &sbuf);
++      } while((err < 0) && (errno == EINTR)) ;
++
++      if(err < 0) 
++              return(-errno);
++
++      if(ubuf != NULL)
++              copy_stat(ubuf, &sbuf);
++      return(err);
++}
++
++int os_stat_file(const char *file_name, struct uml_stat *ubuf)
++{
++      struct stat64 sbuf;
++      int err;
++
++      do {
++              err = stat64(file_name, &sbuf);
++      } while((err < 0) && (errno == EINTR)) ;
++
++      if(err < 0) 
++              return(-errno);
++
++      if(ubuf != NULL)
++              copy_stat(ubuf, &sbuf);
++      return(err);
++}
++
++int os_access(const char* file, int mode)
++{
++      int amode, err;
++
++      amode=(mode&OS_ACC_R_OK ? R_OK : 0) | (mode&OS_ACC_W_OK ? W_OK : 0) |
++            (mode&OS_ACC_X_OK ? X_OK : 0) | (mode&OS_ACC_F_OK ? F_OK : 0) ;
++
++      err = access(file, amode);
++      if(err < 0)
++              return(-errno);
++
++      return(0);
++}
++
++void os_print_error(int error, const char* str)
++{
++      errno = error < 0 ? -error : error;
++
++      perror(str);
++}
++
++/* FIXME? required only by hostaudio (because it passes ioctls verbatim) */
++int os_ioctl_generic(int fd, unsigned int cmd, unsigned long arg)
++{
++      int err;
++
++      err = ioctl(fd, cmd, arg);
++      if(err < 0)
++              return(-errno);
++
++      return(err);
++}
++
++int os_window_size(int fd, int *rows, int *cols)
++{
++      struct winsize size;
++
++      if(ioctl(fd, TIOCGWINSZ, &size) < 0)
++              return(-errno);
++
++      *rows = size.ws_row;
++      *cols = size.ws_col;
++
++      return(0);
++}
++
++int os_new_tty_pgrp(int fd, int pid)
+ {
+-      struct stat64 buf;
++      if(ioctl(fd, TIOCSCTTY, 0) < 0){
++              printk("TIOCSCTTY failed, errno = %d\n", errno);
++              return(-errno);
++      }
++
++      if(tcsetpgrp(fd, pid) < 0){
++              printk("tcsetpgrp failed, errno = %d\n", errno);
++              return(-errno);
++      }
++
++      return(0);
++}
++
++/* FIXME: ensure namebuf in os_get_if_name is big enough */
++int os_get_ifname(int fd, char* namebuf)
++{
++      if(ioctl(fd, SIOCGIFNAME, namebuf) < 0)
++              return(-errno);
++
++      return(0);
++}
++
++int os_set_slip(int fd)
++{
++      int disc, sencap;
++
++      disc = N_SLIP;
++      if(ioctl(fd, TIOCSETD, &disc) < 0){
++              printk("Failed to set slip line discipline - "
++                     "errno = %d\n", errno);
++              return(-errno);
++      }
++
++      sencap = 0;
++      if(ioctl(fd, SIOCSIFENCAP, &sencap) < 0){
++              printk("Failed to set slip encapsulation - "
++                     "errno = %d\n", errno);
++              return(-errno);
++      }
++
++      return(0);
++}
++
++int os_set_owner(int fd, int pid)
++{
++      if(fcntl(fd, F_SETOWN, pid) < 0){
++              int save_errno = errno;
++
++              if(fcntl(fd, F_GETOWN, 0) != pid)
++                      return(-save_errno);
++      }
 +
- EXTRAVERSION := $(EXTRAVERSION)-1um
- ARCH_INCLUDE = -I$(ARCH_DIR)/include
-@@ -52,14 +59,20 @@
- CFLAGS += $(CFLAGS-y) -D__arch_um__ -DSUBARCH=\"$(SUBARCH)\" \
-       -D_LARGEFILE64_SOURCE $(ARCH_INCLUDE) -Derrno=kernel_errno \
--      $(MODE_INCLUDE)
-+      -Dsigprocmask=kernel_sigprocmask $(MODE_INCLUDE)
- LINK_WRAPS = -Wl,--wrap,malloc -Wl,--wrap,free -Wl,--wrap,calloc
++      return(0);
++}
++
++/* FIXME? moved wholesale from sigio_user.c to get fcntls out of that file */ 
++int os_sigio_async(int master, int slave)
++{
++      int flags;
  
-+# These are needed for clean and mrproper, since in that case .config is not
-+# included; the values here are meaningless
+-      if(stat64(file, &buf) == -1)
++      flags = fcntl(master, F_GETFL);
++      if(flags < 0) {
++              printk("fcntl F_GETFL failed, errno = %d\n", errno);
+               return(-errno);
++      }
 +
-+CONFIG_NEST_LEVEL ?= 0
-+CONFIG_KERNEL_HALF_GIGS ?=  0
++      if((fcntl(master, F_SETFL, flags | O_NONBLOCK | O_ASYNC) < 0) ||
++         (fcntl(master, F_SETOWN, os_getpid()) < 0)){
++              printk("fcntl F_SETFL or F_SETOWN failed, errno = %d\n", errno);
++              return(-errno);
++      }
 +
- SIZE = (($(CONFIG_NEST_LEVEL) + $(CONFIG_KERNEL_HALF_GIGS)) * 0x20000000)
- ifeq ($(CONFIG_MODE_SKAS), y)
--$(SYS_HEADERS) : $(ARCH_DIR)/kernel/skas/include/skas_ptregs.h
-+$(SYS_HEADERS) : $(TOPDIR)/$(ARCH_DIR)/include/skas_ptregs.h
- endif
- include/linux/version.h: arch/$(ARCH)/Makefile
-@@ -98,17 +111,17 @@
- CONFIG_KERNEL_STACK_ORDER ?= 2
- STACK_SIZE := $(shell echo $$[ 4096 * (1 << $(CONFIG_KERNEL_STACK_ORDER)) ] )
++      if((fcntl(slave, F_SETFL, flags | O_NONBLOCK) < 0)){
++              printk("fcntl F_SETFL failed, errno = %d\n", errno);
++              return(-errno);
++      }
  
--AFLAGS_vmlinux.lds.o = -U$(SUBARCH) \
-+AFLAGS_vmlinux.lds.o = $(shell echo -U$(SUBARCH) \
-       -DSTART=$$(($(TOP_ADDR) - $(SIZE))) -DELF_ARCH=$(ELF_ARCH) \
-       -DELF_FORMAT=\"$(ELF_FORMAT)\" $(CPP_MODE_TT) \
--      -DKERNEL_STACK_SIZE=$(STACK_SIZE)
-+      -DKERNEL_STACK_SIZE=$(STACK_SIZE))
+-      if(S_ISDIR(buf.st_mode)) return(OS_TYPE_DIR);
+-      else if(S_ISLNK(buf.st_mode)) return(OS_TYPE_SYMLINK);
+-      else if(S_ISCHR(buf.st_mode)) return(OS_TYPE_CHARDEV);
+-      else if(S_ISBLK(buf.st_mode)) return(OS_TYPE_BLOCKDEV);
+-      else if(S_ISFIFO(buf.st_mode)) return(OS_TYPE_FIFO);
+-      else if(S_ISSOCK(buf.st_mode)) return(OS_TYPE_SOCK);
++      return(0);
++}
++
++int os_mode_fd(int fd, int mode)
++{
++      int err;
++
++      do {
++              err = fchmod(fd, mode);
++      } while((err < 0) && (errno==EINTR)) ;
++
++      if(err < 0)
++              return(-errno);
++
++      return(0);
++}
++
++int os_file_type(char *file)
++{
++      struct uml_stat buf;
++      int err;
++
++      err = os_stat_file(file, &buf);
++      if(err < 0)
++              return(err);
++
++      if(S_ISDIR(buf.ust_mode)) return(OS_TYPE_DIR);
++      else if(S_ISLNK(buf.ust_mode)) return(OS_TYPE_SYMLINK);
++      else if(S_ISCHR(buf.ust_mode)) return(OS_TYPE_CHARDEV);
++      else if(S_ISBLK(buf.ust_mode)) return(OS_TYPE_BLOCKDEV);
++      else if(S_ISFIFO(buf.ust_mode)) return(OS_TYPE_FIFO);
++      else if(S_ISSOCK(buf.ust_mode)) return(OS_TYPE_SOCK);
+       else return(OS_TYPE_FILE);
+ }
  
--AFLAGS_$(LD_SCRIPT-y:.s=).o = $(AFLAGS_vmlinux.lds.o) -P -C -Uum
-+export AFLAGS_$(LD_SCRIPT-y:.s=).o = $(AFLAGS_vmlinux.lds.o) -P -C -Uum
+ int os_file_mode(char *file, struct openflags *mode_out)
+ {
++      int err;
++
+       *mode_out = OPENFLAGS();
  
- LD_SCRIPT-y := $(ARCH_DIR)/$(LD_SCRIPT-y)
+-      if(!access(file, W_OK)) *mode_out = of_write(*mode_out);
+-      else if(errno != EACCES) 
+-              return(-errno);
++      err = os_access(file, OS_ACC_W_OK);
++      if((err < 0) && (err != -EACCES))
++              return(err);
  
--$(LD_SCRIPT-y) : $(LD_SCRIPT-y:.s=.S) scripts FORCE
--      $(call if_changed_dep,as_s_S)
-+#$(LD_SCRIPT-y) : $(LD_SCRIPT-y:.s=.S) scripts FORCE
-+#     $(call if_changed_dep,as_s_S)
+-      if(!access(file, R_OK)) *mode_out = of_read(*mode_out);
+-      else if(errno != EACCES) 
+-              return(-errno);
++      *mode_out = of_write(*mode_out);
++
++      err = os_access(file, OS_ACC_R_OK);
++      if((err < 0) && (err != -EACCES))
++              return(err);
++
++      *mode_out = of_read(*mode_out);
  
- linux: vmlinux $(LD_SCRIPT-y)
-       $(CC) -Wl,-T,$(LD_SCRIPT-y) $(LINK-y) $(LINK_WRAPS) \
-@@ -116,37 +129,47 @@
+       return(0);
+ }
+@@ -63,16 +267,14 @@
+       if(flags.e) f |= O_EXCL;
  
- USER_CFLAGS := $(patsubst -I%,,$(CFLAGS))
- USER_CFLAGS := $(patsubst -Derrno=kernel_errno,,$(USER_CFLAGS))
-+USER_CFLAGS := $(patsubst -Dsigprocmask=kernel_sigprocmask,,$(USER_CFLAGS))
- USER_CFLAGS := $(patsubst -D__KERNEL__,,$(USER_CFLAGS)) $(ARCH_INCLUDE) \
-       $(MODE_INCLUDE)
+       fd = open64(file, f, mode);
+-      if(fd < 0) return(-errno);
+-      
+-      if(flags.cl){
+-              if(fcntl(fd, F_SETFD, 1)){
+-                      close(fd);
+-                      return(-errno);
+-              }
++      if(fd < 0)
++              return(-errno);
++
++      if(flags.cl && fcntl(fd, F_SETFD, 1)){
++              os_close_file(fd);
++              return(-errno);
+       }
  
- # To get a definition of F_SETSIG
- USER_CFLAGS += -D_GNU_SOURCE
+-      return(fd);
+       return(fd);
+ }
  
-+# From main Makefile, these options are set after including the ARCH makefile.
-+# So copy them here.
-+
-+ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
-+USER_CFLAGS           += -Os
-+else
-+USER_CFLAGS           += -O2
-+endif
-+
-+ifndef CONFIG_FRAME_POINTER
-+USER_CFLAGS           += -fomit-frame-pointer
-+endif
-+
-+ifdef CONFIG_DEBUG_INFO
-+USER_CFLAGS           += -g
-+endif
-+
- CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/uml.lds.s \
--      $(ARCH_DIR)/dyn_link.ld.s $(GEN_HEADERS)
-+      $(ARCH_DIR)/dyn_link.ld.s $(ARCH_DIR)/include/uml-config.h \
-+      $(GEN_HEADERS)
+@@ -90,7 +292,7 @@
  
--$(ARCH_DIR)/main.o: $(ARCH_DIR)/main.c
--      $(CC) $(USER_CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
-+MRPROPER_FILES += $(SYMLINK_HEADERS) $(ARCH_SYMLINKS) \
-+      $(addprefix $(ARCH_DIR)/kernel/,$(KERN_SYMLINKS))
-+
-+$(ARCH_DIR)/main.o: $(ARCH_DIR)/main.c sys_prepare
-+      @ echo '  MAIN    $@'
-+      @ $(CC) $(USER_CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+       err = connect(fd, (struct sockaddr *) &sock, sizeof(sock));
+       if(err)
+-              return(err);
++              return(-errno);
  
- archmrproper:
--      for d in $(ARCH_SUBDIRS) $(ARCH_DIR)/util; \
--      do \
--              $(MAKE) -C $$d archmrproper; \
--      done
--      rm -f $(CLEAN_FILES) $(SYMLINK_HEADERS) $(ARCH_SYMLINKS) include/asm \
--              $(addprefix $(ARCH_DIR)/kernel/,$(KERN_SYMLINKS))
--
--archclean: sysclean
--      for d in $(ARCH_SUBDIRS) $(ARCH_DIR)/util; \
--      do \
--              $(MAKE) -C $$d clean; \
--      done
--      find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \
--              -o -name '*.gcov' \) -type f -print | xargs rm -f
--      rm -f linux x.i gmon.out $(ARCH_DIR)/link.ld $(GEN_HEADERS)
-+      @:
+       return(fd);
+ }
+@@ -109,88 +311,162 @@
+       return(0);
+ }
  
--archdep: 
--      for d in $(ARCH_SUBDIRS); do $(MAKE) -C $$d fastdep; done
-+archclean:
-+      @find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \
-+              -o -name '*.gcov' \) -type f -print | xargs rm -f
+-int os_read_file(int fd, void *buf, int len)
++static int fault_buffer(void *start, int len, 
++                      int (*copy_proc)(void *addr, void *buf, int len))
+ {
+-      int n;
++      int page = getpagesize(), i;
++      char c;
  
- $(SYMLINK_HEADERS):
-       cd $(TOPDIR)/$(dir $@) ; \
-@@ -161,19 +184,26 @@
- $(ARCH_DIR)/os:
-       cd $(ARCH_DIR) && ln -sf os-$(OS) os
+-      /* Force buf into memory if it's not already. */
++      for(i = 0; i < len; i += page){
++              if((*copy_proc)(start + i, &c, sizeof(c)))
++                      return(-EFAULT);
++      }
++      if((len % page) != 0){
++              if((*copy_proc)(start + len - 1, &c, sizeof(c)))
++                      return(-EFAULT);
++      }
++      return(0);
++}
  
--$(ARCH_DIR)/include/uml-config.h :
--      sed 's/ CONFIG/ UML_CONFIG/' $(TOPDIR)/include/linux/autoconf.h > $@
-+# Generated files
-+define filechk_umlconfig
-+      sed 's/ CONFIG/ UML_CONFIG/'
-+endef
-+
-+$(ARCH_DIR)/include/uml-config.h : $(TOPDIR)/include/linux/autoconf.h
-+      $(call filechk,umlconfig)
+-      /* XXX This fails if buf is kernel memory */
+-#ifdef notdef
+-      if(copy_to_user_proc(buf, &c, sizeof(c)))
+-              return(-EFAULT);
+-#endif
++static int file_io(int fd, void *buf, int len,
++                 int (*io_proc)(int fd, void *buf, int len),
++                 int (*copy_user_proc)(void *addr, void *buf, int len))
++{
++      int n, err;
 +
-+filechk_gen_header = $<
- $(ARCH_DIR)/include/task.h : $(ARCH_DIR)/util/mk_task
--      $< > $@
-+      $(call filechk,gen_header)
- $(ARCH_DIR)/include/kern_constants.h : $(ARCH_DIR)/util/mk_constants
--      $< > $@
-+      $(call filechk,gen_header)
++      do {
++              n = (*io_proc)(fd, buf, len);
++              if((n < 0) && (errno == EFAULT)){
++                      err = fault_buffer(buf, len, copy_user_proc);
++                      if(err)
++                              return(err);
++                      n = (*io_proc)(fd, buf, len);
++              }
++      } while((n < 0) && (errno == EINTR));
  
--$(ARCH_DIR)/util/mk_task : $(ARCH_DIR)/kernel/skas/include/skas_ptregs.h \
--      $(ARCH_DIR)/util FORCE ;
-+$(ARCH_DIR)/util/mk_task $(ARCH_DIR)/util/mk_constants : $(ARCH_DIR)/util \
-+      sys_prepare FORCE ;
+-      n = read(fd, buf, len);
+       if(n < 0)
+               return(-errno);
+       return(n);
+ }
  
- $(ARCH_DIR)/util: FORCE
--      @$(call descend,$@,)
-+      $(Q)$(MAKE) $(build)=$@
+-int os_write_file(int fd, void *buf, int count)
++int os_read_file(int fd, void *buf, int len)
+ {
+-      int n;
+-
+-      /* Force buf into memory if it's not already. */
+-      
+-      /* XXX This fails if buf is kernel memory */
+-#ifdef notdef
+-      if(copy_to_user_proc(buf, buf, buf[0]))
+-              return(-EFAULT);
+-#endif
++      return(file_io(fd, buf, len, (int (*)(int, void *, int)) read, 
++                     copy_from_user_proc));
++}
  
--export SUBARCH USER_CFLAGS OS
-+export SUBARCH USER_CFLAGS OS 
-diff -Naur a/arch/um/Makefile-i386 b/arch/um/Makefile-i386
---- a/arch/um/Makefile-i386    2004-03-10 08:22:34.000000000 -0500
-+++ b/arch/um/Makefile-i386    2004-03-10 08:42:25.000000000 -0500
-@@ -16,22 +16,27 @@
+-      n = write(fd, buf, count);
+-      if(n < 0)
+-              return(-errno);
+-      return(n);
++int os_write_file(int fd, const void *buf, int len)
++{
++      return(file_io(fd, (void *) buf, len, 
++                     (int (*)(int, void *, int)) write, copy_to_user_proc));
+ }
  
- SYS_HEADERS = $(SYS_DIR)/sc.h $(SYS_DIR)/thread.h
+ int os_file_size(char *file, long long *size_out)
+ {
+-      struct stat64 buf;
++      struct uml_stat buf;
++      int err;
  
-+sys_prepare: $(SYS_DIR)/sc.h
+-      if(stat64(file, &buf) == -1){
+-              printk("Couldn't stat \"%s\" : errno = %d\n", file, errno);
+-              return(-errno);
++      err = os_stat_file(file, &buf);
++      if(err < 0){
++              printk("Couldn't stat \"%s\" : err = %d\n", file, -err);
++              return(err);
+       }
+-      if(S_ISBLK(buf.st_mode)){
 +
- prepare: $(SYS_HEADERS)
++      if(S_ISBLK(buf.ust_mode)){
+               int fd, blocks;
  
-+filechk_$(SYS_DIR)/sc.h := $(SYS_UTIL_DIR)/mk_sc
+-              if((fd = open64(file, O_RDONLY)) < 0){
+-                      printk("Couldn't open \"%s\", errno = %d\n", file,
+-                             errno);
+-                      return(-errno);
++              fd = os_open_file(file, of_read(OPENFLAGS()), 0);
++              if(fd < 0){
++                      printk("Couldn't open \"%s\", errno = %d\n", file, -fd);
++                      return(fd);
+               }
+               if(ioctl(fd, BLKGETSIZE, &blocks) < 0){
+                       printk("Couldn't get the block size of \"%s\", "
+                              "errno = %d\n", file, errno);
+-                      close(fd);
+-                      return(-errno);
++                      err = -errno;
++                      os_close_file(fd);
++                      return(err);
+               }
+               *size_out = ((long long) blocks) * 512;
+-              close(fd);
++              os_close_file(fd);
+               return(0);
+       }
+-      *size_out = buf.st_size;
++      *size_out = buf.ust_size;
++      return(0);
++}
 +
- $(SYS_DIR)/sc.h: $(SYS_UTIL_DIR)/mk_sc
--      $< > $@
-+      $(call filechk,$@)
++int os_file_modtime(char *file, unsigned long *modtime)
++{
++      struct uml_stat buf;
++      int err;
 +
-+filechk_$(SYS_DIR)/thread.h := $(SYS_UTIL_DIR)/mk_thread 
- $(SYS_DIR)/thread.h: $(SYS_UTIL_DIR)/mk_thread 
--      $< > $@
-+      $(call filechk,$@)
--$(SYS_UTIL_DIR)/mk_sc: FORCE ; 
--      @$(call descend,$(SYS_UTIL_DIR),$@)
-+$(SYS_UTIL_DIR)/mk_sc: scripts/fixdep include/config/MARKER FORCE ; 
-+      $(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
--$(SYS_UTIL_DIR)/mk_thread: $(ARCH_SYMLINKS) $(GEN_HEADERS) FORCE ; 
--      @$(call descend,$(SYS_UTIL_DIR),$@)
-+$(SYS_UTIL_DIR)/mk_thread: $(ARCH_SYMLINKS) $(GEN_HEADERS) sys_prepare FORCE ; 
-+      $(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
- $(SYS_UTIL_DIR): include/asm FORCE
--      @$(call descend,$@,)
-+      $(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR)
++      err = os_stat_file(file, &buf);
++      if(err < 0){
++              printk("Couldn't stat \"%s\" : err = %d\n", file, -err);
++              return(err);
++      }
++
++      *modtime = buf.ust_mtime;
+       return(0);
+ }
  
--sysclean :
--      rm -f $(SYS_HEADERS)
-+CLEAN_FILES += $(SYS_HEADERS)
-diff -Naur a/arch/um/Makefile-skas b/arch/um/Makefile-skas
---- a/arch/um/Makefile-skas    2004-03-10 08:21:06.000000000 -0500
-+++ b/arch/um/Makefile-skas    2004-03-10 08:38:38.000000000 -0500
-@@ -14,7 +14,7 @@
- LINK_SKAS = -Wl,-rpath,/lib 
- LD_SCRIPT_SKAS = dyn.lds.s
++int os_get_exec_close(int fd, int* close_on_exec)
++{
++      int ret;
++
++      do {
++              ret = fcntl(fd, F_GETFD);
++      } while((ret < 0) && (errno == EINTR)) ;
++
++      if(ret < 0)
++              return(-errno);
++
++      *close_on_exec = (ret&FD_CLOEXEC) ? 1 : 0;
++      return(ret);
++}
++
++int os_set_exec_close(int fd, int close_on_exec)
++{
++      int flag, err;
++
++      if(close_on_exec) flag = FD_CLOEXEC;
++      else flag = 0;
++
++      do {
++              err = fcntl(fd, F_SETFD, flag);
++      } while((err < 0) && (errno == EINTR)) ;
++
++      if(err < 0)
++              return(-errno);
++      return(err);
++}
++
+ int os_pipe(int *fds, int stream, int close_on_exec)
+ {
+       int err, type = stream ? SOCK_STREAM : SOCK_DGRAM;
  
--GEN_HEADERS += $(ARCH_DIR)/kernel/skas/include/skas_ptregs.h
-+GEN_HEADERS += $(TOPDIR)/$(ARCH_DIR)/include/skas_ptregs.h
+       err = socketpair(AF_UNIX, type, 0, fds);
+-      if(err) 
++      if(err < 0) 
+               return(-errno);
  
--$(ARCH_DIR)/kernel/skas/include/skas_ptregs.h :
--      $(MAKE) -C $(ARCH_DIR)/kernel/skas include/skas_ptregs.h
-+$(TOPDIR)/$(ARCH_DIR)/include/skas_ptregs.h :
-+      $(Q)$(MAKE) $(build)=$(ARCH_DIR)/kernel/skas $@
-diff -Naur a/arch/um/os-Linux/drivers/ethertap_kern.c b/arch/um/os-Linux/drivers/ethertap_kern.c
---- a/arch/um/os-Linux/drivers/ethertap_kern.c 2004-03-10 08:20:16.000000000 -0500
-+++ b/arch/um/os-Linux/drivers/ethertap_kern.c 2004-03-10 08:34:08.000000000 -0500
-@@ -8,7 +8,6 @@
- #include "linux/init.h"
- #include "linux/netdevice.h"
- #include "linux/etherdevice.h"
--#include "linux/init.h"
- #include "net_kern.h"
- #include "net_user.h"
- #include "etap.h"
-diff -Naur a/arch/um/os-Linux/drivers/ethertap_user.c b/arch/um/os-Linux/drivers/ethertap_user.c
---- a/arch/um/os-Linux/drivers/ethertap_user.c 2004-03-10 08:21:27.000000000 -0500
-+++ b/arch/um/os-Linux/drivers/ethertap_user.c 2004-03-10 08:39:05.000000000 -0500
-@@ -8,7 +8,6 @@
- #include <stdio.h>
- #include <unistd.h>
- #include <stddef.h>
--#include <fcntl.h>
- #include <stdlib.h>
- #include <sys/errno.h>
- #include <sys/socket.h>
-@@ -42,13 +41,14 @@
- {
-       struct addr_change change;
-       void *output;
-+      int n;
+       if(!close_on_exec)
+               return(0);
  
-       change.what = op;
-       memcpy(change.addr, addr, sizeof(change.addr));
-       memcpy(change.netmask, netmask, sizeof(change.netmask));
--      if(write(fd, &change, sizeof(change)) != sizeof(change))
--              printk("etap_change - request failed, errno = %d\n",
+-      if((fcntl(fds[0], F_SETFD, 1) < 0) || (fcntl(fds[1], F_SETFD, 1) < 0))
+-              printk("os_pipe : Setting FD_CLOEXEC failed, errno = %d", 
 -                     errno);
-+      n = os_write_file(fd, &change, sizeof(change));
-+      if(n != sizeof(change))
-+              printk("etap_change - request failed, err = %d\n", -n);
-       output = um_kmalloc(page_size());
-       if(output == NULL)
-               printk("etap_change : Failed to allocate output buffer\n");
-@@ -82,15 +82,15 @@
-       struct etap_pre_exec_data *data = arg;
++      err = os_set_exec_close(fds[0], 1);
++      if(err < 0)
++              goto error;
++
++      err = os_set_exec_close(fds[1], 1);
++      if(err < 0)
++              goto error;
  
-       dup2(data->control_remote, 1);
--      close(data->data_me);
--      close(data->control_me);
-+      os_close_file(data->data_me);
-+      os_close_file(data->control_me);
+       return(0);
++
++ error:
++      printk("os_pipe : Setting FD_CLOEXEC failed, err = %d\n", -err);
++      os_close_file(fds[1]);
++      os_close_file(fds[0]);
++      return(err);
+ }
+ int os_set_fd_async(int fd, int owner)
+@@ -270,7 +546,7 @@
+               return(-EINVAL);
+       }
+       err = shutdown(fd, what);
+-      if(err)
++      if(err < 0)
+               return(-errno);
+       return(0);
+ }
+@@ -315,7 +591,7 @@
+       return(new);
  }
  
- static int etap_tramp(char *dev, char *gate, int control_me, 
-                     int control_remote, int data_me, int data_remote)
+-int create_unix_socket(char *file, int len)
++int os_create_unix_socket(char *file, int len, int close_on_exec)
  {
-       struct etap_pre_exec_data pe_data;
--      int pid, status, err;
-+      int pid, status, err, n;
-       char version_buf[sizeof("nnnnn\0")];
-       char data_fd_buf[sizeof("nnnnnn\0")];
-       char gate_buf[sizeof("nnn.nnn.nnn.nnn\0")];
-@@ -114,21 +114,21 @@
-       pe_data.data_me = data_me;
-       pid = run_helper(etap_pre_exec, &pe_data, args, NULL);
+       struct sockaddr_un addr;
+       int sock, err;
+@@ -327,6 +603,13 @@
+               return(-errno);
+       }
  
--      if(pid < 0) err = errno;
--      close(data_remote);
--      close(control_remote);
--      if(read(control_me, &c, sizeof(c)) != sizeof(c)){
--              printk("etap_tramp : read of status failed, errno = %d\n",
++      if(close_on_exec) {
++              err = os_set_exec_close(sock, 1);
++              if(err < 0)
++                      printk("create_unix_socket : close_on_exec failed, "
++                     "err = %d", -err);
++      }
++
+       addr.sun_family = AF_UNIX;
+       /* XXX Be more careful about overflow */
+@@ -334,14 +617,45 @@
+       err = bind(sock, (struct sockaddr *) &addr, sizeof(addr));
+       if (err < 0){
+-              printk("create_listening_socket - bind failed, errno = %d\n",
 -                     errno);
--              return(EINVAL);
-+      if(pid < 0) err = pid;
-+      os_close_file(data_remote);
-+      os_close_file(control_remote);
-+      n = os_read_file(control_me, &c, sizeof(c));
-+      if(n != sizeof(c)){
-+              printk("etap_tramp : read of status failed, err = %d\n", -n);
-+              return(-EINVAL);
-       }
-       if(c != 1){
-               printk("etap_tramp : uml_net failed\n");
--              err = EINVAL;
--              if(waitpid(pid, &status, 0) < 0) err = errno;
--              else if(!WIFEXITED(status) || (WEXITSTATUS(status) != 1)){
-+              err = -EINVAL;
-+              if(waitpid(pid, &status, 0) < 0)
-+                      err = -errno;
-+              else if(!WIFEXITED(status) || (WEXITSTATUS(status) != 1))
-                       printk("uml_net didn't exit with status 1\n");
--              }
++              printk("create_listening_socket at '%s' - bind failed, "
++                     "errno = %d\n", file, errno);
+               return(-errno);
        }
-       return(err);
+       return(sock);
  }
-@@ -143,14 +143,14 @@
-       if(err) return(err);
  
-       err = os_pipe(data_fds, 0, 0);
--      if(err){
--              printk("data os_pipe failed - errno = %d\n", -err);
-+      if(err < 0){
-+              printk("data os_pipe failed - err = %d\n", -err);
-               return(err);
++void os_flush_stdout(void)
++{
++      fflush(stdout);
++}
++
++int os_lock_file(int fd, int excl)
++{
++      int type = excl ? F_WRLCK : F_RDLCK;
++      struct flock lock = ((struct flock) { .l_type   = type,
++                                            .l_whence = SEEK_SET,
++                                            .l_start  = 0,
++                                            .l_len    = 0 } );
++      int err, save;
++
++      err = fcntl(fd, F_SETLK, &lock);
++      if(!err)
++              goto out;
++
++      save = -errno;
++      err = fcntl(fd, F_GETLK, &lock);
++      if(err){
++              err = -errno;
++              goto out;
++      }
++
++      printk("F_SETLK failed, file already locked by pid %d\n", lock.l_pid);
++      err = save;
++ out:
++      return(err);
++}
++
+ /*
+  * Overrides for Emacs so that we follow Linus's tabbing style.
+  * Emacs will notice this stuff at the end of the file and automatically
+Index: uml-2.6.7/arch/um/kernel/tt/sys-i386/Makefile
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/tt/sys-i386/Makefile 2004-07-16 19:36:33.266089248 +0300
++++ uml-2.6.7/arch/um/kernel/tt/sys-i386/Makefile      2004-07-16 19:47:23.750200632 +0300
+@@ -10,5 +10,3 @@
+ $(USER_OBJS) : %.o: %.c
+       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
+-
+-clean :
+Index: uml-2.6.7/arch/um/kernel/skas/exec_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/skas/exec_user.c     2004-07-16 19:36:07.836955064 +0300
++++ uml-2.6.7/arch/um/kernel/skas/exec_user.c  2004-07-16 19:47:24.798041336 +0300
+@@ -11,6 +11,7 @@
+ #include <sys/ptrace.h>
+ #include "user.h"
+ #include "kern_util.h"
++#include "user_util.h"
+ #include "os.h"
+ #include "time_user.h"
+@@ -26,7 +27,7 @@
+ int user_thread(unsigned long stack, int flags)
+ {
+-      int pid, status;
++      int pid, status, err;
+       pid = clone(user_thread_tramp, (void *) stack_sp(stack), 
+                   flags | CLONE_FILES | SIGCHLD, NULL);
+@@ -35,7 +36,8 @@
+               return(pid);
        }
  
-       err = os_pipe(control_fds, 1, 0);
--      if(err){
--              printk("control os_pipe failed - errno = %d\n", -err);
+-      if(waitpid(pid, &status, WUNTRACED) < 0){
++      CATCH_EINTR(err = waitpid(pid, &status, WUNTRACED));
 +      if(err < 0){
-+              printk("control os_pipe failed - err = %d\n", -err);
-               return(err);
+               printk("user_thread - waitpid failed, errno = %d\n", errno);
+               return(-errno);
        }
-       
-@@ -167,9 +167,9 @@
-               kfree(output);
+Index: uml-2.6.7/arch/um/kernel/tt/mem_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/tt/mem_user.c        2004-07-16 19:36:16.863582808 +0300
++++ uml-2.6.7/arch/um/kernel/tt/mem_user.c     2004-07-16 19:47:23.745201392 +0300
+@@ -25,14 +25,13 @@
+       size = (unsigned long) segment_end - 
+               (unsigned long) segment_start;
+       data = create_mem_file(size);
+-      if((addr = mmap(NULL, size, PROT_WRITE | PROT_READ, 
+-                      MAP_SHARED, data, 0)) == MAP_FAILED){
++      addr = mmap(NULL, size, PROT_WRITE | PROT_READ, MAP_SHARED, data, 0);
++      if(addr == MAP_FAILED){
+               perror("mapping new data segment");
+               exit(1);
        }
--      if(err != 0){
--              printk("etap_tramp failed - errno = %d\n", err);
--              return(-err);
-+      if(err < 0){
-+              printk("etap_tramp failed - err = %d\n", -err);
-+              return(err);
+       memcpy(addr, segment_start, size);
+-      if(switcheroo(data, prot, addr, segment_start, 
+-                    size) < 0){
++      if(switcheroo(data, prot, addr, segment_start, size) < 0){
+               printf("switcheroo failed\n");
+               exit(1);
        }
+Index: uml-2.6.7/arch/um/kernel/ksyms.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/ksyms.c      2004-07-16 19:35:55.815782560 +0300
++++ uml-2.6.7/arch/um/kernel/ksyms.c   2004-07-16 19:47:24.866031000 +0300
+@@ -1,5 +1,5 @@
+ /* 
+- * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
++ * Copyright (C) 2001 - 2004 Jeff Dike (jdike@addtoit.com)
+  * Licensed under the GPL
+  */
  
-       pri->data_fd = data_fds[0];
-@@ -183,11 +183,11 @@
-       struct ethertap_data *pri = data;
+@@ -8,7 +8,7 @@
+ #include "linux/string.h"
+ #include "linux/smp_lock.h"
+ #include "linux/spinlock.h"
+-#include <linux/highmem.h>
++#include "linux/highmem.h"
+ #include "asm/current.h"
+ #include "asm/delay.h"
+ #include "asm/processor.h"
+@@ -19,6 +19,7 @@
+ #include "asm/tlbflush.h"
+ #include "kern_util.h"
+ #include "user_util.h"
++#include "mem_user.h"
+ #include "os.h"
+ #include "helper.h"
  
-       iter_addresses(pri->dev, etap_close_addr, &pri->control_fd);
--      close(fd);
-+      os_close_file(fd);
-       os_shutdown_socket(pri->data_fd, 1, 1);
--      close(pri->data_fd);
-+      os_close_file(pri->data_fd);
-       pri->data_fd = -1;
--      close(pri->control_fd);
-+      os_close_file(pri->control_fd);
-       pri->control_fd = -1;
- }
+@@ -34,34 +35,66 @@
+ EXPORT_SYMBOL(flush_tlb_range);
+ EXPORT_SYMBOL(host_task_size);
+ EXPORT_SYMBOL(arch_validate);
++EXPORT_SYMBOL(get_kmem_end);
+-EXPORT_SYMBOL(region_pa);
+-EXPORT_SYMBOL(region_va);
+-EXPORT_SYMBOL(phys_mem_map);
+-EXPORT_SYMBOL(page_mem_map);
+ EXPORT_SYMBOL(page_to_phys);
+ EXPORT_SYMBOL(phys_to_page);
+ EXPORT_SYMBOL(high_physmem);
+ EXPORT_SYMBOL(empty_zero_page);
+ EXPORT_SYMBOL(um_virt_to_phys);
++EXPORT_SYMBOL(__virt_to_page);
++EXPORT_SYMBOL(to_phys);
++EXPORT_SYMBOL(to_virt);
+ EXPORT_SYMBOL(mode_tt);
+ EXPORT_SYMBOL(handle_page_fault);
++EXPORT_SYMBOL(find_iomem);
++#ifdef CONFIG_MODE_TT
++EXPORT_SYMBOL(strncpy_from_user_tt);
++EXPORT_SYMBOL(copy_from_user_tt);
++EXPORT_SYMBOL(copy_to_user_tt);
++#endif
++
++#ifdef CONFIG_MODE_SKAS
++EXPORT_SYMBOL(strncpy_from_user_skas);
++EXPORT_SYMBOL(copy_to_user_skas);
++EXPORT_SYMBOL(copy_from_user_skas);
++#endif
++
++EXPORT_SYMBOL(os_stat_fd);
++EXPORT_SYMBOL(os_stat_file);
++EXPORT_SYMBOL(os_access);
++EXPORT_SYMBOL(os_print_error);
++EXPORT_SYMBOL(os_get_exec_close);
++EXPORT_SYMBOL(os_set_exec_close);
+ EXPORT_SYMBOL(os_getpid);
+ EXPORT_SYMBOL(os_open_file);
+ EXPORT_SYMBOL(os_read_file);
+ EXPORT_SYMBOL(os_write_file);
+ EXPORT_SYMBOL(os_seek_file);
++EXPORT_SYMBOL(os_lock_file);
++EXPORT_SYMBOL(os_ioctl_generic);
+ EXPORT_SYMBOL(os_pipe);
+ EXPORT_SYMBOL(os_file_type);
++EXPORT_SYMBOL(os_file_mode);
++EXPORT_SYMBOL(os_file_size);
++EXPORT_SYMBOL(os_flush_stdout);
+ EXPORT_SYMBOL(os_close_file);
++EXPORT_SYMBOL(os_set_fd_async);
++EXPORT_SYMBOL(os_set_fd_block);
+ EXPORT_SYMBOL(helper_wait);
+ EXPORT_SYMBOL(os_shutdown_socket);
++EXPORT_SYMBOL(os_create_unix_socket);
+ EXPORT_SYMBOL(os_connect_socket);
++EXPORT_SYMBOL(os_accept_connection);
++EXPORT_SYMBOL(os_rcv_fd);
+ EXPORT_SYMBOL(run_helper);
+ EXPORT_SYMBOL(start_thread);
+ EXPORT_SYMBOL(dump_thread);
++EXPORT_SYMBOL(do_gettimeofday);
++EXPORT_SYMBOL(do_settimeofday);
++
+ /* This is here because UML expands open to sys_open, not to a system
+  * call instruction.
+  */
+@@ -90,3 +123,13 @@
+ EXPORT_SYMBOL(kmap_atomic_to_page);
+ #endif
  
-diff -Naur a/arch/um/os-Linux/drivers/tuntap_user.c b/arch/um/os-Linux/drivers/tuntap_user.c
---- a/arch/um/os-Linux/drivers/tuntap_user.c   2004-03-10 08:23:25.000000000 -0500
-+++ b/arch/um/os-Linux/drivers/tuntap_user.c   2004-03-10 08:44:59.000000000 -0500
-@@ -8,7 +8,6 @@
- #include <stdlib.h>
- #include <unistd.h>
- #include <errno.h>
--#include <fcntl.h>
- #include <sys/wait.h>
- #include <sys/socket.h>
- #include <sys/un.h>
-@@ -61,7 +60,7 @@
-       struct tuntap_pre_exec_data *data = arg;
-       
-       dup2(data->stdout, 1);
--      close(data->close_me);
-+      os_close_file(data->close_me);
- }
++/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
+Index: uml-2.6.7/include/linux/gfp.h
+===================================================================
+--- uml-2.6.7.orig/include/linux/gfp.h 2004-07-16 19:36:13.897033792 +0300
++++ uml-2.6.7/include/linux/gfp.h      2004-07-16 19:47:23.805192272 +0300
+@@ -73,6 +73,11 @@
+  * For the normal case of non-DISCONTIGMEM systems the NODE_DATA() gets
+  * optimized to &contig_page_data at compile-time.
+  */
++
++#ifndef HAVE_ARCH_FREE_PAGE
++static inline void arch_free_page(struct page *page, int order) { }
++#endif
++
+ extern struct page *
+ FASTCALL(__alloc_pages(unsigned int, unsigned int, struct zonelist *));
  
- static int tuntap_open_tramp(char *gate, int *fd_out, int me, int remote,
-@@ -86,7 +85,7 @@
+Index: uml-2.6.7/arch/um/defconfig
+===================================================================
+--- uml-2.6.7.orig/arch/um/defconfig   2004-07-16 19:37:02.601629568 +0300
++++ uml-2.6.7/arch/um/defconfig        2004-07-16 19:47:23.676211880 +0300
+@@ -3,29 +3,19 @@
+ #
+ CONFIG_USERMODE=y
+ CONFIG_MMU=y
+-CONFIG_SWAP=y
+ CONFIG_UID16=y
+ CONFIG_RWSEM_GENERIC_SPINLOCK=y
+-CONFIG_CONFIG_LOG_BUF_SHIFT=14
  
-       if(pid < 0) return(-pid);
+ #
+-# Code maturity level options
+-#
+-CONFIG_EXPERIMENTAL=y
+-
+-#
+-# General Setup
++# UML-specific options
+ #
+ CONFIG_MODE_TT=y
+ CONFIG_MODE_SKAS=y
+ CONFIG_NET=y
+-CONFIG_SYSVIPC=y
+-CONFIG_BSD_PROCESS_ACCT=y
+-CONFIG_SYSCTL=y
+-CONFIG_BINFMT_AOUT=y
+ CONFIG_BINFMT_ELF=y
+ CONFIG_BINFMT_MISC=y
+ CONFIG_HOSTFS=y
++CONFIG_HPPFS=y
+ CONFIG_MCONSOLE=y
+ CONFIG_MAGIC_SYSRQ=y
+ # CONFIG_HOST_2G_2G is not set
+@@ -36,12 +26,43 @@
+ # CONFIG_HIGHMEM is not set
+ CONFIG_PROC_MM=y
+ CONFIG_KERNEL_STACK_ORDER=2
++CONFIG_UML_REAL_TIME_CLOCK=y
++
++#
++# Code maturity level options
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_CLEAN_COMPILE=y
++CONFIG_STANDALONE=y
++CONFIG_BROKEN_ON_SMP=y
++
++#
++# General setup
++#
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_BSD_PROCESS_ACCT=y
++CONFIG_SYSCTL=y
++CONFIG_LOG_BUF_SHIFT=14
++# CONFIG_HOTPLUG is not set
++# CONFIG_IKCONFIG is not set
++# CONFIG_EMBEDDED is not set
++CONFIG_KALLSYMS=y
++CONFIG_FUTEX=y
++CONFIG_EPOLL=y
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
  
--      close(remote);
-+      os_close_file(remote);
+ #
+ # Loadable module support
+ #
+-CONFIG_MODULES=y
+-# CONFIG_KMOD is not set
++# CONFIG_MODULES is not set
++
++#
++# Generic Driver Options
++#
  
-       msg.msg_name = NULL;
-       msg.msg_namelen = 0;
-@@ -107,19 +106,19 @@
-       if(n < 0){
-               printk("tuntap_open_tramp : recvmsg failed - errno = %d\n", 
-                      errno);
--              return(errno);
-+              return(-errno);
-       }
-       waitpid(pid, NULL, 0);
+ #
+ # Character Devices
+@@ -69,6 +90,7 @@
+ #
+ CONFIG_BLK_DEV_UBD=y
+ # CONFIG_BLK_DEV_UBD_SYNC is not set
++CONFIG_BLK_DEV_COW_COMMON=y
+ CONFIG_BLK_DEV_LOOP=y
+ CONFIG_BLK_DEV_NBD=y
+ CONFIG_BLK_DEV_RAM=y
+@@ -78,7 +100,7 @@
+ CONFIG_NETDEVICES=y
  
-       cmsg = CMSG_FIRSTHDR(&msg);
-       if(cmsg == NULL){
-               printk("tuntap_open_tramp : didn't receive a message\n");
--              return(EINVAL);
-+              return(-EINVAL);
-       }
-       if((cmsg->cmsg_level != SOL_SOCKET) || 
-          (cmsg->cmsg_type != SCM_RIGHTS)){
-               printk("tuntap_open_tramp : didn't receive a descriptor\n");
--              return(EINVAL);
-+              return(-EINVAL);
-       }
-       *fd_out = ((int *) CMSG_DATA(cmsg))[0];
-       return(0);
-@@ -133,27 +132,29 @@
-       int err, fds[2], len, used;
+ #
+-# Network Devices
++# UML Network Devices
+ #
+ CONFIG_UML_NET=y
+ CONFIG_UML_NET_ETHERTAP=y
+@@ -88,22 +110,6 @@
+ CONFIG_UML_NET_MCAST=y
+ # CONFIG_UML_NET_PCAP is not set
+ CONFIG_UML_NET_SLIRP=y
+-CONFIG_DUMMY=y
+-# CONFIG_BONDING is not set
+-# CONFIG_EQUALIZER is not set
+-CONFIG_TUN=y
+-# CONFIG_ETHERTAP is not set
+-CONFIG_PPP=y
+-# CONFIG_PPP_MULTILINK is not set
+-# CONFIG_PPP_ASYNC is not set
+-# CONFIG_PPP_SYNC_TTY is not set
+-# CONFIG_PPP_DEFLATE is not set
+-# CONFIG_PPP_BSDCOMP is not set
+-# CONFIG_PPPOE is not set
+-CONFIG_SLIP=y
+-# CONFIG_SLIP_COMPRESSED is not set
+-# CONFIG_SLIP_SMART is not set
+-# CONFIG_SLIP_MODE_SLIP6 is not set
  
-       err = tap_open_common(pri->dev, pri->gate_addr);
--      if(err) return(err);
-+      if(err < 0) 
-+              return(err);
+ #
+ # Networking support
+@@ -115,8 +121,6 @@
+ CONFIG_PACKET=y
+ CONFIG_PACKET_MMAP=y
+ # CONFIG_NETLINK_DEV is not set
+-# CONFIG_NETFILTER is not set
+-# CONFIG_FILTER is not set
+ CONFIG_UNIX=y
+ # CONFIG_NET_KEY is not set
+ CONFIG_INET=y
+@@ -130,8 +134,11 @@
+ # CONFIG_SYN_COOKIES is not set
+ # CONFIG_INET_AH is not set
+ # CONFIG_INET_ESP is not set
+-# CONFIG_XFRM_USER is not set
++# CONFIG_INET_IPCOMP is not set
+ # CONFIG_IPV6 is not set
++# CONFIG_DECNET is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_NETFILTER is not set
  
-       if(pri->fixed_config){
--              if((pri->fd = open("/dev/net/tun", O_RDWR)) < 0){
--                      printk("Failed to open /dev/net/tun, errno = %d\n",
--                             errno);
--                      return(-errno);
-+              pri->fd = os_open_file("/dev/net/tun", of_rdwr(OPENFLAGS()), 0);
-+              if(pri->fd < 0){
-+                      printk("Failed to open /dev/net/tun, err = %d\n",
-+                             -pri->fd);
-+                      return(pri->fd);
-               }
-               memset(&ifr, 0, sizeof(ifr));
--              ifr.ifr_flags = IFF_TAP;
-+              ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
-               strlcpy(ifr.ifr_name, pri->dev_name, sizeof(ifr.ifr_name));
-               if(ioctl(pri->fd, TUNSETIFF, (void *) &ifr) < 0){
--                      printk("TUNSETIFF failed, errno = %d", errno);
--                      close(pri->fd);
-+                      printk("TUNSETIFF failed, errno = %d\n", errno);
-+                      os_close_file(pri->fd);
-                       return(-errno);
-               }
-       }
-       else {
-               err = os_pipe(fds, 0, 0);
--              if(err){
--                      printk("tuntap_open : os_pipe failed - errno = %d\n",
-+              if(err < 0){
-+                      printk("tuntap_open : os_pipe failed - err = %d\n",
-                              -err);
-                       return(err);
-               }
-@@ -166,19 +167,19 @@
-                                       fds[1], buffer, len, &used);
+ #
+ # SCTP Configuration (EXPERIMENTAL)
+@@ -140,9 +147,9 @@
+ # CONFIG_IP_SCTP is not set
+ # CONFIG_ATM is not set
+ # CONFIG_VLAN_8021Q is not set
+-# CONFIG_LLC is not set
+-# CONFIG_DECNET is not set
+-# CONFIG_BRIDGE is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
+ # CONFIG_X25 is not set
+ # CONFIG_LAPB is not set
+ # CONFIG_NET_DIVERT is not set
+@@ -160,6 +167,10 @@
+ # Network testing
+ #
+ # CONFIG_NET_PKTGEN is not set
++CONFIG_DUMMY=y
++# CONFIG_BONDING is not set
++# CONFIG_EQUALIZER is not set
++CONFIG_TUN=y
+ #
+ # Ethernet (10 or 100Mbit)
+@@ -171,12 +182,28 @@
+ #
  
-               output = buffer;
--              if(err == 0){
--                      pri->dev_name = uml_strdup(buffer);
--                      output += IFNAMSIZ;
--                      printk(output);
--                      free_output_buffer(buffer);
--              }
--              else {
--                      printk(output);
-+              if(err < 0) {
-+                      printk("%s", output);
-                       free_output_buffer(buffer);
--                      printk("tuntap_open_tramp failed - errno = %d\n", err);
--                      return(-err);
-+                      printk("tuntap_open_tramp failed - err = %d\n", -err);
-+                      return(err);
-               }
--              close(fds[0]);
+ #
++# Ethernet (10000 Mbit)
++#
++CONFIG_PPP=y
++# CONFIG_PPP_MULTILINK is not set
++# CONFIG_PPP_FILTER is not set
++# CONFIG_PPP_ASYNC is not set
++# CONFIG_PPP_SYNC_TTY is not set
++# CONFIG_PPP_DEFLATE is not set
++# CONFIG_PPP_BSDCOMP is not set
++# CONFIG_PPPOE is not set
++CONFIG_SLIP=y
++# CONFIG_SLIP_COMPRESSED is not set
++# CONFIG_SLIP_SMART is not set
++# CONFIG_SLIP_MODE_SLIP6 is not set
 +
-+              pri->dev_name = uml_strdup(buffer);
-+              output += IFNAMSIZ;
-+              printk("%s", output);
-+              free_output_buffer(buffer);
++#
+ # Wireless LAN (non-hamradio)
+ #
+ # CONFIG_NET_RADIO is not set
+ #
+-# Token Ring devices (depends on LLC=y)
++# Token Ring devices
+ #
+ # CONFIG_SHAPER is not set
+@@ -186,68 +213,100 @@
+ # CONFIG_WAN is not set
+ #
++# Amateur Radio support
++#
++# CONFIG_HAMRADIO is not set
 +
-+              os_close_file(fds[0]);
-               iter_addresses(pri->dev, open_addr, pri->dev_name);
-       }
++#
++# IrDA (infrared) support
++#
++# CONFIG_IRDA is not set
++
++#
++# Bluetooth support
++#
++# CONFIG_BT is not set
++
++#
+ # File systems
+ #
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT3_FS is not set
++# CONFIG_JBD is not set
++CONFIG_REISERFS_FS=y
++# CONFIG_REISERFS_CHECK is not set
++# CONFIG_REISERFS_PROC_INFO is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_XFS_FS is not set
++CONFIG_MINIX_FS=y
++# CONFIG_ROMFS_FS is not set
+ CONFIG_QUOTA=y
+ # CONFIG_QFMT_V1 is not set
+ # CONFIG_QFMT_V2 is not set
+ CONFIG_QUOTACTL=y
+-CONFIG_AUTOFS_FS=m
+-CONFIG_AUTOFS4_FS=m
+-CONFIG_REISERFS_FS=m
+-# CONFIG_REISERFS_CHECK is not set
+-# CONFIG_REISERFS_PROC_INFO is not set
++CONFIG_AUTOFS_FS=y
++CONFIG_AUTOFS4_FS=y
++
++#
++# CD-ROM/DVD Filesystems
++#
++CONFIG_ISO9660_FS=y
++# CONFIG_JOLIET is not set
++# CONFIG_ZISOFS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=y
++CONFIG_MSDOS_FS=y
++CONFIG_VFAT_FS=y
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_KCORE=y
++CONFIG_DEVFS_FS=y
++CONFIG_DEVFS_MOUNT=y
++# CONFIG_DEVFS_DEBUG is not set
++# CONFIG_DEVPTS_FS_XATTR is not set
++CONFIG_TMPFS=y
++# CONFIG_HUGETLB_PAGE is not set
++CONFIG_RAMFS=y
++
++#
++# Miscellaneous filesystems
++#
+ # CONFIG_ADFS_FS is not set
+ # CONFIG_AFFS_FS is not set
+ # CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
+ # CONFIG_BEFS_FS is not set
+ # CONFIG_BFS_FS is not set
+-# CONFIG_EXT3_FS is not set
+-# CONFIG_JBD is not set
+-CONFIG_FAT_FS=m
+-CONFIG_MSDOS_FS=m
+-CONFIG_VFAT_FS=m
+ # CONFIG_EFS_FS is not set
+ CONFIG_JFFS_FS=y
+ CONFIG_JFFS_FS_VERBOSE=0
+-CONFIG_JFFS_PROC_FS=y
+ # CONFIG_JFFS2_FS is not set
+ # CONFIG_CRAMFS is not set
+-# CONFIG_TMPFS is not set
+-CONFIG_RAMFS=y
+-CONFIG_ISO9660_FS=m
+-# CONFIG_JOLIET is not set
+-# CONFIG_ZISOFS is not set
+-# CONFIG_JFS_FS is not set
+-CONFIG_MINIX_FS=m
+ # CONFIG_VXFS_FS is not set
+-# CONFIG_NTFS_FS is not set
+ # CONFIG_HPFS_FS is not set
+-CONFIG_PROC_FS=y
+-CONFIG_DEVFS_FS=y
+-CONFIG_DEVFS_MOUNT=y
+-# CONFIG_DEVFS_DEBUG is not set
+-CONFIG_DEVPTS_FS=y
+ # CONFIG_QNX4FS_FS is not set
+-# CONFIG_ROMFS_FS is not set
+-CONFIG_EXT2_FS=y
+-# CONFIG_EXT2_FS_XATTR is not set
+ # CONFIG_SYSV_FS is not set
+-# CONFIG_UDF_FS is not set
+ # CONFIG_UFS_FS is not set
+-# CONFIG_XFS_FS is not set
  
-@@ -191,7 +192,7 @@
+ #
+ # Network File Systems
+ #
+-# CONFIG_CODA_FS is not set
+-# CONFIG_INTERMEZZO_FS is not set
+ # CONFIG_NFS_FS is not set
+ # CONFIG_NFSD is not set
+ # CONFIG_EXPORTFS is not set
+-# CONFIG_CIFS is not set
+ # CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
+ # CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
+ # CONFIG_AFS_FS is not set
  
-       if(!pri->fixed_config) 
-               iter_addresses(pri->dev, close_addr, pri->dev_name);
--      close(fd);
-+      os_close_file(fd);
-       pri->fd = -1;
- }
+ #
+@@ -255,11 +314,11 @@
+ #
+ # CONFIG_PARTITION_ADVANCED is not set
+ CONFIG_MSDOS_PARTITION=y
+-CONFIG_NLS=y
  
-diff -Naur a/arch/um/os-Linux/file.c b/arch/um/os-Linux/file.c
---- a/arch/um/os-Linux/file.c  2004-03-10 08:23:18.000000000 -0500
-+++ b/arch/um/os-Linux/file.c  2004-03-10 08:44:49.000000000 -0500
-@@ -8,6 +8,8 @@
- #include <errno.h>
- #include <fcntl.h>
- #include <signal.h>
-+#include <sys/types.h>
-+#include <sys/stat.h>
- #include <sys/socket.h>
- #include <sys/un.h>
- #include <sys/ioctl.h>
-@@ -17,33 +19,235 @@
- #include "user.h"
- #include "kern_util.h"
+ #
+ # Native Language Support
+ #
++CONFIG_NLS=y
+ CONFIG_NLS_DEFAULT="iso8859-1"
+ # CONFIG_NLS_CODEPAGE_437 is not set
+ # CONFIG_NLS_CODEPAGE_737 is not set
+@@ -317,28 +376,7 @@
+ #
+ # SCSI support
+ #
+-CONFIG_SCSI=y
+-CONFIG_GENERIC_ISA_DMA=y
+-
+-#
+-# SCSI support type (disk, tape, CD-ROM)
+-#
+-CONFIG_BLK_DEV_SD=y
+-CONFIG_SD_EXTRA_DEVS=40
+-CONFIG_CHR_DEV_ST=y
+-CONFIG_BLK_DEV_SR=y
+-CONFIG_BLK_DEV_SR_VENDOR=y
+-CONFIG_SR_EXTRA_DEVS=2
+-CONFIG_CHR_DEV_SG=y
+-
+-#
+-# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+-#
+-CONFIG_SCSI_DEBUG_QUEUES=y
+-CONFIG_SCSI_MULTI_LUN=y
+-CONFIG_SCSI_CONSTANTS=y
+-CONFIG_SCSI_LOGGING=y
+-CONFIG_SCSI_DEBUG=y
++# CONFIG_SCSI is not set
+ #
+ # Multi-device support (RAID and LVM)
+@@ -360,6 +398,7 @@
+ CONFIG_MTD_BLOCK=y
+ # CONFIG_FTL is not set
+ # CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
+ #
+ # RAM/ROM/Flash chip drivers
+@@ -374,20 +413,21 @@
+ #
+ # Mapping drivers for chip access
+ #
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
  
--int os_file_type(char *file)
-+static void copy_stat(struct uml_stat *dst, struct stat64 *src)
-+{
-+      *dst = ((struct uml_stat) {
-+              .ust_dev     = src->st_dev,     /* device */
-+              .ust_ino     = src->st_ino,     /* inode */
-+              .ust_mode    = src->st_mode,    /* protection */
-+              .ust_nlink   = src->st_nlink,   /* number of hard links */
-+              .ust_uid     = src->st_uid,     /* user ID of owner */
-+              .ust_gid     = src->st_gid,     /* group ID of owner */
-+              .ust_size    = src->st_size,    /* total size, in bytes */
-+              .ust_blksize = src->st_blksize, /* blocksize for filesys I/O */
-+              .ust_blocks  = src->st_blocks,  /* number of blocks allocated */
-+              .ust_atime   = src->st_atime,   /* time of last access */
-+              .ust_mtime   = src->st_mtime,   /* time of last modification */
-+              .ust_ctime   = src->st_ctime,   /* time of last change */
-+      });
-+}
-+
-+int os_stat_fd(const int fd, struct uml_stat *ubuf)
-+{
-+      struct stat64 sbuf;
-+      int err;
-+
-+      do {
-+              err = fstat64(fd, &sbuf);
-+      } while((err < 0) && (errno == EINTR)) ;
+ #
+ # Self-contained MTD device drivers
+ #
+ # CONFIG_MTD_SLRAM is not set
+ # CONFIG_MTD_MTDRAM is not set
+-CONFIG_MTD_BLKMTD=m
++CONFIG_MTD_BLKMTD=y
+ #
+ # Disk-On-Chip Device Drivers
+ #
+-# CONFIG_MTD_DOC1000 is not set
+ # CONFIG_MTD_DOC2000 is not set
+ # CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
+ #
+ # NAND Flash Device Drivers
+Index: uml-2.6.7/arch/um/kernel/physmem.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/physmem.c    2004-07-16 19:47:23.617220848 +0300
++++ uml-2.6.7/arch/um/kernel/physmem.c 2004-07-16 19:47:23.722204888 +0300
+@@ -0,0 +1,468 @@
++/* 
++ * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
++ * Licensed under the GPL
++ */
 +
-+      if(err < 0) 
-+              return(-errno);
++#include "linux/mm.h"
++#include "linux/ghash.h"
++#include "linux/slab.h"
++#include "linux/vmalloc.h"
++#include "linux/bootmem.h"
++#include "asm/types.h"
++#include "asm/pgtable.h"
++#include "kern_util.h"
++#include "user_util.h"
++#include "mode_kern.h"
++#include "mem.h"
++#include "mem_user.h"
++#include "os.h"
++#include "kern.h"
++#include "init.h"
 +
-+      if(ubuf != NULL)
-+              copy_stat(ubuf, &sbuf);
-+      return(err);
-+}
++#if 0
++static pgd_t physmem_pgd[PTRS_PER_PGD];
 +
-+int os_stat_file(const char *file_name, struct uml_stat *ubuf)
++static struct phys_desc *lookup_mapping(void *addr)
 +{
-+      struct stat64 sbuf;
-+      int err;
-+
-+      do {
-+              err = stat64(file_name, &sbuf);
-+      } while((err < 0) && (errno == EINTR)) ;
++      pgd = &physmem_pgd[pgd_index(addr)];
++      if(pgd_none(pgd))
++              return(NULL);
 +
-+      if(err < 0) 
-+              return(-errno);
++      pmd = pmd_offset(pgd, addr);
++      if(pmd_none(pmd))
++              return(NULL);
 +
-+      if(ubuf != NULL)
-+              copy_stat(ubuf, &sbuf);
-+      return(err);
++      pte = pte_offset_kernel(pmd, addr);
++      return((struct phys_desc *) pte_val(pte));
 +}
 +
-+int os_access(const char* file, int mode)
++static struct add_mapping(void *addr, struct phys_desc *new)
 +{
-+      int amode, err;
-+
-+      amode=(mode&OS_ACC_R_OK ? R_OK : 0) | (mode&OS_ACC_W_OK ? W_OK : 0) |
-+            (mode&OS_ACC_X_OK ? X_OK : 0) | (mode&OS_ACC_F_OK ? F_OK : 0) ;
-+
-+      err = access(file, amode);
-+      if(err < 0)
-+              return(-errno);
-+
-+      return(0);
 +}
++#endif
 +
-+void os_print_error(int error, const char* str)
-+{
-+      errno = error < 0 ? -error : error;
++#define PHYS_HASHSIZE (8192)
 +
-+      perror(str);
-+}
++struct phys_desc;
 +
-+/* FIXME? required only by hostaudio (because it passes ioctls verbatim) */
-+int os_ioctl_generic(int fd, unsigned int cmd, unsigned long arg)
-+{
-+      int err;
++DEF_HASH_STRUCTS(virtmem, PHYS_HASHSIZE, struct phys_desc);
 +
-+      err = ioctl(fd, cmd, arg);
-+      if(err < 0)
-+              return(-errno);
++struct phys_desc {
++      struct virtmem_ptrs virt_ptrs;
++      int fd;
++      __u64 offset;
++      void *virt;
++      unsigned long phys;
++      struct list_head list;
++};
 +
-+      return(err);
-+}
++struct virtmem_table virtmem_hash;
 +
-+int os_window_size(int fd, int *rows, int *cols)
++static int virt_cmp(void *virt1, void *virt2)
 +{
-+      struct winsize size;
-+
-+      if(ioctl(fd, TIOCGWINSZ, &size) < 0)
-+              return(-errno);
-+
-+      *rows = size.ws_row;
-+      *cols = size.ws_col;
-+
-+      return(0);
-+}
-+
-+int os_new_tty_pgrp(int fd, int pid)
- {
--      struct stat64 buf;
-+      if(ioctl(fd, TIOCSCTTY, 0) < 0){
-+              printk("TIOCSCTTY failed, errno = %d\n", errno);
-+              return(-errno);
-+      }
-+
-+      if(tcsetpgrp(fd, pid) < 0){
-+              printk("tcsetpgrp failed, errno = %d\n", errno);
-+              return(-errno);
-+      }
-+
-+      return(0);
++      return(virt1 != virt2);
 +}
 +
-+/* FIXME: ensure namebuf in os_get_if_name is big enough */
-+int os_get_ifname(int fd, char* namebuf)
++static int virt_hash(void *virt)
 +{
-+      if(ioctl(fd, SIOCGIFNAME, namebuf) < 0)
-+              return(-errno);
-+
-+      return(0);
++      unsigned long addr = ((unsigned long) virt) >> PAGE_SHIFT;
++      return(addr % PHYS_HASHSIZE);
 +}
 +
-+int os_set_slip(int fd)
-+{
-+      int disc, sencap;
-+
-+      disc = N_SLIP;
-+      if(ioctl(fd, TIOCSETD, &disc) < 0){
-+              printk("Failed to set slip line discipline - "
-+                     "errno = %d\n", errno);
-+              return(-errno);
-+      }
++DEF_HASH(static, virtmem, struct phys_desc, virt_ptrs, void *, virt, virt_cmp, 
++       virt_hash);
 +
-+      sencap = 0;
-+      if(ioctl(fd, SIOCSIFENCAP, &sencap) < 0){
-+              printk("Failed to set slip encapsulation - "
-+                     "errno = %d\n", errno);
-+              return(-errno);
-+      }
++LIST_HEAD(descriptor_mappings);
 +
-+      return(0);
-+}
++struct desc_mapping {
++      int fd;
++      struct list_head list;
++      struct list_head pages;
++};
 +
-+int os_set_owner(int fd, int pid)
++static struct desc_mapping *find_mapping(int fd)
 +{
-+      if(fcntl(fd, F_SETOWN, pid) < 0){
-+              int save_errno = errno;
++      struct desc_mapping *desc;
++      struct list_head *ele;
 +
-+              if(fcntl(fd, F_GETOWN, 0) != pid)
-+                      return(-save_errno);
++      list_for_each(ele, &descriptor_mappings){
++              desc = list_entry(ele, struct desc_mapping, list);
++              if(desc->fd == fd)
++                      return(desc);
 +      }
 +
-+      return(0);
++      return(NULL);
 +}
 +
-+/* FIXME? moved wholesale from sigio_user.c to get fcntls out of that file */ 
-+int os_sigio_async(int master, int slave)
++static struct desc_mapping *descriptor_mapping(int fd)
 +{
-+      int flags;
--      if(stat64(file, &buf) == -1)
-+      flags = fcntl(master, F_GETFL);
-+      if(flags < 0) {
-+              printk("fcntl F_GETFL failed, errno = %d\n", errno);
-               return(-errno);
-+      }
-+
-+      if((fcntl(master, F_SETFL, flags | O_NONBLOCK | O_ASYNC) < 0) ||
-+         (fcntl(master, F_SETOWN, os_getpid()) < 0)){
-+              printk("fcntl F_SETFL or F_SETOWN failed, errno = %d\n", errno);
-+              return(-errno);
-+      }
-+
-+      if((fcntl(slave, F_SETFL, flags | O_NONBLOCK) < 0)){
-+              printk("fcntl F_SETFL failed, errno = %d\n", errno);
-+              return(-errno);
-+      }
--      if(S_ISDIR(buf.st_mode)) return(OS_TYPE_DIR);
--      else if(S_ISLNK(buf.st_mode)) return(OS_TYPE_SYMLINK);
--      else if(S_ISCHR(buf.st_mode)) return(OS_TYPE_CHARDEV);
--      else if(S_ISBLK(buf.st_mode)) return(OS_TYPE_BLOCKDEV);
--      else if(S_ISFIFO(buf.st_mode)) return(OS_TYPE_FIFO);
--      else if(S_ISSOCK(buf.st_mode)) return(OS_TYPE_SOCK);
-+      return(0);
-+}
++      struct desc_mapping *desc;
 +
-+int os_mode_fd(int fd, int mode)
-+{
-+      int err;
++      desc = find_mapping(fd);
++      if(desc != NULL)
++              return(desc);
 +
-+      do {
-+              err = fchmod(fd, mode);
-+      } while((err < 0) && (errno==EINTR)) ;
++      desc = kmalloc(sizeof(*desc), GFP_ATOMIC);
++      if(desc == NULL)
++              return(NULL);
 +
-+      if(err < 0)
-+              return(-errno);
++      *desc = ((struct desc_mapping) 
++              { .fd =         fd,
++                .list =       LIST_HEAD_INIT(desc->list),
++                .pages =      LIST_HEAD_INIT(desc->pages) });
++      list_add(&desc->list, &descriptor_mappings);
 +
-+      return(0);
++      return(desc);
 +}
 +
-+int os_file_type(char *file)
++int physmem_subst_mapping(void *virt, int fd, __u64 offset, int w)
 +{
-+      struct uml_stat buf;
++      struct desc_mapping *fd_maps;
++      struct phys_desc *desc;
++      unsigned long phys;
 +      int err;
 +
-+      err = os_stat_file(file, &buf);
-+      if(err < 0)
-+              return(err);
++      fd_maps = descriptor_mapping(fd);
++      if(fd_maps == NULL)
++              return(-ENOMEM);
 +
-+      if(S_ISDIR(buf.ust_mode)) return(OS_TYPE_DIR);
-+      else if(S_ISLNK(buf.ust_mode)) return(OS_TYPE_SYMLINK);
-+      else if(S_ISCHR(buf.ust_mode)) return(OS_TYPE_CHARDEV);
-+      else if(S_ISBLK(buf.ust_mode)) return(OS_TYPE_BLOCKDEV);
-+      else if(S_ISFIFO(buf.ust_mode)) return(OS_TYPE_FIFO);
-+      else if(S_ISSOCK(buf.ust_mode)) return(OS_TYPE_SOCK);
-       else return(OS_TYPE_FILE);
- }
- int os_file_mode(char *file, struct openflags *mode_out)
- {
-+      int err;
++      phys = __pa(virt);
++      if(find_virtmem_hash(&virtmem_hash, virt) != NULL)
++              panic("Address 0x%p is already substituted\n", virt);
 +
-       *mode_out = OPENFLAGS();
--      if(!access(file, W_OK)) *mode_out = of_write(*mode_out);
--      else if(errno != EACCES) 
--              return(-errno);
-+      err = os_access(file, OS_ACC_W_OK);
-+      if((err < 0) && (err != -EACCES))
-+              return(err);
--      if(!access(file, R_OK)) *mode_out = of_read(*mode_out);
--      else if(errno != EACCES) 
--              return(-errno);
-+      *mode_out = of_write(*mode_out);
++      err = -ENOMEM;
++      desc = kmalloc(sizeof(*desc), GFP_ATOMIC);
++      if(desc == NULL)
++              goto out;
 +
-+      err = os_access(file, OS_ACC_R_OK);
-+      if((err < 0) && (err != -EACCES))
-+              return(err);
++      *desc = ((struct phys_desc) 
++              { .virt_ptrs =  { NULL, NULL },
++                .fd =         fd,
++                .offset =             offset,
++                .virt =               virt,
++                .phys =               __pa(virt),
++                .list =               LIST_HEAD_INIT(desc->list) });
++      insert_virtmem_hash(&virtmem_hash, desc);
 +
-+      *mode_out = of_read(*mode_out);
-       return(0);
- }
-@@ -63,16 +267,14 @@
-       if(flags.e) f |= O_EXCL;
-       fd = open64(file, f, mode);
--      if(fd < 0) return(-errno);
--      
--      if(flags.cl){
--              if(fcntl(fd, F_SETFD, 1)){
--                      close(fd);
--                      return(-errno);
--              }
-+      if(fd < 0)
-+              return(-errno);
++      list_add(&desc->list, &fd_maps->pages);
 +
-+      if(flags.cl && fcntl(fd, F_SETFD, 1)){
-+              os_close_file(fd);
-+              return(-errno);
-       }
--      return(fd);
-       return(fd);
- }
-@@ -90,7 +292,7 @@
-       err = connect(fd, (struct sockaddr *) &sock, sizeof(sock));
-       if(err)
--              return(err);
-+              return(-errno);
-       return(fd);
- }
-@@ -109,88 +311,162 @@
-       return(0);
- }
--int os_read_file(int fd, void *buf, int len)
-+static int fault_buffer(void *start, int len, 
-+                      int (*copy_proc)(void *addr, void *buf, int len))
- {
--      int n;
-+      int page = getpagesize(), i;
-+      char c;
--      /* Force buf into memory if it's not already. */
-+      for(i = 0; i < len; i += page){
-+              if((*copy_proc)(start + i, &c, sizeof(c)))
-+                      return(-EFAULT);
-+      }
-+      if((len % page) != 0){
-+              if((*copy_proc)(start + len - 1, &c, sizeof(c)))
-+                      return(-EFAULT);
-+      }
-+      return(0);
++      virt = (void *) ((unsigned long) virt & PAGE_MASK);
++      err = os_map_memory(virt, fd, offset, PAGE_SIZE, 1, w, 0);
++      if(!err)
++              goto out;
++
++      remove_virtmem_hash(&virtmem_hash, desc);
++      kfree(desc);
++ out:
++      return(err);
 +}
--      /* XXX This fails if buf is kernel memory */
--#ifdef notdef
--      if(copy_to_user_proc(buf, &c, sizeof(c)))
--              return(-EFAULT);
--#endif
-+static int file_io(int fd, void *buf, int len,
-+                 int (*io_proc)(int fd, void *buf, int len),
-+                 int (*copy_user_proc)(void *addr, void *buf, int len))
++
++static int physmem_fd = -1;
++
++static void remove_mapping(struct phys_desc *desc)
 +{
-+      int n, err;
++      void *virt = desc->virt;
++      int err;
 +
-+      do {
-+              n = (*io_proc)(fd, buf, len);
-+              if((n < 0) && (errno == EFAULT)){
-+                      err = fault_buffer(buf, len, copy_user_proc);
-+                      if(err)
-+                              return(err);
-+                      n = (*io_proc)(fd, buf, len);
-+              }
-+      } while((n < 0) && (errno == EINTR));
--      n = read(fd, buf, len);
-       if(n < 0)
-               return(-errno);
-       return(n);
- }
--int os_write_file(int fd, void *buf, int count)
-+int os_read_file(int fd, void *buf, int len)
- {
--      int n;
--
--      /* Force buf into memory if it's not already. */
--      
--      /* XXX This fails if buf is kernel memory */
--#ifdef notdef
--      if(copy_to_user_proc(buf, buf, buf[0]))
--              return(-EFAULT);
--#endif
-+      return(file_io(fd, buf, len, (int (*)(int, void *, int)) read, 
-+                     copy_from_user_proc));
++      remove_virtmem_hash(&virtmem_hash, desc);
++      list_del(&desc->list);
++      kfree(desc);
++
++      err = os_map_memory(virt, physmem_fd, __pa(virt), PAGE_SIZE, 1, 1, 0);
++      if(err)
++              panic("Failed to unmap block device page from physical memory, "
++                    "errno = %d", -err);
 +}
--      n = write(fd, buf, count);
--      if(n < 0)
--              return(-errno);
--      return(n);
-+int os_write_file(int fd, const void *buf, int len)
++
++int physmem_remove_mapping(void *virt)
 +{
-+      return(file_io(fd, (void *) buf, len, 
-+                     (int (*)(int, void *, int)) write, copy_to_user_proc));
- }
- int os_file_size(char *file, long long *size_out)
- {
--      struct stat64 buf;
-+      struct uml_stat buf;
-+      int err;
--      if(stat64(file, &buf) == -1){
--              printk("Couldn't stat \"%s\" : errno = %d\n", file, errno);
--              return(-errno);
-+      err = os_stat_file(file, &buf);
-+      if(err < 0){
-+              printk("Couldn't stat \"%s\" : err = %d\n", file, -err);
-+              return(err);
-       }
--      if(S_ISBLK(buf.st_mode)){
++      struct phys_desc *desc;
 +
-+      if(S_ISBLK(buf.ust_mode)){
-               int fd, blocks;
--              if((fd = open64(file, O_RDONLY)) < 0){
--                      printk("Couldn't open \"%s\", errno = %d\n", file,
--                             errno);
--                      return(-errno);
-+              fd = os_open_file(file, of_read(OPENFLAGS()), 0);
-+              if(fd < 0){
-+                      printk("Couldn't open \"%s\", errno = %d\n", file, -fd);
-+                      return(fd);
-               }
-               if(ioctl(fd, BLKGETSIZE, &blocks) < 0){
-                       printk("Couldn't get the block size of \"%s\", "
-                              "errno = %d\n", file, errno);
--                      close(fd);
--                      return(-errno);
-+                      err = -errno;
-+                      os_close_file(fd);
-+                      return(err);
-               }
-               *size_out = ((long long) blocks) * 512;
--              close(fd);
-+              os_close_file(fd);
-               return(0);
-       }
--      *size_out = buf.st_size;
-+      *size_out = buf.ust_size;
-+      return(0);
++      virt = (void *) ((unsigned long) virt & PAGE_MASK);
++      desc = find_virtmem_hash(&virtmem_hash, virt);
++      if(desc == NULL)
++              return(0);
++
++      remove_mapping(desc);
++      return(1);
++}
++
++void physmem_forget_descriptor(int fd)
++{
++      struct desc_mapping *desc;
++      struct phys_desc *page;
++      struct list_head *ele, *next;
++      __u64 offset;
++      void *addr;
++      int err;
++
++      desc = find_mapping(fd);
++      if(desc == NULL)
++              return;
++
++      list_for_each_safe(ele, next, &desc->pages){
++              page = list_entry(ele, struct phys_desc, list);
++              offset = page->offset;
++              addr = page->virt;
++              remove_mapping(page);
++              err = os_seek_file(fd, offset);
++              if(err)
++                      panic("physmem_forget_descriptor - failed to seek "
++                            "to %lld in fd %d, error = %d\n",
++                            offset, fd, -err);
++              err = os_read_file(fd, addr, PAGE_SIZE);
++              if(err < 0)
++                      panic("physmem_forget_descriptor - failed to read "
++                            "from fd %d to 0x%p, error = %d\n",
++                            fd, addr, -err);
++      }
++
++      list_del(&desc->list);
++      kfree(desc);
 +}
 +
-+int os_file_modtime(char *file, unsigned long *modtime)
++void arch_free_page(struct page *page, int order)
 +{
-+      struct uml_stat buf;
-+      int err;
++      void *virt;
++      int i;
 +
-+      err = os_stat_file(file, &buf);
-+      if(err < 0){
-+              printk("Couldn't stat \"%s\" : err = %d\n", file, -err);
-+              return(err);
++      for(i = 0; i < (1 << order); i++){
++              virt = __va(page_to_phys(page + i));
++              physmem_remove_mapping(virt);
 +      }
++}
 +
-+      *modtime = buf.ust_mtime;
-       return(0);
- }
-+int os_get_exec_close(int fd, int* close_on_exec)
++int is_remapped(void *virt)
 +{
-+      int ret;
++      return(find_virtmem_hash(&virtmem_hash, virt) != NULL);
++}
 +
-+      do {
-+              ret = fcntl(fd, F_GETFD);
-+      } while((ret < 0) && (errno == EINTR)) ;
++/* Changed during early boot */
++unsigned long high_physmem;
 +
-+      if(ret < 0)
-+              return(-errno);
++extern unsigned long physmem_size;
 +
-+      *close_on_exec = (ret&FD_CLOEXEC) ? 1 : 0;
-+      return(ret);
++void *to_virt(unsigned long phys)
++{
++      return((void *) uml_physmem + phys);
 +}
 +
-+int os_set_exec_close(int fd, int close_on_exec)
++unsigned long to_phys(void *virt)
 +{
-+      int flag, err;
++      return(((unsigned long) virt) - uml_physmem);
++}
 +
-+      if(close_on_exec) flag = FD_CLOEXEC;
-+      else flag = 0;
++int init_maps(unsigned long physmem, unsigned long iomem, unsigned long highmem)
++{
++      struct page *p, *map;
++      unsigned long phys_len, phys_pages, highmem_len, highmem_pages;
++      unsigned long iomem_len, iomem_pages, total_len, total_pages;
++      int i;
 +
-+      do {
-+              err = fcntl(fd, F_SETFD, flag);
-+      } while((err < 0) && (errno == EINTR)) ;
++      phys_pages = physmem >> PAGE_SHIFT;
++      phys_len = phys_pages * sizeof(struct page);
 +
-+      if(err < 0)
-+              return(-errno);
-+      return(err);
-+}
++      iomem_pages = iomem >> PAGE_SHIFT;
++      iomem_len = iomem_pages * sizeof(struct page);
 +
- int os_pipe(int *fds, int stream, int close_on_exec)
- {
-       int err, type = stream ? SOCK_STREAM : SOCK_DGRAM;
-       err = socketpair(AF_UNIX, type, 0, fds);
--      if(err) 
-+      if(err < 0) 
-               return(-errno);
-       if(!close_on_exec)
-               return(0);
--      if((fcntl(fds[0], F_SETFD, 1) < 0) || (fcntl(fds[1], F_SETFD, 1) < 0))
--              printk("os_pipe : Setting FD_CLOEXEC failed, errno = %d", 
--                     errno);
-+      err = os_set_exec_close(fds[0], 1);
-+      if(err < 0)
-+              goto error;
++      highmem_pages = highmem >> PAGE_SHIFT;
++      highmem_len = highmem_pages * sizeof(struct page);
 +
-+      err = os_set_exec_close(fds[1], 1);
-+      if(err < 0)
-+              goto error;
-       return(0);
++      total_pages = phys_pages + iomem_pages + highmem_pages;
++      total_len = phys_len + iomem_pages + highmem_len;
 +
-+ error:
-+      printk("os_pipe : Setting FD_CLOEXEC failed, err = %d\n", -err);
-+      os_close_file(fds[1]);
-+      os_close_file(fds[0]);
-+      return(err);
- }
- int os_set_fd_async(int fd, int owner)
-@@ -270,7 +546,7 @@
-               return(-EINVAL);
-       }
-       err = shutdown(fd, what);
--      if(err)
-+      if(err < 0)
-               return(-errno);
-       return(0);
- }
-@@ -315,7 +591,7 @@
-       return(new);
- }
--int create_unix_socket(char *file, int len)
-+int os_create_unix_socket(char *file, int len, int close_on_exec)
- {
-       struct sockaddr_un addr;
-       int sock, err;
-@@ -327,6 +603,13 @@
-               return(-errno);
-       }
-+      if(close_on_exec) {
-+              err = os_set_exec_close(sock, 1);
-+              if(err < 0)
-+                      printk("create_unix_socket : close_on_exec failed, "
-+                     "err = %d", -err);
++      if(kmalloc_ok){
++              map = kmalloc(total_len, GFP_KERNEL);
++              if(map == NULL) 
++                      map = vmalloc(total_len);
 +      }
++      else map = alloc_bootmem_low_pages(total_len);
 +
-       addr.sun_family = AF_UNIX;
-       /* XXX Be more careful about overflow */
-@@ -334,14 +617,45 @@
-       err = bind(sock, (struct sockaddr *) &addr, sizeof(addr));
-       if (err < 0){
--              printk("create_listening_socket - bind failed, errno = %d\n",
--                     errno);
-+              printk("create_listening_socket at '%s' - bind failed, "
-+                     "errno = %d\n", file, errno);
-               return(-errno);
-       }
-       return(sock);
- }
-+void os_flush_stdout(void)
++      if(map == NULL)
++              return(-ENOMEM);
++
++      for(i = 0; i < total_pages; i++){
++              p = &map[i];
++              set_page_count(p, 0);
++              SetPageReserved(p);
++              INIT_LIST_HEAD(&p->lru);
++      }
++
++      mem_map = map;
++      max_mapnr = total_pages;
++      return(0);
++}
++
++struct page *phys_to_page(const unsigned long phys)
 +{
-+      fflush(stdout);
++      return(&mem_map[phys >> PAGE_SHIFT]);
 +}
 +
-+int os_lock_file(int fd, int excl)
++struct page *__virt_to_page(const unsigned long virt)
 +{
-+      int type = excl ? F_WRLCK : F_RDLCK;
-+      struct flock lock = ((struct flock) { .l_type   = type,
-+                                            .l_whence = SEEK_SET,
-+                                            .l_start  = 0,
-+                                            .l_len    = 0 } );
-+      int err, save;
++      return(&mem_map[__pa(virt) >> PAGE_SHIFT]);
++}
 +
-+      err = fcntl(fd, F_SETLK, &lock);
-+      if(!err)
-+              goto out;
++unsigned long page_to_phys(struct page *page)
++{
++      return((page - mem_map) << PAGE_SHIFT);
++}
 +
-+      save = -errno;
-+      err = fcntl(fd, F_GETLK, &lock);
-+      if(err){
-+              err = -errno;
-+              goto out;
-+      }
++pte_t mk_pte(struct page *page, pgprot_t pgprot)
++{
++      pte_t pte;
 +
-+      printk("F_SETLK failed, file already locked by pid %d\n", lock.l_pid);
-+      err = save;
-+ out:
-+      return(err);
++      pte_val(pte) = page_to_phys(page) + pgprot_val(pgprot);
++      if(pte_present(pte)) pte_mknewprot(pte_mknewpage(pte));
++      return(pte);
 +}
 +
- /*
-  * Overrides for Emacs so that we follow Linus's tabbing style.
-  * Emacs will notice this stuff at the end of the file and automatically
-diff -Naur a/arch/um/os-Linux/Makefile b/arch/um/os-Linux/Makefile
---- a/arch/um/os-Linux/Makefile        2004-03-10 08:21:44.000000000 -0500
-+++ b/arch/um/os-Linux/Makefile        2004-03-10 08:40:18.000000000 -0500
-@@ -3,13 +3,9 @@
- # Licensed under the GPL
- #
--obj-y = file.o process.o tty.o drivers/
-+obj-y = file.o process.o tty.o user_syms.o drivers/
- USER_OBJS := $(foreach file,file.o process.o tty.o,$(obj)/$(file))
- $(USER_OBJS) : %.o: %.c
-       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
--
--clean :
--
--archmrproper:
-diff -Naur a/arch/um/os-Linux/process.c b/arch/um/os-Linux/process.c
---- a/arch/um/os-Linux/process.c       2004-03-10 08:20:24.000000000 -0500
-+++ b/arch/um/os-Linux/process.c       2004-03-10 08:35:00.000000000 -0500
-@@ -1,5 +1,5 @@
- /* 
-- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+ * Copyright (C) 2002 Jeff Dike (jdike@addtoit.com)
-  * Licensed under the GPL
-  */
-@@ -7,32 +7,37 @@
- #include <stdio.h>
- #include <errno.h>
- #include <signal.h>
-+#include <linux/unistd.h>
- #include <sys/mman.h>
- #include <sys/wait.h>
- #include "os.h"
- #include "user.h"
-+#define ARBITRARY_ADDR -1
-+#define FAILURE_PID    -1
++/* Changed during early boot */
++static unsigned long kmem_top = 0;
 +
- unsigned long os_process_pc(int pid)
- {
-       char proc_stat[sizeof("/proc/#####/stat\0")], buf[256];
-       unsigned long pc;
--      int fd;
++unsigned long get_kmem_end(void)
++{
++      if(kmem_top == 0) 
++              kmem_top = CHOOSE_MODE(kmem_end_tt, kmem_end_skas);
++      return(kmem_top);
++}
++
++void map_memory(unsigned long virt, unsigned long phys, unsigned long len, 
++              int r, int w, int x)
++{
++      __u64 offset;
 +      int fd, err;
-       sprintf(proc_stat, "/proc/%d/stat", pid);
-       fd = os_open_file(proc_stat, of_read(OPENFLAGS()), 0);
-       if(fd < 0){
--              printk("os_process_pc - couldn't open '%s', errno = %d\n", 
--                     proc_stat, errno);
--              return(-1);
-+              printk("os_process_pc - couldn't open '%s', err = %d\n", 
-+                     proc_stat, -fd);
-+              return(ARBITRARY_ADDR);
-       }
--      if(read(fd, buf, sizeof(buf)) < 0){
--              printk("os_process_pc - couldn't read '%s', errno = %d\n", 
--                     proc_stat, errno);
--              close(fd);
--              return(-1);
-+      err = os_read_file(fd, buf, sizeof(buf));
-+      if(err < 0){
-+              printk("os_process_pc - couldn't read '%s', err = %d\n", 
-+                     proc_stat, -err);
-+              os_close_file(fd);
-+              return(ARBITRARY_ADDR);
-       }
--      close(fd);
--      pc = -1;
-+      os_close_file(fd);
-+      pc = ARBITRARY_ADDR;
-       if(sscanf(buf, "%*d %*s %*c %*d %*d %*d %*d %*d %*d %*d %*d "
-                 "%*d %*d %*d %*d %*d %*d %*d %*d %*d %*d %*d %*d %*d %*d "
-                 "%*d %*d %*d %*d %ld", &pc) != 1){
-@@ -52,22 +57,23 @@
-       snprintf(stat, sizeof(stat), "/proc/%d/stat", pid);
-       fd = os_open_file(stat, of_read(OPENFLAGS()), 0);
-       if(fd < 0){
--              printk("Couldn't open '%s', errno = %d\n", stat, -fd);
--              return(-1);
-+              printk("Couldn't open '%s', err = %d\n", stat, -fd);
-+              return(FAILURE_PID);
-       }
--      n = read(fd, data, sizeof(data));
--      close(fd);
-+      n = os_read_file(fd, data, sizeof(data));
-+      os_close_file(fd);
-       if(n < 0){
--              printk("Couldn't read '%s', errno = %d\n", stat);
--              return(-1);
-+              printk("Couldn't read '%s', err = %d\n", stat, -n);
-+              return(FAILURE_PID);
-       }
--      parent = -1;
-+      parent = FAILURE_PID;
-       /* XXX This will break if there is a space in the command */
-       n = sscanf(data, "%*d %*s %*c %d", &parent);
--      if(n != 1) printk("Failed to scan '%s'\n", data);
-+      if(n != 1) 
-+              printk("Failed to scan '%s'\n", data);
-       return(parent);
- }
-@@ -87,7 +93,8 @@
- void os_usr1_process(int pid)
- {
--      kill(pid, SIGUSR1);
-+      syscall(__NR_tkill, pid, SIGUSR1); 
-+      /* kill(pid, SIGUSR1); */
- }
- int os_getpid(void)
-@@ -95,7 +102,7 @@
-       return(getpid());
- }
--int os_map_memory(void *virt, int fd, unsigned long off, unsigned long len, 
-+int os_map_memory(void *virt, int fd, unsigned long long off, unsigned long len,
-                 int r, int w, int x)
- {
-       void *loc;
-@@ -104,8 +111,8 @@
-       prot = (r ? PROT_READ : 0) | (w ? PROT_WRITE : 0) | 
-               (x ? PROT_EXEC : 0);
--      loc = mmap((void *) virt, len, prot, MAP_SHARED | MAP_FIXED, 
--                 fd, off);
-+      loc = mmap64((void *) virt, len, prot, MAP_SHARED | MAP_FIXED, 
-+                   fd, off);
-       if(loc == MAP_FAILED)
-               return(-errno);
-       return(0);
-@@ -126,7 +133,8 @@
-         int err;
-         err = munmap(addr, len);
--        if(err < 0) return(-errno);
-+      if(err < 0)
-+              return(-errno);
-         return(0);
- }
-diff -Naur a/arch/um/os-Linux/tty.c b/arch/um/os-Linux/tty.c
---- a/arch/um/os-Linux/tty.c   2004-03-10 08:21:37.000000000 -0500
-+++ b/arch/um/os-Linux/tty.c   2004-03-10 08:40:10.000000000 -0500
-@@ -28,10 +28,10 @@
-       struct grantpt_info info;
-       int fd;
--      if((fd = os_open_file("/dev/ptmx", of_rdwr(OPENFLAGS()), 0)) < 0){
--              printk("get_pty : Couldn't open /dev/ptmx - errno = %d\n",
--                     errno);
--              return(-1);
-+      fd = os_open_file("/dev/ptmx", of_rdwr(OPENFLAGS()), 0);
-+      if(fd < 0){
-+              printk("get_pty : Couldn't open /dev/ptmx - err = %d\n", -fd);
-+              return(fd);
-       }
-       info.fd = fd;
-@@ -39,7 +39,7 @@
-       if(info.res < 0){
-               printk("get_pty : Couldn't grant pty - errno = %d\n", 
--                     info.err);
-+                     -info.err);
-               return(-1);
-       }
-       if(unlockpt(fd) < 0){
-diff -Naur a/arch/um/os-Linux/user_syms.c b/arch/um/os-Linux/user_syms.c
---- a/arch/um/os-Linux/user_syms.c     1969-12-31 19:00:00.000000000 -0500
-+++ b/arch/um/os-Linux/user_syms.c     2004-03-10 08:44:23.000000000 -0500
-@@ -0,0 +1,88 @@
-+#include "linux/types.h"
-+#include "linux/module.h"
 +
-+/* Some of this are builtin function (some are not but could in the future),
-+ * so I *must* declare good prototypes for them and then EXPORT them.
-+ * The kernel code uses the macro defined by include/linux/string.h,
-+ * so I undef macros; the userspace code does not include that and I
-+ * add an EXPORT for the glibc one.*/
++      fd = phys_mapping(phys, &offset);
++      err = os_map_memory((void *) virt, fd, offset, len, r, w, x);
++      if(err)
++              panic("map_memory(0x%lx, %d, 0x%llx, %ld, %d, %d, %d) failed, "
++                    "err = %d\n", virt, fd, offset, len, r, w, x, err);
++}
 +
-+#undef strlen
-+#undef strstr
-+#undef memcpy
-+#undef memset
++#define PFN_UP(x) (((x) + PAGE_SIZE-1) >> PAGE_SHIFT)
 +
-+extern size_t strlen(const char *);
-+extern void *memcpy(void *, const void *, size_t);
-+extern void *memset(void *, int, size_t);
-+extern int printf(const char *, ...);
++void setup_physmem(unsigned long start, unsigned long reserve_end,
++                 unsigned long len, unsigned long highmem)
++{
++      unsigned long reserve = reserve_end - start;
++      int pfn = PFN_UP(__pa(reserve_end));
++      int delta = (len - reserve) >> PAGE_SHIFT;
++      int err, offset, bootmap_size;
 +
-+EXPORT_SYMBOL(strlen);
-+EXPORT_SYMBOL(memcpy);
-+EXPORT_SYMBOL(memset);
-+EXPORT_SYMBOL(printf);
++      physmem_fd = create_mem_file(len + highmem);
 +
-+EXPORT_SYMBOL(strstr);
++      offset = uml_reserved - uml_physmem;
++      err = os_map_memory((void *) uml_reserved, physmem_fd, offset, 
++                          len - offset, 1, 1, 0);
++      if(err < 0){
++              os_print_error(err, "Mapping memory");
++              exit(1);
++      }
 +
-+/* Here, instead, I can provide a fake prototype. Yes, someone cares: genksyms.
-+ * However, the modules will use the CRC defined *here*, no matter if it is 
-+ * good; so the versions of these symbols will always match
-+ */
-+#define EXPORT_SYMBOL_PROTO(sym)       \
-+       int sym(void);                  \
-+       EXPORT_SYMBOL(sym);
++      bootmap_size = init_bootmem(pfn, pfn + delta);
++      free_bootmem(__pa(reserve_end) + bootmap_size,
++                   len - bootmap_size - reserve);
++}
 +
-+EXPORT_SYMBOL_PROTO(__errno_location);
++int phys_mapping(unsigned long phys, __u64 *offset_out)
++{
++      struct phys_desc *desc = find_virtmem_hash(&virtmem_hash, 
++                                                 __va(phys & PAGE_MASK));
++      int fd = -1;
 +
-+EXPORT_SYMBOL_PROTO(access);
-+EXPORT_SYMBOL_PROTO(open);
-+EXPORT_SYMBOL_PROTO(open64);
-+EXPORT_SYMBOL_PROTO(close);
-+EXPORT_SYMBOL_PROTO(read);
-+EXPORT_SYMBOL_PROTO(write);
-+EXPORT_SYMBOL_PROTO(dup2);
-+EXPORT_SYMBOL_PROTO(__xstat);
-+EXPORT_SYMBOL_PROTO(__lxstat);
-+EXPORT_SYMBOL_PROTO(__lxstat64);
-+EXPORT_SYMBOL_PROTO(lseek);
-+EXPORT_SYMBOL_PROTO(lseek64);
-+EXPORT_SYMBOL_PROTO(chown);
-+EXPORT_SYMBOL_PROTO(truncate);
-+EXPORT_SYMBOL_PROTO(utime);
-+EXPORT_SYMBOL_PROTO(chmod);
-+EXPORT_SYMBOL_PROTO(rename);
-+EXPORT_SYMBOL_PROTO(__xmknod);
++      if(desc != NULL){
++              fd = desc->fd;
++              *offset_out = desc->offset;
++      }
++      else if(phys < physmem_size){
++              fd = physmem_fd;
++              *offset_out = phys;
++      }
++      else if(phys < __pa(end_iomem)){
++              struct iomem_region *region = iomem_regions;
++      
++              while(region != NULL){
++                      if((phys >= region->phys) && 
++                         (phys < region->phys + region->size)){
++                              fd = region->fd;
++                              *offset_out = phys - region->phys;
++                              break;
++                      }
++                      region = region->next;
++              }
++      }
++      else if(phys < __pa(end_iomem) + highmem){
++              fd = physmem_fd;
++              *offset_out = phys - iomem_size;
++      }
++
++      return(fd);
++}
++
++static int __init uml_mem_setup(char *line, int *add)
++{
++      char *retptr;
++      physmem_size = memparse(line,&retptr);
++      return 0;
++}
++__uml_setup("mem=", uml_mem_setup,
++"mem=<Amount of desired ram>\n"
++"    This controls how much \"physical\" memory the kernel allocates\n"
++"    for the system. The size is specified as a number followed by\n"
++"    one of 'k', 'K', 'm', 'M', which have the obvious meanings.\n"
++"    This is not related to the amount of memory in the host.  It can\n"
++"    be more, and the excess, if it's ever used, will just be swapped out.\n"
++"     Example: mem=64M\n\n"
++);
 +
-+EXPORT_SYMBOL_PROTO(symlink);
-+EXPORT_SYMBOL_PROTO(link);
-+EXPORT_SYMBOL_PROTO(unlink);
-+EXPORT_SYMBOL_PROTO(readlink);
++unsigned long find_iomem(char *driver, unsigned long *len_out)
++{
++      struct iomem_region *region = iomem_regions;
++      
++      while(region != NULL){
++              if(!strcmp(region->driver, driver)){
++                      *len_out = region->size;
++                      return(region->virt);
++              }
++      }
 +
-+EXPORT_SYMBOL_PROTO(mkdir);
-+EXPORT_SYMBOL_PROTO(rmdir);
-+EXPORT_SYMBOL_PROTO(opendir);
-+EXPORT_SYMBOL_PROTO(readdir);
-+EXPORT_SYMBOL_PROTO(closedir);
-+EXPORT_SYMBOL_PROTO(seekdir);
-+EXPORT_SYMBOL_PROTO(telldir);
++      return(0);
++}
 +
-+EXPORT_SYMBOL_PROTO(ioctl);
++int setup_iomem(void)
++{
++      struct iomem_region *region = iomem_regions;
++      unsigned long iomem_start = high_physmem + PAGE_SIZE;
++      int err;
 +
-+EXPORT_SYMBOL_PROTO(pread64);
-+EXPORT_SYMBOL_PROTO(pwrite64);
++      while(region != NULL){
++              err = os_map_memory((void *) iomem_start, region->fd, 0, 
++                                  region->size, 1, 1, 0);
++              if(err)
++                      printk("Mapping iomem region for driver '%s' failed, "
++                             "errno = %d\n", region->driver, -err);
++              else {
++                      region->virt = iomem_start;
++                      region->phys = __pa(region->virt);
++              }
 +
-+EXPORT_SYMBOL_PROTO(statfs);
-+EXPORT_SYMBOL_PROTO(statfs64);
++              iomem_start += region->size + PAGE_SIZE;
++              region = region->next;
++      }
 +
-+EXPORT_SYMBOL_PROTO(getuid);
++      return(0);
++}
++
++__initcall(setup_iomem);
 +
 +/*
 + * Overrides for Emacs so that we follow Linus's tabbing style.
@@ -15284,392 +12548,542 @@ diff -Naur a/arch/um/os-Linux/user_syms.c b/arch/um/os-Linux/user_syms.c
 + * c-file-style: "linux"
 + * End:
 + */
-diff -Naur a/arch/um/sys-i386/bugs.c b/arch/um/sys-i386/bugs.c
---- a/arch/um/sys-i386/bugs.c  2004-03-10 08:22:34.000000000 -0500
-+++ b/arch/um/sys-i386/bugs.c  2004-03-10 08:42:23.000000000 -0500
-@@ -4,20 +4,21 @@
-  */
+Index: uml-2.6.7/arch/um/kernel/irq_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/irq_user.c   2004-07-16 19:36:33.534048512 +0300
++++ uml-2.6.7/arch/um/kernel/irq_user.c        2004-07-16 19:47:23.717205648 +0300
+@@ -6,7 +6,6 @@
+ #include <stdlib.h>
  #include <unistd.h>
--#include <fcntl.h>
  #include <errno.h>
+-#include <fcntl.h>
+ #include <signal.h>
  #include <string.h>
- #include <sys/signal.h>
-+#include <asm/ldt.h>
- #include "kern_util.h"
- #include "user.h"
- #include "sysdep/ptrace.h"
- #include "task.h"
-+#include "os.h"
+ #include <sys/poll.h>
+@@ -49,7 +48,8 @@
  
- #define MAXTOKEN 64
+       if(smp_sigio_handler()) return;
+       while(1){
+-              if((n = poll(pollfds, pollfds_num, 0)) < 0){
++              n = poll(pollfds, pollfds_num, 0);
++              if(n < 0){
+                       if(errno == EINTR) continue;
+                       printk("sigio_handler : poll returned %d, "
+                              "errno = %d\n", n, errno);
+@@ -366,34 +366,31 @@
  
- /* Set during early boot */
--int cpu_has_cmov = 1;
--int cpu_has_xmm = 0;
-+int host_has_cmov = 1;
-+int host_has_xmm = 0;
+ void forward_ipi(int fd, int pid)
+ {
+-      if(fcntl(fd, F_SETOWN, pid) < 0){
+-              int save_errno = errno;
+-              if(fcntl(fd, F_GETOWN, 0) != pid){
+-                      printk("forward_ipi: F_SETOWN failed, fd = %d, "
+-                             "me = %d, target = %d, errno = %d\n", fd, 
+-                             os_getpid(), pid, save_errno);
+-              }
+-      }
++      int err;
++
++      err = os_set_owner(fd, pid);
++      if(err < 0)
++              printk("forward_ipi: set_owner failed, fd = %d, me = %d, "
++                     "target = %d, err = %d\n", fd, os_getpid(), pid, -err);
+ }
  
static char token(int fd, char *buf, int len, char stop)
void forward_interrupts(int pid)
  {
-@@ -27,13 +28,15 @@
-       ptr = buf;
-       end = &buf[len];
-       do {
--              n = read(fd, ptr, sizeof(*ptr));
-+              n = os_read_file(fd, ptr, sizeof(*ptr));
-               c = *ptr++;
--              if(n == 0) return(0);
--              else if(n != sizeof(*ptr)){
--                      printk("Reading /proc/cpuinfo failed, "
--                             "errno = %d\n", errno);
--                      return(-errno);
-+              if(n != sizeof(*ptr)){
-+                      if(n == 0) return(0);
-+                      printk("Reading /proc/cpuinfo failed, err = %d\n", -n);
-+                      if(n < 0) 
-+                              return(n);
-+                      else 
-+                              return(-EIO);
+       struct irq_fd *irq;
+       unsigned long flags;
++      int err;
+       flags = irq_lock();
+       for(irq=active_fds;irq != NULL;irq = irq->next){
+-              if(fcntl(irq->fd, F_SETOWN, pid) < 0){
+-                      int save_errno = errno;
+-                      if(fcntl(irq->fd, F_GETOWN, 0) != pid){
+-                              /* XXX Just remove the irq rather than
+-                               * print out an infinite stream of these
+-                               */
+-                              printk("Failed to forward %d to pid %d, "
+-                                     "errno = %d\n", irq->fd, pid, 
+-                                     save_errno);
+-                      }
++              err = os_set_owner(irq->fd, pid);
++              if(err < 0){
++                      /* XXX Just remove the irq rather than
++                       * print out an infinite stream of these
++                       */
++                      printk("Failed to forward %d to pid %d, err = %d\n",
++                             irq->fd, pid, -err);
                }
-       } while((c != '\n') && (c != stop) && (ptr < end));
++
+               irq->pid = pid;
+       }
+       irq_unlock(flags);
+Index: uml-2.6.7/arch/um/include/line.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/include/line.h      2004-07-16 19:37:13.937906192 +0300
++++ uml-2.6.7/arch/um/include/line.h   2004-07-16 19:47:23.702207928 +0300
+@@ -9,12 +9,14 @@
+ #include "linux/list.h"
+ #include "linux/workqueue.h"
+ #include "linux/tty.h"
++#include "linux/interrupt.h"
+ #include "asm/semaphore.h"
+ #include "chan_user.h"
+ #include "mconsole_kern.h"
  
-@@ -45,45 +48,79 @@
-       return(c);
+ struct line_driver {
+       char *name;
++      char *device_name;
+       char *devfs_name;
+       short major;
+       short minor_start;
+@@ -67,8 +69,6 @@
+ #define LINES_INIT(n) {  num :                n }
+-extern void line_interrupt(int irq, void *data, struct pt_regs *unused);
+-extern void line_write_interrupt(int irq, void *data, struct pt_regs *unused);
+ extern void line_close(struct line *lines, struct tty_struct *tty);
+ extern int line_open(struct line *lines, struct tty_struct *tty, 
+                    struct chan_opts *opts);
+Index: uml-2.6.7/arch/um/sys-i386/fault.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/sys-i386/fault.c    2004-07-16 19:36:42.987611352 +0300
++++ uml-2.6.7/arch/um/sys-i386/fault.c 2004-07-16 19:47:23.771197440 +0300
+@@ -1,5 +1,5 @@
+ /* 
+- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
++ * Copyright (C) 2002 - 2004 Jeff Dike (jdike@addtoit.com)
+  * Licensed under the GPL
+  */
+@@ -7,16 +7,24 @@
+ #include "sysdep/ptrace.h"
+ #include "sysdep/sigcontext.h"
+-extern unsigned long search_exception_table(unsigned long addr);
++/* These two are from asm-um/uaccess.h and linux/module.h, check them. */
++struct exception_table_entry
++{
++      unsigned long insn;
++      unsigned long fixup;
++};
++const struct exception_table_entry *search_exception_tables(unsigned long add);
++ 
++/* Compare this to arch/i386/mm/extable.c:fixup_exception() */
+ int arch_fixup(unsigned long address, void *sc_ptr)
+ {
+       struct sigcontext *sc = sc_ptr;
+-      unsigned long fixup;
++      const struct exception_table_entry *fixup;
+       fixup = search_exception_tables(address);
+       if(fixup != 0){
+-              sc->eip = fixup;
++              sc->eip = fixup->fixup;
+               return(1);
+       }
+       return(0);
+Index: uml-2.6.7/arch/um/kernel/smp.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/smp.c        2004-07-16 19:36:13.630074376 +0300
++++ uml-2.6.7/arch/um/kernel/smp.c     2004-07-16 19:47:23.736202760 +0300
+@@ -1,9 +1,15 @@
+ /* 
+- * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
++ * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
+  * Licensed under the GPL
+  */
+ #include "linux/config.h"
++#include "linux/percpu.h"
++#include "asm/pgalloc.h"
++#include "asm/tlb.h"
++
++/* For some reason, mmu_gathers are referenced when CONFIG_SMP is off. */
++DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
+ #ifdef CONFIG_SMP
+@@ -23,7 +29,7 @@
+ #include "os.h"
+ /* CPU online map, set by smp_boot_cpus */
+-unsigned long cpu_online_map = cpumask_of_cpu(0);
++unsigned long cpu_online_map = CPU_MASK_NONE;
+ EXPORT_SYMBOL(cpu_online_map);
+@@ -55,7 +61,7 @@
+ void smp_send_reschedule(int cpu)
+ {
+-      write(cpu_data[cpu].ipi_pipe[1], "R", 1);
++      os_write_file(cpu_data[cpu].ipi_pipe[1], "R", 1);
+       num_reschedules_sent++;
+ }
+@@ -100,35 +106,34 @@
+       printk(KERN_INFO "Stopping all CPUs...");
+       for(i = 0; i < num_online_cpus(); i++){
+-              if(i == current->thread_info->cpu)
++              if(i == current_thread->cpu)
+                       continue;
+-              write(cpu_data[i].ipi_pipe[1], "S", 1);
++              os_write_file(cpu_data[i].ipi_pipe[1], "S", 1);
+       }
+       printk("done\n");
  }
  
--static int check_cpu_feature(char *feature, int *have_it)
-+static int find_cpuinfo_line(int fd, char *key, char *scratch, int len)
- {
--      char buf[MAXTOKEN], c;
--      int fd, len = sizeof(buf)/sizeof(buf[0]), n;
--
--      printk("Checking for host processor %s support...", feature);
--      fd = open("/proc/cpuinfo", O_RDONLY);
--      if(fd < 0){
--              printk("Couldn't open /proc/cpuinfo, errno = %d\n", errno);
--              return(0);
--      }
-+      int n;
-+      char c;
+-static cpumask_t smp_commenced_mask;
+-static cpumask_t smp_callin_map = CPU_MASK_NONE;
++static cpumask_t smp_commenced_mask = CPU_MASK_NONE;
++static cpumask_t cpu_callin_map = CPU_MASK_NONE;
  
--      *have_it = 0;
--      buf[len - 1] = '\0';
-+      scratch[len - 1] = '\0';
-       while(1){
--              c = token(fd, buf, len - 1, ':');
--              if(c <= 0) goto out;
-+              c = token(fd, scratch, len - 1, ':');
-+              if(c <= 0)
-+                      return(0);
-               else if(c != ':'){
-                       printk("Failed to find ':' in /proc/cpuinfo\n");
--                      goto out;
-+                      return(0);
-               }
+ static int idle_proc(void *cpup)
+ {
+       int cpu = (int) cpup, err;
  
--              if(!strncmp(buf, "flags", strlen("flags"))) break;
-+              if(!strncmp(scratch, key, strlen(key))) 
-+                      return(1);
+       err = os_pipe(cpu_data[cpu].ipi_pipe, 1, 1);
+-      if(err)
+-              panic("CPU#%d failed to create IPI pipe, errno = %d", cpu, 
+-                    -err);
++      if(err < 0)
++              panic("CPU#%d failed to create IPI pipe, err = %d", cpu, -err);
  
-               do {
--                      n = read(fd, &c, sizeof(c));
-+                      n = os_read_file(fd, &c, sizeof(c));
-                       if(n != sizeof(c)){
-                               printk("Failed to find newline in "
--                                     "/proc/cpuinfo, n = %d, errno = %d\n",
--                                     n, errno);
--                              goto out;
-+                                     "/proc/cpuinfo, err = %d\n", -n);
-+                              return(0);
-                       }
-               } while(c != '\n');
+       activate_ipi(cpu_data[cpu].ipi_pipe[0], 
+                    current->thread.mode.tt.extern_pid);
+  
+       wmb();
+-      if (cpu_test_and_set(cpu, &smp_callin_map)) {
++      if (cpu_test_and_set(cpu, cpu_callin_map)) {
+               printk("huh, CPU#%d already present??\n", cpu);
+               BUG();
        }
-+      return(0);
-+}
-+
-+int cpu_feature(char *what, char *buf, int len)
-+{
-+      int fd, ret = 0;
-+
-+      fd = os_open_file("/proc/cpuinfo", of_read(OPENFLAGS()), 0);
-+      if(fd < 0){
-+              printk("Couldn't open /proc/cpuinfo, err = %d\n", -fd);
-+              return(0);
-+      }
-+
-+      if(!find_cpuinfo_line(fd, what, buf, len)){
-+              printk("Couldn't find '%s' line in /proc/cpuinfo\n", what);
-+              goto out_close;
-+      }
-+
-+      token(fd, buf, len, '\n');
-+      ret = 1;
-+
-+ out_close:
-+      os_close_file(fd);
-+      return(ret);
-+}
-+
-+static int check_cpu_flag(char *feature, int *have_it)
-+{
-+      char buf[MAXTOKEN], c;
-+      int fd, len = sizeof(buf)/sizeof(buf[0]);
-+
-+      printk("Checking for host processor %s support...", feature);
-+      fd = os_open_file("/proc/cpuinfo", of_read(OPENFLAGS()), 0);
-+      if(fd < 0){
-+              printk("Couldn't open /proc/cpuinfo, err = %d\n", -fd);
-+              return(0);
-+      }
-+
-+      *have_it = 0;
-+      if(!find_cpuinfo_line(fd, "flags", buf, sizeof(buf) / sizeof(buf[0])))
-+              goto out;
  
-       c = token(fd, buf, len - 1, ' ');
-       if(c < 0) goto out;
-       else if(c != ' '){
--              printk("Failed to find ':' in /proc/cpuinfo\n");
-+              printk("Failed to find ' ' in /proc/cpuinfo\n");
-               goto out;
-       }
+-      while (!cpu_isset(cpu, &smp_commenced_mask))
++      while (!cpu_isset(cpu, smp_commenced_mask))
+               cpu_relax();
  
-@@ -100,21 +137,48 @@
-  out:
-       if(*have_it == 0) printk("No\n");
-       else if(*have_it == 1) printk("Yes\n");
--      close(fd);
-+      os_close_file(fd);
-       return(1);
+       cpu_set(cpu, cpu_online_map);
+@@ -143,16 +148,20 @@
+         current->thread.request.u.thread.proc = idle_proc;
+         current->thread.request.u.thread.arg = (void *) cpu;
+-      new_task = do_fork(CLONE_VM | CLONE_IDLETASK, 0, NULL, 0, NULL, NULL);
+-      if(IS_ERR(new_task)) panic("do_fork failed in idle_thread");
++      new_task = copy_process(CLONE_VM | CLONE_IDLETASK, 0, NULL, 0, NULL, 
++                              NULL);
++      if(IS_ERR(new_task)) 
++              panic("copy_process failed in idle_thread, error = %ld",
++                    PTR_ERR(new_task));
+       cpu_tasks[cpu] = ((struct cpu_task) 
+                         { .pid =      new_task->thread.mode.tt.extern_pid,
+                           .task =     new_task } );
+       idle_threads[cpu] = new_task;
+-      CHOOSE_MODE(write(new_task->thread.mode.tt.switch_pipe[1], &c, 
++      CHOOSE_MODE(os_write_file(new_task->thread.mode.tt.switch_pipe[1], &c, 
+                         sizeof(c)),
+                   ({ panic("skas mode doesn't support SMP"); }));
++      wake_up_forked_process(new_task);
+       return(new_task);
  }
  
-+#if 0 /* This doesn't work in tt mode, plus it's causing compilation problems
-+       * for some people.
-+       */
-+static void disable_lcall(void)
-+{
-+      struct modify_ldt_ldt_s ldt;
-+      int err;
-+
-+      bzero(&ldt, sizeof(ldt));
-+      ldt.entry_number = 7;
-+      ldt.base_addr = 0;
-+      ldt.limit = 0;
-+      err = modify_ldt(1, &ldt, sizeof(ldt));
-+      if(err)
-+              printk("Failed to disable lcall7 - errno = %d\n", errno);
-+}
-+#endif
-+
-+void arch_init_thread(void)
-+{
-+#if 0
-+      disable_lcall();
-+#endif
-+}
-+
- void arch_check_bugs(void)
+@@ -160,15 +169,17 @@
  {
-       int have_it;
+       struct task_struct *idle;
+       unsigned long waittime;
+-      int err, cpu;
++      int err, cpu, me = smp_processor_id();
  
--      if(access("/proc/cpuinfo", R_OK)){
-+      if(os_access("/proc/cpuinfo", OS_ACC_R_OK) < 0){
-               printk("/proc/cpuinfo not available - skipping CPU capability "
-                      "checks\n");
-               return;
-       }
--      if(check_cpu_feature("cmov", &have_it)) cpu_has_cmov = have_it;
--      if(check_cpu_feature("xmm", &have_it)) cpu_has_xmm = have_it;
-+      if(check_cpu_flag("cmov", &have_it)) 
-+              host_has_cmov = have_it;
-+      if(check_cpu_flag("xmm", &have_it)) 
-+              host_has_xmm = have_it;
- }
+-      cpu_set(0, cpu_online_map);
+-      cpu_set(0, smp_callin_map);
++      cpu_clear(me, cpu_online_map);
++      cpu_set(me, cpu_online_map);
++      cpu_set(me, cpu_callin_map);
  
- int arch_handle_signal(int sig, union uml_pt_regs *regs)
-@@ -130,18 +194,18 @@
-       if((*((char *) ip) != 0x0f) || ((*((char *) (ip + 1)) & 0xf0) != 0x40))
-               return(0);
+-      err = os_pipe(cpu_data[0].ipi_pipe, 1, 1);
+-      if(err) panic("CPU#0 failed to create IPI pipe, errno = %d", -err);
++      err = os_pipe(cpu_data[me].ipi_pipe, 1, 1);
++      if(err < 0)
++              panic("CPU#0 failed to create IPI pipe, errno = %d", -err);
  
--      if(cpu_has_cmov == 0)
-+      if(host_has_cmov == 0)
-               panic("SIGILL caused by cmov, which this processor doesn't "
-                     "implement, boot a filesystem compiled for older "
-                     "processors");
--      else if(cpu_has_cmov == 1)
-+      else if(host_has_cmov == 1)
-               panic("SIGILL caused by cmov, which this processor claims to "
-                     "implement");
--      else if(cpu_has_cmov == -1)
-+      else if(host_has_cmov == -1)
-               panic("SIGILL caused by cmov, couldn't tell if this processor "
-                     "implements it, boot a filesystem compiled for older "
-                     "processors");
--      else panic("Bad value for cpu_has_cmov (%d)", cpu_has_cmov);
-+      else panic("Bad value for host_has_cmov (%d)", host_has_cmov);
-       return(0);
- }
+-      activate_ipi(cpu_data[0].ipi_pipe[0], 
++      activate_ipi(cpu_data[me].ipi_pipe[0], 
+                    current->thread.mode.tt.extern_pid);
  
-diff -Naur a/arch/um/sys-i386/extable.c b/arch/um/sys-i386/extable.c
---- a/arch/um/sys-i386/extable.c       2004-03-10 08:23:09.000000000 -0500
-+++ b/arch/um/sys-i386/extable.c       1969-12-31 19:00:00.000000000 -0500
-@@ -1,30 +0,0 @@
--/*
-- * linux/arch/i386/mm/extable.c
-- */
--
--#include <linux/config.h>
--#include <linux/module.h>
--#include <linux/spinlock.h>
--#include <asm/uaccess.h>
--
--/* Simple binary search */
--const struct exception_table_entry *
--search_extable(const struct exception_table_entry *first,
--             const struct exception_table_entry *last,
--             unsigned long value)
--{
--        while (first <= last) {
--              const struct exception_table_entry *mid;
--              long diff;
--
--              mid = (last - first) / 2 + first;
--              diff = mid->insn - value;
--                if (diff == 0)
--                        return mid;
--                else if (diff < 0)
--                        first = mid+1;
--                else
--                        last = mid-1;
--        }
--        return NULL;
--}
-diff -Naur a/arch/um/sys-i386/fault.c b/arch/um/sys-i386/fault.c
---- a/arch/um/sys-i386/fault.c 2004-03-10 08:21:28.000000000 -0500
-+++ b/arch/um/sys-i386/fault.c 2004-03-10 08:39:10.000000000 -0500
-@@ -1,5 +1,5 @@
- /* 
-- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+ * Copyright (C) 2002 - 2004 Jeff Dike (jdike@addtoit.com)
-  * Licensed under the GPL
-  */
+       for(cpu = 1; cpu < ncpus; cpu++){
+@@ -180,10 +191,10 @@
+               unhash_process(idle);
+               waittime = 200000000;
+-              while (waittime-- && !cpu_isset(cpu, smp_callin_map))
++              while (waittime-- && !cpu_isset(cpu, cpu_callin_map))
+                       cpu_relax();
+-              if (cpu_isset(cpu, smp_callin_map))
++              if (cpu_isset(cpu, cpu_callin_map))
+                       printk("done\n");
+               else printk("failed\n");
+       }
+@@ -216,7 +227,7 @@
+       int fd;
  
-@@ -7,16 +7,24 @@
- #include "sysdep/ptrace.h"
- #include "sysdep/sigcontext.h"
+       fd = cpu_data[cpu].ipi_pipe[0];
+-      while (read(fd, &c, 1) == 1) {
++      while (os_read_file(fd, &c, 1) == 1) {
+               switch (c) {
+               case 'C':
+                       smp_call_function_slave(cpu);
+@@ -276,9 +287,9 @@
+       info = _info;
  
--extern unsigned long search_exception_table(unsigned long addr);
-+/* These two are from asm-um/uaccess.h and linux/module.h, check them. */
-+struct exception_table_entry
-+{
-+      unsigned long insn;
-+      unsigned long fixup;
-+};
+       for (i=0;i<NR_CPUS;i++)
+-              if((i != current->thread_info->cpu) && 
++              if((i != current_thread->cpu) && 
+                  cpu_isset(i, cpu_online_map))
+-                      write(cpu_data[i].ipi_pipe[1], "C", 1);
++                      os_write_file(cpu_data[i].ipi_pipe[1], "C", 1);
  
-+const struct exception_table_entry *search_exception_tables(unsigned long add);
-+ 
-+/* Compare this to arch/i386/mm/extable.c:fixup_exception() */
- int arch_fixup(unsigned long address, void *sc_ptr)
+       while (atomic_read(&scf_started) != cpus)
+               barrier();
+Index: uml-2.6.7/arch/um/drivers/slip_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/slip_user.c 2004-07-16 19:37:26.082060000 +0300
++++ uml-2.6.7/arch/um/drivers/slip_user.c      2004-07-16 19:47:24.797041488 +0300
+@@ -4,11 +4,9 @@
+ #include <stddef.h>
+ #include <sched.h>
+ #include <string.h>
+-#include <sys/fcntl.h>
+-#include <sys/errno.h>
++#include <errno.h>
+ #include <sys/termios.h>
+ #include <sys/wait.h>
+-#include <sys/ioctl.h>
+ #include <sys/signal.h>
+ #include "user_util.h"
+ #include "kern_util.h"
+@@ -65,9 +63,9 @@
  {
-       struct sigcontext *sc = sc_ptr;
--      unsigned long fixup;
-+      const struct exception_table_entry *fixup;
+       struct slip_pre_exec_data *data = arg;
  
-       fixup = search_exception_tables(address);
-       if(fixup != 0){
--              sc->eip = fixup;
-+              sc->eip = fixup->fixup;
-               return(1);
+-      if(data->stdin != -1) dup2(data->stdin, 0);
++      if(data->stdin >= 0) dup2(data->stdin, 0);
+       dup2(data->stdout, 1);
+-      if(data->close_me != -1) close(data->close_me);
++      if(data->close_me >= 0) os_close_file(data->close_me);
+ }
+ static int slip_tramp(char **argv, int fd)
+@@ -77,8 +75,8 @@
+       int status, pid, fds[2], err, output_len;
+       err = os_pipe(fds, 1, 0);
+-      if(err){
+-              printk("slip_tramp : pipe failed, errno = %d\n", -err);
++      if(err < 0){
++              printk("slip_tramp : pipe failed, err = %d\n", -err);
+               return(err);
        }
-       return(0);
-diff -Naur a/arch/um/sys-i386/Makefile b/arch/um/sys-i386/Makefile
---- a/arch/um/sys-i386/Makefile        2004-03-10 08:20:26.000000000 -0500
-+++ b/arch/um/sys-i386/Makefile        2004-03-10 08:35:20.000000000 -0500
-@@ -1,7 +1,8 @@
--obj-y = bugs.o checksum.o extable.o fault.o ksyms.o ldt.o module.o \
--      ptrace.o ptrace_user.o semaphore.o sigcontext.o syscalls.o sysrq.o
-+obj-y = bugs.o checksum.o fault.o ksyms.o ldt.o ptrace.o ptrace_user.o \
-+      semaphore.o sigcontext.o syscalls.o sysrq.o time.o
  
- obj-$(CONFIG_HIGHMEM) += highmem.o
-+obj-$(CONFIG_MODULES) += module.o
+@@ -96,16 +94,18 @@
+                       printk("slip_tramp : failed to allocate output "
+                              "buffer\n");
  
- USER_OBJS := bugs.o ptrace_user.o sigcontext.o fault.o
- USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
-@@ -9,6 +10,8 @@
- SYMLINKS = semaphore.c highmem.c module.c
- SYMLINKS := $(foreach f,$(SYMLINKS),$(src)/$f)
+-              close(fds[1]);
++              os_close_file(fds[1]);
+               read_output(fds[0], output, output_len);
+               if(output != NULL){
+                       printk("%s", output);
+                       kfree(output);
+               }
+-              if(waitpid(pid, &status, 0) < 0) err = errno;
++              CATCH_EINTR(err = waitpid(pid, &status, 0));
++              if(err < 0)
++                      err = errno;
+               else if(!WIFEXITED(status) || (WEXITSTATUS(status) != 0)){
+                       printk("'%s' didn't exit with status 0\n", argv[0]);
+-                      err = EINVAL;
++                      err = -EINVAL;
+               }
+       }
+       return(err);
+@@ -118,15 +118,17 @@
+       char gate_buf[sizeof("nnn.nnn.nnn.nnn\0")];
+       char *argv[] = { "uml_net", version_buf, "slip", "up", gate_buf, 
+                        NULL };
+-      int sfd, mfd, disc, sencap, err;
++      int sfd, mfd, err;
  
-+clean-files := $(SYMLINKS)
-+
- semaphore.c-dir = kernel
- highmem.c-dir = mm
- module.c-dir = kernel
-@@ -24,19 +27,4 @@
- $(SYMLINKS): 
-       $(call make_link,$@)
+-      if((mfd = get_pty()) < 0){
+-              printk("umn : Failed to open pty\n");
+-              return(-1);
++      mfd = get_pty();
++      if(mfd < 0){
++              printk("umn : Failed to open pty, err = %d\n", -mfd);
++              return(mfd);
+       }
+-      if((sfd = os_open_file(ptsname(mfd), of_rdwr(OPENFLAGS()), 0)) < 0){
+-              printk("Couldn't open tty for slip line\n");
+-              return(-1);
++      sfd = os_open_file(ptsname(mfd), of_rdwr(OPENFLAGS()), 0);
++      if(sfd < 0){
++              printk("Couldn't open tty for slip line, err = %d\n", -sfd);
++              return(sfd);
+       }
+       if(set_up_tty(sfd)) return(-1);
+       pri->slave = sfd;
+@@ -138,28 +140,23 @@
  
--clean:
--      $(MAKE) -C util clean
--
--fastdep:
--
--dep:
--
--archmrproper:
--      rm -f $(SYMLINKS)
--
--archclean:
--
--archdep:
--
--modules:
--
-+subdir- := util
-diff -Naur a/arch/um/sys-i386/ptrace_user.c b/arch/um/sys-i386/ptrace_user.c
---- a/arch/um/sys-i386/ptrace_user.c   2004-03-10 08:20:49.000000000 -0500
-+++ b/arch/um/sys-i386/ptrace_user.c   2004-03-10 08:36:16.000000000 -0500
-@@ -39,10 +39,10 @@
-       nregs = sizeof(dummy->u_debugreg)/sizeof(dummy->u_debugreg[0]);
-       for(i = 0; i < nregs; i++){
-               if((i == 4) || (i == 5)) continue;
--              if(ptrace(PTRACE_POKEUSR, pid, &dummy->u_debugreg[i],
-+              if(ptrace(PTRACE_POKEUSER, pid, &dummy->u_debugreg[i],
-                         regs[i]) < 0)
--                      printk("write_debugregs - ptrace failed, "
+               err = slip_tramp(argv, sfd);
+-              if(err != 0){
+-                      printk("slip_tramp failed - errno = %d\n", err);
+-                      return(-err);
++              if(err < 0){
++                      printk("slip_tramp failed - err = %d\n", -err);
++                      return(err);
+               }
+-              if(ioctl(pri->slave, SIOCGIFNAME, pri->name) < 0){
+-                      printk("SIOCGIFNAME failed, errno = %d\n", errno);
+-                      return(-errno);
++              err = os_get_ifname(pri->slave, pri->name);
++              if(err < 0){
++                      printk("get_ifname failed, err = %d\n", -err);
++                      return(err);
+               }
+               iter_addresses(pri->dev, open_addr, pri->name);
+       }
+       else {
+-              disc = N_SLIP;
+-              if(ioctl(sfd, TIOCSETD, &disc) < 0){
+-                      printk("Failed to set slip line discipline - "
 -                             "errno = %d\n", errno);
-+                      printk("write_debugregs - ptrace failed on "
-+                             "register %d, errno = %d\n", errno);
+-                      return(-errno);
+-              }
+-              sencap = 0;
+-              if(ioctl(sfd, SIOCSIFENCAP, &sencap) < 0){
+-                      printk("Failed to set slip encapsulation - "
+-                             "errno = %d\n", errno);
+-                      return(-errno);
++              err = os_set_slip(sfd);
++              if(err < 0){
++                      printk("Failed to set slip discipline encapsulation - "
++                             "err = %d\n", -err);
++                      return(err);
+               }
        }
+       return(mfd);
+@@ -181,9 +178,9 @@
+       err = slip_tramp(argv, -1);
+       if(err != 0)
+-              printk("slip_tramp failed - errno = %d\n", err);
+-      close(fd);
+-      close(pri->slave);
++              printk("slip_tramp failed - errno = %d\n", -err);
++      os_close_file(fd);
++      os_close_file(pri->slave);
+       pri->slave = -1;
  }
  
-@@ -54,7 +54,7 @@
-       dummy = NULL;
-       nregs = sizeof(dummy->u_debugreg)/sizeof(dummy->u_debugreg[0]);
-       for(i = 0; i < nregs; i++){
--              regs[i] = ptrace(PTRACE_PEEKUSR, pid, 
-+              regs[i] = ptrace(PTRACE_PEEKUSER, pid, 
-                                &dummy->u_debugreg[i], 0);
-       }
+@@ -243,7 +240,7 @@
+ {
+       struct slip_data *pri = data;
+-      if(pri->slave == -1) return;
++      if(pri->slave < 0) return;
+       open_addr(addr, netmask, pri->name);
  }
-diff -Naur a/arch/um/sys-i386/time.c b/arch/um/sys-i386/time.c
---- a/arch/um/sys-i386/time.c  1969-12-31 19:00:00.000000000 -0500
-+++ b/arch/um/sys-i386/time.c  2004-03-10 08:36:21.000000000 -0500
-@@ -0,0 +1,24 @@
-+/*
-+ * sys-i386/time.c 
-+ * Created            25.9.2002       Sapan Bhatia
-+ *
+@@ -252,7 +249,7 @@
+ {
+       struct slip_data *pri = data;
+-      if(pri->slave == -1) return;
++      if(pri->slave < 0) return;
+       close_addr(addr, netmask, pri->name);
+ }
+Index: uml-2.6.7/fs/hostfs/hostfs.h
+===================================================================
+--- uml-2.6.7.orig/fs/hostfs/hostfs.h  2004-07-16 19:47:23.631218720 +0300
++++ uml-2.6.7/fs/hostfs/hostfs.h       2004-07-16 19:47:23.781195920 +0300
+@@ -0,0 +1,79 @@
++#ifndef __UM_FS_HOSTFS
++#define __UM_FS_HOSTFS
++
++#include "os.h"
++
++/* These are exactly the same definitions as in fs.h, but the names are 
++ * changed so that this file can be included in both kernel and user files.
 + */
 +
-+unsigned long long time_stamp(void)
-+{
-+      unsigned long low, high;
++#define HOSTFS_ATTR_MODE      1
++#define HOSTFS_ATTR_UID       2
++#define HOSTFS_ATTR_GID       4
++#define HOSTFS_ATTR_SIZE      8
++#define HOSTFS_ATTR_ATIME     16
++#define HOSTFS_ATTR_MTIME     32
++#define HOSTFS_ATTR_CTIME     64
++#define HOSTFS_ATTR_ATIME_SET 128
++#define HOSTFS_ATTR_MTIME_SET 256
++#define HOSTFS_ATTR_FORCE     512     /* Not a change, but a change it */
++#define HOSTFS_ATTR_ATTR_FLAG 1024
++
++struct hostfs_iattr {
++      unsigned int    ia_valid;
++      mode_t          ia_mode;
++      uid_t           ia_uid;
++      gid_t           ia_gid;
++      loff_t          ia_size;
++      struct timespec ia_atime;
++      struct timespec ia_mtime;
++      struct timespec ia_ctime;
++      unsigned int    ia_attr_flags;
++};
++
++extern int stat_file(const char *path, unsigned long long *inode_out, 
++                   int *mode_out, int *nlink_out, int *uid_out, int *gid_out,
++                   unsigned long long *size_out, struct timespec *atime_out, 
++                   struct timespec *mtime_out, struct timespec *ctime_out, 
++                   int *blksize_out, unsigned long long *blocks_out);
++extern int access_file(char *path, int r, int w, int x);
++extern int open_file(char *path, int r, int w, int append);
++extern int file_type(const char *path, int *rdev);
++extern void *open_dir(char *path, int *err_out);
++extern char *read_dir(void *stream, unsigned long long *pos, 
++                    unsigned long long *ino_out, int *len_out);
++extern void close_file(void *stream);
++extern void close_dir(void *stream);
++extern int read_file(int fd, unsigned long long *offset, char *buf, int len);
++extern int write_file(int fd, unsigned long long *offset, const char *buf,
++                    int len);
++extern int lseek_file(int fd, long long offset, int whence);
++extern int file_create(char *name, int ur, int uw, int ux, int gr, 
++                     int gw, int gx, int or, int ow, int ox);
++extern int set_attr(const char *file, struct hostfs_iattr *attrs);
++extern int make_symlink(const char *from, const char *to);
++extern int unlink_file(const char *file);
++extern int do_mkdir(const char *file, int mode);
++extern int do_rmdir(const char *file);
++extern int do_mknod(const char *file, int mode, int dev);
++extern int link_file(const char *from, const char *to);
++extern int do_readlink(char *file, char *buf, int size);
++extern int rename_file(char *from, char *to);
++extern int do_statfs(char *root, long *bsize_out, long long *blocks_out, 
++                   long long *bfree_out, long long *bavail_out, 
++                   long long *files_out, long long *ffree_out, 
++                   void *fsid_out, int fsid_size, long *namelen_out, 
++                   long *spare_out);
 +
-+      asm("rdtsc" : "=a" (low), "=d" (high));
-+      return((((unsigned long long) high) << 32) + low);
-+}
++#endif
 +
 +/*
 + * Overrides for Emacs so that we follow Linus's tabbing style.
@@ -15681,1625 +13095,1852 @@ diff -Naur a/arch/um/sys-i386/time.c b/arch/um/sys-i386/time.c
 + * c-file-style: "linux"
 + * End:
 + */
-diff -Naur a/arch/um/sys-i386/util/Makefile b/arch/um/sys-i386/util/Makefile
---- a/arch/um/sys-i386/util/Makefile   2004-03-10 08:23:14.000000000 -0500
-+++ b/arch/um/sys-i386/util/Makefile   2004-03-10 08:44:34.000000000 -0500
-@@ -1,15 +1,10 @@
-+host-progs    := mk_sc mk_thread
-+always                := $(host-progs)
+Index: uml-2.6.7/arch/um/kernel/sigio_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/sigio_user.c 2004-07-16 19:37:38.307201496 +0300
++++ uml-2.6.7/arch/um/kernel/sigio_user.c      2004-07-16 19:47:24.458093016 +0300
+@@ -7,7 +7,6 @@
+ #include <stdlib.h>
+ #include <termios.h>
+ #include <pty.h>
+-#include <fcntl.h>
+ #include <signal.h>
+ #include <errno.h>
+ #include <string.h>
+@@ -17,6 +16,7 @@
+ #include "init.h"
+ #include "user.h"
+ #include "kern_util.h"
++#include "user_util.h"
+ #include "sigio.h"
+ #include "helper.h"
+ #include "os.h"
+@@ -26,7 +26,7 @@
+ int pty_close_sigio = 0;
  
--host-progs    := mk_sc
--always                := $(host-progs) mk_thread
--targets               := mk_thread_kern.o mk_thread_user.o
-+mk_thread-objs        := mk_thread_kern.o mk_thread_user.o
+ /* Used as a flag during SIGIO testing early in boot */
+-static int got_sigio = 0;
++static volatile int got_sigio = 0;
  
--mk_sc-objs    := mk_sc.o
--
--$(obj)/mk_thread : $(obj)/mk_thread_kern.o $(obj)/mk_thread_user.o
--      $(CC) $(CFLAGS) -o $@ $^
--
--$(obj)/mk_thread_user.o : $(src)/mk_thread_user.c
--      $(CC) $(USER_CFLAGS) -c -o $@ $<
-+HOSTCFLAGS_mk_thread_kern.o   := $(CFLAGS)
-+HOSTCFLAGS_mk_thread_user.o   := $(USER_CFLAGS)
+ void __init handler(int sig)
+ {
+@@ -45,19 +45,18 @@
  
- clean :
-       $(RM) -f $(build-targets)
-diff -Naur a/arch/um/sys-i386/util/mk_sc.c b/arch/um/sys-i386/util/mk_sc.c
---- a/arch/um/sys-i386/util/mk_sc.c    2004-03-10 08:22:46.000000000 -0500
-+++ b/arch/um/sys-i386/util/mk_sc.c    2004-03-10 08:43:23.000000000 -0500
-@@ -38,6 +38,7 @@
-   SC_OFFSET("SC_ERR", err);
-   SC_OFFSET("SC_CR2", cr2);
-   SC_OFFSET("SC_FPSTATE", fpstate);
-+  SC_OFFSET("SC_SIGMASK", oldmask);
-   SC_FP_OFFSET("SC_FP_CW", cw);
-   SC_FP_OFFSET("SC_FP_SW", sw);
-   SC_FP_OFFSET("SC_FP_TAG", tag);
-diff -Naur a/arch/um/sys-ia64/Makefile b/arch/um/sys-ia64/Makefile
---- a/arch/um/sys-ia64/Makefile        2004-03-10 08:20:15.000000000 -0500
-+++ b/arch/um/sys-ia64/Makefile        2004-03-10 08:34:01.000000000 -0500
-@@ -7,18 +7,5 @@
- $(OBJ): $(OBJS)
-       rm -f $@
-       $(LD) $(LINKFLAGS) --start-group $^ --end-group -o $@
--clean:
--      rm -f $(OBJS)
+       info->err = 0;
+       if(openpty(&info->master, &info->slave, NULL, NULL, NULL))
+-              info->err = errno;
++              info->err = -errno;
+ }
  
--fastdep:
--
--archmrproper:
+ void __init check_one_sigio(void (*proc)(int, int))
+ {
+       struct sigaction old, new;
+-      struct termios tt;
+       struct openpty_arg pty = { .master = -1, .slave = -1 };
+-      int master, slave, flags;
++      int master, slave, err;
+       initial_thread_cb(openpty_cb, &pty);
+       if(pty.err){
+-              printk("openpty failed, errno = %d\n", pty.err);
++              printk("openpty failed, errno = %d\n", -pty.err);
+               return;
+       }
+@@ -69,23 +68,13 @@
+               return;
+       }
+-      if(tcgetattr(master, &tt) < 0)
+-              panic("check_sigio : tcgetattr failed, errno = %d\n", errno);
+-      cfmakeraw(&tt);
+-      if(tcsetattr(master, TCSADRAIN, &tt) < 0)
+-              panic("check_sigio : tcsetattr failed, errno = %d\n", errno);
 -
--archclean:
--      rm -f link.ld
--      @$(MAKEBOOT) clean
+-      if((flags = fcntl(master, F_GETFL)) < 0)
+-              panic("tty_fds : fcntl F_GETFL failed, errno = %d\n", errno);
 -
--archdep:
--      @$(MAKEBOOT) dep
+-      if((fcntl(master, F_SETFL, flags | O_NONBLOCK | O_ASYNC) < 0) ||
+-         (fcntl(master, F_SETOWN, os_getpid()) < 0))
+-              panic("check_sigio : fcntl F_SETFL or F_SETOWN failed, "
+-                    "errno = %d\n", errno);
 -
--modules:
-+clean-files := $(OBJS) link.ld
-diff -Naur a/arch/um/sys-ppc/Makefile b/arch/um/sys-ppc/Makefile
---- a/arch/um/sys-ppc/Makefile 2004-03-10 08:21:07.000000000 -0500
-+++ b/arch/um/sys-ppc/Makefile 2004-03-10 08:38:45.000000000 -0500
-@@ -66,13 +66,4 @@
-       $(CC) $(EXTRA_AFLAGS) $(AFLAGS) -D__ASSEMBLY__ -D__UM_PPC__ -c $< -o $*.o
-       rm -f asm
+-      if((fcntl(slave, F_SETFL, flags | O_NONBLOCK) < 0))
+-              panic("check_sigio : fcntl F_SETFL failed, errno = %d\n", 
+-                    errno);
++      err = __raw(master, 1, 0); //Not now, but complain so we now where we failed.
++      if (err < 0)
++              panic("check_sigio : __raw failed, errno = %d\n", -err);
++
++      err = os_sigio_async(master, slave);
++      if(err < 0)
++              panic("tty_fds : sigio_async failed, err = %d\n", -err);
  
--clean:
--      rm -f $(OBJS)
--      rm -f ppc_defs.h
--      rm -f checksum.S semaphore.c mk_defs.c
--
--fastdep:
--
--dep:
+       if(sigaction(SIGIO, NULL, &old) < 0)
+               panic("check_sigio : sigaction 1 failed, errno = %d\n", errno);
+@@ -97,8 +86,8 @@
+       got_sigio = 0;
+       (*proc)(master, slave);
+               
+-      close(master);
+-      close(slave);
++      os_close_file(master);
++      os_close_file(slave);
+       if(sigaction(SIGIO, &old, NULL) < 0)
+               panic("check_sigio : sigaction 3 failed, errno = %d\n", errno);
+@@ -112,25 +101,25 @@
+       printk("Checking that host ptys support output SIGIO...");
+       memset(buf, 0, sizeof(buf));
+-      while(write(master, buf, sizeof(buf)) > 0) ;
++
++      while(os_write_file(master, buf, sizeof(buf)) > 0) ;
+       if(errno != EAGAIN)
+               panic("check_sigio : write failed, errno = %d\n", errno);
 -
--modules:
-+clean-files := $(OBJS) ppc_defs.h checksum.S semaphore.c mk_defs.c
-diff -Naur a/arch/um/uml.lds.S b/arch/um/uml.lds.S
---- a/arch/um/uml.lds.S        2004-03-10 08:21:05.000000000 -0500
-+++ b/arch/um/uml.lds.S        2004-03-10 08:38:33.000000000 -0500
-@@ -9,7 +9,6 @@
+-      while(((n = read(slave, buf, sizeof(buf))) > 0) && !got_sigio) ;
++      while(((n = os_read_file(slave, buf, sizeof(buf))) > 0) && !got_sigio) ;
+       if(got_sigio){
+               printk("Yes\n");
+               pty_output_sigio = 1;
+       }
+-      else if(errno == EAGAIN) printk("No, enabling workaround\n");
+-      else panic("check_sigio : read failed, errno = %d\n", errno);
++      else if(n == -EAGAIN) printk("No, enabling workaround\n");
++      else panic("check_sigio : read failed, err = %d\n", n);
+ }
+ static void tty_close(int master, int slave)
  {
-   . = START + SIZEOF_HEADERS;
+       printk("Checking that host ptys support SIGIO on close...");
  
--  . = ALIGN(4096);
-   __binary_start = .;
- #ifdef MODE_TT
-   .thread_private : {
-@@ -26,7 +25,11 @@
-   . = ALIGN(4096);            /* Init code and data */
-   _stext = .;
-   __init_begin = .;
--  .text.init : { *(.text.init) }
-+  .init.text : { 
-+      _sinittext = .;
-+      *(.init.text)
-+      _einittext = .;
-+  }
-   . = ALIGN(4096);
-   .text      :
-   {
-@@ -38,7 +41,7 @@
+-      close(slave);
++      os_close_file(slave);
+       if(got_sigio){
+               printk("Yes\n");
+               pty_close_sigio = 1;
+@@ -140,7 +129,8 @@
+ void __init check_sigio(void)
+ {
+-      if(access("/dev/ptmx", R_OK) && access("/dev/ptyp0", R_OK)){
++      if((os_access("/dev/ptmx", OS_ACC_R_OK) < 0) &&
++         (os_access("/dev/ptyp0", OS_ACC_R_OK) < 0)){
+               printk("No pseudo-terminals available - skipping pty SIGIO "
+                      "check\n");
+               return;
+@@ -201,11 +191,10 @@
+                       p = &fds->poll[i];
+                       if(p->revents == 0) continue;
+                       if(p->fd == sigio_private[1]){
+-                              n = read(sigio_private[1], &c, sizeof(c));
++                              n = os_read_file(sigio_private[1], &c, sizeof(c));
+                               if(n != sizeof(c))
+                                       printk("write_sigio_thread : "
+-                                             "read failed, errno = %d\n",
+-                                             errno);
++                                             "read failed, err = %d\n", -n);
+                               tmp = current_poll;
+                               current_poll = next_poll;
+                               next_poll = tmp;
+@@ -218,10 +207,10 @@
+                                       (fds->used - i) * sizeof(*fds->poll));
+                       }
+-                      n = write(respond_fd, &c, sizeof(c));
++                      n = os_write_file(respond_fd, &c, sizeof(c));
+                       if(n != sizeof(c))
+                               printk("write_sigio_thread : write failed, "
+-                                     "errno = %d\n", errno);
++                                     "err = %d\n", -n);
+               }
+       }
+ }
+@@ -252,15 +241,15 @@
+       char c;
+       flags = set_signals(0);
+-      n = write(sigio_private[0], &c, sizeof(c));
++      n = os_write_file(sigio_private[0], &c, sizeof(c));
+       if(n != sizeof(c)){
+-              printk("update_thread : write failed, errno = %d\n", errno);
++              printk("update_thread : write failed, err = %d\n", -n);
+               goto fail;
+       }
  
-   #include "asm/common.lds.S"
+-      n = read(sigio_private[0], &c, sizeof(c));
++      n = os_read_file(sigio_private[0], &c, sizeof(c));
+       if(n != sizeof(c)){
+-              printk("update_thread : read failed, errno = %d\n", errno);
++              printk("update_thread : read failed, err = %d\n", -n);
+               goto fail;
+       }
  
--  .data.init : { *(.data.init) }
-+  init.data : { *(init.data) }
-   .data    :
-   {
-     . = ALIGN(KERNEL_STACK_SIZE);             /* init_task */
-diff -Naur a/arch/um/util/Makefile b/arch/um/util/Makefile
---- a/arch/um/util/Makefile    2004-03-10 08:23:21.000000000 -0500
-+++ b/arch/um/util/Makefile    2004-03-10 08:44:50.000000000 -0500
-@@ -1,23 +1,8 @@
--always                := mk_task mk_constants
--targets               := mk_task_user.o mk_task_kern.o \
--                 mk_constants_user.o mk_constants_kern.o
-+host-progs            := mk_task mk_constants
-+always                        := $(host-progs)
+@@ -271,10 +260,10 @@
+       if(write_sigio_pid != -1) 
+               os_kill_process(write_sigio_pid, 1);
+       write_sigio_pid = -1;
+-      close(sigio_private[0]);
+-      close(sigio_private[1]);        
+-      close(write_sigio_fds[0]);
+-      close(write_sigio_fds[1]);
++      os_close_file(sigio_private[0]);
++      os_close_file(sigio_private[1]);        
++      os_close_file(write_sigio_fds[0]);
++      os_close_file(write_sigio_fds[1]);
+       sigio_unlock();
+       set_signals(flags);
+ }
+@@ -369,15 +358,15 @@
+               goto out;
  
--$(obj)/mk_task: $(obj)/mk_task_user.o $(obj)/mk_task_kern.o
--      $(CC) -o $@ $^
-+mk_task-objs          := mk_task_user.o mk_task_kern.o
-+mk_constants-objs     := mk_constants_user.o mk_constants_kern.o
+       err = os_pipe(write_sigio_fds, 1, 1);
+-      if(err){
++      if(err < 0){
+               printk("write_sigio_workaround - os_pipe 1 failed, "
+-                     "errno = %d\n", -err);
++                     "err = %d\n", -err);
+               goto out;
+       }
+       err = os_pipe(sigio_private, 1, 1);
+-      if(err){
++      if(err < 0){
+               printk("write_sigio_workaround - os_pipe 2 failed, "
+-                     "errno = %d\n", -err);
++                     "err = %d\n", -err);
+               goto out_close1;
+       }
+       if(setup_initial_poll(sigio_private[1]))
+@@ -399,11 +388,11 @@
+       os_kill_process(write_sigio_pid, 1);
+       write_sigio_pid = -1;
+  out_close2:
+-      close(sigio_private[0]);
+-      close(sigio_private[1]);        
++      os_close_file(sigio_private[0]);
++      os_close_file(sigio_private[1]);        
+  out_close1:
+-      close(write_sigio_fds[0]);
+-      close(write_sigio_fds[1]);
++      os_close_file(write_sigio_fds[0]);
++      os_close_file(write_sigio_fds[1]);
+       sigio_unlock();
+ }
  
--$(obj)/mk_task_user.o: $(src)/mk_task_user.c
--      $(CC) -o $@ -c $< 
--
--$(obj)/mk_constants : $(obj)/mk_constants_user.o $(obj)/mk_constants_kern.o
--      $(CC) -o $@ $^
--
--$(obj)/mk_constants_user.o : $(src)/mk_constants_user.c
--      $(CC) -c $< -o $@
--
--$(obj)/mk_constants_kern.o : $(src)/mk_constants_kern.c
--      $(CC) $(CFLAGS) -c $< -o $@
--
--clean:
--      $(RM) $(build-targets)
--
--archmrproper:
-+HOSTCFLAGS_mk_task_kern.o     := $(CFLAGS)
-+HOSTCFLAGS_mk_constants_kern.o        := $(CFLAGS)
-diff -Naur a/arch/um/util/mk_constants_kern.c b/arch/um/util/mk_constants_kern.c
---- a/arch/um/util/mk_constants_kern.c 2004-03-10 08:20:23.000000000 -0500
-+++ b/arch/um/util/mk_constants_kern.c 2004-03-10 08:34:44.000000000 -0500
-@@ -1,5 +1,6 @@
- #include "linux/kernel.h"
- #include "linux/stringify.h"
-+#include "linux/time.h"
- #include "asm/page.h"
+@@ -412,10 +401,16 @@
+       int n;
+       char c;
  
- extern void print_head(void);
-@@ -11,6 +12,7 @@
- {
-   print_head();
-   print_constant_int("UM_KERN_PAGE_SIZE", PAGE_SIZE);
-+
-   print_constant_str("UM_KERN_EMERG", KERN_EMERG);
-   print_constant_str("UM_KERN_ALERT", KERN_ALERT);
-   print_constant_str("UM_KERN_CRIT", KERN_CRIT);
-@@ -19,6 +21,8 @@
-   print_constant_str("UM_KERN_NOTICE", KERN_NOTICE);
-   print_constant_str("UM_KERN_INFO", KERN_INFO);
-   print_constant_str("UM_KERN_DEBUG", KERN_DEBUG);
-+
-+  print_constant_int("UM_NSEC_PER_SEC", NSEC_PER_SEC);
-   print_tail();
-   return(0);
- }
-diff -Naur a/fs/hostfs/hostfs.h b/fs/hostfs/hostfs.h
---- a/fs/hostfs/hostfs.h       1969-12-31 19:00:00.000000000 -0500
-+++ b/fs/hostfs/hostfs.h       2004-03-10 08:33:48.000000000 -0500
-@@ -0,0 +1,79 @@
-+#ifndef __UM_FS_HOSTFS
-+#define __UM_FS_HOSTFS
-+
-+#include "os.h"
-+
-+/* These are exactly the same definitions as in fs.h, but the names are 
-+ * changed so that this file can be included in both kernel and user files.
-+ */
-+
-+#define HOSTFS_ATTR_MODE      1
-+#define HOSTFS_ATTR_UID       2
-+#define HOSTFS_ATTR_GID       4
-+#define HOSTFS_ATTR_SIZE      8
-+#define HOSTFS_ATTR_ATIME     16
-+#define HOSTFS_ATTR_MTIME     32
-+#define HOSTFS_ATTR_CTIME     64
-+#define HOSTFS_ATTR_ATIME_SET 128
-+#define HOSTFS_ATTR_MTIME_SET 256
-+#define HOSTFS_ATTR_FORCE     512     /* Not a change, but a change it */
-+#define HOSTFS_ATTR_ATTR_FLAG 1024
-+
-+struct hostfs_iattr {
-+      unsigned int    ia_valid;
-+      mode_t          ia_mode;
-+      uid_t           ia_uid;
-+      gid_t           ia_gid;
-+      loff_t          ia_size;
-+      struct timespec ia_atime;
-+      struct timespec ia_mtime;
-+      struct timespec ia_ctime;
-+      unsigned int    ia_attr_flags;
-+};
-+
-+extern int stat_file(const char *path, unsigned long long *inode_out, 
-+                   int *mode_out, int *nlink_out, int *uid_out, int *gid_out,
-+                   unsigned long long *size_out, struct timespec *atime_out, 
-+                   struct timespec *mtime_out, struct timespec *ctime_out, 
-+                   int *blksize_out, unsigned long long *blocks_out);
-+extern int access_file(char *path, int r, int w, int x);
-+extern int open_file(char *path, int r, int w, int append);
-+extern int file_type(const char *path, int *rdev);
-+extern void *open_dir(char *path, int *err_out);
-+extern char *read_dir(void *stream, unsigned long long *pos, 
-+                    unsigned long long *ino_out, int *len_out);
-+extern void close_file(void *stream);
-+extern void close_dir(void *stream);
-+extern int read_file(int fd, unsigned long long *offset, char *buf, int len);
-+extern int write_file(int fd, unsigned long long *offset, const char *buf,
-+                    int len);
-+extern int lseek_file(int fd, long long offset, int whence);
-+extern int file_create(char *name, int ur, int uw, int ux, int gr, 
-+                     int gw, int gx, int or, int ow, int ox);
-+extern int set_attr(const char *file, struct hostfs_iattr *attrs);
-+extern int make_symlink(const char *from, const char *to);
-+extern int unlink_file(const char *file);
-+extern int do_mkdir(const char *file, int mode);
-+extern int do_rmdir(const char *file);
-+extern int do_mknod(const char *file, int mode, int dev);
-+extern int link_file(const char *from, const char *to);
-+extern int do_readlink(char *file, char *buf, int size);
-+extern int rename_file(char *from, char *to);
-+extern int do_statfs(char *root, long *bsize_out, long long *blocks_out, 
-+                   long long *bfree_out, long long *bavail_out, 
-+                   long long *files_out, long long *ffree_out, 
-+                   void *fsid_out, int fsid_size, long *namelen_out, 
-+                   long *spare_out);
-+
-+#endif
-+
-+/*
-+ * Overrides for Emacs so that we follow Linus's tabbing style.
-+ * Emacs will notice this stuff at the end of the file and automatically
-+ * adjust the settings for this buffer only.  This must remain at the end
-+ * of the file.
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
-diff -Naur a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c
---- a/fs/hostfs/hostfs_kern.c  1969-12-31 19:00:00.000000000 -0500
-+++ b/fs/hostfs/hostfs_kern.c  2004-03-10 08:34:06.000000000 -0500
-@@ -0,0 +1,1008 @@
-+/* 
-+ * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
-+ * Licensed under the GPL
-+ *
-+ * Ported the filesystem routines to 2.5.
-+ * 2003-02-10 Petr Baudis <pasky@ucw.cz>
-+ */
-+
-+#include <linux/stddef.h>
-+#include <linux/fs.h>
-+#include <linux/version.h>
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/slab.h>
-+#include <linux/pagemap.h>
-+#include <linux/blkdev.h>
-+#include <linux/list.h>
-+#include <linux/buffer_head.h>
-+#include <linux/root_dev.h>
-+#include <linux/statfs.h>
-+#include <asm/uaccess.h>
-+#include "hostfs.h"
-+#include "kern_util.h"
-+#include "kern.h"
-+#include "user_util.h"
-+#include "2_5compat.h"
-+#include "init.h"
-+
-+struct hostfs_inode_info {
-+      char *host_filename;
-+      int fd;
-+      int mode;
-+      struct inode vfs_inode;
-+};
-+
-+static inline struct hostfs_inode_info *HOSTFS_I(struct inode *inode)
-+{
-+      return(list_entry(inode, struct hostfs_inode_info, vfs_inode));
-+}
-+
-+#define FILE_HOSTFS_I(file) HOSTFS_I((file)->f_dentry->d_inode)
-+
-+int hostfs_d_delete(struct dentry *dentry)
-+{
-+      return(1);
-+}
-+
-+struct dentry_operations hostfs_dentry_ops = {
-+      .d_delete               = hostfs_d_delete,
-+};
-+
-+/* Changed in hostfs_args before the kernel starts running */
-+static char *root_ino = "/";
-+static int append = 0;
-+
-+#define HOSTFS_SUPER_MAGIC 0x00c0ffee
-+
-+static struct inode_operations hostfs_iops;
-+static struct inode_operations hostfs_dir_iops;
-+static struct address_space_operations hostfs_link_aops;
+-      n = read(fd, &c, sizeof(c));
++      n = os_read_file(fd, &c, sizeof(c));
+       if(n != sizeof(c)){
+-              printk("read_sigio_fd - read failed, errno = %d\n", errno);
+-              return(-errno);
++              if(n < 0) {
++                      printk("read_sigio_fd - read failed, err = %d\n", -n);
++                      return(n);
++              } 
++              else { 
++                      printk("read_sigio_fd - short read, bytes = %d\n", n);
++                      return(-EIO);
++              }
+       }
+       return(n);
+ }
+Index: uml-2.6.7/include/asm-um/system-i386.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/system-i386.h        2004-07-16 19:36:25.160321512 +0300
++++ uml-2.6.7/include/asm-um/system-i386.h     2004-07-16 19:47:23.802192728 +0300
+@@ -2,36 +2,5 @@
+ #define __UM_SYSTEM_I386_H
+ #include "asm/system-generic.h"
+-
+-static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
+-                                    unsigned long new, int size)
+-{
+-      unsigned long prev;
+-      switch (size) {
+-      case 1:
+-              __asm__ __volatile__(LOCK_PREFIX "cmpxchgb %b1,%2"
+-                                   : "=a"(prev)
+-                                   : "q"(new), "m"(*__xg(ptr)), "0"(old)
+-                                   : "memory");
+-              return prev;
+-      case 2:
+-              __asm__ __volatile__(LOCK_PREFIX "cmpxchgw %w1,%2"
+-                                   : "=a"(prev)
+-                                   : "q"(new), "m"(*__xg(ptr)), "0"(old)
+-                                   : "memory");
+-              return prev;
+-      case 4:
+-              __asm__ __volatile__(LOCK_PREFIX "cmpxchgl %1,%2"
+-                                   : "=a"(prev)
+-                                   : "q"(new), "m"(*__xg(ptr)), "0"(old)
+-                                   : "memory");
+-              return prev;
+-      }
+-      return old;
+-}
+-
+-#define cmpxchg(ptr,o,n)\
+-      ((__typeof__(*(ptr)))__cmpxchg((ptr),(unsigned long)(o),\
+-                                      (unsigned long)(n),sizeof(*(ptr))))
+     
+ #endif
+Index: uml-2.6.7/arch/um/sys-i386/time.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/sys-i386/time.c     2004-07-16 19:47:23.629219024 +0300
++++ uml-2.6.7/arch/um/sys-i386/time.c  2004-07-16 19:47:23.773197136 +0300
+@@ -0,0 +1,24 @@
++/*
++ * sys-i386/time.c 
++ * Created            25.9.2002       Sapan Bhatia
++ *
++ */
 +
-+static int __init hostfs_args(char *options, int *add)
++unsigned long long time_stamp(void)
 +{
-+      char *ptr;
-+
-+      ptr = strchr(options, ',');
-+      if(ptr != NULL)
-+              *ptr++ = '\0';
-+      if(*options != '\0')
-+              root_ino = options;
++      unsigned long low, high;
 +
-+      options = ptr;
-+      while(options){
-+              ptr = strchr(options, ',');
-+              if(ptr != NULL)
-+                      *ptr++ = '\0';
-+              if(*options != '\0'){
-+                      if(!strcmp(options, "append"))
-+                              append = 1;
-+                      else printf("hostfs_args - unsupported option - %s\n",
-+                                  options);
-+              }
-+              options = ptr;
-+      }
-+      return(0);
++      asm("rdtsc" : "=a" (low), "=d" (high));
++      return((((unsigned long long) high) << 32) + low);
 +}
 +
-+__uml_setup("hostfs=", hostfs_args,
-+"hostfs=<root dir>,<flags>,...\n"
-+"    This is used to set hostfs parameters.  The root directory argument\n"
-+"    is used to confine all hostfs mounts to within the specified directory\n"
-+"    tree on the host.  If this isn't specified, then a user inside UML can\n"
-+"    mount anything on the host that's accessible to the user that's running\n"
-+"    it.\n"
-+"    The only flag currently supported is 'append', which specifies that all\n"
-+"    files opened by hostfs will be opened in append mode.\n\n"
-+);
-+
-+static char *dentry_name(struct dentry *dentry, int extra)
-+{
-+      struct dentry *parent;
-+      char *root, *name;
-+      int len;
++/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
+Index: uml-2.6.7/arch/um/Makefile-i386
+===================================================================
+--- uml-2.6.7.orig/arch/um/Makefile-i386       2004-07-16 19:37:17.426375864 +0300
++++ uml-2.6.7/arch/um/Makefile-i386    2004-07-16 19:47:23.764198504 +0300
+@@ -16,22 +16,27 @@
+ SYS_HEADERS = $(SYS_DIR)/sc.h $(SYS_DIR)/thread.h
++sys_prepare: $(SYS_DIR)/sc.h
 +
-+      len = 0;
-+      parent = dentry;
-+      while(parent->d_parent != parent){
-+              len += parent->d_name.len + 1;
-+              parent = parent->d_parent;
-+      }
-+      
-+      root = HOSTFS_I(parent->d_inode)->host_filename;
-+      len += strlen(root);
-+      name = kmalloc(len + extra + 1, GFP_KERNEL);
-+      if(name == NULL) return(NULL);
+ prepare: $(SYS_HEADERS)
++filechk_$(SYS_DIR)/sc.h := $(SYS_UTIL_DIR)/mk_sc
 +
-+      name[len] = '\0';
-+      parent = dentry;
-+      while(parent->d_parent != parent){
-+              len -= parent->d_name.len + 1;
-+              name[len] = '/';
-+              strncpy(&name[len + 1], parent->d_name.name, 
-+                      parent->d_name.len);
-+              parent = parent->d_parent;
-+      }
-+      strncpy(name, root, strlen(root));
-+      return(name);
-+}
+ $(SYS_DIR)/sc.h: $(SYS_UTIL_DIR)/mk_sc
+-      $< > $@
++      $(call filechk,$@)
 +
-+static char *inode_name(struct inode *ino, int extra)
-+{
-+      struct dentry *dentry;
++filechk_$(SYS_DIR)/thread.h := $(SYS_UTIL_DIR)/mk_thread 
+ $(SYS_DIR)/thread.h: $(SYS_UTIL_DIR)/mk_thread 
+-      $< > $@
++      $(call filechk,$@)
+-$(SYS_UTIL_DIR)/mk_sc: FORCE ; 
+-      @$(call descend,$(SYS_UTIL_DIR),$@)
++$(SYS_UTIL_DIR)/mk_sc: scripts/basic/fixdep include/config/MARKER FORCE ; 
++      $(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
+-$(SYS_UTIL_DIR)/mk_thread: $(ARCH_SYMLINKS) $(GEN_HEADERS) FORCE ; 
+-      @$(call descend,$(SYS_UTIL_DIR),$@)
++$(SYS_UTIL_DIR)/mk_thread: $(ARCH_SYMLINKS) $(GEN_HEADERS) sys_prepare FORCE ; 
++      $(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
+ $(SYS_UTIL_DIR): include/asm FORCE
+-      @$(call descend,$@,)
++      $(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR)
+-sysclean :
+-      rm -f $(SYS_HEADERS)
++CLEAN_FILES += $(SYS_HEADERS)
+Index: uml-2.6.7/include/asm-um/smp.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/smp.h        2004-07-16 19:35:49.282775728 +0300
++++ uml-2.6.7/include/asm-um/smp.h     2004-07-16 19:47:23.795193792 +0300
+@@ -10,7 +10,7 @@
+ extern cpumask_t cpu_online_map;
+-#define smp_processor_id() (current->thread_info->cpu)
++#define smp_processor_id() (current_thread->cpu)
+ #define cpu_logical_map(n) (n)
+ #define cpu_number_map(n) (n)
+ #define PROC_CHANGE_PENALTY   15 /* Pick a number, any number */
+Index: uml-2.6.7/arch/um/Kconfig_block
+===================================================================
+--- uml-2.6.7.orig/arch/um/Kconfig_block       2004-07-16 19:37:05.104249112 +0300
++++ uml-2.6.7/arch/um/Kconfig_block    2004-07-16 19:47:23.711206560 +0300
+@@ -29,6 +29,20 @@
+         wise choice too.  In all other cases (for example, if you're just
+         playing around with User-Mode Linux) you can choose N.
++# Turn this back on when the driver actually works
++#
++#config BLK_DEV_COW
++#     tristate "COW block device"
++#     help
++#     This is a layered driver which sits above two other block devices.
++#     One is read-only, and the other is a read-write layer which stores
++#     all changes.  This provides the illusion that the read-only layer
++#     can be mounted read-write and changed.
 +
-+      dentry = list_entry(ino->i_dentry.next, struct dentry, d_alias);
-+      return(dentry_name(dentry, extra));
-+}
++config BLK_DEV_COW_COMMON
++      bool
++      default BLK_DEV_COW || BLK_DEV_UBD
 +
-+static int read_name(struct inode *ino, char *name)
-+{
-+      /* The non-int inode fields are copied into ints by stat_file and
-+       * then copied into the inode because passing the actual pointers
-+       * in and having them treated as int * breaks on big-endian machines
+ config BLK_DEV_LOOP
+       tristate "Loopback device support"
+Index: uml-2.6.7/arch/um/kernel/initrd_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/initrd_user.c        2004-07-16 19:36:07.784962968 +0300
++++ uml-2.6.7/arch/um/kernel/initrd_user.c     2004-07-16 19:47:23.715205952 +0300
+@@ -6,7 +6,6 @@
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+-#include <fcntl.h>
+ #include <errno.h>
+ #include "user_util.h"
+@@ -19,13 +18,15 @@
+ {
+       int fd, n;
+-      if((fd = os_open_file(filename, of_read(OPENFLAGS()), 0)) < 0){
+-              printk("Opening '%s' failed - errno = %d\n", filename, errno);
++      fd = os_open_file(filename, of_read(OPENFLAGS()), 0);
++      if(fd < 0){
++              printk("Opening '%s' failed - err = %d\n", filename, -fd);
+               return(-1);
+       }
+-      if((n = read(fd, buf, size)) != size){
+-              printk("Read of %d bytes from '%s' returned %d, errno = %d\n",
+-                     size, filename, n, errno);
++      n = os_read_file(fd, buf, size);
++      if(n != size){
++              printk("Read of %d bytes from '%s' failed, err = %d\n", size, 
++                     filename, -n);
+               return(-1);
+       }
+       return(0);
+Index: uml-2.6.7/arch/um/include/sysdep-i386/frame_user.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/include/sysdep-i386/frame_user.h    2004-07-16 19:37:34.631760248 +0300
++++ uml-2.6.7/arch/um/include/sysdep-i386/frame_user.h 2004-07-16 19:47:23.707207168 +0300
+@@ -56,26 +56,26 @@
+  * it would have to be __builtin_frame_address(1).
+  */
+-static inline unsigned long frame_restorer(void)
+-{
+-      unsigned long *fp;
+-
+-      fp = __builtin_frame_address(0);
+-      return((unsigned long) (fp + 1));
+-}
++#define frame_restorer() \
++({ \
++      unsigned long *fp; \
++\
++      fp = __builtin_frame_address(0); \
++      ((unsigned long) (fp + 1)); \
++})
+ /* Similarly, this returns the value of sp when the handler was first
+  * entered.  This is used to calculate the proper sp when delivering
+  * signals.
+  */
+-static inline unsigned long frame_sp(void)
+-{
+-      unsigned long *fp;
+-
+-      fp = __builtin_frame_address(0);
+-      return((unsigned long) (fp + 1));
+-}
++#define frame_sp() \
++({ \
++      unsigned long *fp; \
++\
++      fp = __builtin_frame_address(0); \
++      ((unsigned long) (fp + 1)); \
++})
+ #endif
+Index: uml-2.6.7/arch/um/drivers/tty.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/tty.c       2004-07-16 19:36:25.316297800 +0300
++++ uml-2.6.7/arch/um/drivers/tty.c    2004-07-16 19:47:23.695208992 +0300
+@@ -5,7 +5,6 @@
+ #include <stdio.h>
+ #include <termios.h>
+-#include <fcntl.h>
+ #include <errno.h>
+ #include <unistd.h>
+ #include "chan_user.h"
+@@ -30,7 +29,8 @@
+       }
+       str++;
+-      if((data = um_kmalloc(sizeof(*data))) == NULL) 
++      data = um_kmalloc(sizeof(*data)); 
++      if(data == NULL) 
+               return(NULL);
+       *data = ((struct tty_chan) { .dev       = str,
+                                    .raw       = opts->raw });
+Index: uml-2.6.7/arch/um/drivers/net_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/net_kern.c  2004-07-16 19:36:37.183493712 +0300
++++ uml-2.6.7/arch/um/drivers/net_kern.c       2004-07-16 19:47:23.689209904 +0300
+@@ -26,6 +26,7 @@
+ #include "mconsole_kern.h"
+ #include "init.h"
+ #include "irq_user.h"
++#include "irq_kern.h"
+ static spinlock_t opened_lock = SPIN_LOCK_UNLOCKED;
+ LIST_HEAD(opened);
+@@ -37,7 +38,8 @@
+       struct sk_buff *skb;
+       /* If we can't allocate memory, try again next round. */
+-      if ((skb = dev_alloc_skb(dev->mtu)) == NULL) {
++      skb = dev_alloc_skb(dev->mtu);
++      if (skb == NULL) {
+               lp->stats.rx_dropped++;
+               return 0;
+       }
+@@ -61,14 +63,14 @@
+       return pkt_len;
+ }
+-void uml_net_interrupt(int irq, void *dev_id, struct pt_regs *regs)
++irqreturn_t uml_net_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+ {
+       struct net_device *dev = dev_id;
+       struct uml_net_private *lp = dev->priv;
+       int err;
+       if(!netif_running(dev))
+-              return;
++              return(IRQ_NONE);
+       spin_lock(&lp->lock);
+       while((err = uml_net_rx(dev)) > 0) ;
+@@ -83,6 +85,7 @@
+  out:
+       spin_unlock(&lp->lock);
++      return(IRQ_HANDLED);
+ }
+ static int uml_net_open(struct net_device *dev)
+@@ -250,37 +253,6 @@
+ #endif
+ }
+-/*
+- * default do nothing hard header packet routines for struct net_device init.
+- * real ethernet transports will overwrite with real routines.
+- */
+-static int uml_net_hard_header(struct sk_buff *skb, struct net_device *dev,
+-                 unsigned short type, void *daddr, void *saddr, unsigned len)
+-{
+-      return(0); /* no change */
+-}
+-
+-static int uml_net_rebuild_header(struct sk_buff *skb)
+-{
+-      return(0); /* ignore */ 
+-}
+-
+-static int uml_net_header_cache(struct neighbour *neigh, struct hh_cache *hh)
+-{
+-      return(-1); /* fail */
+-}
+-
+-static void uml_net_header_cache_update(struct hh_cache *hh,
+-                 struct net_device *dev, unsigned char * haddr)
+-{
+-      /* ignore */
+-}
+-
+-static int uml_net_header_parse(struct sk_buff *skb, unsigned char *haddr)
+-{
+-      return(0); /* nothing */
+-}
+-
+ static spinlock_t devices_lock = SPIN_LOCK_UNLOCKED;
+ static struct list_head devices = LIST_HEAD_INIT(devices);
+@@ -290,7 +262,7 @@
+       struct uml_net *device;
+       struct net_device *dev;
+       struct uml_net_private *lp;
+-      int err, size;
++      int save, err, size;
+       size = transport->private_size + sizeof(struct uml_net_private) + 
+               sizeof(((struct uml_net_private *) 0)->user);
+@@ -332,12 +304,6 @@
+       snprintf(dev->name, sizeof(dev->name), "eth%d", n);
+       device->dev = dev;
+-        dev->hard_header = uml_net_hard_header;
+-        dev->rebuild_header = uml_net_rebuild_header;
+-        dev->hard_header_cache = uml_net_header_cache;
+-        dev->header_cache_update= uml_net_header_cache_update;
+-        dev->hard_header_parse = uml_net_header_parse;
+-
+       (*transport->kern->init)(dev, init);
+       dev->mtu = transport->user->max_packet;
+@@ -364,21 +330,29 @@
+       }
+       lp = dev->priv;
+-      INIT_LIST_HEAD(&lp->list);
+-      spin_lock_init(&lp->lock);
+-      lp->dev = dev;
+-      lp->fd = -1;
+-      lp->mac = { 0xfe, 0xfd, 0x0, 0x0, 0x0, 0x0 };
+-      lp->have_mac = device->have_mac;
+-      lp->protocol = transport->kern->protocol;
+-      lp->open = transport->user->open;
+-      lp->close = transport->user->close;
+-      lp->remove = transport->user->remove;
+-      lp->read = transport->kern->read;
+-      lp->write = transport->kern->write;
+-      lp->add_address = transport->user->add_address;
+-      lp->delete_address = transport->user->delete_address;
+-      lp->set_mtu = transport->user->set_mtu;
++      /* lp.user is the first four bytes of the transport data, which
++       * has already been initialized.  This structure assignment will
++       * overwrite that, so we make sure that .user gets overwritten with
++       * what it already has.
 +       */
-+      int err;
-+      int i_mode, i_nlink, i_blksize;
-+      unsigned long long i_size;
-+      unsigned long long i_ino;
-+      unsigned long long i_blocks;
-+
-+      err = stat_file(name, &i_ino, &i_mode, &i_nlink, &ino->i_uid, 
-+                      &ino->i_gid, &i_size, &ino->i_atime, &ino->i_mtime, 
-+                      &ino->i_ctime, &i_blksize, &i_blocks);
-+      if(err) 
-+              return(err);
-+
-+      ino->i_ino = i_ino;
-+      ino->i_mode = i_mode;
-+      ino->i_nlink = i_nlink;
-+      ino->i_size = i_size;
-+      ino->i_blksize = i_blksize;
-+      ino->i_blocks = i_blocks;
-+      if((ino->i_sb->s_dev == ROOT_DEV) && (ino->i_uid == getuid()))
-+              ino->i_uid = 0;
-+      return(0);
-+}
-+
-+static char *follow_link(char *link)
-+{
-+      int len, n;
-+      char *name, *resolved, *end;
-+
-+      len = 64;
-+      while(1){
-+              n = -ENOMEM;
-+              name = kmalloc(len, GFP_KERNEL);
-+              if(name == NULL)
-+                      goto out;
-+
-+              n = do_readlink(link, name, len);
-+              if(n < len)
-+                      break;
-+              len *= 2;
-+              kfree(name);
-+      }
-+      if(n < 0)
-+              goto out_free;
-+
-+      if(*name == '/')
-+              return(name);
-+
-+      end = strrchr(link, '/');
-+      if(end == NULL)
-+              return(name);
-+
-+      *(end + 1) = '\0';
-+      len = strlen(link) + strlen(name) + 1;
-+
-+      resolved = kmalloc(len, GFP_KERNEL);
-+      if(resolved == NULL){
-+              n = -ENOMEM;
-+              goto out_free;
-+      }
-+
-+      sprintf(resolved, "%s%s", link, name);
-+      kfree(name);
-+      kfree(link);
-+      return(resolved);
++      save = lp->user[0];
++      *lp = ((struct uml_net_private) 
++              { .list                 = LIST_HEAD_INIT(lp->list),
++                .lock                 = SPIN_LOCK_UNLOCKED,
++                .dev                  = dev,
++                .fd                   = -1,
++                .mac                  = { 0xfe, 0xfd, 0x0, 0x0, 0x0, 0x0},
++                .have_mac             = device->have_mac,
++                .protocol             = transport->kern->protocol,
++                .open                 = transport->user->open,
++                .close                = transport->user->close,
++                .remove               = transport->user->remove,
++                .read                 = transport->kern->read,
++                .write                = transport->kern->write,
++                .add_address          = transport->user->add_address,
++                .delete_address       = transport->user->delete_address,
++                .set_mtu              = transport->user->set_mtu,
++                .user                 = { save } });
+       init_timer(&lp->tl);
+       lp->tl.function = uml_net_user_timer_expire;
+@@ -611,7 +585,8 @@
+       unregister_netdev(dev);
+       list_del(&device->list);
+-      free_netdev(device);
++      kfree(device);
++      free_netdev(dev);
+       return(0);
+ }
+Index: uml-2.6.7/arch/um/kernel/tt/syscall_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/tt/syscall_kern.c    2004-07-16 19:35:49.170792752 +0300
++++ uml-2.6.7/arch/um/kernel/tt/syscall_kern.c 2004-07-16 19:47:23.749200784 +0300
+@@ -1,5 +1,5 @@
+ /* 
+- * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
++ * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
+  * Licensed under the GPL
+  */
+Index: uml-2.6.7/arch/um/kernel/config.c.in
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/config.c.in  2004-07-16 19:37:08.932667104 +0300
++++ uml-2.6.7/arch/um/kernel/config.c.in       2004-07-16 19:47:23.712206408 +0300
+@@ -7,9 +7,7 @@
+ #include <stdlib.h>
+ #include "init.h"
+-static __initdata char *config = "
+-CONFIG
+-";
++static __initdata char *config = "CONFIG";
+ static int __init print_config(char *line, int *add)
+ {
+Index: uml-2.6.7/arch/um/include/mconsole.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/include/mconsole.h  2004-07-16 19:36:32.705174520 +0300
++++ uml-2.6.7/arch/um/include/mconsole.h       2004-07-16 19:47:23.703207776 +0300
+@@ -41,11 +41,13 @@
+ struct mc_request;
++enum mc_context { MCONSOLE_INTR, MCONSOLE_PROC };
 +
-+ out_free:
-+      kfree(name);
+ struct mconsole_command
+ {
+       char *command;
+       void (*handler)(struct mc_request *req);
+-      int as_interrupt;
++      enum mc_context context;
+ };
+ struct mc_request
+@@ -77,6 +79,8 @@
+ extern void mconsole_cad(struct mc_request *req);
+ extern void mconsole_stop(struct mc_request *req);
+ extern void mconsole_go(struct mc_request *req);
++extern void mconsole_log(struct mc_request *req);
++extern void mconsole_proc(struct mc_request *req);
+ extern int mconsole_get_request(int fd, struct mc_request *req);
+ extern int mconsole_notify(char *sock_name, int type, const void *data, 
+Index: uml-2.6.7/arch/um/kernel/Makefile
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/Makefile     2004-07-16 19:37:05.102249416 +0300
++++ uml-2.6.7/arch/um/kernel/Makefile  2004-07-16 19:47:23.718205496 +0300
+@@ -7,11 +7,11 @@
+ obj-y = checksum.o config.o exec_kern.o exitcode.o frame_kern.o frame.o \
+       helper.o init_task.o irq.o irq_user.o ksyms.o mem.o mem_user.o \
+-      process.o process_kern.o ptrace.o reboot.o resource.o sigio_user.o \
+-      sigio_kern.o signal_kern.o signal_user.o smp.o syscall_kern.o \
+-      syscall_user.o sysrq.o sys_call_table.o tempfile.o time.o \
+-      time_kern.o tlb.o trap_kern.o trap_user.o uaccess_user.o um_arch.o \
+-      umid.o user_syms.o user_util.o
++      physmem.o process.o process_kern.o ptrace.o reboot.o resource.o \
++      sigio_user.o sigio_kern.o signal_kern.o signal_user.o smp.o \
++      syscall_kern.o syscall_user.o sysrq.o sys_call_table.o tempfile.o \
++      time.o time_kern.o tlb.o trap_kern.o trap_user.o uaccess_user.o \
++      um_arch.o umid.o user_util.o
+ obj-$(CONFIG_BLK_DEV_INITRD) += initrd_kern.o initrd_user.o
+ obj-$(CONFIG_GPROF)   += gprof_syms.o
+@@ -24,43 +24,27 @@
+ user-objs-$(CONFIG_TTY_LOG) += tty_log.o
+ USER_OBJS := $(filter %_user.o,$(obj-y))  $(user-objs-y) config.o helper.o \
+-      process.o tempfile.o time.o tty_log.o umid.o user_util.o user_syms.o
++      process.o tempfile.o time.o tty_log.o umid.o user_util.o
+ USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
+-DMODULES-$(CONFIG_MODULES) = -D__CONFIG_MODULES__
+-DMODVERSIONS-$(CONFIG_MODVERSIONS) = -D__CONFIG_MODVERSIONS__
+-
+-
+-CFLAGS_user_syms.o = -D__AUTOCONF_INCLUDED__ $(DMODULES-y) $(DMODVERSIONS-y) \
+-      -I/usr/include -I../include
+-
+ CFLAGS_frame.o := $(patsubst -fomit-frame-pointer,,$(USER_CFLAGS))
+-$(USER_OBJS) : %.o: %.c
+-      $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
+-
+ # This has to be separate because it needs be compiled with frame pointers
+ # regardless of how the rest of the kernel is built.
+ $(obj)/frame.o: $(src)/frame.c
+       $(CC) $(CFLAGS_$(notdir $@)) -c -o $@ $<
+-QUOTE = 'my $$config=`cat $(TOPDIR)/.config`; $$config =~ s/"/\\"/g ; while(<STDIN>) { $$_ =~ s/CONFIG/$$config/; print $$_ }'
++$(USER_OBJS) : %.o: %.c
++      $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
+-$(obj)/config.c : $(src)/config.c.in $(TOPDIR)/.config
+-      $(PERL) -e $(QUOTE) < $(src)/config.c.in > $@
++QUOTE = 'my $$config=`cat $(TOPDIR)/.config`; $$config =~ s/"/\\"/g ; $$config =~ s/\n/\\n"\n"/g ; while(<STDIN>) { $$_ =~ s/CONFIG/$$config/; print $$_ }'
+ $(obj)/config.o : $(obj)/config.c
+-clean:
+-      rm -f config.c
+-      for dir in $(subdir-y) ; do $(MAKE) -C $$dir clean; done
+-
+-modules:
+-
+-fastdep:
+-
+-dep:
+-
+-archmrproper: clean
++quiet_cmd_quote = QUOTE $@
++cmd_quote = $(PERL) -e $(QUOTE) < $< > $@
++targets += config.c
++$(obj)/config.c : $(src)/config.c.in $(TOPDIR)/.config FORCE
++      $(call if_changed,quote)
+Index: uml-2.6.7/arch/um/drivers/xterm_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/xterm_kern.c        2004-07-16 19:37:08.927667864 +0300
++++ uml-2.6.7/arch/um/drivers/xterm_kern.c     2004-07-16 19:47:23.699208384 +0300
+@@ -5,9 +5,12 @@
+ #include "linux/errno.h"
+ #include "linux/slab.h"
++#include "linux/signal.h"
++#include "linux/interrupt.h"
+ #include "asm/semaphore.h"
+ #include "asm/irq.h"
+ #include "irq_user.h"
++#include "irq_kern.h"
+ #include "kern_util.h"
+ #include "os.h"
+ #include "xterm.h"
+@@ -19,17 +22,18 @@
+       int new_fd;
+ };
+-static void xterm_interrupt(int irq, void *data, struct pt_regs *regs)
++static irqreturn_t xterm_interrupt(int irq, void *data, struct pt_regs *regs)
+ {
+       struct xterm_wait *xterm = data;
+       int fd;
+       fd = os_rcv_fd(xterm->fd, &xterm->pid);
+       if(fd == -EAGAIN)
+-              return;
++              return(IRQ_NONE);
+       xterm->new_fd = fd;
+       up(&xterm->sem);
++      return(IRQ_HANDLED);
+ }
+ int xterm_fd(int socket, int *pid_out)
+@@ -54,7 +58,8 @@
+       if(err){
+               printk(KERN_ERR "xterm_fd : failed to get IRQ for xterm, "
+                      "err = %d\n",  err);
+-              return(err);
++              ret = err;
++              goto out;
+       }
+       down(&data->sem);
+@@ -62,6 +67,7 @@
+       ret = data->new_fd;
+       *pid_out = data->pid;
 + out:
-+      return(ERR_PTR(n));
-+}
+       kfree(data);
+       return(ret);
+Index: uml-2.6.7/arch/um/drivers/cow.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/cow.h       2004-07-16 19:47:23.607222368 +0300
++++ uml-2.6.7/arch/um/drivers/cow.h    2004-07-16 19:47:23.678211576 +0300
+@@ -0,0 +1,41 @@
++#ifndef __COW_H__
++#define __COW_H__
 +
-+static int read_inode(struct inode *ino)
-+{
-+      char *name;
-+      int err = 0;
++#include <asm/types.h>
 +
-+      /* Unfortunately, we are called from iget() when we don't have a dentry
-+       * allocated yet.
-+       */
-+      if(list_empty(&ino->i_dentry))
-+              goto out;
-+ 
-+      err = -ENOMEM;
-+      name = inode_name(ino, 0);
-+      if(name == NULL) 
-+              goto out;
++#if __BYTE_ORDER == __BIG_ENDIAN
++# define ntohll(x) (x)
++# define htonll(x) (x)
++#elif __BYTE_ORDER == __LITTLE_ENDIAN
++# define ntohll(x)  bswap_64(x)
++# define htonll(x)  bswap_64(x)
++#else
++#error "__BYTE_ORDER not defined"
++#endif
 +
-+      if(file_type(name, NULL) == OS_TYPE_SYMLINK){
-+              name = follow_link(name);
-+              if(IS_ERR(name)){
-+                      err = PTR_ERR(name);
-+                      goto out;
-+              }
-+      }
-+      
-+      err = read_name(ino, name);
-+      kfree(name);
-+ out:
-+      return(err);
-+}
++extern int init_cow_file(int fd, char *cow_file, char *backing_file, 
++                       int sectorsize, int alignment, int *bitmap_offset_out, 
++                       unsigned long *bitmap_len_out, int *data_offset_out);
 +
-+int hostfs_statfs(struct super_block *sb, struct kstatfs *sf)
-+{
-+      /* do_statfs uses struct statfs64 internally, but the linux kernel
-+       * struct statfs still has 32-bit versions for most of these fields,
-+       * so we convert them here
-+       */
-+      int err;
-+      long long f_blocks;
-+      long long f_bfree;
-+      long long f_bavail;
-+      long long f_files;
-+      long long f_ffree;
++extern int file_reader(__u64 offset, char *buf, int len, void *arg);
++extern int read_cow_header(int (*reader)(__u64, char *, int, void *), 
++                         void *arg, __u32 *version_out, 
++                         char **backing_file_out, time_t *mtime_out, 
++                         __u64 *size_out, int *sectorsize_out, 
++                         __u32 *align_out, int *bitmap_offset_out);
 +
-+      err = do_statfs(HOSTFS_I(sb->s_root->d_inode)->host_filename,
-+                      &sf->f_bsize, &f_blocks, &f_bfree, &f_bavail, &f_files,
-+                      &f_ffree, &sf->f_fsid, sizeof(sf->f_fsid), 
-+                      &sf->f_namelen, sf->f_spare);
-+      if(err) return(err);
-+      sf->f_blocks = f_blocks;
-+      sf->f_bfree = f_bfree;
-+      sf->f_bavail = f_bavail;
-+      sf->f_files = f_files;
-+      sf->f_ffree = f_ffree;
-+      sf->f_type = HOSTFS_SUPER_MAGIC;
-+      return(0);
-+}
++extern int write_cow_header(char *cow_file, int fd, char *backing_file, 
++                          int sectorsize, int alignment, long long *size);
 +
-+static struct inode *hostfs_alloc_inode(struct super_block *sb)
-+{
-+      struct hostfs_inode_info *hi;
++extern void cow_sizes(int version, __u64 size, int sectorsize, int align,
++                    int bitmap_offset, unsigned long *bitmap_len_out, 
++                    int *data_offset_out);
 +
-+      hi = kmalloc(sizeof(*hi), GFP_KERNEL);
-+      if(hi == NULL) 
-+              return(NULL);
++#endif
 +
-+      *hi = ((struct hostfs_inode_info) { .host_filename      = NULL,
-+                                          .fd                 = -1,
-+                                          .mode               = 0 });
-+      inode_init_once(&hi->vfs_inode);
-+      return(&hi->vfs_inode);
-+}
++/*
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
+Index: uml-2.6.7/arch/um/sys-ppc/Makefile
+===================================================================
+--- uml-2.6.7.orig/arch/um/sys-ppc/Makefile    2004-07-16 19:36:37.299476080 +0300
++++ uml-2.6.7/arch/um/sys-ppc/Makefile 2004-07-16 19:47:23.779196224 +0300
+@@ -66,13 +66,4 @@
+       $(CC) $(EXTRA_AFLAGS) $(AFLAGS) -D__ASSEMBLY__ -D__UM_PPC__ -c $< -o $*.o
+       rm -f asm
+-clean:
+-      rm -f $(OBJS)
+-      rm -f ppc_defs.h
+-      rm -f checksum.S semaphore.c mk_defs.c
+-
+-fastdep:
+-
+-dep:
+-
+-modules:
++clean-files := $(OBJS) ppc_defs.h checksum.S semaphore.c mk_defs.c
+Index: uml-2.6.7/arch/um/os-Linux/user_syms.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/os-Linux/user_syms.c        2004-07-16 19:47:23.629219024 +0300
++++ uml-2.6.7/arch/um/os-Linux/user_syms.c     2004-07-16 19:47:23.769197744 +0300
+@@ -0,0 +1,88 @@
++#include "linux/types.h"
++#include "linux/module.h"
 +
-+static void hostfs_destroy_inode(struct inode *inode)
-+{
-+      if(HOSTFS_I(inode)->host_filename) 
-+              kfree(HOSTFS_I(inode)->host_filename);
++/* Some of this are builtin function (some are not but could in the future),
++ * so I *must* declare good prototypes for them and then EXPORT them.
++ * The kernel code uses the macro defined by include/linux/string.h,
++ * so I undef macros; the userspace code does not include that and I
++ * add an EXPORT for the glibc one.*/
 +
-+      if(HOSTFS_I(inode)->fd != -1) 
-+              close_file(&HOSTFS_I(inode)->fd);
++#undef strlen
++#undef strstr
++#undef memcpy
++#undef memset
 +
-+      kfree(HOSTFS_I(inode));
-+}
++extern size_t strlen(const char *);
++extern void *memcpy(void *, const void *, size_t);
++extern void *memset(void *, int, size_t);
++extern int printf(const char *, ...);
 +
-+static void hostfs_read_inode(struct inode *inode)
-+{
-+      read_inode(inode);
-+}
++EXPORT_SYMBOL(strlen);
++EXPORT_SYMBOL(memcpy);
++EXPORT_SYMBOL(memset);
++EXPORT_SYMBOL(printf);
 +
-+static struct super_operations hostfs_sbops = { 
-+      .alloc_inode    = hostfs_alloc_inode,
-+      .destroy_inode  = hostfs_destroy_inode,
-+      .read_inode     = hostfs_read_inode,
-+      .statfs         = hostfs_statfs,
-+};
++EXPORT_SYMBOL(strstr);
 +
-+int hostfs_readdir(struct file *file, void *ent, filldir_t filldir)
-+{
-+      void *dir;
-+      char *name;
-+      unsigned long long next, ino;
-+      int error, len;
++/* Here, instead, I can provide a fake prototype. Yes, someone cares: genksyms.
++ * However, the modules will use the CRC defined *here*, no matter if it is 
++ * good; so the versions of these symbols will always match
++ */
++#define EXPORT_SYMBOL_PROTO(sym)       \
++       int sym(void);                  \
++       EXPORT_SYMBOL(sym);
 +
-+      name = dentry_name(file->f_dentry, 0);
-+      if(name == NULL) return(-ENOMEM);
-+      dir = open_dir(name, &error);
-+      kfree(name);
-+      if(dir == NULL) return(-error);
-+      next = file->f_pos;
-+      while((name = read_dir(dir, &next, &ino, &len)) != NULL){
-+              error = (*filldir)(ent, name, len, file->f_pos, 
-+                                 ino, DT_UNKNOWN);
-+              if(error) break;
-+              file->f_pos = next;
-+      }
-+      close_dir(dir);
-+      return(0);
-+}
++EXPORT_SYMBOL_PROTO(__errno_location);
 +
-+int hostfs_file_open(struct inode *ino, struct file *file)
-+{
-+      char *name;
-+      int mode = 0, r = 0, w = 0, fd;
++EXPORT_SYMBOL_PROTO(access);
++EXPORT_SYMBOL_PROTO(open);
++EXPORT_SYMBOL_PROTO(open64);
++EXPORT_SYMBOL_PROTO(close);
++EXPORT_SYMBOL_PROTO(read);
++EXPORT_SYMBOL_PROTO(write);
++EXPORT_SYMBOL_PROTO(dup2);
++EXPORT_SYMBOL_PROTO(__xstat);
++EXPORT_SYMBOL_PROTO(__lxstat);
++EXPORT_SYMBOL_PROTO(__lxstat64);
++EXPORT_SYMBOL_PROTO(lseek);
++EXPORT_SYMBOL_PROTO(lseek64);
++EXPORT_SYMBOL_PROTO(chown);
++EXPORT_SYMBOL_PROTO(truncate);
++EXPORT_SYMBOL_PROTO(utime);
++EXPORT_SYMBOL_PROTO(chmod);
++EXPORT_SYMBOL_PROTO(rename);
++EXPORT_SYMBOL_PROTO(__xmknod);
 +
-+      mode = file->f_mode & (FMODE_READ | FMODE_WRITE);
-+      if((mode & HOSTFS_I(ino)->mode) == mode)
-+              return(0);
++EXPORT_SYMBOL_PROTO(symlink);
++EXPORT_SYMBOL_PROTO(link);
++EXPORT_SYMBOL_PROTO(unlink);
++EXPORT_SYMBOL_PROTO(readlink);
 +
-+      /* The file may already have been opened, but with the wrong access,
-+       * so this resets things and reopens the file with the new access.
-+       */
-+      if(HOSTFS_I(ino)->fd != -1){
-+              close_file(&HOSTFS_I(ino)->fd);
-+              HOSTFS_I(ino)->fd = -1;
-+      }
++EXPORT_SYMBOL_PROTO(mkdir);
++EXPORT_SYMBOL_PROTO(rmdir);
++EXPORT_SYMBOL_PROTO(opendir);
++EXPORT_SYMBOL_PROTO(readdir);
++EXPORT_SYMBOL_PROTO(closedir);
++EXPORT_SYMBOL_PROTO(seekdir);
++EXPORT_SYMBOL_PROTO(telldir);
 +
-+      HOSTFS_I(ino)->mode |= mode;
-+      if(HOSTFS_I(ino)->mode & FMODE_READ) 
-+              r = 1;
-+      if(HOSTFS_I(ino)->mode & FMODE_WRITE) 
-+              w = 1;
-+      if(w) 
-+              r = 1;
++EXPORT_SYMBOL_PROTO(ioctl);
 +
-+      name = dentry_name(file->f_dentry, 0);
-+      if(name == NULL) 
-+              return(-ENOMEM);
++EXPORT_SYMBOL_PROTO(pread64);
++EXPORT_SYMBOL_PROTO(pwrite64);
 +
-+      fd = open_file(name, r, w, append);
-+      kfree(name);
-+      if(fd < 0) return(fd);
-+      FILE_HOSTFS_I(file)->fd = fd;
++EXPORT_SYMBOL_PROTO(statfs);
++EXPORT_SYMBOL_PROTO(statfs64);
 +
-+      return(0);
-+}
++EXPORT_SYMBOL_PROTO(getuid);
 +
-+int hostfs_fsync(struct file *file, struct dentry *dentry, int datasync)
-+{
-+      return(0);
-+}
++/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
+Index: uml-2.6.7/arch/um/include/irq_kern.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/include/irq_kern.h  2004-07-16 19:47:23.612221608 +0300
++++ uml-2.6.7/arch/um/include/irq_kern.h       2004-07-16 19:47:23.701208080 +0300
+@@ -0,0 +1,28 @@
++/* 
++ * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
++ * Licensed under the GPL
++ */
 +
-+static struct file_operations hostfs_file_fops = {
-+      .llseek         = generic_file_llseek,
-+      .read           = generic_file_read,
-+      .write          = generic_file_write,
-+      .mmap           = generic_file_mmap,
-+      .open           = hostfs_file_open,
-+      .release        = NULL,
-+      .fsync          = hostfs_fsync,
-+};
++#ifndef __IRQ_KERN_H__
++#define __IRQ_KERN_H__
 +
-+static struct file_operations hostfs_dir_fops = {
-+      .readdir        = hostfs_readdir,
-+      .read           = generic_read_dir,
-+};
++#include "linux/interrupt.h"
 +
-+int hostfs_writepage(struct page *page, struct writeback_control *wbc)
-+{
-+      struct address_space *mapping = page->mapping;
-+      struct inode *inode = mapping->host;
-+      char *buffer;
-+      unsigned long long base;
-+      int count = PAGE_CACHE_SIZE;
-+      int end_index = inode->i_size >> PAGE_CACHE_SHIFT;
-+      int err;
++extern int um_request_irq(unsigned int irq, int fd, int type,
++                        irqreturn_t (*handler)(int, void *, 
++                                               struct pt_regs *),
++                        unsigned long irqflags,  const char * devname,
++                        void *dev_id);
 +
-+      if (page->index >= end_index)
-+              count = inode->i_size & (PAGE_CACHE_SIZE-1);
++#endif
 +
-+      buffer = kmap(page);
-+      base = ((unsigned long long) page->index) << PAGE_CACHE_SHIFT;
++/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
+Index: uml-2.6.7/fs/hppfs/hppfs_kern.c
+===================================================================
+--- uml-2.6.7.orig/fs/hppfs/hppfs_kern.c       2004-07-16 19:47:23.632218568 +0300
++++ uml-2.6.7/fs/hppfs/hppfs_kern.c    2004-07-16 19:47:23.785195312 +0300
+@@ -0,0 +1,811 @@
++/* 
++ * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
++ * Licensed under the GPL
++ */
 +
-+      err = write_file(HOSTFS_I(inode)->fd, &base, buffer, count);
-+      if(err != count){
-+              ClearPageUptodate(page);
-+              goto out;
-+      }
++#include <linux/fs.h>
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/slab.h>
++#include <linux/list.h>
++#include <linux/kernel.h>
++#include <linux/ctype.h>
++#include <linux/dcache.h>
++#include <linux/statfs.h>
++#include <asm/uaccess.h>
++#include <asm/fcntl.h>
++#include "os.h"
 +
-+      if (base > inode->i_size)
-+              inode->i_size = base;
++static int init_inode(struct inode *inode, struct dentry *dentry);
 +
-+      if (PageError(page))
-+              ClearPageError(page);   
-+      err = 0;
++struct hppfs_data {
++      struct list_head list;
++      char contents[PAGE_SIZE - sizeof(struct list_head)];
++};
 +
-+ out: 
-+      kunmap(page);
++struct hppfs_private {
++      struct file proc_file;
++      int host_fd;
++      loff_t len;
++      struct hppfs_data *contents;
++};
 +
-+      unlock_page(page);
-+      return err; 
-+}
++struct hppfs_inode_info {
++        struct dentry *proc_dentry;
++      struct inode vfs_inode;
++};
 +
-+int hostfs_readpage(struct file *file, struct page *page)
++static inline struct hppfs_inode_info *HPPFS_I(struct inode *inode)
 +{
-+      char *buffer;
-+      long long start;
-+      int err = 0;
-+
-+      start = (long long) page->index << PAGE_CACHE_SHIFT;
-+      buffer = kmap(page);
-+      err = read_file(FILE_HOSTFS_I(file)->fd, &start, buffer,
-+                      PAGE_CACHE_SIZE);
-+      if(err < 0) goto out;
++      return(list_entry(inode, struct hppfs_inode_info, vfs_inode));
++}
 +
-+      memset(&buffer[err], 0, PAGE_CACHE_SIZE - err);
++#define HPPFS_SUPER_MAGIC 0xb00000ee
 +
-+      flush_dcache_page(page);
-+      SetPageUptodate(page);
-+      if (PageError(page)) ClearPageError(page);
-+      err = 0;
-+ out:
-+      kunmap(page);
-+      unlock_page(page);
-+      return(err);
-+}
++static struct super_operations hppfs_sbops;
 +
-+int hostfs_prepare_write(struct file *file, struct page *page, 
-+                       unsigned int from, unsigned int to)
++static int is_pid(struct dentry *dentry)
 +{
-+      char *buffer;
-+      long long start, tmp;
-+      int err;
++      struct super_block *sb;
++      int i;
 +
-+      start = (long long) page->index << PAGE_CACHE_SHIFT;
-+      buffer = kmap(page);
-+      if(from != 0){
-+              tmp = start;
-+              err = read_file(FILE_HOSTFS_I(file)->fd, &tmp, buffer,
-+                              from);
-+              if(err < 0) goto out;
-+      }
-+      if(to != PAGE_CACHE_SIZE){
-+              start += to;
-+              err = read_file(FILE_HOSTFS_I(file)->fd, &start, buffer + to,
-+                              PAGE_CACHE_SIZE - to);
-+              if(err < 0) goto out;           
++      sb = dentry->d_sb;
++      if((sb->s_op != &hppfs_sbops) || (dentry->d_parent != sb->s_root))
++              return(0);
++
++      for(i = 0; i < dentry->d_name.len; i++){
++              if(!isdigit(dentry->d_name.name[i]))
++                      return(0);
 +      }
-+      err = 0;
-+ out:
-+      kunmap(page);
-+      return(err);
++      return(1);
 +}
 +
-+int hostfs_commit_write(struct file *file, struct page *page, unsigned from,
-+               unsigned to)
++static char *dentry_name(struct dentry *dentry, int extra)
 +{
-+      struct address_space *mapping = page->mapping;
-+      struct inode *inode = mapping->host;
-+      char *buffer;
-+      long long start;
-+      int err = 0;
++      struct dentry *parent;
++      char *root, *name;
++      const char *seg_name;
++      int len, seg_len;
 +
-+      start = (long long) (page->index << PAGE_CACHE_SHIFT) + from;
-+      buffer = kmap(page);
-+      err = write_file(FILE_HOSTFS_I(file)->fd, &start, buffer + from, 
-+                       to - from);
-+      if(err > 0) err = 0;
-+      if(!err && (start > inode->i_size))
-+              inode->i_size = start;
++      len = 0;
++      parent = dentry;
++      while(parent->d_parent != parent){
++              if(is_pid(parent))
++                      len += strlen("pid") + 1;
++              else len += parent->d_name.len + 1;
++              parent = parent->d_parent;
++      }
++      
++      root = "proc";
++      len += strlen(root);
++      name = kmalloc(len + extra + 1, GFP_KERNEL);
++      if(name == NULL) return(NULL);
 +
-+      kunmap(page);
-+      return(err);
++      name[len] = '\0';
++      parent = dentry;
++      while(parent->d_parent != parent){
++              if(is_pid(parent)){
++                      seg_name = "pid";
++                      seg_len = strlen("pid");
++              }
++              else {
++                      seg_name = parent->d_name.name;
++                      seg_len = parent->d_name.len;
++              }
++
++              len -= seg_len + 1;
++              name[len] = '/';
++              strncpy(&name[len + 1], seg_name, seg_len);
++              parent = parent->d_parent;
++      }
++      strncpy(name, root, strlen(root));
++      return(name);
 +}
 +
-+static struct address_space_operations hostfs_aops = {
-+      .writepage      = hostfs_writepage,
-+      .readpage       = hostfs_readpage,
-+/*    .set_page_dirty = __set_page_dirty_nobuffers, */
-+      .prepare_write  = hostfs_prepare_write,
-+      .commit_write   = hostfs_commit_write
++struct dentry_operations hppfs_dentry_ops = {
 +};
 +
-+static int init_inode(struct inode *inode, struct dentry *dentry)
++static int file_removed(struct dentry *dentry, const char *file)
 +{
-+      char *name;
-+      int type, err = -ENOMEM, rdev;
-+
-+      if(dentry){
-+              name = dentry_name(dentry, 0);
-+              if(name == NULL)
-+                      goto out;
-+              type = file_type(name, &rdev);
-+              kfree(name);
-+      }
-+      else type = OS_TYPE_DIR;
++      char *host_file;
++      int extra, fd;
 +
-+      err = 0;
-+      if(type == OS_TYPE_SYMLINK)
-+              inode->i_op = &page_symlink_inode_operations;
-+      else if(type == OS_TYPE_DIR)
-+              inode->i_op = &hostfs_dir_iops;
-+      else inode->i_op = &hostfs_iops;
++      extra = 0;
++      if(file != NULL) extra += strlen(file) + 1;
 +
-+      if(type == OS_TYPE_DIR) inode->i_fop = &hostfs_dir_fops;
-+      else inode->i_fop = &hostfs_file_fops;
++      host_file = dentry_name(dentry, extra + strlen("/remove"));
++      if(host_file == NULL){
++              printk("file_removed : allocation failed\n");
++              return(-ENOMEM);
++      }
 +
-+      if(type == OS_TYPE_SYMLINK) 
-+              inode->i_mapping->a_ops = &hostfs_link_aops;
-+      else inode->i_mapping->a_ops = &hostfs_aops;
++      if(file != NULL){
++              strcat(host_file, "/");
++              strcat(host_file, file);
++      }
++      strcat(host_file, "/remove");
 +
-+      switch (type) {
-+      case OS_TYPE_CHARDEV:
-+              init_special_inode(inode, S_IFCHR, rdev);
-+              break;
-+      case OS_TYPE_BLOCKDEV:
-+              init_special_inode(inode, S_IFBLK, rdev);
-+              break;
-+      case OS_TYPE_FIFO:
-+              init_special_inode(inode, S_IFIFO, 0);
-+              break;
-+      case OS_TYPE_SOCK:
-+              init_special_inode(inode, S_IFSOCK, 0);
-+              break;
++      fd = os_open_file(host_file, of_read(OPENFLAGS()), 0);
++      kfree(host_file);
++      if(fd > 0){
++              os_close_file(fd);
++              return(1);
 +      }
-+ out:
-+      return(err);
++      return(0);
 +}
 +
-+int hostfs_create(struct inode *dir, struct dentry *dentry, int mode, 
-+                 struct nameidata *nd)
++static void hppfs_read_inode(struct inode *ino)
 +{
-+      struct inode *inode;
-+      char *name;
-+      int error, fd;
-+
-+      error = -ENOMEM;
-+      inode = iget(dir->i_sb, 0);
-+      if(inode == NULL) goto out;
-+
-+      error = init_inode(inode, dentry);
-+      if(error) 
-+              goto out_put;
-+      
-+      error = -ENOMEM;
-+      name = dentry_name(dentry, 0);
-+      if(name == NULL)
-+              goto out_put;
-+
-+      fd = file_create(name, 
-+                       mode & S_IRUSR, mode & S_IWUSR, mode & S_IXUSR, 
-+                       mode & S_IRGRP, mode & S_IWGRP, mode & S_IXGRP, 
-+                       mode & S_IROTH, mode & S_IWOTH, mode & S_IXOTH);
-+      if(fd < 0) 
-+              error = fd;
-+      else error = read_name(inode, name);
-+
-+      kfree(name);
-+      if(error)
-+              goto out_put;
++      struct inode *proc_ino;
 +
-+      HOSTFS_I(inode)->fd = fd;
-+      HOSTFS_I(inode)->mode = FMODE_READ | FMODE_WRITE;
-+      d_instantiate(dentry, inode);
-+      return(0);
++      if(HPPFS_I(ino)->proc_dentry == NULL)
++              return;
 +
-+ out_put:
-+      iput(inode);
-+ out:
-+      return(error);
++      proc_ino = HPPFS_I(ino)->proc_dentry->d_inode;
++      ino->i_uid = proc_ino->i_uid;
++      ino->i_gid = proc_ino->i_gid;
++      ino->i_atime = proc_ino->i_atime;
++      ino->i_mtime = proc_ino->i_mtime;
++      ino->i_ctime = proc_ino->i_ctime;
++      ino->i_ino = proc_ino->i_ino;
++      ino->i_mode = proc_ino->i_mode;
++      ino->i_nlink = proc_ino->i_nlink;
++      ino->i_size = proc_ino->i_size;
++      ino->i_blksize = proc_ino->i_blksize;
++      ino->i_blocks = proc_ino->i_blocks;
 +}
 +
-+struct dentry *hostfs_lookup(struct inode *ino, struct dentry *dentry, 
-+                            struct nameidata *nd)
++static struct dentry *hppfs_lookup(struct inode *ino, struct dentry *dentry, 
++                                  struct nameidata *nd)
 +{
++      struct dentry *proc_dentry, *new, *parent;
 +      struct inode *inode;
-+      char *name;
-+      int err;
++      int err, deleted;
 +
-+      err = -ENOMEM;
-+      inode = iget(ino->i_sb, 0);
-+      if(inode == NULL) 
-+              goto out;
-+ 
-+      err = init_inode(inode, dentry);
-+      if(err) 
-+              goto out_put;
++      deleted = file_removed(dentry, NULL);
++      if(deleted < 0)
++              return(ERR_PTR(deleted));
++      else if(deleted)
++              return(ERR_PTR(-ENOENT));
 +
 +      err = -ENOMEM;
-+      name = dentry_name(dentry, 0);
-+      if(name == NULL)
-+              goto out_put;
-+
-+      err = read_name(inode, name);
-+      kfree(name);
-+      if(err == -ENOENT){
-+              iput(inode);
-+              inode = NULL;
++      parent = HPPFS_I(ino)->proc_dentry;
++      down(&parent->d_inode->i_sem);
++      proc_dentry = d_lookup(parent, &dentry->d_name);
++      if(proc_dentry == NULL){
++              proc_dentry = d_alloc(parent, &dentry->d_name);
++              if(proc_dentry == NULL){
++                      up(&parent->d_inode->i_sem);
++                      goto out;
++              }
++              new = (*parent->d_inode->i_op->lookup)(parent->d_inode, 
++                                                     proc_dentry, NULL);
++              if(new){
++                      dput(proc_dentry);
++                      proc_dentry = new;
++              }
 +      }
-+      else if(err)
++      up(&parent->d_inode->i_sem);
++
++      if(IS_ERR(proc_dentry))
++              return(proc_dentry);
++
++      inode = iget(ino->i_sb, 0);
++      if(inode == NULL) 
++              goto out_dput;
++
++      err = init_inode(inode, proc_dentry);
++      if(err) 
 +              goto out_put;
++      
++      hppfs_read_inode(inode);
 +
-+      d_add(dentry, inode);
-+      dentry->d_op = &hostfs_dentry_ops;
++      d_add(dentry, inode);
++      dentry->d_op = &hppfs_dentry_ops;
 +      return(NULL);
 +
 + out_put:
 +      iput(inode);
++ out_dput:
++      dput(proc_dentry);
 + out:
 +      return(ERR_PTR(err));
 +}
 +
-+static char *inode_dentry_name(struct inode *ino, struct dentry *dentry)
++static struct inode_operations hppfs_file_iops = {
++};
++
++static ssize_t read_proc(struct file *file, char *buf, ssize_t count, 
++                       loff_t *ppos, int is_user)
 +{
-+        char *file;
-+      int len;
++      ssize_t (*read)(struct file *, char *, size_t, loff_t *);
++      ssize_t n;
 +
-+      file = inode_name(ino, dentry->d_name.len + 1);
-+      if(file == NULL) return(NULL);
-+        strcat(file, "/");
-+      len = strlen(file);
-+        strncat(file, dentry->d_name.name, dentry->d_name.len);
-+      file[len + dentry->d_name.len] = '\0';
-+        return(file);
++      read = file->f_dentry->d_inode->i_fop->read;
++
++      if(!is_user)
++              set_fs(KERNEL_DS);
++              
++      n = (*read)(file, buf, count, &file->f_pos);
++
++      if(!is_user)
++              set_fs(USER_DS);
++
++      if(ppos) *ppos = file->f_pos;
++      return(n);
 +}
 +
-+int hostfs_link(struct dentry *to, struct inode *ino, struct dentry *from)
++static ssize_t hppfs_read_file(int fd, char *buf, ssize_t count)
 +{
-+        char *from_name, *to_name;
-+        int err;
++      ssize_t n;
++      int cur, err;
++      char *new_buf;
 +
-+        if((from_name = inode_dentry_name(ino, from)) == NULL) 
-+                return(-ENOMEM);
-+        to_name = dentry_name(to, 0);
-+      if(to_name == NULL){
-+              kfree(from_name);
-+              return(-ENOMEM);
++      n = -ENOMEM;
++      new_buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
++      if(new_buf == NULL){
++              printk("hppfs_read_file : kmalloc failed\n");
++              goto out;
 +      }
-+        err = link_file(to_name, from_name);
-+        kfree(from_name);
-+        kfree(to_name);
-+        return(err);
++      n = 0;
++      while(count > 0){
++              cur = min_t(ssize_t, count, PAGE_SIZE);
++              err = os_read_file(fd, new_buf, cur);
++              if(err < 0){
++                      printk("hppfs_read : read failed, errno = %d\n",
++                             count);
++                      n = err;
++                      goto out_free;
++              }
++              else if(err == 0)
++                      break;
++
++              if(copy_to_user(buf, new_buf, err)){
++                      n = -EFAULT;
++                      goto out_free;
++              }
++              n += err;
++              count -= err;
++      }
++ out_free:
++      kfree(new_buf);
++ out:
++      return(n);
 +}
 +
-+int hostfs_unlink(struct inode *ino, struct dentry *dentry)
++static ssize_t hppfs_read(struct file *file, char *buf, size_t count, 
++                        loff_t *ppos)
 +{
-+      char *file;
++      struct hppfs_private *hppfs = file->private_data;
++      struct hppfs_data *data;
++      loff_t off;
 +      int err;
 +
-+      if((file = inode_dentry_name(ino, dentry)) == NULL) return(-ENOMEM);
-+      if(append)
-+              return(-EPERM);
++      if(hppfs->contents != NULL){
++              if(*ppos >= hppfs->len) return(0);
 +
-+      err = unlink_file(file);
-+      kfree(file);
-+      return(err);
-+}
++              data = hppfs->contents;
++              off = *ppos;
++              while(off >= sizeof(data->contents)){
++                      data = list_entry(data->list.next, struct hppfs_data,
++                                        list);
++                      off -= sizeof(data->contents);
++              }
 +
-+int hostfs_symlink(struct inode *ino, struct dentry *dentry, const char *to)
-+{
-+      char *file;
-+      int err;
++              if(off + count > hppfs->len)
++                      count = hppfs->len - off;
++              copy_to_user(buf, &data->contents[off], count);
++              *ppos += count;
++      }
++      else if(hppfs->host_fd != -1){
++              err = os_seek_file(hppfs->host_fd, *ppos);
++              if(err){
++                      printk("hppfs_read : seek failed, errno = %d\n", err);
++                      return(err);
++              }
++              count = hppfs_read_file(hppfs->host_fd, buf, count);
++              if(count > 0)
++                      *ppos += count;
++      }
++      else count = read_proc(&hppfs->proc_file, buf, count, ppos, 1);
 +
-+      if((file = inode_dentry_name(ino, dentry)) == NULL) return(-ENOMEM);
-+      err = make_symlink(file, to);
-+      kfree(file);
-+      return(err);
++      return(count);
 +}
 +
-+int hostfs_mkdir(struct inode *ino, struct dentry *dentry, int mode)
++static ssize_t hppfs_write(struct file *file, const char *buf, size_t len, 
++                         loff_t *ppos)
 +{
-+      char *file;
++      struct hppfs_private *data = file->private_data;
++      struct file *proc_file = &data->proc_file;
++      ssize_t (*write)(struct file *, const char *, size_t, loff_t *);
 +      int err;
 +
-+      if((file = inode_dentry_name(ino, dentry)) == NULL) return(-ENOMEM);
-+      err = do_mkdir(file, mode);
-+      kfree(file);
++      write = proc_file->f_dentry->d_inode->i_fop->write;
++
++      proc_file->f_pos = file->f_pos;
++      err = (*write)(proc_file, buf, len, &proc_file->f_pos);
++      file->f_pos = proc_file->f_pos;
++
 +      return(err);
 +}
 +
-+int hostfs_rmdir(struct inode *ino, struct dentry *dentry)
++static int open_host_sock(char *host_file, int *filter_out)
 +{
-+      char *file;
-+      int err;
++      char *end;
++      int fd;
 +
-+      if((file = inode_dentry_name(ino, dentry)) == NULL) return(-ENOMEM);
-+      err = do_rmdir(file);
-+      kfree(file);
-+      return(err);
++      end = &host_file[strlen(host_file)];
++      strcpy(end, "/rw");
++      *filter_out = 1;
++      fd = os_connect_socket(host_file);
++      if(fd > 0)
++              return(fd);
++
++      strcpy(end, "/r");
++      *filter_out = 0;
++      fd = os_connect_socket(host_file);
++      return(fd);
 +}
 +
-+int hostfs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev)
++static void free_contents(struct hppfs_data *head)
 +{
-+      struct inode *inode;
-+      char *name;
-+      int err = -ENOMEM;
-+ 
-+      inode = iget(dir->i_sb, 0);
-+      if(inode == NULL) 
-+              goto out;
++      struct hppfs_data *data;
++      struct list_head *ele, *next;
 +
-+      err = init_inode(inode, dentry);
-+      if(err) 
-+              goto out_put;
++      if(head == NULL) return;
 +
-+      err = -ENOMEM;
-+      name = dentry_name(dentry, 0);
-+      if(name == NULL)
-+              goto out_put;
++      list_for_each_safe(ele, next, &head->list){
++              data = list_entry(ele, struct hppfs_data, list);
++              kfree(data);
++      }
++      kfree(head);
++}
 +
-+      init_special_inode(inode, mode, dev);
-+      err = do_mknod(name, mode, dev);
-+      if(err)
-+              goto out_free;
++static struct hppfs_data *hppfs_get_data(int fd, int filter, 
++                                       struct file *proc_file, 
++                                       struct file *hppfs_file, 
++                                       loff_t *size_out)
++{
++      struct hppfs_data *data, *new, *head;
++      int n, err;
 +
-+      err = read_name(inode, name);
-+      kfree(name);
-+      if(err)
-+              goto out_put;
++      err = -ENOMEM;
++      data = kmalloc(sizeof(*data), GFP_KERNEL);
++      if(data == NULL){
++              printk("hppfs_get_data : head allocation failed\n");
++              goto failed;
++      }
 +
-+      d_instantiate(dentry, inode);
-+      return(0);
++      INIT_LIST_HEAD(&data->list);
 +
-+ out_free:
-+      kfree(name);
-+ out_put:
-+      iput(inode);
-+ out:
-+      return(err);
-+}
++      head = data;
++      *size_out = 0;
 +
-+int hostfs_rename(struct inode *from_ino, struct dentry *from,
-+                struct inode *to_ino, struct dentry *to)
-+{
-+      char *from_name, *to_name;
-+      int err;
++      if(filter){
++              while((n = read_proc(proc_file, data->contents,
++                                   sizeof(data->contents), NULL, 0)) > 0)
++                      os_write_file(fd, data->contents, n);
++              err = os_shutdown_socket(fd, 0, 1);
++              if(err){
++                      printk("hppfs_get_data : failed to shut down "
++                             "socket\n");
++                      goto failed_free;
++              }
++      }
++      while(1){
++              n = os_read_file(fd, data->contents, sizeof(data->contents));
++              if(n < 0){
++                      err = n;
++                      printk("hppfs_get_data : read failed, errno = %d\n",
++                             err);
++                      goto failed_free;
++              }
++              else if(n == 0)
++                      break;
 +
-+      if((from_name = inode_dentry_name(from_ino, from)) == NULL)
-+              return(-ENOMEM);
-+      if((to_name = inode_dentry_name(to_ino, to)) == NULL){
-+              kfree(from_name);
-+              return(-ENOMEM);
-+      }
-+      err = rename_file(from_name, to_name);
-+      kfree(from_name);
-+      kfree(to_name);
-+      return(err);
-+}
++              *size_out += n;
 +
-+void hostfs_truncate(struct inode *ino)
-+{
-+      not_implemented();
-+}
++              if(n < sizeof(data->contents))
++                      break;
 +
-+int hostfs_permission(struct inode *ino, int desired, struct nameidata *nd)
-+{
-+      char *name;
-+      int r = 0, w = 0, x = 0, err;
++              new = kmalloc(sizeof(*data), GFP_KERNEL);
++              if(new == 0){
++                      printk("hppfs_get_data : data allocation failed\n");
++                      err = -ENOMEM;
++                      goto failed_free;
++              }
++      
++              INIT_LIST_HEAD(&new->list);
++              list_add(&new->list, &data->list);
++              data = new;
++      }
++      return(head);
 +
-+      if(desired & MAY_READ) r = 1;
-+      if(desired & MAY_WRITE) w = 1;
-+      if(desired & MAY_EXEC) x = 1;
-+      name = inode_name(ino, 0);
-+      if(name == NULL) return(-ENOMEM);
-+      err = access_file(name, r, w, x);
-+      kfree(name);
-+      if(!err) err = vfs_permission(ino, desired);
-+      return(err);
++ failed_free:
++      free_contents(head);
++ failed:              
++      return(ERR_PTR(err));
 +}
 +
-+int hostfs_setattr(struct dentry *dentry, struct iattr *attr)
++static struct hppfs_private *hppfs_data(void)
 +{
-+      struct hostfs_iattr attrs;
-+      char *name;
-+      int err;
-+      
-+      if(append) 
-+              attr->ia_valid &= ~ATTR_SIZE;
++      struct hppfs_private *data;
 +
-+      attrs.ia_valid = 0;
-+      if(attr->ia_valid & ATTR_MODE){
-+              attrs.ia_valid |= HOSTFS_ATTR_MODE;
-+              attrs.ia_mode = attr->ia_mode;
-+      }
-+      if(attr->ia_valid & ATTR_UID){
-+              if((dentry->d_inode->i_sb->s_dev == ROOT_DEV) && 
-+                 (attr->ia_uid == 0))
-+                      attr->ia_uid = getuid();
-+              attrs.ia_valid |= HOSTFS_ATTR_UID;
-+              attrs.ia_uid = attr->ia_uid;
-+      }
-+      if(attr->ia_valid & ATTR_GID){
-+              if((dentry->d_inode->i_sb->s_dev == ROOT_DEV) && 
-+                 (attr->ia_gid == 0))
-+                      attr->ia_gid = getuid();
-+              attrs.ia_valid |= HOSTFS_ATTR_GID;
-+              attrs.ia_gid = attr->ia_gid;
-+      }
-+      if(attr->ia_valid & ATTR_SIZE){
-+              attrs.ia_valid |= HOSTFS_ATTR_SIZE;
-+              attrs.ia_size = attr->ia_size;
-+      }
-+      if(attr->ia_valid & ATTR_ATIME){
-+              attrs.ia_valid |= HOSTFS_ATTR_ATIME;
-+              attrs.ia_atime = attr->ia_atime;
-+      }
-+      if(attr->ia_valid & ATTR_MTIME){
-+              attrs.ia_valid |= HOSTFS_ATTR_MTIME;
-+              attrs.ia_mtime = attr->ia_mtime;
-+      }
-+      if(attr->ia_valid & ATTR_CTIME){
-+              attrs.ia_valid |= HOSTFS_ATTR_CTIME;
-+              attrs.ia_ctime = attr->ia_ctime;
-+      }
-+      if(attr->ia_valid & ATTR_ATIME_SET){
-+              attrs.ia_valid |= HOSTFS_ATTR_ATIME_SET;
-+      }
-+      if(attr->ia_valid & ATTR_MTIME_SET){
-+              attrs.ia_valid |= HOSTFS_ATTR_MTIME_SET;
-+      }
-+      name = dentry_name(dentry, 0);
-+      if(name == NULL) return(-ENOMEM);
-+      err = set_attr(name, &attrs);
-+      kfree(name);
-+      if(err)
-+              return(err);
++      data = kmalloc(sizeof(*data), GFP_KERNEL);
++      if(data == NULL)
++              return(data);
 +
-+      return(inode_setattr(dentry->d_inode, attr));
++      *data = ((struct hppfs_private ) { .host_fd             = -1,
++                                         .len                 = -1,
++                                         .contents            = NULL } );
++      return(data);
 +}
 +
-+int hostfs_getattr(struct vfsmount *mnt, struct dentry *dentry, 
-+         struct kstat *stat)
++static int file_mode(int fmode)
 +{
-+      generic_fillattr(dentry->d_inode, stat);
++      if(fmode == (FMODE_READ | FMODE_WRITE))
++              return(O_RDWR);
++      if(fmode == FMODE_READ)
++              return(O_RDONLY);
++      if(fmode == FMODE_WRITE)
++              return(O_WRONLY);
 +      return(0);
 +}
 +
-+static struct inode_operations hostfs_iops = {
-+      .create         = hostfs_create,
-+      .link           = hostfs_link,
-+      .unlink         = hostfs_unlink,
-+      .symlink        = hostfs_symlink,
-+      .mkdir          = hostfs_mkdir,
-+      .rmdir          = hostfs_rmdir,
-+      .mknod          = hostfs_mknod,
-+      .rename         = hostfs_rename,
-+      .truncate       = hostfs_truncate,
-+      .permission     = hostfs_permission,
-+      .setattr        = hostfs_setattr,
-+      .getattr        = hostfs_getattr,
-+};
-+
-+static struct inode_operations hostfs_dir_iops = {
-+      .create         = hostfs_create,
-+      .lookup         = hostfs_lookup,
-+      .link           = hostfs_link,
-+      .unlink         = hostfs_unlink,
-+      .symlink        = hostfs_symlink,
-+      .mkdir          = hostfs_mkdir,
-+      .rmdir          = hostfs_rmdir,
-+      .mknod          = hostfs_mknod,
-+      .rename         = hostfs_rename,
-+      .truncate       = hostfs_truncate,
-+      .permission     = hostfs_permission,
-+      .setattr        = hostfs_setattr,
-+      .getattr        = hostfs_getattr,
-+};
-+
-+int hostfs_link_readpage(struct file *file, struct page *page)
++static int hppfs_open(struct inode *inode, struct file *file)
 +{
-+      char *buffer, *name;
-+      long long start;
-+      int err;
-+
-+      start = page->index << PAGE_CACHE_SHIFT;
-+      buffer = kmap(page);
-+      name = inode_name(page->mapping->host, 0);
-+      if(name == NULL) return(-ENOMEM);
-+      err = do_readlink(name, buffer, PAGE_CACHE_SIZE);
-+      kfree(name);
-+      if(err == PAGE_CACHE_SIZE)
-+              err = -E2BIG;
-+      else if(err > 0){
-+              flush_dcache_page(page);
-+              SetPageUptodate(page);
-+              if (PageError(page)) ClearPageError(page);
-+              err = 0;
-+      }
-+      kunmap(page);
-+      unlock_page(page);
-+      return(err);
-+}
++      struct hppfs_private *data;
++      struct dentry *proc_dentry;
++      char *host_file;
++      int err, fd, type, filter;
 +
-+static struct address_space_operations hostfs_link_aops = {
-+      .readpage       = hostfs_link_readpage,
-+};
++      err = -ENOMEM;
++      data = hppfs_data();
++      if(data == NULL)
++              goto out;
 +
-+static int hostfs_fill_sb_common(struct super_block *sb, void *d, int silent)
-+{
-+      struct inode *root_inode;
-+      char *name, *data = d;
-+      int err;
++      host_file = dentry_name(file->f_dentry, strlen("/rw"));
++      if(host_file == NULL)
++              goto out_free2;
 +
-+      sb->s_blocksize = 1024;
-+      sb->s_blocksize_bits = 10;
-+      sb->s_magic = HOSTFS_SUPER_MAGIC;
-+      sb->s_op = &hostfs_sbops;
++      proc_dentry = HPPFS_I(inode)->proc_dentry;
 +
-+      if((data == NULL) || (*data == '\0')) 
-+              data = root_ino;
++      /* XXX This isn't closed anywhere */
++      err = open_private_file(&data->proc_file, proc_dentry, 
++                              file_mode(file->f_mode));
++      if(err)
++              goto out_free1;
 +
-+      err = -ENOMEM;
-+      name = kmalloc(strlen(data) + 1, GFP_KERNEL);
-+      if(name == NULL) 
-+              goto out;
++      type = os_file_type(host_file);
++      if(type == OS_TYPE_FILE){
++              fd = os_open_file(host_file, of_read(OPENFLAGS()), 0);
++              if(fd >= 0) 
++                      data->host_fd = fd;
++              else printk("hppfs_open : failed to open '%s', errno = %d\n",
++                          host_file, -fd);
 +
-+      strcpy(name, data);
++              data->contents = NULL;
++      }
++      else if(type == OS_TYPE_DIR){
++              fd = open_host_sock(host_file, &filter);
++              if(fd > 0){
++                      data->contents = hppfs_get_data(fd, filter, 
++                                                      &data->proc_file, 
++                                                      file, &data->len);
++                      if(!IS_ERR(data->contents))
++                              data->host_fd = fd;
++              }
++              else printk("hppfs_open : failed to open a socket in "
++                          "'%s', errno = %d\n", host_file, -fd);
++      }
++      kfree(host_file);
 +
-+      root_inode = iget(sb, 0);
-+      if(root_inode == NULL)
-+              goto out_free;
++      file->private_data = data;
++      return(0);
 +
-+      err = init_inode(root_inode, NULL);
-+      if(err)
-+              goto out_put;
++ out_free1:
++      kfree(host_file);
++ out_free2:
++      free_contents(data->contents);
++      kfree(data);
++ out:
++      return(err);
++}
 +
-+      HOSTFS_I(root_inode)->host_filename = name;
++static int hppfs_dir_open(struct inode *inode, struct file *file)
++{
++      struct hppfs_private *data;
++      struct dentry *proc_dentry;
++      int err;
 +
 +      err = -ENOMEM;
-+      sb->s_root = d_alloc_root(root_inode);
-+      if(sb->s_root == NULL)
-+              goto out_put;
++      data = hppfs_data();
++      if(data == NULL)
++              goto out;
 +
-+      err = read_inode(root_inode);
++      proc_dentry = HPPFS_I(inode)->proc_dentry;
++      err = open_private_file(&data->proc_file, proc_dentry, 
++                              file_mode(file->f_mode));
 +      if(err)
-+              goto out_put;
++              goto out_free;
 +
++      file->private_data = data;
 +      return(0);
 +
-+ out_put:
-+      iput(root_inode);
 + out_free:
-+      kfree(name);
++      kfree(data);
 + out:
 +      return(err);
 +}
 +
-+static struct super_block *hostfs_read_sb(struct file_system_type *type,
-+                                           int flags, const char *dev_name,
-+                                           void *data)
++static loff_t hppfs_llseek(struct file *file, loff_t off, int where)
 +{
-+      return(get_sb_nodev(type, flags, data, hostfs_fill_sb_common));
-+}
-+
-+static struct file_system_type hostfs_type = {
-+      .owner          = THIS_MODULE,
-+      .name           = "hostfs",
-+      .get_sb         = hostfs_read_sb,
-+      .kill_sb        = kill_anon_super,
-+      .fs_flags       = 0,
-+};
++      struct hppfs_private *data = file->private_data;
++      struct file *proc_file = &data->proc_file;
++      loff_t (*llseek)(struct file *, loff_t, int);
++      loff_t ret;
 +
-+static int __init init_hostfs(void)
-+{
-+      return(register_filesystem(&hostfs_type));
-+}
++      llseek = proc_file->f_dentry->d_inode->i_fop->llseek;
++      if(llseek != NULL){
++              ret = (*llseek)(proc_file, off, where);
++              if(ret < 0)
++                      return(ret);
++      }
 +
-+static void __exit exit_hostfs(void)
-+{
-+      unregister_filesystem(&hostfs_type);
++      return(default_llseek(file, off, where));
 +}
 +
-+module_init(init_hostfs)
-+module_exit(exit_hostfs)
-+MODULE_LICENSE("GPL");
-+
-+/*
-+ * Overrides for Emacs so that we follow Linus's tabbing style.
-+ * Emacs will notice this stuff at the end of the file and automatically
-+ * adjust the settings for this buffer only.  This must remain at the end
-+ * of the file.
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
-diff -Naur a/fs/hostfs/hostfs_user.c b/fs/hostfs/hostfs_user.c
---- a/fs/hostfs/hostfs_user.c  1969-12-31 19:00:00.000000000 -0500
-+++ b/fs/hostfs/hostfs_user.c  2004-03-10 08:35:31.000000000 -0500
-@@ -0,0 +1,361 @@
-+/* 
-+ * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
-+ * Licensed under the GPL
-+ */
++static struct file_operations hppfs_file_fops = {
++      .owner          = NULL,
++      .llseek         = hppfs_llseek,
++      .read           = hppfs_read,
++      .write          = hppfs_write,
++      .open           = hppfs_open,
++};
 +
-+#include <unistd.h>
-+#include <stdio.h>
-+#include <fcntl.h>
-+#include <dirent.h>
-+#include <errno.h>
-+#include <utime.h>
-+#include <string.h>
-+#include <sys/stat.h>
-+#include <sys/time.h>
-+#include <sys/vfs.h>
-+#include "hostfs.h"
-+#include "kern_util.h"
-+#include "user.h"
++struct hppfs_dirent {
++      void *vfs_dirent;
++      filldir_t filldir;
++      struct dentry *dentry;
++};
 +
-+int stat_file(const char *path, unsigned long long *inode_out, int *mode_out,
-+            int *nlink_out, int *uid_out, int *gid_out, 
-+            unsigned long long *size_out, struct timespec *atime_out,
-+            struct timespec *mtime_out, struct timespec *ctime_out,
-+            int *blksize_out, unsigned long long *blocks_out)
++static int hppfs_filldir(void *d, const char *name, int size, 
++                       loff_t offset, ino_t inode, unsigned int type)
 +{
-+      struct stat64 buf;
++      struct hppfs_dirent *dirent = d;
 +
-+      if(lstat64(path, &buf) < 0) 
-+              return(-errno);
++      if(file_removed(dirent->dentry, name))
++              return(0);
 +
-+      /* See the Makefile for why STAT64_INO_FIELD is passed in
-+       * by the build
-+       */
-+      if(inode_out != NULL) *inode_out = buf.STAT64_INO_FIELD;
-+      if(mode_out != NULL) *mode_out = buf.st_mode;
-+      if(nlink_out != NULL) *nlink_out = buf.st_nlink;
-+      if(uid_out != NULL) *uid_out = buf.st_uid;
-+      if(gid_out != NULL) *gid_out = buf.st_gid;
-+      if(size_out != NULL) *size_out = buf.st_size;
-+      if(atime_out != NULL) {
-+              atime_out->tv_sec = buf.st_atime;
-+              atime_out->tv_nsec = 0;
-+      }
-+      if(mtime_out != NULL) {
-+              mtime_out->tv_sec = buf.st_mtime;
-+              mtime_out->tv_nsec = 0;
-+      }
-+      if(ctime_out != NULL) {
-+              ctime_out->tv_sec = buf.st_ctime;
-+              ctime_out->tv_nsec = 0;
-+      }
-+      if(blksize_out != NULL) *blksize_out = buf.st_blksize;
-+      if(blocks_out != NULL) *blocks_out = buf.st_blocks;
-+      return(0);
++      return((*dirent->filldir)(dirent->vfs_dirent, name, size, offset, 
++                                inode, type));
 +}
 +
-+int file_type(const char *path, int *rdev)
++static int hppfs_readdir(struct file *file, void *ent, filldir_t filldir)
 +{
-+      struct stat64 buf;
++      struct hppfs_private *data = file->private_data;
++      struct file *proc_file = &data->proc_file;
++      int (*readdir)(struct file *, void *, filldir_t);
++      struct hppfs_dirent dirent = ((struct hppfs_dirent)
++                                    { .vfs_dirent     = ent,
++                                      .filldir        = filldir,
++                                      .dentry         = file->f_dentry } );
++      int err;
 +
-+      if(lstat64(path, &buf) < 0) 
-+              return(-errno);
-+      if(rdev != NULL) 
-+              *rdev = buf.st_rdev;
++      readdir = proc_file->f_dentry->d_inode->i_fop->readdir;
 +
-+      if(S_ISDIR(buf.st_mode)) return(OS_TYPE_DIR);
-+      else if(S_ISLNK(buf.st_mode)) return(OS_TYPE_SYMLINK);
-+      else if(S_ISCHR(buf.st_mode)) return(OS_TYPE_CHARDEV);
-+      else if(S_ISBLK(buf.st_mode)) return(OS_TYPE_BLOCKDEV);
-+      else if(S_ISFIFO(buf.st_mode))return(OS_TYPE_FIFO);
-+      else if(S_ISSOCK(buf.st_mode))return(OS_TYPE_SOCK);
-+      else return(OS_TYPE_FILE);
++      proc_file->f_pos = file->f_pos;
++      err = (*readdir)(proc_file, &dirent, hppfs_filldir);
++      file->f_pos = proc_file->f_pos;
++
++      return(err);
 +}
 +
-+int access_file(char *path, int r, int w, int x)
++static int hppfs_fsync(struct file *file, struct dentry *dentry, int datasync)
 +{
-+      int mode = 0;
++      return(0);
++}
 +
-+      if(r) mode = R_OK;
-+      if(w) mode |= W_OK;
-+      if(x) mode |= X_OK;
-+      if(access(path, mode) != 0) return(-errno);
-+      else return(0);
++static struct file_operations hppfs_dir_fops = {
++      .owner          = NULL,
++      .readdir        = hppfs_readdir,
++      .open           = hppfs_dir_open,
++      .fsync          = hppfs_fsync,
++};
++
++static int hppfs_statfs(struct super_block *sb, struct kstatfs *sf)
++{
++      sf->f_blocks = 0;
++      sf->f_bfree = 0;
++      sf->f_bavail = 0;
++      sf->f_files = 0;
++      sf->f_ffree = 0;
++      sf->f_type = HPPFS_SUPER_MAGIC;
++      return(0);
 +}
 +
-+int open_file(char *path, int r, int w, int append)
++static struct inode *hppfs_alloc_inode(struct super_block *sb)
 +{
-+      int mode = 0, fd;
++      struct hppfs_inode_info *hi;
 +
-+      if(r && !w) 
-+              mode = O_RDONLY;
-+      else if(!r && w) 
-+              mode = O_WRONLY;
-+      else if(r && w) 
-+              mode = O_RDWR;
-+      else panic("Impossible mode in open_file");
++      hi = kmalloc(sizeof(*hi), GFP_KERNEL);
++      if(hi == NULL) 
++              return(NULL);
 +
-+      if(append)
-+              mode |= O_APPEND;
-+      fd = open64(path, mode);
-+      if(fd < 0) return(-errno);
-+      else return(fd);
++      *hi = ((struct hppfs_inode_info) { .proc_dentry = NULL });
++      inode_init_once(&hi->vfs_inode);
++      return(&hi->vfs_inode);
 +}
 +
-+void *open_dir(char *path, int *err_out)
++void hppfs_delete_inode(struct inode *ino)
 +{
-+      DIR *dir;
-+
-+      dir = opendir(path);
-+      *err_out = errno;
-+      if(dir == NULL) return(NULL);
-+      return(dir);
++      clear_inode(ino);
 +}
 +
-+char *read_dir(void *stream, unsigned long long *pos, 
-+             unsigned long long *ino_out, int *len_out)
++static void hppfs_destroy_inode(struct inode *inode)
 +{
-+      DIR *dir = stream;
-+      struct dirent *ent;
-+
-+      seekdir(dir, *pos);
-+      ent = readdir(dir);
-+      if(ent == NULL) return(NULL);
-+      *len_out = strlen(ent->d_name);
-+      *ino_out = ent->d_ino;
-+      *pos = telldir(dir);
-+      return(ent->d_name);
++      kfree(HPPFS_I(inode));
 +}
 +
-+int read_file(int fd, unsigned long long *offset, char *buf, int len)
++static struct super_operations hppfs_sbops = { 
++      .alloc_inode    = hppfs_alloc_inode,
++      .destroy_inode  = hppfs_destroy_inode,
++      .read_inode     = hppfs_read_inode,
++      .delete_inode   = hppfs_delete_inode,
++      .statfs         = hppfs_statfs,
++};
++
++static int hppfs_readlink(struct dentry *dentry, char *buffer, int buflen)
 +{
-+      int n;
++      struct file proc_file;
++      struct dentry *proc_dentry;
++      int (*readlink)(struct dentry *, char *, int);
++      int err, n;
 +
-+      n = pread64(fd, buf, len, *offset);
-+      if(n < 0) return(-errno);
-+      *offset += n;
-+      return(n);
-+}
++      proc_dentry = HPPFS_I(dentry->d_inode)->proc_dentry;
++      err = open_private_file(&proc_file, proc_dentry, O_RDONLY);
++      if(err) 
++              return(err);
 +
-+int write_file(int fd, unsigned long long *offset, const char *buf, int len)
-+{
-+      int n;
++      readlink = proc_dentry->d_inode->i_op->readlink;
++      n = (*readlink)(proc_dentry, buffer, buflen);
 +
-+      n = pwrite64(fd, buf, len, *offset);
-+      if(n < 0) return(-errno);
-+      *offset += n;
++      close_private_file(&proc_file);
++      
 +      return(n);
 +}
 +
-+int lseek_file(int fd, long long offset, int whence)
++static int hppfs_follow_link(struct dentry *dentry, struct nameidata *nd)
 +{
-+      int ret;
++      struct file proc_file;
++      struct dentry *proc_dentry;
++      int (*follow_link)(struct dentry *, struct nameidata *);
++      int err, n;
 +
-+      ret = lseek64(fd, offset, whence);
-+      if(ret < 0) return(-errno);
-+      return(0);
-+}
++      proc_dentry = HPPFS_I(dentry->d_inode)->proc_dentry;
++      err = open_private_file(&proc_file, proc_dentry, O_RDONLY);
++      if(err) 
++              return(err);
 +
-+void close_file(void *stream)
-+{
-+      close(*((int *) stream));
-+}
++      follow_link = proc_dentry->d_inode->i_op->follow_link;
++      n = (*follow_link)(proc_dentry, nd);
 +
-+void close_dir(void *stream)
-+{
-+      closedir(stream);
++      close_private_file(&proc_file);
++      
++      return(n);
 +}
 +
-+int file_create(char *name, int ur, int uw, int ux, int gr, 
-+              int gw, int gx, int or, int ow, int ox)
-+{
-+      int mode, fd;
++static struct inode_operations hppfs_dir_iops = {
++      .lookup         = hppfs_lookup,
++};
 +
-+      mode = 0;
-+      mode |= ur ? S_IRUSR : 0;
-+      mode |= uw ? S_IWUSR : 0;
-+      mode |= ux ? S_IXUSR : 0;
-+      mode |= gr ? S_IRGRP : 0;
-+      mode |= gw ? S_IWGRP : 0;
-+      mode |= gx ? S_IXGRP : 0;
-+      mode |= or ? S_IROTH : 0;
-+      mode |= ow ? S_IWOTH : 0;
-+      mode |= ox ? S_IXOTH : 0;
-+      fd = open64(name, O_CREAT | O_RDWR, mode);
-+      if(fd < 0) 
-+              return(-errno);
-+      return(fd);
-+}
++static struct inode_operations hppfs_link_iops = {
++      .readlink       = hppfs_readlink,
++      .follow_link    = hppfs_follow_link,
++};
 +
-+int set_attr(const char *file, struct hostfs_iattr *attrs)
++static int init_inode(struct inode *inode, struct dentry *dentry)
 +{
-+      struct utimbuf buf;
-+      int err, ma;
-+
-+      if(attrs->ia_valid & HOSTFS_ATTR_MODE){
-+              if(chmod(file, attrs->ia_mode) != 0) return(-errno);
-+      }
-+      if(attrs->ia_valid & HOSTFS_ATTR_UID){
-+              if(chown(file, attrs->ia_uid, -1)) return(-errno);
-+      }
-+      if(attrs->ia_valid & HOSTFS_ATTR_GID){
-+              if(chown(file, -1, attrs->ia_gid)) return(-errno);
-+      }
-+      if(attrs->ia_valid & HOSTFS_ATTR_SIZE){
-+              if(truncate(file, attrs->ia_size)) return(-errno);
++      if(S_ISDIR(dentry->d_inode->i_mode)){
++              inode->i_op = &hppfs_dir_iops;
++              inode->i_fop = &hppfs_dir_fops;
 +      }
-+      ma = HOSTFS_ATTR_ATIME_SET | HOSTFS_ATTR_MTIME_SET;
-+      if((attrs->ia_valid & ma) == ma){
-+              buf.actime = attrs->ia_atime.tv_sec;
-+              buf.modtime = attrs->ia_mtime.tv_sec;
-+              if(utime(file, &buf) != 0) return(-errno);
++      else if(S_ISLNK(dentry->d_inode->i_mode)){
++              inode->i_op = &hppfs_link_iops;
++              inode->i_fop = &hppfs_file_fops;
 +      }
 +      else {
-+              struct timespec ts;
-+
-+              if(attrs->ia_valid & HOSTFS_ATTR_ATIME_SET){
-+                      err = stat_file(file, NULL, NULL, NULL, NULL, NULL, 
-+                                      NULL, NULL, &ts, NULL, NULL, NULL);
-+                      if(err != 0) 
-+                              return(err);
-+                      buf.actime = attrs->ia_atime.tv_sec;
-+                      buf.modtime = ts.tv_sec;
-+                      if(utime(file, &buf) != 0) 
-+                              return(-errno);
-+              }
-+              if(attrs->ia_valid & HOSTFS_ATTR_MTIME_SET){
-+                      err = stat_file(file, NULL, NULL, NULL, NULL, NULL, 
-+                                      NULL, &ts, NULL, NULL, NULL, NULL);
-+                      if(err != 0) 
-+                              return(err);
-+                      buf.actime = ts.tv_sec;
-+                      buf.modtime = attrs->ia_mtime.tv_sec;
-+                      if(utime(file, &buf) != 0) 
-+                              return(-errno);
-+              }
-+      }
-+      if(attrs->ia_valid & HOSTFS_ATTR_CTIME) ;
-+      if(attrs->ia_valid & (HOSTFS_ATTR_ATIME | HOSTFS_ATTR_MTIME)){
-+              err = stat_file(file, NULL, NULL, NULL, NULL, NULL, NULL, 
-+                              &attrs->ia_atime, &attrs->ia_mtime, NULL, 
-+                              NULL, NULL);
-+              if(err != 0) return(err);
++              inode->i_op = &hppfs_file_iops;
++              inode->i_fop = &hppfs_file_fops;
 +      }
-+      return(0);
-+}
 +
-+int make_symlink(const char *from, const char *to)
-+{
-+      int err;
++      HPPFS_I(inode)->proc_dentry = dentry;
 +
-+      err = symlink(to, from);
-+      if(err) return(-errno);
 +      return(0);
 +}
 +
-+int unlink_file(const char *file)
++static int hppfs_fill_super(struct super_block *sb, void *d, int silent)
 +{
++      struct inode *root_inode;
++      struct file_system_type *procfs;
++      struct super_block *proc_sb;
 +      int err;
 +
-+      err = unlink(file);
-+      if(err) return(-errno);
-+      return(0);
-+}
-+
-+int do_mkdir(const char *file, int mode)
-+{
-+      int err;
++      err = -ENOENT;
++      procfs = get_fs_type("proc");
++      if(procfs == NULL) 
++              goto out;
 +
-+      err = mkdir(file, mode);
-+      if(err) return(-errno);
-+      return(0);
-+}
++      if(list_empty(&procfs->fs_supers))
++              goto out;
 +
-+int do_rmdir(const char *file)
-+{
-+      int err;
++      proc_sb = list_entry(procfs->fs_supers.next, struct super_block,
++                           s_instances);
++      
++      sb->s_blocksize = 1024;
++      sb->s_blocksize_bits = 10;
++      sb->s_magic = HPPFS_SUPER_MAGIC;
++      sb->s_op = &hppfs_sbops;
 +
-+      err = rmdir(file);
-+      if(err) return(-errno);
-+      return(0);
-+}
++      root_inode = iget(sb, 0);
++      if(root_inode == NULL)
++              goto out;
 +
-+int do_mknod(const char *file, int mode, int dev)
-+{
-+      int err;
++      err = init_inode(root_inode, proc_sb->s_root);
++      if(err)
++              goto out_put;
 +
-+      err = mknod(file, mode, dev);
-+      if(err) return(-errno);
-+      return(0);
-+}
++      err = -ENOMEM;
++      sb->s_root = d_alloc_root(root_inode);
++      if(sb->s_root == NULL)
++              goto out_put;
 +
-+int link_file(const char *to, const char *from)
-+{
-+      int err;
++      hppfs_read_inode(root_inode);
 +
-+      err = link(to, from);
-+      if(err) return(-errno);
 +      return(0);
++
++ out_put:
++      iput(root_inode);
++ out:
++      return(err);
 +}
 +
-+int do_readlink(char *file, char *buf, int size)
++static struct super_block *hppfs_read_super(struct file_system_type *type,
++                                           int flags, const char *dev_name,
++                                           void *data)
 +{
-+      int n;
-+
-+      n = readlink(file, buf, size);
-+      if(n < 0) 
-+              return(-errno);
-+      if(n < size) 
-+              buf[n] = '\0';
-+      return(n);
++      return(get_sb_nodev(type, flags, data, hppfs_fill_super));
 +}
 +
-+int rename_file(char *from, char *to)
-+{
-+      int err;
++static struct file_system_type hppfs_type = {
++      .owner          = THIS_MODULE,
++      .name           = "hppfs",
++      .get_sb         = hppfs_read_super,
++      .kill_sb        = kill_anon_super,
++      .fs_flags       = 0,
++};
 +
-+      err = rename(from, to);
-+      if(err < 0) return(-errno);
-+      return(0);      
++static int __init init_hppfs(void)
++{
++      return(register_filesystem(&hppfs_type));
 +}
 +
-+int do_statfs(char *root, long *bsize_out, long long *blocks_out, 
-+            long long *bfree_out, long long *bavail_out, 
-+            long long *files_out, long long *ffree_out,
-+            void *fsid_out, int fsid_size, long *namelen_out, 
-+            long *spare_out)
++static void __exit exit_hppfs(void)
 +{
-+      struct statfs64 buf;
-+      int err;
-+
-+      err = statfs64(root, &buf);
-+      if(err < 0) return(-errno);
-+      *bsize_out = buf.f_bsize;
-+      *blocks_out = buf.f_blocks;
-+      *bfree_out = buf.f_bfree;
-+      *bavail_out = buf.f_bavail;
-+      *files_out = buf.f_files;
-+      *ffree_out = buf.f_ffree;
-+      memcpy(fsid_out, &buf.f_fsid, 
-+             sizeof(buf.f_fsid) > fsid_size ? fsid_size : 
-+             sizeof(buf.f_fsid));
-+      *namelen_out = buf.f_namelen;
-+      spare_out[0] = buf.f_spare[0];
-+      spare_out[1] = buf.f_spare[1];
-+      spare_out[2] = buf.f_spare[2];
-+      spare_out[3] = buf.f_spare[3];
-+      spare_out[4] = buf.f_spare[4];
-+      spare_out[5] = buf.f_spare[5];
-+      return(0);
++      unregister_filesystem(&hppfs_type);
 +}
 +
++module_init(init_hppfs)
++module_exit(exit_hppfs)
++MODULE_LICENSE("GPL");
++
 +/*
 + * Overrides for Emacs so that we follow Linus's tabbing style.
 + * Emacs will notice this stuff at the end of the file and automatically
@@ -17310,2487 +14951,5440 @@ diff -Naur a/fs/hostfs/hostfs_user.c b/fs/hostfs/hostfs_user.c
 + * c-file-style: "linux"
 + * End:
 + */
-diff -Naur a/fs/hostfs/Makefile b/fs/hostfs/Makefile
---- a/fs/hostfs/Makefile       1969-12-31 19:00:00.000000000 -0500
-+++ b/fs/hostfs/Makefile       2004-03-10 08:33:49.000000000 -0500
-@@ -0,0 +1,26 @@
-+# 
-+# Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
-+# Licensed under the GPL
-+#
-+
-+# struct stat64 changed the inode field name between 2.2 and 2.4 from st_ino
-+# to __st_ino.  It stayed in the same place, so as long as the correct name
-+# is used, hostfs compiled on 2.2 should work on 2.4 and vice versa.
-+
-+STAT64_INO_FIELD := $(shell grep -q __st_ino /usr/include/bits/stat.h && \
-+                              echo __)st_ino
+Index: uml-2.6.7/arch/um/drivers/ssl.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/ssl.c       2004-07-16 19:36:42.449693128 +0300
++++ uml-2.6.7/arch/um/drivers/ssl.c    2004-07-16 19:47:23.694209144 +0300
+@@ -10,6 +10,7 @@
+ #include "linux/major.h"
+ #include "linux/mm.h"
+ #include "linux/init.h"
++#include "linux/console.h"
+ #include "asm/termbits.h"
+ #include "asm/irq.h"
+ #include "line.h"
+@@ -53,8 +54,9 @@
+ static struct line_driver driver = {
+       .name                   = "UML serial line",
+-      .devfs_name             = "tts/%d",
+-      .major                  = TTYAUX_MAJOR,
++      .device_name            = "ttS",
++      .devfs_name             = "tts/",
++      .major                  = TTY_MAJOR,
+       .minor_start            = 64,
+       .type                   = TTY_DRIVER_TYPE_SERIAL,
+       .subtype                = 0,
+@@ -149,6 +151,9 @@
+       case TCSETSW:
+       case TCGETA:
+       case TIOCMGET:
++      case TCSBRK:
++      case TCSBRKP:
++      case TIOCMSET:
+               ret = -ENOIOCTLCMD;
+               break;
+       default:
+@@ -212,6 +217,37 @@
+  */
+ static int ssl_init_done = 0;
++static void ssl_console_write(struct console *c, const char *string, 
++                            unsigned len)
++{
++      struct line *line = &serial_lines[c->index];
++      if(ssl_init_done)
++              down(&line->sem);
++      console_write_chan(&line->chan_list, string, len);
++      if(ssl_init_done)
++              up(&line->sem);
++}
 +
-+hostfs-objs := hostfs_kern.o hostfs_user.o
++static struct tty_driver *ssl_console_device(struct console *c, int *index)
++{
++      *index = c->index;
++      return ssl_driver;
++}
 +
-+obj-y = 
-+obj-$(CONFIG_HOSTFS) += hostfs.o
++static int ssl_console_setup(struct console *co, char *options)
++{
++      return(0);
++}
 +
-+SINGLE_OBJS = $(foreach f,$(patsubst %.o,%,$(obj-y) $(obj-m)),$($(f)-objs))
++static struct console ssl_cons = {
++      name:           "ttyS",
++      write:          ssl_console_write,
++      device:         ssl_console_device,
++      setup:          ssl_console_setup,
++      flags:          CON_PRINTBUFFER,
++      index:          -1,
++};
 +
-+USER_OBJS := $(filter %_user.o,$(obj-y) $(obj-m) $(SINGLE_OBJS))
-+USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
+ int ssl_init(void)
+ {
+       char *new_title;
+@@ -227,17 +263,18 @@
+       new_title = add_xterm_umid(opts.xterm_title);
+       if(new_title != NULL) opts.xterm_title = new_title;
++      register_console(&ssl_cons);
+       ssl_init_done = 1;
+       return(0);
+ }
+-__initcall(ssl_init);
++late_initcall(ssl_init);
+ static int ssl_chan_setup(char *str)
+ {
+-      line_setup(serial_lines, sizeof(serial_lines)/sizeof(serial_lines[0]),
+-                 str, 1);
+-      return(1);
++      return(line_setup(serial_lines, 
++                        sizeof(serial_lines)/sizeof(serial_lines[0]), 
++                        str, 1));
+ }
+ __setup("ssl", ssl_chan_setup);
+Index: uml-2.6.7/arch/um/kernel/tt/Makefile
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/tt/Makefile  2004-07-16 19:36:45.804183168 +0300
++++ uml-2.6.7/arch/um/kernel/tt/Makefile       2004-07-16 19:47:23.744201544 +0300
+@@ -1,5 +1,5 @@
+ # 
+-# Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
++# Copyright (C) 2002 - 2003 Jeff Dike (jdike@addtoit.com)
+ # Licensed under the GPL
+ #
+@@ -7,7 +7,7 @@
+ obj-y = exec_kern.o exec_user.o gdb.o ksyms.o mem.o mem_user.o process_kern.o \
+       syscall_kern.o syscall_user.o time.o tlb.o tracer.o trap_user.o \
+-      uaccess_user.o sys-$(SUBARCH)/
++      uaccess.o uaccess_user.o sys-$(SUBARCH)/
+ obj-$(CONFIG_PT_PROXY) += gdb_kern.o ptproxy/
+@@ -27,5 +27,3 @@
+ $(obj)/unmap_fin.o : $(src)/unmap.o
+       ld -r -o $@ $< -lc -L/usr/lib
+-
+-clean :
+Index: uml-2.6.7/fs/Makefile
+===================================================================
+--- uml-2.6.7.orig/fs/Makefile 2004-07-16 19:36:51.434327256 +0300
++++ uml-2.6.7/fs/Makefile      2004-07-16 19:47:23.786195160 +0300
+@@ -91,3 +91,5 @@
+ obj-$(CONFIG_XFS_FS)          += xfs/
+ obj-$(CONFIG_AFS_FS)          += afs/
+ obj-$(CONFIG_BEFS_FS)         += befs/
++obj-$(CONFIG_HOSTFS)          += hostfs/
++obj-$(CONFIG_HPPFS)           += hppfs/
+Index: uml-2.6.7/arch/um/kernel/tt/tlb.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/tt/tlb.c     2004-07-16 19:35:58.497374896 +0300
++++ uml-2.6.7/arch/um/kernel/tt/tlb.c  2004-07-16 19:47:23.750200632 +0300
+@@ -10,6 +10,7 @@
+ #include "asm/page.h"
+ #include "asm/pgtable.h"
+ #include "asm/uaccess.h"
++#include "asm/tlbflush.h"
+ #include "user_util.h"
+ #include "mem_user.h"
+ #include "os.h"
+Index: uml-2.6.7/arch/um/kernel/reboot.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/reboot.c     2004-07-16 19:36:45.791185144 +0300
++++ uml-2.6.7/arch/um/kernel/reboot.c  2004-07-16 19:47:23.724204584 +0300
+@@ -15,6 +15,7 @@
+ #ifdef CONFIG_SMP
+ static void kill_idlers(int me)
+ {
++#ifdef CONFIG_MODE_TT
+       struct task_struct *p;
+       int i;
+@@ -23,6 +24,7 @@
+               if((p != NULL) && (p->thread.mode.tt.extern_pid != me))
+                       os_kill_process(p->thread.mode.tt.extern_pid, 0);
+       }
++#endif
+ }
+ #endif
+Index: uml-2.6.7/arch/um/kernel/ptrace.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/ptrace.c     2004-07-16 19:36:04.815414408 +0300
++++ uml-2.6.7/arch/um/kernel/ptrace.c  2004-07-16 19:47:23.724204584 +0300
+@@ -24,11 +24,6 @@
+ { 
+ }
+-extern long do_mmap2(struct task_struct *task, unsigned long addr, 
+-                   unsigned long len, unsigned long prot, 
+-                   unsigned long flags, unsigned long fd,
+-                   unsigned long pgoff);
+-
+ int sys_ptrace(long request, long pid, long addr, long data)
+ {
+       struct task_struct *child;
+@@ -302,8 +297,17 @@
+       return ret;
+ }
+-void syscall_trace(void)
++void syscall_trace(union uml_pt_regs *regs, int entryexit)
+ {
++      if (unlikely(current->audit_context)) {
++              if (!entryexit)
++                      audit_syscall_entry(current, regs->orig_eax,
++                                          regs->ebx, regs->ecx,
++                                          regs->edx, regs->esi);
++              else
++                      audit_syscall_exit(current, regs->eax);
++      }
 +
-+USER_CFLAGS += -DSTAT64_INO_FIELD=$(STAT64_INO_FIELD)
+       if (!test_thread_flag(TIF_SYSCALL_TRACE))
+               return;
+       if (!(current->ptrace & PT_PTRACED))
+@@ -311,11 +315,8 @@
+       /* the 0x80 provides a way for the tracing parent to distinguish
+          between a syscall stop and SIGTRAP delivery */
+-      current->exit_code = SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD)
+-                                      ? 0x80 : 0);
+-      current->state = TASK_STOPPED;
+-      notify_parent(current, SIGCHLD);
+-      schedule();
++      ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD)
++                               ? 0x80 : 0));
+       /*
+        * this isn't the same as continuing with a signal, but it will do
+Index: uml-2.6.7/arch/um/include/um_uaccess.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/include/um_uaccess.h        2004-07-16 19:37:08.610716048 +0300
++++ uml-2.6.7/arch/um/include/um_uaccess.h     2004-07-16 19:47:23.709206864 +0300
+@@ -38,22 +38,73 @@
+                               from, n));
+ }
++/*
++ * strncpy_from_user: - Copy a NUL terminated string from userspace.
++ * @dst:   Destination address, in kernel space.  This buffer must be at
++ *         least @count bytes long.
++ * @src:   Source address, in user space.
++ * @count: Maximum number of bytes to copy, including the trailing NUL.
++ * 
++ * Copies a NUL-terminated string from userspace to kernel space.
++ *
++ * On success, returns the length of the string (not including the trailing
++ * NUL).
++ *
++ * If access to userspace fails, returns -EFAULT (some data may have been
++ * copied).
++ *
++ * If @count is smaller than the length of the string, copies @count bytes
++ * and returns @count.
++ */
 +
-+$(USER_OBJS) : %.o: %.c
-+      $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
-diff -Naur a/fs/hppfs/hppfs_kern.c b/fs/hppfs/hppfs_kern.c
---- a/fs/hppfs/hppfs_kern.c    1969-12-31 19:00:00.000000000 -0500
-+++ b/fs/hppfs/hppfs_kern.c    2004-03-10 08:38:41.000000000 -0500
-@@ -0,0 +1,811 @@
-+/* 
-+ * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+ * Licensed under the GPL
+ static inline int strncpy_from_user(char *dst, const char *src, int count)
+ {
+       return(CHOOSE_MODE_PROC(strncpy_from_user_tt, strncpy_from_user_skas,
+                               dst, src, count));
+ }
++/*
++ * __clear_user: - Zero a block of memory in user space, with less checking.
++ * @to:   Destination address, in user space.
++ * @n:    Number of bytes to zero.
++ *
++ * Zero a block of memory in user space.  Caller must check
++ * the specified block with access_ok() before calling this function.
++ *
++ * Returns number of bytes that could not be cleared.
++ * On success, this will be zero.
++ */
+ static inline int __clear_user(void *mem, int len)
+ {
+       return(CHOOSE_MODE_PROC(__clear_user_tt, __clear_user_skas, mem, len));
+ }
++/*
++ * clear_user: - Zero a block of memory in user space.
++ * @to:   Destination address, in user space.
++ * @n:    Number of bytes to zero.
++ *
++ * Zero a block of memory in user space.
++ *
++ * Returns number of bytes that could not be cleared.
++ * On success, this will be zero.
++ */
+ static inline int clear_user(void *mem, int len)
+ {
+       return(CHOOSE_MODE_PROC(clear_user_tt, clear_user_skas, mem, len));
+ }
++/*
++ * strlen_user: - Get the size of a string in user space.
++ * @str: The string to measure.
++ * @n:   The maximum valid length
++ *
++ * Get the size of a NUL-terminated string in user space.
++ *
++ * Returns the size of the string INCLUDING the terminating NUL.
++ * On exception, returns 0.
++ * If the string is too long, returns a value greater than @n.
 + */
+ static inline int strnlen_user(const void *str, int len)
+ {
+       return(CHOOSE_MODE_PROC(strnlen_user_tt, strnlen_user_skas, str, len));
+Index: uml-2.6.7/include/asm-um/current.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/current.h    2004-07-16 19:35:58.909312272 +0300
++++ uml-2.6.7/include/asm-um/current.h 2004-07-16 19:47:23.788194856 +0300
+@@ -16,8 +16,10 @@
+ #define CURRENT_THREAD(dummy) (((unsigned long) &dummy) & \
+                               (PAGE_MASK << CONFIG_KERNEL_STACK_ORDER))
+-#define current ({ int dummy; \
+-                   ((struct thread_info *) CURRENT_THREAD(dummy))->task; })
++#define current_thread \
++      ({ int dummy; ((struct thread_info *) CURRENT_THREAD(dummy)); })
 +
-+#include <linux/fs.h>
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/slab.h>
-+#include <linux/list.h>
-+#include <linux/kernel.h>
-+#include <linux/ctype.h>
-+#include <linux/dcache.h>
-+#include <linux/statfs.h>
-+#include <asm/uaccess.h>
-+#include <asm/fcntl.h>
++#define current (current_thread->task)
+ #endif /* __ASSEMBLY__ */
+Index: uml-2.6.7/arch/um/sys-i386/bugs.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/sys-i386/bugs.c     2004-07-16 19:37:17.366384984 +0300
++++ uml-2.6.7/arch/um/sys-i386/bugs.c  2004-07-16 19:47:23.770197592 +0300
+@@ -4,20 +4,21 @@
+  */
+ #include <unistd.h>
+-#include <fcntl.h>
+ #include <errno.h>
+ #include <string.h>
+ #include <sys/signal.h>
++#include <asm/ldt.h>
+ #include "kern_util.h"
+ #include "user.h"
+ #include "sysdep/ptrace.h"
+ #include "task.h"
 +#include "os.h"
-+
-+static int init_inode(struct inode *inode, struct dentry *dentry);
-+
-+struct hppfs_data {
-+      struct list_head list;
-+      char contents[PAGE_SIZE - sizeof(struct list_head)];
-+};
-+
-+struct hppfs_private {
-+      struct file proc_file;
-+      int host_fd;
-+      loff_t len;
-+      struct hppfs_data *contents;
-+};
-+
-+struct hppfs_inode_info {
-+        struct dentry *proc_dentry;
-+      struct inode vfs_inode;
-+};
-+
-+static inline struct hppfs_inode_info *HPPFS_I(struct inode *inode)
-+{
-+      return(list_entry(inode, struct hppfs_inode_info, vfs_inode));
+ #define MAXTOKEN 64
+ /* Set during early boot */
+-int cpu_has_cmov = 1;
+-int cpu_has_xmm = 0;
++int host_has_cmov = 1;
++int host_has_xmm = 0;
+ static char token(int fd, char *buf, int len, char stop)
+ {
+@@ -27,13 +28,15 @@
+       ptr = buf;
+       end = &buf[len];
+       do {
+-              n = read(fd, ptr, sizeof(*ptr));
++              n = os_read_file(fd, ptr, sizeof(*ptr));
+               c = *ptr++;
+-              if(n == 0) return(0);
+-              else if(n != sizeof(*ptr)){
+-                      printk("Reading /proc/cpuinfo failed, "
+-                             "errno = %d\n", errno);
+-                      return(-errno);
++              if(n != sizeof(*ptr)){
++                      if(n == 0) return(0);
++                      printk("Reading /proc/cpuinfo failed, err = %d\n", -n);
++                      if(n < 0) 
++                              return(n);
++                      else 
++                              return(-EIO);
+               }
+       } while((c != '\n') && (c != stop) && (ptr < end));
+@@ -45,45 +48,79 @@
+       return(c);
+ }
+-static int check_cpu_feature(char *feature, int *have_it)
++static int find_cpuinfo_line(int fd, char *key, char *scratch, int len)
+ {
+-      char buf[MAXTOKEN], c;
+-      int fd, len = sizeof(buf)/sizeof(buf[0]), n;
+-
+-      printk("Checking for host processor %s support...", feature);
+-      fd = open("/proc/cpuinfo", O_RDONLY);
+-      if(fd < 0){
+-              printk("Couldn't open /proc/cpuinfo, errno = %d\n", errno);
+-              return(0);
+-      }
++      int n;
++      char c;
+-      *have_it = 0;
+-      buf[len - 1] = '\0';
++      scratch[len - 1] = '\0';
+       while(1){
+-              c = token(fd, buf, len - 1, ':');
+-              if(c <= 0) goto out;
++              c = token(fd, scratch, len - 1, ':');
++              if(c <= 0)
++                      return(0);
+               else if(c != ':'){
+                       printk("Failed to find ':' in /proc/cpuinfo\n");
+-                      goto out;
++                      return(0);
+               }
+-              if(!strncmp(buf, "flags", strlen("flags"))) break;
++              if(!strncmp(scratch, key, strlen(key))) 
++                      return(1);
+               do {
+-                      n = read(fd, &c, sizeof(c));
++                      n = os_read_file(fd, &c, sizeof(c));
+                       if(n != sizeof(c)){
+                               printk("Failed to find newline in "
+-                                     "/proc/cpuinfo, n = %d, errno = %d\n",
+-                                     n, errno);
+-                              goto out;
++                                     "/proc/cpuinfo, err = %d\n", -n);
++                              return(0);
+                       }
+               } while(c != '\n');
+       }
++      return(0);
 +}
 +
-+#define HPPFS_SUPER_MAGIC 0xb00000ee
-+
-+static struct super_operations hppfs_sbops;
-+
-+static int is_pid(struct dentry *dentry)
++int cpu_feature(char *what, char *buf, int len)
 +{
-+      struct super_block *sb;
-+      int i;
++      int fd, ret = 0;
 +
-+      sb = dentry->d_sb;
-+      if((sb->s_op != &hppfs_sbops) || (dentry->d_parent != sb->s_root))
++      fd = os_open_file("/proc/cpuinfo", of_read(OPENFLAGS()), 0);
++      if(fd < 0){
++              printk("Couldn't open /proc/cpuinfo, err = %d\n", -fd);
 +              return(0);
++      }
 +
-+      for(i = 0; i < dentry->d_name.len; i++){
-+              if(!isdigit(dentry->d_name.name[i]))
-+                      return(0);
++      if(!find_cpuinfo_line(fd, what, buf, len)){
++              printk("Couldn't find '%s' line in /proc/cpuinfo\n", what);
++              goto out_close;
 +      }
-+      return(1);
++
++      token(fd, buf, len, '\n');
++      ret = 1;
++
++ out_close:
++      os_close_file(fd);
++      return(ret);
 +}
 +
-+static char *dentry_name(struct dentry *dentry, int extra)
++static int check_cpu_flag(char *feature, int *have_it)
 +{
-+      struct dentry *parent;
-+      char *root, *name;
-+      const char *seg_name;
-+      int len, seg_len;
++      char buf[MAXTOKEN], c;
++      int fd, len = sizeof(buf)/sizeof(buf[0]);
 +
-+      len = 0;
-+      parent = dentry;
-+      while(parent->d_parent != parent){
-+              if(is_pid(parent))
-+                      len += strlen("pid") + 1;
-+              else len += parent->d_name.len + 1;
-+              parent = parent->d_parent;
++      printk("Checking for host processor %s support...", feature);
++      fd = os_open_file("/proc/cpuinfo", of_read(OPENFLAGS()), 0);
++      if(fd < 0){
++              printk("Couldn't open /proc/cpuinfo, err = %d\n", -fd);
++              return(0);
 +      }
-+      
-+      root = "proc";
-+      len += strlen(root);
-+      name = kmalloc(len + extra + 1, GFP_KERNEL);
-+      if(name == NULL) return(NULL);
 +
-+      name[len] = '\0';
-+      parent = dentry;
-+      while(parent->d_parent != parent){
-+              if(is_pid(parent)){
-+                      seg_name = "pid";
-+                      seg_len = strlen("pid");
-+              }
-+              else {
-+                      seg_name = parent->d_name.name;
-+                      seg_len = parent->d_name.len;
-+              }
++      *have_it = 0;
++      if(!find_cpuinfo_line(fd, "flags", buf, sizeof(buf) / sizeof(buf[0])))
++              goto out;
+       c = token(fd, buf, len - 1, ' ');
+       if(c < 0) goto out;
+       else if(c != ' '){
+-              printk("Failed to find ':' in /proc/cpuinfo\n");
++              printk("Failed to find ' ' in /proc/cpuinfo\n");
+               goto out;
+       }
+@@ -100,21 +137,48 @@
+  out:
+       if(*have_it == 0) printk("No\n");
+       else if(*have_it == 1) printk("Yes\n");
+-      close(fd);
++      os_close_file(fd);
+       return(1);
+ }
++#if 0 /* This doesn't work in tt mode, plus it's causing compilation problems
++       * for some people.
++       */
++static void disable_lcall(void)
++{
++      struct modify_ldt_ldt_s ldt;
++      int err;
 +
-+              len -= seg_len + 1;
-+              name[len] = '/';
-+              strncpy(&name[len + 1], seg_name, seg_len);
-+              parent = parent->d_parent;
-+      }
-+      strncpy(name, root, strlen(root));
-+      return(name);
++      bzero(&ldt, sizeof(ldt));
++      ldt.entry_number = 7;
++      ldt.base_addr = 0;
++      ldt.limit = 0;
++      err = modify_ldt(1, &ldt, sizeof(ldt));
++      if(err)
++              printk("Failed to disable lcall7 - errno = %d\n", errno);
 +}
++#endif
 +
-+struct dentry_operations hppfs_dentry_ops = {
-+};
-+
-+static int file_removed(struct dentry *dentry, const char *file)
++void arch_init_thread(void)
 +{
-+      char *host_file;
-+      int extra, fd;
-+
-+      extra = 0;
-+      if(file != NULL) extra += strlen(file) + 1;
-+
-+      host_file = dentry_name(dentry, extra + strlen("/remove"));
-+      if(host_file == NULL){
-+              printk("file_removed : allocation failed\n");
-+              return(-ENOMEM);
-+      }
++#if 0
++      disable_lcall();
++#endif
++}
 +
-+      if(file != NULL){
-+              strcat(host_file, "/");
-+              strcat(host_file, file);
-+      }
-+      strcat(host_file, "/remove");
+ void arch_check_bugs(void)
+ {
+       int have_it;
+-      if(access("/proc/cpuinfo", R_OK)){
++      if(os_access("/proc/cpuinfo", OS_ACC_R_OK) < 0){
+               printk("/proc/cpuinfo not available - skipping CPU capability "
+                      "checks\n");
+               return;
+       }
+-      if(check_cpu_feature("cmov", &have_it)) cpu_has_cmov = have_it;
+-      if(check_cpu_feature("xmm", &have_it)) cpu_has_xmm = have_it;
++      if(check_cpu_flag("cmov", &have_it)) 
++              host_has_cmov = have_it;
++      if(check_cpu_flag("xmm", &have_it)) 
++              host_has_xmm = have_it;
+ }
+ int arch_handle_signal(int sig, union uml_pt_regs *regs)
+@@ -130,18 +194,18 @@
+       if((*((char *) ip) != 0x0f) || ((*((char *) (ip + 1)) & 0xf0) != 0x40))
+               return(0);
+-      if(cpu_has_cmov == 0)
++      if(host_has_cmov == 0)
+               panic("SIGILL caused by cmov, which this processor doesn't "
+                     "implement, boot a filesystem compiled for older "
+                     "processors");
+-      else if(cpu_has_cmov == 1)
++      else if(host_has_cmov == 1)
+               panic("SIGILL caused by cmov, which this processor claims to "
+                     "implement");
+-      else if(cpu_has_cmov == -1)
++      else if(host_has_cmov == -1)
+               panic("SIGILL caused by cmov, couldn't tell if this processor "
+                     "implements it, boot a filesystem compiled for older "
+                     "processors");
+-      else panic("Bad value for cpu_has_cmov (%d)", cpu_has_cmov);
++      else panic("Bad value for host_has_cmov (%d)", host_has_cmov);
+       return(0);
+ }
+Index: uml-2.6.7/arch/um/kernel/skas/include/mode.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/skas/include/mode.h  2004-07-16 19:36:48.253810768 +0300
++++ uml-2.6.7/arch/um/kernel/skas/include/mode.h       2004-07-16 19:47:23.727204128 +0300
+@@ -12,14 +12,16 @@
+ extern int have_fpx_regs;
+ extern void user_time_init_skas(void);
+-extern int copy_sc_from_user_skas(union uml_pt_regs *regs, void *from_ptr);
+-extern int copy_sc_to_user_skas(void *to_ptr, void *fp, 
++extern int copy_sc_from_user_skas(int pid, union uml_pt_regs *regs, 
++                                void *from_ptr);
++extern int copy_sc_to_user_skas(int pid, void *to_ptr, void *fp, 
+                               union uml_pt_regs *regs, 
+                               unsigned long fault_addr, int fault_type);
+ extern void sig_handler_common_skas(int sig, void *sc_ptr);
+ extern void halt_skas(void);
+ extern void reboot_skas(void);
+ extern void kill_off_processes_skas(void);
++extern int is_skas_winch(int pid, int fd, void *data);
+ #endif
+Index: uml-2.6.7/arch/um/include/sysdep-i386/sigcontext.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/include/sysdep-i386/sigcontext.h    2004-07-16 19:37:08.763692792 +0300
++++ uml-2.6.7/arch/um/include/sysdep-i386/sigcontext.h 2004-07-16 19:47:23.707207168 +0300
+@@ -28,8 +28,8 @@
+  */
+ #define SC_START_SYSCALL(sc) do SC_EAX(sc) = -ENOSYS; while(0)
+-/* These are General Protection and Page Fault */
+-#define SEGV_IS_FIXABLE(trap) ((trap == 13) || (trap == 14))
++/* This is Page Fault */
++#define SEGV_IS_FIXABLE(trap) (trap == 14)
+ #define SC_SEGV_IS_FIXABLE(sc) (SEGV_IS_FIXABLE(SC_TRAPNO(sc)))
+Index: uml-2.6.7/arch/um/drivers/net_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/net_user.c  2004-07-16 19:36:10.505549376 +0300
++++ uml-2.6.7/arch/um/drivers/net_user.c       2004-07-16 19:47:24.796041640 +0300
+@@ -26,8 +26,7 @@
+       if(gate_addr == NULL) return(0);
+       if(sscanf(gate_addr, "%d.%d.%d.%d", &tap_addr[0], 
+                 &tap_addr[1], &tap_addr[2], &tap_addr[3]) != 4){
+-              printk("Invalid tap IP address - '%s'\n", 
+-                     gate_addr);
++              printk("Invalid tap IP address - '%s'\n", gate_addr);
+               return(-EINVAL);
+       }
+       return(0);
+@@ -60,18 +59,18 @@
+       }
+               
+       *output = '\0';
+-      if(read(fd, &remain, sizeof(remain)) != sizeof(remain)){
+-              printk("read_output - read of length failed, errno = %d\n",
+-                     errno);
++      n = os_read_file(fd, &remain, sizeof(remain));
++      if(n != sizeof(remain)){
++              printk("read_output - read of length failed, err = %d\n", -n);
+               return;
+       }
+       while(remain != 0){
+               n = (remain < len) ? remain : len;
+-              actual = read(fd, output, n);
++              actual = os_read_file(fd, output, n);
+               if(actual != n){
+                       printk("read_output - read of data failed, "
+-                             "errno = %d\n", errno);
++                             "err = %d\n", -actual);
+                       return;
+               }
+               remain -= actual;
+@@ -83,13 +82,12 @@
+ {
+       int n;
+-      while(((n = read(fd,  buf,  len)) < 0) && (errno == EINTR)) ;
++      n = os_read_file(fd,  buf,  len);
+-      if(n < 0){
+-              if(errno == EAGAIN) return(0);
+-              return(-errno);
+-      }
+-      else if(n == 0) return(-ENOTCONN);
++      if(n == -EAGAIN) 
++              return(0);
++      else if(n == 0) 
++              return(-ENOTCONN);
+       return(n);
+ }
+@@ -112,13 +110,13 @@
+ {
+       int n;
+-      while(((n = write(fd, buf, len)) < 0) && (errno == EINTR)) ;
+-      if(n < 0){
+-              if(errno == EAGAIN) return(0);
+-              return(-errno);
+-      }
+-      else if(n == 0) return(-ENOTCONN);
+-      return(n);      
++      n = os_write_file(fd, buf, len);
 +
-+      fd = os_open_file(host_file, of_read(OPENFLAGS()), 0);
-+      kfree(host_file);
-+      if(fd > 0){
-+              os_close_file(fd);
-+              return(1);
-+      }
-+      return(0);
-+}
++      if(n == -EAGAIN) 
++              return(0);
++      else if(n == 0) 
++              return(-ENOTCONN);
++      return(n);
+ }
+ int net_send(int fd, void *buf, int len)
+@@ -157,7 +155,7 @@
+ {
+       struct change_pre_exec_data *data = arg;
+-      close(data->close_me);
++      os_close_file(data->close_me);
+       dup2(data->stdout, 1);
+ }
+@@ -167,17 +165,18 @@
+       struct change_pre_exec_data pe_data;
+       err = os_pipe(fds, 1, 0);
+-      if(err){
+-              printk("change_tramp - pipe failed, errno = %d\n", -err);
++      if(err < 0){
++              printk("change_tramp - pipe failed, err = %d\n", -err);
+               return(err);
+       }
+       pe_data.close_me = fds[0];
+       pe_data.stdout = fds[1];
+       pid = run_helper(change_pre_exec, &pe_data, argv, NULL);
+-      close(fds[1]);
++      os_close_file(fds[1]);
+       read_output(fds[0], output, output_len);
+-      waitpid(pid, NULL, 0);  
 +
-+static void hppfs_read_inode(struct inode *ino)
++      CATCH_EINTR(err = waitpid(pid, NULL, 0));
+       return(pid);
+ }
+Index: uml-2.6.7/include/asm-um/processor-generic.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/processor-generic.h  2004-07-16 19:36:07.621987744 +0300
++++ uml-2.6.7/include/asm-um/processor-generic.h       2004-07-16 19:47:23.794193944 +0300
+@@ -11,33 +11,14 @@
+ struct task_struct;
+ #include "linux/config.h"
+-#include "linux/signal.h"
+ #include "asm/ptrace.h"
+-#include "asm/siginfo.h"
+ #include "choose-mode.h"
+ struct mm_struct;
+ #define current_text_addr() ((void *) 0)
+-#define cpu_relax()   do ; while (0)
+-
+-#ifdef CONFIG_MODE_TT
+-struct proc_tt_mode {
+-      int extern_pid;
+-      int tracing;
+-      int switch_pipe[2];
+-      int singlestep_syscall;
+-      int vm_seq;
+-};
+-#endif
+-
+-#ifdef CONFIG_MODE_SKAS
+-struct proc_skas_mode {
+-      void *switch_buf;
+-      void *fork_buf;
+-};
+-#endif
++#define cpu_relax()   barrier()
+ struct thread_struct {
+       int forking;
+@@ -46,6 +27,7 @@
+       struct pt_regs regs;
+       unsigned long cr2;
+       int err;
++      unsigned long trap_no;
+       void *fault_addr;
+       void *fault_catcher;
+       struct task_struct *prev_sched;
+@@ -54,10 +36,20 @@
+       struct arch_thread arch;
+       union {
+ #ifdef CONFIG_MODE_TT
+-              struct proc_tt_mode tt;
++              struct {
++                      int extern_pid;
++                      int tracing;
++                      int switch_pipe[2];
++                      int singlestep_syscall;
++                      int vm_seq;
++              } tt;
+ #endif
+ #ifdef CONFIG_MODE_SKAS
+-              struct proc_skas_mode skas;
++              struct {
++                      void *switch_buf;
++                      void *fork_buf;
++                      int mm_count;
++              } skas;
+ #endif
+       } mode;
+       struct {
+@@ -99,14 +91,19 @@
+ } mm_segment_t;
+ extern struct task_struct *alloc_task_struct(void);
+-extern void free_task_struct(struct task_struct *task);
+ extern void release_thread(struct task_struct *);
+ extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
+ extern void dump_thread(struct pt_regs *regs, struct user *u);
++extern void prepare_to_copy(struct task_struct *tsk);
+ extern unsigned long thread_saved_pc(struct task_struct *t);
++static inline void mm_copy_segments(struct mm_struct *from_mm, 
++                                  struct mm_struct *new_mm)
 +{
-+      struct inode *proc_ino;
-+
-+      if(HPPFS_I(ino)->proc_dentry == NULL)
-+              return;
-+
-+      proc_ino = HPPFS_I(ino)->proc_dentry->d_inode;
-+      ino->i_uid = proc_ino->i_uid;
-+      ino->i_gid = proc_ino->i_gid;
-+      ino->i_atime = proc_ino->i_atime;
-+      ino->i_mtime = proc_ino->i_mtime;
-+      ino->i_ctime = proc_ino->i_ctime;
-+      ino->i_ino = proc_ino->i_ino;
-+      ino->i_mode = proc_ino->i_mode;
-+      ino->i_nlink = proc_ino->i_nlink;
-+      ino->i_size = proc_ino->i_size;
-+      ino->i_blksize = proc_ino->i_blksize;
-+      ino->i_blocks = proc_ino->i_blocks;
 +}
 +
-+static struct dentry *hppfs_lookup(struct inode *ino, struct dentry *dentry, 
-+                                  struct nameidata *nd)
-+{
-+      struct dentry *proc_dentry, *new, *parent;
-+      struct inode *inode;
-+      int err, deleted;
-+
-+      deleted = file_removed(dentry, NULL);
-+      if(deleted < 0)
-+              return(ERR_PTR(deleted));
-+      else if(deleted)
-+              return(ERR_PTR(-ENOENT));
-+
-+      err = -ENOMEM;
-+      parent = HPPFS_I(ino)->proc_dentry;
-+      down(&parent->d_inode->i_sem);
-+      proc_dentry = d_lookup(parent, &dentry->d_name);
-+      if(proc_dentry == NULL){
-+              proc_dentry = d_alloc(parent, &dentry->d_name);
-+              if(proc_dentry == NULL){
-+                      up(&parent->d_inode->i_sem);
-+                      goto out;
-+              }
-+              new = (*parent->d_inode->i_op->lookup)(parent->d_inode, 
-+                                                     proc_dentry, NULL);
-+              if(new){
-+                      dput(proc_dentry);
-+                      proc_dentry = new;
-+              }
-+      }
-+      up(&parent->d_inode->i_sem);
-+
-+      if(IS_ERR(proc_dentry))
-+              return(proc_dentry);
-+
-+      inode = iget(ino->i_sb, 0);
-+      if(inode == NULL) 
-+              goto out_dput;
-+
-+      err = init_inode(inode, proc_dentry);
-+      if(err) 
-+              goto out_put;
-+      
-+      hppfs_read_inode(inode);
+ #define init_stack    (init_thread_union.stack)
+ /*
+Index: uml-2.6.7/include/asm-um/fixmap.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/fixmap.h     2004-07-16 19:37:31.708204696 +0300
++++ uml-2.6.7/include/asm-um/fixmap.h  2004-07-16 19:47:23.790194552 +0300
+@@ -34,6 +34,7 @@
+       FIX_KMAP_BEGIN, /* reserved pte's for temporary kernel mappings */
+       FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1,
+ #endif
++      FIX_VSYSCALL,
+       __end_of_fixed_addresses
+ };
+@@ -63,6 +64,13 @@
+ #define __fix_to_virt(x)      (FIXADDR_TOP - ((x) << PAGE_SHIFT))
+ #define __virt_to_fix(x)      ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT)
++/*
++ * This is the range that is readable by user mode, and things
++ * acting like user mode such as get_user_pages.
++ */
++#define FIXADDR_USER_START    (__fix_to_virt(FIX_VSYSCALL))
++#define FIXADDR_USER_END      (FIXADDR_USER_START + PAGE_SIZE)
 +
-+      d_add(dentry, inode);
-+      dentry->d_op = &hppfs_dentry_ops;
-+      return(NULL);
+ extern void __this_fixmap_does_not_exist(void);
+ /*
+Index: uml-2.6.7/arch/um/os-Linux/drivers/ethertap_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/os-Linux/drivers/ethertap_kern.c    2004-07-16 19:35:55.747792896 +0300
++++ uml-2.6.7/arch/um/os-Linux/drivers/ethertap_kern.c 2004-07-16 19:47:23.765198352 +0300
+@@ -8,7 +8,6 @@
+ #include "linux/init.h"
+ #include "linux/netdevice.h"
+ #include "linux/etherdevice.h"
+-#include "linux/init.h"
+ #include "net_kern.h"
+ #include "net_user.h"
+ #include "etap.h"
+Index: uml-2.6.7/arch/um/kernel/tt/syscall_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/tt/syscall_user.c    2004-07-16 19:37:02.608628504 +0300
++++ uml-2.6.7/arch/um/kernel/tt/syscall_user.c 2004-07-16 19:47:23.749200784 +0300
+@@ -33,7 +33,7 @@
+       SC_START_SYSCALL(sc);
+       index = record_syscall_start(syscall);
+-      syscall_trace();
++      syscall_trace(regs, 1);
+       result = execute_syscall(regs);
+       /* regs->sc may have changed while the system call ran (there may
+@@ -46,7 +46,7 @@
+          (result == -ERESTARTNOINTR))
+               do_signal(result);
+-      syscall_trace();
++      syscall_trace(regs, 0);
+       record_syscall_end(index, result);
+ }
+Index: uml-2.6.7/arch/um/drivers/ubd_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/ubd_kern.c  2004-07-16 19:36:39.996066136 +0300
++++ uml-2.6.7/arch/um/drivers/ubd_kern.c       2004-07-16 19:47:23.697208688 +0300
+@@ -8,6 +8,13 @@
+  * old style ubd by setting UBD_SHIFT to 0
+  * 2002-09-27...2002-10-18 massive tinkering for 2.5
+  * partitions have changed in 2.5
++ * 2003-01-29 more tinkering for 2.5.59-1
++ * This should now address the sysfs problems and has
++ * the symlink for devfs to allow for booting with
++ * the common /dev/ubd/discX/... names rather than
++ * only /dev/ubdN/discN this version also has lots of
++ * clean ups preparing for ubd-many.
++ * James McMechan
+  */
+ #define MAJOR_NR UBD_MAJOR
+@@ -40,9 +47,12 @@
+ #include "mconsole_kern.h"
+ #include "init.h"
+ #include "irq_user.h"
++#include "irq_kern.h"
+ #include "ubd_user.h"
+ #include "2_5compat.h"
+ #include "os.h"
++#include "mem.h"
++#include "mem_kern.h"
+ static spinlock_t ubd_io_lock = SPIN_LOCK_UNLOCKED;
+ static spinlock_t ubd_lock = SPIN_LOCK_UNLOCKED;
+@@ -56,6 +66,10 @@
+ #define MAX_DEV (8)
++/* Changed in early boot */
++static int ubd_do_mmap = 0;
++#define UBD_MMAP_BLOCK_SIZE PAGE_SIZE
 +
-+ out_put:
-+      iput(inode);
-+ out_dput:
-+      dput(proc_dentry);
-+ out:
-+      return(ERR_PTR(err));
-+}
+ static struct block_device_operations ubd_blops = {
+         .owner                = THIS_MODULE,
+         .open         = ubd_open,
+@@ -67,7 +81,7 @@
+ static request_queue_t *ubd_queue;
+ /* Protected by ubd_lock */
+-static int fake_major = 0;
++static int fake_major = MAJOR_NR;
+ static struct gendisk *ubd_gendisk[MAX_DEV];
+ static struct gendisk *fake_gendisk[MAX_DEV];
+@@ -96,13 +110,19 @@
+ struct ubd {
+       char *file;
+-      int is_dir;
+       int count;
+       int fd;
+       __u64 size;
+       struct openflags boot_openflags;
+       struct openflags openflags;
++      int no_cow;
+       struct cow cow;
 +
-+static struct inode_operations hppfs_file_iops = {
-+};
++      int map_writes;
++      int map_reads;
++      int nomap_writes;
++      int nomap_reads;
++      int write_maps;
+ };
+ #define DEFAULT_COW { \
+@@ -115,21 +135,28 @@
+ #define DEFAULT_UBD { \
+       .file =                 NULL, \
+-      .is_dir =               0, \
+       .count =                0, \
+       .fd =                   -1, \
+       .size =                 -1, \
+       .boot_openflags =       OPEN_FLAGS, \
+       .openflags =            OPEN_FLAGS, \
++        .no_cow =               0, \
+         .cow =                        DEFAULT_COW, \
++      .map_writes             = 0, \
++      .map_reads              = 0, \
++      .nomap_writes           = 0, \
++      .nomap_reads            = 0, \
++      .write_maps             = 0, \
+ }
+ struct ubd ubd_dev[MAX_DEV] = { [ 0 ... MAX_DEV - 1 ] = DEFAULT_UBD };
+ static int ubd0_init(void)
+ {
+-      if(ubd_dev[0].file == NULL)
+-              ubd_dev[0].file = "root_fs";
++      struct ubd *dev = &ubd_dev[0];
 +
-+static ssize_t read_proc(struct file *file, char *buf, ssize_t count, 
-+                       loff_t *ppos, int is_user)
++      if(dev->file == NULL)
++              dev->file = "root_fs";
+       return(0);
+ }
+@@ -196,19 +223,46 @@
+ "    Create ide0 entries that map onto ubd devices.\n\n"
+ );
++static int parse_unit(char **ptr)
 +{
-+      ssize_t (*read)(struct file *, char *, size_t, loff_t *);
-+      ssize_t n;
-+
-+      read = file->f_dentry->d_inode->i_fop->read;
-+
-+      if(!is_user)
-+              set_fs(KERNEL_DS);
-+              
-+      n = (*read)(file, buf, count, &file->f_pos);
-+
-+      if(!is_user)
-+              set_fs(USER_DS);
++      char *str = *ptr, *end;
++      int n = -1;
 +
-+      if(ppos) *ppos = file->f_pos;
++      if(isdigit(*str)) {
++              n = simple_strtoul(str, &end, 0);
++              if(end == str)
++                      return(-1);
++              *ptr = end;
++      }
++      else if (('a' <= *str) && (*str <= 'h')) {
++              n = *str - 'a';
++              str++;
++              *ptr = str;
++      }
 +      return(n);
 +}
 +
-+static ssize_t hppfs_read_file(int fd, char *buf, ssize_t count)
-+{
-+      ssize_t n;
-+      int cur, err;
-+      char *new_buf;
+ static int ubd_setup_common(char *str, int *index_out)
+ {
++      struct ubd *dev;
+       struct openflags flags = global_openflags;
+       char *backing_file;
+       int n, err;
+       if(index_out) *index_out = -1;
+-      n = *str++;
++      n = *str;
+       if(n == '='){
+-              static int fake_major_allowed = 1;
+               char *end;
+               int major;
++              str++;
++              if(!strcmp(str, "mmap")){
++                      CHOOSE_MODE(printk("mmap not supported by the ubd "
++                                         "driver in tt mode\n"),
++                                  ubd_do_mmap = 1);
++                      return(0);
++              }
 +
-+      n = -ENOMEM;
-+      new_buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
-+      if(new_buf == NULL){
-+              printk("hppfs_read_file : kmalloc failed\n");
-+              goto out;
+               if(!strcmp(str, "sync")){
+                       global_openflags.s = 1;
+                       return(0);
+@@ -220,20 +274,14 @@
+                       return(1);
+               }
+-              if(!fake_major_allowed){
+-                      printk(KERN_ERR "Can't assign a fake major twice\n");
+-                      return(1);
+-              }
+-
+               err = 1;
+               spin_lock(&ubd_lock);
+-              if(!fake_major_allowed){
++              if(fake_major != MAJOR_NR){
+                       printk(KERN_ERR "Can't assign a fake major twice\n");
+                       goto out1;
+               }
+  
+               fake_major = major;
+-              fake_major_allowed = 0;
+               printk(KERN_INFO "Setting extra ubd major number to %d\n",
+                      major);
+@@ -243,25 +291,23 @@
+               return(err);
+       }
+-      if(n < '0'){
+-              printk(KERN_ERR "ubd_setup : index out of range\n"); }
+-
+-      if((n >= '0') && (n <= '9')) n -= '0';
+-      else if((n >= 'a') && (n <= 'z')) n -= 'a';
+-      else {
+-              printk(KERN_ERR "ubd_setup : device syntax invalid\n");
++      n = parse_unit(&str);
++      if(n < 0){
++              printk(KERN_ERR "ubd_setup : couldn't parse unit number "
++                     "'%s'\n", str);
+               return(1);
+       }
+       if(n >= MAX_DEV){
+-              printk(KERN_ERR "ubd_setup : index out of range "
+-                     "(%d devices)\n", MAX_DEV);      
++              printk(KERN_ERR "ubd_setup : index %d out of range "
++                     "(%d devices)\n", n, MAX_DEV);
+               return(1);
+       }
+       err = 1;
+       spin_lock(&ubd_lock);
+-      if(ubd_dev[n].file != NULL){
++      dev = &ubd_dev[n];
++      if(dev->file != NULL){
+               printk(KERN_ERR "ubd_setup : device already configured\n");
+               goto out2;
+       }
+@@ -276,6 +322,11 @@
+               flags.s = 1;
+               str++;
+       }
++      if (*str == 'd'){
++              dev->no_cow = 1;
++              str++;
 +      }
-+      n = 0;
-+      while(count > 0){
-+              cur = min_t(ssize_t, count, PAGE_SIZE);
-+              err = os_read_file(fd, new_buf, cur);
-+              if(err < 0){
-+                      printk("hppfs_read : read failed, errno = %d\n",
-+                             count);
-+                      n = err;
-+                      goto out_free;
++
+       if(*str++ != '='){
+               printk(KERN_ERR "ubd_setup : Expected '='\n");
+               goto out2;
+@@ -284,14 +335,17 @@
+       err = 0;
+       backing_file = strchr(str, ',');
+       if(backing_file){
+-              *backing_file = '\0';
+-              backing_file++;
++              if(dev->no_cow)
++                      printk(KERN_ERR "Can't specify both 'd' and a "
++                             "cow file\n");
++              else {
++                      *backing_file = '\0';
++                      backing_file++;
 +              }
-+              else if(err == 0)
-+                      break;
+       }
+-      ubd_dev[n].file = str;
+-      if(ubd_is_dir(ubd_dev[n].file))
+-              ubd_dev[n].is_dir = 1;
+-      ubd_dev[n].cow.file = backing_file;
+-      ubd_dev[n].boot_openflags = flags;
++      dev->file = str;
++      dev->cow.file = backing_file;
++      dev->boot_openflags = flags;
+  out2:
+       spin_unlock(&ubd_lock);
+       return(err);
+@@ -321,8 +375,7 @@
+ static int fakehd_set = 0;
+ static int fakehd(char *str)
+ {
+-      printk(KERN_INFO 
+-             "fakehd : Changing ubd name to \"hd\".\n");
++      printk(KERN_INFO "fakehd : Changing ubd name to \"hd\".\n");
+       fakehd_set = 1;
+       return 1;
+ }
+@@ -368,32 +421,42 @@
+ {
+       struct io_thread_req req;
+       struct request *rq = elv_next_request(ubd_queue);
+-      int n;
++      int n, err;
+       do_ubd = NULL;
+       intr_count++;
+       n = read_ubd_fs(thread_fd, &req, sizeof(req));
+       if(n != sizeof(req)){
+               printk(KERN_ERR "Pid %d - spurious interrupt in ubd_handler, "
+-                     "errno = %d\n", os_getpid(), -n);
++                     "err = %d\n", os_getpid(), -n);
+               spin_lock(&ubd_io_lock);
+               end_request(rq, 0);
+               spin_unlock(&ubd_io_lock);
+               return;
+       }
+         
+-        if((req.offset != ((__u64) (rq->sector)) << 9) ||
+-         (req.length != (rq->current_nr_sectors) << 9))
++      if((req.op != UBD_MMAP) && 
++         ((req.offset != ((__u64) (rq->sector)) << 9) ||
++          (req.length != (rq->current_nr_sectors) << 9)))
+               panic("I/O op mismatch");
+       
++      if(req.map_fd != -1){
++              err = physmem_subst_mapping(req.buffer, req.map_fd, 
++                                          req.map_offset, 1);
++              if(err)
++                      printk("ubd_handler - physmem_subst_mapping failed, "
++                             "err = %d\n", -err);
++      }
 +
-+              if(copy_to_user(buf, new_buf, err)){
-+                      n = -EFAULT;
-+                      goto out_free;
+       ubd_finish(rq, req.error);
+       reactivate_fd(thread_fd, UBD_IRQ);      
+       do_ubd_request(ubd_queue);
+ }
+-static void ubd_intr(int irq, void *dev, struct pt_regs *unused)
++static irqreturn_t ubd_intr(int irq, void *dev, struct pt_regs *unused)
+ {
+       ubd_handler();
++      return(IRQ_HANDLED);
+ }
+ /* Only changed by ubd_init, which is an initcall. */
+@@ -417,10 +480,14 @@
+ static void ubd_close(struct ubd *dev)
+ {
++      if(ubd_do_mmap)
++              physmem_forget_descriptor(dev->fd);
+       os_close_file(dev->fd);
+       if(dev->cow.file == NULL)
+               return;
++      if(ubd_do_mmap)
++              physmem_forget_descriptor(dev->cow.fd);
+       os_close_file(dev->cow.fd);
+       vfree(dev->cow.bitmap);
+       dev->cow.bitmap = NULL;
+@@ -429,18 +496,20 @@
+ static int ubd_open_dev(struct ubd *dev)
+ {
+       struct openflags flags;
+-      int err, n, create_cow, *create_ptr;
++      char **back_ptr;
++      int err, create_cow, *create_ptr;
++      dev->openflags = dev->boot_openflags;
+       create_cow = 0;
+       create_ptr = (dev->cow.file != NULL) ? &create_cow : NULL;
+-      dev->fd = open_ubd_file(dev->file, &dev->openflags, &dev->cow.file,
++      back_ptr = dev->no_cow ? NULL : &dev->cow.file;
++      dev->fd = open_ubd_file(dev->file, &dev->openflags, back_ptr,
+                               &dev->cow.bitmap_offset, &dev->cow.bitmap_len, 
+                               &dev->cow.data_offset, create_ptr);
+       if((dev->fd == -ENOENT) && create_cow){
+-              n = dev - ubd_dev;
+               dev->fd = create_cow_file(dev->file, dev->cow.file, 
+-                                        dev->openflags, 1 << 9,
++                                        dev->openflags, 1 << 9, PAGE_SIZE,
+                                         &dev->cow.bitmap_offset, 
+                                         &dev->cow.bitmap_len,
+                                         &dev->cow.data_offset);
+@@ -455,13 +524,17 @@
+       if(dev->cow.file != NULL){
+               err = -ENOMEM;
+               dev->cow.bitmap = (void *) vmalloc(dev->cow.bitmap_len);
+-              if(dev->cow.bitmap == NULL) goto error;
++              if(dev->cow.bitmap == NULL){
++                      printk(KERN_ERR "Failed to vmalloc COW bitmap\n");
++                      goto error;
 +              }
-+              n += err;
-+              count -= err;
-+      }
-+ out_free:
-+      kfree(new_buf);
-+ out:
-+      return(n);
-+}
-+
-+static ssize_t hppfs_read(struct file *file, char *buf, size_t count, 
-+                        loff_t *ppos)
-+{
-+      struct hppfs_private *hppfs = file->private_data;
-+      struct hppfs_data *data;
-+      loff_t off;
+               flush_tlb_kernel_vm();
+               err = read_cow_bitmap(dev->fd, dev->cow.bitmap, 
+                                     dev->cow.bitmap_offset, 
+                                     dev->cow.bitmap_len);
+-              if(err) goto error;
++              if(err < 0)
++                      goto error;
+               flags = dev->openflags;
+               flags.w = 0;
+@@ -481,17 +554,31 @@
+                       
+ {
+       struct gendisk *disk;
++      char from[sizeof("ubd/nnnnn\0")], to[sizeof("discnnnnn/disc\0")];
 +      int err;
-+
-+      if(hppfs->contents != NULL){
-+              if(*ppos >= hppfs->len) return(0);
-+
-+              data = hppfs->contents;
-+              off = *ppos;
-+              while(off >= sizeof(data->contents)){
-+                      data = list_entry(data->list.next, struct hppfs_data,
-+                                        list);
-+                      off -= sizeof(data->contents);
-+              }
-+
-+              if(off + count > hppfs->len)
-+                      count = hppfs->len - off;
-+              copy_to_user(buf, &data->contents[off], count);
-+              *ppos += count;
+       disk = alloc_disk(1 << UBD_SHIFT);
+-      if (!disk)
+-              return -ENOMEM;
++      if(disk == NULL)
++              return(-ENOMEM);
+       disk->major = major;
+       disk->first_minor = unit << UBD_SHIFT;
+       disk->fops = &ubd_blops;
+       set_capacity(disk, size / 512);
+-      sprintf(disk->disk_name, "ubd");
+-      sprintf(disk->devfs_name, "ubd/disc%d", unit);
++      if(major == MAJOR_NR){
++              sprintf(disk->disk_name, "ubd%c", 'a' + unit);
++              sprintf(disk->devfs_name, "ubd/disc%d", unit);
++              sprintf(from, "ubd/%d", unit);
++              sprintf(to, "disc%d/disc", unit);
++              err = devfs_mk_symlink(from, to);
++              if(err)
++                      printk("ubd_new_disk failed to make link from %s to "
++                             "%s, error = %d\n", from, to, err);
 +      }
-+      else if(hppfs->host_fd != -1){
-+              err = os_seek_file(hppfs->host_fd, *ppos);
-+              if(err){
-+                      printk("hppfs_read : seek failed, errno = %d\n", err);
-+                      return(err);
-+              }
-+              count = hppfs_read_file(hppfs->host_fd, buf, count);
-+              if(count > 0)
-+                      *ppos += count;
++      else {
++              sprintf(disk->disk_name, "ubd_fake%d", unit);
++              sprintf(disk->devfs_name, "ubd_fake/disc%d", unit);
 +      }
-+      else count = read_proc(&hppfs->proc_file, buf, count, ppos, 1);
-+
-+      return(count);
-+}
-+
-+static ssize_t hppfs_write(struct file *file, const char *buf, size_t len, 
-+                         loff_t *ppos)
-+{
-+      struct hppfs_private *data = file->private_data;
-+      struct file *proc_file = &data->proc_file;
-+      ssize_t (*write)(struct file *, const char *, size_t, loff_t *);
-+      int err;
-+
-+      write = proc_file->f_dentry->d_inode->i_fop->write;
-+
-+      proc_file->f_pos = file->f_pos;
-+      err = (*write)(proc_file, buf, len, &proc_file->f_pos);
-+      file->f_pos = proc_file->f_pos;
-+
-+      return(err);
-+}
-+
-+static int open_host_sock(char *host_file, int *filter_out)
-+{
-+      char *end;
-+      int fd;
-+
-+      end = &host_file[strlen(host_file)];
-+      strcpy(end, "/rw");
-+      *filter_out = 1;
-+      fd = os_connect_socket(host_file);
-+      if(fd > 0)
-+              return(fd);
-+
-+      strcpy(end, "/r");
-+      *filter_out = 0;
-+      fd = os_connect_socket(host_file);
-+      return(fd);
-+}
-+
-+static void free_contents(struct hppfs_data *head)
+       disk->private_data = &ubd_dev[unit];
+       disk->queue = ubd_queue;
+@@ -506,24 +593,21 @@
+       struct ubd *dev = &ubd_dev[n];
+       int err;
+-      if(dev->is_dir)
+-              return(-EISDIR);
+-
+-      if (!dev->file)
++      if(dev->file == NULL)
+               return(-ENODEV);
+       if (ubd_open_dev(dev))
+               return(-ENODEV);
+       err = ubd_file_size(dev, &dev->size);
+-      if(err)
++      if(err < 0)
+               return(err);
+       err = ubd_new_disk(MAJOR_NR, dev->size, n, &ubd_gendisk[n]);
+       if(err) 
+               return(err);
+  
+-      if(fake_major)
++      if(fake_major != MAJOR_NR)
+               ubd_new_disk(fake_major, dev->size, n, 
+                            &fake_gendisk[n]);
+@@ -561,42 +645,42 @@
+       return(err);
+ }
+-static int ubd_get_config(char *dev, char *str, int size, char **error_out)
++static int ubd_get_config(char *name, char *str, int size, char **error_out)
+ {
+-      struct ubd *ubd;
++      struct ubd *dev;
+       char *end;
+-      int major, n = 0;
++      int n, len = 0;
+-      major = simple_strtoul(dev, &end, 0);
+-      if((*end != '\0') || (end == dev)){
+-              *error_out = "ubd_get_config : didn't parse major number";
++      n = simple_strtoul(name, &end, 0);
++      if((*end != '\0') || (end == name)){
++              *error_out = "ubd_get_config : didn't parse device number";
+               return(-1);
+       }
+-      if((major >= MAX_DEV) || (major < 0)){
+-              *error_out = "ubd_get_config : major number out of range";
++      if((n >= MAX_DEV) || (n < 0)){
++              *error_out = "ubd_get_config : device number out of range";
+               return(-1);
+       }
+-      ubd = &ubd_dev[major];
++      dev = &ubd_dev[n];
+       spin_lock(&ubd_lock);
+-      if(ubd->file == NULL){
+-              CONFIG_CHUNK(str, size, n, "", 1);
++      if(dev->file == NULL){
++              CONFIG_CHUNK(str, size, len, "", 1);
+               goto out;
+       }
+-      CONFIG_CHUNK(str, size, n, ubd->file, 0);
++      CONFIG_CHUNK(str, size, len, dev->file, 0);
+-      if(ubd->cow.file != NULL){
+-              CONFIG_CHUNK(str, size, n, ",", 0);
+-              CONFIG_CHUNK(str, size, n, ubd->cow.file, 1);
++      if(dev->cow.file != NULL){
++              CONFIG_CHUNK(str, size, len, ",", 0);
++              CONFIG_CHUNK(str, size, len, dev->cow.file, 1);
+       }
+-      else CONFIG_CHUNK(str, size, n, "", 1);
++      else CONFIG_CHUNK(str, size, len, "", 1);
+  out:
+       spin_unlock(&ubd_lock);
+-      return(n);
++      return(len);
+ }
+ static int ubd_remove(char *str)
+@@ -604,11 +688,9 @@
+       struct ubd *dev;
+       int n, err = -ENODEV;
+-      if(!isdigit(*str))
+-              return(err);    /* it should be a number 0-7/a-h */
++      n = parse_unit(&str);
+-      n = *str - '0';
+-      if(n >= MAX_DEV) 
++      if((n < 0) || (n >= MAX_DEV))
+               return(err);
+       dev = &ubd_dev[n];
+@@ -669,7 +751,7 @@
+               
+       elevator_init(ubd_queue, &elevator_noop);
+-      if (fake_major != 0) {
++      if (fake_major != MAJOR_NR) {
+               char name[sizeof("ubd_nnn\0")];
+               snprintf(name, sizeof(name), "ubd_%d", fake_major);
+@@ -696,6 +778,7 @@
+       io_pid = start_io_thread(stack + PAGE_SIZE - sizeof(void *), 
+                                &thread_fd);
+       if(io_pid < 0){
++              io_pid = -1;
+               printk(KERN_ERR 
+                      "ubd : Failed to start I/O thread (errno = %d) - "
+                      "falling back to synchronous I/O\n", -io_pid);
+@@ -703,8 +786,8 @@
+       }
+       err = um_request_irq(UBD_IRQ, thread_fd, IRQ_READ, ubd_intr, 
+                            SA_INTERRUPT, "ubd", ubd_dev);
+-      if(err != 0) printk(KERN_ERR 
+-                          "um_request_irq failed - errno = %d\n", -err);
++      if(err != 0) 
++              printk(KERN_ERR "um_request_irq failed - errno = %d\n", -err);
+       return(err);
+ }
+@@ -714,15 +797,9 @@
+ {
+       struct gendisk *disk = inode->i_bdev->bd_disk;
+       struct ubd *dev = disk->private_data;
+-      int err = -EISDIR;
+-
+-      if(dev->is_dir == 1)
+-              goto out;
++      int err = 0;
+-      err = 0;
+       if(dev->count == 0){
+-              dev->openflags = dev->boot_openflags;
+-
+               err = ubd_open_dev(dev);
+               if(err){
+                       printk(KERN_ERR "%s: Can't open \"%s\": errno = %d\n",
+@@ -749,62 +826,156 @@
+       return(0);
+ }
+-void cowify_req(struct io_thread_req *req, struct ubd *dev)
++static void cowify_bitmap(__u64 io_offset, int length, unsigned long *cow_mask, 
++                        __u64 *cow_offset, unsigned long *bitmap, 
++                        __u64 bitmap_offset, unsigned long *bitmap_words,
++                        __u64 bitmap_len)
 +{
-+      struct hppfs_data *data;
-+      struct list_head *ele, *next;
-+
-+      if(head == NULL) return;
-+
-+      list_for_each_safe(ele, next, &head->list){
-+              data = list_entry(ele, struct hppfs_data, list);
-+              kfree(data);
-+      }
-+      kfree(head);
-+}
++      __u64 sector = io_offset >> 9;
++      int i, update_bitmap = 0;
 +
-+static struct hppfs_data *hppfs_get_data(int fd, int filter, 
-+                                       struct file *proc_file, 
-+                                       struct file *hppfs_file, 
-+                                       loff_t *size_out)
-+{
-+      struct hppfs_data *data, *new, *head;
-+      int n, err;
++      for(i = 0; i < length >> 9; i++){
++              if(cow_mask != NULL)
++                      ubd_set_bit(i, (unsigned char *) cow_mask);
++              if(ubd_test_bit(sector + i, (unsigned char *) bitmap))
++                      continue;
 +
-+      err = -ENOMEM;
-+      data = kmalloc(sizeof(*data), GFP_KERNEL);
-+      if(data == NULL){
-+              printk("hppfs_get_data : head allocation failed\n");
-+              goto failed;
++              update_bitmap = 1;
++              ubd_set_bit(sector + i, (unsigned char *) bitmap);
 +      }
 +
-+      INIT_LIST_HEAD(&data->list);
-+
-+      head = data;
-+      *size_out = 0;
-+
-+      if(filter){
-+              while((n = read_proc(proc_file, data->contents,
-+                                   sizeof(data->contents), NULL, 0)) > 0)
-+                      os_write_file(fd, data->contents, n);
-+              err = os_shutdown_socket(fd, 0, 1);
-+              if(err){
-+                      printk("hppfs_get_data : failed to shut down "
-+                             "socket\n");
-+                      goto failed_free;
-+              }
-+      }
-+      while(1){
-+              n = os_read_file(fd, data->contents, sizeof(data->contents));
-+              if(n < 0){
-+                      err = n;
-+                      printk("hppfs_get_data : read failed, errno = %d\n",
-+                             err);
-+                      goto failed_free;
-+              }
-+              else if(n == 0)
-+                      break;
++      if(!update_bitmap)
++              return;
 +
-+              *size_out += n;
++      *cow_offset = sector / (sizeof(unsigned long) * 8);
 +
-+              if(n < sizeof(data->contents))
-+                      break;
++      /* This takes care of the case where we're exactly at the end of the
++       * device, and *cow_offset + 1 is off the end.  So, just back it up
++       * by one word.  Thanks to Lynn Kerby for the fix and James McMechan
++       * for the original diagnosis.
++       */
++      if(*cow_offset == ((bitmap_len + sizeof(unsigned long) - 1) / 
++                         sizeof(unsigned long) - 1))
++              (*cow_offset)--;
 +
-+              new = kmalloc(sizeof(*data), GFP_KERNEL);
-+              if(new == 0){
-+                      printk("hppfs_get_data : data allocation failed\n");
-+                      err = -ENOMEM;
-+                      goto failed_free;
-+              }
-+      
-+              INIT_LIST_HEAD(&new->list);
-+              list_add(&new->list, &data->list);
-+              data = new;
-+      }
-+      return(head);
++      bitmap_words[0] = bitmap[*cow_offset];
++      bitmap_words[1] = bitmap[*cow_offset + 1];
 +
-+ failed_free:
-+      free_contents(head);
-+ failed:              
-+      return(ERR_PTR(err));
++      *cow_offset *= sizeof(unsigned long);
++      *cow_offset += bitmap_offset;
 +}
 +
-+static struct hppfs_private *hppfs_data(void)
-+{
-+      struct hppfs_private *data;
-+
-+      data = kmalloc(sizeof(*data), GFP_KERNEL);
-+      if(data == NULL)
-+              return(data);
-+
-+      *data = ((struct hppfs_private ) { .host_fd             = -1,
-+                                         .len                 = -1,
-+                                         .contents            = NULL } );
-+      return(data);
-+}
++static void cowify_req(struct io_thread_req *req, unsigned long *bitmap, 
++                     __u64 bitmap_offset, __u64 bitmap_len)
+ {
+-        int i, update_bitmap, sector = req->offset >> 9;
++      __u64 sector = req->offset >> 9;
++      int i;
+       if(req->length > (sizeof(req->sector_mask) * 8) << 9)
+               panic("Operation too long");
 +
-+static int file_mode(int fmode)
-+{
-+      if(fmode == (FMODE_READ | FMODE_WRITE))
-+              return(O_RDWR);
-+      if(fmode == FMODE_READ)
-+              return(O_RDONLY);
-+      if(fmode == FMODE_WRITE)
-+              return(O_WRONLY);
-+      return(0);
+       if(req->op == UBD_READ) {
+               for(i = 0; i < req->length >> 9; i++){
+-                      if(ubd_test_bit(sector + i, (unsigned char *) 
+-                                      dev->cow.bitmap)){
++                      if(ubd_test_bit(sector + i, (unsigned char *) bitmap))
+                               ubd_set_bit(i, (unsigned char *) 
+                                           &req->sector_mask);
+-                      }
+                 }
+-        } 
+-        else {
+-              update_bitmap = 0;
+-              for(i = 0; i < req->length >> 9; i++){
+-                      ubd_set_bit(i, (unsigned char *) 
+-                                  &req->sector_mask);
+-                      if(!ubd_test_bit(sector + i, (unsigned char *) 
+-                                       dev->cow.bitmap))
+-                              update_bitmap = 1;
+-                      ubd_set_bit(sector + i, (unsigned char *) 
+-                                  dev->cow.bitmap);
+-              }
+-              if(update_bitmap){
+-                      req->cow_offset = sector / (sizeof(unsigned long) * 8);
+-                      req->bitmap_words[0] = 
+-                              dev->cow.bitmap[req->cow_offset];
+-                      req->bitmap_words[1] = 
+-                              dev->cow.bitmap[req->cow_offset + 1];
+-                      req->cow_offset *= sizeof(unsigned long);
+-                      req->cow_offset += dev->cow.bitmap_offset;
++      }
++      else cowify_bitmap(req->offset, req->length, &req->sector_mask,
++                         &req->cow_offset, bitmap, bitmap_offset, 
++                         req->bitmap_words, bitmap_len);
 +}
 +
-+static int hppfs_open(struct inode *inode, struct file *file)
++static int mmap_fd(struct request *req, struct ubd *dev, __u64 offset)
 +{
-+      struct hppfs_private *data;
-+      struct dentry *proc_dentry;
-+      char *host_file;
-+      int err, fd, type, filter;
++      __u64 sector;
++      unsigned char *bitmap;
++      int bit, i;
 +
-+      err = -ENOMEM;
-+      data = hppfs_data();
-+      if(data == NULL)
-+              goto out;
++      /* mmap must have been requested on the command line */
++      if(!ubd_do_mmap)
++              return(-1);
 +
-+      host_file = dentry_name(file->f_dentry, strlen("/rw"));
-+      if(host_file == NULL)
-+              goto out_free2;
++      /* The buffer must be page aligned */
++      if(((unsigned long) req->buffer % UBD_MMAP_BLOCK_SIZE) != 0)
++              return(-1);
 +
-+      proc_dentry = HPPFS_I(inode)->proc_dentry;
++      /* The request must be a page long */
++      if((req->current_nr_sectors << 9) != PAGE_SIZE)
++              return(-1);
 +
-+      /* XXX This isn't closed anywhere */
-+      err = open_private_file(&data->proc_file, proc_dentry, 
-+                              file_mode(file->f_mode));
-+      if(err)
-+              goto out_free1;
++      if(dev->cow.file == NULL)
++              return(dev->fd);
 +
-+      type = os_file_type(host_file);
-+      if(type == OS_TYPE_FILE){
-+              fd = os_open_file(host_file, of_read(OPENFLAGS()), 0);
-+              if(fd >= 0) 
-+                      data->host_fd = fd;
-+              else printk("hppfs_open : failed to open '%s', errno = %d\n",
-+                          host_file, -fd);
++      sector = offset >> 9;
++      bitmap = (unsigned char *) dev->cow.bitmap;
++      bit = ubd_test_bit(sector, bitmap);
 +
-+              data->contents = NULL;
-+      }
-+      else if(type == OS_TYPE_DIR){
-+              fd = open_host_sock(host_file, &filter);
-+              if(fd > 0){
-+                      data->contents = hppfs_get_data(fd, filter, 
-+                                                      &data->proc_file, 
-+                                                      file, &data->len);
-+                      if(!IS_ERR(data->contents))
-+                              data->host_fd = fd;
-+              }
-+              else printk("hppfs_open : failed to open a socket in "
-+                          "'%s', errno = %d\n", host_file, -fd);
++      for(i = 1; i < req->current_nr_sectors; i++){
++              if(ubd_test_bit(sector + i, bitmap) != bit)
++                      return(-1);
 +      }
-+      kfree(host_file);
 +
-+      file->private_data = data;
-+      return(0);
++      if(bit || (rq_data_dir(req) == WRITE))
++              offset += dev->cow.data_offset;
 +
-+ out_free1:
-+      kfree(host_file);
-+ out_free2:
-+      free_contents(data->contents);
-+      kfree(data);
-+ out:
-+      return(err);
++      /* The data on disk must be page aligned */
++      if((offset % UBD_MMAP_BLOCK_SIZE) != 0)
++              return(-1);
++
++      return(bit ? dev->fd : dev->cow.fd);
 +}
 +
-+static int hppfs_dir_open(struct inode *inode, struct file *file)
++static int prepare_mmap_request(struct ubd *dev, int fd, __u64 offset, 
++                              struct request *req, 
++                              struct io_thread_req *io_req)
 +{
-+      struct hppfs_private *data;
-+      struct dentry *proc_dentry;
 +      int err;
 +
-+      err = -ENOMEM;
-+      data = hppfs_data();
-+      if(data == NULL)
-+              goto out;
++      if(rq_data_dir(req) == WRITE){
++              /* Writes are almost no-ops since the new data is already in the
++               * host page cache
++               */
++              dev->map_writes++;
++              if(dev->cow.file != NULL)
++                      cowify_bitmap(io_req->offset, io_req->length, 
++                                    &io_req->sector_mask, &io_req->cow_offset,
++                                    dev->cow.bitmap, dev->cow.bitmap_offset,
++                                    io_req->bitmap_words, 
++                                    dev->cow.bitmap_len);
++      }
++      else {
++              int w;
 +
-+      proc_dentry = HPPFS_I(inode)->proc_dentry;
-+      err = open_private_file(&data->proc_file, proc_dentry, 
-+                              file_mode(file->f_mode));
-+      if(err)
-+              goto out_free;
++              if((dev->cow.file != NULL) && (fd == dev->cow.fd))
++                      w = 0;
++              else w = dev->openflags.w;
 +
-+      file->private_data = data;
++              if((dev->cow.file != NULL) && (fd == dev->fd))
++                      offset += dev->cow.data_offset;
++
++              err = physmem_subst_mapping(req->buffer, fd, offset, w);
++              if(err){
++                      printk("physmem_subst_mapping failed, err = %d\n", 
++                             -err);
++                      return(1);
+               }
++              dev->map_reads++;
+       }
++      io_req->op = UBD_MMAP;
++      io_req->buffer = req->buffer;
 +      return(0);
+ }
+ static int prepare_request(struct request *req, struct io_thread_req *io_req)
+ {
+       struct gendisk *disk = req->rq_disk;
+       struct ubd *dev = disk->private_data;
+-      __u64 block;
+-      int nsect;
++      __u64 offset;
++      int len, fd;
+       if(req->rq_status == RQ_INACTIVE) return(1);
+-      if(dev->is_dir){
+-              strcpy(req->buffer, "HOSTFS:");
+-              strcat(req->buffer, dev->file);
+-              spin_lock(&ubd_io_lock);
+-              end_request(req, 1);
+-              spin_unlock(&ubd_io_lock);
+-              return(1);
+-      }
+-
+       if((rq_data_dir(req) == WRITE) && !dev->openflags.w){
+               printk("Write attempted on readonly ubd device %s\n", 
+                      disk->disk_name);
+@@ -814,23 +985,49 @@
+               return(1);
+       }
+-        block = req->sector;
+-        nsect = req->current_nr_sectors;
++      offset = ((__u64) req->sector) << 9;
++      len = req->current_nr_sectors << 9;
+-      io_req->op = rq_data_dir(req) == READ ? UBD_READ : UBD_WRITE;
+       io_req->fds[0] = (dev->cow.file != NULL) ? dev->cow.fd : dev->fd;
+       io_req->fds[1] = dev->fd;
++      io_req->map_fd = -1;
++      io_req->cow_offset = -1;
++      io_req->offset = offset;
++      io_req->length = len;
++      io_req->error = 0;
++      io_req->sector_mask = 0;
 +
-+ out_free:
-+      kfree(data);
-+ out:
-+      return(err);
-+}
++      fd = mmap_fd(req, dev, io_req->offset);
++      if(fd > 0){
++              /* If mmapping is otherwise OK, but the first access to the 
++               * page is a write, then it's not mapped in yet.  So we have 
++               * to write the data to disk first, then we can map the disk
++               * page in and continue normally from there.
++               */
++              if((rq_data_dir(req) == WRITE) && !is_remapped(req->buffer)){
++                      io_req->map_fd = dev->fd;
++                      io_req->map_offset = io_req->offset + 
++                              dev->cow.data_offset;
++                      dev->write_maps++;
++              }
++              else return(prepare_mmap_request(dev, fd, io_req->offset, req, 
++                                               io_req));
++      }
 +
-+static loff_t hppfs_llseek(struct file *file, loff_t off, int where)
++      if(rq_data_dir(req) == READ)
++              dev->nomap_reads++;
++      else dev->nomap_writes++;
++
++      io_req->op = (rq_data_dir(req) == READ) ? UBD_READ : UBD_WRITE;
+       io_req->offsets[0] = 0;
+       io_req->offsets[1] = dev->cow.data_offset;
+-      io_req->offset = ((__u64) block) << 9;
+-      io_req->length = nsect << 9;
+       io_req->buffer = req->buffer;
+       io_req->sectorsize = 1 << 9;
+-      io_req->sector_mask = 0;
+-      io_req->cow_offset = -1;
+-      io_req->error = 0;
+-        if(dev->cow.file != NULL) cowify_req(io_req, dev);
++      if(dev->cow.file != NULL) 
++              cowify_req(io_req, dev->cow.bitmap, dev->cow.bitmap_offset,
++                         dev->cow.bitmap_len);
++
+       return(0);
+ }
+@@ -841,7 +1038,7 @@
+       int err, n;
+       if(thread_fd == -1){
+-              while(!list_empty(&q->queue_head)){
++              while(!elv_queue_empty(q)){
+                       req = elv_next_request(q);
+                       err = prepare_request(req, &io_req);
+                       if(!err){
+@@ -851,7 +1048,8 @@
+               }
+       }
+       else {
+-              if(do_ubd || list_empty(&q->queue_head)) return;
++              if(do_ubd || elv_queue_empty(q))
++                      return;
+               req = elv_next_request(q);
+               err = prepare_request(req, &io_req);
+               if(!err){
+@@ -885,7 +1083,7 @@
+               g.heads = 128;
+               g.sectors = 32;
+               g.cylinders = dev->size / (128 * 32 * 512);
+-              g.start = 2;
++              g.start = get_start_sect(inode->i_bdev);
+               return(copy_to_user(loc, &g, sizeof(g)) ? -EFAULT : 0);
+       case HDIO_SET_UNMASKINTR:
+@@ -935,6 +1133,142 @@
+       return(-EINVAL);
+ }
++static int ubd_check_remapped(int fd, unsigned long address, int is_write,
++                            __u64 offset)
 +{
-+      struct hppfs_private *data = file->private_data;
-+      struct file *proc_file = &data->proc_file;
-+      loff_t (*llseek)(struct file *, loff_t, int);
-+      loff_t ret;
++      __u64 bitmap_offset;
++      unsigned long new_bitmap[2];
++      int i, err, n;
 +
-+      llseek = proc_file->f_dentry->d_inode->i_fop->llseek;
-+      if(llseek != NULL){
-+              ret = (*llseek)(proc_file, off, where);
-+              if(ret < 0)
-+                      return(ret);
-+      }
++      /* If it's not a write access, we can't do anything about it */
++      if(!is_write)
++              return(0);
 +
-+      return(default_llseek(file, off, where));
-+}
++      /* We have a write */
++      for(i = 0; i < sizeof(ubd_dev) / sizeof(ubd_dev[0]); i++){
++              struct ubd *dev = &ubd_dev[i];
 +
-+static struct file_operations hppfs_file_fops = {
-+      .owner          = NULL,
-+      .llseek         = hppfs_llseek,
-+      .read           = hppfs_read,
-+      .write          = hppfs_write,
-+      .open           = hppfs_open,
-+};
++              if((dev->fd != fd) && (dev->cow.fd != fd))
++                      continue;
 +
-+struct hppfs_dirent {
-+      void *vfs_dirent;
-+      filldir_t filldir;
-+      struct dentry *dentry;
-+};
++              /* It's a write to a ubd device */
 +
-+static int hppfs_filldir(void *d, const char *name, int size, 
-+                       loff_t offset, ino_t inode, unsigned int type)
-+{
-+      struct hppfs_dirent *dirent = d;
++              if(!dev->openflags.w){
++                      /* It's a write access on a read-only device - probably
++                       * shouldn't happen.  If the kernel is trying to change
++                       * something with no intention of writing it back out,
++                       * then this message will clue us in that this needs
++                       * fixing
++                       */
++                      printk("Write access to mapped page from readonly ubd "
++                             "device %d\n", i);
++                      return(0);
++              }
 +
-+      if(file_removed(dirent->dentry, name))
-+              return(0);
++              /* It's a write to a writeable ubd device - it must be COWed
++               * because, otherwise, the page would have been mapped in 
++               * writeable
++               */
 +
-+      return((*dirent->filldir)(dirent->vfs_dirent, name, size, offset, 
-+                                inode, type));
-+}
++              if(!dev->cow.file)
++                      panic("Write fault on writeable non-COW ubd device %d",
++                            i);
 +
-+static int hppfs_readdir(struct file *file, void *ent, filldir_t filldir)
-+{
-+      struct hppfs_private *data = file->private_data;
-+      struct file *proc_file = &data->proc_file;
-+      int (*readdir)(struct file *, void *, filldir_t);
-+      struct hppfs_dirent dirent = ((struct hppfs_dirent)
-+                                    { .vfs_dirent     = ent,
-+                                      .filldir        = filldir,
-+                                      .dentry         = file->f_dentry } );
-+      int err;
++              /* It should also be an access to the backing file since the 
++               * COW pages should be mapped in read-write
++               */
++
++              if(fd == dev->fd)
++                      panic("Write fault on a backing page of ubd "
++                            "device %d\n", i);
++
++              /* So, we do the write, copying the backing data to the COW 
++               * file... 
++               */
 +
-+      readdir = proc_file->f_dentry->d_inode->i_fop->readdir;
++              err = os_seek_file(dev->fd, offset + dev->cow.data_offset);
++              if(err < 0)
++                      panic("Couldn't seek to %lld in COW file of ubd "
++                            "device %d, err = %d", 
++                            offset + dev->cow.data_offset, i, -err);
 +
-+      proc_file->f_pos = file->f_pos;
-+      err = (*readdir)(proc_file, &dirent, hppfs_filldir);
-+      file->f_pos = proc_file->f_pos;
++              n = os_write_file(dev->fd, (void *) address, PAGE_SIZE);
++              if(n != PAGE_SIZE)
++                      panic("Couldn't copy data to COW file of ubd "
++                            "device %d, err = %d", i, -n);
 +
-+      return(err);
-+}
++              /* ... updating the COW bitmap... */
 +
-+static int hppfs_fsync(struct file *file, struct dentry *dentry, int datasync)
-+{
-+      return(0);
-+}
++              cowify_bitmap(offset, PAGE_SIZE, NULL, &bitmap_offset, 
++                            dev->cow.bitmap, dev->cow.bitmap_offset, 
++                            new_bitmap, dev->cow.bitmap_len);
 +
-+static struct file_operations hppfs_dir_fops = {
-+      .owner          = NULL,
-+      .readdir        = hppfs_readdir,
-+      .open           = hppfs_dir_open,
-+      .fsync          = hppfs_fsync,
-+};
++              err = os_seek_file(dev->fd, bitmap_offset);
++              if(err < 0)
++                      panic("Couldn't seek to %lld in COW file of ubd "
++                            "device %d, err = %d", bitmap_offset, i, -err);
 +
-+static int hppfs_statfs(struct super_block *sb, struct kstatfs *sf)
-+{
-+      sf->f_blocks = 0;
-+      sf->f_bfree = 0;
-+      sf->f_bavail = 0;
-+      sf->f_files = 0;
-+      sf->f_ffree = 0;
-+      sf->f_type = HPPFS_SUPER_MAGIC;
-+      return(0);
-+}
++              n = os_write_file(dev->fd, new_bitmap, sizeof(new_bitmap));
++              if(n != sizeof(new_bitmap))
++                      panic("Couldn't update bitmap  of ubd device %d, "
++                            "err = %d", i, -n);
++              
++              /* Maybe we can map the COW page in, and maybe we can't.  If
++               * it is a pre-V3 COW file, we can't, since the alignment will 
++               * be wrong.  If it is a V3 or later COW file which has been 
++               * moved to a system with a larger page size, then maybe we 
++               * can't, depending on the exact location of the page.
++               */
 +
-+static struct inode *hppfs_alloc_inode(struct super_block *sb)
-+{
-+      struct hppfs_inode_info *hi;
++              offset += dev->cow.data_offset;
 +
-+      hi = kmalloc(sizeof(*hi), GFP_KERNEL);
-+      if(hi == NULL) 
-+              return(NULL);
++              /* Remove the remapping, putting the original anonymous page
++               * back.  If the COW file can be mapped in, that is done.
++               * Otherwise, the COW page is read in.
++               */
 +
-+      *hi = ((struct hppfs_inode_info) { .proc_dentry = NULL });
-+      inode_init_once(&hi->vfs_inode);
-+      return(&hi->vfs_inode);
-+}
++              if(!physmem_remove_mapping((void *) address))
++                      panic("Address 0x%lx not remapped by ubd device %d", 
++                            address, i);
++              if((offset % UBD_MMAP_BLOCK_SIZE) == 0)
++                      physmem_subst_mapping((void *) address, dev->fd, 
++                                            offset, 1);
++              else {
++                      err = os_seek_file(dev->fd, offset);
++                      if(err < 0)
++                              panic("Couldn't seek to %lld in COW file of "
++                                    "ubd device %d, err = %d", offset, i, 
++                                    -err);
 +
-+void hppfs_delete_inode(struct inode *ino)
-+{
-+      clear_inode(ino);
-+}
++                      n = os_read_file(dev->fd, (void *) address, PAGE_SIZE);
++                      if(n != PAGE_SIZE)
++                              panic("Failed to read page from offset %llx of "
++                                    "COW file of ubd device %d, err = %d",
++                                    offset, i, -n);
++              }
 +
-+static void hppfs_destroy_inode(struct inode *inode)
-+{
-+      kfree(HPPFS_I(inode));
++              return(1);
++      }
++
++      /* It's not a write on a ubd device */
++      return(0);
 +}
 +
-+static struct super_operations hppfs_sbops = { 
-+      .alloc_inode    = hppfs_alloc_inode,
-+      .destroy_inode  = hppfs_destroy_inode,
-+      .read_inode     = hppfs_read_inode,
-+      .delete_inode   = hppfs_delete_inode,
-+      .statfs         = hppfs_statfs,
++static struct remapper ubd_remapper = {
++      .list   = LIST_HEAD_INIT(ubd_remapper.list),
++      .proc   = ubd_check_remapped,
 +};
 +
-+static int hppfs_readlink(struct dentry *dentry, char *buffer, int buflen)
++static int ubd_remapper_setup(void)
 +{
-+      struct file proc_file;
-+      struct dentry *proc_dentry;
-+      int (*readlink)(struct dentry *, char *, int);
-+      int err, n;
-+
-+      proc_dentry = HPPFS_I(dentry->d_inode)->proc_dentry;
-+      err = open_private_file(&proc_file, proc_dentry, O_RDONLY);
-+      if(err) 
-+              return(err);
-+
-+      readlink = proc_dentry->d_inode->i_op->readlink;
-+      n = (*readlink)(proc_dentry, buffer, buflen);
++      if(ubd_do_mmap)
++              register_remapper(&ubd_remapper);
 +
-+      close_private_file(&proc_file);
-+      
-+      return(n);
++      return(0);
 +}
 +
-+static int hppfs_follow_link(struct dentry *dentry, struct nameidata *nd)
++__initcall(ubd_remapper_setup);
++
+ /*
+  * Overrides for Emacs so that we follow Linus's tabbing style.
+  * Emacs will notice this stuff at the end of the file and automatically
+Index: uml-2.6.7/arch/um/drivers/xterm.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/xterm.c     2004-07-16 19:35:55.930765080 +0300
++++ uml-2.6.7/arch/um/drivers/xterm.c  2004-07-16 19:47:23.699208384 +0300
+@@ -8,7 +8,6 @@
+ #include <unistd.h>
+ #include <string.h>
+ #include <errno.h>
+-#include <fcntl.h>
+ #include <termios.h>
+ #include <signal.h>
+ #include <sched.h>
+@@ -36,7 +35,8 @@
+ {
+       struct xterm_chan *data;
+-      if((data = malloc(sizeof(*data))) == NULL) return(NULL);
++      data = malloc(sizeof(*data));
++      if(data == NULL) return(NULL);
+       *data = ((struct xterm_chan) { .pid             = -1, 
+                                      .helper_pid      = -1,
+                                      .device          = device, 
+@@ -93,7 +93,7 @@
+                        "/usr/lib/uml/port-helper", "-uml-socket",
+                        file, NULL };
+-      if(access(argv[4], X_OK))
++      if(os_access(argv[4], OS_ACC_X_OK) < 0)
+               argv[4] = "port-helper";
+       fd = mkstemp(file);
+@@ -106,13 +106,13 @@
+               printk("xterm_open : unlink failed, errno = %d\n", errno);
+               return(-errno);
+       }
+-      close(fd);
++      os_close_file(fd);
+-      fd = create_unix_socket(file, sizeof(file));
++      fd = os_create_unix_socket(file, sizeof(file), 1);
+       if(fd < 0){
+               printk("xterm_open : create_unix_socket failed, errno = %d\n", 
+                      -fd);
+-              return(-fd);
++              return(fd);
+       }
+       sprintf(title, data->title, data->device);
+@@ -128,15 +128,16 @@
+       if(data->direct_rcv)
+               new = os_rcv_fd(fd, &data->helper_pid);
+       else {
+-              if((err = os_set_fd_block(fd, 0)) != 0){
++              err = os_set_fd_block(fd, 0);
++              if(err < 0){
+                       printk("xterm_open : failed to set descriptor "
+-                             "non-blocking, errno = %d\n", err);
++                             "non-blocking, err = %d\n", -err);
+                       return(err);
+               }
+               new = xterm_fd(fd, &data->helper_pid);
+       }
+       if(new < 0){
+-              printk("xterm_open : os_rcv_fd failed, errno = %d\n", -new);
++              printk("xterm_open : os_rcv_fd failed, err = %d\n", -new);
+               goto out;
+       }
+@@ -160,7 +161,7 @@
+       if(data->helper_pid != -1) 
+               os_kill_process(data->helper_pid, 0);
+       data->helper_pid = -1;
+-      close(fd);
++      os_close_file(fd);
+ }
+ void xterm_free(void *d)
+Index: uml-2.6.7/arch/um/drivers/mconsole_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/mconsole_kern.c     2004-07-16 19:35:52.654263184 +0300
++++ uml-2.6.7/arch/um/drivers/mconsole_kern.c  2004-07-16 19:47:23.687210208 +0300
+@@ -1,6 +1,6 @@
+ /*
+  * Copyright (C) 2001 Lennert Buytenhek (buytenh@gnu.org)
+- * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
++ * Copyright (C) 2001 - 2003 Jeff Dike (jdike@addtoit.com)
+  * Licensed under the GPL
+  */
+@@ -15,6 +15,9 @@
+ #include "linux/sysrq.h"
+ #include "linux/workqueue.h"
+ #include "linux/module.h"
++#include "linux/file.h"
++#include "linux/fs.h"
++#include "linux/namei.h"
+ #include "linux/proc_fs.h"
+ #include "asm/irq.h"
+ #include "asm/uaccess.h"
+@@ -27,6 +30,7 @@
+ #include "init.h"
+ #include "os.h"
+ #include "umid.h"
++#include "irq_kern.h"
+ static int do_unlink_socket(struct notifier_block *notifier, 
+                           unsigned long what, void *data)
+@@ -67,7 +71,7 @@
+ DECLARE_WORK(mconsole_work, mc_work_proc, NULL);
+-void mconsole_interrupt(int irq, void *dev_id, struct pt_regs *regs)
++irqreturn_t mconsole_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+ {
+       int fd;
+       struct mconsole_entry *new;
+@@ -75,9 +79,10 @@
+       fd = (int) dev_id;
+       while (mconsole_get_request(fd, &req)){
+-              if(req.cmd->as_interrupt) (*req.cmd->handler)(&req);
++              if(req.cmd->context == MCONSOLE_INTR) 
++                      (*req.cmd->handler)(&req);
+               else {
+-                      new = kmalloc(sizeof(req), GFP_ATOMIC);
++                      new = kmalloc(sizeof(*new), GFP_ATOMIC);
+                       if(new == NULL)
+                               mconsole_reply(&req, "Out of memory", 1, 0);
+                       else {
+@@ -88,6 +93,7 @@
+       }
+       if(!list_empty(&mc_requests)) schedule_work(&mconsole_work);
+       reactivate_fd(fd, MCONSOLE_IRQ);
++      return(IRQ_HANDLED);
+ }
+ void mconsole_version(struct mc_request *req)
+@@ -100,20 +106,109 @@
+       mconsole_reply(req, version, 0, 0);
+ }
++void mconsole_log(struct mc_request *req)
 +{
-+      struct file proc_file;
-+      struct dentry *proc_dentry;
-+      int (*follow_link)(struct dentry *, struct nameidata *);
-+      int err, n;
-+
-+      proc_dentry = HPPFS_I(dentry->d_inode)->proc_dentry;
-+      err = open_private_file(&proc_file, proc_dentry, O_RDONLY);
-+      if(err) 
-+              return(err);
-+
-+      follow_link = proc_dentry->d_inode->i_op->follow_link;
-+      n = (*follow_link)(proc_dentry, nd);
-+
-+      close_private_file(&proc_file);
++      int len;
++      char *ptr = req->request.data;
 +      
-+      return(n);
-+}
-+
-+static struct inode_operations hppfs_dir_iops = {
-+      .lookup         = hppfs_lookup,
-+};
-+
-+static struct inode_operations hppfs_link_iops = {
-+      .readlink       = hppfs_readlink,
-+      .follow_link    = hppfs_follow_link,
-+};
-+
-+static int init_inode(struct inode *inode, struct dentry *dentry)
-+{
-+      if(S_ISDIR(dentry->d_inode->i_mode)){
-+              inode->i_op = &hppfs_dir_iops;
-+              inode->i_fop = &hppfs_dir_fops;
-+      }
-+      else if(S_ISLNK(dentry->d_inode->i_mode)){
-+              inode->i_op = &hppfs_link_iops;
-+              inode->i_fop = &hppfs_file_fops;
-+      }
-+      else {
-+              inode->i_op = &hppfs_file_iops;
-+              inode->i_fop = &hppfs_file_fops;
-+      }
-+
-+      HPPFS_I(inode)->proc_dentry = dentry;
++      ptr += strlen("log ");
 +
-+      return(0);
++      len = req->len - (ptr - req->request.data);
++      printk("%.*s", len, ptr);
++      mconsole_reply(req, "", 0, 0);
 +}
 +
-+static int hppfs_fill_super(struct super_block *sb, void *d, int silent)
++void mconsole_proc(struct mc_request *req)
 +{
-+      struct inode *root_inode;
-+      struct file_system_type *procfs;
-+      struct super_block *proc_sb;
-+      int err;
-+
-+      err = -ENOENT;
-+      procfs = get_fs_type("proc");
-+      if(procfs == NULL) 
-+              goto out;
-+
-+      if(list_empty(&procfs->fs_supers))
-+              goto out;
-+
-+      proc_sb = list_entry(procfs->fs_supers.next, struct super_block,
-+                           s_instances);
++      struct nameidata nd;
++      struct file_system_type *proc;
++      struct super_block *super;
++      struct file *file;
++      int n, err;
++      char *ptr = req->request.data, *buf;
 +      
-+      sb->s_blocksize = 1024;
-+      sb->s_blocksize_bits = 10;
-+      sb->s_magic = HPPFS_SUPER_MAGIC;
-+      sb->s_op = &hppfs_sbops;
++      ptr += strlen("proc");
++      while(isspace(*ptr)) ptr++;
 +
-+      root_inode = iget(sb, 0);
-+      if(root_inode == NULL)
++      proc = get_fs_type("proc");
++      if(proc == NULL){
++              mconsole_reply(req, "procfs not registered", 1, 0);
 +              goto out;
++      }
 +
-+      err = init_inode(root_inode, proc_sb->s_root);
-+      if(err)
-+              goto out_put;
-+
-+      err = -ENOMEM;
-+      sb->s_root = d_alloc_root(root_inode);
-+      if(sb->s_root == NULL)
-+              goto out_put;
-+
-+      hppfs_read_inode(root_inode);
++      super = (*proc->get_sb)(proc, 0, NULL, NULL);
++      put_filesystem(proc);
++      if(super == NULL){
++              mconsole_reply(req, "Failed to get procfs superblock", 1, 0);
++              goto out;
++      }
++      up_write(&super->s_umount);
 +
-+      return(0);
++      nd.dentry = super->s_root;
++      nd.mnt = NULL;
++      nd.flags = O_RDONLY + 1;
++      nd.last_type = LAST_ROOT;
 +
-+ out_put:
-+      iput(root_inode);
-+ out:
-+      return(err);
-+}
++      err = link_path_walk(ptr, &nd);
++      if(err){
++              mconsole_reply(req, "Failed to look up file", 1, 0);
++              goto out_kill;
++      }
 +
-+static struct super_block *hppfs_read_super(struct file_system_type *type,
-+                                           int flags, const char *dev_name,
-+                                           void *data)
-+{
-+      return(get_sb_nodev(type, flags, data, hppfs_fill_super));
-+}
++      file = dentry_open(nd.dentry, nd.mnt, O_RDONLY);
++      if(IS_ERR(file)){
++              mconsole_reply(req, "Failed to open file", 1, 0);
++              goto out_kill;
++      }
 +
-+static struct file_system_type hppfs_type = {
-+      .owner          = THIS_MODULE,
-+      .name           = "hppfs",
-+      .get_sb         = hppfs_read_super,
-+      .kill_sb        = kill_anon_super,
-+      .fs_flags       = 0,
-+};
++      buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
++      if(buf == NULL){
++              mconsole_reply(req, "Failed to allocate buffer", 1, 0);
++              goto out_fput;
++      }
 +
-+static int __init init_hppfs(void)
-+{
-+      return(register_filesystem(&hppfs_type));
-+}
++      if((file->f_op != NULL) && (file->f_op->read != NULL)){
++              do {
++                      n = (*file->f_op->read)(file, buf, PAGE_SIZE - 1, 
++                                              &file->f_pos);
++                      if(n >= 0){
++                              buf[n] = '\0';
++                              mconsole_reply(req, buf, 0, (n > 0));
++                      }
++                      else {
++                              mconsole_reply(req, "Read of file failed", 
++                                             1, 0);
++                              goto out_free;
++                      }
++              } while(n > 0);
++      }
++      else mconsole_reply(req, "", 0, 0);
 +
-+static void __exit exit_hppfs(void)
-+{
-+      unregister_filesystem(&hppfs_type);
++ out_free:
++      kfree(buf);
++ out_fput:
++      fput(file);
++ out_kill:
++      deactivate_super(super);
++ out: ;
 +}
 +
-+module_init(init_hppfs)
-+module_exit(exit_hppfs)
-+MODULE_LICENSE("GPL");
-+
-+/*
-+ * Overrides for Emacs so that we follow Linus's tabbing style.
-+ * Emacs will notice this stuff at the end of the file and automatically
-+ * adjust the settings for this buffer only.  This must remain at the end
-+ * of the file.
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
-diff -Naur a/fs/hppfs/Makefile b/fs/hppfs/Makefile
---- a/fs/hppfs/Makefile        1969-12-31 19:00:00.000000000 -0500
-+++ b/fs/hppfs/Makefile        2004-03-10 08:39:13.000000000 -0500
-@@ -0,0 +1,19 @@
-+# 
-+# Copyright (C) 2002, 2003 Jeff Dike (jdike@karaya.com)
-+# Licensed under the GPL
-+#
-+
-+hppfs-objs := hppfs_kern.o
+ #define UML_MCONSOLE_HELPTEXT \
+-"Commands:
+-    version - Get kernel version
+-    help - Print this message
+-    halt - Halt UML
+-    reboot - Reboot UML
+-    config <dev>=<config> - Add a new device to UML; 
+-      same syntax as command line
+-    config <dev> - Query the configuration of a device
+-    remove <dev> - Remove a device from UML
+-    sysrq <letter> - Performs the SysRq action controlled by the letter
+-    cad - invoke the Ctl-Alt-Del handler
+-    stop - pause the UML; it will do nothing until it receives a 'go'
+-    go - continue the UML after a 'stop'
++"Commands: \n\
++    version - Get kernel version \n\
++    help - Print this message \n\
++    halt - Halt UML \n\
++    reboot - Reboot UML \n\
++    config <dev>=<config> - Add a new device to UML;  \n\
++      same syntax as command line \n\
++    config <dev> - Query the configuration of a device \n\
++    remove <dev> - Remove a device from UML \n\
++    sysrq <letter> - Performs the SysRq action controlled by the letter \n\
++    cad - invoke the Ctl-Alt-Del handler \n\
++    stop - pause the UML; it will do nothing until it receives a 'go' \n\
++    go - continue the UML after a 'stop' \n\
++    log <string> - make UML enter <string> into the kernel log\n\
++    proc <file> - returns the contents of the UML's /proc/<file>\n\
+ "
+ void mconsole_help(struct mc_request *req)
+@@ -302,7 +397,7 @@
+       if(umid_file_name("mconsole", file, sizeof(file))) return(-1);
+       snprintf(mconsole_socket_name, sizeof(file), "%s", file);
+-      sock = create_unix_socket(file, sizeof(file));
++      sock = os_create_unix_socket(file, sizeof(file), 1);
+       if (sock < 0){
+               printk("Failed to initialize management console\n");
+               return(1);
+@@ -344,11 +439,16 @@
+       if(buf == NULL) 
+               return(-ENOMEM);
+-      if(copy_from_user(buf, buffer, count))
+-              return(-EFAULT);
++      if(copy_from_user(buf, buffer, count)){
++              count = -EFAULT;
++              goto out;
++      }
 +
-+obj-y = 
-+obj-$(CONFIG_HPPFS) += hppfs.o
+       buf[count] = '\0';
+       mconsole_notify(notify_socket, MCONSOLE_USER_NOTIFY, buf, count);
++ out:
++      kfree(buf);
+       return(count);
+ }
+Index: uml-2.6.7/arch/um/Makefile-skas
+===================================================================
+--- uml-2.6.7.orig/arch/um/Makefile-skas       2004-07-16 19:36:37.092507544 +0300
++++ uml-2.6.7/arch/um/Makefile-skas    2004-07-16 19:47:23.764198504 +0300
+@@ -14,7 +14,7 @@
+ LINK_SKAS = -Wl,-rpath,/lib 
+ LD_SCRIPT_SKAS = dyn.lds.s
+-GEN_HEADERS += $(ARCH_DIR)/kernel/skas/include/skas_ptregs.h
++GEN_HEADERS += $(TOPDIR)/$(ARCH_DIR)/include/skas_ptregs.h
+-$(ARCH_DIR)/kernel/skas/include/skas_ptregs.h :
+-      $(MAKE) -C $(ARCH_DIR)/kernel/skas include/skas_ptregs.h
++$(TOPDIR)/$(ARCH_DIR)/include/skas_ptregs.h :
++      $(Q)$(MAKE) $(build)=$(ARCH_DIR)/kernel/skas $@
+Index: uml-2.6.7/arch/um/kernel/sys_call_table.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/sys_call_table.c     2004-07-16 19:37:20.386925792 +0300
++++ uml-2.6.7/arch/um/kernel/sys_call_table.c  2004-07-16 19:47:23.739202304 +0300
+@@ -5,7 +5,6 @@
+ #include "linux/config.h"
+ #include "linux/unistd.h"
+-#include "linux/version.h"
+ #include "linux/sys.h"
+ #include "linux/swap.h"
+ #include "linux/syscalls.h"
+@@ -14,251 +13,50 @@
+ #include "sysdep/syscalls.h"
+ #include "kern_util.h"
+-extern syscall_handler_t sys_restart_syscall;
+-extern syscall_handler_t sys_ni_syscall;
+-extern syscall_handler_t sys_exit;
++#ifdef CONFIG_NFSD
++#define NFSSERVCTL sys_nfsservctl
++#else
++#define NFSSERVCTL sys_ni_syscall
++#endif
 +
-+clean:
++#define LAST_GENERIC_SYSCALL __NR_vserver
 +
-+modules:
++#if LAST_GENERIC_SYSCALL > LAST_ARCH_SYSCALL
++#define LAST_SYSCALL LAST_GENERIC_SYSCALL
++#else
++#define LAST_SYSCALL LAST_ARCH_SYSCALL
++#endif
 +
-+fastdep:
+ extern syscall_handler_t sys_fork;
+-extern syscall_handler_t sys_creat;
+-extern syscall_handler_t sys_link;
+-extern syscall_handler_t sys_unlink;
+-extern syscall_handler_t sys_chdir;
+-extern syscall_handler_t sys_mknod;
+-extern syscall_handler_t sys_chmod;
+-extern syscall_handler_t sys_lchown16;
+-extern syscall_handler_t sys_ni_syscall;
+-extern syscall_handler_t sys_stat;
+-extern syscall_handler_t sys_getpid;
+-extern syscall_handler_t sys_oldumount;
+-extern syscall_handler_t sys_setuid16;
+-extern syscall_handler_t sys_getuid16;
++extern syscall_handler_t sys_execve;
++extern syscall_handler_t um_time;
++extern syscall_handler_t um_mount;
++extern syscall_handler_t um_stime;
+ extern syscall_handler_t sys_ptrace;
+-extern syscall_handler_t sys_alarm;
+-extern syscall_handler_t sys_fstat;
+-extern syscall_handler_t sys_pause;
+-extern syscall_handler_t sys_utime;
+-extern syscall_handler_t sys_ni_syscall;
+-extern syscall_handler_t sys_ni_syscall;
+-extern syscall_handler_t sys_access;
+-extern syscall_handler_t sys_nice;
+-extern syscall_handler_t sys_ni_syscall;
+-extern syscall_handler_t sys_sync;
+-extern syscall_handler_t sys_kill;
+-extern syscall_handler_t sys_rename;
+-extern syscall_handler_t sys_mkdir;
+-extern syscall_handler_t sys_rmdir;
+ extern syscall_handler_t sys_pipe;
+-extern syscall_handler_t sys_times;
+-extern syscall_handler_t sys_ni_syscall;
+-extern syscall_handler_t sys_brk;
+-extern syscall_handler_t sys_setgid16;
+-extern syscall_handler_t sys_getgid16;
+-extern syscall_handler_t sys_signal;
+-extern syscall_handler_t sys_geteuid16;
+-extern syscall_handler_t sys_getegid16;
+-extern syscall_handler_t sys_acct;
+-extern syscall_handler_t sys_umount;
+-extern syscall_handler_t sys_ni_syscall;
+-extern syscall_handler_t sys_ioctl;
+-extern syscall_handler_t sys_fcntl;
+-extern syscall_handler_t sys_ni_syscall;
+-extern syscall_handler_t sys_setpgid;
+-extern syscall_handler_t sys_ni_syscall;
+ extern syscall_handler_t sys_olduname;
+-extern syscall_handler_t sys_umask;
+-extern syscall_handler_t sys_chroot;
+-extern syscall_handler_t sys_ustat;
+-extern syscall_handler_t sys_dup2;
+-extern syscall_handler_t sys_getppid;
+-extern syscall_handler_t sys_getpgrp;
+ extern syscall_handler_t sys_sigaction;
+-extern syscall_handler_t sys_sgetmask;
+-extern syscall_handler_t sys_ssetmask;
+-extern syscall_handler_t sys_setreuid16;
+-extern syscall_handler_t sys_setregid16;
+ extern syscall_handler_t sys_sigsuspend;
+-extern syscall_handler_t sys_sigpending;
+-extern syscall_handler_t sys_sethostname;
+-extern syscall_handler_t sys_setrlimit;
+-extern syscall_handler_t sys_old_getrlimit;
+-extern syscall_handler_t sys_getrusage;
+-extern syscall_handler_t sys_gettimeofday;
+-extern syscall_handler_t sys_settimeofday;
+-extern syscall_handler_t sys_getgroups16;
+-extern syscall_handler_t sys_setgroups16;
+-extern syscall_handler_t sys_symlink;
+-extern syscall_handler_t sys_lstat;
+-extern syscall_handler_t sys_readlink;
+-extern syscall_handler_t sys_swapon;
+-extern syscall_handler_t sys_uselib;
+-extern syscall_handler_t sys_reboot;
+ extern syscall_handler_t old_readdir;
+-extern syscall_handler_t sys_munmap;
+-extern syscall_handler_t sys_truncate;
+-extern syscall_handler_t sys_ftruncate;
+-extern syscall_handler_t sys_fchmod;
+-extern syscall_handler_t sys_fchown16;
+-extern syscall_handler_t sys_getpriority;
+-extern syscall_handler_t sys_setpriority;
+-extern syscall_handler_t sys_ni_syscall;
+-extern syscall_handler_t sys_statfs;
+-extern syscall_handler_t sys_fstatfs;
+-extern syscall_handler_t sys_ni_syscall;
+-extern syscall_handler_t sys_socketcall;
+-extern syscall_handler_t sys_syslog;
+-extern syscall_handler_t sys_setitimer;
+-extern syscall_handler_t sys_getitimer;
+-extern syscall_handler_t sys_newstat;
+-extern syscall_handler_t sys_newlstat;
+-extern syscall_handler_t sys_newfstat;
+ extern syscall_handler_t sys_uname;
+-extern syscall_handler_t sys_ni_syscall;
+-extern syscall_handler_t sys_vhangup;
+-extern syscall_handler_t sys_ni_syscall;
+-extern syscall_handler_t sys_ni_syscall;
+-extern syscall_handler_t sys_swapoff;
+-extern syscall_handler_t sys_sysinfo;
+ extern syscall_handler_t sys_ipc;
+-extern syscall_handler_t sys_fsync;
+ extern syscall_handler_t sys_sigreturn;
+-extern syscall_handler_t sys_rt_sigreturn;
+ extern syscall_handler_t sys_clone;
+-extern syscall_handler_t sys_setdomainname;
+-extern syscall_handler_t sys_newuname;
+-extern syscall_handler_t sys_ni_syscall;
+-extern syscall_handler_t sys_adjtimex;
+-extern syscall_handler_t sys_mprotect;
+-extern syscall_handler_t sys_sigprocmask;
+-extern syscall_handler_t sys_init_module;
+-extern syscall_handler_t sys_delete_module;
+-extern syscall_handler_t sys_quotactl;
+-extern syscall_handler_t sys_getpgid;
+-extern syscall_handler_t sys_fchdir;
+-extern syscall_handler_t sys_bdflush;
+-extern syscall_handler_t sys_sysfs;
+-extern syscall_handler_t sys_personality;
+-extern syscall_handler_t sys_ni_syscall;
+-extern syscall_handler_t sys_setfsuid16;
+-extern syscall_handler_t sys_setfsgid16;
+-extern syscall_handler_t sys_llseek;
+-extern syscall_handler_t sys_getdents;
+-extern syscall_handler_t sys_flock;
+-extern syscall_handler_t sys_msync;
+-extern syscall_handler_t sys_readv;
+-extern syscall_handler_t sys_writev;
+-extern syscall_handler_t sys_getsid;
+-extern syscall_handler_t sys_fdatasync;
+-extern syscall_handler_t sys_mlock;
+-extern syscall_handler_t sys_munlock;
+-extern syscall_handler_t sys_mlockall;
+-extern syscall_handler_t sys_munlockall;
+-extern syscall_handler_t sys_sched_setparam;
+-extern syscall_handler_t sys_sched_getparam;
+-extern syscall_handler_t sys_sched_setscheduler;
+-extern syscall_handler_t sys_sched_getscheduler;
+-extern syscall_handler_t sys_sched_get_priority_max;
+-extern syscall_handler_t sys_sched_get_priority_min;
+-extern syscall_handler_t sys_sched_rr_get_interval;
+-extern syscall_handler_t sys_nanosleep;
+-extern syscall_handler_t sys_mremap;
+-extern syscall_handler_t sys_setresuid16;
+-extern syscall_handler_t sys_getresuid16;
+-extern syscall_handler_t sys_ni_syscall;
+-extern syscall_handler_t sys_poll;
+-extern syscall_handler_t sys_nfsservctl;
+-extern syscall_handler_t sys_setresgid16;
+-extern syscall_handler_t sys_getresgid16;
+-extern syscall_handler_t sys_prctl;
+-extern syscall_handler_t sys_ni_syscall;
++extern syscall_handler_t sys_rt_sigreturn;
+ extern syscall_handler_t sys_rt_sigaction;
+-extern syscall_handler_t sys_rt_sigprocmask;
+-extern syscall_handler_t sys_rt_sigpending;
+-extern syscall_handler_t sys_rt_sigtimedwait;
+-extern syscall_handler_t sys_rt_sigqueueinfo;
+-extern syscall_handler_t sys_rt_sigsuspend;
+-extern syscall_handler_t sys_pread64;
+-extern syscall_handler_t sys_pwrite64;
+-extern syscall_handler_t sys_chown16;
+-extern syscall_handler_t sys_getcwd;
+-extern syscall_handler_t sys_capget;
+-extern syscall_handler_t sys_capset;
+ extern syscall_handler_t sys_sigaltstack;
+-extern syscall_handler_t sys_sendfile;
+-extern syscall_handler_t sys_ni_syscall;
+-extern syscall_handler_t sys_ni_syscall;
+ extern syscall_handler_t sys_vfork;
+-extern syscall_handler_t sys_getrlimit;
+ extern syscall_handler_t sys_mmap2;
+-extern syscall_handler_t sys_truncate64;
+-extern syscall_handler_t sys_ftruncate64;
+-extern syscall_handler_t sys_stat64;
+-extern syscall_handler_t sys_lstat64;
+-extern syscall_handler_t sys_fstat64;
+-extern syscall_handler_t sys_lchown;
+-extern syscall_handler_t sys_getuid;
+-extern syscall_handler_t sys_getgid;
+-extern syscall_handler_t sys_geteuid;
+-extern syscall_handler_t sys_getegid;
+-extern syscall_handler_t sys_setreuid;
+-extern syscall_handler_t sys_setregid;
+-extern syscall_handler_t sys_getgroups;
+-extern syscall_handler_t sys_setgroups;
+-extern syscall_handler_t sys_fchown;
+-extern syscall_handler_t sys_setresuid;
+-extern syscall_handler_t sys_getresuid;
+-extern syscall_handler_t sys_setresgid;
+-extern syscall_handler_t sys_getresgid;
+-extern syscall_handler_t sys_chown;
+-extern syscall_handler_t sys_setuid;
+-extern syscall_handler_t sys_setgid;
+-extern syscall_handler_t sys_setfsuid;
+-extern syscall_handler_t sys_setfsgid;
+-extern syscall_handler_t sys_pivot_root;
+-extern syscall_handler_t sys_mincore;
+-extern syscall_handler_t sys_madvise;
+-extern syscall_handler_t sys_fcntl64;
+-extern syscall_handler_t sys_getdents64;
+-extern syscall_handler_t sys_gettid;
+-extern syscall_handler_t sys_readahead;
+-extern syscall_handler_t sys_tkill;
+-extern syscall_handler_t sys_sendfile64;
+-extern syscall_handler_t sys_futex;
+-extern syscall_handler_t sys_sched_setaffinity;
+-extern syscall_handler_t sys_sched_getaffinity;
+-extern syscall_handler_t sys_io_setup;
+-extern syscall_handler_t sys_io_destroy;
+-extern syscall_handler_t sys_io_getevents;
+-extern syscall_handler_t sys_io_submit;
+-extern syscall_handler_t sys_io_cancel;
+-extern syscall_handler_t sys_exit_group;
+-extern syscall_handler_t sys_lookup_dcookie;
+-extern syscall_handler_t sys_epoll_create;
+-extern syscall_handler_t sys_epoll_ctl;
+-extern syscall_handler_t sys_epoll_wait;
+-extern syscall_handler_t sys_remap_file_pages;
+-extern syscall_handler_t sys_set_tid_address;
+-
+-#ifdef CONFIG_NFSD
+-#define NFSSERVCTL sys_nfsservctl
+-#else
+-#define NFSSERVCTL sys_ni_syscall
+-#endif
+-
+-extern syscall_handler_t um_mount;
+-extern syscall_handler_t um_time;
+-extern syscall_handler_t um_stime;
+-
+-#define LAST_GENERIC_SYSCALL __NR_set_tid_address
+-
+-#if LAST_GENERIC_SYSCALL > LAST_ARCH_SYSCALL
+-#define LAST_SYSCALL LAST_GENERIC_SYSCALL
+-#else
+-#define LAST_SYSCALL LAST_ARCH_SYSCALL
+-#endif
++extern syscall_handler_t sys_timer_create;
++extern syscall_handler_t old_mmap_i386;
++extern syscall_handler_t old_select;
++extern syscall_handler_t sys_modify_ldt;
++extern syscall_handler_t sys_rt_sigsuspend;
+ syscall_handler_t *sys_call_table[] = {
+-      [ __NR_restart_syscall ] = sys_restart_syscall,
+-      [ __NR_exit ] = sys_exit,
+-      [ __NR_fork ] = sys_fork,
++      [ __NR_restart_syscall ] = (syscall_handler_t *) sys_restart_syscall,
++      [ __NR_exit ] (syscall_handler_t *) sys_exit,
++      [ __NR_fork ] (syscall_handler_t *) sys_fork,
+       [ __NR_read ] = (syscall_handler_t *) sys_read,
+       [ __NR_write ] = (syscall_handler_t *) sys_write,
+@@ -266,229 +64,249 @@
+       [ __NR_open ] = (syscall_handler_t *) sys_open,
+       [ __NR_close ] = (syscall_handler_t *) sys_close,
+       [ __NR_waitpid ] = (syscall_handler_t *) sys_waitpid,
+-      [ __NR_creat ] = sys_creat,
+-      [ __NR_link ] = sys_link,
+-      [ __NR_unlink ] = sys_unlink,
++      [ __NR_creat ] (syscall_handler_t *) sys_creat,
++      [ __NR_link ] (syscall_handler_t *) sys_link,
++      [ __NR_unlink ] (syscall_handler_t *) sys_unlink,
+       [ __NR_execve ] = (syscall_handler_t *) sys_execve,
+       /* declared differently in kern_util.h */
+-      [ __NR_chdir ] = sys_chdir,
++      [ __NR_chdir ] (syscall_handler_t *) sys_chdir,
+       [ __NR_time ] = um_time,
+-      [ __NR_mknod ] = sys_mknod,
+-      [ __NR_chmod ] = sys_chmod,
+-      [ __NR_lchown ] = sys_lchown16,
+-      [ __NR_break ] = sys_ni_syscall,
+-      [ __NR_oldstat ] = sys_stat,
++      [ __NR_mknod ] (syscall_handler_t *) sys_mknod,
++      [ __NR_chmod ] (syscall_handler_t *) sys_chmod,
++      [ __NR_lchown ] (syscall_handler_t *) sys_lchown16,
++      [ __NR_break ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_oldstat ] (syscall_handler_t *) sys_stat,
+       [ __NR_lseek ] = (syscall_handler_t *) sys_lseek,
+-      [ __NR_getpid ] = sys_getpid,
++      [ __NR_getpid ] (syscall_handler_t *) sys_getpid,
+       [ __NR_mount ] = um_mount,
+-      [ __NR_umount ] = sys_oldumount,
+-      [ __NR_setuid ] = sys_setuid16,
+-      [ __NR_getuid ] = sys_getuid16,
++      [ __NR_umount ] (syscall_handler_t *) sys_oldumount,
++      [ __NR_setuid ] (syscall_handler_t *) sys_setuid16,
++      [ __NR_getuid ] (syscall_handler_t *) sys_getuid16,
+       [ __NR_stime ] = um_stime,
+-      [ __NR_ptrace ] = sys_ptrace,
+-      [ __NR_alarm ] = sys_alarm,
+-      [ __NR_oldfstat ] = sys_fstat,
+-      [ __NR_pause ] = sys_pause,
+-      [ __NR_utime ] = sys_utime,
+-      [ __NR_stty ] = sys_ni_syscall,
+-      [ __NR_gtty ] = sys_ni_syscall,
+-      [ __NR_access ] = sys_access,
+-      [ __NR_nice ] = sys_nice,
+-      [ __NR_ftime ] = sys_ni_syscall,
+-      [ __NR_sync ] = sys_sync,
+-      [ __NR_kill ] = sys_kill,
+-      [ __NR_rename ] = sys_rename,
+-      [ __NR_mkdir ] = sys_mkdir,
+-      [ __NR_rmdir ] = sys_rmdir,
++      [ __NR_ptrace ] (syscall_handler_t *) sys_ptrace,
++      [ __NR_alarm ] (syscall_handler_t *) sys_alarm,
++      [ __NR_oldfstat ] (syscall_handler_t *) sys_fstat,
++      [ __NR_pause ] (syscall_handler_t *) sys_pause,
++      [ __NR_utime ] (syscall_handler_t *) sys_utime,
++      [ __NR_stty ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_gtty ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_access ] (syscall_handler_t *) sys_access,
++      [ __NR_nice ] (syscall_handler_t *) sys_nice,
++      [ __NR_ftime ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_sync ] (syscall_handler_t *) sys_sync,
++      [ __NR_kill ] (syscall_handler_t *) sys_kill,
++      [ __NR_rename ] (syscall_handler_t *) sys_rename,
++      [ __NR_mkdir ] (syscall_handler_t *) sys_mkdir,
++      [ __NR_rmdir ] (syscall_handler_t *) sys_rmdir,
+       /* Declared differently in asm/unistd.h */
+       [ __NR_dup ] = (syscall_handler_t *) sys_dup,
+-      [ __NR_pipe ] = sys_pipe,
+-      [ __NR_times ] = sys_times,
+-      [ __NR_prof ] = sys_ni_syscall,
+-      [ __NR_brk ] = sys_brk,
+-      [ __NR_setgid ] = sys_setgid16,
+-      [ __NR_getgid ] = sys_getgid16,
+-      [ __NR_signal ] = sys_signal,
+-      [ __NR_geteuid ] = sys_geteuid16,
+-      [ __NR_getegid ] = sys_getegid16,
+-      [ __NR_acct ] = sys_acct,
+-      [ __NR_umount2 ] = sys_umount,
+-      [ __NR_lock ] = sys_ni_syscall,
+-      [ __NR_ioctl ] = sys_ioctl,
+-      [ __NR_fcntl ] = sys_fcntl,
+-      [ __NR_mpx ] = sys_ni_syscall,
+-      [ __NR_setpgid ] = sys_setpgid,
+-      [ __NR_ulimit ] = sys_ni_syscall,
+-      [ __NR_oldolduname ] = sys_olduname,
+-      [ __NR_umask ] = sys_umask,
+-      [ __NR_chroot ] = sys_chroot,
+-      [ __NR_ustat ] = sys_ustat,
+-      [ __NR_dup2 ] = sys_dup2,
+-      [ __NR_getppid ] = sys_getppid,
+-      [ __NR_getpgrp ] = sys_getpgrp,
++      [ __NR_pipe ] (syscall_handler_t *) sys_pipe,
++      [ __NR_times ] (syscall_handler_t *) sys_times,
++      [ __NR_prof ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_brk ] (syscall_handler_t *) sys_brk,
++      [ __NR_setgid ] (syscall_handler_t *) sys_setgid16,
++      [ __NR_getgid ] (syscall_handler_t *) sys_getgid16,
++      [ __NR_signal ] (syscall_handler_t *) sys_signal,
++      [ __NR_geteuid ] (syscall_handler_t *) sys_geteuid16,
++      [ __NR_getegid ] (syscall_handler_t *) sys_getegid16,
++      [ __NR_acct ] (syscall_handler_t *) sys_acct,
++      [ __NR_umount2 ] (syscall_handler_t *) sys_umount,
++      [ __NR_lock ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_ioctl ] (syscall_handler_t *) sys_ioctl,
++      [ __NR_fcntl ] (syscall_handler_t *) sys_fcntl,
++      [ __NR_mpx ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_setpgid ] (syscall_handler_t *) sys_setpgid,
++      [ __NR_ulimit ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_oldolduname ] (syscall_handler_t *) sys_olduname,
++      [ __NR_umask ] (syscall_handler_t *) sys_umask,
++      [ __NR_chroot ] (syscall_handler_t *) sys_chroot,
++      [ __NR_ustat ] (syscall_handler_t *) sys_ustat,
++      [ __NR_dup2 ] (syscall_handler_t *) sys_dup2,
++      [ __NR_getppid ] (syscall_handler_t *) sys_getppid,
++      [ __NR_getpgrp ] (syscall_handler_t *) sys_getpgrp,
+       [ __NR_setsid ] = (syscall_handler_t *) sys_setsid,
+-      [ __NR_sigaction ] = sys_sigaction,
+-      [ __NR_sgetmask ] = sys_sgetmask,
+-      [ __NR_ssetmask ] = sys_ssetmask,
+-      [ __NR_setreuid ] = sys_setreuid16,
+-      [ __NR_setregid ] = sys_setregid16,
+-      [ __NR_sigsuspend ] = sys_sigsuspend,
+-      [ __NR_sigpending ] = sys_sigpending,
+-      [ __NR_sethostname ] = sys_sethostname,
+-      [ __NR_setrlimit ] = sys_setrlimit,
+-      [ __NR_getrlimit ] = sys_old_getrlimit,
+-      [ __NR_getrusage ] = sys_getrusage,
+-      [ __NR_gettimeofday ] = sys_gettimeofday,
+-      [ __NR_settimeofday ] = sys_settimeofday,
+-      [ __NR_getgroups ] = sys_getgroups16,
+-      [ __NR_setgroups ] = sys_setgroups16,
+-      [ __NR_symlink ] = sys_symlink,
+-      [ __NR_oldlstat ] = sys_lstat,
+-      [ __NR_readlink ] = sys_readlink,
+-      [ __NR_uselib ] = sys_uselib,
++      [ __NR_sigaction ] (syscall_handler_t *) sys_sigaction,
++      [ __NR_sgetmask ] (syscall_handler_t *) sys_sgetmask,
++      [ __NR_ssetmask ] (syscall_handler_t *) sys_ssetmask,
++      [ __NR_setreuid ] (syscall_handler_t *) sys_setreuid16,
++      [ __NR_setregid ] (syscall_handler_t *) sys_setregid16,
++      [ __NR_sigsuspend ] (syscall_handler_t *) sys_sigsuspend,
++      [ __NR_sigpending ] (syscall_handler_t *) sys_sigpending,
++      [ __NR_sethostname ] (syscall_handler_t *) sys_sethostname,
++      [ __NR_setrlimit ] (syscall_handler_t *) sys_setrlimit,
++      [ __NR_getrlimit ] (syscall_handler_t *) sys_old_getrlimit,
++      [ __NR_getrusage ] (syscall_handler_t *) sys_getrusage,
++      [ __NR_gettimeofday ] (syscall_handler_t *) sys_gettimeofday,
++      [ __NR_settimeofday ] (syscall_handler_t *) sys_settimeofday,
++      [ __NR_getgroups ] (syscall_handler_t *) sys_getgroups16,
++      [ __NR_setgroups ] (syscall_handler_t *) sys_setgroups16,
++      [ __NR_symlink ] (syscall_handler_t *) sys_symlink,
++      [ __NR_oldlstat ] (syscall_handler_t *) sys_lstat,
++      [ __NR_readlink ] (syscall_handler_t *) sys_readlink,
++      [ __NR_uselib ] (syscall_handler_t *) sys_uselib,
+       [ __NR_swapon ] = (syscall_handler_t *) sys_swapon,
+-      [ __NR_reboot ] = sys_reboot,
++      [ __NR_reboot ] (syscall_handler_t *) sys_reboot,
+       [ __NR_readdir ] = old_readdir,
+-      [ __NR_munmap ] = sys_munmap,
+-      [ __NR_truncate ] = sys_truncate,
+-      [ __NR_ftruncate ] = sys_ftruncate,
+-      [ __NR_fchmod ] = sys_fchmod,
+-      [ __NR_fchown ] = sys_fchown16,
+-      [ __NR_getpriority ] = sys_getpriority,
+-      [ __NR_setpriority ] = sys_setpriority,
+-      [ __NR_profil ] = sys_ni_syscall,
+-      [ __NR_statfs ] = sys_statfs,
+-      [ __NR_fstatfs ] = sys_fstatfs,
+-      [ __NR_ioperm ] = sys_ni_syscall,
+-      [ __NR_socketcall ] = sys_socketcall,
+-      [ __NR_syslog ] = sys_syslog,
+-      [ __NR_setitimer ] = sys_setitimer,
+-      [ __NR_getitimer ] = sys_getitimer,
+-      [ __NR_stat ] = sys_newstat,
+-      [ __NR_lstat ] = sys_newlstat,
+-      [ __NR_fstat ] = sys_newfstat,
+-      [ __NR_olduname ] = sys_uname,
+-      [ __NR_iopl ] = sys_ni_syscall,
+-      [ __NR_vhangup ] = sys_vhangup,
+-      [ __NR_idle ] = sys_ni_syscall,
++      [ __NR_munmap ] (syscall_handler_t *) sys_munmap,
++      [ __NR_truncate ] (syscall_handler_t *) sys_truncate,
++      [ __NR_ftruncate ] (syscall_handler_t *) sys_ftruncate,
++      [ __NR_fchmod ] (syscall_handler_t *) sys_fchmod,
++      [ __NR_fchown ] (syscall_handler_t *) sys_fchown16,
++      [ __NR_getpriority ] (syscall_handler_t *) sys_getpriority,
++      [ __NR_setpriority ] (syscall_handler_t *) sys_setpriority,
++      [ __NR_profil ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_statfs ] (syscall_handler_t *) sys_statfs,
++      [ __NR_fstatfs ] (syscall_handler_t *) sys_fstatfs,
++      [ __NR_ioperm ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_socketcall ] (syscall_handler_t *) sys_socketcall,
++      [ __NR_syslog ] (syscall_handler_t *) sys_syslog,
++      [ __NR_setitimer ] (syscall_handler_t *) sys_setitimer,
++      [ __NR_getitimer ] (syscall_handler_t *) sys_getitimer,
++      [ __NR_stat ] (syscall_handler_t *) sys_newstat,
++      [ __NR_lstat ] (syscall_handler_t *) sys_newlstat,
++      [ __NR_fstat ] (syscall_handler_t *) sys_newfstat,
++      [ __NR_olduname ] (syscall_handler_t *) sys_uname,
++      [ __NR_iopl ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_vhangup ] (syscall_handler_t *) sys_vhangup,
++      [ __NR_idle ] (syscall_handler_t *) sys_ni_syscall,
+       [ __NR_wait4 ] = (syscall_handler_t *) sys_wait4,
+       [ __NR_swapoff ] = (syscall_handler_t *) sys_swapoff,
+-      [ __NR_sysinfo ] = sys_sysinfo,
+-      [ __NR_ipc ] = sys_ipc,
+-      [ __NR_fsync ] = sys_fsync,
+-      [ __NR_sigreturn ] = sys_sigreturn,
+-      [ __NR_clone ] = sys_clone,
+-      [ __NR_setdomainname ] = sys_setdomainname,
+-      [ __NR_uname ] = sys_newuname,
+-      [ __NR_adjtimex ] = sys_adjtimex,
+-      [ __NR_mprotect ] = sys_mprotect,
+-      [ __NR_sigprocmask ] = sys_sigprocmask,
+-      [ __NR_create_module ] = sys_ni_syscall,
+-      [ __NR_init_module ] = sys_init_module,
+-      [ __NR_delete_module ] = sys_delete_module,
+-      [ __NR_get_kernel_syms ] = sys_ni_syscall,
+-      [ __NR_quotactl ] = sys_quotactl,
+-      [ __NR_getpgid ] = sys_getpgid,
+-      [ __NR_fchdir ] = sys_fchdir,
+-      [ __NR_bdflush ] = sys_bdflush,
+-      [ __NR_sysfs ] = sys_sysfs,
+-      [ __NR_personality ] = sys_personality,
+-      [ __NR_afs_syscall ] = sys_ni_syscall,
+-      [ __NR_setfsuid ] = sys_setfsuid16,
+-      [ __NR_setfsgid ] = sys_setfsgid16,
+-      [ __NR__llseek ] = sys_llseek,
+-      [ __NR_getdents ] = sys_getdents,
++      [ __NR_sysinfo ] (syscall_handler_t *) sys_sysinfo,
++      [ __NR_ipc ] (syscall_handler_t *) sys_ipc,
++      [ __NR_fsync ] (syscall_handler_t *) sys_fsync,
++      [ __NR_sigreturn ] (syscall_handler_t *) sys_sigreturn,
++      [ __NR_clone ] (syscall_handler_t *) sys_clone,
++      [ __NR_setdomainname ] (syscall_handler_t *) sys_setdomainname,
++      [ __NR_uname ] (syscall_handler_t *) sys_newuname,
++      [ __NR_adjtimex ] (syscall_handler_t *) sys_adjtimex,
++      [ __NR_mprotect ] (syscall_handler_t *) sys_mprotect,
++      [ __NR_sigprocmask ] (syscall_handler_t *) sys_sigprocmask,
++      [ __NR_create_module ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_init_module ] (syscall_handler_t *) sys_init_module,
++      [ __NR_delete_module ] (syscall_handler_t *) sys_delete_module,
++      [ __NR_get_kernel_syms ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_quotactl ] (syscall_handler_t *) sys_quotactl,
++      [ __NR_getpgid ] (syscall_handler_t *) sys_getpgid,
++      [ __NR_fchdir ] (syscall_handler_t *) sys_fchdir,
++      [ __NR_bdflush ] (syscall_handler_t *) sys_bdflush,
++      [ __NR_sysfs ] (syscall_handler_t *) sys_sysfs,
++      [ __NR_personality ] (syscall_handler_t *) sys_personality,
++      [ __NR_afs_syscall ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_setfsuid ] (syscall_handler_t *) sys_setfsuid16,
++      [ __NR_setfsgid ] (syscall_handler_t *) sys_setfsgid16,
++      [ __NR__llseek ] (syscall_handler_t *) sys_llseek,
++      [ __NR_getdents ] (syscall_handler_t *) sys_getdents,
+       [ __NR__newselect ] = (syscall_handler_t *) sys_select,
+-      [ __NR_flock ] = sys_flock,
+-      [ __NR_msync ] = sys_msync,
+-      [ __NR_readv ] = sys_readv,
+-      [ __NR_writev ] = sys_writev,
+-      [ __NR_getsid ] = sys_getsid,
+-      [ __NR_fdatasync ] = sys_fdatasync,
++      [ __NR_flock ] (syscall_handler_t *) sys_flock,
++      [ __NR_msync ] (syscall_handler_t *) sys_msync,
++      [ __NR_readv ] (syscall_handler_t *) sys_readv,
++      [ __NR_writev ] (syscall_handler_t *) sys_writev,
++      [ __NR_getsid ] (syscall_handler_t *) sys_getsid,
++      [ __NR_fdatasync ] (syscall_handler_t *) sys_fdatasync,
+       [ __NR__sysctl ] = (syscall_handler_t *) sys_sysctl,
+-      [ __NR_mlock ] = sys_mlock,
+-      [ __NR_munlock ] = sys_munlock,
+-      [ __NR_mlockall ] = sys_mlockall,
+-      [ __NR_munlockall ] = sys_munlockall,
+-      [ __NR_sched_setparam ] = sys_sched_setparam,
+-      [ __NR_sched_getparam ] = sys_sched_getparam,
+-      [ __NR_sched_setscheduler ] = sys_sched_setscheduler,
+-      [ __NR_sched_getscheduler ] = sys_sched_getscheduler,
++      [ __NR_mlock ] (syscall_handler_t *) sys_mlock,
++      [ __NR_munlock ] (syscall_handler_t *) sys_munlock,
++      [ __NR_mlockall ] (syscall_handler_t *) sys_mlockall,
++      [ __NR_munlockall ] (syscall_handler_t *) sys_munlockall,
++      [ __NR_sched_setparam ] (syscall_handler_t *) sys_sched_setparam,
++      [ __NR_sched_getparam ] (syscall_handler_t *) sys_sched_getparam,
++      [ __NR_sched_setscheduler ] (syscall_handler_t *) sys_sched_setscheduler,
++      [ __NR_sched_getscheduler ] (syscall_handler_t *) sys_sched_getscheduler,
+       [ __NR_sched_yield ] = (syscall_handler_t *) yield,
+-      [ __NR_sched_get_priority_max ] = sys_sched_get_priority_max,
+-      [ __NR_sched_get_priority_min ] = sys_sched_get_priority_min,
+-      [ __NR_sched_rr_get_interval ] = sys_sched_rr_get_interval,
+-      [ __NR_nanosleep ] = sys_nanosleep,
+-      [ __NR_mremap ] = sys_mremap,
+-      [ __NR_setresuid ] = sys_setresuid16,
+-      [ __NR_getresuid ] = sys_getresuid16,
+-      [ __NR_vm86 ] = sys_ni_syscall,
+-      [ __NR_query_module ] = sys_ni_syscall,
+-      [ __NR_poll ] = sys_poll,
+-      [ __NR_nfsservctl ] = NFSSERVCTL,
+-      [ __NR_setresgid ] = sys_setresgid16,
+-      [ __NR_getresgid ] = sys_getresgid16,
+-      [ __NR_prctl ] = sys_prctl,
+-      [ __NR_rt_sigreturn ] = sys_rt_sigreturn,
+-      [ __NR_rt_sigaction ] = sys_rt_sigaction,
+-      [ __NR_rt_sigprocmask ] = sys_rt_sigprocmask,
+-      [ __NR_rt_sigpending ] = sys_rt_sigpending,
+-      [ __NR_rt_sigtimedwait ] = sys_rt_sigtimedwait,
+-      [ __NR_rt_sigqueueinfo ] = sys_rt_sigqueueinfo,
+-      [ __NR_rt_sigsuspend ] = sys_rt_sigsuspend,
+-      [ __NR_pread64 ] = sys_pread64,
+-      [ __NR_pwrite64 ] = sys_pwrite64,
+-      [ __NR_chown ] = sys_chown16,
+-      [ __NR_getcwd ] = sys_getcwd,
+-      [ __NR_capget ] = sys_capget,
+-      [ __NR_capset ] = sys_capset,
+-      [ __NR_sigaltstack ] = sys_sigaltstack,
+-      [ __NR_sendfile ] = sys_sendfile,
+-      [ __NR_getpmsg ] = sys_ni_syscall,
+-      [ __NR_putpmsg ] = sys_ni_syscall,
+-      [ __NR_vfork ] = sys_vfork,
+-      [ __NR_ugetrlimit ] = sys_getrlimit,
+-      [ __NR_mmap2 ] = sys_mmap2,
+-      [ __NR_truncate64 ] = sys_truncate64,
+-      [ __NR_ftruncate64 ] = sys_ftruncate64,
+-      [ __NR_stat64 ] = sys_stat64,
+-      [ __NR_lstat64 ] = sys_lstat64,
+-      [ __NR_fstat64 ] = sys_fstat64,
+-      [ __NR_fcntl64 ] = sys_fcntl64,
+-      [ __NR_getdents64 ] = sys_getdents64,
+-      [ __NR_gettid ] = sys_gettid,
+-      [ __NR_readahead ] = sys_readahead,
+-      [ __NR_setxattr ] = sys_ni_syscall,
+-      [ __NR_lsetxattr ] = sys_ni_syscall,
+-      [ __NR_fsetxattr ] = sys_ni_syscall,
+-      [ __NR_getxattr ] = sys_ni_syscall,
+-      [ __NR_lgetxattr ] = sys_ni_syscall,
+-      [ __NR_fgetxattr ] = sys_ni_syscall,
+-      [ __NR_listxattr ] = sys_ni_syscall,
+-      [ __NR_llistxattr ] = sys_ni_syscall,
+-      [ __NR_flistxattr ] = sys_ni_syscall,
+-      [ __NR_removexattr ] = sys_ni_syscall,
+-      [ __NR_lremovexattr ] = sys_ni_syscall,
+-      [ __NR_fremovexattr ] = sys_ni_syscall,
+-      [ __NR_tkill ] = sys_tkill,
+-      [ __NR_sendfile64 ] = sys_sendfile64,
+-      [ __NR_futex ] = sys_futex,
+-      [ __NR_sched_setaffinity ] = sys_sched_setaffinity,
+-      [ __NR_sched_getaffinity ] = sys_sched_getaffinity,
+-      [ __NR_io_setup ] = sys_io_setup,
+-      [ __NR_io_destroy ] = sys_io_destroy,
+-      [ __NR_io_getevents ] = sys_io_getevents,
+-      [ __NR_io_submit ] = sys_io_submit,
+-      [ __NR_io_cancel ] = sys_io_cancel,
+-      [ __NR_exit_group ] = sys_exit_group,
+-      [ __NR_lookup_dcookie ] = sys_lookup_dcookie,
+-      [ __NR_epoll_create ] = sys_epoll_create,
+-      [ __NR_epoll_ctl ] = sys_epoll_ctl,
+-      [ __NR_epoll_wait ] = sys_epoll_wait,
+-        [ __NR_remap_file_pages ] = sys_remap_file_pages,
+-        [ __NR_set_tid_address ] = sys_set_tid_address,
++      [ __NR_sched_get_priority_max ] (syscall_handler_t *) sys_sched_get_priority_max,
++      [ __NR_sched_get_priority_min ] (syscall_handler_t *) sys_sched_get_priority_min,
++      [ __NR_sched_rr_get_interval ] (syscall_handler_t *) sys_sched_rr_get_interval,
++      [ __NR_nanosleep ] (syscall_handler_t *) sys_nanosleep,
++      [ __NR_mremap ] (syscall_handler_t *) sys_mremap,
++      [ __NR_setresuid ] (syscall_handler_t *) sys_setresuid16,
++      [ __NR_getresuid ] (syscall_handler_t *) sys_getresuid16,
++      [ __NR_vm86 ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_query_module ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_poll ] (syscall_handler_t *) sys_poll,
++      [ __NR_nfsservctl ] = (syscall_handler_t *) NFSSERVCTL,
++      [ __NR_setresgid ] (syscall_handler_t *) sys_setresgid16,
++      [ __NR_getresgid ] (syscall_handler_t *) sys_getresgid16,
++      [ __NR_prctl ] (syscall_handler_t *) sys_prctl,
++      [ __NR_rt_sigreturn ] (syscall_handler_t *) sys_rt_sigreturn,
++      [ __NR_rt_sigaction ] (syscall_handler_t *) sys_rt_sigaction,
++      [ __NR_rt_sigprocmask ] (syscall_handler_t *) sys_rt_sigprocmask,
++      [ __NR_rt_sigpending ] (syscall_handler_t *) sys_rt_sigpending,
++      [ __NR_rt_sigtimedwait ] (syscall_handler_t *) sys_rt_sigtimedwait,
++      [ __NR_rt_sigqueueinfo ] (syscall_handler_t *) sys_rt_sigqueueinfo,
++      [ __NR_rt_sigsuspend ] (syscall_handler_t *) sys_rt_sigsuspend,
++      [ __NR_pread64 ] (syscall_handler_t *) sys_pread64,
++      [ __NR_pwrite64 ] (syscall_handler_t *) sys_pwrite64,
++      [ __NR_chown ] (syscall_handler_t *) sys_chown16,
++      [ __NR_getcwd ] (syscall_handler_t *) sys_getcwd,
++      [ __NR_capget ] (syscall_handler_t *) sys_capget,
++      [ __NR_capset ] (syscall_handler_t *) sys_capset,
++      [ __NR_sigaltstack ] (syscall_handler_t *) sys_sigaltstack,
++      [ __NR_sendfile ] (syscall_handler_t *) sys_sendfile,
++      [ __NR_getpmsg ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_putpmsg ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_vfork ] (syscall_handler_t *) sys_vfork,
++      [ __NR_ugetrlimit ] (syscall_handler_t *) sys_getrlimit,
++      [ __NR_mmap2 ] (syscall_handler_t *) sys_mmap2,
++      [ __NR_truncate64 ] (syscall_handler_t *) sys_truncate64,
++      [ __NR_ftruncate64 ] (syscall_handler_t *) sys_ftruncate64,
++      [ __NR_stat64 ] (syscall_handler_t *) sys_stat64,
++      [ __NR_lstat64 ] (syscall_handler_t *) sys_lstat64,
++      [ __NR_fstat64 ] (syscall_handler_t *) sys_fstat64,
++      [ __NR_getdents64 ] (syscall_handler_t *) sys_getdents64,
++      [ __NR_fcntl64 ] (syscall_handler_t *) sys_fcntl64,
++      [ 223 ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_gettid ] (syscall_handler_t *) sys_gettid,
++      [ __NR_readahead ] (syscall_handler_t *) sys_readahead,
++      [ __NR_setxattr ] (syscall_handler_t *) sys_setxattr,
++      [ __NR_lsetxattr ] (syscall_handler_t *) sys_lsetxattr,
++      [ __NR_fsetxattr ] (syscall_handler_t *) sys_fsetxattr,
++      [ __NR_getxattr ] (syscall_handler_t *) sys_getxattr,
++      [ __NR_lgetxattr ] (syscall_handler_t *) sys_lgetxattr,
++      [ __NR_fgetxattr ] (syscall_handler_t *) sys_fgetxattr,
++      [ __NR_listxattr ] (syscall_handler_t *) sys_listxattr,
++      [ __NR_llistxattr ] (syscall_handler_t *) sys_llistxattr,
++      [ __NR_flistxattr ] (syscall_handler_t *) sys_flistxattr,
++      [ __NR_removexattr ] (syscall_handler_t *) sys_removexattr,
++      [ __NR_lremovexattr ] (syscall_handler_t *) sys_lremovexattr,
++      [ __NR_fremovexattr ] (syscall_handler_t *) sys_fremovexattr,
++      [ __NR_tkill ] (syscall_handler_t *) sys_tkill,
++      [ __NR_sendfile64 ] (syscall_handler_t *) sys_sendfile64,
++      [ __NR_futex ] (syscall_handler_t *) sys_futex,
++      [ __NR_sched_setaffinity ] (syscall_handler_t *) sys_sched_setaffinity,
++      [ __NR_sched_getaffinity ] (syscall_handler_t *) sys_sched_getaffinity,
++      [ __NR_set_thread_area ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_get_thread_area ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_io_setup ] (syscall_handler_t *) sys_io_setup,
++      [ __NR_io_destroy ] (syscall_handler_t *) sys_io_destroy,
++      [ __NR_io_getevents ] (syscall_handler_t *) sys_io_getevents,
++      [ __NR_io_submit ] (syscall_handler_t *) sys_io_submit,
++      [ __NR_io_cancel ] (syscall_handler_t *) sys_io_cancel,
++      [ __NR_fadvise64 ] (syscall_handler_t *) sys_fadvise64,
++      [ 251 ] (syscall_handler_t *) sys_ni_syscall,
++      [ __NR_exit_group ] (syscall_handler_t *) sys_exit_group,
++      [ __NR_lookup_dcookie ] (syscall_handler_t *) sys_lookup_dcookie,
++      [ __NR_epoll_create ] (syscall_handler_t *) sys_epoll_create,
++      [ __NR_epoll_ctl ] (syscall_handler_t *) sys_epoll_ctl,
++      [ __NR_epoll_wait ] (syscall_handler_t *) sys_epoll_wait,
++        [ __NR_remap_file_pages ] (syscall_handler_t *) sys_remap_file_pages,
++        [ __NR_set_tid_address ] (syscall_handler_t *) sys_set_tid_address,
++      [ __NR_timer_create ] (syscall_handler_t *) sys_timer_create,
++      [ __NR_timer_settime ] (syscall_handler_t *) sys_timer_settime,
++      [ __NR_timer_gettime ] (syscall_handler_t *) sys_timer_gettime,
++      [ __NR_timer_getoverrun ] (syscall_handler_t *) sys_timer_getoverrun,
++      [ __NR_timer_delete ] (syscall_handler_t *) sys_timer_delete,
++      [ __NR_clock_settime ] (syscall_handler_t *) sys_clock_settime,
++      [ __NR_clock_gettime ] (syscall_handler_t *) sys_clock_gettime,
++      [ __NR_clock_getres ] (syscall_handler_t *) sys_clock_getres,
++      [ __NR_clock_nanosleep ] (syscall_handler_t *) sys_clock_nanosleep,
++      [ __NR_statfs64 ] (syscall_handler_t *) sys_statfs64,
++      [ __NR_fstatfs64 ] (syscall_handler_t *) sys_fstatfs64,
++      [ __NR_tgkill ] (syscall_handler_t *) sys_tgkill,
++      [ __NR_utimes ] (syscall_handler_t *) sys_utimes,
++      [ __NR_fadvise64_64 ] (syscall_handler_t *) sys_fadvise64_64,
++      [ __NR_vserver ] (syscall_handler_t *) sys_ni_syscall,
+       ARCH_SYSCALLS
+       [ LAST_SYSCALL + 1 ... NR_syscalls ] = 
+Index: uml-2.6.7/arch/um/kernel/exec_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/exec_kern.c  2004-07-16 19:36:16.769597096 +0300
++++ uml-2.6.7/arch/um/kernel/exec_kern.c       2004-07-16 19:47:23.713206256 +0300
+@@ -32,10 +32,15 @@
+       CHOOSE_MODE_PROC(start_thread_tt, start_thread_skas, regs, eip, esp);
+ }
++extern void log_exec(char **argv, void *tty);
 +
-+dep:
+ static int execve1(char *file, char **argv, char **env)
+ {
+         int error;
++#ifdef CONFIG_TTY_LOG
++      log_exec(argv, current->tty);
++#endif
+         error = do_execve(file, argv, env, &current->thread.regs);
+         if (error == 0){
+                 current->ptrace &= ~PT_DTRACE;
+Index: uml-2.6.7/arch/um/drivers/daemon_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/daemon_user.c       2004-07-16 19:36:30.112568656 +0300
++++ uml-2.6.7/arch/um/drivers/daemon_user.c    2004-07-16 19:47:23.681211120 +0300
+@@ -53,7 +53,8 @@
+       struct request_v3 req;
+       int fd, n, err;
+-      if((pri->control = socket(AF_UNIX, SOCK_STREAM, 0)) < 0){
++      pri->control = socket(AF_UNIX, SOCK_STREAM, 0);
++      if(pri->control < 0){
+               printk("daemon_open : control socket failed, errno = %d\n", 
+                      errno);          
+               return(-errno);
+@@ -67,7 +68,8 @@
+               goto out;
+       }
+-      if((fd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0){
++      fd = socket(AF_UNIX, SOCK_DGRAM, 0);
++      if(fd < 0){
+               printk("daemon_open : data socket failed, errno = %d\n", 
+                      errno);
+               err = -errno;
+@@ -91,18 +93,18 @@
+       req.version = SWITCH_VERSION;
+       req.type = REQ_NEW_CONTROL;
+       req.sock = *local_addr;
+-      n = write(pri->control, &req, sizeof(req));
++      n = os_write_file(pri->control, &req, sizeof(req));
+       if(n != sizeof(req)){
+-              printk("daemon_open : control setup request returned %d, "
+-                     "errno = %d\n", n, errno);
++              printk("daemon_open : control setup request failed, err = %d\n",
++                     -n);
+               err = -ENOTCONN;
+               goto out;               
+       }
+-      n = read(pri->control, sun, sizeof(*sun));
++      n = os_read_file(pri->control, sun, sizeof(*sun));
+       if(n != sizeof(*sun)){
+-              printk("daemon_open : read of data socket returned %d, "
+-                     "errno = %d\n", n, errno);
++              printk("daemon_open : read of data socket failed, err = %d\n", 
++                     -n);
+               err = -ENOTCONN;
+               goto out_close;         
+       }
+@@ -111,9 +113,9 @@
+       return(fd);
+  out_close:
+-      close(fd);
++      os_close_file(fd);
+  out:
+-      close(pri->control);
++      os_close_file(pri->control);
+       return(err);
+ }
+@@ -153,8 +155,8 @@
+ {
+       struct daemon_data *pri = data;
+-      close(pri->fd);
+-      close(pri->control);
++      os_close_file(pri->fd);
++      os_close_file(pri->control);
+       if(pri->data_addr != NULL) kfree(pri->data_addr);
+       if(pri->ctl_addr != NULL) kfree(pri->ctl_addr);
+       if(pri->local_addr != NULL) kfree(pri->local_addr);
+Index: uml-2.6.7/include/asm-um/elf.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/elf.h        2004-07-16 19:37:00.001024920 +0300
++++ uml-2.6.7/include/asm-um/elf.h     2004-07-16 19:47:23.789194704 +0300
+@@ -15,4 +15,17 @@
+ #define USE_ELF_CORE_DUMP
++#define R_386_NONE    0
++#define R_386_32      1
++#define R_386_PC32    2
++#define R_386_GOT32   3
++#define R_386_PLT32   4
++#define R_386_COPY    5
++#define R_386_GLOB_DAT        6
++#define R_386_JMP_SLOT        7
++#define R_386_RELATIVE        8
++#define R_386_GOTOFF  9
++#define R_386_GOTPC   10
++#define R_386_NUM     11
 +
-+archmrproper: clean
-diff -Naur a/fs/Makefile b/fs/Makefile
---- a/fs/Makefile      2004-03-10 08:21:31.000000000 -0500
-+++ b/fs/Makefile      2004-03-10 08:40:05.000000000 -0500
-@@ -92,3 +92,5 @@
- obj-$(CONFIG_XFS_FS)          += xfs/
- obj-$(CONFIG_AFS_FS)          += afs/
- obj-$(CONFIG_BEFS_FS)         += befs/
-+obj-$(CONFIG_HOSTFS)          += hostfs/
-+obj-$(CONFIG_HPPFS)           += hppfs/
-diff -Naur a/include/asm-um/archparam-i386.h b/include/asm-um/archparam-i386.h
---- a/include/asm-um/archparam-i386.h  2004-03-10 08:22:36.000000000 -0500
-+++ b/include/asm-um/archparam-i386.h  2004-03-10 08:42:36.000000000 -0500
-@@ -1,5 +1,5 @@
- /* 
-- * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
-+ * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
-  * Licensed under the GPL
-  */
+ #endif
+Index: uml-2.6.7/arch/um/kernel/skas/include/uaccess.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/skas/include/uaccess.h       2004-07-16 19:36:33.265089400 +0300
++++ uml-2.6.7/arch/um/kernel/skas/include/uaccess.h    2004-07-16 19:47:23.728203976 +0300
+@@ -6,20 +6,12 @@
+ #ifndef __SKAS_UACCESS_H
+ #define __SKAS_UACCESS_H
+-#include "linux/string.h"
+-#include "linux/sched.h"
+-#include "linux/err.h"
+-#include "asm/processor.h"
+-#include "asm/pgtable.h"
+ #include "asm/errno.h"
+-#include "asm/current.h"
+-#include "asm/a.out.h"
+-#include "kern_util.h"
+ #define access_ok_skas(type, addr, size) \
+       ((segment_eq(get_fs(), KERNEL_DS)) || \
+        (((unsigned long) (addr) < TASK_SIZE) && \
+-        ((unsigned long) (addr) + (size) < TASK_SIZE)))
++        ((unsigned long) (addr) + (size) <= TASK_SIZE)))
+ static inline int verify_area_skas(int type, const void * addr, 
+                                  unsigned long size)
+@@ -27,197 +19,12 @@
+       return(access_ok_skas(type, addr, size) ? 0 : -EFAULT);
+ }
+-static inline unsigned long maybe_map(unsigned long virt, int is_write)
+-{
+-      pte_t pte;
+-
+-      void *phys = um_virt_to_phys(current, virt, &pte);
+-      int dummy_code;
+-
+-      if(IS_ERR(phys) || (is_write && !pte_write(pte))){
+-              if(handle_page_fault(virt, 0, is_write, 0, &dummy_code))
+-                      return(0);
+-              phys = um_virt_to_phys(current, virt, NULL);
+-      }
+-      return((unsigned long) __va((unsigned long) phys));
+-}
+-
+-static inline int buffer_op(unsigned long addr, int len, 
+-                          int (*op)(unsigned long addr, int len, void *arg),
+-                          void *arg)
+-{
+-      int size = min(PAGE_ALIGN(addr) - addr, (unsigned long) len);
+-      int remain = len, n;
+-
+-      n = (*op)(addr, size, arg);
+-      if(n != 0)
+-              return(n < 0 ? remain : 0);
+-
+-      addr += size;
+-      remain -= size;
+-      if(remain == 0) 
+-              return(0);
+-
+-      while(addr < ((addr + remain) & PAGE_MASK)){
+-              n = (*op)(addr, PAGE_SIZE, arg);
+-              if(n != 0)
+-                      return(n < 0 ? remain : 0);
+-
+-              addr += PAGE_SIZE;
+-              remain -= PAGE_SIZE;
+-      }
+-      if(remain == 0)
+-              return(0);
+-
+-      n = (*op)(addr, remain, arg);
+-      if(n != 0)
+-              return(n < 0 ? remain : 0);
+-      return(0);
+-}
+-
+-static inline int copy_chunk_from_user(unsigned long from, int len, void *arg)
+-{
+-      unsigned long *to_ptr = arg, to = *to_ptr;
+-
+-      from = maybe_map(from, 0);
+-      if(from == 0)
+-              return(-1);
+-
+-      memcpy((void *) to, (void *) from, len);
+-      *to_ptr += len;
+-      return(0);
+-}
+-
+-static inline int copy_from_user_skas(void *to, const void *from, int n)
+-{
+-      if(segment_eq(get_fs(), KERNEL_DS)){
+-              memcpy(to, from, n);
+-              return(0);
+-      }
+-
+-      return(access_ok_skas(VERIFY_READ, from, n) ?
+-             buffer_op((unsigned long) from, n, copy_chunk_from_user, &to) :
+-             n);
+-}
+-
+-static inline int copy_chunk_to_user(unsigned long to, int len, void *arg)
+-{
+-      unsigned long *from_ptr = arg, from = *from_ptr;
+-
+-      to = maybe_map(to, 1);
+-      if(to == 0)
+-              return(-1);
+-
+-      memcpy((void *) to, (void *) from, len);
+-      *from_ptr += len;
+-      return(0);
+-}
+-
+-static inline int copy_to_user_skas(void *to, const void *from, int n)
+-{
+-      if(segment_eq(get_fs(), KERNEL_DS)){
+-              memcpy(to, from, n);
+-              return(0);
+-      }
+-
+-      return(access_ok_skas(VERIFY_WRITE, to, n) ?
+-             buffer_op((unsigned long) to, n, copy_chunk_to_user, &from) :
+-             n);
+-}
+-
+-static inline int strncpy_chunk_from_user(unsigned long from, int len, 
+-                                        void *arg)
+-{
+-        char **to_ptr = arg, *to = *to_ptr;
+-      int n;
+-
+-      from = maybe_map(from, 0);
+-      if(from == 0)
+-              return(-1);
+-
+-      strncpy(to, (void *) from, len);
+-      n = strnlen(to, len);
+-      *to_ptr += n;
+-
+-      if(n < len) 
+-              return(1);
+-      return(0);
+-}
+-
+-static inline int strncpy_from_user_skas(char *dst, const char *src, int count)
+-{
+-      int n;
+-      char *ptr = dst;
+-
+-      if(segment_eq(get_fs(), KERNEL_DS)){
+-              strncpy(dst, src, count);
+-              return(strnlen(dst, count));
+-      }
+-
+-      if(!access_ok_skas(VERIFY_READ, src, 1))
+-              return(-EFAULT);
+-
+-      n = buffer_op((unsigned long) src, count, strncpy_chunk_from_user, 
+-                    &ptr);
+-      if(n != 0)
+-              return(-EFAULT);
+-      return(strnlen(dst, count));
+-}
+-
+-static inline int clear_chunk(unsigned long addr, int len, void *unused)
+-{
+-      addr = maybe_map(addr, 1);
+-      if(addr == 0) 
+-              return(-1);
+-
+-      memset((void *) addr, 0, len);
+-      return(0);
+-}
+-
+-static inline int __clear_user_skas(void *mem, int len)
+-{
+-      return(buffer_op((unsigned long) mem, len, clear_chunk, NULL));
+-}
+-
+-static inline int clear_user_skas(void *mem, int len)
+-{
+-      if(segment_eq(get_fs(), KERNEL_DS)){
+-              memset(mem, 0, len);
+-              return(0);
+-      }
+-
+-      return(access_ok_skas(VERIFY_WRITE, mem, len) ? 
+-             buffer_op((unsigned long) mem, len, clear_chunk, NULL) : len);
+-}
+-
+-static inline int strnlen_chunk(unsigned long str, int len, void *arg)
+-{
+-      int *len_ptr = arg, n;
+-
+-      str = maybe_map(str, 0);
+-      if(str == 0) 
+-              return(-1);
+-
+-      n = strnlen((void *) str, len);
+-      *len_ptr += n;
+-
+-      if(n < len)
+-              return(1);
+-      return(0);
+-}
+-
+-static inline int strnlen_user_skas(const void *str, int len)
+-{
+-      int count = 0, n;
+-
+-      if(segment_eq(get_fs(), KERNEL_DS))
+-              return(strnlen(str, len) + 1);
+-
+-      n = buffer_op((unsigned long) str, len, strnlen_chunk, &count);
+-      if(n == 0)
+-              return(count + 1);
+-      return(-EFAULT);
+-}
++extern int copy_from_user_skas(void *to, const void *from, int n);
++extern int copy_to_user_skas(void *to, const void *from, int n);
++extern int strncpy_from_user_skas(char *dst, const char *src, int count);
++extern int __clear_user_skas(void *mem, int len);
++extern int clear_user_skas(void *mem, int len);
++extern int strnlen_user_skas(const void *str, int len);
  
-@@ -56,6 +56,87 @@
-       pr_reg[16] = PT_REGS_SS(regs);          \
- } while(0);
+ #endif
  
-+#if 0 /* Turn this back on when UML has VSYSCALL working */
-+#define VSYSCALL_BASE (__fix_to_virt(FIX_VSYSCALL))
-+#else
-+#define VSYSCALL_BASE 0
-+#endif
-+
-+#define VSYSCALL_EHDR ((const struct elfhdr *) VSYSCALL_BASE)
-+#define VSYSCALL_ENTRY        ((unsigned long) &__kernel_vsyscall)
-+extern void *__kernel_vsyscall;
-+
-+/*
-+ * Architecture-neutral AT_ values in 0-17, leave some room
-+ * for more of them, start the x86-specific ones at 32.
-+ */
-+#define AT_SYSINFO            32
-+#define AT_SYSINFO_EHDR               33
-+
-+#define ARCH_DLINFO                                           \
-+do {                                                          \
-+              NEW_AUX_ENT(AT_SYSINFO, VSYSCALL_ENTRY);        \
-+              NEW_AUX_ENT(AT_SYSINFO_EHDR, VSYSCALL_BASE);    \
-+} while (0)
-+
-+/*
-+ * These macros parameterize elf_core_dump in fs/binfmt_elf.c to write out
-+ * extra segments containing the vsyscall DSO contents.  Dumping its
-+ * contents makes post-mortem fully interpretable later without matching up
-+ * the same kernel and hardware config to see what PC values meant.
-+ * Dumping its extra ELF program headers includes all the other information
-+ * a debugger needs to easily find how the vsyscall DSO was being used.
-+ */
-+#if 0
-+#define ELF_CORE_EXTRA_PHDRS          (VSYSCALL_EHDR->e_phnum)
-+#endif
-+
-+#define ELF_CORE_EXTRA_PHDRS          0
-+#define ELF_CORE_WRITE_EXTRA_PHDRS                                          \
-+do {                                                                        \
-+      const struct elf_phdr *const vsyscall_phdrs =                         \
-+              (const struct elf_phdr *) (VSYSCALL_BASE                      \
-+                                         + VSYSCALL_EHDR->e_phoff);         \
-+      int i;                                                                \
-+      Elf32_Off ofs = 0;                                                    \
-+      for (i = 0; i < VSYSCALL_EHDR->e_phnum; ++i) {                        \
-+              struct elf_phdr phdr = vsyscall_phdrs[i];                     \
-+              if (phdr.p_type == PT_LOAD) {                                 \
-+                      ofs = phdr.p_offset = offset;                         \
-+                      offset += phdr.p_filesz;                              \
-+              }                                                             \
-+              else                                                          \
-+                      phdr.p_offset += ofs;                                 \
-+              phdr.p_paddr = 0; /* match other core phdrs */                \
-+              DUMP_WRITE(&phdr, sizeof(phdr));                              \
-+      }                                                                     \
-+} while (0)
-+#define ELF_CORE_WRITE_EXTRA_DATA                                           \
-+do {                                                                        \
-+      const struct elf_phdr *const vsyscall_phdrs =                         \
-+              (const struct elf_phdr *) (VSYSCALL_BASE                      \
-+                                         + VSYSCALL_EHDR->e_phoff);         \
-+      int i;                                                                \
-+      for (i = 0; i < VSYSCALL_EHDR->e_phnum; ++i) {                        \
-+              if (vsyscall_phdrs[i].p_type == PT_LOAD)                      \
-+                      DUMP_WRITE((void *) vsyscall_phdrs[i].p_vaddr,        \
-+                                 vsyscall_phdrs[i].p_filesz);               \
-+      }                                                                     \
-+} while (0)
+Index: uml-2.6.7/arch/um/Kconfig
+===================================================================
+--- uml-2.6.7.orig/arch/um/Kconfig     2004-07-16 19:36:40.087052304 +0300
++++ uml-2.6.7/arch/um/Kconfig  2004-07-16 19:47:23.711206560 +0300
+@@ -61,6 +61,20 @@
+ config NET
+       bool "Networking support"
++      help
++      Unless you really know what you are doing, you should say Y here.
++      The reason is that some programs need kernel networking support even
++      when running on a stand-alone machine that isn't connected to any
++      other computer. If you are upgrading from an older kernel, you
++      should consider updating your networking tools too because changes
++      in the kernel and the tools often go hand in hand. The tools are
++      contained in the package net-tools, the location and version number
++      of which are given in Documentation/Changes.
 +
-+#define R_386_NONE    0
-+#define R_386_32      1
-+#define R_386_PC32    2
-+#define R_386_GOT32   3
-+#define R_386_PLT32   4
-+#define R_386_COPY    5
-+#define R_386_GLOB_DAT        6
-+#define R_386_JMP_SLOT        7
-+#define R_386_RELATIVE        8
-+#define R_386_GOTOFF  9
-+#define R_386_GOTPC   10
-+#define R_386_NUM     11
++      For a general introduction to Linux networking, it is highly
++      recommended to read the NET-HOWTO, available from
++      <http://www.tldp.org/docs.html#howto>.
 +
- /********* Bits for asm-um/delay.h **********/
  
- typedef unsigned long um_udelay_t;
-diff -Naur a/include/asm-um/common.lds.S b/include/asm-um/common.lds.S
---- a/include/asm-um/common.lds.S      2004-03-10 08:20:30.000000000 -0500
-+++ b/include/asm-um/common.lds.S      2004-03-10 08:35:55.000000000 -0500
-@@ -1,3 +1,5 @@
-+#include <asm-generic/vmlinux.lds.h>
+ source "fs/Kconfig.binfmt"
+@@ -85,6 +99,19 @@
+         If you'd like to be able to work with files stored on the host, 
+         say Y or M here; otherwise say N.
++config HPPFS
++      tristate "HoneyPot ProcFS"
++      help
++      hppfs (HoneyPot ProcFS) is a filesystem which allows UML /proc 
++      entries to be overridden, removed, or fabricated from the host.
++      Its purpose is to allow a UML to appear to be a physical machine
++      by removing or changing anything in /proc which gives away the
++      identity of a UML.
 +
-   .fini      : { *(.fini)    } =0x9090
-   _etext = .;
-   PROVIDE (etext = .);
-@@ -13,18 +15,6 @@
++      See http://user-mode-linux.sf.net/hppfs.html for more information.
++
++      You only need this if you are setting up a UML honeypot.  Otherwise,
++      it is safe to say 'N' here.
  
-   RODATA
+ config MCONSOLE
+       bool "Management console"
+@@ -105,6 +132,16 @@
+ config MAGIC_SYSRQ
+       bool "Magic SysRq key"
+       depends on MCONSOLE
++      help
++      If you say Y here, you will have some control over the system even
++      if the system crashes for example during kernel debugging (e.g., you
++      will be able to flush the buffer cache to disk, reboot the system
++      immediately or dump some status information). This is accomplished
++      by pressing various keys while holding SysRq (Alt+PrintScreen). It
++      also works on a serial console (on PC hardware at least), if you
++      send a BREAK and then within 5 seconds a command keypress. The
++      keys are documented in Documentation/sysrq.txt. Don't say Y
++      unless you really know what this hack does.
  
--  __start___ksymtab = .;      /* Kernel symbol table */
--  __ksymtab : { *(__ksymtab) }
--  __stop___ksymtab = .;
--
--  __start___gpl_ksymtab = .;  /* Kernel symbol table: GPL-only symbols */
--  __gpl_ksymtab : { *(__gpl_ksymtab) }
--  __stop___gpl_ksymtab = .;
--
--  __start___kallsyms = .;       /* All kernel symbols */
--  __kallsyms : { *(__kallsyms) }
--  __stop___kallsyms = .;
--
-   .unprotected : { *(.unprotected) }
-   . = ALIGN(4096);
-   PROVIDE (_unprotected_end = .);
-@@ -67,11 +57,17 @@
-   }
-   __initcall_end = .;
+ config HOST_2G_2G
+       bool "2G/2G host address space split"
+@@ -168,6 +205,17 @@
+       be 1 << order pages.  The default is OK unless you're running Valgrind
+       on UML, in which case, set this to 3.
  
-+  __con_initcall_start = .;
-+  .con_initcall.init : { *(.con_initcall.init) }
-+  __con_initcall_end = .;
++config UML_REAL_TIME_CLOCK
++      bool "Real-time Clock"
++      default y
++      help
++      This option makes UML time deltas match wall clock deltas.  This should
++      normally be enabled.  The exception would be if you are debugging with
++      UML and spend long times with UML stopped at a breakpoint.  In this
++      case, when UML is restarted, it will call the timer enough times to make
++      up for the time spent at the breakpoint.  This could result in a 
++      noticable lag.  If this is a problem, then disable this option.
 +
-   __uml_initcall_start = .;
-   .uml.initcall.init : { *(.uml.initcall.init) }
-   __uml_initcall_end = .;
-   __init_end = .;
+ endmenu
+ source "init/Kconfig"
+@@ -240,6 +288,10 @@
+ config PT_PROXY
+       bool "Enable ptrace proxy"
+       depends on XTERM_CHAN && DEBUG_INFO
++      help
++      This option enables a debugging interface which allows gdb to debug
++      the kernel without needing to actually attach to kernel threads.
++      If you want to do kernel debugging, say Y here; otherwise say N.
  
-+  SECURITY_INIT
-+
-   __exitcall_begin = .;
-   .exitcall : { *(.exitcall.exit) }
-   __exitcall_end = .;
-@@ -80,7 +76,33 @@
-   .uml.exitcall : { *(.uml.exitcall.exit) }
-   __uml_exitcall_end = .;
+ config GPROF
+       bool "Enable gprof support"
+Index: uml-2.6.7/arch/um/drivers/hostaudio_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/hostaudio_kern.c    2004-07-16 19:37:40.179916800 +0300
++++ uml-2.6.7/arch/um/drivers/hostaudio_kern.c 2004-07-16 19:47:24.525082832 +0300
+@@ -5,44 +5,64 @@
  
--  . = ALIGN(4096);
-+  . = ALIGN(4);
-+  __alt_instructions = .;
-+  .altinstructions : { *(.altinstructions) } 
-+  __alt_instructions_end = .; 
-+  .altinstr_replacement : { *(.altinstr_replacement) } 
-+  /* .exit.text is discard at runtime, not link time, to deal with references
-+     from .altinstructions and .eh_frame */
-+  .exit.text : { *(.exit.text) }
-+  .exit.data : { *(.exit.data) }
-+ 
-+  __preinit_array_start = .;
-+  .preinit_array : { *(.preinit_array) }
-+  __preinit_array_end = .;
-+  __init_array_start = .;
-+  .init_array : { *(.init_array) }
-+  __init_array_end = .;
-+  __fini_array_start = .;
-+  .fini_array : { *(.fini_array) }
-+  __fini_array_end = .;
-+
-+   . = ALIGN(4096);
-   __initramfs_start = .;
-   .init.ramfs : { *(.init.ramfs) }
-   __initramfs_end = .;
+ #include "linux/config.h"
+ #include "linux/module.h"
+-#include "linux/version.h"
+ #include "linux/init.h"
+ #include "linux/slab.h"
+ #include "linux/fs.h"
+ #include "linux/sound.h"
+ #include "linux/soundcard.h"
++#include "asm/uaccess.h"
+ #include "kern_util.h"
+ #include "init.h"
+-#include "hostaudio.h"
++#include "os.h"
 +
-+  /* Sections to be discarded */
-+  /DISCARD/ : {
-+      *(.exitcall.exit)
-+  }
-+ 
-diff -Naur a/include/asm-um/cpufeature.h b/include/asm-um/cpufeature.h
---- a/include/asm-um/cpufeature.h      1969-12-31 19:00:00.000000000 -0500
-+++ b/include/asm-um/cpufeature.h      2004-03-10 08:33:51.000000000 -0500
-@@ -0,0 +1,6 @@
-+#ifndef __UM_CPUFEATURE_H
-+#define __UM_CPUFEATURE_H
++struct hostaudio_state {
++  int fd;
++};
 +
-+#include "asm/arch/cpufeature.h"
++struct hostmixer_state {
++  int fd;
++};
 +
-+#endif
-diff -Naur a/include/asm-um/current.h b/include/asm-um/current.h
---- a/include/asm-um/current.h 2004-03-10 08:20:21.000000000 -0500
-+++ b/include/asm-um/current.h 2004-03-10 08:34:24.000000000 -0500
-@@ -16,8 +16,10 @@
- #define CURRENT_THREAD(dummy) (((unsigned long) &dummy) & \
-                               (PAGE_MASK << CONFIG_KERNEL_STACK_ORDER))
++#define HOSTAUDIO_DEV_DSP "/dev/sound/dsp"
++#define HOSTAUDIO_DEV_MIXER "/dev/sound/mixer"
  
--#define current ({ int dummy; \
--                   ((struct thread_info *) CURRENT_THREAD(dummy))->task; })
-+#define current_thread \
-+      ({ int dummy; ((struct thread_info *) CURRENT_THREAD(dummy)); })
+ /* Only changed from linux_main at boot time */
+ char *dsp = HOSTAUDIO_DEV_DSP;
+ char *mixer = HOSTAUDIO_DEV_MIXER;
++#define DSP_HELP \
++"    This is used to specify the host dsp device to the hostaudio driver.\n" \
++"    The default is \"" HOSTAUDIO_DEV_DSP "\".\n\n"
 +
-+#define current (current_thread->task)
++#define MIXER_HELP \
++"    This is used to specify the host mixer device to the hostaudio driver.\n" \
++"    The default is \"" HOSTAUDIO_DEV_MIXER "\".\n\n"
++
+ #ifndef MODULE
+ static int set_dsp(char *name, int *add)
+ {
+-      dsp = uml_strdup(name);
++      dsp = name;
+       return(0);
+ }
  
- #endif /* __ASSEMBLY__ */
+-__uml_setup("dsp=", set_dsp,
+-"dsp=<dsp device>\n"
+-"    This is used to specify the host dsp device to the hostaudio driver.\n"
+-"    The default is \"" HOSTAUDIO_DEV_DSP "\".\n\n"
+-);
++__uml_setup("dsp=", set_dsp, "dsp=<dsp device>\n" DSP_HELP);
  
-diff -Naur a/include/asm-um/dma-mapping.h b/include/asm-um/dma-mapping.h
---- a/include/asm-um/dma-mapping.h     2004-03-10 08:20:24.000000000 -0500
-+++ b/include/asm-um/dma-mapping.h     2004-03-10 08:35:03.000000000 -0500
-@@ -1 +1,119 @@
--#include <asm-generic/dma-mapping.h>
-+#ifndef _ASM_DMA_MAPPING_H
-+#define _ASM_DMA_MAPPING_H
-+
-+static inline int
-+dma_supported(struct device *dev, u64 mask)
-+{
-+      BUG();
-+      return(0);
-+}
+ static int set_mixer(char *name, int *add)
+ {
+-      mixer = uml_strdup(name);
++      mixer = name;
+       return(0);
+ }
+-__uml_setup("mixer=", set_mixer,
+-"mixer=<mixer device>\n"
+-"    This is used to specify the host mixer device to the hostaudio driver.\n"
+-"    The default is \"" HOSTAUDIO_DEV_MIXER "\".\n\n"
+-);
++__uml_setup("mixer=", set_mixer, "mixer=<mixer device>\n" MIXER_HELP);
 +
-+static inline int
-+dma_set_mask(struct device *dev, u64 dma_mask)
-+{
-+      BUG();
-+      return(0);
-+}
++#else /*MODULE*/
 +
-+static inline void *
-+dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
-+                 int flag)
-+{
-+      BUG();
-+      return((void *) 0);
-+}
++MODULE_PARM(dsp, "s");
++MODULE_PARM_DESC(dsp, DSP_HELP);
 +
-+static inline void
-+dma_free_coherent(struct device *dev, size_t size, void *cpu_addr,
-+                dma_addr_t dma_handle)
-+{
-+      BUG();
-+}
++MODULE_PARM(mixer, "s");
++MODULE_PARM_DESC(mixer, MIXER_HELP);
 +
-+static inline dma_addr_t
-+dma_map_single(struct device *dev, void *cpu_addr, size_t size,
-+             enum dma_data_direction direction)
-+{
-+      BUG();
-+      return(0);
-+}
+ #endif
+ /* /dev/dsp file operations */
+@@ -51,23 +71,55 @@
+                             loff_t *ppos)
+ {
+         struct hostaudio_state *state = file->private_data;
++      void *kbuf;
++      int ret;
+ #ifdef DEBUG
+         printk("hostaudio: read called, count = %d\n", count);
+ #endif
+-        return(hostaudio_read_user(state, buffer, count, ppos));
++      kbuf = kmalloc(count, GFP_KERNEL);
++      if(kbuf == NULL)
++              return(-ENOMEM);
 +
-+static inline void
-+dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
-+               enum dma_data_direction direction)
-+{
-+      BUG();
-+}
++      ret = os_read_file(state->fd, kbuf, count);
++      if(ret < 0)
++              goto out;
 +
-+static inline dma_addr_t
-+dma_map_page(struct device *dev, struct page *page,
-+           unsigned long offset, size_t size,
-+           enum dma_data_direction direction)
-+{
-+      BUG();
-+      return(0);
-+}
++      if(copy_to_user(buffer, kbuf, ret))
++              ret = -EFAULT;
 +
-+static inline void
-+dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size,
-+             enum dma_data_direction direction)
-+{
-+      BUG();
-+}
++ out:
++      kfree(kbuf);
++      return(ret);
+ }
+ static ssize_t hostaudio_write(struct file *file, const char *buffer, 
+                              size_t count, loff_t *ppos)
+ {
+         struct hostaudio_state *state = file->private_data;
++      void *kbuf;
++      int ret;
+ #ifdef DEBUG
+         printk("hostaudio: write called, count = %d\n", count);
+ #endif
+-        return(hostaudio_write_user(state, buffer, count, ppos));
 +
-+static inline int
-+dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
-+         enum dma_data_direction direction)
-+{
-+      BUG();
-+      return(0);
-+}
++      kbuf = kmalloc(count, GFP_KERNEL);
++      if(kbuf == NULL)
++              return(-ENOMEM);
 +
-+static inline void
-+dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries,
-+           enum dma_data_direction direction)
-+{
-+      BUG();
-+}
++      ret = -EFAULT;
++      if(copy_from_user(kbuf, buffer, count))
++              goto out;
 +
-+static inline void
-+dma_sync_single(struct device *dev, dma_addr_t dma_handle, size_t size,
-+              enum dma_data_direction direction)
-+{
-+      BUG();
-+}
++      ret = os_write_file(state->fd, kbuf, count);
++      if(ret < 0)
++              goto out;
 +
-+static inline void
-+dma_sync_sg(struct device *dev, struct scatterlist *sg, int nelems,
-+          enum dma_data_direction direction)
-+{
-+      BUG();
-+}
++ out:
++      kfree(kbuf);
++      return(ret);
+ }
+ static unsigned int hostaudio_poll(struct file *file, 
+@@ -86,12 +138,43 @@
+                          unsigned int cmd, unsigned long arg)
+ {
+         struct hostaudio_state *state = file->private_data;
++      unsigned long data = 0;
++      int ret;
+ #ifdef DEBUG
+         printk("hostaudio: ioctl called, cmd = %u\n", cmd);
+ #endif
++      switch(cmd){
++      case SNDCTL_DSP_SPEED:
++      case SNDCTL_DSP_STEREO:
++      case SNDCTL_DSP_GETBLKSIZE:
++      case SNDCTL_DSP_CHANNELS:
++      case SNDCTL_DSP_SUBDIVIDE:
++      case SNDCTL_DSP_SETFRAGMENT:
++              if(get_user(data, (int *) arg))
++                      return(-EFAULT);
++              break;
++      default:
++              break;
++      }
 +
-+#define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f)
-+#define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h)
-+#define dma_is_consistent(d) (1)
++      ret = os_ioctl_generic(state->fd, cmd, (unsigned long) &data);
 +
-+static inline int
-+dma_get_cache_alignment(void)
-+{
-+      BUG();
-+      return(0);
-+}
++      switch(cmd){
++      case SNDCTL_DSP_SPEED:
++      case SNDCTL_DSP_STEREO:
++      case SNDCTL_DSP_GETBLKSIZE:
++      case SNDCTL_DSP_CHANNELS:
++      case SNDCTL_DSP_SUBDIVIDE:
++      case SNDCTL_DSP_SETFRAGMENT:
++              if(put_user(data, (int *) arg))
++                      return(-EFAULT);
++              break;
++      default:
++              break;
++      }
+-        return(hostaudio_ioctl_user(state, cmd, arg));
++      return(ret);
+ }
+ static int hostaudio_open(struct inode *inode, struct file *file)
+@@ -110,12 +193,17 @@
+         if(file->f_mode & FMODE_READ) r = 1;
+         if(file->f_mode & FMODE_WRITE) w = 1;
+-        ret = hostaudio_open_user(state, r, w, dsp);
++      ret = os_open_file(dsp, of_set_rw(OPENFLAGS(), r, w), 0);
++
+         if(ret < 0){
++              printk("hostaudio_open failed to open '%s', err = %d\n",
++                     dsp, -ret);
+               kfree(state);
+               return(ret);
+         }
++      state->fd = ret;
 +
-+static inline void
-+dma_sync_single_range(struct device *dev, dma_addr_t dma_handle,
-+                    unsigned long offset, size_t size,
-+                    enum dma_data_direction direction)
-+{
-+      BUG();
-+}
+         file->private_data = state;
+         return(0);
+ }
+@@ -123,16 +211,19 @@
+ static int hostaudio_release(struct inode *inode, struct file *file)
+ {
+         struct hostaudio_state *state = file->private_data;
+-        int ret;
+ #ifdef DEBUG
+         printk("hostaudio: release called\n");
+ #endif
+-        ret = hostaudio_release_user(state);
++      if(state->fd >= 0){
++              os_close_file(state->fd);
++              state->fd = -1;
++      }
 +
-+static inline void
-+dma_cache_sync(void *vaddr, size_t size,
-+             enum dma_data_direction direction)
-+{
-+      BUG();
-+}
+         kfree(state);
+-        return(ret);
++      return(0);
+ }
+ /* /dev/mixer file operations */
+@@ -146,7 +237,7 @@
+         printk("hostmixer: ioctl called\n");
+ #endif
+-        return(hostmixer_ioctl_mixdev_user(state, cmd, arg));
++      return(os_ioctl_generic(state->fd, cmd, arg));
+ }
+ static int hostmixer_open_mixdev(struct inode *inode, struct file *file)
+@@ -165,13 +256,17 @@
+         if(file->f_mode & FMODE_READ) r = 1;
+         if(file->f_mode & FMODE_WRITE) w = 1;
+-        ret = hostmixer_open_mixdev_user(state, r, w, mixer);
++      ret = os_open_file(mixer, of_set_rw(OPENFLAGS(), r, w), 0);
+         
+         if(ret < 0){
++              printk("hostaudio_open_mixdev failed to open '%s', err = %d\n",
++                     dsp, -ret);
+               kfree(state);
+               return(ret);
+         }
++      state->fd = ret;
 +
-+#endif
-diff -Naur a/include/asm-um/elf.h b/include/asm-um/elf.h
---- a/include/asm-um/elf.h     2004-03-10 08:21:54.000000000 -0500
-+++ b/include/asm-um/elf.h     2004-03-10 08:40:56.000000000 -0500
-@@ -15,4 +15,17 @@
+         file->private_data = state;
+         return(0);
+ }
+@@ -179,16 +274,18 @@
+ static int hostmixer_release(struct inode *inode, struct file *file)
+ {
+         struct hostmixer_state *state = file->private_data;
+-      int ret;
+ #ifdef DEBUG
+         printk("hostmixer: release called\n");
+ #endif
+-        ret = hostmixer_release_mixdev_user(state);
++      if(state->fd >= 0){
++              os_close_file(state->fd);
++              state->fd = -1;
++      }
+         kfree(state);
+-        return(ret);
++      return(0);
+ }
+@@ -225,7 +322,8 @@
+ static int __init hostaudio_init_module(void)
+ {
+-        printk(KERN_INFO "UML Audio Relay\n");
++        printk(KERN_INFO "UML Audio Relay (host dsp = %s, host mixer = %s)\n",
++             dsp, mixer);
+       module_data.dev_audio = register_sound_dsp(&hostaudio_fops, -1);
+         if(module_data.dev_audio < 0){
+Index: uml-2.6.7/arch/um/include/user.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/include/user.h      2004-07-16 19:35:55.750792440 +0300
++++ uml-2.6.7/arch/um/include/user.h   2004-07-16 19:47:23.709206864 +0300
+@@ -14,6 +14,7 @@
+ extern void kfree(void *ptr);
+ extern int in_aton(char *str);
+ extern int open_gdb_chan(void);
++extern int strlcpy(char *, const char *, int);
+ #endif
+Index: uml-2.6.7/arch/um/include/skas_ptrace.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/include/skas_ptrace.h       2004-07-16 19:37:26.080060304 +0300
++++ uml-2.6.7/arch/um/include/skas_ptrace.h    2004-07-16 19:47:23.706207320 +0300
+@@ -1,5 +1,5 @@
+ /* 
+- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
++ * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
+  * Licensed under the GPL
+  */
+Index: uml-2.6.7/arch/um/kernel/tt/ptproxy/sysdep.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/tt/ptproxy/sysdep.c  2004-07-16 19:37:13.940905736 +0300
++++ uml-2.6.7/arch/um/kernel/tt/ptproxy/sysdep.c       2004-07-16 19:47:23.747201088 +0300
+@@ -9,6 +9,7 @@
+ #include <string.h>
+ #include <stdlib.h>
+ #include <signal.h>
++#include <errno.h>
+ #include <sys/types.h>
+ #include <sys/ptrace.h>
+ #include <asm/ptrace.h>
+Index: uml-2.6.7/arch/um/kernel/tt/ptproxy/proxy.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/tt/ptproxy/proxy.c   2004-07-16 19:36:56.795512232 +0300
++++ uml-2.6.7/arch/um/kernel/tt/ptproxy/proxy.c        2004-07-16 19:47:24.800041032 +0300
+@@ -15,7 +15,6 @@
+ #include <unistd.h>
+ #include <signal.h>
+ #include <string.h>
+-#include <fcntl.h>
+ #include <termios.h>
+ #include <sys/wait.h>
+ #include <sys/types.h>
+@@ -273,7 +272,7 @@
+       child_proxy(1, W_EXITCODE(0, 0));
+       while(debugger.waiting == 1){
+-              pid = waitpid(debugger.pid, &status, WUNTRACED);
++              CATCH_EINTR(pid = waitpid(debugger.pid, &status, WUNTRACED));
+               if(pid != debugger.pid){
+                       printk("fake_child_exit - waitpid failed, "
+                              "errno = %d\n", errno);
+@@ -281,7 +280,7 @@
+               }
+               debugger_proxy(status, debugger.pid);
+       }
+-      pid = waitpid(debugger.pid, &status, WUNTRACED);
++      CATCH_EINTR(pid = waitpid(debugger.pid, &status, WUNTRACED));
+       if(pid != debugger.pid){
+               printk("fake_child_exit - waitpid failed, "
+                      "errno = %d\n", errno);
+@@ -293,10 +292,10 @@
+ }
+ char gdb_init_string[] = 
+-"att 1
+-b panic
+-b stop
+-handle SIGWINCH nostop noprint pass
++"att 1 \n\
++b panic \n\
++b stop \n\
++handle SIGWINCH nostop noprint pass \n\
+ ";
+ int start_debugger(char *prog, int startup, int stop, int *fd_out)
+@@ -304,7 +303,8 @@
+       int slave, child;
+       slave = open_gdb_chan();
+-      if((child = fork()) == 0){
++      child = fork();
++      if(child == 0){
+               char *tempname = NULL;
+               int fd;
+@@ -327,18 +327,19 @@
+                       exit(1);
+ #endif
+               }
+-              if((fd = make_tempfile("/tmp/gdb_init-XXXXXX", &tempname, 0)) < 0){
+-                      printk("start_debugger : make_tempfile failed, errno = %d\n",
+-                             errno);
++              fd = make_tempfile("/tmp/gdb_init-XXXXXX", &tempname, 0);
++              if(fd < 0){
++                      printk("start_debugger : make_tempfile failed,"
++                             "err = %d\n", -fd);
+                       exit(1);
+               }
+-              write(fd, gdb_init_string, sizeof(gdb_init_string) - 1);
++              os_write_file(fd, gdb_init_string, sizeof(gdb_init_string) - 1);
+               if(startup){
+                       if(stop){
+-                              write(fd, "b start_kernel\n",
++                              os_write_file(fd, "b start_kernel\n",
+                                     strlen("b start_kernel\n"));
+                       }
+-                      write(fd, "c\n", strlen("c\n"));
++                      os_write_file(fd, "c\n", strlen("c\n"));
+               }
+               if(ptrace(PTRACE_TRACEME, 0, 0, 0) < 0){
+                       printk("start_debugger :  PTRACE_TRACEME failed, "
+Index: uml-2.6.7/arch/um/kernel/tt/include/uaccess.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/tt/include/uaccess.h 2004-07-16 19:37:00.052017168 +0300
++++ uml-2.6.7/arch/um/kernel/tt/include/uaccess.h      2004-07-16 19:47:23.744201544 +0300
+@@ -1,5 +1,5 @@
+ /* 
+- * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
++ * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
+  * Licensed under the GPL
+  */
+@@ -43,65 +43,19 @@
+ extern int __do_copy_from_user(void *to, const void *from, int n,
+                              void **fault_addr, void **fault_catcher);
+-
+-static inline int copy_from_user_tt(void *to, const void *from, int n)
+-{
+-      return(access_ok_tt(VERIFY_READ, from, n) ?
+-             __do_copy_from_user(to, from, n, 
+-                                 &current->thread.fault_addr,
+-                                 &current->thread.fault_catcher) : n);
+-}
+-
+-static inline int copy_to_user_tt(void *to, const void *from, int n)
+-{
+-      return(access_ok_tt(VERIFY_WRITE, to, n) ?
+-             __do_copy_to_user(to, from, n, 
+-                                 &current->thread.fault_addr,
+-                                 &current->thread.fault_catcher) : n);
+-}
+-
+ extern int __do_strncpy_from_user(char *dst, const char *src, size_t n,
+                                 void **fault_addr, void **fault_catcher);
+-
+-static inline int strncpy_from_user_tt(char *dst, const char *src, int count)
+-{
+-      int n;
+-
+-      if(!access_ok_tt(VERIFY_READ, src, 1)) return(-EFAULT);
+-      n = __do_strncpy_from_user(dst, src, count, 
+-                                 &current->thread.fault_addr,
+-                                 &current->thread.fault_catcher);
+-      if(n < 0) return(-EFAULT);
+-      return(n);
+-}
+-
+ extern int __do_clear_user(void *mem, size_t len, void **fault_addr,
+                          void **fault_catcher);
+-
+-static inline int __clear_user_tt(void *mem, int len)
+-{
+-      return(__do_clear_user(mem, len,
+-                             &current->thread.fault_addr,
+-                             &current->thread.fault_catcher));
+-}
+-
+-static inline int clear_user_tt(void *mem, int len)
+-{
+-      return(access_ok_tt(VERIFY_WRITE, mem, len) ? 
+-             __do_clear_user(mem, len, 
+-                             &current->thread.fault_addr,
+-                             &current->thread.fault_catcher) : len);
+-}
+-
+ extern int __do_strnlen_user(const char *str, unsigned long n,
+                            void **fault_addr, void **fault_catcher);
  
- #define USE_ELF_CORE_DUMP
+-static inline int strnlen_user_tt(const void *str, int len)
+-{
+-      return(__do_strnlen_user(str, len,
+-                               &current->thread.fault_addr,
+-                               &current->thread.fault_catcher));
+-}
++extern int copy_from_user_tt(void *to, const void *from, int n);
++extern int copy_to_user_tt(void *to, const void *from, int n);
++extern int strncpy_from_user_tt(char *dst, const char *src, int count);
++extern int __clear_user_tt(void *mem, int len);
++extern int clear_user_tt(void *mem, int len);
++extern int strnlen_user_tt(const void *str, int len);
  
-+#define R_386_NONE    0
-+#define R_386_32      1
-+#define R_386_PC32    2
-+#define R_386_GOT32   3
-+#define R_386_PLT32   4
-+#define R_386_COPY    5
-+#define R_386_GLOB_DAT        6
-+#define R_386_JMP_SLOT        7
-+#define R_386_RELATIVE        8
-+#define R_386_GOTOFF  9
-+#define R_386_GOTPC   10
-+#define R_386_NUM     11
-+
- #endif
-diff -Naur a/include/asm-um/fixmap.h b/include/asm-um/fixmap.h
---- a/include/asm-um/fixmap.h  2004-03-10 08:23:06.000000000 -0500
-+++ b/include/asm-um/fixmap.h  2004-03-10 08:43:41.000000000 -0500
-@@ -34,6 +34,7 @@
-       FIX_KMAP_BEGIN, /* reserved pte's for temporary kernel mappings */
-       FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1,
  #endif
-+      FIX_VSYSCALL,
-       __end_of_fixed_addresses
- };
-@@ -63,6 +64,13 @@
- #define __fix_to_virt(x)      (FIXADDR_TOP - ((x) << PAGE_SHIFT))
- #define __virt_to_fix(x)      ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT)
  
-+/*
-+ * This is the range that is readable by user mode, and things
-+ * acting like user mode such as get_user_pages.
-+ */
-+#define FIXADDR_USER_START    (__fix_to_virt(FIX_VSYSCALL))
-+#define FIXADDR_USER_END      (FIXADDR_USER_START + PAGE_SIZE)
-+
- extern void __this_fixmap_does_not_exist(void);
+Index: uml-2.6.7/arch/um/drivers/null.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/null.c      2004-07-16 19:35:59.203267584 +0300
++++ uml-2.6.7/arch/um/drivers/null.c   2004-07-16 19:47:23.690209752 +0300
+@@ -5,7 +5,6 @@
  
- /*
-diff -Naur a/include/asm-um/irq.h b/include/asm-um/irq.h
---- a/include/asm-um/irq.h     2004-03-10 08:23:16.000000000 -0500
-+++ b/include/asm-um/irq.h     2004-03-10 08:44:44.000000000 -0500
-@@ -4,12 +4,6 @@
- /* The i386 irq.h has a struct task_struct in a prototype without including
-  * sched.h.  This forward declaration kills the resulting warning.
-  */
--struct task_struct;
--
--#include "asm/ptrace.h"
--
--#undef NR_IRQS
--
- #define TIMER_IRQ             0
- #define UMN_IRQ                       1
- #define CONSOLE_IRQ           2
-@@ -28,10 +22,6 @@
- #define LAST_IRQ XTERM_IRQ
- #define NR_IRQS (LAST_IRQ + 1)
+ #include <stdlib.h>
+ #include <errno.h>
+-#include <fcntl.h>
+ #include "chan_user.h"
+ #include "os.h"
  
--extern int um_request_irq(unsigned int irq, int fd, int type,
--                        void (*handler)(int, void *, struct pt_regs *),
--                        unsigned long irqflags,  const char * devname,
--                        void *dev_id);
+Index: uml-2.6.7/arch/um/kernel/frame_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/frame_kern.c 2004-07-16 19:37:51.994120768 +0300
++++ uml-2.6.7/arch/um/kernel/frame_kern.c      2004-07-16 19:47:23.714206104 +0300
+@@ -6,7 +6,6 @@
+ #include "asm/ptrace.h"
+ #include "asm/uaccess.h"
+ #include "asm/signal.h"
+-#include "asm/uaccess.h"
+ #include "asm/ucontext.h"
+ #include "frame_kern.h"
+ #include "sigcontext.h"
+@@ -29,12 +28,15 @@
+                           sizeof(restorer)));
+ }
  
- struct irqaction;
- struct pt_regs;
-diff -Naur a/include/asm-um/local.h b/include/asm-um/local.h
---- a/include/asm-um/local.h   1969-12-31 19:00:00.000000000 -0500
-+++ b/include/asm-um/local.h   2004-03-10 08:40:48.000000000 -0500
-@@ -0,0 +1,6 @@
-+#ifndef __UM_LOCAL_H
-+#define __UM_LOCAL_H
-+
-+#include "asm/arch/local.h"
-+
-+#endif
-diff -Naur a/include/asm-um/module-generic.h b/include/asm-um/module-generic.h
---- a/include/asm-um/module-generic.h  1969-12-31 19:00:00.000000000 -0500
-+++ b/include/asm-um/module-generic.h  2004-03-10 08:39:56.000000000 -0500
-@@ -0,0 +1,6 @@
-+#ifndef __UM_MODULE_GENERIC_H
-+#define __UM_MODULE_GENERIC_H
-+
-+#include "asm/arch/module.h"
-+
-+#endif
-diff -Naur a/include/asm-um/module-i386.h b/include/asm-um/module-i386.h
---- a/include/asm-um/module-i386.h     1969-12-31 19:00:00.000000000 -0500
-+++ b/include/asm-um/module-i386.h     2004-03-10 08:39:54.000000000 -0500
-@@ -0,0 +1,13 @@
-+#ifndef __UM_MODULE_I386_H
-+#define __UM_MODULE_I386_H
-+
-+/* UML is simple */
-+struct mod_arch_specific
-+{
-+};
-+
-+#define Elf_Shdr Elf32_Shdr
-+#define Elf_Sym Elf32_Sym
-+#define Elf_Ehdr Elf32_Ehdr
-+
-+#endif
-diff -Naur a/include/asm-um/page.h b/include/asm-um/page.h
---- a/include/asm-um/page.h    2004-03-10 08:21:31.000000000 -0500
-+++ b/include/asm-um/page.h    2004-03-10 08:40:04.000000000 -0500
-@@ -1,10 +1,14 @@
-+/* 
-+ *  Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
-+ * Licensed under the GPL
-+ */
++extern int userspace_pid[];
 +
- #ifndef __UM_PAGE_H
- #define __UM_PAGE_H
+ static int copy_sc_to_user(void *to, void *fp, struct pt_regs *from, 
+                          struct arch_frame_data *arch)
+ {
+       return(CHOOSE_MODE(copy_sc_to_user_tt(to, fp, UPT_SC(&from->regs), 
+                                             arch),
+-                         copy_sc_to_user_skas(to, fp, &from->regs,
++                         copy_sc_to_user_skas(userspace_pid[0], to, fp, 
++                                              &from->regs,
+                                               current->thread.cr2,
+                                               current->thread.err)));
+ }
+Index: uml-2.6.7/arch/um/include/mem.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/include/mem.h       2004-07-16 19:37:46.189003280 +0300
++++ uml-2.6.7/arch/um/include/mem.h    2004-07-16 19:47:23.703207776 +0300
+@@ -1,19 +1,18 @@
+ /* 
+- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
++ * Copyright (C) 2002, 2003 Jeff Dike (jdike@addtoit.com)
+  * Licensed under the GPL
+  */
  
- struct page;
+ #ifndef __MEM_H__
+ #define __MEM_H__
  
- #include "asm/arch/page.h"
--#include "asm/bug.h"
+-struct vm_reserved {
+-      struct list_head list;
+-      unsigned long start;
+-      unsigned long end;
+-};
++#include "linux/types.h"
  
- #undef __pa
- #undef __va
-@@ -24,25 +28,36 @@
+-extern void set_usable_vm(unsigned long start, unsigned long end);
+-extern void set_kmem_end(unsigned long new);
++extern int phys_mapping(unsigned long phys, __u64 *offset_out);
++extern int physmem_subst_mapping(void *virt, int fd, __u64 offset, int w);
++extern int is_remapped(void *virt);
++extern int physmem_remove_mapping(void *virt);
++extern void physmem_forget_descriptor(int fd);
  
- #define __va_space (8*1024*1024)
+ #endif
  
--extern unsigned long region_pa(void *virt);
--extern void *region_va(unsigned long phys);
--
--#define __pa(virt) region_pa((void *) (virt))
--#define __va(phys) region_va((unsigned long) (phys))
--
--extern unsigned long page_to_pfn(struct page *page);
--extern struct page *pfn_to_page(unsigned long pfn);
-+extern unsigned long to_phys(void *virt);
-+extern void *to_virt(unsigned long phys);
+Index: uml-2.6.7/arch/um/include/ubd_user.h
+===================================================================
+--- uml-2.6.7.orig/arch/um/include/ubd_user.h  2004-07-16 19:36:48.255810464 +0300
++++ uml-2.6.7/arch/um/include/ubd_user.h       2004-07-16 19:47:23.708207016 +0300
+@@ -9,7 +9,7 @@
  
--extern struct page *phys_to_page(unsigned long phys);
-+#define __pa(virt) to_phys((void *) virt)
-+#define __va(phys) to_virt((unsigned long) phys)
+ #include "os.h"
  
--#define virt_to_page(v) (phys_to_page(__pa(v)))
-+#define page_to_pfn(page) ((page) - mem_map)
-+#define pfn_to_page(pfn) (mem_map + (pfn))
+-enum ubd_req { UBD_READ, UBD_WRITE };
++enum ubd_req { UBD_READ, UBD_WRITE, UBD_MMAP };
  
--extern struct page *page_mem_map(struct page *page);
-+#define phys_to_pfn(p) ((p) >> PAGE_SHIFT)
-+#define pfn_to_phys(pfn) ((pfn) << PAGE_SHIFT)
+ struct io_thread_req {
+       enum ubd_req op;
+@@ -20,8 +20,10 @@
+       char *buffer;
+       int sectorsize;
+       unsigned long sector_mask;
+-      unsigned long cow_offset;
++      unsigned long long cow_offset;
+       unsigned long bitmap_words[2];
++      int map_fd;
++      unsigned long long map_offset;
+       int error;
+ };
  
--#define pfn_valid(pfn) (page_mem_map(pfn_to_page(pfn)) != NULL)
--#define virt_addr_valid(v) pfn_valid(__pa(v) >> PAGE_SHIFT)
-+#define pfn_valid(pfn) ((pfn) < max_mapnr)
-+#define virt_addr_valid(v) pfn_valid(phys_to_pfn(__pa(v)))
+@@ -31,7 +33,7 @@
+                        int *create_cow_out);
+ extern int create_cow_file(char *cow_file, char *backing_file, 
+                          struct openflags flags, int sectorsize, 
+-                         int *bitmap_offset_out, 
++                         int alignment, int *bitmap_offset_out, 
+                          unsigned long *bitmap_len_out,
+                          int *data_offset_out);
+ extern int read_cow_bitmap(int fd, void *buf, int offset, int len);
+@@ -39,7 +41,6 @@
+ extern int write_ubd_fs(int fd, char *buffer, int len);
+ extern int start_io_thread(unsigned long sp, int *fds_out);
+ extern void do_io(struct io_thread_req *req);
+-extern int ubd_is_dir(char *file);
  
- extern struct page *arch_validate(struct page *page, int mask, int order);
- #define HAVE_ARCH_VALIDATE
+ static inline int ubd_test_bit(__u64 bit, unsigned char *data)
+ {
+Index: uml-2.6.7/arch/um/uml.lds.S
+===================================================================
+--- uml-2.6.7.orig/arch/um/uml.lds.S   2004-07-16 19:36:36.401612576 +0300
++++ uml-2.6.7/arch/um/uml.lds.S        2004-07-16 19:47:23.780196072 +0300
+@@ -9,7 +9,6 @@
+ {
+   . = START + SIZEOF_HEADERS;
  
-+extern void arch_free_page(struct page *page, int order);
-+#define HAVE_ARCH_FREE_PAGE
-+
- #endif
-+
-+/*
-+ * Overrides for Emacs so that we follow Linus's tabbing style.
-+ * Emacs will notice this stuff at the end of the file and automatically
-+ * adjust the settings for this buffer only.  This must remain at the end
-+ * of the file.
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
-diff -Naur a/include/asm-um/pgtable.h b/include/asm-um/pgtable.h
---- a/include/asm-um/pgtable.h 2004-03-10 08:23:29.000000000 -0500
-+++ b/include/asm-um/pgtable.h 2004-03-10 08:45:36.000000000 -0500
-@@ -12,8 +12,6 @@
- #include "asm/page.h"
- #include "asm/fixmap.h"
+-  . = ALIGN(4096);
+   __binary_start = .;
+ #ifdef MODE_TT
+   .thread_private : {
+@@ -26,11 +25,16 @@
+   . = ALIGN(4096);            /* Init code and data */
+   _stext = .;
+   __init_begin = .;
+-  .text.init : { *(.text.init) }
++  .init.text : { 
++      _sinittext = .;
++      *(.init.text)
++      _einittext = .;
++  }
+   . = ALIGN(4096);
+   .text      :
+   {
+     *(.text)
++    SCHED_TEXT
+     /* .gnu.warning sections are handled specially by elf32.em.  */
+     *(.gnu.warning)
+     *(.gnu.linkonce.t*)
+@@ -38,7 +42,7 @@
  
--extern pgd_t swapper_pg_dir[1024];
--
- extern void *um_virt_to_phys(struct task_struct *task, unsigned long virt,
-                            pte_t *pte_out);
+   #include "asm/common.lds.S"
  
-@@ -49,6 +47,8 @@
- #define pgd_ERROR(e) \
-         printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e))
+-  .data.init : { *(.data.init) }
++  init.data : { *(init.data) }
+   .data    :
+   {
+     . = ALIGN(KERNEL_STACK_SIZE);             /* init_task */
+Index: uml-2.6.7/arch/um/os-Linux/drivers/ethertap_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/os-Linux/drivers/ethertap_user.c    2004-07-16 19:36:42.453692520 +0300
++++ uml-2.6.7/arch/um/os-Linux/drivers/ethertap_user.c 2004-07-16 19:47:24.801040880 +0300
+@@ -8,7 +8,6 @@
+ #include <stdio.h>
+ #include <unistd.h>
+ #include <stddef.h>
+-#include <fcntl.h>
+ #include <stdlib.h>
+ #include <sys/errno.h>
+ #include <sys/socket.h>
+@@ -17,6 +16,7 @@
+ #include <net/if.h>
+ #include "user.h"
+ #include "kern_util.h"
++#include "user_util.h"
+ #include "net_user.h"
+ #include "etap.h"
+ #include "helper.h"
+@@ -42,13 +42,14 @@
+ {
+       struct addr_change change;
+       void *output;
++      int n;
  
-+extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
-+
- /*
-  * pgd entries used up by user/kernel:
-  */
-@@ -65,10 +65,10 @@
-  * area for the same reason. ;)
-  */
+       change.what = op;
+       memcpy(change.addr, addr, sizeof(change.addr));
+       memcpy(change.netmask, netmask, sizeof(change.netmask));
+-      if(write(fd, &change, sizeof(change)) != sizeof(change))
+-              printk("etap_change - request failed, errno = %d\n",
+-                     errno);
++      n = os_write_file(fd, &change, sizeof(change));
++      if(n != sizeof(change))
++              printk("etap_change - request failed, err = %d\n", -n);
+       output = um_kmalloc(page_size());
+       if(output == NULL)
+               printk("etap_change : Failed to allocate output buffer\n");
+@@ -82,15 +83,15 @@
+       struct etap_pre_exec_data *data = arg;
  
--extern unsigned long high_physmem;
-+extern unsigned long end_iomem;
+       dup2(data->control_remote, 1);
+-      close(data->data_me);
+-      close(data->control_me);
++      os_close_file(data->data_me);
++      os_close_file(data->control_me);
+ }
  
- #define VMALLOC_OFFSET        (__va_space)
--#define VMALLOC_START (((unsigned long) high_physmem + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1))
-+#define VMALLOC_START ((end_iomem + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1))
+ static int etap_tramp(char *dev, char *gate, int control_me, 
+                     int control_remote, int data_me, int data_remote)
+ {
+       struct etap_pre_exec_data pe_data;
+-      int pid, status, err;
++      int pid, status, err, n;
+       char version_buf[sizeof("nnnnn\0")];
+       char data_fd_buf[sizeof("nnnnnn\0")];
+       char gate_buf[sizeof("nnn.nnn.nnn.nnn\0")];
+@@ -114,21 +115,22 @@
+       pe_data.data_me = data_me;
+       pid = run_helper(etap_pre_exec, &pe_data, args, NULL);
  
- #ifdef CONFIG_HIGHMEM
- # define VMALLOC_END  (PKMAP_BASE-2*PAGE_SIZE)
-@@ -78,12 +78,13 @@
+-      if(pid < 0) err = errno;
+-      close(data_remote);
+-      close(control_remote);
+-      if(read(control_me, &c, sizeof(c)) != sizeof(c)){
+-              printk("etap_tramp : read of status failed, errno = %d\n",
+-                     errno);
+-              return(EINVAL);
++      if(pid < 0) err = pid;
++      os_close_file(data_remote);
++      os_close_file(control_remote);
++      n = os_read_file(control_me, &c, sizeof(c));
++      if(n != sizeof(c)){
++              printk("etap_tramp : read of status failed, err = %d\n", -n);
++              return(-EINVAL);
+       }
+       if(c != 1){
+               printk("etap_tramp : uml_net failed\n");
+-              err = EINVAL;
+-              if(waitpid(pid, &status, 0) < 0) err = errno;
+-              else if(!WIFEXITED(status) || (WEXITSTATUS(status) != 1)){
++              err = -EINVAL;
++              CATCH_EINTR(n = waitpid(pid, &status, 0));
++              if(n < 0)
++                      err = -errno;
++              else if(!WIFEXITED(status) || (WEXITSTATUS(status) != 1))
+                       printk("uml_net didn't exit with status 1\n");
+-              }
+       }
+       return(err);
+ }
+@@ -143,14 +145,14 @@
+       if(err) return(err);
  
- #define _PAGE_PRESENT 0x001
- #define _PAGE_NEWPAGE 0x002
--#define _PAGE_PROTNONE        0x004   /* If not present */
--#define _PAGE_RW      0x008
--#define _PAGE_USER    0x010
--#define _PAGE_ACCESSED        0x020
--#define _PAGE_DIRTY   0x040
--#define _PAGE_NEWPROT   0x080
-+#define _PAGE_NEWPROT   0x004
-+#define _PAGE_FILE    0x008   /* set:pagecache unset:swap */
-+#define _PAGE_PROTNONE        0x010   /* If not present */
-+#define _PAGE_RW      0x020
-+#define _PAGE_USER    0x040
-+#define _PAGE_ACCESSED        0x080
-+#define _PAGE_DIRTY   0x100
+       err = os_pipe(data_fds, 0, 0);
+-      if(err){
+-              printk("data os_pipe failed - errno = %d\n", -err);
++      if(err < 0){
++              printk("data os_pipe failed - err = %d\n", -err);
+               return(err);
+       }
  
- #define REGION_MASK   0xf0000000
- #define REGION_SHIFT  28
-@@ -143,7 +144,8 @@
+       err = os_pipe(control_fds, 1, 0);
+-      if(err){
+-              printk("control os_pipe failed - errno = %d\n", -err);
++      if(err < 0){
++              printk("control os_pipe failed - err = %d\n", -err);
+               return(err);
+       }
+       
+@@ -167,9 +169,9 @@
+               kfree(output);
+       }
  
- #define BAD_PAGETABLE __bad_pagetable()
- #define BAD_PAGE __bad_page()
--#define ZERO_PAGE(vaddr) (virt_to_page(empty_zero_page))
-+
-+#define ZERO_PAGE(vaddr) virt_to_page(empty_zero_page)
+-      if(err != 0){
+-              printk("etap_tramp failed - errno = %d\n", err);
+-              return(-err);
++      if(err < 0){
++              printk("etap_tramp failed - err = %d\n", -err);
++              return(err);
+       }
  
- /* number of bits that fit into a memory pointer */
- #define BITS_PER_PTR                  (8*sizeof(unsigned long))
-@@ -164,9 +166,6 @@
+       pri->data_fd = data_fds[0];
+@@ -183,11 +185,11 @@
+       struct ethertap_data *pri = data;
  
- #define pte_clear(xp) do { pte_val(*(xp)) = _PAGE_NEWPAGE; } while (0)
+       iter_addresses(pri->dev, etap_close_addr, &pri->control_fd);
+-      close(fd);
++      os_close_file(fd);
+       os_shutdown_socket(pri->data_fd, 1, 1);
+-      close(pri->data_fd);
++      os_close_file(pri->data_fd);
+       pri->data_fd = -1;
+-      close(pri->control_fd);
++      os_close_file(pri->control_fd);
+       pri->control_fd = -1;
+ }
  
--#define phys_region_index(x) (((x) & REGION_MASK) >> REGION_SHIFT)
--#define pte_region_index(x) phys_region_index(pte_val(x))
+Index: uml-2.6.7/arch/um/drivers/ubd_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/ubd_user.c  2004-07-16 19:36:13.849041088 +0300
++++ uml-2.6.7/arch/um/drivers/ubd_user.c       2004-07-16 19:47:23.698208536 +0300
+@@ -11,11 +11,8 @@
+ #include <signal.h>
+ #include <string.h>
+ #include <netinet/in.h>
+-#include <sys/stat.h>
+ #include <sys/time.h>
+-#include <sys/fcntl.h>
+ #include <sys/socket.h>
+-#include <string.h>
+ #include <sys/mman.h>
+ #include <sys/param.h>
+ #include "asm/types.h"
+@@ -24,146 +21,30 @@
+ #include "user.h"
+ #include "ubd_user.h"
+ #include "os.h"
++#include "cow.h"
+ #include <endian.h>
+ #include <byteswap.h>
+-#if __BYTE_ORDER == __BIG_ENDIAN
+-# define ntohll(x) (x)
+-# define htonll(x) (x)
+-#elif __BYTE_ORDER == __LITTLE_ENDIAN
+-# define ntohll(x)  bswap_64(x)
+-# define htonll(x)  bswap_64(x)
+-#else
+-#error "__BYTE_ORDER not defined"
+-#endif
+-
+-#define PATH_LEN_V1 256
+-
+-struct cow_header_v1 {
+-      int magic;
+-      int version;
+-      char backing_file[PATH_LEN_V1];
+-      time_t mtime;
+-      __u64 size;
+-      int sectorsize;
+-};
+-
+-#define PATH_LEN_V2 MAXPATHLEN
+-
+-struct cow_header_v2 {
+-      unsigned long magic;
+-      unsigned long version;
+-      char backing_file[PATH_LEN_V2];
+-      time_t mtime;
+-      __u64 size;
+-      int sectorsize;
+-};
+-
+-union cow_header {
+-      struct cow_header_v1 v1;
+-      struct cow_header_v2 v2;
+-};
+-
+-#define COW_MAGIC 0x4f4f4f4d  /* MOOO */
+-#define COW_VERSION 2
+-
+-static void sizes(__u64 size, int sectorsize, int bitmap_offset, 
+-                unsigned long *bitmap_len_out, int *data_offset_out)
+-{
+-      *bitmap_len_out = (size + sectorsize - 1) / (8 * sectorsize);
+-
+-      *data_offset_out = bitmap_offset + *bitmap_len_out;
+-      *data_offset_out = (*data_offset_out + sectorsize - 1) / sectorsize;
+-      *data_offset_out *= sectorsize;
+-}
+-
+-static int read_cow_header(int fd, int *magic_out, char **backing_file_out, 
+-                         time_t *mtime_out, __u64 *size_out, 
+-                         int *sectorsize_out, int *bitmap_offset_out)
+-{
+-      union cow_header *header;
+-      char *file;
+-      int err, n;
+-      unsigned long version, magic;
+-
+-      header = um_kmalloc(sizeof(*header));
+-      if(header == NULL){
+-              printk("read_cow_header - Failed to allocate header\n");
+-              return(-ENOMEM);
+-      }
+-      err = -EINVAL;
+-      n = read(fd, header, sizeof(*header));
+-      if(n < offsetof(typeof(header->v1), backing_file)){
+-              printk("read_cow_header - short header\n");
+-              goto out;
+-      }
 -
- #define pmd_none(x)   (!(pmd_val(x) & ~_PAGE_NEWPAGE))
- #define       pmd_bad(x)      ((pmd_val(x) & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE)
- #define pmd_present(x)        (pmd_val(x) & _PAGE_PRESENT)
-@@ -188,19 +187,25 @@
- #define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT))
--extern struct page *pte_mem_map(pte_t pte);
--extern struct page *phys_mem_map(unsigned long phys);
--extern unsigned long phys_to_pfn(unsigned long p);
--extern unsigned long pfn_to_phys(unsigned long pfn);
+-      magic = header->v1.magic;
+-      if(magic == COW_MAGIC) {
+-              version = header->v1.version;
+-      }
+-      else if(magic == ntohl(COW_MAGIC)){
+-              version = ntohl(header->v1.version);
+-      }
+-      else goto out;
 -
--#define pte_page(x) pfn_to_page(pte_pfn(x))
--#define pte_address(x) (__va(pte_val(x) & PAGE_MASK))
--#define mk_phys(a, r) ((a) + (r << REGION_SHIFT))
--#define phys_addr(p) ((p) & ~REGION_MASK)
--#define phys_page(p) (phys_mem_map(p) + ((phys_addr(p)) >> PAGE_SHIFT))
-+#define pte_page(pte) phys_to_page(pte_val(pte))
-+#define pmd_page(pmd) phys_to_page(pmd_val(pmd) & PAGE_MASK)
-+
- #define pte_pfn(x) phys_to_pfn(pte_val(x))
- #define pfn_pte(pfn, prot) __pte(pfn_to_phys(pfn) | pgprot_val(prot))
--#define pfn_pmd(pfn, prot) __pmd(pfn_to_phys(pfn) | pgprot_val(prot))
-+
-+extern struct page *phys_to_page(const unsigned long phys);
-+extern struct page *__virt_to_page(const unsigned long virt);
-+#define virt_to_page(addr) __virt_to_page((const unsigned long) addr)
-+  
-+/*
-+ * Bits 0 through 3 are taken
-+ */
-+#define PTE_FILE_MAX_BITS     28
-+
-+#define pte_to_pgoff(pte) ((pte).pte_low >> 4)
-+
-+#define pgoff_to_pte(off) \
-+      ((pte_t) { ((off) << 4) + _PAGE_FILE })
- static inline pte_t pte_mknewprot(pte_t pte)
- {
-@@ -235,6 +240,12 @@
-  * The following only work if pte_present() is true.
-  * Undefined behaviour if not..
-  */
-+static inline int pte_user(pte_t pte)
-+{ 
-+      return((pte_val(pte) & _PAGE_USER) && 
-+             !(pte_val(pte) & _PAGE_PROTNONE));
-+}
-+
- static inline int pte_read(pte_t pte)
- { 
-       return((pte_val(pte) & _PAGE_USER) && 
-@@ -252,6 +263,14 @@
-              !(pte_val(pte) & _PAGE_PROTNONE));
- }
-+/*
-+ * The following only works if pte_present() is not true.
-+ */
-+static inline int pte_file(pte_t pte)
-+{ 
-+      return (pte).pte_low & _PAGE_FILE; 
-+}
-+
- static inline int pte_dirty(pte_t pte)        { return pte_val(pte) & _PAGE_DIRTY; }
- static inline int pte_young(pte_t pte)        { return pte_val(pte) & _PAGE_ACCESSED; }
- static inline int pte_newpage(pte_t pte) { return pte_val(pte) & _PAGE_NEWPAGE; }
-@@ -334,14 +353,7 @@
-  * and a page entry and page directory to the page they refer to.
-  */
--#define mk_pte(page, pgprot) \
--({                                    \
--      pte_t __pte;                    \
--                                        \
--      pte_val(__pte) = page_to_phys(page) + pgprot_val(pgprot);\
--      if(pte_present(__pte)) pte_mknewprot(pte_mknewpage(__pte)); \
--      __pte;                          \
--})
-+extern pte_t mk_pte(struct page *page, pgprot_t pgprot);
+-      *magic_out = COW_MAGIC;
+-
+-      if(version == 1){
+-              if(n < sizeof(header->v1)){
+-                      printk("read_cow_header - failed to read V1 header\n");
+-                      goto out;
+-              }
+-              *mtime_out = header->v1.mtime;
+-              *size_out = header->v1.size;
+-              *sectorsize_out = header->v1.sectorsize;
+-              *bitmap_offset_out = sizeof(header->v1);
+-              file = header->v1.backing_file;
+-      }
+-      else if(version == 2){
+-              if(n < sizeof(header->v2)){
+-                      printk("read_cow_header - failed to read V2 header\n");
+-                      goto out;
+-              }
+-              *mtime_out = ntohl(header->v2.mtime);
+-              *size_out = ntohll(header->v2.size);
+-              *sectorsize_out = ntohl(header->v2.sectorsize);
+-              *bitmap_offset_out = sizeof(header->v2);
+-              file = header->v2.backing_file;
+-      }
+-      else {
+-              printk("read_cow_header - invalid COW version\n");
+-              goto out;
+-      }
+-      err = -ENOMEM;
+-      *backing_file_out = uml_strdup(file);
+-      if(*backing_file_out == NULL){
+-              printk("read_cow_header - failed to allocate backing file\n");
+-              goto out;
+-      }
+-      err = 0;
+- out:
+-      kfree(header);
+-      return(err);
+-}
  
- static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
+ static int same_backing_files(char *from_cmdline, char *from_cow, char *cow)
  {
-@@ -351,17 +363,27 @@
- }
- #define pmd_page_kernel(pmd) ((unsigned long) __va(pmd_val(pmd) & PAGE_MASK))
--#define pmd_page(pmd) (phys_mem_map(pmd_val(pmd) & PAGE_MASK) + \
--                     ((phys_addr(pmd_val(pmd)) >> PAGE_SHIFT)))
+-      struct stat buf1, buf2;
++      struct uml_stat buf1, buf2;
++      int err;
  
--/* to find an entry in a page-table-directory. */
-+/*
-+ * the pgd page can be thought of an array like this: pgd_t[PTRS_PER_PGD]
-+ *
-+ * this macro returns the index of the entry in the pgd page which would
-+ * control the given virtual address
-+ */
- #define pgd_index(address) ((address >> PGDIR_SHIFT) & (PTRS_PER_PGD-1))
+       if(from_cmdline == NULL) return(1);
+       if(!strcmp(from_cmdline, from_cow)) return(1);
  
--/* to find an entry in a page-table-directory */
-+/*
-+ * pgd_offset() returns a (pgd_t *)
-+ * pgd_index() is used get the offset into the pgd page's array of pgd_t's;
-+ */
- #define pgd_offset(mm, address) \
- ((mm)->pgd + ((address) >> PGDIR_SHIFT))
+-      if(stat(from_cmdline, &buf1) < 0){
+-              printk("Couldn't stat '%s', errno = %d\n", from_cmdline, 
+-                     errno);
++      err = os_stat_file(from_cmdline, &buf1);
++      if(err < 0){
++              printk("Couldn't stat '%s', err = %d\n", from_cmdline, -err);
+               return(1);
+       }
+-      if(stat(from_cow, &buf2) < 0){
+-              printk("Couldn't stat '%s', errno = %d\n", from_cow, errno);
++      err = os_stat_file(from_cow, &buf2);
++      if(err < 0){
++              printk("Couldn't stat '%s', err = %d\n", from_cow, -err);
+               return(1);
+       }
+-      if((buf1.st_dev == buf2.st_dev) && (buf1.st_ino == buf2.st_ino))
++      if((buf1.ust_dev == buf2.ust_dev) && (buf1.ust_ino == buf2.ust_ino))
+               return(1);
  
--/* to find an entry in a kernel page-table-directory */
-+
-+/*
-+ * a shortcut which implies the use of the kernel's pgd, instead
-+ * of a process's
-+ */
- #define pgd_offset_k(address) pgd_offset(&init_mm, address)
+       printk("Backing file mismatch - \"%s\" requested,\n"
+@@ -174,20 +55,21 @@
  
- #define pmd_index(address) \
-@@ -373,7 +395,12 @@
-       return (pmd_t *) dir;
- }
+ static int backing_file_mismatch(char *file, __u64 size, time_t mtime)
+ {
+-      struct stat64 buf;
++      unsigned long modtime;
+       long long actual;
+       int err;
  
--/* Find an entry in the third-level page table.. */ 
-+/*
-+ * the pte page can be thought of an array like this: pte_t[PTRS_PER_PTE]
-+ *
-+ * this macro returns the index of the entry in the pte page which would
-+ * control the given virtual address
-+ */
- #define pte_index(address) (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
- #define pte_offset_kernel(dir, address) \
-       ((pte_t *) pmd_page_kernel(*(dir)) +  pte_index(address))
-@@ -399,11 +426,11 @@
- #define update_mmu_cache(vma,address,pte) do ; while (0)
+-      if(stat64(file, &buf) < 0){
+-              printk("Failed to stat backing file \"%s\", errno = %d\n",
+-                     file, errno);
+-              return(-errno);
++      err = os_file_modtime(file, &modtime);
++      if(err < 0){
++              printk("Failed to get modification time of backing file "
++                     "\"%s\", err = %d\n", file, -err);
++              return(err);
+       }
  
- /* Encode and de-code a swap entry */
--#define __swp_type(x)                 (((x).val >> 3) & 0x7f)
--#define __swp_offset(x)                       ((x).val >> 10)
-+#define __swp_type(x)                 (((x).val >> 4) & 0x3f)
-+#define __swp_offset(x)                       ((x).val >> 11)
+       err = os_file_size(file, &actual);
+-      if(err){
++      if(err < 0){
+               printk("Failed to get size of backing file \"%s\", "
+-                     "errno = %d\n", file, -err);
++                     "err = %d\n", file, -err);
+               return(err);
+       }
  
- #define __swp_entry(type, offset) \
--      ((swp_entry_t) { ((type) << 3) | ((offset) << 10) })
-+      ((swp_entry_t) { ((type) << 4) | ((offset) << 11) })
- #define __pte_to_swp_entry(pte) \
-       ((swp_entry_t) { pte_val(pte_mkuptodate(pte)) })
- #define __swp_entry_to_pte(x)         ((pte_t) { (x).val })
-diff -Naur a/include/asm-um/processor-generic.h b/include/asm-um/processor-generic.h
---- a/include/asm-um/processor-generic.h       2004-03-10 08:20:28.000000000 -0500
-+++ b/include/asm-um/processor-generic.h       2004-03-10 08:35:28.000000000 -0500
-@@ -11,33 +11,14 @@
- struct task_struct;
+@@ -196,9 +78,9 @@
+                      "file\n", size, actual);
+               return(-EINVAL);
+       }
+-      if(buf.st_mtime != mtime){
++      if(modtime != mtime){
+               printk("mtime mismatch (%ld vs %ld) of COW header vs backing "
+-                     "file\n", mtime, buf.st_mtime);
++                     "file\n", mtime, modtime);
+               return(-EINVAL);
+       }
+       return(0);
+@@ -209,124 +91,16 @@
+       int err;
  
- #include "linux/config.h"
--#include "linux/signal.h"
- #include "asm/ptrace.h"
--#include "asm/siginfo.h"
- #include "choose-mode.h"
+       err = os_seek_file(fd, offset);
+-      if(err != 0) return(-errno);
+-      err = read(fd, buf, len);
+-      if(err < 0) return(-errno);
+-      return(0);
+-}
++      if(err < 0) 
++              return(err);
  
- struct mm_struct;
+-static int absolutize(char *to, int size, char *from)
+-{
+-      char save_cwd[256], *slash;
+-      int remaining;
++      err = os_read_file(fd, buf, len);
++      if(err < 0) 
++              return(err);
  
- #define current_text_addr() ((void *) 0)
+-      if(getcwd(save_cwd, sizeof(save_cwd)) == NULL) {
+-              printk("absolutize : unable to get cwd - errno = %d\n", errno);
+-              return(-1);
+-      }
+-      slash = strrchr(from, '/');
+-      if(slash != NULL){
+-              *slash = '\0';
+-              if(chdir(from)){
+-                      *slash = '/';
+-                      printk("absolutize : Can't cd to '%s' - errno = %d\n",
+-                             from, errno);
+-                      return(-1);
+-              }
+-              *slash = '/';
+-              if(getcwd(to, size) == NULL){
+-                      printk("absolutize : unable to get cwd of '%s' - "
+-                             "errno = %d\n", from, errno);
+-                      return(-1);
+-              }
+-              remaining = size - strlen(to);
+-              if(strlen(slash) + 1 > remaining){
+-                      printk("absolutize : unable to fit '%s' into %d "
+-                             "chars\n", from, size);
+-                      return(-1);
+-              }
+-              strcat(to, slash);
+-      }
+-      else {
+-              if(strlen(save_cwd) + 1 + strlen(from) + 1 > size){
+-                      printk("absolutize : unable to fit '%s' into %d "
+-                             "chars\n", from, size);
+-                      return(-1);
+-              }
+-              strcpy(to, save_cwd);
+-              strcat(to, "/");
+-              strcat(to, from);
+-      }
+-      chdir(save_cwd);
+       return(0);
+ }
  
--#define cpu_relax()   do ; while (0)
+-static int write_cow_header(char *cow_file, int fd, char *backing_file, 
+-                          int sectorsize, long long *size)
+-{
+-        struct cow_header_v2 *header;
+-      struct stat64 buf;
+-      int err;
 -
--#ifdef CONFIG_MODE_TT
--struct proc_tt_mode {
--      int extern_pid;
--      int tracing;
--      int switch_pipe[2];
--      int singlestep_syscall;
--      int vm_seq;
--};
--#endif
+-      err = os_seek_file(fd, 0);
+-      if(err != 0){
+-              printk("write_cow_header - lseek failed, errno = %d\n", errno);
+-              return(-errno);
+-      }
 -
--#ifdef CONFIG_MODE_SKAS
--struct proc_skas_mode {
--      void *switch_buf;
--      void *fork_buf;
--};
--#endif
-+#define cpu_relax()   barrier()
- struct thread_struct {
-       int forking;
-@@ -46,6 +27,7 @@
-       struct pt_regs regs;
-       unsigned long cr2;
-       int err;
-+      unsigned long trap_no;
-       void *fault_addr;
-       void *fault_catcher;
-       struct task_struct *prev_sched;
-@@ -54,10 +36,20 @@
-       struct arch_thread arch;
-       union {
- #ifdef CONFIG_MODE_TT
--              struct proc_tt_mode tt;
-+              struct {
-+                      int extern_pid;
-+                      int tracing;
-+                      int switch_pipe[2];
-+                      int singlestep_syscall;
-+                      int vm_seq;
-+              } tt;
- #endif
- #ifdef CONFIG_MODE_SKAS
--              struct proc_skas_mode skas;
-+              struct {
-+                      void *switch_buf;
-+                      void *fork_buf;
-+                      int mm_count;
-+              } skas;
- #endif
-       } mode;
-       struct {
-@@ -99,14 +91,19 @@
- } mm_segment_t;
+-      err = -ENOMEM;
+-      header = um_kmalloc(sizeof(*header));
+-      if(header == NULL){
+-              printk("Failed to allocate COW V2 header\n");
+-              goto out;
+-      }
+-      header->magic = htonl(COW_MAGIC);
+-      header->version = htonl(COW_VERSION);
+-
+-      err = -EINVAL;
+-      if(strlen(backing_file) > sizeof(header->backing_file) - 1){
+-              printk("Backing file name \"%s\" is too long - names are "
+-                     "limited to %d characters\n", backing_file, 
+-                     sizeof(header->backing_file) - 1);
+-              goto out_free;
+-      }
+-
+-      if(absolutize(header->backing_file, sizeof(header->backing_file), 
+-                    backing_file))
+-              goto out_free;
+-
+-      err = stat64(header->backing_file, &buf);
+-      if(err < 0){
+-              printk("Stat of backing file '%s' failed, errno = %d\n",
+-                     header->backing_file, errno);
+-              err = -errno;
+-              goto out_free;
+-      }
+-
+-      err = os_file_size(header->backing_file, size);
+-      if(err){
+-              printk("Couldn't get size of backing file '%s', errno = %d\n",
+-                     header->backing_file, -*size);
+-              goto out_free;
+-      }
+-
+-      header->mtime = htonl(buf.st_mtime);
+-      header->size = htonll(*size);
+-      header->sectorsize = htonl(sectorsize);
+-
+-      err = write(fd, header, sizeof(*header));
+-      if(err != sizeof(*header)){
+-              printk("Write of header to new COW file '%s' failed, "
+-                     "errno = %d\n", cow_file, errno);
+-              goto out_free;
+-      }
+-      err = 0;
+- out_free:
+-      kfree(header);
+- out:
+-      return(err);
+-}
+-
+ int open_ubd_file(char *file, struct openflags *openflags, 
+                 char **backing_file_out, int *bitmap_offset_out, 
+                 unsigned long *bitmap_len_out, int *data_offset_out, 
+@@ -334,26 +108,36 @@
+ {
+       time_t mtime;
+       __u64 size;
++      __u32 version, align;
+       char *backing_file;
+-        int fd, err, sectorsize, magic, same, mode = 0644;
++      int fd, err, sectorsize, same, mode = 0644;
  
- extern struct task_struct *alloc_task_struct(void);
--extern void free_task_struct(struct task_struct *task);
+-        if((fd = os_open_file(file, *openflags, mode)) < 0){
++      fd = os_open_file(file, *openflags, mode);
++      if(fd < 0){
+               if((fd == -ENOENT) && (create_cow_out != NULL))
+                       *create_cow_out = 1;
+                 if(!openflags->w ||
+                    ((errno != EROFS) && (errno != EACCES))) return(-errno);
+               openflags->w = 0;
+-                if((fd = os_open_file(file, *openflags, mode)) < 0) 
++              fd = os_open_file(file, *openflags, mode); 
++              if(fd < 0) 
+                       return(fd);
+         }
++
++      err = os_lock_file(fd, openflags->w);
++      if(err < 0){
++              printk("Failed to lock '%s', err = %d\n", file, -err);
++              goto out_close;
++      }
++      
+       if(backing_file_out == NULL) return(fd);
  
- extern void release_thread(struct task_struct *);
- extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
- extern void dump_thread(struct pt_regs *regs, struct user *u);
-+extern void prepare_to_copy(struct task_struct *tsk);
+-      err = read_cow_header(fd, &magic, &backing_file, &mtime, &size, 
+-                            &sectorsize, bitmap_offset_out);
++      err = read_cow_header(file_reader, &fd, &version, &backing_file, &mtime,
++                            &size, &sectorsize, &align, bitmap_offset_out);
+       if(err && (*backing_file_out != NULL)){
+               printk("Failed to read COW header from COW file \"%s\", "
+-                     "errno = %d\n", file, err);
+-              goto error;
++                     "errno = %d\n", file, -err);
++              goto out_close;
+       }
+       if(err) return(fd);
  
- extern unsigned long thread_saved_pc(struct task_struct *t);
+@@ -363,36 +147,33 @@
  
-+static inline void mm_copy_segments(struct mm_struct *from_mm, 
-+                                  struct mm_struct *new_mm)
-+{
-+}
-+
- #define init_stack    (init_thread_union.stack)
+       if(!same && !backing_file_mismatch(*backing_file_out, size, mtime)){
+               printk("Switching backing file to '%s'\n", *backing_file_out);
+-              err = write_cow_header(file, fd, *backing_file_out, 
+-                                     sectorsize, &size);
++              err = write_cow_header(file, fd, *backing_file_out,
++                                     sectorsize, align, &size);
+               if(err){
+-                      printk("Switch failed, errno = %d\n", err);
++                      printk("Switch failed, errno = %d\n", -err);
+                       return(err);
+               }
+       }
+       else {
+               *backing_file_out = backing_file;
+               err = backing_file_mismatch(*backing_file_out, size, mtime);
+-              if(err) goto error;
++              if(err) goto out_close;
+       }
  
- /*
-diff -Naur a/include/asm-um/processor-i386.h b/include/asm-um/processor-i386.h
---- a/include/asm-um/processor-i386.h  2004-03-10 08:20:17.000000000 -0500
-+++ b/include/asm-um/processor-i386.h  2004-03-10 08:34:15.000000000 -0500
-@@ -6,8 +6,8 @@
- #ifndef __UM_PROCESSOR_I386_H
- #define __UM_PROCESSOR_I386_H
+-      sizes(size, sectorsize, *bitmap_offset_out, bitmap_len_out, 
+-            data_offset_out);
++      cow_sizes(version, size, sectorsize, align, *bitmap_offset_out, 
++                bitmap_len_out, data_offset_out);
  
--extern int cpu_has_xmm;
--extern int cpu_has_cmov;
-+extern int host_has_xmm;
-+extern int host_has_cmov;
+         return(fd);
+- error:
+-      close(fd);
++ out_close:
++      os_close_file(fd);
+       return(err);
+ }
  
- struct arch_thread {
-       unsigned long debugregs[8];
-diff -Naur a/include/asm-um/sections.h b/include/asm-um/sections.h
---- a/include/asm-um/sections.h        1969-12-31 19:00:00.000000000 -0500
-+++ b/include/asm-um/sections.h        2004-03-10 08:41:04.000000000 -0500
-@@ -0,0 +1,7 @@
-+#ifndef _UM_SECTIONS_H
-+#define _UM_SECTIONS_H
-+
-+/* nothing to see, move along */
-+#include <asm-generic/sections.h>
-+
-+#endif
-diff -Naur a/include/asm-um/smp.h b/include/asm-um/smp.h
---- a/include/asm-um/smp.h     2004-03-10 08:20:12.000000000 -0500
-+++ b/include/asm-um/smp.h     2004-03-10 08:33:38.000000000 -0500
-@@ -10,7 +10,7 @@
+ int create_cow_file(char *cow_file, char *backing_file, struct openflags flags,
+-                  int sectorsize, int *bitmap_offset_out, 
++                  int sectorsize, int alignment, int *bitmap_offset_out, 
+                   unsigned long *bitmap_len_out, int *data_offset_out)
+ {
+-      __u64 blocks;
+-      long zero;
+-      int err, fd, i;
+-      long long size;
++      int err, fd;
  
- extern cpumask_t cpu_online_map;
+       flags.c = 1;
+       fd = open_ubd_file(cow_file, &flags, NULL, NULL, NULL, NULL, NULL);
+@@ -403,57 +184,49 @@
+               goto out;
+       }
  
--#define smp_processor_id() (current->thread_info->cpu)
-+#define smp_processor_id() (current_thread->cpu)
- #define cpu_logical_map(n) (n)
- #define cpu_number_map(n) (n)
- #define PROC_CHANGE_PENALTY   15 /* Pick a number, any number */
-diff -Naur a/include/asm-um/smplock.h b/include/asm-um/smplock.h
---- a/include/asm-um/smplock.h 2004-03-10 08:20:26.000000000 -0500
-+++ b/include/asm-um/smplock.h 1969-12-31 19:00:00.000000000 -0500
-@@ -1,6 +0,0 @@
--#ifndef __UM_SMPLOCK_H
--#define __UM_SMPLOCK_H
--
--#include "asm/arch/smplock.h"
+-      err = write_cow_header(cow_file, fd, backing_file, sectorsize, &size);
+-      if(err) goto out_close;
 -
--#endif
-diff -Naur a/include/asm-um/spinlock.h b/include/asm-um/spinlock.h
---- a/include/asm-um/spinlock.h        2004-03-10 08:23:05.000000000 -0500
-+++ b/include/asm-um/spinlock.h        1969-12-31 19:00:00.000000000 -0500
-@@ -1,10 +0,0 @@
--#ifndef __UM_SPINLOCK_H
--#define __UM_SPINLOCK_H
+-      blocks = (size + sectorsize - 1) / sectorsize;
+-      blocks = (blocks + sizeof(long) * 8 - 1) / (sizeof(long) * 8);
+-      zero = 0;
+-      for(i = 0; i < blocks; i++){
+-              err = write(fd, &zero, sizeof(zero));
+-              if(err != sizeof(zero)){
+-                      printk("Write of bitmap to new COW file '%s' failed, "
+-                             "errno = %d\n", cow_file, errno);
+-                      goto out_close;
+-              }
+-      }
 -
--#include "linux/config.h"
+-      sizes(size, sectorsize, sizeof(struct cow_header_v2), 
+-            bitmap_len_out, data_offset_out);
+-      *bitmap_offset_out = sizeof(struct cow_header_v2);
 -
--#ifdef CONFIG_SMP
--#include "asm/arch/spinlock.h"
--#endif
+-      return(fd);
 -
--#endif
-diff -Naur a/include/asm-um/system-generic.h b/include/asm-um/system-generic.h
---- a/include/asm-um/system-generic.h  2004-03-10 08:23:25.000000000 -0500
-+++ b/include/asm-um/system-generic.h  2004-03-10 08:44:55.000000000 -0500
-@@ -23,8 +23,10 @@
- extern void block_signals(void);
- extern void unblock_signals(void);
+- out_close:
+-      close(fd);
++      err = init_cow_file(fd, cow_file, backing_file, sectorsize, alignment,
++                          bitmap_offset_out, bitmap_len_out, 
++                          data_offset_out);
++      if(!err)
++              return(fd);
++      os_close_file(fd);
+  out:
+       return(err);
+ }
  
--#define local_save_flags(flags) do { (flags) = get_signals(); } while(0)
--#define local_irq_restore(flags) do { set_signals(flags); } while(0)
-+#define local_save_flags(flags) do { typecheck(unsigned long, flags); \
-+                                   (flags) = get_signals(); } while(0)
-+#define local_irq_restore(flags) do { typecheck(unsigned long, flags); \
-+                                    set_signals(flags); } while(0)
++/* XXX Just trivial wrappers around os_read_file and os_write_file */
+ int read_ubd_fs(int fd, void *buffer, int len)
+ {
+-      int n;
+-
+-      n = read(fd, buffer, len);
+-      if(n < 0) return(-errno);
+-      else return(n);
++      return(os_read_file(fd, buffer, len));
+ }
  
- #define local_irq_save(flags) do { local_save_flags(flags); \
-                                    local_irq_disable(); } while(0)
-@@ -39,4 +41,7 @@
-         (flags == 0);                   \
- })
+ int write_ubd_fs(int fd, char *buffer, int len)
+ {
+-      int n;
+-
+-      n = write(fd, buffer, len);
+-      if(n < 0) return(-errno);
+-      else return(n);
++      return(os_write_file(fd, buffer, len));
+ }
  
-+extern void *_switch_to(void *prev, void *next, void *last);
-+#define switch_to(prev, next, last) prev = _switch_to(prev, next, last)
+-int ubd_is_dir(char *file)
++static int update_bitmap(struct io_thread_req *req)
+ {
+-      struct stat64 buf;
++      int n;
 +
- #endif
-diff -Naur a/include/asm-um/thread_info.h b/include/asm-um/thread_info.h
---- a/include/asm-um/thread_info.h     2004-03-10 08:20:55.000000000 -0500
-+++ b/include/asm-um/thread_info.h     2004-03-10 08:37:10.000000000 -0500
-@@ -9,6 +9,7 @@
- #ifndef __ASSEMBLY__
- #include <asm/processor.h>
-+#include <asm/types.h>
++      if(req->cow_offset == -1)
++              return(0);
++
++      n = os_seek_file(req->fds[1], req->cow_offset);
++      if(n < 0){
++              printk("do_io - bitmap lseek failed : err = %d\n", -n);
++              return(1);
++      }
++
++      n = os_write_file(req->fds[1], &req->bitmap_words,
++                        sizeof(req->bitmap_words));
++      if(n != sizeof(req->bitmap_words)){
++              printk("do_io - bitmap update failed, err = %d fd = %d\n", -n,
++                     req->fds[1]);
++              return(1);
++      }
  
- struct thread_info {
-       struct task_struct      *task;          /* main task structure */
-@@ -43,15 +44,18 @@
- static inline struct thread_info *current_thread_info(void)
- {
-       struct thread_info *ti;
--      __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~16383UL));
-+      unsigned long mask = PAGE_SIZE * 
-+              (1 << CONFIG_KERNEL_STACK_ORDER) - 1;
-+      __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~mask));
-       return ti;
+-      if(stat64(file, &buf) < 0) return(0);
+-      return(S_ISDIR(buf.st_mode));
++      return(0);
  }
  
- /* thread information allocation */
--#define THREAD_SIZE (4*PAGE_SIZE)
--#define alloc_thread_info(tsk) ((struct thread_info *) \
--      __get_free_pages(GFP_KERNEL,2))
--#define free_thread_info(ti) free_pages((unsigned long) (ti), 2)
-+#define THREAD_SIZE ((1 << CONFIG_KERNEL_STACK_ORDER) * PAGE_SIZE)
-+#define alloc_thread_info(tsk) \
-+      ((struct thread_info *) kmalloc(THREAD_SIZE, GFP_KERNEL))
-+#define free_thread_info(ti) kfree(ti)
-+      
- #define get_thread_info(ti) get_task_struct((ti)->task)
- #define put_thread_info(ti) put_task_struct((ti)->task)
+ void do_io(struct io_thread_req *req)
+@@ -461,8 +234,18 @@
+       char *buf;
+       unsigned long len;
+       int n, nsectors, start, end, bit;
++      int err;
+       __u64 off;
  
-@@ -65,11 +69,13 @@
- #define TIF_POLLING_NRFLAG      3       /* true if poll_idle() is polling 
-                                        * TIF_NEED_RESCHED 
-                                        */
-+#define TIF_RESTART_BLOCK     4
++      if(req->op == UBD_MMAP){
++              /* Touch the page to force the host to do any necessary IO to 
++               * get it into memory 
++               */
++              n = *((volatile int *) req->buffer);
++              req->error = update_bitmap(req);
++              return;
++      }
++
+       nsectors = req->length / req->sectorsize;
+       start = 0;
+       do {
+@@ -473,15 +256,14 @@
+                                   &req->sector_mask) == bit))
+                       end++;
  
- #define _TIF_SYSCALL_TRACE    (1 << TIF_SYSCALL_TRACE)
- #define _TIF_SIGPENDING               (1 << TIF_SIGPENDING)
- #define _TIF_NEED_RESCHED     (1 << TIF_NEED_RESCHED)
- #define _TIF_POLLING_NRFLAG     (1 << TIF_POLLING_NRFLAG)
-+#define _TIF_RESTART_BLOCK    (1 << TIF_RESTART_BLOCK)
+-              if(end != nsectors)
+-                      printk("end != nsectors\n");
+               off = req->offset + req->offsets[bit] + 
+                       start * req->sectorsize;
+               len = (end - start) * req->sectorsize;
+               buf = &req->buffer[start * req->sectorsize];
  
- #endif
+-              if(os_seek_file(req->fds[bit], off) != 0){
+-                      printk("do_io - lseek failed : errno = %d\n", errno);
++              err = os_seek_file(req->fds[bit], off);
++              if(err < 0){
++                      printk("do_io - lseek failed : err = %d\n", -err);
+                       req->error = 1;
+                       return;
+               }
+@@ -490,11 +272,10 @@
+                       do {
+                               buf = &buf[n];
+                               len -= n;
+-                              n = read(req->fds[bit], buf, len);
++                              n = os_read_file(req->fds[bit], buf, len);
+                               if (n < 0) {
+-                                      printk("do_io - read returned %d : "
+-                                             "errno = %d fd = %d\n", n,
+-                                             errno, req->fds[bit]);
++                                      printk("do_io - read failed, err = %d "
++                                             "fd = %d\n", -n, req->fds[bit]);
+                                       req->error = 1;
+                                       return;
+                               }
+@@ -502,11 +283,10 @@
+                       if (n < len) memset(&buf[n], 0, len - n);
+               }
+               else {
+-                      n = write(req->fds[bit], buf, len);
++                      n = os_write_file(req->fds[bit], buf, len);
+                       if(n != len){
+-                              printk("do_io - write returned %d : "
+-                                     "errno = %d fd = %d\n", n, 
+-                                     errno, req->fds[bit]);
++                              printk("do_io - write failed err = %d "
++                                     "fd = %d\n", -n, req->fds[bit]);
+                               req->error = 1;
+                               return;
+                       }
+@@ -515,24 +295,7 @@
+               start = end;
+       } while(start < nsectors);
+-      if(req->cow_offset != -1){
+-              if(os_seek_file(req->fds[1], req->cow_offset) != 0){
+-                      printk("do_io - bitmap lseek failed : errno = %d\n",
+-                             errno);
+-                      req->error = 1;
+-                      return;
+-              }
+-              n = write(req->fds[1], &req->bitmap_words, 
+-                        sizeof(req->bitmap_words));
+-              if(n != sizeof(req->bitmap_words)){
+-                      printk("do_io - bitmap update returned %d : "
+-                             "errno = %d fd = %d\n", n, errno, req->fds[1]);
+-                      req->error = 1;
+-                      return;
+-              }
+-      }
+-      req->error = 0;
+-      return;
++      req->error = update_bitmap(req);
+ }
  
-diff -Naur a/include/asm-um/timex.h b/include/asm-um/timex.h
---- a/include/asm-um/timex.h   2004-03-10 08:21:51.000000000 -0500
-+++ b/include/asm-um/timex.h   2004-03-10 08:40:50.000000000 -0500
-@@ -1,8 +1,6 @@
- #ifndef __UM_TIMEX_H
- #define __UM_TIMEX_H
+ /* Changed in start_io_thread, which is serialized by being called only
+@@ -550,19 +313,23 @@
  
--#include "linux/time.h"
--
- typedef unsigned long cycles_t;
+       signal(SIGWINCH, SIG_IGN);
+       while(1){
+-              n = read(kernel_fd, &req, sizeof(req));
+-              if(n < 0) printk("io_thread - read returned %d, errno = %d\n",
+-                               n, errno);
+-              else if(n < sizeof(req)){
+-                      printk("io_thread - short read : length = %d\n", n);
++              n = os_read_file(kernel_fd, &req, sizeof(req));
++              if(n != sizeof(req)){
++                      if(n < 0)
++                              printk("io_thread - read failed, fd = %d, "
++                                     "err = %d\n", kernel_fd, -n);
++                      else {
++                              printk("io_thread - short read, fd = %d, "
++                                     "length = %d\n", kernel_fd, n);
++                      }
+                       continue;
+               }
+               io_count++;
+               do_io(&req);
+-              n = write(kernel_fd, &req, sizeof(req));
++              n = os_write_file(kernel_fd, &req, sizeof(req));
+               if(n != sizeof(req))
+-                      printk("io_thread - write failed, errno = %d\n",
+-                             errno);
++                      printk("io_thread - write failed, fd = %d, err = %d\n",
++                             kernel_fd, -n);
+       }
+ }
  
- #define cacheflush_time (0)
-diff -Naur a/include/asm-um/uaccess.h b/include/asm-um/uaccess.h
---- a/include/asm-um/uaccess.h 2004-03-10 08:22:00.000000000 -0500
-+++ b/include/asm-um/uaccess.h 2004-03-10 08:41:14.000000000 -0500
-@@ -6,6 +6,8 @@
- #ifndef __UM_UACCESS_H
- #define __UM_UACCESS_H
+@@ -571,10 +338,11 @@
+       int pid, fds[2], err;
  
-+#include "linux/sched.h"
+       err = os_pipe(fds, 1, 1);
+-      if(err){
+-              printk("start_io_thread - os_pipe failed, errno = %d\n", -err);
+-              return(-1);
++      if(err < 0){
++              printk("start_io_thread - os_pipe failed, err = %d\n", -err);
++              goto out;
+       }
 +
- #define VERIFY_READ 0
- #define VERIFY_WRITE 1
+       kernel_fd = fds[0];
+       *fd_out = fds[1];
  
-diff -Naur a/include/asm-um/unistd.h b/include/asm-um/unistd.h
---- a/include/asm-um/unistd.h  2004-03-10 08:22:38.000000000 -0500
-+++ b/include/asm-um/unistd.h  2004-03-10 08:42:45.000000000 -0500
-@@ -23,7 +23,10 @@
-       set_fs(KERNEL_DS);                      \
-       ret = sys(args);                        \
-       set_fs(fs);                             \
--      return ret;
-+      if (ret >= 0)                           \
-+              return ret;                     \
-+      errno = -(long)ret;                     \
-+      return -1;
+@@ -582,32 +350,19 @@
+                   NULL);
+       if(pid < 0){
+               printk("start_io_thread - clone failed : errno = %d\n", errno);
+-              return(-errno);
++              goto out_close;
+       }
+-      return(pid);
+-}
+-
+-#ifdef notdef
+-int start_io_thread(unsigned long sp, int *fd_out)
+-{
+-      int pid;
  
- static inline long open(const char *pathname, int flags, int mode) 
- {
-diff -Naur a/include/linux/gfp.h b/include/linux/gfp.h
---- a/include/linux/gfp.h      2004-03-10 08:20:49.000000000 -0500
-+++ b/include/linux/gfp.h      2004-03-10 08:36:19.000000000 -0500
-@@ -69,6 +69,11 @@
-  * For the normal case of non-DISCONTIGMEM systems the NODE_DATA() gets
-  * optimized to &contig_page_data at compile-time.
-  */
-+
-+#ifndef HAVE_ARCH_FREE_PAGE
-+static inline void arch_free_page(struct page *page, int order) { }
-+#endif
-+
- extern struct page * FASTCALL(__alloc_pages(unsigned int, unsigned int, struct zonelist *));
- static inline struct page * alloc_pages_node(int nid, unsigned int gfp_mask, unsigned int order)
- {
-diff -Naur a/include/linux/ghash.h b/include/linux/ghash.h
---- a/include/linux/ghash.h    1969-12-31 19:00:00.000000000 -0500
-+++ b/include/linux/ghash.h    2004-03-10 08:36:10.000000000 -0500
-@@ -0,0 +1,236 @@
-+/*
-+ * include/linux/ghash.h -- generic hashing with fuzzy retrieval
-+ *
-+ * (C) 1997 Thomas Schoebel-Theuer
-+ *
-+ * The algorithms implemented here seem to be a completely new invention,
-+ * and I'll publish the fundamentals in a paper.
-+ */
-+
-+#ifndef _GHASH_H
-+#define _GHASH_H
-+/* HASHSIZE _must_ be a power of two!!! */
-+
-+
-+#define DEF_HASH_FUZZY_STRUCTS(NAME,HASHSIZE,TYPE) \
-+\
-+struct NAME##_table {\
-+      TYPE * hashtable[HASHSIZE];\
-+      TYPE * sorted_list;\
-+      int nr_entries;\
-+};\
-+\
-+struct NAME##_ptrs {\
-+      TYPE * next_hash;\
-+      TYPE * prev_hash;\
-+      TYPE * next_sorted;\
-+      TYPE * prev_sorted;\
-+};
-+
-+#define DEF_HASH_FUZZY(LINKAGE,NAME,HASHSIZE,TYPE,PTRS,KEYTYPE,KEY,KEYCMP,KEYEQ,HASHFN)\
-+\
-+LINKAGE void insert_##NAME##_hash(struct NAME##_table * tbl, TYPE * elem)\
-+{\
-+      int ix = HASHFN(elem->KEY);\
-+      TYPE ** base = &tbl->hashtable[ix];\
-+      TYPE * ptr = *base;\
-+      TYPE * prev = NULL;\
-+\
-+      tbl->nr_entries++;\
-+      while(ptr && KEYCMP(ptr->KEY, elem->KEY)) {\
-+              base = &ptr->PTRS.next_hash;\
-+              prev = ptr;\
-+              ptr = *base;\
-+      }\
-+      elem->PTRS.next_hash = ptr;\
-+      elem->PTRS.prev_hash = prev;\
-+      if(ptr) {\
-+              ptr->PTRS.prev_hash = elem;\
-+      }\
-+      *base = elem;\
-+\
-+      ptr = prev;\
-+      if(!ptr) {\
-+              ptr = tbl->sorted_list;\
-+              prev = NULL;\
-+      } else {\
-+              prev = ptr->PTRS.prev_sorted;\
-+      }\
-+      while(ptr) {\
-+              TYPE * next = ptr->PTRS.next_hash;\
-+              if(next && KEYCMP(next->KEY, elem->KEY)) {\
-+                      prev = ptr;\
-+                      ptr = next;\
-+              } else if(KEYCMP(ptr->KEY, elem->KEY)) {\
-+                      prev = ptr;\
-+                      ptr = ptr->PTRS.next_sorted;\
-+              } else\
-+                      break;\
-+      }\
-+      elem->PTRS.next_sorted = ptr;\
-+      elem->PTRS.prev_sorted = prev;\
-+      if(ptr) {\
-+              ptr->PTRS.prev_sorted = elem;\
-+      }\
-+      if(prev) {\
-+              prev->PTRS.next_sorted = elem;\
-+      } else {\
-+              tbl->sorted_list = elem;\
-+      }\
-+}\
-+\
-+LINKAGE void remove_##NAME##_hash(struct NAME##_table * tbl, TYPE * elem)\
-+{\
-+      TYPE * next = elem->PTRS.next_hash;\
-+      TYPE * prev = elem->PTRS.prev_hash;\
-+\
-+      tbl->nr_entries--;\
-+      if(next)\
-+              next->PTRS.prev_hash = prev;\
-+      if(prev)\
-+              prev->PTRS.next_hash = next;\
-+      else {\
-+              int ix = HASHFN(elem->KEY);\
-+              tbl->hashtable[ix] = next;\
-+      }\
-+\
-+      next = elem->PTRS.next_sorted;\
-+      prev = elem->PTRS.prev_sorted;\
-+      if(next)\
-+              next->PTRS.prev_sorted = prev;\
-+      if(prev)\
-+              prev->PTRS.next_sorted = next;\
-+      else\
-+              tbl->sorted_list = next;\
-+}\
-+\
-+LINKAGE TYPE * find_##NAME##_hash(struct NAME##_table * tbl, KEYTYPE pos)\
-+{\
-+      int ix = hashfn(pos);\
-+      TYPE * ptr = tbl->hashtable[ix];\
-+      while(ptr && KEYCMP(ptr->KEY, pos))\
-+              ptr = ptr->PTRS.next_hash;\
-+      if(ptr && !KEYEQ(ptr->KEY, pos))\
-+              ptr = NULL;\
-+      return ptr;\
-+}\
-+\
-+LINKAGE TYPE * find_##NAME##_hash_fuzzy(struct NAME##_table * tbl, KEYTYPE pos)\
-+{\
-+      int ix;\
-+      int offset;\
-+      TYPE * ptr;\
-+      TYPE * next;\
-+\
-+      ptr = tbl->sorted_list;\
-+      if(!ptr || KEYCMP(pos, ptr->KEY))\
-+              return NULL;\
-+      ix = HASHFN(pos);\
-+      offset = HASHSIZE;\
-+      do {\
-+              offset >>= 1;\
-+              next = tbl->hashtable[(ix+offset) & ((HASHSIZE)-1)];\
-+              if(next && (KEYCMP(next->KEY, pos) || KEYEQ(next->KEY, pos))\
-+                 && KEYCMP(ptr->KEY, next->KEY))\
-+                      ptr = next;\
-+      } while(offset);\
-+\
-+      for(;;) {\
-+              next = ptr->PTRS.next_hash;\
-+              if(next) {\
-+                      if(KEYCMP(next->KEY, pos)) {\
-+                              ptr = next;\
-+                              continue;\
-+                      }\
-+              }\
-+              next = ptr->PTRS.next_sorted;\
-+              if(next && KEYCMP(next->KEY, pos)) {\
-+                      ptr = next;\
-+                      continue;\
-+              }\
-+              return ptr;\
-+      }\
-+      return NULL;\
-+}
+-      if((kernel_fd = get_pty()) < 0) return(-1);
+-      raw(kernel_fd, 0);
+-      if((*fd_out = open(ptsname(kernel_fd), O_RDWR)) < 0){
+-              printk("Couldn't open tty for IO\n");
+-              return(-1);
+-      }
+-
+-      pid = clone(io_thread, (void *) sp, CLONE_FILES | CLONE_VM | SIGCHLD,
+-                  NULL);
+-      if(pid < 0){
+-              printk("start_io_thread - clone failed : errno = %d\n", errno);
+-              return(-errno);
+-      }
+       return(pid);
 +
-+/* LINKAGE - empty or "static", depending on whether you want the definitions to
-+ *    be public or not
-+ * NAME - a string to stick in names to make this hash table type distinct from
-+ *    any others
-+ * HASHSIZE - number of buckets
-+ * TYPE - type of data contained in the buckets - must be a structure, one 
-+ *    field is of type NAME_ptrs, another is the hash key
-+ * PTRS - TYPE must contain a field of type NAME_ptrs, PTRS is the name of that
-+ *    field
-+ * KEYTYPE - type of the key field within TYPE
-+ * KEY - name of the key field within TYPE
-+ * KEYCMP - pointer to function that compares KEYTYPEs to each other - the
-+ *    prototype is int KEYCMP(KEYTYPE, KEYTYPE), it returns zero for equal, 
-+ *    non-zero for not equal
-+ * HASHFN - the hash function - the prototype is int HASHFN(KEYTYPE),
-+ *    it returns a number in the range 0 ... HASHSIZE - 1
-+ * Call DEF_HASH_STRUCTS, define your hash table as a NAME_table, then call
-+ * DEF_HASH.
++ out_close:
++      os_close_file(fds[0]);
++      os_close_file(fds[1]);
++      kernel_fd = -1;
++      *fd_out = -1;
++ out:
++      return(err);
+ }
+-#endif
+ /*
+  * Overrides for Emacs so that we follow Linus's tabbing style.
+Index: uml-2.6.7/scripts/basic/fixdep.c
+===================================================================
+--- uml-2.6.7.orig/scripts/basic/fixdep.c      2004-07-16 19:36:40.092051544 +0300
++++ uml-2.6.7/scripts/basic/fixdep.c   2004-07-16 19:47:24.197132688 +0300
+@@ -93,6 +93,14 @@
+  * (Note: it'd be easy to port over the complete mkdep state machine,
+  *  but I don't think the added complexity is worth it)
+  */
++/*
++ * Note 2: if somebody writes HELLO_CONFIG_BOOM in a file, it will depend onto
++ * CONFIG_BOOM. This could seem a bug (not too hard to fix), but please do not
++ * fix it! Some UserModeLinux files (look at arch/um/) call CONFIG_BOOM as
++ * UML_CONFIG_BOOM, to avoid conflicts with /usr/include/linux/autoconf.h,
++ * through arch/um/include/uml-config.h; this fixdep "bug" makes sure that
++ * those files will have correct dependencies.
 + */
+ #include <sys/types.h>
+ #include <sys/stat.h>
+@@ -310,6 +318,7 @@
+               }
+               memcpy(s, m, p-m); s[p-m] = 0;
+               if (strrcmp(s, "include/linux/autoconf.h") &&
++                  strrcmp(s, "arch/um/include/uml-config.h") &&
+                   strrcmp(s, ".ver")) {
+                       printf("  %s \\\n", s);
+                       do_config_file(s);
+Index: uml-2.6.7/include/asm-um/processor-i386.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/processor-i386.h     2004-07-16 19:35:55.931764928 +0300
++++ uml-2.6.7/include/asm-um/processor-i386.h  2004-07-16 19:47:23.794193944 +0300
+@@ -6,8 +6,8 @@
+ #ifndef __UM_PROCESSOR_I386_H
+ #define __UM_PROCESSOR_I386_H
+-extern int cpu_has_xmm;
+-extern int cpu_has_cmov;
++extern int host_has_xmm;
++extern int host_has_cmov;
+ struct arch_thread {
+       unsigned long debugregs[8];
+Index: uml-2.6.7/arch/um/kernel/time.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/time.c       2004-07-16 19:36:10.588536760 +0300
++++ uml-2.6.7/arch/um/kernel/time.c    2004-07-16 19:47:24.262122808 +0300
+@@ -4,24 +4,34 @@
+  */
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <unistd.h>
+ #include <time.h>
+ #include <sys/time.h>
+ #include <signal.h>
+ #include <errno.h>
+-#include "linux/module.h"
++#include <string.h>
+ #include "user_util.h"
+ #include "kern_util.h"
+ #include "user.h"
+ #include "process.h"
+ #include "signal_user.h"
+ #include "time_user.h"
++#include "kern_constants.h"
 +
-+#define DEF_HASH_STRUCTS(NAME,HASHSIZE,TYPE) \
-+\
-+struct NAME##_table {\
-+      TYPE * hashtable[HASHSIZE];\
-+      int nr_entries;\
-+};\
-+\
-+struct NAME##_ptrs {\
-+      TYPE * next_hash;\
-+      TYPE * prev_hash;\
-+};
++/* XXX This really needs to be declared and initialized in a kernel file since 
++ * it's in <linux/time.h>
++ */
++extern struct timespec wall_to_monotonic;
+ extern struct timeval xtime;
++struct timeval local_offset = { 0, 0 };
 +
-+#define DEF_HASH(LINKAGE,NAME,TYPE,PTRS,KEYTYPE,KEY,KEYCMP,HASHFN)\
-+\
-+LINKAGE void insert_##NAME##_hash(struct NAME##_table * tbl, TYPE * elem)\
-+{\
-+      int ix = HASHFN(elem->KEY);\
-+      TYPE ** base = &tbl->hashtable[ix];\
-+      TYPE * ptr = *base;\
-+      TYPE * prev = NULL;\
-+\
-+      tbl->nr_entries++;\
-+      while(ptr && KEYCMP(ptr->KEY, elem->KEY)) {\
-+              base = &ptr->PTRS.next_hash;\
-+              prev = ptr;\
-+              ptr = *base;\
-+      }\
-+      elem->PTRS.next_hash = ptr;\
-+      elem->PTRS.prev_hash = prev;\
-+      if(ptr) {\
-+              ptr->PTRS.prev_hash = elem;\
-+      }\
-+      *base = elem;\
-+}\
-+\
-+LINKAGE void remove_##NAME##_hash(struct NAME##_table * tbl, TYPE * elem)\
-+{\
-+      TYPE * next = elem->PTRS.next_hash;\
-+      TYPE * prev = elem->PTRS.prev_hash;\
-+\
-+      tbl->nr_entries--;\
-+      if(next)\
-+              next->PTRS.prev_hash = prev;\
-+      if(prev)\
-+              prev->PTRS.next_hash = next;\
-+      else {\
-+              int ix = HASHFN(elem->KEY);\
-+              tbl->hashtable[ix] = next;\
-+      }\
-+}\
-+\
-+LINKAGE TYPE * find_##NAME##_hash(struct NAME##_table * tbl, KEYTYPE pos)\
-+{\
-+      int ix = HASHFN(pos);\
-+      TYPE * ptr = tbl->hashtable[ix];\
-+      while(ptr && KEYCMP(ptr->KEY, pos))\
-+              ptr = ptr->PTRS.next_hash;\
-+      return ptr;\
+ void timer(void)
+ {
+       gettimeofday(&xtime, NULL);
++      timeradd(&xtime, &local_offset, &xtime);
+ }
+ void set_interval(int timer_type)
+@@ -66,7 +76,7 @@
+                      errno);
+ }
+-void idle_timer(void)
++void uml_idle_timer(void)
+ {
+       if(signal(SIGVTALRM, SIG_IGN) == SIG_ERR)
+               panic("Couldn't unset SIGVTALRM handler");
+@@ -76,14 +86,60 @@
+       set_interval(ITIMER_REAL);
+ }
++static unsigned long long get_host_hz(void)
++{
++      char mhzline[16], *end;
++      unsigned long long mhz;
++      int ret, mult, rest, len;
++
++      ret = cpu_feature("cpu MHz", mhzline, 
++                        sizeof(mhzline) / sizeof(mhzline[0]));
++      if(!ret)
++              panic ("Could not get host MHZ");
++
++      mhz = strtoul(mhzline, &end, 10);
++
++      /* This business is to parse a floating point number without using
++       * floating types.
++       */
++
++      rest = 0;
++      mult = 0;
++      if(*end == '.'){
++              end++;
++              len = strlen(end);
++              if(len < 6)
++                      mult = 6 - len;
++              else if(len > 6)
++                      end[6] = '\0';
++              rest = strtoul(end, NULL, 10);
++              while(mult-- > 0)
++                      rest *= 10;
++      }
++
++      return(1000000 * mhz + rest);
 +}
 +
++unsigned long long host_hz = 0;
++
++extern int do_posix_clock_monotonic_gettime(struct timespec *tp);
++
+ void time_init(void)
+ {
++      struct timespec now;
++ 
++      host_hz = get_host_hz();
+       if(signal(SIGVTALRM, boot_timer_handler) == SIG_ERR)
+               panic("Couldn't set SIGVTALRM handler");
+       set_interval(ITIMER_VIRTUAL);
++
++      do_posix_clock_monotonic_gettime(&now);
++      wall_to_monotonic.tv_sec = -now.tv_sec;
++      wall_to_monotonic.tv_nsec = -now.tv_nsec;
+ }
+-struct timeval local_offset = { 0, 0 };
++/* Declared in linux/time.h, which can't be included here */
++extern void clock_was_set(void);
+ void do_gettimeofday(struct timeval *tv)
+ {
+@@ -96,15 +152,13 @@
+       clock_was_set();
+ }
+-EXPORT_SYMBOL(do_gettimeofday);
+-
+ int do_settimeofday(struct timespec *tv)
+ {
+       struct timeval now;
+       unsigned long flags;
+       struct timeval tv_in;
+-      if ((unsigned long)tv->tv_nsec >= NSEC_PER_SEC)
++      if ((unsigned long) tv->tv_nsec >= UM_NSEC_PER_SEC)
+               return -EINVAL;
+       tv_in.tv_sec = tv->tv_sec;
+@@ -114,9 +168,9 @@
+       gettimeofday(&now, NULL);
+       timersub(&tv_in, &now, &local_offset);
+       time_unlock(flags);
+-}
+-EXPORT_SYMBOL(do_settimeofday);
++      return(0);
++}
+ void idle_sleep(int secs)
+ {
+Index: uml-2.6.7/arch/um/drivers/mconsole_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/mconsole_user.c     2004-07-16 19:36:07.180054928 +0300
++++ uml-2.6.7/arch/um/drivers/mconsole_user.c  2004-07-16 19:47:23.687210208 +0300
+@@ -1,6 +1,6 @@
+ /*
+  * Copyright (C) 2001 Lennert Buytenhek (buytenh@gnu.org)
+- * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
++ * Copyright (C) 2001 - 2003 Jeff Dike (jdike@addtoit.com)
+  * Licensed under the GPL
+  */
+@@ -18,16 +18,18 @@
+ #include "umid.h"
+ static struct mconsole_command commands[] = {
+-      { "version", mconsole_version, 1 },
+-      { "halt", mconsole_halt, 0 },
+-      { "reboot", mconsole_reboot, 0 },
+-      { "config", mconsole_config, 0 },
+-      { "remove", mconsole_remove, 0 },
+-      { "sysrq", mconsole_sysrq, 1 },
+-      { "help", mconsole_help, 1 },
+-      { "cad", mconsole_cad, 1 },
+-      { "stop", mconsole_stop, 0 },
+-      { "go", mconsole_go, 1 },
++      { "version", mconsole_version, MCONSOLE_INTR },
++      { "halt", mconsole_halt, MCONSOLE_PROC },
++      { "reboot", mconsole_reboot, MCONSOLE_PROC },
++      { "config", mconsole_config, MCONSOLE_PROC },
++      { "remove", mconsole_remove, MCONSOLE_PROC },
++      { "sysrq", mconsole_sysrq, MCONSOLE_INTR },
++      { "help", mconsole_help, MCONSOLE_INTR },
++      { "cad", mconsole_cad, MCONSOLE_INTR },
++      { "stop", mconsole_stop, MCONSOLE_PROC },
++      { "go", mconsole_go, MCONSOLE_INTR },
++      { "log", mconsole_log, MCONSOLE_INTR },
++      { "proc", mconsole_proc, MCONSOLE_PROC },
+ };
+ /* Initialized in mconsole_init, which is an initcall */
+@@ -139,6 +141,7 @@
+               memcpy(reply.data, str, len);
+               reply.data[len] = '\0';
+               total -= len;
++              str += len;
+               reply.len = len + 1;
+               len = sizeof(reply) + reply.len - sizeof(reply.data);
+Index: uml-2.6.7/include/asm-um/module-i386.h
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/module-i386.h        2004-07-16 19:47:23.634218264 +0300
++++ uml-2.6.7/include/asm-um/module-i386.h     2004-07-16 19:47:23.792194248 +0300
+@@ -0,0 +1,13 @@
++#ifndef __UM_MODULE_I386_H
++#define __UM_MODULE_I386_H
++
++/* UML is simple */
++struct mod_arch_specific
++{
++};
++
++#define Elf_Shdr Elf32_Shdr
++#define Elf_Sym Elf32_Sym
++#define Elf_Ehdr Elf32_Ehdr
++
 +#endif
-diff -Naur a/include/linux/mm.h b/include/linux/mm.h
---- a/include/linux/mm.h       2004-03-10 08:20:15.000000000 -0500
-+++ b/include/linux/mm.h       2004-03-10 08:34:08.000000000 -0500
-@@ -505,6 +505,9 @@
-  */
- typedef int (*shrinker_t)(int nr_to_scan, unsigned int gfp_mask);
+Index: uml-2.6.7/arch/um/kernel/tt/ptproxy/wait.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/tt/ptproxy/wait.c    2004-07-16 19:37:26.029068056 +0300
++++ uml-2.6.7/arch/um/kernel/tt/ptproxy/wait.c 2004-07-16 19:47:23.748200936 +0300
+@@ -56,21 +56,23 @@
+ int real_wait_return(struct debugger *debugger)
+ {
+       unsigned long ip;
+-      int err, pid;
++      int pid;
  
-+extern long do_mprotect(struct mm_struct *mm, unsigned long start, 
-+                      size_t len, unsigned long prot);
+       pid = debugger->pid;
 +
- /*
-  * Add an aging callback.  The int is the number of 'seeks' it takes
-  * to recreate one of the objects that these functions age.
-@@ -548,9 +551,10 @@
- extern unsigned long get_unmapped_area(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
--extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
--      unsigned long len, unsigned long prot,
--      unsigned long flag, unsigned long pgoff);
-+extern unsigned long do_mmap_pgoff(struct mm_struct *mm, struct file *file, 
-+                                 unsigned long addr, unsigned long len,
-+                                 unsigned long prot, unsigned long flag,
-+                                 unsigned long pgoff);
- static inline unsigned long do_mmap(struct file *file, unsigned long addr,
-       unsigned long len, unsigned long prot,
-@@ -560,7 +564,8 @@
-       if ((offset + PAGE_ALIGN(len)) < offset)
-               goto out;
-       if (!(offset & ~PAGE_MASK))
--              ret = do_mmap_pgoff(file, addr, len, prot, flag, offset >> PAGE_SHIFT);
-+              ret = do_mmap_pgoff(current->mm, file, addr, len, prot, flag, 
-+                                  offset >> PAGE_SHIFT);
- out:
-       return ret;
+       ip = ptrace(PTRACE_PEEKUSER, pid, PT_IP_OFFSET, 0);
+-      ip = IP_RESTART_SYSCALL(ip);
+-      err = ptrace(PTRACE_POKEUSER, pid, PT_IP_OFFSET, ip);
++      IP_RESTART_SYSCALL(ip);
++
+       if(ptrace(PTRACE_POKEUSER, pid, PT_IP_OFFSET, ip) < 0)
+               tracer_panic("real_wait_return : Failed to restart system "
+-                           "call, errno = %d\n");
++                           "call, errno = %d\n", errno);
++
+       if((ptrace(PTRACE_SYSCALL, debugger->pid, 0, SIGCHLD) < 0) ||
+          (ptrace(PTRACE_SYSCALL, debugger->pid, 0, 0) < 0) ||
+          (ptrace(PTRACE_SYSCALL, debugger->pid, 0, 0) < 0) ||
+          debugger_normal_return(debugger, -1))
+               tracer_panic("real_wait_return : gdb failed to wait, "
+-                           "errno = %d\n");
++                           "errno = %d\n", errno);
+       return(0);
  }
-diff -Naur a/include/linux/proc_mm.h b/include/linux/proc_mm.h
---- a/include/linux/proc_mm.h  1969-12-31 19:00:00.000000000 -0500
-+++ b/include/linux/proc_mm.h  2004-03-10 08:33:32.000000000 -0500
-@@ -0,0 +1,48 @@
-+/* 
-+ * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+ * Licensed under the GPL
+Index: uml-2.6.7/include/asm-um/common.lds.S
+===================================================================
+--- uml-2.6.7.orig/include/asm-um/common.lds.S 2004-07-16 19:36:10.607533872 +0300
++++ uml-2.6.7/include/asm-um/common.lds.S      2004-07-16 19:47:23.787195008 +0300
+@@ -1,3 +1,5 @@
++#include <asm-generic/vmlinux.lds.h>
++
+   .fini      : { *(.fini)    } =0x9090
+   _etext = .;
+   PROVIDE (etext = .);
+@@ -13,18 +15,6 @@
+   RODATA
+-  __start___ksymtab = .;      /* Kernel symbol table */
+-  __ksymtab : { *(__ksymtab) }
+-  __stop___ksymtab = .;
+-
+-  __start___gpl_ksymtab = .;  /* Kernel symbol table: GPL-only symbols */
+-  __gpl_ksymtab : { *(__gpl_ksymtab) }
+-  __stop___gpl_ksymtab = .;
+-
+-  __start___kallsyms = .;       /* All kernel symbols */
+-  __kallsyms : { *(__kallsyms) }
+-  __stop___kallsyms = .;
+-
+   .unprotected : { *(.unprotected) }
+   . = ALIGN(4096);
+   PROVIDE (_unprotected_end = .);
+@@ -67,11 +57,17 @@
+   }
+   __initcall_end = .;
++  __con_initcall_start = .;
++  .con_initcall.init : { *(.con_initcall.init) }
++  __con_initcall_end = .;
++
+   __uml_initcall_start = .;
+   .uml.initcall.init : { *(.uml.initcall.init) }
+   __uml_initcall_end = .;
+   __init_end = .;
++  SECURITY_INIT
++
+   __exitcall_begin = .;
+   .exitcall : { *(.exitcall.exit) }
+   __exitcall_end = .;
+@@ -80,7 +76,33 @@
+   .uml.exitcall : { *(.uml.exitcall.exit) }
+   __uml_exitcall_end = .;
+-  . = ALIGN(4096);
++  . = ALIGN(4);
++  __alt_instructions = .;
++  .altinstructions : { *(.altinstructions) } 
++  __alt_instructions_end = .; 
++  .altinstr_replacement : { *(.altinstr_replacement) } 
++  /* .exit.text is discard at runtime, not link time, to deal with references
++     from .altinstructions and .eh_frame */
++  .exit.text : { *(.exit.text) }
++  .exit.data : { *(.exit.data) }
++ 
++  __preinit_array_start = .;
++  .preinit_array : { *(.preinit_array) }
++  __preinit_array_end = .;
++  __init_array_start = .;
++  .init_array : { *(.init_array) }
++  __init_array_end = .;
++  __fini_array_start = .;
++  .fini_array : { *(.fini_array) }
++  __fini_array_end = .;
++
++   . = ALIGN(4096);
+   __initramfs_start = .;
+   .init.ramfs : { *(.init.ramfs) }
+   __initramfs_end = .;
++
++  /* Sections to be discarded */
++  /DISCARD/ : {
++      *(.exitcall.exit)
++  }
++ 
+Index: uml-2.6.7/arch/um/drivers/hostaudio_user.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/drivers/hostaudio_user.c    2004-07-16 19:37:08.767692184 +0300
++++ uml-2.6.7/arch/um/drivers/hostaudio_user.c 1970-01-01 03:00:00.000000000 +0300
+@@ -1,149 +0,0 @@
+-/* 
+- * Copyright (C) 2002 Steve Schmidtke 
+- * Licensed under the GPL
+- */
+-
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-#include <sys/ioctl.h>
+-#include <fcntl.h>
+-#include <unistd.h>
+-#include <errno.h>
+-#include "hostaudio.h"
+-#include "user_util.h"
+-#include "kern_util.h"
+-#include "user.h"
+-#include "os.h"
+-
+-/* /dev/dsp file operations */
+-
+-ssize_t hostaudio_read_user(struct hostaudio_state *state, char *buffer, 
+-                          size_t count, loff_t *ppos)
+-{
+-      ssize_t ret;
+-
+-#ifdef DEBUG
+-        printk("hostaudio: read_user called, count = %d\n", count);
+-#endif
+-
+-        ret = read(state->fd, buffer, count);
+-
+-        if(ret < 0) return(-errno);
+-        return(ret);
+-}
+-
+-ssize_t hostaudio_write_user(struct hostaudio_state *state, const char *buffer,
+-                           size_t count, loff_t *ppos)
+-{
+-      ssize_t ret;
+-
+-#ifdef DEBUG
+-        printk("hostaudio: write_user called, count = %d\n", count);
+-#endif
+-
+-        ret = write(state->fd, buffer, count);
+-
+-        if(ret < 0) return(-errno);
+-        return(ret);
+-}
+-
+-int hostaudio_ioctl_user(struct hostaudio_state *state, unsigned int cmd, 
+-                       unsigned long arg)
+-{
+-      int ret;
+-#ifdef DEBUG
+-        printk("hostaudio: ioctl_user called, cmd = %u\n", cmd);
+-#endif
+-
+-        ret = ioctl(state->fd, cmd, arg);
+-      
+-        if(ret < 0) return(-errno);
+-        return(ret);
+-}
+-
+-int hostaudio_open_user(struct hostaudio_state *state, int r, int w, char *dsp)
+-{
+-#ifdef DEBUG
+-        printk("hostaudio: open_user called\n");
+-#endif
+-
+-        state->fd = os_open_file(dsp, of_set_rw(OPENFLAGS(), r, w), 0);
+-
+-        if(state->fd >= 0) return(0);
+-
+-        printk("hostaudio_open_user failed to open '%s', errno = %d\n",
+-             dsp, errno);
+-        
+-        return(-errno); 
+-}
+-
+-int hostaudio_release_user(struct hostaudio_state *state)
+-{
+-#ifdef DEBUG
+-        printk("hostaudio: release called\n");
+-#endif
+-        if(state->fd >= 0){
+-              close(state->fd);
+-              state->fd=-1;
+-        }
+-
+-        return(0);
+-}
+-
+-/* /dev/mixer file operations */
+-
+-int hostmixer_ioctl_mixdev_user(struct hostmixer_state *state, 
+-                              unsigned int cmd, unsigned long arg)
+-{
+-      int ret;
+-#ifdef DEBUG
+-        printk("hostmixer: ioctl_user called cmd = %u\n",cmd);
+-#endif
+-
+-        ret = ioctl(state->fd, cmd, arg);
+-      if(ret < 0) 
+-              return(-errno);
+-      return(ret);
+-}
+-
+-int hostmixer_open_mixdev_user(struct hostmixer_state *state, int r, int w,
+-                             char *mixer)
+-{
+-#ifdef DEBUG
+-        printk("hostmixer: open_user called\n");
+-#endif
+-
+-        state->fd = os_open_file(mixer, of_set_rw(OPENFLAGS(), r, w), 0);
+-
+-        if(state->fd >= 0) return(0);
+-
+-        printk("hostaudio_open_mixdev_user failed to open '%s', errno = %d\n",
+-             mixer, errno);
+-        
+-        return(-errno); 
+-}
+-
+-int hostmixer_release_mixdev_user(struct hostmixer_state *state)
+-{
+-#ifdef DEBUG
+-        printk("hostmixer: release_user called\n");
+-#endif
+-
+-        if(state->fd >= 0){
+-              close(state->fd);
+-              state->fd = -1;
+-        }
+-
+-        return 0;
+-}
+-
+-/*
+- * Overrides for Emacs so that we follow Linus's tabbing style.
+- * Emacs will notice this stuff at the end of the file and automatically
+- * adjust the settings for this buffer only.  This must remain at the end
+- * of the file.
+- * ---------------------------------------------------------------------------
+- * Local variables:
+- * c-file-style: "linux"
+- * End:
+- */
+Index: uml-2.6.7/arch/um/kernel/time_kern.c
+===================================================================
+--- uml-2.6.7.orig/arch/um/kernel/time_kern.c  2004-07-16 19:36:57.116463440 +0300
++++ uml-2.6.7/arch/um/kernel/time_kern.c       2004-07-16 19:47:24.262122808 +0300
+@@ -30,22 +30,60 @@
+       return(HZ);
+ }
++/*
++ * Scheduler clock - returns current time in nanosec units.
 + */
++unsigned long long sched_clock(void)
++{
++      return (unsigned long long)jiffies_64 * (1000000000 / HZ);
++}
 +
-+#ifndef __PROC_MM_H
-+#define __PROC_MM_H
-+
-+#include "linux/sched.h"
-+
-+#define MM_MMAP 54
-+#define MM_MUNMAP 55
-+#define MM_MPROTECT 56
-+#define MM_COPY_SEGMENTS 57
-+
-+struct mm_mmap {
-+      unsigned long addr;
-+      unsigned long len;
-+      unsigned long prot;
-+      unsigned long flags;
-+      unsigned long fd;
-+      unsigned long offset;
-+};
-+
-+struct mm_munmap {
-+      unsigned long addr;
-+      unsigned long len;      
-+};
+ /* Changed at early boot */
+ int timer_irq_inited = 0;
+-/* missed_ticks will be modified after kernel memory has been 
+- * write-protected, so this puts it in a section which will be left 
+- * write-enabled.
+- */
+-int __attribute__ ((__section__ (".unprotected"))) missed_ticks[NR_CPUS];
++static int first_tick;
++static unsigned long long prev_tsc;
++#ifdef CONFIG_UML_REAL_TIME_CLOCK
++static long long delta;               /* Deviation per interval */
++#endif
 +
-+struct mm_mprotect {
-+      unsigned long addr;
-+      unsigned long len;
-+        unsigned int prot;
-+};
++extern unsigned long long host_hz;
+ void timer_irq(union uml_pt_regs *regs)
+ {
+-      int cpu = current->thread_info->cpu, ticks = missed_ticks[cpu];
++      unsigned long long ticks = 0;
 +
-+struct proc_mm_op {
-+      int op;
-+      union {
-+              struct mm_mmap mmap;
-+              struct mm_munmap munmap;
-+              struct mm_mprotect mprotect;
-+              int copy_segments;
-+      } u;
-+};
++      if(!timer_irq_inited){
++              /* This is to ensure that ticks don't pile up when
++               * the timer handler is suspended */
++              first_tick = 0;
++              return;
++      }
+-        if(!timer_irq_inited) return;
+-      missed_ticks[cpu] = 0;
+-      while(ticks--) do_IRQ(TIMER_IRQ, regs);
++      if(first_tick){
++#ifdef CONFIG_UML_REAL_TIME_CLOCK
++              unsigned long long tsc;
++              /* We've had 1 tick */
++              tsc = time_stamp();
 +
-+extern struct mm_struct *proc_mm_get_mm(int fd);
++              delta += tsc - prev_tsc;
++              prev_tsc = tsc;
 +
++              ticks += (delta * HZ) / host_hz;
++              delta -= (ticks * host_hz) / HZ;
++#else
++              ticks = 1;
 +#endif
-diff -Naur a/include/linux/time.h b/include/linux/time.h
---- a/include/linux/time.h     2004-03-10 08:21:51.000000000 -0500
-+++ b/include/linux/time.h     2004-03-10 08:40:50.000000000 -0500
-@@ -41,7 +41,7 @@
-  * Have the 32 bit jiffies value wrap 5 minutes after boot
-  * so jiffies wrap bugs show up earlier.
-  */
--#define INITIAL_JIFFIES ((unsigned long)(unsigned int) (-300*HZ))
-+#define INITIAL_JIFFIES ((unsigned long)(0))
++      }
++      else {
++              prev_tsc = time_stamp();
++              first_tick = 1;
++      }
++
++      while(ticks > 0){
++              do_IRQ(TIMER_IRQ, regs);
++              ticks--;
++      }
+ }
  
- /*
-  * Change timeval to jiffies, trying to avoid the
-diff -Naur a/mm/Makefile b/mm/Makefile
---- a/mm/Makefile      2004-03-10 08:21:51.000000000 -0500
-+++ b/mm/Makefile      2004-03-10 08:40:50.000000000 -0500
-@@ -14,2 +14,3 @@
- obj-$(CONFIG_SWAP)    += page_io.o swap_state.o swapfile.o
-+obj-$(CONFIG_PROC_MM) += proc_mm.o
- obj-$(CONFIG_HUGETLBFS)       += hugetlb.o
-diff -Naur a/mm/mmap.c b/mm/mmap.c
---- a/mm/mmap.c        2004-03-10 08:21:49.000000000 -0500
-+++ b/mm/mmap.c        2004-03-10 08:40:45.000000000 -0500
-@@ -480,11 +480,11 @@
-  * The caller must hold down_write(current->mm->mmap_sem).
-  */
+ void boot_timer_handler(int sig)
+@@ -58,12 +96,15 @@
+       do_timer(&regs);
+ }
  
--unsigned long do_mmap_pgoff(struct file * file, unsigned long addr,
--                      unsigned long len, unsigned long prot,
--                      unsigned long flags, unsigned long pgoff)
-+unsigned long do_mmap_pgoff(struct mm_struct *mm, struct file * file, 
-+                          unsigned long addr, unsigned long len,
-+                          unsigned long prot, unsigned long flags,
-+                          unsigned long pgoff)
+-void um_timer(int irq, void *dev, struct pt_regs *regs)
++irqreturn_t um_timer(int irq, void *dev, struct pt_regs *regs)
  {
--      struct mm_struct * mm = current->mm;
-       struct vm_area_struct * vma, * prev;
-       struct inode *inode;
-       unsigned int vm_flags;
-diff -Naur a/mm/mprotect.c b/mm/mprotect.c
---- a/mm/mprotect.c    2004-03-10 08:23:29.000000000 -0500
-+++ b/mm/mprotect.c    2004-03-10 08:45:40.000000000 -0500
-@@ -224,7 +224,8 @@
++      unsigned long flags;
++
+       do_timer(regs);
+-      write_seqlock(&xtime_lock);
++      write_seqlock_irqsave(&xtime_lock, flags);
+       timer();
+-      write_sequnlock(&xtime_lock);
++      write_sequnlock_irqrestore(&xtime_lock, flags);
++      return(IRQ_HANDLED);
  }
  
- asmlinkage long
--sys_mprotect(unsigned long start, size_t len, unsigned long prot)
-+do_mprotect(struct mm_struct *mm, unsigned long start, size_t len, 
-+           unsigned long prot)
+ long um_time(int * tloc)
+@@ -81,12 +122,12 @@
+ long um_stime(int * tptr)
  {
-       unsigned long vm_flags, nstart, end, tmp;
-       struct vm_area_struct * vma, * next, * prev;
-@@ -247,9 +248,9 @@
-       vm_flags = calc_vm_prot_bits(prot);
--      down_write(&current->mm->mmap_sem);
-+      down_write(&mm->mmap_sem);
+       int value;
+-      struct timeval new;
++      struct timespec new;
  
--      vma = find_vma_prev(current->mm, start, &prev);
-+      vma = find_vma_prev(mm, start, &prev);
-       error = -ENOMEM;
-       if (!vma)
-               goto out;
-@@ -328,6 +329,11 @@
-               prev->vm_mm->map_count--;
-       }
- out:
--      up_write(&current->mm->mmap_sem);
-+      up_write(&mm->mmap_sem);
-       return error;
+       if (get_user(value, tptr))
+                 return -EFAULT;
+       new.tv_sec = value;
+-      new.tv_usec = 0;
++      new.tv_nsec = 0;
+       do_settimeofday(&new);
+       return 0;
+ }
+@@ -125,9 +166,11 @@
+ void timer_handler(int sig, union uml_pt_regs *regs)
+ {
+ #ifdef CONFIG_SMP
++      local_irq_disable();
+       update_process_times(user_context(UPT_SP(regs)));
++      local_irq_enable();
+ #endif
+-      if(current->thread_info->cpu == 0)
++      if(current_thread->cpu == 0)
+               timer_irq(regs);
  }
-+
-+asmlinkage long sys_mprotect(unsigned long start, size_t len, unsigned long prot)
-+{
-+        return(do_mprotect(current->mm, start, len, prot));
-+}
-diff -Naur a/mm/page_alloc.c b/mm/page_alloc.c
---- a/mm/page_alloc.c  2004-03-10 08:20:20.000000000 -0500
-+++ b/mm/page_alloc.c  2004-03-10 08:34:21.000000000 -0500
-@@ -278,6 +278,8 @@
-       LIST_HEAD(list);
-       int i;
  
-+      arch_free_page(page, order);
-+
-       mod_page_state(pgfree, 1 << order);
-       for (i = 0 ; i < (1 << order) ; ++i)
-               free_pages_check(__FUNCTION__, page + i);
-@@ -470,6 +472,8 @@
-       struct per_cpu_pages *pcp;
+@@ -136,6 +179,7 @@
+ unsigned long time_lock(void)
+ {
        unsigned long flags;
-+      arch_free_page(page, 0);
-+
-       kernel_map_pages(page, 1, 0);
-       inc_page_state(pgfree);
-       free_pages_check(__FUNCTION__, page);
-diff -Naur a/mm/proc_mm.c b/mm/proc_mm.c
---- a/mm/proc_mm.c     1969-12-31 19:00:00.000000000 -0500
-+++ b/mm/proc_mm.c     2004-03-10 08:38:18.000000000 -0500
-@@ -0,0 +1,174 @@
-+/* 
-+ * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+ * Licensed under the GPL
-+ */
-+
-+#include "linux/mm.h"
-+#include "linux/init.h"
-+#include "linux/proc_fs.h"
-+#include "linux/proc_mm.h"
-+#include "linux/file.h"
-+#include "asm/uaccess.h"
-+#include "asm/mmu_context.h"
-+
-+static struct file_operations proc_mm_fops;
-+
-+struct mm_struct *proc_mm_get_mm(int fd)
-+{
-+      struct mm_struct *ret = ERR_PTR(-EBADF);
-+      struct file *file;
-+
-+      file = fget(fd);
-+      if (!file)
-+              goto out;
-+
-+      ret = ERR_PTR(-EINVAL);
-+      if(file->f_op != &proc_mm_fops)
-+              goto out_fput;
-+
-+      ret = file->private_data;
-+ out_fput:
-+      fput(file);
-+ out:
-+      return(ret);
-+}
-+
-+extern long do_mmap2(struct mm_struct *mm, unsigned long addr, 
-+                   unsigned long len, unsigned long prot, 
-+                   unsigned long flags, unsigned long fd,
-+                   unsigned long pgoff);
-+
-+static ssize_t write_proc_mm(struct file *file, const char *buffer,
-+                           size_t count, loff_t *ppos)
-+{
-+      struct mm_struct *mm = file->private_data;
-+      struct proc_mm_op req;
-+      int n, ret;
-+
-+      if(count > sizeof(req))
-+              return(-EINVAL);
-+
-+      n = copy_from_user(&req, buffer, count);
-+      if(n != 0)
-+              return(-EFAULT);
-+
-+      ret = count;
-+      switch(req.op){
-+      case MM_MMAP: {
-+              struct mm_mmap *map = &req.u.mmap;
-+
-+              ret = do_mmap2(mm, map->addr, map->len, map->prot, 
-+                             map->flags, map->fd, map->offset >> PAGE_SHIFT);
-+              if((ret & ~PAGE_MASK) == 0)
-+                      ret = count;
-+      
-+              break;
-+      }
-+      case MM_MUNMAP: {
-+              struct mm_munmap *unmap = &req.u.munmap;
-+
-+              down_write(&mm->mmap_sem);
-+              ret = do_munmap(mm, unmap->addr, unmap->len);
-+              up_write(&mm->mmap_sem);
-+
-+              if(ret == 0)
-+                      ret = count;
-+              break;
-+      }
-+      case MM_MPROTECT: {
-+              struct mm_mprotect *protect = &req.u.mprotect;
-+
-+              ret = do_mprotect(mm, protect->addr, protect->len, 
-+                                protect->prot);
-+              if(ret == 0)
-+                      ret = count;
-+              break;
-+      }
-+
-+      case MM_COPY_SEGMENTS: {
-+              struct mm_struct *from = proc_mm_get_mm(req.u.copy_segments);
-+
-+              if(IS_ERR(from)){
-+                      ret = PTR_ERR(from);
-+                      break;
-+              }
-+
-+              mm_copy_segments(from, mm);
-+              break;
-+      }
-+      default:
-+              ret = -EINVAL;
-+              break;
-+      }
 +
-+      return(ret);
-+}
-+
-+static int open_proc_mm(struct inode *inode, struct file *file)
-+{
-+      struct mm_struct *mm = mm_alloc();
-+      int ret;
-+
-+      ret = -ENOMEM;
-+      if(mm == NULL)
-+              goto out_mem;
-+
-+      ret = init_new_context(current, mm);
-+      if(ret)
-+              goto out_free;
-+
-+      spin_lock(&mmlist_lock);
-+      list_add(&mm->mmlist, &current->mm->mmlist);
-+      mmlist_nr++;
-+      spin_unlock(&mmlist_lock);
-+
-+      file->private_data = mm;
-+
-+      return(0);
-+
-+ out_free:
-+      mmput(mm);
-+ out_mem:
-+      return(ret);
-+}
-+
-+static int release_proc_mm(struct inode *inode, struct file *file)
-+{
-+      struct mm_struct *mm = file->private_data;
-+
-+      mmput(mm);
-+      return(0);
-+}
-+
-+static struct file_operations proc_mm_fops = {
-+      .open           = open_proc_mm,
-+      .release        = release_proc_mm,
-+      .write          = write_proc_mm,
-+};
-+
-+static int make_proc_mm(void)
-+{
-+      struct proc_dir_entry *ent;
-+
-+      ent = create_proc_entry("mm", 0222, &proc_root);
-+      if(ent == NULL){
-+              printk("make_proc_mm : Failed to register /proc/mm\n");
-+              return(0);
-+      }
-+      ent->proc_fops = &proc_mm_fops;
-+
-+      return(0);
-+}
-+
-+__initcall(make_proc_mm);
-+
-+/*
-+ * Overrides for Emacs so that we follow Linus's tabbing style.
-+ * Emacs will notice this stuff at the end of the file and automatically
-+ * adjust the settings for this buffer only.  This must remain at the end
-+ * of the file.
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
+       spin_lock_irqsave(&timer_spinlock, flags);
+       return(flags);
+ }
+@@ -150,8 +194,8 @@
+       int err;
+       CHOOSE_MODE(user_time_init_tt(), user_time_init_skas());
+-      if((err = request_irq(TIMER_IRQ, um_timer, SA_INTERRUPT, "timer", 
+-                            NULL)) != 0)
++      err = request_irq(TIMER_IRQ, um_timer, SA_INTERRUPT, "timer", NULL);
++      if(err != 0)
+               printk(KERN_ERR "timer_init : request_irq failed - "
+                      "errno = %d\n", -err);
+       timer_irq_inited = 1;
+@@ -160,7 +204,6 @@
+ __initcall(timer_init);
+-
+ /*
+  * Overrides for Emacs so that we follow Linus's tabbing style.
+  * Emacs will notice this stuff at the end of the file and automatically
diff --git a/lustre/kernel_patches/patches/uml-vanilla-2.6.6-p2.patch b/lustre/kernel_patches/patches/uml-vanilla-2.6.6-p2.patch
deleted file mode 100644 (file)
index 08ba782..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
---- linux-2.6.6/arch/um/kernel/physmem.c.saved 2004-05-11 19:24:53.000000000 +0200
-+++ linux-2.6.6/arch/um/kernel/physmem.c       2004-05-11 19:25:16.000000000 +0200
-@@ -285,7 +285,7 @@
-               p = &map[i];
-               set_page_count(p, 0);
-               SetPageReserved(p);
--              INIT_LIST_HEAD(&p->list);
-+              INIT_LIST_HEAD(&p->lru);
-       }
-       mem_map = map;
---- linux-2.6.6/arch/um/kernel/sysrq.c.saved   2004-05-11 17:52:41.000000000 +0200
-+++ linux-2.6.6/arch/um/kernel/sysrq.c 2004-05-11 19:55:36.000000000 +0200
-@@ -46,10 +46,7 @@
- void show_stack(struct task_struct *task, unsigned long *sp)
- {
--      if(task)
--              show_trace_task(task);
--      else
--              show_trace(sp);
-+      show_trace(sp);
- }
- /*
---- linux-2.6.6/arch/um/dyn.lds.S.saved        2004-05-11 17:52:40.000000000 +0200
-+++ linux-2.6.6/arch/um/dyn.lds.S      2004-05-11 20:18:36.000000000 +0200
-@@ -1,3 +1,5 @@
-+#include <asm-generic/vmlinux.lds.h>
-+
- OUTPUT_FORMAT(ELF_FORMAT)
- OUTPUT_ARCH(ELF_ARCH)
- ENTRY(_start)
-@@ -58,7 +60,9 @@
-   } =0x90909090
-   .plt            : { *(.plt) }
-   .text           : {
--    *(.text .stub .text.* .gnu.linkonce.t.*)
-+    *(.text)
-+    SCHED_TEXT
-+    *(.stub .text.* .gnu.linkonce.t.*)
-     /* .gnu.warning sections are handled specially by elf32.em.  */
-     *(.gnu.warning)
-   } =0x90909090
---- linux-2.6.6/arch/um/uml.lds.S.saved        2004-05-11 17:52:42.000000000 +0200
-+++ linux-2.6.6/arch/um/uml.lds.S      2004-05-11 20:03:10.000000000 +0200
-@@ -34,6 +34,7 @@
-   .text      :
-   {
-     *(.text)
-+    SCHED_TEXT
-     /* .gnu.warning sections are handled specially by elf32.em.  */
-     *(.gnu.warning)
-     *(.gnu.linkonce.t*)
---- linux-2.6.6/Makefile.saved 2004-05-11 19:20:02.000000000 +0200
-+++ linux-2.6.6/Makefile       2004-05-11 19:20:59.000000000 +0200
-@@ -449,6 +449,10 @@
- include $(srctree)/arch/$(ARCH)/Makefile
-+# Let architecture Makefiles change CPPFLAGS if needed
-+CFLAGS := $(CPPFLAGS) $(CFLAGS)
-+AFLAGS := $(CPPFLAGS) $(AFLAGS)
-+
- ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
- CFLAGS                += -Os
- else
---- linux/include/asm-um/system-i386.h 2004-02-04 04:43:42.000000000 +0100
-+++ uml/linux/include/asm-um/system-i386.h     2004-04-08 00:18:09.621333000 +0200
-@@ -2,36 +2,5 @@
- #define __UM_SYSTEM_I386_H
- #include "asm/system-generic.h"
--
--static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
--                                    unsigned long new, int size)
--{
--      unsigned long prev;
--      switch (size) {
--      case 1:
--              __asm__ __volatile__(LOCK_PREFIX "cmpxchgb %b1,%2"
--                                   : "=a"(prev)
--                                   : "q"(new), "m"(*__xg(ptr)), "0"(old)
--                                   : "memory");
--              return prev;
--      case 2:
--              __asm__ __volatile__(LOCK_PREFIX "cmpxchgw %w1,%2"
--                                   : "=a"(prev)
--                                   : "q"(new), "m"(*__xg(ptr)), "0"(old)
--                                   : "memory");
--              return prev;
--      case 4:
--              __asm__ __volatile__(LOCK_PREFIX "cmpxchgl %1,%2"
--                                   : "=a"(prev)
--                                   : "q"(new), "m"(*__xg(ptr)), "0"(old)
--                                   : "memory");
--              return prev;
--      }
--      return old;
--}
--
--#define cmpxchg(ptr,o,n)\
--      ((__typeof__(*(ptr)))__cmpxchg((ptr),(unsigned long)(o),\
--                                      (unsigned long)(n),sizeof(*(ptr))))
-     
- #endif
---- linux/arch/um/Makefile-i386        2004-04-08 00:27:50.031333000 +0200
-+++ uml/linux/arch/um/Makefile-i386    2004-04-07 23:22:31.000000000 +0200
-@@ -30,7 +30,7 @@
- $(SYS_DIR)/thread.h: $(SYS_UTIL_DIR)/mk_thread 
-       $(call filechk,$@)
--$(SYS_UTIL_DIR)/mk_sc: scripts/fixdep include/config/MARKER FORCE ; 
-+$(SYS_UTIL_DIR)/mk_sc: scripts/basic/fixdep include/config/MARKER FORCE ; 
-       $(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
- $(SYS_UTIL_DIR)/mk_thread: $(ARCH_SYMLINKS) $(GEN_HEADERS) sys_prepare FORCE ; 
index ee976f6..ef327e7 100644 (file)
@@ -10,7 +10,7 @@ Index: linux-2.6.5-12.1/fs/exec.c
 +      intent_init(&nd.intent, IT_OPEN);
  
 -      FSHOOK_BEGIN_USER_WALK(open,
-+      nd.intent.it_flags = FMODE_READ;
++      nd.intent.it_flags = FMODE_READ|FMODE_EXEC;
 +      FSHOOK_BEGIN_USER_WALK_IT(open,
                error,
                library,
@@ -31,7 +31,7 @@ Index: linux-2.6.5-12.1/fs/exec.c
 -      nd.intent.open.flags = FMODE_READ;
 -      err = path_lookup(name, LOOKUP_FOLLOW|LOOKUP_OPEN, &nd);
 +      intent_init(&nd.intent, IT_OPEN);
-+      nd.intent.it_flags = FMODE_READ;
++      nd.intent.it_flags = FMODE_READ|FMODE_EXEC;
 +      err = path_lookup(name, LOOKUP_FOLLOW, &nd);
        file = ERR_PTR(err);
  
@@ -136,7 +136,7 @@ Index: linux-2.6.5-12.1/fs/namei.c
                        dput(next.dentry);
                        mntput(next.mnt);
                        if (err)
-@@ -703,14 +749,24 @@
+@@ -703,14 +749,26 @@
                                inode = nd->dentry->d_inode;
                                /* fallthrough */
                        case 1:
@@ -145,8 +145,10 @@ Index: linux-2.6.5-12.1/fs/namei.c
 +                              nd->flags &= ~LOOKUP_LAST;
 +                              if (!nd->dentry->d_inode)
 +                                      err = -ENOENT;
-+                              if (err)
++                              if (err) {
++                                      path_release(nd);
 +                                      goto return_err;
++                              }
                                goto return_reval;
                }
 +
@@ -640,6 +642,14 @@ Index: linux-2.6.5-12.1/include/linux/fs.h
 ===================================================================
 --- linux-2.6.5-12.1.orig/include/linux/fs.h   2004-05-10 12:21:56.000000000 -0400
 +++ linux-2.6.5-12.1/include/linux/fs.h        2004-06-03 18:31:28.000000000 -0400
+@@ -76,6 +76,7 @@
+ #define FMODE_READ 1
+ #define FMODE_WRITE 2
++#define FMODE_EXEC 4
+ #define RW_MASK               1
+ #define RWA_MASK      2
 @@ -250,6 +250,8 @@
  #define ATTR_ATTR_FLAG        1024
  #define ATTR_KILL_SUID        2048
index 761d823..90c1223 100644 (file)
@@ -1,21 +1,21 @@
-Index: linux-2.6.4-51.0/fs/exec.c
+Index: linux-2.6.6-vanilla/fs/exec.c
 ===================================================================
---- linux-2.6.4-51.0.orig/fs/exec.c    2004-04-05 12:41:59.000000000 -0400
-+++ linux-2.6.4-51.0/fs/exec.c 2004-04-05 17:36:42.000000000 -0400
-@@ -122,8 +122,11 @@
+--- linux-2.6.6-vanilla.orig/fs/exec.c 2004-05-26 20:25:42.000000000 +0300
++++ linux-2.6.6-vanilla/fs/exec.c      2004-06-29 13:56:19.131583960 +0300
+@@ -121,9 +121,10 @@
        struct file * file;
        struct nameidata nd;
        int error;
 +      intent_init(&nd.intent, IT_OPEN);
  
 -      nd.intent.open.flags = FMODE_READ;
-+      error = user_path_walk_it(library, &nd);
-+
-+      nd.intent.it_flags = O_RDONLY;
-       error = __user_walk(library, LOOKUP_FOLLOW|LOOKUP_OPEN, &nd);
+-      error = __user_walk(library, LOOKUP_FOLLOW|LOOKUP_OPEN, &nd);
++      nd.intent.it_flags = FMODE_READ|FMODE_EXEC;
++      error = __user_walk_it(library, LOOKUP_FOLLOW|LOOKUP_OPEN, &nd);
        if (error)
                goto out;
-@@ -136,7 +139,7 @@
+@@ -135,7 +136,7 @@
        if (error)
                goto exit;
  
@@ -24,19 +24,19 @@ Index: linux-2.6.4-51.0/fs/exec.c
        error = PTR_ERR(file);
        if (IS_ERR(file))
                goto out;
-@@ -485,8 +488,9 @@
+@@ -483,8 +484,9 @@
        int err;
        struct file *file;
  
 -      nd.intent.open.flags = FMODE_READ;
 -      err = path_lookup(name, LOOKUP_FOLLOW|LOOKUP_OPEN, &nd);
 +      intent_init(&nd.intent, IT_OPEN);
-+      nd.intent.it_flags = O_RDONLY;
++      nd.intent.it_flags = FMODE_READ|FMODE_EXEC;
 +      err = path_lookup(name, LOOKUP_FOLLOW, &nd);
        file = ERR_PTR(err);
  
        if (!err) {
-@@ -499,7 +503,7 @@
+@@ -497,7 +499,7 @@
                                err = -EACCES;
                        file = ERR_PTR(err);
                        if (!err) {
@@ -45,11 +45,11 @@ Index: linux-2.6.4-51.0/fs/exec.c
                                if (!IS_ERR(file)) {
                                        err = deny_write_access(file);
                                        if (err) {
-Index: linux-2.6.4-51.0/fs/namei.c
+Index: linux-2.6.6-vanilla/fs/namei.c
 ===================================================================
---- linux-2.6.4-51.0.orig/fs/namei.c   2004-04-05 12:41:59.000000000 -0400
-+++ linux-2.6.4-51.0/fs/namei.c        2004-04-05 17:36:42.000000000 -0400
-@@ -269,8 +269,19 @@
+--- linux-2.6.6-vanilla.orig/fs/namei.c        2004-05-26 20:25:43.000000000 +0300
++++ linux-2.6.6-vanilla/fs/namei.c     2004-06-29 12:25:05.243741400 +0300
+@@ -272,8 +272,19 @@
        return 0;
  }
  
@@ -69,7 +69,7 @@ Index: linux-2.6.4-51.0/fs/namei.c
        dput(nd->dentry);
        mntput(nd->mnt);
  }
-@@ -347,7 +358,10 @@
+@@ -350,7 +361,10 @@
  {
        struct dentry * result;
        struct inode *dir = parent->d_inode;
@@ -80,7 +80,7 @@ Index: linux-2.6.4-51.0/fs/namei.c
        down(&dir->i_sem);
        /*
         * First re-do the cached lookup just in case it was created
-@@ -386,7 +400,10 @@
+@@ -389,7 +403,10 @@
        if (result->d_op && result->d_op->d_revalidate) {
                if (!result->d_op->d_revalidate(result, nd) && !d_invalidate(result)) {
                        dput(result);
@@ -92,7 +92,7 @@ Index: linux-2.6.4-51.0/fs/namei.c
                }
        }
        return result;
-@@ -563,6 +580,33 @@
+@@ -566,6 +583,33 @@
        return PTR_ERR(dentry);
  }
  
@@ -126,7 +126,7 @@ Index: linux-2.6.4-51.0/fs/namei.c
  /*
   * Name resolution.
   *
-@@ -663,7 +705,9 @@
+@@ -666,7 +710,9 @@
  
                if (inode->i_op->follow_link) {
                        mntget(next.mnt);
@@ -136,25 +136,22 @@ Index: linux-2.6.4-51.0/fs/namei.c
                        dput(next.dentry);
                        mntput(next.mnt);
                        if (err)
-@@ -702,14 +746,29 @@
+@@ -705,14 +751,26 @@
                                inode = nd->dentry->d_inode;
                                /* fallthrough */
                        case 1:
 +                              nd->flags |= LOOKUP_LAST;
 +                              err = revalidate_special(nd);
 +                              nd->flags &= ~LOOKUP_LAST;
-+                              if (err)
-+                                      break;
++                              if (!nd->dentry->d_inode)
++                                      err = -ENOENT;
++                              if (err) {
++                                      path_release(nd);
++                                      goto return_err;
++                              }
                                goto return_reval;
                }
 +              
-+              if (err) {
-+                      if (!nd->dentry->d_inode)
-+                              err = -ENOENT;
-+                      
-+                      goto return_err;                        
-+              }
-+              
                if (nd->dentry->d_op && nd->dentry->d_op->d_hash) {
                        err = nd->dentry->d_op->d_hash(nd->dentry, &this);
                        if (err < 0)
@@ -166,7 +163,7 @@ Index: linux-2.6.4-51.0/fs/namei.c
                if (err)
                        break;
                follow_mount(&next.mnt, &next.dentry);
-@@ -935,7 +994,7 @@
+@@ -946,7 +1004,7 @@
  }
  
  /* SMP-safe */
@@ -175,7 +172,7 @@ Index: linux-2.6.4-51.0/fs/namei.c
  {
        unsigned long hash;
        struct qstr this;
-@@ -955,11 +1014,16 @@
+@@ -966,11 +1024,16 @@
        }
        this.hash = end_name_hash(hash);
  
@@ -193,7 +190,7 @@ Index: linux-2.6.4-51.0/fs/namei.c
  /*
   *    namei()
   *
-@@ -971,7 +1035,7 @@
+@@ -982,7 +1045,7 @@
   * that namei follows links, while lnamei does not.
   * SMP-safe
   */
@@ -202,7 +199,7 @@ Index: linux-2.6.4-51.0/fs/namei.c
  {
        char *tmp = getname(name);
        int err = PTR_ERR(tmp);
-@@ -983,6 +1047,12 @@
+@@ -994,6 +1057,12 @@
        return err;
  }
  
@@ -215,7 +212,7 @@ Index: linux-2.6.4-51.0/fs/namei.c
  /*
   * It's inline, so penalty for filesystems that don't use sticky bit is
   * minimal.
-@@ -1255,8 +1325,8 @@
+@@ -1266,8 +1335,8 @@
                acc_mode |= MAY_APPEND;
  
        /* Fill in the open() intent data */
@@ -226,7 +223,7 @@ Index: linux-2.6.4-51.0/fs/namei.c
  
        /*
         * The simplest case - just a plain lookup.
-@@ -1271,6 +1341,7 @@
+@@ -1282,6 +1351,7 @@
        /*
         * Create - we need to know the parent.
         */
@@ -234,7 +231,7 @@ Index: linux-2.6.4-51.0/fs/namei.c
        error = path_lookup(pathname, LOOKUP_PARENT|LOOKUP_OPEN|LOOKUP_CREATE, nd);
        if (error)
                return error;
-@@ -1287,7 +1358,9 @@
+@@ -1298,7 +1368,9 @@
        dir = nd->dentry;
        nd->flags &= ~LOOKUP_PARENT;
        down(&dir->d_inode->i_sem);
@@ -244,7 +241,7 @@ Index: linux-2.6.4-51.0/fs/namei.c
  
  do_last:
        error = PTR_ERR(dentry);
-@@ -1392,7 +1465,9 @@
+@@ -1403,7 +1475,9 @@
        }
        dir = nd->dentry;
        down(&dir->d_inode->i_sem);
@@ -254,7 +251,7 @@ Index: linux-2.6.4-51.0/fs/namei.c
        putname(nd->last.name);
        goto do_last;
  }
-@@ -2154,7 +2229,9 @@
+@@ -2165,7 +2239,9 @@
  __vfs_follow_link(struct nameidata *nd, const char *link)
  {
        int res = 0;
@@ -264,7 +261,7 @@ Index: linux-2.6.4-51.0/fs/namei.c
        if (IS_ERR(link))
                goto fail;
  
-@@ -2164,6 +2241,10 @@
+@@ -2175,6 +2251,10 @@
                        /* weird __emul_prefix() stuff did it */
                        goto out;
        }
@@ -275,11 +272,11 @@ Index: linux-2.6.4-51.0/fs/namei.c
        res = link_path_walk(link, nd);
  out:
        if (current->link_count || res || nd->last_type!=LAST_NORM)
-Index: linux-2.6.4-51.0/fs/namespace.c
+Index: linux-2.6.6-vanilla/fs/namespace.c
 ===================================================================
---- linux-2.6.4-51.0.orig/fs/namespace.c       2004-04-05 12:41:59.000000000 -0400
-+++ linux-2.6.4-51.0/fs/namespace.c    2004-04-07 13:28:23.000000000 -0400
-@@ -107,6 +107,7 @@
+--- linux-2.6.6-vanilla.orig/fs/namespace.c    2004-05-26 20:25:43.000000000 +0300
++++ linux-2.6.6-vanilla/fs/namespace.c 2004-06-29 13:50:23.793603544 +0300
+@@ -115,6 +115,7 @@
  
  static void detach_mnt(struct vfsmount *mnt, struct nameidata *old_nd)
  {
@@ -287,7 +284,23 @@ Index: linux-2.6.4-51.0/fs/namespace.c
        old_nd->dentry = mnt->mnt_mountpoint;
        old_nd->mnt = mnt->mnt_parent;
        mnt->mnt_parent = mnt;
-@@ -748,6 +749,7 @@
+@@ -539,6 +540,7 @@
+               return err;
+       if (!old_name || !*old_name)
+               return -EINVAL;
++      intent_init(&old_nd.intent, IT_LOOKUP);
+       err = path_lookup(old_name, LOOKUP_FOLLOW, &old_nd);
+       if (err)
+               return err;
+@@ -607,6 +609,7 @@
+               return -EPERM;
+       if (!old_name || !*old_name)
+               return -EINVAL;
++      intent_init(&old_nd.intent, IT_LOOKUP);
+       err = path_lookup(old_name, LOOKUP_FOLLOW, &old_nd);
+       if (err)
+               return err;
+@@ -756,6 +759,7 @@
        int retval = 0;
        int mnt_flags = 0;
  
@@ -295,11 +308,11 @@ Index: linux-2.6.4-51.0/fs/namespace.c
        /* Discard magic */
        if ((flags & MS_MGC_MSK) == MS_MGC_VAL)
                flags &= ~MS_MGC_MSK;
-Index: linux-2.6.4-51.0/fs/open.c
+Index: linux-2.6.6-vanilla/fs/open.c
 ===================================================================
---- linux-2.6.4-51.0.orig/fs/open.c    2004-04-05 12:41:59.000000000 -0400
-+++ linux-2.6.4-51.0/fs/open.c 2004-04-05 17:36:42.000000000 -0400
-@@ -211,7 +211,7 @@
+--- linux-2.6.6-vanilla.orig/fs/open.c 2004-05-26 20:25:43.000000000 +0300
++++ linux-2.6.6-vanilla/fs/open.c      2004-06-29 13:52:28.003720736 +0300
+@@ -213,12 +213,12 @@
        struct nameidata nd;
        struct inode * inode;
        int error;
@@ -308,7 +321,13 @@ Index: linux-2.6.4-51.0/fs/open.c
        error = -EINVAL;
        if (length < 0) /* sorry, but loff_t says... */
                goto out;
-@@ -470,6 +470,7 @@
+-      error = user_path_walk(path, &nd);
++      error = user_path_walk_it(path, &nd);
+       if (error)
+               goto out;
+       inode = nd.dentry->d_inode;
+@@ -472,6 +472,7 @@
        int old_fsuid, old_fsgid;
        kernel_cap_t old_cap;
        int res;
@@ -316,7 +335,15 @@ Index: linux-2.6.4-51.0/fs/open.c
  
        if (mode & ~S_IRWXO)    /* where's F_OK, X_OK, W_OK, R_OK? */
                return -EINVAL;
-@@ -501,6 +502,7 @@
+@@ -496,13 +497,14 @@
+       else
+               current->cap_effective = current->cap_permitted;
+-      res = __user_walk(filename, LOOKUP_FOLLOW|LOOKUP_ACCESS, &nd);
++      res = __user_walk_it(filename, LOOKUP_FOLLOW|LOOKUP_ACCESS, &nd);
+       if (!res) {
+               res = permission(nd.dentry->d_inode, mode, &nd);
+               /* SuS v2 requires we report a read only fs too */
                if(!res && (mode & S_IWOTH) && IS_RDONLY(nd.dentry->d_inode)
                   && !special_file(nd.dentry->d_inode->i_mode))
                        res = -EROFS;
@@ -324,32 +351,29 @@ Index: linux-2.6.4-51.0/fs/open.c
                path_release(&nd);
        }
  
-@@ -515,6 +517,7 @@
+@@ -517,8 +519,9 @@
  {
        struct nameidata nd;
        int error;
 +      intent_init(&nd.intent, IT_GETATTR);
  
-       error = __user_walk(filename, LOOKUP_FOLLOW|LOOKUP_DIRECTORY, &nd);
+-      error = __user_walk(filename, LOOKUP_FOLLOW|LOOKUP_DIRECTORY, &nd);
++      error = __user_walk_it(filename, LOOKUP_FOLLOW|LOOKUP_DIRECTORY, &nd);
        if (error)
-@@ -566,6 +569,7 @@
+               goto out;
+@@ -568,8 +571,9 @@
  {
        struct nameidata nd;
        int error;
 +      intent_init(&nd.intent, IT_GETATTR);
  
-       error = __user_walk(filename, LOOKUP_FOLLOW | LOOKUP_DIRECTORY | LOOKUP_NOALT, &nd);
+-      error = __user_walk(filename, LOOKUP_FOLLOW | LOOKUP_DIRECTORY | LOOKUP_NOALT, &nd);
++      error = __user_walk_it(filename, LOOKUP_FOLLOW | LOOKUP_DIRECTORY | LOOKUP_NOALT, &nd);
        if (error)
-@@ -638,7 +642,7 @@
-       error = -EROFS;
-       if (IS_RDONLY(inode))
-               goto dput_and_out;
--
-+      
-       error = -EPERM;
-       if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
-               goto dput_and_out;
-@@ -746,27 +750,8 @@
+               goto out;
+@@ -748,27 +752,8 @@
   * for the internal routines (ie open_namei()/follow_link() etc). 00 is
   * used by symlinks.
   */
@@ -379,7 +403,7 @@ Index: linux-2.6.4-51.0/fs/open.c
  {
        struct file * f;
        struct inode *inode;
-@@ -778,6 +763,7 @@
+@@ -780,6 +765,7 @@
                goto cleanup_dentry;
        f->f_flags = flags;
        f->f_mode = (flags+1) & O_ACCMODE;
@@ -387,7 +411,7 @@ Index: linux-2.6.4-51.0/fs/open.c
        inode = dentry->d_inode;
        if (f->f_mode & FMODE_WRITE) {
                error = get_write_access(inode);
-@@ -797,6 +783,7 @@
+@@ -799,6 +785,7 @@
                error = f->f_op->open(inode,f);
                if (error)
                        goto cleanup_all;
@@ -395,7 +419,7 @@ Index: linux-2.6.4-51.0/fs/open.c
        }
        f->f_flags &= ~(O_CREAT | O_EXCL | O_NOCTTY | O_TRUNC);
  
-@@ -821,6 +808,7 @@
+@@ -823,6 +810,7 @@
  cleanup_file:
        put_filp(f);
  cleanup_dentry:
@@ -403,7 +427,7 @@ Index: linux-2.6.4-51.0/fs/open.c
        dput(dentry);
        mntput(mnt);
        return ERR_PTR(error);
-@@ -828,6 +816,36 @@
+@@ -830,6 +818,36 @@
  
  EXPORT_SYMBOL(dentry_open);
  
@@ -440,10 +464,10 @@ Index: linux-2.6.4-51.0/fs/open.c
  /*
   * Find an empty file descriptor entry, and mark it busy.
   */
-Index: linux-2.6.4-51.0/fs/stat.c
+Index: linux-2.6.6-vanilla/fs/stat.c
 ===================================================================
---- linux-2.6.4-51.0.orig/fs/stat.c    2004-04-05 12:41:59.000000000 -0400
-+++ linux-2.6.4-51.0/fs/stat.c 2004-04-05 17:36:42.000000000 -0400
+--- linux-2.6.6-vanilla.orig/fs/stat.c 2004-05-26 20:25:43.000000000 +0300
++++ linux-2.6.6-vanilla/fs/stat.c      2004-06-29 12:23:41.822423368 +0300
 @@ -36,7 +36,7 @@
  
  EXPORT_SYMBOL(generic_fillattr);
@@ -513,11 +537,11 @@ Index: linux-2.6.4-51.0/fs/stat.c
                fput(f);
        }
        return error;
-Index: linux-2.6.4-51.0/fs/nfs/dir.c
+Index: linux-2.6.6-vanilla/fs/nfs/dir.c
 ===================================================================
---- linux-2.6.4-51.0.orig/fs/nfs/dir.c 2004-04-05 12:41:59.000000000 -0400
-+++ linux-2.6.4-51.0/fs/nfs/dir.c      2004-04-07 13:27:47.000000000 -0400
-@@ -709,7 +709,7 @@
+--- linux-2.6.6-vanilla.orig/fs/nfs/dir.c      2004-05-26 20:25:50.000000000 +0300
++++ linux-2.6.6-vanilla/fs/nfs/dir.c   2004-06-29 13:14:46.887462656 +0300
+@@ -705,7 +705,7 @@
                return 0;
        if (!nd || (nd->flags & LOOKUP_CONTINUE) || !(nd->flags & LOOKUP_CREATE))
                return 0;
@@ -526,7 +550,7 @@ Index: linux-2.6.4-51.0/fs/nfs/dir.c
  }
  
  static struct dentry *nfs_lookup(struct inode *dir, struct dentry * dentry, struct nameidata *nd)
-@@ -1026,7 +1026,7 @@
+@@ -1022,7 +1022,7 @@
        attr.ia_valid = ATTR_MODE;
  
        if (nd && (nd->flags & LOOKUP_CREATE))
@@ -535,11 +559,11 @@ Index: linux-2.6.4-51.0/fs/nfs/dir.c
  
        /*
         * The 0 argument passed into the create function should one day
-Index: linux-2.6.4-51.0/fs/inode.c
+Index: linux-2.6.6-vanilla/fs/inode.c
 ===================================================================
---- linux-2.6.4-51.0.orig/fs/inode.c   2004-04-05 12:41:59.000000000 -0400
-+++ linux-2.6.4-51.0/fs/inode.c        2004-04-05 17:36:43.000000000 -0400
-@@ -221,6 +221,7 @@
+--- linux-2.6.6-vanilla.orig/fs/inode.c        2004-05-26 20:25:43.000000000 +0300
++++ linux-2.6.6-vanilla/fs/inode.c     2004-06-29 12:23:41.844420024 +0300
+@@ -220,6 +220,7 @@
        inodes_stat.nr_unused--;
  }
  
@@ -547,11 +571,11 @@ Index: linux-2.6.4-51.0/fs/inode.c
  /**
   * clear_inode - clear an inode
   * @inode: inode to clear
-Index: linux-2.6.4-51.0/fs/super.c
+Index: linux-2.6.6-vanilla/fs/super.c
 ===================================================================
---- linux-2.6.4-51.0.orig/fs/super.c   2004-04-05 12:41:59.000000000 -0400
-+++ linux-2.6.4-51.0/fs/super.c        2004-04-05 17:36:43.000000000 -0400
-@@ -787,6 +787,8 @@
+--- linux-2.6.6-vanilla.orig/fs/super.c        2004-05-26 20:25:43.000000000 +0300
++++ linux-2.6.6-vanilla/fs/super.c     2004-06-29 12:23:41.846419720 +0300
+@@ -788,6 +788,8 @@
        return (struct vfsmount *)sb;
  }
  
@@ -560,10 +584,10 @@ Index: linux-2.6.4-51.0/fs/super.c
  struct vfsmount *kern_mount(struct file_system_type *type)
  {
        return do_kern_mount(type->name, 0, type->name, NULL);
-Index: linux-2.6.4-51.0/include/linux/dcache.h
+Index: linux-2.6.6-vanilla/include/linux/dcache.h
 ===================================================================
---- linux-2.6.4-51.0.orig/include/linux/dcache.h       2004-04-05 12:42:07.000000000 -0400
-+++ linux-2.6.4-51.0/include/linux/dcache.h    2004-04-05 17:36:43.000000000 -0400
+--- linux-2.6.6-vanilla.orig/include/linux/dcache.h    2004-05-26 20:26:11.000000000 +0300
++++ linux-2.6.6-vanilla/include/linux/dcache.h 2004-06-29 12:23:41.847419568 +0300
 @@ -4,6 +4,7 @@
  #ifdef __KERNEL__
  
@@ -581,10 +605,18 @@ Index: linux-2.6.4-51.0/include/linux/dcache.h
  struct dentry_stat_t {
        int nr_dentry;
        int nr_unused;
-Index: linux-2.6.4-51.0/include/linux/fs.h
+Index: linux-2.6.6-vanilla/include/linux/fs.h
 ===================================================================
---- linux-2.6.4-51.0.orig/include/linux/fs.h   2004-04-05 12:42:07.000000000 -0400
-+++ linux-2.6.4-51.0/include/linux/fs.h        2004-04-05 17:36:43.000000000 -0400
+--- linux-2.6.6-vanilla.orig/include/linux/fs.h        2004-05-26 20:26:11.000000000 +0300
++++ linux-2.6.6-vanilla/include/linux/fs.h     2004-06-29 12:23:41.850419112 +0300
+@@ -76,6 +76,7 @@
+ #define FMODE_READ 1
+ #define FMODE_WRITE 2
++#define FMODE_EXEC 4
+ #define RW_MASK               1
+ #define RWA_MASK      2
 @@ -249,6 +249,8 @@
  #define ATTR_ATTR_FLAG        1024
  #define ATTR_KILL_SUID        2048
@@ -594,7 +626,7 @@ Index: linux-2.6.4-51.0/include/linux/fs.h
  
  /*
   * This is the Inode Attributes structure, used for notify_change().  It
-@@ -422,6 +424,7 @@
+@@ -443,6 +445,7 @@
        struct block_device     *i_bdev;
        struct cdev             *i_cdev;
        int                     i_cindex;
@@ -602,7 +634,7 @@ Index: linux-2.6.4-51.0/include/linux/fs.h
  
        unsigned long           i_dnotify_mask; /* Directory notify events */
        struct dnotify_struct   *i_dnotify; /* for directory notifications */
-@@ -554,6 +557,7 @@
+@@ -576,6 +579,7 @@
        spinlock_t              f_ep_lock;
  #endif /* #ifdef CONFIG_EPOLL */
        struct address_space    *f_mapping;
@@ -610,7 +642,7 @@ Index: linux-2.6.4-51.0/include/linux/fs.h
  };
  extern spinlock_t files_lock;
  #define file_list_lock() spin_lock(&files_lock);
-@@ -874,7 +878,9 @@
+@@ -900,7 +904,9 @@
        void (*truncate) (struct inode *);
        int (*permission) (struct inode *, int, struct nameidata *);
        int (*setattr) (struct dentry *, struct iattr *);
@@ -620,7 +652,7 @@ Index: linux-2.6.4-51.0/include/linux/fs.h
        int (*setxattr) (struct dentry *, const char *,const void *,size_t,int);
        ssize_t (*getxattr) (struct dentry *, const char *, void *, size_t);
        ssize_t (*listxattr) (struct dentry *, char *, size_t);
-@@ -1101,6 +1107,7 @@
+@@ -1126,6 +1132,7 @@
  extern int unregister_filesystem(struct file_system_type *);
  extern struct vfsmount *kern_mount(struct file_system_type *);
  extern int may_umount(struct vfsmount *);
@@ -628,7 +660,7 @@ Index: linux-2.6.4-51.0/include/linux/fs.h
  extern long do_mount(char *, char *, char *, unsigned long, void *);
  
  extern int vfs_statfs(struct super_block *, struct kstatfs *);
-@@ -1165,6 +1172,7 @@
+@@ -1190,6 +1197,7 @@
  extern int do_truncate(struct dentry *, loff_t start);
  extern struct file *filp_open(const char *, int, int);
  extern struct file * dentry_open(struct dentry *, struct vfsmount *, int);
@@ -636,10 +668,10 @@ Index: linux-2.6.4-51.0/include/linux/fs.h
  extern int filp_close(struct file *, fl_owner_t id);
  extern char * getname(const char __user *);
  
-Index: linux-2.6.4-51.0/include/linux/namei.h
+Index: linux-2.6.6-vanilla/include/linux/namei.h
 ===================================================================
---- linux-2.6.4-51.0.orig/include/linux/namei.h        2004-04-05 12:42:07.000000000 -0400
-+++ linux-2.6.4-51.0/include/linux/namei.h     2004-04-05 17:36:43.000000000 -0400
+--- linux-2.6.6-vanilla.orig/include/linux/namei.h     2004-05-26 20:26:11.000000000 +0300
++++ linux-2.6.6-vanilla/include/linux/namei.h  2004-06-29 12:23:41.852418808 +0300
 @@ -2,25 +2,55 @@
  #define _LINUX_NAMEI_H
  
@@ -735,11 +767,11 @@ Index: linux-2.6.4-51.0/include/linux/namei.h
  extern int follow_down(struct vfsmount **, struct dentry **);
  extern int follow_up(struct vfsmount **, struct dentry **);
  
-Index: linux-2.6.4-51.0/kernel/exit.c
+Index: linux-2.6.6-vanilla/kernel/exit.c
 ===================================================================
---- linux-2.6.4-51.0.orig/kernel/exit.c        2004-04-05 12:42:08.000000000 -0400
-+++ linux-2.6.4-51.0/kernel/exit.c     2004-04-05 17:36:43.000000000 -0400
-@@ -259,6 +259,8 @@
+--- linux-2.6.6-vanilla.orig/kernel/exit.c     2004-05-26 20:26:14.000000000 +0300
++++ linux-2.6.6-vanilla/kernel/exit.c  2004-06-29 12:23:41.854418504 +0300
+@@ -254,6 +254,8 @@
        write_unlock_irq(&tasklist_lock);
  }
  
@@ -748,7 +780,7 @@ Index: linux-2.6.4-51.0/kernel/exit.c
  void __set_special_pids(pid_t session, pid_t pgrp)
  {
        struct task_struct *curr = current;
-@@ -428,6 +430,8 @@
+@@ -434,6 +436,8 @@
        __exit_files(tsk);
  }
  
index 9fcec3f..a2dab51 100644 (file)
@@ -403,7 +403,7 @@ Index: linux-2.6.4-51.0/fs/open.c
 -      error = -EROFS;
 -      if (IS_RDONLY(inode))
 -              goto dput_and_out;
--      
+-
 -      error = -EPERM;
 -      if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
 -              goto dput_and_out;
diff --git a/lustre/kernel_patches/patches/vfs_races-2.6-vanilla.patch b/lustre/kernel_patches/patches/vfs_races-2.6-vanilla.patch
new file mode 100644 (file)
index 0000000..ccca64d
--- /dev/null
@@ -0,0 +1,65 @@
+Index: linux-2.6.7-vanilla/fs/dcache.c
+===================================================================
+--- linux-2.6.7-vanilla.orig/fs/dcache.c       2004-07-01 12:09:19.000000000 +0300
++++ linux-2.6.7-vanilla/fs/dcache.c    2004-07-01 12:29:12.510193264 +0300
+@@ -219,7 +219,14 @@
+               spin_unlock(&dcache_lock);
+               return 0;
+       }
+-      /*
++
++        /* network invalidation by Lustre */
++      if (dentry->d_flags & DCACHE_LUSTRE_INVALID) {
++              spin_unlock(&dcache_lock);
++              return 0;
++      }
++
++        /*
+        * Check whether to do a partial shrink_dcache
+        * to get rid of unused child entries.
+        */
+@@ -1114,19 +1121,28 @@
+  * Adds a dentry to the hash according to its name.
+  */
+  
+-void d_rehash(struct dentry * entry)
++void __d_rehash(struct dentry * entry, int lock)
+ {
+       struct hlist_head *list = d_hash(entry->d_parent, entry->d_name.hash);
+-      spin_lock(&dcache_lock);
++      if (lock)
++              spin_lock(&dcache_lock);
+       spin_lock(&entry->d_lock);
+       entry->d_flags &= ~DCACHE_UNHASHED;
+       spin_unlock(&entry->d_lock);
+       entry->d_bucket = list;
+       hlist_add_head_rcu(&entry->d_hash, list);
+-      spin_unlock(&dcache_lock);
++      if (lock)
++              spin_unlock(&dcache_lock);
+ }
++EXPORT_SYMBOL(__d_rehash);
++
++void d_rehash(struct dentry * entry)
++{
++      __d_rehash(entry, 1);
++ }
++
+ #define do_switch(x,y) do { \
+       __typeof__ (x) __tmp = x; \
+       x = y; y = __tmp; } while (0)
+Index: linux-2.6.7-vanilla/include/linux/dcache.h
+===================================================================
+--- linux-2.6.7-vanilla.orig/include/linux/dcache.h    2004-07-01 12:24:53.602553208 +0300
++++ linux-2.6.7-vanilla/include/linux/dcache.h 2004-07-01 12:27:29.757814000 +0300
+@@ -159,6 +159,8 @@
+ #define DCACHE_REFERENCED     0x0008  /* Recently used, don't discard. */
+ #define DCACHE_UNHASHED               0x0010  
++#define DCACHE_LUSTRE_INVALID     0x0020  /* Lustre invalidated */
++
+ extern spinlock_t dcache_lock;
diff --git a/lustre/kernel_patches/patches/x86-fpu-crash.patch b/lustre/kernel_patches/patches/x86-fpu-crash.patch
new file mode 100644 (file)
index 0000000..ce6b830
--- /dev/null
@@ -0,0 +1,36 @@
+# This is a BitKeeper generated diff -Nru style patch.
+#
+# ChangeSet
+#   2004/06/14 16:05:28-03:00 marcelo@logos.cnet 
+#     Alexander Nyberg/Andi/Sergey: Fix x86 "clear_cpu()" macro.
+#   
+#   Linus's 2.6 changelog:
+#                                                                                         
+#   Fix x86 "clear_cpu()" macro.
+#                                                                                         
+#   We need to clear all exceptions before synchronizing
+#   with the FPU, since we aren't ready to handle a FP
+#   exception here and we're getting rid of all FP state.
+#                                                                                         
+#   Special thanks to Alexander Nyberg for reports and
+#   testing. Alternate patches by Sergey Vlasov and Andi
+#   Kleen, who both worked on this.
+#                                                                                         
+#   Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+# 
+# include/asm-i386/i387.h
+#   2004/06/14 16:04:08-03:00 marcelo@logos.cnet +1 -1
+#   Alexander Nyberg/Andi/Sergey: Fix x86 "clear_cpu()" macro.
+# 
+diff -Nru a/include/asm-i386/i387.h b/include/asm-i386/i387.h
+--- a/include/asm-i386/i387.h  2004-06-16 11:49:16 -07:00
++++ b/include/asm-i386/i387.h  2004-06-16 11:49:16 -07:00
+@@ -34,7 +34,7 @@
+ #define clear_fpu( tsk ) do { \
+       if ( tsk->flags & PF_USEDFPU ) { \
+-              asm volatile("fwait"); \
++              asm volatile("fnclex ; fwait"); \
+               tsk->flags &= ~PF_USEDFPU; \
+               stts(); \
+       } \
index c2c88f6..9c559d6 100644 (file)
@@ -7,7 +7,6 @@ nfs-cifs-intent-2.6-suse.patch
 iopen-misc-2.6-suse.patch 
 export-truncate-2.6-suse.patch 
 export_symbols-2.6-suse.patch 
-removepage-2.6-suse.patch
 dev_read_only-2.6-suse.patch 
 export-2.6-suse.patch
 header-guards-2.6-suse.patch
index 5a8ca3d..82cd152 100644 (file)
@@ -1,15 +1,14 @@
-uml-vanilla-2.6.6-p1.patch
-uml-vanilla-2.6.6-p2.patch
+uml-2.6.7-01-bb2.patch
 lustre_version.patch
 vfs_intent-2.6-vanilla.patch
 vfs_nointent-2.6-vanilla.patch
-vfs_races-2.6-suse.patch
+vfs_races-2.6-vanilla.patch
 ext3-wantedi-misc-2.6-suse.patch 
-nfs-cifs-intent-2.6-suse.patch 
+nfs-cifs-intent-2.6-vanilla.patch 
 iopen-misc-2.6-suse.patch 
 export-truncate-2.6-suse.patch 
 export_symbols-2.6-suse.patch 
-removepage-2.6-vanilla.patch 
 dev_read_only-2.6-suse.patch 
 export-2.6-suse.patch
 header-guards-2.6-suse.patch
+lookup_bdev_init_intent.patch
index 22491a0..4093450 100644 (file)
@@ -45,3 +45,4 @@ ext3-xattr-ptr-arith-fix.patch
 procfs-ndynamic-2.4.patch
 ext3-truncate-buffer-head.patch
 inode-max-readahead-2.4.24.patch
+x86-fpu-crash.patch
index 65339b1..0db2f07 100644 (file)
@@ -30,4 +30,5 @@ ext3-xattr-ptr-arith-fix.patch
 kernel_text_address-2.4.20-vanilla.patch 
 procfs-ndynamic-2.4.21-suse2.patch 
 ext3-truncate-buffer-head.patch
+qlogic-suse-2.4.21-2.patch
 loop-sync-2.4.21-suse.patch
index 70af4ab..0d8d3b3 100644 (file)
@@ -1,16 +1,15 @@
 KERNEL=linux-2.4.20-31.9.tar.gz
 SERIES=rh-2.4.20
 VERSION=2.4.20
-EXTRA_VERSION=31.9_lustre.1.2.2
+EXTRA_VERSION=31.9_lustre.1.2.4
 RHBUILD=1
 
-BASE_ARCHS="i586"
+BASE_ARCHS="i686"
 BIGMEM_ARCHS=""
 BOOT_ARCHS=""
 JENSEN_ARCHS=""
-SMP_ARCHS="i586"
+SMP_ARCHS="i686"
 UP_ARCHS=""
-SRC_ARCHS="i586"
 
 # the modules in this kernel do not build with gcc 3
 for cc in i386-redhat-linux-gcc-2.96 gcc296 gcc ; do
diff --git a/lustre/kernel_patches/targets/rhel-2.4.target b/lustre/kernel_patches/targets/rhel-2.4.target
new file mode 100644 (file)
index 0000000..f679d8e
--- /dev/null
@@ -0,0 +1,20 @@
+KERNEL=linux-2.4.21-15.0.3.EL.tar.bz2
+SERIES=chaos-2.4.21
+VERSION=2.4.21
+EXTRA_VERSION=15.0.3.EL_lustre.1.2.4
+RHBUILD=1
+
+BASE_ARCHS="i686"
+BIGMEM_ARCHS=""
+BOOT_ARCHS=""
+JENSEN_ARCHS=""
+SMP_ARCHS="i686"
+UP_ARCHS=""
+
+# the modules in this kernel do not build with gcc 3.3 or 2.96
+for cc in i386-redhat-linux-gcc-3.2.3 gcc32 gcc ; do
+    if which $cc >/dev/null 2>/dev/null ; then
+        export CC=$cc
+        break
+    fi
+done
index c27c3de..e82f9a0 100644 (file)
@@ -1,7 +1,7 @@
 KERNEL=linux-2.4.21-x86_64.tar.gz
 SERIES=suse-2.4.21-2
 VERSION=2.4.21
-EXTRA_VERSION=lustre.1.2.1
+EXTRA_VERSION=lustre.1.2.4
 RHBUILD=0
 
 BASE_ARCHS="x86_64"
index cdd3b07..5483c78 100644 (file)
@@ -104,7 +104,8 @@ int client_obd_setup(struct obd_device *obddev, obd_count len, void *buf)
         INIT_LIST_HEAD(&cli->cl_loi_write_list);
         INIT_LIST_HEAD(&cli->cl_loi_read_list);
         spin_lock_init(&cli->cl_loi_list_lock);
-        cli->cl_brw_in_flight = 0;
+        cli->cl_r_in_flight = 0;
+        cli->cl_w_in_flight = 0;
         spin_lock_init(&cli->cl_read_rpc_hist.oh_lock);
         spin_lock_init(&cli->cl_write_rpc_hist.oh_lock);
         spin_lock_init(&cli->cl_read_page_hist.oh_lock);
@@ -578,6 +579,14 @@ void target_destroy_export(struct obd_export *exp)
  * Recovery functions
  */
 
+
+static void target_release_saved_req(struct ptlrpc_request *req) 
+{
+        class_export_put(req->rq_export);
+        OBD_FREE(req->rq_reqmsg, req->rq_reqlen);
+        OBD_FREE(req, sizeof *req);
+}
+
 static void target_finish_recovery(struct obd_device *obd)
 {
         struct list_head *tmp, *n;
@@ -601,13 +610,12 @@ static void target_finish_recovery(struct obd_device *obd)
         list_for_each_safe(tmp, n, &obd->obd_delayed_reply_queue) {
                 struct ptlrpc_request *req;
                 req = list_entry(tmp, struct ptlrpc_request, rq_list);
+                list_del(&req->rq_list);
                 DEBUG_REQ(D_ERROR, req, "delayed:");
                 ptlrpc_reply(req);
-                class_export_put(req->rq_export);
-                list_del(&req->rq_list);
-                OBD_FREE(req->rq_reqmsg, req->rq_reqlen);
-                OBD_FREE(req, sizeof *req);
+                target_release_saved_req(req);
         }
+        obd->obd_recovery_end = LTIME_S(CURRENT_TIME);
         return;
 }
 
@@ -619,6 +627,7 @@ static void abort_recovery_queue(struct obd_device *obd)
 
         list_for_each_safe(tmp, n, &obd->obd_recovery_queue) {
                 req = list_entry(tmp, struct ptlrpc_request, rq_list);
+                list_del(&req->rq_list);
                 DEBUG_REQ(D_ERROR, req, "aborted:");
                 req->rq_status = -ENOTCONN;
                 req->rq_type = PTL_RPC_MSG_ERR;
@@ -629,10 +638,48 @@ static void abort_recovery_queue(struct obd_device *obd)
                         DEBUG_REQ(D_ERROR, req,
                                   "packing failed for abort-reply; skipping");
                 }
+                target_release_saved_req(req);
+        }
+}
+
+/* Called from a cleanup function if the device is being cleaned up 
+   forcefully.  The exports should all have been disconnected already, 
+   the only thing left to do is 
+     - clear the recovery flags
+     - cancel the timer
+     - free queued requests and replies, but don't send replies
+   Because the obd_stopping flag is set, no new requests should be received.
+     
+*/
+void target_cleanup_recovery(struct obd_device *obd)
+{
+        struct list_head *tmp, *n;
+        struct ptlrpc_request *req;
+
+        spin_lock_bh(&obd->obd_processing_task_lock);
+        if (!obd->obd_recovering) {
+                spin_unlock_bh(&obd->obd_processing_task_lock);
+                EXIT;
+                return;
+        }
+        obd->obd_recovering = obd->obd_abort_recovery = 0;
+        target_cancel_recovery_timer(obd);
+        spin_unlock_bh(&obd->obd_processing_task_lock);
+
+
+        list_for_each_safe(tmp, n, &obd->obd_delayed_reply_queue) {
+                req = list_entry(tmp, struct ptlrpc_request, rq_list);
                 list_del(&req->rq_list);
-                class_export_put(req->rq_export);
-                OBD_FREE(req->rq_reqmsg, req->rq_reqlen);
-                OBD_FREE(req, sizeof *req);
+                LASSERT (req->rq_reply_state);
+                lustre_free_reply_state(req->rq_reply_state);
+                target_release_saved_req(req);
+        }
+
+        list_for_each_safe(tmp, n, &obd->obd_recovery_queue) {
+                req = list_entry(tmp, struct ptlrpc_request, rq_list);
+                list_del(&req->rq_list);
+                LASSERT (req->rq_reply_state == 0);
+                target_release_saved_req(req);
         }
 }
 
index e87096c..ecc7d4a 100644 (file)
@@ -445,12 +445,14 @@ int ldlm_server_completion_ast(struct ldlm_lock *lock, int flags, void *data)
         total_enqueue_wait = timeval_sub(&granted_time, &lock->l_enqueued_time);
 
         if (total_enqueue_wait / 1000000 > obd_timeout)
-                LDLM_ERROR(lock, "enqueue wait took %ldus", total_enqueue_wait);
+                LDLM_ERROR(lock, "enqueue wait took %luus", total_enqueue_wait);
 
+        down(&lock->l_resource->lr_lvb_sem);
         if (lock->l_resource->lr_lvb_len) {
                 buffers = 2;
                 size[1] = lock->l_resource->lr_lvb_len;
         }
+        up(&lock->l_resource->lr_lvb_sem);
 
         req = ptlrpc_prep_req(lock->l_export->exp_imp_reverse,
                               LDLM_CP_CALLBACK, buffers, size, NULL);
@@ -464,10 +466,14 @@ int ldlm_server_completion_ast(struct ldlm_lock *lock, int flags, void *data)
         ldlm_lock2desc(lock, &body->lock_desc);
 
         if (buffers == 2) {
-                void *lvb = lustre_msg_buf(req->rq_reqmsg, 1,
-                                           lock->l_resource->lr_lvb_len);
+                void *lvb;
+
+                down(&lock->l_resource->lr_lvb_sem);
+                lvb = lustre_msg_buf(req->rq_reqmsg, 1,
+                                     lock->l_resource->lr_lvb_len);
                 memcpy(lvb, lock->l_resource->lr_lvb_data,
                        lock->l_resource->lr_lvb_len);
+                up(&lock->l_resource->lr_lvb_sem);
         }
 
         LDLM_DEBUG(lock, "server preparing completion AST (after %ldus wait)",
@@ -514,7 +520,9 @@ int ldlm_server_glimpse_ast(struct ldlm_lock *lock, void *data)
                sizeof(body->lock_handle1));
         ldlm_lock2desc(lock, &body->lock_desc);
 
+        down(&lock->l_resource->lr_lvb_sem);
         size = lock->l_resource->lr_lvb_len;
+        up(&lock->l_resource->lr_lvb_sem);
         req->rq_replen = lustre_msg_size(1, &size);
 
         req->rq_send_state = LUSTRE_IMP_FULL;
@@ -586,10 +594,13 @@ int ldlm_handle_enqueue(struct ptlrpc_request *req,
                 cookie = req;
         } else {
                 int buffers = 1;
+
+                down(&lock->l_resource->lr_lvb_sem);
                 if (lock->l_resource->lr_lvb_len) {
                         size[1] = lock->l_resource->lr_lvb_len;
                         buffers = 2;
                 }
+                up(&lock->l_resource->lr_lvb_sem);
 
                 if (OBD_FAIL_CHECK_ONCE(OBD_FAIL_LDLM_ENQUEUE_EXTENT_ERR))
                         GOTO(out, rc = -ENOMEM);
@@ -642,12 +653,19 @@ int ldlm_handle_enqueue(struct ptlrpc_request *req,
                 LDLM_DEBUG(lock, "server-side enqueue handler, sending reply"
                            "(err=%d, rc=%d)", err, rc);
 
-                if (lock->l_resource->lr_lvb_len > 0 && rc == 0) {
-                        void *lvb = lustre_msg_buf(req->rq_repmsg, 1,
-                                                  lock->l_resource->lr_lvb_len);
-                        LASSERT(lvb != NULL);
-                        memcpy(lvb, lock->l_resource->lr_lvb_data,
-                               lock->l_resource->lr_lvb_len);
+                if (rc == 0) {
+                        down(&lock->l_resource->lr_lvb_sem);
+                        size[1] = lock->l_resource->lr_lvb_len;
+                        if (size[1] > 0) {
+                                void *lvb = lustre_msg_buf(req->rq_repmsg,
+                                                           1, size[1]);
+                                LASSERTF(lvb != NULL, "req %p, lock %p\n",
+                                         req, lock);
+
+                                memcpy(lvb, lock->l_resource->lr_lvb_data,
+                                       size[1]);
+                        }
+                        up(&lock->l_resource->lr_lvb_sem);
                 }
 
                 if (!err && dlm_req->lock_desc.l_resource.lr_type != LDLM_FLOCK)
@@ -1498,6 +1516,7 @@ EXPORT_SYMBOL(client_obd_cleanup);
 EXPORT_SYMBOL(client_connect_import);
 EXPORT_SYMBOL(client_disconnect_export);
 EXPORT_SYMBOL(target_abort_recovery);
+EXPORT_SYMBOL(target_cleanup_recovery);
 EXPORT_SYMBOL(target_handle_connect);
 EXPORT_SYMBOL(target_destroy_export);
 EXPORT_SYMBOL(target_cancel_recovery_timer);
index 7118858..5105afc 100644 (file)
@@ -526,13 +526,23 @@ ldlm_resource_get(struct ldlm_namespace *ns, struct ldlm_resource *parent,
         else
                 res = NULL;
 
-        l_unlock(&ns->ns_lock);
-
         if (create && ns->ns_lvbo && ns->ns_lvbo->lvbo_init) {
-                int rc = ns->ns_lvbo->lvbo_init(res);
+                int rc;
+
+                /* Although this is technically a lock inversion risk (lvb_sem
+                 * should be taken before DLM lock), this resource was just
+                 * created, so nobody else can take the lvb_sem yet. -p */
+                down(&res->lr_lvb_sem);
+                /* Drop the dlm lock, because lvbo_init can touch the disk */
+                l_unlock(&ns->ns_lock);
+                OBD_FAIL_TIMEOUT(OBD_FAIL_LDLM_CREATE_RESOURCE, 2);
+                rc = ns->ns_lvbo->lvbo_init(res);
+                up(&res->lr_lvb_sem);
                 if (rc)
                         CERROR("lvbo_init failed for resource "LPU64": rc %d\n",
                                name.name[0], rc);
+        } else {
+                l_unlock(&ns->ns_lock);
         }
 
         RETURN(res);
@@ -541,7 +551,7 @@ ldlm_resource_get(struct ldlm_namespace *ns, struct ldlm_resource *parent,
 struct ldlm_resource *ldlm_resource_getref(struct ldlm_resource *res)
 {
         LASSERT(res != NULL);
-        LASSERT(res != (void *)0x5a5a5a5a);
+        LASSERT(res != LP_POISON);
         atomic_inc(&res->lr_refcount);
         CDEBUG(D_INFO, "getref res: %p count: %d\n", res,
                atomic_read(&res->lr_refcount));
@@ -557,7 +567,7 @@ int ldlm_resource_putref(struct ldlm_resource *res)
         CDEBUG(D_INFO, "putref res: %p count: %d\n", res,
                atomic_read(&res->lr_refcount) - 1);
         LASSERT(atomic_read(&res->lr_refcount) > 0);
-        LASSERT(atomic_read(&res->lr_refcount) < 0x5a5a5a5a);
+        LASSERT(atomic_read(&res->lr_refcount) < LI_POISON);
 
         if (atomic_dec_and_test(&res->lr_refcount)) {
                 struct ldlm_namespace *ns = res->lr_namespace;
index b831bd8..fe1d7d2 100644 (file)
@@ -27,6 +27,20 @@ SYSIO_LIBS =  $(SYSIO)/drivers/native/libsysio_native.a \
 if LIBLUSTRE
 lib_LIBRARIES = liblustre.a
 noinst_LIBRARIES = libllite.a
+
+install-exec-hook: liblustre.so
+       @$(NORMAL_INSTALL)
+       $(mkinstalldirs) $(DESTDIR)$(libdir)
+       @list=$< ; for p in $$list; do \
+         if test -f $$p; then \
+           f="`echo $$p | sed -e 's|^.*/||'`"; \
+           echo " $(libLIBRARIES_INSTALL) $$p $(DESTDIR)$(libdir)/$$f"; \
+           $(libLIBRARIES_INSTALL) $$p $(DESTDIR)$(libdir)/$$f; \
+         else :; fi; \
+       done
+else
+install-exec-hook:
+
 endif
 
 libllite_a_SOURCES = llite_lib.c super.c namei.c rw.c file.c dir.c llite_lib.h
index 4be1935..f75fcab 100644 (file)
@@ -11,9 +11,9 @@ noinst_LIBRARIES = libtestcommon.a
 def_tests = echo_test sanity recovery_small replay_single replay_ost_single
 
 if MPITESTS
-bin_PROGRAMS = $(def_tests) test_lock_cancel
+noinst_PROGRAMS = $(def_tests) test_lock_cancel
 else
-bin_PROGRAMS = $(def_tests)
+noinst_PROGRAMS = $(def_tests)
 endif
 endif # LIBLUSTRE
 
index 910abfe..290eb46 100644 (file)
@@ -59,7 +59,6 @@ static int ll_ddelete(struct dentry *de)
                de->d_name.len, de->d_name.name, de, de->d_parent, de->d_inode,
                d_unhashed(de) ? "" : "hashed,",
                list_empty(&de->d_subdirs) ? "" : "subdirs");
-        //RETURN(de->d_flags & DCACHE_LUSTRE_INVALID);
         RETURN(0);
 }
 
@@ -110,7 +109,7 @@ void ll_intent_release(struct lookup_intent *it)
 
 void ll_unhash_aliases(struct inode *inode)
 {
-       struct list_head *tmp, *head;
+        struct list_head *tmp, *head;
         struct ll_sb_info *sbi;
         ENTRY;
 
@@ -125,21 +124,21 @@ void ll_unhash_aliases(struct inode *inode)
         sbi = ll_i2sbi(inode);
         head = &inode->i_dentry;
 restart:
-       spin_lock(&dcache_lock);
-       tmp = head;
-       while ((tmp = tmp->next) != head) {
-               struct dentry *dentry = list_entry(tmp, struct dentry, d_alias);
-               if (atomic_read(&dentry->d_count) == 0) {
+        spin_lock(&dcache_lock);
+        tmp = head;
+        while ((tmp = tmp->next) != head) {
+                struct dentry *dentry = list_entry(tmp, struct dentry, d_alias);
+                if (atomic_read(&dentry->d_count) == 0) {
                         CDEBUG(D_DENTRY, "deleting dentry %*s (%p) parent %p "
                                "inode %p\n", dentry->d_name.len,
                                dentry->d_name.name, dentry, dentry->d_parent,
                                dentry->d_inode);
-                       dget_locked(dentry);
-                       __d_drop(dentry);
-                       spin_unlock(&dcache_lock);
-                       dput(dentry);
-                       goto restart;
-               } else if (!(dentry->d_flags & DCACHE_LUSTRE_INVALID)) {
+                        dget_locked(dentry);
+                        __d_drop(dentry);
+                        spin_unlock(&dcache_lock);
+                        dput(dentry);
+                        goto restart;
+                } else if (!(dentry->d_flags & DCACHE_LUSTRE_INVALID)) {
                         CDEBUG(D_DENTRY, "unhashing dentry %*s (%p) parent %p "
                                "inode %p refc %d\n", dentry->d_name.len,
                                dentry->d_name.name, dentry, dentry->d_parent,
@@ -149,8 +148,8 @@ restart:
                         hlist_add_head(&dentry->d_hash,
                                        &sbi->ll_orphan_dentry_list);
                 }
-       }
-       spin_unlock(&dcache_lock);
+        }
+        spin_unlock(&dcache_lock);
         EXIT;
 }
 
@@ -205,12 +204,10 @@ void ll_frob_intent(struct lookup_intent **itp, struct lookup_intent *deft)
 {
         struct lookup_intent *it = *itp;
 #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
-        if (it && it->it_magic != INTENT_MAGIC) {
-                CERROR("WARNING: uninitialized intent\n");
-                LBUG();
+        if (it) {
+                LASSERTF(it->it_magic == INTENT_MAGIC, "bad intent magic: %x\n",
+                         it->it_magic);
         }
-        if (it && (it->it_op == IT_GETATTR || it->it_op == 0))
-                it->it_op = IT_LOOKUP;
 #endif
 
         if (!it || it->it_op == IT_GETXATTR)
index 7b9eef7..132f7ab 100644 (file)
@@ -201,7 +201,6 @@ Eend:
 fail:
         SetPageChecked(page);
         SetPageError(page);
-        LBUG();
 }
 
 static struct page *ll_get_dir_page(struct inode *dir, unsigned long n)
index 8498bea..fec8e34 100644 (file)
@@ -178,11 +178,10 @@ int ll_local_open(struct file *file, struct lookup_intent *it)
 int ll_file_open(struct inode *inode, struct file *file)
 {
         struct ll_inode_info *lli = ll_i2info(inode);
-        struct lookup_intent *it;
+        struct lookup_intent *it, oit = { .it_op = IT_OPEN,
+                                          .it_flags = file->f_flags };
         struct lov_stripe_md *lsm;
         struct ptlrpc_request *req;
-        struct lookup_intent oit = { .it_op = IT_OPEN,
-                                     .it_flags = file->f_flags };
         int rc = 0;
         ENTRY;
 
@@ -414,6 +413,7 @@ void ll_pgcache_remove_extent(struct inode *inode, struct lov_stripe_md *lsm,
                 if (rc2 == 0 && page->mapping != NULL) {
                         // checking again to account for writeback's lock_page()
                         LL_CDEBUG_PAGE(D_PAGE, page, "truncating\n");
+                        ll_ra_accounting(page, inode->i_mapping);
                         ll_truncate_complete_page(page);
                 }
                 unlock_page(page);
@@ -614,6 +614,8 @@ int ll_glimpse_size(struct inode *inode)
                          LCK_PR, &flags, ll_extent_lock_callback,
                          ldlm_completion_ast, ll_glimpse_callback, inode,
                          sizeof(struct ost_lvb), lustre_swab_ost_lvb, &lockh);
+        if (rc == -ENOENT)
+                RETURN(rc);
         if (rc != 0) {
                 CERROR("obd_enqueue returned rc %d, returning -EIO\n", rc);
                 RETURN(rc > 0 ? -EIO : rc);
@@ -740,8 +742,8 @@ static ssize_t ll_file_read(struct file *filp, char *buf, size_t count,
                 inode->i_size = kms;
         }
 
-        CDEBUG(D_PAGE,"ino %lu count %lu offset %llu i_size %llu kms "LPU64"\n",
-               inode->i_ino, (long)count, *ppos, inode->i_size, kms);
+        CDEBUG(D_INFO, "Read ino %lu, "LPSZ" bytes, offset %lld, i_size %llu\n",
+               inode->i_ino, count, *ppos, inode->i_size);
 
         /* turn off the kernel's read-ahead */
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
@@ -768,8 +770,8 @@ static ssize_t ll_file_write(struct file *file, const char *buf, size_t count,
         struct lustre_handle lockh = { 0 };
         ldlm_policy_data_t policy;
         loff_t maxbytes = ll_file_maxbytes(inode);
-        int rc;
         ssize_t retval;
+        int rc;
         ENTRY;
         CDEBUG(D_VFSTRACE, "VFS Op:inode=%lu/%u(%p),size="LPSZ",offset=%Ld\n",
                inode->i_ino, inode->i_generation, inode, count, *ppos);
@@ -848,26 +850,19 @@ static int ll_lov_recreate_obj(struct inode *inode, struct file *file,
                 RETURN(-EFAULT);
         }
         oa = obdo_alloc();
-        if (oa == NULL) {
+        if (oa == NULL)
                 RETURN(-ENOMEM);
-        }
 
         down(&lli->lli_open_sem);
         lsm = lli->lli_smd;
-        if (lsm == NULL) {
-                up(&lli->lli_open_sem);
-                obdo_free(oa);
-                RETURN (-ENOENT);
-        }
+        if (lsm == NULL)
+                GOTO(out, rc = -ENOENT);
         lsm_size = sizeof(*lsm) + (sizeof(struct lov_oinfo) *
                    (lsm->lsm_stripe_count));
 
         OBD_ALLOC(lsm2, lsm_size);
-        if (lsm2 == NULL) {
-                up(&lli->lli_open_sem);
-                obdo_free(oa);
-                RETURN(-ENOMEM);
-        }
+        if (lsm2 == NULL)
+                GOTO(out, rc = -ENOMEM);
 
         oa->o_id = ucreatp.lrc_id;
         oa->o_nlink = ucreatp.lrc_ost_idx;
@@ -880,10 +875,12 @@ static int ll_lov_recreate_obj(struct inode *inode, struct file *file,
         memcpy(lsm2, lsm, lsm_size);
         rc = obd_create(exp, oa, &lsm2, &oti);
 
-        up(&lli->lli_open_sem);
         OBD_FREE(lsm2, lsm_size);
+        GOTO(out, rc);
+out:
+        up(&lli->lli_open_sem);
         obdo_free(oa);
-        RETURN (rc);
+        return rc;
 }
 
 static int ll_lov_setstripe_ea_info(struct inode *inode, struct file *file,
@@ -1072,9 +1069,10 @@ loff_t ll_file_seek(struct file *file, loff_t offset, int origin)
         struct lustre_handle lockh = {0};
         loff_t retval;
         ENTRY;
-        CDEBUG(D_VFSTRACE, "VFS Op:inode=%lu/%u(%p),to=%llu\n", inode->i_ino,
-               inode->i_generation, inode,
-               offset + ((origin==2) ? inode->i_size : file->f_pos));
+        CDEBUG(D_VFSTRACE, "VFS Op:inode=%lu/%u(%p),to=%llu(%s)\n",
+               inode->i_ino, inode->i_generation, inode,
+               offset + ((origin==2) ? inode->i_size : file->f_pos),
+               origin == 2 ? "SEEK_END": origin == 1 ? "SEEK_CUR": "SEEK_SET");
 
         lprocfs_counter_incr(ll_i2sbi(inode)->ll_stats, LPROC_LL_LLSEEK);
         if (origin == 2) { /* SEEK_END */
index 2ef66ad..c4b3f87 100644 (file)
 #ifndef LLITE_INTERNAL_H
 #define LLITE_INTERNAL_H
 
+/* default to about 40meg of readahead on a given system.  That much tied
+ * up in 512k readahead requests serviced at 40ms each is about 1GB/s. */
+#define SBI_DEFAULT_RA_MAX ((40 << 20) >> PAGE_CACHE_SHIFT)
+enum ra_stat {
+        RA_STAT_HIT = 0,
+        RA_STAT_MISS,
+        RA_STAT_DISTANT_READPAGE,
+        RA_STAT_MISS_IN_WINDOW,
+        RA_STAT_FAILED_MATCH,
+        RA_STAT_DISCARDED,
+        RA_STAT_ZERO_LEN,
+        RA_STAT_ZERO_WINDOW,
+        RA_STAT_EOF,
+        RA_STAT_MAX_IN_FLIGHT,
+        _NR_RA_STAT,
+};
+
+struct ll_ra_info {
+        unsigned long             ra_cur_pages;
+        unsigned long             ra_max_pages;
+        unsigned long             ra_stats[_NR_RA_STAT];
+};
+
 struct ll_sb_info {
+        /* this protects pglist and ra_info.  It isn't safe to
+         * grab from interrupt contexts */
+        spinlock_t                ll_lock;
         struct obd_uuid           ll_sb_uuid;
-//        struct lustre_handle      ll_mdc_conn;
         struct obd_export        *ll_mdc_exp;
         struct obd_export        *ll_osc_exp;
         struct proc_dir_entry*    ll_proc_root;
         obd_id                    ll_rootino; /* number of root inode */
 
-        struct obd_uuid           ll_mds_uuid;
-        struct obd_uuid           ll_mds_peer_uuid;
         struct lustre_mount_data *ll_lmd;
         char                     *ll_instance;
 
         int                       ll_flags;
-        wait_queue_head_t         ll_commitcbd_waitq;
-        wait_queue_head_t         ll_commitcbd_ctl_waitq;
-        int                       ll_commitcbd_flags;
-        struct task_struct       *ll_commitcbd_thread;
-        time_t                    ll_commitcbd_waketime;
-        time_t                    ll_commitcbd_timeout;
-        spinlock_t                ll_commitcbd_lock;
         struct list_head          ll_conn_chain; /* per-conn chain of SBs */
 
         struct hlist_head         ll_orphan_dentry_list; /*please don't ask -p*/
@@ -38,14 +54,18 @@ struct ll_sb_info {
 
         struct lprocfs_stats     *ll_stats; /* lprocfs stats counter */
 
-        spinlock_t                ll_pglist_lock;
         unsigned long             ll_pglist_gen;
         struct list_head          ll_pglist;
+
+        struct ll_ra_info         ll_ra_info;
 };
 
 struct ll_readahead_state {
         spinlock_t      ras_lock;
-        unsigned long   ras_last, ras_window, ras_next_index;
+        unsigned long   ras_last_readpage, ras_consecutive;
+        unsigned long   ras_window_start, ras_window_len;
+        unsigned long   ras_next_readahead;
+
 };
 
 extern kmem_cache_t *ll_file_data_slab;
@@ -110,8 +130,9 @@ struct ll_async_page {
         struct page     *llap_page;
         struct list_head llap_pending_write;
          /* only trust these if the page lock is providing exclusion */
-        int              llap_write_queued:1,
-                         llap_defer_uptodate:1;
+        unsigned         llap_write_queued:1,
+                         llap_defer_uptodate:1,
+                         llap_ra_used:1;
         struct list_head llap_proc_item;
 };
 
@@ -147,13 +168,12 @@ int ll_commit_write(struct file *, struct page *, unsigned from, unsigned to);
 void ll_inode_fill_obdo(struct inode *inode, int cmd, struct obdo *oa);
 void ll_ap_completion(void *data, int cmd, struct obdo *oa, int rc);
 void ll_removepage(struct page *page);
-int ll_sync_page(struct page *page);
 int ll_readpage(struct file *file, struct page *page);
 struct ll_async_page *llap_from_cookie(void *cookie);
 struct ll_async_page *llap_from_page(struct page *page);
 struct ll_async_page *llap_cast_private(struct page *page);
 void ll_readahead_init(struct inode *inode, struct ll_readahead_state *ras);
-
+void ll_ra_accounting(struct page *page, struct address_space *mapping);
 void ll_truncate(struct inode *inode);
 
 /* llite/file.c */
@@ -248,9 +268,6 @@ void ll_queue_done_writing(struct inode *inode);
 void ll_close_thread_shutdown(struct ll_close_queue *lcq);
 int ll_close_thread_start(struct ll_close_queue **lcq_ret);
 
-/* generic */
-#define LL_SUPER_MAGIC 0x0BD00BD0
-
 #define LL_SBI_NOLCK            0x1
 #define LL_SBI_READAHEAD        0x2
 
index 13a2f9b..901985a 100644 (file)
@@ -53,9 +53,10 @@ struct ll_sb_info *lustre_init_sbi(struct super_block *sb)
         if (!sbi)
                 RETURN(NULL);
 
-        spin_lock_init(&sbi->ll_pglist_lock);
+        spin_lock_init(&sbi->ll_lock);
         INIT_LIST_HEAD(&sbi->ll_pglist);
         sbi->ll_pglist_gen = 0;
+        sbi->ll_ra_info.ra_max_pages = SBI_DEFAULT_RA_MAX;
         INIT_LIST_HEAD(&sbi->ll_conn_chain);
         INIT_HLIST_HEAD(&sbi->ll_orphan_dentry_list);
         ll_s2sbi(sb) = sbi;
index 93638fd..1bbe9c7 100644 (file)
@@ -115,7 +115,7 @@ static struct dentry *ll_iget_for_nfs(struct super_block *sb, unsigned long ino,
                 result = list_entry(lp,struct dentry, d_alias);
                 if (!(result->d_flags & DCACHE_DISCONNECTED)) {
                         dget_locked(result);
-                        result->d_vfs_flags |= DCACHE_REFERENCED;
+                        ll_set_dflags(result, DCACHE_REFERENCED);
                         spin_unlock(&dcache_lock);
                         iput(inode);
                         return result;
index e9a3e39..41c3ea5 100644 (file)
@@ -32,6 +32,7 @@
 /* /proc/lustre/llite mount point registration */
 struct proc_dir_entry *proc_lustre_fs_root;
 struct file_operations llite_dump_pgcache_fops;
+struct file_operations ll_ra_stats_fops;
 
 #ifndef LPROCFS
 int lprocfs_register_mountpoint(struct proc_dir_entry *parent,
@@ -203,7 +204,7 @@ static int ll_wr_read_ahead(struct file *file, const char *buffer,
         int readahead;
         ENTRY;
 
-        if (1 != sscanf(buffer, "%d", &readahead))
+        if (sscanf(buffer, "%d", &readahead) != 1)
                 RETURN(-EINVAL);        
 
         if (readahead)
@@ -214,6 +215,41 @@ static int ll_wr_read_ahead(struct file *file, const char *buffer,
         RETURN(count);
 }
 
+static int ll_rd_max_read_ahead_mb(char *page, char **start, off_t off, 
+                                   int count, int *eof, void *data)
+{
+        struct super_block *sb = data;
+        struct ll_sb_info *sbi = ll_s2sbi(sb);
+        unsigned val;
+
+        spin_lock(&sbi->ll_lock);
+        val = (sbi->ll_ra_info.ra_max_pages << PAGE_CACHE_SHIFT) >> 20;
+        spin_unlock(&sbi->ll_lock);
+
+        return snprintf(page, count, "%u\n", val);
+}
+
+static int ll_wr_max_read_ahead_mb(struct file *file, const char *buffer,
+                                   unsigned long count, void *data)
+{
+        struct super_block *sb = data;
+        struct ll_sb_info *sbi = ll_s2sbi(sb);
+        int val, rc;
+
+        rc = lprocfs_write_helper(buffer, count, &val);
+        if (rc)
+                return rc;
+
+        if (val < 0 || val > (num_physpages << PAGE_SHIFT) >> 20)
+                return -ERANGE;
+
+        spin_lock(&sbi->ll_lock);
+        sbi->ll_ra_info.ra_max_pages = (val << 20) >> PAGE_CACHE_SHIFT;
+        spin_unlock(&sbi->ll_lock);
+
+        return count;
+}
+
 static struct lprocfs_vars lprocfs_obd_vars[] = {
         { "uuid",         ll_rd_sb_uuid,          0, 0 },
         //{ "mntpt_path",   ll_rd_path,             0, 0 },
@@ -226,6 +262,8 @@ static struct lprocfs_vars lprocfs_obd_vars[] = {
         { "filesfree",    ll_rd_filesfree,        0, 0 },
         //{ "filegroups",   lprocfs_rd_filegroups,  0, 0 },
         { "read_ahead",   ll_rd_read_ahead, ll_wr_read_ahead, 0 },
+        { "max_read_ahead_mb",   ll_rd_max_read_ahead_mb, 
+                                 ll_wr_max_read_ahead_mb, 0 },
         { 0 }
 };
 
@@ -318,6 +356,12 @@ int lprocfs_register_mountpoint(struct proc_dir_entry *parent,
         entry->proc_fops = &llite_dump_pgcache_fops;
         entry->data = sbi;
 
+        entry = create_proc_entry("read_ahead_stats", 0444, sbi->ll_proc_root);
+        if (entry == NULL)
+                GOTO(out, err = -ENOMEM);
+        entry->proc_fops = &ll_ra_stats_fops;
+        entry->data = sbi;
+
         svc_stats = lprocfs_alloc_stats(LPROC_LL_FILE_OPCODES);
         if (svc_stats == NULL) {
                 err = -ENOMEM;
@@ -455,7 +499,7 @@ static int llite_dump_pgcache_seq_show(struct seq_file *seq, void *v)
                 return 0;
         }
 
-        spin_lock(&sbi->ll_pglist_lock);
+        spin_lock(&sbi->ll_lock);
 
         llap = llite_pglist_next_llap(sbi, &dummy_llap->llap_proc_item);
         if (llap != NULL)  {
@@ -478,7 +522,7 @@ static int llite_dump_pgcache_seq_show(struct seq_file *seq, void *v)
                         seq_puts(seq, "]\n");
         }
 
-        spin_unlock(&sbi->ll_pglist_lock);
+        spin_unlock(&sbi->ll_lock);
 
         return 0;
 }
@@ -508,14 +552,14 @@ static void *llite_dump_pgcache_seq_next(struct seq_file *seq, void *v,
         /* we've just displayed the llap that is after us in the list.
          * we advance to a position beyond it, returning null if there
          * isn't another llap in the list beyond that new position. */
-        spin_lock(&sbi->ll_pglist_lock);
+        spin_lock(&sbi->ll_lock);
         llap = llite_pglist_next_llap(sbi, &dummy_llap->llap_proc_item);
         list_del_init(&dummy_llap->llap_proc_item);
         if (llap) {
                 list_add(&dummy_llap->llap_proc_item, &llap->llap_proc_item);
                 llap = llite_pglist_next_llap(sbi, &dummy_llap->llap_proc_item);
         }
-        spin_unlock(&sbi->ll_pglist_lock);
+        spin_unlock(&sbi->ll_lock);
 
         ++*pos;
         if (llap == NULL) {
@@ -570,9 +614,9 @@ static int llite_dump_pgcache_seq_open(struct inode *inode, struct file *file)
         seq = file->private_data;
         seq->private = llap;
 
-        spin_lock(&sbi->ll_pglist_lock);
+        spin_lock(&sbi->ll_lock);
         list_add(&llap->llap_proc_item, &sbi->ll_pglist);
-        spin_unlock(&sbi->ll_pglist_lock);
+        spin_unlock(&sbi->ll_lock);
 
         return 0;
 }
@@ -584,10 +628,10 @@ static int llite_dump_pgcache_seq_release(struct inode *inode,
         struct ll_async_page *llap = seq->private;
         struct ll_sb_info *sbi = llap->llap_cookie;
 
-        spin_lock(&sbi->ll_pglist_lock);
+        spin_lock(&sbi->ll_lock);
         if (!list_empty(&llap->llap_proc_item))
                 list_del_init(&llap->llap_proc_item);
-        spin_unlock(&sbi->ll_pglist_lock);
+        spin_unlock(&sbi->ll_lock);
         OBD_FREE(llap, sizeof(*llap));
 
         return seq_release(inode, file);
@@ -600,4 +644,99 @@ struct file_operations llite_dump_pgcache_fops = {
         .release = llite_dump_pgcache_seq_release,
 };
 
+static int ll_ra_stats_seq_show(struct seq_file *seq, void *v)
+{
+        struct timeval now;
+        struct ll_sb_info *sbi = seq->private;
+        struct ll_ra_info *ra = &sbi->ll_ra_info;
+        int i;
+        static char *ra_stat_strings[] = {
+                [RA_STAT_HIT] = "hits",
+                [RA_STAT_MISS] = "misses",
+                [RA_STAT_DISTANT_READPAGE] = "readpage not consecutive",
+                [RA_STAT_MISS_IN_WINDOW] = "miss inside window",
+                [RA_STAT_FAILED_MATCH] = "failed lock match",
+                [RA_STAT_DISCARDED] = "read but discarded",
+                [RA_STAT_ZERO_LEN] = "zero length file",
+                [RA_STAT_ZERO_WINDOW] = "zero size window",
+                [RA_STAT_EOF] = "read-ahead to EOF",
+                [RA_STAT_MAX_IN_FLIGHT] = "hit max r-a issue",
+        };
+
+        do_gettimeofday(&now);
+
+        spin_lock(&sbi->ll_lock);
+
+        seq_printf(seq, "snapshot_time:         %lu:%lu (secs:usecs)\n",
+                   now.tv_sec, now.tv_usec);
+        seq_printf(seq, "pending issued pages:           %lu\n",
+                   ra->ra_cur_pages);
+
+        for(i = 0; i < _NR_RA_STAT; i++)
+                seq_printf(seq, "%-25s %lu\n", ra_stat_strings[i], 
+                           ra->ra_stats[i]);
+
+        spin_unlock(&sbi->ll_lock);
+
+        return 0;
+}
+
+static void *ll_ra_stats_seq_start(struct seq_file *p, loff_t *pos)
+{
+        if (*pos == 0)
+                return (void *)1;
+        return NULL;
+}
+static void *ll_ra_stats_seq_next(struct seq_file *p, void *v, loff_t *pos)
+{
+        ++*pos;
+        return NULL;
+}
+static void ll_ra_stats_seq_stop(struct seq_file *p, void *v)
+{
+}
+struct seq_operations ll_ra_stats_seq_sops = {
+        .start = ll_ra_stats_seq_start,
+        .stop = ll_ra_stats_seq_stop,
+        .next = ll_ra_stats_seq_next,
+        .show = ll_ra_stats_seq_show,
+};
+
+static int ll_ra_stats_seq_open(struct inode *inode, struct file *file)
+{
+        struct proc_dir_entry *dp = PDE(inode);
+        struct seq_file *seq;
+        int rc;
+
+        rc = seq_open(file, &ll_ra_stats_seq_sops);
+        if (rc)
+                return rc;
+        seq = file->private_data;
+        seq->private = dp->data;
+        return 0;
+}
+
+static ssize_t ll_ra_stats_seq_write(struct file *file, const char *buf,
+                                       size_t len, loff_t *off)
+{
+        struct seq_file *seq = file->private_data;
+        struct ll_sb_info *sbi = seq->private;
+        struct ll_ra_info *ra = &sbi->ll_ra_info;
+
+        spin_lock(&sbi->ll_lock);
+        memset(ra->ra_stats, 0, sizeof(ra->ra_stats));
+        spin_unlock(&sbi->ll_lock);
+
+        return len;
+}
+
+struct file_operations ll_ra_stats_fops = {
+        .owner   = THIS_MODULE,
+        .open    = ll_ra_stats_seq_open,
+        .read    = seq_read,
+        .write   = ll_ra_stats_seq_write,
+        .llseek  = seq_lseek,
+        .release = seq_release,
+};
+
 #endif /* LPROCFS */
index 4bd90e2..e0bfe21 100644 (file)
@@ -168,8 +168,8 @@ int ll_mdc_blocking_ast(struct ldlm_lock *lock, struct ldlm_lock_desc *desc,
 
                 if (lock->l_resource->lr_name.name[0] != inode->i_ino ||
                     lock->l_resource->lr_name.name[1] != inode->i_generation) {
-                        LDLM_ERROR(lock, "data mismatch with ino %lu/%u",
-                                   inode->i_ino, inode->i_generation);
+                        LDLM_ERROR(lock, "data mismatch with ino %lu/%u (%p)",
+                                   inode->i_ino, inode->i_generation, inode);
                 }
                 if (S_ISDIR(inode->i_mode)) {
                         CDEBUG(D_INODE, "invalidating inode %lu\n",
index d94ad24..4e09d2f 100644 (file)
@@ -228,8 +228,7 @@ static int ll_ap_make_ready(void *data, int cmd)
 
         page = llap->llap_page;
 
-        if (cmd == OBD_BRW_READ)
-                RETURN(0);
+        LASSERT(cmd != OBD_BRW_READ);
 
         /* we're trying to write, but the page is locked.. come back later */
         if (TryLockPage(page))
@@ -249,15 +248,15 @@ static int ll_ap_make_ready(void *data, int cmd)
         RETURN(0);
 }
 
-/* We have two reasons for giving llite the opportunity to change the 
+/* We have two reasons for giving llite the opportunity to change the
  * write length of a given queued page as it builds the RPC containing
- * the page: 
+ * the page:
  *
  * 1) Further extending writes may have landed in the page cache
  *    since a partial write first queued this page requiring us
  *    to write more from the page cache.
  * 2) We might have raced with truncate and want to avoid performing
- *    write RPCs that are just going to be thrown away by the 
+ *    write RPCs that are just going to be thrown away by the
  *    truncate's punch on the storage targets.
  *
  * The kms serves these purposes as it is set at both truncate and extending
@@ -380,13 +379,13 @@ struct ll_async_page *llap_from_page(struct page *page)
         CDEBUG(D_CACHE, "llap %p page %p cookie %p obj off "LPU64"\n", llap,
                page, llap->llap_cookie, (obd_off)page->index << PAGE_SHIFT);
         /* also zeroing the PRIVBITS low order bitflags */
-        page->private = (unsigned long)llap;
+        __set_page_ll_data(page, llap);
         llap->llap_page = page;
 
-        spin_lock(&sbi->ll_pglist_lock);
+        spin_lock(&sbi->ll_lock);
         sbi->ll_pglist_gen++;
         list_add_tail(&llap->llap_proc_item, &sbi->ll_pglist);
-        spin_unlock(&sbi->ll_pglist_lock);
+        spin_unlock(&sbi->ll_lock);
 
         RETURN(llap);
 }
@@ -483,6 +482,30 @@ out:
         RETURN(rc);
 }
 
+static unsigned long ll_ra_count_get(struct ll_sb_info *sbi, unsigned long len)
+{
+        struct ll_ra_info *ra = &sbi->ll_ra_info;
+        unsigned long ret;
+        ENTRY;
+
+        spin_lock(&sbi->ll_lock);
+        ret = min(ra->ra_max_pages - ra->ra_cur_pages, len);
+        ra->ra_cur_pages += ret;
+        spin_unlock(&sbi->ll_lock);
+
+        RETURN(ret);
+}
+
+static void ll_ra_count_put(struct ll_sb_info *sbi, unsigned long len)
+{
+        struct ll_ra_info *ra = &sbi->ll_ra_info;
+        spin_lock(&sbi->ll_lock);
+        LASSERTF(ra->ra_cur_pages >= len, "r_c_p %lu len %lu\n",
+                 ra->ra_cur_pages, len);
+        ra->ra_cur_pages -= len;
+        spin_unlock(&sbi->ll_lock);
+}
+
 /* called for each page in a completed rpc.*/
 void ll_ap_completion(void *data, int cmd, struct obdo *oa, int rc)
 {
@@ -501,6 +524,9 @@ void ll_ap_completion(void *data, int cmd, struct obdo *oa, int rc)
 
         LL_CDEBUG_PAGE(D_PAGE, page, "completing cmd %d with %d\n", cmd, rc);
 
+        if (cmd == OBD_BRW_READ && llap->llap_defer_uptodate)
+                ll_ra_count_put(ll_i2sbi(page->mapping->host), 1);
+
         if (rc == 0)  {
                 if (cmd == OBD_BRW_READ) {
                         if (!llap->llap_defer_uptodate)
@@ -515,7 +541,6 @@ void ll_ap_completion(void *data, int cmd, struct obdo *oa, int rc)
                 SetPageError(page);
         }
 
-
         unlock_page(page);
 
         if (0 && cmd == OBD_BRW_WRITE) {
@@ -523,6 +548,9 @@ void ll_ap_completion(void *data, int cmd, struct obdo *oa, int rc)
                 ll_try_done_writing(page->mapping->host);
         }
 
+        if (PageWriteback(page)) {
+                end_page_writeback(page);
+        }
         page_cache_release(page);
         EXIT;
 }
@@ -574,13 +602,13 @@ void ll_removepage(struct page *page)
 
         /* this unconditional free is only safe because the page lock
          * is providing exclusivity to memory pressure/truncate/writeback..*/
-        page->private = 0;
+        __clear_page_ll_data(page);
 
-        spin_lock(&sbi->ll_pglist_lock);
+        spin_lock(&sbi->ll_lock);
         if (!list_empty(&llap->llap_proc_item))
                 list_del_init(&llap->llap_proc_item);
         sbi->ll_pglist_gen++;
-        spin_unlock(&sbi->ll_pglist_lock);
+        spin_unlock(&sbi->ll_lock);
         OBD_FREE(llap, sizeof(*llap));
         EXIT;
 }
@@ -613,9 +641,11 @@ static int ll_issue_page_read(struct obd_export *exp,
 
         page_cache_get(page);
         llap->llap_defer_uptodate = defer;
+        llap->llap_ra_used = 0;
         rc = obd_queue_group_io(exp, ll_i2info(page->mapping->host)->lli_smd,
                                 NULL, oig, llap->llap_cookie, OBD_BRW_READ, 0,
-                                PAGE_SIZE, 0, ASYNC_COUNT_STABLE);
+                                PAGE_SIZE, 0, ASYNC_COUNT_STABLE | ASYNC_READY
+                                              | ASYNC_URGENT);
         if (rc) {
                 LL_CDEBUG_PAGE(D_ERROR, page, "read queue failed: rc %d\n", rc);
                 page_cache_release(page);
@@ -623,171 +653,246 @@ static int ll_issue_page_read(struct obd_export *exp,
         RETURN(rc);
 }
 
-#define LL_RA_MIN(inode) ((unsigned long)PTLRPC_MAX_BRW_PAGES / 2)
-#define LL_RA_MAX(inode) ((ll_i2info(inode)->lli_smd->lsm_xfersize * 3) >> \
-                          PAGE_CACHE_SHIFT)
+static void ll_ra_stats_inc_unlocked(struct ll_ra_info *ra, enum ra_stat which)
+{
+        LASSERTF(which >= 0 && which < _NR_RA_STAT, "which: %u\n", which);
+        ra->ra_stats[which]++;
+}
+
+static void ll_ra_stats_inc(struct address_space *mapping, enum ra_stat which)
+{
+        struct ll_sb_info *sbi = ll_i2sbi(mapping->host);
+        struct ll_ra_info *ra = &ll_i2sbi(mapping->host)->ll_ra_info;
 
-static void ll_readahead(struct ll_readahead_state *ras,
-                         struct obd_export *exp, struct address_space *mapping,
-                         struct obd_io_group *oig)
+        spin_lock(&sbi->ll_lock);
+        ll_ra_stats_inc_unlocked(ra, which);
+        spin_unlock(&sbi->ll_lock);
+}
+
+void ll_ra_accounting(struct page *page, struct address_space *mapping)
 {
-        unsigned long i, start, end;
         struct ll_async_page *llap;
-        struct page *page;
-        int rc;
 
-        if (mapping->host->i_size == 0)
+        llap = llap_from_page(page);
+        if (IS_ERR(llap))
                 return;
 
-        spin_lock(&ras->ras_lock);
+        if (!llap->llap_defer_uptodate || llap->llap_ra_used)
+                return;
+
+        ll_ra_stats_inc(mapping, RA_STAT_DISCARDED);
+}
+
+#define RAS_CDEBUG(ras) \
+        CDEBUG(D_READA, "lrp %lu c %lu ws %lu wl %lu nra %lu\n",        \
+               ras->ras_last_readpage, ras->ras_consecutive,            \
+               ras->ras_window_start, ras->ras_window_len,              \
+               ras->ras_next_readahead);
+
+static int index_in_window(unsigned long index, unsigned long point,
+                           unsigned long before, unsigned long after)
+{
+        unsigned long start = point - before, end = point + after;
+
+        if (start > point)
+               start = 0;
+        if (end < point)
+               end = ~0;
 
-        /* make sure to issue a window's worth of read-ahead pages */
-        end = ras->ras_last;
-        start = end - ras->ras_window;
-        if (start > end)
-                start = 0;
+        return start <= index && index <= end;
+}
 
-        /* but don't iterate over pages that we've already issued.  this
-         * will set start to end + 1 if we've already read-ahead up to
-         * ras_last sothe for() won't be entered */
-        if (ras->ras_next_index > start)
-                start = ras->ras_next_index;
-        if (end != ~0UL)
-                ras->ras_next_index = end + 1;
+static int ll_readahead(struct ll_readahead_state *ras,
+                         struct obd_export *exp, struct address_space *mapping,
+                         struct obd_io_group *oig, int flags)
+{
+        unsigned long i, start = 0, end = 0, reserved;
+        struct ll_async_page *llap;
+        struct page *page;
+        int rc, ret = 0, match_failed = 0;
+        __u64 kms;
+        ENTRY;
 
-        CDEBUG(D_READA, "ni %lu last %lu win %lu: reading from %lu to %lu\n",
-               ras->ras_next_index, ras->ras_last, ras->ras_window,
-               start, end);
+        kms = lov_merge_size(ll_i2info(mapping->host)->lli_smd, 1);
+        if (kms == 0) {
+                ll_ra_stats_inc(mapping, RA_STAT_ZERO_LEN);
+                RETURN(0);
+        }
 
+        spin_lock(&ras->ras_lock);
+        /* reserve a part of the read-ahead window that we'll be issuing */
+        if (ras->ras_window_len) {
+                start = ras->ras_next_readahead;
+                end = ras->ras_window_start + ras->ras_window_len - 1;
+                end = min(end, (unsigned long)(kms >> PAGE_CACHE_SHIFT));
+                ras->ras_next_readahead = max(end, end + 1);
+
+                RAS_CDEBUG(ras);
+        }
         spin_unlock(&ras->ras_lock);
 
-        /* clamp to filesize */
-        i = (mapping->host->i_size - 1) >> PAGE_CACHE_SHIFT;
-        end = min(end, i);
+        if (end == 0) {
+                ll_ra_stats_inc(mapping, RA_STAT_ZERO_WINDOW);
+                RETURN(0);
+        }
+
+        reserved = ll_ra_count_get(ll_i2sbi(mapping->host), end - start + 1);
+        if (reserved < end - start + 1)
+                ll_ra_stats_inc(mapping, RA_STAT_MAX_IN_FLIGHT);
 
-        for (i = start; i <= end; i++) {
-                /* grab_cache_page_nowait returns null if this races with
-                 * truncating the page (page->mapping == NULL) */
+        for (i = start; reserved > 0 && !match_failed && i <= end; i++) {
+                /* skip locked pages from previous readpage calls */
                 page = grab_cache_page_nowait(mapping, i);
-                if (page == NULL)
-                       break;
+                if (page == NULL) {
+                        CDEBUG(D_READA, "g_c_p_n failed\n");
+                        continue;
+                }
+
+                /* we do this first so that we can see the page in the /proc
+                 * accounting */
+                llap = llap_from_page(page);
+                if (IS_ERR(llap) || llap->llap_defer_uptodate)
+                        goto next_page;
 
-                /* the book-keeping above promises that we've tried
-                 * all the indices from start to end, so we don't
-                 * stop if anyone returns an error. This may not be good. */
+                /* skip completed pages */
                 if (Page_Uptodate(page))
                         goto next_page;
 
+                /* bail when we hit the end of the lock. */
                 if ((rc = ll_page_matches(page)) <= 0) {
                         LL_CDEBUG_PAGE(D_READA | D_PAGE, page,
                                        "lock match failed: rc %d\n", rc);
+                        ll_ra_stats_inc(mapping, RA_STAT_FAILED_MATCH);
+                        match_failed = 1;
                         goto next_page;
                 }
 
-                llap = llap_from_page(page);
-                if (IS_ERR(llap) || llap->llap_defer_uptodate)
-                        goto next_page;
-
                 rc = ll_issue_page_read(exp, llap, oig, 1);
-                if (rc == 0)
-                        LL_CDEBUG_PAGE(D_PAGE, page, "started read-ahead\n");
+                if (rc == 0) {
+                        reserved--;
+                        ret++;
+                        LL_CDEBUG_PAGE(D_READA| D_PAGE, page,
+                                       "started read-ahead\n");
+                }
                 if (rc) {
         next_page:
-                        LL_CDEBUG_PAGE(D_PAGE, page, "skipping read-ahead\n");
+                        LL_CDEBUG_PAGE(D_READA | D_PAGE, page,
+                                       "skipping read-ahead\n");
 
                         unlock_page(page);
                 }
                 page_cache_release(page);
         }
+
+        LASSERTF(reserved >= 0, "reserved %lu\n", reserved);
+        if (reserved != 0)
+                ll_ra_count_put(ll_i2sbi(mapping->host), reserved);
+        if (i == end + 1 && end == (kms >> PAGE_CACHE_SHIFT))
+                ll_ra_stats_inc(mapping, RA_STAT_EOF);
+
+        /* if we didn't get to the end of the region we reserved from
+         * the ras we need to go back and update the ras so that the
+         * next read-ahead tries from where we left off.  we only do so
+         * if the region we failed to issue read-ahead on is still ahead
+         * of the app and behind the next index to start read-ahead from */
+        if (i != end + 1) {
+                spin_lock(&ras->ras_lock);
+                if (i < ras->ras_next_readahead &&
+                    index_in_window(i, ras->ras_window_start, 0,
+                                    ras->ras_window_len)) {
+                        ras->ras_next_readahead = i;
+                        RAS_CDEBUG(ras);
+                }
+                spin_unlock(&ras->ras_lock);
+        }
+
+        RETURN(ret);
+}
+
+static void ras_set_start(struct ll_readahead_state *ras, unsigned long index)
+{
+        ras->ras_window_start = index & (~(PTLRPC_MAX_BRW_PAGES - 1));
 }
 
 /* called with the ras_lock held or from places where it doesn't matter */
-static void ll_readahead_set(struct inode *inode,
-                             struct ll_readahead_state *ras,
-                             unsigned long index)
+static void ras_reset(struct ll_readahead_state *ras, unsigned long index)
 {
-        ras->ras_next_index = index;
-        if (ras->ras_next_index != ~0UL)
-                ras->ras_next_index++;
-        ras->ras_window = LL_RA_MIN(inode);
-        ras->ras_last = ras->ras_next_index + ras->ras_window;
-        if (ras->ras_last < ras->ras_next_index)
-                ras->ras_last = ~0UL;
-        CDEBUG(D_READA, "ni %lu last %lu win %lu: set %lu\n",
-               ras->ras_next_index, ras->ras_last, ras->ras_window,
-               index);
+        ras->ras_last_readpage = index;
+        ras->ras_consecutive = 1;
+        ras->ras_window_len = 0;
+        ras_set_start(ras, index);
+        ras->ras_next_readahead = ras->ras_window_start;
+
+        RAS_CDEBUG(ras);
 }
 
 void ll_readahead_init(struct inode *inode, struct ll_readahead_state *ras)
 {
         spin_lock_init(&ras->ras_lock);
-        ll_readahead_set(inode, ras, 0);
+        ras_reset(ras, 0);
 }
 
-static void ll_readahead_update(struct inode *inode,
-                                struct ll_readahead_state *ras,
-                                unsigned long index, int hit)
+static void ras_update(struct ll_sb_info *sbi, struct ll_readahead_state *ras,
+                       unsigned long index, unsigned hit)
 {
-        unsigned long issued_start, new_last;
+        struct ll_ra_info *ra = &sbi->ll_ra_info;
+        int zero = 0;
+        ENTRY;
 
+        spin_lock(&sbi->ll_lock);
         spin_lock(&ras->ras_lock);
 
-        /* we're interested in noticing the index's relation to the
-         * previously issued read-ahead pages */
-        issued_start = ras->ras_next_index - ras->ras_window - 1;
-        if (issued_start > ras->ras_next_index)
-                issued_start = 0;
-
-        CDEBUG(D_READA, "ni %lu last %lu win %lu: %s ind %lu start %lu\n",
-               ras->ras_next_index, ras->ras_last, ras->ras_window,
-               hit ? "hit" : "miss", index, issued_start);
-        if (!hit &&
-            index == ras->ras_next_index && index == ras->ras_last + 1) {
-                /* special case the kernel's read-ahead running into the
-                 * page just beyond our read-ahead window as an extension
-                 * of our read-ahead.  sigh.  wishing it was easier to
-                 * turn off 2.4's read-ahead. */
-                ras->ras_window = min(LL_RA_MAX(inode), ras->ras_window + 1);
-                if (index != ~0UL)
-                        ras->ras_next_index = index + 1;
-                ras->ras_last = index;
-        } else if (!hit &&
-                   (index > issued_start || ras->ras_next_index >= index)) {
-                /* deal with a miss way out of the window.  we interpret
-                 * this as a seek and restart the window */
-                ll_readahead_set(inode, ras, index);
-
-        } else if (!hit &&
-                   issued_start <= index && index < ras->ras_next_index) {
-                /* a miss inside the window?  surely its memory pressure
-                 * evicting our read pages before the app can see them.
-                 * we shrink the window aggressively */
-                unsigned long old_window = ras->ras_window;
-
-                ras->ras_window = max(ras->ras_window / 2, LL_RA_MIN(inode));
-                ras->ras_last -= old_window - ras->ras_window;
-                if (ras->ras_next_index > ras->ras_last)
-                        ras->ras_next_index = ras->ras_last + 1;
-                CDEBUG(D_READA, "ni %lu last %lu win %lu: miss inside\n",
-                       ras->ras_next_index, ras->ras_last, ras->ras_window);
-
-        } else if (hit &&
-                   issued_start <= index && index < ras->ras_next_index) {
-                /* a hit inside the window.  grow the window by twice the
-                 * number of pages that are satisified within the window.  */
-                ras->ras_window = min(LL_RA_MAX(inode), ras->ras_window + 2);
-
-                /* we want the next readahead pass to issue a windows worth
-                 * beyond where the app currently is */
-                new_last = index + ras->ras_window;
-                if (new_last > ras->ras_last)
-                        ras->ras_last = new_last;
-
-                CDEBUG(D_READA, "ni %lu last %lu win %lu: extended window/last\n",
-                       ras->ras_next_index, ras->ras_last, ras->ras_window);
+        ll_ra_stats_inc_unlocked(ra, hit ? RA_STAT_HIT : RA_STAT_MISS);
+
+        /* reset the read-ahead window in two cases.  First when the app seeks
+         * or reads to some other part of the file.  Secondly if we get a
+         * read-ahead miss that we think we've previously issued.  This can
+         * be a symptom of there being so many read-ahead pages that the VM is
+         * reclaiming it before we get to it. */
+        if (!index_in_window(index, ras->ras_last_readpage, 8, 8)) {
+                zero = 1;
+                ll_ra_stats_inc_unlocked(ra, RA_STAT_DISTANT_READPAGE);
+        } else if (!hit && ras->ras_window_len &&
+                   index < ras->ras_next_readahead &&
+                   index_in_window(index, ras->ras_window_start, 0,
+                                   ras->ras_window_len)) {
+                zero = 1;
+                ll_ra_stats_inc_unlocked(ra, RA_STAT_MISS_IN_WINDOW);
+        }
+
+        if (zero) {
+                ras_reset(ras, index);
+                GOTO(out_unlock, 0);
+        }
+
+        ras->ras_last_readpage = index;
+        ras->ras_consecutive++;
+        ras_set_start(ras, index);
+        ras->ras_next_readahead = max(ras->ras_window_start,
+                                      ras->ras_next_readahead);
+
+        /* wait for a few pages to arrive before issuing readahead to avoid
+         * the worst overutilization */
+        if (ras->ras_consecutive == 3) {
+                ras->ras_window_len = PTLRPC_MAX_BRW_PAGES;
+                GOTO(out_unlock, 0);
         }
 
+        /* we need to increase the window sometimes.  we'll arbitrarily
+         * do it half-way through the pages in an rpc */
+        if ((index & (PTLRPC_MAX_BRW_PAGES - 1)) ==
+            (PTLRPC_MAX_BRW_PAGES >> 1)) {
+                ras->ras_window_len += PTLRPC_MAX_BRW_PAGES;
+                ras->ras_window_len = min(ras->ras_window_len,
+                                          ra->ra_max_pages);
+        }
+
+        EXIT;
+out_unlock:
+        RAS_CDEBUG(ras);
         spin_unlock(&ras->ras_lock);
+        spin_unlock(&sbi->ll_lock);
+        return;
 }
 
 /*
@@ -828,19 +933,23 @@ int ll_readpage(struct file *filp, struct page *page)
         if (IS_ERR(llap))
                 GOTO(out, rc = PTR_ERR(llap));
 
+        if (ll_i2sbi(inode)->ll_flags & LL_SBI_READAHEAD)
+                ras_update(ll_i2sbi(inode), &fd->fd_ras, page->index,
+                           llap->llap_defer_uptodate);
+
         if (llap->llap_defer_uptodate) {
-                ll_readahead_update(inode, &fd->fd_ras, page->index, 1);
-                ll_readahead(&fd->fd_ras, exp, page->mapping, oig);
-                obd_trigger_group_io(exp, ll_i2info(inode)->lli_smd, NULL,
-                                     oig);
+                llap->llap_ra_used = 1;
+                rc = ll_readahead(&fd->fd_ras, exp, page->mapping, oig,
+                                  fd->fd_flags);
+                if (rc > 0)
+                        obd_trigger_group_io(exp, ll_i2info(inode)->lli_smd,
+                                             NULL, oig);
                 LL_CDEBUG_PAGE(D_PAGE, page, "marking uptodate from defer\n");
                 SetPageUptodate(page);
                 unlock_page(page);
                 GOTO(out_oig, rc = 0);
         }
 
-        ll_readahead_update(inode, &fd->fd_ras, page->index, 0);
-
         rc = ll_page_matches(page);
         if (rc < 0) {
                 LL_CDEBUG_PAGE(D_ERROR, page, "lock match failed: rc %d\n", rc);
@@ -866,8 +975,9 @@ int ll_readpage(struct file *filp, struct page *page)
                 GOTO(out, rc);
 
         LL_CDEBUG_PAGE(D_PAGE, page, "queued readpage\n");
-        if ((ll_i2sbi(inode)->ll_flags & LL_SBI_READAHEAD))
-                ll_readahead(&fd->fd_ras, exp, page->mapping, oig);
+        if (ll_i2sbi(inode)->ll_flags & LL_SBI_READAHEAD)
+                ll_readahead(&fd->fd_ras, exp, page->mapping, oig,
+                             fd->fd_flags);
 
         rc = obd_trigger_group_io(exp, ll_i2info(inode)->lli_smd, NULL, oig);
 
@@ -879,38 +989,3 @@ out_oig:
                 oig_release(oig);
         RETURN(rc);
 }
-
-#if 0
-/* this is for read pages.  we issue them as ready but not urgent.  when
- * someone waits on them we fire them off, hopefully merged with adjacent
- * reads that were queued by read-ahead.  */
-int ll_sync_page(struct page *page)
-{
-        struct obd_export *exp;
-        struct ll_async_page *llap;
-        int rc;
-        ENTRY;
-
-        /* we're using a low bit flag to signify that a queued read should
-         * be issued once someone goes to lock it.  it is also cleared
-         * as the page is built into an RPC */
-        if (!test_and_clear_bit(LL_PRIVBITS_READ, &page->private))
-                RETURN(0);
-
-        /* careful to only deref page->mapping after checking the bit */
-        exp = ll_i2obdexp(page->mapping->host);
-        if (exp == NULL)
-                RETURN(-EINVAL);
-
-        llap = llap_from_page(page);
-        if (IS_ERR(llap))
-                RETURN(PTR_ERR(llap));
-
-        LL_CDEBUG_PAGE(D_PAGE, page, "setting ready|urgent\n");
-
-        rc = obd_set_async_flags(exp, ll_i2info(page->mapping->host)->lli_smd,
-                                 NULL, llap->llap_cookie,
-                                 ASYNC_READY|ASYNC_URGENT);
-        return rc;
-}
-#endif
index b9193e8..71964de 100644 (file)
@@ -91,9 +91,28 @@ static int ll_writepage_26(struct page *page, struct writeback_control *wbc)
 out:
         if (rc)
                 unlock_page(page);
+        else
+                set_page_writeback(page);
         RETURN(rc);
 }
 
+/* It is safe to not check anything in invalidatepage/releasepage below
+   because they are run with page locked and all our io is happening with
+   locked page too */
+static int ll_invalidatepage(struct page *page, unsigned long offset)
+{
+        if (PagePrivate(page))
+                ll_removepage(page);
+        return 1;
+}
+
+static int ll_releasepage(struct page *page, int gfp_mask)
+{
+        if (PagePrivate(page))
+                ll_removepage(page);
+        return 1;
+}
+
 struct address_space_operations ll_aops = {
         .readpage       = ll_readpage,
 //        .readpages      = ll_readpages,
@@ -104,6 +123,7 @@ struct address_space_operations ll_aops = {
         .sync_page      = NULL,
         .prepare_write  = ll_prepare_write,
         .commit_write   = ll_commit_write,
-        .removepage     = ll_removepage,
+        .invalidatepage = ll_invalidatepage,
+        .releasepage    = ll_releasepage,
         .bmap           = NULL
 };
index 45fe591..0b3ef4f 100644 (file)
@@ -34,6 +34,7 @@
 #include <linux/fs.h>
 #include <linux/lprocfs_status.h>
 #include "llite_internal.h"
+#include <lustre/lustre_user.h>
 
 extern struct address_space_operations ll_aops;
 extern struct address_space_operations ll_dir_aops;
index d46bd23..eea7e8f 100644 (file)
@@ -428,6 +428,8 @@ static int fsfilt_ext3_set_md(struct inode *inode, void *handle,
 {
         int rc, old_ea = 0;
 
+        LASSERT(down_trylock(&inode->i_sem) != 0);
+
 #ifdef INLINE_EA  /* can go away before 1.0 - just for testing bug 2097 now */
         /* Nasty hack city - store stripe MD data in the block pointers if
          * it will fit, because putting it in an EA currently kills the MDS
@@ -917,7 +919,6 @@ static int __init fsfilt_ext3_init(void)
 {
         int rc;
 
-        //rc = ext3_xattr_register();
         fcb_cache = kmem_cache_create("fsfilt_ext3_fcb",
                                       sizeof(struct fsfilt_cb_data), 0,
                                       0, NULL, NULL);
@@ -940,8 +941,6 @@ static void __exit fsfilt_ext3_exit(void)
         LASSERTF(kmem_cache_destroy(fcb_cache) == 0,
                  "can't free fsfilt callback cache: count %d\n",
                  atomic_read(&fcb_cache_count));
-
-        //rc = ext3_xattr_unregister();
 }
 
 module_init(fsfilt_ext3_init);
index a845347..7de0ca5 100644 (file)
@@ -156,7 +156,7 @@ int mdc_create(struct obd_export *exp, struct mdc_op_data *op_data,
 int mdc_unlink(struct obd_export *exp, struct mdc_op_data *data,
                struct ptlrpc_request **request)
 {
-        struct obd_device *obddev = class_exp2obd(exp);
+        struct obd_device *obd = class_exp2obd(exp);
         struct ptlrpc_request *req = *request;
         int rc, size[2] = {sizeof(struct mds_rec_unlink), data->namelen + 1};
         ENTRY;
@@ -169,13 +169,13 @@ int mdc_unlink(struct obd_export *exp, struct mdc_op_data *data,
         *request = req;
 
         size[0] = sizeof(struct mds_body);
-        size[1] = obddev->u.cli.cl_max_mds_easize;
-        size[2] = obddev->u.cli.cl_max_mds_cookiesize;
+        size[1] = obd->u.cli.cl_max_mds_easize;
+        size[2] = obd->u.cli.cl_max_mds_cookiesize;
         req->rq_replen = lustre_msg_size(3, size);
 
         mdc_unlink_pack(req, 0, data);
 
-        rc = mdc_reint(req, obddev->u.cli.cl_rpc_lock, LUSTRE_IMP_FULL);
+        rc = mdc_reint(req, obd->u.cli.cl_rpc_lock, LUSTRE_IMP_FULL);
         if (rc == -ERESTARTSYS)
                 rc = 0;
         RETURN(rc);
@@ -226,7 +226,8 @@ int mdc_rename(struct obd_export *exp, struct mdc_op_data *data,
 
         size[0] = sizeof(struct mds_body);
         size[1] = obd->u.cli.cl_max_mds_easize;
-        req->rq_replen = lustre_msg_size(2, size);
+        size[2] = obd->u.cli.cl_max_mds_cookiesize;
+        req->rq_replen = lustre_msg_size(3, size);
 
         rc = mdc_reint(req, obd->u.cli.cl_rpc_lock, LUSTRE_IMP_FULL);
         *request = req;
index 208256f..f0bb758 100644 (file)
@@ -405,18 +405,21 @@ static void mdc_commit_close(struct ptlrpc_request *req)
 static int mdc_close_interpret(struct ptlrpc_request *req, void *data, int rc)
 {
         union ptlrpc_async_args *aa = data;
-        struct mdc_rpc_lock *rpc_lock = aa->pointer_arg[0];
+        struct mdc_rpc_lock *rpc_lock;
         struct obd_device *obd = aa->pointer_arg[1];
+        unsigned long flags;
+
+        spin_lock_irqsave(&req->rq_lock, flags);
+        rpc_lock = aa->pointer_arg[0];
+        aa->pointer_arg[0] = NULL;
+        spin_unlock_irqrestore(&req->rq_lock, flags);
 
         if (rpc_lock == NULL) {
                 CERROR("called with NULL rpc_lock\n");
         } else {
                 mdc_put_rpc_lock(rpc_lock, NULL);
-                LASSERTF(req->rq_async_args.pointer_arg[0] ==
-                         obd->u.cli.cl_rpc_lock, "%p != %p\n",
-                         req->rq_async_args.pointer_arg[0],
-                         obd->u.cli.cl_rpc_lock);
-                aa->pointer_arg[0] = NULL;
+                LASSERTF(rpc_lock == obd->u.cli.cl_rpc_lock, "%p != %p\n",
+                         rpc_lock, obd->u.cli.cl_rpc_lock);
         }
         wake_up(&req->rq_reply_waitq);
         RETURN(rc);
@@ -430,9 +433,8 @@ static int mdc_close_check_reply(struct ptlrpc_request *req)
         unsigned long flags;
 
         spin_lock_irqsave(&req->rq_lock, flags);
-        if (PTLRPC_REQUEST_COMPLETE(req)) {
+        if (req->rq_async_args.pointer_arg[0] == NULL)
                 rc = 1;
-        }
         spin_unlock_irqrestore (&req->rq_lock, flags);
         return rc;
 }
@@ -466,7 +468,8 @@ int mdc_close(struct obd_export *exp, struct obdo *oa,
         if (likely(mod != NULL)) {
                 mod->mod_close_req = req;
                 LASSERT(mod->mod_open_req->rq_type != LI_POISON);
-                DEBUG_REQ(D_HA, mod->mod_open_req, "matched open");
+                DEBUG_REQ(D_HA, mod->mod_open_req, "matched open req %p",
+                          mod->mod_open_req);
         } else {
                 CDEBUG(D_HA, "couldn't find open req; expecting close error\n");
         }
@@ -515,7 +518,6 @@ int mdc_close(struct obd_export *exp, struct obdo *oa,
         if (req->rq_async_args.pointer_arg[0] != NULL) {
                 CERROR("returned without dropping rpc_lock: rc %d\n", rc);
                 mdc_close_interpret(req, &req->rq_async_args, rc);
-                //portals_debug_dumplog();
         }
 
         EXIT;
index 43865fe..cf590e4 100644 (file)
@@ -101,7 +101,8 @@ static int mds_sendpage(struct ptlrpc_request *req, struct file *file,
                        file->f_dentry->d_inode->i_size);
 
                 rc = fsfilt_readpage(req->rq_export->exp_obd, file,
-                                     page_address(pages[i]), tmpsize, &offset);
+                                     kmap(pages[i]), tmpsize, &offset);
+                kunmap(pages[i]);
 
                 if (rc != tmpsize)
                         GOTO(cleanup_buf, rc = -EIO);
@@ -130,7 +131,7 @@ static int mds_sendpage(struct ptlrpc_request *req, struct file *file,
 
                 rc = -ETIMEDOUT; /* XXX should this be a different errno? */
         }
-        
+
         DEBUG_REQ(D_ERROR, req, "bulk failed: %s %d(%d), evicting %s@%s\n",
                   (rc == -ETIMEDOUT) ? "timeout" : "network error",
                   desc->bd_nob_transferred, count,
@@ -218,6 +219,13 @@ struct dentry *mds_fid2dentry(struct mds_obd *mds, struct ll_fid *fid,
         if (!inode)
                 RETURN(ERR_PTR(-ENOENT));
 
+        if (is_bad_inode(inode)) {
+                CERROR("bad inode returned %lu/%u\n",
+                       inode->i_ino, inode->i_generation);
+                dput(result);
+                RETURN(ERR_PTR(-ENOENT));
+        }
+
         if (generation && inode->i_generation != generation) {
                 /* we didn't find the right inode.. */
                 CERROR("bad inode %lu, link: %lu ct: %d or generation %u/%u\n",
@@ -345,7 +353,10 @@ static int mds_destroy_export(struct obd_export *export)
                        dentry->d_name.len, dentry->d_name.name,
                        ll_bdevname(dentry->d_inode->i_sb, btmp),
                        dentry->d_inode->i_ino);
-                rc = mds_mfd_close(NULL, obd, mfd, 
+                /* child inode->i_alloc_sem protects orphan_dec_test and
+                 * is_orphan race, mds_mfd_close drops it */
+                DOWN_WRITE_I_ALLOC_SEM(dentry->d_inode);
+                rc = mds_mfd_close(NULL, obd, mfd,
                                    !(export->exp_flags & OBD_OPT_FAILOVER));
 
                 if (rc)
@@ -691,7 +702,7 @@ static int mds_getattr_name(int offset, struct ptlrpc_request *req,
 
         LASSERT (offset == 0 || offset == 2);
         /* if requests were at offset 2, the getattr reply goes back at 1 */
-        if (offset) { 
+        if (offset) {
                 rep = lustre_msg_buf(req->rq_repmsg, 0, sizeof (*rep));
                 offset = 1;
         }
@@ -1086,11 +1097,10 @@ int mds_handle(struct ptlrpc_request *req)
                 obd = req->rq_export->exp_obd;
                 mds = &obd->u.mds;
 
-
                 /* sanity check: if the xid matches, the request must
                  * be marked as a resent or replayed */
                 if (req->rq_xid == med->med_mcd->mcd_last_xid)
-                        LASSERTF(lustre_msg_get_flags(req->rq_reqmsg) & 
+                        LASSERTF(lustre_msg_get_flags(req->rq_reqmsg) &
                                  (MSG_RESENT | MSG_REPLAY),
                                  "rq_xid "LPU64" matches last_xid, "
                                  "expected RESENT flag\n",
@@ -1208,9 +1218,9 @@ int mds_handle(struct ptlrpc_request *req)
 
                 OBD_FAIL_RETURN(OBD_FAIL_MDS_REINT_NET, 0);
 
-                if (opc == REINT_UNLINK)
+                if (opc == REINT_UNLINK || opc == REINT_RENAME)
                         bufcount = 3;
-                else if (opc == REINT_OPEN || opc == REINT_RENAME)
+                else if (opc == REINT_OPEN)
                         bufcount = 2;
                 else
                         bufcount = 1;
@@ -1385,8 +1395,9 @@ static int mds_setup(struct obd_device *obd, obd_count len, void *buf)
         struct lustre_cfg* lcfg = buf;
         struct mds_obd *mds = &obd->u.mds;
         struct vfsmount *mnt;
-        int rc = 0;
+        char ns_name[48];
         unsigned long page;
+        int rc = 0;
         ENTRY;
 
         dev_clear_rdonly(2);
@@ -1398,7 +1409,8 @@ static int mds_setup(struct obd_device *obd, obd_count len, void *buf)
         if (IS_ERR(obd->obd_fsops))
                 RETURN(rc = PTR_ERR(obd->obd_fsops));
 
-        if (!(page = __get_free_page(GFP_KERNEL)))
+        page = __get_free_page(GFP_KERNEL);
+        if (!page)
                 RETURN(-ENOMEM);
 
         memset((void *)page, 0, PAGE_SIZE);
@@ -1422,8 +1434,8 @@ static int mds_setup(struct obd_device *obd, obd_count len, void *buf)
         mds->mds_max_cookiesize = sizeof(struct llog_cookie);
         atomic_set(&mds->mds_open_count, 0);
 
-        obd->obd_namespace = ldlm_namespace_new("mds_server",
-                                                LDLM_NAMESPACE_SERVER);
+        sprintf(ns_name, "mds-%s", obd->obd_uuid.uuid);
+        obd->obd_namespace = ldlm_namespace_new(ns_name, LDLM_NAMESPACE_SERVER);
         if (obd->obd_namespace == NULL) {
                 mds_cleanup(obd, 0);
                 GOTO(err_put, rc = -ENOMEM);
@@ -1490,7 +1502,6 @@ static int mds_postsetup(struct obd_device *obd)
         int rc = 0;
         ENTRY;
 
-
         rc = llog_setup(obd, LLOG_CONFIG_ORIG_CTXT, obd, 0, NULL,
                         &llog_lvfs_ops);
         if (rc)
@@ -1529,10 +1540,10 @@ err_llog:
         RETURN(rc);
 }
 
-int mds_postrecov(struct obd_device *obd) 
+int mds_postrecov(struct obd_device *obd)
 {
         struct mds_obd *mds = &obd->u.mds;
-        int rc;
+        int rc, item = 0;
 
         LASSERT(!obd->obd_recovering);
         LASSERT(llog_get_context(obd, LLOG_UNLINK_ORIG_CTXT) != NULL);
@@ -1547,10 +1558,17 @@ int mds_postrecov(struct obd_device *obd)
 
         /* clean PENDING dir */
         rc = mds_cleanup_orphans(obd);
-        if (rc) {
+        if (rc < 0) {
                 GOTO(out, rc);
+        } else {
+                item = rc;
         }
 
+        rc = obd_set_info(mds->mds_osc_exp, strlen("mds_conn"), "mds_conn",
+                          0, NULL);
+        if (rc)
+                GOTO(out, rc);
+
         rc = llog_connect(llog_get_context(obd, LLOG_UNLINK_ORIG_CTXT),
                           obd->u.mds.mds_lov_desc.ld_tgt_count,
                           NULL, NULL, NULL);
@@ -1567,7 +1585,7 @@ int mds_postrecov(struct obd_device *obd)
         }
 
 out:
-        RETURN(rc);
+        RETURN(rc < 0 ? rc: item);
 
 err_llog:
         /* cleanup all llogging subsystems */
@@ -1790,11 +1808,11 @@ static int mds_intent_policy(struct ldlm_namespace *ns,
                 rep->lock_policy_res2 = mds_getattr_name(offset, req, &lockh);
                 /* FIXME: LDLM can set req->rq_status. MDS sets
                    policy_res{1,2} with disposition and status.
-                   - replay: returns 0 & req->status is old status 
+                   - replay: returns 0 & req->status is old status
                    - otherwise: returns req->status */
                 if (intent_disposition(rep, DISP_LOOKUP_NEG))
                         rep->lock_policy_res2 = 0;
-                if (!intent_disposition(rep, DISP_LOOKUP_POS) || 
+                if (!intent_disposition(rep, DISP_LOOKUP_POS) ||
                     rep->lock_policy_res2)
                         RETURN(ELDLM_LOCK_ABORTED);
                 if (req->rq_status != 0) {
@@ -1877,8 +1895,7 @@ static int mdt_setup(struct obd_device *obd, obd_count len, void *buf)
         mds->mds_service =
                 ptlrpc_init_svc(MDS_NBUFS, MDS_BUFSIZE, MDS_MAXREQSIZE,
                                 MDS_REQUEST_PORTAL, MDC_REPLY_PORTAL,
-                                mds_handle, "mds",
-                                obd->obd_proc_entry);
+                                mds_handle, "mds", obd->obd_proc_entry);
 
         if (!mds->mds_service) {
                 CERROR("failed to start service\n");
index 52225be..9c9bd12 100644 (file)
@@ -60,64 +60,6 @@ static int lprocfs_mds_rd_filesopen(char *page, char **start, off_t off,
                         atomic_read(&obd->u.mds.mds_open_count));
 }
 
-static int lprocfs_mds_rd_recovery_status(char *page, char **start, off_t off,
-                                          int count, int *eof, void *data)
-{
-        struct obd_device *obd = data;
-        int len = 0, n,
-                connected = obd->obd_connected_clients,
-                max_recoverable = obd->obd_max_recoverable_clients,
-                recoverable = obd->obd_recoverable_clients,
-                completed = max_recoverable - recoverable,
-                queue_len = obd->obd_requests_queued_for_recovery,
-                replayed = obd->obd_replayed_requests;
-        __u64 next_transno = obd->obd_next_recovery_transno;
-
-        LASSERT(obd != NULL);
-        *eof = 1;
-
-        n = snprintf(page, count, "status: ");
-        page += n; len += n; count -= n;
-        if (obd->obd_max_recoverable_clients == 0) {
-                n = snprintf(page, count, "INACTIVE\n");
-                return len + n;
-        }
-
-        if (obd->obd_recoverable_clients == 0) {
-                n = snprintf(page, count, "COMPLETE\n");
-                page += n; len += n; count -= n;
-                n = snprintf(page, count, "recovered_clients: %d\n",
-                             max_recoverable);
-                page += n; len += n; count -= n;
-                n = snprintf(page, count, "last_transno: "LPD64"\n",
-                             next_transno - 1);
-                page += n; len += n; count -= n;
-                n = snprintf(page, count, "replayed_requests: %d\n", replayed);
-                return len + n;
-        }
-
-        /* sampled unlocked, but really... */
-        if (obd->obd_recovering == 0) {
-                n = snprintf(page, count, "ABORTED\n");
-                return len + n;
-        }
-
-        n = snprintf(page, count, "RECOVERING\n");
-        page += n; len += n; count -= n;
-        n = snprintf(page, count, "connected_clients: %d/%d\n",
-                     connected, max_recoverable);
-        page += n; len += n; count -= n;
-        n = snprintf(page, count, "completed_clients: %d/%d\n",
-                     completed, max_recoverable);
-        page += n; len += n; count -= n;
-        n = snprintf(page, count, "replayed_requests: %d/??\n", replayed);
-        page += n; len += n; count -= n;
-        n = snprintf(page, count, "queued_requests: %d\n", queue_len);
-        page += n; len += n; count -= n;
-        n = snprintf(page, count, "next_transno: "LPD64"\n", next_transno);
-        return len + n;
-}
-
 static int lprocfs_mds_wr_evict_client(struct file *file, const char *buffer,
                                        unsigned long count, void *data)
 {
@@ -164,7 +106,7 @@ struct lprocfs_vars lprocfs_mds_obd_vars[] = {
         { "filesfree",    lprocfs_rd_filesfree,   0, 0 },
         { "filesopen",    lprocfs_mds_rd_filesopen,   0, 0 },
         { "mntdev",       lprocfs_mds_rd_mntdev,  0, 0 },
-        { "recovery_status", lprocfs_mds_rd_recovery_status, 0, 0 },
+        { "recovery_status", lprocfs_obd_rd_recovery_status, 0, 0 },
         { "evict_client", 0, lprocfs_mds_wr_evict_client, 0 },
         { "num_exports",  lprocfs_rd_num_exports, 0, 0 },
         { 0 }
index 5505329..7d8dc6d 100644 (file)
@@ -349,6 +349,7 @@ static int mds_init_server_data(struct obd_device *obd, struct file *file)
                       obd->obd_recoverable_clients, mds->mds_last_transno);
                 obd->obd_next_recovery_transno = obd->obd_last_committed + 1;
                 obd->obd_recovering = 1;
+                obd->obd_recovery_start = LTIME_S(CURRENT_TIME);
         }
 
         mds->mds_mount_count = mount_count + 1;
@@ -514,6 +515,7 @@ int mds_fs_cleanup(struct obd_device *obd, int flags)
                        " be preserved.\n", obd->obd_name);
 
         class_disconnect_exports(obd, flags); /* cleans up client info too */
+        target_cleanup_recovery(obd);
         mds_server_free_data(mds);
 
         push_ctxt(&saved, &obd->obd_ctxt, NULL);
@@ -552,7 +554,7 @@ int mds_fs_cleanup(struct obd_device *obd, int flags)
  * performance sensitive, it is accomplished by creating a file, checking the
  * fid, and renaming it. */
 int mds_obd_create(struct obd_export *exp, struct obdo *oa,
-                      struct lov_stripe_md **ea, struct obd_trans_info *oti)
+                   struct lov_stripe_md **ea, struct obd_trans_info *oti)
 {
         struct mds_obd *mds = &exp->exp_obd->u.mds;
         struct inode *parent_inode = mds->mds_objects_dir->d_inode;
@@ -652,8 +654,9 @@ int mds_obd_destroy(struct obd_export *exp, struct obdo *oa,
 
         down(&parent_inode->i_sem);
         de = lookup_one_len(fidname, mds->mds_objects_dir, namelen);
-        if (de == NULL || de->d_inode == NULL) {
-                CERROR("destroying non-existent object "LPU64" %s\n", 
+        if (IS_ERR(de) || de->d_inode == NULL) {
+                rc = IS_ERR(de) ? PTR_ERR(de) : -ENOENT;
+                CERROR("destroying non-existent object "LPU64" %s\n",
                        oa->o_id, fidname);
                 GOTO(out_dput, rc = IS_ERR(de) ? PTR_ERR(de) : -ENOENT);
         }
@@ -665,12 +668,12 @@ int mds_obd_destroy(struct obd_export *exp, struct obdo *oa,
         if (IS_ERR(handle)) {
                 GOTO(out_dput, rc = PTR_ERR(handle));
         }
-        
+
         rc = vfs_unlink(mds->mds_objects_dir->d_inode, de);
-        if (rc) 
+        if (rc)
                 CERROR("error destroying object "LPU64":%u: rc %d\n",
                        oa->o_id, oa->o_generation, rc);
-        
+
         err = fsfilt_commit(obd, mds->mds_objects_dir->d_inode, handle, 0);
         if (err && !rc)
                 rc = err;
index 2829812..892f315 100644 (file)
@@ -20,6 +20,45 @@ static inline struct mds_obd *mds_req2mds(struct ptlrpc_request *req)
         return &req->rq_export->exp_obd->u.mds;
 }
 
+#ifdef __KERNEL__
+/* Open counts for files.  No longer atomic, must hold inode->i_sem */
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0))
+# define mds_inode_oatomic(inode)    ((inode)->i_cindex)
+#else
+# define mds_inode_oatomic(inode)    ((inode)->i_attr_flags)
+#endif
+
+static inline int mds_orphan_open_count(struct inode *inode)
+{
+        LASSERT_MDS_ORPHAN_READ_LOCKED(inode);
+        return mds_inode_oatomic(inode);
+}
+
+static inline int mds_orphan_open_inc(struct inode *inode)
+{
+        LASSERT_MDS_ORPHAN_WRITE_LOCKED(inode);
+        return ++mds_inode_oatomic(inode);
+}
+
+static inline int mds_orphan_open_dec_test(struct inode *inode)
+{
+        LASSERT_MDS_ORPHAN_WRITE_LOCKED(inode);
+        return --mds_inode_oatomic(inode) == 0;
+}
+
+#define mds_inode_is_orphan(inode)  ((inode)->i_flags & 0x4000000)
+#define mds_inode_set_orphan(inode)                                     \
+do {                                                                    \
+        (inode)->i_flags |= 0x4000000;                                  \
+        CDEBUG(D_VFSTRACE, "setting orphan flag on inode %p\n", inode); \
+} while (0)
+#define mds_inode_unset_orphan(inode)                                      \
+do {                                                                       \
+        (inode)->i_flags &= ~(0x4000000);                                  \
+        CDEBUG(D_VFSTRACE, "removing orphan flag from inode %p\n", inode); \
+} while (0)
+#endif /* __KERNEL__ */
+
 /* mds/mds_reint.c */
 int res_gt(struct ldlm_res_id *res1, struct ldlm_res_id *res2);
 int enqueue_ordered_locks(struct obd_device *obd, struct ldlm_res_id *p1_res_id,
@@ -46,9 +85,6 @@ int mds_update_unpack(struct ptlrpc_request *, int offset,
                       struct mds_update_record *);
 
 /* mds/mds_unlink_open.c */
-int mds_open_unlink_rename(struct mds_update_record *rec,
-                           struct obd_device *obd, struct dentry *dparent,
-                           struct dentry *dchild, void **handle);
 int mds_cleanup_orphans(struct obd_device *obd);
 
 
index 66d182c..7d4a614 100644 (file)
@@ -47,7 +47,7 @@
 
 #include <linux/obd_support.h>
 #include <linux/lustre_lib.h>
-#include <linux/lustre_mds.h>
+#include "mds_internal.h"
 
 void mds_pack_inode2fid(struct ll_fid *fid, struct inode *inode)
 {
index f0bf35b..7bb492f 100644 (file)
@@ -228,12 +228,6 @@ int mds_lov_connect(struct obd_device *obd, char * lov_name)
                 GOTO(err_reg, rc);
         }
 
-        /* FIXME before set info call is made, we must initialize logging */
-        rc = obd_set_info(mds->mds_osc_exp, strlen("mds_conn"), "mds_conn",
-                          0, NULL);
-        if (rc)
-                GOTO(err_reg, rc);
-
         /* If we're mounting this code for the first time on an existing FS,
          * we need to populate the objids array from the real OST values */
         if (!mds->mds_lov_objids_valid) {
@@ -451,8 +445,8 @@ int mds_iocontrol(unsigned int cmd, struct obd_export *exp, int len,
                 rc = llog_ioctl(ctxt, cmd, data);
                 pop_ctxt(&saved, &ctxt->loc_exp->exp_obd->obd_ctxt, NULL);
                 llog_cat_initialize(obd, mds->mds_lov_desc.ld_tgt_count);
-                rc2 = obd_set_info(mds->mds_osc_exp, strlen("mds_conn"), "mds_conn",
-                          0, NULL);
+                rc2 = obd_set_info(mds->mds_osc_exp, strlen("mds_conn"),
+                                   "mds_conn", 0, NULL);
                 if (!rc)
                         rc = rc2;
                 RETURN(rc);
@@ -514,7 +508,7 @@ int mds_lov_synchronize(void *data)
                           "mds_conn", 0, uuid);
         if (rc != 0)
                 RETURN(rc);
-        
+
         rc = llog_connect(llog_get_context(obd, LLOG_UNLINK_ORIG_CTXT),
                           obd->u.mds.mds_lov_desc.ld_tgt_count,
                           NULL, NULL, uuid);
@@ -523,7 +517,7 @@ int mds_lov_synchronize(void *data)
                        obd->obd_name, rc);
                 RETURN(rc);
         }
-        
+
         CWARN("MDS %s: %s now active, resetting orphans\n",
               obd->obd_name, uuid->uuid);
         rc = mds_lov_clearorphans(&obd->u.mds, uuid);
@@ -540,7 +534,7 @@ int mds_lov_start_synchronize(struct obd_device *obd, struct obd_uuid *uuid)
 {
         struct mds_lov_sync_info *mlsi;
         int rc;
-        
+
         ENTRY;
 
         OBD_ALLOC(mlsi, sizeof(*mlsi));
index 805a256..641c423 100644 (file)
@@ -40,7 +40,6 @@
 #endif
 
 #include <linux/obd_class.h>
-#include <linux/lustre_mds.h>
 #include <linux/obd_lov.h>
 #include <linux/lustre_fsfilt.h>
 #include <linux/lprocfs_status.h>
@@ -233,7 +232,7 @@ int mds_query_write_access(struct inode *inode)
         RETURN(atomic_read(&inode->i_writecount));
 }
 
-/* This replaces the VFS mds_dentry_open, it manages mfd and writecount */
+/* This replaces the VFS dentry_open, it manages mfd and writecount */
 static struct mds_file_data *mds_dentry_open(struct dentry *dentry,
                                              struct vfsmount *mnt, int flags,
                                              struct ptlrpc_request *req)
@@ -268,7 +267,9 @@ static struct mds_file_data *mds_dentry_open(struct dentry *dentry,
         dget(dentry);
 
         /* Mark the file as open to handle open-unlink. */
-        mds_open_orphan_inc(dentry->d_inode);
+        DOWN_WRITE_I_ALLOC_SEM(dentry->d_inode);
+        mds_orphan_open_inc(dentry->d_inode);
+        UP_WRITE_I_ALLOC_SEM(dentry->d_inode);
 
         mfd->mfd_mode = flags;
         mfd->mfd_dentry = dentry;
@@ -460,7 +461,7 @@ static int mds_create_objects(struct ptlrpc_request *req, int offset,
         if (IS_ERR(*handle)) {
                 rc = PTR_ERR(*handle);
                 *handle = NULL;
-                GOTO(out_ids, rc);
+                GOTO(out_oa, rc);
         }
 
         rc = fsfilt_set_md(obd, inode, *handle, lmm, lmm_size);
@@ -491,7 +492,7 @@ static void reconstruct_open(struct mds_update_record *rec, int offset,
         struct mds_obd *mds = mds_req2mds(req);
         struct mds_file_data *mfd;
         struct obd_device *obd = req->rq_export->exp_obd;
-        struct dentry *parent, *child;
+        struct dentry *parent, *dchild;
         struct ldlm_reply *rep;
         struct mds_body *body;
         int rc;
@@ -516,12 +517,11 @@ static void reconstruct_open(struct mds_update_record *rec, int offset,
         parent = mds_fid2dentry(mds, rec->ur_fid1, NULL);
         LASSERT(!IS_ERR(parent));
 
-        child = ll_lookup_one_len(rec->ur_name, parent, rec->ur_namelen - 1);
-        LASSERT(!IS_ERR(child));
+        dchild = ll_lookup_one_len(rec->ur_name, parent, rec->ur_namelen - 1);
+        LASSERT(!IS_ERR(dchild));
 
-        if (!child->d_inode) {
+        if (!dchild->d_inode)
                 GOTO(out_dput, 0); /* child not present to open */
-        }
 
         /* At this point, we know we have a child. We'll send
          * it back _unless_ it not created and open failed.
@@ -534,11 +534,11 @@ static void reconstruct_open(struct mds_update_record *rec, int offset,
 
         /* get lock (write for O_CREAT, read otherwise) */
 
-        mds_pack_inode2fid(&body->fid1, child->d_inode);
-        mds_pack_inode2body(body, child->d_inode);
-        if (S_ISREG(child->d_inode->i_mode)) {
+        mds_pack_inode2fid(&body->fid1, dchild->d_inode);
+        mds_pack_inode2body(body, dchild->d_inode);
+        if (S_ISREG(dchild->d_inode->i_mode)) {
                 rc = mds_pack_md(obd, req->rq_repmsg, 2, body,
-                                 child->d_inode, 1);
+                                 dchild->d_inode, 1);
 
                 if (rc)
                         LASSERT(rc == req->rq_status);
@@ -547,13 +547,8 @@ static void reconstruct_open(struct mds_update_record *rec, int offset,
                 if (!(body->valid & OBD_MD_FLEASIZE))
                         body->valid |= (OBD_MD_FLSIZE | OBD_MD_FLBLOCKS |
                                         OBD_MD_FLATIME | OBD_MD_FLMTIME);
-        } else {
-                /* XXX need to check this case */
         }
 
-        /* If we're opening a file without an EA, change to a write
-           lock (unless we already have one). */
-
         /* If we have -EEXIST as the status, and we were asked to create
          * exclusively, we can tell we failed because the file already existed.
          */
@@ -590,7 +585,7 @@ static void reconstruct_open(struct mds_update_record *rec, int offset,
         if (mfd == NULL) {
                 mntget(mds->mds_vfsmnt);
                 CERROR("Re-opened file \n");
-                mfd = mds_dentry_open(child, mds->mds_vfsmnt,
+                mfd = mds_dentry_open(dchild, mds->mds_vfsmnt,
                                       rec->ur_flags & ~MDS_OPEN_TRUNC, req);
                 if (!mfd) {
                         CERROR("mds: out of memory\n");
@@ -605,7 +600,7 @@ static void reconstruct_open(struct mds_update_record *rec, int offset,
 
  out_dput:
         if (put_child)
-                l_dput(child);
+                l_dput(dchild);
         l_dput(parent);
         EXIT;
 }
@@ -1042,7 +1037,7 @@ int mds_open(struct mds_update_record *rec, int offset,
 }
 
 /* Close a "file descriptor" and possibly unlink an orphan from the
- * PENDING directory.
+ * PENDING directory.  Caller must hold child->i_sem, this drops it.
  *
  * If we are being called from mds_disconnect() because the client has
  * disappeared, then req == NULL and we do not update last_rcvd because
@@ -1074,8 +1069,12 @@ int mds_mfd_close(struct ptlrpc_request *req, struct obd_device *obd,
 
         fidlen = ll_fid2str(fidname, inode->i_ino, inode->i_generation);
 
-        last_orphan = mds_open_orphan_dec_test(inode) &&
+        CDEBUG(D_INODE, "inode %p ino %s nlink %d orphan %d\n", inode, fidname,
+               inode->i_nlink, mds_orphan_open_count(inode));
+
+        last_orphan = mds_orphan_open_dec_test(inode) &&
                 mds_inode_is_orphan(inode);
+        UP_WRITE_I_ALLOC_SEM(inode);
 
         /* this is half of the actual "close" */
         if (mfd->mfd_mode & FMODE_WRITE) {
@@ -1092,12 +1091,17 @@ int mds_mfd_close(struct ptlrpc_request *req, struct obd_device *obd,
 
                 CDEBUG(D_HA, "destroying orphan object %s\n", fidname);
 
+                if ((S_ISREG(inode->i_mode) && inode->i_nlink != 1) ||
+                    (S_ISDIR(inode->i_mode) && inode->i_nlink != 2))
+                        CERROR("found \"orphan\" %s %s with link count %d\n",
+                               S_ISREG(inode->i_mode) ? "file" : "dir",
+                               fidname, inode->i_nlink);
+
                 /* Sadly, there is no easy way to save pending_child from
                  * mds_reint_unlink() into mfd, so we need to re-lookup,
                  * but normally it will still be in the dcache. */
-                pending_dir = mds->mds_pending_dir->d_inode;
                 down(&pending_dir->i_sem);
-                cleanup_phase = 1; /* up(i_sem) when finished */
+                cleanup_phase = 1; /* up(&pending_dir->i_sem) when finished */
                 pending_child = lookup_one_len(fidname, mds->mds_pending_dir,
                                                fidlen);
                 if (IS_ERR(pending_child))
@@ -1140,6 +1144,7 @@ int mds_mfd_close(struct ptlrpc_request *req, struct obd_device *obd,
                 goto out; /* Don't bother updating attrs on unlinked inode */
         }
 
+#if 0
         if (request_body != NULL && mfd->mfd_mode & FMODE_WRITE && rc == 0) {
                 /* Update the on-disk attributes if this was the last write
                  * close, and all information was provided (i.e., rc == 0)
@@ -1147,7 +1152,6 @@ int mds_mfd_close(struct ptlrpc_request *req, struct obd_device *obd,
                  * XXX this should probably be abstracted with mds_reint_setattr
                  */
 
-#if 0
                 if (request_body->valid & OBD_MD_FLMTIME &&
                     LTIME_S(iattr.ia_mtime) > LTIME_S(inode->i_mtime)) {
                         LTIME_S(iattr.ia_mtime) = request_body->mtime;
@@ -1166,8 +1170,8 @@ int mds_mfd_close(struct ptlrpc_request *req, struct obd_device *obd,
                 }
                 /* iattr.ia_blocks = request_body->blocks */
 
-#endif
         }
+#endif
         if (request_body != NULL && request_body->valid & OBD_MD_FLATIME) {
                 /* Only start a transaction to write out only the atime if
                  * it is more out-of-date than the specified limit.  If we
@@ -1258,13 +1262,15 @@ int mds_close(struct ptlrpc_request *req)
         }
 
         inode = mfd->mfd_dentry->d_inode;
-        if (mds_inode_is_orphan(inode) && mds_open_orphan_count(inode) == 1) {
+        /* child i_alloc_sem protects orphan_dec_test && is_orphan race */
+        DOWN_WRITE_I_ALLOC_SEM(inode); /* mds_mfd_close drops this */
+        if (mds_inode_is_orphan(inode) && mds_orphan_open_count(inode) == 1) {
                 body = lustre_msg_buf(req->rq_repmsg, 0, sizeof (*body));
                 LASSERT(body != NULL);
 
                 mds_pack_inode2fid(&body->fid1, inode);
                 mds_pack_inode2body(body, inode);
-                mds_pack_md(obd, req->rq_repmsg, 1, body, inode, 1);
+                mds_pack_md(obd, req->rq_repmsg, 1, body, inode, MDS_PACK_MD_LOCK);
         }
         spin_lock(&med->med_open_lock);
         list_del(&mfd->mfd_list);
index ac15d0c..563790a 100644 (file)
@@ -619,7 +619,7 @@ static int mds_reint_create(struct mds_update_record *rec, int offset,
                 if (rec->ur_tgt == NULL)        /* no target supplied */
                         rc = -EINVAL;           /* -EPROTO? */
                 else
-                        rc = vfs_symlink(dir, dchild, rec->ur_tgt);
+                        rc = ll_vfs_symlink(dir, dchild, rec->ur_tgt, S_IALLUGO);
                 EXIT;
                 break;
         }
@@ -1059,7 +1059,7 @@ retry_locks:
 
         /* Step 3: Lock parent and child in resource order.  If child doesn't
          *         exist, we still have to lock the parent and re-lookup. */
-        rc = enqueue_ordered_locks(obd, &parent_res_id,parent_lockh,parent_mode,
+        rc = enqueue_ordered_locks(obd,&parent_res_id,parent_lockh,parent_mode,
                                    &child_res_id, child_lockh, child_mode);
         if (rc)
                 GOTO(cleanup, rc);
@@ -1104,18 +1104,98 @@ void mds_reconstruct_generic(struct ptlrpc_request *req)
         mds_req_from_mcd(req, med->med_mcd);
 }
 
+/* If we are unlinking an open file/dir (i.e. creating an orphan) then
+ * we instead link the inode into the PENDING directory until it is
+ * finally released.  We can't simply call mds_reint_rename() or some
+ * part thereof, because we don't have the inode to check for link
+ * count/open status until after it is locked.
+ *
+ * For lock ordering, caller must get child->i_sem first, then pending->i_sem
+ * before starting journal transaction.
+ *
+ * returns 1 on success
+ * returns 0 if we lost a race and didn't make a new link
+ * returns negative on error
+ */
+static int mds_orphan_add_link(struct mds_update_record *rec,
+                               struct obd_device *obd, struct dentry *dentry)
+{
+        struct mds_obd *mds = &obd->u.mds;
+        struct inode *pending_dir = mds->mds_pending_dir->d_inode;
+        struct inode *inode = dentry->d_inode;
+        struct dentry *pending_child;
+        char fidname[LL_FID_NAMELEN];
+        int fidlen = 0, rc, mode;
+        ENTRY;
+
+        LASSERT(inode != NULL);
+        LASSERT(!mds_inode_is_orphan(inode));
+#ifndef HAVE_I_ALLOC_SEM
+        LASSERT(down_trylock(&inode->i_sem) != 0);
+#endif
+        LASSERT(down_trylock(&pending_dir->i_sem) != 0);
+
+        fidlen = ll_fid2str(fidname, inode->i_ino, inode->i_generation);
+
+        CDEBUG(D_ERROR, "pending destroy of %dx open %d linked %s %s = %s\n",
+               mds_orphan_open_count(inode), inode->i_nlink,
+               S_ISDIR(inode->i_mode) ? "dir" :
+                S_ISREG(inode->i_mode) ? "file" : "other",rec->ur_name,fidname);
+
+        if (mds_orphan_open_count(inode) == 0 || inode->i_nlink != 0)
+                RETURN(0);
+
+        pending_child = lookup_one_len(fidname, mds->mds_pending_dir, fidlen);
+        if (IS_ERR(pending_child))
+                RETURN(PTR_ERR(pending_child));
+
+        if (pending_child->d_inode != NULL) {
+                CERROR("re-destroying orphan file %s?\n", rec->ur_name);
+                LASSERT(pending_child->d_inode == inode);
+                GOTO(out_dput, rc = 0);
+        }
+
+        /* link() is semanticaly-wrong for S_IFDIR, so we set S_IFREG
+         * for linking and return real mode back then -bzzz */
+        mode = inode->i_mode;
+        inode->i_mode = S_IFREG;
+        rc = vfs_link(dentry, pending_dir, pending_child);
+        if (rc)
+                CERROR("error linking orphan %s to PENDING: rc = %d\n",
+                       rec->ur_name, rc);
+        else
+                mds_inode_set_orphan(inode);
+
+        /* return mode and correct i_nlink if inode is directory */
+        inode->i_mode = mode;
+        LASSERTF(inode->i_nlink == 1, "%s nlink == %d\n",
+                 S_ISDIR(mode) ? "dir" : S_ISREG(mode) ? "file" : "other",
+                 inode->i_nlink);
+        if (S_ISDIR(mode)) {
+                inode->i_nlink++;
+                pending_dir->i_nlink++;
+                mark_inode_dirty(inode);
+                mark_inode_dirty(pending_dir);
+        }
+
+        GOTO(out_dput, rc = 1);
+out_dput:
+        l_dput(pending_child);
+        RETURN(rc);
+}
+
 static int mds_reint_unlink(struct mds_update_record *rec, int offset,
                             struct ptlrpc_request *req,
                             struct lustre_handle *lh)
 {
-        struct dentry *dparent, *dchild;
+        struct dentry *dparent = NULL, *dchild;
         struct mds_obd *mds = mds_req2mds(req);
         struct obd_device *obd = req->rq_export->exp_obd;
         struct mds_body *body = NULL;
-        struct inode *child_inode;
+        struct inode *child_inode = NULL;
         struct lustre_handle parent_lockh, child_lockh, child_reuse_lockh;
         void *handle = NULL;
-        int rc = 0, log_unlink = 0, cleanup_phase = 0;
+        int rc = 0, cleanup_phase = 0;
         ENTRY;
 
         LASSERT(offset == 0 || offset == 2);
@@ -1164,31 +1244,30 @@ static int mds_reint_unlink(struct mds_update_record *rec, int offset,
         body = lustre_msg_buf(req->rq_repmsg, offset, sizeof (*body));
         LASSERT(body != NULL);
 
-        /* If this is the last reference to this inode, get the OBD EA
-         * data first so the client can destroy OST objects.
-         * we only do the object removal if no open files remain.
-         * Nobody can get at this name anymore because of the locks so
-         * we make decisions here as to whether to remove the inode */
-        if (S_ISREG(child_inode->i_mode) && child_inode->i_nlink == 1 &&
-            mds_open_orphan_count(child_inode) == 0) {
-                mds_pack_inode2fid(&body->fid1, child_inode);
-                mds_pack_inode2body(body, child_inode);
-                mds_pack_md(obd, req->rq_repmsg, offset + 1, body,
-                            child_inode, 1);
-                if (!(body->valid & OBD_MD_FLEASIZE)) {
-                        body->valid |= (OBD_MD_FLSIZE | OBD_MD_FLBLOCKS |
-                                        OBD_MD_FLATIME | OBD_MD_FLMTIME);
-                } else {
-                        log_unlink = 1;
+        /* child i_alloc_sem protects orphan_dec_test && is_orphan race */
+        DOWN_READ_I_ALLOC_SEM(child_inode);
+        cleanup_phase = 4; /* up(&child_inode->i_sem) when finished */
+
+        /* If this is potentially the last reference to this inode, get the
+         * OBD EA data first so the client can destroy OST objects.  We
+         * only do the object removal later if no open files/links remain. */
+        if ((S_ISDIR(child_inode->i_mode) && child_inode->i_nlink == 2) ||
+            child_inode->i_nlink == 1) {
+                if (mds_orphan_open_count(child_inode) > 0) {
+                        /* need to lock pending_dir before transaction */
+                        down(&mds->mds_pending_dir->d_inode->i_sem);
+                        cleanup_phase = 5; /* up(&pending_dir->i_sem) */
+                } else if (S_ISREG(child_inode->i_mode)) {
+                        mds_pack_inode2fid(&body->fid1, child_inode);
+                        mds_pack_inode2body(body, child_inode);
+                        mds_pack_md(obd, req->rq_repmsg, offset + 1, body,
+                                    child_inode, MDS_PACK_MD_LOCK);
                 }
         }
 
         /* We have to do these checks ourselves, in case we are making an
          * orphan.  The client tells us whether rmdir() or unlink() was called,
-         * so we need to return appropriate errors (bug 72).
-         *
-         * We don't have to check permissions, because vfs_rename (called from
-         * mds_open_unlink_rename) also calls may_delete. */
+         * so we need to return appropriate errors (bug 72). */
         if ((rec->ur_mode & S_IFMT) == S_IFDIR) {
                 if (!S_ISDIR(child_inode->i_mode))
                         GOTO(cleanup, rc = -ENOTDIR);
@@ -1208,7 +1287,6 @@ static int mds_reint_unlink(struct mds_update_record *rec, int offset,
                                       NULL);
                 if (IS_ERR(handle))
                         GOTO(cleanup, rc = PTR_ERR(handle));
-                cleanup_phase = 4; /* transaction */
                 rc = vfs_rmdir(dparent->d_inode, dchild);
                 break;
         case S_IFREG: {
@@ -1219,17 +1297,7 @@ static int mds_reint_unlink(struct mds_update_record *rec, int offset,
                                           le32_to_cpu(lmm->lmm_stripe_count));
                 if (IS_ERR(handle))
                         GOTO(cleanup, rc = PTR_ERR(handle));
-
-                cleanup_phase = 4; /* transaction */
                 rc = vfs_unlink(dparent->d_inode, dchild);
-
-                if (!rc && log_unlink)
-                        if (mds_log_op_unlink(obd, child_inode,
-                                lustre_msg_buf(req->rq_repmsg, offset + 1, 0),
-                                req->rq_repmsg->buflens[offset + 1],
-                                lustre_msg_buf(req->rq_repmsg, offset + 2, 0),
-                                req->rq_repmsg->buflens[offset + 2]) > 0)
-                                body->valid |= OBD_MD_FLCOOKIE;
                 break;
         }
         case S_IFLNK:
@@ -1241,7 +1309,6 @@ static int mds_reint_unlink(struct mds_update_record *rec, int offset,
                                       NULL);
                 if (IS_ERR(handle))
                         GOTO(cleanup, rc = PTR_ERR(handle));
-                cleanup_phase = 4; /* transaction */
                 rc = vfs_unlink(dparent->d_inode, dchild);
                 break;
         default:
@@ -1251,7 +1318,30 @@ static int mds_reint_unlink(struct mds_update_record *rec, int offset,
                 GOTO(cleanup, rc = -EINVAL);
         }
 
- cleanup:
+        if (rc == 0 && child_inode->i_nlink == 0) {
+                if (mds_orphan_open_count(child_inode) > 0)
+                        rc = mds_orphan_add_link(rec, obd, dchild);
+
+                if (rc == 1)
+                        GOTO(cleanup, rc = 0);
+
+                if (!S_ISREG(child_inode->i_mode))
+                        GOTO(cleanup, rc);
+
+                if (!(body->valid & OBD_MD_FLEASIZE)) {
+                        body->valid |=(OBD_MD_FLSIZE | OBD_MD_FLBLOCKS |
+                                       OBD_MD_FLATIME | OBD_MD_FLMTIME);
+                } else if (mds_log_op_unlink(obd, child_inode,
+                                lustre_msg_buf(req->rq_repmsg, offset + 1, 0),
+                                        req->rq_repmsg->buflens[offset + 1],
+                                lustre_msg_buf(req->rq_repmsg, offset + 2, 0),
+                                        req->rq_repmsg->buflens[offset+2]) > 0){
+                        body->valid |= OBD_MD_FLCOOKIE;
+                }
+        }
+
+        GOTO(cleanup, rc);
+cleanup:
         if (rc == 0) {
                 struct iattr iattr;
                 int err;
@@ -1265,21 +1355,16 @@ static int mds_reint_unlink(struct mds_update_record *rec, int offset,
                         CERROR("error on parent setattr: rc = %d\n", err);
         }
 
+        rc = mds_finish_transno(mds, dparent ? dparent->d_inode : NULL,
+                                handle, req, rc, 0);
+        if (!rc)
+                (void)obd_set_info(mds->mds_osc_exp, strlen("unlinked"),
+                                   "unlinked", 0, NULL);
         switch(cleanup_phase) {
-        case 4:
-                LASSERT(dchild != NULL && dchild->d_inode != NULL);
-                LASSERT(atomic_read(&dchild->d_inode->i_count) > 0);
-                if (rc == 0 && dchild->d_inode->i_nlink == 0 &&
-                                mds_open_orphan_count(dchild->d_inode) > 0) {
-                        /* filesystem is really going to destroy an inode
-                         * we have to delay this till inode is opened -bzzz */
-                        mds_open_unlink_rename(rec, obd, dparent, dchild, NULL);
-                }
-                rc = mds_finish_transno(mds, dparent->d_inode, handle, req,
-                                        rc, 0);
-                if (!rc)
-                        (void)obd_set_info(mds->mds_osc_exp, strlen("unlinked"),
-                                           "unlinked", 0, NULL);
+        case 5: /* pending_dir semaphore */
+                up(&mds->mds_pending_dir->d_inode->i_sem);
+        case 4: /* child inode semaphore */
+                UP_READ_I_ALLOC_SEM(child_inode);
         case 3: /* child ino-reuse lock */
                 if (rc && body != NULL) {
                         // Don't unlink the OST objects if the MDS unlink failed
@@ -1428,58 +1513,6 @@ cleanup:
         return 0;
 }
 
-/*
- * add a hard link in the PENDING directory, only used by rename()
- */
-static int mds_add_link_orphan(struct mds_update_record *rec,
-                               struct obd_device *obd,
-                               struct dentry *dentry)
-{
-        struct mds_obd *mds = &obd->u.mds;
-        struct inode *pending_dir = mds->mds_pending_dir->d_inode;
-        struct dentry *pending_child;
-        char fidname[LL_FID_NAMELEN];
-        int fidlen = 0, rc;
-        ENTRY;
-
-        LASSERT(dentry->d_inode);
-        LASSERT(!mds_inode_is_orphan(dentry->d_inode));
-
-        down(&pending_dir->i_sem);
-        fidlen = ll_fid2str(fidname, dentry->d_inode->i_ino,
-                            dentry->d_inode->i_generation);
-
-        CDEBUG(D_ERROR, "pending destroy of %dx open %s %s = %s\n",
-               mds_open_orphan_count(dentry->d_inode),
-               S_ISDIR(dentry->d_inode->i_mode) ? "dir" :
-               S_ISREG(dentry->d_inode->i_mode) ? "file" : "other",
-               rec->ur_name, fidname);
-
-        pending_child = lookup_one_len(fidname, mds->mds_pending_dir, fidlen);
-        if (IS_ERR(pending_child))
-                GOTO(out_lock, rc = PTR_ERR(pending_child));
-
-        if (pending_child->d_inode != NULL) {
-                CERROR("re-destroying orphan file %s?\n", rec->ur_name);
-                LASSERT(pending_child->d_inode == dentry->d_inode);
-                GOTO(out_dput, rc = 0);
-        }
-
-        lock_kernel();
-        rc = vfs_link(dentry, pending_dir, pending_child);
-        unlock_kernel();
-        if (rc)
-                CERROR("error addlink orphan %s to PENDING: rc = %d\n",
-                       rec->ur_name, rc);
-        else
-                mds_inode_set_orphan(dentry->d_inode);
-out_dput:
-        l_dput(pending_child);
-out_lock:
-        up(&pending_dir->i_sem);
-        RETURN(rc);
-}
-
 /* The idea here is that we need to get four locks in the end:
  * one on each parent directory, one on each child.  We need to take
  * these locks in some kind of order (to avoid deadlocks), and the order
@@ -1571,6 +1604,7 @@ static int mds_get_parents_children_locked(struct obd_device *obd,
 
         c1_res_id.name[0] = inode->i_ino;
         c1_res_id.name[1] = inode->i_generation;
+
         iput(inode);
 
         /* Step 4: Lookup the target child entry */
@@ -1679,11 +1713,11 @@ static int mds_reint_rename(struct mds_update_record *rec, int offset,
         struct dentry *de_tgtdir = NULL;
         struct dentry *de_old = NULL;
         struct dentry *de_new = NULL;
+        struct inode *old_inode = NULL, *new_inode = NULL;
         struct mds_obd *mds = mds_req2mds(req);
         struct lustre_handle dlm_handles[4];
         struct mds_body *body = NULL;
-        int rc = 0, lock_count = 3;
-        int cleanup_phase = 0;
+        int rc = 0, lock_count = 3, cleanup_phase = 0;
         void *handle = NULL;
         ENTRY;
 
@@ -1706,74 +1740,107 @@ static int mds_reint_rename(struct mds_update_record *rec, int offset,
 
         cleanup_phase = 1; /* parent(s), children, locks */
 
-        if (de_new->d_inode)
+        old_inode = de_old->d_inode;
+        new_inode = de_new->d_inode;
+
+        if (new_inode != NULL)
                 lock_count = 4;
 
         /* sanity check for src inode */
-        if (de_old->d_inode->i_ino == de_srcdir->d_inode->i_ino ||
-            de_old->d_inode->i_ino == de_tgtdir->d_inode->i_ino)
+        if (old_inode->i_ino == de_srcdir->d_inode->i_ino ||
+            old_inode->i_ino == de_tgtdir->d_inode->i_ino)
                 GOTO(cleanup, rc = -EINVAL);
 
+        if (new_inode == NULL)
+                goto no_unlink;
+
+        igrab(new_inode);
+        cleanup_phase = 2; /* iput(new_inode) when finished */
+
         /* sanity check for dest inode */
-        if (de_new->d_inode &&
-            (de_new->d_inode->i_ino == de_srcdir->d_inode->i_ino ||
-             de_new->d_inode->i_ino == de_tgtdir->d_inode->i_ino))
+        if (new_inode->i_ino == de_srcdir->d_inode->i_ino ||
+            new_inode->i_ino == de_tgtdir->d_inode->i_ino)
                 GOTO(cleanup, rc = -EINVAL);
 
-        if (de_old->d_inode == de_new->d_inode) {
+        if (old_inode == new_inode)
                 GOTO(cleanup, rc = 0);
-        }
 
         /* if we are about to remove the target at first, pass the EA of
          * that inode to client to perform and cleanup on OST */
         body = lustre_msg_buf(req->rq_repmsg, 0, sizeof (*body));
         LASSERT(body != NULL);
 
-        if (de_new->d_inode &&
-            S_ISREG(de_new->d_inode->i_mode) &&
-            de_new->d_inode->i_nlink == 1 &&
-            mds_open_orphan_count(de_new->d_inode) == 0) {
-                mds_pack_inode2fid(&body->fid1, de_new->d_inode);
-                mds_pack_inode2body(body, de_new->d_inode);
-                mds_pack_md(obd, req->rq_repmsg, 1, body, de_new->d_inode, 1);
-                if (!(body->valid & OBD_MD_FLEASIZE)) {
-                        body->valid |= (OBD_MD_FLSIZE | OBD_MD_FLBLOCKS |
-                        OBD_MD_FLATIME | OBD_MD_FLMTIME);
-                } else {
-                        /* XXX need log unlink? */
+        /* child i_alloc_sem protects orphan_dec_test && is_orphan race */
+        DOWN_READ_I_ALLOC_SEM(new_inode);
+        cleanup_phase = 3; /* up(&new_inode->i_sem) when finished */
+
+        if ((S_ISDIR(new_inode->i_mode) && new_inode->i_nlink == 2) ||
+            new_inode->i_nlink == 1) {
+                if (mds_orphan_open_count(new_inode) > 0) {
+                        /* need to lock pending_dir before transaction */
+                        down(&mds->mds_pending_dir->d_inode->i_sem);
+                        cleanup_phase = 4; /* up(&pending_dir->i_sem) */
+                } else if (S_ISREG(new_inode->i_mode)) {
+                        mds_pack_inode2fid(&body->fid1, new_inode);
+                        mds_pack_inode2body(body, new_inode);
+                        mds_pack_md(obd, req->rq_repmsg, 1, body, new_inode, MDS_PACK_MD_LOCK);
                 }
         }
 
+no_unlink:
         OBD_FAIL_WRITE(OBD_FAIL_MDS_REINT_RENAME_WRITE,
                        de_srcdir->d_inode->i_sb);
 
+        /* Check if we are moving old entry into its child. 2.6 does not
+           check for this in vfs_rename() anymore */
+        if (is_subdir(de_new, de_old))
+                GOTO(cleanup, rc = -EINVAL);
+
         handle = fsfilt_start(obd, de_tgtdir->d_inode, FSFILT_OP_RENAME, NULL);
         if (IS_ERR(handle))
                 GOTO(cleanup, rc = PTR_ERR(handle));
 
-        /* FIXME need adjust the journal block count? */
-        /* if the target should be moved to PENDING, we at first increase the
-         * link and later vfs_rename() will decrease the link count again */
-        if (de_new->d_inode &&
-            S_ISREG(de_new->d_inode->i_mode) &&
-            de_new->d_inode->i_nlink == 1 &&
-            mds_open_orphan_count(de_new->d_inode) > 0) {
-                rc = mds_add_link_orphan(rec, obd, de_new);
-                if (rc)
-                        GOTO(cleanup, rc);
-        }
-
         lock_kernel();
         de_old->d_fsdata = req;
         de_new->d_fsdata = req;
+
         rc = vfs_rename(de_srcdir->d_inode, de_old, de_tgtdir->d_inode, de_new);
         unlock_kernel();
 
+        if (rc == 0 && new_inode != NULL && new_inode->i_nlink == 0) {
+                if (mds_orphan_open_count(new_inode) > 0)
+                        rc = mds_orphan_add_link(rec, obd, de_new);
+
+                if (rc == 1)
+                        GOTO(cleanup, rc = 0);
+
+                if (!S_ISREG(new_inode->i_mode))
+                        GOTO(cleanup, rc);
+
+                if (!(body->valid & OBD_MD_FLEASIZE)) {
+                        body->valid |= (OBD_MD_FLSIZE | OBD_MD_FLBLOCKS |
+                                        OBD_MD_FLATIME | OBD_MD_FLMTIME);
+                } else if (mds_log_op_unlink(obd, new_inode,
+                                             lustre_msg_buf(req->rq_repmsg,1,0),
+                                             req->rq_repmsg->buflens[1],
+                                             lustre_msg_buf(req->rq_repmsg,2,0),
+                                             req->rq_repmsg->buflens[2]) > 0) {
+                        body->valid |= OBD_MD_FLCOOKIE;
+                }
+        }
+
         GOTO(cleanup, rc);
 cleanup:
         rc = mds_finish_transno(mds, de_tgtdir ? de_tgtdir->d_inode : NULL,
                                 handle, req, rc, 0);
+
         switch (cleanup_phase) {
+        case 4:
+                up(&mds->mds_pending_dir->d_inode->i_sem);
+        case 3:
+                UP_READ_I_ALLOC_SEM(new_inode);
+        case 2:
+                iput(new_inode);
         case 1:
                 if (rc) {
                         if (lock_count == 4)
@@ -1783,8 +1850,7 @@ cleanup:
                         ldlm_lock_decref(&(dlm_handles[0]), LCK_PW);
                 } else {
                         if (lock_count == 4)
-                                ptlrpc_save_lock(req,
-                                              &(dlm_handles[3]), LCK_EX);
+                                ptlrpc_save_lock(req,&(dlm_handles[3]), LCK_EX);
                         ptlrpc_save_lock(req, &(dlm_handles[2]), LCK_EX);
                         ptlrpc_save_lock(req, &(dlm_handles[1]), LCK_PW);
                         ptlrpc_save_lock(req, &(dlm_handles[0]), LCK_PW);
index a79e44c..0de3f3b 100644 (file)
 
 #include "mds_internal.h"
 
-
-/* If we are unlinking an open file/dir (i.e. creating an orphan) then
- * we instead link the inode into the PENDING directory until it is
- * finally released.  We can't simply call mds_reint_rename() or some
- * part thereof, because we don't have the inode to check for link
- * count/open status until after it is locked.
- *
- * For lock ordering, we always get the PENDING, then pending_child lock
- * last to avoid deadlocks.
- */
-
-int mds_open_unlink_rename(struct mds_update_record *rec,
-                           struct obd_device *obd, struct dentry *dparent,
-                           struct dentry *dchild, void **handle)
-{
-        struct mds_obd *mds = &obd->u.mds;
-        struct inode *pending_dir = mds->mds_pending_dir->d_inode;
-        struct dentry *pending_child;
-        char fidname[LL_FID_NAMELEN];
-        int fidlen = 0, rc;
-        unsigned mode;
-        ENTRY;
-
-        LASSERT(!mds_inode_is_orphan(dchild->d_inode));
-
-        down(&pending_dir->i_sem);
-        fidlen = ll_fid2str(fidname, dchild->d_inode->i_ino,
-                            dchild->d_inode->i_generation);
-
-        CDEBUG(D_HA, "pending destroy of %dx open file %s = %s\n",
-               mds_open_orphan_count(dchild->d_inode), rec->ur_name, fidname);
-
-        pending_child = lookup_one_len(fidname, mds->mds_pending_dir, fidlen);
-        if (IS_ERR(pending_child))
-                GOTO(out_lock, rc = PTR_ERR(pending_child));
-
-        if (pending_child->d_inode != NULL) {
-                CERROR("re-destroying orphan file %s?\n", rec->ur_name);
-                LASSERT(pending_child->d_inode == dchild->d_inode);
-                GOTO(out_dput, rc = 0);
-        }
-
-        /* link() is semanticaly-wrong for S_IFDIR, so we set S_IFREG
-         * for linking and return real mode back then -bzzz */
-        mode = dchild->d_inode->i_mode;
-        dchild->d_inode->i_mode = S_IFREG;
-        rc = vfs_link(dchild, pending_dir, pending_child);
-        if (rc)
-                CERROR("error linking orphan %s to PENDING: rc = %d\n",
-                       rec->ur_name, rc);
-        else
-                mds_inode_set_orphan(dchild->d_inode);
-
-        /* return mode and correct i_nlink if inode is directory */
-        LASSERT(dchild->d_inode->i_nlink == 1);
-        dchild->d_inode->i_mode = mode;
-        if ((mode & S_IFMT) == S_IFDIR) {
-                dchild->d_inode->i_nlink++;
-                pending_dir->i_nlink++;
-        }
-        mark_inode_dirty(dchild->d_inode);
-
-out_dput:
-        dput(pending_child);
-out_lock:
-        up(&pending_dir->i_sem);
-        RETURN(rc);
-}
-
 static int mds_osc_destroy_orphan(struct mds_obd *mds,
                                   struct inode *inode,
                                   struct lov_mds_md *lmm,
@@ -149,7 +80,7 @@ static int mds_osc_destroy_orphan(struct mds_obd *mds,
         rc = obd_destroy(mds->mds_osc_exp, oa, lsm, &oti);
         obdo_free(oa);
         if (rc)
-                CERROR("destroy orphan objid 0x"LPX64" on ost error "
+                CDEBUG(D_INODE, "destroy orphan objid 0x"LPX64" on ost error "
                        "%d\n", lsm->lsm_object_id, rc);
 out_free_memmd:
         obd_free_memmd(mds->mds_osc_exp, &lsm);
@@ -198,19 +129,6 @@ static int mds_unlink_orphan(struct obd_device *obd, struct dentry *dchild,
                 GOTO(out_free_lmm, rc);
         }
 
-        down(&inode->i_sem);
-        rc = fsfilt_get_md(obd, inode, lmm, mds->mds_max_mdsize);
-        up(&inode->i_sem);
-
-        if (rc < 0) {
-                CERROR("Error %d reading eadata for ino %lu\n",
-                       rc, inode->i_ino);
-                GOTO(out_free_lmm, rc);
-        } else if (rc > 0) {
-                lmm_size = rc;
-                rc = 0;
-        }
-
         if (S_ISDIR(inode->i_mode))
                 rc = vfs_rmdir(pending_dir, dchild);
         else
@@ -309,18 +227,21 @@ int mds_cleanup_orphans(struct obd_device *obd)
                 }
 
                 child_inode = dchild->d_inode;
+                DOWN_READ_I_ALLOC_SEM(child_inode);
                 if (mds_inode_is_orphan(child_inode) &&
-                    mds_open_orphan_count(child_inode)) {
-                        CWARN("orphan %s was re-opened during recovery\n", d_name);
+                    mds_orphan_open_count(child_inode)) {
+                        UP_READ_I_ALLOC_SEM(child_inode);
+                        CWARN("orphan %s re-opened during recovery\n", d_name);
                         GOTO(next, rc = 0);
                 }
+                UP_READ_I_ALLOC_SEM(child_inode);
 
                 rc = mds_unlink_orphan(obd, dchild, child_inode, pending_dir);
                 if (rc == 0) {
                         item ++;
                         CWARN("removed orphan %s from MDS and OST\n", d_name);
                 } else {
-                        CERROR("removed orphan %s from MDS and OST failed,"
+                        CDEBUG(D_INODE, "removed orphan %s from MDS/OST failed,"
                                " rc = %d\n", d_name, rc);
                         rc = 0;
                 }
index 0429ceb..451a5e9 100644 (file)
@@ -534,7 +534,7 @@ struct obd_import *class_new_import(void)
 void class_destroy_import(struct obd_import *import)
 {
         LASSERT(import != NULL);
-        LASSERT((unsigned long)import != 0x5a5a5a5a);
+        LASSERT(import != LP_POISON);
 
         class_handle_unhash(&import->imp_handle);
 
index 6c53036..86bee78 100644 (file)
@@ -341,7 +341,7 @@ int llog_ioctl(struct llog_ctxt *ctxt, int cmd, struct obd_ioctl_data *data)
         case OBD_IOC_LLOG_REMOVE: {
                 struct llog_logid plain;
 
-                if (handle->lgh_hdr->llh_flags & cpu_to_le32(LLOG_F_IS_PLAIN)) {
+                if (handle->lgh_hdr->llh_flags & LLOG_F_IS_PLAIN) {
                         err = llog_destroy(handle);
                         if (!err)
                                 llog_free_handle(handle);
@@ -378,7 +378,7 @@ out:
 EXPORT_SYMBOL(llog_ioctl);
 
 int llog_catalog_list(struct obd_device *obd, int count,
-                     struct obd_ioctl_data *data)
+                      struct obd_ioctl_data *data)
 {
         int size, i;
         struct llog_catid *idarray;
index 049db79..88ac16c 100644 (file)
@@ -364,8 +364,6 @@ static int llog_cancel_rec_cb(struct llog_handle *llh, struct llog_rec_hdr *rec,
         RETURN(0);
 }
 
-
-
 /* Test log and catalogue processing */
 static int llog_test_5(struct obd_device *obd)
 {
index d5ef04c..9933871 100644 (file)
@@ -647,13 +647,13 @@ int lprocfs_alloc_obd_stats(struct obd_device *obd, unsigned num_private_stats)
         LPROCFS_OBD_OP_INIT(num_private_stats, stats, san_preprw);
         LPROCFS_OBD_OP_INIT(num_private_stats, stats, init_export);
         LPROCFS_OBD_OP_INIT(num_private_stats, stats, destroy_export);
-        LPROCFS_OBD_OP_INIT(num_private_stats, stats, llog_init); 
-        LPROCFS_OBD_OP_INIT(num_private_stats, stats, llog_finish); 
-        LPROCFS_OBD_OP_INIT(num_private_stats, stats, pin); 
+        LPROCFS_OBD_OP_INIT(num_private_stats, stats, llog_init);
+        LPROCFS_OBD_OP_INIT(num_private_stats, stats, llog_finish);
+        LPROCFS_OBD_OP_INIT(num_private_stats, stats, pin);
         LPROCFS_OBD_OP_INIT(num_private_stats, stats, unpin);
         LPROCFS_OBD_OP_INIT(num_private_stats, stats, import_event);
         LPROCFS_OBD_OP_INIT(num_private_stats, stats, notify);
-        
+
         for (i = num_private_stats; i < num_stats; i++) {
                 /* If this LBUGs, it is likely that an obd
                  * operation was added to struct obd_ops in
@@ -787,6 +787,73 @@ void lprocfs_oh_clear(struct obd_histogram *oh)
 }
 EXPORT_SYMBOL(lprocfs_oh_clear);
 
+int lprocfs_obd_rd_recovery_status(char *page, char **start, off_t off,
+                                          int count, int *eof, void *data)
+{
+        struct obd_device *obd = data;
+        int len = 0, n,
+                connected = obd->obd_connected_clients,
+                max_recoverable = obd->obd_max_recoverable_clients,
+                recoverable = obd->obd_recoverable_clients,
+                completed = max_recoverable - recoverable,
+                queue_len = obd->obd_requests_queued_for_recovery,
+                replayed = obd->obd_replayed_requests;
+        __u64 next_transno = obd->obd_next_recovery_transno;
+
+        LASSERT(obd != NULL);
+        *eof = 1;
+
+        n = snprintf(page, count, "status: ");
+        page += n; len += n; count -= n;
+        if (obd->obd_max_recoverable_clients == 0) {
+                n = snprintf(page, count, "INACTIVE\n");
+                return len + n;
+        }
+
+        /* sampled unlocked, but really... */
+        if (obd->obd_recovering == 0) {
+                n = snprintf(page, count, "COMPLETE\n");
+                page += n; len += n; count -= n;
+
+                n = snprintf(page, count, "recovery_start: %lu\n",
+                             obd->obd_recovery_start);
+                page += n; len += n; count -= n;
+                n = snprintf(page, count, "recovery_end: %lu\n",
+                             obd->obd_recovery_end);
+                page += n; len += n; count -= n;
+                n = snprintf(page, count, "recovered_clients: %d\n",
+                             completed);
+                page += n; len += n; count -= n;
+                n = snprintf(page, count, "unrecovered_clients: %d\n",
+                             obd->obd_recoverable_clients);
+                page += n; len += n; count -= n;
+                n = snprintf(page, count, "last_transno: "LPD64"\n",
+                             next_transno - 1);
+                page += n; len += n; count -= n;
+                n = snprintf(page, count, "replayed_requests: %d\n", replayed);
+                return len + n;
+        }
+
+        n = snprintf(page, count, "RECOVERING\n");
+        page += n; len += n; count -= n;
+        n = snprintf(page, count, "recovery_start: %lu\n",
+                     obd->obd_recovery_start);
+        page += n; len += n; count -= n;
+        n = snprintf(page, count, "connected_clients: %d/%d\n",
+                     connected, max_recoverable);
+        page += n; len += n; count -= n;
+        n = snprintf(page, count, "completed_clients: %d/%d\n",
+                     completed, max_recoverable);
+        page += n; len += n; count -= n;
+        n = snprintf(page, count, "replayed_requests: %d/??\n", replayed);
+        page += n; len += n; count -= n;
+        n = snprintf(page, count, "queued_requests: %d\n", queue_len);
+        page += n; len += n; count -= n;
+        n = snprintf(page, count, "next_transno: "LPD64"\n", next_transno);
+        return len + n;
+}
+EXPORT_SYMBOL(lprocfs_obd_rd_recovery_status);
+
 #endif /* LPROCFS*/
 
 EXPORT_SYMBOL(lprocfs_register);
index f07cc45..b7fa894 100644 (file)
@@ -52,6 +52,7 @@ enum {
         OBD_TIMEOUT,            /* RPC timeout before recovery/intr */
         OBD_DUMP_ON_TIMEOUT,    /* dump kernel debug log upon eviction */
         OBD_UPCALL,             /* path to recovery upcall */
+        OBD_MEMUSED,            /* bytes currently OBD_ALLOCated */
         OBD_SYNCFILTER,         /* XXX temporary, as we play with sync osts.. */
         OBD_LDLM_TIMEOUT,       /* LDLM timeout for ASTs before client eviction */
 };
@@ -69,6 +70,8 @@ static ctl_table obd_table[] = {
         /* XXX need to lock so we avoid update races with recovery upcall! */
         {OBD_UPCALL, "upcall", obd_lustre_upcall, 128, 0644, NULL,
                 &proc_dostring, &sysctl_string },
+        {OBD_MEMUSED, "memused", (int *)&obd_memory.counter,
+                sizeof(int), 0644, NULL, &proc_dointvec},
         {OBD_SYNCFILTER, "filter_sync_on_commit", &obd_sync_filter, sizeof(int),
                 0644, NULL, &proc_dointvec},
         {OBD_LDLM_TIMEOUT, "ldlm_timeout", &ldlm_timeout, sizeof(int), 0644,
index d09de6b..5d26f00 100644 (file)
@@ -4,7 +4,6 @@ config.status
 configure
 Makefile
 .deps
-.depend
 TAGS
 .*.cmd
 autoMakefile.in
@@ -13,3 +12,4 @@ autoMakefile
 *.mod.c
 .*.flags
 .tmp_versions
+.depend
index dd4e563..eabd4a8 100644 (file)
@@ -162,8 +162,6 @@ static int filter_client_add(struct obd_device *obd, struct filter_obd *filter,
                         RETURN(-ENOMEM);
                 }
                 if (test_and_set_bit(cl_idx, bitmap)) {
-                        CERROR("FILTER client %d: found bit is set in bitmap\n",
-                               cl_idx);
                         cl_idx = find_next_zero_bit(bitmap,
                                                     FILTER_LR_MAX_CLIENTS,
                                                     cl_idx);
@@ -479,6 +477,7 @@ static int filter_init_server_data(struct obd_device *obd, struct file * filp)
                 fcd = NULL;
                 exp->exp_replay_needed = 1;
                 obd->obd_recoverable_clients++;
+                obd->obd_max_recoverable_clients++;
                 class_export_put(exp);
 
                 CDEBUG(D_OTHER, "client at idx %d has last_rcvd = "LPU64"\n",
@@ -500,6 +499,7 @@ static int filter_init_server_data(struct obd_device *obd, struct file * filp)
                       le64_to_cpu(fsd->fsd_last_transno));
                 obd->obd_next_recovery_transno = obd->obd_last_committed + 1;
                 obd->obd_recovering = 1;
+                obd->obd_recovery_start = LTIME_S(CURRENT_TIME);
         }
 
 out:
@@ -978,10 +978,17 @@ struct dentry *filter_fid2dentry(struct obd_device *obd,
         if (dir_dentry == NULL)
                 filter_parent_unlock(dparent);
         if (IS_ERR(dchild)) {
-                CERROR("child lookup error %ld\n", PTR_ERR(dchild));
+                CERROR("%s: child lookup error %ld\n", obd->obd_name,
+                       PTR_ERR(dchild));
                 RETURN(dchild);
         }
 
+        if (dchild->d_inode != NULL && is_bad_inode(dchild->d_inode)) {
+                CERROR("%s: got bad inode "LPU64"\n", obd->obd_name, id);
+                f_dput(dchild);
+                RETURN(ERR_PTR(-ENOENT));
+        }
+
         CDEBUG(D_INODE, "got child objid %s: %p, count = %d\n",
                name, dchild, atomic_read(&dchild->d_count));
 
@@ -1048,10 +1055,10 @@ static int filter_intent_policy(struct ldlm_namespace *ns,
         struct ldlm_resource *res = lock->l_resource;
         ldlm_processing_policy policy;
         struct ost_lvb *res_lvb, *reply_lvb;
+        struct ldlm_reply *rep;
         struct list_head *tmp;
         ldlm_error_t err;
-        int tmpflags = 0, rc, repsize[2] = {sizeof(struct ldlm_reply),
-                                            sizeof(struct ost_lvb) };
+        int tmpflags = 0, rc, repsize[2] = {sizeof(*rep), sizeof(*reply_lvb)};
         ENTRY;
 
         policy = ldlm_get_processing_policy(res);
@@ -1062,6 +1069,9 @@ static int filter_intent_policy(struct ldlm_namespace *ns,
         if (rc)
                 RETURN(req->rq_status = rc);
 
+        rep = lustre_msg_buf(req->rq_repmsg, 0, sizeof(*rep));
+        LASSERT(rep != NULL);
+
         reply_lvb = lustre_msg_buf(req->rq_repmsg, 1, sizeof(*reply_lvb));
         LASSERT(reply_lvb != NULL);
 
@@ -1103,7 +1113,7 @@ static int filter_intent_policy(struct ldlm_namespace *ns,
         down(&res->lr_lvb_sem);
         res_lvb = res->lr_lvb_data;
         LASSERT(res_lvb != NULL);
-        memcpy(reply_lvb, res_lvb, sizeof(*reply_lvb));
+        *reply_lvb = *res_lvb;
         up(&res->lr_lvb_sem);
 
         list_for_each(tmp, &res->lr_granted) {
@@ -1134,7 +1144,13 @@ static int filter_intent_policy(struct ldlm_namespace *ns,
         if (l == NULL)
                 RETURN(ELDLM_LOCK_ABORTED);
 
-        LASSERT(l->l_glimpse_ast != NULL);
+        if (l->l_glimpse_ast == NULL) {
+                /* We are racing with unlink(); just return -ENOENT */
+                rep->lock_policy_res1 = -ENOENT;
+                goto out;
+        }
+
+        LASSERTF(l->l_glimpse_ast != NULL, "l == %p", l);
         rc = l->l_glimpse_ast(l, NULL); /* this will update the LVB */
         if (rc != 0 && res->lr_namespace->ns_lvbo &&
             res->lr_namespace->ns_lvbo->lvbo_update) {
@@ -1142,10 +1158,10 @@ static int filter_intent_policy(struct ldlm_namespace *ns,
         }
 
         down(&res->lr_lvb_sem);
-        reply_lvb->lvb_size = res_lvb->lvb_size;
-        reply_lvb->lvb_blocks = res_lvb->lvb_blocks;
+        *reply_lvb = *res_lvb;
         up(&res->lr_lvb_sem);
 
+ out:
         LDLM_LOCK_PUT(l);
 
         RETURN(ELDLM_LOCK_ABORTED);
@@ -1158,6 +1174,7 @@ int filter_common_setup(struct obd_device *obd, obd_count len, void *buf,
         struct lustre_cfg* lcfg = buf;
         struct filter_obd *filter = &obd->u.filter;
         struct vfsmount *mnt;
+        char ns_name[48];
         int rc = 0;
         ENTRY;
 
@@ -1221,8 +1238,8 @@ int filter_common_setup(struct obd_device *obd, obd_count len, void *buf,
         spin_lock_init(&filter->fo_w_discont_blocks.oh_lock);
         filter->fo_readcache_max_filesize = FILTER_MAX_CACHE_SIZE;
 
-        obd->obd_namespace = ldlm_namespace_new("filter-tgt",
-                                                LDLM_NAMESPACE_SERVER);
+        sprintf(ns_name, "filter-%s", obd->obd_uuid.uuid);
+        obd->obd_namespace = ldlm_namespace_new(ns_name, LDLM_NAMESPACE_SERVER);
         if (obd->obd_namespace == NULL)
                 GOTO(err_post, rc = -ENOMEM);
         obd->obd_namespace->ns_lvbp = obd;
@@ -1317,6 +1334,7 @@ static int filter_cleanup(struct obd_device *obd, int flags)
                         RETURN(-EBUSY);
                 }
         }
+        target_cleanup_recovery(obd);
 
         ldlm_namespace_free(obd->obd_namespace, flags & OBD_OPT_FORCE);
 
@@ -1579,7 +1597,7 @@ struct dentry *__filter_oa2dentry(struct obd_device *obd,
         }
 
         if (dchild->d_inode == NULL) {
-                CERROR("%s: %s on non-existent object: "LPU64"\n", 
+                CERROR("%s: %s on non-existent object: "LPU64"\n",
                        obd->obd_name, what, oa->o_id);
                 f_dput(dchild);
                 RETURN(ERR_PTR(-ENOENT));
@@ -2375,7 +2393,7 @@ static struct llog_operations filter_size_orig_logops = {
 };
 
 static int filter_llog_init(struct obd_device *obd, struct obd_device *tgt,
-                            int count, struct llog_catid *logid)
+                            int count, struct llog_catid *catid)
 {
         struct llog_ctxt *ctxt;
         int rc;
index 6203418..688f28d 100644 (file)
@@ -92,7 +92,7 @@ enum {
         LPROC_FILTER_LAST,
 };
 
-#define FILTER_MAX_CACHE_SIZE OBD_OBJECT_EOF
+#define FILTER_MAX_CACHE_SIZE (32 * 1024 * 1024) /* was OBD_OBJECT_EOF */
 
 /* filter.c */
 void f_dput(struct dentry *);
index 4181c55..8d43c7c 100644 (file)
@@ -252,6 +252,7 @@ int filter_commitrw_write(struct obd_export *exp, struct obdo *oa, int objcount,
         unsigned long now = jiffies; /* DEBUGGING OST TIMEOUTS */
         void *wait_handle;
         ENTRY;
+
         LASSERT(oti != NULL);
         LASSERT(objcount == 1);
         LASSERT(current->journal_info == NULL);
@@ -307,6 +308,7 @@ int filter_commitrw_write(struct obd_export *exp, struct obdo *oa, int objcount,
         oti->oti_handle = fsfilt_brw_start(obd, objcount, &fso, niocount, res,
                                            oti);
         if (IS_ERR(oti->oti_handle)) {
+                up(&inode->i_sem);
                 rc = PTR_ERR(oti->oti_handle);
                 CDEBUG(rc == -ENOSPC ? D_INODE : D_ERROR,
                        "error starting transaction: rc = %d\n", rc);
@@ -318,6 +320,7 @@ int filter_commitrw_write(struct obd_export *exp, struct obdo *oa, int objcount,
                 CERROR("slow brw_start %lus\n", (jiffies - now) / HZ);
 
         iattr_from_obdo(&iattr,oa,OBD_MD_FLATIME|OBD_MD_FLMTIME|OBD_MD_FLCTIME);
+        /* filter_direct_io drops i_sem */
         rc = filter_direct_io(OBD_BRW_WRITE, res->dentry, iobuf, exp, &iattr,
                               oti, &wait_handle);
         if (rc == 0)
index 9787aaa..77eb003 100644 (file)
@@ -228,9 +228,9 @@ int filter_commitrw_write(struct obd_export *exp, struct obdo *oa,
         if (iattr.ia_size > inode->i_size) {
                 CDEBUG(D_INFO, "setting i_size to "LPU64"\n",
                        iattr.ia_size);
-                       
+
                 iattr.ia_valid |= ATTR_SIZE;
-                       
+
                 fsfilt_setattr(obd, res->dentry, oti->oti_handle,
                                &iattr, 0);
         }
index eb3df7a..f462007 100644 (file)
@@ -97,9 +97,11 @@ void filter_cancel_cookies_cb(struct obd_device *obd, __u64 transno,
                                      void *cb_data, int error)
 {
         struct llog_cookie *cookie = cb_data;
-        llog_cancel(llog_get_context(obd, cookie->lgc_subsys + 1),
-                             NULL, 1, cookie, 0);
-                             //NULL, 1, cookie, OBD_LLOG_FL_SENDNOW);
+        int rc;
+        rc = llog_cancel(llog_get_context(obd, cookie->lgc_subsys + 1),
+                         NULL, 1, cookie, 0);
+        if (rc)
+                CERROR("error cancelling log cookies: rc = %d\n", rc);
         OBD_FREE(cb_data, sizeof(struct llog_cookie));
 }
 
@@ -119,7 +121,7 @@ int filter_recov_log_unlink_cb(struct llog_handle *llh,
         obd_id oid;
         int rc = 0;
         ENTRY;
-                                                                                                                             
+
         if (!(le32_to_cpu(llh->lgh_hdr->llh_flags) & LLOG_F_IS_PLAIN)) {
                 CERROR("log is not plain\n");
                 RETURN(-EINVAL);
index 3ca1fad..bba72c7 100644 (file)
@@ -36,6 +36,7 @@
 
 #include "filter_internal.h"
 
+/* Called with res->lr_lvb_sem held */
 static int filter_lvbo_init(struct ldlm_resource *res)
 {
         int rc = 0;
@@ -45,13 +46,13 @@ static int filter_lvbo_init(struct ldlm_resource *res)
         ENTRY;
 
         LASSERT(res);
+        LASSERT(down_trylock(&res->lr_lvb_sem) != 0);
 
         /* we only want lvb's for object resources */
         /* check for internal locks: these have name[1] != 0 */
         if (res->lr_name.name[1])
                 RETURN(0);
 
-        down(&res->lr_lvb_sem);
         if (res->lr_lvb_data)
                 GOTO(out, rc = 0);
 
@@ -85,7 +86,6 @@ static int filter_lvbo_init(struct ldlm_resource *res)
         f_dput(dentry);
  out:
         /* Don't free lvb data on lookup error */
-        up(&res->lr_lvb_sem);
         return rc;
 }
 
index 8f64926..f5ba5ec 100644 (file)
@@ -140,6 +140,7 @@ static struct lprocfs_vars lprocfs_obd_vars[] = {
         { "readcache_max_filesize",
                           lprocfs_filter_rd_readcache,
                           lprocfs_filter_wr_readcache, 0 },
+        { "recovery_status", lprocfs_obd_rd_recovery_status, 0, 0 },
         { 0 }
 };
 
index 078d0d1..7060ee1 100644 (file)
@@ -296,21 +296,22 @@ static int osc_rpc_stats_seq_show(struct seq_file *seq, void *v)
         struct client_obd *cli = &dev->u.cli;
         unsigned long flags;
         unsigned long read_tot = 0, write_tot = 0, read_cum, write_cum;
-        int i, rpcs, r, w;
+        int i;
 
         do_gettimeofday(&now);
 
         spin_lock_irqsave(&cli->cl_loi_list_lock, flags);
 
-        rpcs = cli->cl_brw_in_flight;
-        r = cli->cl_pending_r_pages;
-        w = cli->cl_pending_w_pages;
-
         seq_printf(seq, "snapshot_time:         %lu:%lu (secs:usecs)\n",
                    now.tv_sec, now.tv_usec);
-        seq_printf(seq, "RPCs in flight:        %d\n", rpcs);
-        seq_printf(seq, "pending write pages:   %d\n", w);
-        seq_printf(seq, "pending read pages:   %d\n", r);
+        seq_printf(seq, "read RPCs in flight:  %d\n",
+                   cli->cl_r_in_flight);
+        seq_printf(seq, "write RPCs in flight: %d\n",
+                   cli->cl_w_in_flight);
+        seq_printf(seq, "pending write pages:  %d\n",
+                   cli->cl_pending_w_pages);
+        seq_printf(seq, "pending read pages:   %d\n",
+                   cli->cl_pending_r_pages);
 
         seq_printf(seq, "\n\t\t\tread\t\t\twrite\n");
         seq_printf(seq, "pages per rpc         rpcs   %% cum %% |");
index 754b46e..d5a6141 100644 (file)
@@ -72,20 +72,24 @@ static int osc_interpret_create(struct ptlrpc_request *req, void *data,
 
         oscc = req->rq_async_args.pointer_arg[0];
         spin_lock(&oscc->oscc_lock);
+        oscc->oscc_flags &= ~OSCC_FLAG_CREATING;
         if (body)
                 oscc->oscc_last_id = body->oa.o_id;
         if (rc == -ENOSPC) {
                 DEBUG_REQ(D_INODE, req, "OST out of space, flagging");
                 oscc->oscc_flags |= OSCC_FLAG_NOSPC;
+                spin_unlock(&oscc->oscc_lock);
         } else if (rc != 0 && rc != -EIO) {
                 DEBUG_REQ(D_ERROR, req,
                           "unknown rc %d from async create: failing oscc",
                           rc);
                 oscc->oscc_flags |= OSCC_FLAG_RECOVERING;
+                spin_unlock(&oscc->oscc_lock);
                 ptlrpc_fail_import(req->rq_import, req->rq_import_generation);
+        } else {
+                spin_unlock(&oscc->oscc_lock);
         }
-        oscc->oscc_flags &= ~OSCC_FLAG_CREATING;
-        spin_unlock(&oscc->oscc_lock);
+
 
         CDEBUG(D_HA, "preallocated through id "LPU64" (last used "LPU64")\n",
                oscc->oscc_last_id, oscc->oscc_next_id);
@@ -221,19 +225,22 @@ int osc_create(struct obd_export *exp, struct obdo *oa,
                 RETURN(osc_real_create(exp, oa, ea, oti));
         }
 
-        lsm = *ea;
-        if (lsm == NULL) {
-                rc = obd_alloc_memmd(exp, &lsm);
-                if (rc < 0)
-                        RETURN(rc);
-        }
-
        /* this is the special case where create removes orphans */
        if ((oa->o_valid & OBD_MD_FLFLAGS) &&
            oa->o_flags == OBD_FL_DELORPHAN) {
+                spin_lock(&oscc->oscc_lock);
+                if (oscc->oscc_flags & OSCC_FLAG_SYNC_IN_PROGRESS) {
+                        spin_unlock(&oscc->oscc_lock);
+                        return -EBUSY;
+                }
+                if (!(oscc->oscc_flags & OSCC_FLAG_RECOVERING)) {
+                        spin_unlock(&oscc->oscc_lock);
+                        return 0;
+                }
+                oscc->oscc_flags |= OSCC_FLAG_SYNC_IN_PROGRESS;
                 CDEBUG(D_HA, "%s: oscc recovery started\n",
                         exp->exp_obd->obd_name);
-                LASSERT(oscc->oscc_flags & OSCC_FLAG_RECOVERING);
+                spin_unlock(&oscc->oscc_lock);
 
                 /* delete from next_id on up */
                 oa->o_valid |= OBD_MD_FLID;
@@ -245,17 +252,17 @@ int osc_create(struct obd_export *exp, struct obdo *oa,
                 rc = osc_real_create(exp, oa, ea, NULL);
 
                 spin_lock(&oscc->oscc_lock);
+                oscc->oscc_flags &= ~OSCC_FLAG_SYNC_IN_PROGRESS;
                 if (rc == 0 || rc == -ENOSPC) {
                         if (rc == -ENOSPC)
                                 oscc->oscc_flags |= OSCC_FLAG_NOSPC;
                         oscc->oscc_flags &= ~OSCC_FLAG_RECOVERING;
                         oscc->oscc_last_id = oa->o_id;
-                        CDEBUG(D_HA, "%s: oscc recovery finished: %d\n", 
+                        CDEBUG(D_HA, "%s: oscc recovery finished: %d\n",
                                exp->exp_obd->obd_name, rc);
                         wake_up(&oscc->oscc_waitq);
-                        
                 } else {
-                        CDEBUG(D_ERROR, "%s: oscc recovery failed: %d\n", 
+                        CDEBUG(D_ERROR, "%s: oscc recovery failed: %d\n",
                                exp->exp_obd->obd_name, rc);
                 }
                 spin_unlock(&oscc->oscc_lock);
@@ -264,6 +271,13 @@ int osc_create(struct obd_export *exp, struct obdo *oa,
                 RETURN(rc);
         }
 
+        lsm = *ea;
+        if (lsm == NULL) {
+                rc = obd_alloc_memmd(exp, &lsm);
+                if (rc < 0)
+                        RETURN(rc);
+        }
+
         while (try_again) {
                 /* If orphans are being recovered, then we must wait until
                    it is finished before we can continue with create. */
index b14d013..bba36c0 100644 (file)
@@ -47,6 +47,7 @@ struct osc_cache_waiter {
 #define OSCC_FLAG_RECOVERING 1
 #define OSCC_FLAG_CREATING   2
 #define OSCC_FLAG_NOSPC      4 /* can't create more objects on this OST */
+#define OSCC_FLAG_SYNC_IN_PROGRESS  8 /* only allow one thread to sync */
 
 int osc_create(struct obd_export *exp, struct obdo *oa,
               struct lov_stripe_md **ea, struct obd_trans_info *oti);
index e1cc5ab..918ba44 100644 (file)
@@ -533,6 +533,11 @@ static void osc_consume_write_grant(struct client_obd *cli,
         LASSERT(cli->cl_avail_grant >= 0);
 }
 
+static unsigned long rpcs_in_flight(struct client_obd *cli)
+{
+        return cli->cl_r_in_flight + cli->cl_w_in_flight;
+}
+
 /* caller must hold loi_list_lock */
 void osc_wake_cache_waiters(struct client_obd *cli)
 {
@@ -549,9 +554,9 @@ void osc_wake_cache_waiters(struct client_obd *cli)
 
                 /* if still dirty cache but no grant wait for pending RPCs that
                  * may yet return us some grant before doing sync writes */
-                if (cli->cl_brw_in_flight && cli->cl_avail_grant < PAGE_SIZE) {
-                        CDEBUG(D_CACHE, "%d BRWs in flight, no grant\n",
-                               cli->cl_brw_in_flight);
+                if (cli->cl_w_in_flight && cli->cl_avail_grant < PAGE_SIZE) {
+                        CDEBUG(D_CACHE, "%u BRW writes in flight, no grant\n",
+                               cli->cl_w_in_flight);
                         return;
                 }
 
@@ -751,7 +756,9 @@ static int osc_brw_prep_request(int cmd, struct obd_import *imp,struct obdo *oa,
                 struct brw_page *pg_prev = pg - 1;
 
                 LASSERT(pg->count > 0);
-                LASSERT((pg->off & ~PAGE_MASK) + pg->count <= PAGE_SIZE);
+                LASSERTF((pg->off & ~PAGE_MASK) + pg->count <= PAGE_SIZE,
+                         "i: %d pg: %p off: "LPU64", count: %u\n", i, pg,
+                         pg->off, pg->count);
                 LASSERTF(i == 0 || pg->off > pg_prev->off,
                          "i %d p_c %u pg %p [pri %lu ind %lu] off "LPU64
                          " prev_pg %p [pri %lu ind %lu] off "LPU64"\n",
@@ -1211,7 +1218,10 @@ static int brw_interpret_oap(struct ptlrpc_request *request,
         /* We need to decrement before osc_ap_completion->osc_wake_cache_waiters
          * is called so we know whether to go to sync BRWs or wait for more
          * RPCs to complete */
-        cli->cl_brw_in_flight--;
+        if (request->rq_reqmsg->opc == OST_WRITE)
+                cli->cl_w_in_flight--;
+        else
+                cli->cl_r_in_flight--;
 
         /* the caller may re-use the oap after the completion call so
          * we need to clean it up a little */
@@ -1387,8 +1397,7 @@ static int osc_send_oap_rpc(struct client_obd *cli, struct lov_oinfo *loi,
                 /* take the page out of our book-keeping */
                 list_del_init(&oap->oap_pending_item);
                 lop_update_pending(cli, lop, cmd, -1);
-                if (!list_empty(&oap->oap_urgent_item))
-                        list_del_init(&oap->oap_urgent_item);
+                list_del_init(&oap->oap_urgent_item);
 
                 /* ask the caller for the size of the io as the rpc leaves. */
                 if (!(oap->oap_async_flags & ASYNC_COUNT_STABLE))
@@ -1455,17 +1464,20 @@ static int osc_send_oap_rpc(struct client_obd *cli, struct lov_oinfo *loi,
 #ifdef __KERNEL__
         if (cmd == OBD_BRW_READ) {
                 lprocfs_oh_tally_log2(&cli->cl_read_page_hist, page_count);
-                lprocfs_oh_tally(&cli->cl_read_rpc_hist, cli->cl_brw_in_flight);
+                lprocfs_oh_tally(&cli->cl_read_rpc_hist, cli->cl_r_in_flight);
         } else {
                 lprocfs_oh_tally_log2(&cli->cl_write_page_hist, page_count);
                 lprocfs_oh_tally(&cli->cl_write_rpc_hist,
-                                 cli->cl_brw_in_flight);
+                                 cli->cl_w_in_flight);
         }
 #endif
 
         spin_lock(&cli->cl_loi_list_lock);
 
-        cli->cl_brw_in_flight++;
+        if (cmd == OBD_BRW_READ)
+                cli->cl_r_in_flight++;
+        else
+                cli->cl_w_in_flight++;
         /* queued sync pages can be torn down while the pages
          * were between the pending list and the rpc */
         list_for_each(pos, &aa->aa_oaps) {
@@ -1478,8 +1490,9 @@ static int osc_send_oap_rpc(struct client_obd *cli, struct lov_oinfo *loi,
                 }
         }
 
-        CDEBUG(D_INODE, "req %p: %d pages, aa %p.  now %d in flight\n", request,
-               page_count, aa, cli->cl_brw_in_flight);
+        CDEBUG(D_INODE, "req %p: %d pages, aa %p.  now %dr/%dw in flight\n", 
+                        request, page_count, aa, cli->cl_r_in_flight,
+                        cli->cl_w_in_flight);
 
         oap->oap_request = ptlrpc_request_addref(request);
         request->rq_interpret_reply = brw_interpret_oap;
@@ -1603,9 +1616,9 @@ static void osc_check_rpcs(struct client_obd *cli)
         ENTRY;
 
         while ((loi = osc_next_loi(cli)) != NULL) {
-                LOI_DEBUG(loi, "%d in flight\n", cli->cl_brw_in_flight);
+                LOI_DEBUG(loi, "%lu in flight\n", rpcs_in_flight(cli));
 
-                if (cli->cl_brw_in_flight >= cli->cl_max_rpcs_in_flight)
+                if (rpcs_in_flight(cli) >= cli->cl_max_rpcs_in_flight)
                         break;
 
                 /* attempt some read/write balancing by alternating between
@@ -1670,7 +1683,7 @@ static int ocw_granted(struct client_obd *cli, struct osc_cache_waiter *ocw)
         int rc;
         ENTRY;
         spin_lock(&cli->cl_loi_list_lock);
-        rc = list_empty(&ocw->ocw_entry) || cli->cl_brw_in_flight == 0;
+        rc = list_empty(&ocw->ocw_entry) || rpcs_in_flight(cli) == 0;
         spin_unlock(&cli->cl_loi_list_lock);
         RETURN(rc);
 };
@@ -1701,7 +1714,7 @@ static int osc_enter_cache(struct client_obd *cli, struct lov_oinfo *loi,
         /* Make sure that there are write rpcs in flight to wait for.  This
          * is a little silly as this object may not have any pending but
          * other objects sure might. */
-        if (cli->cl_brw_in_flight) {
+        if (cli->cl_w_in_flight) {
                 list_add_tail(&ocw.ocw_entry, &cli->cl_cache_waiters);
                 init_waitqueue_head(&ocw.ocw_waitq);
                 ocw.ocw_oap = oap;
@@ -2369,6 +2382,8 @@ static int osc_enqueue(struct obd_export *exp, struct lov_stripe_md *lsm,
         struct ldlm_res_id res_id = { .name = {lsm->lsm_object_id} };
         struct obd_device *obd = exp->exp_obd;
         struct ost_lvb lvb;
+        struct ldlm_reply *rep;
+        struct ptlrpc_request *req = NULL;
         int rc;
         ENTRY;
 
@@ -2421,10 +2436,34 @@ static int osc_enqueue(struct obd_export *exp, struct lov_stripe_md *lsm,
         }
 
  no_match:
-        rc = ldlm_cli_enqueue(exp, NULL, obd->obd_namespace, res_id, type,
+        if (*flags & LDLM_FL_HAS_INTENT) {
+                int size[2] = {sizeof(struct ldlm_request), sizeof(lvb)};
+
+                req = ptlrpc_prep_req(class_exp2cliimp(exp), LDLM_ENQUEUE, 1,
+                                      size, NULL);
+                if (req == NULL)
+                        RETURN(-ENOMEM);
+
+                size[0] = sizeof(*rep);
+                req->rq_replen = lustre_msg_size(2, size);
+        }
+
+        rc = ldlm_cli_enqueue(exp, req, obd->obd_namespace, res_id, type,
                               policy, mode, flags, bl_cb, cp_cb, gl_cb, data,
                               &lvb, sizeof(lvb), lustre_swab_ost_lvb, lockh);
 
+        if (req != NULL) {
+                if (rc == ELDLM_LOCK_ABORTED) {
+                        /* swabbed by ldlm_cli_enqueue() */
+                        LASSERT_REPSWABBED(req, 0);
+                        rep = lustre_msg_buf(req->rq_repmsg, 0, sizeof(*rep));
+                        LASSERT(rep != NULL);
+                        if (rep->lock_policy_res1)
+                                rc = rep->lock_policy_res1;
+                }
+                ptlrpc_req_finished(req);
+        }
+
         if ((*flags & LDLM_FL_HAS_INTENT && rc == ELDLM_LOCK_ABORTED) || !rc) {
                 CDEBUG(D_INODE, "received kms == "LPU64", blocks == "LPU64"\n",
                        lvb.lvb_size, lvb.lvb_blocks);
@@ -2780,9 +2819,11 @@ static int osc_set_info(struct obd_export *exp, obd_count keylen,
 
         ctxt = llog_get_context(exp->exp_obd, LLOG_UNLINK_ORIG_CTXT);
         if (ctxt) {
-                rc = llog_initiator_connect(ctxt);
-                if (rc)
-                        RETURN(rc);
+                if (rc == 0)
+                        rc = llog_initiator_connect(ctxt);
+                else
+                        CERROR("cannot establish the connect for ctxt %p: %d\n",
+                               ctxt, rc);
         }
 
         imp->imp_server_timeout = 1;
@@ -2901,6 +2942,14 @@ static int osc_import_event(struct obd_device *obd,
                 break;
         }
         case IMP_EVENT_ACTIVE: {
+                /* Only do this on the MDS OSC's */
+                if (imp->imp_server_timeout) {
+                        struct osc_creator *oscc = &obd->u.cli.cl_oscc;
+
+                        spin_lock(&oscc->oscc_lock);
+                        oscc->oscc_flags &= ~OSCC_FLAG_NOSPC;
+                        spin_unlock(&oscc->oscc_lock);
+                }
                 if (obd->obd_observer)
                         rc = obd_notify(obd->obd_observer, obd, 1);
                 break;
index b778df5..9ca00f3 100644 (file)
@@ -964,11 +964,17 @@ static int ost_handle(struct ptlrpc_request *req)
         case OST_CREATE:
                 CDEBUG(D_INODE, "create\n");
                 OBD_FAIL_RETURN(OBD_FAIL_OST_CREATE_NET, 0);
+                if (OBD_FAIL_CHECK_ONCE(OBD_FAIL_OST_ENOSPC))
+                        GOTO(out, rc = -ENOSPC);
+                if (OBD_FAIL_CHECK_ONCE(OBD_FAIL_OST_EROFS))
+                        GOTO(out, rc = -EROFS);
                 rc = ost_create(exp, req, oti);
                 break;
         case OST_DESTROY:
                 CDEBUG(D_INODE, "destroy\n");
                 OBD_FAIL_RETURN(OBD_FAIL_OST_DESTROY_NET, 0);
+                if (OBD_FAIL_CHECK_ONCE(OBD_FAIL_OST_EROFS))
+                        GOTO(out, rc = -EROFS);
                 rc = ost_destroy(exp, req, oti);
                 break;
         case OST_GETATTR:
@@ -984,6 +990,10 @@ static int ost_handle(struct ptlrpc_request *req)
         case OST_WRITE:
                 CDEBUG(D_INODE, "write\n");
                 OBD_FAIL_RETURN(OBD_FAIL_OST_BRW_NET, 0);
+                if (OBD_FAIL_CHECK_ONCE(OBD_FAIL_OST_ENOSPC))
+                        GOTO(out, rc = -ENOSPC);
+                if (OBD_FAIL_CHECK_ONCE(OBD_FAIL_OST_EROFS))
+                        GOTO(out, rc = -EROFS);
                 rc = ost_brw_write(req, oti);
                 LASSERT(current->journal_info == NULL);
                 /* ost_brw sends its own replies */
@@ -1010,6 +1020,8 @@ static int ost_handle(struct ptlrpc_request *req)
         case OST_PUNCH:
                 CDEBUG(D_INODE, "punch\n");
                 OBD_FAIL_RETURN(OBD_FAIL_OST_PUNCH_NET, 0);
+                if (OBD_FAIL_CHECK_ONCE(OBD_FAIL_OST_EROFS))
+                        GOTO(out, rc = -EROFS);
                 rc = ost_punch(exp, req, oti);
                 break;
         case OST_STATFS:
index c705006..531a5bd 100644 (file)
@@ -258,10 +258,12 @@ if test x$enable_modules != xno ; then
        AC_SUBST(LINUXRELEASE)
 
        moduledir='$(libdir)/modules/'$LINUXRELEASE/kernel
-       AC_SUBST(moduledir)
-
        modulefsdir='$(moduledir)/fs/$(PACKAGE)'
+        modulenetdir='$(moduledir)/net/$(PACKAGE)'
+
+       AC_SUBST(moduledir)
        AC_SUBST(modulefsdir)
+        AC_SUBST(modulenetdir)
 
        # ------------ RELEASE --------------------------------
        AC_MSG_CHECKING([for Lustre release])
@@ -402,38 +404,6 @@ if test x$enable_modules != xno ; then
        AC_SUBST(IBNAL)
        AC_SUBST(IBCPPFLAGS)
 
-       def_scamac=/opt/scali/include
-       AC_MSG_CHECKING([if ScaMAC support was requested])
-       AC_ARG_WITH([scamac],
-               AC_HELP_STRING([--with-scamac=yes/no/path],
-                              [Path to ScaMAC includes (default=/opt/scali/include)]),
-               [
-                       case $with_scamac in
-                               yes)
-                                       AC_MSG_RESULT([yes])
-                                       SCIMACCPPFLAGS="-I/opt/scali/include"
-                                       SCIMACNAL="scimacnal"
-                                       ;;
-                               no)
-                                       AC_MSG_RESULT([no])
-                                       SCIMACCPPFLAGS=""
-                                       SCIMACNAL=""
-                                       ;;
-                               *)
-                                       AC_MSG_RESULT([yes])
-                                       SCIMACCPPFLAGS="-I$with_scamac -I$with_scamac/icm"
-                                       SCIMACNAL="scimacnal"
-                                       ;;
-                       esac
-               ],[
-                       AC_MSG_RESULT([no])
-                       SCIMACCPPFLAGS=""
-                       SCIMACNAL=""
-               ])
-       AC_SUBST(SCIMACCPPFLAGS)
-       AC_SUBST(SCIMACNAL)
-       # if test "$with_scamac" != no -a -f ${with_scamac}/scamac.h; then
-
        # ---------- Red Hat 2.4.18 has iobuf->dovary --------------
        # But other kernels don't
 
@@ -530,6 +500,7 @@ if test x$enable_modules != xno ; then
                ],[
                        AC_MSG_RESULT([no])
                ])
+
        AC_MSG_CHECKING([if kernel defines cpumask_t])
        LUSTRE_MODULE_TRY_COMPILE(
                [
@@ -543,6 +514,40 @@ if test x$enable_modules != xno ; then
                        AC_MSG_RESULT([no])
                ])
 
+       # ---------- RHEL kernels define page_count in mm_inline.h
+       AC_MSG_CHECKING([if kernel has mm_inline.h header])
+       LUSTRE_MODULE_TRY_COMPILE(
+               [
+                       #include <linux/mm_inline.h>
+               ],[
+                       #ifndef page_count
+                       #error mm_inline.h does not define page_count
+                       #endif
+               ],[
+                       AC_MSG_RESULT([yes])
+                       AC_DEFINE(HAVE_MM_INLINE, 1, [mm_inline found])
+               ],[
+                       AC_MSG_RESULT([no])
+               ])
+
+       # ---------- inode->i_alloc_sem --------------
+       AC_MSG_CHECKING([if struct inode has i_alloc_sem])
+       LUSTRE_MODULE_TRY_COMPILE(
+               [
+                       #include <linux/fs.h>
+                       #include <linux/version.h>
+               ],[
+                       #if defined(CONFIG_X86_64) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,24))
+                       #error "x86_64 down_read_trylock broken before 2.4.24"
+                       #endif
+                       struct inode i;
+                       return (char *)&i.i_alloc_sem - (char *)&i;
+               ],[
+                       AC_MSG_RESULT([yes])
+                       AC_DEFINE(HAVE_I_ALLOC_SEM, 1, [struct inode has i_alloc_sem])
+               ],[
+                       AC_MSG_RESULT([no])
+               ])
 
        # ---------- modules? ------------------------
        AC_MSG_CHECKING([for module support])
@@ -645,7 +650,6 @@ if test x$enable_modules != xno ; then
        esac # $BACKINGFS
 fi
 
-AM_CONDITIONAL(BUILD_SCIMACNAL, test x$SCIMACNAL = "xscimacnal")
 AM_CONDITIONAL(BUILD_IBNAL, test x$IBNAL = "xibnal")
 AM_CONDITIONAL(BUILD_GMNAL, test x$GMNAL = "xgmnal")
 AM_CONDITIONAL(BUILD_QSWNAL, test x$QSWNAL = "xqswnal")
index 93a370f..114478c 100644 (file)
@@ -15,29 +15,20 @@ if test $ac_cv_sizeof_unsigned_long_long != 8 ; then
 fi
 
 # directories for binaries
-ac_default_prefix=
-bindir='${exec_prefix}/usr/bin'
-sbindir='${exec_prefix}/usr/sbin'
-includedir='${prefix}/usr/include'
+ac_default_prefix=/usr
 
-rootsbindir='${exec_prefix}/sbin'
+# mount.lustre
+rootsbindir='/sbin'
 AC_SUBST(rootsbindir)
-
 # Directories for documentation and demos.
-docdir='${prefix}/usr/share/doc/$(PACKAGE)'
+docdir='${datadir}/doc/$(PACKAGE)'
 AC_SUBST(docdir)
 demodir='$(docdir)/demo'
 AC_SUBST(demodir)
-pkgexampledir='${prefix}/usr/lib/$(PACKAGE)/examples'
+pkgexampledir='${pkglibdir}/examples'
 AC_SUBST(pkgexampledir)
-pymoddir='${prefix}/usr/lib/${PACKAGE}/python/Lustre'
+pymoddir='${pkglibdir}/python/Lustre'
 AC_SUBST(pymoddir)
-# for substitution in lconf
-PYMOD_DIR="/usr/lib/$PACKAGE/python"
-AC_SUBST(PYMOD_DIR)
-modulenetdir='$(moduledir)/net/$(PACKAGE)'
-AC_SUBST(modulenetdir)
-
 
 # ----------  BAD gcc? ------------
 AC_PROG_RANLIB
index 8f572de..69246b2 100644 (file)
@@ -620,14 +620,14 @@ static inline int portal_ioctl_getdata(char *buf, char *end, void *arg)
 #define IOC_PORTAL_MIN_NR                 30
 
 #define IOC_PORTAL_PING                    _IOWR('e', 30, long)
-#define IOC_PORTAL_GET_DEBUG               _IOWR('e', 31, long)
+
 #define IOC_PORTAL_CLEAR_DEBUG             _IOWR('e', 32, long)
 #define IOC_PORTAL_MARK_DEBUG              _IOWR('e', 33, long)
 #define IOC_PORTAL_PANIC                   _IOWR('e', 34, long)
 #define IOC_PORTAL_NAL_CMD                 _IOWR('e', 35, long)
 #define IOC_PORTAL_GET_NID                 _IOWR('e', 36, long)
 #define IOC_PORTAL_FAIL_NID                _IOWR('e', 37, long)
-#define IOC_PORTAL_SET_DAEMON              _IOWR('e', 38, long)
+
 #define IOC_PORTAL_LWT_CONTROL             _IOWR('e', 39, long)
 #define IOC_PORTAL_LWT_SNAPSHOT            _IOWR('e', 40, long)
 #define IOC_PORTAL_LWT_LOOKUP_STRING       _IOWR('e', 41, long)
index 6772e82..acf4045 100644 (file)
@@ -20,6 +20,24 @@ extern unsigned int portal_stack;
 extern unsigned int portal_debug;
 extern unsigned int portal_printk;
 extern unsigned int portal_cerror;
+
+#include <asm/types.h>
+struct ptldebug_header {
+        __u32 ph_len;
+        __u32 ph_flags;
+        __u32 ph_subsys;
+        __u32 ph_mask;
+        __u32 ph_cpu_id;
+        __u32 ph_sec;
+        __u64 ph_usec;
+        __u32 ph_stack;
+        __u32 ph_pid;
+        __u32 ph_extern_pid;
+        __u32 ph_line_num;
+} __attribute__((packed));
+
+#define PH_FLAG_FIRST_RECORD 1
+
 /* Debugging subsystems (32 bits, non-overlapping) */
 #define S_UNDEFINED   0x00000001
 #define S_MDC         0x00000002
index 12f0c24..b5ed168 100644 (file)
@@ -1,7 +1,6 @@
 @BUILD_GMNAL_TRUE@subdir-m += gmnal
 @BUILD_IBNAL_TRUE@subdir-m += ibnal
 @BUILD_QSWNAL_TRUE@subdir-m += qswnal
-@BUILD_SCIMACNAL_TRUE@subdir-m += scimacnal
 subdir-m += socknal
 
 @INCLUDE_RULES@
index 60318ee..9d04a46 100644 (file)
@@ -3,4 +3,4 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
-SUBDIRS = gmnal ibnal qswnal scimacnal socknal
+SUBDIRS = gmnal ibnal qswnal socknal
diff --git a/lustre/portals/knals/scimacnal/Makefile.in b/lustre/portals/knals/scimacnal/Makefile.in
deleted file mode 100644 (file)
index c7eb4ac..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-MODULES := kscimacnal
-kscimacnal-objs := scimacnal.o scimacnal_cb.o
-
-EXTRA_PRE_CFLAGS += @SCIMACCPPFLAGS@
-
-@INCLUDE_RULES@
diff --git a/lustre/portals/knals/scimacnal/README.scimacnal b/lustre/portals/knals/scimacnal/README.scimacnal
deleted file mode 100644 (file)
index e1ee3b5..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-
-scimacnal - A NAL for the Scali ScaMAC midlayer.
-
-The ScaMAC midlayer is a simplified API to the SCI high performance
-interconnect (http://www.scali.com/, http://www.dolphinics.com/).
-
-In order to use this NAL you'll need to tune scimac to use larger buffers.
-See scimac.conf in this directory for an example.
-
-You'll also need to edit portals/include/portals/lib-types.h and reduce
-the MTU to 64kB (the limit of scimac), this diff should help:
-
-----------------------8<----------------------------------
---- portals/include/portals/lib-types.h 27 Jul 2003 02:05:47 -0000      1.1.2.5
-+++ portals/include/portals/lib-types.h 14 Aug 2003 08:32:14 -0000
-@@ -137,8 +137,8 @@
- } lib_counters_t;
- /* temporary expedient: limit number of entries in discontiguous MDs */
--# define PTL_MTU        (512<<10)
--# define PTL_MD_MAX_IOV 128
-+# define PTL_MTU        (64<<10)
-+# define PTL_MD_MAX_IOV 16
- struct lib_msg_t {
-         struct list_head  msg_list;
-----------------------8<----------------------------------
-
-The NAL itself seems quite stable, though scimac has recovery bugs when
-rebooting nodes at times (confirmed by the fact that the IP driver that
-also uses scimac loses connectivity when scimacnal does).  This is
-solved by unloading lustre and reloading the scimac driver on the
-affected nodes.
-
-Performance isn't great when it comes to latency, scimac seems to have
-problems with per packet latencies (confirmed with the IP driver which
-has similar behaviour). Bandwidth using large packets is pretty OK
-(probably due to the fact that it hides the latency issues).
-
-TODO:
-Routing isn't yet implemented.
-Need some way to inform portals about our MTU.
diff --git a/lustre/portals/knals/scimacnal/autoMakefile.am b/lustre/portals/knals/scimacnal/autoMakefile.am
deleted file mode 100644 (file)
index 47433cd..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-# This code is issued under the GNU General Public License.
-# See the file COPYING in this distribution
-
-if MODULES
-if !CRAY_PORTALS
-if BUILD_SCIMACNAL
-modulenet_DATA = kscimacnal$(KMODEXT)
-endif
-endif
-endif
-
-MOSTLYCLEANFILES = *.o *.ko *.mod.c
-DIST_SOURCES = $(ksimacnal-objs:%.o=%.c) scimacnal.h
diff --git a/lustre/portals/knals/scimacnal/scimac.conf b/lustre/portals/knals/scimacnal/scimac.conf
deleted file mode 100644 (file)
index bfb6d02..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#  Configuration file for the scimac driver - lustre friendly settings
-#
-
-#  The maximal number of message headers to use in the system.
-scimac_max_no_hdrs = 32
-
-#  The maximal number of eager buffers to use in the system.
-scimac_max_no_ebufs = 8
-
-#  The maximal size in bytes of each eager buffer.
-scimac_max_ebuf_size = 65536
-
-#  Enable use of a kernel thread to defer reception of packets.
-#  Default is to use a tasklet (sw interrupt).
-scimac_use_ulevel_recv = 1
-
-#  The maximal number of packets queued for transfer per path at any one time. 
-scimac_max_send_queuelen = 2000
-
-#  The packet retransmit time in milliseconds.
-#  The time elapsed since a packet was attempted sent until the packet is resent.
-scimac_pkt_rexmit_time = 200
-
-#  The packet's maximal retransmit time in milliseconds.
-#  The total time that a packet will be attempted sent before it is dropped.
-scimac_max_rexmit_time = 5000
-
-#  The lowest valid node identifier in the system.
-scimac_min_nodeid_number = 0x100
-
-#  The largest valid node identifier in the system.
-scimac_max_nodeid_number = 0xff00
-
-#  The incremental nodeid step in the system.
-scimac_nodeid_increment = 0x100
diff --git a/lustre/portals/knals/scimacnal/scimacnal.c b/lustre/portals/knals/scimacnal/scimacnal.c
deleted file mode 100644 (file)
index 5ffba31..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:cindent:
- *
- * Copyright (C) 2003 High Performance Computing Center North (HPC2N)
- *   Author: Niklas Edmundsson <nikke@hpc2n.umu.se>
-
- * Based on gmnal, which is based on ksocknal and qswnal
- *
- * This file is part of Portals, http://www.sf.net/projects/lustre/
- *
- * Portals is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * Portals 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 Portals; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-
-#include "scimacnal.h"
-
-ptl_handle_ni_t kscimacnal_ni;
-nal_t  kscimacnal_api;
-
-kscimacnal_data_t kscimacnal_data;
-
-kpr_nal_interface_t kscimacnal_router_interface = {
-        kprni_nalid:    SCIMACNAL,
-        kprni_arg:      NULL,
-        kprni_fwd:      kscimacnal_fwd_packet,
-};
-
-
-int kscimacnal_cmd (struct portal_ioctl_data *data, void *private)
-{
-        LASSERT (data != NULL);
-
-        switch (data->ioc_nal_cmd) {
-                case NAL_CMD_REGISTER_MYNID:
-                        if(kscimacnal_lib.ni.nid == data->ioc_nid) {
-                                break;
-                        }
-                        CDEBUG (D_IOCTL, "Can't change NID from "LPX64" to "LPX64")\n", kscimacnal_lib.ni.nid, data->ioc_nid);
-                        return(-EINVAL);
-                default:
-                        return(-EINVAL);
-        }
-
-        return(0);
-}
-
-static int kscimacnal_forward(nal_t   *nal,
-                          int     id,
-                          void    *args,  size_t args_len,
-                          void    *ret,   size_t ret_len)
-{
-        kscimacnal_data_t *ksci = nal->nal_data;
-        nal_cb_t      *nal_cb = ksci->ksci_cb;
-
-        LASSERT (nal == &kscimacnal_api);
-        LASSERT (ksci == &kscimacnal_data);
-        LASSERT (nal_cb == &kscimacnal_lib);
-
-        lib_dispatch(nal_cb, ksci, id, args, ret); /* nal needs ksci */
-        return PTL_OK;
-}
-
-
-static void kscimacnal_lock(nal_t *nal, unsigned long *flags)
-{
-        kscimacnal_data_t *ksci = nal->nal_data;
-        nal_cb_t      *nal_cb = ksci->ksci_cb;
-
-
-        LASSERT (nal == &kscimacnal_api);
-        LASSERT (ksci == &kscimacnal_data);
-        LASSERT (nal_cb == &kscimacnal_lib);
-
-        nal_cb->cb_cli(nal_cb,flags);
-}
-
-
-static void kscimacnal_unlock(nal_t *nal, unsigned long *flags)
-{
-        kscimacnal_data_t *ksci = nal->nal_data;
-        nal_cb_t      *nal_cb = ksci->ksci_cb;
-
-
-        LASSERT (nal == &kscimacnal_api);
-        LASSERT (ksci == &kscimacnal_data);
-        LASSERT (nal_cb == &kscimacnal_lib);
-
-        nal_cb->cb_sti(nal_cb,flags);
-}
-
-
-static int kscimacnal_shutdown(nal_t *nal, int ni)
-{
-        LASSERT (nal == &kscimacnal_api);
-        return 0;
-}
-
-
-static void kscimacnal_yield( nal_t *nal )
-{
-        LASSERT (nal == &kscimacnal_api);
-
-        if (current->need_resched) 
-                schedule();
-        return;
-}
-
-
-static nal_t *kscimacnal_init(int interface, ptl_pt_index_t  ptl_size,
-                ptl_ac_index_t  ac_size, ptl_pid_t requested_pid)
-{
-        int     nnids = 512; /* FIXME: Need ScaMac funktion to get #nodes */
-
-        CDEBUG(D_NET, "calling lib_init with nid "LPX64" nnids %d\n", kscimacnal_data.ksci_nid, nnids);
-        lib_init(&kscimacnal_lib, kscimacnal_data.ksci_nid, 0, nnids,ptl_size, ac_size); 
-        return &kscimacnal_api;
-}
-
-
-/* Called by kernel at module unload time */
-static void /*__exit*/ 
-kscimacnal_finalize(void)
-{
-        /* FIXME: How should the shutdown procedure really look? */
-        kscimacnal_data.ksci_shuttingdown=1;
-
-        PORTAL_SYMBOL_UNREGISTER(kscimacnal_ni);
-
-        PtlNIFini(kscimacnal_ni);
-        lib_fini(&kscimacnal_lib);
-
-        mac_finish(kscimacnal_data.ksci_machandle);
-
-        CDEBUG (D_MALLOC, "done kmem %d\n", atomic_read (&portal_kmemory));
-
-        return;
-}
-
-
-/* Called by kernel at module insertion time */
-static int __init
-kscimacnal_initialize(void)
-{
-        int rc;
-        unsigned long     nid=0;
-        mac_handle_t    *machandle = NULL;
-
-
-        CDEBUG (D_MALLOC, "start kmem %d\n", atomic_read (&portal_kmemory));
-
-        kscimacnal_api.forward = kscimacnal_forward;
-        kscimacnal_api.shutdown = kscimacnal_shutdown;
-        kscimacnal_api.yield = kscimacnal_yield;
-        kscimacnal_api.validate = NULL;         /* our api validate is a NOOP */
-        kscimacnal_api.lock= kscimacnal_lock;
-        kscimacnal_api.unlock= kscimacnal_unlock;
-        kscimacnal_api.nal_data = &kscimacnal_data;
-
-        kscimacnal_lib.nal_data = &kscimacnal_data;
-
-        memset(&kscimacnal_data, 0, sizeof(kscimacnal_data));
-
-        kscimacnal_data.ksci_cb = &kscimacnal_lib;
-
-        /* We're not using this, but cli/sti callbacks does... ??? */
-        spin_lock_init(&kscimacnal_data.ksci_dispatch_lock);
-
-        /* FIXME: We only support one adapter for now */
-        machandle = mac_init(0, MAC_SAPID_LUSTRE, kscimacnal_rx,
-                        &kscimacnal_data);
-
-        if(!machandle) {
-                CERROR("mac_init() failed\n");
-                return -1;
-        }
-
-        kscimacnal_data.ksci_machandle = machandle;
-
-        /* Make sure the scimac MTU is tuned */
-        if(mac_get_mtusize(machandle) < SCIMACNAL_MTU) {
-                CERROR("scimac mtu of %ld smaller than SCIMACNAL MTU of %d\n",
-                                mac_get_mtusize(machandle), SCIMACNAL_MTU);
-                CERROR("Consult README.scimacnal for more information\n");
-                mac_finish(machandle);
-                return -1;
-        }
-
-        /* Get the node ID */
-        /* mac_get_physaddrlen() is a function instead of define, sigh */
-        LASSERT(mac_get_physaddrlen(machandle) <= sizeof(nid));
-        if(mac_get_physaddr(machandle, (mac_physaddr_t *) &nid)) {
-                CERROR("mac_get_physaddr() failed\n");
-                mac_finish(machandle);
-                return -1;
-        }
-        nid = ntohl(nid);
-        kscimacnal_data.ksci_nid = nid;
-
-
-        /* Initialize Network Interface */
-        /* FIXME: What do the magic numbers mean? Documentation anyone? */
-        rc = PtlNIInit(kscimacnal_init, 32, 4, 0, &kscimacnal_ni);
-        if (rc) {
-                CERROR("PtlNIInit failed %d\n", rc);
-                mac_finish(machandle);
-                return (-ENOMEM);
-        }
-
-        /* Init command interface */
-        rc = kportal_nal_register (SCIMACNAL, &kscimacnal_cmd, NULL);
-        if (rc != 0) {
-                CERROR ("Can't initialise command interface (rc = %d)\n", rc);
-                PtlNIFini(kscimacnal_ni);
-                mac_finish(machandle);
-                return (rc);
-        }
-
-
-        PORTAL_SYMBOL_REGISTER(kscimacnal_ni);
-
-        /* We're done now, it's OK for the RX callback to do stuff */
-        kscimacnal_data.ksci_init = 1;
-
-        return 0;
-}
-
-
-MODULE_AUTHOR("Niklas Edmundsson <nikke@hpc2n.umu.se>");
-MODULE_DESCRIPTION("Kernel Scali ScaMAC SCI NAL v0.1");
-MODULE_LICENSE("GPL");
-
-module_init (kscimacnal_initialize);
-module_exit (kscimacnal_finalize);
-
-EXPORT_SYMBOL(kscimacnal_ni);
diff --git a/lustre/portals/knals/scimacnal/scimacnal.h b/lustre/portals/knals/scimacnal/scimacnal.h
deleted file mode 100644 (file)
index f132769..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:cindent:
- *
- * Copyright (C) 2003 High Performance Computing Center North (HPC2N)
- *   Author: Niklas Edmundsson <nikke@hpc2n.umu.se>
- */
-
-
-#ifndef _SCIMACNAL_H
-#define _SCIMACNAL_H
-
-#include <linux/config.h>
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/mm.h>
-#include <linux/string.h>
-#include <linux/stat.h>
-#include <linux/errno.h>
-#include <linux/locks.h>
-#include <linux/unistd.h>
-#include <linux/init.h>
-
-#include <asm/system.h>
-#include <asm/uaccess.h>
-
-#include <linux/fs.h>
-#include <linux/file.h>
-#include <linux/stat.h>
-#include <linux/list.h>
-#include <asm/uaccess.h>
-#include <asm/segment.h>
-#include <asm/page.h>            /* For PAGE_SIZE */
-
-#define DEBUG_SUBSYSTEM S_UNDEFINED
-
-#include <linux/kp30.h>
-#include <linux/kpr.h>
-#include <portals/p30.h>
-#include <portals/lib-p30.h>
-
-#include <scamac.h>
-
-#ifndef MAC_SAPID_LUSTRE
-#define MAC_SAPID_LUSTRE MAC_SAPID_TEST1
-#endif /* MAC_SAPID_LUSTRE */
-
-/* scimac has an annoying MTU limit of 64k */
-#define SCIMACNAL_MTU 65536
-#if PTL_MTU > SCIMACNAL_MTU
-#error Max MTU of ScaMAC is 64k, PTL_MTU is bigger.
-#endif
-
-typedef struct {
-        mac_handle_t    *handle;
-        mac_mblk_t      *msg;
-        mac_msg_type_t   type;
-        void            *userdata;
-}  kscimacnal_rx_t;
-
-
-typedef struct {
-        nal_cb_t        *ktx_nal;
-        void            *ktx_private;
-        lib_msg_t       *ktx_cookie;
-        ptl_hdr_t       ktx_hdr;
-        /* To be able to kunmap() kmap():ed pages */
-        struct page     *ktx_kpages[PTL_MD_MAX_IOV];
-        int              ktx_nmapped;
-}  kscimacnal_tx_t;
-
-
-typedef struct {
-        char              ksci_init;
-        char              ksci_shuttingdown;
-        ptl_nid_t         ksci_nid;
-        nal_cb_t         *ksci_cb;
-        spinlock_t        ksci_dispatch_lock;
-        mac_handle_t     *ksci_machandle;
-}  kscimacnal_data_t;
-
-extern kscimacnal_data_t   kscimacnal_data;
-extern nal_t            kscimacnal_api;
-extern nal_cb_t         kscimacnal_lib;
-
-void kscimacnal_fwd_packet (void *arg, kpr_fwd_desc_t *fwd);
-void kscimacnal_rx(mac_handle_t *handle, mac_mblk_t *msg, mac_msg_type_t type, void *userdata);
-
-
-#endif  /* _SCIMACNAL_H */
diff --git a/lustre/portals/knals/scimacnal/scimacnal_cb.c b/lustre/portals/knals/scimacnal/scimacnal_cb.c
deleted file mode 100644 (file)
index 52afb98..0000000
+++ /dev/null
@@ -1,601 +0,0 @@
-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:cindent:
- *
- * Copyright (C) 2003 High Performance Computing Center North (HPC2N)
- *   Author: Niklas Edmundsson <nikke@hpc2n.umu.se>
-
- *
- * This file is part of Portals, http://www.sf.net/projects/lustre/
- *
- * Portals is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * Portals 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 Portals; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-#include "scimacnal.h"
-
-static int 
-kscimacnal_read (nal_cb_t *nal, void *private,
-                void *dst_addr, user_ptr src_addr, size_t len)
-{
-        CDEBUG(D_NET, "0x%Lx: reading %ld bytes from %p -> %p\n",
-               nal->ni.nid, (long)len, src_addr, dst_addr );
-        memcpy( dst_addr, src_addr, len );
-        return 0;
-}
-
-
-static int 
-kscimacnal_write(nal_cb_t *nal, void *private,
-                user_ptr dst_addr, void *src_addr, size_t len)
-{
-        CDEBUG(D_NET, "0x%Lx: writing %ld bytes from %p -> %p\n",
-               nal->ni.nid, (long)len, src_addr, dst_addr );
-        memcpy( dst_addr, src_addr, len );
-        return 0;
-}
-
-
-static void *
-kscimacnal_malloc(nal_cb_t *nal, size_t len)
-{
-        void *buf;
-
-        PORTAL_ALLOC(buf, len);
-        return buf;
-}
-
-
-static void 
-kscimacnal_free(nal_cb_t *nal, void *buf, size_t len)
-{
-        PORTAL_FREE(buf, len);
-}
-
-
-static void 
-kscimacnal_printf(nal_cb_t *nal, const char *fmt, ...)
-{
-        va_list         ap;
-        char msg[256]; 
-
-        if (portal_debug & D_NET) {
-                va_start( ap, fmt );
-                vsnprintf( msg, sizeof(msg), fmt, ap );
-                va_end( ap );
-
-                printk("Lustre: CPUId: %d %s",smp_processor_id(), msg);
-        }
-}
-
-
-static void 
-kscimacnal_cli(nal_cb_t *nal, unsigned long *flags)
-{
-        kscimacnal_data_t *data= nal->nal_data;
-
-        spin_lock_irqsave(&data->ksci_dispatch_lock,*flags);
-}
-
-
-static void 
-kscimacnal_sti(nal_cb_t *nal, unsigned long *flags)
-{
-        kscimacnal_data_t *data= nal->nal_data; 
-
-        spin_unlock_irqrestore(&data->ksci_dispatch_lock,*flags);
-}
-
-
-static int 
-kscimacnal_dist(nal_cb_t *nal, ptl_nid_t nid, unsigned long *dist)
-{
-        /* FIXME: Network distance has a meaning, but is there no easy
-         * way to figure it out (depends on routing) */
-
-        if ( nal->ni.nid == nid ) {
-                *dist = 0;
-        } else {
-                *dist = 1;
-        }
-
-        return 0;
-}
-
-
-static
-char * get_mac_error(mac_status_t status) 
-{
-        switch(status) {
-                case MAC_MSG_STAT_OK:
-                        return "MAC_MSG_STAT_OK";
-                case MAC_MSG_STAT_FREED:
-                        return "MAC_MSG_STAT_FREED";
-                case MAC_MSG_STAT_ABORTED:
-                        return "MAC_MSG_STAT_ABORTED";
-                case MAC_MSG_STAT_TIMEDOUT:
-                        return "MAC_MSG_STAT_TIMEDOUT";
-                case MAC_MSG_STAT_NODEUNREACH:
-                        return "MAC_MSG_STAT_NODEUNREACH";
-                case MAC_MSG_STAT_NETDOWN:
-                        return "MAC_MSG_STAT_NETDOWN";
-                case MAC_MSG_STAT_RESET:
-                        return "MAC_MSG_STAT_RESET";
-                case MAC_MSG_STAT_INITFAILED:
-                        return "MAC_MSG_STAT_INITFAILED";
-                case MAC_MSG_STAT_SYNCFAILED:
-                        return "MAC_MSG_STAT_SYNCFAILED";
-                case MAC_MSG_STAT_BADPROTO:
-                        return "MAC_MSG_STAT_BADPROTO";
-                case MAC_MSG_STAT_NOBUFSPACE:
-                        return "MAC_MSG_STAT_NOBUFSPACE";
-                case MAC_MSG_STAT_CONGESTION:
-                        return "MAC_MSG_STAT_CONGESTION";
-                case MAC_MSG_STAT_OTHER:
-                        return "MAC_MSG_STAT_OTHER";
-                default:
-                        return "Unknown error";
-        }
-}
-
-
-/* FIXME add routing code here ? */
-
-/* Called by ScaMac when transmission is complete  (ie. message is released) */
-static void 
-kscimacnal_txrelease(mac_mblk_t *msg, mac_msg_status_t status, void *context)
-{
-        kscimacnal_tx_t *ktx = (kscimacnal_tx_t *)context;
-        int err=0, i;
-        
-        LASSERT (ktx != NULL);
-        /* Unmap any mapped pages */
-        for(i=0; i<ktx->ktx_nmapped; i++) {
-                kunmap(ktx->ktx_kpages[i]);
-        }
-
-        CDEBUG(D_NET, "kunmapped %d pages\n", ktx->ktx_nmapped);
-
-        /* Euh, there is no feedback when transmission fails?! */
-        switch(status) {
-                case MAC_MSG_STAT_OK:        /* normal */
-                        break;
-                default:
-                        CERROR("%s (%d):\n", get_mac_error(status), status);
-                        err = -EIO;
-                        break;
-        }
-
-        lib_finalize(ktx->ktx_nal, ktx->ktx_private, ktx->ktx_cookie,
-                     (err == 0) ? PTL_OK : PTL_FAIL);
-
-        PORTAL_FREE(ktx, (sizeof(kscimacnal_tx_t)));
-}
-
-
-/* Called by portals when it wants to send a message.
- * Since ScaMAC has it's own TX thread we don't bother setting up our own. */
-
-/* FIXME: Read comments in qswnal_cb.c for _sendmsg and fix return-on-error
- *        issues */
-static inline int 
-kscimacnal_sendmsg(nal_cb_t        *nal,
-                   void            *private,
-                   lib_msg_t       *cookie,
-                   ptl_hdr_t       *hdr,
-                   int              type, 
-                   ptl_nid_t        nid,
-                   ptl_pid_t        pid,
-                   unsigned int     payload_niov,
-                   struct iovec    *payload_iov,
-                   ptl_kiov_t      *payload_kiov,
-                   size_t           payload_len)
-{
-        kscimacnal_tx_t    *ktx=NULL;
-        kscimacnal_data_t  *ksci = nal->nal_data;
-        int              rc=0;
-        int              buf_len = sizeof(ptl_hdr_t) + payload_len;
-        mac_mblk_t      *msg=NULL, *lastblk, *newblk;
-        unsigned long   physaddr;
-        
-
-        CDEBUG(D_NET, "sending %d bytes from %p/%p to nid "LPX64" niov: %d\n",
-               payload_len, payload_iov, payload_kiov, nid, payload_niov);
-
-        /* Basic sanity checks */
-        LASSERT(ksci != NULL);
-        LASSERT(hdr != NULL);
-        LASSERT (payload_len == 0 || payload_niov > 0);
-        LASSERT (payload_niov <= PTL_MD_MAX_IOV);
-        /* It must be OK to kmap() if required */
-        LASSERT (payload_kiov == NULL || !in_interrupt ());
-        /* payload is either all vaddrs or all pages */
-        LASSERT (!(payload_kiov != NULL && payload_iov != NULL));
-
-        /* Do real check if we can send this */
-        if (buf_len > mac_get_mtusize(ksci->ksci_machandle)) {
-                CERROR("kscimacnal:request exceeds TX MTU size (%ld).\n",
-                                mac_get_mtusize(ksci->ksci_machandle));
-                return PTL_FAIL;
-        }
-
-
-        /* save transaction info for later finalize and cleanup */
-        PORTAL_ALLOC(ktx, (sizeof(kscimacnal_tx_t)));
-        if (!ktx) {
-                return PTL_NOSPACE;
-        }
-
-        ktx->ktx_nmapped = 0; /* Start with no mapped pages :) */
-
-        /* *SIGH* hdr is a stack variable in the calling function, so we
-         * need to copy it to a buffer. Zerocopy magic (or is it just
-         * deferred memcpy?) is annoying sometimes.  */
-        memcpy(&ktx->ktx_hdr, hdr, sizeof(ptl_hdr_t));
-
-        /* First, put the header in the main message mblk */
-        msg = mac_alloc_mblk(&ktx->ktx_hdr, sizeof(ptl_hdr_t),
-                        kscimacnal_txrelease, ktx);
-        if (!msg) {
-                PORTAL_FREE(ktx, (sizeof(kscimacnal_tx_t)));
-                return PTL_NOSPACE;
-        }
-        mac_put_mblk(msg, sizeof(ptl_hdr_t));
-        lastblk=msg;
-
-        /* Allocate additional mblks for each iov as needed.
-         * Essentially lib_copy_(k)iov2buf with a twist or two */
-        while (payload_len > 0)
-        {
-                ptl_size_t       nob;
-                char            *addr;
-
-                LASSERT (payload_niov > 0);
-
-                if(payload_iov != NULL) {
-                        nob = MIN (payload_iov->iov_len, payload_len);
-                        addr = payload_iov->iov_base;
-                }
-                else {
-                        nob = MIN (payload_kiov->kiov_len, payload_len);
-                        /* Bollocks. We need to handle paged IO for things to
-                         * work but there is no good way to do this. We
-                         * do it by kmap():ing all pages and keep them
-                         * mapped until scimac is done with them. */
-                        /* FIXME: kunmap() on error */
-                        addr = kmap(payload_kiov->kiov_page);
-                        ktx->ktx_kpages[ktx->ktx_nmapped++] = 
-                                payload_kiov->kiov_page;
-                }
-                /* We don't need a callback on the additional mblks,
-                 * since all release callbacks seems to be called when
-                 * the entire message has been sent */
-                newblk=mac_alloc_mblk(addr, nob, NULL, NULL);
-
-                if(!newblk) {
-                        mac_free_msg(msg);
-                        PORTAL_FREE(ktx, (sizeof(kscimacnal_tx_t)));
-                        return PTL_NOSPACE;
-                }
-                mac_put_mblk(newblk, nob);
-                mac_link_mblk(lastblk, newblk);
-                lastblk=newblk;
-
-                payload_len -= nob;
-                payload_niov--;
-                if(payload_iov != NULL) {
-                        payload_iov++;
-                }
-                else {
-                        payload_kiov++;
-                }
-        }
-
-        CDEBUG(D_NET, "kmapped %d pages\n", ktx->ktx_nmapped);
-
-        ktx->ktx_nal = nal;
-        ktx->ktx_private = private;
-        ktx->ktx_cookie = cookie;
-
-        CDEBUG(D_NET, "mac_send %d bytes to nid: 0x%Lx\n", buf_len, nid);
-
-        physaddr = htonl(nid);
-
-        if((rc=mac_send(ksci->ksci_machandle, msg,
-                                        (mac_physaddr_t *) &physaddr))) {
-                CERROR("kscimacnal: mac_send() failed, rc=%d\n", rc);
-                mac_free_msg(msg);
-                PORTAL_FREE(ktx, (sizeof(kscimacnal_tx_t)));
-                return PTL_FAIL;
-        }
-
-        return PTL_OK;
-}
-
-
-static int
-kscimacnal_send (nal_cb_t     *nal,
-                 void         *private,
-                 lib_msg_t    *cookie,
-                 ptl_hdr_t    *hdr,
-                 int           type,
-                 ptl_nid_t     nid,
-                 ptl_pid_t     pid,
-                 unsigned int  payload_niov,
-                 struct iovec *payload_iov,
-                 size_t        payload_nob)
-{
-        return (kscimacnal_sendmsg (nal, private, cookie, hdr, type, nid, pid,
-                                payload_niov, payload_iov, NULL, payload_nob));
-}
-
-static int
-kscimacnal_send_pages (nal_cb_t     *nal,
-                       void         *private,
-                       lib_msg_t    *cookie,
-                       ptl_hdr_t    *hdr,
-                       int           type,
-                       ptl_nid_t     nid,
-                       ptl_pid_t     pid,
-                       unsigned int  payload_niov,
-                       ptl_kiov_t   *payload_kiov,
-                       size_t        payload_nob)
-{
-        return (kscimacnal_sendmsg (nal, private, cookie, hdr, type, nid, pid,
-                                payload_niov, NULL, payload_kiov, payload_nob));
-}
-
-
-void
-kscimacnal_fwd_packet (void *arg, kpr_fwd_desc_t *fwd)
-{
-        CERROR ("forwarding not implemented\n");
-}
-
-
-/* Process a received portals packet */
-/* Called by the ScaMac RX thread when a packet is received */
-void
-kscimacnal_rx(mac_handle_t *handle, mac_mblk_t *msg, mac_msg_type_t type,
-                void *userdata)
-{
-        ptl_hdr_t       *hdr = NULL;
-        kscimacnal_rx_t     krx; 
-        mac_size_t       size;
-        kscimacnal_data_t  *ksci = userdata;
-
-        LASSERT(ksci != NULL);
-
-        if ( !ksci->ksci_init || ksci->ksci_shuttingdown || 
-                    type == MAC_MSG_TYPE_CTRL || type == MAC_MSG_TYPE_OTHER ) {
-                /* We're not interested in messages not for us, ignore */
-                mac_free_msg(msg);
-                return;
-        }
-
-        size = mac_msg_size(msg);
-
-        CDEBUG(D_NET,"msg %p type %d, size %ld bytes (%ld mblks)\n", 
-                        msg, type, size, mac_msg_mblks(msg));
-
-        if( size < sizeof( ptl_hdr_t ) ) {
-                /* XXX what's this for? */
-                if (ksci->ksci_shuttingdown)
-                        return;
-                CERROR("kscimacnal: did not receive complete portal header,"
-                                "size= %ld\n", size);
-                /* Free the message before exiting */
-                mac_free_msg(msg);
-                return;
-        }
-
-        /* Provide everything we know */
-        krx.handle = handle;
-        krx.msg = msg;
-        krx.type = type;
-        krx.userdata = userdata;
-
-        /* mac_msg_next returns the next mblk with unread data */
-        hdr = mac_get_mblk(mac_msg_next(msg), sizeof(ptl_hdr_t) );
-
-        if(!hdr) {
-                CERROR("kscimacnal: no data block in message %p\n", msg);
-                mac_free_msg(msg);
-                return;
-        }
-
-        if ( hdr->dest_nid == kscimacnal_lib.ni.nid ) {
-                PROF_START(lib_parse);
-                /* sets wanted_len, iovs etc and calls our callback */
-                lib_parse(&kscimacnal_lib, hdr, &krx);
-                PROF_FINISH(lib_parse);
-#if 0 /* FIXME: Is it possible to detect this? */
-        } else if (kgmnal_ispeer(hdr->dest_nid)) {
-                /* should have gone direct to peer */
-                CERROR("dropping packet from 0x%llx to 0x%llx:"
-                                "target is a  peer\n",
-                                hdr->src_nid, hdr->dest_nid);
-                kgmnal_requeue_rx(&krx);
-#endif /* if 0 FIXME */
-        } else {
-                /* forward to gateway */
-                CERROR("forwarding not implemented, mynid=0x%llx dest=0x%llx\n",
-                                kscimacnal_lib.ni.nid, hdr->dest_nid);
-        }
-
-        mac_free_msg(msg);
-
-        CDEBUG(D_NET, "msg %p: Done\n", msg);
-}
-
-
-/* Called by portals to process a recieved packet */
-inline static int 
-kscimacnal_recvmsg(nal_cb_t     *nal, 
-                   void         *private, 
-                   lib_msg_t    *cookie, 
-                   unsigned int  niov, 
-                   struct iovec *iov, 
-                   ptl_kiov_t   *kiov,
-                   size_t        mlen, 
-                   size_t        rlen)
-{
-        kscimacnal_rx_t    *krx = private;
-        mac_mblk_t      *mblk;
-        void            *src;
-        mac_size_t       pkt_len;
-        ptl_size_t       iovused=0;
-        char            *base=NULL;
-
-        LASSERT (krx != NULL);
-        LASSERT (krx->msg != NULL);
-
-        CDEBUG(D_NET,"msg %p: mlen=%d, rlen=%d, niov=%d\n",
-                        krx->msg, mlen, rlen, niov);
-
-        /* What was actually received must be >= what sender claims to have
-         * sent. */
-        LASSERT (mlen <= rlen); /* something is wrong if this isn't true */
-        if (mac_msg_size(krx->msg) < sizeof(ptl_hdr_t)+mlen) {
-                /* We didn't receive everything lib thinks we did */
-                CERROR("Bad message size: have %d, need %d + %d\n",
-                       mac_msg_size(krx->msg), sizeof(ptl_hdr_t), mlen);
-                return (PTL_FAIL);
-        }
-
-        /* It must be OK to kmap() if required */
-        LASSERT (kiov == NULL || !in_interrupt ());
-        /* Either all pages or all vaddrs */
-        LASSERT (!(kiov != NULL && iov != NULL));
-
-        PROF_START(memcpy);
-
-        /* mac_msg_next returns next mblk with unread data (ie. can
-         * be same mblk */
-        while (mlen != 0 && (mblk = mac_msg_next(krx->msg))) {
-                pkt_len = mac_mblk_len(mblk);
-                src = mac_get_mblk(mblk, pkt_len); /* Next unread block */
-
-                CDEBUG(D_NET,"msg %p: mblk: %p pkt_len: %ld  src: %p\n",
-                                krx->msg, mblk, pkt_len, src);
-
-                LASSERT(src != NULL);
-
-                /* Essentially lib_copy_buf2(k)iov but with continuation
-                 * support, we "gracefully" thrash the argument vars ;) */
-                while (pkt_len > 0) {
-                        ptl_size_t  nob, len;
-
-                        LASSERT (niov > 0);
-
-                        if(iov != NULL) {
-                                LASSERT(iovused < iov->iov_len);
-                                len = iov->iov_len;
-                                base = iov->iov_base;
-                        }
-                        else {
-                                LASSERT(iovused < kiov->kiov_len);
-                                len = kiov->kiov_len;
-                                if(base==NULL) {
-                                        /* New page */
-                                        base = kmap(kiov->kiov_page);
-                                }
-                        }
-
-                        nob = MIN (len-iovused, pkt_len);
-                        CDEBUG(D_NET, "base: %p len: %d src: %p  nob: %d "
-                                        "iovused: %d\n",
-                                        base, len, src, nob, iovused);
-
-                        memcpy (base+iovused, src, nob);
-                        pkt_len -= nob;
-                        src += nob;
-
-                        if(nob+iovused < len) {
-                                /* We didn't use all of the iov */
-                                iovused+=nob;
-                        }
-                        else {
-                                niov--;
-                                iovused=0;
-                                if(iov != NULL) {
-                                        iov++;
-                                }
-                                else {
-                                        kunmap(kiov->kiov_page);
-                                        base=NULL;
-                                        kiov++;
-                                }
-                        }
-                }
-        }
-        /* Just to make sure the last page is unmapped */
-        if(kiov!=NULL && base!=NULL) {
-                kunmap(kiov->kiov_page);
-                base=NULL;
-        }
-        PROF_FINISH(memcpy);
-
-        CDEBUG(D_NET, "Calling lib_finalize.\n");
-
-        PROF_START(lib_finalize);
-        lib_finalize(nal, private, cookie, PTL_OK);
-        PROF_FINISH(lib_finalize);
-
-        CDEBUG(D_NET, "Done.\n");
-
-        return PTL_OK;
-}
-
-
-static int
-kscimacnal_recv(nal_cb_t     *nal,
-             void         *private,
-             lib_msg_t    *cookie,
-             unsigned int  niov,
-             struct iovec *iov,
-             size_t        mlen,
-             size_t        rlen)
-{
-        return (kscimacnal_recvmsg (nal, private, cookie, niov, iov, NULL, mlen, rlen));
-}
-
-
-static int
-kscimacnal_recv_pages (nal_cb_t     *nal,
-                    void         *private,
-                    lib_msg_t    *cookie,
-                    unsigned int  niov,
-                    ptl_kiov_t   *kiov,
-                    size_t        mlen,
-                    size_t        rlen)
-{
-        return (kscimacnal_recvmsg (nal, private, cookie, niov, NULL, kiov, mlen, rlen));
-}
-
-
-nal_cb_t kscimacnal_lib = {
-        nal_data:       &kscimacnal_data,               /* NAL private data */
-        cb_send:         kscimacnal_send,
-        cb_send_pages:   kscimacnal_send_pages,
-        cb_recv:         kscimacnal_recv,
-        cb_recv_pages:   kscimacnal_recv_pages,
-        cb_read:         kscimacnal_read,
-        cb_write:        kscimacnal_write,
-        cb_malloc:       kscimacnal_malloc,
-        cb_free:         kscimacnal_free,
-        cb_printf:       kscimacnal_printf,
-        cb_cli:          kscimacnal_cli,
-        cb_sti:          kscimacnal_sti,
-        cb_dist:         kscimacnal_dist
-};
index 5d2688e..598adc1 100644 (file)
@@ -1,5 +1,5 @@
 MODULES = portals
-libcfs-objs := debug.o lwt.o module.o proc.o
+libcfs-objs := debug.o lwt.o module.o proc.o tracefile.o
 
 api-sources := $(wildcard @LUSTRE@/portals/portals/api-*.c)
 lib-sources := $(wildcard @LUSTRE@/portals/portals/lib-*.c)
index c201429..8ecf3c9 100644 (file)
@@ -6,4 +6,4 @@
 include fs/lustre/portals/Kernelenv
 
 obj-y += libcfs.o
-libcfs-objs    := module.o proc.o debug.o lwt.o
+libcfs-objs    := module.o proc.o debug.o lwt.o tracefile.o
index ac83541..cacd769 100644 (file)
@@ -17,4 +17,4 @@ sources:
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c
 CLEANFILES = sources lib-*.c api-*.c
-DIST_SOURCES = $(libcfs-objs:%.o=%.c)
+DIST_SOURCES = $(libcfs-objs:%.o=%.c) *.h
index 04a7496..01fbe35 100644 (file)
@@ -53,6 +53,8 @@
 #include <linux/portals_compat25.h>
 #include <linux/libcfs.h>
 
+#include "tracefile.h"
+
 #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
 #include <linux/kallsyms.h>
 #endif
@@ -79,368 +81,32 @@ atomic_t portal_kmemory = ATOMIC_INIT(0);
 EXPORT_SYMBOL(portal_kmemory);
 #endif
 
-#define DEBUG_OVERFLOW 1024
-static char *debug_buf = NULL;
-static unsigned long debug_size = 0;
-static atomic_t debug_off_a = ATOMIC_INIT(0);
-static int debug_wrapped;
 static DECLARE_WAIT_QUEUE_HEAD(debug_ctlwq);
-#define DAEMON_SND_SIZE      (64 << 10)
-
-/*
- * used by the daemon to keep track the offset into debug_buffer for the next
- * write to the file.  Usually, the daemon is to write out buffer
- * from debug_daemon_next_write upto debug_off
- *  variable usage
- *      Reader - portals_debug_msg()
- *      Writer - portals_debug_daemon()
- *               portals_debug_daemon_start() during daemon init time
- *               portals_debug_daemon_continue() to reset to debug_off
- *               portals_debug_clear_buffer() reset to debug_off for clear
- *      Note that *_start(), *_continue() & *clear_buffer() should serialized;
- */
-static atomic_t   debug_daemon_next_write;
-
-/*
- * A debug_daemon can be in following states
- *      stopped - stopped state means there is no debug_daemon running.
- *                accordingly, it must be in paused state
- *                a daemon is in !stopped && !paused state after
- *                "lctl debug_daemon start" creates debug_daemon successfully
- *                Variable Usage
- *                      Reader - portals_debug_daemon()
- *                               portals_debug_set_daemon() routines
- *                      Writer - portals_debug_set_daemon() routines
- *                              portals_debug_daemon() on IO error
- *      paused -  a debug_daemon state is changed from !paused into paused
- *                when "lctl debug_daemon paused" is issued
- *                "lctl debug_daemon continue" gets a daemon into !paused mode
- *                      Reader - portals_debug_set_daemon() routines
- *                               portals_debug_msg()
- *                      Writer - portals_debug_set_daemon() on init
- *                               portals_debug_daemon()
- *
- *        Daemon  state diagram.
- *                      (stopped, paused)
- *                              |  <-- debug_daemon start
- *                              V
- *                      (!stopped, !paused)
- *                              |  <-- debug_daemon pause
- *                              V
- *                      (!stopped, paused)
- *                              |  <-- debug_daemon continue
- *                              V
- *                      (!stopped, !paused)
- *                              |  <-- debug_daemon stop
- *                              V
- *                      (stopped, paused)
- *      Overlapped - this is a state when CDEBUG is too fast for the daemon to
- *                   write out the debug_bufferr.  That is, debug_off is to
- *                   overlap debug_daemon_next_write;
- *                     Reader - portals_debug_msg()
- *                     Writer - portals_debug_msg()
- */
-
-/*
- * Description on Trace Daemon Synchronization
- *
- * Three categories of code are synchronizing between each other
- * 1.   lctl, portals_debug_set_daemon(), the user debug control code, 
- *      as well as portals_debug_clear_buffer()
- * 2.   CDEBUG, portals_debug_msg(), the debug put messages routine
- * 3.   Daemon, portals_debug_daemon(), to write out debug log file
- *
- *
- * Three different controls for synchronizations
- *
- * 1.   debug_daemon_semaphore
- *      The usage of this semaphore is to serialize multiple lctl controls 
- *      in manipulating debug daemon state.  The semaphore serves as the 
- *      gatekeeper to allow only one user control thread, at any giving time, 
- *      to access debug daemon state and keeps the other user control requests 
- *      in wait state until the current control request is serviced.
- *
- * 2.   wait_queue_head_t lctl (paired with lctl_event flag)
- *      Lctl event is the event between portals_debug_set_daemon() and 
- *      portals_debug_daemon().  Lctl is an indicator for portals_debug_daemon()
- *      to flush data out to file.  portals_debug_daemon() is to use lctl event
- *      as signal channel to wakeup portals_debug_set_daemon() upon flush 
- *      operation is done.
- *
- *      Producer :
- *              portals_debug_daemon() uses to wake up 
- *              portals_debug_set_daemon(), pause and stop, routines
- *      Consumer :
- *              portals_debug_set_daemon(), stop and pause operations, 
- *              wait and sleep on the event
- *
- * 3.   wait_queue_head_t daemon (paired with daemon_event flag)
- *      This is an event channel to wakeup portals_debug_daemon.  Daemon 
- *      wakes up to run whenever there is an event posted.   Daemon handles 
- *      2 types of operations . 1. Writes data out to debug file, 2. Flushes 
- *      file and terminates base on lctl event. 
- *      File operation -
- *              Daemon is normally in a sleep state.  
- *              Daemon is woken up through daemon event whenever CDEBUG is 
- *              putting data over any 64K boundary. 
- *      File flush and termination -
- *              On portals_debug_daemon_stop/pause() operations, lctl control 
- *              is to wake up daemon through daemon event.
- *
- *      We can't use sleep_on() and wake_up() to replace daemon event because 
- *      portals_debug_daemon() must catch the wakeup operation posted by 
- *      portals_debug_daemon_stop/pause().  Otherwise, stop and pause may 
- *      stuck in lctl wait event.
- *
- *      Producer :
- *           a. portals_debug_daemon_pause() and portals_debug_daemon_stop() 
- *              uses the event to wake up portals_debug_daemon()
- *           b. portals_debug_msg() uses the event to wake up 
- *              portals_debug_daemon() whenever the data output is acrossing 
- *              a 64K bytes boundary.
- *      Consumer :
- *              portals_debug_daemon() wakes up upon daemon event.
- *
- * Sequence for portals_debug_daemon_stop() operation
- *
- * _Portals_debug_daemon_stop()_          _Daemon_
- *                                      Wait_event(daemon) or running
- *      Paused = 1;
- *      Wakeup_event (daemon)
- *      Wait_event(lctl)
- *                                      Set force_flush flag if lctlevnt
- *                                      Flush data
- *                                      Wakeup_event (lctl)
- *                                      Wait_event(daemon)
- *      Stopped = 1;
- *      Wakeup_event (daemon)
- *      Wait_event(lctl)
- *                                      Exit daemon loop if (Stopped)
- *                                      Wakeup_event (lctl)
- *                                      Exit
- *      Return to user application
- *
- *
- * _Portals_debug_msg()_                  _Daemon_
- *                                      Wait_event(daemon) or running
- *      If (WriteStart<64K<WriteEnd)
- *         Wakeup_event(daemon)
- *                                      Do file IO
- *                                      Wait_event(daemon)
- */
-struct debug_daemon_state {
-        unsigned long overlapped;
-        unsigned long stopped;
-        atomic_t paused;
-        unsigned long   lctl_event;     /* event for lctl */
-        wait_queue_head_t lctl;
-        unsigned long   daemon_event;   /* event for daemon */
-        wait_queue_head_t daemon;
-};
-static struct debug_daemon_state debug_daemon_state;
-static DECLARE_MUTEX(debug_daemon_semaphore);
 
-static loff_t daemon_file_size_limit;
-char debug_daemon_file_path[1024] = "";
-
-spinlock_t portals_debug_lock = SPIN_LOCK_UNLOCKED;
 char debug_file_path[1024] = "/tmp/lustre-log";
-char debug_file_name[1024];
-int handled_panic; /* to avoid recursive calls to notifiers */
+static char debug_file_name[1024];
+static int handled_panic; /* to avoid recursive calls to notifiers */
 char portals_upcall[1024] = "/usr/lib/lustre/portals_upcall";
 
-
 int portals_do_debug_dumplog(void *arg)
 {
-        struct file *file;
         void *journal_info;
-        int rc;
-        mm_segment_t oldfs;
-        unsigned long debug_off;
 
         kportal_daemonize("");
 
         reparent_to_init();
         journal_info = current->journal_info;
         current->journal_info = NULL;
-        sprintf(debug_file_name, "%s.%ld", debug_file_path, CURRENT_SECONDS);
-        file = filp_open(debug_file_name, O_CREAT|O_EXCL|O_RDWR, 0644);
 
-        if (!file || IS_ERR(file)) {
-                CERROR("cannot open %s for dumping: %ld\n", debug_file_name,
-                       PTR_ERR(file));
-                GOTO(out, PTR_ERR(file));
-        } else {
-                printk(KERN_ALERT "LustreError: dumping log to %s ...\n",
-                       debug_file_name);
-        }
+        snprintf(debug_file_name, sizeof(debug_file_path) - 1,
+                 "%s.%ld.%ld", debug_file_path, CURRENT_SECONDS, (long)arg);
+        tracefile_dump_all_pages(debug_file_name);
 
-        debug_off = atomic_read(&debug_off_a);
-        oldfs = get_fs();
-        set_fs(get_ds());
-        if (debug_wrapped) {
-                rc = file->f_op->write(file, debug_buf + debug_off + 1,
-                                       debug_size-debug_off-1, &file->f_pos);
-                rc += file->f_op->write(file, debug_buf, debug_off + 1,
-                                        &file->f_pos);
-        } else {
-                rc = file->f_op->write(file, debug_buf, debug_off,&file->f_pos);
-        }
-        printk("LustreError: wrote %d bytes\n", rc);
-        set_fs(oldfs);
-
-        rc = file->f_op->fsync(file, file->f_dentry, 1);
-        if (rc)
-                CERROR("sync returns %d\n", rc);
-        filp_close(file, 0);
-out:
         current->journal_info = journal_info;
         wake_up(&debug_ctlwq);
         return 0;
 }
 
-int portals_debug_daemon(void *arg)
-{
-        struct file *file;
-        void *journal_info;
-        mm_segment_t oldfs;
-        unsigned long force_flush = 0;
-        unsigned long size, off, flags;
-        int rc;
-
-        kportal_daemonize("ldebug_daemon");
-        reparent_to_init();
-        journal_info = current->journal_info;
-        current->journal_info = NULL;
-
-        file = filp_open(debug_daemon_file_path,
-                         O_CREAT|O_TRUNC|O_RDWR|O_LARGEFILE, 0644);
-
-        if (!file || IS_ERR(file)) {
-                CERROR("cannot open %s for logging", debug_daemon_file_path);
-                GOTO(out1, PTR_ERR(file));
-        }
-        printk(KERN_INFO "daemon dumping log to %s\n", debug_daemon_file_path);
-
-        debug_daemon_state.overlapped = 0;
-        debug_daemon_state.stopped = 0;
-
-        spin_lock_irqsave(&portals_debug_lock, flags);
-        off = atomic_read(&debug_off_a) + 1;
-        if (debug_wrapped)
-                off = (off >= debug_size)? 0 : off;
-        else
-                off = 0;
-        atomic_set(&debug_daemon_next_write, off);
-        atomic_set(&debug_daemon_state.paused, 0);
-        spin_unlock_irqrestore(&portals_debug_lock, flags);
-
-        oldfs = get_fs();
-        set_fs(KERNEL_DS);
-        while (1) {
-                unsigned long ending;
-                unsigned long start, tail;
-                long delta;
-
-                debug_daemon_state.daemon_event = 0;
-
-                ending = atomic_read(&debug_off_a);
-                start = atomic_read(&debug_daemon_next_write);
-
-                /* check if paused is imposed by lctl ? */
-                force_flush = !debug_daemon_state.lctl_event;
-
-                delta = ending - start;
-                tail = debug_size - start;
-                size = (delta >= 0) ? delta : tail;
-                while (size && (force_flush || (delta < 0) ||
-                                (size >= DAEMON_SND_SIZE))) {
-                        if (daemon_file_size_limit) {
-                               int ssize = daemon_file_size_limit - file->f_pos;
-                               if (size > ssize)
-                                        size = ssize;
-                        }
-
-                        rc = file->f_op->write(file, debug_buf+start,
-                                               size, &file->f_pos);
-                        if (rc < 0) {
-                                printk(KERN_ALERT "LustreError: Debug_daemon "
-                                       "write error %d\n", rc);
-                                goto out;
-                        }
-                        start += rc;
-                        delta = ending - start;
-                        tail = debug_size - start;
-                        if (tail == 0)
-                                start = 0;
-                        if (delta >= 0)
-                                size = delta;
-                        else
-                                size = (tail == 0) ? ending : tail;
-                        if (daemon_file_size_limit == file->f_pos) {
-                                // file wrapped around
-                                file->f_pos = 0;
-                        }
-                }
-                atomic_set(&debug_daemon_next_write, start);
-                if (force_flush) {
-                        rc = file->f_op->fsync(file, file->f_dentry, 1);
-                        if (rc < 0) {
-                                printk(KERN_ALERT "LustreError: Debug_daemon "
-                                       "sync error %d\n", rc);
-                                goto out;
-                        }
-                        if (debug_daemon_state.stopped)
-                               break;
-                        debug_daemon_state.lctl_event = 1;
-                        wake_up(&debug_daemon_state.lctl);
-                }
-                wait_event(debug_daemon_state.daemon,
-                           debug_daemon_state.daemon_event);
-                }
-out:
-        atomic_set(&debug_daemon_state.paused, 1);
-        debug_daemon_state.stopped = 1;
-        set_fs(oldfs);
-        filp_close(file, 0);
-        current->journal_info = journal_info;
-out1:
-        debug_daemon_state.lctl_event = 1;
-        wake_up(&debug_daemon_state.lctl);
-        return 0;
-}
-
-void portals_debug_print(void)
-{
-        unsigned long dumplen = 64 * 1024;
-        char *start1, *start2;
-        char *end1, *end2;
-        unsigned long debug_off = atomic_read(&debug_off_a);
-
-        start1 = debug_buf + debug_off - dumplen;
-        if (start1 < debug_buf) {
-                start1 += debug_size;
-                end1 = debug_buf + debug_size - 1;
-                start2 = debug_buf;
-                end2 = debug_buf + debug_off;
-        } else {
-                end1 = debug_buf + debug_off;
-                start2 = debug_buf + debug_off;
-                end2 = debug_buf + debug_off;
-        }
-
-        while (start1 < end1) {
-                int count = MIN(1024, end1 - start1);
-                printk("LustreError: %*s", count, start1);
-                start1 += 1024;
-        }
-        while (start2 < end2) {
-                int count = MIN(1024, end2 - start2);
-                printk("LustreError: %*s", count, start2);
-                start2 += 1024;
-        }
-}
-
 void portals_debug_dumplog(void)
 {
         int rc;
@@ -453,8 +119,8 @@ void portals_debug_dumplog(void)
         set_current_state(TASK_INTERRUPTIBLE);
         add_wait_queue(&debug_ctlwq, &wait);
 
-        rc = kernel_thread(portals_do_debug_dumplog,
-                           NULL, CLONE_VM | CLONE_FS | CLONE_FILES);
+        rc = kernel_thread(portals_do_debug_dumplog, (void *)(long)current->pid,
+                           CLONE_VM | CLONE_FS | CLONE_FILES);
         if (rc < 0)
                 printk(KERN_ERR "LustreError: cannot start log dump thread: "
                        "%d\n", rc);
@@ -466,108 +132,6 @@ void portals_debug_dumplog(void)
         set_current_state(TASK_RUNNING);
 }
 
-int portals_debug_daemon_start(char *file, unsigned int size)
-{
-        int rc;
-
-        if (!debug_daemon_state.stopped)
-                return -EALREADY;
-
-        if (file != NULL)
-                strncpy(debug_daemon_file_path, file, 1024);
-
-        init_waitqueue_head(&debug_daemon_state.lctl);
-        init_waitqueue_head(&debug_daemon_state.daemon);
-
-        daemon_file_size_limit = size << 20;
-
-        debug_daemon_state.lctl_event = 0;
-        rc = kernel_thread(portals_debug_daemon, NULL, 0);
-        if (rc < 0) {
-                printk(KERN_ERR "LustreError: cannot start debug daemon thread\n");
-                strncpy(debug_daemon_file_path, "\0", 1);
-                return rc;
-        }
-        wait_event(debug_daemon_state.lctl, debug_daemon_state.lctl_event);
-        return 0;
-}
-
-int portals_debug_daemon_pause(void)
-{
-        if (atomic_read(&debug_daemon_state.paused))
-                return -EALREADY;
-
-        atomic_set(&debug_daemon_state.paused, 1);
-        debug_daemon_state.lctl_event = 0;
-        debug_daemon_state.daemon_event = 1;
-        wake_up(&debug_daemon_state.daemon);
-        wait_event(debug_daemon_state.lctl, debug_daemon_state.lctl_event);
-        return 0;
-}
-
-int portals_debug_daemon_continue(void)
-{
-        if (!atomic_read(&debug_daemon_state.paused))
-                return -EINVAL;
-        if (debug_daemon_state.stopped)
-                return -EINVAL;
-
-        debug_daemon_state.overlapped = 0;
-        atomic_set(&debug_daemon_next_write, atomic_read(&debug_off_a));
-        atomic_set(&debug_daemon_state.paused, 0);
-        return 0;
-}
-
-int portals_debug_daemon_stop(void)
-{
-        if (debug_daemon_state.stopped)
-                return -EALREADY;
-
-        if (!atomic_read(&debug_daemon_state.paused))
-                portals_debug_daemon_pause();
-
-        debug_daemon_state.lctl_event = 0;
-        debug_daemon_state.stopped = 1;
-
-        debug_daemon_state.daemon_event = 1;
-        wake_up(&debug_daemon_state.daemon);
-        wait_event(debug_daemon_state.lctl, debug_daemon_state.lctl_event);
-
-        debug_daemon_file_path[0] = '\0';
-        return 0;
-}
-
-int portals_debug_set_daemon(unsigned int cmd, unsigned int length,
-                             char *filename, unsigned int size)
-{
-        int rc = -EINVAL;
-
-        down(&debug_daemon_semaphore);
-        switch (cmd) {
-                case DEBUG_DAEMON_START:
-                        if (length && (filename[length -1] != '\0')) {
-                                CERROR("Invalid filename for debug_daemon\n");
-                                rc = -EINVAL;
-                                break;
-                        }
-                        rc = portals_debug_daemon_start(filename, size);
-                        break;
-                case DEBUG_DAEMON_STOP:
-                        rc = portals_debug_daemon_stop();
-                        break;
-                case DEBUG_DAEMON_PAUSE:
-                        rc = portals_debug_daemon_pause();
-                        break;
-                case DEBUG_DAEMON_CONTINUE:
-                        rc = portals_debug_daemon_continue();
-                        break;
-                default:
-                        CERROR("unknown set_daemon cmd\n");
-        }
-        up(&debug_daemon_semaphore);
-        return rc;
-}
-
 static int panic_dumplog(struct notifier_block *self, unsigned long unused1,
                          void *unused2)
 {
@@ -577,7 +141,7 @@ static int panic_dumplog(struct notifier_block *self, unsigned long unused1,
                 handled_panic = 1;
 
         if (in_interrupt()) {
-                portals_debug_print();
+                trace_debug_print();
                 return 0;
         }
 
@@ -595,80 +159,29 @@ static struct notifier_block lustre_panic_notifier = {
 
 int portals_debug_init(unsigned long bufsize)
 {
-        unsigned long debug_off = atomic_read(&debug_off_a);
-        if (debug_buf != NULL)
-                return -EALREADY;
-
-        atomic_set(&debug_daemon_state.paused, 1);
-        debug_daemon_state.stopped = 1;
-
-        debug_buf = vmalloc(bufsize + DEBUG_OVERFLOW);
-        if (debug_buf == NULL)
-                return -ENOMEM;
-        memset(debug_buf, 0, bufsize + DEBUG_OVERFLOW);
-        debug_wrapped = 0;
-
-        //printk(KERN_INFO "Portals: allocated %lu byte debug buffer at %p.\n",
-               //bufsize, debug_buf);
-        atomic_set(&debug_off_a, debug_off);
         notifier_chain_register(&panic_notifier_list, &lustre_panic_notifier);
-        debug_size = bufsize;
-
-        return 0;
+        return tracefile_init();
 }
 
 int portals_debug_cleanup(void)
 {
+        tracefile_exit();
         notifier_chain_unregister(&panic_notifier_list, &lustre_panic_notifier);
-        if (debug_buf == NULL)
-                return -EINVAL;
-
-        down(&debug_daemon_semaphore);
-        portals_debug_daemon_stop();
-
-        vfree(debug_buf);
-        atomic_set(&debug_off_a, 0);
-        up(&debug_daemon_semaphore);
-
         return 0;
 }
 
 int portals_debug_clear_buffer(void)
 {
-        unsigned long flags;
-        unsigned long state;
-
-        if (debug_buf == NULL)
-                return -EINVAL;
-
-        down(&debug_daemon_semaphore);
-        state = atomic_read(&debug_daemon_state.paused);
-        if (!state)
-                portals_debug_daemon_pause();
-        spin_lock_irqsave(&portals_debug_lock, flags);
-        atomic_set(&debug_off_a, 0);
-        debug_wrapped = 0;
-        atomic_set(&debug_daemon_next_write, 0);
-        debug_daemon_state.overlapped = 0;
-        spin_unlock_irqrestore(&portals_debug_lock, flags);
-
-        if (!state)
-                atomic_set(&debug_daemon_state.paused, 0);
-        up(&debug_daemon_semaphore);
-
+        trace_flush_pages();
         return 0;
 }
 
 /* Debug markers, although printed by S_PORTALS
- * should not be be marked as such.
- */
+ * should not be be marked as such. */
 #undef DEBUG_SUBSYSTEM
 #define DEBUG_SUBSYSTEM S_UNDEFINED
 int portals_debug_mark_buffer(char *text)
 {
-        if (debug_buf == NULL)
-                return -EINVAL;
-
         CDEBUG(D_TRACE,"***************************************************\n");
         CWARN("DEBUG MARKER: %s\n", text);
         CDEBUG(D_TRACE,"***************************************************\n");
@@ -678,228 +191,6 @@ int portals_debug_mark_buffer(char *text)
 #undef DEBUG_SUBSYSTEM
 #define DEBUG_SUBSYSTEM S_PORTALS
 
-/* this copies a snapshot of the debug buffer into an array of pages
- * before doing the potentially blocking copy into userspace. it could
- * be warning userspace if things wrap heavily while its off copying. */
-__s32 portals_debug_copy_to_user(char *buf, unsigned long len)
-{
-        int rc;
-        unsigned long total, debug_off, i, off, copied;
-        unsigned long flags;
-        struct page *page;
-        LIST_HEAD(my_pages);
-        struct list_head *pos, *n;
-
-        if (len < debug_size)
-                return -ENOSPC;
-
-        for (i = 0 ; i < debug_size; i += PAGE_SIZE) {
-                page = alloc_page(GFP_NOFS);
-                if (page == NULL) {
-                        rc = -ENOMEM;
-                        goto cleanup;
-                }
-                list_add(&PAGE_LIST(page), &my_pages);
-        }
-
-        spin_lock_irqsave(&portals_debug_lock, flags);
-        debug_off = atomic_read(&debug_off_a);
-
-        /* Sigh. If the buffer is empty, then skip to the end. */
-        if (debug_off == 0 && !debug_wrapped) {
-                spin_unlock_irqrestore(&portals_debug_lock, flags);
-                rc = 0;
-                goto cleanup;
-        }
-
-        if (debug_wrapped) {
-                off = debug_off + 1;
-                total = debug_size;
-        } else {
-                off = 0;
-                total = debug_off;
-        }
-        copied = 0;
-        list_for_each(pos, &my_pages) {
-                unsigned long to_copy;
-                void *addr;
-
-                page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
-                to_copy = min(total - off, PAGE_SIZE);
-                if (to_copy == 0) {
-                        off = 0;
-                        to_copy = min(debug_size - off, PAGE_SIZE);
-                }
-finish_partial:
-                addr = kmap_atomic(page, KM_USER0);
-                memcpy(addr, debug_buf + off, to_copy);
-                kunmap_atomic(addr, KM_USER0);
-                copied += to_copy;
-                if (copied >= total)
-                        break;
-
-                off += to_copy;
-                if (off >= debug_size) {
-                        off = 0;
-                        if (to_copy != PAGE_SIZE) {
-                                to_copy = PAGE_SIZE - to_copy;
-                                goto finish_partial;
-                        }
-                }
-        }
-
-        spin_unlock_irqrestore(&portals_debug_lock, flags);
-
-        off = 0;
-        list_for_each(pos, &my_pages) {
-                unsigned long to_copy;
-                page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
-
-                to_copy = min(copied - off, PAGE_SIZE);
-                rc = copy_to_user(buf + off, kmap(page), to_copy);
-                kunmap(page);
-                if (rc) {
-                        rc = -EFAULT;
-                        goto cleanup;
-                }
-                off += to_copy;
-                if (off >= copied)
-                        break;
-        }
-        rc = copied;
-
-cleanup:
-        list_for_each_safe(pos, n, &my_pages) {
-                page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
-                list_del(&PAGE_LIST(page));
-                __free_page(page);
-        }
-        return rc;
-}
-
-/* FIXME: I'm not very smart; someone smarter should make this better. */
-void
-portals_debug_msg(int subsys, int mask, char *file, const char *fn,
-                  const int line, unsigned long stack, char *format, ...)
-{
-        va_list       ap;
-        unsigned long flags;
-        int           max_nob;
-        int           prefix_nob;
-        int           msg_nob;
-        struct timeval tv;
-        unsigned long base_offset;
-        unsigned long debug_off;
-
-        if (debug_buf == NULL) {
-                printk("LustreError: portals_debug_msg: debug_buf is NULL!\n");
-                return;
-        }
-
-        spin_lock_irqsave(&portals_debug_lock, flags);
-        debug_off = atomic_read(&debug_off_a);
-        if (!atomic_read(&debug_daemon_state.paused)) {
-                unsigned long available;
-                long delta;
-                long v = atomic_read(&debug_daemon_next_write);
-
-                delta = debug_off - v;
-                available = (delta>=0) ? debug_size-delta : -delta;
-                // Check if we still have enough debug buffer for CDEBUG
-                if (available < DAEMON_SND_SIZE) {
-                        /* Drop CDEBUG packets until enough debug_buffer is
-                         * available */
-                        if (debug_daemon_state.overlapped)
-                                 goto out;
-                        /* If this is the first time, leave a marker in the
-                         * output */
-                        debug_daemon_state.overlapped = 1;
-                        format = "DEBUG MARKER: Debug buffer overlapped\n";
-                        printk(KERN_ERR "LustreError: debug daemon buffer "
-                               "overlapped\n");
-                } else  /* More space just became available */
-                        debug_daemon_state.overlapped = 0;
-        }
-
-        max_nob = debug_size - debug_off + DEBUG_OVERFLOW;
-        if (max_nob <= 0) {
-                spin_unlock_irqrestore(&portals_debug_lock, flags);
-                printk("LustreError: logic error in portals_debug_msg: "
-                       "< 0 bytes to write\n");
-                return;
-        }
-
-        /* NB since we pass a non-zero sized buffer (at least) on the first
-         * print, we can be assured that by the end of all the snprinting,
-         * we _do_ have a terminated buffer, even if our message got truncated.
-         */
-
-        do_gettimeofday(&tv);
-
-        prefix_nob = snprintf(debug_buf + debug_off, max_nob,
-                              "%06x:%06x:%d:%lu.%06lu:%lu:%d:",
-                              subsys, mask, smp_processor_id(),
-                              tv.tv_sec, tv.tv_usec, stack, current->pid);
-        max_nob -= prefix_nob;
-
-        if(*(format + strlen(format) - 1) != '\n')
-                printk(KERN_INFO "format at %s:%d:%s doesn't end in newline\n",
-                       file, line, fn);
-
-#if defined(__arch_um__) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,20))
-        msg_nob = snprintf(debug_buf + debug_off + prefix_nob, max_nob,
-                           "%d:(%s:%d:%s()) ",
-                           current->thread.extern_pid, file, line, fn);
-#elif defined(__arch_um__) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
-        msg_nob = snprintf(debug_buf + debug_off + prefix_nob, max_nob,
-                           "%d:(%s:%d:%s()) ",
-                           current->thread.mode.tt.extern_pid, file, line, fn);
-#else
-        msg_nob = snprintf(debug_buf + debug_off + prefix_nob, max_nob,
-                           "%d:(%s:%d:%s()) ",
-                           current->pid, file, line, fn);
-#endif
-
-        va_start(ap, format);
-        msg_nob += vsnprintf(debug_buf + debug_off + prefix_nob + msg_nob,
-                             max_nob, format, ap);
-        max_nob -= msg_nob;
-        va_end(ap);
-
-        /* Print to console, while msg is contiguous in debug_buf */
-        /* NB safely terminated see above */
-        if ((mask & D_EMERG) != 0)
-                printk(KERN_EMERG "LustreError: %s",
-                       debug_buf + debug_off + prefix_nob);
-        else if ((mask & D_ERROR) != 0)
-                printk(KERN_ERR "LustreError: %s",
-                       debug_buf + debug_off + prefix_nob);
-        else if ((mask & D_WARNING) != 0)
-                printk(KERN_WARNING "Lustre: %s",
-                       debug_buf + debug_off + prefix_nob);
-        else if (portal_printk)
-                printk("<%d>Lustre: %s", portal_printk,
-                       debug_buf+debug_off+prefix_nob);
-        base_offset = debug_off & 0xFFFF;
-
-        debug_off += prefix_nob + msg_nob;
-        if (debug_off > debug_size) {
-                memcpy(debug_buf, debug_buf + debug_size,
-                       debug_off - debug_size + 1);
-                debug_off -= debug_size;
-                debug_wrapped = 1;
-        }
-
-        atomic_set(&debug_off_a, debug_off);
-        if (!atomic_read(&debug_daemon_state.paused) &&
-            ((base_offset+prefix_nob+msg_nob) >= DAEMON_SND_SIZE)) {
-                debug_daemon_state.daemon_event = 1;
-                wake_up(&debug_daemon_state.daemon);
-        }
-out:
-        spin_unlock_irqrestore(&portals_debug_lock, flags);
-}
-
 void portals_debug_set_level(unsigned int debug_level)
 {
         printk("Lustre: Setting portals debug level to %08x\n", debug_level);
@@ -1079,7 +370,6 @@ EXPORT_SYMBOL(portals_current);
 #endif /* __KERNEL__ */
 
 EXPORT_SYMBOL(portals_debug_dumplog);
-EXPORT_SYMBOL(portals_debug_msg);
 EXPORT_SYMBOL(portals_debug_set_level);
 EXPORT_SYMBOL(portals_run_upcall);
 EXPORT_SYMBOL(portals_run_lbug_upcall);
index f46c855..c510aa4 100644 (file)
@@ -526,23 +526,6 @@ static int kportal_ioctl(struct inode *inode, struct file *file,
         data = (struct portal_ioctl_data *)buf;
 
         switch (cmd) {
-        case IOC_PORTAL_SET_DAEMON: 
-                RETURN (portals_debug_set_daemon ( 
-                                        (unsigned int) data->ioc_count,
-                                        (unsigned int) data->ioc_inllen1,
-                                        (char *) data->ioc_inlbuf1,
-                                        (unsigned int) data->ioc_misc)); 
-        case IOC_PORTAL_GET_DEBUG: {
-                __s32 size = portals_debug_copy_to_user(data->ioc_pbuf1,
-                                                        data->ioc_plen1);
-
-                if (size < 0)
-                        RETURN(size);
-
-                data->ioc_size = size;
-                err = copy_to_user((char *)arg, data, sizeof(*data));
-                RETURN(err);
-        }
         case IOC_PORTAL_CLEAR_DEBUG:
                 portals_debug_clear_buffer();
                 RETURN(0);
@@ -767,7 +750,6 @@ static void exit_kportals_module(void)
         CDEBUG(D_MALLOC, "before Portals cleanup: kmem %d\n",
                atomic_read(&portal_kmemory));
 
-
         rc = misc_deregister(&portal_dev);
         if (rc)
                 CERROR("misc_deregister error %d\n", rc);
index c1b2aec..8565939 100644 (file)
 
 #include <linux/kp30.h>
 #include <asm/div64.h>
+#include "tracefile.h"
 
 static struct ctl_table_header *portals_table_header = NULL;
 extern char debug_file_path[1024];
-extern char debug_daemon_file_path[1024];
 extern char portals_upcall[1024];
 
 #define PSDEV_PORTALS  (0x100)
@@ -82,9 +82,6 @@ static struct ctl_table portals_table[PORTALS_PRIMARY_CTLCNT + 1] = {
          &proc_dointvec},
         {PSDEV_DEBUG_PATH, "debug_path", debug_file_path,
          sizeof(debug_file_path), 0644, NULL, &proc_dostring, &sysctl_string},
-        {PSDEV_DEBUG_DUMP_PATH, "debug_daemon_path", debug_daemon_file_path,
-         sizeof(debug_daemon_file_path), 0644, NULL, &proc_dostring,
-         &sysctl_string},
         {PSDEV_PORTALS_UPCALL, "upcall", portals_upcall,
          sizeof(portals_upcall), 0644, NULL, &proc_dostring,
          &sysctl_string},
@@ -234,9 +231,9 @@ static unsigned char basedir[]="net/portals";
 
 int insert_proc(void)
 {
+        struct proc_dir_entry *ent;
 #if PORTALS_PROFILING
         unsigned char dir[128];
-        struct proc_dir_entry *ent;
 
         if (ARRAY_SIZE(prof_ents) != MAX_PROFS) {
                 CERROR("profiling enum and array are out of sync.\n");
@@ -266,6 +263,29 @@ int insert_proc(void)
                 portals_table_header = register_sysctl_table(top_table, 0);
 #endif
 
+        ent = create_proc_entry("sys/portals/dump_kernel", 0, NULL);
+        if (ent == NULL) {
+                CERROR("couldn't register dump_kernel\n");
+                return -1;
+        }
+        ent->write_proc = trace_dk;
+
+        ent = create_proc_entry("sys/portals/daemon_file", 0, NULL);
+        if (ent == NULL) {
+                CERROR("couldn't register daemon_file\n");
+                return -1;
+        }
+        ent->write_proc = trace_write_daemon_file;
+        ent->read_proc = trace_read_daemon_file;
+
+        ent = create_proc_entry("sys/portals/debug_size", 0, NULL);
+        if (ent == NULL) {
+                CERROR("couldn't register debug_size\n");
+                return -1;
+        }
+        ent->write_proc = trace_write_debug_size;
+        ent->read_proc = trace_read_debug_size;
+
         return 0;
 }
 
@@ -281,12 +301,16 @@ void remove_proc(void)
         end = strlen(dir);
 
         strcat(dir, "/cycles");
-        remove_proc_entry(dir,0);
+        remove_proc_entry(dir, 0);
 
         dir[end] = '\0';
-        remove_proc_entry(dir,0);
+        remove_proc_entry(dir, 0);
 #endif /* PORTALS_PROFILING */
 
+        remove_proc_entry("sys/portals/dump_kernel", NULL);
+        remove_proc_entry("sys/portals/daemon_file", NULL);
+        remove_proc_entry("sys/portals/debug_size", NULL);
+
 #ifdef CONFIG_SYSCTL
         if (portals_table_header)
                 unregister_sysctl_table(portals_table_header);
diff --git a/lustre/portals/libcfs/tracefile.c b/lustre/portals/libcfs/tracefile.c
new file mode 100644 (file)
index 0000000..7d79635
--- /dev/null
@@ -0,0 +1,862 @@
+/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
+ * vim:expandtab:shiftwidth=8:tabstop=8:
+ *
+ * Copyright (C) 2004 Cluster File Systems, Inc.
+ *   Author: Zach Brown <zab@clusterfs.com>
+ *   Author: Phil Schwan <phil@clusterfs.com>
+ *
+ *   This file is part of Lustre, http://www.lustre.org.
+ *
+ *   Lustre is free software; you can redistribute it and/or
+ *   modify it under the terms of version 2 of the GNU General Public
+ *   License as published by the Free Software Foundation.
+ *
+ *   Lustre 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 Lustre; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/rwsem.h>
+#include <linux/proc_fs.h>
+#include <linux/file.h>
+#include <linux/smp.h>
+#include <linux/ctype.h>
+#include <asm/uaccess.h>
+#ifdef HAVE_MM_INLINE
+#include <linux/mm_inline.h>
+#endif
+
+#define DEBUG_SUBSYSTEM S_PORTALS
+
+#include <linux/kp30.h>
+#include <linux/portals_compat25.h>
+#include <linux/libcfs.h>
+
+#define TCD_MAX_PAGES 1280
+
+/* XXX move things up to the top, comment */
+
+static union {
+        struct trace_cpu_data {
+                struct list_head        tcd_pages;
+                unsigned long           tcd_cur_pages;
+
+                struct list_head        tcd_daemon_pages;
+                unsigned long           tcd_cur_daemon_pages;
+
+                unsigned long           tcd_max_pages;
+                int                     tcd_shutting_down;
+        } tcd;
+        char __pad[SMP_CACHE_BYTES];
+} trace_data[NR_CPUS] __cacheline_aligned;
+
+struct page_collection {
+        struct list_head        pc_pages;
+        spinlock_t              pc_lock;
+        int                     pc_want_daemon_pages;
+};
+
+struct tracefiled_ctl {
+        struct completion        tctl_start;
+        struct completion        tctl_stop;
+        wait_queue_head_t        tctl_waitq;
+        pid_t                    tctl_pid;
+        atomic_t                 tctl_shutdown;
+};
+
+static DECLARE_RWSEM(tracefile_sem);
+static char *tracefile = NULL;
+static struct tracefiled_ctl trace_tctl;
+static DECLARE_MUTEX(trace_thread_sem);
+static int thread_running = 0;
+
+#ifndef get_cpu
+#define get_cpu() smp_processor_id()
+#define put_cpu() do { } while (0)
+#endif
+
+#define trace_get_tcd(FLAGS) ({                 \
+        struct trace_cpu_data *__ret;           \
+        int __cpu = get_cpu();                  \
+        local_irq_save(FLAGS);                  \
+        __ret = &trace_data[__cpu].tcd;         \
+        __ret;                                  \
+})
+
+#define trace_put_tcd(TCD, FLAGS) do {          \
+        local_irq_restore(FLAGS);               \
+        put_cpu();                              \
+} while (0)
+
+static void put_pages_on_daemon_list_on_cpu(void *info);
+
+/* return a page that has 'len' bytes left at the end */
+static struct page *trace_get_page(struct trace_cpu_data *tcd,
+                                   unsigned long len)
+{
+        struct page *page = NULL;
+
+        if (len > PAGE_SIZE) {
+                printk(KERN_ERR "cowardly refusing to write %lu bytes in a "
+                       "page\n", len);
+                return NULL;
+        }
+
+        if (!list_empty(&tcd->tcd_pages)) {
+                page = list_entry(tcd->tcd_pages.prev, struct page,
+                                  PAGE_LIST_ENTRY);
+                if (page->index + len <= PAGE_SIZE)
+                        return page;
+        }
+
+        if (tcd->tcd_cur_pages < tcd->tcd_max_pages) {
+                page = alloc_page(GFP_ATOMIC);
+                if (page == NULL) {
+                        /* the kernel should print a message for us.  fall back
+                         * to using the last page in the ring buffer. */
+                        goto ring_buffer;
+                        return NULL;
+                }
+                page->index = 0;
+                page->mapping = (void *)smp_processor_id();
+                list_add_tail(&PAGE_LIST(page), &tcd->tcd_pages);
+                tcd->tcd_cur_pages++;
+
+                if (tcd->tcd_cur_pages > 8 && thread_running) {
+                        struct tracefiled_ctl *tctl = &trace_tctl;
+                        wake_up(&tctl->tctl_waitq);
+                }
+                return page;
+        }
+
+ ring_buffer:
+        if (thread_running) {
+                int pgcount = tcd->tcd_cur_pages / 10;
+                struct page_collection pc;
+                struct list_head *pos, *tmp;
+                printk(KERN_WARNING "debug daemon buffer overflowed; discarding"
+                       " 10%% of pages (%d)\n", pgcount + 1);
+
+                INIT_LIST_HEAD(&pc.pc_pages);
+                spin_lock_init(&pc.pc_lock);
+
+                list_for_each_safe(pos, tmp, &tcd->tcd_pages) {
+                        struct page *page;
+
+                        if (pgcount-- == 0)
+                                break;
+
+                        page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
+                        list_del(&PAGE_LIST(page));
+                        list_add_tail(&PAGE_LIST(page), &pc.pc_pages);
+                        tcd->tcd_cur_pages--;
+                }
+                put_pages_on_daemon_list_on_cpu(&pc);
+        }
+        LASSERT(!list_empty(&tcd->tcd_pages));
+
+        page = list_entry(tcd->tcd_pages.next, struct page, PAGE_LIST_ENTRY);
+        page->index = 0;
+
+        list_del(&PAGE_LIST(page));
+        list_add_tail(&PAGE_LIST(page), &tcd->tcd_pages);
+        return page;
+}
+
+static void print_to_console(struct ptldebug_header *hdr, int mask, char *buf,
+                             int len, char *file, const char *fn)
+{
+        char *prefix = NULL, *ptype = NULL;
+
+        if ((mask & D_EMERG) != 0) {
+                prefix = "LustreError";
+                ptype = KERN_EMERG;
+        } else if ((mask & D_ERROR) != 0) {
+                prefix = "LustreError";
+                ptype = KERN_ERR;
+        } else if ((mask & D_WARNING) != 0) {
+                prefix = "Lustre";
+                ptype = KERN_WARNING;
+        } else if (portal_printk) {
+                prefix = "Lustre";
+                ptype = KERN_INFO;
+        }
+
+        printk("%s%s: %d:%d:(%s:%d:%s()) %*s", ptype, prefix, hdr->ph_pid,
+               hdr->ph_extern_pid, file, hdr->ph_line_num, fn, len, buf);
+}
+
+void portals_debug_msg(int subsys, int mask, char *file, const char *fn,
+                       const int line, unsigned long stack, char *format, ...)
+{
+        struct trace_cpu_data *tcd;
+        struct ptldebug_header header;
+        struct page *page;
+        char *debug_buf;
+        int known_size, needed, max_nob;
+        va_list       ap;
+        unsigned long flags;
+        struct timeval tv;
+
+        if (*(format + strlen(format) - 1) != '\n')
+                printk(KERN_INFO "format at %s:%d:%s doesn't end in newline\n",
+                       file, line, fn);
+
+        tcd = trace_get_tcd(flags);
+        if (tcd->tcd_shutting_down)
+                goto out;
+
+        do_gettimeofday(&tv);
+
+        header.ph_subsys = subsys;
+        header.ph_mask = mask;
+        header.ph_cpu_id = smp_processor_id();
+        header.ph_sec = (__u32)tv.tv_sec;
+        header.ph_usec = tv.tv_usec;
+        header.ph_stack = stack;
+        header.ph_pid = current->pid;
+        header.ph_line_num = line;
+
+#if defined(__arch_um__) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,20))
+        header.ph_extern_pid = current->thread.extern_pid;
+#elif defined(__arch_um__) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
+        header.ph_extern_pid = current->thread.mode.tt.extern_pid;
+#else
+        header.ph_extern_pid = 0;
+#endif
+
+        known_size = sizeof(header) + strlen(file) + strlen(fn) + 2; // nulls
+
+        page = trace_get_page(tcd, known_size + 40); /* slop */
+ retry:
+        if (page == NULL)
+                goto out;
+
+        debug_buf = page_address(page) + page->index + known_size;
+
+        va_start(ap, format);
+        max_nob = PAGE_SIZE - page->index - known_size;
+        LASSERT(max_nob > 0);
+        needed = vsnprintf(debug_buf, max_nob, format, ap);
+        va_end(ap);
+
+        if (needed > max_nob) {
+                /* overflow.  oh poop. */
+                page = trace_get_page(tcd, needed + known_size);
+                goto retry;
+        }
+
+        header.ph_len = known_size + needed;
+        debug_buf = page_address(page) + page->index;
+
+        memcpy(debug_buf, &header, sizeof(header));
+        page->index += sizeof(header);
+        debug_buf += sizeof(header);
+
+        strcpy(debug_buf, file);
+        page->index += strlen(file) + 1;
+        debug_buf += strlen(file) + 1;
+
+        strcpy(debug_buf, fn);
+        page->index += strlen(fn) + 1;
+        debug_buf += strlen(fn) + 1;
+
+        page->index += needed;
+        if (page->index > PAGE_SIZE)
+                printk(KERN_EMERG "page->index == %lu in portals_debug_msg\n",
+                       page->index);
+
+        if ((mask & (D_EMERG | D_ERROR | D_WARNING)) || portal_printk)
+                print_to_console(&header, mask, debug_buf, needed, file, fn);
+
+ out:
+        trace_put_tcd(tcd, flags);
+}
+EXPORT_SYMBOL(portals_debug_msg);
+
+static void collect_pages_on_cpu(void *info)
+{
+        struct trace_cpu_data *tcd;
+        unsigned long flags;
+        struct page_collection *pc = info;
+
+        tcd = trace_get_tcd(flags);
+
+        spin_lock(&pc->pc_lock);
+        list_splice(&tcd->tcd_pages, &pc->pc_pages);
+        INIT_LIST_HEAD(&tcd->tcd_pages);
+        tcd->tcd_cur_pages = 0;
+        if (pc->pc_want_daemon_pages) {
+                list_splice(&tcd->tcd_daemon_pages, &pc->pc_pages);
+                INIT_LIST_HEAD(&tcd->tcd_daemon_pages);
+                tcd->tcd_cur_daemon_pages = 0;
+        }
+        spin_unlock(&pc->pc_lock);
+
+        trace_put_tcd(tcd, flags);
+}
+
+static void collect_pages(struct page_collection *pc)
+{
+        /* needs to be fixed up for preempt */
+        INIT_LIST_HEAD(&pc->pc_pages);
+        collect_pages_on_cpu(pc);
+        smp_call_function(collect_pages_on_cpu, pc, 0, 1);
+}
+
+static void put_pages_back_on_cpu(void *info)
+{
+        struct page_collection *pc = info;
+        struct trace_cpu_data *tcd;
+        struct list_head *pos, *tmp, *cur_head;
+        unsigned long flags;
+
+        tcd = trace_get_tcd(flags);
+
+        cur_head = tcd->tcd_pages.next;
+
+        spin_lock(&pc->pc_lock);
+        list_for_each_safe(pos, tmp, &pc->pc_pages) {
+                struct page *page;
+
+                page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
+                LASSERT(page->index <= PAGE_SIZE);
+                LASSERT(page_count(page) > 0);
+
+                if ((unsigned long)page->mapping != smp_processor_id())
+                        continue;
+
+                list_del(&PAGE_LIST(page));
+                list_add_tail(&PAGE_LIST(page), cur_head);
+                tcd->tcd_cur_pages++;
+        }
+        spin_unlock(&pc->pc_lock);
+
+        trace_put_tcd(tcd, flags);
+}
+
+static void put_pages_back(struct page_collection *pc)
+{
+        /* needs to be fixed up for preempt */
+        put_pages_back_on_cpu(pc);
+        smp_call_function(put_pages_back_on_cpu, pc, 0, 1);
+}
+
+/* Add pages to a per-cpu debug daemon ringbuffer.  This buffer makes sure that
+ * we have a good amount of data at all times for dumping during an LBUG, even
+ * if we have been steadily writing (and otherwise discarding) pages via the
+ * debug daemon. */
+static void put_pages_on_daemon_list_on_cpu(void *info)
+{
+        struct page_collection *pc = info;
+        struct trace_cpu_data *tcd;
+        struct list_head *pos, *tmp;
+        unsigned long flags;
+
+        tcd = trace_get_tcd(flags);
+
+        spin_lock(&pc->pc_lock);
+        list_for_each_safe(pos, tmp, &pc->pc_pages) {
+                struct page *page;
+
+                page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
+                LASSERT(page->index <= PAGE_SIZE);
+                LASSERT(page_count(page) > 0);
+                if ((unsigned long)page->mapping != smp_processor_id())
+                        continue;
+
+                list_del(&PAGE_LIST(page));
+                list_add_tail(&PAGE_LIST(page), &tcd->tcd_daemon_pages);
+                tcd->tcd_cur_daemon_pages++;
+
+                if (tcd->tcd_cur_daemon_pages > tcd->tcd_max_pages) {
+                        LASSERT(!list_empty(&tcd->tcd_daemon_pages));
+                        page = list_entry(tcd->tcd_daemon_pages.next,
+                                          struct page, PAGE_LIST_ENTRY);
+
+                        LASSERT(page->index <= PAGE_SIZE);
+                        LASSERT(page_count(page) > 0);
+
+                        page->index = 0;
+                        list_del(&PAGE_LIST(page));
+                        page->mapping = NULL;
+                        __free_page(page);
+                        tcd->tcd_cur_daemon_pages--;
+                }
+        }
+        spin_unlock(&pc->pc_lock);
+
+        trace_put_tcd(tcd, flags);
+}
+
+static void put_pages_on_daemon_list(struct page_collection *pc)
+{
+        put_pages_on_daemon_list_on_cpu(pc);
+        smp_call_function(put_pages_on_daemon_list_on_cpu, pc, 0, 1);
+}
+
+void trace_debug_print(void)
+{
+        struct page_collection pc;
+        struct list_head *pos, *tmp;
+
+        spin_lock_init(&pc.pc_lock);
+
+        collect_pages(&pc);
+        list_for_each_safe(pos, tmp, &pc.pc_pages) {
+                struct page *page;
+                char *p, *file, *fn;
+
+                page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
+                LASSERT(page->index <= PAGE_SIZE);
+                LASSERT(page_count(page) > 0);
+
+                p = page_address(page);
+                while (p < ((char *)page_address(page) + PAGE_SIZE)) {
+                        struct ptldebug_header *hdr;
+                        int len;
+                        hdr = (void *)p;
+                        p += sizeof(*hdr);
+                        file = p;
+                        p += strlen(file) + 1;
+                        fn = p;
+                        p += strlen(fn) + 1;
+                        len = hdr->ph_len - (p - (char *)hdr);
+
+                        print_to_console(hdr, D_EMERG, p, len, file, fn);
+                }
+
+                list_del(&PAGE_LIST(page));
+                page->mapping = NULL;
+                __free_page(page);
+        }
+}
+
+int tracefile_dump_all_pages(char *filename)
+{
+        struct page_collection pc;
+        struct file *filp;
+        struct list_head *pos, *tmp;
+        mm_segment_t oldfs;
+        int rc;
+
+        down_write(&tracefile_sem);
+
+        filp = filp_open(filename, O_CREAT|O_EXCL|O_WRONLY, 0600);
+        if (IS_ERR(filp)) {
+                rc = PTR_ERR(filp);
+                printk(KERN_ERR "couldn't open %s: %d\n", filename, rc);
+                goto out;
+        }
+
+        spin_lock_init(&pc.pc_lock);
+        pc.pc_want_daemon_pages = 1;
+        collect_pages(&pc);
+        if (list_empty(&pc.pc_pages)) {
+                rc = 0;
+                goto close;
+        }
+
+        /* ok, for now, just write the pages.  in the future we'll be building
+         * iobufs with the pages and calling generic_direct_IO */
+        oldfs = get_fs();
+        set_fs(get_ds());
+        list_for_each_safe(pos, tmp, &pc.pc_pages) {
+                struct page *page;
+
+                page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
+                LASSERT(page->index <= PAGE_SIZE);
+                LASSERT(page_count(page) > 0);
+
+                rc = filp->f_op->write(filp, page_address(page), page->index,
+                                       &filp->f_pos);
+                if (rc != page->index) {
+                        printk(KERN_WARNING "wanted to write %lu but wrote "
+                               "%d\n", page->index, rc);
+                        put_pages_back(&pc);
+                        break;
+                }
+                list_del(&PAGE_LIST(page));
+                page->mapping = NULL;
+                __free_page(page);
+        }
+        set_fs(oldfs);
+        rc = filp->f_op->fsync(filp, filp->f_dentry, 1);
+        if (rc)
+                printk(KERN_ERR "sync returns %d\n", rc);
+ close:
+        filp_close(filp, 0);
+ out:
+        up_write(&tracefile_sem);
+        return rc;
+}
+
+void trace_flush_pages(void)
+{
+        struct page_collection pc;
+        struct list_head *pos, *tmp;
+
+        spin_lock_init(&pc.pc_lock);
+
+        collect_pages(&pc);
+        list_for_each_safe(pos, tmp, &pc.pc_pages) {
+                struct page *page;
+
+                page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
+                LASSERT(page->index <= PAGE_SIZE);
+                LASSERT(page_count(page) > 0);
+
+                list_del(&PAGE_LIST(page));
+                page->mapping = NULL;
+                __free_page(page);
+        }
+}
+
+int trace_dk(struct file *file, const char *buffer, unsigned long count,
+             void *data)
+{
+        char *name;
+        unsigned long off;
+        int rc;
+
+        name = kmalloc(count + 1, GFP_KERNEL);
+        if (name == NULL)
+                return -ENOMEM;
+
+        if (copy_from_user(name, buffer, count)) {
+                rc = -EFAULT;
+                goto out;
+        }
+
+        if (name[0] != '/') {
+                rc = -EINVAL;
+                goto out;
+        }
+
+        /* be nice and strip out trailing '\n' */
+        for (off = count ; off > 2 && isspace(name[off - 1]); off--)
+                ;
+
+        name[off] = '\0';
+        rc = tracefile_dump_all_pages(name);
+out:
+        if (name)
+                kfree(name);
+        return count;
+}
+EXPORT_SYMBOL(trace_dk);
+
+static int tracefiled(void *arg)
+{
+        struct page_collection pc;
+        struct tracefiled_ctl *tctl = arg;
+        struct list_head *pos, *tmp;
+        struct ptldebug_header *hdr;
+        struct file *filp;
+        struct page *page;
+        mm_segment_t oldfs;
+        int rc;
+
+        /* we're started late enough that we pick up init's fs context */
+        /* this is so broken in uml?  what on earth is going on? */
+        kportal_daemonize("ktracefiled");
+        reparent_to_init();
+
+        spin_lock_init(&pc.pc_lock);
+        complete(&tctl->tctl_start);
+
+        while (1) {
+                wait_queue_t __wait;
+
+                init_waitqueue_entry(&__wait, current);
+                add_wait_queue(&tctl->tctl_waitq, &__wait);
+                set_current_state(TASK_INTERRUPTIBLE);
+                schedule_timeout(HZ);
+                remove_wait_queue(&tctl->tctl_waitq, &__wait);
+
+                if (atomic_read(&tctl->tctl_shutdown))
+                        break;
+
+                pc.pc_want_daemon_pages = 0;
+                collect_pages(&pc);
+                if (list_empty(&pc.pc_pages))
+                        continue;
+
+                filp = NULL;
+                down_read(&tracefile_sem);
+                if (tracefile != NULL) {
+                        filp = filp_open(tracefile, O_CREAT|O_RDWR|O_APPEND,
+                                        0600);
+                        if (IS_ERR(filp)) {
+                                printk("couldn't open %s: %ld\n", tracefile,
+                                       PTR_ERR(filp));
+                                filp = NULL;
+                        }
+                }
+                up_read(&tracefile_sem);
+                if (filp == NULL) {
+                        put_pages_on_daemon_list(&pc);
+                        continue;
+                }
+
+                oldfs = get_fs();
+                set_fs(get_ds());
+
+                /* mark the first header, so we can sort in chunks */
+                page = list_entry(pc.pc_pages.next, struct page,
+                                  PAGE_LIST_ENTRY);
+                LASSERT(page->index <= PAGE_SIZE);
+                LASSERT(page_count(page) > 0);
+
+                hdr = page_address(page);
+                hdr->ph_flags |= PH_FLAG_FIRST_RECORD;
+
+                list_for_each_safe(pos, tmp, &pc.pc_pages) {
+                        page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
+                        LASSERT(page->index <= PAGE_SIZE);
+                        LASSERT(page_count(page) > 0);
+
+                        rc = filp->f_op->write(filp, page_address(page),
+                                        page->index, &filp->f_pos);
+                        if (rc != page->index) {
+                                printk(KERN_WARNING "wanted to write %lu but "
+                                       "wrote %d\n", page->index, rc);
+                                put_pages_back(&pc);
+                        }
+                }
+                set_fs(oldfs);
+                filp_close(filp, 0);
+
+                put_pages_on_daemon_list(&pc);
+        }
+        complete(&tctl->tctl_stop);
+        return 0;
+}
+
+int trace_start_thread(void)
+{
+        struct tracefiled_ctl *tctl = &trace_tctl;
+        int rc = 0;
+
+        down(&trace_thread_sem);
+        if (thread_running)
+                goto out;
+
+        init_completion(&tctl->tctl_start);
+        init_completion(&tctl->tctl_stop);
+        init_waitqueue_head(&tctl->tctl_waitq);
+        atomic_set(&tctl->tctl_shutdown, 0);
+
+        if (kernel_thread(tracefiled, tctl, 0) < 0) {
+                rc = -ECHILD;
+                goto out;
+        }
+
+        wait_for_completion(&tctl->tctl_start);
+        thread_running = 1;
+out:
+        up(&trace_thread_sem);
+        return rc;
+}
+
+void trace_stop_thread(void)
+{
+        struct tracefiled_ctl *tctl = &trace_tctl;
+
+        down(&trace_thread_sem);
+        if (thread_running) {
+                printk(KERN_INFO "Shutting down debug daemon thread...\n");
+                atomic_set(&tctl->tctl_shutdown, 1);
+                wait_for_completion(&tctl->tctl_stop);
+                thread_running = 0;
+        }
+        up(&trace_thread_sem);
+}
+
+int trace_write_daemon_file(struct file *file, const char *buffer,
+                            unsigned long count, void *data)
+{
+        char *name;
+        unsigned long off;
+        int rc;
+
+        name = kmalloc(count + 1, GFP_KERNEL);
+        if (name == NULL)
+                return -ENOMEM;
+
+        if (copy_from_user(name, buffer, count)) {
+                rc = -EFAULT;
+                goto out;
+        }
+
+        /* be nice and strip out trailing '\n' */
+        for (off = count ; off > 2 && isspace(name[off - 1]); off--)
+                ;
+
+        name[off] = '\0';
+
+        down_write(&tracefile_sem);
+        if (strcmp(name, "stop") == 0) {
+                tracefile = NULL;
+                trace_stop_thread();
+                goto out_sem;
+        }
+
+        if (name[0] != '/') {
+                rc = -EINVAL;
+                goto out_sem;
+        }
+
+        if (tracefile != NULL)
+                kfree(tracefile);
+
+        tracefile = name;
+        name = NULL;
+
+        printk(KERN_INFO "Lustre: debug daemon will attempt to start writing "
+               "to %s\n", name);
+
+        trace_start_thread();
+
+ out_sem:
+        up_write(&tracefile_sem);
+
+ out:
+        if (name)
+                kfree(name);
+        return count;
+}
+
+int trace_read_daemon_file(char *page, char **start, off_t off, int count,
+                           int *eof, void *data)
+{
+        int rc;
+
+        down_read(&tracefile_sem);
+        rc = snprintf(page, count, "%s", tracefile);
+        up_read(&tracefile_sem);
+
+        return rc;
+}
+
+int trace_write_debug_size(struct file *file, const char *buffer,
+                           unsigned long count, void *data)
+{
+        char *string;
+        int rc, i;
+        unsigned max;
+
+        string = kmalloc(count + 1, GFP_KERNEL);
+        if (string == NULL)
+                return -ENOMEM;
+
+        if (copy_from_user(string, buffer, count)) {
+                rc = -EFAULT;
+                goto out;
+        }
+
+        max = simple_strtoul(string, NULL, 0);
+        if (max == 0) {
+                rc = -EINVAL;
+                goto out;
+        }
+        max /= smp_num_cpus;
+
+        if (max > num_physpages / 5 * 4) {
+                printk(KERN_ERR "Lustre: Refusing to set debug buffer size to "
+                       "%d pages, which is more than 80%% of physical pages "
+                       "(%lu).\n", max * smp_num_cpus, num_physpages / 5 * 4);
+                return count;
+        }
+
+        for (i = 0; i < NR_CPUS; i++) {
+                struct trace_cpu_data *tcd;
+                tcd = &trace_data[i].tcd;
+                tcd->tcd_max_pages = max;
+        }
+ out:
+        kfree(string);
+        return count;
+}
+
+int trace_read_debug_size(char *page, char **start, off_t off, int count,
+                          int *eof, void *data)
+{
+        struct trace_cpu_data *tcd;
+        unsigned long flags;
+        int rc;
+
+        tcd = trace_get_tcd(flags);
+        rc = snprintf(page, count, "%lu\n", tcd->tcd_max_pages * smp_num_cpus);
+        trace_put_tcd(tcd, flags);
+
+        return rc;
+}
+
+int tracefile_init(void)
+{
+        struct trace_cpu_data *tcd;
+        int i;
+
+        for (i = 0; i < NR_CPUS; i++) {
+                tcd = &trace_data[i].tcd;
+                INIT_LIST_HEAD(&tcd->tcd_pages);
+                INIT_LIST_HEAD(&tcd->tcd_daemon_pages);
+                tcd->tcd_cur_pages = 0;
+                tcd->tcd_cur_daemon_pages = 0;
+                tcd->tcd_max_pages = TCD_MAX_PAGES;
+                tcd->tcd_shutting_down = 0;
+        }
+        return 0;
+}
+
+static void trace_cleanup_on_cpu(void *info)
+{
+        struct trace_cpu_data *tcd;
+        struct list_head *pos, *tmp;
+        unsigned long flags;
+
+        tcd = trace_get_tcd(flags);
+
+        tcd->tcd_shutting_down = 1;
+
+        list_for_each_safe(pos, tmp, &tcd->tcd_pages) {
+                struct page *page;
+
+                page = list_entry(pos, struct page, PAGE_LIST_ENTRY);
+                LASSERT(page->index <= PAGE_SIZE);
+                LASSERT(page_count(page) > 0);
+
+                list_del(&PAGE_LIST(page));
+                page->mapping = NULL;
+                __free_page(page);
+        }
+        tcd->tcd_cur_pages = 0;
+
+        trace_put_tcd(tcd, flags);
+}
+
+static void trace_cleanup(void)
+{
+        struct page_collection pc;
+
+        INIT_LIST_HEAD(&pc.pc_pages);
+        spin_lock_init(&pc.pc_lock);
+
+        trace_cleanup_on_cpu(&pc);
+        smp_call_function(trace_cleanup_on_cpu, &pc, 0, 1);
+}
+
+void tracefile_exit(void)
+{
+        trace_stop_thread();
+        trace_cleanup();
+}
diff --git a/lustre/portals/libcfs/tracefile.h b/lustre/portals/libcfs/tracefile.h
new file mode 100644 (file)
index 0000000..1b6e7a0
--- /dev/null
@@ -0,0 +1,22 @@
+#ifndef __PORTALS_TRACEFILE_H
+#define __PORTALS_TRACEFILE_H
+
+int tracefile_dump_all_pages(char *filename);
+void trace_debug_print(void);
+void trace_flush_pages(void);
+int trace_start_thread(void);
+void trace_stop_thread(void);
+int tracefile_init(void);
+void tracefile_exit(void);
+int trace_write_daemon_file(struct file *file, const char *buffer,
+                           unsigned long count, void *data);
+int trace_read_daemon_file(char *page, char **start, off_t off, int count,
+                          int *eof, void *data);
+int trace_write_debug_size(struct file *file, const char *buffer,
+                           unsigned long count, void *data);
+int trace_read_debug_size(char *page, char **start, off_t off, int count,
+                          int *eof, void *data);
+int trace_dk(struct file *file, const char *buffer, unsigned long count,
+             void *data);
+
+#endif /* __PORTALS_TRACEFILE_H */
index 69880ea..d460919 100644 (file)
@@ -25,6 +25,8 @@
 
 #define __USE_FILE_OFFSET64
 
+#include <portals/list.h>
+
 #include <stdio.h>
 #include <netdb.h>
 #include <stdlib.h>
@@ -82,8 +84,6 @@ struct debug_daemon_cmd {
 static const struct debug_daemon_cmd portal_debug_daemon_cmd[] = {
         {"start", DEBUG_DAEMON_START},
         {"stop", DEBUG_DAEMON_STOP},
-        {"pause", DEBUG_DAEMON_PAUSE},
-        {"continue", DEBUG_DAEMON_CONTINUE},
         {0, 0}
 };
 
@@ -230,108 +230,230 @@ int jt_dbg_list(int argc, char **argv)
         return 0;
 }
 
-/* if 'raw' is true, don't strip the debug information from the front of the
- * lines */
-static void dump_buffer(FILE *fd, char *buf, int size, int raw)
+/* all strings nul-terminated; only the struct and hdr need to be freed */
+struct dbg_line {
+        struct ptldebug_header *hdr;
+        char *file;
+        char *fn;
+        char *text;
+        struct list_head chain;
+};
+
+/* nurr. */
+static void list_add_ordered(struct dbg_line *new, struct list_head *head)
+{
+        struct list_head *pos;
+        struct dbg_line *curr, *next;
+
+        list_for_each(pos, head) {
+                curr = list_entry(pos, struct dbg_line, chain);
+
+                if (curr->hdr->ph_sec < new->hdr->ph_sec)
+                        continue;
+                if (curr->hdr->ph_sec == new->hdr->ph_sec &&
+                    curr->hdr->ph_usec < new->hdr->ph_usec)
+                        continue;
+
+                list_add(&new->chain, pos->prev);
+                return;
+        }
+        list_add_tail(&new->chain, head);
+}
+
+static void print_saved_records(struct list_head *list, FILE *out)
 {
-        char *p, *z;
-        unsigned long subsystem, debug, dropped = 0, kept = 0;
+        struct list_head *pos, *tmp;
+
+        list_for_each_safe(pos, tmp, list) {
+                struct dbg_line *line;
+                struct ptldebug_header *hdr;
+
+                line = list_entry(pos, struct dbg_line, chain);
+                list_del(&line->chain);
+
+                hdr = line->hdr;
+                fprintf(out, "%06x:%06x:%u:%u.%06Lu:%u:%u:%u:(%s:%u:%s()) %s",
+                        hdr->ph_subsys, hdr->ph_mask, hdr->ph_cpu_id,
+                        hdr->ph_sec, (unsigned long long)hdr->ph_usec,
+                        hdr->ph_stack, hdr->ph_pid, hdr->ph_extern_pid,
+                        line->file, hdr->ph_line_num, line->fn, line->text);
+                free(line->hdr);
+                free(line);
+        }
+}
 
-        while (size) {
-                p = memchr(buf, '\n', size);
-                if (!p)
+static int parse_buffer(FILE *in, FILE *out)
+{
+        struct dbg_line *line;
+        struct ptldebug_header *hdr;
+        char buf[4097], *p;
+        int rc;
+        unsigned long dropped = 0, kept = 0;
+        struct list_head chunk_list, *pos;
+
+        INIT_LIST_HEAD(&chunk_list);
+
+        while (1) {
+                rc = fread(buf, sizeof(hdr->ph_len), 1, in);
+                if (rc <= 0)
                         break;
-                subsystem = strtoul(buf, &z, 16);
-                debug = strtoul(z + 1, &z, 16);
-
-                z++;
-                /* for some reason %*s isn't working. */
-                *p = '\0';
-                if ((subsystem_mask & subsystem) &&
-                    (!debug || (debug_mask & debug))) {
-                        if (raw)
-                                fprintf(fd, "%s\n", buf);
-                        else
-                                fprintf(fd, "%s\n", z);
-                        //printf("%s\n", buf);
-                        kept++;
-                } else {
-                        //fprintf(stderr, "dropping line (%lx:%lx): %s\n", subsystem, debug, buf);
+
+                hdr = (void *)buf;
+                if (hdr->ph_len == 0)
+                        break;
+                if (hdr->ph_len > 4094) {
+                        fprintf(stderr, "unexpected large record: %d bytes.  "
+                                "aborting.\n",
+                                hdr->ph_len);
+                        break;
+                }
+
+                if (hdr->ph_flags & PH_FLAG_FIRST_RECORD) {
+                        print_saved_records(&chunk_list, out);
+                        assert(list_empty(&chunk_list));
+                }
+
+                rc = fread(buf + sizeof(hdr->ph_len), 1,
+                           hdr->ph_len - sizeof(hdr->ph_len), in);
+                if (rc <= 0)
+                        break;
+
+                if (hdr->ph_mask &&
+                    (!(subsystem_mask & hdr->ph_subsys) ||
+                     (!(debug_mask & hdr->ph_mask)))) {
                         dropped++;
+                        continue;
                 }
-                *p = '\n';
-                p++;
-                size -= (p - buf);
-                buf = p;
+
+                line = malloc(sizeof(*line));
+                if (line == NULL) {
+                        fprintf(stderr, "malloc failed; printing accumulated "
+                                "records and exiting.\n");
+                        break;
+                }
+
+                line->hdr = malloc(hdr->ph_len + 1);
+                if (line->hdr == NULL) {
+                        fprintf(stderr, "malloc failed; printing accumulated "
+                                "records and exiting.\n");
+                        break;
+                }
+
+                p = (void *)line->hdr;
+                memcpy(line->hdr, buf, hdr->ph_len);
+                p[hdr->ph_len] = '\0';
+
+                p += sizeof(*hdr);
+                line->file = p;
+                p += strlen(line->file) + 1;
+                line->fn = p;
+                p += strlen(line->fn) + 1;
+                line->text = p;
+
+                list_add_ordered(line, &chunk_list);
+                kept++;
         }
 
+        print_saved_records(&chunk_list, out);
+
         printf("Debug log: %lu lines, %lu kept, %lu dropped.\n",
                 dropped + kept, kept, dropped);
+        return 0;
 }
 
 int jt_dbg_debug_kernel(int argc, char **argv)
 {
-        int rc, raw = 1;
-        FILE *fd = stdout;
-        const int databuf_size = (6 << 20);
-        struct portal_ioctl_data data, *newdata;
-        char *databuf = NULL;
+        char filename[4096];
+        int rc, raw = 0, fd;
+        FILE *in, *out = stdout;
 
         if (argc > 3) {
                 fprintf(stderr, "usage: %s [file] [raw]\n", argv[0]);
                 return 0;
         }
+        sprintf(filename, "%s-%ld.tmp", argv[1], random);
+        if (argc > 2)
+                raw = atoi(argv[2]);
+        unlink(filename);
+
+        fd = open("/proc/sys/portals/dump_kernel", O_WRONLY);
+        if (fd < 0) {
+                fprintf(stderr, "open(dump_kernel) failed: %s\n",
+                        strerror(errno));
+                return 1;
+        }
+
+        rc = write(fd, filename, strlen(filename));
+        if (rc != strlen(filename)) {
+                fprintf(stderr, "write(%s) failed: %s\n", filename,
+                        strerror(errno));
+                close(fd);
+                return 1;
+        }
+        close(fd);
 
+        if (raw)
+                return 0;
+
+        in = fopen(filename, "r");
+        if (in == NULL) {
+                fprintf(stderr, "fopen(%s) failed: %s\n", filename,
+                        strerror(errno));
+                return 1;
+        }
         if (argc > 1) {
-                fd = fopen(argv[1], "w");
-                if (fd == NULL) {
+                out = fopen(argv[1], "w");
+                if (out == NULL) {
                         fprintf(stderr, "fopen(%s) failed: %s\n", argv[1],
                                 strerror(errno));
-                        return -1;
+                        return 1;
                 }
         }
-        if (argc > 2)
-                raw = atoi(argv[2]);
 
-        databuf = malloc(databuf_size);
-        if (!databuf) {
-                fprintf(stderr, "No memory for buffer.\n");
-                goto out;
+        rc = parse_buffer(in, out);
+        if (rc) {
+                fprintf(stderr, "parse_buffer failed; leaving tmp file %s "
+                        "behind.\n", filename);
+        } else {
+                rc = unlink(filename);
+                if (rc)
+                        fprintf(stderr, "dumped successfully, but couldn't "
+                                "unlink tmp file %s: %s\n", filename,
+                                strerror(errno));
         }
+        return rc;
+}
 
-        memset(&data, 0, sizeof(data));
-        data.ioc_plen1 = databuf_size;
-        data.ioc_pbuf1 = databuf;
-
-        if (portal_ioctl_pack(&data, &buf, max) != 0) {
-                fprintf(stderr, "portal_ioctl_pack failed.\n");
-                goto out;
+int jt_dbg_debug_file(int argc, char **argv)
+{
+        FILE *in, *out = stdout;
+        if (argc > 3 || argc < 2) {
+                fprintf(stderr, "usage: %s <input> [output]\n", argv[0]);
+                return 0;
         }
 
-        rc = l_ioctl(PORTALS_DEV_ID, IOC_PORTAL_GET_DEBUG, buf);
-        if (rc) {
-                fprintf(stderr, "IOC_PORTAL_GET_DEBUG failed: %s\n",
+        in = fopen(argv[1], "r");
+        if (in == NULL) {
+                fprintf(stderr, "fopen(%s) failed: %s\n", argv[1],
                         strerror(errno));
-                goto out;
+                return 1;
+        }
+        if (argc > 2) {
+                out = fopen(argv[2], "w");
+                if (out == NULL) {
+                        fprintf(stderr, "fopen(%s) failed: %s\n", argv[2],
+                                strerror(errno));
+                        return 1;
+                }
         }
 
-        newdata = (struct portal_ioctl_data *)buf;
-        if (newdata->ioc_size > 0)
-                dump_buffer(fd, databuf, newdata->ioc_size, raw);
-
- out:
-        if (databuf)
-                free(databuf);
-        if (fd != stdout)
-                fclose(fd);
-        return 0;
+        return parse_buffer(in, out);
 }
 
 int jt_dbg_debug_daemon(int argc, char **argv)
 {
-        int i, rc;
+        int i, rc, fd;
         unsigned int cmd = 0;
-        FILE *fd = stdout;
         struct portal_ioctl_data data;
 
         if (argc <= 1) {
@@ -339,120 +461,42 @@ int jt_dbg_debug_daemon(int argc, char **argv)
                         "continue]\n", argv[0]);
                 return 0;
         }
-        for (i = 0; portal_debug_daemon_cmd[i].cmd != NULL; i++) {
-                if (strcasecmp(argv[1], portal_debug_daemon_cmd[i].cmd) == 0) {
-                        cmd = portal_debug_daemon_cmd[i].cmdv;
-                        break;
-                }
-        }
-        if (portal_debug_daemon_cmd[i].cmd == NULL) {
-                fprintf(stderr, "usage: %s [start file <#MB>|stop|pause|"
-                        "continue]\n", argv[0]);
-                return 0;
-        }
-        memset(&data, 0, sizeof(data));
-        if (cmd == DEBUG_DAEMON_START) {
-                if (argc < 3) {
-                        fprintf(stderr, "usage: %s [start file <#MB>|stop|"
-                                "pause|continue]\n", argv[0]);
-                        return 0;
-                }
-                if (access(argv[2], F_OK) != 0) {
-                        fd = fopen(argv[2], "w");
-                        if (fd != NULL) {
-                                fclose(fd);
-                                remove(argv[2]);
-                                goto ok;
-                        }
-                }
-                if (access(argv[2], W_OK) == 0)
-                        goto ok;
-                fprintf(stderr, "fopen(%s) failed: %s\n", argv[2],
-                        strerror(errno));
-                return -1;
-ok:
-                data.ioc_inllen1 = strlen(argv[2]) + 1;
-                data.ioc_inlbuf1 = argv[2];
-                data.ioc_misc = 0;
-                if (argc == 4) {
-                        unsigned long size;
-                        errno = 0;
-                        size = strtoul(argv[3], NULL, 0);
-                        if (errno) {
-                                fprintf(stderr, "file size(%s): error %s\n",
-                                        argv[3], strerror(errno));
-                                return -1;
-                        }
-                        data.ioc_misc = size;
-                }
-        }
-        data.ioc_count = cmd;
-        if (portal_ioctl_pack(&data, &buf, max) != 0) {
-                fprintf(stderr, "portal_ioctl_pack failed.\n");
-                return -1;
-        }
-        rc = l_ioctl(PORTALS_DEV_ID, IOC_PORTAL_SET_DAEMON, buf);
-        if (rc < 0) {
-                fprintf(stderr, "IOC_PORTAL_SET_DEMON failed: %s\n",
-                                strerror(errno));
-                return rc;
-        }
-        return 0;
-}
-
-int jt_dbg_debug_file(int argc, char **argv)
-{
-        int rc, fd = -1, raw = 1;
-        FILE *output = stdout;
-        char *databuf = NULL;
-        struct stat statbuf;
-
-        if (argc > 4 || argc < 2) {
-                fprintf(stderr, "usage: %s <input> [output] [raw]\n", argv[0]);
-                return 0;
-        }
 
-        fd = open(argv[1], O_RDONLY);
+        fd = open("/proc/sys/portals/daemon_file", O_WRONLY);
         if (fd < 0) {
-                fprintf(stderr, "fopen(%s) failed: %s\n", argv[1],
+                fprintf(stderr, "open(daemon_file) failed: %s\n",
                         strerror(errno));
-                return -1;
+                return 1;
         }
 
-        rc = fstat(fd, &statbuf);
-        if (rc < 0) {
-                fprintf(stderr, "fstat failed: %s\n", strerror(errno));
-                goto out;
-        }
+        if (strcasecmp(argv[1], "start") == 0) {
+                if (argc != 3) {
+                        fprintf(stderr, "usage: %s [start file|stop]\n",
+                                argv[0]);
+                        return 1;
+                }
 
-        if (argc >= 3) {
-                output = fopen(argv[2], "w");
-                if (output == NULL) {
-                        fprintf(stderr, "fopen(%s) failed: %s\n", argv[2],
+                rc = write(fd, argv[2], strlen(argv[2]));
+                if (rc != strlen(argv[2])) {
+                        fprintf(stderr, "write(%s) failed: %s\n", argv[2],
                                 strerror(errno));
-                        goto out;
+                        close(fd);
+                        return 1;
                 }
+        } else if (strcasecmp(argv[1], "stop") == 0) {
+                rc = write(fd, "stop", 4);
+                if (rc != 4) {
+                        fprintf(stderr, "write(stop) failed: %s\n",
+                                strerror(errno));
+                        close(fd);
+                        return 1;
+                }
+        } else {
+                fprintf(stderr, "usage: %s [start file|stop]\n", argv[0]);
+                return 1;
         }
 
-        if (argc == 4)
-                raw = atoi(argv[3]);
-
-        databuf = mmap(NULL, statbuf.st_size, PROT_READ | PROT_WRITE,
-                       MAP_PRIVATE, fd, 0);
-        if (databuf == NULL) {
-                fprintf(stderr, "mmap failed: %s\n", strerror(errno));
-                goto out;
-        }
-
-        dump_buffer(output, databuf, statbuf.st_size, raw);
-
- out:
-        if (databuf)
-                munmap(databuf, statbuf.st_size);
-        if (output != stdout)
-                fclose(output);
-        if (fd > 0)
-                close(fd);
+        close(fd);
         return 0;
 }
 
index 02cb9b4..1b6cd96 100644 (file)
@@ -32,7 +32,7 @@
 
 command_t list[] = {
         {"debug_kernel", jt_dbg_debug_kernel, 0, "usage: debug_kernel [file] [raw], get debug buffer and print it [to a file]"},
-        {"debug_daemon", jt_dbg_debug_daemon, 0, "usage: debug_daemon [start file [#MB]|stop|pause|continue], control debug daemon to dump debug buffer to a file"}, 
+        {"debug_daemon", jt_dbg_debug_daemon, 0, "usage: debug_daemon [start file|stop], control debug daemon to dump debug buffer to a file"}, 
         {"debug_file", jt_dbg_debug_file, 0, "usage: debug_file <input> [output] [raw], read debug buffer from input and print it [to output]"},
         {"clear", jt_dbg_clear_debug_buf, 0, "clear kernel debug buffer"},
         {"mark", jt_dbg_mark_debug_buf, 0, "insert a marker into the kernel debug buffer (args: [marker text])"},
index bd319a4..abc403b 100644 (file)
@@ -4,16 +4,17 @@ LDLM := @top_srcdir@/ldlm/
 else
 LDLM :=
 endif
-ptlrpc-objs := $(LDLM)l_lock.o $(LDLM)ldlm_lock.o 
-ptlrpc-objs += $(LDLM)ldlm_resource.o $(LDLM)ldlm_lib.o
-ptlrpc-objs += $(LDLM)ldlm_plain.o $(LDLM)ldlm_extent.o
-ptlrpc-objs += $(LDLM)ldlm_request.o $(LDLM)ldlm_lockd.o
-ptlrpc-objs += $(LDLM)ldlm_flock.o
-ptlrpc-objs += client.o recover.o connection.o niobuf.o pack_generic.o
-ptlrpc-objs += events.o ptlrpc_module.o service.o pinger.o recov_thread.o
-ptlrpc-objs += llog_net.o llog_client.o llog_server.o import.o ptlrpcd.o
-ptlrpc-objs += lproc_ptlrpc.o
+ldlm_objs := $(LDLM)l_lock.o $(LDLM)ldlm_lock.o 
+ldlm_objs += $(LDLM)ldlm_resource.o $(LDLM)ldlm_lib.o
+ldlm_objs += $(LDLM)ldlm_plain.o $(LDLM)ldlm_extent.o
+ldlm_objs += $(LDLM)ldlm_request.o $(LDLM)ldlm_lockd.o
+ldlm_objs += $(LDLM)ldlm_flock.o
+ptlrpc_objs := client.o recover.o connection.o niobuf.o pack_generic.o
+ptlrpc_objs += events.o ptlrpc_module.o service.o pinger.o recov_thread.o
+ptlrpc_objs += llog_net.o llog_client.o llog_server.o import.o ptlrpcd.o
+ptlrpc_objs += lproc_ptlrpc.o
 
+ptlrpc-objs := $(ldlm_objs) $(ptlrpc_objs)
 default: all
 
 ldlm_%.c: @LUSTRE@/ldlm/ldlm_%.c
index bac9ea4..0df838d 100644 (file)
@@ -28,5 +28,4 @@ modulefs_DATA = ptlrpc$(KMODEXT)
 endif # MODULES
 
 MOSTLYCLEANFILES = *.o *.ko *.mod.c ldlm_*.c l_lock.c
-DIST_SOURCES = $(filter-out @top_srcdir@/ldlm/%,$(ptlrpc-objs:%.o=%.c)) ptlrpc_internal.h
-
+DIST_SOURCES = $(ptlrpc_objs:.o=.c) ptlrpc_internal.h
index e22259f..66f692c 100644 (file)
@@ -668,6 +668,8 @@ int ptlrpc_check_set(struct ptlrpc_request_set *set)
                         if (req->rq_waiting || req->rq_resend) {
                                 int status;
 
+                                ptlrpc_unregister_reply(req);
+
                                 spin_lock_irqsave(&imp->imp_lock, flags);
 
                                 if (ptlrpc_import_delay_req(imp, req, &status)){
@@ -700,7 +702,6 @@ int ptlrpc_check_set(struct ptlrpc_request_set *set)
                                 if (req->rq_resend) {
                                         lustre_msg_add_flags(req->rq_reqmsg,
                                                              MSG_RESENT);
-                                        ptlrpc_unregister_reply(req);
                                         if (req->rq_bulk) {
                                                 __u64 old_xid = req->rq_xid;
 
index f702d2d..aab86ea 100644 (file)
@@ -552,8 +552,7 @@ int ptlrpc_init_portals(void)
                 {SOCKNAL, "socknal"},
                 {GMNAL,   "gmnal"},
                 {IBNAL,   "ibnal"},
-                {TCPNAL,  "tcpnal"},
-                {SCIMACNAL, "scimacnal"}};
+                {TCPNAL,  "tcpnal"}};
         int   rc;
         int   i;
 
index 0942192..d1806e6 100644 (file)
@@ -162,8 +162,7 @@ void ptlrpc_invalidate_import(struct obd_import *imp, int in_rpc)
 
         if (in_rpc)
                 inflight = 1;
-        /* wait for all requests to error out and call completion
-           callbacks */
+        /* wait for all requests to error out and call completion callbacks */
         lwi = LWI_TIMEOUT_INTR(MAX(obd_timeout * HZ, 1), NULL,
                                NULL, NULL);
         rc = l_wait_event(imp->imp_recovery_waitq,
@@ -406,21 +405,18 @@ static int ptlrpc_connect_interpret(struct ptlrpc_request *request,
                 } else {
                         IMPORT_SET_STATE(imp, LUSTRE_IMP_RECOVER);
                 }
-        } 
-        else if ((MSG_CONNECT_RECOVERING & msg_flags) && !imp->imp_invalid) {
+        } else if ((MSG_CONNECT_RECOVERING & msg_flags) && !imp->imp_invalid) {
                 LASSERT(imp->imp_replayable);
                 imp->imp_remote_handle = request->rq_repmsg->handle;
                 imp->imp_last_replay_transno = 0;
                 IMPORT_SET_STATE(imp, LUSTRE_IMP_REPLAY);
-        } 
-        else {
+        } else {
                 imp->imp_remote_handle = request->rq_repmsg->handle;
                 IMPORT_SET_STATE(imp, LUSTRE_IMP_EVICTED);
         }
-        
+
         /* Sanity checks for a reconnected import. */
-        if (!(imp->imp_replayable) != 
-             !(msg_flags & MSG_CONNECT_REPLAYABLE)) {
+        if (!(imp->imp_replayable) != !(msg_flags & MSG_CONNECT_REPLAYABLE)) {
                 CERROR("imp_replayable flag does not match server "
                        "after reconnect. We should LBUG right here.\n");
         }
@@ -558,7 +554,7 @@ int ptlrpc_import_recovery_state_machine(struct obd_import *imp)
                        imp->imp_obd->obd_name, 
                        imp->imp_target_uuid.uuid,
                        imp->imp_connection->c_remote_uuid.uuid);
-        } 
+        }
 
         if (imp->imp_state == LUSTRE_IMP_FULL) {
                 wake_up(&imp->imp_recovery_waitq);
index 1098b40..81089ac 100644 (file)
@@ -1,7 +1,7 @@
 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
  * vim:expandtab:shiftwidth=8:tabstop=8:
  *
- *  Copyright (C) 2001-2003 Cluster File Systems, Inc.
+ *  Copyright (C) 2001-2004 Cluster File Systems, Inc.
  *   Author: Andreas Dilger <adilger@clusterfs.com>
  *
  *   This file is part of Lustre, http://www.lustre.org.
@@ -85,12 +85,12 @@ static int llog_client_create(struct llog_ctxt *ctxt, struct llog_handle **res,
         if (rc)
                 GOTO(err_free, rc);
 
-       body = lustre_swab_repbuf(req, 0, sizeof(*body),
+        body = lustre_swab_repbuf(req, 0, sizeof(*body),
                                  lustre_swab_llogd_body);
-       if (body == NULL) {
+        if (body == NULL) {
                 CERROR ("Can't unpack llogd_body\n");
                 GOTO(err_free, rc =-EFAULT);
-       }
+        }
 
         handle->lgh_id = body->lgd_logid;
         handle->lgh_ctxt = ctxt;
@@ -138,18 +138,18 @@ static int llog_client_next_block(struct llog_handle *loghandle,
         if (rc)
                 GOTO(out, rc);
 
-       body = lustre_swab_repbuf(req, 0, sizeof(*body),
+        body = lustre_swab_repbuf(req, 0, sizeof(*body),
                                  lustre_swab_llogd_body);
-       if (body == NULL) {
+        if (body == NULL) {
                 CERROR ("Can't unpack llogd_body\n");
                 GOTO(out, rc =-EFAULT);
-       }
+        }
 
         ptr = lustre_msg_buf(req->rq_repmsg, 1, len);
-       if (ptr == NULL) {
+        if (ptr == NULL) {
                 CERROR ("Can't unpack bitmap\n");
                 GOTO(out, rc =-EFAULT);
-       }
+        }
 
         *cur_idx = body->lgd_saved_index;
         *cur_offset = body->lgd_cur_offset;
@@ -189,11 +189,11 @@ static int llog_client_read_header(struct llog_handle *handle)
         if (rc)
                 GOTO(out, rc);
 
-       hdr = lustre_swab_repbuf(req, 0, sizeof(*hdr), lustre_swab_llog_hdr);
-       if (hdr == NULL) {
+        hdr = lustre_swab_repbuf(req, 0, sizeof(*hdr), lustre_swab_llog_hdr);
+        if (hdr == NULL) {
                 CERROR ("Can't unpack llog_hdr\n");
                 GOTO(out, rc =-EFAULT);
-       }
+        }
 
         memcpy(handle->lgh_hdr, hdr, sizeof (*hdr));
         handle->lgh_last_idx = handle->lgh_hdr->llh_tail.lrt_index;
index e567185..68a17bc 100644 (file)
@@ -136,8 +136,6 @@ void ptlrpc_lprocfs_register(struct proc_dir_entry *root, char *dir,
                              svc_counter_config, "req_active", "reqs");
         lprocfs_counter_init(svc_stats, PTLRPC_REQBUF_AVAIL_CNTR,
                              svc_counter_config, "reqbuf_avail", "bufs");
-        lprocfs_counter_init(svc_stats, PTLRPC_REQBUF_TOTAL_CNTR,
-                             svc_counter_config, "reqbuf_total", "bufs");
         for (i = 0; i < LUSTRE_MAX_OPCODES; i++) {
                 __u32 opcode = ll_rpc_opcode_table[i].opcode;
                 lprocfs_counter_init(svc_stats, PTLRPC_LAST_CNTR + i,
index 9e51595..1db774e 100644 (file)
@@ -102,7 +102,6 @@ enum {
         PTLRPC_REQQDEPTH_CNTR,
         PTLRPC_REQACTIVE_CNTR,
         PTLRPC_REQBUF_AVAIL_CNTR,
-        PTLRPC_REQBUF_TOTAL_CNTR,
         PTLRPC_LAST_CNTR
 };
 
index 490dc36..1bdfbe8 100644 (file)
@@ -506,7 +506,8 @@ static int log_process_thread(void *args)
 
         up(&data->llpa_sem);
         lock_kernel();
-        ptlrpc_daemonize(); /* thread never needs to do IO */
+        ptlrpc_daemonize();     /* thread does IO to log files */
+        THREAD_NAME(current->comm, sizeof(current->comm) - 1, "llog_process");
 
         SIGNAL_MASK_LOCK(current, flags);
         sigfillset(&current->blocked);
index c541e30..5b14e36 100644 (file)
@@ -675,8 +675,6 @@ ptlrpc_check_rqbd_pools(struct ptlrpc_service *svc)
                         ptlrpc_grow_req_bufs(sni);
         }
         lprocfs_counter_add(svc->srv_stats, PTLRPC_REQBUF_AVAIL_CNTR, avail);
-        lprocfs_counter_add(svc->srv_stats, PTLRPC_REQBUF_TOTAL_CNTR,
-                            svc->srv_nbufs);
 }
 
 static int
index fe13cc7..dfc6d37 100644 (file)
@@ -4,12 +4,12 @@
 # See the file COPYING in this distribution
 
 EXTRA_DIST = license-status maketags.sh lustre.spec version_tag.pl.in  \
-       lustre lustre.spec.in lustre-kernel-2.4.spec.in \
+       lustre lustrefs lustre.spec.in lustre-kernel-2.4.spec.in        \
        lmake linux-merge-config.awk linux-merge-modules.awk            \
        linux-rhconfig.h
 
 initddir = $(sysconfdir)/init.d
 if UTILS
-initd_SCRIPTS = lustre
+initd_SCRIPTS = lustre lustrefs
 endif
 
index dab1e90..4fa45cb 100755 (executable)
@@ -1,15 +1,33 @@
 #!/bin/bash
+# Put this script and cvs-modified-files.pl into your PATH (~bin is good) and 
+#
+# export CVSEDITOR=cvsdiffclient
+#
+# in your .bashrc and you will get a nice bunch of CVS commit reminders:
+# <merge/land tag information>
+# b=<bug_number>
+# r=<reviewed by>
+#
+# Remember to remove the leading "CVS: " part of the comment before saving
+# your commit comment if you want those entries to be saved.
 
 [ -f .mergeinfo ] && . ./.mergeinfo
 
 FILES=`cvs-modified-files.pl $1`
 TMP=`mktemp /tmp/cvslog-XXXXXXXX`
 if [ -f $TMP ]; then
-       [ -f .mergeinfo ] && \
-               echo "CVS: Update $child from $parent ($date)" >> $TMP
+       if [ -f .mergeinfo ]; then
+               . .mergeinfo
+               [ "$OPERATION" ] || OPERATION=Update
+               [ "$OPERWHERE" ] || OPERWHERE=from
+               echo "CVS: $OPERATION $child $OPERWHERE $parent ($date)" >> $TMP
+       elif [ -r CVS/Tag ]; then
+               echo "CVS: Branch: `sed 's/^T//' CVS/Tag`" >> $TMP
+       fi
        echo "CVS: did you update the ChangeLog for a bug fix?" >> $TMP
-       echo "CVS: b=" >> $TMP
-       echo "CVS: r=" >> $TMP
+       echo "CVS: did you update the hours spent in Bugzilla?" >> $TMP
+       echo "CVS: b=<bug>" >> $TMP
+       echo "CVS: r=<reviewed_by>" >> $TMP
 
        cat $1 >> $TMP
        cp $TMP $1
index 76ca062..98fd721 100755 (executable)
@@ -27,20 +27,32 @@ module=lustre
 
 case $parent in
   HEAD) : ;;
-  b_*|b1*) : ;;
+  b_*|b[1-4]*) : ;;
   *) parent="b_$parent" ;;
 esac
 case $child in
   HEAD) : ;;
-  b_*|b1*) : ;;
+  b_*|b[1-4]*) : ;;
   *) child="b_$child"
 esac
 
-if [ "$parent" != "HEAD" -a "`cat CVS/Tag`" != "T$parent" ]; then
-        echo "This script must be run within the $parent branch"
+if [ "$parent" != "HEAD" -a "`cat CVS/Tag 2> /dev/null`" != "T$parent" ]; then
+        echo "$0: this script must be run within the $parent branch"
        exit 1
 fi
 
+TEST_FILE=${TEST_FILE:-ChangeLog} # does this need to be smarter?
+check_tag() {
+       [ -z "$1" ] && echo "check_tag() missing arg" && exit3
+       [ "$1" = "HEAD" ] && return
+       $CVS log $TEST_FILE 2> /dev/null | grep -q "    $1: " && return
+       echo "$0: tag $1 not found in $TEST_FILE"
+       exit 2
+}
+
+check_tag $child
+check_tag ${CHILD}_BASE
+
 dir=$3
 
 cat << EOF > .mergeinfo
@@ -52,6 +64,8 @@ date=$date
 module=$module
 dir=$dir
 CONFLICTS=$CONFLICTS
+OPERATION=Land
+OPERWHERE=onto
 EOF
 
 echo PARENT $PARENT parent $parent CHILD $CHILD child $child date $date
index 3ec63bb..d00807c 100644 (file)
@@ -358,6 +358,8 @@ BuildKernel()
        -- --enable-modules \
        --disable-doc --disable-tests \
        --disable-utils --disable-liblustre \
+       --sysconfdir=%{_sysconfdir} \
+       --mandir=%{_mandir} \
        @CONFIGURE_FLAGS@
 }
 
@@ -377,6 +379,8 @@ BuildLustre()
        -- --enable-utils \
        --disable-doc --disable-tests \
        --disable-modules --disable-liblustre \
+       --sysconfdir=%{_sysconfdir} \
+       --mandir=%{_mandir} \
        @CONFIGURE_FLAGS@
 }
 
@@ -611,6 +615,16 @@ fi
 
 %endif
 
+%post -n lustre-lite-utils
+if [ ! -e /dev/obd ]; then
+   mknod /dev/obd c 10 241
+fi
+if [ ! -e /dev/portals ]; then
+   mknod /dev/portals c 10 240
+fi
+/sbin/chkconfig --add lustre
+/sbin/chkconfig --add lustrefs
+
 # Allow clean removal of modules directory
 %preun 
 /sbin/modprobe loop 2> /dev/null > /dev/null  || :
@@ -690,6 +704,12 @@ if [ -L /usr/src/%{kslnk} ]; then
 fi
 exit 0
 
+%preun -n lustre-lite-utils
+if [ $1 = 0 ]; then
+  /sbin/chkconfig --del lustre
+  /sbin/chkconfig --del lustrefs
+fi
+
 ###
 ### file lists
 ###
@@ -756,62 +776,7 @@ exit 0
 %files source
 %defattr(-,root,root)
 %dir /usr/src/linux-%{KVERREL}
-/usr/src/linux-%{KVERREL}/COPYING*
-/usr/src/linux-%{KVERREL}/CREDITS
-/usr/src/linux-%{KVERREL}/Documentation
-/usr/src/linux-%{KVERREL}/MAINTAINERS
-/usr/src/linux-%{KVERREL}/Makefile
-/usr/src/linux-%{KVERREL}/README
-/usr/src/linux-%{KVERREL}/REPORTING-BUGS
-/usr/src/linux-%{KVERREL}/arch
-%ifarch sparc
-/usr/src/linux-%{KVERREL}/arch/sparc64
-%endif
-/usr/src/linux-%{KVERREL}/drivers
-%if %{rhbuild}
-/usr/src/linux-%{KVERREL}/crypto
-%endif
-/usr/src/linux-%{KVERREL}/fs
-/usr/src/linux-%{KVERREL}/init
-/usr/src/linux-%{KVERREL}/ipc
-/usr/src/linux-%{KVERREL}/kernel
-/usr/src/linux-%{KVERREL}/lib
-/usr/src/linux-%{KVERREL}/mm
-/usr/src/linux-%{KVERREL}/net
-/usr/src/linux-%{KVERREL}/scripts
-%ifarch %{all_x86}
-%{?ibcs_1:/usr/src/linux-%{KVERREL}/abi}
-%endif
-/usr/src/linux-%{KVERREL}/configs
-/usr/src/linux-%{KVERREL}/include
-/usr/src/linux-%{KVERREL}/include/asm
-%ifarch %{all_x86}
-%{?ibcs_1:/usr/src/linux-%{KVERREL}/include/abi}
-%endif
-/usr/src/linux-%{KVERREL}/include/linux
-%if %{rhbuild}
-/usr/src/linux-%{KVERREL}/include/rxrpc
-%endif
-/usr/src/linux-%{KVERREL}/include/net
-/usr/src/linux-%{KVERREL}/include/pcmcia
-/usr/src/linux-%{KVERREL}/include/scsi
-/usr/src/linux-%{KVERREL}/include/video
-%if %{rhbuild}
-/usr/src/linux-%{KVERREL}/tmp_include_depends
-%endif
-%dir /usr/src/linux-%{KVERREL}/include
-%dir /usr/src/linux-%{KVERREL}/arch
-%ifarch alpha sparc
-/usr/src/linux-%{KVERREL}/include/math-emu
-%endif
-%if %{linux26}
-%dir /usr/src/linux-%{KVERREL}/crypto
-%dir /usr/src/linux-%{KVERREL}/kdb
-%dir /usr/src/linux-%{KVERREL}/rpmify
-%dir /usr/src/linux-%{KVERREL}/security
-%else
-/usr/src/linux-%{KVERREL}/Rules.make
-%endif
+/usr/src/linux-%{KVERREL}/*
 %endif
 
 %files doc
@@ -826,10 +791,12 @@ exit 0
 /usr/bin/*
 /usr/lib/lustre/python
 /etc/init.d/lustre
+/etc/init.d/lustrefs
 /usr/include/lustre/*
 /usr/include/portals/*
 /usr/include/linux/*
-/lib/lib*.a
+/usr/lib/lib*.a
+/usr/share/man/man?/*
 
 #%files -n lustre-doc
 #%defattr(-, root, root)
index d1de253..b6d3ee2 100644 (file)
@@ -83,12 +83,16 @@ rm -rf $RPM_BUILD_ROOT
 
 # Set an explicit path to our Linux tree, if we can.
 cd $RPM_BUILD_DIR/lustre-%{version}
-./configure --with-linux='%{linuxdir}' %{disable_doc} --disable-liblustre
+./configure \
+       --with-linux='%{linuxdir}' \
+       %{disable_doc} --disable-liblustre \
+       --sysconfdir=%{_sysconfdir} \
+       --mandir=%{_mandir}
 make -j $RPM_BUILD_NCPUS -s
 
 %install
 cd $RPM_BUILD_DIR/lustre-%{version}
-make install prefix=$RPM_BUILD_ROOT
+make install DESTDIR=$RPM_BUILD_ROOT
 
 %ifarch alpha
 # this hurts me
@@ -154,12 +158,15 @@ mkdir -p $RPM_BUILD_ROOT/var/lib/ldap/lustre
 %attr(-, root, root) /usr/lib/lustre/examples/llechocleanup.sh
 
 %attr(-, root, root) /etc/init.d/lustre
-%attr(-, root, root) /lib/libptlctl.a
-%attr(-, root, root) /lib/liblustreapi.a
+%attr(-, root, root) /etc/init.d/lustrefs
+%attr(-, root, root) /usr/lib/libptlctl.a
+%attr(-, root, root) /usr/lib/liblustreapi.a
 %attr(-, root, root) /usr/include/lustre/*.h
 %attr(-, root, root) /usr/include/portals/*.h
 %attr(-, root, root) /usr/include/linux/lustre_idl.h
 
+%attr(-, root, root) /usr/share/man/man?/*
+
 %ifarch alpha
 %attr(-, root, root) /usr/sbin/mcpload
 %endif
@@ -223,8 +230,16 @@ fi
 if [ ! -e /dev/portals ]; then
    mknod /dev/portals c 10 240
 fi
+/sbin/chkconfig --add lustre
+/sbin/chkconfig --add lustrefs
 depmod -ae || exit 0
 
+%preun
+if [ $1 = 0 ]; then
+  /sbin/chkconfig --del lustre
+  /sbin/chkconfig --del lustrefs
+fi
+
 %postun -n lustre-modules
 depmod -ae || exit 0
 
diff --git a/lustre/scripts/lustrefs b/lustre/scripts/lustrefs
new file mode 100644 (file)
index 0000000..976e8e7
--- /dev/null
@@ -0,0 +1,84 @@
+#!/bin/bash
+#
+# lustrefs      Mount Lustre filesystems.
+#
+# Authors:      Jacob Berkman <jacob@clusterfs.com>
+#
+# Based on the netfs script:
+#
+# Authors:     Bill Nottingham <notting@redhat.com>
+#              Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
+#
+# chkconfig: 345 25 75
+# description: Mounts and unmounts all Lustre mount points.
+#
+### BEGIN INIT INFO
+# Provides: $local_fs $remote_fs
+### END INIT INFO
+
+[ -f /etc/sysconfig/network ] || exit 0
+. /etc/init.d/functions
+. /etc/sysconfig/network
+
+# Check that networking is up.
+[ "${NETWORKING}" = "no" ] && exit 0
+
+LUSTREFSTAB=`LC_ALL=C awk '!/^#/ && $3 == "lustre" && $4 !~ /noauto/ { print $2 }' /etc/fstab`
+LUSTREMTAB=`LC_ALL=C awk '!/^#/ && $3 == "lustre" { print $2 }' /proc/mounts`
+
+# See how we were called.
+case "$1" in
+  start)
+       [ -n "$LUSTREFSTAB" ] && action $"Mounting Lustre filesystems: " mount -a -t lustre
+       touch /var/lock/subsys/lustrefs
+       ;;
+  stop)
+       [ -n "$LUSTREMTAB" ] && {
+               sig=
+               retry=3
+               remaining=`LC_ALL=C awk '!/^#/ && $3 ~ /^lustre/ && $2 != "/" {print $2}' /proc/mounts`
+               while [ -n "$remaining" -a "$retry" -gt 0 ]
+               do
+                       if [ "$retry" -lt 3 ]; then
+                               action $"Unmounting Lustre filesystems (retry): " umount -f -a -t lustre
+                       else
+                               action $"Unmounting Lustre filesystems: " umount -a -t lustre
+                       fi
+                       sleep 2
+                       remaining=`LC_ALL=C awk '!/^#/ && $3 ~ /^lustre/ && $2 != "/" {print $2}' /proc/mounts`
+                       [ -z "$remaining" ] && break
+                       /sbin/fuser -k -m $sig $remaining >/dev/null
+                       sleep 5
+                       retry=$(($retry - 1))
+                       sig=-9
+               done
+       }
+       rm -f /var/lock/subsys/lustrefs
+       ;;
+  status)
+       if [ -f /proc/mounts ] ; then
+               [ -n "$LUSTREFSTAB" ] && {
+                     echo $"Configured Lustre mountpoints: "
+                     for fs in $LUSTREFSTAB; do echo $fs ; done
+               }
+               [ -n "$LUSTREMTAB" ] && {
+                      echo $"Active Lustre mountpoints: "
+                     for fs in $LUSTREMTAB; do echo $fs ; done
+               }
+       else
+               echo $"/proc filesystem unavailable"
+       fi
+       ;;
+  restart)
+       $0 stop
+       $0 start
+       ;;
+  reload)
+        $0 start
+       ;;
+  *)
+       echo $"Usage: $0 {start|stop|restart|reload|status}"
+       exit 1
+esac
+
+exit 0
index 244c8d1..a862436 100755 (executable)
@@ -27,20 +27,32 @@ module=lustre
 
 case $parent in
   HEAD) : ;;
-  b_*|b1*) : ;;
+  b_*|b[1-4]*) : ;;
   *) parent="b_$parent" ;;
 esac
 case $child in
   HEAD) : ;;
-  b_*|b1*) : ;;
+  b_*|b[1-4]*) : ;;
   *) child="b_$child"
 esac
 
-if [ "$child" != "HEAD" -a "`cat CVS/Tag`" != "T$child" ]; then
+if [ "$child" != "HEAD" -a "`cat CVS/Tag 2> /dev/null`" != "T$child" ]; then
        echo "This script must be run within the $child branch"
        exit 1
 fi
 
+TEST_FILE=${TEST_FILE:-ChangeLog} # does this need to be smarter?
+check_tag() {
+       [ -z "$1" ] && echo "check_tag() missing arg" && exit3
+       [ "$1" = "HEAD" ] && return
+       $CVS log $TEST_FILE 2> /dev/null | grep -q "    $1: " && return
+       echo "$0: tag $1 not found in $TEST_FILE"
+       exit 2
+}
+
+check_tag $parent
+check_tag ${CHILD}_BASE
+
 cat << EOF > .mergeinfo
 parent=$parent
 PARENT=$PARENT
@@ -49,6 +61,8 @@ CHILD=$CHILD
 date=$date
 module=$module
 CONFLICTS=$CONFLICTS
+OPERATION=Merge
+OPERWHERE=from
 EOF
 
 echo PARENT: $PARENT parent: $parent CHILD: $CHILD child: $child date: $date
@@ -59,9 +73,12 @@ echo "done"
 echo -n "tagging $child as '${PARENT}_${CHILD}_UPDATE_CHILD_$date' ...."
 $CVS rtag -r $child ${PARENT}_${CHILD}_UPDATE_CHILD_$date $module
 echo "done"
+
+# Apply all of the changes to your local tree:
 echo "Updating: -j ${CHILD}_BASE -j ${PARENT}_${CHILD}_UPDATE_PARENT_$date ...."
 $CVS update -j ${CHILD}_BASE -j ${PARENT}_${CHILD}_UPDATE_PARENT_$date -dP
 echo "done"
+
 echo -n "Recording conflicts in $CONFLICTS ..."
 if $CVS update | grep '^C' > $CONFLICTS; then
     echo "Conflicts found, fix before committing."
@@ -70,4 +87,6 @@ else
     echo "No conflicts found"
     rm -f $CONFLICTS
 fi
+echo "done"
+
 echo "Build, test, commit and then run merge2.sh (no arguments)"
index a27f828..bc148be 100644 (file)
@@ -62,5 +62,6 @@ XMLCONFIG
 logs
 ostactive
 ll_dirstripe_verify
-rename_many
 openfilleddirunlink
+copy_attr
+rename_many
index c80901a..20f5eef 100644 (file)
@@ -18,67 +18,18 @@ if TESTS
 pkgexample_SCRIPTS = $(pkgexample_scripts)
 noinst_PROGRAMS = openunlink testreq truncate directio openme writeme open_delay
 noinst_PROGRAMS += tchmod toexcl fsx test_brw openclose createdestroy
-noinst_PROGRAMS += stat createmany statmany multifstat createtest mlink utime cmknod
+noinst_PROGRAMS += stat createmany statmany multifstat createtest mlink utime
 noinst_PROGRAMS += opendirunlink opendevunlink unlinkmany fchdir_test checkstat
 noinst_PROGRAMS += wantedi statone runas openfile getdents mkdirdeep o_directory
-noinst_PROGRAMS += small_write multiop sleeptest ll_sparseness_verify
+noinst_PROGRAMS += small_write multiop sleeptest ll_sparseness_verify cmknod
 noinst_PROGRAMS += ll_sparseness_write mrename ll_dirstripe_verify
 noinst_PROGRAMS += openfilleddirunlink rename_many memhog
-# noinst_PROGRAMS += ldaptest
+# noinst_PROGRAMS += ldaptest copy_attr
 bin_PROGRAMS = mcreate munlink mkdirmany iopentest1 iopentest2
 endif # TESTS
 
-# ldaptest_SOURCES = ldaptest.c
-tchmod_SOURCES = tchmod.c
-toexcl_SOURCES = toexcl.c
-testreq_SOURCES = testreq.c
-mcreate_SOURCES = mcreate.c
-iopentest1_SOURCES = iopentest1.c
-iopentest2_SOURCES = iopentest2.c
-munlink_SOURCES = munlink.c
-mlink_SOURCES = mlink.c
-truncate_SOURCES = truncate.c
-directio_SOURCES = directio.c
-openunlink_SOURCES = openunlink.c
-openme_SOURCES = openme.c
-writeme_SOURCES = writeme.c
-fsx_SOURCES = fsx.c
-test_brw_SOURCES = test_brw.c
-openclose_SOURCES = openclose.c
-createdestroy_SOURCES = createdestroy.c
 stat_SOURCES = stat.c stat_fs.h
-createmany_SOURCES = createmany.c
-statmany_SOURCES = statmany.c
-unlinkmany_SOURCES = unlinkmany.c
-statone_SOURCES = statone.c
-mkdirmany_SOURCES = mkdirmany.c
-multifstat_SOURCES = multifstat.c
-checkstat_SOURCES = checkstat.c
-runas_SOURCES = runas.c
-openfile_SOURCES = openfile.c
-wantedi_SOURCES = wantedi.c
-createtest_SOURCES = createtest.c
-open_delay_SOURCES = open_delay.c
-opendirunlink_SOURCES = opendirunlink.c
-openfilleddirunlink_SOURCES = openfilleddirunlink.c
-opendevunlink_SOURCES = opendevunlink.c
-fchdir_test_SOURCES = fchdir_test.c
-getdents_SOURCES=getdents.c
-o_directory_SOURCES = o_directory.c
-utime_SOURCES = utime.c
-cmknod_SOURCES = cmknod.c
-mkdirdeep_SOURCES = mkdirdeep.c
 mkdirdeep_LDADD=-L$(top_builddir)/portals/utils -lptlctl $(LIBREADLINE)
-small_write_SOURCES = small_write.c
-sleeptest_SOURCES = sleeptest.c
-rename_many_SOURCES = rename_many.c
-memhog_SOURCES = memhog.c
-#write_append_truncate_SOURCES=write_append_truncate.c
 #write_append_truncate_CC=mpicc
-#createmany_mpi_SOURCES=createmany_mpi.c
 #createmany_mpi_CC=mpicc
-
-#sanity test 
-ll_sparseness_verify_SOURCES = ll_sparseness_verify.c
-ll_sparseness_write_SOURCES = ll_sparseness_write.c
-ll_dirstripe_verify_SOURCE = ll_dirstripe_verify.c
+#copy_attr_LDADD= -lattr
index abe38c8..ccf4a94 100755 (executable)
@@ -40,7 +40,7 @@ for NAME in $CONFIGS; do
 
        if [ "$DBENCH" != "no" ]; then
                mount | grep $MOUNT || sh llmount.sh
-               SPACE=`df $MOUNT | tail -1 | awk '{ print $4 }'`
+               SPACE=`df $MOUNT | tail -1 | awk '{ print $4 }'`
                DB_THREADS=`expr $SPACE / 50000`
                [ $THREADS -lt $DB_THREADS ] && DB_THREADS=$THREADS
 
@@ -82,7 +82,7 @@ for NAME in $CONFIGS; do
        fi
        if [ "$IOZONE_DIR" != "no" ]; then
                mount | grep $MOUNT || sh llmount.sh
-               SPACE=`df $MOUNT | tail -1 | awk '{ print $4 }'`
+               SPACE=`df $MOUNT | tail -1 | awk '{ print $4 }'`
                IOZ_THREADS=`expr $SPACE / \( $SIZE + $SIZE / 512 \)`
                [ $THREADS -lt $IOZ_THREADS ] && IOZ_THREADS=$THREADS
 
index 6b5ccd9..2e719b5 100644 (file)
@@ -1,9 +1,10 @@
 #!/bin/sh
 set -evx
 
-MNT=${MNT:-/mnt/lustre}
-DIR=${DIR:-$MNT}
+MOUNT=${MNT:-/mnt/lustre}
+DIR=${DIR:-$MOUNT}
 SRC=${SRC:-`dirname $0`/../..}
+export CC=${CC:-gcc}
 while date; do
        for i in lustre; do
                TGT=$DIR/$i
index 44649ee..6de928f 100755 (executable)
@@ -11,11 +11,11 @@ config=$NAME.xml
 mkconfig=$NAME.sh
 
 if [ "$PORTALS" ]; then
-  portals_opt="--portals=$PORTALS"
+    portals_opt="--portals=$PORTALS"
 fi
 
 if [ "$LUSTRE" ]; then
-  lustre_opt="--lustre=$LUSTRE"
+    lustre_opt="--lustre=$LUSTRE"
 fi
 
 if [ "$LDAPURL" ]; then
index a3ef1ad..c678df8 100755 (executable)
@@ -41,8 +41,8 @@ if [ "$BUSY" ]; then
        mv $TMP/debug $TMP/debug-busy.`date +%s`
        exit 255
 fi
-LEAK_LUSTRE=`dmesg | tail -30 | grep "obd mem.*leaked"`
-LEAK_PORTALS=`dmesg | tail -20 | grep "Portals memory leaked"`
+LEAK_LUSTRE=`dmesg | tail -30 | grep "obd mem.*leaked"`
+LEAK_PORTALS=`dmesg | tail -20 | grep "Portals memory leaked"`
 if [ "$LEAK_LUSTRE" -o "$LEAK_PORTALS" ]; then
        echo "$LEAK_LUSTRE" 1>&2
        echo "$LEAK_PORTALS" 1>&2
index 9e8118d..098e787 100644 (file)
@@ -1,3 +1,5 @@
+#include <sys/types.h>
+#include <unistd.h>
 #include <stdio.h>
 #include <stdlib.h>
 
@@ -52,7 +54,8 @@ int main(int argc, char *argv[])
        }
 
        alloc = CHUNK;
-       printf("allocating %lld kbytes in %u kbyte chunks\n", kbtotal, alloc);
+       printf("[%d] allocating %lld kbytes in %u kbyte chunks\n",
+              getpid(), kbtotal, alloc);
        for (i = kballoc = 0; i < numchunk; i++, kballoc += alloc) {
                if (kbtotal - kballoc < alloc)
                        alloc = kbtotal - kballoc;
index 0402aff..776eaea 100755 (executable)
@@ -96,7 +96,8 @@ int main(int argc, char **argv)
                         }
                         break;
                 case 'D':
-                        if (open(fname, O_DIRECTORY) == -1) {
+                        fd = open(fname, O_DIRECTORY);
+                        if (fd == -1) {
                                 perror("open(O_DIRECTORY)");
                                 exit(1);
                         }
@@ -204,12 +205,14 @@ int main(int argc, char **argv)
                                 exit(1);
                         }
                         break;
-                case 'w':
-                        if (write(fd, "w", 1) == -1) {
+                case 'w': {
+                        int rc;
+                        if ((rc = write(fd, "w", 1)) == -1) {
                                 perror("write");
                                 exit(1);
                         }
                         break;
+                }
                 case 'W':
                         for (i = 0; i < mmap_len && mmap_ptr; i += 4096)
                                 mmap_ptr[i] += junk++;
index 4e6b261..1d068d5 100755 (executable)
@@ -22,8 +22,8 @@ sleep 1       # to ensure we get up-to-date statfs info
 #lctl clear
 #lctl debug_daemon start /r/tmp/debug 1024
 
-STRIPECOUNT=`cat /proc/fs/lustre/lov/*/activeobd | head -1`
-ORIGFREE=`cat /proc/fs/lustre/llite/*/kbytesavail | head -1`
+STRIPECOUNT=`cat /proc/fs/lustre/lov/*/activeobd | head -1`
+ORIGFREE=`cat /proc/fs/lustre/llite/*/kbytesavail | head -1`
 MAXFREE=${MAXFREE:-$((200000 * $STRIPECOUNT))}
 if [ $ORIGFREE -gt $MAXFREE ]; then
        echo "skipping out-of-space test on $OSC"
@@ -34,6 +34,9 @@ fi
 
 export LANG=C LC_LANG=C # for "No space left on device" message
 
+rm -f $LOG >/dev/null 2>&1
+[ -f $LOG ] && echo "ERROR: log file wasn't removed?" && exit 1
+
 # make sure we stripe over all OSTs to avoid OOS on only a subset of OSTs
 $LFS setstripe $OOS 65536 0 $STRIPECOUNT
 if dd if=/dev/zero of=$OOS count=$(($ORIGFREE + 100)) bs=1k 2> $LOG; then
@@ -54,6 +57,7 @@ for OSC in /proc/fs/lustre/osc/OSC*MNT*; do
        GRANT=`cat $OSC/cur_grant_bytes`
        [ $(($AVAIL - $GRANT / 1024)) -lt 400 ] && OSCFULL=full
 done
+
 if [ -z "$OSCFULL" ]; then
        echo "no OSTs are close to full"
        grep [0-9] /proc/fs/lustre/osc/OSC*MNT*/{kbytesavail,cur*}
index c9755cb..84c87f1 100644 (file)
@@ -20,8 +20,8 @@ rm -f $OOS $OOS2 $LOG $LOG2
 
 sleep 1        # to ensure we get up-to-date statfs info
 
-STRIPECOUNT=`cat /proc/fs/lustre/lov/*/activeobd | head -1`
-ORIGFREE=`cat /proc/fs/lustre/llite/*/kbytesavail | head -1`
+STRIPECOUNT=`cat /proc/fs/lustre/lov/*/activeobd | head -1`
+ORIGFREE=`cat /proc/fs/lustre/llite/*/kbytesavail | head -1`
 MAXFREE=${MAXFREE:-$((200000 * $STRIPECOUNT))}
 if [ $ORIGFREE -gt $MAXFREE ]; then
        echo "skipping out-of-space test on $OSC"
index 8e7ca55..ed1cec6 100755 (executable)
@@ -320,6 +320,8 @@ test_19a() {
     drop_ldlm_cancel "chmod 0777 $f"  || echo evicted
 
     do_facet client checkstat -v -p 0777 $f  || echo evicted
+    # let the client reconnect
+    sleep 5
     do_facet client "munlink $f"
 }
 run_test 19a "test expired_lock_main on mds (2867)"
index faf5085..484cfc4 100644 (file)
@@ -108,9 +108,8 @@ int main(int argc, char *argv[])
                        if (end && *end == '\0') {
                                seed = i;
                        } else {
-                               fprintf(stderr, "bad seed '%s'\n", optarg);
-                               usage(argv[0]);
-                               return 1;
+                               seed = random();
+                               fprintf(stderr, "using random seed %u\n", seed);
                        }
                        break;
                case 'v':
index 77e66e7..d44386d 100755 (executable)
@@ -21,8 +21,8 @@ gen_config() {
     
     add_lov lov1 mds --stripe_sz $STRIPE_BYTES\
        --stripe_cnt $STRIPES_PER_OBJ --stripe_pattern 0
-    add_ost ost --lov lov1 --dev $OSTDEV --size $OSTSIZE
-    add_ost ost2 --lov lov1 --dev ${OSTDEV}-2 --size $OSTSIZE
+    add_ost ost --lov lov1 --dev $OSTDEV --size $OSTSIZE --failover
+    add_ost ost2 --lov lov1 --dev ${OSTDEV}-2 --size $OSTSIZE  --failover
     add_client client mds --lov lov1 --path $MOUNT
 }
 
@@ -311,7 +311,6 @@ test_15() {
     facet_failover mds
     df $MOUNT || return 1
 
-    lctl dk dk 
     unlinkmany $MOUNT1/$tfile- 25 || return 2
 
     zconf_mount `hostname` $MOUNT2
@@ -319,6 +318,45 @@ test_15() {
 }
 run_test 15 "timeout waiting for lost client during replay, 1 client completes"
 
+test_16() {
+    replay_barrier mds
+    createmany -o $MOUNT1/$tfile- 25
+    createmany -o $MOUNT2/$tfile-2- 1
+    umount $MOUNT2
+
+    facet_failover mds
+    sleep $TIMEOUT
+    facet_failover mds
+    df $MOUNT || return 1
+
+    unlinkmany $MOUNT1/$tfile- 25 || return 2
+
+    zconf_mount `hostname` $MOUNT2
+    return 0
+
+}
+run_test 16 "fail MDS during recovery (3571)"
+
+test_17() {
+    createmany -o $MOUNT1/$tfile- 25
+    createmany -o $MOUNT2/$tfile-2- 1
+
+    # Make sure the disconnect is lost
+    replay_barrier ost
+    umount $MOUNT2
+
+    facet_failover ost
+    sleep $TIMEOUT
+    facet_failover ost
+    df $MOUNT || return 1
+
+    unlinkmany $MOUNT1/$tfile- 25 || return 2
+
+    zconf_mount `hostname` $MOUNT2
+    return 0
+
+}
+run_test 17 "fail OST during recovery (3571)"
 
 if [ "$ONLY" != "setup" ]; then
        equals_msg test complete, cleaning up
index 5fb43c2..ef785c8 100755 (executable)
@@ -936,6 +936,31 @@ test_47() {
 }
 run_test 47 "MDS->OSC failure during precreate cleanup (2824)"
 
+test_48() {
+
+    replay_barrier mds
+    createmany -o $DIR/$tfile 20  || return 1
+    # OBD_FAIL_OST_EROFS 0x216
+    fail mds
+    do_facet ost "sysctl -w lustre.fail_loc=0x80000216"
+    df $MOUNT || return 2
+
+    createmany -o $DIR/$tfile 20 20 || return 2
+    unlinkmany $DIR/$tfile 40 || return 3
+
+    do_facet ost "sysctl -w lustre.fail_loc=0"
+    return 0
+}
+run_test 48 "MDS->OSC failure during precreate cleanup (2824)"
+
+test_49() {
+    local osc_dev=`$LCTL device_list | \
+               awk '(/ost_svc_mds_svc/){print $4}' `
+    $LCTL --device %$osc_dev recover &&  $LCTL --device %$osc_dev recover
+    # give the mds_lov_sync threads a chance to run
+    sleep 5
+}
+run_test 49 "Double OSC recovery, don't LASSERT"
+
 equals_msg test complete, cleaning up
 $CLEANUP
-
index 31e9d6a..b7201f2 100644 (file)
@@ -2,10 +2,10 @@
 PATH=`dirname $0`:`dirname $0`/../utils:$PATH
 TMP=${TMP:-/tmp}
 
-MDS=`ls /proc/fs/lustre/mds | grep -v num_refs | head -1`
+MDS=`ls /proc/fs/lustre/mds | grep -v num_refs | head -1`
 [ -z "$MDS" ] && echo "no MDS available, skipping llog test" && exit 0
 
-modprobe llog_test || insmod ../obdclass/llog_test.o || insmod ../obdclass/llog_test.ko || exit 1
+insmod ../obdclass/llog_test.o || exit 1
 lctl modules > $TMP/ogdb-`hostname`
 echo "NOW reload debugging syms.."
 
index f1df775..91c9c7f 100644 (file)
@@ -6,17 +6,22 @@
 #include <unistd.h>
 #include <string.h>
 #include <errno.h>
+#include <ctype.h>
 #include <sys/types.h>
 #include <grp.h>
 #include <sys/wait.h>
 
 #define DEBUG 0
 
+#ifndef NGROUPS_MAX
+#define NGROUPS_MAX 32
+#endif
+
 static const char usage[] =
 "Usage: %s -u user_id [-g grp_id ] [ -G ] command\n"
-"  -u user_id      switch to UID user_id\n"
-"  -g grp_id       switch to GID grp_id\n"
-"  -G              clear supplementary groups\n";
+"  -u user_id           switch to UID user_id\n"
+"  -g grp_id            switch to GID grp_id\n"
+"  -G[gid0,gid1,...]    set supplementary groups\n";
 
 void Usage_and_abort(const char *name)
 {
@@ -26,20 +31,17 @@ void Usage_and_abort(const char *name)
 
 int main(int argc, char **argv)
 {
-        char **my_argv, *name = argv[0];
-        int status;
-        int c,i;
-        int gid_is_set = 0;
-        int uid_is_set = 0;
-        int clear_supp_groups = 0;
+        char **my_argv, *name = argv[0], *grp;
+        int status, c, i;
+        int gid_is_set = 0, uid_is_set = 0, num_supp = -1;
         uid_t user_id = 0;
-        gid_t grp_id = 0;
+        gid_t grp_id = 0, supp_groups[NGROUPS_MAX] = { 0 };
 
         if (argc == 1)
                 Usage_and_abort(name);
 
         // get UID and GID
-        while ((c = getopt (argc, argv, "+u:g:hG")) != -1) {
+        while ((c = getopt(argc, argv, "+u:g:hG::")) != -1) {
                 switch (c) {
                 case 'u':
                         user_id = (uid_t)atoi(optarg);
@@ -54,7 +56,15 @@ int main(int argc, char **argv)
                         break;
 
                 case 'G':
-                        clear_supp_groups = 1;
+                        num_supp = 0;
+                        if (optarg == NULL || !isdigit(optarg[0]))
+                                break;
+                        while ((grp = strsep(&optarg, ",")) != NULL) {
+                                printf("adding supp group %d\n", atoi(grp));
+                                supp_groups[num_supp++] = atoi(grp);
+                                if (num_supp >= NGROUPS_MAX)
+                                        break;
+                        }
                         break;
 
                 default:
@@ -98,14 +108,14 @@ int main(int argc, char **argv)
                  exit(-1);
         }
 
-        if (clear_supp_groups) {
-                status = setgroups(0, NULL);
+        if (num_supp >= 0) {
+                status = setgroups(num_supp, supp_groups);
                 if (status == -1) {
-                        perror("clearing supplementary groups");
+                        perror("setting supplementary groups");
                         exit(-1);
                 }
         }
-        
+
         // set UID
         status = setreuid(user_id, user_id );
         if(status == -1) {
@@ -114,8 +124,10 @@ int main(int argc, char **argv)
                   exit(-1);
         }
 
-        fprintf(stderr, "running as UID %d, GID %d%s:", user_id, grp_id,
-                clear_supp_groups ? ", cleared groups" : "");
+        fprintf(stderr, "running as UID %d, GID %d", user_id, grp_id);
+        for (i = 0; i < num_supp; i++)
+                fprintf(stderr, ":%d", supp_groups[i]);
+        fprintf(stderr, "\n");
 
         for (i = 0; i < argc - optind; i++)
                  fprintf(stderr, " [%s]", my_argv[i]);
index 34a55b0..666b253 100644 (file)
@@ -9,7 +9,7 @@ COUNT_100=`expr $COUNT / 100`
 
 ENDRUN=endrun-`hostname`
 
-ECHONAME="`lctl device_list 2> /dev/null | awk '/ echo_client / { print $4 }' | tail -1`"
+ECHONAME="`lctl device_list 2> /dev/null | awk '/ echo_client / { print $4 }' | tail -1`"
 
 if [ -z "$ECHONAME" ]; then
        echo "$0: needs an ECHO_CLIENT set up first" 1>&2
index ecfe0d9..7167d2d 100755 (executable)
@@ -23,11 +23,11 @@ cleanup() {
 
 [ -z "$*" ] && fail "usage: $0 [--reformat] <conf>.xml" 1
 
-OSCMT="`mount | awk '/ lustre_lite / { print $3 }' | tail -1`"
+OSCMT="`mount | awk '/ lustre_lite / { print $3 }' | tail -1`"
 if [ -z "$OSCMT" ]; then
        $LCONF $@ || exit 1
         trap cleanup 0
-       OSCMT="`mount | awk '/ lustre_lite / { print $3 }' | tail -1`"
+       OSCMT="`mount | awk '/ lustre_lite / { print $3 }' | tail -1`"
        [ -z "$OSCMT" ] && fail "no lustre filesystem mounted" 1
 fi
 
@@ -42,7 +42,7 @@ while [ "$1" ]; do
 done
 
 OSCTMP=`echo $OSCMT | tr "/" "."`
-USED=`df | awk "/$OSCTMP/ { print \\$3 }" | tail -1`
+USED=`df | awk "/$OSCTMP/ { print \\$3 }" | tail -1`
 USED=`expr $USED + 16` # Some space for the status file
 
 THREADS=1
@@ -58,7 +58,7 @@ done
 
 rm -f $ENDRUN
 
-NOWUSED=`df | awk "/$OSCTMP/ { print \\$3 }" | tail -1`
+NOWUSED=`df | awk "/$OSCTMP/ { print \\$3 }" | tail -1`
 if [ $NOWUSED -gt $USED ]; then
        echo "Space not all freed: now ${NOWUSED}kB, was ${USED}kB." 1>&2
        echo "This is normal on BA OSTs, because of subdirectories." 1>&2
index 73e81ca..77d6768 100644 (file)
@@ -9,7 +9,7 @@ COUNT_1000=`expr $COUNT / 1000`
 
 ENDRUN=endrun-`hostname`
 
-ECHONAME="`lctl device_list 2> /dev/null | awk '/ echo_client / { print $4 }' | tail -1`"
+ECHONAME="`lctl device_list 2> /dev/null | awk '/ echo_client / { print $4 }' | tail -1`"
 
 if [ -z "$ECHONAME" ]; then
        echo "$0: needs an ECHO_CLIENT set up first" 1>&2
index 6a8aac8..77635c3 100755 (executable)
@@ -31,20 +31,21 @@ SRC=/etc
 while [ "$1" ]; do
        case $1 in
        *.xml) export NAME=`echo $1 | sed "s/.xml//"` ;;
+       *) OPTS="$OPTS $1" ;;
        esac
        shift
 done
 
-MOUNT="`mount | awk '/ lustre_lite / { print $3 }' | tail -1`"
+MOUNT="`mount | awk '/ lustre_lite / { print $3 }' | tail -1`"
 if [ -z "$MOUNT" ]; then
-       sh llmount.sh
-       MOUNT="`mount | awk '/ lustre_lite / { print $3 }' | tail -1`"
+       sh llmount.sh $OPTS
+       MOUNT="`mount | awk '/ lustre_lite / { print $3 }' | tail -1`"
        [ -z "$MOUNT" ] && fail "no lustre filesystem mounted" 1
        I_MOUNTED="yes"
 fi
 
 OSCTMP=`echo $MOUNT | tr "/" "."`
-USED=`df | awk "/$OSCTMP/ { print \\$3 }" | tail -1`
+USED=`df | awk "/$OSCTMP/ { print \\$3 }" | tail -1`
 USED=`expr $USED + 16` # Some space for the status file
 
 # let's start slowly here...
@@ -77,7 +78,7 @@ mkdir $DST || fail "can't mkdir $DST" 10
 
 # ok, that hopefully worked, so let's do a little more, with files that
 # haven't changed in the last day (hopefully they don't change during test)
-FILES=`find $SRC -type f -mtime +1 -ctime +1 | head -$COUNT`
+FILES=`find $SRC -type f -mtime +1 -ctime +1 | head -$COUNT`
 log "copying files from $SRC to $DST$SRC"
 tar cf - $FILES | tar xvf - -C $DST || fail "copying $SRC" 11
 
@@ -90,7 +91,7 @@ done
 [ "$ERROR" ] && fail "old and new files are different" $ERROR
 
 sh llmountcleanup.sh || exit 19
-sh llrmount.sh || exit 20
+sh llrmount.sh $OPTS || exit 20
 
 log "comparing previously copied files"
 for f in $FILES; do
@@ -101,7 +102,7 @@ done
 [ "$ERROR" ] && fail "old and new files are different on second diff" $ERROR
 
 sh llmountcleanup.sh || exit 19
-sh llrmount.sh || exit 20
+sh llrmount.sh $OPTS || exit 20
 
 log "removing $DST"
 rm -r $V $DST || fail "can't remove $DST" 37
@@ -123,7 +124,7 @@ rmdir $MOUNT/base$$* || fail "mkdirmany cleanup failed"
 
 log "done"
 
-NOWUSED=`df | awk "/$OSCTMP/ { print \\$3 }" | tail -1`
+NOWUSED=`df | awk "/$OSCTMP/ { print \\$3 }" | tail -1`
 if [ `expr $NOWUSED - $USED` -gt 1024 ]; then
        echo "Space not all freed: now ${NOWUSED}kB, was ${USED}kB." 1>&2
 fi
index 7ba19ad..2f04e06 100644 (file)
@@ -7,12 +7,9 @@
 set -e
 
 ONLY=${ONLY:-"$*"}
-# bug number for skipped test: 2108
+# bug number for skipped test: 2108 3192
 ALWAYS_EXCEPT=${ALWAYS_EXCEPT:-"42a 68"}
 # UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT!
-case `uname -r` in
-2.6.*) ALWAYS_EXCEPT="$ALWAYS_EXCEPT 54c 55 68" # bug 3117
-esac
 
 [ "$ALWAYS_EXCEPT$EXCEPT" ] && echo "Skipping tests: $ALWAYS_EXCEPT $EXCEPT"
 
@@ -574,7 +571,7 @@ run_test 24c "mkdir .../R3/f; rename .../R3/f .../R3/g ========="
 test_24d() {
        mkdir $DIR/R4
        mkdir $DIR/R4/{f,g}
-       perl -e "rename \"$DIR/R4/f\", \"$DIR/R4/g\";"
+       mrename $DIR/R4/f $DIR/R4/g
        $CHECKSTAT -a $DIR/R4/f || error
        $CHECKSTAT -t dir $DIR/R4/g || error
 }
@@ -606,23 +603,23 @@ test_24g() {
        $CHECKSTAT -a $DIR/R7a/d || error
        $CHECKSTAT -t dir $DIR/R7b/e || error
 }
-run_test 24g "mkdir .../R7a/d; rename .../R7a/d .../R5b/e ======"
+run_test 24g "mkdir .../R7{a,b}/d; mv .../R7a/d .../R5b/e ======"
 
 test_24h() {
        mkdir $DIR/R8{a,b}
        mkdir $DIR/R8a/d $DIR/R8b/e
-       perl -e "rename \"$DIR/R8a/d\", \"$DIR/R8b/e\";"
+       mrename $DIR/R8a/d $DIR/R8b/e
        $CHECKSTAT -a $DIR/R8a/d || error
        $CHECKSTAT -t dir $DIR/R8b/e || error
 }
-run_test 24h "mkdir .../R8{a,b} R8a/{d,e}; mv .../R8a/d .../R8b/e"
+run_test 24h "mkdir .../R8{a,b}/{d,e}; rename .../R8a/d .../R8b/e"
 
 test_24i() {
        echo "-- rename error cases"
        mkdir $DIR/R9
        mkdir $DIR/R9/a
        touch $DIR/R9/f
-       perl -e "rename \"$DIR/R9/f\", \"$DIR/R9/a\";"
+       mrename $DIR/R9/f $DIR/R9/a
        $CHECKSTAT -t file $DIR/R9/f || error
        $CHECKSTAT -t dir  $DIR/R9/a || error
        $CHECKSTAT -a file $DIR/R9/a/f || error
@@ -631,7 +628,7 @@ run_test 24i "rename file to dir error: touch f ; mkdir a ; rename f a"
 
 test_24j() {
        mkdir $DIR/R10
-       perl -e "rename \"$DIR/R10/f\", \"$DIR/R10/g\"" 
+       mrename $DIR/R10/f $DIR/R10/g
        $CHECKSTAT -t dir $DIR/R10 || error
        $CHECKSTAT -a $DIR/R10/f || error
        $CHECKSTAT -a $DIR/R10/g || error
@@ -673,10 +670,61 @@ run_test 24n "Statting the old file after renameing (Posix rename 2)"
 
 test_24o() {
        check_kernel_version 37 || return 0
-       rename_many -s 3287 -v -n 10 $DIR
+       rename_many -s random -v -n 10 $DIR
 }
 run_test 24o "rename of files during htree split ==============="
 
+test_24p() {
+       mkdir $DIR/R12{a,b}
+       DIRINO=`ls -lid $DIR/R12a | awk '{ print $1 }'`
+       mrename $DIR/R12a $DIR/R12b
+       $CHECKSTAT -a $DIR/R12a || error
+       $CHECKSTAT -t dir $DIR/R12b || error
+       DIRINO2=`ls -lid $DIR/R12b | awk '{ print $1 }'`
+       [ "$DIRINO" = "$DIRINO2" ] || error "R12a $DIRINO != R12b $DIRINO2"
+}
+run_test 24p "mkdir .../R12{a,b}; rename .../R12a .../R12b"
+
+test_24q() {
+       mkdir $DIR/R13{a,b}
+       DIRINO=`ls -lid $DIR/R13a | awk '{ print $1 }'`
+       multiop $DIR/R13b D_c &
+       MULTIPID=$!
+
+       mrename $DIR/R13a $DIR/R13b
+       $CHECKSTAT -a $DIR/R13a || error
+       $CHECKSTAT -t dir $DIR/R13b || error
+       DIRINO2=`ls -lid $DIR/R13b | awk '{ print $1 }'`
+       [ "$DIRINO" = "$DIRINO2" ] || error "R13a $DIRINO != R13b $DIRINO2"
+       kill -USR1 $MULTIPID
+       wait $MULTIPID || error "multiop close failed"
+}
+run_test 24q "mkdir .../R13{a,b}; open R13b rename R13a R13b ==="
+
+test_24r() { #bug 3789
+       mkdir $DIR/R14a $DIR/R14a/b
+       mrename $DIR/R14a $DIR/R14a/b && error "rename to subdir worked!"
+       $CHECKSTAT -t dir $DIR/R14a || error "$DIR/R14a missing"
+       $CHECKSTAT -t dir $DIR/R14a/b || error "$DIR/R14a/b missing"
+}
+run_test 24r "mkdir .../R14a/b; rename .../R14a .../R14a/b ====="
+
+test_24s() {
+       mkdir $DIR/R15a $DIR/R15a/b $DIR/R15a/b/c
+       mrename $DIR/R15a $DIR/R15a/b/c && error "rename to sub-subdir worked!"
+       $CHECKSTAT -t dir $DIR/R15a || error "$DIR/R15a missing"
+       $CHECKSTAT -t dir $DIR/R15a/b/c || error "$DIR/R15a/b/c missing"
+}
+run_test 24s "mkdir .../R15a/b/c; rename .../R15a .../R15a/b/c ="
+test_24t() {
+       mkdir $DIR/R16a $DIR/R16a/b $DIR/R16a/b/c
+       mrename $DIR/R16a/b/c $DIR/R16a && error "rename to sub-subdir worked!"
+       $CHECKSTAT -t dir $DIR/R16a || error "$DIR/R16a missing"
+       $CHECKSTAT -t dir $DIR/R16a/b/c || error "$DIR/R16a/b/c missing"
+}
+run_test 24t "mkdir .../R16a/b/c; rename .../R16a/b/c .../R16a ="
+
+
 test_25a() {
        echo '== symlink sanity ============================================='
        mkdir $DIR/d25
@@ -731,8 +779,8 @@ run_test 26e "unlink multiple component recursive symlink ======"
 test_27a() {
        echo '== stripe sanity =============================================='
        mkdir $DIR/d27
-       $LSTRIPE $DIR/d27/f0 65536 0 1 || error
-       $CHECKSTAT -t file $DIR/d27/f0 || error
+       $LSTRIPE $DIR/d27/f0 65536 0 1 || error "lstripe failed"
+       $CHECKSTAT -t file $DIR/d27/f0 || error "checkstat failed"
        pass
        log "== test_27b: write to one stripe file ========================="
        cp /etc/hosts $DIR/d27/f0 || error
@@ -744,12 +792,12 @@ test_27c() {
        if [ ! -d $DIR/d27 ]; then
                mkdir $DIR/d27
        fi
-       $LSTRIPE $DIR/d27/f01 65536 0 2 || error
+       $LSTRIPE $DIR/d27/f01 65536 0 2 || error "lstripe failed"
        [ `$LFIND $DIR/d27/f01 | grep -A 10 obdidx | wc -l` -eq 4 ] ||
                error "two-stripe file doesn't have two stripes"
        pass
        log "== test_27d: write to two stripe file file f01 ================"
-       dd if=/dev/zero of=$DIR/d27/f01 bs=4k count=4 || error
+       dd if=/dev/zero of=$DIR/d27/f01 bs=4k count=4 || error "dd failed"
 }
 run_test 27c "create two stripe file f01 ======================="
 
@@ -757,8 +805,8 @@ test_27d() {
        if [ ! -d $DIR/d27 ]; then
                mkdir $DIR/d27
        fi
-       $LSTRIPE $DIR/d27/fdef 0 -1 0 || error
-       $CHECKSTAT -t file $DIR/d27/fdef || error
+       $LSTRIPE $DIR/d27/fdef 0 -1 0 || error "lstripe failed"
+       $CHECKSTAT -t file $DIR/d27/fdef || error "checkstat failed"
        #dd if=/dev/zero of=$DIR/d27/fdef bs=4k count=4 || error
 }
 run_test 27d "create file with default settings ================"
@@ -767,9 +815,9 @@ test_27e() {
        if [ ! -d $DIR/d27 ]; then
                mkdir $DIR/d27
        fi
-       $LSTRIPE $DIR/d27/f12 65536 0 2 || error
-       $LSTRIPE $DIR/d27/f12 65536 0 2 && error
-       $CHECKSTAT -t file $DIR/d27/f12 || error
+       $LSTRIPE $DIR/d27/f12 65536 0 2 || error "lstripe failed"
+       $LSTRIPE $DIR/d27/f12 65536 0 2 && error "lstripe succeeded twice"
+       $CHECKSTAT -t file $DIR/d27/f12 || error "checkstat failed"
 }
 run_test 27e "lstripe existing file (should return error) ======"
 
@@ -777,9 +825,9 @@ test_27f() {
        if [ ! -d $DIR/d27 ]; then
                mkdir $DIR/d27
        fi
-       $LSTRIPE $DIR/d27/fbad 100 0 1 && error
-       dd if=/dev/zero of=$DIR/d27/f12 bs=4k count=4 || error
-       $LFIND $DIR/d27/fbad || error
+       $LSTRIPE $DIR/d27/fbad 100 0 1 && error "lstripe failed"
+       dd if=/dev/zero of=$DIR/d27/f12 bs=4k count=4 || error "dd failed"
+       $LFIND $DIR/d27/fbad || error "lfind failed"
 }
 run_test 27f "lstripe with bad stripe size (should return error)"
 
@@ -787,14 +835,14 @@ test_27g() {
        if [ ! -d $DIR/d27 ]; then
                mkdir $DIR/d27
        fi
-       $MCREATE $DIR/d27/fnone || error
+       $MCREATE $DIR/d27/fnone || error "mcreate failed"
        pass
        log "== test 27h: lfind with no objects ============================"
-       $LFIND $DIR/d27/fnone 2>&1 | grep "no stripe info" || error
+       $LFIND $DIR/d27/fnone 2>&1 | grep "no stripe info" || error "has object"
        pass
        log "== test 27i: lfind with some objects =========================="
-       touch $DIR/d27/fsome || error
-       $LFIND $DIR/d27/fsome | grep obdidx || error
+       touch $DIR/d27/fsome || error "touch failed"
+       $LFIND $DIR/d27/fsome | grep obdidx || error "missing objects"
 }
 run_test 27g "test lfind ======================================="
 
@@ -802,7 +850,7 @@ test_27j() {
         if [ ! -d $DIR/d27 ]; then
                 mkdir $DIR/d27
         fi
-        $LSTRIPE $DIR/d27/f27j 65536 $OSTCOUNT 1 && error || true
+        $LSTRIPE $DIR/d27/f27j 65536 $OSTCOUNT 1 && error "lstripe failed"||true
 }
 run_test 27j "lstripe with bad stripe offset (should return error)"
 
@@ -1449,7 +1497,7 @@ run_test 43c "md5sum of copy into lustre========================"
 
 test_44() {
        [  "$OSTCOUNT" -lt "2" ] && echo "skipping 2-stripe test" && return
-       dd if=/dev/zero of=$DIR/f1 bs=4k count=1 seek=127
+       dd if=/dev/zero of=$DIR/f1 bs=4k count=1 seek=1023
        dd if=$DIR/f1 bs=4k count=1
 }
 run_test 44 "zero length read from a sparse stripe ============="
@@ -1526,18 +1574,18 @@ page_size() {
        getconf PAGE_SIZE
 }
 
-# in a 2 stripe file (lov.sh), page 63 maps to page 31 in its object.  this
+# in a 2 stripe file (lov.sh), page 1023 maps to page 511 in its object.  this
 # test tickles a bug where re-dirtying a page was failing to be mapped to the
-# objects offset and an assert hit when an rpc was built with 63's mapped 
-# offset 31 and 31's raw 31 offset. it also found general redirtying bugs.
+# objects offset and an assert hit when an rpc was built with 1023's mapped 
+# offset 511 and 511's raw 511 offset. it also found general redirtying bugs.
 test_46() {
        f="$DIR/f46"
        stop_writeback
        sync
-       dd if=/dev/zero of=$f bs=`page_size` seek=31 count=1
+       dd if=/dev/zero of=$f bs=`page_size` seek=511 count=1
        sync
-       dd conv=notrunc if=/dev/zero of=$f bs=`page_size` seek=63 count=1
-       dd conv=notrunc if=/dev/zero of=$f bs=`page_size` seek=31 count=1
+       dd conv=notrunc if=/dev/zero of=$f bs=`page_size` seek=1023 count=1
+       dd conv=notrunc if=/dev/zero of=$f bs=`page_size` seek=511 count=1
        sync
        start_writeback
 }
@@ -1619,7 +1667,7 @@ test_48d() { # bug 2350
        $TRACE mkdir . && error "'mkdir .' worked after removing parent"
        $TRACE rmdir . && error "'rmdir .' worked after removing parent"
        $TRACE ln -s . foo && error "'ln -s .' worked after removing parent"
-       $TRACE cd .. && error "'cd ..' worked after recreate parent" || true
+       $TRACE cd .. && error "'cd ..' worked after removing parent" || true
 }
 run_test 48d "Access removed parent subdir (should return errors)"
 
index d568db9..c3e0a80 100644 (file)
@@ -3,7 +3,7 @@
 set -e
 
 ONLY=${ONLY:-"$*"}
-# bug number for skipped test: 1768 
+# bug number for skipped test: 1768 3192
 ALWAYS_EXCEPT=${ALWAYS_EXCEPT:-"4   14b"}
 # UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT!
 
@@ -101,8 +101,8 @@ pass() {
        echo PASS
 }
 
-export MOUNT1=`mount| awk '/ lustre/ { print $3 }'| head -1`
-export MOUNT2=`mount| awk '/ lustre/ { print $3 }'| tail -1`
+export MOUNT1=`mount| awk '/ lustre/ { print $3 }'| head -1`
+export MOUNT2=`mount| awk '/ lustre/ { print $3 }'| tail -1`
 [ -z "$MOUNT1" ] && error "NAME=$NAME not mounted once"
 [ "$MOUNT1" = "$MOUNT2" ] && error "NAME=$NAME not mounted twice"
 [ `mount| awk '/ lustre/ { print $3 }'| wc -l` -ne 2 ] && \
@@ -176,7 +176,7 @@ test_3() {
 run_test 3 "symlink on one mtpt, readlink on another ==========="
 
 test_4() {
-       ./multifstat $DIR1/f4 $DIR2/f4
+       multifstat $DIR1/f4 $DIR2/f4
 }
 run_test 4 "fstat validation on multiple mount points =========="
 
@@ -189,17 +189,17 @@ test_5() {
 run_test 5 "create a file on one mount, truncate it on the other"
 
 test_6() {
-       ./openunlink $DIR1/f6 $DIR2/f6 || error
+       openunlink $DIR1/f6 $DIR2/f6 || error
 }
 run_test 6 "remove of open file on other node =================="
 
 test_7() {
-       ./opendirunlink $DIR1/d7 $DIR2/d7 || error
+       opendirunlink $DIR1/d7 $DIR2/d7 || error
 }
 run_test 7 "remove of open directory on other node ============="
 
 test_8() {
-       ./opendevunlink $DIR1/dev8 $DIR2/dev8 || error
+       opendevunlink $DIR1/dev8 $DIR2/dev8 || error
 }
 run_test 8 "remove of open special file on other node =========="
 
@@ -302,7 +302,7 @@ test_14a() {
 }
 run_test 14a "open(RDWR) of executing file returns -ETXTBSY ===="
 
-test_14b() {
+test_14b() { # bug 3192
         mkdir -p $DIR1/d14
        cp -p `which multiop` $DIR1/d14/multiop || error "cp failed"
         $DIR1/d14/multiop $TMP/test14.junk O_c &
@@ -314,7 +314,7 @@ test_14b() {
 }
 run_test 14b "truncate of executing file returns -ETXTBSY ======"
 
-test_14c() {
+test_14c() { # bug 3430
        mkdir -p $DIR1/d14
        cp -p `which multiop` $DIR1/d14/multiop || error "cp failed"
        $DIR1/d14/multiop $TMP/test14.junk O_c &
@@ -334,11 +334,31 @@ test_15() {       # bug 974 - ENOSPC
 run_test 15 "test out-of-space with multiple writers ==========="
 
 test_16() {
-       ./fsx -R -W -c 50 -p 100 -N 2500 \
-               $MOUNT1/fsxfile $MOUNT2/fsxfile
+       fsx -R -W -c 50 -p 100 -N 2500 $MOUNT1/fsxfile $MOUNT2/fsxfile
 }
 run_test 16 "2500 iterations of dual-mount fsx ================="
 
+cancel_lru_locks() {
+       for d in /proc/fs/lustre/ldlm/namespaces/$1*; do
+               echo clear > $d/lru_size
+       done
+       grep [0-9] /proc/fs/lustre/ldlm/namespaces/$1*/lock_unused_count /dev/null
+}
+
+test_17() { # bug 3513, 3667
+       [ ! -d /proc/fs/lustre/ost ] && echo "skipping OST-only test" && return
+
+       cp /etc/termcap $DIR1/f17
+       cancel_lru_locks OSC > /dev/null
+       #define OBD_FAIL_ONCE|OBD_FAIL_LDLM_CREATE_RESOURCE    0x30a
+       echo 0x8000030a > /proc/sys/lustre/fail_loc
+       ls -ls $DIR1/f17 | awk '{ print $1,$6 }' > $DIR1/f17-1 & \
+       ls -ls $DIR2/f17 | awk '{ print $1,$6 }' > $DIR2/f17-2
+       wait
+       diff -u $DIR1/f17-1 $DIR2/f17-2 || error "files are different"
+}
+run_test 17 "resource creation/LVB creation race ==============="
+
 log "cleanup: ======================================================"
 rm -rf $DIR1/[df][0-9]* $DIR1/lnk || true
 
index b63e47d..610f068 100644 (file)
@@ -55,7 +55,10 @@ init_test_env() {
            \?) usage;;
        esac
     done
-    
+
+    shift $((OPTIND - 1))
+    ONLY=${ONLY:-$*}
+
     # save the name of the config file for the upcall
     echo "XMLCONFIG=$LUSTRE/tests/$XMLCONFIG"  > $LUSTRE/tests/XMLCONFIG
 #    echo "CONFIG=`canonical_path $CONFIG`"  > $LUSTRE/tests/CONFIG
index 4a7d6df..049491f 100755 (executable)
@@ -741,8 +741,13 @@ def mkfs(dev, devsize, fstype, jsize, isize, mkfsoptions, isblock=1):
                     ret, out = runcmd("ls -l %s" %dev)
                     devsize = int(string.split(out[0])[4]) / 1024
                 else:
-                    ret, out = runcmd("sfdisk -s %s" %dev)
-                    devsize = int(out[0])
+                    devlast = dev.split("/")[-1]
+                    ret, out = runcmd("cat /proc/partitions | grep %s"%devlast)
+                    if ret:
+                        panic("Unable to read the size of block device:", dev)
+                    else:
+                        out = out[0].split()
+                        devsize = int(out[2])
             if devsize > 1024 * 1024:
                 jsize = ((devsize / 102400) * 4)
             if jsize > 400:
@@ -1887,7 +1892,7 @@ def my_rstrip(s, chars):
                 ns = s[0:i+1]
                 break
     return ns
-       
+
 
 class Mountpoint(Module):
     def __init__(self,db):
@@ -2204,7 +2209,7 @@ def for_each_profile(db, prof_list, operation):
     for prof_uuid in prof_list:
         prof_db = db.lookup(prof_uuid)
         if not prof_db:
-            panic("profile:", profile, "not found.")
+            panic("profile:", prof_uuid, "not found.")
         services = getServices(prof_db)
         operation(services)
         
@@ -2277,11 +2282,11 @@ def doHost(lustreDB, hosts):
     prof_list = node_db.get_refs('profile')
 
     if config.write_conf:
-        lustreDB.close()
         for_each_profile(node_db, prof_list, doModules)
         sys_make_devices()
         for_each_profile(node_db, prof_list, doWriteconf)
         for_each_profile(node_db, prof_list, doUnloadModules)
+        lustreDB.close()
 
     elif config.recover:
         if not (config.tgt_uuid and config.client_uuid and config.conn_uuid):
index b1c8ca5..75a2906 100644 (file)
@@ -65,9 +65,9 @@ command_t cmdlist[] = {
         /* Network configuration commands */
         {"==== network config ====", jt_noop, 0, "network config"},
         {"--net", jt_opt_net, 0, "run <command> after setting network to <net>\n"
-         "usage: --net <tcp/elan/myrinet/scimac> <command>"},
+         "usage: --net <tcp/elan/myrinet> <command>"},
         {"network", jt_ptl_network, 0, "commands that follow apply to net\n"
-         "usage: network <tcp/elan/myrinet/scimac>"},
+         "usage: network <tcp/elan/myrinet>"},
         {"autoconn_list", jt_ptl_print_autoconnects, 0, "print autoconnect entries\n"
          "usage: print_autoconns"},
         {"add_autoconn", jt_ptl_add_autoconnect, 0, "add an autoconnect entry\n"
@@ -84,7 +84,7 @@ command_t cmdlist[] = {
          "usage: active_tx"},
         {"mynid", jt_ptl_mynid, 0, "inform the socknal of the local nid. "
          "The nid defaults to hostname for tcp networks and is automatically "
-         "setup for elan/myrinet/scimac networks.\n"
+         "setup for elan/myrinet networks.\n"
          "usage: mynid [<nid>]"},
         {"shownid", jt_ptl_shownid, 0, "print the local NID\n"
          "usage: shownid"},
@@ -128,7 +128,7 @@ command_t cmdlist[] = {
          "usage: device <%name|$name|devno>"},
         {"cfg_device", jt_lcfg_device, 0,
          "set current device being configured to <$name>\n"
-         "usage: device <name>"},
+         "usage: cfg_device <name>"},
         {"device_list", jt_obd_list, 0, "show all devices\n"
          "usage: device_list"},
         {"dl", jt_obd_list, 0, "show all devices\n"
@@ -254,24 +254,24 @@ command_t cmdlist[] = {
          "       check all records from index 1 by default."},
          {"llog_cancel", jt_llog_cancel, 0,
          "cancel one record in log.\n"
-         "usage: llog_cancel <catlog id|catlog name> <log id> <index>"},
+         "usage: llog_cancel <catalog id|catalog name> <log id> <index>"},
         {"llog_remove", jt_llog_remove, 0,
-         "remove one log from catlog, erase it from disk.\n"
-         "usage: llog_remove <catlog id|catlog name> <log id>"},
+         "remove one log from catalog, erase it from disk.\n"
+         "usage: llog_remove <catalog id|catalog name> <log id>"},
 
         /* Debug commands */
         {"======== debug =========", jt_noop, 0, "debug"},
         {"debug_daemon", jt_dbg_debug_daemon, 0,
-         "debug daemon control and dump to a file"
+         "debug daemon control and dump to a file\n"
          "usage: debug_daemon [start file <#MB>|stop|pause|continue]"},
         {"debug_kernel", jt_dbg_debug_kernel, 0,
-         "get debug buffer and dump to a file"
+         "get debug buffer and dump to a file\n"
          "usage: debug_kernel [file] [raw]"},
         {"dk", jt_dbg_debug_kernel, 0,
-         "get debug buffer and dump to a file"
+         "get debug buffer and dump to a file\n"
          "usage: dk [file] [raw]"},
         {"debug_file", jt_dbg_debug_file, 0,
-         "read debug buffer from input and dump to output"
+         "read debug buffer from input and dump to output\n"
          "usage: debug_file <input> [output] [raw]"},
         {"clear", jt_dbg_clear_debug_buf, 0, "clear kernel debug buffer\n"
          "usage: clear"},
@@ -279,7 +279,7 @@ command_t cmdlist[] = {
          "usage: mark <text>"},
         {"filter", jt_dbg_filter, 0, "filter message type\n"
          "usage: filter <subsystem id/debug mask>"},
-        {"show", jt_dbg_show, 0, "show message type\n"
+        {"show", jt_dbg_show, 0, "show type of messages\n"
          "usage: show <subsystem id/debug mask>"},
         {"debug_list", jt_dbg_list, 0, "list subsystem and debug types\n"
          "usage: debug_list <subs/types>"},
index a341dd8..567689e 100755 (executable)
@@ -74,7 +74,7 @@ Object creation command summary:
   --node node_name
   --nid nid
   --cluster_id 
-  --nettype tcp|elan|gm|scimac
+  --nettype tcp|elan|gm
   --hostaddr addr
   --port port
   --tcpbuf size
@@ -154,7 +154,7 @@ lmc_options = [
     ('subsystem', "Specify which Lustre subsystems have debug output recorded in the log",  PARAM),
 
     # network 
-    ('nettype', "Specify the network type. This can be tcp/elan/gm/scimac.", PARAM),
+    ('nettype', "Specify the network type. This can be tcp/elan/gm.", PARAM),
     ('nid', "Give the network ID, e.g ElanID/IP Address as used by portals.", PARAM),
     ('tcpbuf', "Optional argument to specify the TCP buffer size.", PARAM, "0"),
     ('port', "Optional argument to specify the TCP port number.", PARAM, DEFAULT_PORT),
@@ -637,7 +637,7 @@ def add_net(gen, lustre, options):
         port = get_option_int(options, 'port')
         tcpbuf = get_option_int(options, 'tcpbuf')
         irq_aff = get_option_int(options, 'irq_affinity')
-    elif net_type in ('elan', 'gm', 'scimac'):
+    elif net_type in ('elan', 'gm'):
         port = 0
         tcpbuf = 0
         irq_aff = 0